blob: f026d397e4c43f678507e9025a5654425a40e3ce [file] [log] [blame]
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('File Explorer'),
icon: 'fa-folder-open color-blue',
templateUrl: 'control-panes/explorer/explorer.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)
}