diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index 62b69f3..57adabe 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -51,6 +51,12 @@ class HandleInertiaRequests extends Middleware 'location' => $request->url(), ], 'sidebarOpen' => ! $request->hasCookie('sidebar_state') || $request->cookie('sidebar_state') === 'true', + 'flash' => [ + 'message' => fn () => $request->session()->get('message'), + 'success' => fn () => $request->session()->get('success'), + 'warning' => fn () => $request->session()->get('warning'), + 'error' => fn () => $request->session()->get('error'), + ], ]; } } diff --git a/package-lock.json b/package-lock.json index 80e44b9..16c8256 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,7 @@ "": { "dependencies": { "@inertiajs/vue3": "^2.0.0", - "@tailwindcss/vite": "^4.1.1", + "@tailwindcss/vite": "^4.1.5", "@vitejs/plugin-vue": "^5.2.1", "@vueuse/core": "^12.8.2", "class-variance-authority": "^0.7.1", @@ -19,7 +19,7 @@ "marked": "^9.1.6", "reka-ui": "^2.2.0", "tailwind-merge": "^3.2.0", - "tailwindcss": "^4.1.1", + "tailwindcss": "^4.1.5", "tw-animate-css": "^1.2.5", "typescript": "^5.2.2", "uuidv4": "^6.2.13", diff --git a/package.json b/package.json index 35e2107..2b0f25d 100644 --- a/package.json +++ b/package.json @@ -16,37 +16,37 @@ "eslint": "^9.17.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-vue": "^9.32.0", + "flowbite": "^1.8.1", "prettier": "^3.4.2", "prettier-plugin-organize-imports": "^4.1.0", "prettier-plugin-tailwindcss": "^0.6.11", "typescript-eslint": "^8.23.0", - "vue-tsc": "^2.2.4", - "flowbite": "^1.8.1" + "vue-tsc": "^2.2.4" }, "dependencies": { "@inertiajs/vue3": "^2.0.0", - "@tailwindcss/vite": "^4.1.1", + "@tailwindcss/vite": "^4.1.5", "@vitejs/plugin-vue": "^5.2.1", "@vueuse/core": "^12.8.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "concurrently": "^9.0.1", + "gsap": "^3.12.2", "laravel-vite-plugin": "^1.0", "lucide-vue-next": "^0.468.0", - "reka-ui": "^2.2.0", - "tailwind-merge": "^3.2.0", - "tailwindcss": "^4.1.1", - "tw-animate-css": "^1.2.5", - "typescript": "^5.2.2", - "vite": "^6.2.0", - "vue": "^3.5.13", - "gsap": "^3.12.2", "markdown-it": "^13.0.1", "marked": "^9.1.6", + "reka-ui": "^2.2.0", + "tailwind-merge": "^3.2.0", + "tailwindcss": "^4.1.5", + "tw-animate-css": "^1.2.5", + "typescript": "^5.2.2", "uuidv4": "^6.2.13", - "ziggy-js": "^2.4.2", + "vite": "^6.2.0", + "vue": "^3.5.13", "vue3-tree": "^0.11.5", - "vue3-treeview": "^0.4.2" + "vue3-treeview": "^0.4.2", + "ziggy-js": "^2.4.2" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "4.9.5", diff --git a/public/img/fonts/MicroD.otf b/public/fonts/MicroD.otf similarity index 100% rename from public/img/fonts/MicroD.otf rename to public/fonts/MicroD.otf diff --git a/public/img/fonts/MontBold.ttf b/public/fonts/MontBold.ttf similarity index 100% rename from public/img/fonts/MontBold.ttf rename to public/fonts/MontBold.ttf diff --git a/public/img/fonts/callofduty.ttf b/public/fonts/callofduty.ttf similarity index 100% rename from public/img/fonts/callofduty.ttf rename to public/fonts/callofduty.ttf diff --git a/public/img/fonts/roboto-black.ttf b/public/fonts/roboto-black.ttf similarity index 100% rename from public/img/fonts/roboto-black.ttf rename to public/fonts/roboto-black.ttf diff --git a/public/img/fonts/roboto-bold.ttf b/public/fonts/roboto-bold.ttf similarity index 100% rename from public/img/fonts/roboto-bold.ttf rename to public/fonts/roboto-bold.ttf diff --git a/public/img/fonts/roboto-italic.ttf b/public/fonts/roboto-italic.ttf similarity index 100% rename from public/img/fonts/roboto-italic.ttf rename to public/fonts/roboto-italic.ttf diff --git a/public/img/fonts/roboto-medium.ttf b/public/fonts/roboto-medium.ttf similarity index 100% rename from public/img/fonts/roboto-medium.ttf rename to public/fonts/roboto-medium.ttf diff --git a/public/img/fonts/roboto-standard.ttf b/public/fonts/roboto-standard.ttf similarity index 100% rename from public/img/fonts/roboto-standard.ttf rename to public/fonts/roboto-standard.ttf diff --git a/public/img/fonts/topsecret.ttf b/public/fonts/topsecret.ttf similarity index 100% rename from public/img/fonts/topsecret.ttf rename to public/fonts/topsecret.ttf diff --git a/public/img/appstore.jpg b/public/img/appstore.jpg new file mode 100644 index 0000000..9dbb91b Binary files /dev/null and b/public/img/appstore.jpg differ diff --git a/public/img/bakgrunn.png b/public/img/bakgrunn.png new file mode 100644 index 0000000..361cd58 Binary files /dev/null and b/public/img/bakgrunn.png differ diff --git a/public/img/forgrunn-r.png b/public/img/forgrunn-r.png new file mode 100644 index 0000000..da51914 Binary files /dev/null and b/public/img/forgrunn-r.png differ diff --git a/public/img/forgrunn.png b/public/img/forgrunn.png new file mode 100644 index 0000000..6bb105f Binary files /dev/null and b/public/img/forgrunn.png differ diff --git a/public/img/maillogo.png b/public/img/maillogo.png new file mode 100644 index 0000000..5f5b63f Binary files /dev/null and b/public/img/maillogo.png differ diff --git a/public/img/medlemmer-bg.jpg b/public/img/medlemmer-bg.jpg new file mode 100644 index 0000000..2056148 Binary files /dev/null and b/public/img/medlemmer-bg.jpg differ diff --git a/public/img/medlemmer.jpg b/public/img/medlemmer.jpg new file mode 100644 index 0000000..4e7efc1 Binary files /dev/null and b/public/img/medlemmer.jpg differ diff --git a/public/img/meny-bak-1.jpg b/public/img/meny-bak-1.jpg new file mode 100644 index 0000000..35e1f94 Binary files /dev/null and b/public/img/meny-bak-1.jpg differ diff --git a/public/img/meny-bak-2.jpg b/public/img/meny-bak-2.jpg new file mode 100644 index 0000000..e7d72c8 Binary files /dev/null and b/public/img/meny-bak-2.jpg differ diff --git a/public/img/oms-glow.png b/public/img/oms-glow.png new file mode 100644 index 0000000..c1186ef Binary files /dev/null and b/public/img/oms-glow.png differ diff --git a/public/img/oms.png b/public/img/oms.png new file mode 100644 index 0000000..ba25835 Binary files /dev/null and b/public/img/oms.png differ diff --git a/public/img/pexels-andrew-neel-2859169.jpg b/public/img/pexels-andrew-neel-2859169.jpg new file mode 100644 index 0000000..b38723a Binary files /dev/null and b/public/img/pexels-andrew-neel-2859169.jpg differ diff --git a/public/img/pexels-flenn-may-802505.jpg b/public/img/pexels-flenn-may-802505.jpg new file mode 100644 index 0000000..dc7e28c Binary files /dev/null and b/public/img/pexels-flenn-may-802505.jpg differ diff --git a/public/img/pexels-ketut-subiyanto-4963437.jpg b/public/img/pexels-ketut-subiyanto-4963437.jpg new file mode 100644 index 0000000..967c212 Binary files /dev/null and b/public/img/pexels-ketut-subiyanto-4963437.jpg differ diff --git a/public/img/pexels-rodrigo-santos-3888151.jpg b/public/img/pexels-rodrigo-santos-3888151.jpg new file mode 100644 index 0000000..486fd4d Binary files /dev/null and b/public/img/pexels-rodrigo-santos-3888151.jpg differ diff --git a/public/img/pexels-sebastian-ervi-1763075.jpg b/public/img/pexels-sebastian-ervi-1763075.jpg new file mode 100644 index 0000000..55b5b88 Binary files /dev/null and b/public/img/pexels-sebastian-ervi-1763075.jpg differ diff --git a/public/img/playstore.jpg b/public/img/playstore.jpg new file mode 100644 index 0000000..78f3e6f Binary files /dev/null and b/public/img/playstore.jpg differ diff --git a/public/img/sol-center.png b/public/img/sol-center.png new file mode 100644 index 0000000..b43a054 Binary files /dev/null and b/public/img/sol-center.png differ diff --git a/public/img/sol-left.png b/public/img/sol-left.png new file mode 100644 index 0000000..e5ca248 Binary files /dev/null and b/public/img/sol-left.png differ diff --git a/public/img/sol-right.png b/public/img/sol-right.png new file mode 100644 index 0000000..69a1141 Binary files /dev/null and b/public/img/sol-right.png differ diff --git a/public/img/splash.jpg b/public/img/splash.jpg new file mode 100644 index 0000000..281a8ac Binary files /dev/null and b/public/img/splash.jpg differ diff --git a/resources/css/app.css b/resources/css/app.css index 0e71966..7a0abaf 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -7,11 +7,95 @@ @custom-variant dark (&:is(.dark *)); +@font-face { + font-family: 'TopSecret'; + src: url('/fonts/topsecret.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url('/fonts/roboto-standard.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url('/fonts/roboto-medium.ttf') format('truetype'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url('/fonts/roboto-bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url('/fonts/roboto-black.ttf') format('truetype'); + font-weight: 900; + font-style: normal; +} + +@font-face { + font-family: 'Roboto'; + src: url('/fonts/roboto-italic.ttf') format('truetype'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'CallOfDuty'; + src: url('/fonts/callofduty.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "MicrogrammaD"; + src: url("/fonts/MicroD.otf") format("opentype"); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: "MontserratBold"; + src: url("/fonts/MontBold.ttf") format("truetype"); + font-weight: normal; + font-style: normal; +} + @theme inline { - --font-sans: - Instrument Sans, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', + --font-sans: Instrument Sans, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + --font-arctic: MicrogrammaD, "sans-serif"; + --font-software: MontserratBold, "ui-sans-serif"; + --font-topsecret: TopSecret, "system-ui"; + --font-callofduty: CallOfDuty, MicrogrammaD, "ui-sans-serif"; + + --background-image-logoBg: url('/img/oms.png'); + --background-image-heroBgBackup: url('/img/illustration-full.png'); + --background-image-heroBg: url('/img/bakgrunn.png'); + --background-image-heroFg: url('/img/forgrunn.png'); + --background-image-heroFgR: url('/img/forgrunn-r.png'); + --background-image-heroSoldiers: url('/img/sol-center.png'); + --background-image-splashBg: url('/img/splash.jpg'); + --background-image-sightBg: url('/img/sight.png'); + --background-image-maps: url('/img/pexels-andrew-neel-2859169.jpg'); + --background-image-camuflage-lgreen: url('/img/6-green-camouflage-texture-tile-1.png'); + --background-image-camuflage-dgreen: url('/img/6-green-camouflage-texture-tile-6.png'); + --background-image-garden-party: url('/img/pexels-flenn-may-802505.jpg'); + --background-image-event: url('/img/pexels-sebastian-ervi-1763075.jpg'); + --background-image-night: url('/img/meny-bak-2.jpg'); + --background-image-medlemmer: url('/img/medlemmer-bg.jpg'); + + --radius-lg: var(--radius); --radius-md: calc(var(--radius) - 2px); --radius-sm: calc(var(--radius) - 4px); diff --git a/resources/js/Utils/blocks.js b/resources/js/Utils/blocks.js new file mode 100644 index 0000000..2c2127d --- /dev/null +++ b/resources/js/Utils/blocks.js @@ -0,0 +1,340 @@ +// @/Utils/blocks.js + +import { v4 as uuidv4 } from 'uuid'; + +const blocks = { + groups: [ + { + uuid: 'group-heroes', + title: 'Hero-seksjoner', + blocks: [ + { + uuid: uuidv4(), + componentName: 'HeroLogoText', + optionsComponentName: 'HeroLogoTextOptions', + renderComponentName: 'HeroLogoTextRendered', + description: 'Hero tekst, logo og lenke', + thumbUrl: '/img/blocks/hero_logo_text_preview.jpg', + static: false, + title: 'Bygg en fantastisk hjemmeside for deg og dine brukere med', + titlecursive: 'PolarPress web applikasjon', + showtitle: true, + texts: [ + { + paragraph: 'Trenger du et enkelt og fleksibelt system for å organisere din klubb og klubbaktiviteter, uten å knekke lommeboka? Ønsker du et partnerskap med en utvikler med tilhold i Norge og som er lett tilgjengelig dersom du har behov for oppfølging? Kontakt oss for mer informasjon om hvordan vi kan hjelpe deg og din klubb' + } + ], + buttontext: 'Kontakt oss', + buttonaction: 'none', + buttonlink: '', + showbutton: true, + showlogo: true, + anchorName: 'frontPageArcticSoftware', + }, + ] + }, + { + uuid: 'group-faqs', + title: 'Spørsmål og svar', + blocks: [ + { + uuid: uuidv4(), + componentName: 'FAQList', + optionsComponentName: 'FAQListOptions', + renderComponentName: 'FAQListRendered', + description: 'En enkel liste med spørsmål og svar', + thumbUrl: '/img/blocks/list.jpg', + title: 'Ofte stilte spørsmål', + static: false, + faqs: [ + { question: 'Hva er dette?', answer: 'Dette er en FAQ blokk.' }, + { question: 'Hvordan bruker jeg det?', answer: 'Legg inn spørsmål og svar her.' }, + ] + }, + { + uuid: uuidv4(), + componentName: 'FAQCollapse', + optionsComponentName: 'FAQCollapseOptions', + renderComponentName: 'FAQCollapseRendered', + description: 'Kollapsbare spørsmål og svar', + thumbUrl: '/img/blocks/collapse.jpg', + title: 'FAQ Seksjon', + static: false, + faqs: [ + { question: 'Hva er dette?', answer: 'Dette er et eksempel på et spørsmål og svar.' }, + { question: 'Hvordan fungerer det?', answer: 'Du legger til innhold og publiserer siden.' } + ] + }, + { + uuid: uuidv4(), + componentName: 'FAQCondensed', + optionsComponentName: 'FAQCondensedOptions', + renderComponentName: 'FAQCondensedRendered', + description: 'Kondensert og animert spørsmål og svar', + thumbUrl: '/img/blocks/faq_condensed_preview.jpg', + static: false, + title: 'Spørsmål angående denne siden?', + titlecursive: 'Her er noen svar', + showtitle: true, + label: 'OM DEMOSIDEN', + showlabel: true, + anchorName: 'frontPageFAQ', + faqs: [ + { + categoryName: 'Kategori 1', + categoryContent: [ + { question: 'Spørsmål 1', answer: 'Dette er svar på spørsmål 1', state: false }, + { question: 'Spørsmål 2', answer: 'Dette er svar på spørsmål 2', state: false }, + { question: 'Spørsmål 3', answer: 'Dette er svar på spørsmål 3', state: false } + ] + }, + { + categoryName: 'Kategori 2', + categoryContent: [ + { question: 'Spørsmål 4', answer: 'Dette er svar på spørsmål 4', state: false }, + { question: 'Spørsmål 5', answer: 'Dette er svar på spørsmål 5', state: false }, + { question: 'Spørsmål 6', answer: 'Dette er svar på spørsmål 6', state: false } + ] + } + ] + } + ] + }, + { + uuid: 'text-content', + title: 'Blokker ment for lengre tekstinnlegg', + blocks: [ + { + uuid: uuidv4(), + componentName: 'TwoColumnText', + optionsComponentName: 'TwoColumnTextOptions', + renderComponentName: 'TwoColumnTextRendered', + description: 'Tekstblokk med to kolonner (en på små skjermer)', + thumbUrl: '/img/blocks/twocolumntext_oms_preview.jpg', + static: false, + anchorName: 'content', + + firstcolumn: [ + { + text: 'Litt om vår klubb', + style: 'headinglarge' + }, + { + text: 'To tiår med fellesskap og lidenskap for airsoft', + style: 'heading' + }, + { + text: 'Østfold Milsim er en airsoftklubb som ble stiftet i 2003. Klubben startet opp med et fokus på Milsim, men har i dag en mer variert spillestil. Milsim etterstreber å være mest "korrekt" ut fra hvilket utstyr og uniform man bruker, mens klubben i dag har en stor variasjon av spillere. Her er man velkommen uansett om man spiller i hettegenser eller fullt airsoft kit. Vi tilhører Hyperion, Norsk Forbund for Fantastiske Fritidsinteresser (n4f.no)', + style: 'regular' + }, + { + text: 'Vår hobby er airsoft (softguns). Vi arrangerer egne spill og deltar på andre klubbers spill. På større spill eller samlinger overnattes det ute i skogen der arrangementet foregår. Klubbens symbol er en gaupepote, det største fastboende rovdyret i Østfold.', + style: 'regular' + }, + { + text: 'Arrangementer', + style: 'headingbold' + }, + { + text: 'Vi arrangerer egne spill og deltar på andre klubbers spill. Det spilles på lørdag eller søndag, som oftest med matpause og sosialisering midt i spilltiden. Det kan være alt fra 15 til 100 deltakere på lokale spill.', + style: 'regular' + }, + { + text: 'På storspill (samlinger) spilles det over flere dager med overnatting i telt. På utenlandske spill kan det være opp mot 2000 spillere. Storspill i Norge har fra 100 til 400 spillere. ØMS har en god del friluftsutstyr som medlemmer kan låne gratis ved deltakelse på slike samlinger.', + style: 'regular' + }, + { + text: 'Airsoft som aktivitet', + style: 'headingbold' + }, + { + text: 'Airsoft er en sosial, inkluderende og spennende hobby. Her kan man velge om man ønsker å spille på lag eller for seg selv. Spillarrangøren avgjør spillets gang, men man er velkommen både alene og som en gjeng. Airsoft er en betegnelse på hvordan man rollespiller med softguns. Arrangementene følger forskjellige scenarioer og har ulike mål for hvert spill. Aktiviteten legger opp til mye samarbeid, kommunikasjon og problemløsning.', + style: 'regular' + }, + { + text: 'Selv om det i stor grad oppfordres til en del aktivitet, er airsoft en hobby som er lett å tilpasse sitt eget aktivitetsnivå. Det er ganske unikt som en aktiv hobby i sin mulighet til å variere og tilpasse ut fra dagsformen. Her trenger du ikke være best, her kan du bare være deg selv. Airsoftere er både unge og eldre, i alle forskjellige yrker, kvinner og menn. Dette er med andre ord en hobby for absolutt alle som ønsker å være aktive og treffe andre.', + style: 'regular' + }, + { + text: 'Utstyr', + style: 'headingbold' + }, + { + text: 'Det er ikke noe krav til utstyr utover briller og en softgun. Du kan leie utstyr billig av ØMS hvis du/dere vil prøve å spille. Vi selger også kuler, ta kontakt med oss på Facebook for dette.', + style: 'regular' + }, + { + text: 'Ønsker du å bli en mer aktiv spiller, vil du sannsynligvis se fordelene med en uniform i form av kamuflasje. Gode støvler for å hindre overtråkk og å holde føttene tørre. Noe å ha magasiner i (vest/chestrig). Det finnes egne salgskanaler for brukt airsoftutstyr, samt sider som finn.no.', + style: 'regular' + }, + { + text: 'Som medlem av ØMS får du "no bullshit" råd om utstyr som passer deg og din økonomi, samt hjelp til å finne seriøse og gode aktører på airsoft markedet.', + style: 'regular' + } + ], + + secondcolumn: [ + { + text: 'Litt om airsoft', + style: 'headinglarge' + }, + { + text: 'Trygge spill, uforglemmelige øyeblikk. Lær mer om airsoft og hvor man skal begynne.', + style: 'heading' + }, + { + text: 'https://www.youtube.com/embed/ZJZyK88_3qE?si=VLjj2hJj0UNnWaG9', + style: 'video' + }, + { + text: 'Softgun (våpnene vi bruker) har 18 års aldersgrense for å eie ifølge norsk våpenlov.', + style: 'regular' + }, + { + text: 'På ØMS sine arrangementer kan du spille fra du er 14 år. Du får da en verge/trustee som klubben står for, og som vil følge deg i spill. Denne personen vil veilede og ta vare på deg som er 14-18 år under våre arrangementer.', + style: 'regular' + }, + { + text: 'Airsoft ble oppfunnet i Japan på 1980-tallet, og mange airsoftvåpen kopierer et originalt våpen. Softguns skyter 6 mm runde bionedbrytbare kuler med en utgangshastighet på 70-150 m/s. Disse veier 0,20-0,40 g og har derfor liten anslagsenergi.', + style: 'regular' + }, + { + text: 'Det er selvfølgelig krav om godkjente briller/maske under alle spill. Det er langt større sjanse for å vrikke ankelen under spill enn å bli skadet av et treff.', + style: 'regular' + }, + { + text: 'I Norge har man klare regler på hvor hardt våpnene har lov til å skyte, og her følger vi Norsk Airsoft Forening sine regler med unntak av våres innendørs regler. Våpnene har en rekkevidde fra 50 m til 100 m.', + style: 'regular' + }, + { + text: 'Et airsoftvåpen er enten drevet av en fjær som må trekkes opp før hvert skudd, med gass, luft eller med elektrisk motor.', + style: 'regular' + }, + { + text: 'Airsoft er rollespill, ikke en form for "krigstrening". Det som skiller airsoft fra paintball er hovedsakelig at det er lagt vekt på realisme i våpen og utstyr, og at det ikke er maling i kulene.', + style: 'regular' + }, + { + text: "Airsoft kuler/BB's", + style: 'headingbold' + }, + { + text: 'Kulene (BBs) har forskjellig vekt og er runde med en diameter på 6 mm. ØMS bruker biologiske kuler som brytes naturlig ned i naturen og er laget av materialer som ikke er giftige.', + style: 'regular' + }, + { + text: 'Kulene etterlater seg ingen farge i motsetning til paintball.', + style: 'regular' + }, + { + text: 'Hvordan begynne med Airsoft', + style: 'headingbold' + }, + { + text: 'Du kan leie utstyr av oss for å prøve om airsoft er noe for deg før du går til innkjøp av eget utstyr. Har du allerede utstyr er det bare å melde seg på spill.', + style: 'regular' + }, + { + text: 'Ta kontakt med oss og meld deg på spill så "treffes" vi!', + style: 'regular' + } + ] + } + ] + }, + { + uuid: 'static-content', + title: 'Statisk innhold', + blocks: [ + { + uuid: uuidv4(), + componentName: 'FrontPageMenuHeader', + optionsComponentName: 'FrontPageMenuHeaderOptions', + renderComponentName: 'FrontPageMenuHeaderRendered', + description: 'Forside toppkomponent og header', + thumbUrl: '/img/blocks/frontpagemenuheader_oms_preview.jpg', + static: false, + title: 'Østfold Milsim', + anchorName: 'frontPageHeader' + }, + { + uuid: uuidv4(), + componentName: 'FrontPageSponsors', + optionsComponentName: 'FrontPageSponsorsOptions', + renderComponentName: 'FrontPageSponsorsRendered', + description: 'Forside sponsorliste', + thumbUrl: '/img/blocks/frontpagesponsors_oms_preview.jpg', + static: false, + title: 'Våre sponsorer', + text: 'En stor takk til våre sponsorer som gjør det mulig for oss å drive klubben og holde arrangementer. Hvis du ønsker å bli en sponsor for klubben, ta kontakt med oss på sponsor alfakrøll ostfoldmilsim punktum no . Her kan du se en liste over våre sponsorer og sammarbeidspartnere. Klikk på en oppføring for å lese mer.', + partnertext: 'Hos våre sammarbeidspartnere får du rabatter på airsoftutstyr og andre varer. Klikk på en oppføring for å lese mer. Husk å logge deg inn hvis du er medlem for å se rabattkodene og annen nyttig informasjon sombare er tilgjengelig for våre medlemmer.', + showtext: true, + showpartnertext: true, + image: '/img/pexels-flenn-may-802505.jpg', + anchorName: 'sponsors-intro', + needs: ['sponsors', 'partners'] + }, + { + uuid: uuidv4(), + componentName: 'FrontPageMembershipInfo', + optionsComponentName: 'FrontPageMembershipInfoOptions', + renderComponentName: 'FrontPageMembershipInfoRendered', + description: 'Medlemskapsinformasjon', + thumbUrl: '/img/blocks/frontpagemembers_oms_preview.jpg', + static: false, + showprices: true, + title: 'Medlemskap', + text: 'Som medlem får du tilgang til våre arrangementer, rabatter hos våre sponsorer, mulighet til å låne utstyr til en rimligere pris fra klubben og du får rimligere pris på våre spillavgifter. Du får også tilgang til nyttig informasjon, vår intergruppe på facebook og kan delta i diskusjoner via våre kommentarfelt.', + image: '/img/medlemmer-bg.jpg', + anchorName: 'membership', + needs: ['contingent'] + }, + { + uuid: uuidv4(), + componentName: 'FrontPageNewsList', + optionsComponentName: 'FrontPageNewsListOptions', + renderComponentName: 'FrontPageNewsListRendered', + description: 'Nyhetsartikler', + thumbUrl: '/img/blocks/frontpagenews_oms_preview.jpg', + static: false, + title: 'Nyheter', + showtitle: true, + label: 'Hold deg oppdatert med hva som skjer i ØMS', + anchorName: 'intro', + showlabel: true, + image: '/img/pexels-andrew-neel-2859169.jpg', + buttontext: 'Vis flere nyheter', + needs: ['articles'] + }, + { + uuid: uuidv4(), + componentName: 'FrontPageEventsList', + optionsComponentName: 'FrontPageEventsListOptions', + renderComponentName: 'FrontPageEventsListRendered', + description: 'Arrangementer', + thumbUrl: '/img/blocks/frontpageevents_oms_preview.jpg', + static: false, + title: 'Arrangementer', + showtitle: true, + label: 'Meld deg på og delta i fremtidige arrangementer', + showlabel: true, + secondarylabel: '(Registrerte og innloggede brukere/medlemmer vil ha tilgang til flere arrangementer)', + showsecondarylabel: true, + image: '/img/pexels-sebastian-ervi-1763075.jpg', + anchorName: 'events', + needs: ['events'] + }, + { + uuid: uuidv4(), + componentName: 'PageFooter', + renderComponentName: 'PageFooterRendered', + description: 'Bunntekst/footer', + thumbUrl: '/img/blocks/footer_oms_preview.jpg', + static: true + } + ] + } + ] +}; + +export default blocks; diff --git a/resources/js/components/ApplicationLogo.vue b/resources/js/components/ApplicationLogo.vue new file mode 100644 index 0000000..3c28b5e --- /dev/null +++ b/resources/js/components/ApplicationLogo.vue @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/resources/js/components/ArcticFooterLogo.vue b/resources/js/components/ArcticFooterLogo.vue new file mode 100644 index 0000000..15d1904 --- /dev/null +++ b/resources/js/components/ArcticFooterLogo.vue @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/BlockGroup.vue b/resources/js/components/Blocks/BlockGroup.vue new file mode 100644 index 0000000..abbbfc6 --- /dev/null +++ b/resources/js/components/Blocks/BlockGroup.vue @@ -0,0 +1,66 @@ + + + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/BlockPreviewer.vue b/resources/js/components/Blocks/BlockPreviewer.vue new file mode 100644 index 0000000..ba5c474 --- /dev/null +++ b/resources/js/components/Blocks/BlockPreviewer.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/resources/js/components/Blocks/BlockWrapper.vue b/resources/js/components/Blocks/BlockWrapper.vue new file mode 100644 index 0000000..74ca430 --- /dev/null +++ b/resources/js/components/Blocks/BlockWrapper.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/resources/js/components/Blocks/FAQ/FAQCollapse.vue b/resources/js/components/Blocks/FAQ/FAQCollapse.vue new file mode 100644 index 0000000..fb505e1 --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQCollapse.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/resources/js/components/Blocks/FAQ/FAQCollapseOptions.vue b/resources/js/components/Blocks/FAQ/FAQCollapseOptions.vue new file mode 100644 index 0000000..e5835b9 --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQCollapseOptions.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/resources/js/components/Blocks/FAQ/FAQCollapseRendered.vue b/resources/js/components/Blocks/FAQ/FAQCollapseRendered.vue new file mode 100644 index 0000000..fb505e1 --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQCollapseRendered.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/resources/js/components/Blocks/FAQ/FAQCondensed.vue b/resources/js/components/Blocks/FAQ/FAQCondensed.vue new file mode 100644 index 0000000..e5a1922 --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQCondensed.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/resources/js/components/Blocks/FAQ/FAQCondensedOptions.vue b/resources/js/components/Blocks/FAQ/FAQCondensedOptions.vue new file mode 100644 index 0000000..faa9f4f --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQCondensedOptions.vue @@ -0,0 +1,285 @@ + + + diff --git a/resources/js/components/Blocks/FAQ/FAQCondensedRendered.vue b/resources/js/components/Blocks/FAQ/FAQCondensedRendered.vue new file mode 100644 index 0000000..fa9a19d --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQCondensedRendered.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/resources/js/components/Blocks/FAQ/FAQList.vue b/resources/js/components/Blocks/FAQ/FAQList.vue new file mode 100644 index 0000000..2eb4ad6 --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQList.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/resources/js/components/Blocks/FAQ/FAQListOptions.vue b/resources/js/components/Blocks/FAQ/FAQListOptions.vue new file mode 100644 index 0000000..bb7fca1 --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQListOptions.vue @@ -0,0 +1,99 @@ + + + diff --git a/resources/js/components/Blocks/FAQ/FAQListRendered.vue b/resources/js/components/Blocks/FAQ/FAQListRendered.vue new file mode 100644 index 0000000..2eb4ad6 --- /dev/null +++ b/resources/js/components/Blocks/FAQ/FAQListRendered.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/resources/js/components/Blocks/Heroes/HeroLogoText.vue b/resources/js/components/Blocks/Heroes/HeroLogoText.vue new file mode 100644 index 0000000..efbc876 --- /dev/null +++ b/resources/js/components/Blocks/Heroes/HeroLogoText.vue @@ -0,0 +1,110 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Heroes/HeroLogoTextOptions.vue b/resources/js/components/Blocks/Heroes/HeroLogoTextOptions.vue new file mode 100644 index 0000000..69453a3 --- /dev/null +++ b/resources/js/components/Blocks/Heroes/HeroLogoTextOptions.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/resources/js/components/Blocks/Heroes/HeroLogoTextRendered.vue b/resources/js/components/Blocks/Heroes/HeroLogoTextRendered.vue new file mode 100644 index 0000000..86e930d --- /dev/null +++ b/resources/js/components/Blocks/Heroes/HeroLogoTextRendered.vue @@ -0,0 +1,110 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageEventsList.vue b/resources/js/components/Blocks/Statics/FrontPageEventsList.vue new file mode 100644 index 0000000..db9789f --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageEventsList.vue @@ -0,0 +1,85 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageEventsListOptions.vue b/resources/js/components/Blocks/Statics/FrontPageEventsListOptions.vue new file mode 100644 index 0000000..74b38c0 --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageEventsListOptions.vue @@ -0,0 +1,182 @@ + + + + + diff --git a/resources/js/components/Blocks/Statics/FrontPageMembershipInfo.vue b/resources/js/components/Blocks/Statics/FrontPageMembershipInfo.vue new file mode 100644 index 0000000..769b99b --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageMembershipInfo.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/resources/js/components/Blocks/Statics/FrontPageMembershipInfoOptions.vue b/resources/js/components/Blocks/Statics/FrontPageMembershipInfoOptions.vue new file mode 100644 index 0000000..361f5f3 --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageMembershipInfoOptions.vue @@ -0,0 +1,128 @@ + + + diff --git a/resources/js/components/Blocks/Statics/FrontPageMembershipInfoRendered.vue b/resources/js/components/Blocks/Statics/FrontPageMembershipInfoRendered.vue new file mode 100644 index 0000000..59929e2 --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageMembershipInfoRendered.vue @@ -0,0 +1,237 @@ + + + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageMenuHeader.vue b/resources/js/components/Blocks/Statics/FrontPageMenuHeader.vue new file mode 100644 index 0000000..1fd4955 --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageMenuHeader.vue @@ -0,0 +1,36 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageMenuHeaderOptions.vue b/resources/js/components/Blocks/Statics/FrontPageMenuHeaderOptions.vue new file mode 100644 index 0000000..44558f8 --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageMenuHeaderOptions.vue @@ -0,0 +1,49 @@ + + + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageMenuHeaderRendered.vue b/resources/js/components/Blocks/Statics/FrontPageMenuHeaderRendered.vue new file mode 100644 index 0000000..ae5f6ea --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageMenuHeaderRendered.vue @@ -0,0 +1,78 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageNewsList.vue b/resources/js/components/Blocks/Statics/FrontPageNewsList.vue new file mode 100644 index 0000000..fa3a02b --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageNewsList.vue @@ -0,0 +1,77 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageNewsListOptions.vue b/resources/js/components/Blocks/Statics/FrontPageNewsListOptions.vue new file mode 100644 index 0000000..7a69bfd --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageNewsListOptions.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/resources/js/components/Blocks/Statics/FrontPageNewsListRendered.vue b/resources/js/components/Blocks/Statics/FrontPageNewsListRendered.vue new file mode 100644 index 0000000..841889a --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageNewsListRendered.vue @@ -0,0 +1,115 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageSponsors.vue b/resources/js/components/Blocks/Statics/FrontPageSponsors.vue new file mode 100644 index 0000000..826937d --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageSponsors.vue @@ -0,0 +1,71 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/FrontPageSponsorsOptions.vue b/resources/js/components/Blocks/Statics/FrontPageSponsorsOptions.vue new file mode 100644 index 0000000..0561b69 --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageSponsorsOptions.vue @@ -0,0 +1,164 @@ + + + + + diff --git a/resources/js/components/Blocks/Statics/FrontPageSponsorsRendered.vue b/resources/js/components/Blocks/Statics/FrontPageSponsorsRendered.vue new file mode 100644 index 0000000..1f6b1a3 --- /dev/null +++ b/resources/js/components/Blocks/Statics/FrontPageSponsorsRendered.vue @@ -0,0 +1,62 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/PageFooter.vue b/resources/js/components/Blocks/Statics/PageFooter.vue new file mode 100644 index 0000000..8a3a465 --- /dev/null +++ b/resources/js/components/Blocks/Statics/PageFooter.vue @@ -0,0 +1,23 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Statics/PageFooterRendered.vue b/resources/js/components/Blocks/Statics/PageFooterRendered.vue new file mode 100644 index 0000000..8a3a465 --- /dev/null +++ b/resources/js/components/Blocks/Statics/PageFooterRendered.vue @@ -0,0 +1,23 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Text/TwoColumnText.vue b/resources/js/components/Blocks/Text/TwoColumnText.vue new file mode 100644 index 0000000..6c4dfd1 --- /dev/null +++ b/resources/js/components/Blocks/Text/TwoColumnText.vue @@ -0,0 +1,89 @@ + + + \ No newline at end of file diff --git a/resources/js/components/Blocks/Text/TwoColumnTextOptions.vue b/resources/js/components/Blocks/Text/TwoColumnTextOptions.vue new file mode 100644 index 0000000..9fb0862 --- /dev/null +++ b/resources/js/components/Blocks/Text/TwoColumnTextOptions.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/resources/js/components/Blocks/Text/TwoColumnTextRendered.vue b/resources/js/components/Blocks/Text/TwoColumnTextRendered.vue new file mode 100644 index 0000000..9a8c41a --- /dev/null +++ b/resources/js/components/Blocks/Text/TwoColumnTextRendered.vue @@ -0,0 +1,89 @@ + + + \ No newline at end of file diff --git a/resources/js/components/ClubLogo.vue b/resources/js/components/ClubLogo.vue new file mode 100644 index 0000000..5ebc5a3 --- /dev/null +++ b/resources/js/components/ClubLogo.vue @@ -0,0 +1,3 @@ + diff --git a/resources/js/components/DangerButton.vue b/resources/js/components/DangerButton.vue new file mode 100644 index 0000000..cb2a73a --- /dev/null +++ b/resources/js/components/DangerButton.vue @@ -0,0 +1,7 @@ + diff --git a/resources/js/components/EventBus.vue b/resources/js/components/EventBus.vue new file mode 100644 index 0000000..fa13e25 --- /dev/null +++ b/resources/js/components/EventBus.vue @@ -0,0 +1,22 @@ + \ No newline at end of file diff --git a/resources/js/components/FrontPage/ArcticSoftwareFrontpageLogo.vue b/resources/js/components/FrontPage/ArcticSoftwareFrontpageLogo.vue new file mode 100644 index 0000000..ba1815d --- /dev/null +++ b/resources/js/components/FrontPage/ArcticSoftwareFrontpageLogo.vue @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/resources/js/components/FrontPage/FooterSection.vue b/resources/js/components/FrontPage/FooterSection.vue new file mode 100644 index 0000000..7f0e991 --- /dev/null +++ b/resources/js/components/FrontPage/FooterSection.vue @@ -0,0 +1,177 @@ + + + \ No newline at end of file diff --git a/resources/js/components/InputLabel.vue b/resources/js/components/InputLabel.vue new file mode 100644 index 0000000..8309f43 --- /dev/null +++ b/resources/js/components/InputLabel.vue @@ -0,0 +1,14 @@ + + + diff --git a/resources/js/components/Modal.vue b/resources/js/components/Modal.vue new file mode 100644 index 0000000..bc25a19 --- /dev/null +++ b/resources/js/components/Modal.vue @@ -0,0 +1,105 @@ + + + diff --git a/resources/js/components/PageBuilderLogo.vue b/resources/js/components/PageBuilderLogo.vue new file mode 100644 index 0000000..3a414f8 --- /dev/null +++ b/resources/js/components/PageBuilderLogo.vue @@ -0,0 +1,16 @@ + + + \ No newline at end of file diff --git a/resources/js/components/PrimaryButton.vue b/resources/js/components/PrimaryButton.vue new file mode 100644 index 0000000..7b4377a --- /dev/null +++ b/resources/js/components/PrimaryButton.vue @@ -0,0 +1,7 @@ + diff --git a/resources/js/components/SecondaryButton.vue b/resources/js/components/SecondaryButton.vue new file mode 100644 index 0000000..1395c56 --- /dev/null +++ b/resources/js/components/SecondaryButton.vue @@ -0,0 +1,17 @@ + + + diff --git a/resources/js/components/TextInput.vue b/resources/js/components/TextInput.vue new file mode 100644 index 0000000..9f5acc7 --- /dev/null +++ b/resources/js/components/TextInput.vue @@ -0,0 +1,31 @@ + + + diff --git a/resources/js/components/Toast.vue b/resources/js/components/Toast.vue new file mode 100644 index 0000000..441bb6f --- /dev/null +++ b/resources/js/components/Toast.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/resources/js/composables/useToast.js b/resources/js/composables/useToast.js new file mode 100644 index 0000000..be8eeb3 --- /dev/null +++ b/resources/js/composables/useToast.js @@ -0,0 +1,14 @@ +import { ref } from 'vue'; + +export const toastMessage = ref(null); + +/** + * @param {'success' | 'info' | 'danger' | 'warning'} type + * @param {string} message + */ +export function showToast(type, message) { + toastMessage.value = { + type: String(type), + message: String(message), + }; +} \ No newline at end of file diff --git a/resources/js/layouts/AuthenticatedLayout.vue b/resources/js/layouts/AuthenticatedLayout.vue new file mode 100644 index 0000000..b5b41a4 --- /dev/null +++ b/resources/js/layouts/AuthenticatedLayout.vue @@ -0,0 +1,35 @@ + + + diff --git a/resources/js/layouts/PageBuilderLayout.vue b/resources/js/layouts/PageBuilderLayout.vue new file mode 100644 index 0000000..21853de --- /dev/null +++ b/resources/js/layouts/PageBuilderLayout.vue @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/resources/js/layouts/auth/AuthCardLayout.vue b/resources/js/layouts/auth/AuthCardLayout.vue index 9866818..b6e1f25 100644 --- a/resources/js/layouts/auth/AuthCardLayout.vue +++ b/resources/js/layouts/auth/AuthCardLayout.vue @@ -1,6 +1,7 @@ + + + + diff --git a/resources/js/pages/Backend/PageBuilder/Edit.vue b/resources/js/pages/Backend/PageBuilder/Edit.vue new file mode 100644 index 0000000..807adf5 --- /dev/null +++ b/resources/js/pages/Backend/PageBuilder/Edit.vue @@ -0,0 +1,623 @@ + + + + + diff --git a/resources/js/pages/Backend/PageBuilder/Index.vue b/resources/js/pages/Backend/PageBuilder/Index.vue new file mode 100644 index 0000000..4acb568 --- /dev/null +++ b/resources/js/pages/Backend/PageBuilder/Index.vue @@ -0,0 +1,170 @@ + + + diff --git a/resources/js/pages/Backend/PageBuilder/Preview.vue b/resources/js/pages/Backend/PageBuilder/Preview.vue new file mode 100644 index 0000000..509e7c0 --- /dev/null +++ b/resources/js/pages/Backend/PageBuilder/Preview.vue @@ -0,0 +1,296 @@ + + + \ No newline at end of file diff --git a/resources/js/pages/Root.vue b/resources/js/pages/Root.vue new file mode 100644 index 0000000..541c497 --- /dev/null +++ b/resources/js/pages/Root.vue @@ -0,0 +1,310 @@ + + + \ No newline at end of file diff --git a/resources/js/pages/Welcome.vue b/resources/js/pages/Welcome.vue index 3560aa5..fd1d694 100644 --- a/resources/js/pages/Welcome.vue +++ b/resources/js/pages/Welcome.vue @@ -1,5 +1,6 @@