From 0a2066bb1d747820b1bdd61d76e7071c2128a610 Mon Sep 17 00:00:00 2001 From: Dányi Bence <madbence@gmail.com> Date: Tue, 5 Feb 2013 16:47:56 +0100 Subject: [PATCH] store: ajax quota --- cloud/urls.py | 1 + one/static/box.less | 6 ++++++ one/static/cloud.js | 33 +++++++++++++++++++++++++++++---- one/templates/box-filelist.html | 5 +++-- store/views.py | 8 ++++++++ 5 files changed, 47 insertions(+), 6 deletions(-) diff --git a/cloud/urls.py b/cloud/urls.py index b253f40..8de6539 100644 --- a/cloud/urls.py +++ b/cloud/urls.py @@ -33,4 +33,5 @@ urlpatterns = patterns('', url(r'^ajax/store/upload$', 'store.views.ajax_upload', name='store_ajax_upload'), url(r'^ajax/store/delete$', 'store.views.ajax_delete', name='store_ajax_delete'), url(r'^ajax/store/newFolder$', 'store.views.ajax_new_folder', name='store_ajax_new_folder'), + url(r'^ajax/store/quota$', 'store.views.ajax_quota', name='store_ajax_quota'), ) diff --git a/one/static/box.less b/one/static/box.less index d78b419..60f24cb 100644 --- a/one/static/box.less +++ b/one/static/box.less @@ -83,6 +83,12 @@ height: 100%; .used{ height: 100%; + position: absolute; + } + .softLimit{ + height: 100%; + position: absolute; + border-left: 1px solid red; } } .summary{ diff --git a/one/static/cloud.js b/one/static/cloud.js index 5f442d2..571bfe4 100644 --- a/one/static/cloud.js +++ b/one/static/cloud.js @@ -69,7 +69,7 @@ $(function() { }) $('#modal').show(); }); - $('#old-upload').click(function(e){ + $('#old-upload').click(function(e) { e.preventDefault(); $(this).parent().hide().next('div').show(); return false; @@ -236,8 +236,8 @@ $(function() { function readfiles(files) { var formData = tests.formdata ? new FormData() : null; - for (var i = 0; i < files.length; i++) { - if (tests.formdata) formData.append('data', files[i]); + for(var i = 0; i < files.length; i++) { + if(tests.formdata) formData.append('data', files[i]); } // now post a new XHR request if(tests.formdata) { @@ -254,7 +254,7 @@ $(function() { if(event.lengthComputable) { var complete = (event.loaded / event.total * 100 | 0); //progress.value = progress.innerHTML = complete; - self.uploadProgress(parseInt(complete)+'%'); + self.uploadProgress(parseInt(complete) + '%'); } } } @@ -270,6 +270,31 @@ $(function() { readfiles(e.dataTransfer.files); return false; }); + self.quota = { + used: ko.observable(), + soft: ko.observable(), + hard: ko.observable() + }; + self.quota.usedBar = ko.computed(function() { + return(self.quota.used() / self.quota.hard() * 100).toFixed(0) + '%'; + }, self); + self.quota.softPos = ko.computed(function() { + return(self.quota.soft() / self.quota.hard() * 100).toFixed(0) + '%'; + }, self) + + function refreshQuota() { + $.ajax({ + 'type': 'GET', + 'url': '/ajax/store/quota', + dataType: 'json', + success: function(data) { + self.quota.used(parseInt(data.Used)); + self.quota.soft(parseInt(data.Soft)); + self.quota.hard(parseInt(data.Hard)); + } + }) + } + refreshQuota(); loadFolder(self.currentPath()); } var model = new Model(); diff --git a/one/templates/box-filelist.html b/one/templates/box-filelist.html index 78da352..62aa417 100644 --- a/one/templates/box-filelist.html +++ b/one/templates/box-filelist.html @@ -97,9 +97,10 @@ <li class="wm small"> <div class="summary"> <div class="quota"> - <div class="used" style="background-color: rgba(0,255,0,0.2); width: 2%"></div> + <div class="used" style="background-color: rgba(0,255,0,0.2)" data-bind="style: {width: quota.usedBar}"></div> + <div class="softLimit" data-bind="style: {left: quota.softPos}"></div> </div> - <div class="name">Kvóta: 20MB/2GB</div> + <div class="name">Kvóta: <span data-bind="text: quota.used"></span>/<span data-bind="text: quota.hard"></span></div> <div class="clear"></div> </div> </li> diff --git a/store/views.py b/store/views.py index e3560f1..d59cca8 100644 --- a/store/views.py +++ b/store/views.py @@ -98,6 +98,14 @@ def ajax_listfolder(request): return HttpResponse(json.dumps(file_list)) @login_required +def ajax_quota(request): + user = request.user.username + if StoreApi.userexist(user) != True: + estabilish_store_user(user) + #return HttpResponse(json.dumps(StoreApi.requestquota(user))) + return HttpResponse(json.dumps({'Used':20,'Soft':160,'Hard':200})) + +@login_required def ajax_download(request): user = request.user.username try: -- libgit2 0.26.0