Suppress message popup with (MSG,# No popup message), Show latest GCode message in...
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 13 Oct 2019 00:33:04 +0000 (17:33 -0700)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Sun, 13 Oct 2019 00:33:04 +0000 (17:33 -0700)
CHANGELOG.md
src/js/app.js
src/js/control-view.js
src/pug/index.pug
src/pug/templates/control-view.pug

index 09e2b04ced29ca79b67ac27d3f5d737570c9a290..35a6ada88980b8aa5d85aa67a2e3886ba911bdfe 100644 (file)
@@ -8,8 +8,9 @@ Buildbotics CNC Controller Firmware Changelog
  - Log GCode messages to "Messages" tab.
  - Acknowledging a message on one browser clears it for all.
  - Automatically reload Web view when file changes.
- - Changed "Message" field to "Reason" in Web interface.
  - Added ``config-screen`` script.  Web based screen config to come later.
+ - Suppress message popup with (MSG,# No popup message).
+ - Show latest GCode message in ``Message`` field on CONTROL page.
 
 ## v0.4.11
  - Don't reset global offsets on M2.
index 9c772151c17f236325e1b439f168b3edab195113..df14c72150d7ebb57b80600727d0540b5a027337 100644 (file)
@@ -201,6 +201,20 @@ module.exports = new Vue({
   },
 
 
+  computed: {
+    popupMessages: function () {
+      var msgs = [];
+
+      for (var i = 0; i < this.state.messages.length; i++) {
+        var text = this.state.messages[i].text;
+        if (!/^#/.test(text)) msgs.push(text);
+      }
+
+      return msgs;
+    }
+  },
+
+
   ready: function () {
     $(window).on('hashchange', this.parse_hash);
     this.connect();
index 5b777f1bb28d8b77a35e5990163feb595d3ba9c0..ff6fc068841f81f6b046936d7b11bce76fc5e1c6 100644 (file)
@@ -147,14 +147,16 @@ module.exports = {
     },
 
 
-    reason: function () {
+    message: function () {
       if (this.mach_state == 'ESTOPPED') return this.state.er;
       if (this.mach_state == 'HOLDING') return this.state.pr;
+      if (this.state.messages.length)
+        return this.state.messages.slice(-1)[0].text;
       return '';
     },
 
 
-    highlight_reason: function () {
+    highlight_state: function () {
       return this.mach_state == 'ESTOPPED' || this.mach_state == 'HOLDING';
     },
 
index 06a843008d3dc97be7929d5ae5f857de1776403b..04e7f87c386730ab5dd6dd1d2d03f60785c93079 100644 (file)
@@ -182,12 +182,12 @@ html(lang="en")
         p Loss of power during an upgrade may damage the controller.
       div(slot="footer")
 
-    message(v-if="state.messages.length", :show="true")
+    message(v-if="popupMessages.length", :show="true")
       h3(slot="header") GCode message
 
       div(slot="body")
         ul
-          li(v-for="msg in state.messages", track-by="$index") {{msg.text}}
+          li(v-for="msg in popupMessages", track-by="$index") {{msg}}
 
       div(slot="footer")
         button.pure-button.button-success(v-if="state.xx != 'HOLDING'",
index 232224b2e2735cfbb8f2acf9e7bfed869a45c121..a2fa81029b1b1002d0c7a08341ce76c633a981c6 100644 (file)
@@ -114,16 +114,20 @@ script#control-view-template(type="text/x-template")
     table.info
       tr
         th State
-        td(:class="{attention: highlight_reason}") {{mach_state}}
+        td(:class="{attention: highlight_state}") {{mach_state}}
+
       tr
-        th Reason
-        td.reason(:class="{attention: highlight_reason}") {{reason}}
+        th Message
+        td.message(:class="{attention: highlight_state}")
+          | {{message.replace(/^#/, '')}}
+
       tr(title="Active machine units")
         th Units
         td.mach_units
           select(v-model="mach_units", :disabled="!is_idle")
             option(value="METRIC") METRIC
             option(value="IMPERIAL") IMPERIAL
+
       tr(title="Active tool")
         th Tool
         td {{state.tool || 0}}
@@ -136,17 +140,20 @@ script#control-view-template(type="text/x-template")
           unit-value(:value="state.v", precision="2", unit="", iunit="",
             scale="0.0254")
           | {{metric ? ' m/min' : ' IPM'}}
+
       tr(title="Programmed feed rate.")
         th Feed
         td
           unit-value(:value="state.feed", precision="2", unit="", iunit="")
           | {{metric ? ' mm/min' : ' IPM'}}
+
       tr(title="Programed and actual speed.")
         th Speed
         td
           | {{state.speed || 0 | fixed 0}}
           span(v-if="!isNaN(state.s)") &nbsp;({{state.s | fixed 0}})
           = ' RPM'
+
       tr(title="Load switch states.")
         th Loads
         td