SAT9/.resources/5a3ecd2b354639d0994e2a0c4d072c6cfdedd2afaac0ce4be2a45a639ede8156

238 lines
7.6 KiB
Plaintext

{
"custom": {
"api_region_name": "na",
"loading": false,
"operation_options": [
{
"label": "Copy Single",
"value": "copy_single"
},
{
"label": "Upload",
"value": "upload"
},
{
"label": "Delete",
"value": "delete"
},
{
"label": "Add New Site",
"value": "add_new_site"
}
],
"query_params": {
"bucket": null,
"object_key": null,
"site": null,
"view": null
},
"raw_data": []
},
"events": {
"system": {
"onStartup": {
"config": {
"script": "\tquery_params \u003d self.params.query_params\n\tself.custom.query_params \u003d query_params\n\tif query_params.get(\u0027bucket\u0027, None) and query_params.get(\u0027site\u0027, None) and query_params.get(\u0027view\u0027, None):\n\t\tsystem.perspective.sendMessage(\u0027refresh_version_table_data\u0027, scope\u003d\u0027view\u0027)\n\telse:\n\t\tself.custom.raw_data \u003d []\n\t"
},
"scope": "G",
"type": "script"
}
}
},
"params": {
"query_params": {
"bucket": null,
"object_key": null,
"site": null,
"view": null
}
},
"propConfig": {
"custom.api_region_name": {
"binding": {
"config": {
"path": "session.custom.aws.prefix"
},
"type": "property"
},
"persistent": true
},
"custom.loading": {
"persistent": true
},
"custom.operation_options": {
"binding": {
"config": {
"expression": "1"
},
"transforms": [
{
"code": "\tfrom AWS.s3 import OPERATION_MAP\n\treturn [{\u0027value\u0027:k, \u0027label\u0027:k.replace(\u0027_\u0027,\u0027 \u0027).title()} \n\t\t\tfor k,v in OPERATION_MAP.iteritems()\n\t\t\tif v.get(\u0027method\u0027, \u0027\u0027) in (\u0027PUT\u0027, \u0027POST\u0027, \u0027DELETE\u0027)\n\t\t\tand k not in (\u0027query_audit_table\u0027, )]",
"type": "script"
}
],
"type": "expr"
},
"persistent": true
},
"custom.query_params": {
"persistent": true
},
"custom.raw_data": {
"persistent": true
},
"params.query_params": {
"paramDirection": "input",
"persistent": true
}
},
"props": {
"defaultSize": {
"width": 1200
}
},
"root": {
"children": [
{
"meta": {
"name": "Query Params"
},
"position": {
"shrink": 0
},
"propConfig": {
"props.params.params.query_params": {
"binding": {
"config": {
"path": "view.custom.query_params"
},
"type": "property"
}
}
},
"props": {
"params": {
"open_expanded": false,
"params": {},
"path": "Objects/Templates/S3/Versions/Query_Options",
"show_box_shadow_on_expanded": true,
"title": "Query Params",
"useDefaultHeight": false,
"useDefaultWidth": false
},
"path": "Framework/Card/Card_Collapsible_Transparent"
},
"type": "ia.display.view"
},
{
"meta": {
"name": "Log Table"
},
"position": {
"basis": "100%"
},
"propConfig": {
"props.params.table_data": {
"binding": {
"config": {
"path": "view.custom.raw_data"
},
"type": "property"
}
},
"props.params.title": {
"binding": {
"config": {
"expression": "if(!isNull({view.custom.query_params.site})\u0026\u0026!isNull({view.custom.query_params.view}),\r\n\treplace(stringFormat(\u0027%s Version History - \u0027,\r\n\t\t{view.custom.query_params.object_key}),\r\n\t\t\u0027SCADA/\u0027,\u0027\u0027)+\r\n\tif({view.custom.loading}, \u0027Loading...\u0027, stringFormat(\u0027%d Record(s)\u0027, len({view.custom.raw_data}))),\r\n\t\u0027Select View to view version history\u0027)"
},
"type": "expr"
}
}
},
"props": {
"params": {
"NavigationSettings": {
"BaseUrl": "/singleMP/main",
"Column": "mp_name",
"Enabled": false
},
"SelectedRow": [],
"filters": [],
"header_order": [
{
"field": "VersionId",
"title": "VERSION ID",
"visible": true
},
{
"field": "LastModified",
"title": "LAST MODIFIED",
"visible": true
},
{
"field": "Size",
"title": "SIZE (Bytes)",
"visible": true
},
{
"field": "IsLatest",
"title": "IS LATEST?",
"visible": true
},
{
"field": "Key",
"title": "OBJECT KEY",
"visible": true
},
{
"field": "StorageClass",
"title": "STORAGE CLASS",
"visible": false
},
{
"field": "ETag",
"title": "ETAG",
"visible": false
}
]
},
"path": "Objects/Templates/S3/Versions/Log_Table"
},
"type": "ia.display.view"
}
],
"meta": {
"name": "root"
},
"props": {
"direction": "column"
},
"scripts": {
"customMethods": [
{
"name": "refresh_version_table_data",
"params": [],
"script": "\tquery_params \u003d self.view.custom.query_params\n\tif query_params.bucket and query_params.site and query_params.view:\n\t\t# refresh the audit table query\n\t\tfrom AWS.s3 import S3Manager\n\t\t\n\t\tself.view.custom.loading \u003d True\n\t\tapi_stage \u003d \u0027prod\u0027\n\t\tusername \u003d self.session.props.auth.user.userName\n\t\tapi_region_name \u003d self.view.custom.api_region_name\n\t\ts3m \u003d S3Manager(api_stage, api_region_name, username)\n\t\t\n\t\tbucket \u003d self.view.custom.query_params.bucket\n\t\tobj_key \u003d self.view.custom.query_params.object_key\n\t\tresp \u003d s3m.list_object_versions(bucket, obj_key)\n\t\tself.view.custom.raw_data \u003d resp\n\t\tself.view.custom.loading \u003d False\n\telse:\n\t\tself.view.custom.raw_data \u003d []\n\t"
}
],
"extensionFunctions": null,
"messageHandlers": [
{
"messageType": "list_versions_query_params_changed",
"pageScope": false,
"script": "\t# update the `view.custom.query_params` object from received payload\n\tfrom helper.helper import sanitize_tree\n\td \u003d sanitize_tree(payload)\n\tdct \u003d sanitize_tree(self.view.custom.query_params)\n\tdct.update(d)\n\tself.view.custom.query_params \u003d dct\n\tif dct.get(\u0027bucket\u0027,None) and dct.get(\u0027site\u0027,None) and dct.get(\u0027view\u0027,None):\n\t\tself.refresh_version_table_data()\n\telse:\n\t\tself.view.custom.raw_data \u003d []\n\t",
"sessionScope": true,
"viewScope": true
},
{
"messageType": "refresh_version_table_data",
"pageScope": false,
"script": "\t# implement your handler here\n\tself.refresh_version_table_data()\n\t",
"sessionScope": true,
"viewScope": true
}
]
},
"type": "ia.container.flex"
}
}