33c36db157884a27c6557ec816985dfa55675757
hiram
  Wed Oct 5 22:12:02 2022 -0700
add onclick function to buttons of class copyLink no redmine

diff --git src/hg/js/hgGateway.js src/hg/js/hgGateway.js
index a83eeac..e9c5bbd 100644
--- src/hg/js/hgGateway.js
+++ src/hg/js/hgGateway.js
@@ -18,30 +18,38 @@
 // slider bar to the left of the phylogenetic tree container.
 
 // hgGateway: module of mostly view/controller code (model state comes directly from server).
 
 // Globals (pragma for jshint):
 /* globals dbDbTree, activeGenomes, surveyLink, surveyLabel, surveyLabelImage, cart */
 /* globals autoCompleteCat */
 /* globals calculateHgTracksWidth */ // function is defined in utils.js
 
 window.hgsid = '';
 window.activeGenomes = {};
 window.surveyLink=null;
 window.surveyLabel=null;
 window.surveyLabelImage=null;
 
+function setCopyLinks() {
+  // add onclick to class 'copyLink' buttons, there could be more than one.
+  buttons = document.getElementsByClassName('copyLink');
+  addOnClick = function(){copyToClipboard(event);};
+  for (i = 0; i < buttons.length; i++) {
+      buttons[i].onclick = addOnClick;
+  }
+}
 
 function svgCreateEl(type, config) {
     // Helper function for creating a new SVG element and initializing its
     // properties and attributes.  Type is something like 'rect', 'text', 'g', etc;
     // config is an object like { id: 'newThingie', x: 0, y: 10, title: 'blah blah' }.
     var svgns = 'http://www.w3.org/2000/svg';
     var xlinkns = 'http://www.w3.org/1999/xlink';
     var el = document.createElementNS(svgns, type);
     var title, titleEl;
     if (el) {
         _.forEach(config, function(value, setting) {
             if (setting === 'textContent') {
                 // Text content (the text in a text element or title element) is a property:
                 el.textContent = value;
             } else if (setting === 'href') {
@@ -1173,30 +1181,31 @@
             $table.removeAttr('height');
         }
     }
 
     function updateDescription(description) {
         // We got the contents of a db's description.html -- tweak its format to fit
         // the new design.
         $('#descriptionText').html(description);
         tweakDescriptionPhotoWidth();
         // Apply JWest formatting to all anchors in description.
         // We can't simply style all <a> tags that way because autocomplete uses <a>'s.
         $('#descriptionText a').addClass('jwAnchor');
         // Apply square bullet style to all ul's in description.
         $('#descriptionText ul').addClass('jwNoBullet');
         $('#descriptionText li').addClass('jwSquareBullet');
+        setCopyLinks();
     }
 
     function initFindPositionContents() {
         // Unhide contents of Find Position section and adjust layout.
         $('#findPositionContents').show();
         // Set assembly menu's width to same as position input.
         var posWidth = $('#positionInput').outerWidth();
         var $select = $('#selectAssembly');
         $select.outerWidth(posWidth);
         // For some reason, it doesn't set it to posWidth, it sets it to posWidth-2...
         // detect and adjust.
         var weirdDiff = posWidth - $select.outerWidth();
         if (weirdDiff) {
             $select.outerWidth(posWidth + weirdDiff);
         }