Compare commits

..

3 Commits

39 changed files with 219 additions and 265 deletions

View File

@ -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

View File

@ -50,11 +50,21 @@
</BaseInputGroup> </BaseInputGroup>
</template> </template>
</ValidateEach> </ValidateEach>
<BaseModalFooter> <div
slot="footer"
class="
z-0
flex
justify-end
mt-4
pt-4
border-t border-gray-200 border-solid border-modal-bg
"
>
<BaseButton :loading="isSaving" variant="primary" type="submit"> <BaseButton :loading="isSaving" variant="primary" type="submit">
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseCard> </BaseCard>
</template> </template>

View File

@ -57,7 +57,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -82,7 +84,7 @@
</template> </template>
{{ $t('general.create') }} {{ $t('general.create') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -47,7 +47,15 @@
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-gray-200 border-solid border-modal-bg
"
>
<BaseButton <BaseButton
type="button" type="button"
variant="primary-outline" variant="primary-outline"
@ -72,7 +80,7 @@
</template> </template>
{{ categoryStore.isEdit ? $t('general.update') : $t('general.save') }} {{ categoryStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -116,7 +116,7 @@
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div class="z-0 flex justify-end p-4 bg-gray-50 border-modal-bg">
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -141,7 +141,7 @@
</template> </template>
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -425,7 +425,9 @@
</BaseTabGroup> </BaseTabGroup>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
type="button" type="button"
@ -445,7 +447,7 @@
</template> </template>
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -38,7 +38,7 @@
</BaseInputGroup> </BaseInputGroup>
</div> </div>
<BaseModalFooter> <div class="z-0 flex justify-end p-4 bg-gray-50 border-modal-bg">
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -63,7 +63,7 @@
</template> </template>
{{ $t('general.delete') }} {{ $t('general.delete') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -150,7 +150,9 @@
@Remove="removeUsedSelectedCurrencies" @Remove="removeUsedSelectedCurrencies"
/> />
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -177,7 +179,7 @@
exchangeRateStore.isEdit ? $t('general.update') : $t('general.save') exchangeRateStore.isEdit ? $t('general.update') : $t('general.save')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -20,7 +20,15 @@
@submit="createNewDisk" @submit="createNewDisk"
> >
<template #default="slotProps"> <template #default="slotProps">
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border-gray-light
"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -44,7 +52,7 @@
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</template> </template>
</component> </component>
</div> </div>

View File

@ -89,7 +89,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -109,7 +111,7 @@
</template> </template>
{{ itemStore.isEdit ? $t('general.update') : $t('general.save') }} {{ itemStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</div> </div>
</BaseModal> </BaseModal>

View File

@ -31,7 +31,15 @@
</BaseInputGroup> </BaseInputGroup>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-gray-200 border-solid border-modal-bg
"
>
<BaseButton <BaseButton
type="button" type="button"
variant="primary-outline" variant="primary-outline"
@ -58,7 +66,7 @@
itemStore.isItemUnitEdit ? $t('general.update') : $t('general.save') itemStore.isItemUnitEdit ? $t('general.update') : $t('general.save')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -62,7 +62,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
variant="primary-outline" variant="primary-outline"
type="button" type="button"
@ -82,7 +84,7 @@
</template> </template>
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -63,7 +63,16 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
px-4
py-4
border-t border-solid border-gray-light
"
>
<BaseButton <BaseButton
class="mr-2" class="mr-2"
variant="primary-outline" variant="primary-outline"
@ -84,7 +93,7 @@
</template> </template>
{{ noteStore.isEdit ? $t('general.update') : $t('general.save') }} {{ noteStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -29,7 +29,9 @@
</BaseInputGroup> </BaseInputGroup>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
variant="primary-outline" variant="primary-outline"
class="mr-3" class="mr-3"
@ -54,7 +56,7 @@
: $t('general.save') : $t('general.save')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -72,7 +72,7 @@
</div> </div>
</div> </div>
<div class="border-t border-gray-200 dark:border-gray-600 py-3"> <div class="border-t border-gray-200 py-3">
<div <div
class=" class="
grid grid-cols-1 grid grid-cols-1
@ -89,7 +89,7 @@
:key="gIndex" :key="gIndex"
class="flex flex-col space-y-1" class="flex flex-col space-y-1"
> >
<p class="text-sm text-gray-500 dark:text-gray-200 border-b dark:border-gray-600 pb-1 mb-2"> <p class="text-sm text-gray-500 border-b border-gray-200 pb-1 mb-2">
{{ gIndex }} {{ gIndex }}
</p> </p>
<div <div
@ -116,7 +116,15 @@
</span> </span>
</div> </div>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border--200 border-modal-bg
"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -136,7 +144,7 @@
</template> </template>
{{ !roleStore.isEdit ? $t('general.save') : $t('general.update') }} {{ !roleStore.isEdit ? $t('general.save') : $t('general.update') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -70,7 +70,7 @@
</div> </div>
</div> </div>
<BaseModalFooter> <div class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid">
<BaseButton class="mr-3" variant="primary-outline" @click="closeModal"> <BaseButton class="mr-3" variant="primary-outline" @click="closeModal">
{{ $t('general.cancel') }} {{ $t('general.cancel') }}
</BaseButton> </BaseButton>
@ -80,7 +80,7 @@
</template> </template>
{{ $t('general.choose') }} {{ $t('general.choose') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -62,7 +62,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -83,7 +85,7 @@
<BaseIcon v-if="!isLoading" name="PhotographIcon" class="h-5 mr-2" /> <BaseIcon v-if="!isLoading" name="PhotographIcon" class="h-5 mr-2" />
{{ $t('general.preview') }} {{ $t('general.preview') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
<div v-else> <div v-else>
<div class="my-6 mx-4 border border-gray-200 relative"> <div class="my-6 mx-4 border border-gray-200 relative">
@ -104,7 +106,9 @@
></iframe> ></iframe>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -123,7 +127,7 @@
<BaseIcon v-if="!isLoading" name="PaperAirplaneIcon" class="mr-2" /> <BaseIcon v-if="!isLoading" name="PaperAirplaneIcon" class="mr-2" />
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</div> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -65,7 +65,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -91,7 +93,7 @@
</template> </template>
{{ $t('general.preview') }} {{ $t('general.preview') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
<div v-else> <div v-else>
<div class="my-6 mx-4 border border-gray-200 relative"> <div class="my-6 mx-4 border border-gray-200 relative">
@ -112,7 +114,9 @@
style="min-height: 500px" style="min-height: 500px"
></iframe> ></iframe>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -136,7 +140,7 @@
/> />
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</div> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -65,7 +65,9 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -91,7 +93,7 @@
</template> </template>
{{ $t('general.preview') }} {{ $t('general.preview') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
<div v-else> <div v-else>
<div class="my-6 mx-4 border border-gray-200 relative"> <div class="my-6 mx-4 border border-gray-200 relative">
@ -112,7 +114,9 @@
style="min-height: 500px" style="min-height: 500px"
></iframe> ></iframe>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
variant="primary-outline" variant="primary-outline"
@ -136,7 +140,7 @@
/> />
{{ $t('general.send') }} {{ $t('general.send') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</div> </div>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -90,7 +90,15 @@
</BaseInputGroup> </BaseInputGroup>
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border--200 border-modal-bg
"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
variant="primary-outline" variant="primary-outline"
@ -114,7 +122,7 @@
</template> </template>
{{ taxTypeStore.isEdit ? $t('general.update') : $t('general.save') }} {{ taxTypeStore.isEdit ? $t('general.update') : $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -87,7 +87,9 @@
</BaseInputGrid> </BaseInputGrid>
</div> </div>
<BaseModalFooter> <div
class="z-0 flex justify-end p-4 border-t border-gray-200 border-solid"
>
<BaseButton <BaseButton
class="mr-3 text-sm" class="mr-3 text-sm"
type="button" type="button"
@ -107,7 +109,7 @@
</template> </template>
{{ $t('general.save') }} {{ $t('general.save') }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -172,7 +172,15 @@
</div> </div>
</div> </div>
<BaseModalFooter> <div
class="
z-0
flex
justify-end
p-4
border-t border-solid border-gray-light border-modal-bg
"
>
<BaseButton <BaseButton
class="mr-3" class="mr-3"
type="button" type="button"
@ -199,7 +207,7 @@
!customFieldStore.isEdit ? $t('general.save') : $t('general.update') !customFieldStore.isEdit ? $t('general.save') : $t('general.update')
}} }}
</BaseButton> </BaseButton>
</BaseModalFooter> </div>
</form> </form>
</BaseModal> </BaseModal>
</template> </template>

View File

@ -153,7 +153,7 @@
<BaseSwitch v-model="set_as_default" class="flex" /> <BaseSwitch v-model="set_as_default" class="flex" />
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -132,7 +132,7 @@
<BaseSwitch v-model="set_as_default" class="flex" /> <BaseSwitch v-model="set_as_default" class="flex" />
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -63,7 +63,7 @@
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -134,7 +134,7 @@
<BaseSwitch v-model="set_as_default" class="flex" /> <BaseSwitch v-model="set_as_default" class="flex" />
</div> </div>
<div class="ml-4 right"> <div class="ml-4 right">
<p class="p-0 mb-1 text-base leading-snug text-black dark:text-white box-title"> <p class="p-0 mb-1 text-base leading-snug text-black box-title">
{{ $t('settings.disk.is_default') }} {{ $t('settings.disk.is_default') }}
</p> </p>
</div> </div>

View File

@ -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>

View File

@ -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">

View File

@ -93,6 +93,9 @@
> >
{{ pageHeading }} {{ pageHeading }}
</h1> </h1>
<h1>Testing</h1>
<p <p
class=" class="
hidden hidden

View File

@ -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"
> >

View File

@ -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"
@ -44,17 +40,18 @@
<div class="absolute top-0 right-0 pt-2 -mr-12"> <div class="absolute top-0 right-0 pt-2 -mr-12">
<button <button
class=" class="
flex flex
items-center items-center
justify-center justify-center
w-10 w-10
h-10 h-10
ml-1 ml-1
rounded-full rounded-full
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>
@ -120,16 +113,17 @@
<!-- DESKTOP MENU --> <!-- DESKTOP MENU -->
<div <div
class=" class="
hidden hidden
w-56 w-56
h-screen h-screen
bg-white pb-32
border-r border-gray-200 border-solid overflow-y-auto
xl:w-64 bg-white
md:fixed md:flex md:flex-col md:inset-y-0 border-r border-gray-200 border-solid
pt-16 xl:w-64
dark:border-gray-800 md:fixed md:flex md:flex-col md:inset-y-0
dark:bg-gray-800/80" pt-16
"
> >
<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()

View File

@ -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,
}), }),
@ -71,8 +70,8 @@ export const useGlobalStore = (useWindow = false) => {
moduleStore.apiToken = response.data.global_settings.api_token moduleStore.apiToken = response.data.global_settings.api_token
moduleStore.enableModules = response.data.modules moduleStore.enableModules = response.data.modules
// company store // company store
companyStore.companies = response.data.companies companyStore.companies = response.data.companies
companyStore.selectedCompany = response.data.current_company companyStore.selectedCompany = response.data.current_company
companyStore.setSelectedCompany(response.data.current_company) companyStore.setSelectedCompany(response.data.current_company)
companyStore.selectedCompanySettings = companyStore.selectedCompanySettings =

View File

@ -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>

View File

@ -29,21 +29,8 @@
leave-to="opacity-0" leave-to="opacity-0"
> >
<DialogOverlay <DialogOverlay
class=" class="fixed inset-0 transition-opacity bg-gray-700 bg-opacity-25"
fixed />
inset-0
transition-opacity
bg-gray-700
bg-opacity-25
dark:backdrop-blur-sm
dark:bg-gray-900/80
"
>
<BaseDarkHighlight
class="!bg-highlight/[.17] !top-1/2 -translate-y-1/2 mt-5 h-96"
:class="modalSize"
/>
</DialogOverlay>
</TransitionChild> </TransitionChild>
<!-- This element is to trick the browser into centering the modal contents. --> <!-- This element is to trick the browser into centering the modal contents. -->
@ -74,11 +61,7 @@
my-4 my-4
${modalSize} ${modalSize}
sm:w-full sm:w-full
dark:shadow-glass border-t-8 border-solid rounded shadow-xl border-primary-500`"
dark:border
dark:border-white/10
dark:bg-gray-800/90
border-t-8 border-solid rounded shadow-xl border-primary-500`"
> >
<div <div
v-if="hasHeaderSlot" v-if="hasHeaderSlot"
@ -91,8 +74,6 @@
text-lg text-lg
font-medium font-medium
text-black text-black
dark:text-white
dark:border-gray-600
border-b border-gray-200 border-solid border-b border-gray-200 border-solid
" "
> >

View File

@ -1,14 +0,0 @@
<template>
<div
class="
z-0
flex
justify-end
p-4
border-t border-gray-200 border-solid
dark:border-gray-600
"
>
<slot />
</div>
</template>

View File

@ -17,7 +17,7 @@
<meta name="csrf-token" content="{{ csrf_token() }}"> <meta name="csrf-token" content="{{ csrf_token() }}">
<!-- Module Styles --> <!-- Module Styles -->
@foreach (\Crater\Services\Module\ModuleFacade::allStyles() as $name => $path) @foreach(\Crater\Services\Module\ModuleFacade::allStyles() as $name => $path)
<link rel="stylesheet" href="/modules/styles/{{ $name }}"> <link rel="stylesheet" href="/modules/styles/{{ $name }}">
@endforeach @endforeach
@ -25,8 +25,8 @@
</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 -->
@foreach (\Crater\Services\Module\ModuleFacade::allScripts() as $name => $path) @foreach (\Crater\Services\Module\ModuleFacade::allScripts() as $name => $path)
@ -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}}"
@ -65,12 +57,12 @@
window.login_page_description = "{{$login_page_description}}" window.login_page_description = "{{$login_page_description}}"
@endif @endif
@if(isset($copyright_text)) @if(isset($copyright_text))
window.copyright_text = "{{$copyright_text}}" window.copyright_text = "{{$copyright_text}}"
@endif @endif
window.Crater.start() window.Crater.start()
</script> </script>

View File

@ -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: {

View File

@ -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

View File

@ -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/