13 changed files with 307 additions and 11 deletions
@ -0,0 +1,69 @@ |
|||
/* |
|||
* Copyright © 2016-2019 The Thingsboard Authors |
|||
* |
|||
* Licensed under the Apache License, Version 2.0 (the "License"); |
|||
* you may not use this file except in compliance with the License. |
|||
* You may obtain a copy of the License at |
|||
* |
|||
* http://www.apache.org/licenses/LICENSE-2.0
|
|||
* |
|||
* Unless required by applicable law or agreed to in writing, software |
|||
* distributed under the License is distributed on an "AS IS" BASIS, |
|||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
* See the License for the specific language governing permissions and |
|||
* limitations under the License. |
|||
*/ |
|||
/*@ngInject*/ |
|||
export default function ManageAssignedEdgesController($mdDialog, $q, types, dashboardService, actionType, dashboardIds, assignedEdges) { |
|||
|
|||
var vm = this; |
|||
|
|||
vm.types = types; |
|||
vm.actionType = actionType; |
|||
vm.dashboardIds = dashboardIds; |
|||
vm.assignedEdges = assignedEdges; |
|||
if (actionType != 'manage') { |
|||
vm.assignedEdges = []; |
|||
} |
|||
|
|||
if (actionType == 'manage') { |
|||
vm.titleText = 'dashboard.manage-assigned-edges'; |
|||
vm.labelText = 'dashboard.assigned-edges'; |
|||
vm.actionName = 'action.update'; |
|||
} else if (actionType == 'assign') { |
|||
vm.titleText = 'dashboard.assign-to-edges'; |
|||
vm.labelText = 'dashboard.assign-to-edges-text'; |
|||
vm.actionName = 'action.assign'; |
|||
} else if (actionType == 'unassign') { |
|||
vm.titleText = 'dashboard.unassign-from-edges'; |
|||
vm.labelText = 'dashboard.unassign-from-edges-text'; |
|||
vm.actionName = 'action.unassign'; |
|||
} |
|||
|
|||
vm.submit = submit; |
|||
vm.cancel = cancel; |
|||
|
|||
function cancel () { |
|||
$mdDialog.cancel(); |
|||
} |
|||
|
|||
function submit () { |
|||
var tasks = []; |
|||
for (var i=0;i<vm.dashboardIds.length;i++) { |
|||
var dashboardId = vm.dashboardIds[i]; |
|||
var promise; |
|||
if (vm.actionType == 'manage') { |
|||
promise = dashboardService.updateDashboardEdges(dashboardId, vm.assignedEdges); |
|||
} else if (vm.actionType == 'assign') { |
|||
promise = dashboardService.addDashboardEdges(dashboardId, vm.assignedEdges); |
|||
} else if (vm.actionType == 'unassign') { |
|||
promise = dashboardService.removeDashboardEdges(dashboardId, vm.assignedEdges); |
|||
} |
|||
tasks.push(promise); |
|||
} |
|||
$q.all(tasks).then(function () { |
|||
$mdDialog.hide(); |
|||
}); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,51 @@ |
|||
<!-- |
|||
|
|||
Copyright © 2016-2019 The Thingsboard Authors |
|||
|
|||
Licensed under the Apache License, Version 2.0 (the "License"); |
|||
you may not use this file except in compliance with the License. |
|||
You may obtain a copy of the License at |
|||
|
|||
http://www.apache.org/licenses/LICENSE-2.0 |
|||
|
|||
Unless required by applicable law or agreed to in writing, software |
|||
distributed under the License is distributed on an "AS IS" BASIS, |
|||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
See the License for the specific language governing permissions and |
|||
limitations under the License. |
|||
|
|||
--> |
|||
<md-dialog aria-label="{{ vm.titleText | translate }}" style="width: 600px;"> |
|||
<form name="theForm" ng-submit="vm.submit()"> |
|||
<md-toolbar> |
|||
<div class="md-toolbar-tools"> |
|||
<h2 translate>{{vm.titleText}}</h2> |
|||
<span flex></span> |
|||
<md-button class="md-icon-button" ng-click="vm.cancel()"> |
|||
<ng-md-icon icon="close" aria-label="{{ 'dialog.close' | translate }}"></ng-md-icon> |
|||
</md-button> |
|||
</div> |
|||
</md-toolbar> |
|||
<md-progress-linear class="md-warn" md-mode="indeterminate" ng-disabled="!$root.loading" ng-show="$root.loading"></md-progress-linear> |
|||
<span style="min-height: 5px;" flex="" ng-show="!$root.loading"></span> |
|||
<md-dialog-content> |
|||
<div class="md-dialog-content"> |
|||
<fieldset> |
|||
<span translate>{{vm.labelText}}</span> |
|||
<tb-entity-list ng-disabled="$root.loading" |
|||
ng-model="vm.assignedEdges" |
|||
entity-type="vm.types.entityType.edge"></tb-entity-list> |
|||
</fieldset> |
|||
</div> |
|||
</md-dialog-content> |
|||
<md-dialog-actions layout="row"> |
|||
<span flex></span> |
|||
<md-button ng-disabled="$root.loading || !theForm.$dirty || !theForm.$valid" type="submit" class="md-raised md-primary"> |
|||
{{ vm.actionName | translate }} |
|||
</md-button> |
|||
<md-button ng-disabled="$root.loading" ng-click="vm.cancel()" style="margin-right:20px;">{{ 'action.cancel' | |
|||
translate }} |
|||
</md-button> |
|||
</md-dialog-actions> |
|||
</form> |
|||
</md-dialog> |
|||
Loading…
Reference in new issue