Browse Source

fix(nc-gui): Cleanup

pull/4923/head
Muhammed Mustafa 1 year ago
parent
commit
69d75f74e8
  1. 2
      packages/nc-gui/components/tabs/auth/UserManagement.vue
  2. 36
      packages/nc-gui/components/tabs/auth/user-management/FeedbackForm.vue
  3. 5
      packages/nc-gui/composables/useGlobal/state.ts
  4. 8
      packages/nc-gui/composables/useGlobal/types.ts
  5. 41
      packages/nc-gui/plugins/feedbackForm.ts
  6. 8
      packages/nocodb/src/lib/meta/api/utilApis.ts

2
packages/nc-gui/components/tabs/auth/UserManagement.vue

@ -360,8 +360,6 @@ const isSuperAdmin = (user: { main_roles?: string }) => {
show-less-items
@change="loadUsers"
/>
<LazyTabsAuthUserManagementFeedbackForm />
</div>
</div>
</template>

36
packages/nc-gui/components/tabs/auth/user-management/FeedbackForm.vue

@ -1,36 +0,0 @@
<script setup lang="ts">
import { ref, useGlobal } from '#imports'
const { feedbackForm } = useGlobal()
const showForm = ref(false)
// todo: why this timeout?
setTimeout(() => (showForm.value = true), 60000)
</script>
<template>
<div v-if="showForm && feedbackForm && !feedbackForm.isHidden" class="nc-feedback-form-wrapper mt-6">
<MaterialSymbolsCloseRounded class="nc-close-icon" @click="feedbackForm.isHidden = true" />
<iframe :src="feedbackForm.url" width="100%" height="500" frameborder="0" marginheight="0" marginwidth="0">Loading </iframe>
</div>
<div v-else />
</template>
<style scoped lang="scss">
.nc-feedback-form-wrapper {
width: 100%;
position: relative;
iframe {
margin: 0 auto;
}
.nc-close-icon {
position: absolute;
top: 5px;
right: 10px;
}
}
</style>

5
packages/nc-gui/composables/useGlobal/state.ts

@ -59,11 +59,6 @@ export function useGlobalState(storageKey = 'nocodb-gui-v2'): State {
token: null,
lang: preferredLanguage,
darkMode: prefersDarkMode,
feedbackForm: {
url: 'https://docs.google.com/forms/d/e/1FAIpQLSeTlAfZjszgr53lArz3NvUEnJGOT9JtG9NAU5d0oQwunDS2Pw/viewform?embedded=true',
createdAt: new Date('2020-01-01T00:00:00.000Z').toISOString(),
isHidden: false,
},
filterAutoSave: true,
previewAs: null,
includeM2M: false,

8
packages/nc-gui/composables/useGlobal/types.ts

@ -4,13 +4,6 @@ import type { JwtPayload } from 'jwt-decode'
import type { Language, ProjectRole, User } from '~/lib'
import type { useCounter } from '#imports'
export interface FeedbackForm {
url: string
createdAt: string
isHidden: boolean
lastFormPollDate?: string
}
export interface AppInfo {
ncSiteUrl: string
authType: 'jwt' | 'none'
@ -32,7 +25,6 @@ export interface StoredState {
token: string | null
lang: keyof typeof Language
darkMode: boolean
feedbackForm: FeedbackForm
filterAutoSave: boolean
previewAs: ProjectRole | null
includeM2M: boolean

41
packages/nc-gui/plugins/feedbackForm.ts

@ -1,41 +0,0 @@
import dayjs from 'dayjs'
import { defineNuxtPlugin, useGlobal, useNuxtApp } from '#imports'
const handleFeedbackForm = async () => {
let { feedbackForm: currentFeedbackForm } = $(useGlobal())
if (!currentFeedbackForm) return
const { $api } = useNuxtApp()
const isFirstTimePolling = !currentFeedbackForm.lastFormPollDate
const now = dayjs()
const lastFormPolledDate = dayjs(currentFeedbackForm.lastFormPollDate)
if (isFirstTimePolling || dayjs.duration(now.diff(lastFormPolledDate)).days() > 0) {
$api.instance
.get('/api/v1/feedback_form')
.then((response) => {
try {
const { data: feedbackForm } = response
if (!feedbackForm.error) {
const isFetchedFormDuplicate = currentFeedbackForm.url === feedbackForm.url
currentFeedbackForm = {
url: feedbackForm.url,
lastFormPollDate: now.toISOString(),
createdAt: feedbackForm.created_at,
isHidden: isFetchedFormDuplicate ? currentFeedbackForm.isHidden : false,
}
}
} catch (e) {}
})
.catch(() => {})
}
}
export default defineNuxtPlugin(() => {
handleFeedbackForm()
})

8
packages/nocodb/src/lib/meta/api/utilApis.ts

@ -16,7 +16,6 @@ import NcConfigFactory, {
import User from '../../models/User';
import catchError from '../helpers/catchError';
import axios from 'axios';
import { feedbackForm } from 'nc-help';
const versionCache = {
releaseVersion: null,
@ -94,12 +93,6 @@ export async function versionInfo(_req: Request, res: Response) {
res.json(response);
}
export function feedbackFormGet(_req: Request, res: Response) {
feedbackForm()
.then((form) => res.json(form))
.catch((e) => res.json({ error: e.message }));
}
export async function appHealth(_: Request, res: Response) {
res.json({
message: 'OK',
@ -379,7 +372,6 @@ export default (router) => {
router.post('/api/v1/db/meta/axiosRequestMake', catchError(axiosRequestMake));
router.get('/api/v1/version', catchError(versionInfo));
router.get('/api/v1/health', catchError(appHealth));
router.get('/api/v1/feedback_form', catchError(feedbackFormGet));
router.post('/api/v1/url_to_config', catchError(urlToDbConfig));
router.get(
'/api/v1/aggregated-meta-info',

Loading…
Cancel
Save