Subversion Repositories HomeAutomation

Rev

Rev 2080 | Rev 2086 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. <?php
  2. require_once("backend.php");
  3. require_once("config.php");
  4. ?>
  5. <!DOCTYPE HTML>
  6. <html>
  7.   <head>
  8.     <meta charset="utf-8">
  9.     <meta name="viewport" content="width=device-width, initial-scale=1">
  10.     <title>Home Automation Control Center</title>
  11.     <link rel="stylesheet" href="jquery.mobile-1.1.1.min.css" />
  12.     <script src="jquery-1.7.2.min.js"></script>
  13.     <script src="jquery.mobile-1.1.1.min.js"></script>
  14.     <script src="jquery.tmpl.min.js"></script>
  15.  
  16.     <style>
  17.     <?php
  18.       foreach ($pages as $page)
  19.       {
  20.         include("pages/" . $page . "/style.css");
  21.       }
  22.     ?>
  23.     </style>
  24.  
  25.     <?php
  26.       foreach ($pages as $page)
  27.       {
  28.         include("pages/" . $page . "/template.html");
  29.       }
  30.     ?>
  31.  
  32.     <script id="page-template" type="text/x-jquery-tmpl" data-enhance="false">
  33.       <div id="page-${name}" data-role="page" data-theme="a">
  34.         <div data-role="header">
  35.           <a href="#" data-icon="left" data-rel="back" data-direction="reverse">Home</a>
  36.           <h1>Home Automation Control Center - ${title}</h1>
  37.         </div>
  38.         <div data-role="content"></div>
  39.       </div>
  40.     </script>
  41.  
  42.     <script id="pagelink-template" type="text/x-jquery-tmpl" data-enhance="false">
  43.       <span>
  44.         <a href="#" data-role="button">${title}</a>
  45.       </span>
  46.     </script>
  47.  
  48.     <script>
  49.       $.mobile.ignoreContentEnabled = true;
  50.  
  51.       function sendCommand(command, callback)
  52.       {
  53.         jQuery.getJSON("backend.php?ajax", { command: command }, callback);
  54.       }
  55.     </script>
  56.  
  57.     <script>
  58.       var pages = {};
  59.  
  60.     <?php
  61.       foreach ($pages as $page)
  62.       {
  63.         include("pages/" . $page . "/script.js");
  64.       }
  65.     ?>
  66.     </script>
  67.  
  68.     <script>
  69.  
  70.       var aliasNames = <?php echo json_encode($aliasNames); ?>;
  71.       var pageConfigurations = <?php echo json_encode($pageConfiguration); ?>;
  72.       var pageInstances = {};
  73.  
  74.       $(document).ready(function(event)
  75.       {
  76.         jQuery.each(pageConfigurations, function(n, configuration)
  77.         {
  78.           var pageName = configuration.page + "_" + n;
  79.  
  80.           pageInstances[pageName] = configuration;
  81.  
  82.           pageInstances[pageName].name = pageName;
  83.  
  84.           pageInstances[pageName].pageElement = $("#page-template").tmpl(pageInstances[pageName]).appendTo($("body")).page();
  85.           pageInstances[pageName].pageContentElement = pageInstances[pageName].pageElement.find(":jqmData(role=content)");
  86.  
  87.           pageInstances[pageName].pageElement.find(":jqmData(rel=back)").on("click", function(event)
  88.           {
  89.             $.mobile.changePage($("#home"), "slide");
  90.             event.preventDefault();
  91.           });
  92.  
  93.           pageInstances[pageName].pageLinkElement = $("#pagelink-template").tmpl(pageInstances[pageName]).appendTo($("#home").find(":jqmData(role=content)")).trigger("create").on("click", function(event)
  94.           {
  95.             $.mobile.changePage(pageInstances[pageName].pageElement, "slide");
  96.             event.preventDefault();
  97.           });
  98.  
  99.  
  100.           if (pages[configuration.page] && pages[configuration.page].init)
  101.           {
  102.             pages[configuration.page].init(pageInstances[pageName]);
  103.           }
  104.         });
  105.  
  106.         $(".ui-page").on("swipeleft", function()
  107.         {
  108.           var nextpage = $(this).nextAll(":jqmData(role=page)");
  109.  
  110.           if (nextpage.length > 0)
  111.           {
  112.             $.mobile.changePage($(nextpage[0]), "slide");
  113.           }
  114.         });
  115.        
  116.         $(".ui-page").on("swiperight", function()
  117.         {
  118.           var prevpage = $(this).prevAll(":jqmData(role=page)");
  119.  
  120.           if (prevpage.length > 0)
  121.           {
  122.             $.mobile.changePage($(prevpage[0]), "slide", true);
  123.           }
  124.         });
  125.       });
  126.  
  127.     </script>
  128.   </head>
  129.  
  130.   <body>
  131.     <div id="home" data-role="page" data-theme="a">
  132.       <div data-role="header"><h1>Home Automation Control Center</h1></div>
  133.       <div data-role="content"></div>
  134.     </div>
  135.   </body>
  136. </html>
  137.