mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-18 16:13:24 +02:00
149 lines
9.4 KiB
Plaintext
149 lines
9.4 KiB
Plaintext
div.stf-device-list
|
|
.row
|
|
.col-md-12
|
|
.widget-container.fluid-height
|
|
.widget-content.padded
|
|
tabset
|
|
tab(active='activeTabs.devices')
|
|
tab-heading
|
|
i.fa.fa-th-large
|
|
span(translate) Devices
|
|
nothing-to-show(message='{{"No devices connected"|translate}}', icon='fa-sitemap', ng-show='!tracker.devices.length')
|
|
|
|
ul.devices-icon-view
|
|
li(ng-repeat='device in tracker.devices | filter:{usable:true} | orderBy:"name" track by device.serial',
|
|
ng-click='toggle(device)',
|
|
).cursor-select.pointer.thumbnail
|
|
.device-photo-small
|
|
img(ng-src='{{device.image ? "/static/devices/" + device.image : "/static/bower_components/stf-graphics/devices/small/default.jpg" }}')
|
|
.device-name(title='{{device.serial}} - {{device.model}}') {{ device.name || device.model }}
|
|
//raphael-status-icon.device-status-button(status='{{ deviceStatus(device) }}', title="{{ deviceStatusText(device) }}", tooltip='{{ deviceStatusText(device)|translate }}')
|
|
button(ng-class='{"btn-primary": device.state == "using", "btn-primary-outline": device.state == "available"}').btn.btn-xs.device-status {{statusName(device)}}
|
|
.clear-fix
|
|
.clear-fix
|
|
.line
|
|
ul.devices-icon-view
|
|
li(ng-repeat='device in tracker.devices | filter:{usable:false} | orderBy:"name" track by device.serial',
|
|
ng-disabled='true',
|
|
).cursor-select.pointer.thumbnail.device-is-busy
|
|
.device-photo-small
|
|
img(ng-src='{{device.image ? "/static/devices/" + device.image : "/static/bower_components/stf-graphics/devices/small/default.jpg" }}')
|
|
.device-name(title='{{device.serial}} - {{device.model}}') {{ device.name || device.model }}
|
|
//raphael-status-icon.device-status-button(status='{{ deviceStatus(device) }}', title="{{ deviceStatusText(device) }}", tooltip='{{ deviceStatusText(device)|translate }}')
|
|
button.btn.btn-default.btn-xs.device-status {{statusName(device)}}
|
|
.clear-fix
|
|
|
|
tab(active='activeTabs.details')
|
|
tab-heading
|
|
i.fa.fa-list(translate)
|
|
span(translate) Details
|
|
nothing-to-show(message='{{"No devices connected"|translate}}', icon='fa-sitemap', ng-show='!tracker.devices.length')
|
|
|
|
.filtering-buttons
|
|
clear-button(ng-click="tableParams.sorting({}); tableParams.filter({})")
|
|
filter-button(ng-model='filterEnabled')
|
|
|
|
|
|
table.table.table-hover.dataTable(ng-table='tableParams',
|
|
show-filter='filterEnabled', ng-show='tracker.devices.length')
|
|
//.cursor.selectable
|
|
//thead
|
|
tr
|
|
th
|
|
div {{"Use"|translate}}
|
|
th
|
|
div {{"Status"|translate}}
|
|
th
|
|
div {{"Model"|translate}}
|
|
th
|
|
div {{"Product"|translate}}
|
|
th
|
|
div {{"Carrier"|translate}}
|
|
th
|
|
div {{"Phone number"}}
|
|
th
|
|
div {{"Release Date"|translate}}
|
|
th
|
|
div {{"OS"|translate}}
|
|
th
|
|
div {{"Screen"|translate}}
|
|
th
|
|
div {{"Location"|translate}}
|
|
th
|
|
div {{"User"|translate}}
|
|
|
|
//tbody
|
|
tr(ng-repeat='device in $data', ng-class='{ "device-not-usable": !device.usable }')
|
|
td(data-title="'Status'",
|
|
sortable='"state"',
|
|
filter="{ 'usable': 'select' }",
|
|
filter-data="statusFilter($column)")
|
|
button(ng-class='{"btn-primary": device.state == "using", \
|
|
"btn-primary-outline": device.state == "available"}',
|
|
ng-click='device.usable && toggle(device)').btn.btn-xs.device-status {{statusName(device)}}
|
|
td(data-title="'Model'", sortable='"model"', filter='{"model": "text"}')
|
|
span {{device.model}}
|
|
td(data-title="'Product'", sortable='"name"', filter='{"name": "text"}')
|
|
span {{device.name}}
|
|
td(data-title="'Carrier'", sortable='"operator"', filter='{"operator": "text"}')
|
|
span {{device.operator}}
|
|
td(data-title="'Phone number'", sortable='"phone.phoneNumber"', filter='{"phone.phoneNumber": "text"}')
|
|
span {{device.phone.phoneNumber}}
|
|
td(data-title="'Release'", sortable='"releasedAt"', filter='{"releasedAt": "text"}')
|
|
span {{device.releasedAt | date:'yyyy/MM/dd'}}
|
|
td(data-title="'OS'", sortable='"version"', filter='{"version": "text"}')
|
|
span {{device.version}}
|
|
td(data-title="'Screen'", sortable='"display.width"', filter='{"display.width": "text"}')
|
|
span {{device.display.width}}x{{device.display.height}}
|
|
td(data-title="'Location'", sortable='"provider.name"', filter='{"provider.name": "text"}')
|
|
span {{device.provider.name}}
|
|
td(data-title="'User'", sortable='"owner.name"', filter='{"owner.name": "text"}')
|
|
a(ng-if='device.owner', ng-href='{{userContactUrl(device.owner.email)}}', role='button', target='_href') {{device.owner.name || "No name"}}
|
|
a(ng-if='!device.owner') -
|
|
//p
|
|
strong Sorting
|
|
pre {{tableParams.sorting() | json}}
|
|
pre {{tableParams.filter() | json}}
|
|
|
|
//tr(ng-repeat='device in $data')
|
|
td(width='5%', data-title='"Use"', sortable='control')
|
|
button(ng-model='device.control', ng-click='toggle(device)', btn-checkbox,
|
|
ng-class='{"btn-primary-outline": !device.control, "btn-danger-outline": device.control}',
|
|
ng-disabled='!isControllable(device)').btn.btn-xs
|
|
span(ng-if='device.control') {{"Stop Using"|translate}}
|
|
span(ng-if='!device.control') {{"Start Using"|translate}}
|
|
|
|
//input(type='checkbox', ng-click='toggle(device)', ng-checked='device.control', ng-disabled='!isControllable(device)')
|
|
td(width='2%', data-title='"Status"', sortable='"status"')
|
|
span(ng-class='deviceStatusClass(device)') {{ deviceStatusText(device)|translate }}
|
|
td(width='18%', data-title='"Model"', sortable='capabilities.info.name.id', filter="{ 'capabilities.info.name.id': 'text' }")
|
|
div.unselectable.cursor(title='{{device.capabilities.info.name.id}}', ui-event="{ 'dblclick' : 'clickModelName(device)' }") {{ device.capabilities.info.name.id || device.capabilities.model }}
|
|
//a(ng-href='/#/devices/{{device.capabilities.id}}', title='{{device.capabilities.id}}') {{ device.capabilities.info.name.id || device.capabilities.model }}
|
|
td(width='12%', data-title='"Product"', sortable='capabilities.model') {{ device.capabilities.model }}
|
|
td(width='8%', data-title='"Carrier"', sortable='capabilities.info.carrier.name') {{ device.capabilities.info.carrier.name }}
|
|
td(width='8%', data-title='"Phone number"', sortable='capabilities.info.carrier.name') {{ device.capabilities.info.carrier.name }}
|
|
td(width='9%', data-title='"Release"', sortable='capabilities.info.date') {{ device.capabilities.info.date | date:'yyyy/MM/dd' }}
|
|
td(width='4%', data-title='"OS"', sortable='capabilities.version') {{ device.capabilities.version }}
|
|
td(width='6%', data-title='"Screen"', sortable='capabilities.info.display.w') {{ device.capabilities.info.display.w }}x{{ device.capabilities.info.display.h }}
|
|
td(width='6%', data-title='"Location"')
|
|
a(ng-href='{{deviceLocation(device).link}}', target='_blank') {{ deviceLocation(device).name }}
|
|
td(width='5%', data-title='"Control"', sortable='')
|
|
span(ng-controller='ToolBarCtrl')
|
|
button(ng-click='openControl(device.capabilities.id)', ng-disabled='!device.control').btn.btn-primary.btn-sm
|
|
i.fa.fa-external-link-square
|
|
td(width='10%', data-title='"User"', ng-show='showDeviceUsers')
|
|
a(ng-href='{{deviceUser(device).link}}', target='_blank') {{ deviceUser(device).name }}
|
|
|
|
|
|
//ul
|
|
li(ng-repeat='device in tracker.devices track by device.serial')
|
|
pre {{device|json}}
|
|
|
|
//ul.device-list
|
|
li(ng-repeat='device in tracker.devices track by device.serial')
|
|
span {{ device.serial }} {{ device.name || device.model }} {{ device.present ? 'present' : 'absent' }} {{ device.usable ? 'usable' : 'unusable' }} {{ device.isOwnedByUser ? 'owned by me' : '' }} {{ device.owner.email }}
|
|
a(href='#!/devices/{{ device.serial }}') Linky
|
|
button(ng-click="invite(device)") invite
|
|
button(ng-click="kick(device)") kick
|
|
img(ng-src='/static/devices/{{ device.image }}', ng-if='device.image')
|