Dynamically update Tooltip content based on click

This commit is contained in:
Marliana Lara
2017-07-03 16:20:19 -04:00
parent 7fda3c0658
commit 73ea0b348a
3 changed files with 18 additions and 4 deletions

View File

@@ -74,6 +74,7 @@ export default ['$scope', '$rootScope', '$log', 'Rest', 'Alert',
project.scm_update_tooltip = i18n._("Start an SCM update"); project.scm_update_tooltip = i18n._("Start an SCM update");
project.scm_schedule_tooltip = i18n._("Schedule future SCM updates"); project.scm_schedule_tooltip = i18n._("Schedule future SCM updates");
project.scm_type_class = ""; 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') { if (project.status === 'failed' && project.summary_fields.last_update && project.summary_fields.last_update.status === 'canceled') {
project.statusTip = i18n._('Canceled. Click for details'); 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(){ $scope.reloadList = function(){
let path = GetBasePath(list.basePath) || GetBasePath(list.name); let path = GetBasePath(list.basePath) || GetBasePath(list.name);
qs.search(path, $state.params[`${list.iterator}_search`]) qs.search(path, $state.params[`${list.iterator}_search`])

View File

@@ -6,7 +6,6 @@ export default
function(templateUrl, Rest, $q, $filter) { function(templateUrl, Rest, $q, $filter) {
return { return {
restrict: 'E', restrict: 'E',
scope: false,
templateUrl: templateUrl('projects/revisions/revisions'), templateUrl: templateUrl('projects/revisions/revisions'),
link: function(scope) { link: function(scope) {
let full_revision = scope.project.scm_revision; let full_revision = scope.project.scm_revision;
@@ -14,6 +13,8 @@ export default
scope.count = scope.project.scm_revision.length; scope.count = scope.project.scm_revision.length;
scope.copyRevisionHash = function() { scope.copyRevisionHash = function() {
scope.$emit('copied');
let textArea = document.createElement("textarea"); let textArea = document.createElement("textarea");
// Place in top-left corner of screen regardless of scroll position. // Place in top-left corner of screen regardless of scroll position.

View File

@@ -1,6 +1,7 @@
<div class="RevisionHash-tag"> <div class="RevisionHash-tag">
<span class="RevisionHash-name">{{revisionHash}}</span> <span class="RevisionHash-name">{{revisionHash}}</span>
</div> </div>
<div class="RevisionHash-copy" ng-if="count > 7" aw-tool-tip="Copy full revision to clipboard" data-placement="top" ng-click="copyRevisionHash()"> <div class="RevisionHash-copy" ng-if="count > 7" aw-tool-tip="{{project.tooltipContent}}" data-tip-watch="project.tooltipContent"
Copy data-placement="top" ng-click="copyRevisionHash()">
<i class="fa fa-clone"></i>
</div> </div>