mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-11-04 06:23:17 -05:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			dark-base-
			...
			test-uffiz
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5a8e30d748 | |||
| e0e9aff6d1 | |||
| abc66dd768 | 
							
								
								
									
										9
									
								
								.github/workflows/uffizzi-build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								.github/workflows/uffizzi-build.yml
									
									
									
									
										vendored
									
									
								
							@ -14,8 +14,6 @@ jobs:
 | 
				
			|||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout git repo
 | 
					      - name: Checkout git repo
 | 
				
			||||||
        uses: actions/checkout@v3
 | 
					        uses: actions/checkout@v3
 | 
				
			||||||
      - name: Set up Docker Buildx
 | 
					 | 
				
			||||||
        uses: docker/setup-buildx-action@v2        
 | 
					 | 
				
			||||||
      - name: Generate UUID image name
 | 
					      - name: Generate UUID image name
 | 
				
			||||||
        id: uuid
 | 
					        id: uuid
 | 
				
			||||||
        run: echo "UUID_TAG_APP=$(uuidgen)" >> $GITHUB_ENV
 | 
					        run: echo "UUID_TAG_APP=$(uuidgen)" >> $GITHUB_ENV
 | 
				
			||||||
@ -33,11 +31,10 @@ jobs:
 | 
				
			|||||||
          tags: ${{ steps.meta.outputs.tags }}
 | 
					          tags: ${{ steps.meta.outputs.tags }}
 | 
				
			||||||
          labels: ${{ steps.meta.outputs.labels }}
 | 
					          labels: ${{ steps.meta.outputs.labels }}
 | 
				
			||||||
          file: ./uffizzi/Dockerfile
 | 
					          file: ./uffizzi/Dockerfile
 | 
				
			||||||
          cache-from: type=gha
 | 
					 | 
				
			||||||
          cache-to: type=gha,mode=max
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  build-nginx:
 | 
					  build-nginx:
 | 
				
			||||||
 | 
					    needs: 
 | 
				
			||||||
 | 
					      - build-application
 | 
				
			||||||
    name: Build and Push `nginx`
 | 
					    name: Build and Push `nginx`
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
 | 
					    if: ${{ github.event_name != 'pull_request' || github.event.action != 'closed' }}
 | 
				
			||||||
@ -65,6 +62,8 @@ jobs:
 | 
				
			|||||||
          tags: ${{ steps.meta.outputs.tags }}
 | 
					          tags: ${{ steps.meta.outputs.tags }}
 | 
				
			||||||
          labels: ${{ steps.meta.outputs.labels }}
 | 
					          labels: ${{ steps.meta.outputs.labels }}
 | 
				
			||||||
          file: ./uffizzi/nginx/Dockerfile
 | 
					          file: ./uffizzi/nginx/Dockerfile
 | 
				
			||||||
 | 
					          build-args: |
 | 
				
			||||||
 | 
					            BASE_IMAGE=${{ needs.build-application.outputs.tags }}
 | 
				
			||||||
          cache-from: type=gha
 | 
					          cache-from: type=gha
 | 
				
			||||||
          cache-to: type=gha,mode=max
 | 
					          cache-to: type=gha,mode=max
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -12,6 +12,8 @@
 | 
				
			|||||||
      class="h-screen h-screen-ios overflow-y-auto md:pl-56 xl:pl-64 min-h-0"
 | 
					      class="h-screen h-screen-ios overflow-y-auto md:pl-56 xl:pl-64 min-h-0"
 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
      <div class="pt-16 pb-16">
 | 
					      <div class="pt-16 pb-16">
 | 
				
			||||||
 | 
					        <h1>Testing</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <router-view />
 | 
					        <router-view />
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </main>
 | 
					    </main>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="h-screen overflow-y-auto text-base">
 | 
					  <div class="h-screen overflow-y-auto text-base">
 | 
				
			||||||
 | 
					    <h1>Testing</h1>
 | 
				
			||||||
    <NotificationRoot />
 | 
					    <NotificationRoot />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="container mx-auto px-4">
 | 
					    <div class="container mx-auto px-4">
 | 
				
			||||||
 | 
				
			|||||||
@ -93,6 +93,9 @@
 | 
				
			|||||||
        >
 | 
					        >
 | 
				
			||||||
          {{ pageHeading }}
 | 
					          {{ pageHeading }}
 | 
				
			||||||
        </h1>
 | 
					        </h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <h1>Testing</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <p
 | 
					        <p
 | 
				
			||||||
          class="
 | 
					          class="
 | 
				
			||||||
            hidden
 | 
					            hidden
 | 
				
			||||||
 | 
				
			|||||||
@ -15,13 +15,6 @@
 | 
				
			|||||||
      bg-gradient-to-r
 | 
					      bg-gradient-to-r
 | 
				
			||||||
      from-primary-500
 | 
					      from-primary-500
 | 
				
			||||||
      to-primary-400
 | 
					      to-primary-400
 | 
				
			||||||
      dark:from-gray-700/70 dark:to-gray-800/70
 | 
					 | 
				
			||||||
      bg-primary-500
 | 
					 | 
				
			||||||
      dark:bg-transparent
 | 
					 | 
				
			||||||
      dark:backdrop-blur-xl
 | 
					 | 
				
			||||||
      dark:shadow-glass
 | 
					 | 
				
			||||||
      dark:border
 | 
					 | 
				
			||||||
      dark:border-white/10
 | 
					 | 
				
			||||||
    "
 | 
					    "
 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
    <router-link
 | 
					    <router-link
 | 
				
			||||||
@ -60,7 +53,6 @@
 | 
				
			|||||||
        cursor-pointer
 | 
					        cursor-pointer
 | 
				
			||||||
        md:hidden md:ml-0
 | 
					        md:hidden md:ml-0
 | 
				
			||||||
        hover:bg-gray-100
 | 
					        hover:bg-gray-100
 | 
				
			||||||
        dark:bg-gray-800 dark:border-gray-500 dark:border
 | 
					 | 
				
			||||||
      "
 | 
					      "
 | 
				
			||||||
      @click.prevent="onToggle"
 | 
					      @click.prevent="onToggle"
 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
 | 
				
			|||||||
@ -15,9 +15,7 @@
 | 
				
			|||||||
        leave-from="opacity-100"
 | 
					        leave-from="opacity-100"
 | 
				
			||||||
        leave-to="opacity-0"
 | 
					        leave-to="opacity-0"
 | 
				
			||||||
      >
 | 
					      >
 | 
				
			||||||
        <DialogOverlay
 | 
					        <DialogOverlay class="fixed inset-0 bg-gray-600 bg-opacity-75" />
 | 
				
			||||||
          class="fixed inset-0 bg-gray-600 bg-opacity-75 dark:bg-gray-900/90"
 | 
					 | 
				
			||||||
        />
 | 
					 | 
				
			||||||
      </TransitionChild>
 | 
					      </TransitionChild>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <TransitionChild
 | 
					      <TransitionChild
 | 
				
			||||||
@ -29,9 +27,7 @@
 | 
				
			|||||||
        leave-from="translate-x-0"
 | 
					        leave-from="translate-x-0"
 | 
				
			||||||
        leave-to="-translate-x-full"
 | 
					        leave-to="-translate-x-full"
 | 
				
			||||||
      >
 | 
					      >
 | 
				
			||||||
        <div
 | 
					        <div class="relative flex flex-col flex-1 w-full max-w-xs bg-white">
 | 
				
			||||||
          class="relative flex flex-col flex-1 w-full max-w-xs bg-white dark:bg-gray-800"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          <TransitionChild
 | 
					          <TransitionChild
 | 
				
			||||||
            as="template"
 | 
					            as="template"
 | 
				
			||||||
            enter="ease-in-out duration-300"
 | 
					            enter="ease-in-out duration-300"
 | 
				
			||||||
@ -54,7 +50,8 @@
 | 
				
			|||||||
                  focus:outline-none
 | 
					                  focus:outline-none
 | 
				
			||||||
                  focus:ring-2
 | 
					                  focus:ring-2
 | 
				
			||||||
                  focus:ring-inset
 | 
					                  focus:ring-inset
 | 
				
			||||||
                focus:ring-white"
 | 
					                  focus:ring-white
 | 
				
			||||||
 | 
					                "
 | 
				
			||||||
                @click="globalStore.setSidebarVisibility(false)"
 | 
					                @click="globalStore.setSidebarVisibility(false)"
 | 
				
			||||||
              >
 | 
					              >
 | 
				
			||||||
                <span class="sr-only">Close sidebar</span>
 | 
					                <span class="sr-only">Close sidebar</span>
 | 
				
			||||||
@ -85,8 +82,8 @@
 | 
				
			|||||||
                :to="item.link"
 | 
					                :to="item.link"
 | 
				
			||||||
                :class="[
 | 
					                :class="[
 | 
				
			||||||
                  hasActiveUrl(item.link)
 | 
					                  hasActiveUrl(item.link)
 | 
				
			||||||
                    ? 'text-primary-500 border-primary-500 bg-gray-100 dark:shadow-glass dark:backdrop-blur-xl dark:hover:bg-gray-700  dark:bg-gray-700/50 dark:text-primary-400 dark:font-medium'
 | 
					                    ? 'text-primary-500 border-primary-500 bg-gray-100 '
 | 
				
			||||||
                    : 'text-black dark:text-gray-300',
 | 
					                    : 'text-black',
 | 
				
			||||||
                  'cursor-pointer px-0 pl-4 py-3 border-transparent flex items-center border-l-4 border-solid text-sm not-italic font-medium',
 | 
					                  'cursor-pointer px-0 pl-4 py-3 border-transparent flex items-center border-l-4 border-solid text-sm not-italic font-medium',
 | 
				
			||||||
                ]"
 | 
					                ]"
 | 
				
			||||||
                @click="globalStore.setSidebarVisibility(false)"
 | 
					                @click="globalStore.setSidebarVisibility(false)"
 | 
				
			||||||
@ -103,10 +100,6 @@
 | 
				
			|||||||
                />
 | 
					                />
 | 
				
			||||||
                {{ $t(item.title) }}
 | 
					                {{ $t(item.title) }}
 | 
				
			||||||
              </router-link>
 | 
					              </router-link>
 | 
				
			||||||
              <LightDarkSwitch
 | 
					 | 
				
			||||||
                :show-label="false"
 | 
					 | 
				
			||||||
                class="absolute right-6 top-6 !w-auto"
 | 
					 | 
				
			||||||
              />
 | 
					 | 
				
			||||||
            </nav>
 | 
					            </nav>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
@ -123,13 +116,14 @@
 | 
				
			|||||||
      hidden
 | 
					      hidden
 | 
				
			||||||
      w-56
 | 
					      w-56
 | 
				
			||||||
      h-screen
 | 
					      h-screen
 | 
				
			||||||
 | 
					      pb-32
 | 
				
			||||||
 | 
					      overflow-y-auto
 | 
				
			||||||
      bg-white
 | 
					      bg-white
 | 
				
			||||||
      border-r border-gray-200 border-solid
 | 
					      border-r border-gray-200 border-solid
 | 
				
			||||||
      xl:w-64
 | 
					      xl:w-64
 | 
				
			||||||
      md:fixed md:flex md:flex-col md:inset-y-0
 | 
					      md:fixed md:flex md:flex-col md:inset-y-0
 | 
				
			||||||
      pt-16
 | 
					      pt-16
 | 
				
			||||||
    dark:border-gray-800
 | 
					    "
 | 
				
			||||||
    dark:bg-gray-800/80"
 | 
					 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
    <div
 | 
					    <div
 | 
				
			||||||
      v-for="menu in globalStore.menuGroups"
 | 
					      v-for="menu in globalStore.menuGroups"
 | 
				
			||||||
@ -142,8 +136,8 @@
 | 
				
			|||||||
        :to="item.link"
 | 
					        :to="item.link"
 | 
				
			||||||
        :class="[
 | 
					        :class="[
 | 
				
			||||||
          hasActiveUrl(item.link)
 | 
					          hasActiveUrl(item.link)
 | 
				
			||||||
            ? 'text-primary-500 border-primary-500 bg-gray-100 dark:border-primary-400 dark:shadow-glass dark:backdrop-blur-xl dark:hover:bg-gray-700 dark:bg-gray-700/50 dark:text-primary-400 dark:font-medium'
 | 
					            ? 'text-primary-500 border-primary-500 bg-gray-100 '
 | 
				
			||||||
            : 'text-black dark:hover:bg-transparent dark:hover:text-white dark:text-gray-300',
 | 
					            : 'text-black',
 | 
				
			||||||
          'cursor-pointer px-0 pl-6 hover:bg-gray-50 py-3 group flex items-center border-l-4 border-solid border-transparent text-sm not-italic font-medium',
 | 
					          'cursor-pointer px-0 pl-6 hover:bg-gray-50 py-3 group flex items-center border-l-4 border-solid border-transparent text-sm not-italic font-medium',
 | 
				
			||||||
        ]"
 | 
					        ]"
 | 
				
			||||||
      >
 | 
					      >
 | 
				
			||||||
@ -151,8 +145,8 @@
 | 
				
			|||||||
          :name="item.icon"
 | 
					          :name="item.icon"
 | 
				
			||||||
          :class="[
 | 
					          :class="[
 | 
				
			||||||
            hasActiveUrl(item.link)
 | 
					            hasActiveUrl(item.link)
 | 
				
			||||||
              ? 'text-primary-500 group-hover:text-primary-500 dark:text-primary-400 dark:group-hover:text-primary-500 '
 | 
					              ? 'text-primary-500 group-hover:text-primary-500 '
 | 
				
			||||||
              : 'text-gray-400 group-hover:text-black dark:text-gray-400 dark:group-hover:text-white',
 | 
					              : 'text-gray-400 group-hover:text-black',
 | 
				
			||||||
            'mr-4 shrink-0 h-5 w-5 ',
 | 
					            'mr-4 shrink-0 h-5 w-5 ',
 | 
				
			||||||
          ]"
 | 
					          ]"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
@ -160,9 +154,6 @@
 | 
				
			|||||||
        {{ $t(item.title) }}
 | 
					        {{ $t(item.title) }}
 | 
				
			||||||
      </router-link>
 | 
					      </router-link>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <LightDarkSwitch
 | 
					 | 
				
			||||||
      class="absolute bottom-0 py-4 border-t border-gray-200 dark:border-gray-700"
 | 
					 | 
				
			||||||
    />
 | 
					 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -178,7 +169,6 @@ import {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import { useRoute } from 'vue-router'
 | 
					import { useRoute } from 'vue-router'
 | 
				
			||||||
import { useGlobalStore } from '@/scripts/admin/stores/global'
 | 
					import { useGlobalStore } from '@/scripts/admin/stores/global'
 | 
				
			||||||
import LightDarkSwitch from '@/scripts/components/LightDarkSwitcher.vue'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const route = useRoute()
 | 
					const route = useRoute()
 | 
				
			||||||
const globalStore = useGlobalStore()
 | 
					const globalStore = useGlobalStore()
 | 
				
			||||||
 | 
				
			|||||||
@ -34,7 +34,6 @@ export const useGlobalStore = (useWindow = false) => {
 | 
				
			|||||||
      isAppLoaded: false,
 | 
					      isAppLoaded: false,
 | 
				
			||||||
      isSidebarOpen: false,
 | 
					      isSidebarOpen: false,
 | 
				
			||||||
      areCurrenciesLoading: false,
 | 
					      areCurrenciesLoading: false,
 | 
				
			||||||
      isDarkModeOn: false,
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      downloadReport: null,
 | 
					      downloadReport: null,
 | 
				
			||||||
    }),
 | 
					    }),
 | 
				
			||||||
 | 
				
			|||||||
@ -1,101 +0,0 @@
 | 
				
			|||||||
<!-- This example requires Tailwind CSS v2.0+ -->
 | 
					 | 
				
			||||||
<script lang="ts" setup>
 | 
					 | 
				
			||||||
import { Switch, SwitchGroup, SwitchLabel } from '@headlessui/vue'
 | 
					 | 
				
			||||||
import { useGlobalStore } from '@/scripts/admin/stores/global'
 | 
					 | 
				
			||||||
import { computed, ref } from 'vue'
 | 
					 | 
				
			||||||
defineProps({
 | 
					 | 
				
			||||||
  showLabel: {
 | 
					 | 
				
			||||||
    type: Boolean,
 | 
					 | 
				
			||||||
    default: true,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
  vertical: {
 | 
					 | 
				
			||||||
    type: Boolean,
 | 
					 | 
				
			||||||
    default: false,
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const globalStore = useGlobalStore()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const enabled = ref(
 | 
					 | 
				
			||||||
  localStorage.getItem('theme') === 'dark' ||
 | 
					 | 
				
			||||||
    document.documentElement.classList.contains('dark')
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
globalStore.isDarkModeOn = enabled
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function onChange(val) {
 | 
					 | 
				
			||||||
  if (val) {
 | 
					 | 
				
			||||||
    localStorage.theme = 'dark'
 | 
					 | 
				
			||||||
    document.documentElement.classList.add('dark')
 | 
					 | 
				
			||||||
    document.documentElement.style.setProperty('color-scheme', 'dark')
 | 
					 | 
				
			||||||
    globalStore.isDarkModeOn = true
 | 
					 | 
				
			||||||
  } else {
 | 
					 | 
				
			||||||
    localStorage.theme = 'light'
 | 
					 | 
				
			||||||
    document.documentElement.classList.remove('dark')
 | 
					 | 
				
			||||||
    document.documentElement.style.setProperty('color-scheme', 'light')
 | 
					 | 
				
			||||||
    globalStore.isDarkModeOn = false
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div class="w-full flex justify-center">
 | 
					 | 
				
			||||||
    <SwitchGroup
 | 
					 | 
				
			||||||
      as="div"
 | 
					 | 
				
			||||||
      class="flex items-center"
 | 
					 | 
				
			||||||
      :class="vertical ? 'flex-col justify-center' : 'flex-row'"
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <Switch
 | 
					 | 
				
			||||||
        v-model="enabled"
 | 
					 | 
				
			||||||
        class="relative inline-flex flex-shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 dark:ring-offset-gray-700"
 | 
					 | 
				
			||||||
        :class="[enabled ? 'bg-primary-600' : 'bg-gray-200']"
 | 
					 | 
				
			||||||
        @update:modelValue="onChange"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <span class="sr-only">Use setting</span>
 | 
					 | 
				
			||||||
        <span
 | 
					 | 
				
			||||||
          class="pointer-events-none relative inline-block h-5 w-5 rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200"
 | 
					 | 
				
			||||||
          :class="[enabled ? 'translate-x-5' : 'translate-x-0']"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          <span
 | 
					 | 
				
			||||||
            class="absolute inset-0 h-full w-full flex items-center justify-center transition-opacity"
 | 
					 | 
				
			||||||
            :class="[
 | 
					 | 
				
			||||||
              enabled
 | 
					 | 
				
			||||||
                ? 'opacity-0 ease-out duration-100'
 | 
					 | 
				
			||||||
                : 'opacity-100 ease-in duration-200',
 | 
					 | 
				
			||||||
            ]"
 | 
					 | 
				
			||||||
            aria-hidden="true"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <BaseIcon class="h-3 w-3 text-yellow-500" name="SunIcon" />
 | 
					 | 
				
			||||||
          </span>
 | 
					 | 
				
			||||||
          <span
 | 
					 | 
				
			||||||
            class="absolute inset-0 h-full w-full flex items-center justify-center transition-opacity"
 | 
					 | 
				
			||||||
            :class="[
 | 
					 | 
				
			||||||
              enabled
 | 
					 | 
				
			||||||
                ? 'opacity-100 ease-in duration-200'
 | 
					 | 
				
			||||||
                : 'opacity-0 ease-out duration-100',
 | 
					 | 
				
			||||||
            ]"
 | 
					 | 
				
			||||||
            aria-hidden="true"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            <BaseIcon class="h-3 w-3 text-primary-500" name="MoonIcon" />
 | 
					 | 
				
			||||||
          </span>
 | 
					 | 
				
			||||||
        </span>
 | 
					 | 
				
			||||||
      </Switch>
 | 
					 | 
				
			||||||
      <SwitchLabel
 | 
					 | 
				
			||||||
        v-if="showLabel"
 | 
					 | 
				
			||||||
        as="span"
 | 
					 | 
				
			||||||
        class="cursor-pointer"
 | 
					 | 
				
			||||||
        :class="vertical ? 'px-1 text-center mt-2' : 'ml-3'"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <span
 | 
					 | 
				
			||||||
          v-if="enabled"
 | 
					 | 
				
			||||||
          class="text-sm font-medium text-gray-500 dark:text-gray-400"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          Dark Mode
 | 
					 | 
				
			||||||
        </span>
 | 
					 | 
				
			||||||
        <span v-else class="text-sm font-medium text-gray-500">
 | 
					 | 
				
			||||||
          Light Mode
 | 
					 | 
				
			||||||
        </span>
 | 
					 | 
				
			||||||
      </SwitchLabel>
 | 
					 | 
				
			||||||
    </SwitchGroup>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
@ -11,10 +11,6 @@
 | 
				
			|||||||
      bg-gray-200
 | 
					      bg-gray-200
 | 
				
			||||||
      cursor-pointer
 | 
					      cursor-pointer
 | 
				
			||||||
      text-primary-400
 | 
					      text-primary-400
 | 
				
			||||||
      dark:bg-gray-600/70
 | 
					 | 
				
			||||||
      dark:backdrop-blur-xl
 | 
					 | 
				
			||||||
      dark:shadow-glass
 | 
					 | 
				
			||||||
      dark:hover:bg-gray-600/80
 | 
					 | 
				
			||||||
    "
 | 
					    "
 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
    <slot />
 | 
					    <slot />
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body
 | 
					<body
 | 
				
			||||||
    class="h-full overflow-hidden bg-gray-100 dark:bg-gray-900 dark:text-white font-base
 | 
					    class="h-full overflow-hidden bg-gray-100 font-base
 | 
				
			||||||
    @if(isset($current_theme)) theme-{{ $current_theme }} @else theme-{{get_app_setting('admin_portal_theme') ?? 'crater'}} @endif ">
 | 
					    @if(isset($current_theme)) theme-{{ $current_theme }} @else theme-{{get_app_setting('admin_portal_theme') ?? 'crater'}} @endif ">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- Module Scripts -->
 | 
					    <!-- Module Scripts -->
 | 
				
			||||||
@ -38,14 +38,6 @@
 | 
				
			|||||||
    @endforeach
 | 
					    @endforeach
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <script type="module">
 | 
					    <script type="module">
 | 
				
			||||||
        if (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
 | 
					 | 
				
			||||||
            document.documentElement.classList.add('dark')
 | 
					 | 
				
			||||||
            document.documentElement.style.setProperty('color-scheme', 'dark');
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            document.documentElement.classList.remove('dark')
 | 
					 | 
				
			||||||
            document.documentElement.style.setProperty('color-scheme', 'light')
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        @if(isset($customer_logo))
 | 
					        @if(isset($customer_logo))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        window.customer_logo = "/storage/{{$customer_logo}}"
 | 
					        window.customer_logo = "/storage/{{$customer_logo}}"
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,6 @@ module.exports = {
 | 
				
			|||||||
    './resources/scripts/**/*.js',
 | 
					    './resources/scripts/**/*.js',
 | 
				
			||||||
    './resources/scripts/**/*.vue',
 | 
					    './resources/scripts/**/*.vue',
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  darkMode: 'class',
 | 
					 | 
				
			||||||
  theme: {
 | 
					  theme: {
 | 
				
			||||||
    extend: {
 | 
					    extend: {
 | 
				
			||||||
      colors: {
 | 
					      colors: {
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,8 @@ RUN apt-get update && apt-get install -y \
 | 
				
			|||||||
    unzip \
 | 
					    unzip \
 | 
				
			||||||
    libzip-dev \
 | 
					    libzip-dev \
 | 
				
			||||||
    libmagickwand-dev \
 | 
					    libmagickwand-dev \
 | 
				
			||||||
    mariadb-client
 | 
					    mariadb-client \
 | 
				
			||||||
 | 
					    npm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Clear cache
 | 
					# Clear cache
 | 
				
			||||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
 | 
					RUN apt-get clean && rm -rf /var/lib/apt/lists/*
 | 
				
			||||||
@ -45,4 +46,19 @@ RUN chmod -R 775 composer.json composer.lock \
 | 
				
			|||||||
RUN chown -R $(whoami):$(whoami) /var/log/
 | 
					RUN chown -R $(whoami):$(whoami) /var/log/
 | 
				
			||||||
RUN chmod -R 775 /var/log
 | 
					RUN chmod -R 775 /var/log
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Cleanup manually generated build files
 | 
				
			||||||
 | 
					RUN rm -rf /var/www/public/build
 | 
				
			||||||
 | 
					RUN npm config set user 0
 | 
				
			||||||
 | 
					RUN npm config set unsafe-perm true
 | 
				
			||||||
 | 
					# Frontend bulding
 | 
				
			||||||
 | 
					RUN sed -i 's/DB_CONNECTION=mysql/DB_CONNECTION=sqlite/g' /var/www/.env
 | 
				
			||||||
 | 
					RUN sed -i 's/DB_DATABASE=crater/DB_DATABASE=\/tmp\/crater.sqlite/g' /var/www/.env
 | 
				
			||||||
 | 
					RUN touch /tmp/crater.sqlite
 | 
				
			||||||
 | 
					RUN composer install --no-interaction --prefer-dist
 | 
				
			||||||
 | 
					RUN npm i -f
 | 
				
			||||||
 | 
					RUN npm install --save-dev sass
 | 
				
			||||||
 | 
					RUN export NODE_OPTIONS="--max-old-space-size=4096" && /usr/bin/npx vite build --target=es2020
 | 
				
			||||||
 | 
					RUN sed -i 's/DB_CONNECTION=sqlite/DB_CONNECTION=mysql/g' /var/www/.env
 | 
				
			||||||
 | 
					RUN sed -i 's/DB_DATABASE=\/tmp\/crater.sqlite/DB_DATABASE=crater/g' /var/www/.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
USER crater-user
 | 
					USER crater-user
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,9 @@
 | 
				
			|||||||
 | 
					ARG BASE_IMAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FROM $BASE_IMAGE as build
 | 
				
			||||||
FROM nginx:1.17-alpine
 | 
					FROM nginx:1.17-alpine
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN rm /etc/nginx/conf.d/default.conf
 | 
					RUN rm /etc/nginx/conf.d/default.conf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COPY ./ /var/www
 | 
					COPY --from=build /var/www /var/www
 | 
				
			||||||
COPY ./uffizzi/nginx/nginx /etc/nginx/conf.d/
 | 
					COPY ./uffizzi/nginx/nginx /etc/nginx/conf.d/
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user