Added collection editor view
This commit is contained in:
parent
2ec497d88c
commit
4738dc059d
10 changed files with 41 additions and 42 deletions
|
@ -2,24 +2,19 @@
|
||||||
|
|
||||||
use Utopia\Locale\Locale;
|
use Utopia\Locale\Locale;
|
||||||
?>
|
?>
|
||||||
<div class="cover margin-bottom-large" data-service="database.getCollection" data-param-id="{{router.params.id}}" data-scope="sdk" data-event="load" data-name="project-collection" data-success="render,trigger" data-success-triggers="collections.load" data-error="render" data-error-rerender="">
|
<div class="cover margin-bottom-large" data-service="database.getCollection" data-param-collection-id="{{router.params.id}}" data-scope="sdk" data-event="load" data-name="project-collection" data-success="render,trigger" data-success-triggers="collections.load" data-error="render" data-error-rerender="">
|
||||||
<h1 class="zone xl margin-bottom-large margin-top">
|
<h1 class="zone xl margin-bottom-large">
|
||||||
<a data-ls-attrs="href=/console/openings/new?company={{router.params.company}}" class="button icon margin-top-tiny pull-end"><i class="icon-plus"></i> Collection</a>
|
<a data-ls-attrs="href=/console/database?project={{router.params.project}}" class="back text-size-small"><i class="icon-left-open"></i> Collections</a>
|
||||||
|
|
||||||
<span data-ls-bind="{{project-collection.name}}"></span>
|
<br />
|
||||||
|
|
||||||
|
<span data-ls-bind="{{project-collection.name}}"> </span>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="zone xl">
|
<div class="zone xl">
|
||||||
<div class="zone xl">
|
<div class="zone xl">
|
||||||
<div class="box margin-bottom">
|
<div class="box margin-bottom">
|
||||||
<ul data-ls-loop="project-collections.collections" data-ls-as="collection" class="list">
|
|
||||||
<li class="clear">
|
|
||||||
<img src="" data-ls-attrs="src={{collection.name|gravatar}}" alt="Collection Avatar" class="avatar margin-end pull-start" />
|
|
||||||
|
|
||||||
<a data-ls-bind="{{collection.name}}" data-ls-attrs="href=/console/database/collection?project={{console-project.$uid}}&id={{collection.$uid}}"></a>
|
|
||||||
<p class=" note margin-bottom-no margin-top-small"><span data-ls-bind="{{collection.rules.length}}"></span> fields</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
|
@ -4,7 +4,7 @@ use Utopia\Locale\Locale;
|
||||||
?>
|
?>
|
||||||
<div class="cover margin-bottom-large">
|
<div class="cover margin-bottom-large">
|
||||||
<h1 class="zone xl margin-bottom-large margin-top">
|
<h1 class="zone xl margin-bottom-large margin-top">
|
||||||
<a data-ls-attrs="href=/console/openings/new?company={{router.params.company}}" class="button icon margin-top-tiny pull-end"><i class="icon-plus"></i> Collection</a>
|
<a data-ls-attrs="href=/console/database?project={{router.params.company}}" class="button icon margin-top-tiny pull-end"><i class="icon-plus"></i> Collection</a>
|
||||||
|
|
||||||
<?php echo Locale::getText('console.database.title'); ?>
|
<?php echo Locale::getText('console.database.title'); ?>
|
||||||
</h1>
|
</h1>
|
||||||
|
@ -23,3 +23,4 @@ use Utopia\Locale\Locale;
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
6
package-lock.json
generated
6
package-lock.json
generated
|
@ -823,9 +823,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"appwrite": {
|
"appwrite": {
|
||||||
"version": "1.0.7",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/appwrite/-/appwrite-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/appwrite/-/appwrite-1.0.8.tgz",
|
||||||
"integrity": "sha512-sPzz2TTbWhvHQ8fqyX9E5HJ1ovU1G8EFmBs5apYpJlM8F/3ZzJ+RiyM/hF8l39wLprdzsExMcJ4sbjbLZsZjlw==",
|
"integrity": "sha512-0W0zvJatZ0Mip3TNjz1tGGvu6FDkcUs7jPjEcl1mSC2AHu3EcCF8uAkzAZtWVlfOVkMHLkgp1HTVMZQM9SOeVw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"archy": {
|
"archy": {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"repository": "public",
|
"repository": "public",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"appwrite": "^1.0.7",
|
"appwrite": "^1.0.8",
|
||||||
"gulp": "^4.0.0",
|
"gulp": "^4.0.0",
|
||||||
"gulp-clean-css": "^4.0.0",
|
"gulp-clean-css": "^4.0.0",
|
||||||
"gulp-concat": "2.5.2",
|
"gulp-concat": "2.5.2",
|
||||||
|
|
21
public/dist/scripts/app-all.js
vendored
21
public/dist/scripts/app-all.js
vendored
File diff suppressed because one or more lines are too long
19
public/dist/scripts/app-dep.js
vendored
19
public/dist/scripts/app-dep.js
vendored
|
@ -4,7 +4,7 @@
|
||||||
{http.addGlobalHeader('X-Appwrite-Key',value);config.key=value;return this;};let setLocale=function(value)
|
{http.addGlobalHeader('X-Appwrite-Key',value);config.key=value;return this;};let setLocale=function(value)
|
||||||
{http.addGlobalHeader('X-Appwrite-Locale',value);config.locale=value;return this;};let setMode=function(value)
|
{http.addGlobalHeader('X-Appwrite-Locale',value);config.locale=value;return this;};let setMode=function(value)
|
||||||
{http.addGlobalHeader('X-Appwrite-Mode',value);config.mode=value;return this;};let http=function(document){let globalParams=[],globalHeaders=[];let addParam=function(url,param,value){let a=document.createElement('a'),regex=/(?:\?|&|&)+([^=]+)(?:=([^&]*))*/g;let match,str=[];a.href=url;param=encodeURIComponent(param);while(match=regex.exec(a.search))if(param!==match[1])str.push(match[1]+(match[2]?"="+match[2]:""));str.push(param+(value?"="+encodeURIComponent(value):""));a.search=str.join("&");return a.href;};let buildQuery=function(params){let str=[];for(let p in params){if(params.hasOwnProperty(p)){str.push(encodeURIComponent(p)+"="+encodeURIComponent(params[p]));}}
|
{http.addGlobalHeader('X-Appwrite-Mode',value);config.mode=value;return this;};let http=function(document){let globalParams=[],globalHeaders=[];let addParam=function(url,param,value){let a=document.createElement('a'),regex=/(?:\?|&|&)+([^=]+)(?:=([^&]*))*/g;let match,str=[];a.href=url;param=encodeURIComponent(param);while(match=regex.exec(a.search))if(param!==match[1])str.push(match[1]+(match[2]?"="+match[2]:""));str.push(param+(value?"="+encodeURIComponent(value):""));a.search=str.join("&");return a.href;};let buildQuery=function(params){let str=[];for(let p in params){if(params.hasOwnProperty(p)){str.push(encodeURIComponent(p)+"="+encodeURIComponent(params[p]));}}
|
||||||
return str.join("&");};let addGlobalHeader=function(key,value){globalHeaders[key]={key:key.toLowerCase(),value:value.toLowerCase()};};let addGlobalParam=function(key,value){globalParams.push({key:key,value:value});};addGlobalHeader('x-sdk-version','appwrite:javascript:v1.0.7');addGlobalHeader('content-type','');let call=function(method,path,headers={},params={},progress=null){let i;path=config.endpoint+path;if(-1===['GET','POST','PUT','DELETE','TRACE','HEAD','OPTIONS','CONNECT','PATCH'].indexOf(method)){throw new Error('var method must contain a valid HTTP method name');}
|
return str.join("&");};let addGlobalHeader=function(key,value){globalHeaders[key]={key:key.toLowerCase(),value:value.toLowerCase()};};let addGlobalParam=function(key,value){globalParams.push({key:key,value:value});};addGlobalHeader('x-sdk-version','appwrite:javascript:v1.0.8');addGlobalHeader('content-type','');let call=function(method,path,headers={},params={},progress=null){let i;path=config.endpoint+path;if(-1===['GET','POST','PUT','DELETE','TRACE','HEAD','OPTIONS','CONNECT','PATCH'].indexOf(method)){throw new Error('var method must contain a valid HTTP method name');}
|
||||||
if(typeof path!=='string'){throw new Error('var path must be of type string');}
|
if(typeof path!=='string'){throw new Error('var path must be of type string');}
|
||||||
if(typeof headers!=='object'){throw new Error('var headers must be of type object');}
|
if(typeof headers!=='object'){throw new Error('var headers must be of type object');}
|
||||||
for(i=0;i<globalParams.length;i++){path=addParam(path,globalParams[i].key,globalParams[i].value);}
|
for(i=0;i<globalParams.length;i++){path=addParam(path,globalParams[i].key,globalParams[i].value);}
|
||||||
|
@ -48,20 +48,21 @@ let path='/avatars/favicon';return http.get(path,{'content-type':'application/js
|
||||||
let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"');}
|
let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"');}
|
||||||
let path='/avatars/image';return http.get(path,{'content-type':'application/json'},{'url':url,'width':width,'height':height});},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"');}
|
let path='/avatars/image';return http.get(path,{'content-type':'application/json'},{'url':url,'width':width,'height':height});},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"');}
|
||||||
let path='/avatars/qr';return http.get(path,{'content-type':'application/json'},{'text':text,'size':size,'margin':margin,'download':download});}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"');}
|
let path='/avatars/qr';return http.get(path,{'content-type':'application/json'},{'text':text,'size':size,'margin':margin,'download':download});}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"');}
|
||||||
let path='/database';return http.post(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
let path='/database';return http.post(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},getCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{'filters':filters,'offset':offset,'limit':limit,'order-field':orderField,'order-type':orderType,'order-cast':orderCast,'search':search,'first':first,'last':last});},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{});},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
if(data===undefined){throw new Error('Missing required parameter: "data"');}
|
|
||||||
let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.post(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write,'parentDocument':parentDocument,'parentProperty':parentProperty,'parentPropertyType':parentPropertyType});},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
|
||||||
if(name===undefined){throw new Error('Missing required parameter: "name"');}
|
if(name===undefined){throw new Error('Missing required parameter: "name"');}
|
||||||
let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.put(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.put(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.delete(path,{'content-type':'application/json'},{});},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.delete(path,{'content-type':'application/json'},{});},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
|
let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{'filters':filters,'offset':offset,'limit':limit,'order-field':orderField,'order-type':orderType,'order-cast':orderCast,'search':search,'first':first,'last':last});},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
|
if(data===undefined){throw new Error('Missing required parameter: "data"');}
|
||||||
|
let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.post(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write,'parentDocument':parentDocument,'parentProperty':parentProperty,'parentPropertyType':parentPropertyType});},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');}
|
if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');}
|
||||||
let path='/database/{collectionId}/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.get(path,{'content-type':'application/json'},{});},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.get(path,{'content-type':'application/json'},{});},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');}
|
if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');}
|
||||||
if(data===undefined){throw new Error('Missing required parameter: "data"');}
|
if(data===undefined){throw new Error('Missing required parameter: "data"');}
|
||||||
let path='/database/{collectionId}/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.patch(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write});},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.patch(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write});},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');}
|
||||||
if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');}
|
if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');}
|
||||||
let path='/database/{collectionId}/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.delete(path,{'content-type':'application/json'},{});}};let locale={getLocale:function(){let path='/locale';return http.get(path,{'content-type':'application/json'},{});},getCountries:function(){let path='/locale/countries';return http.get(path,{'content-type':'application/json'},{});},getCountriesEU:function(){let path='/locale/countries/eu';return http.get(path,{'content-type':'application/json'},{});},getCountriesPhones:function(){let path='/locale/countries/phones';return http.get(path,{'content-type':'application/json'},{});}};let projects={listProjects:function(){let path='/projects';return http.get(path,{'content-type':'application/json'},{});},createProject:function(name,teamId,description='',logo='',url='',clients=[],legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"');}
|
let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.delete(path,{'content-type':'application/json'},{});}};let locale={getLocale:function(){let path='/locale';return http.get(path,{'content-type':'application/json'},{});},getCountries:function(){let path='/locale/countries';return http.get(path,{'content-type':'application/json'},{});},getCountriesEU:function(){let path='/locale/countries/eu';return http.get(path,{'content-type':'application/json'},{});},getCountriesPhones:function(){let path='/locale/countries/phones';return http.get(path,{'content-type':'application/json'},{});}};let projects={listProjects:function(){let path='/projects';return http.get(path,{'content-type':'application/json'},{});},createProject:function(name,teamId,description='',logo='',url='',clients=[],legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"');}
|
||||||
if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');}
|
if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');}
|
||||||
let path='/projects';return http.post(path,{'content-type':'application/json'},{'name':name,'teamId':teamId,'description':description,'logo':logo,'url':url,'clients':clients,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId});},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');}
|
let path='/projects';return http.post(path,{'content-type':'application/json'},{'name':name,'teamId':teamId,'description':description,'logo':logo,'url':url,'clients':clients,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId});},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');}
|
||||||
let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},updateProject:function(projectId,name,description='',logo='',url='',clients=[],legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');}
|
let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},updateProject:function(projectId,name,description='',logo='',url='',clients=[],legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');}
|
||||||
|
|
2
public/dist/scripts/app.js
vendored
2
public/dist/scripts/app.js
vendored
File diff suppressed because one or more lines are too long
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
|
@ -101,8 +101,8 @@ window.ls.router
|
||||||
scope: 'console',
|
scope: 'console',
|
||||||
project: true
|
project: true
|
||||||
})
|
})
|
||||||
.add('/console/database/:tab', {
|
.add('/console/database/collection', {
|
||||||
template: '/console/database?version=' + APP_ENV.VERSION,
|
template: '/console/database/collection?version=' + APP_ENV.VERSION,
|
||||||
scope: 'console',
|
scope: 'console',
|
||||||
project: true
|
project: true
|
||||||
})
|
})
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-bottom: 40px !important;
|
margin-bottom: 40px !important;
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
|
line-height: 42px;
|
||||||
}
|
}
|
||||||
|
|
||||||
i:before {
|
i:before {
|
||||||
|
|
Loading…
Reference in a new issue