aboutsummaryrefslogtreecommitdiff
path: root/web/app/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/app/app.js')
-rw-r--r--web/app/app.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/web/app/app.js b/web/app/app.js
new file mode 100644
index 0000000..cd14ae5
--- /dev/null
+++ b/web/app/app.js
@@ -0,0 +1,60 @@
+(function () {
+ function FrontPageController(devices) {
+ var ctrl = this;
+
+ ctrl.devices = devices.data.devices;
+ }
+
+ function DeviceController(device) {
+ var ctrl = this;
+
+ ctrl.device = device.data.device;
+ }
+
+ function PropertyController($route, device, values) {
+ var ctrl = this;
+
+ ctrl.device = device.data.device;
+ ctrl.property = _.find(ctrl.device.properties, {id: $route.current.params.propertyId});
+ ctrl.values = values.data.values;
+ }
+
+ function config($routeProvider, $locationProvider) {
+ $routeProvider
+ .when('/', {
+ controller: FrontPageController,
+ controllerAs: 'ctrl',
+ templateUrl: '/app/templates/front-page.html',
+ resolve: {
+ devices: DillerRpcResolve.getDevices
+ }
+ })
+ .when('/device/:deviceId', {
+ controller: DeviceController,
+ controllerAs: 'ctrl',
+ templateUrl: '/app/templates/device.html',
+ resolve: {
+ device: DillerRpcResolve.getDevice
+ }
+ })
+ .when('/device/:deviceId/property/:propertyId', {
+ controller: PropertyController,
+ controllerAs: 'ctrl',
+ templateUrl: '/app/templates/property.html',
+ resolve: {
+ device: DillerRpcResolve.getDevice,
+ values: DillerRpcResolve.getValues
+ }
+ })
+ .otherwise({
+ redirectTo: '/'
+ });
+
+ //$locationProvider.html5Mode(true);
+ }
+
+ angular
+ .module('Diller', ['ngRoute'])
+ .config(config)
+ .service('DillerRpc', DillerRpc);
+})();