diff --git a/.github/ISSUE_TEMPLATE/--bug-report.yaml b/.github/ISSUE_TEMPLATE/--bug-report.yaml index 66f4b81e82..64d4766ed0 100644 --- a/.github/ISSUE_TEMPLATE/--bug-report.yaml +++ b/.github/ISSUE_TEMPLATE/--bug-report.yaml @@ -2,8 +2,6 @@ name: 🐛 Bug Report description: Create a bug report to help improve NocoDB title: "🐛 Bug: " labels: [Type : Bug] -assignees: -- o1lab body: - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/--feature-request.yaml b/.github/ISSUE_TEMPLATE/--feature-request.yaml index 74552d7db0..cfdeead034 100644 --- a/.github/ISSUE_TEMPLATE/--feature-request.yaml +++ b/.github/ISSUE_TEMPLATE/--feature-request.yaml @@ -2,8 +2,6 @@ name: 🔦 Feature request description: Suggest a new/missing feature for NocoDB title: "🔦 Feature: " labels: [Type : Feature] -assignees: -- o1lab body: - type: markdown attributes: diff --git a/.github/workflows/uffizzi-preview.yml b/.github/workflows/uffizzi-preview.yml index 6b4842de8c..437d42cc73 100644 --- a/.github/workflows/uffizzi-preview.yml +++ b/.github/workflows/uffizzi-preview.yml @@ -13,8 +13,10 @@ jobs: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.conclusion == 'success' }} outputs: - compose-file-cache-key: ${{ env.COMPOSE_FILE_HASH }} - pr-number: ${{ env.PR_NUMBER }} + compose-file-cache-key: ${{ steps.hash.outputs.COMPOSE_FILE_HASH }} + git-ref: ${{ steps.event.outputs.GIT_REF }} + pr-number: ${{ steps.event.outputs.PR_NUMBER }} + action: ${{ steps.event.outputs.ACTION }} steps: - name: 'Download artifacts' # Fetch output (zip archive) from the workflow run that triggered this workflow. @@ -29,6 +31,9 @@ jobs: let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { return artifact.name == "preview-spec" })[0]; + if (matchArtifact === undefined) { + throw TypeError('Build Artifact not found!'); + } let download = await github.rest.actions.downloadArtifact({ owner: context.repo.owner, repo: context.repo.repo, @@ -37,44 +42,46 @@ jobs: }); let fs = require('fs'); fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/preview-spec.zip`, Buffer.from(download.data)); - - - name: 'Unzip artifact' - run: unzip preview-spec.zip - + + - name: 'Accept event from first stage' + run: unzip preview-spec.zip event.json + - name: Read Event into ENV + id: event run: | - echo 'EVENT_JSON<> $GITHUB_ENV - cat event.json >> $GITHUB_ENV - echo 'EOF' >> $GITHUB_ENV - + echo PR_NUMBER=$(jq '.number | tonumber' < event.json) >> $GITHUB_OUTPUT + echo ACTION=$(jq --raw-output '.action | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_OUTPUT + echo GIT_REF=$(jq --raw-output '.pull_request.head.sha | tostring | [scan("\\w+")][0]' < event.json) >> $GITHUB_OUTPUT + - name: Hash Rendered Compose File id: hash # If the previous workflow was triggered by a PR close event, we will not have a compose file artifact. - if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} - run: echo "COMPOSE_FILE_HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_ENV - + if: ${{ steps.event.outputs.ACTION != 'closed' }} + run: | + unzip preview-spec.zip docker-compose.rendered.yml + echo "COMPOSE_FILE_HASH=$(md5sum docker-compose.rendered.yml | awk '{ print $1 }')" >> $GITHUB_OUTPUT + - name: Cache Rendered Compose File - if: ${{ fromJSON(env.EVENT_JSON).action != 'closed' }} + if: ${{ steps.event.outputs.ACTION != 'closed' }} uses: actions/cache@v3 with: path: docker-compose.rendered.yml - key: ${{ env.COMPOSE_FILE_HASH }} + key: ${{ steps.hash.outputs.COMPOSE_FILE_HASH }} - - name: Read PR Number From Event Object - id: pr - run: echo "PR_NUMBER=${{ fromJSON(env.EVENT_JSON).number }}" >> $GITHUB_ENV - - name: DEBUG - Print Job Outputs if: ${{ runner.debug }} run: | - echo "PR number: ${{ env.PR_NUMBER }}" - echo "Compose file hash: ${{ env.COMPOSE_FILE_HASH }}" + echo "PR number: ${{ steps.event.outputs.PR_NUMBER }}" + echo "Git Ref: ${{ steps.event.outputs.GIT_REF }}" + echo "Action: ${{ steps.event.outputs.ACTION }}" + echo "Compose file hash: ${{ steps.hash.outputs.COMPOSE_FILE_HASH }}" cat event.json deploy-uffizzi-preview: name: Use Remote Workflow to Preview on Uffizzi needs: - cache-compose-file + if: ${{ github.event.workflow_run.conclusion == 'success' }} uses: UffizziCloud/preview-action/.github/workflows/reusable.yaml@v2 with: # If this workflow was triggered by a PR close event, cache-key will be an empty string diff --git a/packages/nc-gui/assets/style.scss b/packages/nc-gui/assets/style.scss index 46a6954999..b9d6529c4a 100644 --- a/packages/nc-gui/assets/style.scss +++ b/packages/nc-gui/assets/style.scss @@ -43,10 +43,6 @@ body { height: var(--topbar-height) !important; } -.anticon-check-circle { - @apply !relative top-[-1px] left-0; -} - html, body, #__nuxt, @@ -61,7 +57,7 @@ main { } .mobile { - .nc-scrollbar-md, .nc-scrollbar-x-md, .nc-scrollbar-dark-md, .nc-scrollbar-x-md-dark, .nc-scrollbar-x-lg { + .nc-scrollbar-md, .nc-scrollbar-lg, .nc-scrollbar-x-md, .nc-scrollbar-dark-md, .nc-scrollbar-x-md-dark, .nc-scrollbar-x-lg { &::-webkit-scrollbar { width: 0px; } @@ -92,6 +88,30 @@ main { } } +.nc-scrollbar-lg { + overflow-y: scroll; + overflow-x: hidden; + scrollbar-width: thin !important; + + &::-webkit-scrollbar { + width: 10px; + height: 10px; + } + &::-webkit-scrollbar-track-piece { + width: 0px; + } + &::-webkit-scrollbar { + @apply bg-transparent; + } + &::-webkit-scrollbar-thumb { + width: 4px; + @apply bg-gray-200; + } + &::-webkit-scrollbar-thumb:hover { + @apply bg-gray-300; + } +} + .nc-scrollbar-x-md { overflow-x: scroll; scrollbar-width: thin !important; @@ -701,4 +721,7 @@ input[type='number'] { .ant-message-notice-content { @apply !rounded-md; + .ant-message-custom-content{ + @apply flex items-center + } } \ No newline at end of file diff --git a/packages/nc-gui/components/account/UserList.vue b/packages/nc-gui/components/account/UserList.vue index c5d5293651..1a501e4c0d 100644 --- a/packages/nc-gui/components/account/UserList.vue +++ b/packages/nc-gui/components/account/UserList.vue @@ -261,7 +261,7 @@ const openDeleteModal = (user: UserType) => {
diff --git a/packages/nc-gui/components/account/UsersModal.vue b/packages/nc-gui/components/account/UsersModal.vue index 1d6f6fd055..096dc3761b 100644 --- a/packages/nc-gui/components/account/UsersModal.vue +++ b/packages/nc-gui/components/account/UsersModal.vue @@ -34,6 +34,8 @@ const { copy } = useCopy() const { dashboardUrl } = useDashboard() +const { clearBasesUser } = useBases() + const usersData = ref({ emails: '', role: OrgUserRoles.VIEWER, invitationToken: undefined }) const formRef = ref() @@ -64,6 +66,8 @@ const saveUser = async () => { // Successfully updated the user details message.success(t('msg.success.userAdded')) + + clearBasesUser() } catch (e: any) { console.error(e) message.error(await extractSdkResponseErrorMsg(e)) diff --git a/packages/nc-gui/components/cell/Checkbox.vue b/packages/nc-gui/components/cell/Checkbox.vue index be70d8d314..36c57dbc1c 100644 --- a/packages/nc-gui/components/cell/Checkbox.vue +++ b/packages/nc-gui/components/cell/Checkbox.vue @@ -42,6 +42,8 @@ const readOnly = inject(ReadonlyInj) const isExpandedFormOpen = inject(IsExpandedFormOpenInj, ref(false)) +const rowHeight = inject(RowHeightInj, ref()) + const checkboxMeta = computed(() => { return { icon: { @@ -82,18 +84,28 @@ useSelectedCellKeyupListener(active, (e) => {