From 89c0b9e3304af08f2bcc34ec86be0415011dc83d Mon Sep 17 00:00:00 2001 From: eldadfux Date: Wed, 14 Aug 2019 16:50:40 +0300 Subject: [PATCH] Updated storage and users navigator --- .gitignore | 1 + app/controllers/storage.php | 4 +- app/init.php | 1 + app/views/console/storage/index.phtml | 142 ++++++++++++++++++- app/views/console/users/index.phtml | 17 ++- app/views/layouts/default.phtml | 3 +- docker-compose.yml | 2 + public/dist/scripts/app-all.js | 14 +- public/dist/scripts/app-dep.js | 7 +- public/dist/scripts/app.js | 7 +- public/scripts/filters.js | 8 +- public/scripts/services/form.js | 194 +++++++++++++------------- public/scripts/views/paging/back.js | 8 +- public/scripts/views/paging/next.js | 4 +- 14 files changed, 274 insertions(+), 138 deletions(-) diff --git a/.gitignore b/.gitignore index ba3933305..2278b771f 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 5d97cfe9e..5aaa96ac2 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 98cf4babc..84af8eeeb 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 086f8bb05..232e3aee0 100644 --- a/app/views/console/storage/index.phtml +++ b/app/views/console/storage/index.phtml @@ -1,19 +1,151 @@ getParam('providers', []); ?>

-  Upload -

+ + + + +
+ +
+

No Files Found

+ +

Upload your first file to get started

+
+ +
+
results found
+ +
+ + + + + + + + + + + + + + + + + + + +
NameTypeSizeCreated
+ + + + + + + + + +
+
+
+ +
+
+ +
+ + + +
+ +
+
+
+
\ No newline at end of file diff --git a/app/views/console/users/index.phtml b/app/views/console/users/index.phtml index d099394d2..1ffee0991 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 0d3db9644..92be315cd 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 5a283503f..d6884ee16 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 27c82333a..70ef4f7ba 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 456755e8e..56b7d69a1 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 7a38012b1..3941c65c3 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 5b01a3405..940d1ea3e 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');