diff --git a/.github/workflows/deploy-qa.yml b/.github/workflows/deploy-qa.yml index d850d289ff..0580ac1c3a 100644 --- a/.github/workflows/deploy-qa.yml +++ b/.github/workflows/deploy-qa.yml @@ -11,10 +11,12 @@ jobs: runs-on: ubuntu-latest steps: - uses: peter-evans/repository-dispatch@v2 - env: - PAYLOAD_VERSION: ${{ github.sha }} - REF_NAME: ${{ github.ref_name}} with: repository: budibase/budibase-deploys event-type: budicloud-qa-deploy token: ${{ secrets.GH_ACCESS_TOKEN }} + client-payload: |- + { + "PAYLOAD_VERSION": "${{ github.sha }}", + "REF_NAME": "${{ github.ref_name}}" + } diff --git a/.github/workflows/release-master.yml b/.github/workflows/release-master.yml index df25182cd6..bd1efeb2c4 100644 --- a/.github/workflows/release-master.yml +++ b/.github/workflows/release-master.yml @@ -165,17 +165,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Get the current budibase release version - id: version - run: | - release_version=$(cat lerna.json | jq -r '.version') - echo "RELEASE_VERSION=$release_version" >> $GITHUB_ENV - - uses: passeidireto/trigger-external-workflow-action@main - env: - PAYLOAD_VERSION: ${{ env.RELEASE_VERSION }} - REF_NAME: ${{ github.ref_name}} + - uses: peter-evans/repository-dispatch@v2 with: repository: budibase/budibase-deploys - event: budicloud-qa-deploy + event-type: budicloud-qa-deploy github_pat: ${{ secrets.GH_ACCESS_TOKEN }} + client-payload: |- + { + "PAYLOAD_VERSION": "${{ github.ref_name }}", + "REF_NAME": "${{ github.ref_name}}" + } diff --git a/.github/workflows/release-singleimage.yml b/.github/workflows/release-singleimage.yml index a3444d5e7a..16b1da186a 100644 --- a/.github/workflows/release-singleimage.yml +++ b/.github/workflows/release-singleimage.yml @@ -66,7 +66,7 @@ jobs: context: . push: true platforms: linux/amd64,linux/arm64 - build-args: BUDIBASE_VERSION=$BUDIBASE_VERSION + build-args: BUDIBASE_VERSION=${{ env.BUDIBASE_VERSION }} tags: budibase/budibase,budibase/budibase:${{ env.RELEASE_VERSION }} file: ./hosting/single/Dockerfile.v2 env: @@ -79,7 +79,7 @@ jobs: platforms: linux/amd64 build-args: | TARGETBUILD=aas - BUDIBASE_VERSION=$BUDIBASE_VERSION + BUDIBASE_VERSION=${{ env.BUDIBASE_VERSION }} tags: budibase/budibase-aas,budibase/budibase-aas:${{ env.RELEASE_VERSION }} file: ./hosting/single/Dockerfile.v2 env: diff --git a/lerna.json b/lerna.json index f0f51242d1..2d46838e55 100644 --- a/lerna.json +++ b/lerna.json @@ -1,5 +1,5 @@ { - "version": "2.12.4", + "version": "2.12.7", "npmClient": "yarn", "packages": [ "packages/*" diff --git a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte index abec380b46..f6621c1508 100644 --- a/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte +++ b/packages/builder/src/components/backend/Datasources/CreateEditRelationship.svelte @@ -30,15 +30,15 @@ part2: PrettyRelationshipDefinitions.MANY, }, [RelationshipType.MANY_TO_ONE]: { - part1: PrettyRelationshipDefinitions.ONE, - part2: PrettyRelationshipDefinitions.MANY, + part1: PrettyRelationshipDefinitions.MANY, + part2: PrettyRelationshipDefinitions.ONE, }, } let relationshipOpts1 = Object.values(PrettyRelationshipDefinitions) let relationshipOpts2 = Object.values(PrettyRelationshipDefinitions) - let relationshipPart1 = PrettyRelationshipDefinitions.MANY - let relationshipPart2 = PrettyRelationshipDefinitions.ONE + let relationshipPart1 = PrettyRelationshipDefinitions.ONE + let relationshipPart2 = PrettyRelationshipDefinitions.MANY let originalFromColumnName = toRelationship.name, originalToColumnName = fromRelationship.name diff --git a/packages/builder/src/components/design/settings/componentSettings.js b/packages/builder/src/components/design/settings/componentSettings.js index 232b4bef31..c2bd08760a 100644 --- a/packages/builder/src/components/design/settings/componentSettings.js +++ b/packages/builder/src/components/design/settings/componentSettings.js @@ -1,5 +1,5 @@ import { Checkbox, Select, RadioGroup, Stepper, Input } from "@budibase/bbui" -import DataSourceSelect from "./controls/DataSourceSelect.svelte" +import DataSourceSelect from "./controls/DataSourceSelect/DataSourceSelect.svelte" import S3DataSourceSelect from "./controls/S3DataSourceSelect.svelte" import DataProviderSelect from "./controls/DataProviderSelect.svelte" import ButtonActionEditor from "./controls/ButtonActionEditor/ButtonActionEditor.svelte" diff --git a/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte new file mode 100644 index 0000000000..f7c79b3862 --- /dev/null +++ b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte @@ -0,0 +1,55 @@ + + +{#if dividerState} + +{/if} +{#if heading} +
+ {heading} +
+{/if} + + + diff --git a/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceSelect.svelte similarity index 75% rename from packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte rename to packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceSelect.svelte index 29f32aa345..5cda0ebcca 100644 --- a/packages/builder/src/components/design/settings/controls/DataSourceSelect.svelte +++ b/packages/builder/src/components/design/settings/controls/DataSourceSelect/DataSourceSelect.svelte @@ -7,10 +7,8 @@ import { Button, Popover, - Divider, Select, Layout, - Heading, Drawer, DrawerContent, Icon, @@ -32,6 +30,7 @@ import IntegrationQueryEditor from "components/integration/index.svelte" import { makePropSafe as safe } from "@budibase/string-templates" import ClientBindingPanel from "components/common/bindings/ClientBindingPanel.svelte" + import DataSourceCategory from "components/design/settings/controls/DataSourceSelect/DataSourceCategory.svelte" import { API } from "api" export let value = {} @@ -279,102 +278,81 @@ @@ -398,31 +376,6 @@ .dropdown { padding: var(--spacing-m) 0; z-index: 99999999; - overflow-y: scroll; - } - .title { - padding: 0 var(--spacing-m) var(--spacing-s) var(--spacing-m); - } - - ul { - list-style: none; - padding-left: 0px; - margin: 0px; - } - - li { - cursor: pointer; - margin: 0px; - padding: var(--spacing-s) var(--spacing-m); - font-size: var(--font-size-m); - } - - .selected { - color: var(--spectrum-global-color-blue-600); - } - - li:hover { - background-color: var(--spectrum-global-color-gray-200); } .icon { diff --git a/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte b/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte index 80e36328f1..dbeeec53ef 100644 --- a/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte +++ b/packages/builder/src/components/design/settings/controls/SchemaSelect.svelte @@ -1,5 +1,5 @@ diff --git a/packages/server/src/sdk/app/tables/migration.ts b/packages/server/src/sdk/app/tables/migration.ts index 5a6b0c5bc0..718223dbeb 100644 --- a/packages/server/src/sdk/app/tables/migration.ts +++ b/packages/server/src/sdk/app/tables/migration.ts @@ -7,6 +7,7 @@ import { isBBReferenceField, isRelationshipField, LinkDocument, + LinkInfo, RelationshipFieldMetadata, RelationshipType, Row, @@ -125,7 +126,23 @@ abstract class UserColumnMigrator implements ColumnMigrator { protected newColumn: BBReferenceFieldMetadata ) {} - abstract updateRow(row: Row, link: LinkDocument): void + abstract updateRow(row: Row, linkInfo: LinkInfo): void + + pickUserTableLinkSide(link: LinkDocument): LinkInfo { + if (link.doc1.tableId === InternalTable.USER_METADATA) { + return link.doc1 + } else { + return link.doc2 + } + } + + pickOtherTableLinkSide(link: LinkDocument): LinkInfo { + if (link.doc1.tableId === InternalTable.USER_METADATA) { + return link.doc2 + } else { + return link.doc1 + } + } async doMigration(): Promise { let oldTable = cloneDeep(this.table) @@ -137,15 +154,17 @@ abstract class UserColumnMigrator implements ColumnMigrator { let links = await sdk.links.fetchWithDocument(this.table._id!) for (let link of links) { + const userSide = this.pickUserTableLinkSide(link) + const otherSide = this.pickOtherTableLinkSide(link) if ( - link.doc1.tableId !== this.table._id || - link.doc1.fieldName !== this.oldColumn.name || - link.doc2.tableId !== InternalTable.USER_METADATA + otherSide.tableId !== this.table._id || + otherSide.fieldName !== this.oldColumn.name || + userSide.tableId !== InternalTable.USER_METADATA ) { continue } - let row = rowsById[link.doc1.rowId] + let row = rowsById[otherSide.rowId] if (!row) { // This can happen if the row has been deleted but the link hasn't, // which was a state that was found during the initial testing of this @@ -153,7 +172,7 @@ abstract class UserColumnMigrator implements ColumnMigrator { continue } - this.updateRow(row, link) + this.updateRow(row, userSide) } let db = context.getAppDB() @@ -175,20 +194,20 @@ abstract class UserColumnMigrator implements ColumnMigrator { } class SingleUserColumnMigrator extends UserColumnMigrator { - updateRow(row: Row, link: LinkDocument): void { + updateRow(row: Row, linkInfo: LinkInfo): void { row[this.newColumn.name] = dbCore.getGlobalIDFromUserMetadataID( - link.doc2.rowId + linkInfo.rowId ) } } class MultiUserColumnMigrator extends UserColumnMigrator { - updateRow(row: Row, link: LinkDocument): void { + updateRow(row: Row, linkInfo: LinkInfo): void { if (!row[this.newColumn.name]) { row[this.newColumn.name] = [] } row[this.newColumn.name].push( - dbCore.getGlobalIDFromUserMetadataID(link.doc2.rowId) + dbCore.getGlobalIDFromUserMetadataID(linkInfo.rowId) ) } } diff --git a/packages/types/src/documents/app/links.ts b/packages/types/src/documents/app/links.ts index d6b2adddf8..ae7e4de78e 100644 --- a/packages/types/src/documents/app/links.ts +++ b/packages/types/src/documents/app/links.ts @@ -1,17 +1,15 @@ import { Document } from "../document" +export interface LinkInfo { + rowId: string + fieldName: string + tableId: string +} + export interface LinkDocument extends Document { type: string - doc1: { - rowId: string - fieldName: string - tableId: string - } - doc2: { - rowId: string - fieldName: string - tableId: string - } + doc1: LinkInfo + doc2: LinkInfo } export interface LinkDocumentValue { diff --git a/pull_request_template.md b/pull_request_template.md index 36e2f425d5..fa0f7f2143 100644 --- a/pull_request_template.md +++ b/pull_request_template.md @@ -1,18 +1,16 @@ ## Description + _Describe the problem or feature in addition to a link to the relevant github issues._ -Addresses: +Addresses: + - `` - ...more if required ## App Export + - If possible, attach an app export file along with your request template to make QA testing easier, with minimal setup. ## Screenshots + _If a UI facing feature, a short video of the happy path, and some screenshots of the new functionality._ - -## Documentation -- [ ] I have reviewed the budibase documentatation to verify if this feature requires any changes. If changes or new docs are required I have written them. - - -