dash-button-web 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dash-button.cjs.entry.js +39 -45
- package/dist/cjs/dash-button.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-991e75df.js → index-065225eb.js} +5 -1
- package/dist/{esm/index-8310c457.js.map → cjs/index-065225eb.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/web-compnont.cjs.js +2 -2
- package/dist/collection/components/my-component/dash-button.css +40 -0
- package/dist/collection/components/my-component/dash-button.js +56 -44
- package/dist/collection/components/my-component/dash-button.js.map +1 -1
- package/dist/components/dash-button.js +41 -45
- package/dist/components/dash-button.js.map +1 -1
- package/dist/esm/dash-button.entry.js +39 -45
- package/dist/esm/dash-button.entry.js.map +1 -1
- package/dist/esm/{index-8310c457.js → index-2b1034cf.js} +5 -1
- package/dist/esm/index-2b1034cf.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/web-compnont.js +3 -3
- package/dist/types/components/my-component/dash-button.d.ts +2 -0
- package/dist/types/components.d.ts +2 -0
- package/dist/web-compnont/p-bdb5725e.js +3 -0
- package/dist/web-compnont/p-bdb5725e.js.map +1 -0
- package/dist/web-compnont/{p-89ceb862.entry.js → p-e4d4f568.entry.js} +3 -3
- package/dist/web-compnont/p-e4d4f568.entry.js.map +1 -0
- package/dist/web-compnont/web-compnont.esm.js +1 -1
- package/dist/web-compnont/web-compnont.esm.js.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/index-991e75df.js.map +0 -1
- package/dist/web-compnont/p-4bd42d49.js +0 -3
- package/dist/web-compnont/p-4bd42d49.js.map +0 -1
- package/dist/web-compnont/p-89ceb862.entry.js.map +0 -1
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-065225eb.js');
|
|
6
6
|
|
|
7
7
|
const defineCustomElements = (win, options) => {
|
|
8
8
|
if (typeof window === 'undefined') return undefined;
|
|
9
|
-
return index.bootstrapLazy([["dash-button.cjs",[[1,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"keycloakUri":[1,"keycloak-uri"],"realm":[1],"clientId":[1,"client-id"],"appId":[1,"app-id"],"portalUrl":[1,"portal-url"],"marketplaceUrl":[1,"marketplace-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"keycloak":[32],"isAuth":[32],"givenName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32]}]]]], options);
|
|
9
|
+
return index.bootstrapLazy([["dash-button.cjs",[[1,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"keycloakUri":[1,"keycloak-uri"],"realm":[1],"clientId":[1,"client-id"],"appId":[1,"app-id"],"portalUrl":[1,"portal-url"],"marketplaceUrl":[1,"marketplace-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"postTextDelayDuration":[2,"post-text-delay-duration"],"keycloak":[32],"isAuth":[32],"givenName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32],"showPostLoginLoadingSpinner":[32]}]]]], options);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
exports.setNonce = index.setNonce;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-065225eb.js');
|
|
6
6
|
|
|
7
7
|
/*
|
|
8
8
|
Stencil Client Patch Browser v4.12.0 | MIT Licensed | https://stenciljs.com
|
|
@@ -17,7 +17,7 @@ const patchBrowser = () => {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
patchBrowser().then(options => {
|
|
20
|
-
return index.bootstrapLazy([["dash-button.cjs",[[1,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"keycloakUri":[1,"keycloak-uri"],"realm":[1],"clientId":[1,"client-id"],"appId":[1,"app-id"],"portalUrl":[1,"portal-url"],"marketplaceUrl":[1,"marketplace-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"keycloak":[32],"isAuth":[32],"givenName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32]}]]]], options);
|
|
20
|
+
return index.bootstrapLazy([["dash-button.cjs",[[1,"dash-button",{"showPostLoginText":[4,"show-post-login-text"],"silentCheckSso":[4,"silent-check-sso"],"redirectUri":[1,"redirect-uri"],"authMethod":[1,"auth-method"],"keycloakUri":[1,"keycloak-uri"],"realm":[1],"clientId":[1,"client-id"],"appId":[1,"app-id"],"portalUrl":[1,"portal-url"],"marketplaceUrl":[1,"marketplace-url"],"showUnauthorizedModal":[4,"show-unauthorized-modal"],"postTextDelayDuration":[2,"post-text-delay-duration"],"keycloak":[32],"isAuth":[32],"givenName":[32],"silentCheckSsoRedirectUri":[32],"appList":[32],"showPostLoginLoadingSpinner":[32]}]]]], options);
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
exports.setNonce = index.setNonce;
|
|
@@ -227,4 +227,44 @@
|
|
|
227
227
|
to {
|
|
228
228
|
stroke-dashoffset: 113px;
|
|
229
229
|
}
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.lds-ring {
|
|
233
|
+
color: #fff
|
|
234
|
+
}
|
|
235
|
+
.lds-ring {
|
|
236
|
+
display: flex;
|
|
237
|
+
justify-content: center;
|
|
238
|
+
align-items: center;
|
|
239
|
+
margin: auto;
|
|
240
|
+
position: relative;
|
|
241
|
+
}
|
|
242
|
+
.lds-ring div {
|
|
243
|
+
box-sizing: border-box;
|
|
244
|
+
display: block;
|
|
245
|
+
position: absolute;
|
|
246
|
+
width: 30px;
|
|
247
|
+
height: 30px;
|
|
248
|
+
margin: 3px;
|
|
249
|
+
border: 3px solid currentColor;
|
|
250
|
+
border-radius: 50%;
|
|
251
|
+
animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
252
|
+
border-color: currentColor transparent transparent transparent;
|
|
253
|
+
}
|
|
254
|
+
.lds-ring div:nth-child(1) {
|
|
255
|
+
animation-delay: -0.45s;
|
|
256
|
+
}
|
|
257
|
+
.lds-ring div:nth-child(2) {
|
|
258
|
+
animation-delay: -0.3s;
|
|
259
|
+
}
|
|
260
|
+
.lds-ring div:nth-child(3) {
|
|
261
|
+
animation-delay: -0.15s;
|
|
262
|
+
}
|
|
263
|
+
@keyframes lds-ring {
|
|
264
|
+
0% {
|
|
265
|
+
transform: rotate(0deg);
|
|
266
|
+
}
|
|
267
|
+
100% {
|
|
268
|
+
transform: rotate(360deg);
|
|
269
|
+
}
|
|
230
270
|
}
|
|
@@ -13,6 +13,7 @@ export class DashButtonComponent {
|
|
|
13
13
|
this.portalUrl = "";
|
|
14
14
|
this.marketplaceUrl = "";
|
|
15
15
|
this.showUnauthorizedModal = false;
|
|
16
|
+
this.postTextDelayDuration = undefined;
|
|
16
17
|
this.keycloak = new Keycloak({
|
|
17
18
|
url: this.keycloakUri,
|
|
18
19
|
realm: this.realm,
|
|
@@ -22,9 +23,24 @@ export class DashButtonComponent {
|
|
|
22
23
|
this.givenName = "";
|
|
23
24
|
this.silentCheckSsoRedirectUri = window.location.origin + '/assets/verificar-sso.html';
|
|
24
25
|
this.appList = [];
|
|
26
|
+
this.showPostLoginLoadingSpinner = false;
|
|
25
27
|
}
|
|
26
28
|
;
|
|
27
29
|
componentWillLoad() {
|
|
30
|
+
//
|
|
31
|
+
// User set post-text-delay-duration for displaying loading spinner
|
|
32
|
+
//
|
|
33
|
+
if (this.postTextDelayDuration > 0) {
|
|
34
|
+
// Show loading spinner
|
|
35
|
+
this.showPostLoginLoadingSpinner = true;
|
|
36
|
+
// Removing a loading spinner after the delay period ending
|
|
37
|
+
setTimeout(() => {
|
|
38
|
+
this.showPostLoginLoadingSpinner = false;
|
|
39
|
+
}, this.postTextDelayDuration);
|
|
40
|
+
}
|
|
41
|
+
//
|
|
42
|
+
// Init Keycloak
|
|
43
|
+
//
|
|
28
44
|
this.initKeycloak().then(() => {
|
|
29
45
|
// Check if the user is authenticated
|
|
30
46
|
if (this.isAuth) {
|
|
@@ -38,6 +54,8 @@ export class DashButtonComponent {
|
|
|
38
54
|
const tempAppList = this.appList.map(obj => obj['shortname']);
|
|
39
55
|
// Check if the user has permission to access the selected application
|
|
40
56
|
if (appIdList.filter(id => tempAppList.includes(id)).length == 0) {
|
|
57
|
+
// Update local storage app permission
|
|
58
|
+
localStorage.setItem("ZDZW_app_permission", JSON.stringify(false));
|
|
41
59
|
// Show modal
|
|
42
60
|
const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
43
61
|
appErrorModal.style.display = "block";
|
|
@@ -57,49 +75,19 @@ export class DashButtonComponent {
|
|
|
57
75
|
}, 1000);
|
|
58
76
|
}
|
|
59
77
|
}
|
|
78
|
+
else {
|
|
79
|
+
// The user is authenticated and has the necessary permissions
|
|
80
|
+
// Update local storage app permission
|
|
81
|
+
localStorage.setItem("ZDZW_app_permission", JSON.stringify(true));
|
|
82
|
+
}
|
|
60
83
|
}
|
|
61
84
|
});
|
|
62
85
|
}
|
|
63
86
|
});
|
|
64
|
-
// // Get all application data associated with organization ID
|
|
65
|
-
// const appIdList = this.appId.replace(/'/g, '').split(',');
|
|
66
|
-
// var appListIds:Array<string> = []
|
|
67
|
-
// if(this.appId) {
|
|
68
|
-
// // const appList:Array<string> = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;
|
|
69
|
-
// // Get app ID from marketplace (Compare product_id with app_id)
|
|
70
|
-
// this.getAppList().then((response: Response) => response.json())
|
|
71
|
-
// .then(response => {
|
|
72
|
-
// // Save application data to a global array
|
|
73
|
-
// if(this.appList.length <= 0 ) {
|
|
74
|
-
// this.appList = response
|
|
75
|
-
// }
|
|
76
|
-
// // Save application IDs to a local array
|
|
77
|
-
// appListIds.push(...this.appList.map(obj => obj['product_id']))
|
|
78
|
-
// // Check if the user has permission to access the selected application
|
|
79
|
-
// if(appIdList.filter(id => appListIds.includes(id)).length == 0) {
|
|
80
|
-
// // Show modal
|
|
81
|
-
// const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
82
|
-
// appErrorModal.style.display = "block";
|
|
83
|
-
// // If a redirect URL is provided, show the loading spinner
|
|
84
|
-
// if (this.portalUrl) {
|
|
85
|
-
// var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
|
|
86
|
-
// var countdown = 6;
|
|
87
|
-
// countdownNumberEl.textContent = countdown.toString();
|
|
88
|
-
// setInterval(() => {
|
|
89
|
-
// countdown = --countdown <= 0 ? 6 : countdown;
|
|
90
|
-
// countdownNumberEl.textContent = countdown.toString();
|
|
91
|
-
// // Once the countdown finishes, redirect to the provided URL
|
|
92
|
-
// if(countdown == 1) {
|
|
93
|
-
// // appErrorModal.style.display = "none";
|
|
94
|
-
// window.location.replace(this.portalUrl.toString());
|
|
95
|
-
// }
|
|
96
|
-
// }, 1000);
|
|
97
|
-
// }
|
|
98
|
-
// }
|
|
99
|
-
// })
|
|
100
|
-
// }
|
|
101
87
|
}
|
|
102
88
|
async initKeycloak() {
|
|
89
|
+
// Remove the initiation time permission localstorage object
|
|
90
|
+
localStorage.removeItem("ZDZW_app_permission");
|
|
103
91
|
await this.keycloak.init({
|
|
104
92
|
onLoad: this.authMethod,
|
|
105
93
|
checkLoginIframe: false,
|
|
@@ -141,19 +129,25 @@ export class DashButtonComponent {
|
|
|
141
129
|
appModal.style.display = "none";
|
|
142
130
|
}
|
|
143
131
|
render() {
|
|
144
|
-
return h("div", { key: '
|
|
132
|
+
return h("div", { key: '2d24aa9842755844cff0091432697b28dbe3719a' }, h("div", { key: '99991837185cd9d0cb6785828ce18ec59cdb6659' }, (() => {
|
|
145
133
|
if (this.isAuth && this.showPostLoginText) {
|
|
146
|
-
|
|
134
|
+
// User set post-text-delay-duration for displaying loading spinner
|
|
135
|
+
if (this.showPostLoginLoadingSpinner) {
|
|
136
|
+
return (h("a", { id: "login-btn", class: "button button-link" }, h("div", { class: "lds-ring" }, h("div", null), h("div", null), h("div", null), h("div", null))));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
return (h("a", { href: this.redirectUri, id: "login-btn", class: "button button-link" }, h("span", { class: "button-text button-text-full-width" }, "Go to Dashboard")));
|
|
140
|
+
}
|
|
147
141
|
}
|
|
148
142
|
else if (this.isAuth) {
|
|
149
|
-
return (h("div", { id: "profile-btn", class: "dropdown" }, h("button", { type: "button", class: "button" }, h("span", { class: "button-profile" }, h("img", { src: "https://i.pravatar.cc/100?img=32", alt: "" })), h("span", { id: "given-name", class: "button-text" }, this.givenName), h("div", { class: "button-icon" }, h("span", { class: "gg-menu-grid-r" }))), h("div", { class: "dropdown-content" }, h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, "Applications"), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, "Logout"))));
|
|
143
|
+
return (h("div", { id: "profile-btn", class: "dropdown" }, h("button", { type: "button", class: "button" }, h("span", { class: "button-profile" }, h("img", { src: "https://i.pravatar.cc/100?img=32", alt: "" })), h("span", { id: "given-name", class: "button-text" }, this.givenName), h("div", { class: "button-icon" }, h("span", { class: "gg-menu-grid-r" }))), h("div", { class: "dropdown-content" }, h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, "Applications"), h("a", { href: this.portalUrl, target: '_blank', id: "applications-btn" }, "Portal"), h("a", { href: this.marketplaceUrl, target: '_blank', id: "applications-btn" }, "Marketplace"), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, "Logout"))));
|
|
150
144
|
}
|
|
151
145
|
else {
|
|
152
146
|
return (h("button", { onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, h("span", { class: "button-text" }, "Login")));
|
|
153
147
|
}
|
|
154
|
-
})()), h("div", { key: '
|
|
155
|
-
return (h("a", { class: "external-app-link", target: '_blank', href: "https://" + app.shortname + "-zdzw
|
|
156
|
-
}) : h("div", null, h("h3", { class: "gray-text" }, "Not installed application found."), " ", h("p", { class: "gray-text" }, "Please contact administration."))))), h("div", { key: '
|
|
148
|
+
})()), h("div", { key: '38c4054577687e6af7222d5633b4191c8d63efab', id: "appListModal", class: "modal" }, h("div", { key: 'aabb2b68614c0897b88a907979419f584388f60a', class: "modal-content" }, h("span", { key: '42696988b0954589250e4a6f212bf00954d4e2d0', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), h("h3", { key: '08eb82158bfe231595c79e131b161b3066553d33' }, "Applications"), h("div", { key: 'e838130cfa6cdf222cc7455fb1d4b01ab9105492', class: "modal-body" }, this.appList.length > 0 ? this.appList.map(app => {
|
|
149
|
+
return (h("a", { class: "external-app-link", target: '_blank', href: "https://" + app.shortname + "-zdzw" + this.portalUrl.replace(/(^\w+:|^)\/\//, '').replace('.portal-frontend-zdzw', '') }, h("div", { class: "modal-app" }, h("div", null, app.name))));
|
|
150
|
+
}) : h("div", null, h("h3", { class: "gray-text" }, "Not installed application found."), " ", h("p", { class: "gray-text" }, "Please contact administration."))))), h("div", { key: '6b350ae02d908c7272a87ca967080b5d64ec0590', id: "appPermissionErrorModal", class: "modal" }, h("div", { key: 'df481e3196372ab1477503bb53c9a149874cc020', class: "modal-content" }, h("img", { key: 'eb31969132393cef988ab6904634617cbd8a7627', src: "data:image/png;base64,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" }), h("h2", { key: 'dbc50750de599994e5623a6f8596aae96280ad45', class: "green-text margin-b" }, "You don't have permission to access this application."), h("h3", { key: '950f04d0e34e57b99a1cddb5cf2156755572020a', class: "green-text" }, "Please contact the administration."), (this.portalUrl && this.showUnauthorizedModal) ?
|
|
157
151
|
h("div", null, h("h4", { class: "gray-text" }, "You will be automatically redirected to the portal."), h("div", { id: "countdown" }, h("div", { id: "countdown-number" }), h("svg", null, h("circle", { r: "18", cx: "20", cy: "20" }))))
|
|
158
152
|
: h("div", null))));
|
|
159
153
|
}
|
|
@@ -367,6 +361,23 @@ export class DashButtonComponent {
|
|
|
367
361
|
"attribute": "show-unauthorized-modal",
|
|
368
362
|
"reflect": false,
|
|
369
363
|
"defaultValue": "false"
|
|
364
|
+
},
|
|
365
|
+
"postTextDelayDuration": {
|
|
366
|
+
"type": "number",
|
|
367
|
+
"mutable": false,
|
|
368
|
+
"complexType": {
|
|
369
|
+
"original": "number",
|
|
370
|
+
"resolved": "number",
|
|
371
|
+
"references": {}
|
|
372
|
+
},
|
|
373
|
+
"required": false,
|
|
374
|
+
"optional": false,
|
|
375
|
+
"docs": {
|
|
376
|
+
"tags": [],
|
|
377
|
+
"text": ""
|
|
378
|
+
},
|
|
379
|
+
"attribute": "post-text-delay-duration",
|
|
380
|
+
"reflect": false
|
|
370
381
|
}
|
|
371
382
|
};
|
|
372
383
|
}
|
|
@@ -376,7 +387,8 @@ export class DashButtonComponent {
|
|
|
376
387
|
"isAuth": {},
|
|
377
388
|
"givenName": {},
|
|
378
389
|
"silentCheckSsoRedirectUri": {},
|
|
379
|
-
"appList": {}
|
|
390
|
+
"appList": {},
|
|
391
|
+
"showPostLoginLoadingSpinner": {}
|
|
380
392
|
};
|
|
381
393
|
}
|
|
382
394
|
static get elementRef() { return "el"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dash-button.js","sourceRoot":"","sources":["../../../src/components/my-component/dash-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, h, Element } from '@stencil/core';\nimport Keycloak from \"keycloak-js\";\n\n\n@Component({\n tag: 'dash-button',\n styleUrl: 'dash-button.css',\n shadow: true,\n})\nexport class DashButtonComponent {\n\n @Element() el;\n \n @Prop() showPostLoginText: boolean = false;\n @Prop() silentCheckSso: boolean = false;\n @Prop() redirectUri: string;\n @Prop() authMethod: string = \"check-sso\";\n\n @Prop() keycloakUri: string = \"http://localhost:8080\";\n @Prop() realm: string = \"\";\n @Prop() clientId: string = \"\";\n\n @Prop() appId: string = \"\";\n @Prop() portalUrl: string = \"\";\n @Prop() marketplaceUrl: string = \"\";\n @Prop() showUnauthorizedModal: boolean = false;\n\n @State() keycloak: any = new Keycloak({\n url: this.keycloakUri,\n realm: this.realm,\n clientId: this.clientId,\n });;\n\n @State() isAuth = false;\n @State() givenName: string = \"\";\n @State() silentCheckSsoRedirectUri: string = window.location.origin + '/assets/verificar-sso.html';\n\n @State() appList = []\n\n componentWillLoad() {\n this.initKeycloak().then(() => {\n // Check if the user is authenticated\n if(this.isAuth) {\n this.getAppList().then(res => {\n this.appList = res\n\n // If the user has set an app ID, check if they have permission to access\n if(this.appId) {\n \n // Retrieve the list of buttons that are configured to set the app ID\n const appIdList = this.appId.replace(/'/g, '').split(',');\n // Remote appID list parsed from object\n const tempAppList = this.appList.map(obj => obj['shortname'])\n\n // Check if the user has permission to access the selected application\n if(appIdList.filter(id => tempAppList.includes(id)).length == 0) {\n\n // Show modal\n const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');\n appErrorModal.style.display = \"block\";\n\n // If a redirect URL is provided, show the loading spinner\n if (this.portalUrl && this.showUnauthorizedModal) {\n var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');\n var countdown = 6;\n\n countdownNumberEl.textContent = countdown.toString();\n\n setInterval(() => {\n countdown = --countdown <= 0 ? 6 : countdown;\n countdownNumberEl.textContent = countdown.toString();\n\n // Once the countdown finishes, redirect to the provided URL\n if(countdown == 1) {\n // appErrorModal.style.display = \"none\";\n window.location.replace(this.portalUrl.toString());\n }\n }, 1000);\n }\n }\n }\n\n })\n }\n })\n\n // // Get all application data associated with organization ID\n // const appIdList = this.appId.replace(/'/g, '').split(',');\n // var appListIds:Array<string> = []\n\n // if(this.appId) {\n // // const appList:Array<string> = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;\n\n // // Get app ID from marketplace (Compare product_id with app_id)\n // this.getAppList().then((response: Response) => response.json())\n // .then(response => {\n\n // // Save application data to a global array\n // if(this.appList.length <= 0 ) {\n // this.appList = response\n // }\n\n // // Save application IDs to a local array\n // appListIds.push(...this.appList.map(obj => obj['product_id']))\n\n // // Check if the user has permission to access the selected application\n // if(appIdList.filter(id => appListIds.includes(id)).length == 0) {\n\n // // Show modal\n // const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');\n // appErrorModal.style.display = \"block\";\n\n // // If a redirect URL is provided, show the loading spinner\n // if (this.portalUrl) {\n // var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');\n // var countdown = 6;\n\n // countdownNumberEl.textContent = countdown.toString();\n\n // setInterval(() => {\n // countdown = --countdown <= 0 ? 6 : countdown;\n // countdownNumberEl.textContent = countdown.toString();\n\n // // Once the countdown finishes, redirect to the provided URL\n // if(countdown == 1) {\n // // appErrorModal.style.display = \"none\";\n // window.location.replace(this.portalUrl.toString());\n // }\n // }, 1000);\n // }\n // }\n // })\n // }\n }\n\n async initKeycloak() {\n await this.keycloak.init(\n {\n onLoad: this.authMethod,\n checkLoginIframe: false,\n silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',\n }).then(res => {\n if(res) {\n this.isAuth = true\n localStorage.setItem(\"keycloak\", JSON.stringify(this.keycloak));\n document.cookie = \"ZDZW_cookie=\" + JSON.parse(localStorage.getItem('keycloak')).token;\n\n this.givenName = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.given_name\n } \n });\n }\n\n async getAppList() {\n // const token = await JSON.parse(localStorage.getItem('keycloak')).token;\n // const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName', {\n // headers: new Headers({\n // 'Authorization': 'Bearer ' + token,\n // }),\n // })\n\n const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName')\n const jsonObj = await response.json()\n return jsonObj\n }\n\n login() { \n this.keycloak.login() \n }\n\n logout() {\n localStorage.removeItem(\"keycloak\");\n document.cookie = \"ZDZW_cookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n this.keycloak.logout() \n } \n\n showModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"block\";\n }\n\n closeModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"none\";\n }\n\n render() {\n return <div>\n <div>\n {\n (() => {\n if(this.isAuth && this.showPostLoginText) {\n return (\n <a href={this.redirectUri} id=\"login-btn\" class=\"button button-link\">\n <span class=\"button-text button-text-full-width\">Go to Dashboard</span>\n </a>\n )\n } else if (this.isAuth) {\n return (\n <div id=\"profile-btn\" class=\"dropdown\">\n <button type=\"button\" class=\"button\">\n <span class=\"button-profile\">\n <img src=\"https://i.pravatar.cc/100?img=32\" alt=\"\"/>\n </span>\n <span id=\"given-name\" class=\"button-text\">{this.givenName}</span>\n <div class=\"button-icon\">\n <span class=\"gg-menu-grid-r\"></span>\n </div>\n </button>\n <div class=\"dropdown-content\">\n <a onClick={this.showModal.bind(this)} id=\"applications-btn\">Applications</a>\n <a onClick={this.logout.bind(this)} id=\"logout-btn\">Logout</a>\n </div>\n </div>\n )\n } else {\n return (\n <button onClick={this.login.bind(this)} id=\"login-btn\" type=\"button\" class=\"button\">\n <span class=\"button-text\">Login</span>\n </button>\n )\n }\n })() \n } \n </div>\n \n <div id=\"appListModal\" class=\"modal\">\n \n <div class=\"modal-content\">\n <span onClick={this.closeModal.bind(this)} class=\"close\">×</span>\n <h3>Applications</h3>\n <div class=\"modal-body\">\n {this.appList.length > 0 ? this.appList.map( app => {\n return (\n <a class=\"external-app-link\" target='_blank' href={\"https://\" + app.shortname + \"-zdzw.\"+ this.portalUrl.replace(/(^\\w+:|^)\\/\\//, '')}>\n <div class=\"modal-app\">\n <div>{app.name}</div>\n </div>\n </a>\n );\n }) : <div><h3 class=\"gray-text\">Not installed application found.</h3> <p class=\"gray-text\">Please contact administration.</p></div>}\n </div>\n </div>\n \n </div>\n\n <div id=\"appPermissionErrorModal\" class=\"modal\">\n <div class=\"modal-content\">\n <img src=\"data:image/png;base64,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\"/>\n <h2 class=\"green-text margin-b\">You don't have permission to access this application.</h2>\n <h3 class=\"green-text\">Please contact the administration.</h3>\n \n {(this.portalUrl && this.showUnauthorizedModal) ? \n <div>\n <h4 class=\"gray-text\">You will be automatically redirected to the portal.</h4>\n <div id=\"countdown\">\n <div id=\"countdown-number\"></div>\n <svg>\n <circle r=\"18\" cx=\"20\" cy=\"20\"></circle>\n </svg>\n </div>\n </div>\n : <div></div>\n }\n </div>\n </div>\n\n </div>;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"dash-button.js","sourceRoot":"","sources":["../../../src/components/my-component/dash-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, h, Element } from '@stencil/core';\nimport Keycloak from \"keycloak-js\";\n\n\n@Component({\n tag: 'dash-button',\n styleUrl: 'dash-button.css',\n shadow: true,\n})\nexport class DashButtonComponent {\n\n @Element() el;\n \n @Prop() showPostLoginText: boolean = false;\n @Prop() silentCheckSso: boolean = false;\n @Prop() redirectUri: string;\n @Prop() authMethod: string = \"check-sso\";\n\n @Prop() keycloakUri: string = \"http://localhost:8080\";\n @Prop() realm: string = \"\";\n @Prop() clientId: string = \"\";\n\n @Prop() appId: string = \"\";\n @Prop() portalUrl: string = \"\";\n @Prop() marketplaceUrl: string = \"\";\n @Prop() showUnauthorizedModal: boolean = false;\n @Prop() postTextDelayDuration: number;\n\n @State() keycloak: any = new Keycloak({\n url: this.keycloakUri,\n realm: this.realm,\n clientId: this.clientId,\n });;\n\n @State() isAuth = false;\n @State() givenName: string = \"\";\n @State() silentCheckSsoRedirectUri: string = window.location.origin + '/assets/verificar-sso.html';\n\n @State() appList = []\n\n @State() showPostLoginLoadingSpinner = false;\n\n componentWillLoad() {\n //\n // User set post-text-delay-duration for displaying loading spinner\n //\n if(this.postTextDelayDuration > 0) {\n // Show loading spinner\n this.showPostLoginLoadingSpinner = true\n // Removing a loading spinner after the delay period ending\n setTimeout(() => {\n this.showPostLoginLoadingSpinner = false\n }, this.postTextDelayDuration);\n }\n\n //\n // Init Keycloak\n //\n this.initKeycloak().then(() => {\n // Check if the user is authenticated\n if(this.isAuth) {\n this.getAppList().then(res => {\n this.appList = res\n\n // If the user has set an app ID, check if they have permission to access\n if(this.appId) {\n \n // Retrieve the list of buttons that are configured to set the app ID\n const appIdList = this.appId.replace(/'/g, '').split(',');\n // Remote appID list parsed from object\n const tempAppList = this.appList.map(obj => obj['shortname'])\n\n // Check if the user has permission to access the selected application\n if(appIdList.filter(id => tempAppList.includes(id)).length == 0) {\n // Update local storage app permission\n localStorage.setItem(\"ZDZW_app_permission\", JSON.stringify(false));\n\n // Show modal\n const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');\n appErrorModal.style.display = \"block\";\n\n // If a redirect URL is provided, show the loading spinner\n if (this.portalUrl && this.showUnauthorizedModal) {\n var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');\n var countdown = 6;\n\n countdownNumberEl.textContent = countdown.toString();\n\n setInterval(() => {\n countdown = --countdown <= 0 ? 6 : countdown;\n countdownNumberEl.textContent = countdown.toString();\n\n // Once the countdown finishes, redirect to the provided URL\n if(countdown == 1) {\n // appErrorModal.style.display = \"none\";\n window.location.replace(this.portalUrl.toString());\n }\n }, 1000);\n }\n } else {\n // The user is authenticated and has the necessary permissions\n // Update local storage app permission\n localStorage.setItem(\"ZDZW_app_permission\", JSON.stringify(true));\n }\n }\n\n })\n }\n })\n }\n\n async initKeycloak() {\n // Remove the initiation time permission localstorage object\n localStorage.removeItem(\"ZDZW_app_permission\");\n\n await this.keycloak.init(\n {\n onLoad: this.authMethod,\n checkLoginIframe: false,\n silentCheckSsoRedirectUri: this.silentCheckSso ? this.silentCheckSsoRedirectUri : '',\n }).then(res => {\n if(res) {\n this.isAuth = true\n localStorage.setItem(\"keycloak\", JSON.stringify(this.keycloak));\n document.cookie = \"ZDZW_cookie=\" + JSON.parse(localStorage.getItem('keycloak')).token;\n\n this.givenName = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.given_name\n } \n });\n }\n\n async getAppList() {\n // const token = await JSON.parse(localStorage.getItem('keycloak')).token;\n // const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName', {\n // headers: new Headers({\n // 'Authorization': 'Bearer ' + token,\n // }),\n // })\n\n const response = await fetch(this.marketplaceUrl + '/api/v1/product/nameAndShortName')\n const jsonObj = await response.json()\n return jsonObj\n }\n\n login() { \n this.keycloak.login() \n }\n\n logout() {\n localStorage.removeItem(\"keycloak\");\n document.cookie = \"ZDZW_cookie=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\n this.keycloak.logout() \n } \n\n showModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"block\";\n }\n\n closeModal() {\n const appModal = this.el.shadowRoot.querySelector('#appListModal');\n appModal.style.display = \"none\";\n }\n\n render() {\n return <div>\n <div>\n {\n (() => {\n if(this.isAuth && this.showPostLoginText) {\n // User set post-text-delay-duration for displaying loading spinner\n if(this.showPostLoginLoadingSpinner) {\n return (\n <a id=\"login-btn\" class=\"button button-link\">\n <div class=\"lds-ring\"><div></div><div></div><div></div><div></div></div>\n </a>\n )\n } else {\n return (\n <a href={this.redirectUri} id=\"login-btn\" class=\"button button-link\">\n <span class=\"button-text button-text-full-width\">Go to Dashboard</span>\n </a>\n )\n }\n \n } else if (this.isAuth) {\n return (\n <div id=\"profile-btn\" class=\"dropdown\">\n <button type=\"button\" class=\"button\">\n <span class=\"button-profile\">\n <img src=\"https://i.pravatar.cc/100?img=32\" alt=\"\"/>\n </span>\n <span id=\"given-name\" class=\"button-text\">{this.givenName}</span>\n <div class=\"button-icon\">\n <span class=\"gg-menu-grid-r\"></span>\n </div>\n </button>\n <div class=\"dropdown-content\">\n <a onClick={this.showModal.bind(this)} id=\"applications-btn\">Applications</a>\n <a href={this.portalUrl} target='_blank' id=\"applications-btn\">Portal</a>\n <a href={this.marketplaceUrl} target='_blank' id=\"applications-btn\">Marketplace</a>\n <a onClick={this.logout.bind(this)} id=\"logout-btn\">Logout</a>\n </div>\n </div>\n )\n } else {\n return (\n <button onClick={this.login.bind(this)} id=\"login-btn\" type=\"button\" class=\"button\">\n <span class=\"button-text\">Login</span>\n </button>\n )\n }\n })() \n } \n </div>\n \n <div id=\"appListModal\" class=\"modal\">\n \n <div class=\"modal-content\">\n <span onClick={this.closeModal.bind(this)} class=\"close\">×</span>\n <h3>Applications</h3>\n <div class=\"modal-body\">\n {this.appList.length > 0 ? this.appList.map( app => {\n return (\n <a class=\"external-app-link\" target='_blank' href={\"https://\" + app.shortname + \"-zdzw\"+ this.portalUrl.replace(/(^\\w+:|^)\\/\\//, '').replace('.portal-frontend-zdzw','')}>\n <div class=\"modal-app\">\n <div>{app.name}</div>\n </div>\n </a>\n );\n }) : <div><h3 class=\"gray-text\">Not installed application found.</h3> <p class=\"gray-text\">Please contact administration.</p></div>}\n </div>\n </div>\n \n </div>\n\n <div id=\"appPermissionErrorModal\" class=\"modal\">\n <div class=\"modal-content\">\n <img src=\"data:image/png;base64,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\"/>\n <h2 class=\"green-text margin-b\">You don't have permission to access this application.</h2>\n <h3 class=\"green-text\">Please contact the administration.</h3>\n \n {(this.portalUrl && this.showUnauthorizedModal) ? \n <div>\n <h4 class=\"gray-text\">You will be automatically redirected to the portal.</h4>\n <div id=\"countdown\">\n <div id=\"countdown-number\"></div>\n <svg>\n <circle r=\"18\" cx=\"20\" cy=\"20\"></circle>\n </svg>\n </div>\n </div>\n : <div></div>\n }\n </div>\n </div>\n\n </div>;\n }\n}\n"]}
|
|
@@ -2473,7 +2473,7 @@ function Keycloak (config) {
|
|
|
2473
2473
|
}
|
|
2474
2474
|
}
|
|
2475
2475
|
|
|
2476
|
-
const dashButtonCss = ".button{display:flex;height:50px;padding:0;background:#3e7671;border:none;outline:none;border-radius:5px;overflow:hidden;font-size:16px;font-weight:500;cursor:pointer;min-width:220px;max-width:220px}.button:hover{background:#008168}.button:active{background:#3e7671}.button-text{display:block;margin:auto;padding:0 24px;color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:80px}.button-icon{margin:auto;padding:10px}.button-profile{display:inline-flex;align-items:center;color:#fff}.button-profile img{height:50px}.button-text-full-width{width:auto!important}.button-link{text-decoration:none!important}.gg-menu-grid-r{color:#fff;box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs,1));width:16px;height:16px}.gg-menu-grid-r::before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:4px;height:4px;background:currentColor;box-shadow:0 6px 0,\n 6px 6px 0,\n 12px 6px 0,\n 6px 12px 0,\n 12px 12px 0,\n 6px 0 0,\n 12px 0 0,\n 0 12px 0}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;right:0;background-color:#f9f9f9;min-width:180px;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);z-index:1;border-radius:5px}.dropdown-content a{color:#71797E;padding:16px 20px;text-decoration:none;display:block;cursor:pointer}.dropdown-content a:hover{background-color:#f1f1f1;color:#000;opacity:0.7}.dropdown:hover .dropdown-content{display:block}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4);text-align:center}.modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:40%}.modal-body{max-height:50vh;overflow-y:auto}.close{color:#aaaaaa;float:right;font-size:28px;font-weight:bold}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-app{background-color:#c3e9bc;padding:15px;margin:10px;border-radius:5px}.external-app-link{text-decoration:none;color:#000}.gray-text{color:#606060}.green-text{color:#3e7671}#countdown{position:relative;margin:auto;margin-top:30px;height:40px;width:40px;text-align:center}#countdown-number{color:#2e2e2e;display:inline-block;line-height:40px}svg{position:absolute;top:0;right:0;width:40px;height:40px;transform:rotateY(-180deg) rotateZ(-90deg)}svg circle{stroke-dasharray:113px;stroke-dashoffset:0px;stroke-linecap:round;stroke-width:4px;stroke:#008168;fill:none;animation:countdown 6s linear infinite forwards}@keyframes countdown{from{stroke-dashoffset:0px}to{stroke-dashoffset:113px}}";
|
|
2476
|
+
const dashButtonCss = ".button{display:flex;height:50px;padding:0;background:#3e7671;border:none;outline:none;border-radius:5px;overflow:hidden;font-size:16px;font-weight:500;cursor:pointer;min-width:220px;max-width:220px}.button:hover{background:#008168}.button:active{background:#3e7671}.button-text{display:block;margin:auto;padding:0 24px;color:#fff;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:80px}.button-icon{margin:auto;padding:10px}.button-profile{display:inline-flex;align-items:center;color:#fff}.button-profile img{height:50px}.button-text-full-width{width:auto!important}.button-link{text-decoration:none!important}.gg-menu-grid-r{color:#fff;box-sizing:border-box;position:relative;display:block;transform:scale(var(--ggs,1));width:16px;height:16px}.gg-menu-grid-r::before{content:\"\";display:block;box-sizing:border-box;position:absolute;width:4px;height:4px;background:currentColor;box-shadow:0 6px 0,\n 6px 6px 0,\n 12px 6px 0,\n 6px 12px 0,\n 12px 12px 0,\n 6px 0 0,\n 12px 0 0,\n 0 12px 0}.dropdown{position:relative;display:inline-block}.dropdown-content{display:none;position:absolute;right:0;background-color:#f9f9f9;min-width:180px;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);z-index:1;border-radius:5px}.dropdown-content a{color:#71797E;padding:16px 20px;text-decoration:none;display:block;cursor:pointer}.dropdown-content a:hover{background-color:#f1f1f1;color:#000;opacity:0.7}.dropdown:hover .dropdown-content{display:block}.modal{display:none;position:fixed;z-index:1;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgb(0,0,0);background-color:rgba(0,0,0,0.4);text-align:center}.modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:40%}.modal-body{max-height:50vh;overflow-y:auto}.close{color:#aaaaaa;float:right;font-size:28px;font-weight:bold}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer}.modal-app{background-color:#c3e9bc;padding:15px;margin:10px;border-radius:5px}.external-app-link{text-decoration:none;color:#000}.gray-text{color:#606060}.green-text{color:#3e7671}#countdown{position:relative;margin:auto;margin-top:30px;height:40px;width:40px;text-align:center}#countdown-number{color:#2e2e2e;display:inline-block;line-height:40px}svg{position:absolute;top:0;right:0;width:40px;height:40px;transform:rotateY(-180deg) rotateZ(-90deg)}svg circle{stroke-dasharray:113px;stroke-dashoffset:0px;stroke-linecap:round;stroke-width:4px;stroke:#008168;fill:none;animation:countdown 6s linear infinite forwards}@keyframes countdown{from{stroke-dashoffset:0px}to{stroke-dashoffset:113px}}.lds-ring{color:#fff}.lds-ring{display:flex;justify-content:center;align-items:center;margin:auto;position:relative}.lds-ring div{box-sizing:border-box;display:block;position:absolute;width:30px;height:30px;margin:3px;border:3px solid currentColor;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;border-color:currentColor transparent transparent transparent}.lds-ring div:nth-child(1){animation-delay:-0.45s}.lds-ring div:nth-child(2){animation-delay:-0.3s}.lds-ring div:nth-child(3){animation-delay:-0.15s}@keyframes lds-ring{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}";
|
|
2477
2477
|
const DashButtonStyle0 = dashButtonCss;
|
|
2478
2478
|
|
|
2479
2479
|
const DashButtonComponent = /*@__PURE__*/ proxyCustomElement(class DashButtonComponent extends HTMLElement {
|
|
@@ -2492,6 +2492,7 @@ const DashButtonComponent = /*@__PURE__*/ proxyCustomElement(class DashButtonCom
|
|
|
2492
2492
|
this.portalUrl = "";
|
|
2493
2493
|
this.marketplaceUrl = "";
|
|
2494
2494
|
this.showUnauthorizedModal = false;
|
|
2495
|
+
this.postTextDelayDuration = undefined;
|
|
2495
2496
|
this.keycloak = new Keycloak({
|
|
2496
2497
|
url: this.keycloakUri,
|
|
2497
2498
|
realm: this.realm,
|
|
@@ -2501,9 +2502,24 @@ const DashButtonComponent = /*@__PURE__*/ proxyCustomElement(class DashButtonCom
|
|
|
2501
2502
|
this.givenName = "";
|
|
2502
2503
|
this.silentCheckSsoRedirectUri = window.location.origin + '/assets/verificar-sso.html';
|
|
2503
2504
|
this.appList = [];
|
|
2505
|
+
this.showPostLoginLoadingSpinner = false;
|
|
2504
2506
|
}
|
|
2505
2507
|
;
|
|
2506
2508
|
componentWillLoad() {
|
|
2509
|
+
//
|
|
2510
|
+
// User set post-text-delay-duration for displaying loading spinner
|
|
2511
|
+
//
|
|
2512
|
+
if (this.postTextDelayDuration > 0) {
|
|
2513
|
+
// Show loading spinner
|
|
2514
|
+
this.showPostLoginLoadingSpinner = true;
|
|
2515
|
+
// Removing a loading spinner after the delay period ending
|
|
2516
|
+
setTimeout(() => {
|
|
2517
|
+
this.showPostLoginLoadingSpinner = false;
|
|
2518
|
+
}, this.postTextDelayDuration);
|
|
2519
|
+
}
|
|
2520
|
+
//
|
|
2521
|
+
// Init Keycloak
|
|
2522
|
+
//
|
|
2507
2523
|
this.initKeycloak().then(() => {
|
|
2508
2524
|
// Check if the user is authenticated
|
|
2509
2525
|
if (this.isAuth) {
|
|
@@ -2517,6 +2533,8 @@ const DashButtonComponent = /*@__PURE__*/ proxyCustomElement(class DashButtonCom
|
|
|
2517
2533
|
const tempAppList = this.appList.map(obj => obj['shortname']);
|
|
2518
2534
|
// Check if the user has permission to access the selected application
|
|
2519
2535
|
if (appIdList.filter(id => tempAppList.includes(id)).length == 0) {
|
|
2536
|
+
// Update local storage app permission
|
|
2537
|
+
localStorage.setItem("ZDZW_app_permission", JSON.stringify(false));
|
|
2520
2538
|
// Show modal
|
|
2521
2539
|
const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
2522
2540
|
appErrorModal.style.display = "block";
|
|
@@ -2536,49 +2554,19 @@ const DashButtonComponent = /*@__PURE__*/ proxyCustomElement(class DashButtonCom
|
|
|
2536
2554
|
}, 1000);
|
|
2537
2555
|
}
|
|
2538
2556
|
}
|
|
2557
|
+
else {
|
|
2558
|
+
// The user is authenticated and has the necessary permissions
|
|
2559
|
+
// Update local storage app permission
|
|
2560
|
+
localStorage.setItem("ZDZW_app_permission", JSON.stringify(true));
|
|
2561
|
+
}
|
|
2539
2562
|
}
|
|
2540
2563
|
});
|
|
2541
2564
|
}
|
|
2542
2565
|
});
|
|
2543
|
-
// // Get all application data associated with organization ID
|
|
2544
|
-
// const appIdList = this.appId.replace(/'/g, '').split(',');
|
|
2545
|
-
// var appListIds:Array<string> = []
|
|
2546
|
-
// if(this.appId) {
|
|
2547
|
-
// // const appList:Array<string> = JSON.parse(localStorage.getItem('keycloak')).idTokenParsed.APP_ID;
|
|
2548
|
-
// // Get app ID from marketplace (Compare product_id with app_id)
|
|
2549
|
-
// this.getAppList().then((response: Response) => response.json())
|
|
2550
|
-
// .then(response => {
|
|
2551
|
-
// // Save application data to a global array
|
|
2552
|
-
// if(this.appList.length <= 0 ) {
|
|
2553
|
-
// this.appList = response
|
|
2554
|
-
// }
|
|
2555
|
-
// // Save application IDs to a local array
|
|
2556
|
-
// appListIds.push(...this.appList.map(obj => obj['product_id']))
|
|
2557
|
-
// // Check if the user has permission to access the selected application
|
|
2558
|
-
// if(appIdList.filter(id => appListIds.includes(id)).length == 0) {
|
|
2559
|
-
// // Show modal
|
|
2560
|
-
// const appErrorModal = this.el.shadowRoot.querySelector('#appPermissionErrorModal');
|
|
2561
|
-
// appErrorModal.style.display = "block";
|
|
2562
|
-
// // If a redirect URL is provided, show the loading spinner
|
|
2563
|
-
// if (this.portalUrl) {
|
|
2564
|
-
// var countdownNumberEl = this.el.shadowRoot.getElementById('countdown-number');
|
|
2565
|
-
// var countdown = 6;
|
|
2566
|
-
// countdownNumberEl.textContent = countdown.toString();
|
|
2567
|
-
// setInterval(() => {
|
|
2568
|
-
// countdown = --countdown <= 0 ? 6 : countdown;
|
|
2569
|
-
// countdownNumberEl.textContent = countdown.toString();
|
|
2570
|
-
// // Once the countdown finishes, redirect to the provided URL
|
|
2571
|
-
// if(countdown == 1) {
|
|
2572
|
-
// // appErrorModal.style.display = "none";
|
|
2573
|
-
// window.location.replace(this.portalUrl.toString());
|
|
2574
|
-
// }
|
|
2575
|
-
// }, 1000);
|
|
2576
|
-
// }
|
|
2577
|
-
// }
|
|
2578
|
-
// })
|
|
2579
|
-
// }
|
|
2580
2566
|
}
|
|
2581
2567
|
async initKeycloak() {
|
|
2568
|
+
// Remove the initiation time permission localstorage object
|
|
2569
|
+
localStorage.removeItem("ZDZW_app_permission");
|
|
2582
2570
|
await this.keycloak.init({
|
|
2583
2571
|
onLoad: this.authMethod,
|
|
2584
2572
|
checkLoginIframe: false,
|
|
@@ -2620,19 +2608,25 @@ const DashButtonComponent = /*@__PURE__*/ proxyCustomElement(class DashButtonCom
|
|
|
2620
2608
|
appModal.style.display = "none";
|
|
2621
2609
|
}
|
|
2622
2610
|
render() {
|
|
2623
|
-
return h("div", { key: '
|
|
2611
|
+
return h("div", { key: '2d24aa9842755844cff0091432697b28dbe3719a' }, h("div", { key: '99991837185cd9d0cb6785828ce18ec59cdb6659' }, (() => {
|
|
2624
2612
|
if (this.isAuth && this.showPostLoginText) {
|
|
2625
|
-
|
|
2613
|
+
// User set post-text-delay-duration for displaying loading spinner
|
|
2614
|
+
if (this.showPostLoginLoadingSpinner) {
|
|
2615
|
+
return (h("a", { id: "login-btn", class: "button button-link" }, h("div", { class: "lds-ring" }, h("div", null), h("div", null), h("div", null), h("div", null))));
|
|
2616
|
+
}
|
|
2617
|
+
else {
|
|
2618
|
+
return (h("a", { href: this.redirectUri, id: "login-btn", class: "button button-link" }, h("span", { class: "button-text button-text-full-width" }, "Go to Dashboard")));
|
|
2619
|
+
}
|
|
2626
2620
|
}
|
|
2627
2621
|
else if (this.isAuth) {
|
|
2628
|
-
return (h("div", { id: "profile-btn", class: "dropdown" }, h("button", { type: "button", class: "button" }, h("span", { class: "button-profile" }, h("img", { src: "https://i.pravatar.cc/100?img=32", alt: "" })), h("span", { id: "given-name", class: "button-text" }, this.givenName), h("div", { class: "button-icon" }, h("span", { class: "gg-menu-grid-r" }))), h("div", { class: "dropdown-content" }, h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, "Applications"), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, "Logout"))));
|
|
2622
|
+
return (h("div", { id: "profile-btn", class: "dropdown" }, h("button", { type: "button", class: "button" }, h("span", { class: "button-profile" }, h("img", { src: "https://i.pravatar.cc/100?img=32", alt: "" })), h("span", { id: "given-name", class: "button-text" }, this.givenName), h("div", { class: "button-icon" }, h("span", { class: "gg-menu-grid-r" }))), h("div", { class: "dropdown-content" }, h("a", { onClick: this.showModal.bind(this), id: "applications-btn" }, "Applications"), h("a", { href: this.portalUrl, target: '_blank', id: "applications-btn" }, "Portal"), h("a", { href: this.marketplaceUrl, target: '_blank', id: "applications-btn" }, "Marketplace"), h("a", { onClick: this.logout.bind(this), id: "logout-btn" }, "Logout"))));
|
|
2629
2623
|
}
|
|
2630
2624
|
else {
|
|
2631
2625
|
return (h("button", { onClick: this.login.bind(this), id: "login-btn", type: "button", class: "button" }, h("span", { class: "button-text" }, "Login")));
|
|
2632
2626
|
}
|
|
2633
|
-
})()), h("div", { key: '
|
|
2634
|
-
return (h("a", { class: "external-app-link", target: '_blank', href: "https://" + app.shortname + "-zdzw
|
|
2635
|
-
}) : h("div", null, h("h3", { class: "gray-text" }, "Not installed application found."), " ", h("p", { class: "gray-text" }, "Please contact administration."))))), h("div", { key: '
|
|
2627
|
+
})()), h("div", { key: '38c4054577687e6af7222d5633b4191c8d63efab', id: "appListModal", class: "modal" }, h("div", { key: 'aabb2b68614c0897b88a907979419f584388f60a', class: "modal-content" }, h("span", { key: '42696988b0954589250e4a6f212bf00954d4e2d0', onClick: this.closeModal.bind(this), class: "close" }, "\u00D7"), h("h3", { key: '08eb82158bfe231595c79e131b161b3066553d33' }, "Applications"), h("div", { key: 'e838130cfa6cdf222cc7455fb1d4b01ab9105492', class: "modal-body" }, this.appList.length > 0 ? this.appList.map(app => {
|
|
2628
|
+
return (h("a", { class: "external-app-link", target: '_blank', href: "https://" + app.shortname + "-zdzw" + this.portalUrl.replace(/(^\w+:|^)\/\//, '').replace('.portal-frontend-zdzw', '') }, h("div", { class: "modal-app" }, h("div", null, app.name))));
|
|
2629
|
+
}) : h("div", null, h("h3", { class: "gray-text" }, "Not installed application found."), " ", h("p", { class: "gray-text" }, "Please contact administration."))))), h("div", { key: '6b350ae02d908c7272a87ca967080b5d64ec0590', id: "appPermissionErrorModal", class: "modal" }, h("div", { key: 'df481e3196372ab1477503bb53c9a149874cc020', class: "modal-content" }, h("img", { key: 'eb31969132393cef988ab6904634617cbd8a7627', src: "data:image/png;base64,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" }), h("h2", { key: 'dbc50750de599994e5623a6f8596aae96280ad45', class: "green-text margin-b" }, "You don't have permission to access this application."), h("h3", { key: '950f04d0e34e57b99a1cddb5cf2156755572020a', class: "green-text" }, "Please contact the administration."), (this.portalUrl && this.showUnauthorizedModal) ?
|
|
2636
2630
|
h("div", null, h("h4", { class: "gray-text" }, "You will be automatically redirected to the portal."), h("div", { id: "countdown" }, h("div", { id: "countdown-number" }), h("svg", null, h("circle", { r: "18", cx: "20", cy: "20" }))))
|
|
2637
2631
|
: h("div", null))));
|
|
2638
2632
|
}
|
|
@@ -2650,11 +2644,13 @@ const DashButtonComponent = /*@__PURE__*/ proxyCustomElement(class DashButtonCom
|
|
|
2650
2644
|
"portalUrl": [1, "portal-url"],
|
|
2651
2645
|
"marketplaceUrl": [1, "marketplace-url"],
|
|
2652
2646
|
"showUnauthorizedModal": [4, "show-unauthorized-modal"],
|
|
2647
|
+
"postTextDelayDuration": [2, "post-text-delay-duration"],
|
|
2653
2648
|
"keycloak": [32],
|
|
2654
2649
|
"isAuth": [32],
|
|
2655
2650
|
"givenName": [32],
|
|
2656
2651
|
"silentCheckSsoRedirectUri": [32],
|
|
2657
|
-
"appList": [32]
|
|
2652
|
+
"appList": [32],
|
|
2653
|
+
"showPostLoginLoadingSpinner": [32]
|
|
2658
2654
|
}]);
|
|
2659
2655
|
function defineCustomElement$1() {
|
|
2660
2656
|
if (typeof customElements === "undefined") {
|