Browse Source

Merge pull request #9772 from nocodb/nc-fix/misc

Nc fix/misc
pull/9777/head
Pranav C 3 weeks ago committed by GitHub
parent
commit
49ac5e60a2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      packages/nc-gui/components/extensions/Market.vue
  2. 6
      packages/nc-gui/components/extensions/Market/ExtensionsTab.vue
  3. 10
      packages/nc-gui/components/virtual-cell/Button.vue
  4. 2
      packages/nocodb/src/db/sql-client/lib/pg/PgClient.ts
  5. 2
      packages/nocodb/src/modules/auth/auth.controller.ts
  6. 2
      packages/nocodb/src/modules/auth/ui/auth/emailVerify.ts
  7. 2
      packages/nocodb/src/modules/auth/ui/auth/resetPassword.ts
  8. 2
      packages/nocodb/src/modules/jobs/jobs/export-import/duplicate.controller.ts
  9. 92
      packages/nocodb/src/schema/swagger.json

2
packages/nc-gui/components/extensions/Market.vue

@ -134,7 +134,7 @@ onMounted(() => {
</div>
</div>
<div class="flex-1 flex gap-3 justify-end">
<div ref="searchWrapperRef" v-if="activeTab !== 'build-an-extension'" class="flex-1 flex max-w-[290px] justify-end">
<div v-if="activeTab !== 'build-an-extension'" ref="searchWrapperRef" class="flex-1 flex max-w-[290px] justify-end">
<NcButton v-if="!searchQuery && !showSearchBox" class="!px-1" type="text" size="small" @click="handleShowSearchInput">
<GeneralIcon icon="search" class="h-4 w-4 text-current" />
</NcButton>

6
packages/nc-gui/components/extensions/Market/ExtensionsTab.vue

@ -43,7 +43,11 @@ const onAddExtension = (ext: any) => {
class="pb-2 grid gap-4"
:class="{
'h-full': searchQuery && !filteredAvailableExtensions.length && availableExtensions.length,
'grid-cols-1 md:grid-cols-2 xl:grid-cols-3': !(searchQuery && !filteredAvailableExtensions.length && availableExtensions.length),
'grid-cols-1 md:grid-cols-2 xl:grid-cols-3': !(
searchQuery &&
!filteredAvailableExtensions.length &&
availableExtensions.length
),
}"
>
<template v-for="ext of filteredAvailableExtensions" :key="ext.id">

10
packages/nc-gui/components/virtual-cell/Button.vue

@ -50,7 +50,15 @@ const triggerAction = async () => {
const componentProps = computed(() => {
if (column.value.colOptions.type === 'url') {
let url = `${cellValue.value?.url}`
url = encodeURI(/^(https?|ftp|mailto|file):\/\//.test(url) ? url : url.trim() ? `http://${url}` : '')
url = /^(https?|ftp|mailto|file):\/\//.test(url) ? url : url.trim() ? `https://${url}` : ''
// if url params not encoded, encode them using encodeURI
try {
url = decodeURI(url) === url ? encodeURI(url) : url
} catch {
url = encodeURI(url)
}
return {
href: url,
target: '_blank',

2
packages/nocodb/src/db/sql-client/lib/pg/PgClient.ts

@ -3029,7 +3029,7 @@ class PGClient extends KnexClient {
n.dt,
castedColumn,
limit,
n.meta.date_format || 'YYYY-MM-DD',
n.meta?.date_format || 'YYYY-MM-DD',
);
query += this.genQuery(castQuery, [], shouldSanitize);

2
packages/nocodb/src/modules/auth/auth.controller.ts

@ -257,7 +257,7 @@ export class AuthController {
(await import('~/modules/auth/ui/auth/resetPassword')).default,
{
ncPublicUrl: process.env.NC_PUBLIC_URL || '',
token: JSON.stringify(tokenId),
token: tokenId,
baseUrl: `/`,
},
),

2
packages/nocodb/src/modules/auth/ui/auth/emailVerify.ts

@ -42,7 +42,7 @@ export default `<!DOCTYPE html>
valid: null,
errMsg: null,
validForm: false,
token: <%= token %>,
token: '<%= token %>',
greeting: 'Password Reset',
formdata: {
password: '',

2
packages/nocodb/src/modules/auth/ui/auth/resetPassword.ts

@ -68,7 +68,7 @@ export default `<!DOCTYPE html>
data: {
valid: null,
validForm: false,
token: <%= token %>,
token: '<%= token %>',
greeting: 'Password Reset',
formdata: {
password: '',

2
packages/nocodb/src/modules/jobs/jobs/export-import/duplicate.controller.ts

@ -32,7 +32,7 @@ export class DuplicateController {
@Post([
'/api/v1/db/meta/duplicate/:workspaceId/shared/:sharedBaseId',
'/api/v1/meta/duplicate/:workspaceId/shared/:sharedBaseId',
'/api/v2/meta/duplicate/:workspaceId/shared/:sharedBaseId',
])
@HttpCode(200)
@Acl('duplicateSharedBase', {

92
packages/nocodb/src/schema/swagger.json

@ -4633,6 +4633,98 @@
]
}
},
"/api/v2/meta/duplicate/{workspaceId}/shared/{sharedBaseId}": {
"post": {
"summary": "Duplicate Shared Base",
"operationId": "base-duplicate-shared",
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"id": {
"type": "string"
}
}
}
}
}
},
"400": {
"$ref": "#/components/responses/BadRequest"
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"options": {
"type": "object",
"properties": {
"excludeData": {
"type": "boolean",
"required": false
},
"excludeViews": {
"type": "boolean",
"required": false
}
}
},
"base": {
"type": "object",
"required": false
}
}
},
"examples": {
"Example 1": {
"value": {
"excludeData": true,
"excludeViews": true,
"excludeHooks": true
}
}
}
}
}
},
"tags": [
"Base"
],
"description": "Duplicate a shared base",
"parameters": [
{
"$ref": "#/components/parameters/xc-auth"
},
{
"schema": {
"$ref": "#/components/schemas/Id",
"example": "w_124hhlkbeasewh",
"type": "string"
},
"name": "workspaceId",
"in": "path",
"required": true,
"description": "Unique Workspace ID"
},
{
"name": "sharedBaseId",
"in": "path",
"required": true,
"description": "Unique Shared Base ID"
}
]
}
},
"/api/v1/db/meta/projects/{baseId}/{sourceId}/tables": {
"parameters": [
{

Loading…
Cancel
Save