Client downloads
authorOlga Brani <olgabrani@grnet.gr>
Tue, 15 May 2012 11:32:08 +0000 (14:32 +0300)
committerOlga Brani <olgabrani@grnet.gr>
Tue, 15 May 2012 11:32:08 +0000 (14:32 +0300)
cloudcms/static/cloudcms/js/client-downloads.js
cloudcms/static/cloudcms/js/os.js
cloudcms/templates/content/client_downloads.html

index 578d884..15234c1 100644 (file)
@@ -1,9 +1,66 @@
+var ClientDownloads = function( wrapper, clients, cl_default) {
+    this.el = $(wrapper);
+    this.clients = clients; 
+    this.cl_default = cl_default;
+}
+
+ClientDownloads.prototype.update = function() {
+    
+     
+    var current_os = BrowserDetect.OS;
+    //var current_os = "linux";
+    var current_client = _.filter(this.clients, function(el){return el.os == current_os});
+   
+    if (_.isEmpty(current_client)){
+       current_os = this.cl_default;
+       var current_client = _.filter(this.clients, function(el){return el.os == current_os})[0];
+       
+   
+    } else {
+       current_client = current_client[0];
+    }
+    this.el.find("#os").html(current_client.os);
+    this.el.find(".btn_01").attr('href',current_client.link);
+    
+    var new_list = _.filter(this.clients, function(el){return el.os != current_os});
+    
+    first = new_list.shift();
+    popped = new_list.pop();
+    
+    this.el.find(".other-clients").append("<a href='"+first.link+"'>"+first.os+"</a>"); 
+    var self = this;
+    _.each(new_list, function(client) {
+       self.el.find(".other-clients").append(", <a href='"+client.link+"'>"+client.os+"</a>")
+    })
+    this.el.find(".other-clients").append(" and <a href='"+popped.link+"'>"+popped.os+"</a>.");
+}
+
+
+
+
+/* kpap
+
+
 var ClientDownloads = function(wrapper, clients) {
     this.el = $(wrapper);
     this.clients = clients;
+    console.log("test");
+    console.log(this.clients);
+    console.log("end test")
 }
 
 ClientDownloads.prototype.update = function() {
     console.log("updating clients");
-}
+    
+    var current_os = "linux";
+    var current_client = _.filter(this.clients, function(el){return el.os == current_os})[0];
+    this.el.find(".current-os-link").html(current_client.os);
+    
+    var self = this;
+    _.each(this.clients, function(client) {
+       self.el.find(".other-clients").append("<span>"+client.os+"</span>")
+    })
+    console.log(current_client);
+}*/
 
index 8dfaba7..ee556a8 100644 (file)
@@ -1,3 +1,4 @@
+//http://www.quirksmode.org/js/detect.html\r
 var BrowserDetect = {\r
        init: function () {\r
                this.browser = this.searchString(this.dataBrowser) || "An unknown browser";\r
@@ -94,22 +95,22 @@ var BrowserDetect = {
                {\r
                        string: navigator.platform,\r
                        subString: "Win",\r
-                       identity: "Windows"\r
+                       identity: "windows"\r
                },\r
                {\r
                        string: navigator.platform,\r
                        subString: "Mac",\r
-                       identity: "Mac"\r
+                       identity: "MacOS"\r
                },\r
                {\r
                           string: navigator.userAgent,\r
                           subString: "iPhone",\r
-                          identity: "iPhone/iPod"\r
+                          identity: "iPhone"\r
            },\r
                {\r
                        string: navigator.platform,\r
                        subString: "Linux",\r
-                       identity: "Linux"\r
+                       identity: "linux"\r
                }\r
        ]\r
 \r
index fa376b4..96b0d34 100644 (file)
@@ -1,14 +1,21 @@
 <div class="clients-wrapper">
-    <ul>
-    </ul>
+       <a class="btn_01" href="">
+        <em>DOWNLOAD THE PITHOS CLIENT</em>
+        <span id="os">&nbsp;</span>
+    </a> 
+    <p class="centered">Also available for <span class="other-clients"></span></p>
 </div>
 
 <script>
     $(document).ready(function(){
-        if (window.ClientDownloads) {
-            var clients_data = {{ content.client.to_json|safe }};
-            var clients = new ClientDownloads(".clients-wrapper", clients_data);
+        if (window.ClientDownloads) { 
+               
+            var clients_data = {{ content.client.to_json|safe }};          
+            var clients_default = 'windows';
+            var clients = new ClientDownloads(".clients-wrapper", clients_data, clients_default);
             clients.update();
+            
+             
         }
     })
 </script>