Subversion Repositories HomeAutomation

Rev

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

<?php
require_once("backend.php");
require_once("config.php");
?>
<!DOCTYPE HTML>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Home Automation Control Center</title>
    <link rel="stylesheet" href="jquery.mobile-1.1.1.min.css" />
    <script src="jquery-1.7.2.min.js"></script>
    <script src="jquery.mobile-1.1.1.min.js"></script>
    <script src="jquery.tmpl.min.js"></script>

    <style>
    <?php
      foreach ($pages as $page)
      {
        include("pages/" . $page . "/style.css");
      }
    ?>
    </style>

    <?php
      foreach ($pages as $page)
      {
        include("pages/" . $page . "/template.html");
      }
    ?>

    <script id="page-template" type="text/x-jquery-tmpl" data-enhance="false">
      <div id="page-${name}" data-role="page" data-add-back-btn="true" data-theme="a">
        <div data-role="header"><h1>Home Automation Control Center - ${title}</h1></div>
        <div data-role="content"></div>
      </div>
    </script>

    <script id="pagelink-template" type="text/x-jquery-tmpl" data-enhance="false">
      <span>
        <a href="#pagelink?page=${name}" data-role="button">${title}</a>
      </span>
    </script>

    <script>
      $.mobile.ignoreContentEnabled = true;

      function sendCommand(command, callback)
      {
        jQuery.getJSON("backend.php?ajax", { command: command }, callback);
      }
    </script>

    <script>
      var pages = {};

    <?php
      foreach ($pages as $page)
      {
        include("pages/" . $page . "/script.js");
      }
    ?>
    </script>

    <script>

      var pageConfigurations = <?php echo json_encode($pageConfiguration); ?>;
      var pageInstances = {};

      $(document).ready(function(event)
      {
        jQuery.each(pageConfigurations, function(n, configuration)
        {
          var pageName = configuration.page + "_" + n;

          pageInstances[pageName] = configuration;

          pageInstances[pageName].name = pageName;

          pageInstances[pageName].pageLinkElement = $("#pagelink-template").tmpl(pageInstances[pageName]).appendTo($("#home").find(":jqmData(role=content)")).trigger("create");
          pageInstances[pageName].pageElement = $("#page-template").tmpl(pageInstances[pageName]).appendTo($("body")).page();
          pageInstances[pageName].pageContentElement = pageInstances[pageName].pageElement.find(":jqmData(role=content)");

          if (pages[configuration.page] && pages[configuration.page].init)
          {
            pages[configuration.page].init(pageInstances[pageName]);
          }
        });
      });

      $(document).bind("pagebeforechange", function(e, data)
      {
        if (typeof data.toPage === "string")
        {
          var u = $.mobile.path.parseUrl(data.toPage);
          var re = /^#pagelink/;

          if (u.hash.search(re) !== -1)
          {
            var pageName = u.hash.replace(/.*page=/, "");
            var page = $("#page-" + pageName);

            if (page)
            {
              data.options.dataUrl = u.href;

              $.mobile.changePage(page, data.options);
            }

            e.preventDefault();
          }
        }
      });

    </script>
  </head>

  <body>
    <div id="home" data-role="page" data-theme="a">
      <div data-role="header"><h1>Home Automation Control Center</h1></div>
      <div data-role="content"></div>
    </div>
  </body>
</html>