b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 |
|
| 2 | var g_menues = new Object();
|
| 3 | var g_objContent = null;
|
| 4 | var g_navtabNum =0;
|
| 5 | var g_objXML = $().XML_Operations();
|
| 6 | var _dashboardInterval = 30000;
|
| 7 | var _connectedDeviceInterval = 60000;
|
| 8 | var _trafficstatisticsInterval = 60000;
|
| 9 | var _networkActivityInterval = 60000;
|
| 10 | var _storageSettingsInterval = 30000;
|
| 11 | var _WiFiInterval = 25000;
|
| 12 |
|
| 13 | var _dashboardIntervalID;
|
| 14 | var _connectedDeviceIntervalID;
|
| 15 | var _trafficstatisticsIntervalID;
|
| 16 | var _networkActivityIntervalID;
|
| 17 | var _storageSettingsIntervalID;
|
| 18 | var _WiFiIntervalID;
|
| 19 | /* This function get the XML from the server via ajax.
|
| 20 | * Get is Method and success fucntion is callback funciton when the request success
|
| 21 | */
|
| 22 | document.onkeydown = function (e) {
|
| 23 | if(null == g_objContent)
|
| 24 | return true;
|
| 25 | var ev = window.event || e;
|
| 26 | var code = ev.keyCode || ev.which;
|
| 27 | if (code == 116) {
|
| 28 | ev.keyCode ? ev.keyCode = 0 : ev.which = 0;
|
| 29 | cancelBubble = true;
|
| 30 | g_objContent.onLoad(true);
|
| 31 | return false;
|
| 32 | }
|
| 33 | }
|
| 34 |
|
| 35 |
|
| 36 |
|
| 37 | function callXML(xml,sFucntion) {
|
| 38 |
|
| 39 | $.ajax({
|
| 40 | type: "GET",
|
| 41 | url: xml,
|
| 42 | dataType: "xml",
|
| 43 | async: false,
|
| 44 | success: sFucntion
|
| 45 |
|
| 46 | });
|
| 47 | }
|
| 48 |
|
| 49 | /* This is important function which parses the UIxml file
|
| 50 | * Creates the Menu and submenu depending upon XML items
|
| 51 | *
|
| 52 | */
|
| 53 | function parseXml(xml) {
|
| 54 | var menuIndex = 0;
|
| 55 | g_menues = xml;
|
| 56 | var thirdlevelmeunstr ;
|
| 57 | var tabName;
|
| 58 | var meun;
|
| 59 | $(xml).find("Tab").each(function() {
|
| 60 |
|
| 61 | tabName=jQuery.i18n.prop($(this).attr("Name").toString());
|
| 62 | menuIndex++;
|
| 63 | document.getElementById('menu').innerHTML +="<li><a href='#' id="+menuIndex+" onClick='createMenu("+menuIndex+")'>"+tabName+"</a></li>";
|
| 64 | });
|
| 65 | g_navtabNum = menuIndex;
|
| 66 | }
|
| 67 | /*
|
| 68 | * Create the submeny from XML items
|
| 69 | */
|
| 70 | function createMenu(index,bDisplayForm) {
|
| 71 | removeMenuClass();
|
| 72 | document.getElementById(index.toString()).className = "on";
|
| 73 | var idx = 0;
|
| 74 |
|
| 75 | $(g_menues).find("Tab").each(function() {
|
| 76 |
|
| 77 | if(idx==index-1) {
|
| 78 |
|
| 79 | var tabName=jQuery.i18n.prop($(this).attr("Name").toString());
|
| 80 |
|
| 81 | if($(this).attr("type").toString()=='submenuabsent') {
|
| 82 |
|
| 83 | clearRefreshTimers();
|
| 84 | g_objContent = eval('$("#mainColumn").'+ $(this).attr("implFunction").toString() + '({})');
|
| 85 | g_objContent.onLoad(true);
|
| 86 |
|
| 87 | } else {
|
| 88 | document.getElementById('mainColumn').innerHTML ="<div class='leftBar'><ul class='leftMenu' id='submenu'></ul></div><div id='Content' class='content'></div><br class='clear /><br class='clear />";
|
| 89 | var firstmenu;
|
| 90 | var firstmenuisSubMenu = false;
|
| 91 | var i=0;
|
| 92 | $(this).find("Menu").each(function() {
|
| 93 | var menustr = "\"" + $(this).attr("id").toString() + "\"" ;
|
| 94 | if(i==0) {
|
| 95 | firstmenu = $(this).attr("id").toString();
|
| 96 | if($(this).attr("type").toString()=='submenupresent')
|
| 97 | firstmenuisSubMenu = true;
|
| 98 | }
|
| 99 | if($(this).attr("type").toString()=='submenupresent') {
|
| 100 | document.getElementById('submenu').innerHTML += "<li id="+menustr+"><a href=\"#\" onClick='displaySubForm("+menustr+")'>"+ jQuery.i18n.prop($(this).attr("id").toString())+"</a></li>";
|
| 101 |
|
| 102 | var html = "<li class='hide'><ul class='thirdmenu'>";
|
| 103 | $(this).find("ThirdlevelMenu").each(function() {
|
| 104 | var thirdlevelmeunstr = "\"" + $(this).attr("id").toString() + "\"" ;
|
| 105 | var strImplFunction = " name=\"" + $(this).attr("implFunction").toString() + "\"" ;
|
| 106 | html+= "<li style ='list-style:none' class='menu-three-level' id="+thirdlevelmeunstr+ strImplFunction +"><a href=\"#\" onClick='displayForm("+thirdlevelmeunstr+")'>"+ jQuery.i18n.prop($(this).attr("id").toString())+"</a></li>";
|
| 107 | });
|
| 108 | html+="</ul></li>";
|
| 109 | document.getElementById('submenu').innerHTML +=html;
|
| 110 |
|
| 111 | } else {
|
| 112 | var strImplFunction = " name=\"" + $(this).attr("implFunction").toString() + "\"" ;
|
| 113 | document.getElementById('submenu').innerHTML += "<li id=" + menustr+ strImplFunction + "><a href=\"#\" onClick='displayForm("+menustr+")'>"+ jQuery.i18n.prop($(this).attr("id").toString())+"</a></li>";
|
| 114 | }
|
| 115 |
|
| 116 |
|
| 117 | i++;
|
| 118 |
|
| 119 | });
|
| 120 | if(undefined == bDisplayForm){
|
| 121 | if(!firstmenuisSubMenu)
|
| 122 | displayForm(firstmenu);
|
| 123 | else
|
| 124 | displaySubForm(firstmenu);
|
| 125 |
|
| 126 | }
|
| 127 |
|
| 128 | }
|
| 129 | }
|
| 130 | idx++;
|
| 131 | });
|
| 132 | }
|
| 133 | //var helpPage = "help_en.html";
|
| 134 | function removeMenuClass() {
|
| 135 | if(g_navtabNum>0)
|
| 136 | for(var j=1; j<=g_navtabNum; j++)
|
| 137 | document.getElementById(j.toString()).className = "";
|
| 138 | }
|
| 139 | /*
|
| 140 | * Function for passing the JavaScript
|
| 141 | */
|
| 142 | function createMenuFromXML() {
|
| 143 | callXML("xml/ui_" + g_platformName + ".xml",parseXml);
|
| 144 | /*adjust main menu layout according the menu number
|
| 145 | add by llzhou 9/1/2013*/
|
| 146 |
|
| 147 | $(".navigation ul li").width(($(".header").width()-8*2)/g_navtabNum-1);
|
| 148 |
|
| 149 | }
|
| 150 | /*
|
| 151 | * Check which item is selected and take appropriate action to execute the
|
| 152 | * panel class, and call his onLoad function as well as set the XML Name
|
| 153 | */
|
| 154 |
|
| 155 | function displaySubForm(clickedItem) {
|
| 156 |
|
| 157 |
|
| 158 | clearRefreshTimers();
|
| 159 |
|
| 160 | $(".leftMenu .on").removeClass("on");
|
| 161 |
|
| 162 | var menuSelector = "#" + clickedItem;
|
| 163 |
|
| 164 | $(menuSelector).siblings(".hide").css("display", "none").end()
|
| 165 | .next(".hide").css("display", "list-item");
|
| 166 |
|
| 167 | $(menuSelector).addClass("on");
|
| 168 | var threeMenuObj = $(menuSelector).next(".hide:first").children(".thirdmenu:first").children(".menu-three-level:first");
|
| 169 | threeMenuObj.addClass("on");
|
| 170 | g_objContent = eval('$("#Content").'+ threeMenuObj.attr("name") + '("'+ threeMenuObj.attr("id")+'")');
|
| 171 | g_objContent.onLoad(true);
|
| 172 | }
|
| 173 |
|
| 174 | function displayForm(clickedItem) {
|
| 175 | clearRefreshTimers();
|
| 176 |
|
| 177 | var menuSelector = "#" + clickedItem;
|
| 178 | if(!$(menuSelector).parents("ul").hasClass("thirdmenu")){
|
| 179 | $(".leftMenu .hide").css("display", "none");
|
| 180 | }
|
| 181 | $(menuSelector).siblings().removeClass("on").end()
|
| 182 | .addClass("on");
|
| 183 |
|
| 184 | g_objContent = eval('$("#Content").'+ $(menuSelector).attr("name") + '("'+ $(menuSelector).attr("id")+'")');
|
| 185 | g_objContent.onLoad(true);
|
| 186 |
|
| 187 | if(g_objContent == null)
|
| 188 | document.getElementById("Content").innerHTML = "";
|
| 189 | }
|
| 190 |
|
| 191 |
|
| 192 |
|
| 193 | function clearRefreshTimers() {
|
| 194 | clearInterval(_dashboardIntervalID);
|
| 195 | clearInterval(_connectedDeviceIntervalID);
|
| 196 | clearInterval(_trafficstatisticsIntervalID);
|
| 197 | clearInterval(_networkActivityIntervalID);
|
| 198 | clearInterval(_storageSettingsIntervalID);
|
| 199 | clearInterval(_WiFiIntervalID);
|
| 200 | }
|
| 201 | function dashboardOnClick(subMenuID) {
|
| 202 | var selMenuIdx = 1;
|
| 203 | $(g_menues).find("Tab").each(function() {
|
| 204 | $(this).find("Menu").each(function() {
|
| 205 | var menuId = $(this).attr("id").toString();
|
| 206 | if("submenupresent" == $(this).attr("type")){
|
| 207 | $(this).find("ThirdlevelMenu").each(function(){
|
| 208 | if(subMenuID == $(this).attr("id").toString()){
|
| 209 | createMenu(selMenuIdx,false);
|
| 210 | var menuSelector = "#" + menuId;
|
| 211 | var submenuSelector = "#" + subMenuID;
|
| 212 | $(menuSelector).siblings().removeClass("on").end().addClass("on").next(".hide").css("display", "list-item");
|
| 213 | $(submenuSelector).addClass("on");
|
| 214 | displayForm(subMenuID);
|
| 215 | return;
|
| 216 | }
|
| 217 | });
|
| 218 | }
|
| 219 | else if (subMenuID == menuId) {
|
| 220 | createMenu(selMenuIdx,false);
|
| 221 | displayForm(subMenuID);
|
| 222 | return;
|
| 223 | }
|
| 224 | });
|
| 225 | ++selMenuIdx;
|
| 226 | });
|
| 227 |
|
| 228 | }
|
| 229 |
|
| 230 | function setData() {
|
| 231 | if(g_objContent!=null)
|
| 232 | g_objContent.SaveData();
|
| 233 | }
|