SAT9/.resources/949cc16ac75166d8838018687fc9da90b62084b298a6fb48f7d3903494246ebf
2025-04-18 19:44:27 +04:00

961 lines
36 KiB
Plaintext

{
"custom": {
"key": {
"alt_pageid": "library",
"pageid": "library",
"start_time": {
"$": [
"ts",
192,
1702653666845
],
"$ts": 1702653102761
}
}
},
"events": {
"system": {
"onStartup": {
"config": {
"script": "\t#############################################################################################\n\t# Purpose:\tThis script searches the current views in the parent project. Script compares \t#\n\t#\t\t\tthe information from S3 to make sure the correct paths and information is\t\t#\n\t#\t\t\tdisplayed to the child objects. Where the path is the key for the JSON\t\t\t#\n\t# Login: \t\t\tDate:\t\t\t\t#Comment:\t\t\t\t\t\t\t\tVersion:\t# \n\t# dmamani\t\t\t1/4/23\t\t\t\tRelease to Production\t\t\t\t\tV1\t\t\t#\n\t# \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t#\n\t#############################################################################################\n\t\t\n\t# - Params to Force Filters to show all symbols on the custom properties\n\tself.session.custom.alarm_filter.show_running \u003d True\n\tself.session.custom.alarm_filter.show_safety \u003d True\n\tself.session.custom.alarm_filter.show_diagnostic \u003d True\n\tself.session.custom.alarm_filter.show_gateways \u003d True\n\tself.session.custom.alarm_filter.show_low_alarm \u003d True\n\tfrom SymbolLibrary import list_categories, fetch_library, update_symbol_library\n\t# - Default Symbol JSON structure definitions\n\tdefault_symbol_info \u003d {\"description\": \"\",\t\"name\": \"\",\t\"category\": \"\",\"info\": \"\"} \n\t# - Get all Symbol Views and write them to tags\n\tproject_info \u003d system.perspective.getProjectInfo()\n\tviews \u003d project_info.get(\u0027views\u0027,[])\n\t# - Define criterias\n\tfilter_criterion \u003d \"Symbol-Views\"\n\tfilter_criterion2 \u003d \"Symbol-Library-Views\"\n\tfilter_criterion3 \u003d \"Controller-Views\"\n\tfilter_criterion4 \u003d \"Symbol-Views/Equipment-Views/Test\"\n\t# - Filter views that are not necessary for the symbol library and ensure the correct path\n\tfiltered_views \u003d [\n\t\tview for view in views \n\t\tif filter_criterion in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion2 in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion3 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\tand not filter_criterion4 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\t]\n\t# - Create JSON from the list \n\tjson_structure \u003d []\n\tsymbol_view_list \u003d []\n\tfor view in filtered_views:\n\t\tinstance \u003d {\n\t\t\t\"instanceStyle\": {\n\t\t\t\t\"classes\": \"\"\n\t\t\t},\n\t\t\t\"instancePosition\": {},\n\t\t\t\"Path\": view.get(\u0027path\u0027,\u0027\u0027),\n\t\t\t\"forceRunning\": 3,\n\t\t\t\"forceFault\": None\n\t\t}\n\t\tjson_structure.append(instance)\n\t\tsymbol_view_list.append(view.get(\u0027path\u0027,\u0027\u0027))\n\tjson_structure.sort(key \u003d lambda x:x[\u0027Path\u0027].split(\"/\")[len(x[\u0027Path\u0027].split(\"/\"))-1])\n\t# - Encode JSON for igniton variables to populate correctly\n\tjson_result \u003d system.util.jsonEncode(json_structure)\n\tself.params.Dataset \u003d filtered_views\n\tself.params.FilteredViews \u003d json_structure\n\tsystem.perspective.print(filtered_views)\n\t\n\t# - Get all Symbol Categories from JSON Dictionary\t\n\tremote_json \u003d fetch_library(username\u003dself.session.props.auth.user.userName)\n\tfor path in json_structure:\n\t\tif path[\"Path\"] not in remote_json:\n\t\t\tupdate_symbol_library(path[\"Path\"], username\u003dself.session.props.auth.user.userName, **default_symbol_info)\n\t\t\tremote_json[path[\"Path\"]] \u003d default_symbol_info\n\t# - Remove by key in case symbol does not exist in Folder Structure\n\tself.params.SymbolLibrary \u003d {k: v for k, v in remote_json.items() if k in symbol_view_list}\n\tcategory_data \u003d [{\"Category\": category} for category in list_categories(self.params.SymbolLibrary)]\n\tself.params.CategoryList \u003d category_data\n"
},
"scope": "G",
"type": "script"
}
}
},
"params": {
"CategoryList": [
{
"Category": "ALL"
},
{
"Category": "Control"
},
{
"Category": "Device Status"
},
{
"Category": "Equipment Status"
},
{
"Category": "Field Device"
},
{
"Category": "Machine"
},
{
"Category": "Network"
},
{
"Category": "Not in use"
},
{
"Category": "Safety"
}
],
"SelectedCategory": "",
"SelectedDescription": "",
"SelectedInfo": "",
"SelectedPath": "",
"SelectedRow": "ALL",
"SymbolDetails": {
"ARSAW": {
"category": "",
"description": "",
"info": "Test",
"path": "Symbol-Views/Equipment-Views/ARSAW"
},
"AUS": {
"category": "A",
"description": "AUS DESCRIPTION AUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTIONAUS DESCRIPTION",
"info": "AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO AUS INFO ",
"path": "Symbol-Views/Equipment-Views/AUS"
},
"Camera": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Camera"
},
"ControlCabinet": {
"category": "",
"description": "",
"info": "### Symbol Information\nDate Created: 12/20/21\n\nCreated By: amazonuser\n\nSize: 10X10",
"path": "Symbol-Views/Equipment-Views/ControlCabinet"
},
"DeviceStatus": {
"category": "B",
"description": "",
"info": "",
"path": "Symbol-Views/Device-Views/DeviceStatus"
},
"DeviceStatus_old": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Device-Views/DeviceStatus_old"
},
"Estop": {
"category": "C",
"description": "E-stop description, E-stop description, E-stop description, E-stop description, E-stop description",
"info": "E-stop info, E-stop info, E-stop info, E-stop info, E-stop info, E-stop info, E-stop info",
"path": "Symbol-Views/Equipment-Views/Estop"
},
"GoodsLift": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/GoodsLift"
},
"JAM": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/JAM"
},
"Light_Curtain": {
"category": "B",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Light_Curtain"
},
"Main_Panel": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Main_Panel"
},
"Network": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Network"
},
"Pointer": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Pointer"
},
"PressureSwitch": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PressureSwitch"
},
"PullChord": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord"
},
"PullChord_End": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord_End"
},
"PullChord_Line": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord_Line"
},
"PullChord_Line_Vertical": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/PullChord_Line_Vertical"
},
"RFID": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/RFID"
},
"Robot": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Robot"
},
"SLAMs": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/SLAMs"
},
"SafetyGate": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/SafetyGate"
},
"Stacker_Destacker": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Stacker_Destacker"
},
"Status": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Status"
},
"StatusNonPowered": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/StatusNonPowered"
},
"StatusNonPowered_NS": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/StatusNonPowered_NS"
},
"Status_NS": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/Status_NS"
},
"THEA": {
"category": "",
"description": "",
"info": "",
"path": "Symbol-Views/Equipment-Views/THEA"
}
},
"SymbolLibrary": ""
},
"propConfig": {
"custom.key": {
"persistent": true
},
"params.CategoryList": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[0].viewParams.Categories"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.Dataset": {
"binding": {
"config": {
"path": "/root/Dashboard.props.widgets[3].viewParams.Dataset"
},
"type": "property"
}
},
"params.FilteredViews": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[3].viewParams.FilteredViews"
},
"type": "property"
}
},
"params.SelectedCategory": {
"paramDirection": "input",
"persistent": true
},
"params.SelectedDescription": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[1].viewParams.Description"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.SelectedInfo": {
"binding": {
"config": {
"bidirectional": true,
"path": "/root/Dashboard.props.widgets[2].viewParams.Information"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.SelectedPath": {
"paramDirection": "input",
"persistent": true
},
"params.SelectedRow": {
"onChange": {
"enabled": null,
"script": "\tfrom SymbolLibrary import search_items\n\tsystem.perspective.print(currentValue.value)\n\titems \u003d [{\t\"instanceStyle\": {\n\t\t\t\t\"classes\": \"\"\n\t\t\t\t\t},\n\t\t\t\t\t\"instancePosition\": {},\n\t\t\t\t\t\"forceRunning\": 3,\n\t\t\t\t\t\"forceFault\": None,\n\t\t\t\t\"Path\": item} for item in search_items(self.params.SymbolLibrary,currentValue.value)]\n\tsystem.perspective.print(items)\n\tself.params.FilteredViews \u003d items\n\t\n\t"
},
"paramDirection": "inout",
"persistent": true
},
"params.SymbolDetails": {
"binding": {
"config": {
"path": ""
},
"enabled": false,
"transforms": [
{
"code": "\tfrom SymbolLibrary import library_items\n\treturn library_items",
"type": "script"
}
],
"type": "property"
},
"paramDirection": "inout",
"persistent": true
},
"params.SymbolLibrary": {
"binding": {
"config": {
"path": "/root/Dashboard.props.widgets[3].viewParams.SymbolLibrary"
},
"type": "property"
},
"paramDirection": "inout",
"persistent": true
}
},
"props": {
"defaultSize": {
"height": 786,
"width": 1196
}
},
"root": {
"children": [
{
"events": {
"dom": {
"onDoubleClick": {
"config": {
"draggable": true,
"id": "editItem",
"modal": false,
"overlayDismiss": false,
"resizable": true,
"showCloseIcon": true,
"type": "open",
"viewParams": {
"btnTextPrimary": "Submit Changes",
"btnTextSecondary": "",
"editField1": "{view.params.SelectedCategory}",
"editField2": "{view.params.SelectedInfo}",
"editField3": "{view.params.SelectedDescription}",
"field1Description": "Category",
"field2Description": "Information",
"field3Description": "Description",
"message": " ",
"path": "{view.params.SelectedPath}",
"showCloseBtn": "False",
"title": "Update Symbol Details"
},
"viewPath": "PopUp-Views/EditItem",
"viewportBound": false
},
"scope": "C",
"type": "popup"
}
}
},
"meta": {
"name": "Dashboard"
},
"position": {
"basis": "400px",
"grow": 1
},
"propConfig": {
"props.widgets[0].viewParams.Dataset": {
"binding": {
"config": {
"path": "view.params.Dataset"
},
"type": "property"
}
}
},
"props": {
"editingToggle": false,
"stretch": {
"rowCount": 5
},
"widgets": [
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Category"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Category",
"position": {
"columnEnd": 3,
"columnStart": 1,
"rowEnd": 3,
"rowStart": 1
},
"style": {
"classes": ""
},
"viewParams": {
"Categories": [
{
"Category": "ALL"
},
{
"Category": "Control"
},
{
"Category": "Device Status"
},
{
"Category": "Equipment Status"
},
{
"Category": "Field Device"
},
{
"Category": "Machine"
},
{
"Category": "Network"
},
{
"Category": "Not in use"
},
{
"Category": "Safety"
}
],
"SelectedRow": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Symbol-Filter-View"
},
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Symbol Description"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Description",
"position": {
"columnEnd": 9,
"columnStart": 3,
"rowEnd": 6,
"rowStart": 4
},
"style": {
"classes": ""
},
"viewParams": {
"Description": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Selected-Symbol-Description"
},
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Symbol Information"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Information",
"position": {
"columnEnd": 3,
"columnStart": 1,
"rowEnd": 6,
"rowStart": 3
},
"style": {
"classes": ""
},
"viewParams": {
"Information": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Symbol-Information-View"
},
{
"body": {
"style": {
"classes": ""
}
},
"header": {
"enabled": true,
"style": {
"classes": ""
},
"title": "Symbol Library - All Available Symbols"
},
"isConfigurable": false,
"minSize": {
"columnSpan": 1,
"rowSpan": 1
},
"name": "Description",
"position": {
"columnEnd": 9,
"columnStart": 3,
"rowEnd": 4,
"rowStart": 1
},
"style": {
"classes": ""
},
"viewParams": {
"Dataset": [
{
"path": "Symbol-Views/Device-Views/DeviceStatus"
},
{
"path": "Symbol-Views/Device-Views/DeviceStatus_old"
},
{
"path": "Symbol-Views/Device-Views/Estop"
},
{
"path": "Symbol-Views/Equipment-Views/ARSAW"
},
{
"path": "Symbol-Views/Equipment-Views/AUS"
},
{
"path": "Symbol-Views/Equipment-Views/Camera"
},
{
"path": "Symbol-Views/Equipment-Views/ControlCabinet"
},
{
"path": "Symbol-Views/Equipment-Views/Estop"
},
{
"path": "Symbol-Views/Equipment-Views/GoodsLift"
},
{
"path": "Symbol-Views/Equipment-Views/JAM"
},
{
"path": "Symbol-Views/Equipment-Views/Light_Curtain"
},
{
"path": "Symbol-Views/Equipment-Views/Main_Panel"
},
{
"path": "Symbol-Views/Equipment-Views/Network"
},
{
"path": "Symbol-Views/Equipment-Views/Pointer"
},
{
"path": "Symbol-Views/Equipment-Views/PressureSwitch"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord_End"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord_Line"
},
{
"path": "Symbol-Views/Equipment-Views/PullChord_Line_Vertical"
},
{
"path": "Symbol-Views/Equipment-Views/RFID"
},
{
"path": "Symbol-Views/Equipment-Views/Robot"
},
{
"path": "Symbol-Views/Equipment-Views/SLAMs"
},
{
"path": "Symbol-Views/Equipment-Views/SafetyGate"
},
{
"path": "Symbol-Views/Equipment-Views/Stacker_Destacker"
},
{
"path": "Symbol-Views/Equipment-Views/Status"
},
{
"path": "Symbol-Views/Equipment-Views/StatusNonPowered"
},
{
"path": "Symbol-Views/Equipment-Views/StatusNonPowered_NS"
},
{
"path": "Symbol-Views/Equipment-Views/Status_NS"
},
{
"path": "Symbol-Views/Equipment-Views/THEA"
},
{
"path": "Symbol-Views/Equipment-Views/Test"
}
],
"FilteredViews": [
{
"Path": "Symbol-Views/Equipment-Views/ARSAW",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/AUS",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Camera",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/CognexCamera",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/ControlCabinet",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Device-Views/DeviceStatus",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Device-Views/DeviceStatus_old",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Device-Views/Estop",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Estop",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/GoodsLift",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/JAM",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Light_Curtain",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Main_Panel",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Network",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Pointer",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PressureSwitch",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord_End",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord_Line",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/PullChord_Line_Vertical",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/RFID",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Robot",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/SLAMs",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/SafetyGate",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Stacker_Destacker",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Status",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/StatusNonPowered",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/StatusNonPowered_NS",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/Status_NS",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
},
{
"Path": "Symbol-Views/Equipment-Views/THEA",
"forceFault": null,
"forceRunning": 3,
"instancePosition": {},
"instanceStyle": {
"classes": ""
}
}
],
"SelectedValue": "",
"SymbolLibrary": "",
"key": ""
},
"viewPath": "Symbol-Views/Symbol-Library-Views/Symbol-Icons-View"
}
]
},
"type": "ia.display.dashboard"
}
],
"meta": {
"name": "root"
},
"scripts": {
"customMethods": [],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "UserClickInfo",
"pageScope": true,
"script": "\tfrom pprint import pformat\n\tSymbolPath \u003d payload[\"UserClickPath\"]\n\tsystem.perspective.print(pformat(self.view.params.SymbolLibrary[SymbolPath]))\n\tself.view.params.SelectedInfo \u003d self.view.params.SymbolLibrary[SymbolPath][\u0027info\u0027]\n\tself.view.params.SelectedDescription \u003d self.view.params.SymbolLibrary[SymbolPath][\u0027description\u0027]\n\tself.view.params.SelectedPath \u003d SymbolPath \n\tself.view.params.SelectedCategory \u003d self.view.params.SymbolLibrary[SymbolPath][\u0027category\u0027]\n\tsystem.perspective.print(SymbolPath)\n",
"sessionScope": false,
"viewScope": false
},
{
"messageType": "UserClickCategory",
"pageScope": true,
"script": "\n\tSelectedRow \u003d payload[\"UserClickData\"]\n\tself.view.params.SelectedRow \u003d SelectedRow",
"sessionScope": false,
"viewScope": false
},
{
"messageType": "UserClickRefresh",
"pageScope": true,
"script": "\tfrom SymbolLibrary import list_categories, fetch_library\n\t\n\t#Get all Symbol Views and write them to tags\n\tproject_info \u003d system.perspective.getProjectInfo()\n\tviews \u003d project_info.get(\u0027views\u0027,[])\n\t# - Define criterias\n\tfilter_criterion \u003d \"Symbol-Views\"\n\tfilter_criterion2 \u003d \"Symbol-Library-Views\"\n\tfilter_criterion3 \u003d \"Controller-Views\"\n\tfilter_criterion4 \u003d \"Symbol-Views/Equipment-Views/Test\"\n\t# - Filter views that are not necessary for the symbol library and ensure the correct path\n\tfiltered_views \u003d [\n\t\tview for view in views \n\t\tif filter_criterion in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion2 in view.get(\u0027path\u0027,\u0027\u0027) \n\t\tand not filter_criterion3 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\tand not filter_criterion4 in view.get(\u0027path\u0027,\u0027\u0027)\n\t\t]\n\t# - Create JSON from the list \n\tjson_structure \u003d []\n\tsymbol_view_list \u003d []\n\tfor view in filtered_views:\n\t\tinstance \u003d {\n\t\t\t\"instanceStyle\": {\n\t\t\t\t\"classes\": \"\"\n\t\t\t},\n\t\t\t\"instancePosition\": {},\n\t\t\t\"Path\": view.get(\u0027path\u0027,\u0027\u0027),\n\t\t\t\"forceRunning\": 3,\n\t\t\t\"forceFault\": None\n\t\t}\n\t\tjson_structure.append(instance)\n\t\tsymbol_view_list.append(view.get(\u0027path\u0027,\u0027\u0027))\n\tjson_structure.sort(key \u003d lambda x:x[\u0027Path\u0027].split(\"/\")[len(x[\u0027Path\u0027].split(\"/\"))-1])\t\n\t# - Encode JSON for igniton variables to populate correctly\n\tjson_result \u003d system.util.jsonEncode(json_structure)\n\tself.view.params.Dataset \u003d filtered_views\n\tself.view.params.FilteredViews \u003d json_structure\n\tsystem.perspective.print(filtered_views)\n\t\n\t# - Get all Symbol Categories from JSON Dictionary\t\n\tremote_json \u003d fetch_library(username\u003dself.session.props.auth.user.userName)\n\tself.view.params.SymbolLibrary \u003d {k: v for k, v in remote_json.items() if k in symbol_view_list}\n\tcategory_data \u003d [{\"Category\": category} for category in list_categories(self.view.params.SymbolLibrary)]\n\tself.view.params.CategoryList \u003d category_data\n\tself.view.params.SelectedRow \u003d \u0027ALL\u0027\n\tself.view.params.SelectedDescription \u003d \"\"\n\tself.view.params.SelectedInfo \u003d \"\"",
"sessionScope": false,
"viewScope": false
}
]
},
"type": "ia.container.flex"
}
}