Mercurial > code > home > repos > homeauto
diff service/arduinoNode/static/index.html @ 193:960b3b4cdd29
rewrite to polymer 1
Ignore-this: 9e66ae7e1227732e68393326b2483aa2
author | drewp@bigasterisk.com |
---|---|
date | Sun, 30 Aug 2015 01:19:57 -0700 |
parents | fc5fdcc3ed4a |
children | 35e07a9f3287 |
line wrap: on
line diff
--- a/service/arduinoNode/static/index.html Sun Aug 30 01:19:29 2015 -0700 +++ b/service/arduinoNode/static/index.html Sun Aug 30 01:19:57 2015 -0700 @@ -3,19 +3,25 @@ <head> <title>arduinoNode</title> <meta charset="utf-8" /> - <link rel="import" href="/lib/polymer/0.5.2/polymer/polymer.html"> - <link rel="import" href="/lib/polymer/0.5.2/core-ajax/core-ajax.html"> + <script src="/lib/polymer/1.0.9/webcomponentsjs/webcomponents.min.js"></script> + <link rel="import" href="/lib/polymer/1.0.9/polymer/polymer.html"> + <link rel="import" href="/lib/polymer/1.0.9/iron-ajax/iron-ajax.html"> + <link rel="import" href="/lib/polymer/1.0.9/iron-flex-layout/iron-flex-layout.html"> <link rel="import" href="/room/ari/static/rdf-observe.html"> <link rel="import" href="/room/ari/static/rdf-oneshot.html"> + <link rel="import" href="/room/ari/static/rdf-uri.html"> <link rel="import" href="static/output-widgets.html"> - <style> body { font-family: monospace; + display: flex; + flex-direction: column; + margin: 0; + height: 100vh; } </style> </head> - <body layout vertical fullbleed> + <body> <script> window.NS = { dev: 'http://projects.bigasterisk.com/device/', @@ -25,123 +31,105 @@ }; </script> - <script> - PolymerExpressions.prototype.tojson = function(input) { - return JSON.stringify(input); - }; - - // not well defined for uri prefixes that are string prefixes of each other - PolymerExpressions.prototype.compactUri = function(uri) { - if (uri === undefined) { - return uri; - } - for (var short of Object.keys(window.NS)) { - var prefix = window.NS[short]; - if (uri.indexOf(prefix) == 0) { - return short + ':' + uri.substr(prefix.length); - } - } - return uri; - }; - </script> - - <polymer-element name="linked-uri" noscript attributes="href"> + <dom-module id="linked-uri"> <template> - <a href="{{href}}">{{href | compactUri}}</a> - </template> - </polymer-element> - - <!-- subj/pred are compact uris --> - <polymer-element name="watched-subgraph" attributes="graph subj pred"> - <template> - <style> - .read { font-weight: bold; } - </style> - - <rdf-observe - graph="{{graph}}" - subject="{{subj}}" - predicate="{{pred}}" - out="{{out}}"> - </rdf-observe> - - <div>{{subj | compactUri}}, {{pred | compactUri}}, - <span class="read">{{formattedOut}}</span> - </div> - + <a href$="{{href}}">{{compactUri(href)}}</a> </template> <script> Polymer({ - outChanged: function() { - var obj = this.out[this.pred]; - if (typeof(obj) == 'string') { - this.formattedOut = PolymerExpressions.prototype.compactUri(obj); + is: 'linked-uri', + properties: { href: { notify: true } }, + behaviors: [BigastUri] + }); + </script> + </dom-module> + + <!-- subj/pred are compact uris --> + <dom-module id="watched-subgraph"> + <style> + .read { font-weight: bold; } + </style> + <template> + <rdf-observe graph="{{graph}}" subject="{{subj}}" predicate="{{pred}}" out="{{out}}"> + </rdf-observe> + + <div><span>{{compactUri(subj)}}</span>, <span>{{compactUri(pred)}}</span>, + <span class="read">{{formatted(out)}}</span> + </div> + + </template> + <script> + Polymer({ + is: 'watched-subgraph', + properties: { + graph: { notify: true }, + out: { notify: true }, + pred: { notify: true }, + subj: { notify: true } + }, + behaviors: [BigastUri], + formatted: function (out) { + var obj = out[this.compactUri(this.pred)]; + if (typeof obj == 'string') { + return this.compactUri(obj); } else { - this.formattedOut = obj['@value']; + return obj['@value']; } } }); </script> - - </polymer-element> - - <polymer-element name="arduinonode-boards" noscript> + </dom-module> + + <dom-module id="arduinonode-boards"> + <style> + h1 { + margin: 0; + font-size: 130%; + } + ul { + padding-left: 5px; + } + .board, .device { + border: 1px solid gray; + border-radius: 10px; + margin: 13px; + padding: 7px; + box-shadow: 2px 5px 5px rgba(0, 0, 0, 0.14); + } + .board { + background: rgb(244, 244, 244); + } + .device { + background: #fff; + } + </style> <template> - <style> - h1 { - margin: 0; - font-size: 130%; - } - ul { - padding-left: 5px; - } - .board, .device { - border: 1px solid gray; - border-radius: 10px; - margin: 13px; - padding: 7px; - box-shadow: 2px 5px 5px rgba(0, 0, 0, 0.14); - } - .board { - background: rgb(244, 244, 244); - } - .device { - background: #fff; - } - </style> - <core-ajax - url="boards" - auto="true" - handleAs="json" - response="{{ret}}"></core-ajax> - <template repeat="{{board in ret.boards}}"> + <iron-ajax url="boards" auto="true" handle-as="json" + last-response="{{ret}}"></iron-ajax> + <template is="dom-repeat" items="{{ret.boards}}" as="board"> <div class="board"> - <h1>Board <linked-uri href="{{board.uri}}"></linked-uri></h1> + <h1>Board <linked-uri href$="{{board.uri}}"></linked-uri></h1> <h2>Devices</h2> <ul> - <template repeat="{{dev in board.devices}}"> + <template is="dom-repeat" items="{{board.devices}}" as="dev"> <div class="device"> <h1> - {{dev.className}} - <linked-uri href="{{dev.uri}}"></linked-uri> + <span>{{dev.className}}</span> + <linked-uri href$="{{dev.uri}}"></linked-uri> </h1> - - <template if="{{dev.watchPrefixes.length}}"> + <template is="dom-if" if="{{dev.watchPrefixes.length}}"> <div>watching:</div> <ul> - <template repeat="{{prefix in dev.watchPrefixes}}"> - <watched-subgraph - graph="{{board.graph}}" - subj="{{prefix[0] | compactUri}}" - pred="{{prefix[1] | compactUri}}"></watched-subgraph> + <template is="dom-repeat" items="{{dev.watchPrefixes}}" as="prefix"> + <watched-subgraph graph="{{board.graph}}" subj="{{prefix.0}}" pred="{{prefix.1}}"></watched-subgraph> </template> </ul> </template> - <template if="{{dev.outputWidgets.length}}"> + <template is="dom-if" if="{{dev.outputWidgets.length}}"> <div>send output:</div> <ul> - <template repeat="{{out in dev.outputWidgets}}"> + <template is="dom-repeat" items="{{dev.outputWidgets}}" as="out"> <div> <output-widget-any desc="{{out}}"></output-widget-any> </div> @@ -154,30 +142,13 @@ </div> </template> </template> - </polymer-element> - <arduinonode-boards></arduinonode-boards> - - <polymer-element name="data-dump" noscript> - <template> - <rdf-observe - graph="http://dash:9059/graph" - subject="http://bigasterisk.com/homeauto/board1/oneWire/" - predicate="room:temperatureF" - out="{{out}}"> - </rdf-observe> - <div>sees: {{out['room:temperatureF']['@value']}}</div> - - - <rdf-observe - graph="http://dash:9059/graph" - subject="http://bigasterisk.com/homeauto/board1/oneWire/" - predicate="http://projects.bigasterisk.com/room/temperatureRetries" - out="{{out2}}"> - </rdf-observe> - <div>sees2: {{out2['room:temperatureRetries']['@value']}}</div> - - </template> - </polymer-element> - <!-- <data-dump></data-dump> --> + <script> + Polymer({ + is: 'arduinonode-boards', + behaviors: [BigastUri] + }); + </script> + </dom-module> + <arduinonode-boards></arduinonode-boards> </body> </html>