Browse Source

Merge pull request #2416 from nocodb/fix/large-char-on-project-name

fix: large char on project name
pull/2423/head
navi 2 years ago committed by GitHub
parent
commit
00f3ca6352
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      packages/nc-gui/components/CreateOrEditProject.vue
  2. 7
      packages/nc-gui/pages/project/id.vue
  3. 10
      packages/nc-gui/pages/project/xcdb.vue
  4. 4
      packages/nocodb/src/lib/meta/api/projectApis.ts

7
packages/nc-gui/components/CreateOrEditProject.vue

@ -89,7 +89,7 @@
ref="name" ref="name"
v-model="project.title" v-model="project.title"
v-ge="['project', 'name']" v-ge="['project', 'name']"
:rules="form.titleRequiredRule" :rules="form.titleValidationRule"
:height="20" :height="20"
:label="$t('placeholder.projName')" :label="$t('placeholder.projName')"
autofocus autofocus
@ -963,7 +963,10 @@ export default {
/** ************** START : form related ****************/ /** ************** START : form related ****************/
form: { form: {
portValidationRule: [v => /^\d+$/.test(v) || 'Not a valid port'], portValidationRule: [v => /^\d+$/.test(v) || 'Not a valid port'],
titleRequiredRule: [v => !!v || 'Title is required'], titleValidationRule: [
v => !!v || 'Title is required',
v => v.length <= 50 || 'Project name exceeds 50 characters',
],
requiredRule: [v => !!v || 'Field is required'], requiredRule: [v => !!v || 'Field is required'],
folderRequiredRule: [v => !!v || 'Folder path is required'] folderRequiredRule: [v => !!v || 'Folder path is required']
}, },

7
packages/nc-gui/pages/project/id.vue

@ -84,7 +84,7 @@
<v-text-field <v-text-field
v-model="project.title" v-model="project.title"
v-ge="['project','name']" v-ge="['project','name']"
:rules="form.titleRequiredRule" :rules="form.titleValidationRule"
:height="20" :height="20"
label="Enter Project Name" label="Enter Project Name"
autofocus autofocus
@ -650,7 +650,10 @@ export default {
/** ************** START : form related ****************/ /** ************** START : form related ****************/
form: { form: {
portValidationRule: [v => /^\d+$/.test(v) || 'Not a valid port'], portValidationRule: [v => /^\d+$/.test(v) || 'Not a valid port'],
titleRequiredRule: [v => !!v || 'Title is required'], titleValidationRule: [
v => !!v || 'Title is required',
v => v.length <= 50 || 'Project name exceeds 50 characters',
],
requiredRule: [v => !!v || 'Field is required'], requiredRule: [v => !!v || 'Field is required'],
folderRequiredRule: [v => !!v || 'Folder path is required'] folderRequiredRule: [v => !!v || 'Folder path is required']
}, },

10
packages/nc-gui/pages/project/xcdb.vue

@ -39,7 +39,7 @@
:full-width="false" :full-width="false"
class="nc-metadb-project-name" class="nc-metadb-project-name"
:label="$t('placeholder.projName')" :label="$t('placeholder.projName')"
:rules="[v => !!v || $t('general.required')]" :rules="form.titleValidationRule"
/> />
<!-- <div class="wrapper mb-5 mt-5"> <!-- <div class="wrapper mb-5 mt-5">
@ -109,7 +109,13 @@ export default {
icon: require('@/assets/img/grpc-icon-color.png'), icon: require('@/assets/img/grpc-icon-color.png'),
type: 'img' type: 'img'
}, */ }, */
] ],
form: {
titleValidationRule: [
v => !!v || 'Title is required',
v => v.length <= 50 || 'Project name exceeds 50 characters',
],
},
}), }),
computed: { computed: {
typeIcon() { typeIcon() {

4
packages/nocodb/src/lib/meta/api/projectApis.ts

@ -95,6 +95,10 @@ async function projectCreate(req: Request<any, any>, res) {
projectBody.is_meta = false; projectBody.is_meta = false;
} }
if (projectBody?.title.length > 50) {
NcError.badRequest('Project title exceeds 50 characters');
}
if (await Project.getByTitle(projectBody?.title)) { if (await Project.getByTitle(projectBody?.title)) {
NcError.badRequest('Project title already in use'); NcError.badRequest('Project title already in use');
} }

Loading…
Cancel
Save