{ "custom": { "api_region_name": "eu", "enabled_whids": [ "DNK7", "EWR4" ], "stage_config": { "account_id": "006306898152", "api_call_role": "arn:aws:iam::609617486056:role/RMESDScadaS3ManagementAPIcallRole-prod-eu-west-1", "endpoint": "https://eu-west-1.scada-s3-management.scada.eurme.amazon.dev/", "lambda_name": "RMESDScadaS3ManagementFlaskLambda-prod", "region": "eu-west-1", "repo_bucket": "ignition-image-repo", "s3_region": "eu-west-1", "source_bucket": "ignition-image-source" }, "whid_options": [ { "label": "DNK7", "value": "DNK7" }, { "label": "EWR4", "value": "EWR4" } ], "whids_in_s3": [ "BOS3", "BRS1", "CGN9", "DAO1", "DAO3", "DAR2", "DBE2", "DBH3", "DBI7", "DBT3", "DCT7", "DCT9", "DCZ3", "DCZ4", "DEH1", "DER1", "DER2", "DER3", "DER5", "DFV1", "DHA1", "DHE3", "DHE4", "DHE6", "DIF2", "DIF6", "DIP1", "DLO1", "DLO2", "DLO3", "DLO4", "DLO5", "DLO7", "DLZ1", "DLZ2", "DLZ3", "DMA3", "DMA4", "DMA6", "DMV1", "DMV3", "DMZ2", "DMZ4", "DNC1", "DNC2", "DNE2", "DNG2", "DNM7", "DNP1", "DNX3", "DNZ2", "DPI3", "DPU1", "DRM2", "DSI2", "DSO2", "DSY6", "DTC2", "DVN1", "DVN2", "DVN5", "DWN2", "IST2", "MAD6", "MAN2", "QCB6" ] }, "params": { "enables": { "site": true }, "image_count": 0, "selected_whid": "EWR4", "source_count": 0 }, "propConfig": { "custom.api_region_name": { "binding": { "config": { "path": "session.custom.aws.prefix" }, "type": "property" }, "persistent": true }, "custom.enabled_whids": { "binding": { "config": { "expression": "{session.custom.fc}" }, "transforms": [ { "code": "\tchild_projects \u003d config.project_config.get_child_scada_projects()\n\treturn [x.replace(\u0027_SCADA\u0027,\u0027\u0027) for x in child_projects]", "type": "script" } ], "type": "expr" }, "persistent": true }, "custom.stage_config": { "binding": { "config": { "expression": "{view.custom.api_region_name}" }, "transforms": [ { "code": "\treturn AWS.s3.STAGE_CONFIG[\u0027prod\u0027][value]", "type": "script" } ], "type": "expr" }, "persistent": true }, "custom.whid_options": { "binding": { "config": { "path": "view.custom.enabled_whids" }, "transforms": [ { "code": "\treturn [{\u0027value\u0027: x, \u0027label\u0027: x} for x in value]", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.whids_in_s3": { "binding": { "config": { "expression": "{session.custom.fc}" }, "transforms": [ { "code": "\tfrom AWS.s3 import S3Manager\n\t\n\tusername \u003d self.session.props.auth.user.userName\n\tapi_region_name \u003d self.custom.api_region_name\n\t\n\ts3m \u003d S3Manager(\u0027prod\u0027, api_region_name, username)\n\t\n\tbucket \u003d self.custom.stage_config.repo_bucket\n\treturn s3m.fetch_site_list(bucket)", "type": "script" } ], "type": "expr" }, "persistent": true }, "params.enables": { "paramDirection": "input", "persistent": true }, "params.image_count": { "paramDirection": "input", "persistent": true }, "params.selected_whid": { "paramDirection": "input", "persistent": true }, "params.source_count": { "paramDirection": "input", "persistent": true } }, "props": { "defaultSize": { "height": 78, "width": 400 } }, "root": { "children": [ { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label Text/RightAlign_with_Padding", "paddingLeft": "5px" }, "text": "Site:" }, "type": "ia.display.label" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tselected_whid \u003d self.props.value\n\tsystem.perspective.sendMessage(\u0027update_selected_whid\u0027, \n\t\t\t\t\t\t\t\t{\u0027whid\u0027: selected_whid}, \n\t\t\t\t\t\t\t\tscope\u003d\u0027session\u0027)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Dropdown", "tooltip": { "location": "bottom", "style": { "whiteSpace": "pre" }, "text": "Click here to select a different \nstage folder to manage" } }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.enabled": { "binding": { "config": { "path": "view.params.enables.site" }, "type": "property" } }, "props.options": { "binding": { "config": { "path": "view.custom.whid_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "path": "view.params.selected_whid" }, "type": "property" } } }, "props": { "style": { "margin": "2px", "marginRight": "26px" } }, "type": "ia.input.dropdown" } ], "meta": { "name": "FlexContainer Site Selection" }, "position": { "basis": "26px", "shrink": 0 }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label Text/RightAlign_with_Padding", "paddingLeft": "5px" }, "text": "Images (SVG):" }, "type": "ia.display.label" }, { "meta": { "name": "label_LeftAlign" }, "position": { "basis": "200px", "grow": 1 }, "propConfig": { "props.params.text": { "binding": { "config": { "path": "view.params.image_count" }, "type": "property" } } }, "props": { "path": "Objects/Templates/Labels/label_LeftAlign", "style": { "classes": "Framework/Card/Value" } }, "type": "ia.display.view" } ], "meta": { "name": "FlexContainer Images" }, "position": { "basis": "50%", "grow": 1 }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label Text/RightAlign_with_Padding", "paddingLeft": "5px" }, "text": "Source (DRAWIO):" }, "type": "ia.display.label" }, { "meta": { "name": "label_LeftAlign" }, "position": { "basis": "200px", "grow": 1 }, "propConfig": { "props.params.text": { "binding": { "config": { "path": "view.params.source_count" }, "type": "property" } } }, "props": { "path": "Objects/Templates/Labels/label_LeftAlign", "style": { "classes": "Framework/Card/Value" } }, "type": "ia.display.view" } ], "meta": { "name": "FlexContainer Source" }, "position": { "basis": "50%", "grow": 1 }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer File Counts" }, "position": { "basis": "26px", "shrink": 0 }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "100%", "grow": 1 }, "props": { "direction": "column" }, "type": "ia.container.flex" } ], "meta": { "name": "root" }, "props": { "direction": "column" }, "scripts": { "customMethods": [ { "name": "update_wo_view_param", "params": [ "d\u003dNone" ], "script": "\t# helper \"sanitize_tree\" function to make work order view param mutable\n\tfrom helper.helper import sanitize_tree\n\twork_order \u003d sanitize_tree(self.view.params.work_order)\n\t# sanity-check the update dict \"d\"\n\tif d is None or not isinstance(d, dict): d \u003d {}\n\t# update the embedded object inside the work order view param\n\twork_order.get(\u0027data\u0027, {}).get(\u0027WorkOrder\u0027, {}).update(d)\n\t# write the updated work_order object back to view param\n\tself.view.params.work_order \u003d work_order\n\t" } ], "extensionFunctions": null, "messageHandlers": [ { "messageType": "update_enabled_whids", "pageScope": false, "script": "\t# implement your handler here\n\tself.view.refreshBinding(\u0027custom.enabled_whids\u0027)\n\tself.view.refreshBinding(\u0027custom.whids_in_s3\u0027)", "sessionScope": true, "viewScope": true } ] }, "type": "ia.container.flex" } }