2020-03-17 07:41:56 +13:00
< div
data-service="database.getCollection"
data-param-collection-id="{{router.params.collection}}"
data-scope="sdk"
data-event="load,database.updateCollection"
data-name="project-collection">
2020-03-30 08:38:15 +13:00
< div
data-service="database.getDocument"
data-param-collection-id="{{router.params.collection}}"
data-param-document-id="{{router.params.id}}"
data-scope="sdk"
2020-04-18 10:19:02 +12:00
data-event="load"
2020-03-30 08:38:15 +13:00
data-name="project-document"
data-success="default">
2020-03-17 07:41:56 +13:00
2020-03-30 08:38:15 +13:00
< div class = "cover" >
< h1 class = "zone xl margin-bottom-large" >
< a data-ls-attrs = "href=/console/database/collection?id={{router.params.collection}}&project={{router.params.project}}" class = "back text-size-small" > < i class = "icon-left-open" > < / i > Collection< / a >
2020-03-17 07:41:56 +13:00
2020-03-30 08:38:15 +13:00
< br / >
2020-03-17 07:41:56 +13:00
2020-04-17 15:15:13 +12:00
< span data-ls-if = "({{project-document.$id}})" data-ls-bind = "Update Document" > < / span >
< span data-ls-if = "(!{{project-document.$id}})" data-ls-bind = "New Document" > < / span >
2020-03-30 08:38:15 +13:00
< / h1 >
< / div >
2020-03-17 07:41:56 +13:00
2020-03-30 08:38:15 +13:00
< div class = "zone xl" >
< ul class = "phases clear" data-ui-phases data-selected = "{{router.params.tab}}" >
< li data-state = "/console/database/document?id={{router.params.id}}&collection={{router.params.collection}}&project={{router.params.project}}" >
< h2 > Update< / h2 >
< div class = "row responsive margin-top-negative" >
< div class = "col span-8 margin-bottom" >
< form
data-analytics-event="submit"
data-analytics-category="console"
data-analytics-label="Update Database Document"
2020-04-02 10:41:29 +13:00
data-service="{{|documentAction}}"
2020-04-18 10:19:02 +12:00
data-name="project-document"
2020-03-30 08:38:15 +13:00
data-scope="sdk"
data-event="submit"
data-success="alert,trigger"
data-success-param-alert-text="Updated document successfully"
2020-04-18 10:19:02 +12:00
data-success-param-trigger-events="database.xupdateDocument"
2020-03-30 08:38:15 +13:00
data-failure="alert"
data-failure-param-alert-text="Failed to update document"
data-failure-param-alert-classname="error">
< label > < / label >
< div class = "box" >
2020-04-18 10:19:02 +12:00
< div data-ls-template = "template-main" data-type = "script" > < / div >
2020-03-17 07:41:56 +13:00
< / div >
2020-03-30 08:38:15 +13:00
< / form >
< / div >
< div class = "col span-4 sticky-top" >
< div data-ls-if = "({{router.params.id}})" >
< label > Document ID< / label >
< div class = "input-copy margin-bottom" >
< input type = "text" autocomplete = "off" placeholder = "" data-ls-bind = "{{project-document.$id}}" disabled data-forms-copy class = "margin-bottom-no" / >
< / div >
2020-03-17 07:41:56 +13:00
< / div >
2020-03-30 08:38:15 +13:00
< label > Collection ID< / label >
2020-03-17 07:41:56 +13:00
< div class = "input-copy margin-bottom" >
2020-03-30 08:38:15 +13:00
< input type = "text" autocomplete = "off" placeholder = "" data-ls-bind = "{{project-collection.$id}}" disabled data-forms-copy class = "margin-bottom-no" / >
2020-03-17 07:41:56 +13:00
< / div >
2020-04-02 10:41:29 +13:00
< div data-ls-if = "({{router.params.id}})" >
< form name = "database.deleteDocument" class = "margin-bottom"
data-analytics-event="submit"
data-analytics-category="console"
data-analytics-label="Delete Collection Document"
data-service="database.deleteDocument"
data-event="submit"
data-param-collection-id="{{router.params.collection}}"
data-param-document-id="{{router.params.id}}"
data-confirm="Are you sure you want to delete this document?"
data-success="alert,trigger,redirect"
data-success-param-alert-text="Document deleted successfully"
data-success-param-trigger-events="database.deleteDocument"
data-success-param-redirect-url="/console/database/collection?id={{router.params.collection}}& project={{router.params.project}}"
data-failure="alert"
data-failure-param-alert-text="Failed to delete collection"
data-failure-param-alert-classname="error">
< button type = "submit" class = "danger fill" > Delete Document< / button >
< / form >
< / div >
2020-03-17 07:41:56 +13:00
< / div >
< / div >
2020-03-30 08:38:15 +13:00
< / li >
< li data-state = "/console/database/document/api?id={{router.params.id}}&collection={{router.params.collection}}&project={{router.params.project}}" >
< h2 > API< / h2 >
< div class = "row responsive" >
< div class = "col span-3" >
< ul >
< li >
< a data-ls-attrs = "href=/console/database/document/api?id={{router.params.id}}&collection={{router.params.collection}}&project={{router.params.project}}#api-response" > < i class = "icon-angle-circled-right margin-start-negative-tiny margin-end-tiny" > < / i > Response< / a >
< / li >
< / ul >
< / div >
< div class = "col span-9" >
< h3 id = "api-response" > Response< / h3 >
< input type = "hidden" data-ls-bind = "{{project-document}}" data-forms-code / >
< / div >
2020-03-17 07:41:56 +13:00
< / div >
2020-03-30 08:38:15 +13:00
< / li >
< / ul >
< / div >
2020-03-17 07:41:56 +13:00
< / div >
< / div >
2020-04-02 10:41:29 +13:00
<?php
$list = [
[
'key' => '',
2020-04-04 08:27:18 +13:00
'bind' => '{{project-document|documentLabel}}',
2020-04-02 10:41:29 +13:00
],
[
'key' => '-array',
2020-04-04 08:27:18 +13:00
'bind' => '{{node}}',
2020-04-02 10:41:29 +13:00
],
2020-04-16 16:58:27 +12:00
[
'key' => '-child',
'bind' => '{{project-document|documentLabel}}.{{rule.key}}{{childRule.key}}',
],
2020-04-02 10:41:29 +13:00
];
?>
<?php foreach ( $list as $mode ) : ?>
2020-04-16 16:58:27 +12:00
< script type = "text/html" id = "xtemplate-document-form <?php echo $mode [ 'key' ]; ?> " >
2020-04-04 08:27:18 +13:00
< div class = "info margin-bottom-small" >
2020-04-16 16:58:27 +12:00
< fieldset data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" data-cast-to = "object" >
< textarea data-ls-attrs = "data-ls-bind=\{\{project-document.{{rule.key}}.$id\}\}" type = "text" autocomplete = "off" data-ls-bind = " <?php echo $mode [ 'bind' ]; ?> " ></ textarea >
< textarea data-ls-attrs = "data-ls-bind=\{\{project-document.{{rule.key}}.name\}\}" type = "text" autocomplete = "off" data-ls-bind = " <?php echo $mode [ 'bind' ]; ?> " ></ textarea >
< / fieldset >
2020-04-04 08:27:18 +13:00
< / div >
< button type = "button" class = "reverse margin-end-small" > Add< / button >
< button type = "button" class = "reverse" > Search< / button >
< / script >
< script type = "text/html" id = "xtemplate-document-form <?php echo $mode [ 'key' ]; ?> " >
< fieldset data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" data-cast-to = "object" >
< input name = "$id" type = "hidden" data-ls-bind = "{{project-document.$id}}" / >
< input name = "$collection" type = "hidden" data-ls-bind = "{{project-collection.$id}}" / >
< ul data-ls-loop = "project-collection.rules" data-ls-as = "rule" >
< li >
< label class = "margin-bottom-no" >
< span data-ls-bind = "{{rule.label}}" > < / span >
< span data-ls-if = "{{rule.array}}.toString() == 'true'" >
< span class = "text-size-small text-fade" > (Array)< / span >
< / span >
< / label >
< div data-ls-if = "{{rule.required}}.toString() == 'true'" class = "margin-bottom-small" >
< span class = "text-size-xs text-danger text-fade" > required< / span >
< / div >
< div data-ls-if = "({{rule.required}}.toString() == 'false')" class = "margin-bottom-small" >
< span class = "text-size-xs text-fade" > optional< / span >
< / div >
< div data-ls-if = "({{rule.array}}.toString() == 'false')" >
< div data-ls-template = "template-{{rule.type}}-form" data-type = "script" class = "margin-bottom" > < / div >
< / div >
< div data-ls-if = "({{rule.array}}.toString() == 'true')" >
< div data-ls-template = "template-array-form" data-type = "script" class = "margin-bottom" > < / div >
< / div >
< / li >
< / ul >
< / fieldset >
2020-04-02 10:41:29 +13:00
< / script >
< script type = "text/html" id = "template-text-form <?php echo $mode [ 'key' ]; ?> " >
2020-04-04 08:27:18 +13:00
< input data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" type = "text" autocomplete = "off" data-ls-bind = " <?php echo $mode [ 'bind' ]; ?> " data-forms-text-direction data-forms-text-count />
< / script >
< script type = "text/html" id = "template-string-form <?php echo $mode [ 'key' ]; ?> " >
< textarea data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" type = "text" autocomplete = "off" data-ls-bind = " <?php echo $mode [ 'bind' ]; ?> " data-forms-text-direction data-forms-text-count ></ textarea >
2020-04-02 10:41:29 +13:00
< / script >
< script type = "text/html" id = "template-numeric-form <?php echo $mode [ 'key' ]; ?> " >
2020-04-04 08:27:18 +13:00
< input data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" type = "number" autocomplete = "off" data-ls-bind = " <?php echo $mode [ 'bind' ]; ?> " data-cast-to = "integer" />
2020-04-02 10:41:29 +13:00
< / script >
< script type = "text/html" id = "template-boolean-form <?php echo $mode [ 'key' ]; ?> " >
2020-04-04 08:27:18 +13:00
< input data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" type = "hidden" data-forms-switch data-ls-bind = " <?php echo $mode [ 'bind' ]; ?> " data-cast-to = "boolean" />
< / script >
< script type = "text/html" id = "template-url-form <?php echo $mode [ 'key' ]; ?> " >
< input data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" type = "url" data-ls-bind = " <?php echo $mode [ 'bind' ]; ?> " />
< div class = "preview" data-ls-if = "( <?php echo $mode [ 'bind' ]; ?> .toString() !== '')" >
< / div >
2020-04-02 10:41:29 +13:00
< / script >
<?php endforeach ; ?>
2020-03-18 18:10:59 +13:00
< script type = "text/html" id = "template-array-form" >
< input type = "hidden" data-ls-attrs = "name={{rule.key}},{{rule.required|documentRequired}}" data-cast-to = "array-empty" >
2020-03-30 20:19:13 +13:00
< ul data-forms-add = "New" data-ls-loop = "project-document.{{rule.key}}" data-ls-as = "node" class = "sortable" >
2020-03-30 08:38:15 +13:00
< li data-forms-remove data-forms-move-up data-forms-move-down >
2020-04-02 10:41:29 +13:00
< div class = "row thin responsive margin-bottom-small force-reverse" >
< div class = "col span-1" >
2020-04-16 16:58:27 +12:00
< div class = "drop-list bottom end" data-ls-ui-open = "" data-button-text = "" data-button-icon = "icon-cog" data-button-selector = "[data-toggler]" data-button-class = "round dark small margin-bottom-small margin-top-tiny pull-end" data-blur = "1" tabindex = "1" >
2020-04-02 10:41:29 +13:00
< ul >
< li data-move-up >
< button type = "button" class = "link" > < i class = "icon-up-dir" > < / i > Move Up< / button >
< / li >
< li data-move-down >
< button type = "button" class = "link" > < i class = "icon-down-dir" > < / i > Move Down< / button >
< / li >
< li data-remove >
< button type = "button" class = "link" > < i class = "icon-cancel" > < / i > Remove< / button >
< / li >
< / ul >
< / div >
2020-03-30 08:38:15 +13:00
< / div >
2020-04-02 10:41:29 +13:00
< div class = "col span-11" >
2020-03-30 08:38:15 +13:00
< div data-ls-template = "template-{{rule.type}}-form-array" data-type = "script" class = "margin-bottom" > < / div >
< / div >
< / div >
2020-04-16 16:58:27 +12:00
< hr class = "margin-top-no" / >
2020-03-30 08:38:15 +13:00
< / li >
< / ul >
2020-03-30 20:19:13 +13:00
2020-04-04 08:27:18 +13:00
< / script >
2020-04-16 16:58:27 +12:00
< script type = "text/html" id = "template-main" >
2020-04-17 15:15:13 +12:00
2020-04-16 16:58:27 +12:00
< input name = "documentId" type = "hidden" data-ls-bind = "{{project-document.$id}}" / >
< input name = "collectionId" type = "hidden" data-ls-bind = "{{project-collection.$id}}" / >
< fieldset name = "data" data-cast-to = "object" >
< ul data-ls-loop = "project-collection.rules" data-ls-as = "rule" >
< li >
< label class = "margin-bottom-no" >
< span data-ls-bind = "{{rule.label}}" > < / span >
< span data-ls-if = "{{rule.array}}.toString() == 'true'" >
< span class = "text-size-small text-fade" > (Array)< / span >
< / span >
< / label >
< div data-ls-if = "{{rule.required}}.toString() == 'true'" class = "margin-bottom-small" >
< span class = "text-size-xs text-danger text-fade" > required< / span >
< / div >
< div data-ls-if = "({{rule.required}}.toString() == 'false')" class = "margin-bottom-small" >
< span class = "text-size-xs text-fade" > optional< / span >
< / div >
< div data-ls-if = "({{rule.array}}.toString() == 'false')" >
< div data-ls-template = "template-{{rule.type}}-form" data-type = "script" class = "margin-bottom" > < / div >
< / div >
< div data-ls-if = "({{rule.array}}.toString() == 'true')" >
< div data-ls-template = "template-array-form" data-type = "script" class = "margin-bottom" > < / div >
< / div >
< / li >
< / ul >
< / fieldset >
2020-04-18 10:19:02 +12:00
< div class = "toggle margin-bottom margin-top" data-ls-ui-open >
2020-04-16 16:58:27 +12:00
< i class = "icon-plus pull-end margin-top-tiny" > < / i >
< i class = "icon-minus pull-end margin-top-tiny" > < / i >
< h3 class = "margin-bottom-large" > Permissions< / h3 >
< label for = "collection-read" > Read Permissions < span class = "text-size-small" > (< a data-ls-attrs = "href={{env.HOME}}/docs/permissions" target = "_blank" > Learn more< / a > )< / span > < / label >
< input type = "hidden" id = "collection-read" name = "read" data-forms-tags data-cast-to = "json" data-ls-bind = "{{project-document.$permissions.read}}" placeholder = "User ID, Team ID or Role" / >
< label for = "collection-write" > Write Permissions < span class = "text-size-small" > (< a data-ls-attrs = "href={{env.HOME}}/docs/permissions" target = "_blank" > Learn more< / a > )< / label >
< input type = "hidden" id = "collection-write" name = "write" data-forms-tags data-cast-to = "json" data-ls-bind = "{{project-collection.$permissions.write}}" placeholder = "User ID, Team ID or Role" / >
< / div >
< button > Update< / button >
< / script >
< div
2020-04-04 08:27:18 +13:00
data-service="database.listCollections"
data-event="load,database.createCollection,database.updateCollection,database.deleteCollection"
data-scope="sdk"
data-name="project-collections">
< / div >