From 4b98da269b81f56b9d16e025590147d313d070e4 Mon Sep 17 00:00:00 2001 From: Gunther Brunner Date: Thu, 29 May 2014 17:03:15 +0900 Subject: [PATCH] Added force kicking. --- res/app/components/stf/user/group/group-service.js | 4 ++-- res/app/device-list/device-list-details-controller.js | 8 ++++++++ res/app/device-list/device-list.jade | 4 +++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/res/app/components/stf/user/group/group-service.js b/res/app/components/stf/user/group/group-service.js index c30c3b68..3e3d972d 100644 --- a/res/app/components/stf/user/group/group-service.js +++ b/res/app/components/stf/user/group/group-service.js @@ -29,8 +29,8 @@ module.exports = function GroupServiceFactory( }) } - groupService.kick = function (device) { - if (!device.usable) { + groupService.kick = function (device, force) { + if (!force && !device.usable) { return Promise.reject(new Error('Device is not usable')) } diff --git a/res/app/device-list/device-list-details-controller.js b/res/app/device-list/device-list-details-controller.js index b9a217b9..a1f32655 100644 --- a/res/app/device-list/device-list-details-controller.js +++ b/res/app/device-list/device-list-details-controller.js @@ -79,6 +79,14 @@ module.exports = function DeviceListCtrlDetails($scope, DeviceService, GroupServ } } + $scope.tryToKick = function (device) { + if (device.state === 'busy') { + if (confirm(gettext('Are you sure you want to kick this device?\nCurrently it is being used by ') + device.owner.name)) { + $scope.kick(device, true) + } + } + } + $scope.columns = [ { title: 'Model', field: 'model', sortable: 'model', filter: {model: 'text'}, visible: true } diff --git a/res/app/device-list/device-list.jade b/res/app/device-list/device-list.jade index b98ede3b..8caacfb9 100644 --- a/res/app/device-list/device-list.jade +++ b/res/app/device-list/device-list.jade @@ -54,7 +54,8 @@ div.stf-device-list "btn-primary": device.state == "using",\ "btn-primary-outline": device.state == "available",\ "btn-warning": device.state == "busy"\ - }' + }', + ng-dblclick='tryToKick(device)', ).btn.btn-xs.device-status {{device.state|statusName|translate}} .clear-fix @@ -95,6 +96,7 @@ div.stf-device-list "btn-primary-outline": device.state == "available",\ "btn-warning": device.state == "busy"\ }', + ng-dblclick='tryToKick(device)', ng-click='device.usable && toggle(device)').btn.btn-xs.device-status {{device.state|statusName|translate}} td(data-title="'Model'|translate", sortable='"model"', filter='{"model": "text"}')