Yes.
We’re using the default Ignition IdP with mostly default configuration. I just added a group that we’re using to control access to some buttons.
I’m calling system.perspective.logout() from a header bar. I got this header bar from an old sample Ignition project back in January. I’ve since modified it heavily for various requests by the customer. I took the image of a person and changed the click script to be a logout instead of a log in.
It sounds like the issue is fixed maybe. This is the json for the screen. I’m not sure if that’s helpful but maybe.
{
"custom": {
"label": {}
},
"events": null,
"params": {
"menuSize": "large"
},
"permissions": null,
"propConfig": {
"custom.label.basis": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": 0
},
{
"input": "medium",
"output": "auto"
},
{
"input": "large",
"output": "auto"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"custom.label.spacerBasis": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": "0px"
},
{
"input": "medium",
"output": "16px"
},
{
"input": "large",
"output": "16px"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"custom.label.visible": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": false
},
{
"input": "medium",
"output": true
},
{
"input": "large",
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"params.key": {
"paramDirection": "input"
},
"params.menuSize": {
"paramDirection": "input"
}
},
"props": {
"defaultSize": {
"height": 58
}
},
"root": {
"children": [
{
"events": {
"dom": {
"onClick": {
"config": {
"id": "menu",
"type": "toggle"
},
"scope": "C",
"type": "dock"
}
}
},
"meta": {
"name": "Menu Dock"
},
"position": {
"basis": "24px",
"grow": 0,
"shrink": 0
},
"propConfig": {
"props.style.display": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": "inline"
},
{
"input": "medium",
"output": "inline"
},
{
"input": "large",
"output": "none"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"path": "material/menu",
"style": {
"classes": "Header",
"cursor": "pointer",
"marginRight": "10px"
}
},
"type": "ia.display.icon"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"draggable": false,
"id": "options-popup",
"modal": false,
"overlayDismiss": true,
"position": {
"height": 94,
"right": 10,
"top": 50,
"width": 200
},
"resizable": true,
"showCloseIcon": true,
"type": "toggle",
"viewPath": "Header/Popups/Options"
},
"scope": "C",
"type": "popup"
}
}
},
"meta": {
"name": "Options"
},
"position": {
"basis": "30px",
"grow": 0,
"shrink": 0
},
"propConfig": {
"props.style.display": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": "inline"
},
{
"input": "medium",
"output": "none"
},
{
"input": "large",
"output": "none"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"path": "material/more_vert",
"style": {
"classes": "Header",
"cursor": "pointer"
}
},
"type": "ia.display.icon"
},
{
"meta": {
"hasDelegate": true,
"name": "Spacer Start"
},
"position": {
"basis": "16px",
"grow": 0,
"shrink": 0
},
"props": {
"style": {
"classes": "WhiteBG"
},
"text": " "
},
"type": "ia.display.label"
},
{
"meta": {
"name": "Image"
},
"position": {
"basis": "100px",
"grow": 0,
"shrink": 1
},
"props": {
"fit": {
"mode": "contain"
},
"source": "\\system\\images\\logo.png",
"style": {
"classes": "WhiteBG"
},
"tint": {
"color": "#FFFFFF"
}
},
"type": "ia.display.image"
},
{
"meta": {
"hasDelegate": true,
"name": "Spacer End"
},
"position": {
"basis": "16px",
"grow": 0,
"shrink": 0
},
"props": {
"style": {
"classes": "WhiteBG"
},
"text": " "
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"securityLevels": [
"/Authenticated"
]
},
"scope": "C",
"type": "login"
}
}
},
"meta": {
"hasDelegate": true,
"name": "Title"
},
"position": {
"grow": 0,
"shrink": 1
},
"propConfig": {
"position.basis": {
"binding": {
"config": {
"path": "view.custom.label.basis"
},
"type": "property"
}
},
"props.text": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": "Pine Ave."
},
{
"input": "medium",
"output": "Pine Ave. LFG H2S Treatment"
},
{
"input": "large",
"output": "Pine Avenue Landfill Gas H2S Treatment System"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"alignVertical": "center",
"style": {
"classes": "Bold_Text",
"cursor": "pointer",
"marginLeft": "4px"
}
},
"type": "ia.display.label"
},
{
"meta": {
"hasDelegate": true,
"name": "Filler"
},
"position": {
"grow": 1,
"shrink": 1
},
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": false
},
{
"input": "medium",
"output": false
},
{
"input": "large",
"output": true
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
},
"position.basis": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": 0
},
{
"input": "medium",
"output": 0
},
{
"input": "large",
"output": "auto"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"text": " "
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {},
"scope": "C",
"type": "logout"
}
}
},
"meta": {
"name": "User"
},
"position": {
"basis": "30px",
"grow": 0,
"shrink": 0
},
"props": {
"path": "material/person",
"style": {
"classes": "Header",
"cursor": "pointer"
}
},
"type": "ia.display.icon"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"securityLevels": [
"/Authenticated"
]
},
"scope": "C",
"type": "login"
}
}
},
"meta": {
"hasDelegate": true,
"name": "Sign In"
},
"position": {
"grow": 0,
"shrink": 1
},
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"path": "view.custom.label.visible"
},
"type": "property"
}
},
"position.basis": {
"binding": {
"config": {
"path": "view.custom.label.basis"
},
"type": "property"
}
},
"props.text": {
"binding": {
"config": {
"path": "session.props.auth.user.userName"
},
"transforms": [
{
"expression": "if({value} \u003d null || len({value}) \u003d 0, \"Sign In\", {value})",
"type": "expression"
}
],
"type": "property"
}
}
},
"props": {
"alignVertical": "center",
"style": {
"cursor": "pointer",
"marginLeft": "4px"
}
},
"type": "ia.display.label"
},
{
"meta": {
"hasDelegate": true,
"name": "Spacer 1"
},
"position": {
"grow": 0,
"shrink": 0
},
"propConfig": {
"meta.visible": {
"binding": {
"config": {
"path": "view.custom.label.visible"
},
"type": "property"
}
},
"position.basis": {
"binding": {
"config": {
"path": "view.custom.label.spacerBasis"
},
"type": "property"
}
}
},
"props": {
"text": " "
},
"type": "ia.display.label"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"page": "/alarms"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"name": "Alarm Icon"
},
"position": {
"basis": "26px",
"grow": 0,
"shrink": 0
},
"propConfig": {
"props.style.classes": {
"binding": {
"config": {
"path": "../Alarms.custom.numAlarms"
},
"transforms": [
{
"expression": "if({value} \u003e 0, \"Header Header_Alarm_Active\", \"Header\")",
"type": "expression"
}
],
"type": "property"
}
},
"props.style.display": {
"binding": {
"config": {
"path": "view.params.menuSize"
},
"transforms": [
{
"fallback": null,
"inputType": "scalar",
"mappings": [
{
"input": "small",
"output": "none"
},
{
"input": "medium",
"output": "inline"
},
{
"input": "large",
"output": "inline"
}
],
"outputType": "scalar",
"type": "map"
}
],
"type": "property"
}
}
},
"props": {
"path": "material/alarm"
},
"type": "ia.display.icon"
},
{
"events": {
"dom": {
"onClick": {
"config": {
"page": "/alarms"
},
"scope": "C",
"type": "nav"
}
}
},
"meta": {
"hasDelegate": true,
"name": "Alarms"
},
"position": {
"grow": 0,
"shrink": 0
},
"propConfig": {
"custom.numAlarms": {
"binding": {
"config": {
"expression": "now(2000)"
},
"transforms": [
{
"code": "\treturn len(system.alarm.queryStatus(state\u003d[\"ActiveUnacked\"]))",
"type": "script"
}
],
"type": "expr"
}
},
"meta.visible": {
"binding": {
"config": {
"bidirectional": false,
"path": "view.custom.label.visible"
},
"type": "property"
}
},
"position.basis": {
"binding": {
"config": {
"bidirectional": false,
"path": "view.custom.label.basis"
},
"type": "property"
}
},
"props.style.classes": {
"binding": {
"config": {
"path": "../Alarms.custom.numAlarms"
},
"transforms": [
{
"expression": "if({value} \u003e 0, \"Header Header_Alarm_Active\", \"\")",
"type": "expression"
}
],
"type": "property"
}
},
"props.text": {
"binding": {
"config": {
"path": "this.custom.numAlarms"
},
"transforms": [
{
"expression": "numberFormat({value}, \"#,##0\") + \" alarm\" + if({value} \u003e 1 || {value} \u003d 0, \"s\", \"\")",
"type": "expression"
}
],
"type": "property"
}
}
},
"props": {
"alignVertical": "center",
"style": {
"marginLeft": "6px"
}
},
"type": "ia.display.label"
},
{
"meta": {
"hasDelegate": true,
"name": "Spacer End_0"
},
"position": {
"basis": "16px",
"grow": 0,
"shrink": 1
},
"props": {
"text": " "
},
"type": "ia.display.label"
}
],
"meta": {
"name": "root"
},
"props": {
"style": {
"classes": "Header"
}
},
"type": "ia.container.flex"
}
}