From 6b4611eaa37ad4ec1d5251ff0cccb91a34bc759c Mon Sep 17 00:00:00 2001 From: alan Date: Fri, 27 Jun 2025 12:17:13 +0200 Subject: [PATCH] MarkedBanners + SystemBanners --- .../package-lock.json | 24 +++- .../package.json | 3 +- .../src/App.vue | 49 +------ .../src/components/ElementWrapper.Vue | 18 +++ .../src/components/MarkedsBanner.vue | 76 +++++++++++ .../src/components/MarkedsBannerPage.vue | 22 +++ .../src/components/SystemBanner.vue | 126 ++++++++++++++++++ .../src/components/SystemBannerPage.vue | 73 ++++++++++ .../src/main.js | 12 +- .../src/mocks/MarkedsBanner.json | 57 ++++++++ .../src/mocks/mockdata.json | 35 +++++ .../src/router/index.js | 35 +++++ package-lock.json | 42 ++++++ package.json | 5 + 14 files changed, 529 insertions(+), 48 deletions(-) create mode 100644 gca-admin-gurusoft-message-dashboard/src/components/ElementWrapper.Vue create mode 100644 gca-admin-gurusoft-message-dashboard/src/components/MarkedsBanner.vue create mode 100644 gca-admin-gurusoft-message-dashboard/src/components/MarkedsBannerPage.vue create mode 100644 gca-admin-gurusoft-message-dashboard/src/components/SystemBanner.vue create mode 100644 gca-admin-gurusoft-message-dashboard/src/components/SystemBannerPage.vue create mode 100644 gca-admin-gurusoft-message-dashboard/src/mocks/MarkedsBanner.json create mode 100644 gca-admin-gurusoft-message-dashboard/src/router/index.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/gca-admin-gurusoft-message-dashboard/package-lock.json b/gca-admin-gurusoft-message-dashboard/package-lock.json index 90bb46e..844d25d 100644 --- a/gca-admin-gurusoft-message-dashboard/package-lock.json +++ b/gca-admin-gurusoft-message-dashboard/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "dependencies": { "bootstrap": "^5.3.7", - "vue": "^3.5.17" + "vue": "^3.5.17", + "vue-router": "^4.5.1" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", @@ -1438,6 +1439,12 @@ "@vue/shared": "3.5.17" } }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, "node_modules/@vue/devtools-core": { "version": "7.7.7", "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.7.7.tgz", @@ -2877,6 +2884,21 @@ } } }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/gca-admin-gurusoft-message-dashboard/package.json b/gca-admin-gurusoft-message-dashboard/package.json index c6fa636..8f04039 100644 --- a/gca-admin-gurusoft-message-dashboard/package.json +++ b/gca-admin-gurusoft-message-dashboard/package.json @@ -10,7 +10,8 @@ }, "dependencies": { "bootstrap": "^5.3.7", - "vue": "^3.5.17" + "vue": "^3.5.17", + "vue-router": "^4.5.1" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", diff --git a/gca-admin-gurusoft-message-dashboard/src/App.vue b/gca-admin-gurusoft-message-dashboard/src/App.vue index 633a5df..f1f56e8 100644 --- a/gca-admin-gurusoft-message-dashboard/src/App.vue +++ b/gca-admin-gurusoft-message-dashboard/src/App.vue @@ -1,47 +1,10 @@ - - - diff --git a/gca-admin-gurusoft-message-dashboard/src/components/ElementWrapper.Vue b/gca-admin-gurusoft-message-dashboard/src/components/ElementWrapper.Vue new file mode 100644 index 0000000..2abcc88 --- /dev/null +++ b/gca-admin-gurusoft-message-dashboard/src/components/ElementWrapper.Vue @@ -0,0 +1,18 @@ + + + + + + diff --git a/gca-admin-gurusoft-message-dashboard/src/components/MarkedsBanner.vue b/gca-admin-gurusoft-message-dashboard/src/components/MarkedsBanner.vue new file mode 100644 index 0000000..f72bcef --- /dev/null +++ b/gca-admin-gurusoft-message-dashboard/src/components/MarkedsBanner.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/gca-admin-gurusoft-message-dashboard/src/components/MarkedsBannerPage.vue b/gca-admin-gurusoft-message-dashboard/src/components/MarkedsBannerPage.vue new file mode 100644 index 0000000..d873f2b --- /dev/null +++ b/gca-admin-gurusoft-message-dashboard/src/components/MarkedsBannerPage.vue @@ -0,0 +1,22 @@ + + + diff --git a/gca-admin-gurusoft-message-dashboard/src/components/SystemBanner.vue b/gca-admin-gurusoft-message-dashboard/src/components/SystemBanner.vue new file mode 100644 index 0000000..4570940 --- /dev/null +++ b/gca-admin-gurusoft-message-dashboard/src/components/SystemBanner.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/gca-admin-gurusoft-message-dashboard/src/components/SystemBannerPage.vue b/gca-admin-gurusoft-message-dashboard/src/components/SystemBannerPage.vue new file mode 100644 index 0000000..ac56e9a --- /dev/null +++ b/gca-admin-gurusoft-message-dashboard/src/components/SystemBannerPage.vue @@ -0,0 +1,73 @@ + + + diff --git a/gca-admin-gurusoft-message-dashboard/src/main.js b/gca-admin-gurusoft-message-dashboard/src/main.js index 0ac3a5f..1ffde8d 100644 --- a/gca-admin-gurusoft-message-dashboard/src/main.js +++ b/gca-admin-gurusoft-message-dashboard/src/main.js @@ -1,6 +1,12 @@ -import './assets/main.css' - import { createApp } from 'vue' import App from './App.vue' +import router from './router' +import 'bootstrap/dist/css/bootstrap.min.css' + + +import './assets/base.css' + +const app = createApp(App) -createApp(App).mount('#app') +app.use(router) +app.mount('#app') diff --git a/gca-admin-gurusoft-message-dashboard/src/mocks/MarkedsBanner.json b/gca-admin-gurusoft-message-dashboard/src/mocks/MarkedsBanner.json new file mode 100644 index 0000000..20dfb7d --- /dev/null +++ b/gca-admin-gurusoft-message-dashboard/src/mocks/MarkedsBanner.json @@ -0,0 +1,57 @@ +[ + { + "id": 4, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Sommersalg", + "url": "https://example.com/salg", + "image": "https://providavarmeshop.no/wp-content/uploads/2023/06/sommersalg-tekst-300x137.png", + "type": "PROMO" + }, + { + "id": 5, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Ny produktlansering", + "url": "https://example.com/nytt-produkt", + "image": "https://providavarmeshop.no/wp-content/uploads/2023/06/sommersalg-tekst-300x137.png", + "type": "PROMO" + }, + { + "id": 6, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Kundelojalitetsprogram", + "url": "https://example.com/kundelojalitet", + "image": "https://providavarmeshop.no/wp-content/uploads/2023/06/sommersalg-tekst-300x137.png", + "type": "PROMO" + }, + { + "id": 7, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Kundeservice tilgjengelig", + "url": "https://example.com/kundeservice", + "image": "https://providavarmeshop.no/wp-content/uploads/2023/06/sommersalg-tekst-300x137.png", + "type": "PROMO" + }, + { + "id": 8, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Vår nye nettbutikk er lansert!", + "url": "https://example.com/ny-nettbutikk", + "image": "https://providavarmeshop.no/wp-content/uploads/2023/06/sommersalg-tekst-300x137.png", + "type": "PROMO" + } +] \ No newline at end of file diff --git a/gca-admin-gurusoft-message-dashboard/src/mocks/mockdata.json b/gca-admin-gurusoft-message-dashboard/src/mocks/mockdata.json index e69de29..ed05ed0 100644 --- a/gca-admin-gurusoft-message-dashboard/src/mocks/mockdata.json +++ b/gca-admin-gurusoft-message-dashboard/src/mocks/mockdata.json @@ -0,0 +1,35 @@ +[ + { + "id": 1, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Velkommen til systemet", + "text": "Dette er en viktig melding fra systemet.", + "link": "https://example.com/info", + "type": "WARNING" + }, + { + "id": 2, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Systemvedlikehold", + "text": "Systemet vil være utilgjengelig fra 12:00 til 14:00.", + "link": "https://example.com/maintenance", + "type": "INFO" + }, + { + "id": 3, + "createdBy": 123, + "created": "2025-06-25T10:27:34Z", + "updatedBy": 124, + "updated": "2025-06-25T10:27:34Z", + "title": "Feil i systemet", + "text": "Det har oppstått en feil i systemet. Vennligst kontakt support.", + "link": null, + "type": "ERROR" + } +] \ No newline at end of file diff --git a/gca-admin-gurusoft-message-dashboard/src/router/index.js b/gca-admin-gurusoft-message-dashboard/src/router/index.js new file mode 100644 index 0000000..135511e --- /dev/null +++ b/gca-admin-gurusoft-message-dashboard/src/router/index.js @@ -0,0 +1,35 @@ +import { createRouter, createWebHistory } from 'vue-router' +import SystemBannerPage from '../components/SystemBannerPage.vue' +import SystemBanner from '../components/SystemBanner.vue' +import MarkedsBannerPage from '../components/MarkedsBannerPage.vue' +import MarkedsBanner from '../components/MarkedsBanner.vue' + +const routes = [ + { + path: '/', + name: 'Home', + component: SystemBanner + }, + { + path: '/SystemBannerPage', + name: 'BannerPage', + component: SystemBannerPage + }, + { + path: '/markedsbanners', + name: 'MarkedsPage', + component: MarkedsBannerPage + }, + { + path: '/markedsbanner', + name: 'MarkedsStart', + component: MarkedsBanner + } +] + +const router = createRouter({ + history: createWebHistory(), + routes +}) + +export default router diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..59aeb91 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,42 @@ +{ + "name": "gca_admin", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "bootstrap": "^5.3.7" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/bootstrap": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.7.tgz", + "integrity": "sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..79d5249 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "bootstrap": "^5.3.7" + } +}