Skip to content

Commit 940ab3a

Browse files
Implemented banner
Signed-off-by: ElenaStroebele <[email protected]>
1 parent 28b2f33 commit 940ab3a

File tree

21 files changed

+731
-15
lines changed

21 files changed

+731
-15
lines changed

src/App.vue

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,46 @@
11
<template>
2-
<router-view></router-view>
2+
<div class="app-shell">
3+
<Banner
4+
v-if="!isLoginPage && bannerConfig && bannerConfig.activateBanner"
5+
:key="bannerInstanceKey"
6+
class="app-banner"
7+
:dismissable="bannerConfig.makeBannerDismissable"
8+
:color-scheme="bannerConfig.colorScheme"
9+
:message="bannerConfig.message"
10+
:custom-mode="bannerConfig.customMode"
11+
:html="bannerConfig.html"
12+
/>
13+
<main class="app-content">
14+
<router-view />
15+
</main>
16+
</div>
317
</template>
4-
518
<script>
619
// bootstrap-table still relies on jQuery for ajax calls, even though there's a supported Vue wrapper for it.
720
import $ from 'jquery';
821
import { getUrlVar } from './shared/utils';
922
import { getToken } from './shared/permissions';
1023
import EventBus from './shared/eventbus';
1124
import VueRouter from 'vue-router';
25+
import Banner from './views/components/Banner.vue';
1226
1327
export default {
1428
name: 'app',
29+
components: {
30+
Banner,
31+
},
32+
data() {
33+
return {
34+
bannerConfig: null,
35+
bannerInstanceKey: 0,
36+
};
37+
},
38+
computed: {
39+
isLoginPage() {
40+
const loginRoutes = ['/login'];
41+
return loginRoutes.includes(this.$route.path);
42+
},
43+
},
1544
created() {
1645
const setJwtForAjax = (jwt) => {
1746
if (jwt) {
@@ -24,21 +53,42 @@ export default {
2453
};
2554
2655
EventBus.$on('authenticated', (jwt) => {
56+
sessionStorage.removeItem('banner-dismissed');
2757
if (jwt) {
2858
sessionStorage.setItem('token', jwt);
2959
} else {
3060
sessionStorage.removeItem('token');
3161
}
3262
setJwtForAjax(jwt);
63+
64+
if (jwt) {
65+
this.fetchBannerConfig();
66+
} else {
67+
this.bannerConfig = null;
68+
this.bannerInstanceKey++;
69+
}
70+
});
71+
72+
EventBus.$on('banner-updated', async () => {
73+
sessionStorage.removeItem('banner-dismissed');
74+
await this.fetchBannerConfig();
75+
this.bannerInstanceKey++;
3376
});
3477
3578
// ensure $.ajaxSettings.headers exists
3679
$.ajaxSetup({
3780
headers: {},
3881
});
3982
83+
const token = getToken();
4084
setJwtForAjax(getToken());
4185
86+
if (token) {
87+
this.fetchBannerConfig();
88+
} else {
89+
this.bannerConfig = null;
90+
}
91+
4292
// Send XHR cross-site cookie credentials
4393
if (this.$api.WITH_CREDENTIALS) {
4494
this.axios.interceptors.request.use(function (config) {
@@ -164,6 +214,17 @@ export default {
164214
}
165215
});
166216
},
217+
methods: {
218+
async fetchBannerConfig() {
219+
try {
220+
const response = await this.axios.get(this.$api.URL_BANNER);
221+
this.bannerConfig = response.data || null;
222+
} catch (e) {
223+
console.error('Failed to load banner config:', e);
224+
this.bannerConfig = null;
225+
}
226+
},
227+
},
167228
};
168229
</script>
169230

@@ -175,4 +236,8 @@ $simple-line-font-path: '~simple-line-icons/fonts/';
175236
@import '~simple-line-icons/scss/simple-line-icons.scss';
176237
@import '~bootstrap-vue/dist/bootstrap-vue.css';
177238
@import 'assets/scss/style';
239+
240+
.app-content {
241+
padding-top: var(--banner-offset, 0px);
242+
}
178243
</style>

src/i18n/locales/de.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "OSV-Basis-URL",
309309
"welcome_message": "Willkommensnachricht",
310310
"welcome_message_desc": "Passen Sie die Willkommensnachricht an, die auf der Startseite von Dependency-Track angezeigt wird, bevor sich Benutzer anmelden.",
311-
"welcome_message_enable": "Willkommensnachricht aktivieren"
311+
"welcome_message_enable": "Willkommensnachricht aktivieren",
312+
"banner_activate": "Banner aktivieren",
313+
"banner_color_scheme": "Farbschema",
314+
"banner_dismissable": "Per Klick schließen",
315+
"banner_explanation": "Konfigurieren Sie ein Banner, das über der Seite angezeigt wird.",
316+
"banner_explanation_html_text": "Formatieren Sie Ihre Bannerbotschaft und Ihr Erscheinungsbild mithilfe von HTML-Tags.",
317+
"banner_html_text": "HTML-Text",
318+
"banner_message": "Nachricht",
319+
"banner_enable_custom": "Aktivieren",
320+
"banner_custom_mode": "Benutzerdefiniertes HTML"
312321
},
313322
"condition": {
314323
"forbidden": "Verboten (403)",

src/i18n/locales/en.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "OSV Base URL",
309309
"welcome_message": "Welcome Message",
310310
"welcome_message_desc": "Customize the welcome message that appears on the start page of Dependency-Track before users sign in.",
311-
"welcome_message_enable": "Enable welcome message"
311+
"welcome_message_enable": "Enable welcome message",
312+
"banner_explanation": "Configure a banner which is shown above the page.",
313+
"banner_activate": "Activate banner",
314+
"banner_dismissable": "Dismissable",
315+
"banner_message": "Message",
316+
"banner_color_scheme": "Color scheme",
317+
"banner_html_text": "HTML text",
318+
"banner_explanation_html_text": "Format your banner message and appearance using HTML tags.",
319+
"banner_enable_custom": "Enable",
320+
"banner_custom_mode": "Custom HTML"
312321
},
313322
"condition": {
314323
"forbidden": "Forbidden (403)",

src/i18n/locales/es.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "URL base de OSV",
309309
"welcome_message": "Mensaje de bienvenida",
310310
"welcome_message_desc": "Personalice el mensaje de bienvenida que aparece en la página de inicio de Dependency-Track antes de que los usuarios inicien sesión.",
311-
"welcome_message_enable": "Habilitar mensaje de bienvenida"
311+
"welcome_message_enable": "Habilitar mensaje de bienvenida",
312+
"banner_activate": "Activar banner",
313+
"banner_color_scheme": "esquema de color",
314+
"banner_dismissable": "Desestimable",
315+
"banner_explanation": "Configure un banner que se muestra encima de la página.",
316+
"banner_explanation_html_text": "Formatee el mensaje y la apariencia de su banner usando etiquetas HTML.",
317+
"banner_html_text": "texto HTML",
318+
"banner_message": "Mensaje",
319+
"banner_enable_custom": "Permitir",
320+
"banner_custom_mode": "HTML personalizado"
312321
},
313322
"condition": {
314323
"forbidden": "Prohibido (403)",

src/i18n/locales/fr.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "URL de base OSV",
309309
"welcome_message": "Message de bienvenue",
310310
"welcome_message_desc": "Personnalisez le message de bienvenue qui apparaît sur la page de démarrage de Dependency-Track avant que les utilisateurs ne se connectent.",
311-
"welcome_message_enable": "Activer le message de bienvenue"
311+
"welcome_message_enable": "Activer le message de bienvenue",
312+
"banner_activate": "Activer la bannière",
313+
"banner_color_scheme": "Jeu de couleurs",
314+
"banner_dismissable": "Licenciable",
315+
"banner_explanation": "Configurez une bannière qui s'affiche au-dessus de la page.",
316+
"banner_explanation_html_text": "Formatez votre message de bannière et votre apparence à l'aide de balises HTML.",
317+
"banner_html_text": "Texte HTML",
318+
"banner_message": "Message",
319+
"banner_enable_custom": "Activer",
320+
"banner_custom_mode": "HTML personnalisé"
312321
},
313322
"condition": {
314323
"forbidden": "Interdit (403)",

src/i18n/locales/hi.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "OSV बेस यूआरएल",
309309
"welcome_message": "स्वागत संदेश",
310310
"welcome_message_desc": "उपयोगकर्ताओं के साइन इन करने से पहले डिपेंडेंसी-ट्रैक के आरंभ पृष्ठ पर दिखाई देने वाले स्वागत संदेश को अनुकूलित करें।",
311-
"welcome_message_enable": "स्वागत संदेश सक्षम करें"
311+
"welcome_message_enable": "स्वागत संदेश सक्षम करें",
312+
"banner_activate": "बैनर सक्रिय करें",
313+
"banner_color_scheme": "रंग योजना",
314+
"banner_dismissable": "खारिज करने योग्य",
315+
"banner_explanation": "एक बैनर कॉन्फ़िगर करें जो पृष्ठ के ऊपर दिखाया गया है।",
316+
"banner_explanation_html_text": "HTML टैग का उपयोग करके अपने बैनर संदेश और स्वरूप को प्रारूपित करें।",
317+
"banner_html_text": "HTML पाठ",
318+
"banner_message": "संदेश",
319+
"banner_enable_custom": "सक्षम",
320+
"banner_custom_mode": "कस्टम HTML"
312321
},
313322
"condition": {
314323
"forbidden": "निषिद्ध (403)",

src/i18n/locales/it.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "URL di base OSV",
309309
"welcome_message": "Messaggio di benvenuto",
310310
"welcome_message_desc": "Personalizza il messaggio di benvenuto che appare nella pagina iniziale di Dependency-Track prima che gli utenti accedano.",
311-
"welcome_message_enable": "Abilita il messaggio di benvenuto"
311+
"welcome_message_enable": "Abilita il messaggio di benvenuto",
312+
"banner_activate": "Attiva il banner",
313+
"banner_color_scheme": "Combinazione di colori",
314+
"banner_dismissable": "Ignorabile",
315+
"banner_explanation": "Configura un banner che viene mostrato sopra la pagina.",
316+
"banner_explanation_html_text": "Formatta il messaggio e l'aspetto del banner utilizzando i tag HTML.",
317+
"banner_html_text": "Testo HTML",
318+
"banner_message": "Messaggio",
319+
"banner_enable_custom": "Abilitare",
320+
"banner_custom_mode": "HTML personalizzato"
312321
},
313322
"condition": {
314323
"forbidden": "Proibito (403)",

src/i18n/locales/ja.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "OSV ベース URL",
309309
"welcome_message": "ウェルカムメッセージ",
310310
"welcome_message_desc": "ユーザーがサインインする前に、Dependency-Track の開始ページに表示されるウェルカム メッセージをカスタマイズします。",
311-
"welcome_message_enable": "ウェルカムメッセージを有効にする"
311+
"welcome_message_enable": "ウェルカムメッセージを有効にする",
312+
"banner_activate": "バナーをアクティブにする",
313+
"banner_color_scheme": "配色",
314+
"banner_dismissable": "却下可能",
315+
"banner_explanation": "ページ上部に表示されるバナーを設定します。",
316+
"banner_explanation_html_text": "HTML タグを使用して、バナー メッセージと外観をフォーマットします。",
317+
"banner_html_text": "HTMLテキスト",
318+
"banner_message": "メッセージ",
319+
"banner_enable_custom": "有効にする",
320+
"banner_custom_mode": "カスタムHTML"
312321
},
313322
"condition": {
314323
"forbidden": "禁止 (403)",

src/i18n/locales/pl.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "Podstawowy adres URL OSV",
309309
"welcome_message": "Wiadomość powitalna",
310310
"welcome_message_desc": "Dostosuj wiadomość powitalną wyświetlaną na stronie początkowej funkcji Depency-Track przed zalogowaniem się użytkownika.",
311-
"welcome_message_enable": "Włącz wiadomość powitalną"
311+
"welcome_message_enable": "Włącz wiadomość powitalną",
312+
"banner_activate": "Aktywuj baner",
313+
"banner_color_scheme": "Schemat kolorów",
314+
"banner_dismissable": "Do odrzucenia",
315+
"banner_explanation": "Skonfiguruj baner wyświetlany nad stroną.",
316+
"banner_explanation_html_text": "Sformatuj treść i wygląd banera za pomocą tagów HTML.",
317+
"banner_html_text": "Tekst HTML",
318+
"banner_message": "Wiadomość",
319+
"banner_enable_custom": "Włączać",
320+
"banner_custom_mode": "Niestandardowy kod HTML"
312321
},
313322
"condition": {
314323
"forbidden": "Zabronione (403)",

src/i18n/locales/pt-BR.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,16 @@
308308
"vulnsource_osv_base_url": "URL base do OSV",
309309
"welcome_message": "Mensagem de boas-vindas",
310310
"welcome_message_desc": "Personalize a mensagem de boas-vindas que aparece na página inicial do Dependency-Track antes dos usuários fazerem login.",
311-
"welcome_message_enable": "Ativar mensagem de boas-vindas"
311+
"welcome_message_enable": "Ativar mensagem de boas-vindas",
312+
"banner_activate": "Ativar banner",
313+
"banner_color_scheme": "Esquema de cores",
314+
"banner_dismissable": "Dispensável",
315+
"banner_explanation": "Configure um banner que é mostrado acima da página.",
316+
"banner_explanation_html_text": "Formate a mensagem e a aparência do seu banner usando tags HTML.",
317+
"banner_html_text": "Texto HTML",
318+
"banner_message": "Mensagem",
319+
"banner_enable_custom": "Habilitar",
320+
"banner_custom_mode": "HTML personalizado"
312321
},
313322
"condition": {
314323
"forbidden": "Proibido (403)",

0 commit comments

Comments
 (0)