module.exports = function ControlPanesController ($scope, $http, gettext, $routeParams, $timeout, $location, DeviceService, GroupService, ControlService, StorageService, FatalMessageService, SettingsService) { var sharedTabs = [ { title: gettext('Screenshots'), icon: 'fa-camera color-skyblue', templateUrl: 'control-panes/screenshots/screenshots.jade', filters: ['native', 'web'] }, { title: gettext('Automation'), icon: 'fa-road color-lila', templateUrl: 'control-panes/automation/automation.jade', filters: ['native', 'web'] }, { title: gettext('Advanced'), icon: 'fa-bolt color-brown', templateUrl: 'control-panes/advanced/advanced.jade', filters: ['native', 'web'] }, { title: gettext('FileSystem'), icon: 'fa-info color-orange', templateUrl: 'control-panes/filesystem/fs.jade', filters: ['native', 'web'] }, { title: gettext('Info'), icon: 'fa-info color-orange', templateUrl: 'control-panes/info/info.jade', filters: ['native', 'web'] } ] $scope.topTabs = [ { title: gettext('Dashboard'), icon: 'fa-dashboard fa-fw color-pink', templateUrl: 'control-panes/dashboard/dashboard.jade', filters: ['native', 'web'] } ].concat(angular.copy(sharedTabs)) $scope.belowTabs = [ { title: gettext('Logs'), icon: 'fa-list-alt color-red', templateUrl: 'control-panes/logs/logs.jade', filters: ['native', 'web'] } ].concat(angular.copy(sharedTabs)) $scope.device = null $scope.control = null // TODO: Move this out to Ctrl.resolve function getDevice (serial) { DeviceService.get(serial, $scope) .then(function (device) { return GroupService.invite(device) }) .then(function (device) { $scope.device = device $scope.control = ControlService.create(device, device.channel) // TODO: Change title, flickers too much on Chrome // $rootScope.pageTitle = device.name SettingsService.set('lastUsedDevice', serial) return device }) .catch(function () { $timeout(function () { $location.path('/') }) }) } getDevice($routeParams.serial) $scope.$watch('device.state', function (newValue, oldValue) { if (newValue !== oldValue) { if (oldValue === 'using') { FatalMessageService.open($scope.device, false) } } }, true) }