mirror of
https://github.com/openstf/stf
synced 2025-10-05 02:29:26 +02:00
94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
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('Explorer'),
|
|
icon: 'fa-info color-orange',
|
|
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)
|
|
|
|
}
|