diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js index 575b5bd698..7c73e62301 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbclipboard.directive.js @@ -94,51 +94,53 @@ (function () { 'use strict'; - function umbClipboardDirective($timeout, assetsService) { + function umbClipboardDirective($timeout, assetsService, $parse) { function link(scope, element, attrs, ctrl) { var clipboard; var target = element[0]; - + assetsService.loadJs("lib/clipboard/clipboard.min.js", scope) .then(function () { - if(scope.umbClipboardTarget) { - target.setAttribute("data-clipboard-target", scope.umbClipboardTarget); + + if (attrs.umbClipboardTarget) { + target.setAttribute("data-clipboard-target", attrs.umbClipboardTarget); } - if(scope.umbClipboardAction) { - target.setAttribute("data-clipboard-action", scope.umbClipboardAction); + if (attrs.umbClipboardAction) { + target.setAttribute("data-clipboard-action", attrs.umbClipboardAction); } - if(scope.umbClipboardText) { - target.setAttribute("data-clipboard-text", scope.umbClipboardText); + if (attrs.umbClipboardText) { + target.setAttribute("data-clipboard-text", attrs.umbClipboardText); } - clipboard = new Clipboard(target); + clipboard = new ClipboardJS(target); + var expressionHandlerSuccess = $parse(attrs.umbClipboardSuccess); clipboard.on('success', function (e) { e.clearSelection(); - if (scope.umbClipboardSuccess) { - scope.$apply(function () { - scope.umbClipboardSuccess({ e: e }); - }); + if (attrs.umbClipboardSuccess) { + + expressionHandlerSuccess(scope, { msg: "success" }); } + }); + var expressionHandlerError = $parse(attrs.umbClipboardError); clipboard.on('error', function (e) { - if (scope.umbClipboardError) { - scope.$apply(function () { - scope.umbClipboardError({ e: e }); - }); + if (attrs.umbClipboardError) { + + expressionHandlerError(scope, { msg: "error" }); } }); }); // clean up - scope.$on('$destroy', function(){ + scope.$on('$destroy', function () { clipboard.destroy(); }); @@ -148,13 +150,6 @@ var directive = { restrict: 'A', - scope: { - umbClipboardSuccess: '&?', - umbClipboardError: '&?', - umbClipboardTarget: "@?", - umbClipboardAction: "@?", - umbClipboardText: "=?" - }, link: link }; diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js index c3cee9292c..3c5c083477 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.controller.js @@ -69,7 +69,7 @@ if (Umbraco.Sys.ServerVariables.umbracoSettings.showUserInvite) { vm.defaultButton = { labelKey: "user_inviteUser", - handler: function() { + handler: function () { vm.setUsersViewState('inviteUser'); } }; @@ -135,7 +135,7 @@ getUsers(); // Get user groups - userGroupsResource.getUserGroups({ onlyCurrentUserGroups: false}).then(function (userGroups) { + userGroupsResource.getUserGroups({ onlyCurrentUserGroups: false }).then(function (userGroups) { vm.userGroups = userGroups; }); @@ -540,12 +540,32 @@ // copy to clip board success function copySuccess() { - vm.page.copyPasswordButtonState = "success"; + + if (vm.page.copyPasswordButtonState != "success") { + + vm.page.copyPasswordButtonState = "success"; + + $timeout(function () { + resetClipboardButtonState() + }, 1000); + } + } // copy to clip board error function copyError() { - vm.page.copyPasswordButtonState = "error"; + if (vm.page.copyPasswordButtonState != "error") { + + vm.page.copyPasswordButtonState = "error"; + + $timeout(function () { + resetClipboardButtonState() + }, 1000); + } + } + + function resetClipboardButtonState() { + vm.page.copyPasswordButtonState = "init"; } function goToUser(userId) { @@ -594,7 +614,7 @@ var localOffset = new Date().getTimezoneOffset(); var serverTimeNeedsOffsetting = (-serverOffset !== localOffset); - if(serverTimeNeedsOffsetting) { + if (serverTimeNeedsOffsetting) { dateVal = dateHelper.convertToLocalMomentTime(user.lastLoginDate, serverOffset); } else { dateVal = moment(user.lastLoginDate, "YYYY-MM-DD HH:mm:ss"); diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html index f82958769a..abf2f80ff2 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/views/users/users.html @@ -441,33 +441,30 @@