Merge branch 'develop' of github.com:Budibase/budibase into views-v2-frontend
This commit is contained in:
commit
d5cfc5f53a
|
@ -25,13 +25,13 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout repo and submodules
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository == github.event.pull_request.head.repo.full_name
|
||||
if: github.repository == 'Budibase/budibase'
|
||||
with:
|
||||
submodules: true
|
||||
token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }}
|
||||
- name: Checkout repo only
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository != github.event.pull_request.head.repo.full_name
|
||||
if: github.repository != 'Budibase/budibase'
|
||||
|
||||
- name: Use Node.js 14.x
|
||||
uses: actions/setup-node@v3
|
||||
|
@ -46,13 +46,13 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout repo and submodules
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository == github.event.pull_request.head.repo.full_name
|
||||
if: github.repository == 'Budibase/budibase'
|
||||
with:
|
||||
submodules: true
|
||||
token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }}
|
||||
- name: Checkout repo only
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository != github.event.pull_request.head.repo.full_name
|
||||
if: github.repository != 'Budibase/budibase'
|
||||
|
||||
- name: Use Node.js 14.x
|
||||
uses: actions/setup-node@v3
|
||||
|
@ -70,13 +70,13 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout repo and submodules
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository == github.event.pull_request.head.repo.full_name
|
||||
if: github.repository == 'Budibase/budibase'
|
||||
with:
|
||||
submodules: true
|
||||
token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }}
|
||||
- name: Checkout repo only
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository != github.event.pull_request.head.repo.full_name
|
||||
if: github.repository != 'Budibase/budibase'
|
||||
|
||||
- name: Use Node.js 14.x
|
||||
uses: actions/setup-node@v3
|
||||
|
@ -96,13 +96,13 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout repo and submodules
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository == github.event.pull_request.head.repo.full_name
|
||||
if: github.repository == 'Budibase/budibase'
|
||||
with:
|
||||
submodules: true
|
||||
token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }}
|
||||
- name: Checkout repo only
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository != github.event.pull_request.head.repo.full_name
|
||||
if: github.repository != 'Budibase/budibase'
|
||||
|
||||
- name: Use Node.js 14.x
|
||||
uses: actions/setup-node@v3
|
||||
|
@ -119,7 +119,7 @@ jobs:
|
|||
|
||||
test-pro:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == github.event.pull_request.head.repo.full_name
|
||||
if: github.repository == 'Budibase/budibase'
|
||||
steps:
|
||||
- name: Checkout repo and submodules
|
||||
uses: actions/checkout@v3
|
||||
|
@ -140,13 +140,13 @@ jobs:
|
|||
steps:
|
||||
- name: Checkout repo and submodules
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository == github.event.pull_request.head.repo.full_name
|
||||
if: github.repository == 'Budibase/budibase'
|
||||
with:
|
||||
submodules: true
|
||||
token: ${{ secrets.PERSONAL_ACCESS_TOKEN || github.token }}
|
||||
- name: Checkout repo only
|
||||
uses: actions/checkout@v3
|
||||
if: github.repository != github.event.pull_request.head.repo.full_name
|
||||
if: github.repository != 'Budibase/budibase'
|
||||
|
||||
- name: Use Node.js 14.x
|
||||
uses: actions/setup-node@v3
|
||||
|
@ -166,7 +166,7 @@ jobs:
|
|||
|
||||
check-pro-submodule:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == github.event.pull_request.head.repo.full_name
|
||||
if: github.repository == 'Budibase/budibase'
|
||||
steps:
|
||||
- name: Checkout repo and submodules
|
||||
uses: actions/checkout@v3
|
||||
|
@ -190,6 +190,8 @@ jobs:
|
|||
base_commit=$(git rev-parse origin/develop)
|
||||
fi
|
||||
|
||||
echo "target_branch=$branch"
|
||||
echo "target_branch=$branch" >> "$GITHUB_OUTPUT"
|
||||
echo "pro_commit=$pro_commit"
|
||||
echo "pro_commit=$pro_commit" >> "$GITHUB_OUTPUT"
|
||||
echo "base_commit=$base_commit"
|
||||
|
@ -204,7 +206,7 @@ jobs:
|
|||
const baseCommit = '${{ steps.get_pro_commits.outputs.base_commit }}';
|
||||
|
||||
if (submoduleCommit !== baseCommit) {
|
||||
console.error('Submodule commit does not match the latest commit on the develop branch.');
|
||||
console.error('Submodule commit does not match the latest commit on the "${{ steps.get_pro_commits.outputs.target_branch }}"" branch.');
|
||||
console.error('Refer to the pro repo to merge your changes: https://github.com/Budibase/budibase-pro/blob/develop/docs/getting_started.md')
|
||||
process.exit(1);
|
||||
} else {
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
name: check_unreleased_changes
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
check_unreleased:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check for unreleased changes
|
||||
env:
|
||||
REPO: "Budibase/budibase"
|
||||
TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
RELEASE_TIMESTAMP=$(curl -s -H "Authorization: token $TOKEN" \
|
||||
"https://api.github.com/repos/$REPO/releases/latest" | \
|
||||
jq -r .published_at)
|
||||
COMMIT_TIMESTAMP=$(curl -s -H "Authorization: token $TOKEN" \
|
||||
"https://api.github.com/repos/$REPO/commits/master" | \
|
||||
jq -r .commit.committer.date)
|
||||
RELEASE_SECONDS=$(date --date="$RELEASE_TIMESTAMP" "+%s")
|
||||
COMMIT_SECONDS=$(date --date="$COMMIT_TIMESTAMP" "+%s")
|
||||
if (( COMMIT_SECONDS > RELEASE_SECONDS )); then
|
||||
echo "There are unreleased changes. Please release these changes before merging."
|
||||
exit 1
|
||||
fi
|
||||
echo "No unreleased changes detected."
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "2.8.29-alpha.17",
|
||||
"version": "2.8.32-alpha.3",
|
||||
"npmClient": "yarn",
|
||||
"packages": [
|
||||
"packages/*"
|
||||
|
|
|
@ -108,7 +108,13 @@
|
|||
/****************************************************/
|
||||
|
||||
const getInputData = (testData, blockInputs) => {
|
||||
let newInputData = cloneDeep(testData || blockInputs)
|
||||
// Test data is not cloned for reactivity
|
||||
let newInputData = testData || cloneDeep(blockInputs)
|
||||
|
||||
// Ensures the app action fields are populated
|
||||
if (block.event === "app:trigger" && !newInputData?.fields) {
|
||||
newInputData = cloneDeep(blockInputs)
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO - Remove after November 2023
|
||||
|
|
|
@ -2,14 +2,15 @@
|
|||
import { Button, Layout } from "@budibase/bbui"
|
||||
import DatasourceNavigator from "components/backend/DatasourceNavigator/DatasourceNavigator.svelte"
|
||||
import Panel from "components/design/Panel.svelte"
|
||||
import { isActive, goto, redirect } from "@roxi/routify"
|
||||
import { isActive, redirect, goto, params } from "@roxi/routify"
|
||||
import BetaButton from "./_components/BetaButton.svelte"
|
||||
import { datasources } from "stores/backend"
|
||||
|
||||
$: {
|
||||
// If we ever don't have any data other than the users table, prompt the
|
||||
// user to add some
|
||||
if (!$datasources.hasData) {
|
||||
// Don't redirect if setting up google sheets, or we lose the query parameter
|
||||
if (!$datasources.hasData && !$params["?continue_google_setup"]) {
|
||||
$redirect("./new")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
"array",
|
||||
"attachment",
|
||||
"boolean",
|
||||
"formula",
|
||||
"json",
|
||||
]
|
||||
|
||||
|
|
|
@ -317,6 +317,11 @@ async function performAppCreate(ctx: UserCtx) {
|
|||
}
|
||||
})
|
||||
|
||||
// Keep existing validation setting
|
||||
if (!existing.features?.componentValidation) {
|
||||
newApplication.features!.componentValidation = false
|
||||
}
|
||||
|
||||
// Migrate navigation settings and screens if required
|
||||
if (existing) {
|
||||
const navigation = await migrateAppNavigation()
|
||||
|
|
|
@ -315,7 +315,7 @@ class InternalBuilder {
|
|||
addSorting(query: KnexQuery, json: QueryJson): KnexQuery {
|
||||
let { sort, paginate } = json
|
||||
const table = json.meta?.table
|
||||
if (sort) {
|
||||
if (sort && Object.keys(sort || {}).length > 0) {
|
||||
for (let [key, value] of Object.entries(sort)) {
|
||||
const direction =
|
||||
value.direction === SortDirection.ASCENDING ? "asc" : "desc"
|
||||
|
|
|
@ -26,6 +26,12 @@ function generateReadJson({
|
|||
filters: filters || {},
|
||||
sort: sort || {},
|
||||
paginate: paginate || {},
|
||||
meta: {
|
||||
table: {
|
||||
name: table || TABLE_NAME,
|
||||
primary: ["id"],
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -636,4 +642,19 @@ describe("SQL query builder", () => {
|
|||
sql: `select * from (select * from (select * from \"test\" where LOWER(\"test\".\"name\") LIKE :1) where rownum <= :2) \"test\"`,
|
||||
})
|
||||
})
|
||||
|
||||
it("should sort SQL Server tables by the primary key if no sort data is provided", () => {
|
||||
let query = new Sql(SqlClient.MS_SQL, limit)._query(
|
||||
generateReadJson({
|
||||
sort: {},
|
||||
paginate: {
|
||||
limit: 10,
|
||||
},
|
||||
})
|
||||
)
|
||||
expect(query).toEqual({
|
||||
bindings: [10],
|
||||
sql: `select * from (select top (@p0) * from [test] order by [test].[id] asc) as [test]`,
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue