15 changed files with 331 additions and 13 deletions
@ -0,0 +1,35 @@ |
|||||
|
/* |
||||
|
* Copyright © 2016-2017 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 ActivationLinkDialogController($mdDialog, $translate, toast, activationLink) { |
||||
|
|
||||
|
var vm = this; |
||||
|
|
||||
|
vm.activationLink = activationLink; |
||||
|
|
||||
|
vm.onActivationLinkCopied = onActivationLinkCopied; |
||||
|
vm.close = close; |
||||
|
|
||||
|
function onActivationLinkCopied(){ |
||||
|
toast.showSuccess($translate.instant('user.activation-link-copied-message'), 750, angular.element('#activation-link-dialog-content'), 'bottom left'); |
||||
|
} |
||||
|
|
||||
|
function close() { |
||||
|
$mdDialog.hide(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,55 @@ |
|||||
|
<!-- |
||||
|
|
||||
|
Copyright © 2016-2017 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="{{ 'user.activation-link' | translate }}" style="min-width: 400px;"> |
||||
|
<form> |
||||
|
<md-toolbar> |
||||
|
<div class="md-toolbar-tools"> |
||||
|
<h2 translate="user.activation-link"></h2> |
||||
|
<span flex></span> |
||||
|
<md-button class="md-icon-button" ng-click="vm.close()"> |
||||
|
<ng-md-icon icon="close" aria-label="{{ 'dialog.close' | translate }}"></ng-md-icon> |
||||
|
</md-button> |
||||
|
</div> |
||||
|
</md-toolbar> |
||||
|
<md-dialog-content> |
||||
|
<div id="activation-link-dialog-content" class="md-dialog-content"> |
||||
|
<md-content class="md-padding" layout="column"> |
||||
|
<span translate="user.activation-link-text" translate-values="{activationLink: vm.activationLink}"></span> |
||||
|
<div layout="row" layout-align="start center"> |
||||
|
<pre class="tb-highlight" flex><code>{{ vm.activationLink }}</code></pre> |
||||
|
<md-button class="md-icon-button" |
||||
|
ngclipboard |
||||
|
data-clipboard-text="{{ vm.activationLink }}" |
||||
|
ngclipboard-success="vm.onActivationLinkCopied(e)"> |
||||
|
<md-icon md-svg-icon="mdi:clipboard-arrow-left"></md-icon> |
||||
|
<md-tooltip md-direction="top"> |
||||
|
{{ 'user.copy-activation-link' | translate }} |
||||
|
</md-tooltip> |
||||
|
</md-button> |
||||
|
</div> |
||||
|
</md-content> |
||||
|
</div> |
||||
|
</md-dialog-content> |
||||
|
<md-dialog-actions layout="row"> |
||||
|
<span flex></span> |
||||
|
<md-button ng-click="vm.close()">{{ 'action.ok' | |
||||
|
translate }} |
||||
|
</md-button> |
||||
|
</md-dialog-actions> |
||||
|
</form> |
||||
|
</md-dialog> |
||||
@ -0,0 +1,112 @@ |
|||||
|
/* |
||||
|
* Copyright © 2016-2017 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. |
||||
|
*/ |
||||
|
|
||||
|
/* eslint-disable import/no-unresolved, import/default */ |
||||
|
|
||||
|
import activationLinkDialogTemplate from './activation-link.dialog.tpl.html'; |
||||
|
|
||||
|
/* eslint-enable import/no-unresolved, import/default */ |
||||
|
|
||||
|
|
||||
|
/*@ngInject*/ |
||||
|
export default function AddUserController($scope, $mdDialog, $state, $stateParams, $document, $q, types, userService, saveItemFunction, helpLinks) { |
||||
|
|
||||
|
var vm = this; |
||||
|
|
||||
|
var tenantId = $stateParams.tenantId; |
||||
|
var customerId = $stateParams.customerId; |
||||
|
var usersType = $state.$current.data.usersType; |
||||
|
|
||||
|
vm.helpLinks = helpLinks; |
||||
|
vm.item = {}; |
||||
|
|
||||
|
vm.activationMethods = [ |
||||
|
{ |
||||
|
value: 'displayActivationLink', |
||||
|
name: 'user.display-activation-link' |
||||
|
}, |
||||
|
{ |
||||
|
value: 'sendActivationMail', |
||||
|
name: 'user.send-activation-mail' |
||||
|
} |
||||
|
]; |
||||
|
|
||||
|
vm.userActivationMethod = 'displayActivationLink'; |
||||
|
|
||||
|
vm.add = add; |
||||
|
vm.cancel = cancel; |
||||
|
|
||||
|
function cancel() { |
||||
|
$mdDialog.cancel(); |
||||
|
} |
||||
|
|
||||
|
function add($event) { |
||||
|
var sendActivationMail = false; |
||||
|
if (vm.userActivationMethod == 'sendActivationMail') { |
||||
|
sendActivationMail = true; |
||||
|
} |
||||
|
if (usersType === 'tenant') { |
||||
|
vm.item.authority = "TENANT_ADMIN"; |
||||
|
vm.item.tenantId = { |
||||
|
entityType: types.entityType.tenant, |
||||
|
id: tenantId |
||||
|
}; |
||||
|
} else if (usersType === 'customer') { |
||||
|
vm.item.authority = "CUSTOMER_USER"; |
||||
|
vm.item.customerId = { |
||||
|
entityType: types.entityType.customer, |
||||
|
id: customerId |
||||
|
}; |
||||
|
} |
||||
|
userService.saveUser(vm.item, sendActivationMail).then(function success(item) { |
||||
|
vm.item = item; |
||||
|
$scope.theForm.$setPristine(); |
||||
|
if (vm.userActivationMethod == 'displayActivationLink') { |
||||
|
userService.getActivationLink(vm.item.id.id).then( |
||||
|
function success(activationLink) { |
||||
|
displayActivationLink($event, activationLink).then( |
||||
|
function() { |
||||
|
$mdDialog.hide(); |
||||
|
} |
||||
|
); |
||||
|
} |
||||
|
); |
||||
|
} else { |
||||
|
$mdDialog.hide(); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
function displayActivationLink($event, activationLink) { |
||||
|
var deferred = $q.defer(); |
||||
|
$mdDialog.show({ |
||||
|
controller: 'ActivationLinkDialogController', |
||||
|
controllerAs: 'vm', |
||||
|
templateUrl: activationLinkDialogTemplate, |
||||
|
locals: { |
||||
|
activationLink: activationLink |
||||
|
}, |
||||
|
parent: angular.element($document[0].body), |
||||
|
fullscreen: true, |
||||
|
skipHide: true, |
||||
|
targetEvent: $event |
||||
|
}).then(function () { |
||||
|
deferred.resolve(); |
||||
|
}); |
||||
|
return deferred.promise; |
||||
|
} |
||||
|
|
||||
|
} |
||||
Loading…
Reference in new issue