Subversion Repositories HomeAutomation

Rev

Rev 2086 | Rev 2102 | 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.  
  24.       .ui-li-heading {
  25.         white-space: normal;
  26.       }
  27.     </style>
  28.  
  29.     <?php
  30.       foreach ($pages as $page)
  31.       {
  32.         include("pages/" . $page . "/template.html");
  33.       }
  34.     ?>
  35.  
  36.     <script id="page-template" type="text/x-jquery-tmpl" data-enhance="false">
  37.       <div id="page-${name}" data-role="page" data-theme="a">
  38.         <div data-role="header">
  39.           <a href="#" data-icon="home" data-rel="back" data-direction="reverse">Home</a>
  40.           <h1>Home Automation Control Center - ${title}</h1>
  41.         </div>
  42.         <div data-role="content"></div>
  43.       </div>
  44.     </script>
  45.  
  46.     <script id="pagelink-template" type="text/x-jquery-tmpl" data-enhance="false">
  47.       <span>
  48.         <a href="#" data-role="button">${title}</a>
  49.       </span>
  50.     </script>
  51.  
  52.     <script>
  53.       $.mobile.ignoreContentEnabled = true;
  54.       $.mobile.transitionFallbacks.pop = "none"
  55.       $.mobile.transitionFallbacks.flip = "none"
  56.       $.mobile.transitionFallbacks.turn = "none"
  57.       $.mobile.transitionFallbacks.flow = "none"
  58.       $.mobile.transitionFallbacks.slidefade = "none"
  59.       $.mobile.transitionFallbacks.slide = "none"
  60.       $.mobile.transitionFallbacks.slideup = "none"
  61.       $.mobile.transitionFallbacks.slidedown = "none"
  62.       $.mobile.defaultPageTransition = "none"
  63.  
  64.       function sendCommand(command, callback)
  65.       {
  66.         jQuery.getJSON("backend.php?ajax", { command: command }, callback);
  67.       }
  68.     </script>
  69.  
  70.     <script>
  71.       var pages = {};
  72.  
  73.     <?php
  74.       foreach ($pages as $page)
  75.       {
  76.         include("pages/" . $page . "/script.js");
  77.       }
  78.     ?>
  79.     </script>
  80.  
  81.     <script>
  82.  
  83.       var aliasNames = <?php echo json_encode($aliasNames); ?>;
  84.       var pageConfigurations = <?php echo json_encode($pageConfiguration); ?>;
  85.       var pageInstances = {};
  86.  
  87.       $(document).ready(function(event)
  88.       {
  89.         jQuery.each(pageConfigurations, function(n, configuration)
  90.         {
  91.           var pageName = configuration.page + "_" + n;
  92.  
  93.           pageInstances[pageName] = configuration;
  94.  
  95.           pageInstances[pageName].name = pageName;
  96.  
  97.           pageInstances[pageName].pageElement = $("#page-template").tmpl(pageInstances[pageName]).appendTo($("body")).page();
  98.           pageInstances[pageName].pageContentElement = pageInstances[pageName].pageElement.find(":jqmData(role=content)");
  99.  
  100.           pageInstances[pageName].pageElement.find(":jqmData(rel=back)").on("click", function(event)
  101.           {
  102.             $.mobile.changePage($("#home"), "slide", true);
  103.             event.preventDefault();
  104.           });
  105.  
  106.           pageInstances[pageName].pageLinkElement = $("#pagelink-template").tmpl(pageInstances[pageName]).appendTo($("#home").find(":jqmData(role=content)")).trigger("create").on("click", function(event)
  107.           {
  108.             $.mobile.changePage(pageInstances[pageName].pageElement, "slide");
  109.             event.preventDefault();
  110.           });
  111.  
  112.  
  113.           if (pages[configuration.page] && pages[configuration.page].init)
  114.           {
  115.             pages[configuration.page].init(pageInstances[pageName]);
  116.           }
  117.         });
  118.  
  119.         $(".ui-page").on("swipeleft", function()
  120.         {
  121.           var nextpage = $(this).nextAll(":jqmData(role=page)");
  122.  
  123.           if (nextpage.length > 0)
  124.           {
  125.             $.mobile.changePage($(nextpage[0]), "slide");
  126.           }
  127.         });
  128.        
  129.         $(".ui-page").on("swiperight", function()
  130.         {
  131.           var prevpage = $(this).prevAll(":jqmData(role=page)");
  132.  
  133.           if (prevpage.length > 0)
  134.           {
  135.             $.mobile.changePage($(prevpage[0]), "slide", true);
  136.           }
  137.         });
  138.       });
  139.  
  140.     </script>
  141.   </head>
  142.  
  143.   <body>
  144.     <div id="home" data-role="page" data-theme="a">
  145.       <div data-role="header"><h1>Home Automation Control Center</h1></div>
  146.       <div data-role="content"></div>
  147.     </div>
  148.   </body>
  149. </html>
  150.