hw-server
Version:
Home automation system
685 lines (682 loc) • 27.6 kB
HTML
<html>
<head>
<title>Homework</title>
<meta name="viewport" content="width=device-width, initial-scale=1"></meta>
<script src="node_modules/jquery/dist/jquery.min.js"></script>
<script src="node_modules/angular/angular.min.js"></script>
<script src="node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="node_modules/angular-ui-bootstrap/dist/ui-bootstrap.js"></script>
<script src="node_modules/wolfy87-eventemitter/EventEmitter.min.js"></script>
<script src="node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js"></script>
<script src="node_modules/angular-bootstrap-switch/dist/angular-bootstrap-switch.min.js"></script>
<script src="node_modules/bootstrap-slider/dist/bootstrap-slider.min.js"></script>
<script src="node_modules/angular-bootstrap-colorpicker/js/bootstrap-colorpicker-module.min.js"></script>
<script src="sub/angular-bootstrap-slider/slider.js"></script>
<script src="sub/ngDraggable/ngDraggable.js"></script>
<script src="index.js"></script>
<link type="text/css" rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css"></link>
<link type="text/css" rel="stylesheet" href="node_modules/bootstrap-slider/dist/css/bootstrap-slider.min.css"></link>
<link type="text/css" rel="stylesheet" href="node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"></link>
<link type="text/css" rel="stylesheet" href="node_modules/font-awesome/css/font-awesome.min.css"></link>
<link type="text/css" rel="stylesheet" href="node_modules/font-awesome-animation/dist/font-awesome-animation.min.css"></link>
<link type="text/css" rel="stylesheet" href="node_modules/angular-bootstrap-colorpicker/css/colorpicker.min.css"></link>
<link type="text/css" rel="stylesheet" href="sub/animate.css/animate.min.css"></link>
<link type="text/css" rel="stylesheet" href="index.css"></link>
</head>
<body ng-app="app" ng-controller="mainController">
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="slide-nav">
<div class="container">
<div class="navbar-header">
<a class="navbar-toggle">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="navbar-brand" href="#">Homework</a>
</div>
<div id="slidemenu">
<div class="hw-spacer navbar-right"></div>
<ul class="nav navbar-nav">
<li ng-class="activeClass('devices')"><a href="#devices">Devices</a></li>
<li ng-class="activeClass('scenes')"><a href="#scenes">Scenes</a></li>
<li ng-class="activeClass('rules')"><a href="#rules">Rules</a></li>
<li ng-class="activeClass('variables')"><a href="#variables">Variables</a></li>
<li ng-class="activeClass('timers')"><a href="#timers">Timers</a></li>
<li ng-class="activeClass('zwave')"><a href="#zwave">Z-Wave</a></li>
<li ng-class="activeClass('logs')"><a href="#logs">Logs</a></li>
</ul>
</div>
</div>
</div>
<div id="page-content">
<div ng-if="isActive('devices')" class="container" ng-controller="devicesController">
<h2>Devices</h2>
<div>
<ul class="nav nav-pills pull-left">
<li role="presentation" ng-class="activeGroup('all')"><a href="#devices/all">All</a></li>
<li role="presentation" ng-repeat="group in groups" ng-class="activeGroup(group)" ng-drop="true" ng-drop-success="onDropDevice($data, $event, group)"><a href="#devices/{{group}}">{{group}}</a></li>
<li role="presentation"><a href="#devices/add">+</a></li>
</ul>
<button class="pull-right btn btn-success" ng-click="addDevice()">Add</button>
<button class="pull-right btn btn-primary" ng-click="restoreDevices()">Restore</button>
<div class="hw-clear"></div>
</div>
<div id="restoreDevicesModal" class="modal fade" role="dialog" ng-controller="restoreDevicesController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Restore devices</h4>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row" ng-repeat="device in deviceCandidates">
<button class="btn btn-default col-xs-12 col-sm-12 col-md-12 col-lg-12 center-block text-center" ng-click="restoreDevice(device.sha256)">{{device.date}}</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div id="addDeviceModal" class="modal fade" role="dialog" ng-controller="addDeviceController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add virtual device</h4>
</div>
<div class="modal-body">
<div ng-if="error" class="alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div class="hw-clear container-fluid">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Name
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="name">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="save()">Save</button>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-xs-6 col-sm-4 col-md-4 col-lg-3 center-block text-center" ng-repeat="(uuid, dev) in currentDevices">
<div class="hw-frame" ng-drag="true" ng-drag-data="{{dev}}">
<div class="hw-pointer" ng-click="setLocation('#device/' + dev.safeuuid)">
{{dev.fullName}}
</div>
<div ng-if="dev.type == 'Dimmer'" class="hw-margin center-block">
<slider ng-attr-id="{{'slider-'+dev.safeuuid}}" ng-model="dev.level" min="0" step="1" max="dev.max"></slider>
<button class="btn btn-default" ng-click="dev.level = 0">Off</button>
<button class="btn btn-default" ng-click="dev.level = dev.max">On</button>
</div>
<div ng-if="dev.type == 'Light' || dev.type == 'Fan'" class="hw-margin center-block">
<input bs-switch ng-model="dev.value" type="checkbox"></input>
</div>
<div ng-if="dev.type == 'RGBWLed'" class="hw-margin center-block">
<div tooltip-placement="top" uib-tooltip="{{dev.colorRGBW}}"><i colorpicker ng-model="dev.color" class="fa fa-tint hw-big" ng-style="{'color': dev.color}"></i></div>
<slider ng-model="dev.white" min="0" step="1" max="255"></slider>
</div>
<div ng-if="dev.type == 'Sensor'" class="hw-margin center-block">
<div><i class="fa fa-hand-paper-o hw-big ng-class:{'faa-shake animated': dev.motion} "></i></div>
</div>
<div ng-if="dev.type == 'GarageDoor'" class="hw-margin center-block">
<div>
<div>{{dev.state}}</div>
<button class="btn btn-default" ng-click="dev.mode = 1">Open</button>
<button class="btn btn-default" ng-click="dev.mode = 0">Close</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="addGroupModal" class="modal fade" role="dialog" ng-controller="addGroupController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add group</h4>
</div>
<div class="modal-body">
<div class="hw-clear container-fluid">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Name
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="name">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="save()">Save</button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="isActive('device')" class="container" ng-controller="deviceController">
<div>
<h2 class="pull-left">{{dev.name}}</h2>
<button ng-if="dev.virtual" class="pull-right btn btn-danger h2" type="button" ng-click="removeDevice()">Delete</button>
<button ng-if="dev.virtual" class="pull-right btn btn-success h2" type="button" ng-click="addValue()">Add value</button>
</div>
<div class="container hw-alternate hw-clear">
<div class="row hw-vcenter">
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
name
</div>
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
<form ng-submit="setName(dev)">
<input type="text" ng-model="dev.name" class="form-control">
</form>
</div>
</div>
<div class="row hw-vcenter">
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
floor
</div>
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
<form ng-submit="setFloor(dev)">
<div class="input-group">
<input type="text" ng-model="dev.floor" class="form-control" aria-label="...">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Select <span class="caret"></span></button>
<ul ng-if="floors && floors.length > 0" class="dropdown-menu dropdown-menu-right">
<li ng-repeat="floor in floors"><a href="" ng-click="setFloor(dev, floor)">{{floor}}</a></li>
</ul>
</div>
</div>
</form>
</div>
</div>
<div class="row hw-vcenter">
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
room
</div>
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
<form ng-submit="setRoom(dev)">
<div class="input-group">
<input type="text" ng-model="dev.room" class="form-control" aria-label="...">
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Select <span class="caret"></span></button>
<ul ng-if="rooms && rooms.length > 0" class="dropdown-menu dropdown-menu-right">
<li ng-repeat="room in rooms"><a href="" ng-click="setRoom(dev, room)">{{room}}</a></li>
</ul>
</div>
</div>
</form>
</div>
</div>
<div class="row hw-vcenter">
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
uuid
</div>
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
{{dev.uuid}}
</div>
</div>
<div class="row hw-vcenter">
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
type
</div>
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
<div class="dropdown"><button ng-attr-id="drop-hw-type" class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{dev.type}}<span class="caret"></span></button>
<ul class="dropdown-menu" aria-labelledby="drop-hw-type">
<li ng-repeat="tn in deviceTypes">
<a href="" class="btn default" ng-click="setType(dev, tn)">
{{tn}}
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row hw-vcenter" ng-repeat="val in vals">
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
{{val.name}}
</div>
<div class="col-xs-8 col-sm-8 col-md-8 col-lg-8">
<div class="pull-left">
<div ng-if="val.readOnly">
{{val.value}} {{val.units}}
</div>
<div ng-if="!val.readOnly">
<div ng-switch on="val.type">
<div ng-switch-when="range" style="float: left; margin-right: 1em">
<slider class="hw-slider-width" ng-model="val.value" min="1" step="1" max="100"></slider>
</div>
<div ng-switch-default>
<div ng-if="val.type !== 'array'" style="float: left; margin-right: 1em">
<input type="text" ng-model="val.value" class="form-control">
</div>
</div>
</div>
<div style="margin-right: 1em; float: left" ng-if="val.values">
<div class="dropdown"><button ng-attr-id="drop-{{val.name}}" class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{val.value}}<span class="caret"></span></button>
<ul class="dropdown-menu" aria-labelledby="drop-{{val.name}}">
<li ng-repeat="(valn, valv) in val.values">
<a href="" class="btn default" ng-click="setValue(val, valv)">
{{valn}}
</a>
</li>
</ul>
</div>
</div>
<div style="float: left">
{{val.units}}
</div>
</div>
</div>
<div class="pull-right">
<button ng-if="dev.virtual" class="pull-right btn btn-danger" type="button" ng-click="removeValue(val.name)">Delete</button>
</div>
</div>
</div>
</div>
<div id="addDeviceValueModal" class="modal fade" role="dialog" ng-controller="addDeviceValueController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add value</h4>
</div>
<div class="modal-body">
<div ng-if="error" class="alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div class="hw-clear container-fluid">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Name
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="name">
</div>
</div>
<div class="hw-clear container-fluid">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Template
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="template" placeholder="e.g. 'foo;bar' or '0-100'">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="save()">Save</button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="isActive('scenes')" class="container" ng-controller="sceneController">
<div>
<div>
<h2 class="pull-left">Scenes</h2>
<button class="pull-right btn btn-success h2" type="button" ng-click="addScene()">Add</button>
<button class="pull-right btn btn-primary h2" type="button" ng-click="restoreScenes()">Restore</button>
</div>
<div ng-if="error" class="alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div ng-if="success" class="alert alert-success">
{{success}}
</div>
<div class="hw-clear btn-group-vertical hw-expand-horizontal" role="group">
<div ng-repeat="scene in scenes" class="btn-group" role="group">
<a type="button" class="btn btn-default" ng-href="#scenes/{{scene.name}}">
{{scene.name}}
</a>
<div ng-if="activeScene(scene.name)" ng-controller="editSceneController">
<div ng-attr-id="edit-{{scene.name}}" class="hw-modifyrule hw-pad" compile="generate(scene)"></div>
</div>
</div>
</div>
</div>
<div id="addSceneModal" class="modal fade" role="dialog" ng-controller="addSceneController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add scene</h4>
</div>
<div class="modal-body" compile="generate()">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="save()">Save</button>
</div>
</div>
</div>
</div>
<div id="restoreScenesModal" class="modal fade" role="dialog" ng-controller="restoreScenesController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Restore scenes</h4>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row" ng-repeat="scene in sceneCandidates">
<button class="btn btn-default col-xs-12 col-sm-12 col-md-12 col-lg-12 center-block text-center" ng-click="restoreScene(scene.sha256)">{{scene.date}}</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="isActive('rules')" class="container" ng-controller="ruleController">
<div ng-class="ruleClass()">
<div>
<h2 class="pull-left">Rules</h2>
<button class="pull-right btn btn-success h2" type="button" ng-click="addRule()">Add</button>
<button class="pull-right btn btn-primary h2" type="button" ng-click="restoreRules()">Restore</button>
</div>
<div class="hw-clear btn-group-vertical hw-expand-horizontal" role="group">
<div ng-repeat="rule in rules" class="btn-group" role="group">
<a type="button" class="btn btn-default" ng-href="#rules/{{rule.safename}}">
{{rule.name}}
</a>
<div ng-if="activeRule(rule.safename)" ng-controller="editRuleController">
<div ng-attr-id="edit-{{rule.safename}}" class="hw-modifyrule hw-pad" compile="generate(rule)"></div>
</div>
</div>
</div>
</div>
<div id="addRuleModal" class="modal fade" role="dialog" ng-controller="addRuleController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add rule</h4>
</div>
<div class="modal-body" compile="generate()">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="save()">Save</button>
</div>
</div>
</div>
</div>
<div id="restoreRulesModal" class="modal fade" role="dialog" ng-controller="restoreRulesController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Restore rules</h4>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row" ng-repeat="rule in ruleCandidates">
<button class="btn btn-default col-xs-12 col-sm-12 col-md-12 col-lg-12 center-block text-center" ng-click="restoreRule(rule.sha256)">{{rule.date}}</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="isActive('variables')" class="container" ng-controller="variableController">
<div>
<h2 class="pull-left">Variables</h2>
<button class="pull-right btn btn-success h2" type="button" ng-click="addVariable()">Add</button>
</div>
<div class="hw-clear container-fluid">
<div ng-if="error" class="alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div ng-if="success" class="alert alert-success">
{{success}}
</div>
<div class="row" ng-repeat="(name, val) in variables">
<div ng-attr-id="key-{{name}}" class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
{{name}}
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input ng-attr-id="val-{{name}}" type="text" ng-model="variables[name]">
<button type="button" class="btn btn-default btn-xs" ng-click="clear(name)">×</button>
</div>
</div>
<div class="row">
<div class="pull-right"><button type="button" class="btn btn-primary" ng-click="save()">Save</button></div>
</div>
</div>
<div id="addVariableModal" class="modal fade" role="dialog" ng-controller="addVariableController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add variable</h4>
</div>
<div class="modal-body">
<div ng-if="error" class="alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div class="hw-clear container-fluid">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Name
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="name">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="save()">Save</button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="isActive('timers')" class="container" ng-controller="timerController">
<h2>Timers</h2>
<div class="hw-clear container-fluid">
<div ng-if="error" class="row alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div ng-if="success" class="row alert alert-success">
{{success}}
</div>
<div class="row">
<div class="hw-col hw-col-12">
<div>
<h4 class="pull-left">Timeouts</h4>
<button class="pull-right btn btn-success h4" type="button" ng-click="add('timeout')">Add</button>
</div>
<div class="hw-clear container-fluid">
<div class="row" ng-repeat="(name, val) in timeout">
<div ng-attr-id="timeout-{{name}}" class="hw-col hw-col-3">
{{name}}
</div>
<div class="hw-col hw-col-3">
{{val.timeout || val.state}}
</div>
<div class="hw-col hw-col-3">
{{val.now}}
</div>
<div class="hw-col hw-col-3">
<button class="btn btn-default" type="button" ng-click="restart(name, 'timeout')">Start</button>
<button class="btn btn-default" type="button" ng-click="stop(name, 'timeout')">Stop</button>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="hw-col hw-col-12">
<div>
<h4 class="pull-left">Intervals</h4>
<button class="pull-right btn btn-success h4" type="button" ng-click="add('interval')">Add</button>
</div>
<div class="hw-clear container-fluid">
<div class="row" ng-repeat="(name, val) in interval">
<div ng-attr-id="interval-{{name}}" class="hw-col hw-col-3">
{{name}}
</div>
<div class="hw-col hw-col-3">
{{val.timeout || val.state}}
</div>
<div class="hw-col hw-col-3">
{{val.now}}
</div>
<div class="hw-col hw-col-3">
<button class="btn btn-default" type="button" ng-click="restart(name, 'interval')">Start</button>
<button class="btn btn-default" type="button" ng-click="stop(name, 'interval')">Stop</button>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="hw-col hw-col-12">
<div>
<h4 class="pull-left">Schedules</h4>
<button class="pull-right btn btn-success h4" type="button" ng-click="add('schedule')">Add</button>
</div>
<div class="hw-clear container-fluid">
<div class="row" ng-repeat="(name, val) in schedule">
<div class="hw-col hw-col-6">
{{name}}
</div>
<div class="hw-col hw-col-6">
<input type="text" ng-model="schedule[name]">
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="hw-col hw-col-12 hw-pad-1">
<div class="pull-right"><button type="button" class="btn btn-primary" ng-click="saveSchedules()">Save</button></div>
</div>
</div>
</div>
<div id="addTimerModal" class="modal fade" role="dialog" ng-controller="addTimerController">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Add {{adding}}</h4>
</div>
<div class="modal-body">
<div ng-if="error" class="alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div class="hw-clear container-fluid">
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Name
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="timername">
</div>
</div>
<div class="row" ng-if="adding=='schedule'">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Value
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="$parent.timervalue">
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="save()">Save</button>
</div>
</div>
</div>
</div>
<div id="restartTimerModal" class="modal fade" role="dialog">
<div class="modal-dialog hw-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Start {{restarting.name}}</h4>
</div>
<div class="modal-body">
<div class="hw-clear container-fluid">
<div class="row">
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 center-block text-center">
Value
</div>
<div class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
<input type="text" ng-model="restarting.value">
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-default" ng-click="restart()">Start</button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="isActive('zwave')" class="container" ng-controller="zwaveController">
<h2>Z-Wave</h2>
<div class="hw-clear container-fluid">
<div ng-if="error" class="row alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div ng-if="success" class="row alert alert-success">
{{success}}
</div>
<div>
<div class="row">
<div class="col-xs-12 col-sm-8 col-md-4 col-lg-3">
<button type="button" ng-click="action('pair')" class="btn btn-default hw-expand-horizontal">Pair</button>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-8 col-md-4 col-lg-3">
<button type="button" ng-click="action('depair')" class="btn btn-default hw-expand-horizontal">Depair</button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="isActive('logs')" class="container" ng-controller="logsController">
<h2>Logs</h2>
<div class="hw-clear container-fluid">
<div ng-if="error" class="row alert alert-danger">
<strong>Error</strong> {{error}}
</div>
<div ng-if="success" class="row alert alert-success">
{{success}}
</div>
<div>
<div class="row hw-vcenter" ng-repeat="log in logs">
{{log}}
</div>
</div>
</div>
</div>
</div>
</body>
</html>