mbed connector webapp quickstart

Revision:
0:4233b7b10255
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/index.hbs	Fri Feb 10 08:36:15 2017 +0000
@@ -0,0 +1,132 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <title>mbed Device Connector Webapp Quickstart</title>
+
+    <link rel="stylesheet" href="static/css/normalize.css">
+    <link rel="stylesheet" href="static/css/foundation.min.css">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="static/css/styles.css">
+
+    <!--[if lt IE 9]>
+    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+  </head>
+  <body>
+    <div class="row margin">
+      <div class="small-12 columns">
+        <div><img src="static/img/ARMmbedLogo.png" alt="ARM mbed"></div>
+      </div>
+    </div>
+    <div class="blueband">
+      <div class="row">
+        <div class="small-12 columns">
+          <h1>Webapp Quickstart</h1>
+        </div>
+      </div>
+    </div>
+    <div id="endpoints">
+    {{#each endpoints}}
+      <div class="row" id="{{name}}">
+        <div class="small-12 columns">
+          <div class="row">
+            <div class="small-12 columns">
+              <h2>{{name}}</h2>
+            </div>
+          </div>
+          <div class="row">
+            <div class="small-12 medium-6 columns">
+              <h4>Presses: <span class="presses-value">Unknown</span></h4>
+              <label><input type="checkbox" class="subscribe-presses"> Subscribe</label>
+              <button class="get-presses">GET</button>
+            </div>
+            <div class="small-12 medium-6 columns">
+              <h4>LED Blink Pattern</h4>
+              <div>
+                <input type="text" value="{{blinkPattern}}" class="blink-pattern">
+              </div>
+              <div class="row">
+                <div class="small-6 columns">
+                  <button class="update-blink-pattern">Update (PUT)</button>
+                </div>
+                <div class="small-6 columns text-right">
+                  <button class="blink">Blink (POST)</button>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    {{/each}}
+    </div>
+
+
+    <script type="text/javascript" src="/static/js/jquery-2.1.4.min.js"></script>
+    <script type="text/javascript" src="/static/js/socket.io.js"></script>
+    <script type="text/javascript">
+      $(function() {
+        var socket = io();
+
+        $('#endpoints').children().each(function(index, element) {
+          var _this = $(this);
+          _this.find('.subscribe-presses').change(function() {
+            if ($(this).is(":checked")) {
+              _this.find('.get-presses').prop('disabled', true);
+              socket.emit('subscribe_to_presses', {
+                endpointName: _this.attr('id')
+              });
+            } else {
+              _this.find('.get-presses').prop('disabled', false);
+              socket.emit('unsubscribe_to_presses', {
+                endpointName: _this.attr('id')
+              });
+            }
+          });
+
+          _this.find('.get-presses').on('click', function() {
+            socket.emit('get_presses', {
+              endpointName: _this.attr('id')
+            });
+          });
+
+          _this.find('.blink-pattern').bind('input', function() {
+            _this.find('.update-blink-pattern').addClass('active');
+          })
+
+          _this.find('.update-blink-pattern').on('click', function() {
+            socket.emit('update_blink_pattern', {
+              endpointName: _this.attr('id'),
+              blinkPattern: _this.find('.blink-pattern').val()
+            });
+
+            $(this).removeClass('active');
+          });
+
+          _this.find('.blink').on('click', function() {
+            socket.emit('blink', {
+              endpointName: _this.attr('id')
+            });
+          });
+        });
+
+
+        socket.on('presses', function (data) {
+          console.log('presses', data);
+          $('#' + data.endpointName + ' .presses-value').html(data.value);
+        });
+
+        socket.on('subscribed-to-presses', function (data) {
+          console.log('subscribed-to-presses', data);
+        });
+
+        socket.on('unsubscribed-to-presses', function (data) {
+          console.log('unsubscribed-to-presses', data);
+        });
+
+      });
+    </script>
+  </body>
+</html>
\ No newline at end of file