diff --git a/packages/nc-gui/assets/img/brand/Transparent.png b/packages/nc-gui/assets/img/brand/Transparent.png deleted file mode 100644 index d7a68ffa31..0000000000 Binary files a/packages/nc-gui/assets/img/brand/Transparent.png and /dev/null differ diff --git a/packages/nc-gui/assets/img/brand/favicon-128.png b/packages/nc-gui/assets/img/brand/favicon-128.png deleted file mode 100644 index ecc0ed692f..0000000000 Binary files a/packages/nc-gui/assets/img/brand/favicon-128.png and /dev/null differ diff --git a/packages/nc-gui/assets/img/brand/favicon-16.png b/packages/nc-gui/assets/img/brand/favicon-16.png deleted file mode 100644 index ebaa144cc7..0000000000 Binary files a/packages/nc-gui/assets/img/brand/favicon-16.png and /dev/null differ diff --git a/packages/nc-gui/assets/img/brand/favicon-32.png b/packages/nc-gui/assets/img/brand/favicon-32.png deleted file mode 100644 index 1c835348ea..0000000000 Binary files a/packages/nc-gui/assets/img/brand/favicon-32.png and /dev/null differ diff --git a/packages/nc-gui/assets/img/brand/favicon-64.png b/packages/nc-gui/assets/img/brand/favicon-64.png deleted file mode 100644 index 286a79d9d8..0000000000 Binary files a/packages/nc-gui/assets/img/brand/favicon-64.png and /dev/null differ diff --git a/packages/nc-gui/assets/img/brand/full-logo.png b/packages/nc-gui/assets/img/brand/full-logo.png new file mode 100644 index 0000000000..adad1a5cca Binary files /dev/null and b/packages/nc-gui/assets/img/brand/full-logo.png differ diff --git a/packages/nc-gui/assets/img/brand/text.png b/packages/nc-gui/assets/img/brand/text.png new file mode 100644 index 0000000000..b13fbb2772 Binary files /dev/null and b/packages/nc-gui/assets/img/brand/text.png differ diff --git a/packages/nc-gui/assets/img/icon.png b/packages/nc-gui/assets/img/icon.png deleted file mode 100644 index d7a68ffa31..0000000000 Binary files a/packages/nc-gui/assets/img/icon.png and /dev/null differ diff --git a/packages/nc-gui/assets/img/icons/256.png b/packages/nc-gui/assets/img/icons/256.png deleted file mode 100644 index ba362f49b5..0000000000 Binary files a/packages/nc-gui/assets/img/icons/256.png and /dev/null differ diff --git a/packages/nc-gui/components.d.ts b/packages/nc-gui/components.d.ts index 72d94ba7b7..39218772d5 100644 --- a/packages/nc-gui/components.d.ts +++ b/packages/nc-gui/components.d.ts @@ -104,6 +104,7 @@ declare module '@vue/runtime-core' { MaterialSymbolsWarning: typeof import('~icons/material-symbols/warning')['default'] MdiAccount: typeof import('~icons/mdi/account')['default'] MdiAccountCircle: typeof import('~icons/mdi/account-circle')['default'] + MdiAccountCircleOutline: typeof import('~icons/mdi/account-circle-outline')['default'] MdiAccountOutline: typeof import('~icons/mdi/account-outline')['default'] MdiAccountPlusOutline: typeof import('~icons/mdi/account-plus-outline')['default'] MdiAccountSupervisorOutline: typeof import('~icons/mdi/account-supervisor-outline')['default'] @@ -130,6 +131,7 @@ declare module '@vue/runtime-core' { MdiChevronDown: typeof import('~icons/mdi/chevron-down')['default'] MdiChevronLeft: typeof import('~icons/mdi/chevron-left')['default'] MdiChevronRight: typeof import('~icons/mdi/chevron-right')['default'] + MdiClipboard: typeof import('~icons/mdi/clipboard')['default'] MdiClose: typeof import('~icons/mdi/close')['default'] MdiCloseBox: typeof import('~icons/mdi/close-box')['default'] MdiCloseCircle: typeof import('~icons/mdi/close-circle')['default'] @@ -140,12 +142,14 @@ declare module '@vue/runtime-core' { MdiCommentTextOutline: typeof import('~icons/mdi/comment-text-outline')['default'] MdiContentCopy: typeof import('~icons/mdi/content-copy')['default'] MdiContentSave: typeof import('~icons/mdi/content-save')['default'] + MdiCopy: typeof import('~icons/mdi/copy')['default'] MdiCurrencyUsd: typeof import('~icons/mdi/currency-usd')['default'] MdiDatabaseOutline: typeof import('~icons/mdi/database-outline')['default'] MdiDatabaseSync: typeof import('~icons/mdi/database-sync')['default'] MdiDelete: typeof import('~icons/mdi/delete')['default'] MdiDeleteOutline: typeof import('~icons/mdi/delete-outline')['default'] MdiDiscord: typeof import('~icons/mdi/discord')['default'] + MdiDotsHorizontal: typeof import('~icons/mdi/dots-horizontal')['default'] MdiDotsVertical: typeof import('~icons/mdi/dots-vertical')['default'] MdiDownload: typeof import('~icons/mdi/download')['default'] MdiDownloadOutline: typeof import('~icons/mdi/download-outline')['default'] @@ -176,6 +180,7 @@ declare module '@vue/runtime-core' { MdiInformation: typeof import('~icons/mdi/information')['default'] MdiJson: typeof import('~icons/mdi/json')['default'] MdiKeyboardReturn: typeof import('~icons/mdi/keyboard-return')['default'] + MdiKeyChainVariant: typeof import('~icons/mdi/key-chain-variant')['default'] MdiKeyChange: typeof import('~icons/mdi/key-change')['default'] MdiKeyStar: typeof import('~icons/mdi/key-star')['default'] MdiLink: typeof import('~icons/mdi/link')['default'] @@ -202,6 +207,7 @@ declare module '@vue/runtime-core' { MdiRocketLaunchOutline: typeof import('~icons/mdi/rocket-launch-outline')['default'] MdiScriptTextKeyOutline: typeof import('~icons/mdi/script-text-key-outline')['default'] MdiScriptTextOutline: typeof import('~icons/mdi/script-text-outline')['default'] + MdiShieldAccountOutline: typeof import('~icons/mdi/shield-account-outline')['default'] MdiShieldKeyOutline: typeof import('~icons/mdi/shield-key-outline')['default'] MdiSlack: typeof import('~icons/mdi/slack')['default'] MdiSort: typeof import('~icons/mdi/sort')['default'] diff --git a/packages/nc-gui/components/account/AppStore.vue b/packages/nc-gui/components/account/AppStore.vue new file mode 100644 index 0000000000..2a61f43be8 --- /dev/null +++ b/packages/nc-gui/components/account/AppStore.vue @@ -0,0 +1,8 @@ + diff --git a/packages/nc-gui/components/account/License.vue b/packages/nc-gui/components/account/License.vue new file mode 100644 index 0000000000..f12d793a28 --- /dev/null +++ b/packages/nc-gui/components/account/License.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/packages/nc-gui/components/account/ResetPassword.vue b/packages/nc-gui/components/account/ResetPassword.vue new file mode 100644 index 0000000000..804196f102 --- /dev/null +++ b/packages/nc-gui/components/account/ResetPassword.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/packages/nc-gui/components/account/SignupSettings.vue b/packages/nc-gui/components/account/SignupSettings.vue new file mode 100644 index 0000000000..7311679a76 --- /dev/null +++ b/packages/nc-gui/components/account/SignupSettings.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/packages/nc-gui/components/account/Token.vue b/packages/nc-gui/components/account/Token.vue new file mode 100644 index 0000000000..967c1ef3b3 --- /dev/null +++ b/packages/nc-gui/components/account/Token.vue @@ -0,0 +1,262 @@ + + + + + diff --git a/packages/nc-gui/components/account/UserList.vue b/packages/nc-gui/components/account/UserList.vue new file mode 100644 index 0000000000..a6ac569901 --- /dev/null +++ b/packages/nc-gui/components/account/UserList.vue @@ -0,0 +1,281 @@ + + + diff --git a/packages/nc-gui/components/account/UsersModal.vue b/packages/nc-gui/components/account/UsersModal.vue new file mode 100644 index 0000000000..14665b8561 --- /dev/null +++ b/packages/nc-gui/components/account/UsersModal.vue @@ -0,0 +1,256 @@ + + + diff --git a/packages/nc-gui/lang/bn_IN.json b/packages/nc-gui/lang/bn_IN.json index 001e4e305e..5b2fa5209a 100644 --- a/packages/nc-gui/lang/bn_IN.json +++ b/packages/nc-gui/lang/bn_IN.json @@ -591,6 +591,7 @@ "tableDeleted": "Deleted table successfully", "generatePublicShareableReadonlyBase": "Generate publicly shareable readonly base", "deleteViewConfirmation": "Are you sure you want to delete this view?", + "deleteTokenConfirmation": "Are you sure you want to delete this token?", "deleteTableConfirmation": "Do you want to delete the table", "showM2mTables": "Show M2M Tables", "deleteKanbanStackConfirmation": "Deleting this stack will also remove the select option `{stackToBeDeleted}` from the `{groupingField}`. The records will move to the uncategorized stack." diff --git a/packages/nc-gui/lang/en.json b/packages/nc-gui/lang/en.json index 87ef39984f..08db4c8610 100644 --- a/packages/nc-gui/lang/en.json +++ b/packages/nc-gui/lang/en.json @@ -104,7 +104,9 @@ "creator": "Creator", "editor": "Editor", "commenter": "Commenter", - "viewer": "Viewer" + "viewer": "Viewer", + "orgLevelCreator": "Organization Level Creator", + "orgLevelViewer": "Organization Level Viewer" }, "sqlVIew": "SQL View" }, @@ -200,6 +202,7 @@ "codeSnippet": "Code Snippet" }, "labels": { + "createdBy": "Created By", "notifyVia": "Notify Via", "projName": "Project name", "tableName": "Table name", @@ -296,7 +299,8 @@ "signUpWithGoogle": "Sign up with Google", "signInWithGoogle": "Sign in with Google", "agreeToTos": "By signing up, you agree to the Terms of Service", - "welcomeToNc": "Welcome to NocoDB!" + "welcomeToNc": "Welcome to NocoDB!", + "inviteOnlySignup": "Allow signup only using invite url" }, "activity": { "createProject": "Create Project", @@ -341,12 +345,14 @@ "invite": "Invite", "inviteMore": "Invite more", "inviteTeam": "Invite Team", + "inviteUser": "Invite User", "inviteToken": "Invite Token", "newUser": "New User", "editUser": "Edit user", "deleteUser": "Remove user from project", "resendInvite": "Resend invite E-mail", "copyInviteURL": "Copy invite URL", + "copyPasswordResetURL": "Copy password reset URL", "newRole": "New role", "reloadRoles": "Reload roles", "nextPage": "Next page", @@ -480,6 +486,10 @@ }, "msg": { "info": { + "roles": { + "orgCreator": "Creator can create new projects and access any invited project.", + "orgViewer": "Viewer is not allowed to create new projects but they can access any invited project." + }, "footerInfo": "Rows per page", "upload": "Select file to Upload", "upload_sub": "or drag and drop file", @@ -653,7 +663,8 @@ "theAcceptedFileTypesAreXlsXlsxXlsmOdsOts": "The accepted file types are .xls, .xlsx, .xlsm, .ods, .ots", "parameterKeyCannotBeEmpty": "Parameter key cannot be empty", "duplicateParameterKeysAreNotAllowed": "Duplicate parameter keys are not allowed", - "fieldRequired": "{value} cannot be empty." + "fieldRequired": "{value} cannot be empty.", + "projectNotAccessible": "Project not accessible" }, "toast": { "exportMetadata": "Project metadata exported successfully", @@ -683,13 +694,16 @@ "tableDataExported": "Successfully exported all table data", "updated": "Successfully updated", "sharedViewDeleted": "Deleted shared view successfully", + "userDeleted": "User deleted successfully", "viewRenamed": "View renamed successfully", "tokenGenerated": "Token generated successfully", "tokenDeleted": "Token deleted successfully", "userAddedToProject": "Successfully added user to project", + "userAdded": "Successfully added user", "userDeletedFromProject": "Successfully deleted user from project", "inviteEmailSent": "Invite Email sent successfully", "inviteURLCopied": "Invite URL copied to clipboard", + "passwordResetURLCopied": "Password reset URL copied to clipboard", "shareableURLCopied": "Copied shareable base URL to clipboard!", "embeddableHTMLCodeCopied": "Copied embeddable HTML code!", "userDetailsUpdated": "Successfully updated the user details", @@ -699,7 +713,9 @@ "webhookTested": "Webhook tested successfully", "columnUpdated": "Column updated", "columnCreated": "Column created", - "passwordChanged": "Password changed successfully. Please login again." + "passwordChanged": "Password changed successfully. Please login again.", + "settingsSaved": "Settings saved successfully", + "roleUpdated": "Role updated successfully" } } } diff --git a/packages/nc-gui/layouts/base.vue b/packages/nc-gui/layouts/base.vue index 48f0913312..b7eac5bfce 100644 --- a/packages/nc-gui/layouts/base.vue +++ b/packages/nc-gui/layouts/base.vue @@ -1,5 +1,5 @@ + + + + diff --git a/packages/nc-gui/pages/account/index/[page].vue b/packages/nc-gui/pages/account/index/[page].vue new file mode 100644 index 0000000000..cd4c698ad8 --- /dev/null +++ b/packages/nc-gui/pages/account/index/[page].vue @@ -0,0 +1,6 @@ + diff --git a/packages/nc-gui/pages/account/index/users.vue b/packages/nc-gui/pages/account/index/users.vue new file mode 100644 index 0000000000..911c8a330b --- /dev/null +++ b/packages/nc-gui/pages/account/index/users.vue @@ -0,0 +1,5 @@ + diff --git a/packages/nc-gui/pages/account/index/users/[[nestedPage]].vue b/packages/nc-gui/pages/account/index/users/[[nestedPage]].vue new file mode 100644 index 0000000000..a90f035d44 --- /dev/null +++ b/packages/nc-gui/pages/account/index/users/[[nestedPage]].vue @@ -0,0 +1,22 @@ + + + diff --git a/packages/nc-gui/pages/index/index.vue b/packages/nc-gui/pages/index/index.vue index bbd4f3a5b4..b188e4929f 100644 --- a/packages/nc-gui/pages/index/index.vue +++ b/packages/nc-gui/pages/index/index.vue @@ -12,7 +12,7 @@ useSidebar('nc-left-sidebar', { hasSidebar: false }) class="min-h-[calc(100vh_-_var(--header-height))] bg-primary bg-opacity-5 flex flex-wrap justify-between xl:flex-nowrap gap-6 py-6 px-4 md:(px-12 pt-65px)" > -
+