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