{ "custom": { "currentTab": 0, "isHeatmap": false }, "params": {}, "propConfig": { "custom.currentTab": { "persistent": true }, "custom.isHeatmap": { "persistent": true } }, "props": { "defaultSize": { "height": 100, "width": 1400 } }, "root": { "children": [ { "meta": { "name": "Background" }, "position": { "height": "100%", "width": 32 }, "props": { "style": { "background": "#808080", "border-right": "2px solid #000" } }, "type": "ia.display.label" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tif self.view.custom.currentTab !\u003d 0:\n\t\tself.view.custom.currentTab \u003d 0" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Button_Navigation" }, "position": { "height": 31, "width": 28, "x": 1, "y": 1 }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "" }, "type": "ia.input.button" }, { "meta": { "name": "Icon_Navigation" }, "position": { "height": 22, "width": 22, "x": 4, "y": 5 }, "propConfig": { "props.color": { "binding": { "config": { "path": "view.custom.currentTab" }, "transforms": [ { "fallback": "#AAAAAA", "inputType": "scalar", "mappings": [ { "input": 0, "output": "#000000" } ], "outputType": "color", "type": "map" } ], "type": "property" }, "persistent": true } }, "props": { "color": "#000000", "path": "material/navigation", "style": { "pointer-events": "none" } }, "type": "ia.display.icon" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tif self.view.custom.currentTab !\u003d 1:\n\t\tself.view.custom.currentTab \u003d 1" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Button_Alarms" }, "position": { "height": 31, "width": 28, "x": 1, "y": 33 }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "" }, "type": "ia.input.button" }, { "meta": { "name": "Icon_Alarms" }, "position": { "height": 22, "width": 22, "x": 4, "y": 38 }, "propConfig": { "props.color": { "binding": { "config": { "expression": "if({../AlarmContainer/Table.custom.hasAlarms}\r\n \u0026\u0026 {[default]Gateway/ToggleTag},\r\n \"#F00\",\r\n if({view.custom.currentTab} \u003d 1,\r\n \"#000\",\r\n \"#AAA\"\r\n )\r\n)" }, "type": "expr" }, "persistent": true } }, "props": { "color": "#AAA", "path": "material/notifications_active", "style": { "pointer-events": "none" } }, "type": "ia.display.icon" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tif self.view.custom.currentTab !\u003d 2:\n\t\tself.view.custom.currentTab \u003d 2" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Button_Options" }, "position": { "height": 31, "width": 28, "x": 1, "y": 65 }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "" }, "type": "ia.input.button" }, { "meta": { "name": "Icon_Options" }, "position": { "height": 22, "width": 22, "x": 4, "y": 70 }, "propConfig": { "props.color": { "binding": { "config": { "path": "view.custom.currentTab" }, "transforms": [ { "fallback": "#AAAAAA", "inputType": "scalar", "mappings": [ { "input": 2, "output": "#000000" } ], "outputType": "color", "type": "map" } ], "type": "property" }, "persistent": true } }, "props": { "color": "#AAAAAA", "path": "material/settings", "style": { "pointer-events": "none" } }, "type": "ia.display.icon" }, { "children": [ { "meta": { "name": "Label" }, "position": { "height": 24, "width": 100, "x": 110 }, "props": { "style": { "backgroundColor": "#DDD", "borderBottomStyle": "solid", "borderLeftStyle": "solid", "borderRightStyle": "solid", "fontWeight": "bold", "textAlign": "right" }, "text": "Time:" }, "type": "ia.display.label" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\twindow\u003d\"Popups/Heatmap/Config\"\n\tif self.session.custom.isMobile:\n\t\tsystem.perspective.navigate(view\u003dwindow)\n\telse:\n\t\tsystem.perspective.openPopup(\"HeatmapSettings\", window, title\u003d\"Heatmap Configuration\", modal\u003dTrue, overlayDismiss\u003dTrue)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "ConfigButton" }, "position": { "height": 32, "width": 108, "x": 1, "y": 1 }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!{session.custom.heatmapSettings.enabled}" }, "type": "expr" } } }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "Configure" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tdata \u003d self.getSibling(\"AlarmTable\").getChild(\"Table\")\n\tutils.downloadCSV(data, \"Heatmap\")" }, "scope": "G", "type": "script" } } }, "meta": { "name": "ExportButton" }, "position": { "height": 31, "width": 108, "x": 1, "y": 34 }, "propConfig": { "props.enabled": { "binding": { "config": { "path": "session.custom.heatmapSettings.enabled" }, "type": "property" } } }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "Export" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\theatmapSettings \u003d self.session.custom.heatmapSettings\n\theatmapSettings.enabled \u003d False\n\t# Clear data:\n\theatmapSettings.data \u003d system.dataset.clearDataset(heatmapSettings.data)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "ExitButton" }, "position": { "height": 31, "width": 108, "x": 1, "y": 66 }, "propConfig": { "props.enabled": { "binding": { "config": { "path": "session.custom.heatmapSettings.enabled" }, "type": "property" } } }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "exit mode" }, "type": "ia.input.button" }, { "meta": { "name": "Label_2" }, "position": { "height": 24, "width": 350, "x": 210 }, "propConfig": { "props.text": { "binding": { "config": { "struct": { "heatmapEnable": "{session.custom.heatmapSettings.enabled}", "time": "{session.custom.heatmapSettings.time}" }, "waitOnAll": true }, "transforms": [ { "code": "\tif value.heatmapEnable:\n\t\treturn value.time.start.value + \" to \" + value.time.end.value\n\telse:\n\t\treturn \"\"", "type": "script" } ], "type": "expr-struct" } } }, "props": { "alignVertical": "top", "style": { "backgroundColor": "#CCC", "borderBottomStyle": "solid", "borderRightStyle": "solid", "overflow": "hidden", "textOverflow": "ellipsis", "whiteSpace": "nowrap" } }, "type": "ia.display.label" }, { "meta": { "name": "Label_3" }, "position": { "height": 24, "width": 100, "x": 110, "y": 24 }, "props": { "style": { "backgroundColor": "#DDD", "borderBottomStyle": "solid", "borderLeftStyle": "solid", "borderRightStyle": "solid", "fontWeight": "bold", "textAlign": "right" }, "text": "Shifts:" }, "type": "ia.display.label" }, { "meta": { "name": "Label_4" }, "position": { "height": 24, "width": 100, "x": 110, "y": 48 }, "props": { "style": { "backgroundColor": "#DDD", "borderBottomStyle": "solid", "borderLeftStyle": "solid", "borderRightStyle": "solid", "fontWeight": "bold", "textAlign": "right" }, "text": "Alarms:" }, "type": "ia.display.label" }, { "meta": { "name": "Label_5" }, "position": { "height": 24, "width": 100, "x": 110, "y": 72 }, "props": { "style": { "backgroundColor": "#DDD", "borderBottomStyle": "solid", "borderLeftStyle": "solid", "borderRightStyle": "solid", "fontWeight": "bold", "textAlign": "right" }, "text": "Devices:" }, "type": "ia.display.label" }, { "meta": { "name": "Label_6" }, "position": { "height": 24, "width": 350, "x": 210, "y": 24 }, "propConfig": { "props.text": { "binding": { "config": { "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.shiftsText},\r\n\t\"\"\r\n)" }, "type": "expr" } } }, "props": { "alignVertical": "top", "style": { "backgroundColor": "#CCC", "borderBottomStyle": "solid", "borderRightStyle": "solid", "overflow": "hidden", "textOverflow": "ellipsis", "whiteSpace": "nowrap" } }, "type": "ia.display.label" }, { "meta": { "name": "Label_7" }, "position": { "height": 24, "width": 350, "x": 210, "y": 48 }, "propConfig": { "props.text": { "binding": { "config": { "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.alarmsText},\r\n\t\"\"\r\n)" }, "type": "expr" } } }, "props": { "alignVertical": "top", "style": { "backgroundColor": "#CCC", "borderBottomStyle": "solid", "borderRightStyle": "solid", "overflow": "hidden", "textOverflow": "ellipsis", "whiteSpace": "nowrap" } }, "type": "ia.display.label" }, { "meta": { "name": "Label_8" }, "position": { "height": 24, "width": 350, "x": 210, "y": 72 }, "propConfig": { "props.text": { "binding": { "config": { "expression": "if({session.custom.heatmapSettings.enabled},\r\n\t{session.custom.heatmapSettings.devicesText},\r\n\t\"\"\r\n)" }, "type": "expr" } } }, "props": { "alignVertical": "top", "style": { "backgroundColor": "#CCC", "borderBottomStyle": "solid", "borderRightStyle": "solid", "overflow": "hidden", "textOverflow": "ellipsis", "whiteSpace": "nowrap" } }, "type": "ia.display.label" }, { "children": [ { "events": { "component": { "onRowDoubleClick": { "config": { "script": "\twindow \u003d \"Windows/GraphicsWrapper\"\n\tplctag \u003d self.props.data.getValueAt(event.row, \"plctag\")\n\tscreen \u003d alarms.resolveScreen(event.value.device, plctag)\n\tparams \u003d {\"view\": screen}\n\tsystem.perspective.navigate(\"/\")\n\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)" }, "scope": "G", "type": "script" }, "onSelectionChange": { "config": { "script": "\tif event.selectedRow \u003c\u003e None:\n\t\tdevice \u003d self.props.data.getValueAt(event.selectedRow, \"device\")\n\t\tself.session.custom.alarmHighlight \u003d device\n\telse:\n\t\tself.session.custom.alarmHighlight \u003d \"\"" }, "scope": "G", "type": "script" } }, "dom": { "onKeyDown": { "config": { "script": "\tif event.key \u003d\u003d \"Escape\": # Escape key\n\t\tself.props.selection.selectedColumn \u003d None\n\t\tself.props.selection.selectedRow \u003d None" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Table" }, "position": { "height": "200%", "width": "200%", "x": "-50%", "y": "-50%" }, "propConfig": { "custom.hasAlarms": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "direct", "tagPath": "[default]Design/ActiveAlarms" }, "transforms": [ { "code": "\trows \u003d []\n\tfor r in range(value.getRowCount()):\n\t\tif value.getValueAt(r, \"Class\") \u003c\u003e \"Error\":\n\t\t\trows.append(r)\n\treturn system.dataset.deleteRows(value, rows).getRowCount()\u003e0", "type": "script" } ], "type": "tag" } }, "props.data": { "binding": { "config": { "path": "session.custom.heatmapSettings.data" }, "type": "property" }, "onChange": { "enabled": null, "script": "\tself.props.selectedColumn \u003d None\n\tself.session.custom.alarmHighlight \u003d \"\"" } } }, "props": { "cells": { "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "2px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "2px", "color": "#FF0000", "fontFamily": "Helvetica", "fontSize": "22px" } }, "columns": [ { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "duration", "footer": { "align": "center", "justify": "center", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "2px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "2px", "classes": "", "fontSize": "26px", "fontWeight": "bold" }, "title": "Duration" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": false, "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 200 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "count", "footer": { "align": "center", "justify": "center", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "2px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "2px", "classes": "", "fontSize": "26px", "fontWeight": "bold" }, "title": "Count" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": false, "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 200 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "device", "footer": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "2px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "2px", "classes": "", "fontSize": "26px", "fontWeight": "bold" }, "title": "Location" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": true, "sort": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "description", "footer": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "left", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "2px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "2px", "classes": "", "fontSize": "26px", "fontWeight": "bold" }, "title": "Description" }, "justify": "auto", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": true, "sort": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" } ], "pager": { "bottom": false }, "rows": { "highlight": { "enabled": false }, "striped": { "enabled": false }, "style": { "classes": "table/highlight" } }, "selectedColumn": null, "style": { "fontFamily": "Helvetica", "fontSize": "24px", "fontWeight": "bold", "transform": "scale(0.5)" } }, "type": "ia.display.table" } ], "meta": { "name": "AlarmTable" }, "position": { "height": "100%", "width": "calc(100% - 560px)", "x": 560 }, "props": { "style": { "min-width": "786px" } }, "type": "ia.container.coord" } ], "meta": { "name": "HeatmapContainer", "visible": false }, "position": { "height": "100%", "width": "calc(100% - 32px)", "x": 32 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "session.custom.heatmapSettings.enabled" }, "type": "property" }, "persistent": true } }, "type": "ia.container.coord" }, { "meta": { "name": "NavigationContainer" }, "position": { "height": "100%", "width": "calc(100% - 32px)", "x": 32 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "view.custom.currentTab" }, "transforms": [ { "fallback": "false", "inputType": "scalar", "mappings": [ { "input": 0, "output": "{session.custom.heatmapSettings.enabled}\u003dfalse" } ], "outputType": "expression", "type": "map" } ], "type": "property" } }, "props.instances": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "direct", "tagPath": "[default]Gateway/Areas" }, "transforms": [ { "code": "\treturn nav.genButtonsFromDataset(value)", "type": "script" } ], "type": "tag" } } }, "props": { "enableTransitions": false, "transitionSettings": { "duration": "1s", "timingFunction": "linear" } }, "type": "ia.display.viewcanvas" }, { "children": [ { "meta": { "name": "Background" }, "position": { "height": "100%", "width": 182 }, "props": { "style": { "background": "#AAA", "border-right": "2px solid #000" } }, "type": "ia.display.label" }, { "events": { "component": { "onActionPerformed": { "config": { "page": "/alarms/active" }, "scope": "C", "type": "nav" } } }, "meta": { "name": "Button_Active" }, "position": { "height": 23, "width": 172, "x": 4, "y": 23 }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "Active" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "page": "/alarms/hitlist" }, "scope": "C", "type": "nav" } } }, "meta": { "name": "Button_HitList" }, "position": { "height": 23, "width": 172, "x": 4, "y": 48 }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "Hit List" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "page": "/alarms/history" }, "scope": "C", "type": "nav" } } }, "meta": { "name": "Button_History" }, "position": { "height": 23, "width": 172, "x": 4, "y": 73 }, "props": { "style": { "classes": "Buttons/Grey" }, "text": "History" }, "type": "ia.input.button" }, { "meta": { "name": "Label_Alarms" }, "position": { "height": 21, "width": 180 }, "props": { "style": { "backgroundColor": "#FF8A8A", "border-bottom": "2px solid #000", "fontFamily": "Helvetica", "fontSize": "11px", "fontWeight": "bold", "textAlign": "center" }, "text": "Showing 9 Alarms" }, "type": "ia.display.label" }, { "events": { "component": { "onRowDoubleClick": { "config": { "script": "\tscreen \u003d alarms.resolveScreenBySource(event.value.source)\n\tif screen \u003c\u003e \"\":\n\t\twindow \u003d \"Windows/GraphicsWrapper\"\n\t\tparams \u003d {\"view\": screen}\n\t\tsystem.perspective.navigate(\"/\")\n\t\tsystem.perspective.navigate(view\u003dwindow, params\u003dparams)" }, "scope": "G", "type": "script" }, "onSelectionChange": { "config": { "script": "\tif event.selectedRow \u003c\u003e None:\n\t\tdevice \u003d self.props.data.getValueAt(event.selectedRow, \"device\")\n\t\tself.session.custom.alarmHighlight \u003d device\n\telse:\n\t\tself.session.custom.alarmHighlight \u003d \"\"" }, "scope": "G", "type": "script" } }, "dom": { "onKeyDown": { "config": { "script": "\tif event.key \u003d\u003d \"Escape\": # Escape key\n\t\tself.props.selection.selectedColumn \u003d None\n\t\tself.props.selection.selectedRow \u003d None" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Table" }, "position": { "height": "100%", "width": "calc(100% - 182px)", "x": 182 }, "propConfig": { "custom.hasAlarms": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "direct", "tagPath": "[default]Gateway/ActiveAlarms" }, "transforms": [ { "code": "\tfor r in range(value.getRowCount()):\n\t\tif value.getValueAt(r, \"Class\") \u003d\u003d \"Error\":\n\t\t\treturn True\n\treturn False", "type": "script" } ], "type": "tag" } }, "props.data": { "binding": { "config": { "expression": "if({../AlarmContainer.meta.visible} \u0026\u0026 {page.props.primaryView} !\u003d null \u0026\u0026 {session.custom.currentGraphic} !\u003d null,\r\n\t// We return ActiveAlarms anyway, regardless of result, because we want to subscribe to the above too\r\n\t{[default]Gateway/ActiveAlarms},\r\n\t{[default]Gateway/ActiveAlarms}\r\n)" }, "transforms": [ { "code": "\tif self.parent.parent.getChild(\"AlarmContainer\").meta.visible:\n\t\trows \u003d []\n\t\tfor r in range(value.getRowCount()):\n\t\t\tif value.getValueAt(r, \"Class\") !\u003d \"Error\":\n\t\t\t\trows.append(r)\n\t\ta \u003d system.dataset.deleteRows(value, rows)\n\t\tscreen \u003d self.page.props.primaryView\n\t\tshownRows \u003d totalRows \u003d a.getRowCount()\n\t\tif screen \u003d\u003d \"Windows/GraphicsWrapper\":\n\t\t\ta \u003d alarms.filterAlarms(self.session.custom.currentGraphic, a)\n\t\t\tshownRows \u003d a.getRowCount()\n\t\t# Update alarm label:\n\t\talarmLabel \u003d self.parent.getChild(\"Label_Alarms\")\n\t\tif shownRows \u003c\u003e totalRows:\n\t\t\talarmLabel.props.text \u003d \u0027Showing {:n} of {:n} Alarms\u0027.format(shownRows, totalRows)\n\t\telse:\n\t\t\talarmLabel.props.text \u003d \u0027Showing {:n} Alarms\u0027.format(totalRows)\n\t\treturn a\n\telse:\n\t\treturn system.dataset.clearDataset(value)", "type": "script" } ], "type": "expr" } } }, "props": { "cells": { "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "color": "#FF0000", "fontFamily": "Helvetica", "fontSize": "11px" } }, "columns": [ { "align": "center", "boolean": "checkbox", "dateFormat": "YYYY-MM-DD HH:mm:ss", "editable": false, "field": "id", "footer": { "align": "center", "justify": "center", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "classes": "", "fontSize": "13px", "fontWeight": "bold" }, "title": "Number (ID)" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": false, "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 110 }, { "align": "center", "boolean": "checkbox", "dateFormat": "YYYY-MM-DD HH:mm:ss", "editable": false, "field": "eventtime", "footer": { "align": "center", "justify": "center", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "classes": "", "fontSize": "13px", "fontWeight": "bold" }, "title": "Event Timestamp" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": false, "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 135 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "duration", "footer": { "align": "center", "justify": "center", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "classes": "", "fontSize": "13px", "fontWeight": "bold" }, "title": "Duration" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": false, "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 100 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "class", "footer": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "classes": "", "fontSize": "13px", "fontWeight": "bold" }, "title": "Class" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": false, "sort": "none", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 75 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "device", "footer": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "center", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "classes": "", "fontSize": "13px", "fontWeight": "bold" }, "title": "Location" }, "justify": "center", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": true, "sort": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "description", "footer": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "left", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "classes": "", "fontSize": "13px", "fontWeight": "bold" }, "title": "Description" }, "justify": "auto", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": true, "sort": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "plctag", "footer": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "left", "style": { "borderBottomColor": "#D5D5D5", "borderBottomStyle": "solid", "borderBottomWidth": "1px", "borderRightColor": "#D5D5D5", "borderRightStyle": "solid", "borderRightWidth": "1px", "classes": "", "fontSize": "13px", "fontWeight": "bold" }, "title": "Tag" }, "justify": "auto", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "#62A3F6", "linecap": "round", "width": 5 }, "max": 100, "track": { "color": "#DADADA", "linecap": "round", "width": 2 }, "value": { "color": "#7D7D7D", "show": true } }, "render": "auto", "resizable": true, "sort": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "#2196F3", "unselected": "#FFFFFF" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "source", "footer": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "header": { "align": "center", "justify": "left", "style": { "classes": "" }, "title": "" }, "justify": "auto", "number": "value", "numberFormat": "0,0.##", "progressBar": { "bar": { "color": "", "style": { "classes": "" } }, "max": 100, "min": 0, "track": { "color": "", "style": { "classes": "" } }, "value": { "enabled": true, "format": "0,0.##", "justify": "center", "style": { "classes": "" } } }, "render": "auto", "resizable": true, "sort": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": false, "width": "" } ], "emptyMessage": { "noData": { "text": "No Alarm Data" } }, "pager": { "bottom": false }, "rows": { "height": 15, "highlight": { "enabled": false }, "striped": { "enabled": false }, "style": { "classes": "table/highlight" } }, "style": { "fontFamily": "Helvetica", "fontSize": "12px", "fontWeight": "bold", "minWidth": "786px", "transform": "scale(1)" } }, "type": "ia.display.table" } ], "meta": { "name": "AlarmContainer", "visible": false }, "position": { "height": "100%", "width": "calc(100% - 32px)", "x": 32 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "view.custom.currentTab" }, "transforms": [ { "fallback": "false", "inputType": "scalar", "mappings": [ { "input": 1, "output": "{session.custom.heatmapSettings.enabled}\u003dfalse" } ], "outputType": "expression", "type": "map" } ], "type": "property" }, "persistent": true } }, "type": "ia.container.coord" }, { "children": [ { "custom": { "selectedState": "value" }, "events": { "component": { "onActionPerformed": { "config": { "script": "\tval \u003d self.props.selected\n\tif val in [True, False]:\n\t\tfor child in self.parent.getChildren():\n\t\t\tif child.meta.name.startswith(\"Checkbox\"):\n\t\t\t\tchild.props.selected \u003d val\n\telse:\n\t\tself.props.selected \u003d False" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Show_Devices" }, "position": { "height": 24, "width": 160, "x": 50 }, "propConfig": { "props.selected": { "binding": { "config": { "expression": " {../Checkbox_Beacons.props.selected}\r\n||{../Checkbox_DivertPaddles.props.selected}\r\n||{../Checkbox_EIPs.props.selected}\r\n||{../Checkbox_Encoders.props.selected}\r\n||{../Checkbox_Estops.props.selected}\r\n||{../Checkbox_ProxSwitches.props.selected}\r\n||{../Checkbox_MCPs.props.selected}\r\n||{../Checkbox_PhotoEyes.props.selected}\r\n||{../Checkbox_PushButtons.props.selected}\r\n||{../Checkbox_Scanners.props.selected}\r\n||{../Checkbox_VFDs.props.selected}" }, "type": "expr" } } }, "props": { "style": { "borderBottomStyle": "solid", "fontSize": "16px", "fontWeight": "bold" }, "text": "Show Devices" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_Beacons" }, "position": { "height": 24, "width": 180, "x": 50, "y": 24 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.Beacons" }, "type": "property" } } }, "props": { "text": "Beacons" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_DivertPaddles" }, "position": { "height": 24, "width": 180, "x": 50, "y": 48 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.ConveyorLabels" }, "type": "property" } } }, "props": { "text": "Conveyor Labels" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_EIPs" }, "position": { "height": 24, "width": 180, "x": 50, "y": 72 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.EIPs" }, "type": "property" } } }, "props": { "text": "EIPs" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_Encoders" }, "position": { "height": 24, "width": 180, "x": 220 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.Encoders" }, "type": "property" } } }, "props": { "text": "Encoders" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_Estops" }, "position": { "height": 24, "width": 180, "x": 220, "y": 24 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.Estops" }, "type": "property" } } }, "props": { "text": "Estops" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_ProxSwitches" }, "position": { "height": 24, "width": 180, "x": 220, "y": 48 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.LimitSwitches" }, "type": "property" } } }, "props": { "text": "Prox Switches" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_MCPs" }, "position": { "height": 24, "width": 180, "x": 220, "y": 72 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.MCPs" }, "type": "property" } } }, "props": { "text": "MCPs" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_PhotoEyes" }, "position": { "height": 24, "width": 180, "x": 390 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.PhotoEyes" }, "type": "property" } } }, "props": { "text": "Photo Eyes" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_PushButtons" }, "position": { "height": 24, "width": 180, "x": 390, "y": 24 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.PushButtons" }, "type": "property" } } }, "props": { "text": "Push Buttons" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_Scanners" }, "position": { "height": 24, "width": 180, "x": 390, "y": 48 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.Scanners" }, "type": "property" } } }, "props": { "text": "Scanners" }, "type": "ia.input.checkbox" }, { "meta": { "name": "Checkbox_VFDs" }, "position": { "height": 24, "width": 180, "x": 390, "y": 72 }, "propConfig": { "props.selected": { "binding": { "config": { "bidirectional": true, "path": "session.custom.dexmanager.show.VFDs" }, "type": "property" } } }, "props": { "text": "VFDs" }, "type": "ia.input.checkbox" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tgateway.setPowerSaveMin(self.props.value)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "PowerSaveMinutes" }, "position": { "height": 25, "width": 170, "x": 570, "y": 28 }, "propConfig": { "props.enabled": { "binding": { "config": { "struct": { "roles": "{session.props.auth.user.roles}", "type": "{session.props.device.type}" }, "waitOnAll": true }, "transforms": [ { "code": "\treturn value.type \u003d\u003d \"designer\" or (value.roles \u003c\u003e None and len(value.roles))", "type": "script" } ], "type": "expr-struct" } }, "props.value": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "direct", "tagPath": "[default]Gateway/PowerSaveMin" }, "overlayOptOut": true, "type": "tag" } } }, "type": "ia.input.numeric-entry-field" }, { "meta": { "name": "Label_PowerSave" }, "position": { "height": 24, "width": 170, "x": 570 }, "props": { "style": { "borderBottomStyle": "solid", "fontSize": "16px", "fontWeight": "bold" }, "text": "Power Save Minutes" }, "type": "ia.display.label" }, { "meta": { "name": "Label_FMS", "visible": false }, "position": { "height": 24, "width": 245, "x": 785 }, "props": { "style": { "borderBottomStyle": "solid", "fontSize": "16px", "fontWeight": "bold" }, "text": "FMS Options" }, "type": "ia.display.label" }, { "meta": { "name": "Slider_ImbalanceSP", "visible": false }, "position": { "height": 32, "width": 120, "x": 905, "y": 55 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true }, "props.enabled": { "binding": { "config": { "expression": "{../Toggle_PeakMode.props.enabled} \u0026\u0026 {../Toggle_PeakMode.props.selected}" }, "type": "expr" } }, "props.trackColor": { "binding": { "config": { "expression": "if({parent.meta.visible},\r\n\t\"\",\r\n\t\"rgba(0,0,0,0)\"\r\n)" }, "type": "expr" }, "persistent": true }, "props.value": { "binding": { "config": { "bidirectional": true, "fallbackDelay": 0.5, "mode": "direct", "tagPath": "[default]FMS/Peak_Mode_Imbalance_SP" }, "type": "tag" } } }, "props": { "labels": { "interval": 5, "show": true }, "max": 90, "min": 75, "step": 5, "trackColor": "rgba(0,0,0,0)" }, "type": "ia.input.slider" }, { "meta": { "name": "Toggle_PeakMode", "visible": false }, "position": { "height": 32, "width": 55, "x": 885, "y": 25 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true }, "props.enabled": { "binding": { "config": { "struct": { "roles": "{session.props.auth.user.roles}", "type": "{session.props.device.type}" }, "waitOnAll": true }, "transforms": [ { "code": "\treturn value.type \u003d\u003d \"designer\" or (value.roles \u003c\u003e None and len(value.roles))", "type": "script" } ], "type": "expr-struct" } }, "props.selected": { "binding": { "config": { "bidirectional": true, "fallbackDelay": 0.5, "mode": "direct", "tagPath": "[default]FMS/Peak_Mode_Enabled" }, "type": "tag" } } }, "props": { "label": { "position": "left" } }, "type": "ia.input.toggle-switch" }, { "meta": { "name": "Label_PeakMode", "visible": false }, "position": { "height": 25, "width": 110, "x": 785, "y": 28 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true } }, "props": { "text": "Peak Mode:" }, "type": "ia.display.label" }, { "meta": { "name": "Label_ImbalanceSP", "visible": false }, "position": { "height": 25, "width": 110, "x": 785, "y": 58 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true } }, "props": { "text": "Imbalance SP:" }, "type": "ia.display.label" }, { "meta": { "name": "Label_PeakMode_0", "visible": false }, "position": { "height": 25, "width": 60, "x": 935, "y": 28 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true }, "props.text": { "binding": { "config": { "expression": "if({../Toggle_PeakMode.props.selected},\r\n\t\"On\",\r\n\t\"Off\"\r\n)" }, "type": "expr" } } }, "props": { "style": { "textTransform": "uppercase" } }, "type": "ia.display.label" }, { "meta": { "name": "Label_PeakMode_1", "visible": false }, "position": { "height": 25, "width": 110, "x": 1040, "y": 28 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true } }, "props": { "text": "RE5 To PS3:" }, "type": "ia.display.label" }, { "meta": { "name": "Toggle_PeakMode_0", "visible": false }, "position": { "height": 32, "width": 55, "x": 1140, "y": 25 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true }, "props.enabled": { "binding": { "config": { "struct": { "enabled": " {[default]MCP03_Custom/RE05_To_PS03_HMI_Enable}\r\n\u0026\u0026{[default]MCP04_Custom/RE05_To_PS03_HMI_Enable}", "roles": "{session.props.auth.user.roles}", "type": "{session.props.device.type}" }, "waitOnAll": true }, "transforms": [ { "code": "\treturn value.enabled and (value.type \u003d\u003d \"designer\" or (value.roles \u003c\u003e None and len(value.roles)))", "type": "script" } ], "type": "expr-struct" } }, "props.selected": { "binding": { "config": { "bidirectional": true, "fallbackDelay": 0.5, "mode": "direct", "tagPath": "[default]FMS/RE05_To_PS03_HMI" }, "type": "tag" } } }, "props": { "label": { "position": "left" } }, "type": "ia.input.toggle-switch" }, { "meta": { "name": "Label_PeakMode_2", "visible": false }, "position": { "height": 25, "width": 60, "x": 1190, "y": 28 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "../Label_FMS.meta.visible" }, "type": "property" }, "persistent": true }, "props.text": { "binding": { "config": { "expression": "try(\r\nif({[default]FMS/RE05_To_PS03_HMI},\r\n\t\"Reverse\",\r\n\t\"Forward\"\r\n),\r\n\"Unknown\"\r\n)" }, "type": "expr" } } }, "props": { "style": { "textTransform": "uppercase" } }, "type": "ia.display.label" }, { "meta": { "name": "Docked_Extra" }, "position": { "height": "100%", "width": "calc(100% - 775px)", "x": 775 }, "props": { "loading": { "order": "with-parent" }, "path": "Windows/Docked/Docked_Extra" }, "type": "ia.display.view" } ], "meta": { "name": "OptionsContainer", "visible": false }, "position": { "height": "100%", "width": "calc(100% - 32px)", "x": 32 }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "view.custom.currentTab" }, "transforms": [ { "fallback": "false", "inputType": "scalar", "mappings": [ { "input": 2, "output": "{session.custom.heatmapSettings.enabled}\u003dfalse" } ], "outputType": "expression", "type": "map" } ], "type": "property" }, "persistent": true } }, "props": { "style": { "background": "#EEE" } }, "type": "ia.container.coord" } ], "meta": { "name": "root" }, "props": { "style": { "background": "#AAA", "border-top": "2px solid #000" } }, "type": "ia.container.coord" } }