diff --git a/.gitignore b/.gitignore
index ba39333054..2278b771f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
/vendor/
/node_modules/
+/storage/uploads/
/.idea/
.DS_Store
\ No newline at end of file
diff --git a/app/controllers/storage.php b/app/controllers/storage.php
index 5d97cfe9e9..5aaa96ac21 100644
--- a/app/controllers/storage.php
+++ b/app/controllers/storage.php
@@ -139,7 +139,7 @@ $utopia->get('/v1/storage/files')
]);
$results = array_map(function ($value) { /* @var $value \Database\Document */
- return $value->getArrayCopy(['$uid', '$permissions', 'name', 'signature', 'mimeType', 'sizeOriginal']);
+ return $value->getArrayCopy(['$uid', '$permissions', 'name', 'dateCreated', 'signature', 'mimeType', 'sizeOriginal']);
}, $results);
$response->json(['sum' => $projectDB->getSum(), 'files' => $results]);
@@ -161,7 +161,7 @@ $utopia->get('/v1/storage/files/:fileId')
throw new Exception('File not found', 404);
}
- $response->json($file->getArrayCopy(['$uid', '$permissions', 'name', 'signature', 'mimeType', 'sizeOriginal']));
+ $response->json($file->getArrayCopy(['$uid', '$permissions', 'name', 'dateCreated', 'signature', 'mimeType', 'sizeOriginal']));
}
);
diff --git a/app/init.php b/app/init.php
index 98cf4babc3..84af8eeeb1 100644
--- a/app/init.php
+++ b/app/init.php
@@ -34,6 +34,7 @@ const APP_SOCIAL_GITHUB = 'https://github.com/appwrite';
const APP_SOCIAL_DISCORD = 'https://discord.gg/GSeTUeA';
const APP_MODE_ADMIN = 'admin';
const APP_LOCALES = ['en', 'he'];
+const APP_PAGING_LIMIT = 15;
$register = new Registry();
$request = new Request();
diff --git a/app/views/console/storage/index.phtml b/app/views/console/storage/index.phtml
index 086f8bb051..232e3aee01 100644
--- a/app/views/console/storage/index.phtml
+++ b/app/views/console/storage/index.phtml
@@ -1,19 +1,151 @@
getParam('providers', []);
?>
+
+
+
Upload File
+
+
+
+
+
+
+
+
+
+
No Files Found
+
+
Upload your first file to get started
+
+
+
+
results found
+
+
+
+
+
+ |
+ Name |
+ Type |
+ Size |
+ Created |
+
+
+
+
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/console/users/index.phtml b/app/views/console/users/index.phtml
index d099394d23..1ffee0991c 100644
--- a/app/views/console/users/index.phtml
+++ b/app/views/console/users/index.phtml
@@ -1,6 +1,5 @@
getParam('providers', []);
-$limit = 3;
?>
@@ -49,7 +48,7 @@ $limit = 3;
data-service="users.listUsers"
data-event="submit"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-offset=""
data-param-order-type="DESC"
data-scope="sdk"
@@ -70,7 +69,7 @@ $limit = 3;
data-service="users.listUsers"
data-event="load,user-create,user-update,user-delete"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-offset="{{router.params.offset}}"
data-param-order-type="DESC"
data-scope="sdk"
@@ -132,7 +131,7 @@ $limit = 3;
data-service="users.listUsers"
data-event="submit"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-order-type="DESC"
data-scope="sdk"
data-name="project-users"
@@ -147,7 +146,7 @@ $limit = 3;
data-service="users.listUsers"
data-event="submit"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-order-type="DESC"
data-scope="sdk"
data-name="project-users"
@@ -188,7 +187,7 @@ $limit = 3;
data-service="teams.listTeams"
data-event="submit"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-offset=""
data-param-order-type="DESC"
data-scope="sdk"
@@ -209,7 +208,7 @@ $limit = 3;
data-service="teams.listTeams"
data-event="load,team-create,team-update,team-delete"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-offset="{{router.params.offset}}"
data-param-order-type="DESC"
data-scope="sdk"
@@ -275,7 +274,7 @@ $limit = 3;
data-service="teams.listTeams"
data-event="submit"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-order-type="DESC"
data-scope="sdk"
data-name="project-teams"
@@ -290,7 +289,7 @@ $limit = 3;
data-service="teams.listTeams"
data-event="submit"
data-param-search="{{router.params.search}}"
- data-param-limit=""
+ data-param-limit=""
data-param-order-type="DESC"
data-scope="sdk"
data-name="project-teams"
diff --git a/app/views/layouts/default.phtml b/app/views/layouts/default.phtml
index 0d3db96443..92be315cd7 100644
--- a/app/views/layouts/default.phtml
+++ b/app/views/layouts/default.phtml
@@ -51,7 +51,8 @@ $env = $this->getParam('env', '');
PROJECT: '',
LOCALE: 'escape(Locale::getText('settings.locale')); ?>',
PREFIX: 'escape($this->getParam('prefix')); ?>',
- ROLES: getParam('roles', [])); ?>
+ ROLES: getParam('roles', [])); ?>,
+ PAGING_LIMIT:
};
diff --git a/docker-compose.yml b/docker-compose.yml
index 5a283503f6..d6884ee16c 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -47,6 +47,8 @@ services:
clamav:
image: appwrite/clamav:1.0.4
restart: unless-stopped
+ volumes:
+ - ./storage:/storage:rw
redis:
image: redis:5.0
diff --git a/public/dist/scripts/app-all.js b/public/dist/scripts/app-all.js
index 27c82333a5..70ef4f7ba8 100644
--- a/public/dist/scripts/app-all.js
+++ b/public/dist/scripts/app-all.js
@@ -10,9 +10,8 @@ if(typeof headers!=='object'){throw new Error('var headers must be of type objec
for(i=0;i
=request.status){let data=request.response;let contentType=this.getResponseHeader('content-type')||'';contentType=contentType.substring(0,contentType.indexOf(';'));switch(contentType){case'application/json':data=JSON.parse(data);break;}
resolve(data);}else{reject(new Error(request.statusText));}};if(progress){request.addEventListener('progress',progress);request.upload.addEventListener('progress',progress,false);}
request.onerror=function(){reject(new Error("Network Error"));};request.send(params);})};return{'get':function(path,headers={},params={}){return call('GET',path+((Object.keys(params).length>0)?'?'+buildQuery(params):''),headers,{});},'post':function(path,headers={},params={},progress=null){return call('POST',path,headers,params,progress);},'put':function(path,headers={},params={},progress=null){return call('PUT',path,headers,params,progress);},'patch':function(path,headers={},params={},progress=null){return call('PATCH',path,headers,params,progress);},'delete':function(path,headers={},params={},progress=null){return call('DELETE',path,headers,params,progress);},'addGlobalParam':addGlobalParam,'addGlobalHeader':addGlobalHeader}}(window.document);let iframe=function(method,url,params){let form=document.createElement('form');form.setAttribute('method',method);form.setAttribute('action',config.endpoint+url);for(let key in params){if(params.hasOwnProperty(key)){let hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden");hiddenField.setAttribute("name",key);hiddenField.setAttribute("value",params[key]);form.appendChild(hiddenField);}}
@@ -131,7 +130,7 @@ if(security===undefined){throw new Error('Missing required parameter: "security"
let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.put(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass});},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');}
if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');}
let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.delete(path,{'content-type':'application/json'},{});}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"');}
-let path='/storage/files';return http.post(path,{'content-type':'application/json'},{'files':files,'read':read,'write':write,'folderId':folderId});},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
+let path='/storage/files';return http.post(path,{'content-type':'multipart/form-data'},{'files':files,'read':read,'write':write,'folderId':folderId});},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.delete(path,{'content-type':'application/json'},{});},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
@@ -2329,6 +2328,7 @@ else if(undefined!==element.value){if('SELECT'===element.tagName&&element.childr
else if('radio'===type){if(element.checked){json[name]=element.value;}}
else if('checkbox'===type){if(!Array.isArray(json[name])){json[name]=[];}
if(element.checked){json[name].push(element.value);}}
+else if('file'===type){console.log('form2json file:',element.files);json[name]=element.files[0];}
else if(undefined!==element.value){if((json[name]!==undefined)&&(!Array.isArray(json[name]))){json[name]=[json[name]];}
if(Array.isArray(json[name])){json[name].push(element.value);}
else{json[name]=element.value;}}
@@ -2345,7 +2345,7 @@ return n[0];}).join('')||'--';let background=themes[theme[theme.length-1]]['back
(hours?hours+"h ":"")+
(minutes?minutes+"m ":"")+
Number.parseFloat(seconds).toFixed(0)+"s";}
-return"< 1s";}).add('markdown',function($value,markdown){return markdown.render($value);}).add('pageCurrent',function($value){return Math.ceil(parseInt($value||0)/3)+1;}).add('pageTotal',function($value){let total=Math.ceil(parseInt($value||0)/3);return(total)?total:1;}).add('humanFileSize',function($value){if(!$value){return 0;}
+return"< 1s";}).add('markdown',function($value,markdown){return markdown.render($value);}).add('pageCurrent',function($value,env){return Math.ceil(parseInt($value||0)/env.PAGING_LIMIT)+1;}).add('pageTotal',function($value,env){let total=Math.ceil(parseInt($value||0)/env.PAGING_LIMIT);return(total)?total:1;}).add('humanFileSize',function($value){if(!$value){return 0;}
let thresh=1000;if(Math.abs($value)=thresh&&u'+units[u]+'';}).add('statsTotal',function($value){if(!$value){return 0;}
$value=abbreviate($value,1,false,false);return($value==='0')?'N/A':$value;});function abbreviate(number,maxPlaces,forcePlaces,forceLetter){number=Number(number);forceLetter=forceLetter||false;if(forceLetter!==false){return annotate(number,maxPlaces,forcePlaces,forceLetter);}
@@ -2454,8 +2454,8 @@ document.dispatchEvent(new CustomEvent('project-load'));}
document.addEventListener('state-changed',function(){if(router.params.project&&project!==router.params.project){if(debug){console.log('project-load-init');}
document.dispatchEvent(new CustomEvent('project-load'));project=router.params.project;}});element.addEventListener('change',function(){if(debug){console.log('change init',element.value);}
if(element.value&&element.value!==project){if(debug){console.log('Changed: selected project from list');}
-return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());if((offset-limit)<0){element.disabled=true;}
-else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i=sum){element.disabled=true;}
+return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression,env){let paths=[];let limit=env.PAGING_LIMIT;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());if((offset-limit)<0){element.disabled=true;}
+else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i=sum){element.disabled=true;}
else{element.disabled=false;element.value=offset+limit;}};check();for(let i=0;i=request.status){let data=request.response;let contentType=this.getResponseHeader('content-type')||'';contentType=contentType.substring(0,contentType.indexOf(';'));switch(contentType){case'application/json':data=JSON.parse(data);break;}
resolve(data);}else{reject(new Error(request.statusText));}};if(progress){request.addEventListener('progress',progress);request.upload.addEventListener('progress',progress,false);}
request.onerror=function(){reject(new Error("Network Error"));};request.send(params);})};return{'get':function(path,headers={},params={}){return call('GET',path+((Object.keys(params).length>0)?'?'+buildQuery(params):''),headers,{});},'post':function(path,headers={},params={},progress=null){return call('POST',path,headers,params,progress);},'put':function(path,headers={},params={},progress=null){return call('PUT',path,headers,params,progress);},'patch':function(path,headers={},params={},progress=null){return call('PATCH',path,headers,params,progress);},'delete':function(path,headers={},params={},progress=null){return call('DELETE',path,headers,params,progress);},'addGlobalParam':addGlobalParam,'addGlobalHeader':addGlobalHeader}}(window.document);let iframe=function(method,url,params){let form=document.createElement('form');form.setAttribute('method',method);form.setAttribute('action',config.endpoint+url);for(let key in params){if(params.hasOwnProperty(key)){let hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden");hiddenField.setAttribute("name",key);hiddenField.setAttribute("value",params[key]);form.appendChild(hiddenField);}}
@@ -131,7 +130,7 @@ if(security===undefined){throw new Error('Missing required parameter: "security"
let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.put(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass});},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');}
if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');}
let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.delete(path,{'content-type':'application/json'},{});}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"');}
-let path='/storage/files';return http.post(path,{'content-type':'application/json'},{'files':files,'read':read,'write':write,'folderId':folderId});},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
+let path='/storage/files';return http.post(path,{'content-type':'multipart/form-data'},{'files':files,'read':read,'write':write,'folderId':folderId});},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.delete(path,{'content-type':'application/json'},{});},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');}
diff --git a/public/dist/scripts/app.js b/public/dist/scripts/app.js
index 456755e8e6..56b7d69a1e 100644
--- a/public/dist/scripts/app.js
+++ b/public/dist/scripts/app.js
@@ -236,6 +236,7 @@ else if(undefined!==element.value){if('SELECT'===element.tagName&&element.childr
else if('radio'===type){if(element.checked){json[name]=element.value;}}
else if('checkbox'===type){if(!Array.isArray(json[name])){json[name]=[];}
if(element.checked){json[name].push(element.value);}}
+else if('file'===type){console.log('form2json file:',element.files);json[name]=element.files[0];}
else if(undefined!==element.value){if((json[name]!==undefined)&&(!Array.isArray(json[name]))){json[name]=[json[name]];}
if(Array.isArray(json[name])){json[name].push(element.value);}
else{json[name]=element.value;}}
@@ -252,7 +253,7 @@ return n[0];}).join('')||'--';let background=themes[theme[theme.length-1]]['back
(hours?hours+"h ":"")+
(minutes?minutes+"m ":"")+
Number.parseFloat(seconds).toFixed(0)+"s";}
-return"< 1s";}).add('markdown',function($value,markdown){return markdown.render($value);}).add('pageCurrent',function($value){return Math.ceil(parseInt($value||0)/3)+1;}).add('pageTotal',function($value){let total=Math.ceil(parseInt($value||0)/3);return(total)?total:1;}).add('humanFileSize',function($value){if(!$value){return 0;}
+return"< 1s";}).add('markdown',function($value,markdown){return markdown.render($value);}).add('pageCurrent',function($value,env){return Math.ceil(parseInt($value||0)/env.PAGING_LIMIT)+1;}).add('pageTotal',function($value,env){let total=Math.ceil(parseInt($value||0)/env.PAGING_LIMIT);return(total)?total:1;}).add('humanFileSize',function($value){if(!$value){return 0;}
let thresh=1000;if(Math.abs($value)=thresh&&u'+units[u]+'';}).add('statsTotal',function($value){if(!$value){return 0;}
$value=abbreviate($value,1,false,false);return($value==='0')?'N/A':$value;});function abbreviate(number,maxPlaces,forcePlaces,forceLetter){number=Number(number);forceLetter=forceLetter||false;if(forceLetter!==false){return annotate(number,maxPlaces,forcePlaces,forceLetter);}
@@ -361,8 +362,8 @@ document.dispatchEvent(new CustomEvent('project-load'));}
document.addEventListener('state-changed',function(){if(router.params.project&&project!==router.params.project){if(debug){console.log('project-load-init');}
document.dispatchEvent(new CustomEvent('project-load'));project=router.params.project;}});element.addEventListener('change',function(){if(debug){console.log('change init',element.value);}
if(element.value&&element.value!==project){if(debug){console.log('Changed: selected project from list');}
-return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression){let paths=[];let limit=3;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());let sum=parseInt(expression.parse(element.dataset['sum'])||'0');paths=paths.concat(expression.getPaths());if((offset-limit)<0){element.disabled=true;}
-else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i=sum){element.disabled=true;}
+return router.change('/console/home?project='+element.value);}});}});})(window);(function(window){window.ls.container.get('view').add({selector:'data-paging-back',controller:function(element,container,expression,env){let paths=[];let limit=env.PAGING_LIMIT;let check=function(){let offset=parseInt(expression.parse(element.dataset['offset'])||'0');paths=paths.concat(expression.getPaths());if((offset-limit)<0){element.disabled=true;}
+else{element.disabled=false;element.value=offset-limit;}};check();for(let i=0;i=sum){element.disabled=true;}
else{element.disabled=false;element.value=offset+limit;}};check();for(let i=0;i 0) { // Select
- json[name] = element.children[element.selectedIndex].value;
- }
- else if ('radio' === type) { // Radio
- if(element.checked) {
- json[name] = element.value;
- }
- }
- else if ('checkbox' === type) { // Checkbox
- if(!Array.isArray(json[name])) {
- json[name] = [];
- }
-
- if(element.checked) {
- json[name].push(element.value);
- }
- }
- else if (undefined !== element.value) { // Normal
-
- if ((json[name] !== undefined) && (!Array.isArray(json[name]))) { // Support for list array when name is repeating more than once
- json[name] = [json[name]];
- }
-
- if(Array.isArray(json[name])) {
- json[name].push(element.value);
+ ref = json[name];
}
else {
- json[name] = element.value;
+ if (!Array.isArray(json[name])) {
+ json[name] = [];
+ }
+
+ json[name].push({});
+
+ ref = json[name][json[name].length - 1];
}
}
+ else if (undefined !== element.value) {
+ if ('SELECT' === element.tagName && element.children > 0) { // Select
+ json[name] = element.children[element.selectedIndex].value;
+ }
+ else if ('radio' === type) { // Radio
+ if (element.checked) {
+ json[name] = element.value;
+ }
+ }
+ else if ('checkbox' === type) { // Checkbox
+ if (!Array.isArray(json[name])) {
+ json[name] = [];
+ }
- json[name] = cast(json[name], castTo);
+ if (element.checked) {
+ json[name].push(element.value);
+ }
+ }
+ else if ('file' === type) { // File upload
+ console.log('form2json file:', element.files);
+ json[name] = element.files[0];
+ }
+ else if (undefined !== element.value) { // Normal
+
+ if ((json[name] !== undefined) && (!Array.isArray(json[name]))) { // Support for list array when name is repeating more than once
+ json[name] = [json[name]];
+ }
+
+ if (Array.isArray(json[name])) {
+ json[name].push(element.value);
+ }
+ else {
+ json[name] = element.value;
+ }
+ }
+
+ json[name] = cast(json[name], castTo); // Apply casting
+ }
}
+
+ for (let i = 0; i < element.children.length; i++) {
+ if (Array.isArray(ref)) {
+ ref.push({});
+ toJson(element.children[i], ref[ref.length]);
+ }
+ else {
+ toJson(element.children[i], ref);
+ }
+ }
+
+ return json;
}
- for (let i = 0; i < element.children.length; i++) {
- if(Array.isArray(ref)) {
- ref.push({});
- toJson(element.children[i], ref[ref.length]);
- }
- else {
- toJson(element.children[i], ref);
- }
+ return {
+ 'toJson': toJson
}
-
- return json;
- }
-
- return {
- 'toJson': toJson
- }
-}, true, false);
+ }, true, false);
})(window);
\ No newline at end of file
diff --git a/public/scripts/views/paging/back.js b/public/scripts/views/paging/back.js
index 7a38012b12..3941c65c37 100644
--- a/public/scripts/views/paging/back.js
+++ b/public/scripts/views/paging/back.js
@@ -1,19 +1,15 @@
(function (window) {
window.ls.container.get('view').add({
selector: 'data-paging-back',
- controller: function(element, container, expression) {
+ controller: function(element, container, expression, env) {
let paths = [];
- let limit = 3;
+ let limit = env.PAGING_LIMIT;
let check = function () {
let offset = parseInt(expression.parse(element.dataset['offset']) || '0');
paths = paths.concat(expression.getPaths());
- let sum = parseInt(expression.parse(element.dataset['sum']) || '0');
-
- paths = paths.concat(expression.getPaths());
-
if((offset - limit) < 0) {
element.disabled = true;
}
diff --git a/public/scripts/views/paging/next.js b/public/scripts/views/paging/next.js
index 5b01a34054..940d1ea3e4 100644
--- a/public/scripts/views/paging/next.js
+++ b/public/scripts/views/paging/next.js
@@ -1,9 +1,9 @@
(function (window) {
window.ls.container.get('view').add({
selector: 'data-paging-next',
- controller: function(element, container, expression) {
+ controller: function(element, container, expression, env) {
let paths = [];
- let limit = 3;
+ let limit = env.PAGING_LIMIT;
let check = function () {
let offset = parseInt(expression.parse(element.dataset['offset']) || '0');