1
0
Fork 0
mirror of synced 2024-06-02 10:54:44 +12:00

Work in progress, DB ui

This commit is contained in:
eldadfux 2019-08-18 08:25:32 +03:00
parent 61a6a19b4d
commit 7bbcfa6cb6
8 changed files with 197 additions and 101 deletions

View file

@ -1,4 +1,4 @@
<?php
const VERSION = 'v0.0.0dev';
const VERSION = '0.1.2';
return VERSION;

View file

@ -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);
}

View file

@ -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
View file

@ -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",

File diff suppressed because one or more lines are too long

View file

@ -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;;

View file

@ -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 {

View file

@ -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;
}
}