{ "custom": { "api_region_name": "na", "bucket_options": [ { "label": "Image Files", "value": "na-ignition-image-repo" }, { "label": "Source Files", "value": "na-ignition-image-source" } ], "copy_option_options": [ { "label": "Both", "value": "both" }, { "label": "SVG", "value": "svg" }, { "label": "DRAWIO", "value": "drawio" } ], "default_query_params": { "copy_option": null, "destination_bucket": null, "destination_site": null, "destination_view": "", "end_time": null, "error_occurred": null, "operation": null, "source_bucket": null, "source_site": null, "source_view": "", "start_time": null }, "destination_view_options_by_site_and_bucket": [], "destination_view_suffix": null, "destination_whid_options": [], "error_occurred_options": [ { "label": "True", "value": true }, { "label": "False", "value": 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" } ], "source_view_options_by_site_and_bucket": [], "source_view_suffix": null, "source_whid_options": [], "stage_config": { "account_id": "925510716640", "endpoint": "https://scada-s3-management.narme-scada.rme.amazon.dev/", "lambda_name": "RMESDScadaS3ManagementFlaskLambda-prod", "region": "us-east-2", "repo_bucket": "na-ignition-image-repo", "s3_region": "us-east-1", "source_bucket": "na-ignition-image-source" } }, "params": { "query_params": { "copy_option": null, "destination_bucket": null, "destination_site": null, "destination_view": "", "end_time": null, "error_occurred": null, "operation": null, "source_bucket": null, "source_site": null, "source_view": "", "start_time": null, "username": "" } }, "propConfig": { "custom.api_region_name": { "binding": { "config": { "path": "session.custom.aws.prefix" }, "type": "property" }, "persistent": true }, "custom.bucket_options": { "binding": { "config": { "path": "view.custom.stage_config" }, "transforms": [ { "code": "\treturn [{\u0027value\u0027: value.repo_bucket, \u0027label\u0027: \u0027Image Files\u0027},\n\t\t\t{\u0027value\u0027: value.source_bucket, \u0027label\u0027: \u0027Source Files\u0027}]", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.copy_option_options": { "persistent": true }, "custom.default_query_params": { "persistent": true }, "custom.default_query_params.username": { "binding": { "config": { "path": "session.props.auth.user.userName" }, "type": "property" } }, "custom.destination_view_options_by_site_and_bucket": { "binding": { "config": { "expression": "{view.params.query_params.destination_site}+{view.params.query_params.destination_bucket}" }, "transforms": [ { "code": "\tbucket \u003d self.params.query_params.destination_bucket\n\tsite \u003d self.params.query_params.destination_site\n\tif bucket and site:\n\t\tfrom AWS.s3 import S3Manager\n\t\tfrom helper.helper import sanitize_tree\n\t\tfrom pprint import pformat\n\t\t\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\t\n\t\ts3m \u003d S3Manager(api_stage, api_region_name, username)\n\t\tsuffix \u003d self.custom.destination_view_suffix\n\t\tfiles \u003d sanitize_tree(s3m.fetch_object_list_by_site_and_bucket(site, bucket))\n\t\treturn [{\u0027value\u0027: x[\u0027Filename\u0027].replace(suffix,\u0027\u0027), \n\t\t\t\t\u0027label\u0027: x[\u0027Filename\u0027].replace(suffix,\u0027\u0027)} for x in files]\n\treturn []", "type": "script" } ], "type": "expr" }, "persistent": true }, "custom.destination_view_suffix": { "binding": { "config": { "path": "view.params.query_params.destination_bucket" }, "transforms": [ { "code": "\tif value:\n\t\tstage_config \u003d self.custom.stage_config\n\t\tif value \u003d\u003d stage_config.get(\u0027repo_bucket\u0027, None):\n\t\t\treturn \".svg\"\n\t\tif value \u003d\u003d stage_config.get(\"source_bucket\", None):\n\t\t\treturn \".drawio\"\n\treturn value", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.destination_whid_options": { "binding": { "config": { "path": "view.params.query_params.destination_bucket" }, "transforms": [ { "code": "\tif value:\n\t\tfrom AWS.s3 import S3Manager\n\t\t\n\t\tapi_stage \u003d \u0027prod\u0027\n\t\tusername \u003d self.session.props.auth.user.userName\n\t\tapi_region_name \u003d self.custom.api_region_name\n\t\t\n\t\ts3m \u003d S3Manager(\u0027prod\u0027, api_region_name, username)\n\t\t\n\t\treturn [{\u0027value\u0027: x, \u0027label\u0027: x} for x in s3m.fetch_site_list(value)]\n\treturn []", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.error_occurred_options": { "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.source_view_options_by_site_and_bucket": { "binding": { "config": { "expression": "{view.params.query_params.source_site}+{view.params.query_params.source_bucket}" }, "transforms": [ { "code": "\tbucket \u003d self.params.query_params.source_bucket\n\tsite \u003d self.params.query_params.source_site\n\tif bucket and site:\n\t\tfrom AWS.s3 import S3Manager\n\t\tfrom helper.helper import sanitize_tree\n\t\tfrom pprint import pformat\n\t\t\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\t\n\t\ts3m \u003d S3Manager(api_stage, api_region_name, username)\n\t\tsuffix \u003d self.custom.source_view_suffix\n\t\tfiles \u003d sanitize_tree(s3m.fetch_object_list_by_site_and_bucket(site, bucket))\n\t\treturn [{\u0027value\u0027: x[\u0027Filename\u0027].replace(suffix,\u0027\u0027), \n\t\t\t\t\u0027label\u0027: x[\u0027Filename\u0027].replace(suffix,\u0027\u0027)} for x in files]\n\treturn []", "type": "script" } ], "type": "expr" }, "persistent": true }, "custom.source_view_suffix": { "binding": { "config": { "path": "view.params.query_params.source_bucket" }, "transforms": [ { "code": "\tif value:\n\t\tstage_config \u003d self.custom.stage_config\n\t\tif value \u003d\u003d stage_config.get(\u0027repo_bucket\u0027, None):\n\t\t\treturn \".svg\"\n\t\tif value \u003d\u003d stage_config.get(\"source_bucket\", None):\n\t\t\treturn \".drawio\"\n\treturn value", "type": "script" } ], "type": "property" }, "persistent": true }, "custom.source_whid_options": { "binding": { "config": { "path": "view.params.query_params.source_bucket" }, "transforms": [ { "code": "\tif value:\n\t\tfrom AWS.s3 import S3Manager\n\t\t\n\t\tapi_stage \u003d \u0027prod\u0027\n\t\tusername \u003d self.session.props.auth.user.userName\n\t\tapi_region_name \u003d self.custom.api_region_name\n\t\t\n\t\ts3m \u003d S3Manager(\u0027prod\u0027, api_region_name, username)\n\t\t\n\t\treturn [{\u0027value\u0027: x, \u0027label\u0027: x} for x in s3m.fetch_site_list(value)]\n\treturn []", "type": "script" } ], "type": "property" }, "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 }, "params.query_params": { "onChange": { "enabled": null, "script": "\tif not missedEvents and origin in (\u0027Binding\u0027, \u0027Script\u0027, \u0027BindingWriteback\u0027):\n\t\tpayload \u003d currentValue.value\n\t\tsystem.perspective.sendMessage(\u0027audit_table_query_params_changed\u0027, payload, scope\u003d\u0027session\u0027)\n\t\t" }, "paramDirection": "input", "persistent": true } }, "props": { "defaultSize": { "height": 600 } }, "root": { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "shrink": 0 }, "props": { "style": { "borderStyle": "none", "classes": "Framework/Card/Title_transparent" }, "text": "Select Query Params" }, "type": "ia.display.label" }, { "children": [ { "events": { "component": { "onActionPerformed": { "config": { "script": "\t# reset query params to default values \n\t# (stored in `view.custom.default_query_params`)\n\tself.view.params.query_params \u003d self.view.custom.default_query_params" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button", "tooltip": { "enabled": true, "location": "bottom-right", "text": "Clear Selections" } }, "position": { "shrink": 0 }, "props": { "image": { "icon": { "path": "material/clear_all" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\t# refresh audit table query via message handler\n\tsystem.perspective.sendMessage(\u0027refresh_audit_table_data\u0027, scope\u003d\u0027session\u0027)\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Refresh Button", "tooltip": { "enabled": true, "location": "bottom-right", "text": "Refresh Data" } }, "position": { "shrink": 0 }, "props": { "image": { "icon": { "path": "material/refresh" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "FlexContainer" }, "position": { "grow": 1 }, "props": { "justify": "flex-end" }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer Header" }, "position": { "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Title_transparent", "marginBottom": "2px" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Operation" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.options": { "binding": { "config": { "path": "view.custom.operation_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.operation" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "multiSelect": true, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.operation \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.operation})\r\n\u0026\u0026{view.params.query_params.operation}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Operation" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Copy Option" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.options": { "binding": { "config": { "path": "view.custom.copy_option_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.copy_option" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.copy_option \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.copy_option})\r\n\u0026\u0026{view.params.query_params.copy_option}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Copy Option", "visible": false }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer" }, "position": { "shrink": 0 }, "props": { "justify": "center" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Username" }, "type": "ia.display.label" }, { "meta": { "name": "TextField" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.text": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.username" }, "type": "property" } } }, "props": { "placeholder": "Enter username..." }, "type": "ia.input.text-field" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.username \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.username})\r\n\u0026\u0026{view.params.query_params.username}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Username" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Error Occurred?" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.options": { "binding": { "config": { "path": "view.custom.error_occurred_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.error_occurred" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.error_occurred \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.error_occurred})\r\n\u0026\u0026{view.params.query_params.error_occurred}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Error Occurred" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_0" }, "position": { "shrink": 0 }, "props": { "justify": "center" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Dest. Bucket" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.options": { "binding": { "config": { "path": "view.custom.bucket_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.destination_bucket" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.destination_bucket \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.destination_bucket})\r\n\u0026\u0026{view.params.query_params.destination_bucket}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Destination Bucket" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Source Bucket" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.options": { "binding": { "config": { "path": "view.custom.bucket_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.source_bucket" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.source_bucket \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.source_bucket})\r\n\u0026\u0026{view.params.query_params.source_bucket}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Source Bucket" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_1" }, "position": { "shrink": 0 }, "props": { "justify": "center" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Dest. Site" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.destination_bucket})\r\n\u0026\u0026len({view.params.query_params.destination_bucket})\u003e0" }, "type": "expr" } }, "props.options": { "binding": { "config": { "path": "view.custom.destination_whid_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.destination_site" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.destination_site \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.destination_site})\r\n\u0026\u0026{view.params.query_params.destination_site}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Destination Site" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Source Site" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.source_bucket})\r\n\u0026\u0026len({view.params.query_params.source_bucket})\u003e0" }, "type": "expr" } }, "props.options": { "binding": { "config": { "path": "view.custom.source_whid_options" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.source_site" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.source_site \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.source_site})\r\n\u0026\u0026{view.params.query_params.source_site}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Source Site" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_2" }, "position": { "shrink": 0 }, "props": { "justify": "center" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Dest. View" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "len({view.custom.destination_view_options_by_site_and_bucket})\u003e0" }, "type": "expr" } }, "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.destination_bucket})\r\n\u0026\u0026len({view.params.query_params.destination_bucket})\u003e0\r\n\u0026\u0026!isNull({view.params.query_params.destination_site})\r\n\u0026\u0026len({view.params.query_params.destination_site})\u003e0" }, "type": "expr" } }, "props.options": { "binding": { "config": { "path": "view.custom.destination_view_options_by_site_and_bucket" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.destination_view" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "meta": { "name": "TextField" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "len({view.custom.destination_view_options_by_site_and_bucket})\u003d0" }, "type": "expr" } }, "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.destination_bucket})\r\n\u0026\u0026len({view.params.query_params.destination_bucket})\u003e0\r\n\u0026\u0026!isNull({view.params.query_params.destination_site})\r\n\u0026\u0026len({view.params.query_params.destination_site})\u003e0" }, "type": "expr" } }, "props.text": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.destination_view" }, "type": "property" } } }, "props": { "placeholder": "Enter View..." }, "type": "ia.input.text-field" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.destination_view \u003d \u0027\u0027\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.destination_view})\r\n\u0026\u0026{view.params.query_params.destination_view}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Destination View" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Source View" }, "type": "ia.display.label" }, { "meta": { "name": "Dropdown" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "len({view.custom.source_view_options_by_site_and_bucket})\u003e0" }, "type": "expr" } }, "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.source_bucket})\r\n\u0026\u0026len({view.params.query_params.source_bucket})\u003e0\r\n\u0026\u0026!isNull({view.params.query_params.source_site})\r\n\u0026\u0026len({view.params.query_params.source_site})\u003e0" }, "type": "expr" } }, "props.options": { "binding": { "config": { "path": "view.custom.source_view_options_by_site_and_bucket" }, "type": "property" } }, "props.value": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.source_view" }, "type": "property" } } }, "props": { "dropdownOptionStyle": { "overflowWrap": "break-word", "whiteSpace": "normal" }, "multiSelect": true, "showClearIcon": true }, "type": "ia.input.dropdown" }, { "meta": { "name": "TextField" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "len({view.custom.source_view_options_by_site_and_bucket})\u003d0" }, "type": "expr" } }, "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.source_bucket})\r\n\u0026\u0026len({view.params.query_params.source_bucket})\u003e0\r\n\u0026\u0026!isNull({view.params.query_params.source_site})\r\n\u0026\u0026len({view.params.query_params.source_site})\u003e0" }, "type": "expr" } }, "props.text": { "binding": { "config": { "bidirectional": true, "path": "view.params.query_params.source_view" }, "type": "property" } } }, "props": { "placeholder": "Enter View..." }, "type": "ia.input.text-field" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.source_view \u003d \u0027\u0027\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.source_view})\r\n\u0026\u0026{view.params.query_params.source_view}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Source View" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_3" }, "position": { "shrink": 0 }, "props": { "justify": "center" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "Start Time" }, "type": "ia.display.label" }, { "meta": { "name": "DateTimeInput" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.value": { "binding": { "config": { "path": "view.params.query_params.start_time" }, "transforms": [ { "code": "\tif value:\n\t\ttry:\n\t\t\treturn system.date.parse(value, \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\texcept:\n\t\t\treturn None\n\treturn value", "type": "script" } ], "type": "property" }, "onChange": { "enabled": null, "script": "\tif not missedEvents and origin in (\u0027Browser\u0027,):\n\t\tif currentValue.value:\n\t\t\tdt \u003d currentValue.value\n\t\t\tdt_str \u003d system.date.format(dt, \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\t\tself.view.params.query_params.start_time \u003d dt_str" } } }, "props": { "format": "YYYY-MM-DD HH:mm:ss", "formattedValue": null, "placeholder": "Select start time" }, "type": "ia.input.date-time-input" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.start_time \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.start_time})\r\n\u0026\u0026{view.params.query_params.start_time}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "Start Time" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "meta": { "name": "Label" }, "position": { "basis": "125px", "shrink": 0 }, "props": { "style": { "classes": "Framework/Card/Label", "textAlign": "right" }, "text": "End Time" }, "type": "ia.display.label" }, { "meta": { "name": "DateTimeInput" }, "position": { "basis": "175px", "shrink": 0 }, "propConfig": { "props.value": { "binding": { "config": { "path": "view.params.query_params.end_time" }, "transforms": [ { "code": "\tif value:\n\t\ttry:\n\t\t\treturn system.date.parse(value, \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\texcept:\n\t\t\treturn None\n\treturn value", "type": "script" } ], "type": "property" }, "onChange": { "enabled": null, "script": "\tif not missedEvents and origin in (\u0027Browser\u0027,):\n\t\tif currentValue.value:\n\t\t\tdt \u003d currentValue.value\n\t\t\tdt_str \u003d system.date.format(dt, \u0027yyyy-MM-dd HH:mm:ss\u0027)\n\t\t\tself.view.params.query_params.end_time \u003d dt_str" } } }, "props": { "format": "YYYY-MM-DD HH:mm:ss", "formattedValue": null, "placeholder": "Select end time" }, "type": "ia.input.date-time-input" }, { "events": { "component": { "onActionPerformed": { "config": { "script": "\tself.view.params.query_params.end_time \u003d None\n\t" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear Button" }, "position": { "basis": "80px" }, "propConfig": { "props.enabled": { "binding": { "config": { "expression": "!isNull({view.params.query_params.end_time})\r\n\u0026\u0026{view.params.query_params.end_time}!\u003d\u0027\u0027" }, "type": "expr" } } }, "props": { "image": { "icon": { "path": "material/clear" } }, "primary": false, "style": { "classes": "Input/Button/Secondary_minimal" }, "text": "" }, "type": "ia.input.button" } ], "meta": { "name": "End Time" }, "position": { "basis": "335px", "shrink": 0 }, "props": { "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "FlexContainer_4" }, "position": { "shrink": 0 }, "props": { "justify": "center" }, "type": "ia.container.flex" } ], "meta": { "name": "root" }, "props": { "direction": "column" }, "type": "ia.container.flex" } }