diff --git a/awx/ui/client/src/projects/list/projects-list.controller.js b/awx/ui/client/src/projects/list/projects-list.controller.js index 5c98a1112a..5975c2b973 100644 --- a/awx/ui/client/src/projects/list/projects-list.controller.js +++ b/awx/ui/client/src/projects/list/projects-list.controller.js @@ -74,6 +74,7 @@ export default ['$scope', '$rootScope', '$log', 'Rest', 'Alert', project.scm_update_tooltip = i18n._("Start an SCM update"); project.scm_schedule_tooltip = i18n._("Schedule future SCM updates"); project.scm_type_class = ""; + project.tooltipContent = 'Copy full revision to clipboard.'; if (project.status === 'failed' && project.summary_fields.last_update && project.summary_fields.last_update.status === 'canceled') { project.statusTip = i18n._('Canceled. Click for details'); @@ -92,6 +93,17 @@ export default ['$scope', '$rootScope', '$log', 'Rest', 'Alert', } } + $scope.$on('copied', function(e) { + $scope.projects.map( (project) => { + if (project.id === e.targetScope.project.id) { + project.tooltipContent = 'Copied to clipboard.'; + } + else { + project.tooltipContent = "Copy full revision to clipboard."; + } + }); + }); + $scope.reloadList = function(){ let path = GetBasePath(list.basePath) || GetBasePath(list.name); qs.search(path, $state.params[`${list.iterator}_search`]) diff --git a/awx/ui/client/src/projects/revisions/revisions.directive.js b/awx/ui/client/src/projects/revisions/revisions.directive.js index b5e7ef02c3..959b1c2232 100644 --- a/awx/ui/client/src/projects/revisions/revisions.directive.js +++ b/awx/ui/client/src/projects/revisions/revisions.directive.js @@ -6,7 +6,6 @@ export default function(templateUrl, Rest, $q, $filter) { return { restrict: 'E', - scope: false, templateUrl: templateUrl('projects/revisions/revisions'), link: function(scope) { let full_revision = scope.project.scm_revision; @@ -14,6 +13,8 @@ export default scope.count = scope.project.scm_revision.length; scope.copyRevisionHash = function() { + scope.$emit('copied'); + let textArea = document.createElement("textarea"); // Place in top-left corner of screen regardless of scroll position. @@ -40,7 +41,7 @@ export default textArea.value = full_revision; document.body.appendChild(textArea); textArea.select(); - + document.execCommand('copy'); document.body.removeChild(textArea); diff --git a/awx/ui/client/src/projects/revisions/revisions.partial.html b/awx/ui/client/src/projects/revisions/revisions.partial.html index 6b72870994..ff391e2ad3 100644 --- a/awx/ui/client/src/projects/revisions/revisions.partial.html +++ b/awx/ui/client/src/projects/revisions/revisions.partial.html @@ -1,6 +1,7 @@
{{revisionHash}}
-
- Copy +
+
\ No newline at end of file