{ "custom": {}, "params": { "params": "value" }, "propConfig": { "params.params": { "paramDirection": "input", "persistent": true } }, "props": { "defaultSize": { "height": 1080, "width": 400 } }, "root": { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "32px" }, "props": { "path": "material/settings_applications", "style": { "marginLeft": "10px" } }, "type": "ia.display.icon" }, { "meta": { "name": "Label" }, "position": { "basis": "129px", "grow": 1 }, "props": { "style": { "marginLeft": "10px" }, "text": "Add Device", "textStyle": { "fontFamily": "Arial", "fontSize": "20px", "fontWeight": "bolder", "textAlign": "center" } }, "type": "ia.display.label" } ], "meta": { "name": "FlexContainer_1" }, "position": { "basis": "40px" }, "props": { "justify": "space-around", "style": { "marginTop": "10px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "129px" }, "props": { "style": { "marginLeft": "0px" }, "text": "Device :", "textStyle": { "fontFamily": "Arial", "fontSize": "16px", "fontWeight": "bold" } }, "type": "ia.display.label" }, { "custom": { "Device": "", "tagPath": "Configuration/FC" }, "meta": { "name": "TextField" }, "position": { "basis": "150px" }, "propConfig": { "props.text": { "onChange": { "enabled": null, "script": "\tsystem.perspective.sendMessage(\"update-device-data\", currentValue.value)" } } }, "props": { "placeholder": "\u003cDevice Id\u003e" }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "multiple_selection", "pageScope": true, "script": "\t# implement your handler here\n\tself.props.enabled \u003d not payload", "sessionScope": false, "viewScope": false }, { "messageType": "missing-data", "pageScope": true, "script": "\t# implement your handler here\n\t", "sessionScope": false, "viewScope": false } ] }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "40px" }, "props": { "justify": "space-around", "style": { "marginTop": "10px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label_0" }, "position": { "basis": "130px" }, "props": { "style": { "marginLeft": "0px" }, "text": "Area :", "textStyle": { "fontFamily": "Arial", "fontSize": "16px", "fontWeight": "bold" } }, "type": "ia.display.label" }, { "custom": { "key": "prefix", "tagPath": "Configuration/aws" }, "meta": { "name": "TextField_0" }, "position": { "basis": "150px" }, "propConfig": { "props.text": { "onChange": { "enabled": null, "script": "\tsystem.perspective.sendMessage(\"update-area-data\", currentValue.value)" } } }, "props": { "placeholder": "\u003cArea Id\u003e" }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "multiple_selection", "pageScope": true, "script": "\t# implement your handler here\n\tself.props.enabled \u003d not payload", "sessionScope": false, "viewScope": false } ] }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer_0" }, "position": { "basis": "40px" }, "props": { "justify": "space-around", "style": { "marginTop": "10px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label_0" }, "position": { "basis": "130px" }, "props": { "style": { "marginLeft": "0px" }, "text": "SubArea :", "textStyle": { "fontFamily": "Arial", "fontSize": "16px", "fontWeight": "bold" } }, "type": "ia.display.label" }, { "custom": { "key": "prefix", "tagPath": "Configuration/aws" }, "meta": { "name": "TextField_0" }, "position": { "basis": "150px" }, "propConfig": { "props.text": { "onChange": { "enabled": null, "script": "\tsystem.perspective.sendMessage(\"update-subarea-data\", currentValue.value)" } } }, "props": { "placeholder": "\u003cSubArea Id\u003e" }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "multiple_selection", "pageScope": true, "script": "\t# implement your handler here\n\tself.props.enabled \u003d not payload", "sessionScope": false, "viewScope": false } ] }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer_2" }, "position": { "basis": "40px" }, "props": { "justify": "space-around", "style": { "marginTop": "10px" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Checkbox" }, "position": { "basis": "130px" }, "propConfig": { "props.selected": { "onChange": { "enabled": null, "script": "\tsystem.perspective.sendMessage(\"multiple_selection\", payload\u003dcurrentValue.value)" } } }, "props": { "style": { "margin-left": "0px" }, "text": "Upload" }, "type": "ia.input.checkbox" }, { "custom": { "rowToAdd": { "Area": "", "Device": "", "SubArea": "" } }, "events": { "component": { "onActionPerformed": { "config": { "script": "\twhid \u003d self.session.custom.fc\n\ttagPath \u003d \"[%s_SCADA_TAG_PROVIDER]Configuration/PLC\"%(whid)\n\tself.custom.tagData.append(self.custom.rowToAdd)\n\t\n\ttag \u003d {}\n\tfor i in self.custom.tagData:\n\t\ttag[i[\"Device\"]]\u003d {\"Area\": i[\"Area\"], \"SubArea\":i[\"SubArea\"]}\n\t\t\n\t\n\tsystem.tag.writeBlocking([tagPath], [system.util.jsonEncode(tag)])\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Button", "tooltip": { "enabled": true, "text": "Missing Data for : [u\u0027Area\u0027, u\u0027SubArea\u0027, u\u0027Device\u0027]" } }, "position": { "basis": "150px" }, "propConfig": { "custom.tagData": { "binding": { "config": { "fallbackDelay": 2.5, "mode": "indirect", "references": { "fc": "{session.custom.fc}" }, "tagPath": "[{fc}_SCADA_TAG_PROVIDER]Configuration/PLC" }, "transforms": [ { "code": "\ttagData \u003d[{\"Device\":k, \"Area\":v[\"Area\"], \"SubArea\":v[\"SubArea\"]} for k,v in system.util.jsonDecode(value).items()]\n\treturn tagData", "type": "script" } ], "type": "tag" } }, "props.enabled": { "binding": { "config": { "path": "this.custom.rowToAdd" }, "transforms": [ { "code": "\n\tmissing_data \u003d []\n\tfor k, v in value.items():\n\t\tif not v:\n\t\t\tmissing_data.append(k)\n\t\n\tif missing_data:\n\t\tenabled \u003d False\n\t\tmsg \u003d \"Missing Data for : %s\"%missing_data\n\telse:\n\t\tenabled \u003d True\n\t\tmsg \u003d \"\"\n\t\n\tself.meta.tooltip.text \u003d msg \n\t\n\treturn enabled\n\t", "type": "script" } ], "type": "property" } } }, "props": { "image": { "icon": { "path": "material/add_circle" }, "position": "right" }, "primary": false, "text": "Submit" }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "update-device-data", "pageScope": true, "script": "\t# implement your handler here\n\tself.custom.rowToAdd[\"Device\"] \u003d payload", "sessionScope": false, "viewScope": false }, { "messageType": "update-area-data", "pageScope": true, "script": "\t# implement your handler here\n\tself.custom.rowToAdd[\"Area\"] \u003d payload", "sessionScope": false, "viewScope": false }, { "messageType": "update-subarea-data", "pageScope": true, "script": "\t# implement your handler here\n\tself.custom.rowToAdd[\"SubArea\"] \u003d payload", "sessionScope": false, "viewScope": false }, { "messageType": "multiple_selection", "pageScope": true, "script": "\t# implement your handler here\n\tself.position.display \u003d not payload", "sessionScope": false, "viewScope": false } ] }, "type": "ia.input.button" }, { "custom": { "data": { "ARSAW1301": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1302": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1303": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1304": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1305": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1306": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1307": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1308": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1309": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1310": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1311": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1312": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1501": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1502": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1503": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1504": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1505": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1506": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1507": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1508": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1509": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1510": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1511": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "ARSAW1512": { "Area": "AR FLOOR", "SubArea": "ARSAW\r" }, "FSC1": { "Area": "", "SubArea": "\r" }, "FSC10": { "Area": "OUTBOUND", "SubArea": "FSC\r" }, "FSC2": { "Area": "", "SubArea": "\r" }, "FSC_Cells": { "Area": "", "SubArea": "\r" }, "FSC_Induct_1-4": { "Area": "", "SubArea": "\r" }, "PLC01": { "Area": "OUTBOUND", "SubArea": "SHIP\r" }, "PLC02": { "Area": "OUTBOUND", "SubArea": "SHIP\r" }, "PLC03": { "Area": "OUTBOUND", "SubArea": "KO \u0026 REJECT\r" }, "PLC06": { "Area": "OUTBOUND", "SubArea": "TOTE ROUTER\r" }, "PLC07": { "Area": "OUTBOUND", "SubArea": "TOTE ROUTER\r" }, "PLC08": { "Area": "OUTBOUND", "SubArea": "TOTE FEED\r" }, "PLC09": { "Area": "INBOUND", "SubArea": "RECEIVING\r" }, "PLC09_Receiving2": { "Area": "", "SubArea": "\r" }, "PLC09_Receiving3": { "Area": "", "SubArea": "\r" }, "PLC1000": { "Area": "INBOUND", "SubArea": "RECEIVING\r" }, "PLC1000_Receiving4": { "Area": "", "SubArea": "\r" }, "PLC13": { "Area": "AR FLOOR", "SubArea": "ARSAW P2\r" }, "PLC13_SC2": { "Area": "", "SubArea": "\r" }, "PLC14": { "Area": "", "SubArea": "\r" }, "PLC15": { "Area": "AR FLOOR", "SubArea": "ARSAW P3\r" }, "PLC15_SC2": { "Area": "", "SubArea": "\r" }, "PLC16": { "Area": "AR FLOOR", "SubArea": "PICK TO REBIN P3\r" }, "PLC20": { "Area": "OUTBOUND", "SubArea": "AFE1 TOTE 1-3\r" }, "PLC20_Tote4-8": { "Area": "", "SubArea": "\r" }, "PLC21": { "Area": "OUTBOUND", "SubArea": "AFE TRAY ROUTER\r" }, "PLC22": { "Area": "OUTBOUND", "SubArea": "AFE TRAY ROUTER\r" }, "PLC23": { "Area": "OUTBOUND", "SubArea": "AFE1 TRAY FEED\r" }, "PLC24": { "Area": "OUTBOUND", "SubArea": "AFE1 WALL 1-2\r" }, "PLC25": { "Area": "OUTBOUND", "SubArea": "AFE1 WALL 3-4\r" }, "PLC26": { "Area": "OUTBOUND", "SubArea": "AFE1 WALL 5-6\r" }, "PLC27": { "Area": "OUTBOUND", "SubArea": "AFE1 WALL 7-8\r" }, "PLC30": { "Area": "OUTBOUND", "SubArea": "AFE1 PACK 1-4\r" }, "PLC31": { "Area": "OUTBOUND", "SubArea": "AFE1 PACK 5-8\r" }, "PLC32": { "Area": "OUTBOUND", "SubArea": "AFE1 EMP. TOTE\r" }, "PLC60": { "Area": "OUTBOUND", "SubArea": "S.PACKING 1\r" }, "PLC61": { "Area": "OUTBOUND", "SubArea": "S.PACKING 2\r" }, "PLC69": { "Area": "OUTBOUND", "SubArea": "GIFT WRAP\r" }, "PLC70": { "Area": "OUTBOUND", "SubArea": "TRANSSHIP\r" }, "PLC71": { "Area": "OUTBOUND", "SubArea": "TRANSSHIP\r" }, "PLC80": { "Area": "OUTBOUND", "SubArea": "SMART PACKING\r" }, "PLC81": { "Area": "OUTBOUND", "SubArea": "SMART PACKING\r" }, "PLC82": { "Area": "OUTBOUND", "SubArea": "SMART PACKING\r" }, "PLC97": { "Area": "SAFETY PLC", "SubArea": "\r" }, "PLC98": { "Area": "SAFETY PLC", "SubArea": "\r" }, "PLC99": { "Area": "SAFETY PLC", "SubArea": "\r" }, "THE": { "Area": "BOB", "SubArea": "NOB" } }, "list_data": [ "OUTBOUND", "PLC03", "KO \u0026 REJECT\r", "OUTBOUND", "PLC01", "SHIP\r", "OUTBOUND", "PLC02", "SHIP\r", "OUTBOUND", "PLC07", "TOTE ROUTER\r", "OUTBOUND", "PLC08", "TOTE FEED\r", "OUTBOUND", "PLC06", "TOTE ROUTER\r", "OUTBOUND", "PLC81", "SMART PACKING\r", "OUTBOUND", "PLC82", "SMART PACKING\r", "", "PLC09_Receiving3", "\r", "", "PLC09_Receiving2", "\r", "INBOUND", "PLC09", "RECEIVING\r", "", "PLC14", "\r", "AR FLOOR", "PLC15", "ARSAW P3\r", "AR FLOOR", "PLC13", "ARSAW P2\r", "AR FLOOR", "PLC16", "PICK TO REBIN P3\r", "", "FSC_Induct_1-4", "\r", "SAFETY PLC", "PLC98", "\r", "SAFETY PLC", "PLC99", "\r", "SAFETY PLC", "PLC97", "\r", "OUTBOUND", "FSC10", "FSC\r", "", "FSC_Cells", "\r", "OUTBOUND", "PLC25", "AFE1 WALL 3-4\r", "OUTBOUND", "PLC69", "GIFT WRAP\r", "OUTBOUND", "PLC26", "AFE1 WALL 5-6\r", "OUTBOUND", "PLC23", "AFE1 TRAY FEED\r", "OUTBOUND", "PLC24", "AFE1 WALL 1-2\r", "OUTBOUND", "PLC27", "AFE1 WALL 7-8\r", "AR FLOOR", "ARSAW1310", "ARSAW\r", "OUTBOUND", "PLC61", "S.PACKING 2\r", "AR FLOOR", "ARSAW1312", "ARSAW\r", "AR FLOOR", "ARSAW1510", "ARSAW\r", "AR FLOOR", "ARSAW1311", "ARSAW\r", "OUTBOUND", "PLC60", "S.PACKING 1\r", "AR FLOOR", "ARSAW1512", "ARSAW\r", "OUTBOUND", "PLC21", "AFE TRAY ROUTER\r", "AR FLOOR", "ARSAW1511", "ARSAW\r", "OUTBOUND", "PLC22", "AFE TRAY ROUTER\r", "INBOUND", "PLC1000", "RECEIVING\r", "OUTBOUND", "PLC20", "AFE1 TOTE 1-3\r", "AR FLOOR", "ARSAW1307", "ARSAW\r", "AR FLOOR", "ARSAW1505", "ARSAW\r", "AR FLOOR", "ARSAW1306", "ARSAW\r", "AR FLOOR", "ARSAW1504", "ARSAW\r", "AR FLOOR", "ARSAW1309", "ARSAW\r", "AR FLOOR", "ARSAW1507", "ARSAW\r", "AR FLOOR", "ARSAW1308", "ARSAW\r", "AR FLOOR", "ARSAW1506", "ARSAW\r", "AR FLOOR", "ARSAW1509", "ARSAW\r", "", "PLC20_Tote4-8", "\r", "AR FLOOR", "ARSAW1508", "ARSAW\r", "", "PLC13_SC2", "\r", "AR FLOOR", "ARSAW1301", "ARSAW\r", "OUTBOUND", "PLC70", "TRANSSHIP\r", "OUTBOUND", "PLC71", "TRANSSHIP\r", "AR FLOOR", "ARSAW1303", "ARSAW\r", "AR FLOOR", "ARSAW1501", "ARSAW\r", "OUTBOUND", "PLC32", "AFE1 EMP. TOTE\r", "AR FLOOR", "ARSAW1302", "ARSAW\r", "AR FLOOR", "ARSAW1305", "ARSAW\r", "AR FLOOR", "ARSAW1503", "ARSAW\r", "OUTBOUND", "PLC30", "AFE1 PACK 1-4\r", "AR FLOOR", "ARSAW1304", "ARSAW\r", "AR FLOOR", "ARSAW1502", "ARSAW\r", "OUTBOUND", "PLC31", "AFE1 PACK 5-8\r", "OUTBOUND", "PLC80", "SMART PACKING\r", "", "FSC1", "\r", "", "PLC15_SC2", "\r", "", "FSC2", "\r", "", "PLC1000_Receiving4", "\r", "BOB", "THE", "NOB" ] }, "events": { "component": { "onFileReceived": { "config": { "script": "#\tpayload\u003d{\"fileContent\":event.file.getString(),\"fileName\":event.file.name}\n#\twhid \u003d self.session.custom.fc\n#\tdata \u003d{}\n#\tdef get_child():\n#\t\treturn {\n#\t\t\t\"Area\":\"\",\n#\t\t\t\"SubArea\":\"\"\n#\t\t}\n#\t\t\n#\tdef convert_csv_string_list(string):\n#\t\treturn string.replace(\"\\n\",\",\").replace(\"\\\"\",\"\").split(\",\")[3:]\n#\t\n#\tlist_data \u003d convert_csv_string_list(event.file.getString())\n#\tself.custom.list_data \u003d list_data\n#\tfor i in range(2, len(list_data),3):\n#\t\tchild \u003d get_child()\n#\t\tchild[\"Area\"] \u003d list_data[i-2]\n#\t\tchild[\"SubArea\"] \u003d list_data[i]\n#\t\tdata[list_data[i-1]]\u003d child\n#\n#\tself.custom.data \u003d data\n#\t\n#\t\n#\tvalues \u003d system.util.jsonEncode(data)\n#\t\n#\tsystem.tag.writeBlocking([\"[%s_SCADA_TAG_PROVIDER]Configuration/PLC\"%whid], values)\n#\t\n\twhid \u003d self.session.custom.fc\n\tFileHandler.uploader.add_device_btn_code(whid, event)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "FileUpload" }, "position": { "basis": "150px", "display": false }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "multiple_selection", "pageScope": true, "script": "\t# implement your handler here\n\tself.position.display \u003d payload ", "sessionScope": false, "viewScope": false } ] }, "type": "ia.input.fileupload" } ], "meta": { "name": "FlexContainer_4" }, "position": { "basis": "40px" }, "props": { "justify": "space-around", "style": { "margin-top": "10px" } }, "type": "ia.container.flex" } ], "meta": { "name": "root" }, "props": { "direction": "column", "style": { "borderBottomLeftRadius": "5px", "borderBottomRightRadius": "5px", "borderStyle": "solid", "borderTopLeftRadius": "5px", "borderTopRightRadius": "5px", "margin": "10px" }, "wrap": "wrap" }, "type": "ia.container.flex" } }