Matteo Scandolo | da19dff | 2016-02-08 16:55:44 -0800 | [diff] [blame] | 1 | (function () { |
| 2 | 'use strict'; |
Matteo Scandolo | 4b3d872 | 2016-02-24 11:22:48 -0800 | [diff] [blame] | 3 | angular.module('xos.diagnostic') |
Matteo Scandolo | 16763e9 | 2016-02-24 15:40:22 -0800 | [diff] [blame] | 4 | .directive('diagnosticContainer', function(){ |
Matteo Scandolo | da19dff | 2016-02-08 16:55:44 -0800 | [diff] [blame] | 5 | return { |
| 6 | restrict: 'E', |
| 7 | templateUrl: 'templates/diagnostic.tpl.html', |
| 8 | controllerAs: 'vm', |
Matteo Scandolo | 16763e9 | 2016-02-24 15:40:22 -0800 | [diff] [blame] | 9 | controller: function(ChartData, Subscribers, ServiceRelation, $rootScope, $log){ |
| 10 | |
Matteo Scandolo | 17dc11d | 2016-02-22 09:16:46 -0800 | [diff] [blame] | 11 | this.loader = true; |
| 12 | this.error = false; |
Matteo Scandolo | ba2d63d | 2016-02-17 13:54:11 -0800 | [diff] [blame] | 13 | Subscribers.query().$promise |
Matteo Scandolo | da19dff | 2016-02-08 16:55:44 -0800 | [diff] [blame] | 14 | .then((subscribers) => { |
| 15 | this.subscribers = subscribers; |
Matteo Scandolo | 657d132 | 2016-02-16 17:43:00 -0800 | [diff] [blame] | 16 | return ServiceRelation.get(); |
Matteo Scandolo | da19dff | 2016-02-08 16:55:44 -0800 | [diff] [blame] | 17 | }) |
| 18 | .then((serviceChain) => { |
| 19 | this.serviceChain = serviceChain; |
Matteo Scandolo | 0b8b7ab | 2016-03-07 16:41:25 -0800 | [diff] [blame^] | 20 | // debug helper |
| 21 | loadSubscriber(this.subscribers[0]); |
Matteo Scandolo | 17dc11d | 2016-02-22 09:16:46 -0800 | [diff] [blame] | 22 | }) |
| 23 | .catch(e => { |
| 24 | throw new Error(e); |
| 25 | this.error = e; |
| 26 | }) |
| 27 | .finally(() => { |
| 28 | this.loader = false; |
Matteo Scandolo | da19dff | 2016-02-08 16:55:44 -0800 | [diff] [blame] | 29 | }); |
Matteo Scandolo | cc8fa15 | 2016-02-22 09:57:55 -0800 | [diff] [blame] | 30 | |
Matteo Scandolo | 0b8b7ab | 2016-03-07 16:41:25 -0800 | [diff] [blame^] | 31 | const loadSubscriber = (subscriber) => { |
Matteo Scandolo | cc8fa15 | 2016-02-22 09:57:55 -0800 | [diff] [blame] | 32 | ServiceRelation.getBySubscriber(subscriber) |
| 33 | .then((serviceChain) => { |
| 34 | this.serviceChain = serviceChain; |
Matteo Scandolo | 0344ef3 | 2016-02-22 16:53:22 -0800 | [diff] [blame] | 35 | ChartData.currentServiceChain = serviceChain; |
Matteo Scandolo | dffc138 | 2016-02-22 14:53:44 -0800 | [diff] [blame] | 36 | return Subscribers.getWithDevices({id: subscriber.id}).$promise; |
| 37 | }) |
| 38 | .then((subscriber) => { |
| 39 | this.selectedSubscriber = subscriber; |
Matteo Scandolo | 0344ef3 | 2016-02-22 16:53:22 -0800 | [diff] [blame] | 40 | ChartData.currentSubscriber = subscriber; |
Matteo Scandolo | cc8fa15 | 2016-02-22 09:57:55 -0800 | [diff] [blame] | 41 | }); |
Matteo Scandolo | 0b8b7ab | 2016-03-07 16:41:25 -0800 | [diff] [blame^] | 42 | }; |
| 43 | |
| 44 | $rootScope.$on('subscriber.selected', (evt, subscriber) => { |
| 45 | loadSubscriber(subscriber); |
Matteo Scandolo | cc8fa15 | 2016-02-22 09:57:55 -0800 | [diff] [blame] | 46 | }); |
Matteo Scandolo | 0b8b7ab | 2016-03-07 16:41:25 -0800 | [diff] [blame^] | 47 | |
Matteo Scandolo | da19dff | 2016-02-08 16:55:44 -0800 | [diff] [blame] | 48 | } |
| 49 | } |
| 50 | }); |
Matteo Scandolo | 0b8b7ab | 2016-03-07 16:41:25 -0800 | [diff] [blame^] | 51 | })(); |