a1231722750f05b919cd3fcf244a5431e26b2b7c
braney
  Sat Feb 17 08:14:05 2018 -0800
add hgCollection menus to top bar and hgTracks right click

diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js
index a1a372b..524e911 100644
--- src/hg/js/hgTracks.js
+++ src/hg/js/hgTracks.js
@@ -2720,31 +2720,31 @@
 
             imageV2.fullReload();
         } else if (cmd === 'addCollection') {
             var shortLabel = $(menuItemClicked).text().substring(9).slice(0,-1); 
             var ii;
             var collectionName;
             for(ii=0; ii < hgTracks.collections.length; ii++) {
                 if ( hgTracks.collections[ii].shortLabel === shortLabel) {
                     collectionName = hgTracks.collections[ii].track;
                     break;
                 }
             }
 
             $.ajax({
                 type: "PUT",
-                async: false,
+                async: true,
                 url: "../cgi-bin/hgCollection",
                 data: "cmd=addTrack&track=" + id + "&collection=" + collectionName + "&hgsid=" + getHgsid(),
                 trueSuccess: mySuccess,
                 success: catchErrorOrDispatch,
                 error: errorHandler,
             });
 
             imageV2.fullReload();
         } else if ((cmd === 'sortExp') || (cmd === 'sortSim')) {
             url = "hgTracks?hgsid=" + getHgsid() + "&" + cmd + "=";
             rec = hgTracks.trackDb[id];
             if (tdbHasParent(rec) && tdbIsLeaf(rec))
                 url += rec.parentTrack;
             else {
                 // The button already has the ref
@@ -3261,36 +3261,56 @@
 
                     if ( currentlySeen ) {   // Remove only when seen
                         o[rightClick.makeImgTag("highlightRemove.png") + 
                                                                    " Remove highlight"] = {
                             onclick: rightClick.makeHitCallback('removeHighlight')
                         };
                     }
                     menu.push(o);
                 }
             }
 
             if (rec.isCustomComposite)
                 {
                 // add delete from composite
                 }
+            else if ((!rec.hasChildren && !rec.type.startsWith("wigMaf")) &&
+                (rec.type.startsWith("bigWig") || rec.type.startsWith("multiWig") || rec.type.startsWith("wig") || rec.type.startsWith("bedGraph"))) {
+                o = {};
+                o[" Make a New Collection with \"" + rec.shortLabel + "\""] = {
+                    onclick: rightClick.makeHitCallback("newCollection")
+                };  
+                menu.push(o);
+
+                if (hgTracks.collections) {
+                    var ii;
+                    for(ii=0; ii < hgTracks.collections.length; ii++) {
+                        o = {};
+                        o[" Add to \"" + hgTracks.collections[ii].shortLabel + "\""] = {
+                            onclick: rightClick.makeHitCallback("addCollection")
+                        };  
+                        menu.push(o);
+                    }
+                }
+                menu.push($.contextMenu.separator);
+            }
 
             // add sort options if this is a custom composite
             if (rec.isCustomComposite) {
 
                 o = {};
-                o[" Sort by Expression "] = {
+                o[" Sort by Magnitude "] = {
                     onclick: function(menuItemClicked, menuObject) {
                         rightClick.hit(menuItemClicked, menuObject, "sortExp");
                         return true; }
                 };  
                 menu.push(o);
 
                 o = {};
                 o[" Sort by Similarity "] = {
                     onclick: function(menuItemClicked, menuObject) {
                         rightClick.hit(menuItemClicked, menuObject, "sortSim");
                         return true; }
                 };  
                 menu.push(o);
 
                 menu.push($.contextMenu.separator);