| var QueryParser = require('./util/query-parser') |
| |
| module.exports = function DeviceListCtrl( |
| $scope |
| , DeviceService |
| , DeviceColumnService |
| , GroupService |
| , ControlService |
| , SettingsService |
| , $location |
| ) { |
| $scope.tracker = DeviceService.trackAll($scope) |
| $scope.control = ControlService.create($scope.tracker.devices, '*ALL') |
| |
| $scope.columnDefinitions = DeviceColumnService |
| |
| var defaultColumns = [ |
| { |
| name: 'state' |
| , selected: true |
| } |
| , { |
| name: 'model' |
| , selected: true |
| } |
| , { |
| name: 'name' |
| , selected: true |
| } |
| , { |
| name: 'serial' |
| , selected: false |
| } |
| , { |
| name: 'operator' |
| , selected: true |
| } |
| , { |
| name: 'releasedAt' |
| , selected: true |
| } |
| , { |
| name: 'version' |
| , selected: true |
| } |
| , { |
| name: 'network' |
| , selected: false |
| } |
| , { |
| name: 'display' |
| , selected: false |
| } |
| , { |
| name: 'manufacturer' |
| , selected: false |
| } |
| , { |
| name: 'sdk' |
| , selected: false |
| } |
| , { |
| name: 'abi' |
| , selected: false |
| } |
| , { |
| name: 'browser' |
| , selected: false |
| } |
| , { |
| name: 'phone' |
| , selected: false |
| } |
| , { |
| name: 'imei' |
| , selected: false |
| } |
| , { |
| name: 'iccid' |
| , selected: false |
| } |
| , { |
| name: 'batteryHealth' |
| , selected: false |
| } |
| , { |
| name: 'batterySource' |
| , selected: false |
| } |
| , { |
| name: 'batteryStatus' |
| , selected: false |
| } |
| , { |
| name: 'batteryLevel' |
| , selected: false |
| } |
| , { |
| name: 'batteryTemp' |
| , selected: false |
| } |
| , { |
| name: 'provider' |
| , selected: true |
| } |
| , { |
| name: 'notes' |
| , selected: true |
| } |
| , { |
| name: 'owner' |
| , selected: true |
| } |
| ] |
| |
| $scope.columns = defaultColumns |
| |
| SettingsService.bind($scope, { |
| target: 'columns' |
| , source: 'deviceListColumns' |
| }) |
| |
| var defaultSort = { |
| fixed: [ |
| { |
| name: 'state' |
| , order: 'asc' |
| } |
| ] |
| , user: [ |
| { |
| name: 'name' |
| , order: 'asc' |
| } |
| ] |
| } |
| |
| $scope.sort = defaultSort |
| |
| SettingsService.bind($scope, { |
| target: 'sort' |
| , source: 'deviceListSort' |
| }) |
| |
| $scope.filter = [] |
| |
| $scope.activeTabs = { |
| icons: true |
| , details: false |
| } |
| |
| SettingsService.bind($scope, { |
| target: 'activeTabs' |
| , source: 'deviceListActiveTabs' |
| }) |
| |
| $scope.toggle = function(device) { |
| if (device.using) { |
| $scope.kick(device) |
| } else { |
| $location.path('/control/' + device.serial) |
| } |
| } |
| |
| $scope.invite = function(device) { |
| return GroupService.invite(device).then(function() { |
| $scope.$digest() |
| }) |
| } |
| |
| $scope.applyFilter = function(query) { |
| $scope.filter = QueryParser.parse(query) |
| } |
| |
| $scope.search = { |
| deviceFilter: '', |
| focusElement: false |
| } |
| |
| $scope.focusSearch = function() { |
| if (!$scope.basicMode) { |
| $scope.search.focusElement = true |
| } |
| } |
| |
| $scope.reset = function() { |
| $scope.search.deviceFilter = '' |
| $scope.filter = [] |
| $scope.sort = defaultSort |
| $scope.columns = defaultColumns |
| } |
| } |