Work in progress, DB ui
This commit is contained in:
parent
61a6a19b4d
commit
7bbcfa6cb6
|
@ -1,4 +1,4 @@
|
|||
<?php
|
||||
const VERSION = 'v0.0.0dev';
|
||||
const VERSION = '0.1.2';
|
||||
|
||||
return VERSION;
|
||||
|
|
|
@ -340,8 +340,8 @@ $utopia->get('/v1/database/:collectionId/documents/:documentId')
|
|||
$output = $document->getArrayCopy();
|
||||
|
||||
$paths = explode('/', $request->getParam('q', ''));
|
||||
$paths = array_slice($paths, 5, count($paths));
|
||||
|
||||
$paths = array_slice($paths, 6, count($paths));
|
||||
|
||||
if(count($paths) > 0) {
|
||||
if(count($paths) % 2 == 1) {
|
||||
$output = $document->getAttribute(implode('.', $paths));
|
||||
|
@ -353,6 +353,7 @@ $utopia->get('/v1/database/:collectionId/documents/:documentId')
|
|||
|
||||
$output = ($output instanceof Document) ? $output->getArrayCopy() : $output;
|
||||
|
||||
var_dump($output);
|
||||
if(!is_array($output)) {
|
||||
throw new Exception('No document found', 404);
|
||||
}
|
||||
|
|
|
@ -8,7 +8,8 @@ use Utopia\Locale\Locale;
|
|||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="zone xxl">
|
||||
<div class="zone xxl margin-top-negative-xl">
|
||||
|
||||
<div class="box dashboard database margin-bottom-xl">
|
||||
<div class="row responsive">
|
||||
<div class="col span-3">
|
||||
|
@ -71,15 +72,30 @@ use Utopia\Locale\Locale;
|
|||
data-scope="sdk"
|
||||
data-name="project-collections">
|
||||
|
||||
<div data-ls-if="0 == {{project-collections.sum}}">
|
||||
<h3 class="margin-bottom">No Collections Found</h3>
|
||||
<div data-ls-if="0 == {{project-collections.sum}}" class="empty">
|
||||
<h3>No Collections Found</h3>
|
||||
</div>
|
||||
|
||||
<div data-ls-if="0 != {{project-collections.sum}}">
|
||||
<ul data-ls-loop="project-collections.collections" data-ls-as="collection" class="items">
|
||||
<li>
|
||||
<form
|
||||
data-service="database.listDocuments"
|
||||
data-event="submit"
|
||||
data-param-search=""
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-offset=""
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="collectionId=collectionId,search=dsearch,offset=doffset">
|
||||
<input name="collectionId" data-ls-bind="{{collection.$uid}}" type="hidden" />
|
||||
<button><span data-ls-bind="{{collection.$uid}}"></span></button>
|
||||
</form>
|
||||
|
||||
<i class="icon-right-open pull-end"></i>
|
||||
<span data-ls-bind="{{collection.name}}"></span>
|
||||
<span class="name text-one-liner" data-ls-bind="{{collection.name}}"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -118,99 +134,125 @@ use Utopia\Locale\Locale;
|
|||
</div>
|
||||
</div>
|
||||
<div class="col span-3">
|
||||
<h2>Documents</h2>
|
||||
<h2 xdata-ls-bind="{{project-documents.name}}">Documents</h2>
|
||||
|
||||
<form class="search"
|
||||
data-service="database.listDocuments"
|
||||
data-event="submit"
|
||||
xdata-param-collection-id="{{router.params.id}}"
|
||||
data-param-collection-id="5cfd47751a67c"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-offset=""
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="dsearch,doffset">
|
||||
<input name="dsearch" id="searchDocuments" type="search" autocomplete="off" placeholder="Search" class="margin-bottom-no" data-ls-bind="{{router.params.dsearch}}">
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
<div data-ui-modal class="box modal close" data-button-text="Add document" data-button-class="button link" data-button-icon="icon-plus">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
|
||||
<h1>Create Document</h1>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wrapper"
|
||||
data-service="database.listDocuments"
|
||||
data-event="load,document-create,document-update,document-delete"
|
||||
xdata-param-collection-id="{{router.params.id}}"
|
||||
data-param-collection-id="5cfd47751a67c"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-offset="{{router.params.doffset}}"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents">
|
||||
|
||||
<div data-ls-if="0 == {{project-documents.sum}}">
|
||||
<h3 class="margin-bottom">No Documents Found</h3>
|
||||
</div>
|
||||
|
||||
<div data-ls-if="0 != {{project-documents.sum}}">
|
||||
<ul data-ls-loop="project-documents.documents" data-ls-as="node" class="items">
|
||||
<li>
|
||||
<i class="icon-right-open pull-end"></i>
|
||||
<span data-ls-bind="{{node.$uid}}"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div data-ls-if="({{router.params.collectionId}})" style="display: none">
|
||||
<form class="search"
|
||||
data-service="database.listDocuments"
|
||||
data-event="submit"
|
||||
data-param-collection-id="{{router.params.collectionId}}"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-offset=""
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="dsearch,doffset">
|
||||
<input name="dsearch" id="searchDocuments" type="search" autocomplete="off" placeholder="Search" class="margin-bottom-no" data-ls-bind="{{router.params.dsearch}}">
|
||||
</form>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="clear text-align-center paging">
|
||||
<form
|
||||
data-service="database.listDocuments"
|
||||
data-event="submit"
|
||||
xdata-param-collection-id="{{router.params.id}}"
|
||||
data-param-collection-id="5cfd47751a67c"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="search=dsearch,offset=doffset">
|
||||
<button name="offset" data-paging-back data-offset="{{router.params.doffset}}" data-sum="{{project-documents.sum}}" class="margin-end round small" aria-label="Back"><i class="icon-left-open"></i></button>
|
||||
</form>
|
||||
<div data-ui-modal class="box modal close" data-button-text="Add document" data-button-class="button link" data-button-icon="icon-plus">
|
||||
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
|
||||
|
||||
<span data-ls-bind="{{router.params.doffset|pageCurrent}} / {{project-documents.sum|pageTotal}}"></span>
|
||||
<h1>Create Document</h1>
|
||||
|
||||
<form
|
||||
data-service="database.listDocuments"
|
||||
data-event="submit"
|
||||
xdata-param-collection-id="{{router.params.id}}"
|
||||
data-param-collection-id="5cfd47751a67c"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="search=dsearch,offset=doffset">
|
||||
<button name="offset" data-paging-next data-offset="{{router.params.doffset}}" data-sum="{{project-documents.sum}}" class="margin-start round small" aria-label="Next"><i class="icon-right-open"></i></button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="wrapper"
|
||||
data-service="database.listDocuments"
|
||||
data-event="load,document-create,document-update,document-delete"
|
||||
data-param-collection-id="{{router.params.collectionId}}"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-offset="{{router.params.doffset}}"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents">
|
||||
|
||||
<div data-ls-if="0 == {{project-documents.sum}}" class="empty">
|
||||
<h3>No Documents Found</h3>
|
||||
</div>
|
||||
|
||||
<div data-ls-if="0 != {{project-documents.sum}}">
|
||||
<ul data-ls-loop="project-documents.documents" data-ls-as="node" class="items">
|
||||
<li>
|
||||
<form
|
||||
data-service="database.getDocument"
|
||||
data-event="submit"
|
||||
data-scope="sdk"
|
||||
data-name="project-document"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="documentId=documentId">
|
||||
<input name="collectionId" data-ls-bind="{{router.params.collectionId}}" type="hidden" />
|
||||
<input name="documentId" data-ls-bind="{{node.$uid}}" type="hidden" />
|
||||
<button><span data-ls-bind="{{node.$uid}}"></span></button>
|
||||
</form>
|
||||
|
||||
<i class="icon-right-open pull-end"></i>
|
||||
<span data-ls-bind="{{node.$uid}}"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<div class="clear text-align-center paging">
|
||||
<form
|
||||
data-service="database.listDocuments"
|
||||
data-event="submit"
|
||||
data-param-collection-id="{{router.params.collectionId}}"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="search=dsearch,offset=doffset">
|
||||
<button name="offset" data-paging-back data-offset="{{router.params.doffset}}" data-sum="{{project-documents.sum}}" class="margin-end round small" aria-label="Back"><i class="icon-left-open"></i></button>
|
||||
</form>
|
||||
|
||||
<span data-ls-bind="{{router.params.doffset|pageCurrent}} / {{project-documents.sum|pageTotal}}"></span>
|
||||
|
||||
<form
|
||||
data-service="database.listDocuments"
|
||||
data-event="submit"
|
||||
data-param-collection-id="{{router.params.collectionId}}"
|
||||
data-param-search="{{router.params.dsearch}}"
|
||||
data-param-limit="<?php echo APP_PAGING_LIMIT; ?>"
|
||||
data-param-order-type="DESC"
|
||||
data-scope="sdk"
|
||||
data-name="project-documents"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="search=dsearch,offset=doffset">
|
||||
<button name="offset" data-paging-next data-offset="{{router.params.doffset}}" data-sum="{{project-documents.sum}}" class="margin-start round small" aria-label="Next"><i class="icon-right-open"></i></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col span-6">
|
||||
<h2>Preview</h2>
|
||||
|
||||
<div class="code"></div>
|
||||
<div data-ls-if="({{router.params.documentId}})" style="display: none">
|
||||
<div
|
||||
data-service="database.getDocument"
|
||||
data-event="load"
|
||||
data-scope="sdk"
|
||||
data-name="project-document"
|
||||
data-param-collection-id="{{router.params.collectionId}}"
|
||||
data-param-document-id="{{router.params.documentId}}"
|
||||
data-success="state"
|
||||
data-success-param-state-keys="documentId=documentId">
|
||||
</div>
|
||||
|
||||
<div class="code">
|
||||
<div class="ide margin-bottom-no">
|
||||
<pre class="line-numbers"><code class="prism language-javascript" data-ls-bind="{{project-document}}" data-prism></code></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
8
composer.lock
generated
8
composer.lock
generated
|
@ -1758,12 +1758,12 @@
|
|||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/utopia-php/locale.git",
|
||||
"reference": "9d63aa8bfc17a25886ebf1351edffe6e9ae67392"
|
||||
"reference": "88f62c22fd599ca5c992f2a50124df750d2304f4"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/utopia-php/locale/zipball/9d63aa8bfc17a25886ebf1351edffe6e9ae67392",
|
||||
"reference": "9d63aa8bfc17a25886ebf1351edffe6e9ae67392",
|
||||
"url": "https://api.github.com/repos/utopia-php/locale/zipball/88f62c22fd599ca5c992f2a50124df750d2304f4",
|
||||
"reference": "88f62c22fd599ca5c992f2a50124df750d2304f4",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
|
@ -1796,7 +1796,7 @@
|
|||
"upf",
|
||||
"utopia"
|
||||
],
|
||||
"time": "2019-05-08 20:29:38"
|
||||
"time": "2019-08-17 08:18:24"
|
||||
},
|
||||
{
|
||||
"name": "utopia-php/registry",
|
||||
|
|
2
public/dist/styles/default-ltr.css
vendored
2
public/dist/styles/default-ltr.css
vendored
File diff suppressed because one or more lines are too long
|
@ -3,7 +3,7 @@
|
|||
padding: 30px 50px;
|
||||
margin: 0 -50px;
|
||||
position: relative;
|
||||
border-bottom: solid 2px #ead2da;
|
||||
border-bottom: solid 1px #dedede;
|
||||
//box-shadow: 0 0 3px rgba(0, 0, 0, 0.05);
|
||||
//border-bottom: solid 2px #e3e9ec;;
|
||||
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
//height: 500px;
|
||||
|
||||
.col {
|
||||
height: 452px;
|
||||
|
||||
&:after {
|
||||
width: 2px;
|
||||
right: 20px;
|
||||
|
@ -20,6 +22,7 @@
|
|||
h2 {
|
||||
font-size: 13px;
|
||||
line-height: 20px;
|
||||
height: 20px;
|
||||
background-color: #f5f5f5;
|
||||
margin: -20px -20px 0 -20px;
|
||||
padding: 10px 20px;
|
||||
|
@ -27,6 +30,17 @@
|
|||
font-weight: 600;
|
||||
}
|
||||
|
||||
.empty {
|
||||
height: 160px;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin: 50px 0;
|
||||
|
||||
h3 {
|
||||
line-height: 120px;
|
||||
}
|
||||
}
|
||||
|
||||
.search {
|
||||
background-color: #f5f5f5;
|
||||
margin: 0 -20px 0 -20px;
|
||||
|
@ -42,8 +56,19 @@
|
|||
}
|
||||
|
||||
.code {
|
||||
background: red;
|
||||
height: 411px;
|
||||
background: #f5f5f5;
|
||||
margin: 0 -20px -20px -20px;
|
||||
padding: 20px;
|
||||
width: ~"calc(100% - 10px)";
|
||||
|
||||
.ide {
|
||||
overflow: scroll;
|
||||
height: 451px;
|
||||
margin: -20px;
|
||||
box-shadow: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.paging {
|
||||
|
@ -77,20 +102,48 @@
|
|||
}
|
||||
|
||||
.items {
|
||||
margin: -5px -20px;
|
||||
height: 270px;
|
||||
margin: 0 -20px;
|
||||
height: 260px;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
|
||||
form {
|
||||
opacity: 0;
|
||||
position: relative;
|
||||
|
||||
button {
|
||||
background: red;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
.func-start(0);
|
||||
.func-end(0);
|
||||
width: 100%;
|
||||
height: 45px;
|
||||
border-radius: 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
padding: 0 20px;
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
margin: 0 0;
|
||||
line-height: 45px;
|
||||
font-size: 15px;
|
||||
.func-padding-start(50px);
|
||||
.func-padding-end(30px);
|
||||
position: relative;
|
||||
|
||||
i {
|
||||
position: absolute;
|
||||
display: none;
|
||||
.func-end(10px);
|
||||
}
|
||||
|
||||
.name {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
height: 28px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
|
|
|
@ -1013,6 +1013,7 @@ ol {
|
|||
.func-start(-10px);
|
||||
max-width: 280px;
|
||||
min-width: 240px;
|
||||
overflow: hidden;
|
||||
|
||||
&:before {
|
||||
border: solid;
|
||||
|
@ -1047,7 +1048,6 @@ ol {
|
|||
&:hover {
|
||||
background: @config-color-fade-super;
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue