diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/BNA8/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/resource.json similarity index 59% rename from BNA8/com.inductiveautomation.perspective/views/autStand/BNA8/resource.json rename to BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/resource.json index e475a3ae..7d0a43b7 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/BNA8/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-08-08T12:23:43Z" + "timestamp": "2025-08-13T11:02:35Z" }, - "lastModificationSignature": "ac11fb9feafc60c95071c9097b966ae1e35270a14136dfc75372c8fba7a09e2f" + "lastModificationSignature": "25f1c08a3f2cfc363208feafe2a943f11d284709243e3b61a90ec9d22500c1af" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/thumbnail.png new file mode 100644 index 00000000..e12ca2b9 Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM01-FLUID INBOUND/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/view.json similarity index 99% rename from BNA8/com.inductiveautomation.perspective/views/autStand/MCM01-FLUID INBOUND/view.json rename to BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/view.json index 90905c0b..df276a9c 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM01-FLUID INBOUND/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM01-FLUID INBOUND/view.json @@ -341,6 +341,20 @@ "y": 655 }, "props": { + "params": { + "tagProps": [ + "System/MCM01/EPC/UL14_1_EPC2", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, "path": "autStand/Equipment/EPC", "style": { "overflow": "hidden" @@ -3271,7 +3285,7 @@ }, "position": { "height": 30, - "width": 30, + "width": 42, "x": 449.64, "y": 405 }, @@ -3293,7 +3307,7 @@ "value" ] }, - "path": "autStand/Equipment/ControlCabinet" + "path": "autStand/Equipment/MCM" }, "type": "ia.display.view" }, @@ -3325,7 +3339,7 @@ "value" ] }, - "path": "autStand/Equipment/ControlCabinet" + "path": "autStand/Equipment/DPM" }, "type": "ia.display.view" }, @@ -3357,7 +3371,7 @@ "value" ] }, - "path": "autStand/Equipment/ControlCabinet" + "path": "autStand/Equipment/DPM" }, "type": "ia.display.view" }, diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json similarity index 59% rename from BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/resource.json rename to BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json index ebcd7844..02aba30f 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-08-12T09:00:30Z" + "timestamp": "2025-08-13T11:02:35Z" }, - "lastModificationSignature": "a94bcbe892a57bdce5a3dbf826c0796fe1153fa0e9d1f598486281a825949299" + "lastModificationSignature": "d477662d7d4682cccc9cf27765e02150e9136b9947c583d80719a703b2f0659f" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png new file mode 100644 index 00000000..0b87f474 Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/view.json similarity index 98% rename from BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/view.json rename to BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/view.json index 88be6063..37b5e052 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Detailed_Views/MCM02-NC SORTER/view.json @@ -522,7 +522,7 @@ "height": 22, "width": 23, "x": 630, - "y": 500 + "y": 509 }, "props": { "params": { @@ -551,7 +551,7 @@ "height": 22, "width": 23, "x": 630, - "y": 475 + "y": 486 }, "props": { "params": { @@ -580,7 +580,7 @@ "height": 22, "width": 23, "x": 663, - "y": 500 + "y": 509 }, "props": { "params": { @@ -609,7 +609,7 @@ "height": 22, "width": 23, "x": 663, - "y": 475 + "y": 486 }, "props": { "params": { @@ -1392,7 +1392,7 @@ "height": 22, "width": 23, "x": 1174, - "y": 500 + "y": 509 }, "props": { "params": { @@ -1421,7 +1421,7 @@ "height": 22, "width": 23, "x": 1174, - "y": 475 + "y": 486 }, "props": { "params": { @@ -1450,7 +1450,7 @@ "height": 22, "width": 23, "x": 1214, - "y": 500 + "y": 509 }, "props": { "params": { @@ -1479,7 +1479,7 @@ "height": 22, "width": 23, "x": 1214, - "y": 475 + "y": 486 }, "props": { "params": { @@ -2406,7 +2406,7 @@ "position": { "height": 20, "width": 40, - "x": 396, + "x": 366, "y": 547 }, "props": { @@ -2760,7 +2760,7 @@ "position": { "height": 25, "width": 25, - "x": 209, + "x": 203, "y": 491 }, "props": { @@ -2780,7 +2780,7 @@ "position": { "height": 25, "width": 25, - "x": 269, + "x": 263, "y": 491 }, "props": { @@ -2800,8 +2800,8 @@ "position": { "height": 20, "width": 40, - "x": 526, - "y": 549 + "x": 506, + "y": 547 }, "props": { "params": { @@ -2829,8 +2829,8 @@ "position": { "height": 20, "width": 40, - "x": 614, - "y": 549 + "x": 609, + "y": 547 }, "props": { "params": { @@ -2974,7 +2974,7 @@ "position": { "height": 20, "width": 40, - "x": 1404, + "x": 1402, "y": 544 }, "props": { @@ -3815,7 +3815,7 @@ "position": { "height": 20, "width": 20, - "x": 685, + "x": 692, "y": 648 }, "props": { @@ -3845,7 +3845,7 @@ "position": { "height": 20, "width": 20, - "x": 685, + "x": 692, "y": 630 }, "props": { @@ -3875,7 +3875,7 @@ "position": { "height": 20, "width": 20, - "x": 685, + "x": 692, "y": 612 }, "props": { @@ -5998,8 +5998,8 @@ "position": { "height": 25, "width": 25, - "x": 615, - "y": 604 + "x": 657, + "y": 557 }, "props": { "params": { @@ -6027,8 +6027,8 @@ "position": { "height": 25, "width": 25, - "x": 906, - "y": 610 + "x": 932, + "y": 555 }, "props": { "params": { @@ -6056,8 +6056,8 @@ "position": { "height": 25, "width": 25, - "x": 1179, - "y": 606 + "x": 1212, + "y": 554 }, "props": { "params": { @@ -6085,8 +6085,8 @@ "position": { "height": 25, "width": 25, - "x": 1467, - "y": 604 + "x": 1491, + "y": 552 }, "props": { "params": { @@ -6434,7 +6434,7 @@ "height": 32, "width": 251, "x": 667.46, - "y": 522.99 + "y": 523.99 }, "props": { "params": { @@ -6462,7 +6462,7 @@ "position": { "height": 33, "width": 254, - "x": 946.46, + "x": 939.46, "y": 523.99 }, "props": { @@ -6491,8 +6491,8 @@ "position": { "height": 35, "width": 254, - "x": 1225.46, - "y": 519.99 + "x": 1215.46, + "y": 523.99 }, "props": { "params": { @@ -6520,7 +6520,7 @@ "position": { "height": 33, "width": 259, - "x": 1511.46, + "x": 1500.46, "y": 521.99 }, "props": { @@ -7448,7 +7448,7 @@ "position": { "height": 40, "width": 110, - "x": 1202, + "x": 1214, "y": 582 }, "props": { @@ -7477,7 +7477,7 @@ "position": { "height": 40, "width": 110, - "x": 1271, + "x": 1283, "y": 582 }, "props": { @@ -7506,7 +7506,7 @@ "position": { "height": 40, "width": 110, - "x": 1346, + "x": 1358, "y": 582 }, "props": { @@ -7535,7 +7535,7 @@ "position": { "height": 40, "width": 110, - "x": 1346, + "x": 1358, "y": 652 }, "props": { @@ -7564,7 +7564,7 @@ "position": { "height": 40, "width": 110, - "x": 1271, + "x": 1283, "y": 651 }, "props": { @@ -7593,7 +7593,7 @@ "position": { "height": 40, "width": 110, - "x": 1204, + "x": 1216, "y": 652 }, "props": { @@ -7622,7 +7622,7 @@ "position": { "height": 40, "width": 110, - "x": 925, + "x": 932, "y": 582 }, "props": { @@ -7651,7 +7651,7 @@ "position": { "height": 40, "width": 110, - "x": 995, + "x": 1002, "y": 582 }, "props": { @@ -7680,7 +7680,7 @@ "position": { "height": 40, "width": 110, - "x": 1069, + "x": 1076, "y": 582 }, "props": { @@ -7709,7 +7709,7 @@ "position": { "height": 40, "width": 110, - "x": 1069, + "x": 1076, "y": 652 }, "props": { @@ -7738,7 +7738,7 @@ "position": { "height": 40, "width": 110, - "x": 995, + "x": 1002, "y": 652 }, "props": { @@ -7767,7 +7767,7 @@ "position": { "height": 40, "width": 110, - "x": 925, + "x": 932, "y": 652 }, "props": { @@ -7796,7 +7796,7 @@ "position": { "height": 40, "width": 110, - "x": 644, + "x": 654, "y": 582 }, "props": { @@ -7825,7 +7825,7 @@ "position": { "height": 40, "width": 110, - "x": 714, + "x": 724, "y": 582 }, "props": { @@ -7854,7 +7854,7 @@ "position": { "height": 40, "width": 110, - "x": 789, + "x": 799, "y": 582 }, "props": { @@ -7883,7 +7883,7 @@ "position": { "height": 40, "width": 110, - "x": 789, + "x": 799, "y": 652 }, "props": { @@ -7912,8 +7912,8 @@ "position": { "height": 40, "width": 110, - "x": 714, - "y": 652 + "x": 727, + "y": 653 }, "props": { "params": { @@ -7941,8 +7941,8 @@ "position": { "height": 40, "width": 110, - "x": 644, - "y": 652 + "x": 657, + "y": 653 }, "props": { "params": { @@ -9095,7 +9095,7 @@ "position": { "height": 20, "width": 30, - "x": 686, + "x": 690, "y": 567 }, "props": { @@ -9124,7 +9124,7 @@ "position": { "height": 20, "width": 30, - "x": 718, + "x": 723, "y": 567 }, "props": { @@ -9211,7 +9211,7 @@ "position": { "height": 20, "width": 30, - "x": 830, + "x": 831, "y": 567 }, "props": { @@ -9240,7 +9240,7 @@ "position": { "height": 20, "width": 30, - "x": 863, + "x": 864, "y": 567 }, "props": { @@ -9472,7 +9472,7 @@ "position": { "height": 20, "width": 30, - "x": 1275, + "x": 1278, "y": 567 }, "props": { @@ -9501,7 +9501,7 @@ "position": { "height": 20, "width": 30, - "x": 1316, + "x": 1317, "y": 567 }, "props": { @@ -9530,7 +9530,7 @@ "position": { "height": 20, "width": 30, - "x": 1348, + "x": 1349, "y": 567 }, "props": { @@ -9559,7 +9559,7 @@ "position": { "height": 20, "width": 30, - "x": 1386, + "x": 1390, "y": 567 }, "props": { @@ -9762,7 +9762,7 @@ "position": { "height": 20, "width": 30, - "x": 1704, + "x": 1702, "y": 567 }, "props": { @@ -9783,6 +9783,93 @@ "path": "autStand/Equipment/ProxSwitch" }, "type": "ia.display.view" + }, + { + "meta": { + "name": "MCM02" + }, + "position": { + "height": 30, + "width": 42, + "x": 468, + "y": 596 + }, + "props": { + "params": { + "tagProps": [ + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "autStand/Equipment/MCM" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "NCS1_1_DPM1" + }, + "position": { + "height": 25, + "width": 30, + "x": 645.62, + "y": 462 + }, + "props": { + "params": { + "tagProps": [ + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "autStand/Equipment/DPM" + }, + "type": "ia.display.view" + }, + { + "meta": { + "name": "NCS1_1_DPM2" + }, + "position": { + "height": 25, + "width": 30, + "x": 1194.62, + "y": 462 + }, + "props": { + "params": { + "tagProps": [ + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "path": "autStand/Equipment/DPM" + }, + "type": "ia.display.view" } ], "meta": { diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/resource.json similarity index 59% rename from BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/resource.json rename to BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/resource.json index 6c74b988..c6c96f4a 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/resource.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/resource.json @@ -10,8 +10,8 @@ "attributes": { "lastModification": { "actor": "admin", - "timestamp": "2025-08-08T15:09:09Z" + "timestamp": "2025-08-13T14:06:34Z" }, - "lastModificationSignature": "92df4344b9e0d9b73d2c53c19196b6f5aeeb2cb0e9f22ba970b43e6ad94fd27d" + "lastModificationSignature": "3ce8f497b1284f77ab44a6ac10200f8cfd3d21edb91e9c0c67790b1e37687568" } } \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/thumbnail.png new file mode 100644 index 00000000..083c9a55 Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/view.json new file mode 100644 index 00000000..c7ddac27 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Docked_Views/Header/Header/view.json @@ -0,0 +1,1178 @@ +{ + "custom": {}, + "events": { + "system": { + "onShutdown": { + "config": { + "script": "\tactivityLog.productMetrics.callLogger(self, \u0027page\u0027)" + }, + "scope": "G", + "type": "script" + }, + "onStartup": { + "config": { + "script": "\tself.custom.activityLogger.start_time \u003d system.date.now()" + }, + "scope": "G", + "type": "script" + } + } + }, + "params": { + "params": {}, + "size": "medium" + }, + "propConfig": { + "params.params": { + "paramDirection": "input", + "persistent": true + }, + "params.size": { + "paramDirection": "input" + } + }, + "props": { + "defaultSize": { + "height": 58 + } + }, + "root": { + "children": [ + { + "children": [ + { + "events": { + "dom": { + "onDoubleClick": { + "config": { + "page": "/Monitron" + }, + "scope": "C", + "type": "nav" + } + } + }, + "meta": { + "name": "Icon" + }, + "position": { + "basis": "30px" + }, + "props": { + "color": "#FFFFFF", + "path": "material/vibration", + "style": { + "classes": "" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "41px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[IEC_SCADA_TAG_PROVIDER]Monitron/monitron_data" + }, + "transforms": [ + { + "code": "\treturn value.getRowCount()", + "type": "script" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "FlexContainer_0" + }, + "position": { + "basis": "80px", + "display": false + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "events": { + "dom": { + "onDoubleClick": { + "config": { + "page": "/Oil" + }, + "scope": "C", + "type": "nav" + } + } + }, + "meta": { + "name": "Icon" + }, + "position": { + "basis": "30px" + }, + "props": { + "color": "#FFFFFF", + "path": "material/opacity", + "style": { + "classes": "" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "41px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "[IEC_SCADA_TAG_PROVIDER]Oil/oil_condition_monitoring" + }, + "transforms": [ + { + "code": "\treturn value.getRowCount()", + "type": "script" + } + ], + "type": "tag" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "FlexContainer_1" + }, + "position": { + "basis": "80px", + "display": false + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Image" + }, + "position": { + "basis": "120px" + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.params.size} \u003d \"large\"" + }, + "type": "expr" + } + } + }, + "props": { + "fit": { + "height": 30, + "mode": "fill" + }, + "source": "/system/images/Builtin/amazon_rme_logo.png" + }, + "type": "ia.display.image" + }, + { + "meta": { + "hasDelegate": true, + "name": "Spacer Start" + }, + "position": { + "basis": "16px", + "shrink": 0 + }, + "props": { + "text": " " + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "id": "Docked-West", + "type": "toggle" + }, + "scope": "C", + "type": "dock" + } + } + }, + "meta": { + "name": "Menu Dock" + }, + "position": { + "basis": "24px", + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.params.size} !\u003d \"large\"" + }, + "type": "expr" + } + } + }, + "props": { + "color": "#FFFFFF", + "path": "material/menu", + "style": { + "classes": "Header/Icon", + "marginRight": "10px" + } + }, + "type": "ia.display.icon" + }, + { + "children": [ + { + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": "550px", + "grow": 1 + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "300px", + "shrink": 0 + }, + "propConfig": { + "custom.area": { + "binding": { + "config": { + "expression": "if(isNull({this.custom.lookup_path}), \"\",\r\ntry(jsonGet({this.custom.plc_dict},\"Area\"),\"\"))" + }, + "type": "expr" + } + }, + "custom.lookup_path": { + "binding": { + "config": { + "expression": "try(if({this.custom.path}[1,0]\u003d\"DetailedView\", {this.custom.path}[2,0],\r\n\"\"), \"\")\r\n" + }, + "type": "expr" + } + }, + "custom.path": { + "binding": { + "config": { + "path": "page.props.path" + }, + "transforms": [ + { + "expression": "split({value},\"/\")", + "type": "expression" + } + ], + "type": "property" + } + }, + "custom.path_to_display": { + "binding": { + "config": { + "expression": "if(len({this.custom.lookup_path})\u003c1, \"\",\r\nif(len({this.custom.area}) \u003c1, {this.custom.lookup_path},\r\nif(len({this.custom.sub_area}) \u003e 0, concat({this.custom.lookup_path} + \" / \" + {this.custom.area} + \" / \" + {this.custom.sub_area}),\r\nconcat({this.custom.lookup_path} + \" / \" + {this.custom.area}))))" + }, + "type": "expr" + } + }, + "custom.plc_dict": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" + }, + "transforms": [ + { + "expression": "jsonGet({value},{this.custom.lookup_path})", + "type": "expression" + } + ], + "type": "tag" + } + }, + "custom.sub_area": { + "binding": { + "config": { + "expression": "if(isNull({this.custom.lookup_path}), \"\",\r\ntry(jsonGet({this.custom.plc_dict},\"SubArea\"), \"\"))" + }, + "type": "expr" + } + }, + "position.display": { + "binding": { + "config": { + "expression": "{view.params.size} \u003d \"large\"" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "path": "this.custom.path_to_display" + }, + "type": "property" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "fontFamily": "Arial", + "fontWeight": "bold", + "textAlign": "center" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "FlexContainer_0" + }, + "position": { + "basis": "150px", + "grow": 1 + }, + "type": "ia.container.flex" + } + ], + "meta": { + "name": "Area" + }, + "position": { + "basis": "200px", + "grow": 1 + }, + "type": "ia.container.flex" + }, + { + "meta": { + "name": "Icon_1", + "tooltip": { + "enabled": true + } + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "{[System]Gateway/Database/MariaDB/Available}" + }, + "transforms": [ + { + "fallback": "Database Connection Status: LOST", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "Database Connection Status: GOOD" + }, + { + "input": false, + "output": "Database Connection Status: LOST" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "expr" + } + }, + "props.color": { + "binding": { + "config": { + "expression": "{[System]Gateway/Database/MariaDB/Available}" + }, + "transforms": [ + { + "fallback": "#FF0000", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "#47FF47" + }, + { + "input": false, + "output": "#FF0000" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": " db_tag_path \u003d \"[System]Gateway/Database/MariaDB/Available\"\n\t\n if not (system.tag.readBlocking([db_tag_path])[0].value):\n \tsystem.perspective.openPopup(\"errorPopup\",\u0027PopUp-Views/DatabaseError\u0027, title\u003d\"Database Error\")\n\t" + }, + "persistent": true + } + }, + "props": { + "color": "#FF0000", + "path": "material/table_chart" + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Spacer 1" + }, + "position": { + "basis": "20px" + }, + "props": { + "text": " " + }, + "type": "ia.display.label" + }, + { + "custom": { + "buttonid": "HeaderNotifyIcon", + "entries": [ + { + "PrimaryKey": "2024-05-08 10:17:51", + "author": "pll", + "body": "Introducing our brand new Announcement Feature! 🎉 Stay in the loop with important updates, new features, planned downtime events, all in one place. Never miss out again! Check it out now and stay tuned for the latest updates. 🔊", + "childproj": "https://eu-preprod.scada2.rme.amazon.dev: MAN2", + "expire": "2024-05-09 05:00:00", + "link1": "https://", + "link1title": "", + "link2": "https://", + "link2title": "", + "priority": "Healthy", + "publish": "2024-05-08 10:08:33", + "title": "📢 Exciting News! 📢", + "whids": "" + } + ], + "entryCount": 1, + "highestPriority": 5 + }, + "events": { + "dom": { + "onClick": [ + { + "config": { + "draggable": true, + "id": "ioNP2CXn", + "modal": true, + "overlayDismiss": true, + "resizable": true, + "showCloseIcon": true, + "title": "Notifications", + "type": "open", + "viewParams": { + "entryCount": "{/root/Icon_0.custom.entryCount}", + "instances": "{/root/Icon_0.custom.entries}" + }, + "viewPath": "PopUp-Views/Notify-Tool/Notify-Popup", + "viewportBound": false + }, + "scope": "C", + "type": "popup" + }, + { + "config": { + "script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" + }, + "scope": "G", + "type": "script" + } + ] + } + }, + "meta": { + "name": "Icon_0", + "tooltip": { + "enabled": true, + "location": "bottom-right", + "style": { + "whiteSpace": "pre" + }, + "text": "📢 Exciting News! 📢\n" + } + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "custom.refreshMSG": { + "binding": { + "config": { + "expression": "now(600000)" + }, + "type": "expr" + }, + "onChange": { + "enabled": null, + "script": "\tsystem.perspective.sendMessage(\u0027refreshNotifyIcon\u0027)" + } + }, + "position.display": { + "binding": { + "config": { + "path": "view.custom.EntriesList" + }, + "transforms": [ + { + "code": "\tfrom datetime import datetime\n\t\n#\tRead entries from dynamo table\n\treturns \u003d notifyTool.ReadFromDynamo.DynamoReader()\n\tEntriesList \u003d returns[\u0027Items\u0027]\n\tEntriesList.reverse()\n#\treturn EntriesList\n\n#\tCreate empty list and now string\n\tpublishdates \u003d []\n\tnow \u003d datetime.now()\n\tnowstr \u003d str(now)[:19]\n\tactiveNotify \u003d False\n\twhid \u003d self.session.custom.fc\n\tstates \u003d {\u0027Healthy\u0027:5,\u0027Diagnostic\u0027:4, \u0027Low\u0027:3, \u0027Medium\u0027:2, \u0027High\u0027:1}\n#\tCheck EntriesList for active entries based on publish and expire times\n\tactiveEntries \u003d []\n\ttooltip \u003d []\n\tcount \u003d 0\n\thighestPriority \u003d 5\n\tfor e in EntriesList:\n\t\t\n\t\tif len(e[\u0027whids\u0027])\u003e0:\n\t\t\tif whid in e[\u0027whids\u0027]:\n\t\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\t\tactiveEntries.append(e)\n\t\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\t\tactiveNotify \u003d True\n\t\t\t\t\tcount +\u003d1\n\t\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\t\telse:\n\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\tactiveEntries.append(e)\n\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\tactiveNotify \u003d True\t\t\n\t\t\t\tcount +\u003d1\t\n\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\n\t\t\t\n\ttooltiptext \u003d \u0027\u0027\n\tfor i in tooltip:\n\t\ttooltiptext+\u003d i+\u0027\\n\u0027\n\tself.custom.entries \u003d activeEntries\n\tself.custom.highestPriority \u003d highestPriority\n\tself.custom.entryCount \u003d count\n\tself.meta.tooltip.text \u003d tooltiptext\t\n\n\n#\treturn returns\n#\treturn activeEntries\n\treturn activeNotify", + "type": "script" + } + ], + "type": "property" + } + }, + "props.color": { + "binding": { + "config": { + "path": "this.custom.highestPriority" + }, + "transforms": [ + { + "fallback": "state5", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "state1" + }, + { + "input": 2, + "output": "state2" + }, + { + "input": 3, + "output": "state3" + }, + { + "input": 4, + "output": "state4" + }, + { + "input": 5, + "output": "state5" + } + ], + "outputType": "scalar", + "type": "map" + }, + { + "code": "\ttest \u003d self.session.custom.colours.colour_impaired\n\tstatecolor \u003d self.session.custom.colours[value]\n\treturn statecolor", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "path": "material/campaign", + "style": { + "marginLeft": 5, + "marginRight": 5 + } + }, + "scripts": { + "customMethods": [], + "extensionFunctions": null, + "messageHandlers": [ + { + "messageType": "refreshNotifyIcon", + "pageScope": true, + "script": "\n\tself.refreshBinding(\u0027props.color\u0027)\n\tself.refreshBinding(\u0027position.display\u0027)", + "sessionScope": true, + "viewScope": false + } + ] + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Spacer End_3" + }, + "position": { + "basis": "20px", + "shrink": 0 + }, + "props": { + "text": " " + }, + "type": "ia.display.label" + }, + { + "custom": { + "buttonid": "HeaderLegendIcon" + }, + "events": { + "dom": { + "onClick": [ + { + "config": { + "draggable": false, + "id": "TZyBcXB7", + "modal": true, + "overlayDismiss": true, + "resizable": false, + "showCloseIcon": false, + "type": "open", + "viewPath": "PopUp-Views/Legend_Popup/Legend-popup-view", + "viewportBound": true + }, + "scope": "C", + "type": "popup" + }, + { + "config": { + "script": "\tbuttonid \u003d self.custom.buttonid\n\tactivityLog.productMetrics.callLogger(self.view, \u0027click\u0027, buttonid)" + }, + "scope": "G", + "type": "script" + } + ] + } + }, + "meta": { + "name": "Icon", + "tooltip": { + "delay": 250, + "enabled": true, + "sustain": 1000, + "text": "Legend" + } + }, + "position": { + "basis": "35px" + }, + "props": { + "color": "#FFFFFF", + "path": "material/legend_toggle", + "style": { + "classes": "", + "marginRight": 20 + } + }, + "type": "ia.display.icon" + }, + { + "children": [ + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.navigate(page \u003d \"/Real-Time\")" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Icon" + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "props.color": { + "binding": { + "config": { + "path": "../Label.props.text" + }, + "transforms": [ + { + "code": "\t\n\treturn \"red\" if value \u003e 0 else \"#fff\"", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "path": "material/notifications_active", + "style": { + "classes": "" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "41px" + }, + "propConfig": { + "props.text": { + "binding": { + "config": { + "polling": { + "enabled": true, + "rate": "3" + }, + "queryPath": "GetActiveAlarmsByLocationAndPriority", + "returnFormat": "json" + }, + "transforms": [ + { + "code": "\ttotal \u003d sum(row[\"Count\"] for row in value if \"Count\" in row and row[\"Count\"] is not None)\n\treturn total", + "type": "script" + } + ], + "type": "query" + } + } + }, + "props": { + "style": { + "color": "#FFFFFF", + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "FlexContainer", + "tooltip": { + "enabled": true + } + }, + "position": { + "basis": "80px" + }, + "propConfig": { + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "{./Label.props.text} + \" active alarms in the system\"" + }, + "type": "expr" + } + } + }, + "props": { + "justify": "flex-end", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.container.flex" + }, + { + "meta": { + "hasDelegate": true, + "name": "Spacer End_2" + }, + "position": { + "basis": "20px", + "shrink": 0 + }, + "props": { + "text": " " + }, + "type": "ia.display.label" + }, + { + "custom": { + "covert": true + }, + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tdevice_list \u003d tags.tag_utilities.get_devices(self.session.custom.fc)\n\ttags.tag_utilities.reset_disconnect_tags(self.session.custom.fc, device_list)\n\tAWS.wbsckt_abort.close_websckt()" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Icon_2", + "tooltip": { + "enabled": true + } + }, + "position": { + "basis": "30px" + }, + "propConfig": { + "custom.heartbeat_received": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/wbsckt_heartbeat_interval" + }, + "transforms": [ + { + "expression": "if(secondsBetween(todate({value}),todate(now())) \u003e 70, False, True)", + "type": "expression" + } + ], + "type": "tag" + } + }, + "custom.wbsckt_running": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]System/wbsckt_running" + }, + "transforms": [ + { + "expression": "if({value} \u003d True \u0026\u0026 ({this.custom.heartbeat_received} \u003d True) , True, False)", + "type": "expression" + } + ], + "type": "tag" + } + }, + "meta.tooltip.text": { + "binding": { + "config": { + "path": "this.custom.wbsckt_running" + }, + "transforms": [ + { + "fallback": "", + "inputType": "scalar", + "mappings": [ + { + "input": true, + "output": "websocket running" + }, + { + "input": false, + "output": "websocket disconnected" + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + } + }, + "props.color": { + "binding": { + "config": { + "path": "this.custom.wbsckt_running" + }, + "transforms": [ + { + "fallback": "#000000", + "inputType": "scalar", + "mappings": [ + { + "input": false, + "output": "#FF4747" + }, + { + "input": true, + "output": "#FFFFFF" + } + ], + "outputType": "color", + "type": "map" + } + ], + "type": "property" + } + } + }, + "props": { + "path": "material/location_city", + "style": { + "cursor": "pointer" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "shrink": 0 + }, + "propConfig": { + "position.basis": { + "binding": { + "config": { + "expression": "len({this.props.text}) * 11 + \"px\"" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "direct", + "tagPath": "Configuration/FC" + }, + "type": "tag" + } + } + }, + "props": { + "icon": "material/building", + "style": { + "borderWidth": "0.25px", + "color": "#FFFFFF", + "textAlign": "", + "textIndent": 10 + }, + "textStyle": { + "lineBreak": "auto" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Spacer End" + }, + "position": { + "basis": "20px", + "shrink": 0 + }, + "props": { + "text": " " + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif self.session.props.auth.authenticated:\n\t\tsystem.perspective.logout()\n\telse:\n\t\tsystem.perspective.login()" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "User" + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "path": "material/person", + "style": { + "classes": "Header/Icon", + "color": "#FFFFFF" + } + }, + "type": "ia.display.icon" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tif self.session.props.auth.authenticated:\n\t\tsystem.perspective.logout()\n\telse:\n\t\tsystem.perspective.login()" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "hasDelegate": true, + "name": "Sign In" + }, + "position": { + "basis": "50px", + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "expression": "{view.params.size} !\u003d \"small\"" + }, + "type": "expr" + } + }, + "props.text": { + "binding": { + "config": { + "path": "session.props.auth.user.userName" + }, + "transforms": [ + { + "code": "\tif len(value) \u003d\u003d 0 or value \u003d\u003d \"null\":\n\t return \"Sign In\"\n\telse:\n\t return value.split(\"@\")[0]", + "type": "script" + } + ], + "type": "property" + } + } + }, + "props": { + "style": { + "classes": "Header/Icon", + "color": "#FFFFFF", + "cursor": "pointer", + "marginLeft": "4px" + } + }, + "type": "ia.display.label" + }, + { + "meta": { + "hasDelegate": true, + "name": "Spacer End_0" + }, + "position": { + "basis": "20px", + "shrink": 0 + }, + "props": { + "text": " " + }, + "type": "ia.display.label" + }, + { + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.closeSession()" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Exit", + "tooltip": { + "enabled": true, + "location": "bottom-left", + "style": { + "fontFamily": "Arial", + "fontSize": 12 + }, + "tail": false, + "text": "Exit Application" + } + }, + "position": { + "basis": "30px", + "shrink": 0 + }, + "props": { + "path": "material/exit_to_app", + "style": { + "classes": "Header/Icon", + "color": "#FFFFFF", + "cursor": "pointer" + } + }, + "type": "ia.display.icon" + }, + { + "meta": { + "hasDelegate": true, + "name": "Spacer End_1" + }, + "position": { + "basis": "16px", + "shrink": 0 + }, + "props": { + "text": " " + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "root" + }, + "props": { + "justify": "flex-end", + "style": { + "background": "rgb(43,43,43)" + } + }, + "type": "ia.container.flex" + } +} \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/thumbnail.png deleted file mode 100644 index 624d7c52..00000000 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/thumbnail.png and /dev/null differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json new file mode 100644 index 00000000..f683ffb1 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-08-13T10:40:40Z" + }, + "lastModificationSignature": "4ce5e1688ad7c77405b8cfc9c1b345a67d836df37efbab5e67a6057b918c5b6b" + } +} \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png new file mode 100644 index 00000000..60a7c812 Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json similarity index 99% rename from BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/view.json rename to BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json index 6df31687..d893ac2c 100644 --- a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/ControlCabinet/view.json +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/DPM/view.json @@ -155,7 +155,7 @@ "meta.visible": { "binding": { "config": { - "path": "session.custom.alarm_filter.show_dpm" + "path": "session.custom.alarm_filter.show_dpm_mcm" }, "type": "property" } diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/resource.json new file mode 100644 index 00000000..31acdbb4 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-08-13T10:41:52Z" + }, + "lastModificationSignature": "91ef3782d3ca48df7e47f83405d832a71919f7db9d22a367892673584758876a" + } +} \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/thumbnail.png new file mode 100644 index 00000000..ff69a027 Binary files /dev/null and b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/thumbnail.png differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/view.json new file mode 100644 index 00000000..d4c9a152 --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Equipment/MCM/view.json @@ -0,0 +1,267 @@ +{ + "custom": { + "disconnected": 0, + "plc": "value", + "priority": 0, + "priority_string": "No active alarms", + "searchId": "value", + "state": 0, + "state_string": "Normal" + }, + "params": { + "tagProps": [ + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value", + "value" + ] + }, + "propConfig": { + "custom.disconnected": { + "binding": { + "config": { + "path": "view.custom.state" + }, + "type": "property" + }, + "persistent": true + }, + "custom.plc": { + "binding": { + "config": { + "path": "view.params.tagProps[0]" + }, + "transforms": [ + { + "expression": "split({value}, \"/\")[0]", + "type": "expression" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.priority": { + "binding": { + "config": { + "path": "view.custom.state" + }, + "transforms": [ + { + "fallback": 0, + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": 4 + }, + { + "input": 2, + "output": 3 + }, + { + "input": 3, + "output": 2 + }, + { + "input": 4, + "output": 1 + } + ], + "outputType": "scalar", + "type": "map" + } + ], + "type": "property" + }, + "persistent": true + }, + "custom.priority_string": { + "binding": { + "config": { + "expression": "case({view.custom.state},\r\n1, \"High\",\r\n0, \"No active alarms\",\r\n\"Unknown\")" + }, + "type": "expr" + }, + "persistent": true + }, + "custom.searchId": { + "binding": { + "config": { + "path": "session.custom.searchId" + }, + "type": "property" + }, + "persistent": true + }, + "custom.state": { + "binding": { + "config": { + "fallbackDelay": 2.5, + "mode": "indirect", + "references": { + "0": "{view.params.tagProps[0]}", + "fc": "{session.custom.fc}" + }, + "tagPath": "[{fc}_SCADA_TAG_PROVIDER]{0}/STATE" + }, + "transforms": [ + { + "expression": "coalesce({value},0)", + "type": "expression" + } + ], + "type": "tag" + }, + "persistent": true + }, + "custom.state_string": { + "binding": { + "config": { + "expression": "case({view.custom.state},\r\n1, \"Communication Faulted\",\r\n0, \"Normal\",\r\n\"Unknown\")" + }, + "type": "expr" + }, + "persistent": true + }, + "params.tagProps": { + "paramDirection": "inout", + "persistent": true + } + }, + "props": { + "defaultSize": { + "height": 30, + "width": 41 + } + }, + "root": { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "height": 1, + "width": 1 + }, + "props": { + "text": "MCM", + "textStyle": { + "textAlign": "center" + } + }, + "type": "ia.display.label" + } + ], + "events": { + "dom": { + "onClick": { + "config": { + "script": "\tsystem.perspective.openDock(\u0027Docked-East-DS\u0027,params\u003d{\u0027tagProps\u0027:self.view.params.tagProps})" + }, + "scope": "G", + "type": "script" + }, + "onDoubleClick": { + "config": { + "script": "\ttagProps \u003d self.view.params.tagProps\n\tsystem.perspective.openPopup(\"StatusPopUP\", \"PopUp-Views/Controller-Equipment/Information\", params \u003d{\"tagProps\":tagProps})\n\t" + }, + "enabled": false, + "scope": "G", + "type": "script" + }, + "onMouseEnter": { + "config": { + "script": "\tfrom time import sleep\n\t\n\talarm \u003d []\n\tmessage \u003d None\n\t\n\tsleep(0.5)\n\t\n\tif system.tag.exists(\"System/aws_data\"):\n\t\tif self.view.params.tagProps[0] !\u003d \"\":\n\t\t\ttags_to_read \u003d system.tag.readBlocking(\"System/aws_data\")\n\t\t\tdecode_alarm_data \u003d system.util.jsonDecode(tags_to_read[0].value)\n\t\t\talarm \u003d [decode_alarm_data[i] for i in decode_alarm_data\n\t\t\t\t\tif decode_alarm_data[i][\u0027sourceId\u0027].startswith(self.view.params.tagProps[0])]\n\t\tif alarm:\n\t\t\talarm \u003d sorted(alarm, key \u003d lambda t:t[\u0027timestamp\u0027], reverse\u003dTrue)\n\t\t\tmessage \u003d max(alarm, key \u003d lambda p:p[\u0027priority\u0027]).get(\u0027message\u0027)\n\t\t\tif len(alarm) \u003e 1:\n\t\t\t\tmessage +\u003d \" (+\" + str(len(alarm)-1) + \")\"\n\tself.view.custom.alarm_message \u003d message" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "root", + "tooltip": { + "enabled": true, + "location": "top-left", + "style": {} + } + }, + "propConfig": { + "meta.tooltip.style.classes": { + "binding": { + "config": { + "expression": "{view.custom.priority}" + }, + "transforms": [ + { + "fallback": "Alarms-Styles/NoAlarm", + "inputType": "scalar", + "mappings": [ + { + "input": 1, + "output": "Alarms-Styles/Diagnostic" + }, + { + "input": 2, + "output": "Alarms-Styles/Low" + }, + { + "input": 3, + "output": "Alarms-Styles/Medium" + }, + { + "input": 4, + "output": "Alarms-Styles/High" + } + ], + "outputType": "style-list", + "type": "map" + } + ], + "type": "expr" + } + }, + "meta.tooltip.text": { + "binding": { + "config": { + "expression": "if(\n {view.custom.disconnected} \u003d false,\n \"Source Id: \" + {view.params.tagProps[0]} + \", Priority: \" + {view.custom.priority_string} + \", State: \" + {view.custom.state_string},\n \"Device Disconnected\"\n)\n" + }, + "type": "expr" + } + }, + "meta.visible": { + "binding": { + "config": { + "path": "session.custom.alarm_filter.show_dpm_mcm" + }, + "type": "property" + } + }, + "props.style.backgroundColor": { + "binding": { + "config": { + "expression": "if(\r\n {view.custom.disconnected},\r\n \u0027#808080\u0027,\r\n if(\r\n {view.custom.state} \u003d 1,\r\n \u0027#FF0000\u0027,\r\n if(\r\n {view.custom.state} \u003d 0,\r\n \u0027#00D900\u0027,\r\n \u0027#fff700\u0027\r\n )\r\n )\r\n)\r\n" + }, + "type": "expr" + } + } + }, + "props": { + "mode": "percent", + "style": { + "borderStyle": "solid", + "cursor": "pointer", + "overflow": "hidden" + } + }, + "type": "ia.container.coord" + } +} \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/thumbnail.png deleted file mode 100644 index 374a2e04..00000000 Binary files a/BNA8/com.inductiveautomation.perspective/views/autStand/MCM02-NC SORTER/thumbnail.png and /dev/null differ diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/BNA8/resource.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/BNA8/resource.json new file mode 100644 index 00000000..498b9b9c --- /dev/null +++ b/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/BNA8/resource.json @@ -0,0 +1,17 @@ +{ + "scope": "G", + "version": 1, + "restricted": false, + "overridable": true, + "files": [ + "view.json", + "thumbnail.png" + ], + "attributes": { + "lastModification": { + "actor": "admin", + "timestamp": "2025-08-13T11:02:53Z" + }, + "lastModificationSignature": "ab52984ab1922279ef640e4834ee41381436042c434ca808b61973d105a1a0e1" + } +} \ No newline at end of file diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/BNA8/thumbnail.png b/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/BNA8/thumbnail.png similarity index 100% rename from BNA8/com.inductiveautomation.perspective/views/autStand/BNA8/thumbnail.png rename to BNA8/com.inductiveautomation.perspective/views/autStand/Overview/BNA8/thumbnail.png diff --git a/BNA8/com.inductiveautomation.perspective/views/autStand/BNA8/view.json b/BNA8/com.inductiveautomation.perspective/views/autStand/Overview/BNA8/view.json similarity index 100% rename from BNA8/com.inductiveautomation.perspective/views/autStand/BNA8/view.json rename to BNA8/com.inductiveautomation.perspective/views/autStand/Overview/BNA8/view.json diff --git a/image_server/MCM02.svg b/image_server/MCM02.svg index 0fa32fed..971681e9 100644 --- a/image_server/MCM02.svg +++ b/image_server/MCM02.svg @@ -23,13 +23,13 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:document-units="mm" - inkscape:zoom="1.1212722" - inkscape:cx="1375.2237" - inkscape:cy="693.85474" + inkscape:zoom="1.5857184" + inkscape:cx="544.86347" + inkscape:cy="708.82701" inkscape:window-width="3840" inkscape:window-height="2036" - inkscape:window-x="-11" - inkscape:window-y="-3" + inkscape:window-x="3829" + inkscape:window-y="-11" inkscape:window-maximized="1" inkscape:current-layer="layer1" />