-
store.setCurrentPage("main")}>
{@html getIcon("circle", "7")}
Main
-
store.setCurrentPage("unauthenticated")}>
{@html getIcon("circle", "7")}
Login
diff --git a/packages/builder/src/userInterface/UserInterfaceRoot.svelte b/packages/builder/src/userInterface/UserInterfaceRoot.svelte
index 5c0d13119..a77a9fc7e 100644
--- a/packages/builder/src/userInterface/UserInterfaceRoot.svelte
+++ b/packages/builder/src/userInterface/UserInterfaceRoot.svelte
@@ -5,12 +5,13 @@ import PagesList from "./PagesList.svelte"
import EditComponent from "./EditComponent.svelte";
import { store } from "../builderStore";
import getIcon from "../common/icon";
-import { isRootComponent } from "./pagesParsing/searchComponents";
+import { isComponent } from "./pagesParsing/searchComponents";
import IconButton from "../common/IconButton.svelte";
import Modal from "../common/Modal.svelte";
import NewComponent from "./NewComponent.svelte";
import CurrentItemPreview from "./CurrentItemPreview.svelte";
import SettingsView from "./SettingsView.svelte";
+import PageView from "./PageView.svelte";
let newComponentPicker;
const newComponent = () => {
@@ -59,15 +60,19 @@ const settings = () => {
{#if $store.currentFrontEndItem}
-
+ {#if isComponent($store.currentFrontEndItem)}
+
+ {:else}
+
+ {/if}
{/if}
+ {#if $store.currentFrontEndItem && isComponent($store.currentFrontEndItem)}
- {#if $store.currentFrontEndItem && !isRootComponent($store.currentFrontEndItem)}
- {/if}
+ {/if}
diff --git a/packages/builder/src/userInterface/pagesParsing/searchComponents.js b/packages/builder/src/userInterface/pagesParsing/searchComponents.js
index 98c0601a2..ed822a345 100644
--- a/packages/builder/src/userInterface/pagesParsing/searchComponents.js
+++ b/packages/builder/src/userInterface/pagesParsing/searchComponents.js
@@ -5,12 +5,18 @@ import {
isUndefined,
filter,
some,
- includes
+ includes,
+ has
} from "lodash/fp";
const normalString = s => (s||"").trim().toLowerCase();
-export const isRootComponent = c => isUndefined(c.inherits);
+export const isRootComponent = c => isComponent(c) && isUndefined(c.inherits);
+
+export const isComponent = c => {
+ const hasProp = (n) => !isUndefined(c[n]);
+ return hasProp("name") && hasProp("props");
+}
export const searchAllComponents = (allComponents, phrase) => {
diff --git a/packages/server/appPackages/testApp2/appDefinition.json b/packages/server/appPackages/testApp2/appDefinition.json
index 4cd1cd93f..914b94f66 100644
--- a/packages/server/appPackages/testApp2/appDefinition.json
+++ b/packages/server/appPackages/testApp2/appDefinition.json
@@ -127,12 +127,20 @@
[
[
[
- {
- "name": "output_to_file",
- "behaviourSource": "main",
- "behaviourName": "outputToFile",
- "initialOptions": {}
- }
+ [
+ [
+ [
+ [
+ {
+ "name": "output_to_file",
+ "behaviourSource": "main",
+ "behaviourName": "outputToFile",
+ "initialOptions": {}
+ }
+ ]
+ ]
+ ]
+ ]
]
]
]
diff --git a/packages/server/appPackages/testApp2/pages.json b/packages/server/appPackages/testApp2/pages.json
index a557a500a..77af09c59 100644
--- a/packages/server/appPackages/testApp2/pages.json
+++ b/packages/server/appPackages/testApp2/pages.json
@@ -1,17 +1,15 @@
{
"main": {
- "index": {},
- "appBody": "./main.app.json"
+ "index": {
+ "title": "yyyaaa"
+ },
+ "appBody": "Random Button"
},
"unauthenticated": {
"index": {
- "_component": "budibase-components/indexHtml",
- "title": "Test App 1 - Login",
- "customScripts": [
- "MyCustomComponents.js"
- ]
+ "title": "Test App 1 - Login"
},
- "appBody": "./unauthenticated.app.json"
+ "appBody": "login_screen"
},
"componentLibraries": [
"./standard-components"
diff --git a/packages/server/builder/bundle.css b/packages/server/builder/bundle.css
index 85794faa8..ccb20fe07 100644
--- a/packages/server/builder/bundle.css
+++ b/packages/server/builder/bundle.css
@@ -38,5 +38,6 @@ input.svelte-66516k{margin-right:7px}
.root.svelte-bv289q{padding:10px}.option-container.svelte-bv289q{border-style:dotted;border-width:1px;border-color:var(--primary75);padding:3px;margin-right:5px}
.addelement-container.svelte-jliz3p{cursor:pointer;padding:3px 0px;text-align:center}.addelement-container.svelte-jliz3p:hover{background-color:var(--primary25)}.item-container.svelte-jliz3p{padding-left:3px;background:var(--secondary10)}
textarea.svelte-1wfv4cc{width:300px;height:200px}
+.root.svelte-1ersoxu{padding:15px}.help-text.svelte-1ersoxu{color:var(--slate);font-size:10pt}
/*# sourceMappingURL=bundle.css.map */
\ No newline at end of file
diff --git a/packages/server/builder/bundle.css.map b/packages/server/builder/bundle.css.map
index cf4d43fcb..a6dbef025 100644
--- a/packages/server/builder/bundle.css.map
+++ b/packages/server/builder/bundle.css.map
@@ -41,7 +41,8 @@
"..\\..\\builder\\src\\userInterface\\PropControl.svelte",
"..\\..\\builder\\src\\actionsAndTriggers\\ActionView.svelte",
"..\\..\\builder\\src\\userInterface\\PropArraySelector.svelte",
- "..\\..\\builder\\src\\common\\ValuesList.svelte"
+ "..\\..\\builder\\src\\common\\ValuesList.svelte",
+ "..\\..\\builder\\src\\userInterface\\PageView.svelte"
],
"sourcesContent": [
"\n\n
\n\n\t{#await init}\n\t\n\t\tloading
\n\n\t{:then result}\n\t\t{#if $store.hasAppPackage}\n\t\t\n\t\t{/if}\n\n\t\t{#if !$store.hasAppPackage}\n\t\t\n\t\t{/if}\n\n\t{:catch err}\n\t\t{err}
\n\t{/await}\n\n\n",
@@ -50,13 +51,13 @@
"\n\n
\n
\n \n
\n
\n {#if $store.activeNav === \"database\"}\n
\n {:else if $store.activeNav === \"actions\"}\n
\n {:else if $store.activeNav === \"access levels\"}\n
\n {/if}\n
\n
\n\n\n\n",
"\n\n
\n\n\n",
"\r\n\r\n
\r\n\r\n",
- "\n\n
\n \n
\n\n
\n {#if $store.currentFrontEndItem}\n \n {/if} \n
\n\n
\n {#if $store.currentFrontEndItem && !isRootComponent($store.currentFrontEndItem)}\n \n {/if}\n
\n\n
\n\n\n
\n\n\n\n",
+ "\n\n\n \n
\n\n
\n {#if $store.currentFrontEndItem}\n {#if isComponent($store.currentFrontEndItem)}\n
\n {:else}\n
\n {/if}\n {/if} \n
\n\n {#if $store.currentFrontEndItem && isComponent($store.currentFrontEndItem)}\n
\n \n
\n {/if}\n\n
\n\n\n\n\n\n\n",
"\r\n\r\n\r\n
Coming Sometime: {name}
\r\n\r\n\r\n",
"\n\n\n \n
\n {#if !$store.currentNode}\n
:)
\n {:else if $store.currentNode.type === \"record\"}\n \n {:else}\n \n {/if}\n \n
\n\n\n",
"\n\n\n
\n
\n
\n\n {#each $store.hierarchy.children as record}\n
\n {/each}\n\n {#each $store.hierarchy.indexes as index}\n
\n {/each}\n\n
\n\n
\n
\n
\n
\n
\n\n",
"\n\n\n\n
\n \n\n\n{#if $store.accessLevels}\n
\n \n \n | Name | \n Permissions | \n | \n
\n \n \n {#each $store.accessLevels as level}\n \n | {level.name} | \n {getPermissionsString(level.permissions)} | \n \n onLevelEdit(level)}>{@html getIcon(\"edit\")}\n onLevelDelete(level)}>{@html getIcon(\"trash\")}\n | \n
\n {/each}\n \n
\n{:else}\n(no actions added)\n{/if}\n\n\n
\n {#if isEditing}\n \n {/if} \n\n\n\n
\n\n",
"\n\n\n\n
\n
{shortName}
\n
\n \n \n
\n
\n\n {#if editingComponentInstance}\n
\n {:else}\n \n\n \n\n {#if componentDetailsExpanded}\n
\n {/if}\n\n \n\n \n
\n \n\n
\n {/if}\n\n \n\n\n\n
\n\n \n\n
\n Are you sure you want to delete this component ?\n
\n\n \n\n
\n\n
\n\n",
- "\n\n\n
store.setCurrentPage(\"main\")}>\n {@html getIcon(\"circle\", \"7\")}\n Main\n
\n\n
store.setCurrentPage(\"unauthenticated\")}>\n {@html getIcon(\"circle\", \"7\")}\n Login\n
\n\n
\n\n",
+ "\n\n\n
store.setCurrentPage(\"main\")}>\n {@html getIcon(\"circle\", \"7\")}\n Main\n
\n\n
store.setCurrentPage(\"unauthenticated\")}>\n {@html getIcon(\"circle\", \"7\")}\n Login\n
\n\n
\n\n",
"\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n",
"\r\n\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
Component Libraries\r\n \r\n \r\n \r\n \r\n
\r\n {#each $store.pages.componentLibraries as lib}\r\n
\r\n {lib}\r\n removeLibrary(lib)}/>\r\n
\r\n {/each}\r\n
\r\n \r\n\r\n
\r\n
Stylesheets\r\n \r\n \r\n \r\n \r\n
\r\n {#each $store.pages.stylesheets as stylesheet}\r\n
\r\n {stylesheet}\r\n removeStylesheet(stylesheet)}/>\r\n
\r\n {/each}\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n",
"\n\n