Files
crater/resources/scripts/admin/views/installation/Step2PermissionCheck.vue
Payal Dholakiya 18dc88682c add dark mode in wizard steps (#1206)
* add dark mode in wizard steps

* step navigation dark mode issue fixed
2023-03-30 18:43:37 +05:30

119 lines
3.2 KiB
Vue

<template>
<BaseWizardStep
:title="$t('wizard.permissions.permissions')"
:description="$t('wizard.permissions.permission_desc')"
>
<!-- Content Placeholders -->
<BaseContentPlaceholders v-if="isFetchingInitialData">
<div
v-for="(permission, index) in 3"
:key="index"
class="grid grid-flow-row grid-cols-3 border border-gray-200 lg:gap-24 sm:gap-4 dark:border-gray-600"
>
<BaseContentPlaceholdersText :lines="1" class="col-span-4 p-3" />
</div>
<BaseContentPlaceholdersBox
:rounded="true"
class="mt-10"
style="width: 96px; height: 42px"
/>
</BaseContentPlaceholders>
<!-- End of Content Placeholder -->
<div v-else class="relative">
<div
v-for="(permission, index) in permissions"
:key="index"
class="border border-gray-200 dark:border-gray-600"
>
<div class="grid grid-flow-row grid-cols-3 lg:gap-24 sm:gap-4">
<div class="col-span-2 p-3">
{{ permission.folder }}
</div>
<div class="p-3 text-right">
<span
v-if="permission.isSet"
class="inline-block w-4 h-4 ml-3 mr-2 bg-green-500 rounded-full"
/>
<span
v-else
class="inline-block w-4 h-4 ml-3 mr-2 bg-red-500 rounded-full"
/>
<span>{{ permission.permission }}</span>
</div>
</div>
</div>
<BaseButton
v-show="!isFetchingInitialData"
class="mt-10"
:loading="isSaving"
:disabled="isSaving"
@click="next"
>
<template #left="slotProps">
<BaseIcon name="ArrowRightIcon" :class="slotProps.class" />
</template>
{{ $t('wizard.continue') }}
</BaseButton>
</div>
</BaseWizardStep>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { useInstallationStore } from '@/scripts/admin/stores/installation'
import { useDialogStore } from '@/scripts/stores/dialog'
import { useI18n } from 'vue-i18n'
const emit = defineEmits(['next'])
let isFetchingInitialData = ref(false)
let isSaving = ref(false)
let permissions = ref([])
const { tm, t } = useI18n()
const installationStore = useInstallationStore()
const dialogStore = useDialogStore()
onMounted(() => {
getPermissions()
})
async function getPermissions() {
isFetchingInitialData.value = true
const res = await installationStore.fetchInstallationPermissions()
permissions.value = res.data.permissions.permissions
if (res.data && res.data.permissions.errors) {
setTimeout(() => {
dialogStore
.openDialog({
title: tm('wizard.permissions.permission_confirm_title'),
message: t('wizard.permissions.permission_confirm_desc'),
yesLabel: 'OK',
noLabel: 'Cancel',
variant: 'danger',
hideNoButton: false,
size: 'lg',
})
.then((res) => {
if (res.data) {
isFetchingInitialData.value = false
}
})
}, 500)
}
isFetchingInitialData.value = false
}
function next() {
isSaving.value = true
emit('next')
isSaving.value = false
}
</script>