Subversion Repositories HomeAutomation

Rev

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>