luci-theme-material: add some new features and fix some bugs
[project/luci.git] / themes / luci-theme-material / htdocs / luci-static / material / js / script.js
index c7d60b9..dcf8a03 100755 (executable)
 }(jQuery));
 
 (function ($) {
 }(jQuery));
 
 (function ($) {
+    $(".main > .loading").fadeOut();
+
     /**
      * trim text, Remove spaces, wrap
      * @param text
     /**
      * trim text, Remove spaces, wrap
      * @param text
 
     var tree = undefined;
     var lastNode = undefined;
 
     var tree = undefined;
     var lastNode = undefined;
-
-    /**
-     * get the current node by Hash (reserve)
-     * @returns {boolean} success?
-     */
-    function getCurrentNodeByHash() {
-        var ret = false;
-        var hash = window.location.hash;
-        if (hash.substr(0, 6) == "#tree-") {
-            hash = $.base64.decode(hash.substr(6));
-            tree = hash.split("|");
-            $(".main > .main-left > .nav > .slide > .menu").each(function () {
-                var that = $(this);
-                if (trimText(that.data("title")) == tree[0]) {
-                    that.click();
-                    that.next().find("a").each(function () {
-                        var that = $(this);
-                        if (trimText(that.data("title")) == tree[1]) {
-                            lastNode = that.parent();
-                            lastNode.addClass("active");
-                            ret = true;
-                            return true;
-                        }
-                    });
-                }
-            });
-        }
-        return ret;
-    }
+    var mainNodeName = undefined;
 
     /**
      * get the current node by Burl (primary)
 
     /**
      * get the current node by Burl (primary)
      * hook menu click and add the hash
      */
     $(".main > .main-left > .nav > .slide > .slide-menu > li > a").click(function () {
      * hook menu click and add the hash
      */
     $(".main > .main-left > .nav > .slide > .slide-menu > li > a").click(function () {
-        var href = $(this).attr("href");
-        var tree = trimText($(this).parent().parent().prev().data("title")) + "|" + trimText($(this).data("title"));
-        tree = $.base64.encode(tree);
-        window.location = href + "#tree-" + tree;
         if (lastNode != undefined) lastNode.removeClass("active");
         $(this).parent().addClass("active");
         if (lastNode != undefined) lastNode.removeClass("active");
         $(this).parent().addClass("active");
-        return false;
+        $(".main > .loading").fadeIn();
+        return true;
     });
 
     /**
      * fix menu click
      */
     $(".main > .main-left > .nav > .slide > .slide-menu > li").click(function () {
     });
 
     /**
      * fix menu click
      */
     $(".main > .main-left > .nav > .slide > .slide-menu > li").click(function () {
-        $(this).find("a").click();
+        if (lastNode != undefined) lastNode.removeClass("active");
+        $(this).addClass("active");
+        $(".main > .loading").fadeIn();
+        window.location = $($(this).find("a")[0]).attr("href");
+        return;
     });
 
     /**
      * get current node and open it
      */
     if (!getCurrentNodeByUrl()){
     });
 
     /**
      * get current node and open it
      */
     if (!getCurrentNodeByUrl()){
-        getCurrentNodeByHash();
         if (tree != undefined && tree[0] == "Status" && tree[1] == "Overview"){
             //overview
             lastNode.addClass("active");
         if (tree != undefined && tree[0] == "Status" && tree[1] == "Overview"){
             //overview
             lastNode.addClass("active");
         }
     }
     if (tree != undefined){
         }
     }
     if (tree != undefined){
-        var mainNodeName = "node-"+ tree[0] + "-" + tree[1];
-        $("body").addClass(mainNodeName.replace(/[ \t\n\r\/]+/g,"_").toLowerCase());
+        mainNodeName = "node-"+ tree[0] + "-" + tree[1];
+        mainNodeName = mainNodeName.replace(/[ \t\n\r\/]+/g,"_").toLowerCase();
+        $("body").addClass(mainNodeName);
+
     }
     $(".cbi-button-up").val("");
     $(".cbi-button-down").val("");
     }
     $(".cbi-button-up").val("");
     $(".cbi-button-down").val("");
         if (onclick == undefined || onclick == ""){
             that.click(function () {
                 var href = that.attr("href");
         if (onclick == undefined || onclick == ""){
             that.click(function () {
                 var href = that.attr("href");
-                if (tree != undefined && href.indexOf("Text") == -1) {
-                    window.location = href + "#tree-" +  $.base64.encode(tree[0] + "|" + tree[1]);
-                    return false;
-                }else{
+                if (href.indexOf("#") == -1){
+                    $(".main > .loading").fadeIn();
                     return true;
                 }
             });
                     return true;
                 }
             });
         var that = $(this);
         that.after("<span class='panel-title'>" + that.text() + "</span>");
     });
         var that = $(this);
         that.after("<span class='panel-title'>" + that.text() + "</span>");
     });
+
+
+    $(".main-right").focus();
+    $(".main-right").blur();
+
+    if (mainNodeName != undefined){
+        console.log(mainNodeName);
+        switch (mainNodeName){
+            case "node-status-system_log":
+            case "node-status-kernel_log":
+                $("#syslog").focus(function () {
+                    $("#syslog").blur();
+                    $(".main-right").focus();
+                    $(".main-right").blur();
+                });
+                break;
+        }
+    }
 })(jQuery);
 })(jQuery);