Added rotation functionality and modified filter-status to include the UI for the rotation changes. Added DatabaseError popup for the db connection lost

This commit is contained in:
Salijoghli 2025-08-27 12:27:09 +04:00
parent 6b61d880a3
commit df06877bb5
54 changed files with 29193 additions and 28537 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -14,7 +14,7 @@
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.navigate(\"/\" + self.view.params.pageid)"
"script": "\ttagPath \u003d \"[BNA8_SCADA_TAG_PROVIDER]System/Global_Stopped\"\n\tsystem.tag.write(tagPath, True)\n\t"
},
"scope": "G",
"type": "script"

View File

@ -1,18 +1,10 @@
{
"custom": {},
"params": {
"viewFocus": "value"
},
"propConfig": {
"params.viewFocus": {
"paramDirection": "input",
"persistent": true
}
},
"params": {},
"props": {
"defaultSize": {
"height": 373,
"width": 195
"width": 400
}
},
"root": {
@ -1009,6 +1001,170 @@
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "36px",
"shrink": 0
},
"props": {
"style": {
"background-color": "#555555",
"fontWeight": "bold",
"textAlign": "center"
},
"text": "Accessibility"
},
"type": "ia.display.label"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "80px",
"grow": 1
},
"props": {
"style": {
"textAlign": "center"
},
"text": "Rotate Detailed View:"
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\t\n\t# Read current rotation string\n\tcurrentRotation \u003d self.session.custom.rotation\n\t\n\tcurrentAngle \u003d currentRotation.replace(\"deg\", \"\")\n\t\n\t# Increment by 90° and wrap around 360\n\tnewAngle \u003d (int(currentAngle) + 90) % 360\n\t\n\t# Save back as string with \"deg\"\n\tself.session.custom.rotation \u003d str(newAngle) + \"deg\""
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Icon"
},
"position": {
"basis": "30px"
},
"props": {
"path": "material/360",
"style": {
"cursor": "pointer"
}
},
"type": "ia.display.icon"
}
],
"meta": {
"name": "FlexContainer_0",
"tooltip": {
"enabled": true,
"text": "Click to rotate the view 90° clockwise"
}
},
"position": {
"basis": "65px"
},
"props": {
"justify": "space-between",
"style": {
"padding": 10
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "80px",
"grow": 1
},
"props": {
"style": {
"textAlign": "center"
},
"text": "Reset Rotation"
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tself.session.custom.rotation \u003d \"0deg\""
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Icon"
},
"position": {
"basis": "30px"
},
"props": {
"path": "material/cached",
"style": {
"cursor": "painter"
}
},
"type": "ia.display.icon"
}
],
"meta": {
"name": "FlexContainer_1",
"tooltip": {
"enabled": true,
"text": "Reset Rotation"
}
},
"position": {
"basis": "65px"
},
"props": {
"justify": "space-between",
"style": {
"padding": 10
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "Accessibility"
},
"position": {
"basis": "200px",
"shrink": 0
},
"props": {
"direction": "column",
"style": {
"borderColor": "#FFFFFF",
"borderStyle": "solid",
"borderWidth": 1
}
},
"type": "ia.container.flex"
}
],
"meta": {

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -5,7 +5,7 @@
},
"params": {
"tagProps": [
"System/MCM01/PHOTOEYES/TPE/PS3_1_TPE3",
3,
"value",
"value",
"value",
@ -33,42 +33,6 @@
{
"expression": "coalesce({value},0)",
"type": "expression"
},
{
"fallback": 0,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": 1
},
{
"input": 2,
"output": 2
},
{
"input": 3,
"output": 3
},
{
"input": 4,
"output": 4
},
{
"input": 5,
"output": 5
},
{
"input": 6,
"output": 6
},
{
"input": 7,
"output": 7
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
@ -118,7 +82,7 @@
"props": {
"defaultSize": {
"height": 42,
"width": 81
"width": 258
}
},
"root": {
@ -238,6 +202,10 @@
"y": "10"
}
],
"preserveAspectRatio": "none",
"style": {
"boxShadow": "value"
},
"viewBox": "0 0 80 40"
},
"type": "ia.shapes.svg"

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

View File

@ -2,8 +2,6 @@
"custom": {
"alarmHighlight": "",
"alarm_filter": {
"magnificaiton": "x2",
"orderby": true,
"show_VFD": true,
"show_beacons": true,
"show_buttons": true,
@ -109,6 +107,7 @@
"start": "2020-07-29 00:00:00"
}
},
"rotation": "360deg",
"show_dpm_device_view": true,
"show_dpm_view": true,
"timewidget": {

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

View File

@ -6,9 +6,9 @@
"$": [
"ts",
192,
1755083503595
1756281571434
],
"$ts": 1755083503595
"$ts": 1756281571433
}
}
},
@ -494,7 +494,7 @@
}
},
"props": {
"color": "#FF0000",
"color": "#47FF47",
"path": "material/table_chart"
},
"type": "ia.display.icon"

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -448,7 +448,7 @@
},
"onChange": {
"enabled": null,
"script": " db_tag_path \u003d \"[System]Gateway/Database/MariaDB/Available\"\n\t\n if not (system.tag.readBlocking([db_tag_path])[0].value):\n \tsystem.perspective.openPopup(\"errorPopup\",\u0027PopUp-Views/DatabaseError\u0027, title\u003d\"Database Error\")\n\t"
"script": " db_tag_path \u003d \"[System]Gateway/Database/MariaDB/Available\"\n\t\n if not (system.tag.readBlocking([db_tag_path])[0].value):\n \tsystem.perspective.openPopup(\"errorPopup\",\u0027autStand/PopUp-Views/DatabaseError\u0027, title\u003d\"Database Error\")\n\t"
},
"persistent": true
}
@ -528,6 +528,20 @@
},
{
"children": [
{
"meta": {
"hasDelegate": true,
"name": "Spacer End"
},
"position": {
"basis": "10px",
"shrink": 0
},
"props": {
"text": " "
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
@ -575,7 +589,8 @@
"name": "Label"
},
"position": {
"basis": "41px"
"basis": "41px",
"grow": 1
},
"propConfig": {
"props.text": {
@ -614,7 +629,7 @@
}
},
"position": {
"basis": "80px"
"basis": "75px"
},
"propConfig": {
"meta.tooltip.text": {
@ -629,7 +644,8 @@
"props": {
"justify": "flex-end",
"style": {
"cursor": "pointer"
"cursor": "pointer",
"overflow": "hidden"
}
},
"type": "ia.container.flex"

View File

@ -2,8 +2,6 @@
"custom": {
"alarmHighlight": "",
"alarm_filter": {
"magnificaiton": "x2",
"orderby": true,
"show_VFD": true,
"show_beacons": true,
"show_buttons": true,
@ -109,6 +107,7 @@
"start": "2020-07-29 00:00:00"
}
},
"rotation": "360deg",
"show_dpm_device_view": true,
"show_dpm_view": true,
"timewidget": {

View File

@ -9,8 +9,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-26T14:29:54Z"
"timestamp": "2025-08-27T07:29:46Z"
},
"lastModificationSignature": "072e26ef45c87452c86252cb59819c115600d912431e760fb33771ad38f0b65b"
"lastModificationSignature": "d85c279eb4b617154f48320c14703e93092f0a4310333e3cd250e506e802549f"
}
}

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-21T14:58:18Z"
"timestamp": "2025-08-27T07:55:45Z"
},
"lastModificationSignature": "f90ededfe5c228dc2844a07959ea572db0e29c77f985b9c9e18819208055709d"
"lastModificationSignature": "d8fd7332e94561b1e7e033fef2bf108b4a9695cd64970c003289dbf695c8df18"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 487 B

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-21T14:58:04Z"
"timestamp": "2025-08-27T07:56:59Z"
},
"lastModificationSignature": "4c6d61ac07c034abd690da90da10960b6947765e5cde2942ca42d3af0ed548d5"
"lastModificationSignature": "6e09c09e9e809a8f7cfa6eb615bd045b504d61961fc93e302dc34e5b3118d6ef"
}
}

View File

@ -14,7 +14,7 @@
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.navigate(\"/\" + self.view.params.pageid)"
"script": "\ttagPath \u003d \"[BNA8_SCADA_TAG_PROVIDER]System/Global_Stopped\"\n\tsystem.tag.write(tagPath, True)\n\t"
},
"scope": "G",
"type": "script"

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-26T14:43:54Z"
"timestamp": "2025-08-27T07:53:17Z"
},
"lastModificationSignature": "dad5067c7ab40f285c1e00bc14ccea8cb263cd7faf3c9bcf732d6ed34e49818b"
"lastModificationSignature": "8212fe05dfda465fbaef884465a9cfe87f8da98c75930f15ff9769c3a6a800c3"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-26T14:44:14Z"
"timestamp": "2025-08-27T07:59:07Z"
},
"lastModificationSignature": "a477cf434c3c5677944c76852b27a00a4d61dcb09836bad1ad05adfab7cad549"
"lastModificationSignature": "1493319be5d09aa332bf57a6b3b3314472e66c3e666713a44bdfa8b444bc376c"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-19T13:41:54Z"
"timestamp": "2025-08-27T08:16:21Z"
},
"lastModificationSignature": "fbad78643a843606a645624ce2a5d50cb8a9e008bb1dacdef9259344f75cbd27"
"lastModificationSignature": "d5c5b9a3022dc20c7cf22b80fdf3a767b14c568bb6e59eaab9bd98cd8e28e803"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 922 B

After

Width:  |  Height:  |  Size: 958 B

View File

@ -448,7 +448,7 @@
},
"onChange": {
"enabled": null,
"script": " db_tag_path \u003d \"[System]Gateway/Database/MariaDB/Available\"\n\t\n if not (system.tag.readBlocking([db_tag_path])[0].value):\n \tsystem.perspective.openPopup(\"errorPopup\",\u0027PopUp-Views/DatabaseError\u0027, title\u003d\"Database Error\")\n\t"
"script": " db_tag_path \u003d \"[System]Gateway/Database/MariaDB/Available\"\n\t\n if not (system.tag.readBlocking([db_tag_path])[0].value):\n \tsystem.perspective.openPopup(\"errorPopup\",\u0027autStand/PopUp-Views/DatabaseError\u0027, title\u003d\"Database Error\")\n\t"
},
"persistent": true
}
@ -528,6 +528,20 @@
},
{
"children": [
{
"meta": {
"hasDelegate": true,
"name": "Spacer End"
},
"position": {
"basis": "10px",
"shrink": 0
},
"props": {
"text": " "
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
@ -575,7 +589,8 @@
"name": "Label"
},
"position": {
"basis": "41px"
"basis": "41px",
"grow": 1
},
"propConfig": {
"props.text": {
@ -614,7 +629,7 @@
}
},
"position": {
"basis": "80px"
"basis": "75px"
},
"propConfig": {
"meta.tooltip.text": {
@ -629,7 +644,8 @@
"props": {
"justify": "flex-end",
"style": {
"cursor": "pointer"
"cursor": "pointer",
"overflow": "hidden"
}
},
"type": "ia.container.flex"

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-26T14:29:42Z"
"timestamp": "2025-08-26T16:07:40Z"
},
"lastModificationSignature": "f7ba61a965cc42c0008e6db010fe516f136fa511669c21dcb971761b97c28292"
"lastModificationSignature": "cc19d69bda95cb66aa0a34f6e1c05855ddf1ae1564f713fbf1ee55dc2c13131f"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 B

After

Width:  |  Height:  |  Size: 624 B

View File

@ -5,7 +5,7 @@
},
"params": {
"tagProps": [
"System/MCM01/PHOTOEYES/TPE/PS3_1_TPE3",
3,
"value",
"value",
"value",
@ -33,42 +33,6 @@
{
"expression": "coalesce({value},0)",
"type": "expression"
},
{
"fallback": 0,
"inputType": "scalar",
"mappings": [
{
"input": 1,
"output": 1
},
{
"input": 2,
"output": 2
},
{
"input": 3,
"output": 3
},
{
"input": 4,
"output": 4
},
{
"input": 5,
"output": 5
},
{
"input": 6,
"output": 6
},
{
"input": 7,
"output": 7
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "tag"
@ -118,7 +82,7 @@
"props": {
"defaultSize": {
"height": 42,
"width": 81
"width": 258
}
},
"root": {
@ -238,6 +202,10 @@
"y": "10"
}
],
"preserveAspectRatio": "none",
"style": {
"boxShadow": "value"
},
"viewBox": "0 0 80 40"
},
"type": "ia.shapes.svg"

View File

@ -0,0 +1,17 @@
{
"scope": "G",
"version": 1,
"restricted": false,
"overridable": true,
"files": [
"view.json",
"thumbnail.png"
],
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-27T07:59:06Z"
},
"lastModificationSignature": "343c19b4488ba9acad6fcab2d3f99e9fdbfaa5e867154757fbd9a8a1b7d0d953"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -0,0 +1,91 @@
{
"custom": {},
"params": {},
"props": {
"defaultSize": {
"height": 165,
"width": 400
}
},
"root": {
"children": [
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "32px"
},
"props": {
"text": "An error occurred while connecting to the database."
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Label_0"
},
"position": {
"basis": "32px"
},
"props": {
"text": "Network or database connection failed. Check your settings or contact IT support."
},
"type": "ia.display.label"
}
],
"meta": {
"name": "FlexContainer"
},
"position": {
"grow": 1
},
"props": {
"alignItems": "flex-start",
"direction": "column",
"justify": "space-around",
"style": {
"paddingLeft": 5,
"paddingRight": 5
}
},
"type": "ia.container.flex"
},
{
"events": {
"component": {
"onActionPerformed": {
"config": {
"script": "\tsystem.perspective.closePopup(\"\")"
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Button"
},
"props": {
"primary": false,
"style": {
"marginTop": 3
},
"text": "Dismiss"
},
"type": "ia.input.button"
}
],
"meta": {
"name": "root"
},
"props": {
"alignContent": "flex-start",
"direction": "column",
"justify": "space-around"
},
"type": "ia.container.flex"
}
}

View File

@ -10,8 +10,8 @@
"attributes": {
"lastModification": {
"actor": "admin",
"timestamp": "2025-08-18T17:07:31Z"
"timestamp": "2025-08-27T07:54:56Z"
},
"lastModificationSignature": "3d57ad96a1346126c73b545dd5158455d74c8636fd07af5257370dc0fd643420"
"lastModificationSignature": "e9517cb0403a375bfef1353d13707c409115f80a2c4f9a5cffd13f4ce41e8304"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,18 +1,10 @@
{
"custom": {},
"params": {
"viewFocus": "value"
},
"propConfig": {
"params.viewFocus": {
"paramDirection": "input",
"persistent": true
}
},
"params": {},
"props": {
"defaultSize": {
"height": 373,
"width": 195
"width": 400
}
},
"root": {
@ -1009,6 +1001,170 @@
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "36px",
"shrink": 0
},
"props": {
"style": {
"background-color": "#555555",
"fontWeight": "bold",
"textAlign": "center"
},
"text": "Accessibility"
},
"type": "ia.display.label"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "80px",
"grow": 1
},
"props": {
"style": {
"textAlign": "center"
},
"text": "Rotate Detailed View:"
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\t\n\t# Read current rotation string\n\tcurrentRotation \u003d self.session.custom.rotation\n\t\n\tcurrentAngle \u003d currentRotation.replace(\"deg\", \"\")\n\t\n\t# Increment by 90° and wrap around 360\n\tnewAngle \u003d (int(currentAngle) + 90) % 360\n\t\n\t# Save back as string with \"deg\"\n\tself.session.custom.rotation \u003d str(newAngle) + \"deg\""
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Icon"
},
"position": {
"basis": "30px"
},
"props": {
"path": "material/360",
"style": {
"cursor": "pointer"
}
},
"type": "ia.display.icon"
}
],
"meta": {
"name": "FlexContainer_0",
"tooltip": {
"enabled": true,
"text": "Click to rotate the view 90° clockwise"
}
},
"position": {
"basis": "65px"
},
"props": {
"justify": "space-between",
"style": {
"padding": 10
}
},
"type": "ia.container.flex"
},
{
"children": [
{
"meta": {
"name": "Label"
},
"position": {
"basis": "80px",
"grow": 1
},
"props": {
"style": {
"textAlign": "center"
},
"text": "Reset Rotation"
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"script": "\tself.session.custom.rotation \u003d \"0deg\""
},
"scope": "G",
"type": "script"
}
}
},
"meta": {
"name": "Icon"
},
"position": {
"basis": "30px"
},
"props": {
"path": "material/cached",
"style": {
"cursor": "painter"
}
},
"type": "ia.display.icon"
}
],
"meta": {
"name": "FlexContainer_1",
"tooltip": {
"enabled": true,
"text": "Reset Rotation"
}
},
"position": {
"basis": "65px"
},
"props": {
"justify": "space-between",
"style": {
"padding": 10
}
},
"type": "ia.container.flex"
}
],
"meta": {
"name": "Accessibility"
},
"position": {
"basis": "200px",
"shrink": 0
},
"props": {
"direction": "column",
"style": {
"borderColor": "#FFFFFF",
"borderStyle": "solid",
"borderWidth": 1
}
},
"type": "ia.container.flex"
}
],
"meta": {