diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/Docked-Alarm/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/Docked-Alarm/view.json index 821b5a2..daa1638 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/Docked-Alarm/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/Docked-Alarm/view.json @@ -1917,11 +1917,11 @@ "data": [ { "Duration": "97h:57m:18s", - "Expiration": "Thu Jan 01 1970 01:00:00 GMT+0100 (Greenwich Mean Time)", + "Expiration": "Thu Jan 01 1970 04:00:00 GMT+0400 (Georgia Standard Time)", "Message": "Estop activated", "Priority": "4. High", "SourceId": "PLC03 / 30 / S0102", - "Timestamp": "Fri Jan 20 2023 16:59:56 GMT+0000 (Greenwich Mean Time)" + "Timestamp": "Fri Jan 20 2023 20:59:56 GMT+0400 (Georgia Standard Time)" } ], "mode": "multiple interval", diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/HistoricalAlarms/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/HistoricalAlarms/view.json deleted file mode 100644 index a3ab520..0000000 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/HistoricalAlarms/view.json +++ /dev/null @@ -1,2537 +0,0 @@ -{ - "custom": {}, - "params": {}, - "props": { - "defaultSize": { - "height": 1080, - "width": 1920 - } - }, - "root": { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "15.8px" - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "32px" - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label_3" - }, - "position": { - "basis": "32px" - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-White-12pt", - "fontWeight": "bold", - "text": "value", - "textAlign": "left", - "textIndent": "10px" - }, - "text": "Filter by Date/Time" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "32px", - "shrink": 0 - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-White-12pt", - "textAlign": "left", - "textIndent": "10px" - }, - "text": "Start" - }, - "type": "ia.display.label" - }, - { - "events": { - "system": { - "onStartup": { - "config": { - "script": "\timport datetime\n\t\t\n\ttime_now \u003d datetime.datetime.now()\n\tself.props.value \u003d time_now - datetime.timedelta(hours \u003d 1)\n\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "StartTime" - }, - "position": { - "basis": "32px", - "shrink": 0 - }, - "propConfig": { - "props.maxDate": { - "binding": { - "config": { - "path": "../EndTime.props.value" - }, - "type": "property" - } - }, - "props.minDate": { - "binding": { - "config": { - "expression": "addWeeks({../EndTime.props.value},-2)" - }, - "type": "expr" - } - } - }, - "props": { - "formattedValue": "Oct 13, 2025 9:20 PM", - "value": { - "$": [ - "ts", - 192, - 1760365224310 - ], - "$ts": 1760376024303 - } - }, - "type": "ia.input.date-time-input" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "32px", - "shrink": 0 - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-White-12pt", - "textAlign": "left", - "textIndent": "10px" - }, - "text": "End" - }, - "type": "ia.display.label" - }, - { - "events": { - "system": { - "onStartup": { - "config": { - "script": "\timport datetime\n\t\n\ttime_now \u003d datetime.datetime.now()\n\tself.props.value \u003d time_now" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "EndTime" - }, - "position": { - "basis": "32px", - "shrink": 0 - }, - "props": { - "formattedValue": "Oct 13, 2025 10:20 PM", - "value": { - "$": [ - "ts", - 192, - 1760365224308 - ], - "$ts": 1760379624303 - } - }, - "type": "ia.input.date-time-input" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "200px" - }, - "props": { - "direction": "column", - "style": { - "borderStyle": "solid", - "borderWidth": "0.5px" - } - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "32px" - }, - "props": { - "style": { - "textAlign": "left", - "textIndent": "10px" - } - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label_3" - }, - "position": { - "basis": "32px", - "shrink": 0 - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-White-12pt", - "fontWeight": "bold", - "text": "value", - "textAlign": "left", - "textIndent": "10px" - }, - "text": "Filter by Device" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "32px" - }, - "type": "ia.display.label" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tdevice \u003d self.props.value\n\tpayload[\"device\"] \u003d device\n\tsystem.perspective.sendMessage(\"device-filter\", payload \u003d payload, scope \u003d \"page\")" - }, - "scope": "G", - "type": "script" - } - }, - "system": { - "onStartup": { - "config": { - "script": "\tdevices \u003d system.tag.readBlocking([\"Configuration/DetailedViews\"])\n\tdevices \u003d devices[0].value\n\tdevices_decoded \u003d system.util.jsonDecode(devices)\n\tdevice_list \u003d []\n\tno_device \u003d {}\n\tno_device[\"value\"]\u003d\"\"\n\tno_device[\"label\"]\u003d\"None\"\n\tdevice_list.append(no_device)\n\tfor i in devices_decoded:\n\t\tdevice_dict \u003d{}\n\t\tif len(devices_decoded[i]) \u003d\u003d 1:\n\t\t\tdevice_dict[\"value\"] \u003d i\n\t\t\tdevice_dict[\"label\"]\u003d i\n\t\t\tdevice_list.append(device_dict)\n\t\telse:\n\t\t\titems \u003d devices_decoded[i]\n\t\t\tfor item in items:\n\t\t\t\tdevice_dict \u003d{}\n\t\t\t\tdevice_dict[\"value\"] \u003d item\n\t\t\t\tdevice_dict[\"label\"]\u003d item\n\t\t\t\tdevice_list.append(device_dict)\n\t\t\t\t\n\tself.props.options \u003d device_list\t" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "32px", - "shrink": 0 - }, - "props": { - "options": [ - { - "label": "None", - "value": "" - }, - { - "label": "MCM01 Bulk Inbound", - "value": "MCM01 Bulk Inbound" - }, - { - "label": "MCM04 Sorter Destination, Chutes and Bypass", - "value": "MCM04 Sorter Destination, Chutes and Bypass" - }, - { - "label": "MCM02 Fluid Inbound", - "value": "MCM02 Fluid Inbound" - }, - { - "label": "MCM03 Fluid Inbound", - "value": "MCM03 Fluid Inbound" - }, - { - "label": "MCM05 Sorter Destination and Chutes", - "value": "MCM05 Sorter Destination and Chutes" - } - ], - "value": "None" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "device-filter-reset", - "pageScope": true, - "script": "\t# implement your handler here\n\tdevice_selection \u003d payload[\"device\"]\n\tself.props.value \u003d device_selection", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "200px" - }, - "props": { - "direction": "column", - "style": { - "borderStyle": "solid", - "borderWidth": "0.5px" - } - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "32px", - "grow": 1 - }, - "props": { - "style": { - "textAlign": "left", - "textIndent": "10px" - } - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "32px", - "grow": 1 - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label_3" - }, - "position": { - "basis": "32px", - "shrink": 0 - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-White-12pt", - "fontWeight": "bold", - "text": "value", - "textAlign": "left", - "textIndent": "10px" - }, - "text": "Filter by Severity" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "32px" - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Critical", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tseverity \u003d self.custom.Severity\n\tpayload[\"severity\"] \u003d severity\n\tsystem.perspective.sendMessage(\"severity-filter\", payload \u003d payload , scope \u003d \"page\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"true\",1,0)" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "Alarms-Styles/Critical" - }, - { - "input": 0, - "output": "Alarms-Styles/NoAlarm-Black" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "color": "#FFFFFF", - "path": "material/error" - }, - "position": "top" - }, - "style": {}, - "text": "Critical" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background\n\t", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "High", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tseverity \u003d self.custom.Severity\n\tpayload[\"severity\"] \u003d severity\n\tsystem.perspective.sendMessage(\"severity-filter\", payload \u003d payload , scope \u003d \"page\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_0" - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"true\",1,0)" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "Alarms-Styles/High" - }, - { - "input": 0, - "output": "Alarms-Styles/NoAlarm-Black" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/priority_high" - }, - "position": "top" - }, - "style": {}, - "text": "High" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Medium", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tseverity \u003d self.custom.Severity\n\tpayload[\"severity\"] \u003d severity\n\tsystem.perspective.sendMessage(\"severity-filter\", payload \u003d payload , scope \u003d \"page\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"true\",1,0)" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "Alarms-Styles/Medium" - }, - { - "input": 0, - "output": "Alarms-Styles/NoAlarm-Black" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/priority_high" - }, - "position": "top" - }, - "style": {}, - "text": "Medium" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "50px", - "shrink": 0 - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "7px" - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Low", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tseverity \u003d self.custom.Severity\n\tpayload[\"severity\"] \u003d severity\n\tsystem.perspective.sendMessage(\"severity-filter\", payload \u003d payload , scope \u003d \"page\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"true\",1,0)" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "Alarms-Styles/Low" - }, - { - "input": 0, - "output": "Alarms-Styles/NoAlarm-Black" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/low_priority" - }, - "position": "top" - }, - "style": {}, - "text": "Low" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Diagnostic", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload \u003d {}\n\tseverity \u003d self.custom.Severity\n\tpayload[\"severity\"] \u003d severity\n\tsystem.perspective.sendMessage(\"severity-filter\", payload \u003d payload , scope \u003d \"page\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_0" - }, - "position": { - "basis": "80px" - }, - "propConfig": { - "props.style.classes": { - "binding": { - "config": { - "expression": "if({this.custom.background_on}\u003d\"true\",1,0)" - }, - "transforms": [ - { - "fallback": "", - "inputType": "scalar", - "mappings": [ - { - "input": 1, - "output": "Alarms-Styles/Diagnostic" - }, - { - "input": 0, - "output": "Alarms-Styles/NoAlarm-Black" - } - ], - "outputType": "style-list", - "type": "map" - } - ], - "type": "expr" - } - } - }, - "props": { - "image": { - "icon": { - "path": "material/warning" - }, - "position": "top" - }, - "style": {}, - "text": "Diagnostic" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\t# implement your handler here\n\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "100px" - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer_0" - }, - "position": { - "basis": "50px", - "shrink": 0 - }, - "type": "ia.container.flex" - } - ], - "custom": { - "SeverityFilter": "value" - }, - "meta": { - "name": "FlexContainer_1" - }, - "position": { - "basis": "200px" - }, - "props": { - "direction": "column", - "style": { - "borderStyle": "solid", - "borderWidth": "0.5px" - } - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Label_3" - }, - "position": { - "basis": "200px", - "grow": 1, - "shrink": 10 - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label_3" - }, - "position": { - "basis": "32px" - }, - "props": { - "style": { - "classes": "Text-Styles/Ariel-Bold-White-12pt", - "fontWeight": "bold", - "text": "value", - "textAlign": "left", - "textIndent": "10px" - }, - "text": "Reset Filters" - }, - "type": "ia.display.label" - }, - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "32px" - }, - "type": "ia.display.label" - }, - { - "children": [ - { - "meta": { - "name": "Label" - }, - "position": { - "basis": "5px", - "grow": 1 - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "Critical", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tpayload1 \u003d {}\n\tpayload2 \u003d{}\n\tpayload3 \u003d{}\n\tpayload1[\"severity\"] \u003d \"\"\n\tpayload2[\"device\"] \u003d \"None\"\n\tpayload3[\"device\"] \u003d \"\"\n\tsystem.perspective.sendMessage(\"severity-filter\", payload \u003d payload1 , scope \u003d \"page\")\n\tsystem.perspective.sendMessage(\"button-severity-indicator\", payload \u003d payload1 , scope \u003d \"page\")\n\tsystem.perspective.sendMessage(\"device-filter-reset\", payload \u003d payload2 , scope \u003d \"page\")\n\tsystem.perspective.sendMessage(\"device-filter\", payload \u003d payload3 , scope \u003d \"page\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "80px" - }, - "props": { - "image": { - "icon": { - "color": "#FFFFFF", - "path": "material/clear" - }, - "position": "top" - }, - "style": { - "classes": "Alarms-Styles/NoAlarm-Black" - }, - "text": "Reset Filters" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background\n\t", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "High", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tsystem.perspective.toggleDock(\"Docked-West\")" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_0" - }, - "position": { - "basis": "80px" - }, - "props": { - "image": { - "icon": { - "path": "material/toggle_on" - }, - "position": "top" - }, - "style": { - "classes": "Alarms-Styles/NoAlarm-Black" - }, - "text": "Toggle Dock" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_2" - }, - "position": { - "basis": "10px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Severity": "High", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tdata \u003d self.parent.parent.parent.parent.getChild(\"Table\").props.data\n\tdataset \u003d system.dataset.dataSetToHTML(1,data,\"Test\")\n\tsystem.perspective.print(type(dataset))\n\tsystem.perspective.download(\"myExport.html\",dataset)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "80px" - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - }, - "position": "top" - }, - "style": { - "classes": "Alarms-Styles/NoAlarm-Black" - }, - "text": "Export" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "meta": { - "name": "Label_1" - }, - "position": { - "basis": "5px", - "grow": 1 - }, - "type": "ia.display.label" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "50px", - "shrink": 0 - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "36px" - }, - "type": "ia.display.label" - } - ], - "custom": { - "SeverityFilter": "value" - }, - "meta": { - "name": "FlexContainer_2" - }, - "position": { - "basis": "200px" - }, - "props": { - "direction": "column", - "style": { - "borderStyle": "solid", - "borderWidth": "0.5px" - } - }, - "type": "ia.container.flex" - } - ], - "meta": { - "name": "FlexContainer" - }, - "position": { - "basis": "300px", - "shrink": 0 - }, - "props": { - "direction": "column" - }, - "type": "ia.container.flex" - }, - { - "meta": { - "name": "Label_0" - }, - "position": { - "basis": "15.8px" - }, - "type": "ia.display.label" - }, - { - "custom": { - "Historyfilters": { - "Acked": 2, - "AckedBy": "", - "Area": "", - "DeviceDescription": "", - "DeviceType": "", - "DisplayPath": "", - "Empty": 0, - "Interval": 0, - "LinkToOEEMP": "", - "LinkToPage": "", - "Name": "", - "PLC": "", - "Priority": 0, - "SubArea": "", - "TZ": "Europe/London", - "UDT": "" - }, - "export": "value", - "severityFilter": "" - }, - "meta": { - "name": "Table" - }, - "position": { - "basis": "1639px", - "grow": 1 - }, - "propConfig": { - "custom.Historyfilters.FC": { - "binding": { - "config": { - "fallbackDelay": 2.5, - "mode": "direct", - "tagPath": "Configuration/FC" - }, - "type": "tag" - } - }, - "custom.Historyfilters.StartDT": { - "binding": { - "config": { - "path": "../FlexContainer/FlexContainer/StartTime.props.value" - }, - "type": "property" - } - }, - "custom.Historyfilters.StopDT": { - "binding": { - "config": { - "path": "../FlexContainer/FlexContainer/EndTime.props.value" - }, - "type": "property" - } - }, - "custom.alarmHistory": { - "binding": { - "config": { - "parameters": { - "Ackd": "{this.custom.Historyfilters.Acked}", - "AckdBy": "{this.custom.Historyfilters.AckedBy}", - "Area": "{this.custom.Historyfilters.Area}", - "DeviceDescription": "{this.custom.Historyfilters.DeviceDescription}", - "DeviceType": "{this.custom.Historyfilters.DeviceType}", - "DisplayPath": "{this.custom.Historyfilters.DisplayPath}", - "Empty": "{this.custom.Historyfilters.Empty}", - "Finish": "{this.custom.Historyfilters.StopDT}", - "Interval": "{this.custom.Historyfilters.Interval}", - "LinkToOEEMP": "{this.custom.Historyfilters.LinkToOEEMP}", - "LinkToPage": "{this.custom.Historyfilters.LinkToPage}", - "Name": "{this.custom.Historyfilters.Name}", - "PLC": "{this.custom.Historyfilters.PLC}", - "Priority": "{this.custom.Historyfilters.Priority}", - "Start": "{this.custom.Historyfilters.StartDT}", - "SubArea": "{this.custom.Historyfilters.SubArea}", - "TZ": "{this.custom.Historyfilters.TZ}", - "UDT": "{this.custom.Historyfilters.UDT}", - "WHID": "{Configuration/FC}" - }, - "polling": { - "enabled": true, - "rate": "2" - }, - "queryPath": "StoredProcedures/GetHistoricalAlarms", - "returnFormat": "dataset" - }, - "type": "query" - } - }, - "custom.export": { - "onChange": { - "enabled": null, - "script": "\tdata \u003d self.props.data\n\tsystem.perspective.download(\"AlarmExport\", data)" - } - }, - "custom.severityFilter": { - "onChange": { - "enabled": null, - "script": "\tpayload \u003d {}\n\tseverity \u003d self.custom.severityFilter\n\tpayload[\"severity\"] \u003d severity\n\tsystem.perspective.sendMessage(\"button-severity-indicator\", payload\u003d payload, scope \u003d \"page\")" - } - }, - "props.data": { - "binding": { - "config": { - "path": "this.custom.alarmHistory" - }, - "type": "property" - } - } - }, - "props": { - "columns": [ - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY HH:mm:ss", - "editable": false, - "field": "TimeStamp", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Duration", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Name", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Acked", - "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": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "UDT", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "UID", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "DeviceDescription", - "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": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "DeviceType", - "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": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "DisplayPath", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Area", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "SubArea", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "PLC", - "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": true, - "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "MaintenanceTemplate", - "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": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "LinkToPage", - "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": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "LinkToBOM", - "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": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "LinkToHelp", - "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": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "LinkToOEEMP", - "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": "" - } - ], - "filter": { - "enabled": true - }, - "headerGroups": [ - [] - ] - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "severity-filter", - "pageScope": true, - "script": "\tfilter \u003d payload[\"severity\"]\n\tself.custom.severityFilter \u003d filter\n\tself.props.filter.text \u003d filter\n\t", - "sessionScope": false, - "viewScope": false - }, - { - "messageType": "device-filter", - "pageScope": true, - "script": "\t# implement your handler here\n\tdevice\u003d payload[\"device\"]\n\tself.custom.Historyfilters.PLC \u003d device", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.display.table" - } - ], - "meta": { - "name": "root" - }, - "props": { - "style": { - "classes": "Background-Styles/Main-Background" - } - }, - "type": "ia.container.flex" - } -} \ No newline at end of file diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json index 934b226..2a1c822 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/com.inductiveautomation.perspective/views/Alarm-Views/RealTime/view.json @@ -792,13 +792,13 @@ }, "header": { "align": "center", - "justify": "left", + "justify": "center", "style": { "classes": "" }, "title": "" }, - "justify": "auto", + "justify": "center", "nullFormat": { "includeNullStrings": false, "nullFormatValue": "", @@ -884,13 +884,13 @@ }, "header": { "align": "center", - "justify": "left", + "justify": "center", "style": { "classes": "" }, "title": "Event Timestamp" }, - "justify": "auto", + "justify": "center", "nullFormat": { "includeNullStrings": false, "nullFormatValue": "", @@ -1308,6 +1308,99 @@ "visible": true, "width": 150 }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Tag", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": false, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "", + "value": "" + }, + "visible": "on-hover" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "", + "textAlign": "center" + }, + "title": "Tag" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "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": "ascending", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, { "align": "center", "boolean": "checkbox", @@ -1343,11 +1436,11 @@ }, "header": { "align": "center", - "justify": "left", + "justify": "center", "style": { "classes": "" }, - "title": "" + "title": "FullTag" }, "justify": "auto", "nullFormat": { @@ -1436,11 +1529,11 @@ }, "header": { "align": "center", - "justify": "left", + "justify": "center", "style": { "classes": "" }, - "title": "" + "title": "Device" }, "justify": "auto", "nullFormat": { @@ -1493,98 +1586,6 @@ "viewPath": "", "visible": true, "width": "" - }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "NumberID", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "Number (ID)" - }, - "justify": "left", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "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": "ascending", - "sortable": false, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" } ], "emptyMessage": { @@ -1632,6 +1633,85 @@ }, { "children": [ + { + "children": [ + { + "custom": { + "SetFilter": true + }, + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tpayload \u003d {}\n\tif self.custom.SetFilter \u003d\u003d True:\n\t\tpayload[\"data\"] \u003d False\n\t\tself.custom.SetFilter \u003d False\n\t\n\telif self.custom.SetFilter \u003d\u003d False:\n\t\tpayload[\"data\"] \u003d True\n\t\tself.custom.SetFilter \u003d True\n\t\n\tsystem.perspective.sendMessage(\"show-historical-filters\", payload \u003d payload, scope \u003d \"page\")\n\t" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Button", + "tooltip": { + "enabled": true, + "style": { + "background-color": "white", + "borderColor": "#000000", + "borderStyle": "solid", + "borderWidth": "1px", + "box-shadow": "5px 5px 5px grey", + "color": "#000000", + "fontFamily": "Arial", + "fontWeight": "normal" + }, + "text": "Show Filters" + } + }, + "position": { + "basis": "120px" + }, + "props": { + "image": { + "icon": { + "path": "material/filter_alt" + }, + "position": "center" + }, + "primary": false, + "style": { + "margin": 15, + "marginLeft": 20 + }, + "text": "" + }, + "type": "ia.input.button" + }, + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "281px" + }, + "props": { + "style": { + "color": "#FF0000", + "margin-left": "20px" + }, + "text": "ALL TIMESTAMPS ARE IN UTC" + }, + "type": "ia.display.label" + } + ], + "meta": { + "name": "Show filters" + }, + "position": { + "basis": "70px", + "shrink": 0 + }, + "type": "ia.container.flex" + }, { "children": [ { @@ -1660,17 +1740,17 @@ "$": [ "ts", 192, - 1760443389071 + 1760665941637 ], - "$ts": 1760443389070 + "$ts": 1760665941636 }, "startDate": { "$": [ "ts", 192, - 1760443389071 + 1760665941637 ], - "$ts": 1760441589070 + "$ts": 1760664141636 } }, "meta": { @@ -1689,7 +1769,6 @@ } }, "props": { - "maxMenuHeight": 370, "options": [ { "label": "Past 30 Min", @@ -1822,13 +1901,7 @@ } }, "props.minDate": { - "access": "PUBLIC", - "binding": { - "config": { - "expression": "addDays(now(),-{this.custom.max_duration_days})" - }, - "type": "expr" - } + "access": "PUBLIC" }, "props.value": { "binding": { @@ -1839,12 +1912,20 @@ }, "onChange": { "enabled": null, - "script": "\tmessaging.message_handler.set_time_from_filters(self)" + "script": "\tmessaging.message_handler.set_time_from_filters(self)\n\t\t\n\tif system.date.secondsBetween(self.props.value,self.getSibling(\"DateTimeInput_0\").props.value) \u003e 604800:\n\t\tself.getSibling(\"DateTimeInput_0\").props.value \u003d system.date.addSeconds(self.props.value,604800)" } } }, "props": { - "formattedValue": "Oct 14, 2025 3:33 PM", + "formattedValue": "Oct 17, 2025 5:22 AM", + "minDate": { + "$": [ + "ts", + 192, + 1759755629641 + ], + "$ts": 1728219629641 + }, "style": { "margin": 15 } @@ -1900,7 +1981,7 @@ "props.maxDate": { "binding": { "config": { - "expression": "now()" + "expression": "if(dateDiff({../DateTimeInput.props.value},now(),\"day\") \u003c 7, now(),dateArithmetic({../DateTimeInput.props.value}, 7, \"days\"))" }, "type": "expr" } @@ -1908,7 +1989,7 @@ "props.minDate": { "binding": { "config": { - "expression": "addDays(now(),-365)" + "expression": "{../DateTimeInput.props.value}" }, "type": "expr" } @@ -1928,7 +2009,7 @@ } }, "props": { - "formattedValue": "Oct 14, 2025 4:03 PM", + "formattedValue": "Oct 17, 2025 5:52 AM", "style": { "margin": 15 }, @@ -1936,9 +2017,103 @@ "$": [ "ts", 192, - 1760443389071 + 1760665941637 ], - "$ts": 1760443389070 + "$ts": 1760665941636 + } + }, + "scripts": { + "customMethods": [], + "extensionFunctions": null, + "messageHandlers": [ + { + "messageType": "reset-historical-filters", + "pageScope": true, + "script": "#\tsystem.perspective.print(payload)\n#\treset \u003d payload[\"data\"]\n#\tself.props.value \u003d None\n\tpass", + "sessionScope": false, + "viewScope": false + } + ] + }, + "type": "ia.input.date-time-input" + } + ], + "meta": { + "name": "Time" + }, + "position": { + "basis": "70px", + "shrink": 0 + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "meta": { + "name": "Label" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "fontFamily": "Arial", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "Priority" + }, + "type": "ia.display.label" + }, + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\tmessaging.message_handler.set_priority_filters(self)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Dropdown" + }, + "position": { + "basis": "490px" + }, + "propConfig": { + "props.value": { + "persistent": false + } + }, + "props": { + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "Diagnostic", + "value": "diagnostic" + }, + { + "label": "Low", + "value": "low" + }, + { + "label": "Medium", + "value": "medium" + }, + { + "label": "High", + "value": "high" + } + ], + "style": { + "margin": 15 } }, "scripts": { @@ -1954,191 +2129,147 @@ } ] }, - "type": "ia.input.date-time-input" + "type": "ia.input.dropdown" + }, + { + "meta": { + "name": "Label_0" + }, + "position": { + "basis": "100px" + }, + "props": { + "style": { + "fontFamily": "Arial", + "fontWeight": "bold", + "textAlign": "center" + }, + "text": "MCM" + }, + "type": "ia.display.label" + }, + { + "meta": { + "name": "Dropdown_0" + }, + "position": { + "basis": "200px" + }, + "propConfig": { + "props.value": { + "persistent": false + } + }, + "props": { + "options": [ + { + "label": "All", + "value": "" + }, + { + "label": "MCM01", + "value": "MCM01" + }, + { + "label": "MCM02", + "value": "MCM02" + }, + { + "label": "MCM03", + "value": "MCM03" + }, + { + "label": "MCM04", + "value": "MCM04" + }, + { + "label": "MCM05", + "value": "MCM05" + }, + { + "label": "SMC", + "value": "SMC" + } + ], + "placeholder": { + "text": "Filter MCMs..." + }, + "style": { + "margin": 15 + } + }, + "scripts": { + "customMethods": [], + "extensionFunctions": null, + "messageHandlers": [ + { + "messageType": "hjsgdfn", + "pageScope": false, + "script": "\tpass", + "sessionScope": false, + "viewScope": false + } + ] + }, + "type": "ia.input.dropdown" } ], "meta": { - "name": "Time" + "name": "Priority" }, "position": { - "basis": 800, + "basis": "70px", "shrink": 0 }, "type": "ia.container.flex" - }, - { - "meta": { - "name": "Dropdown" - }, - "position": { - "basis": "200px" - }, - "propConfig": { - "props.value": { - "persistent": false - } - }, - "props": { - "options": [ - { - "label": "All", - "value": "" - }, - { - "label": "MCM01", - "value": "MCM01" - }, - { - "label": "MCM02", - "value": "MCM02" - }, - { - "label": "MCM03", - "value": "MCM03" - }, - { - "label": "MCM04", - "value": "MCM04" - }, - { - "label": "MCM05", - "value": "MCM05" - }, - { - "label": "SMC", - "value": "SMC" - } - ], - "placeholder": { - "text": "Filter MCMs..." - }, - "style": { - "margin": 15 - } - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "hjsgdfn", - "pageScope": false, - "script": "\t#hi\n\tpass", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.dropdown" - }, - { - "custom": { - "Severity": "Critical", - "background_on": "false" - }, - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tself.getSibling(\"Dropdown\").props.value \u003d \"\"\n\tself.parent.getChild(\"Time\").getChild(\"Dropdown\").props.value \u003d \"\"" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "color": "#000000", - "path": "material/clear" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Reset" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background\n\t", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" - }, - { - "events": { - "component": { - "onActionPerformed": { - "config": { - "script": "\tfrom datetime import datetime\n\t\n\ttry:\n\t data \u003d self.parent.parent.getChild(\"FlexContainer_0\").getChild(\"AlarmsTable\").props.data\n\t\n\t column_order \u003d [\n\t \"FirstTimestamp\",\n\t \"LastTimestamp\", \n\t \"Count\",\n\t \"Duration\",\n\t \"Priority\",\n\t \"Location\",\n\t \"Description\",\n\t \"Tag\"\n\t ]\n\t\n\t csv_content \u003d \",\".join(column_order) + \"\\n\"\n\t \t\n\t def unwrap(v):\n\t\t\tif hasattr(v, \u0027value\u0027):\n\t\t\t\treturn str(v.value)\n\t \t\n\t\t\treturn v\n\t \t\n\t if data and len(data) \u003e 0:\n\t for item in data:\n\t row_data \u003d []\n\t \n\t for col in column_order:\n\t # Look for the column in the current item\n\t if col in item:\n\t cell \u003d item[col]\n\t # Extract the value from the nested structure\n\t if isinstance(cell, dict) and \"value\" in cell:\n\t raw_value \u003d cell[\"value\"]\n\t else:\n\t raw_value \u003d cell\n\t else:\n\t raw_value \u003d \"\"\n\t \n\t # Process and clean the value\n\t processed_value \u003d unwrap(raw_value).replace(\",\", \";\")\n\t row_data.append(processed_value)\n\t \n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Export Error: \" + str(e))\n\t csv_content \u003d \"Export failed\\n\"\n\t\n\tcsv_bytes \u003d csv_content.encode(\"utf-8\")\n\tsystem.perspective.download(\"active_alarms.csv\", csv_bytes)" - }, - "scope": "G", - "type": "script" - } - } - }, - "meta": { - "name": "Button_1" - }, - "position": { - "basis": "120px" - }, - "props": { - "image": { - "icon": { - "path": "material/import_export" - } - }, - "primary": false, - "style": { - "margin": 15 - }, - "text": "Export" - }, - "scripts": { - "customMethods": [], - "extensionFunctions": null, - "messageHandlers": [ - { - "messageType": "button-severity-indicator", - "pageScope": true, - "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", - "sessionScope": false, - "viewScope": false - } - ] - }, - "type": "ia.input.button" } ], + "custom": { + "ShowFilters": true + }, "meta": { - "name": "FlexContainer" + "name": "Filters" }, "position": { - "basis": "70px" + "basis": "180px", + "shrink": 0 + }, + "propConfig": { + "position.display": { + "binding": { + "config": { + "path": "this.custom.ShowFilters" + }, + "type": "property" + }, + "persistent": true + } }, "props": { - "alignContent": "flex-start", + "direction": "column", "style": { - "overflow": "visible" + "borderStyle": "solid", + "borderWidth": "1px", + "box-shadow": "0 4px 20px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)", + "marginBottom": 10, + "marginLeft": 20, + "marginRight": 20, + "marginTop": 10 } }, + "scripts": { + "customMethods": [], + "extensionFunctions": null, + "messageHandlers": [ + { + "messageType": "show-historical-filters", + "pageScope": true, + "script": "\tshow \u003d payload[\"data\"]\n\tself.custom.ShowFilters \u003d show", + "sessionScope": false, + "viewScope": false + } + ] + }, "type": "ia.container.flex" }, { @@ -2159,14 +2290,22 @@ "name": "AlarmsTable" }, "position": { - "basis": "1080px", + "basis": "1920px", "grow": 1 }, "propConfig": { + "props.columns[4].filter.string.value": { + "binding": { + "config": { + "path": ".../Filters/Priority/Dropdown_0.props.value" + }, + "type": "property" + } + }, "props.columns[5].filter.string.value": { "binding": { "config": { - "path": ".../FlexContainer/Dropdown.props.value" + "path": ".../Filters/Priority/Dropdown.props.value" }, "type": "property" } @@ -2175,8 +2314,8 @@ "binding": { "config": { "parameters": { - "endTime": "{.../FlexContainer/Time/DateTimeInput_0.props.value}", - "startTime": "{.../FlexContainer/Time/DateTimeInput.props.value}" + "endTime": "{.../Filters/Time/DateTimeInput_0.props.value}", + "startTime": "{.../Filters/Time/DateTimeInput.props.value}" }, "polling": { "enabled": true, @@ -2219,7 +2358,7 @@ "condition": "", "value": "" }, - "enabled": false, + "enabled": true, "number": { "condition": "", "value": "" @@ -2228,11 +2367,11 @@ "condition": "", "value": "" }, - "visible": "on-hover" + "visible": "never" }, "footer": { "align": "center", - "justify": "left", + "justify": "center", "style": { "classes": "" }, @@ -2240,14 +2379,13 @@ }, "header": { "align": "center", - "justify": "left", + "justify": "center", "style": { - "backgroundColor": "#FFFEFE", "classes": "" }, "title": "First Timestamp" }, - "justify": "left", + "justify": "center", "nullFormat": { "includeNullStrings": false, "nullFormatValue": "", @@ -2301,7 +2439,7 @@ { "align": "center", "boolean": "value", - "dateFormat": "MM-DD-YYYY HH:mm:ss", + "dateFormat": "MM/DD/YYYY HH:mm:ss", "editable": false, "field": "LastTimestamp", "filter": { @@ -2574,98 +2712,6 @@ "visible": true, "width": "" }, - { - "align": "center", - "boolean": "checkbox", - "dateFormat": "MM/DD/YYYY", - "editable": false, - "field": "Priority", - "filter": { - "boolean": { - "condition": "" - }, - "date": { - "condition": "", - "value": "" - }, - "enabled": false, - "number": { - "condition": "", - "value": "" - }, - "string": { - "condition": "", - "value": "" - }, - "visible": "on-hover" - }, - "footer": { - "align": "center", - "justify": "left", - "style": { - "classes": "" - }, - "title": "" - }, - "header": { - "align": "center", - "justify": "center", - "style": { - "classes": "" - }, - "title": "" - }, - "justify": "center", - "nullFormat": { - "includeNullStrings": false, - "nullFormatValue": "", - "strict": false - }, - "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": "ascending", - "sortable": true, - "strictWidth": false, - "style": { - "classes": "" - }, - "toggleSwitch": { - "color": { - "selected": "", - "unselected": "" - } - }, - "viewParams": {}, - "viewPath": "", - "visible": true, - "width": "" - }, { "align": "center", "boolean": "checkbox", @@ -2757,6 +2803,97 @@ "visible": true, "width": "" }, + { + "align": "center", + "boolean": "checkbox", + "dateFormat": "MM/DD/YYYY", + "editable": false, + "field": "Priority", + "filter": { + "boolean": { + "condition": "" + }, + "date": { + "condition": "", + "value": "" + }, + "enabled": true, + "number": { + "condition": "", + "value": "" + }, + "string": { + "condition": "equals" + }, + "visible": "never" + }, + "footer": { + "align": "center", + "justify": "left", + "style": { + "classes": "" + }, + "title": "" + }, + "header": { + "align": "center", + "justify": "center", + "style": { + "classes": "" + }, + "title": "" + }, + "justify": "center", + "nullFormat": { + "includeNullStrings": false, + "nullFormatValue": "", + "strict": false + }, + "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": "ascending", + "sortable": true, + "strictWidth": false, + "style": { + "classes": "" + }, + "toggleSwitch": { + "color": { + "selected": "", + "unselected": "" + } + }, + "viewParams": {}, + "viewPath": "", + "visible": true, + "width": "" + }, { "align": "center", "boolean": "checkbox", @@ -3144,6 +3281,9 @@ }, "pager": { "activeOption": 100 + }, + "style": { + "margin": 20 } }, "type": "ia.display.table" @@ -3153,7 +3293,68 @@ "name": "FlexContainer_0" }, "position": { - "basis": "500px", + "basis": "980px", + "grow": 1 + }, + "props": { + "direction": "column" + }, + "type": "ia.container.flex" + }, + { + "children": [ + { + "events": { + "component": { + "onActionPerformed": { + "config": { + "script": "\n\tfrom datetime import datetime\n\t\n\ttry:\n\t data \u003d self.parent.parent.getChild(\"FlexContainer_0\").getChild(\"AlarmsTable\").props.data\n\t\n\t column_order \u003d [\n\t \"FirstTimestamp\",\n\t \"LastTimestamp\", \n\t \"Count\",\n\t \"Duration\",\n\t \"Priority\",\n\t \"Location\",\n\t \"Description\",\n\t \"Tag\"\n\t ]\n\t\n\t csv_content \u003d \",\".join(column_order) + \"\\n\"\n\t \n\t def unwrap(v):\n\t if hasattr(v, \u0027value\u0027):\n\t return str(v.value)\n\t return str(v)\n\t\n\t if data and len(data) \u003e 0:\n\t for item in data:\n\t row_data \u003d []\n\t for col in column_order:\n\t if col in item:\n\t cell \u003d item[col]\n\t if isinstance(cell, dict) and \"value\" in cell:\n\t raw_value \u003d cell[\"value\"]\n\t else:\n\t raw_value \u003d cell\n\t else:\n\t raw_value \u003d \"\"\n\t\n\t processed_value \u003d unwrap(raw_value).replace(\",\", \";\")\n\t row_data.append(processed_value)\n\t\n\t csv_content +\u003d \",\".join(row_data) + \"\\n\"\n\t else:\n\t csv_content +\u003d \"No alarms in current view\\n\"\n\t\n\texcept Exception as e:\n\t system.perspective.print(\"Export Error: \" + str(e))\n\t csv_content \u003d \"Export failed\\n\"\n\t\n\tcsv_bytes \u003d csv_content.encode(\"utf-8\")\n\tsystem.perspective.download(\"hitList_alarms.csv\", csv_bytes)" + }, + "scope": "G", + "type": "script" + } + } + }, + "meta": { + "name": "Export" + }, + "position": { + "basis": "120px" + }, + "props": { + "image": { + "icon": { + "path": "material/import_export" + } + }, + "primary": false, + "style": { + "margin": 15, + "marginLeft": 20 + }, + "text": "Export" + }, + "scripts": { + "customMethods": [], + "extensionFunctions": null, + "messageHandlers": [ + { + "messageType": "button-severity-indicator", + "pageScope": true, + "script": "\tbackground \u003d \"false\"\n\tseverity \u003d payload[\"severity\"]\n\tbutton_severity \u003d self.custom.Severity\n\tif severity \u003d\u003d button_severity:\n\t\tbackground \u003d \"true\"\n\telse:\n\t\tbackground \u003d \"false\"\n\t\n\tself.custom.background_on \u003d background", + "sessionScope": false, + "viewScope": false + } + ] + }, + "type": "ia.input.button" + } + ], + "meta": { + "name": "FlexContainer" + }, + "position": { + "basis": 100, "grow": 1 }, "type": "ia.container.flex" @@ -3166,8 +3367,7 @@ "tabIndex": 1 }, "props": { - "direction": "column", - "justify": "space-evenly" + "direction": "column" }, "type": "ia.container.flex" }, @@ -3282,17 +3482,17 @@ "$": [ "ts", 192, - 1760443389071 + 1760668996778 ], - "$ts": 1760443389070 + "$ts": 1760668996778 }, "startDate": { "$": [ "ts", 192, - 1760443389071 + 1760668996778 ], - "$ts": 1760441589070 + "$ts": 1760667196778 } }, "meta": { @@ -3459,7 +3659,7 @@ } }, "props": { - "formattedValue": "Oct 13, 2025 8:38 PM", + "formattedValue": "Oct 17, 2025 6:13 AM", "minDate": { "$": [ "ts", @@ -3551,7 +3751,7 @@ } }, "props": { - "formattedValue": "Oct 13, 2025 9:08 PM", + "formattedValue": "Oct 17, 2025 6:43 AM", "style": { "margin": 15 }, @@ -3559,9 +3759,9 @@ "$": [ "ts", 192, - 1760443389071 + 1760668996778 ], - "$ts": 1760443389070 + "$ts": 1760668996778 } }, "scripts": { @@ -3915,15 +4115,6 @@ "type": "property" } }, - "props.columns[2].filter.number.value": { - "binding": { - "config": { - "path": "this.custom.time_to_filter" - }, - "enabled": false, - "type": "property" - } - }, "props.columns[5].filter.string.value": { "binding": { "config": { @@ -4205,7 +4396,7 @@ "strict": false }, "number": "value", - "numberFormat": "0,0.##", + "numberFormat": "none", "progressBar": { "bar": { "color": "", diff --git a/SCADA_PERSPECTIVE_PARENT_PROJECT/ignition/named-query/GetAlarmsWithCount/query.sql b/SCADA_PERSPECTIVE_PARENT_PROJECT/ignition/named-query/GetAlarmsWithCount/query.sql index 37ff175..b771a3e 100644 --- a/SCADA_PERSPECTIVE_PARENT_PROJECT/ignition/named-query/GetAlarmsWithCount/query.sql +++ b/SCADA_PERSPECTIVE_PARENT_PROJECT/ignition/named-query/GetAlarmsWithCount/query.sql @@ -65,7 +65,7 @@ SELECT ) AS Duration, -- Activation count: how many times alarm triggered in the window - COUNT(*) AS ActivationCount, + COUNT(*) AS "Count", aed.strValue AS FullTag, ae.displaypath AS Device