blob: 933f17152106cd4302f3f97df67270a31ebd40fc [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001
2var g_menues = new Object();
3var g_objContent = null;
4var g_navtabNum =0;
5var g_objXML = $().XML_Operations();
6var _dashboardInterval = 30000;
7var _connectedDeviceInterval = 60000;
8var _trafficstatisticsInterval = 60000;
9var _networkActivityInterval = 60000;
10var _storageSettingsInterval = 30000;
11var _WiFiInterval = 25000;
12
13var _dashboardIntervalID;
14var _connectedDeviceIntervalID;
15var _trafficstatisticsIntervalID;
16var _networkActivityIntervalID;
17var _storageSettingsIntervalID;
18var _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 */
22document.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
37function 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 */
53function 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 */
70function 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";
134function 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*/
142function 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
155function 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
174function 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
193function clearRefreshTimers() {
194 clearInterval(_dashboardIntervalID);
195 clearInterval(_connectedDeviceIntervalID);
196 clearInterval(_trafficstatisticsIntervalID);
197 clearInterval(_networkActivityIntervalID);
198 clearInterval(_storageSettingsIntervalID);
199 clearInterval(_WiFiIntervalID);
200}
201function 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
230function setData() {
231 if(g_objContent!=null)
232 g_objContent.SaveData();
233}