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