238 lines
7.6 KiB
Plaintext
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"
|
|
}
|
|
} |