Browse Source

refactor: main page and modal changes

pull/9314/head
Pranav C 3 months ago
parent
commit
adfcfa4501
  1. 58
      packages/nc-gui/components/account/Setup.vue
  2. 39
      packages/nc-gui/components/account/setup/List.vue
  3. 1
      packages/nc-gui/lang/en.json

58
packages/nc-gui/components/account/Setup.vue

@ -15,11 +15,14 @@ const configs = computed(() => [
key: 'email', key: 'email',
description: 'Configure an email account to send system notifications to your organisation’s users.', description: 'Configure an email account to send system notifications to your organisation’s users.',
docsLink: '', docsLink: '',
onClick: () => { buttonClick: () => {
// listModalDlg.value = true // listModalDlg.value = true
// openedCategory.value = 'Email' // openedCategory.value = 'Email'
navigateTo(`/account/setup/email${emailConfigured.value ? `/${emailConfigured.value.title}` : ''}`) navigateTo(`/account/setup/email${emailConfigured.value ? `/${emailConfigured.value.title}` : ''}`)
}, },
itemClick: () =>{
navigateTo(`/account/setup/email`)
},
configured: emailConfigured.value, configured: emailConfigured.value,
}, },
{ {
@ -27,12 +30,15 @@ const configs = computed(() => [
key: 'storage', key: 'storage',
description: 'Configure a storage service to store your organisation’s data.', description: 'Configure a storage service to store your organisation’s data.',
docsLink: '', docsLink: '',
onClick: () => { buttonClick: () => {
// listModalDlg.value = true // listModalDlg.value = true
// openedCategory.value = 'Storage' // openedCategory.value = 'Storage'
navigateTo(`/account/setup/storage${storageConfigured.value ? `/${storageConfigured.value.title}` : ''}`) navigateTo(`/account/setup/storage${storageConfigured.value ? `/${storageConfigured.value.title}` : ''}`)
}, },
itemClick: () =>{
navigateTo(`/account/setup/storage`)
},
configured: storageConfigured.value, configured: storageConfigured.value,
}, },
{ {
@ -40,7 +46,7 @@ const configs = computed(() => [
key: 'switchToProd', key: 'switchToProd',
description: 'Configure a production-ready app database to port from the existing built-in application database.', description: 'Configure a production-ready app database to port from the existing built-in application database.',
docsLink: '', docsLink: '',
onClick: () => { buttonClick: () => {
// TODO: Implement the logic to switch to production // TODO: Implement the logic to switch to production
}, },
isPending: !(appInfo.value as any)?.prodReady, isPending: !(appInfo.value as any)?.prodReady,
@ -71,52 +77,38 @@ onMounted(async () => {
class="nc-content-max-w flex-1 max-h-[calc(100vh_-_100px)] overflow-y-auto nc-scrollbar-thin flex flex-col items-center gap-6 p-6" class="nc-content-max-w flex-1 max-h-[calc(100vh_-_100px)] overflow-y-auto nc-scrollbar-thin flex flex-col items-center gap-6 p-6"
> >
<div class="flex flex-col gap-6 w-150"> <div class="flex flex-col gap-6 w-150">
<div v-for="config of configs" class="flex flex-col border-1 rounded-2xl border-gray-200 p-6 gap-y-2"> <div v-for="config of configs" class="flex flex-col border-1 rounded-2xl border-gray-200 p-6 gap-2" :class="{
<div class="flex flex justify-between" data-rec="true"> 'cursor-pointer': config.itemClick
<span class="font-bold text-base"> {{ config.title }}</span> }" @click="config.itemClick">
<div class="flex gap-3 items-center" data-rec="true">
<NcTooltip v-if="!config.configured || config.isPending"> <NcTooltip v-if="!config.configured || config.isPending">
<template #title> <template #title>
<span> <span>
{{ $t('activity.pending') }} {{ $t('activity.pending') }}
</span> </span>
</template> </template>
<GeneralIcon icon="warning" class="text-orange-500" /> <GeneralIcon icon="warning" class="text-orange-500 -mt-1 w-6 h-6" />
</NcTooltip> </NcTooltip>
<GeneralIcon v-else icon="circleCheckSolid" class="text-success w-6 h-6 bg-white-500" />
<span class="font-bold text-base"> {{ config.title }}</span>
</div> </div>
<div class="text-gray-600 text-sm">{{ config.description }}</div> <div class="text-gray-600 text-sm">{{ config.description }}</div>
<div v-if="config.configured" class="flex justify-between mt-4 cursor-pointer" @click="config.onClick"> <div class="flex justify-between mt-4">
<div class="flex gap-4 items-center border-1 w-full p-4 rounded-2xl">
<GeneralIcon icon="circleCheckSolid" class="text-success w-6 h-6 bg-white-500" />
<img
v-if="config.configured.title !== 'SMTP'"
class="max-h-6 max-w-6"
:alt="config.configured.title"
:style="{
backgroundColor: config.configured.title === 'SES' ? '#242f3e' : '',
}"
:src="config.configured.logo"
/>
<GeneralIcon v-else icon="mail" />
<span class="font-weight-bold text-base">{{ config.configured.title }}</span>
<div class="flex-grow" />
<NcButton type="text">
<div class="flex gap-2 items-center">
<GeneralIcon icon="ncEdit3" />
Edit
</div>
</NcButton>
</div>
</div>
<div v-else class="flex justify-between mt-4">
<NcButton size="small" type="text"> <NcButton size="small" type="text">
<div class="flex gap-2 items-center"> <div class="flex gap-2 items-center">
Go to docs Go to docs
<GeneralIcon icon="ncExternalLink" /> <GeneralIcon icon="ncExternalLink" />
</div> </div>
</NcButton> </NcButton>
<NcButton size="small" @click="config.onClick">Configure</NcButton> <NcButton v-if="config.configured" size="small" type="text" @click.stop="config.buttonClick">
<div class="flex gap-2 items-center">
<GeneralIcon icon="ncEdit3" />
Edit
</div>
</NcButton>
<NcButton v-else size="small" @click.stop="config.buttonClick">Configure</NcButton>
</div> </div>
</div> </div>
</div> </div>

39
packages/nc-gui/components/account/setup/List.vue

@ -73,9 +73,20 @@ const closeResetModal = () => {
v-if="app.active" v-if="app.active"
icon="delete" icon="delete"
class="text-error min-w-6 h-6 bg-white-500 !hidden !group-hover:!inline cursor-pointer" class="text-error min-w-6 h-6 bg-white-500 !hidden !group-hover:!inline cursor-pointer"
@click.stop="showResetPluginModal(app)"
/> />
<GeneralIcon v-if="app.active" icon="circleCheckSolid" class="text-primary min-w-6 h-6 bg-white-500" /> <GeneralIcon v-if="app.active" icon="circleCheckSolid" class="text-primary min-w-5 h-5 bg-white-500" />
<NcDropdown :trigger="['click']" overlay-class-name="!rounded-md" @click.stop>
<GeneralIcon v-if="app.active" icon="threeDotVertical" class="min-w-5 h-5 bg-white-500" />
<template #overlay>
<NcMenu class="min-w-20">
<NcMenuItem data-test-id="nc-config-reset" @click.stop="showResetPluginModal(app)">
<span> {{ $t('general.reset') }} </span>
</NcMenuItem>
</NcMenu>
</template>
</NcDropdown>
</div> </div>
</div> </div>
</div> </div>
@ -84,22 +95,28 @@ const closeResetModal = () => {
<a-modal <a-modal
v-model:visible="showPluginUninstallModal" v-model:visible="showPluginUninstallModal"
:closable="false" :closable="false"
width="24rem" width="448px"
centered centered
:footer="null" :footer="null"
wrap-class-name="nc-modal-plugin-uninstall" wrap-class-name="nc-modal-plugin-uninstall"
> >
<div class="flex flex-col h-full"> <div class="flex flex-col h-full">
<div class="flex flex-row justify-center mt-2 text-center w-full text-base"> <div v-if="showResetActiveAppMsg" class="text-base font-weight-bold">
Switch to {{ switchingTo && switchingTo.title }}
</div>
<div v-else class="text-base font-weight-bold">Reset {{ activePlugin && activePlugin.title }} Configuration</div>
<div class="flex flex-row mt-2 w-full">
<template v-if="showResetActiveAppMsg"> <template v-if="showResetActiveAppMsg">
Switching to {{ switchingTo && switchingTo.title }} will reset your {{ activePlugin && activePlugin.title }} Switching to {{ switchingTo && switchingTo.title }} will reset your {{ activePlugin && activePlugin.title }} settings.
settings. Continue? Continue?
</template> </template>
<template v-else>{{ `Click on confirm to reset ${activePlugin && activePlugin.title}` }}</template> <template v-else>Resetting will erase your current configuration. </template>
</div> </div>
<div class="flex mt-6 justify-center space-x-2"> <div class="flex mt-6 justify-end space-x-2">
<NcButton type="secondary" @click="closeResetModal"> {{ $t('general.cancel') }}</NcButton> <NcButton size="small" type="secondary" @click="closeResetModal"> {{ $t('general.cancel') }}</NcButton>
<NcButton type="danger" @click="resetPlugin"> {{ $t('general.confirm') }}</NcButton> <NcButton size="small" type="danger" @click="resetPlugin">
{{ showResetActiveAppMsg ? `${$t('general.reset')} & ${$t('general.switch')}` : $t('general.reset') }}
</NcButton>
</div> </div>
</div> </div>
</a-modal> </a-modal>
@ -111,7 +128,7 @@ const closeResetModal = () => {
@apply p-4 w-950px gap-5 mx-auto my-2 grid grid-cols-3; @apply p-4 w-950px gap-5 mx-auto my-2 grid grid-cols-3;
.item { .item {
@apply text-base w-296px max-w-296px flex gap-6 border-1 border-gray-200 py-3 px-6 rounded-xl items-center cursor-pointer hover:(shadow bg-gray-50); @apply text-base w-296px max-w-296px flex gap-3 border-1 border-gray-200 py-3 px-6 rounded-xl items-center cursor-pointer hover:(shadow bg-gray-50);
.icon { .icon {
@apply max-w-32px max-h-32px; @apply max-w-32px max-h-32px;

1
packages/nc-gui/lang/en.json

@ -93,6 +93,7 @@
"none": "None" "none": "None"
}, },
"general": { "general": {
"switch": "Switch",
"on": "On", "on": "On",
"onMultiple": "On Multiple", "onMultiple": "On Multiple",
"manual": "Manual", "manual": "Manual",

Loading…
Cancel
Save