div.stf-device-list .row .col-md-12 .widget-container.fluid-height .widget-content.padded tabset.unselectable 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 {{"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="'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='mailto:{{device.owner.email}}', role='button') {{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='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')