{ "custom": { "EntriesList": [ { "PrimaryKey": "2024-05-08 10:17:51", "author": "pll", "body": "Introducing our brand new Announcement Feature! 🎉 Stay in the loop with important updates, new features, planned downtime events, all in one place. Never miss out again! Check it out now and stay tuned for the latest updates. 🔊", "childproj": "https://eu-preprod.scada2.rme.amazon.dev: MAN2", "expire": "2024-05-09 05:00:00", "link1": "https://", "link1title": "", "link2": "https://", "link2title": "", "priority": "Healthy", "publish": "2024-05-08 10:08:33", "title": "📢 Exciting News! 📢", "whids": "" } ], "PreviewJSON": [ { "author": "cojonas", "body": "", "childproj": "https://eu-development.scada2.rme.amazon.dev:", "expire": "2024-05-08 05:00:00", "link1": "https://", "link1title": "", "link2": "https://", "link2title": "", "publish": "2024-04-26 07:07:32", "title": "" } ], "TableSelection": null, "activityLogger": { "alt_pageid": "notifyTool", "start_time": { "$": [ "ts", 192, 1715164768393 ], "$ts": 1715164768393 } }, "body": "", "entryCount": 0, "expire": "2024-05-09 05:00:00", "fileName": "Notifications_as of 2024-4-8_10_40_3.xlsx", "link1": "https://", "link1title": "", "link2": "https://", "link2title": "", "priority": "Healthy", "publish": "2024-05-08 10:39:28", "title": "", "whids": "" }, "events": { "system": { "onShutdown": { "config": { "script": "\tactivityLog.productMetrics.callLogger(self, \u0027page\u0027)" }, "scope": "G", "type": "script" }, "onStartup": { "config": { "script": "\t\t\n\tfrom datetime import datetime, timedelta\n\t\n\tself.custom.activityLogger.start_time \u003d system.date.now()\n\t\n\tsystem.perspective.sendMessage(\u0027refreshNotifyIcon\u0027)\n\tsystem.perspective.sendMessage(\u0027refreshNotifyTable\u0027)\n\tdt \u003d datetime.today()\n\tself.getChild(\"root\").getChild(\"FlexContainer\").getChild(\"FlexContainer_Left\").getChild(\"FlexContainer\").getChild(\"Publish-DateTimeInput\").props.value \u003d dt\n" }, "scope": "G", "type": "script" } } }, "params": {}, "propConfig": { "custom.EntriesList": { "persistent": true }, "custom.PreviewJSON": { "persistent": true }, "custom.TableSelection": { "binding": { "config": { "path": "/root/FlexContainer_4/FlexContainer/Table.props.selection.data[0]" }, "type": "property" }, "persistent": true }, "custom.activityLogger": { "persistent": true }, "custom.activityLogger.pageid": { "binding": { "config": { "path": "page.props.path" }, "transforms": [ { "code": " if value \u003d\u003d\u0027/\u0027 or value \u003d\u003d \u0027\u0027 or value \u003d\u003d None:\n return self.custom.activityLogger.alt_pageid.lower()\n else:\n return value[1:].lower()\n\treturn value", "type": "script" } ], "type": "property" } }, "custom.body": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Middle/FlexContainer_0/Body-TextArea.props.text" }, "type": "property" }, "persistent": true }, "custom.entryCount": { "persistent": true }, "custom.expire": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Left/FlexContainer_0/Expire-DateTimeInput.props.formattedValue" }, "type": "property" }, "persistent": true }, "custom.fileName": { "binding": { "config": { "expression": "\r\n\u0027Notifications_as of \u0027\r\n+ dateExtract(now(),\u0027year\u0027) +\u0027-\u0027\r\n+ dateExtract(now(),\u0027month\u0027) +\u0027-\u0027\r\n+ dateExtract(now(),\u0027day\u0027) +\u0027_\u0027\r\n+ dateExtract(now(),\u0027hour\u0027) +\u0027_\u0027\r\n+ dateExtract(now(),\u0027minute\u0027) +\u0027_\u0027\r\n+ dateExtract(now(),\u0027second\u0027)+\u0027.xlsx\u0027" }, "type": "expr" }, "persistent": true }, "custom.link1": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Right/FlexContainer/FlexContainer_2/FlexContainer/URL1-TextField.props.text" }, "transforms": [ { "code": "#\tif len(value) \u003e0:\n\tif \u0027http://\u0027 not in value and \u0027https://\u0027 not in value:\n\t\tvalue \u003d \u0027https://\u0027+value\n\n\t\treturn value\n\telse:\n\t\treturn value", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.link1title": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Right/FlexContainer/FlexContainer_2/FlexContainer_0/URL1-NameTextField.props.text" }, "type": "property" }, "persistent": true }, "custom.link2": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Right/FlexContainer/FlexContainer_3/FlexContainer/URL2-TextField.props.text" }, "transforms": [ { "code": "#\tif len(value) \u003e0:\n\tif \u0027http://\u0027 not in value and \u0027https://\u0027 not in value:\n\t\tvalue \u003d \u0027https://\u0027+value\n\n\t\treturn value\n\telse:\n\t\treturn value", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.link2title": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Right/FlexContainer/FlexContainer_3/FlexContainer_0/URL2-NameTextField.props.text" }, "transforms": [ { "code": "#\tif len(value) \u003e0:\n\treturn value", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.priority": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Left/FlexContainer_2/Dropdown.props.value" }, "type": "property" }, "persistent": true }, "custom.publish": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Left/FlexContainer/Publish-DateTimeInput.props.formattedValue" }, "type": "property" }, "persistent": true }, "custom.title": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Middle/FlexContainer/Title-TextField.props.text" }, "type": "property" }, "persistent": true }, "custom.whids": { "binding": { "config": { "path": "/root/FlexContainer/FlexContainer_Left/FlexContainer_1/WHID-TextArea.props.text" }, "type": "property" }, "persistent": true } }, "props": { "defaultSize": { "height": 1080, "width": 1920 } }, "root": { "children": [ { "children": [ { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "108px" }, "props": { "text": "Publish Date", "textStyle": { "paddingLeft": 5 } }, "type": "ia.display.label" }, { "meta": { "name": "Publish-DateTimeInput", "tooltip": { "enabled": true, "location": "top-left", "sustain": 2000 } }, "position": { "basis": "170px", "grow": 1 }, "propConfig": { "meta.tooltip.text": { "binding": { "config": { "path": "this.props.minDate" }, "transforms": [ { "code": "\t\n\tmsg \u003d \u0027Time is UTC. Minimum publish date is \u0027 +str(value)\n\t\n\treturn msg", "type": "script" } ], "type": "property" } }, "props.minDate": { "binding": { "config": { "expression": "midnight(addDays(now(),-1))" }, "type": "expr" } } }, "props": { "format": "YYYY-MM-DD hh:mm:ss", "formattedValue": "2024-05-08 10:39:28", "value": { "$": [ "ts", 192, 1715164768393 ], "$ts": 1715164768393 } }, "type": "ia.input.date-time-input" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "40px" }, "props": { "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "108px" }, "props": { "text": "Expire Date", "textStyle": { "paddingLeft": 5 } }, "type": "ia.display.label" }, { "meta": { "name": "Expire-DateTimeInput", "tooltip": { "enabled": true, "location": "top-left", "sustain": 2000 } }, "position": { "basis": "170px", "grow": 1 }, "propConfig": { "meta.tooltip.text": { "binding": { "config": { "path": ".../FlexContainer/Publish-DateTimeInput.props.value" }, "transforms": [ { "code": "\t\n\tmsg \u003d \u0027Time is UTC. Minimum expire date is \u0027 +str(value)\n\t\n\treturn msg", "type": "script" } ], "type": "property" } }, "props.minDate": { "binding": { "config": { "path": ".../FlexContainer/Publish-DateTimeInput.props.value" }, "transforms": [ { "code": "\tfrom datetime import datetime, timedelta\n\tdt \u003d datetime.today()\n\t\n\treturn dt", "type": "script" } ], "type": "property" } } }, "props": { "format": "YYYY-MM-DD hh:mm:ss", "formattedValue": "2024-05-09 05:00:00", "value": { "$": [ "ts", 0, 1714766194471 ], "$ts": 1715274000000 } }, "type": "ia.input.date-time-input" } ], "meta": { "name": "FlexContainer_0" }, "position": { "basis": "40px" }, "props": { "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "meta": { "name": "TextArea" }, "position": { "basis": "308px", "display": false }, "propConfig": { "props.text": { "binding": { "config": { "path": "session.props.auth.user.roles" }, "type": "property" } } }, "type": "ia.input.text-area" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "152px" }, "props": { "text": "WHID\u0027s", "textStyle": { "paddingLeft": 5 } }, "type": "ia.display.label" }, { "meta": { "name": "WHID-TextArea", "tooltip": { "enabled": true, "location": "top-left", "sustain": 2000, "text": "Enter WHID\u0027s for WHID specific notifications, blank for all WHID\u0027s" } }, "position": { "basis": "240px" }, "type": "ia.input.text-area" } ], "meta": { "name": "FlexContainer_1" }, "position": { "basis": "40px" }, "props": { "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "152px" }, "props": { "text": "Priority", "textStyle": { "paddingLeft": 5 } }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "256px" }, "propConfig": { "props.options": { "binding": { "config": { "path": "session.custom.colours.colour_impaired" }, "transforms": [ { "code": "\n\theaders \u003d [\u0027Priority\u0027] \n\tstates \u003d [[\u0027Healthy\u0027],[\u0027Diagnostic\u0027], [\u0027Low\u0027], [\u0027Medium\u0027], [\u0027High\u0027]]\n\tdataset \u003d system.dataset.toDataSet(headers, states)\n\t\n\treturn dataset", "type": "script" } ], "type": "property" } }, "props.style.backgroundColor": { "binding": { "config": { "path": "this.props.value" }, "transforms": [ { "fallback": "state5", "inputType": "scalar", "mappings": [ { "input": "Healthy", "output": "state5" }, { "input": "Diagnostic", "output": "state4" }, { "input": "Low", "output": "state3" }, { "input": "Medium", "output": "state2" }, { "input": "High", "output": "state1" } ], "outputType": "scalar", "type": "map" }, { "code": "\tprefix \u003d self.session.custom.colours[value]\n\treturn prefix", "type": "script" } ], "type": "property" } } }, "props": { "style": { "fontWeight": "bold" }, "value": "Healthy" }, "type": "ia.input.dropdown" } ], "meta": { "name": "FlexContainer_2" }, "position": { "basis": "40px" }, "props": { "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_Left" }, "position": { "basis": "300px" }, "props": { "direction": "column" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "97px" }, "props": { "text": "Title", "textStyle": { "textAlign": "center" } }, "type": "ia.display.label" }, { "meta": { "name": "Title-TextField", "tooltip": { "enabled": true, "location": "top-left", "sustain": 2000 } }, "position": { "basis": "150px", "grow": 1 }, "propConfig": { "meta.tooltip.text": { "binding": { "config": { "path": "this.props.text" }, "transforms": [ { "code": "\ttooltip \u003d \u0027Required Field, Character count: \u0027 + str(len(value))\n\t\n\treturn tooltip", "type": "script" } ], "type": "property" } } }, "props": { "placeholder": "Enter Title" }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "40px" }, "props": { "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "97px" }, "props": { "text": "Body", "textStyle": { "textAlign": "center" } }, "type": "ia.display.label" }, { "meta": { "name": "Body-TextArea", "tooltip": { "enabled": true, "location": "top-left", "sustain": 2000 } }, "position": { "basis": "240px", "grow": 1 }, "propConfig": { "meta.tooltip.text": { "binding": { "config": { "path": "this.props.text" }, "transforms": [ { "code": "\ttooltip \u003d \u0027Required Field, Character count: \u0027 + str(len(value))\n\t\n\treturn tooltip", "type": "script" } ], "type": "property" } } }, "props": { "placeholder": "Enter Notification Text", "rejectUpdatesWhileFocused": false, "resize": "vertical", "wrap": "hard" }, "type": "ia.input.text-area" } ], "meta": { "name": "FlexContainer_0" }, "position": { "basis": "143px" }, "props": { "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "children": [ { "custom": { "PreviewJSON": "value" }, "events": { "component": { "onActionPerformed": { "config": { "script": "\tmsg \u003d {\u0027instances\u0027:[{\u0027title\u0027:self.view.custom.title, \n\t\t\u0027body\u0027:self.view.custom.body,\n\t\t\u0027publish\u0027:str(self.view.custom.publish)[:19],\n\t\t\u0027expire\u0027:str(self.view.custom.expire)[:19],\n\t\t\u0027link1\u0027:self.view.custom.link1,\n\t\t\u0027link1title\u0027:self.view.custom.link1title,\n\t\t\u0027link2\u0027:self.view.custom.link2,\n\t\t\u0027link2title\u0027:self.view.custom.link2title,\n\t\t\u0027author\u0027:self.session.props.auth.user.userName,\n\t\t\u0027priority\u0027:self.view.custom.priority,\n\t\t\u0027childproj\u0027:self.session.props.gateway.address}],\n\t\t\u0027entryCount\u0027:1}\n#\tself.view.custom.PreviewJSON \u003d value\n\n\tsystem.perspective.openPopup(\u0027jKEJ8tuj34\u0027,\u0027PopUp-Views/Notify-Tool/Notify-Popup\u0027,params\u003dmsg, modal\u003dTrue, resizable\u003dTrue, overlayDismiss\u003dTrue, title\u003d\u0027Notification Preview\u0027)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Preview-Button" }, "position": { "basis": "115px" }, "props": { "image": { "icon": { "path": "material/preview" } }, "style": { "backgroundColor": "#555555", "classes": "Background-Styles/Controller", "marginBottom": 5, "marginLeft": 20, "marginRight": 20, "marginTop": 5 }, "text": "Preview" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tfrom datetime import datetime\n\timport time\n\tfields \u003d [self.view.custom.body,\n\t\t\t\tself.view.custom.title, \n\t\t\t\tself.view.custom.publish,\n\t\t\t\tself.view.custom.expire,]\n\t\t\t\t\n\twhids \u003d str(self.view.custom.whids.upper())\t\t\t\n\ttry:\n\t\tif \u0027\u0027 not in fields and None not in fields:\n\t\t\tchidproj \u003d self.session.props.gateway.address +\u0027 \u0027+self.session.custom.fc\n\t\t\tnow \u003d datetime.now()\n\t\t\tnowstr \u003d str(now)[:19]\n\t\t\t\n\t\t\tpayload \u003d {\u0027PrimaryKey\u0027:nowstr,\n\t\t\t\t\u0027title\u0027:self.view.custom.title, \n\t\t\t\t\u0027body\u0027:self.view.custom.body,\n\t\t\t\t\u0027publish\u0027:str(self.view.custom.publish)[:19],\n\t\t\t\t\u0027expire\u0027:str(self.view.custom.expire)[:19],\n\t\t\t\t\u0027link1\u0027:self.view.custom.link1,\n\t\t\t\t\u0027link1title\u0027:self.view.custom.link1title,\n\t\t\t\t\u0027link2\u0027:self.view.custom.link2,\n\t\t\t\t\u0027link2title\u0027:self.view.custom.link2title,\n\t\t\t\t\u0027whids\u0027:whids,\n\t\t\t\t\u0027priority\u0027:self.view.custom.priority,\n\t\t\t\t\u0027author\u0027:(self.session.props.auth.user.userName)[:3],\n\t\t\t\t\u0027childproj\u0027:chidproj}\n\t\t\t\t\n#\t\t\tsystem.perspective.print(payload)\n\t\t\tnotifyTool.WriteToDynamo.DynamoWriter(payload)\n\t\t\tsystem.perspective.sendMessage(\u0027refreshNotifyTable\u0027)\n\t\telse:\n\t\t\t\n\t\t\tmsg\u003d {\u0027body\u0027:\u0027Title, Body, Publish date, and Expire date cannot be blank\u0027}\n\t\t\tsystem.perspective.openPopup(\u0027jKEJ8tuj\u0027,\u0027PopUp-Views/Notify-Tool/Notify-Submit-Popup\u0027,params\u003dmsg, modal\u003dTrue, overlayDismiss\u003dTrue, title \u003d \"Whoops, don\u0027t forget the words\")\n\texcept:\n\t\tpass\n\t\t\n\n" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Submit-Button" }, "position": { "basis": "115px" }, "props": { "image": { "icon": { "path": "material/send" } }, "style": { "backgroundColor": "#555555", "classes": "Background-Styles/Controller", "marginBottom": 5, "marginLeft": 20, "marginRight": 20, "marginTop": 5 }, "text": "Submit" }, "type": "ia.input.button" }, { "custom": { "PreviewJSON": "value" }, "events": { "component": { "onActionPerformed": { "config": { "script": "\tclear \u003d \u0027\u0027\n\tself.parent.parent.getChild(\"FlexContainer\").getChild(\"Title-TextField\").props.text \u003d clear\n\tself.parent.parent.getChild(\"FlexContainer_0\").getChild(\"Body-TextArea\").props.text \u003d clear\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_2\").getChild(\"FlexContainer\").getChild(\"URL1-TextField\").props.text \u003d clear\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_2\").getChild(\"FlexContainer_0\").getChild(\"URL1-NameTextField\").props.text \u003d clear\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_3\").getChild(\"FlexContainer\").getChild(\"URL2-TextField\").props.text \u003d clear\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_3\").getChild(\"FlexContainer_0\").getChild(\"URL2-NameTextField\").props.text \u003d clear\n\tself.parent.parent.parent.getChild(\"FlexContainer_Left\").getChild(\"FlexContainer_1\").getChild(\"WHID-TextArea\").props.text \u003d clear\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Preview-Button_0" }, "position": { "basis": "115px" }, "props": { "image": { "icon": { "path": "material/format_clear" } }, "style": { "backgroundColor": "#555555", "classes": "Background-Styles/Controller", "marginBottom": 5, "marginLeft": 20, "marginRight": 20, "marginTop": 5 }, "text": "Clear" }, "type": "ia.input.button" }, { "custom": { "PreviewJSON": "value" }, "events": { "component": { "onActionPerformed": { "config": { "script": "\trow \u003d self.parent.parent.parent.parent.getChild(\"FlexContainer_4\").getChild(\"FlexContainer\").getChild(\"Table\").props.selection.data[0]\n\t\t\n\tself.parent.parent.getChild(\"FlexContainer\").getChild(\"Title-TextField\").props.text \u003d row[\u0027title\u0027]\n\tself.parent.parent.getChild(\"FlexContainer_0\").getChild(\"Body-TextArea\").props.text \u003d row[\u0027body\u0027]\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_2\").getChild(\"FlexContainer\").getChild(\"URL1-TextField\").props.text \u003d row[\u0027link1\u0027]\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_2\").getChild(\"FlexContainer_0\").getChild(\"URL1-NameTextField\").props.text \u003d row[\u0027link1title\u0027]\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_3\").getChild(\"FlexContainer\").getChild(\"URL2-TextField\").props.text \u003d row[\u0027link2\u0027]\n\tself.parent.parent.parent.getChild(\"FlexContainer_Right\").getChild(\"FlexContainer\").getChild(\"FlexContainer_3\").getChild(\"FlexContainer_0\").getChild(\"URL2-NameTextField\").props.text \u003d row[\u0027link2title\u0027]\n\tself.parent.parent.parent.getChild(\"FlexContainer_Left\").getChild(\"FlexContainer_1\").getChild(\"WHID-TextArea\").props.text \u003d row[\u0027whids\u0027]\n\tself.parent.parent.parent.getChild(\"FlexContainer_Left\").getChild(\"FlexContainer_2\").getChild(\"Dropdown\").props.value \u003d row[\u0027priority\u0027]" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Populate-Button" }, "position": { "basis": "115px" }, "props": { "image": { "icon": { "path": "material/upgrade" } }, "style": { "backgroundColor": "#555555", "classes": "Background-Styles/Controller", "marginBottom": 5, "marginLeft": 20, "marginRight": 20, "marginTop": 5 }, "text": "Populate" }, "type": "ia.input.button" } ], "meta": { "name": "FlexContainer_1" }, "position": { "basis": "40px" }, "props": { "justify": "space-evenly" }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_Middle" }, "position": { "basis": "900px" }, "props": { "direction": "column", "style": { "borderBottomLeftRadius": 10, "borderBottomRightRadius": 10, "borderTopLeftRadius": 10, "borderTopRightRadius": 10 } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "children": [ { "children": [ { "meta": { "name": "URL1-Label" }, "position": { "basis": "110px" }, "props": { "text": "Link 1", "textStyle": { "textAlign": "center" } }, "type": "ia.display.label" }, { "meta": { "name": "URL1-TextField" }, "position": { "basis": "150px", "grow": 1 }, "props": { "placeholder": "Enter Link 1" }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "200px" }, "props": { "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "URL1-NameLabel" }, "position": { "basis": "110px" }, "props": { "style": { "paddingLeft": 5, "paddingRight": 5 }, "text": "Link 1 Name" }, "type": "ia.display.label" }, { "meta": { "name": "URL1-NameTextField" }, "position": { "basis": "150px", "grow": 1 }, "props": { "placeholder": "Enter Link 1 Title" }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer_0" }, "position": { "basis": "200px" }, "props": { "style": { "marginBottom": 5, "marginTop": 5 } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_2" }, "position": { "basis": "92px" }, "props": { "direction": "column", "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "URL2-Label" }, "position": { "basis": "110px" }, "props": { "text": "Link 2", "textStyle": { "textAlign": "center" } }, "type": "ia.display.label" }, { "meta": { "name": "URL2-TextField" }, "position": { "basis": "150px", "grow": 1 }, "props": { "placeholder": "Enter Link 2" }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "200px" }, "props": { "style": { "marginBottom": 5, "marginTop": 5 } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "URL2-NameLabel" }, "position": { "basis": "110px" }, "props": { "style": { "paddingLeft": 5, "paddingRight": 5 }, "text": "Link 2 Name" }, "type": "ia.display.label" }, { "meta": { "name": "URL2-NameTextField" }, "position": { "basis": "150px", "grow": 1 }, "props": { "placeholder": "Enter Link 2 Title" }, "type": "ia.input.text-field" } ], "meta": { "name": "FlexContainer_0" }, "position": { "basis": "200px" }, "props": { "style": { "marginBottom": 5, "marginTop": 5 } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_3" }, "position": { "basis": "92px" }, "props": { "direction": "column", "style": { "borderBottomLeftRadius": 4, "borderBottomRightRadius": 4, "borderStyle": "solid", "borderTopLeftRadius": 4, "borderTopRightRadius": 4, "borderWidth": 1, "classes": "Buttons/Button-Menu", "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "200px", "grow": 1 }, "props": { "direction": "column" }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_Right" }, "position": { "basis": "300px", "grow": 1 }, "props": { "direction": "column" }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "800px" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "170px" }, "props": { "style": { "textAlign": "center" }, "text": "Notification Entries" }, "type": "ia.display.label" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "40px", "grow": 1 }, "props": { "justify": "space-around", "style": { "classes": "Background-Styles/Controller" } }, "type": "ia.container.flex" }, { "custom": { "entries": [ { "PrimaryKey": "2024-05-08 10:17:51", "author": "pll", "body": "Introducing our brand new Announcement Feature! 🎉 Stay in the loop with important updates, new features, planned downtime events, all in one place. Never miss out again! Check it out now and stay tuned for the latest updates. 🔊", "childproj": "https://eu-preprod.scada2.rme.amazon.dev: MAN2", "expire": "2024-05-09 05:00:00", "link1": "https://", "link1title": "", "link2": "https://", "link2title": "", "priority": "Healthy", "publish": "2024-05-08 10:08:33", "title": "📢 Exciting News! 📢", "whids": "" } ], "entryCount": 1, "highestPriority": 5 }, "events": { "dom": { "onClick": { "config": { "draggable": true, "id": "ioNP2CXn", "modal": true, "overlayDismiss": true, "resizable": true, "showCloseIcon": true, "title": "Notifications", "type": "open", "viewParams": { "entryCount": "{/root/FlexContainer_4/FlexContainer/FlexContainer_4/Icon.custom.entryCount}", "instances": "{/root/FlexContainer_4/FlexContainer/FlexContainer_4/Icon.custom.entries}" }, "viewPath": "PopUp-Views/Notify-Tool/Notify-Popup", "viewportBound": false }, "scope": "C", "type": "popup" } } }, "meta": { "name": "Icon", "tooltip": { "enabled": true, "location": "bottom-right", "style": { "whiteSpace": "pre" }, "text": "📢 Exciting News! 📢\n" } }, "position": { "basis": "30px" }, "propConfig": { "custom.refreshMSG": { "binding": { "config": { "expression": "now(90000)\r\n// Update property value every 90 seconds, firing change script" }, "type": "expr" }, "onChange": { "enabled": null, "script": "\tsystem.perspective.sendMessage(\u0027refreshNotifyIcon\u0027)\n\tsystem.perspective.sendMessage(\u0027refreshNotifyTable\u0027)" } }, "position.display": { "binding": { "config": { "path": "view.custom.EntriesList" }, "transforms": [ { "code": "\tfrom datetime import datetime\n\t\n#\tRead entries from dynamo table\n\treturns \u003d notifyTool.ReadFromDynamo.DynamoReader()\n\tEntriesList \u003d returns[\u0027Items\u0027]\n\t\n\tEntriesList.reverse()\n\n\n#\tCreate empty list and now string\n\tpublishdates \u003d []\n\tnow \u003d datetime.now()\n\tnowstr \u003d str(now)[:19]\n\tactiveNotify \u003d False\n\twhid \u003d self.session.custom.fc\n\tstates \u003d {\u0027Healthy\u0027:5,\u0027Diagnostic\u0027:4, \u0027Low\u0027:3, \u0027Medium\u0027:2, \u0027High\u0027:1}\n\n\tactiveEntries \u003d []\n\ttooltip \u003d []\n\tcount \u003d 0\n\thighestPriority \u003d 5\n\tfor e in EntriesList:\n\t\t\n\t\tif len(e[\u0027whids\u0027])\u003e0:\t\t\t\t# Check for WHID in whid field\n\t\t\tif whid in e[\u0027whids\u0027]:\t\t\t# Check for WHID match in whid field\n\t\t\t\t#\tCheck EntriesList for active entries based on publish and expire times\n\t\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\t\tactiveEntries.append(e)\n\t\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\t\tactiveNotify \u003d True\n\t\t\t\t\tcount +\u003d1\n\t\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\t\telse:\n\t\t\tif nowstr \u003e\u003d e[\u0027publish\u0027] and nowstr\u003c\u003dstr( e[\u0027expire\u0027]):\n\t\t\t\tactiveEntries.append(e)\n\t\t\t\ttooltip.append(e[\u0027title\u0027])\n\t\t\t\tactiveNotify \u003d True\t\t\n\t\t\t\tcount +\u003d1\t\n\t\t\t\tif states[e[\u0027priority\u0027]] \u003c highestPriority:\n\t\t\t\t\thighestPriority \u003d states[e[\u0027priority\u0027]]\n\n\ttooltiptext \u003d \u0027\u0027\n\tfor i in tooltip:\n\t\ttooltiptext+\u003d i+\u0027\\n\u0027\n\t\t\n\tself.custom.entries \u003d activeEntries\n\tself.custom.highestPriority \u003d highestPriority\n\tself.custom.entryCount \u003d count\n\tself.meta.tooltip.text \u003d tooltiptext\t\n\n\treturn activeNotify", "type": "script" } ], "type": "property" } }, "props.color": { "binding": { "config": { "path": "this.custom.highestPriority" }, "transforms": [ { "fallback": "state5", "inputType": "scalar", "mappings": [ { "input": 1, "output": "state1" }, { "input": 2, "output": "state2" }, { "input": 3, "output": "state3" }, { "input": 4, "output": "state4" }, { "input": 5, "output": "state5" } ], "outputType": "scalar", "type": "map" }, { "code": "\ttest \u003d self.session.custom.colours.colour_impaired\n\tstatecolor \u003d self.session.custom.colours[value]\n\treturn statecolor", "type": "script" } ], "type": "property" } } }, "props": { "path": "material/campaign", "style": { "marginLeft": 5, "marginRight": 5 } }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "refreshNotifyIcon", "pageScope": true, "script": "\tself.refreshBinding(\u0027position.display\u0027)\n\tself.refreshBinding(\u0027props.color\u0027)\n", "sessionScope": true, "viewScope": false } ] }, "type": "ia.display.icon" }, { "meta": { "name": "Label" }, "position": { "basis": "130px" }, "props": { "style": { "textAlign": "center" }, "text": "Icon Preview" }, "type": "ia.display.label" }, { "events": { "dom": { "onClick": { "config": { "script": "\tjsonFile \u003d self.parent.parent.getChild(\"Table\").props.data\n\theaders \u003d list(set(jsonFile[0].keys()))\n\t\n\trowdata \u003d []\n\tfor r in jsonFile:\n\t\trow \u003d []\n\t\tfor k in headers:\n\t\t\trow.append(r[k])\n\t\trowdata.append(row)\n\t\n\tdataset \u003d system.dataset.toDataSet(headers, rowdata)\n\tdatasetexcel \u003d system.dataset.toExcel(True, [dataset])\n\t\n\tfilename \u003d self.view.custom.fileName\n\tsystem.perspective.download(filename, datasetexcel)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Retrieve_Test_0", "tooltip": { "enabled": true, "text": "Download Table as Excel" } }, "position": { "basis": "115px" }, "props": { "image": { "icon": { "path": "material/cloud_download" } }, "style": { "backgroundColor": "#555555", "classes": "Background-Styles/Controller", "marginBottom": 5, "marginLeft": 20, "marginRight": 20, "marginTop": 5 }, "text": "Download" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\ttry:\n\t\treturns \u003d notifyTool.ReadFromDynamo.DynamoReader()\n\t\tself.view.custom.EntriesList \u003d returns[\u0027Items\u0027]\n\n\texcept:\n\t\tsystem.perspective.print(\u0027Error manual refreshing from Dynamo Table\u0027)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Retrieve_Test", "tooltip": { "enabled": true, "text": "Manual Refresh of Table" } }, "position": { "basis": "115px" }, "props": { "image": { "icon": { "path": "material/get_app" } }, "style": { "backgroundColor": "#555555", "classes": "Background-Styles/Controller", "marginBottom": 5, "marginLeft": 20, "marginRight": 20, "marginTop": 5 }, "text": "Refresh" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\t\n\tPK \u003d self.view.custom.TableSelection[\u0027PrimaryKey\u0027]\n\tPub \u003d self.view.custom.TableSelection[\u0027publish\u0027]\n\n\treturns \u003d notifyTool.DeleteFromDynamo.DynamoDeleter(PrimaryKey\u003dPK,publish\u003dPub)\n\tsystem.perspective.sendMessage(\u0027refreshNotifyTable\u0027)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Delete-Button", "tooltip": { "enabled": true, "text": "Permanently Delete selected entry" } }, "position": { "basis": "115px" }, "props": { "image": { "icon": { "path": "material/delete_forever" } }, "style": { "backgroundColor": "#555555", "classes": "Background-Styles/Controller", "marginBottom": 5, "marginLeft": 20, "marginRight": 20, "marginTop": 5 }, "text": "Delete" }, "type": "ia.input.button" } ], "meta": { "name": "FlexContainer_4" }, "position": { "basis": "40px" }, "props": { "justify": "flex-end" }, "type": "ia.container.flex" }, { "meta": { "name": "Table" }, "position": { "basis": "400px", "grow": 1 }, "propConfig": { "props.data": { "binding": { "config": { "path": "view.custom.EntriesList" }, "type": "property" } } }, "props": { "columns": [ { "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": "left", "style": { "classes": "" }, "title": "Priority" }, "justify": "auto", "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": "none", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 60 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "PrimaryKey", "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": "Submit Date" }, "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": "descending", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 85 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "publish", "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": "Publish Date" }, "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": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 85 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "expire", "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": "Expire Date" }, "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": "none", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 85 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "title", "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": "Title" }, "justify": "auto", "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": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "Body" }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "body", "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": "Body" }, "justify": "auto", "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": "none", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 450 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "author", "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": "Author" }, "justify": "auto", "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": "none", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 80 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "link1title", "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": "Link 1 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": "none", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 140 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "link1", "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": "Link 1" }, "justify": "auto", "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": "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": "link2title", "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": "Link 2 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": "none", "sortable": true, "strictWidth": true, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": 140 }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "link2", "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": "Link 2" }, "justify": "auto", "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": "none", "sortable": true, "strictWidth": false, "style": { "classes": "", "overflowWrap": "break-word" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": "falseq", "field": "childproj", "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": "Published from:" }, "justify": "auto", "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": "none", "sortable": true, "strictWidth": false, "style": { "classes": "", "overflowWrap": "break-word" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" }, { "align": "center", "boolean": "checkbox", "dateFormat": "MM/DD/YYYY", "editable": false, "field": "whids", "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": "WHID Specific" }, "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": "none", "sortable": true, "strictWidth": false, "style": { "classes": "" }, "toggleSwitch": { "color": { "selected": "", "unselected": "" } }, "viewParams": {}, "viewPath": "", "visible": true, "width": "" } ], "rows": { "style": { "marginBottom": 2.5, "marginTop": 2.5, "overflowWrap": "break-word" } }, "sortOrder": [ "PrimaryKey", "publish" ], "style": { "marginBottom": 5, "marginLeft": 5, "marginRight": 5, "marginTop": 5 } }, "scripts": { "customMethods": [], "extensionFunctions": null, "messageHandlers": [ { "messageType": "refreshNotifyTable", "pageScope": true, "script": "\ttry:\n\t\treturns \u003d notifyTool.ReadFromDynamo.DynamoReader()\n\t\tself.view.custom.EntriesList \u003d returns[\u0027Items\u0027]\n\t\tself.refreshBinding(\u0027props.data\u0027)\n\t\t# implement your handler here\n\texcept:\n\t\tsystem.perspective.print(\u0027Error updating Notification Table\u0027)", "sessionScope": false, "viewScope": false } ] }, "type": "ia.display.table" } ], "meta": { "name": "FlexContainer" }, "position": { "basis": "200px", "grow": 1 }, "props": { "direction": "column" }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_4" }, "position": { "basis": "1300px", "grow": 1 }, "type": "ia.container.flex" } ], "meta": { "name": "root" }, "propConfig": { "meta.visible": { "binding": { "config": { "path": "session.props.auth.user.roles" }, "transforms": [ { "code": "\n\troles \u003d [\u0027Authenticated/Roles/eurme-ignition-admins\u0027]\n\tauth \u003d system.perspective.isAuthorized(False, securityLevels\u003droles)\n\treturn auth", "type": "script" } ], "type": "property" } } }, "props": { "direction": "column", "style": { "classes": "Background-Styles/Controller" } }, "type": "ia.container.flex" } }