mirror of
https://github.com/nocodb/nocodb.git
synced 2026-02-02 02:26:57 +00:00
chore: sync OSS
This commit is contained in:
@@ -20,7 +20,9 @@ const emit = defineEmits(['update:modelValue', 'back'])
|
||||
|
||||
const { $api } = useNuxtApp()
|
||||
|
||||
const { $poller } = useNuxtApp()
|
||||
const baseURL = $api.instance.defaults.baseURL
|
||||
|
||||
const { $state, $poller } = useNuxtApp()
|
||||
|
||||
const workspace = useWorkspace()
|
||||
|
||||
@@ -48,6 +50,8 @@ const goBack = ref(false)
|
||||
|
||||
const listeningForUpdates = ref(false)
|
||||
|
||||
const hasWarning = ref(false)
|
||||
|
||||
const syncSource = ref({
|
||||
id: '',
|
||||
type: 'Airtable',
|
||||
@@ -80,6 +84,10 @@ const customSourceId = computed(() => {
|
||||
const onLog = (data: { message: string }) => {
|
||||
progressRef.value?.pushProgress(data.message, 'progress')
|
||||
lastProgress.value = { msg: data.message, status: 'progress' }
|
||||
|
||||
if (data.message.startsWith('WARNING: ')) {
|
||||
hasWarning.value = true
|
||||
}
|
||||
}
|
||||
|
||||
const onStatus = async (status: JobStatus, data?: any) => {
|
||||
@@ -480,9 +488,12 @@ const collapseKey = ref('')
|
||||
:description="$t('msg.error.anErrorOccuredWhileAirtableBaseImport')"
|
||||
/>
|
||||
</template>
|
||||
<div v-else class="flex items-center gap-3">
|
||||
<GeneralIcon icon="checkFill" class="text-white w-4 h-4" />
|
||||
<span> {{ $t('msg.airtableImportSuccess') }} </span>
|
||||
<div v-else class="flex flex-col gap-3">
|
||||
<div class="flex items-center gap-3">
|
||||
<GeneralIcon icon="checkFill" class="text-white w-4 h-4" />
|
||||
<span> {{ $t('msg.airtableImportSuccess') }} </span>
|
||||
</div>
|
||||
<div v-if="hasWarning" class="text-yellow-500">{{ $t('msg.airtableImportWarning') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -14,9 +14,12 @@ const scrollToBottom = () => {
|
||||
container.scrollTop = container.scrollHeight
|
||||
}
|
||||
|
||||
const pushProgress = (message: string, status: JobStatus | 'progress') => {
|
||||
const pushProgress = (message: string, status: JobStatus | 'progress' | 'warning') => {
|
||||
if (!message?.trim()) return
|
||||
progress.value.push({ msg: message, status })
|
||||
progress.value.push({
|
||||
msg: message,
|
||||
status: status === JobStatus.FAILED ? JobStatus.FAILED : message.startsWith('WARNING: ') ? 'warning' : status,
|
||||
})
|
||||
|
||||
if (autoScroll.value) {
|
||||
nextTick(scrollToBottom)
|
||||
@@ -88,7 +91,11 @@ onMounted(() => {
|
||||
|
||||
<span class="text-red-500 ml-2">{{ msg }}</span>
|
||||
</div>
|
||||
<div v-else-if="status === 'warning'" class="flex items-center">
|
||||
<component :is="iconMap.warning" class="text-yellow-500" />
|
||||
|
||||
<span class="text-yellow-500 ml-2">{{ msg }}</span>
|
||||
</div>
|
||||
<div v-else class="flex items-center">
|
||||
<MdiCurrencyUsd class="text-green-500" />
|
||||
|
||||
|
||||
@@ -2251,6 +2251,7 @@
|
||||
"urlFilterError": "Invalid URL filter. Ignored as it could not be applied.",
|
||||
"dropYourDocHere": "Drop your document here",
|
||||
"airtableImportSuccess": "Successfully imported from Airtable Base.",
|
||||
"airtableImportWarning": "Note: Import completed with warnings. Please review the details for more information.",
|
||||
"nocoDBImportSuccess": "Successfully imported from NocoDB Base.",
|
||||
"deleteAccountPermanently": "Delete your account permanently",
|
||||
"learnMore": "Learn more",
|
||||
@@ -2478,7 +2479,7 @@
|
||||
"shareBasePrivate": "Generate publicly shareable readonly base",
|
||||
"shareBasePublic": "Anyone on the internet with this link can view",
|
||||
"noSandboxesFound": "No apps found in the marketplace",
|
||||
"userInviteNoSMTP": "Looks like you have not configured mailer yet! Please copy above invite link and send it to",
|
||||
"userInviteNoSMTP": "Looks like you have not configured mailer yet! Please copy above invite link and send it to",
|
||||
"dragDropHide": "Drag and drop fields here to hide",
|
||||
"formInput": "Enter form input label",
|
||||
"formHelpText": "Add some help text",
|
||||
|
||||
@@ -312,6 +312,7 @@ export const useBase = defineStore('baseStore', () => {
|
||||
sources,
|
||||
tables,
|
||||
baseId,
|
||||
loadRoles,
|
||||
loadProject,
|
||||
updateProject,
|
||||
loadTables,
|
||||
|
||||
@@ -232,16 +232,16 @@ export class ExpandedFormPage extends BasePage {
|
||||
await this.btn_moreActions.click();
|
||||
}
|
||||
|
||||
if (!isEE()) {
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-reload')).toBeVisible();
|
||||
} else {
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-reload')).toHaveCount(0);
|
||||
}
|
||||
|
||||
if (role === 'owner' || role === 'editor' || role === 'creator') {
|
||||
if (!isEE()) {
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-reload')).toBeVisible();
|
||||
} else {
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-reload')).toHaveCount(0);
|
||||
}
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-duplicate')).toBeVisible();
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-delete')).toBeVisible();
|
||||
} else {
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-reload')).toHaveCount(0);
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-duplicate')).toHaveCount(0);
|
||||
await expect(this.rootPage.getByTestId('nc-expanded-form-delete')).toHaveCount(0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user