1
0
Fork 0
mirror of https://github.com/openstf/stf synced 2025-10-05 10:39:25 +02:00

Started enhancing device list details with prefiltered information.

Moved enhanced data away from device service.
This commit is contained in:
Gunther Brunner 2014-06-18 01:25:22 +09:00
parent b139849b3f
commit 7982e2bcbe
4 changed files with 39 additions and 56 deletions

View file

@ -15,35 +15,35 @@ module.exports = angular.module('stf.device-status', [])
}
})
// TODO: translate here the rest
.filter('batteryHealth', function (gettext) {
.filter('batteryHealth', function (gettext, $filter) {
return function (text) {
return {
return $filter('translate')({
'cold': gettext('Cold'),
'good': gettext('Good'),
'dead': gettext('Dead'),
'over_voltage': gettext('Over Voltage'),
'overheat': gettext('Overheat'),
'unspecified_failure': gettext('Unspecified Failure')
}[text] || gettext('-')
}[text] || gettext('-'))
}
})
.filter('batterySource', function (gettext) {
.filter('batterySource', function (gettext, $filter) {
return function (text) {
return {
return $filter('translate')({
'ac': gettext('AC'),
'usb': gettext('USB'),
'wireless': gettext('Wireless')
}[text] || gettext('-')
}[text] || gettext('-'))
}
})
.filter('batteryStatus', function (gettext) {
.filter('batteryStatus', function (gettext, $filter) {
return function (text) {
return {
return $filter('translate')({
'charging': gettext('Charging'),
'discharging': gettext('Discharging'),
'full': gettext('Full'),
'not_charging': gettext('Not Charging')
}[text] || gettext('-')
}[text] || gettext('-'))
}
})
.filter('displayDensity', function (gettext) {
@ -58,9 +58,9 @@ module.exports = angular.module('stf.device-status', [])
}[text] || text
}
})
.filter('networkType', function (gettext) {
.filter('networkType', function (gettext, $filter) {
return function (text) {
return {
return $filter('translate')({
'bluetooth': gettext('Bluetooth'),
'dummy': gettext('Dummy'),
'ethernet': gettext('Ethernet'),
@ -71,17 +71,17 @@ module.exports = angular.module('stf.device-status', [])
'mobile_supl': gettext('Mobile SUPL'),
'mobile_wifi': gettext('WiFi'),
'wimax': gettext('WiMAX')
}[text] || text
}[text] || text)
}
})
.filter('networkSubType', function (gettext) {
.filter('networkSubType', function (gettext, $filter) {
return function (text) {
return {
'mobile_wifi': gettext('WiFi'),
}[text] || text
return $filter('translate')({
'mobile_wifi': gettext('WiFi')
}[text] || text)
}
})
.filter('humanizedBool', function (gettext) {
.filter('humanizedBool', function (gettext, $filter) {
return function (text) {
switch (text) {
case true:

View file

@ -94,28 +94,9 @@ module.exports = function DeviceServiceFactory($http, socket, $filter) {
}
}
// NOTE: For overall performance reasons, put all the filters here:
data.stateSorting = getStateSorting(data.state)
// TODO: i18n shortDate
data.releasedAtFormatted = $filter('date')(data.releasedAt, 'yyyy/MM/dd')
$scope.$broadcast('device.synced', data)
}
// For convenience, add the sorting priority to each state
function getStateSorting(state) {
return {
'using': 1,
'available': 2,
'ready': 3,
'present': 4,
'busy': 5,
'unauthorized': 6,
'offline': 7,
'preparing': 8,
'absent': 9
}[state] || 10
}
function get(data) {
return devices[devicesBySerial[data.serial]]

View file

@ -29,8 +29,8 @@ module.exports = function DeviceListCtrlDetails($scope, DeviceService, GroupServ
// })
var initialSorting = {
stateSorting: 'asc',
name: 'asc'
enhancedStateSorting: 'asc',
enhancedName: 'asc'
}
$scope.tableSorting = initialSorting
@ -102,14 +102,16 @@ module.exports = function DeviceListCtrlDetails($scope, DeviceService, GroupServ
}
}
// TODO: Implement real dynamic colums! Using showAll is too slow
$scope.dynamicColumns = [
{ title: 'Model', field: 'model', sortable: 'model', filter: {model: 'text'}, visible: true
{ title: 'Model', field: 'enhancedModel', sortable: 'enhancedModel', filter: {enhancedModel: 'text'}, visible: true
}
,
{ title: 'Product', field: 'name', sortable: 'name', filter: {name: 'text'}, visible: true
{ title: 'Product', field: 'enhancedName', sortable: 'enhancedName', filter: {enhancedName: 'text'}, visible: true
}
,
{ title: 'Carrier', field: 'operator', sortable: 'operator', filter: {operator: 'text'}, visible: true

View file

@ -93,32 +93,32 @@ div.stf-device-list
table.table.table-hover.dataTable(ng-table='tableParams', show-filter='filterEnabled', ng-show='tracker.devices.length').device-list-details
tr(ng-repeat='device in $data', ng-class='{ "device-not-usable": !device.usable }', ng-hide='!device.model')
td(data-title="'Status'|translate", sortable='"stateSorting"', filter="{ 'usable': 'select' }", filter-data="statusFilter($column)")
td(data-title="'Status'|translate", sortable='"enhancedStateSorting"', filter="{ 'usable': 'select' }", filter-data="statusFilter($column)")
button(ng-class='device.enhancedButtonClass',
ng-dblclick='tryToKick(device)',
ng-click='device.usable && toggle(device)').btn.btn-xs.device-status {{device.state|statusName|translate}}
ng-click='device.usable && toggle(device)').btn.btn-xs.device-status {{device.enhancedState}}
td(data-title="::'Model'|translate", sortable='"model"', filter='{"model": "text"}')
span.device-small-image
img(ng-src='/static/devices/icon/x24/{{ ::device.image || "E30HT.jpg" }}')
img(ng-src='{{device.enhancedImage24}}')
span(ng-if='device.state !== "using"') {{device.model}}
a(ng-if='device.state === "using"', ng-href='/#!/control/{{ device.serial }}') {{device.model}}
span(ng-if='device.state !== "using"') {{device.enhancedModel}}
a(ng-if='device.state === "using"', ng-href='/#!/control/{{ device.serial }}') {{device.enhancedModel}}
td(data-title="'Product'|translate", sortable='"name"', filter='{"name": "text"}').device-list-product
span {{::device.name}}
td(data-title="'Product'|translate", sortable='"enhancedName"', filter='{"enhancedName": "text"}').device-list-product
span {{::device.enhancedName}}
td(data-title="'Carrier'|translate", sortable='"operator"', filter='{"operator": "text"}').device-list-carrier
span {{::device.operator}}
td(data-title="'Released'|translate", sortable='"releasedAtFormatted"', filter='{"releasedAtFormatted": "text"}')
span {{::device.releasedAtFormatted}}
td(data-title="'Released'|translate", sortable='"enhancedReleasedAt"', filter='{"enhancedReleasedAt": "text"}')
span {{::device.enhancedReleasedAt}}
td(data-title="'OS'|translate", sortable='"version"', filter='{"version": "text"}')
span {{::device.version}}
td(data-title="'Network'|translate", sortable='"phone.network"', filter='{"phone": "text"}')
span {{device.phone.network}}
td(ng-show='showAll', data-title="'Screen'|translate", sortable='"display.width"', filter='{"display": "text"}')
span {{device.display.width}}x{{device.display.height}}
td(ng-show='showAll', data-title="'Screen'|translate", sortable='"enhanceDisplayRes"', filter='{"enhanceDisplayRes": "text"}')
span {{device.enhanceDisplayRes}}
td(ng-show='showAll', data-title="'Serial'|translate", sortable='"serial"', filter='{"serial": "text"}')
span {{::device.serial}}
td(ng-show='showAll', data-title="'Manufacturer'|translate", sortable='"manufacturer"', filter='{"manufacturer": "text"}')
@ -135,16 +135,16 @@ div.stf-device-list
span {{device.phone.iccid}}
td(ng-show='showAll', data-title="'Battery Health'|translate", sortable='"battery.health"')
span {{device.battery.health | batteryHealth | translate }}
span {{ enhancedBatteryHealth }}
td(ng-show='showAll', data-title="'Battery Source'|translate", sortable='"battery.source"')
span {{device.battery.source | batterySource | translate }}
span {{ enhancedBatterySource }}
td(ng-show='showAll', data-title="'Battery Status'|translate", sortable='"battery.status"')
span {{device.battery.status | batteryStatus | translate }}
span {{ enhancedBatteryStatus }}
td(ng-show='showAll', data-title="'Battery Level'|translate", sortable='"battery.level"')
progressbar(value='device.battery.level', max='device.battery.scale', type='success')
span {{ device.battery.level / device.battery.scale * 100 }}%
span {{ device.enhancedBatteryPercentage }}
td(ng-show='showAll', data-title="'Battery Temperature'|translate", sortable='"battery.temp"')
span {{device.battery.temp}}°C
span {{device.enhancedBatteryTemp}}
td(data-title="'Location'|translate", sortable='"provider.name"', filter='{"provider": "text"}')
span {{::device.provider.name}}