blob: d1fb19dcb0d4d5f0356d60ed0385fea813e82361 [file] [log] [blame]
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
}
}