diff --git a/web/frontend/package-lock.json b/web/frontend/package-lock.json index 7997e2e..eb80726 100644 --- a/web/frontend/package-lock.json +++ b/web/frontend/package-lock.json @@ -14,7 +14,7 @@ "chart.js": "^4.3.3", "graphql": "^16.6.0", "svelte-chartjs": "^3.1.2", - "sveltestrap": "^5.10.0", + "sveltestrap": "^5.11.1", "uplot": "^1.6.24", "wonka": "^6.3.2" }, @@ -138,9 +138,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.0.tgz", - "integrity": "sha512-mKur03xNGT8O9ODO6FtT43ITGqHWZbKPdVJHZb+iV9QYcdlhUUB0wgknvA4KCUmC5oHJF6O2W1EgmyOQyVUI4Q==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz", + "integrity": "sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -346,9 +346,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -547,9 +547,9 @@ } }, "node_modules/rollup": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.0.tgz", - "integrity": "sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==", + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", "devOptional": true, "bin": { "rollup": "dist/bin/rollup" diff --git a/web/frontend/package.json b/web/frontend/package.json index 4ef7314..b0bb5af 100644 --- a/web/frontend/package.json +++ b/web/frontend/package.json @@ -21,7 +21,7 @@ "chart.js": "^4.3.3", "graphql": "^16.6.0", "svelte-chartjs": "^3.1.2", - "sveltestrap": "^5.10.0", + "sveltestrap": "^5.11.1", "uplot": "^1.6.24", "wonka": "^6.3.2" } diff --git a/web/frontend/src/Header.svelte b/web/frontend/src/Header.svelte index 164a592..443f1d7 100644 --- a/web/frontend/src/Header.svelte +++ b/web/frontend/src/Header.svelte @@ -1,110 +1,293 @@ - + + - + (isOpen = !isOpen)} /> - (isOpen = detail.isOpen)}> - - {#if authlevel == roles.admin} - {#each adminviews as item} - {item.title} + (isOpen = detail.isOpen)} + > + + {#if screenSize > 1500} + {#each views.filter((item) => item.requiredRole <= authlevel) as item} + {#if !item.perCluster} + {item.title} + {:else} + + + + {item.title} + + + {#each clusters as cluster} + + {cluster.name} + + {/each} + + + {/if} {/each} - {:else if authlevel == roles.support} - {#each supportviews as item} - {item.title} + {:else if screenSize > 1300} + {#each views.filter((item) => item.requiredRole <= authlevel && item.menu != "Stats") as item} + {#if !item.perCluster} + {item.title} + {:else} + + + + {item.title} + + + {#each clusters as cluster} + + {cluster.name} + + {/each} + + + {/if} {/each} - {:else if authlevel == roles.manager} - {#each managerviews as item} - {item.title} + + + + Stats + + + {#each views.filter((item) => item.requiredRole <= authlevel && item.menu == "Stats") as item} + + + + {item.title} + + + {#each clusters as cluster} + + {cluster.name} + + {/each} + + + {/each} + + + {:else} + {#each views.filter((item) => item.requiredRole <= authlevel && item.menu == "none") as item} + {item.title} {/each} - {:else} - {#each userviews as item} - {item.title} - {/each} - {/if} - {#each viewsPerCluster.filter(item => item.requiredRole <= authlevel) as item} - - + {#each Array("Groups", "Stats") as menu} + - {item.title} + {menu} - - {#each clusters as cluster} - - {cluster.name} - + + {#each views.filter((item) => item.requiredRole <= authlevel && item.menu == menu) as item} + + + + {item.title} + + + {#each clusters as cluster} + + {cluster.name} + + {/each} + + {/each} - - {/each} + {/each} + {/if} - - - - - - = roles.support) ? "Example: 'projectId:a100cd', Types are: jobId | jobName | projectId | arrayJobId | username | name" : "Example: 'jobName:myjob', Types are jobId | jobName | projectId | arrayJobId "}> - - - {#if username} - - - Logout {username} - + + + + + + + = roles.support + ? "Example: 'projectId:a100cd', Types are: jobId | jobName | projectId | arrayJobId | username | name" + : "Example: 'jobName:myjob', Types are jobId | jobName | projectId | arrayJobId "} + > + + + {#if username} + + + + {#if screenSize > 1630} + Logout {username} + {:else} + + {/if} + + + {/if} - window.location.href = '/config'} style="margin-left: 10px;"> - - - + + (window.location.href = "/config")} + style="margin-left: 10px;" + > + + + + +