Rev 2145 | Rev 2147 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 2145 | Rev 2146 | ||
|---|---|---|---|
| Line 134... | Line 134... | ||
| 134 | return ((new Date()).getTime()) - serverTimeOffset |
134 | return ((new Date()).getTime()) - serverTimeOffset |
| 135 | } |
135 | } |
| 136 | 136 | ||
| 137 | $(document).ready(function(event) |
137 | $(document).ready(function(event) |
| 138 | { |
138 | { |
| 139 | document.location.hash = ""; |
- | |
| 140 | - | ||
| 141 | sendCommand("(new Date()).getTime();", function(timestamp) |
139 | sendCommand("(new Date()).getTime();", function(timestamp) |
| 142 | { |
140 | { |
| 143 | serverTimeOffset = ((new Date()).getTime()) - parseInt(timestamp, 10); |
141 | serverTimeOffset = ((new Date()).getTime()) - parseInt(timestamp, 10); |
| 144 | }); |
142 | }); |
| 145 | 143 | ||
| 146 | jQuery.each(pageConfigurations, function(n, configuration) |
144 | jQuery.each(pageConfigurations, function(n, configuration) |
| 147 | { |
145 | { |
| 148 | var pageName = configuration.page + "_" + n; |
146 | var pageName = configuration.page + "_" + n; |
| 149 | 147 | ||
| 150 | pageInstances[pageName] = configuration; |
148 | pageInstances[pageName] = configuration; |
| 151 | 149 | ||
| 152 | pageInstances[pageName].name = pageName; |
150 | pageInstances[pageName].name = pageName; |
| 153 | 151 | ||
| 154 | pageInstances[pageName].pageElement = $("#page-template").tmpl(pageInstances[pageName]).appendTo($("body")).page(); |
152 | pageInstances[pageName].pageElement = $("#page-template").tmpl(pageInstances[pageName]).appendTo($("body")).page(); |
| 155 | pageInstances[pageName].pageContentElement = pageInstances[pageName].pageElement.find(":jqmData(role=content)"); |
153 | pageInstances[pageName].pageContentElement = pageInstances[pageName].pageElement.find(":jqmData(role=content)"); |
| 156 | - | ||
| 157 | - | ||
| 158 | - | ||
| 159 | pageInstances[pageName].pageElement.find(":jqmData(rel=back)").on("click", function(event) |
- | |
| 160 | { |
- | |
| 161 | $.mobile.changePage("#home", { transition: "none", reverse: true }); |
- | |
| 162 | event.preventDefault(); |
- | |
| 163 | }); |
- | |
| 164 | - | ||
| 165 | pageInstances[pageName].pageLinkElement = $("#pagelink-template").tmpl(pageInstances[pageName]).appendTo($("#home").find(":jqmData(role=content)")).trigger("create").on("click", function(event) |
- | |
| 166 | { |
- | |
| 167 | $.mobile.changePage("#" + pageInstances[pageName].pageElement.attr("id"), "none"); |
- | |
| 168 | event.preventDefault(); |
- | |
| 169 | }); |
- | |
| 170 | - | ||
| 171 | 154 | ||
| 172 | if (pages[configuration.page] && pages[configuration.page].init) |
155 | if (pages[configuration.page] && pages[configuration.page].init) |
| 173 | { |
156 | { |
| 174 | pages[configuration.page].init(pageInstances[pageName]); |
157 | pages[configuration.page].init(pageInstances[pageName]); |
| 175 | } |
158 | } |
| 176 | }); |
159 | }); |
| 177 | 160 | ||
| 178 | 161 | ||
| 179 | jQuery.each(pageInstances, function(pageName, pageInstance) |
162 | jQuery.each(pageInstances, function(pageName, pageInstance) |
| 180 | { |
163 | { |
| 181 | var navbarContainerElement = pageInstances[pageName].pageElement.find("ul.navbar-container"); |
164 | var navbarContainerElement = pageInstances[pageName].pageElement.find("ul.navbar-container"); |
| 182 | - | ||
| 183 | $("<li class=''><a href='#home'>Start</a></li>").appendTo(navbarContainerElement); |
- | |
| 184 | 165 | ||
| 185 | jQuery.each(pageInstances, function(pageName2, pageInstance2) |
166 | jQuery.each(pageInstances, function(pageName2, pageInstance2) |
| 186 | { |
167 | { |
| 187 | if (pageInstance === pageInstance2) |
168 | if (pageInstance === pageInstance2) |
| 188 | { |
169 | { |
| 189 | $("<li class=''><a href='#page-" + pageName2 + "' class='ui-btn-active ui-state-persist'>" + pageInstance2.title + "</a></li>").appendTo(navbarContainerElement); |
170 | $("<li class=''><a href='#page-" + pageName2 + "' class='ui-btn-active ui-state-persist'>" + pageInstance2.title + "</a></li>").appendTo(navbarContainerElement); |
| 190 | } |
171 | } |
| 191 | else |
172 | else |
| 192 | { |
173 | { |
| 193 | $("<li class=''><a href='#page-" + pageName2 + "'>" + pageInstance2.title + "</a></li>").appendTo(navbarContainerElement); |
174 | $("<li class=''><a href='#page-" + pageName2 + "'>" + pageInstance2.title + "</a></li>").appendTo(navbarContainerElement); |
| 194 | } |
175 | } |
| 195 | }); |
176 | }); |
| 196 | }); |
177 | }); |
| 197 | 178 | ||
| 198 | $(":jqmData(role=header)").navbar(); |
179 | $(":jqmData(role=header)").navbar(); |
| 199 | 180 | ||
| 200 | 181 | ||
| 201 | /*$(".ui-page").on("swipeleft", function() |
182 | /*$(".ui-page").on("swipeleft", function() |
| 202 | { |
183 | { |
| 203 | var nextpage = $(this).nextAll(":jqmData(role=page)"); |
184 | var nextpage = $(this).nextAll(":jqmData(role=page)"); |
| 204 | 185 | ||
| 205 | if (nextpage.length > 0) |
186 | if (nextpage.length > 0) |
| 206 | { |
187 | { |
| 207 | $.mobile.changePage("#" + nextpage[0].id, { transition: "none", changeHash: true }); |
188 | $.mobile.changePage("#" + nextpage[0].id, { transition: "none", changeHash: true }); |
| 208 | } |
189 | } |
| 209 | else |
190 | else |
| 210 | { |
191 | { |
| 211 | nextpage = $(":jqmData(role=page)"); |
192 | nextpage = $(":jqmData(role=page)"); |
| 212 | 193 | ||
| 213 | $.mobile.changePage("#" + nextpage[0].id, { transition: "none", changeHash: true }); |
194 | $.mobile.changePage("#" + nextpage[0].id, { transition: "none", changeHash: true }); |
| 214 | } |
195 | } |
| 215 | }); |
196 | }); |
| 216 | |
197 | |
| 217 | $(".ui-page").on("swiperight", function() |
198 | $(".ui-page").on("swiperight", function() |
| 218 | { |
199 | { |
| 219 | var prevpage = $(this).prevAll(":jqmData(role=page)"); |
200 | var prevpage = $(this).prevAll(":jqmData(role=page)"); |
| 220 | 201 | ||
| 221 | if (prevpage.length > 0) |
202 | if (prevpage.length > 0) |
| Line 236... | Line 217... | ||
| 236 | { |
217 | { |
| 237 | $(":jqmData(role=navbar)").find("a").not(".ui-state-persist").removeClass($.mobile.activeBtnClass); |
218 | $(":jqmData(role=navbar)").find("a").not(".ui-state-persist").removeClass($.mobile.activeBtnClass); |
| 238 | $(this).addClass($.mobile.activeBtnClass); |
219 | $(this).addClass($.mobile.activeBtnClass); |
| 239 | } |
220 | } |
| 240 | }); |
221 | }); |
| - | 222 | ||
| - | 223 | if (document.location.hash === "" || document.location.hash === "#") |
|
| - | 224 | { |
|
| - | 225 | document.location.hash = "#" + $(":jqmData(role=page)").attr("id"); |
|
| - | 226 | } |
|
| - | 227 | ||
| - | 228 | $.mobile.changePage($(document.location.hash)); |
|
| - | 229 | ||
| 241 | }); |
230 | }); |
| 242 | 231 | ||
| 243 | var dialogCloseTimer = null; |
232 | var dialogCloseTimer = null; |
| 244 | var dialogCloseCallback = null; |
233 | var dialogCloseCallback = null; |
| 245 | 234 | ||
| 246 | function openDialog(titleText, contentsHtml, autoCloseTimeout, closeCallback) |
235 | function openDialog(titleText, contentsHtml, autoCloseTimeout, closeCallback) |
| 247 | { |
236 | { |
| 248 | closeDialog(); |
237 | closeDialog(); |
| 249 | 238 | ||
| 250 | $("#dialog .dialog-title").text(titleText); |
239 | $("#dialog .dialog-title").text(titleText); |
| 251 | $("#dialog .dialog-contents").html(contentsHtml); |
240 | $("#dialog .dialog-contents").html(contentsHtml); |
| 252 | $("#dialog a").on("click", function(event) |
241 | $("#dialog a").on("click", function(event) |
| 253 | { |
242 | { |
| 254 | closeDialog(); |
243 | closeDialog(); |
| Line 283... | Line 272... | ||
| 283 | { |
272 | { |
| 284 | if (dialogCloseTimer) |
273 | if (dialogCloseTimer) |
| 285 | { |
274 | { |
| 286 | clearTimeout(dialogCloseTimer); |
275 | clearTimeout(dialogCloseTimer); |
| 287 | dialogCloseTimer = null; |
276 | dialogCloseTimer = null; |
| 288 | } |
277 | } |
| 289 | 278 | ||
| 290 | if ($("#dialog").is(":visible")) |
279 | if ($("#dialog").is(":visible")) |
| 291 | { |
280 | { |
| 292 | $("#dialog").dialog("close"); |
281 | $("#dialog").dialog("close"); |
| 293 | 282 | ||
| 294 | if (dialogCloseCallback) |
283 | if (dialogCloseCallback) |
| 295 | { |
284 | { |
| 296 | dialogCloseCallback(); |
285 | dialogCloseCallback(); |
| 297 | } |
286 | } |
| 298 | } |
287 | } |
| 299 | 288 | ||
| 300 | dialogCloseCallback = null; |
289 | dialogCloseCallback = null; |
| 301 | } |
290 | } |
| 302 | 291 | ||
| 303 | 292 | ||
| 304 | </script> |
293 | </script> |
| 305 | </head> |
294 | </head> |
| 306 | 295 | ||
| 307 | <body> |
296 | <body> |
| 308 | <div id="home" data-role="page" data-theme="a"> |
- | |
| 309 | <div data-role="header"><h1>Home Automation Control Center</h1></div> |
- | |
| 310 | <div data-role="content"></div> |
- | |
| 311 | </div> |
- | |
| 312 | - | ||
| 313 | <div data-role="dialog" id="dialog"> |
297 | <div data-role="dialog" id="dialog"> |
| 314 | <div data-role="content"> |
298 | <div data-role="content"> |
| 315 | <h3 class="dialog-title"></h3> |
299 | <h3 class="dialog-title"></h3> |
| 316 | <p class="dialog-contents"></p> |
300 | <p class="dialog-contents"></p> |
| 317 | <a href="#" data-role="button" data-theme="c">Close</a> |
301 | <a href="#" data-role="button" data-theme="c">Close</a> |