4b8ba2cfec3666d658121a82d297c1e07fcf629b
braney
  Tue Jan 23 15:11:36 2018 -0800
ongoing work on hgCollection

diff --git src/hg/js/hgCollection.js src/hg/js/hgCollection.js
index 0414485..e9c27ce 100644
--- src/hg/js/hgCollection.js
+++ src/hg/js/hgCollection.js
@@ -30,30 +30,35 @@
                     var parentId = $(selectedNode).attr('id');
                     $(selectedTree).jstree("copy_node", nodes, parentId,'last');
                 }
             }
         };
 
         if ($(node).attr('children').length > 0)
             delete items.addItem;
 
         return items;
     }
 
     function currentCollectionItems(node) {
         // populate the menu for the currentCollection tree
         var items = {
+            duplicateItem: { // The "duplicate" menu item
+                label: "Duplicate",
+                action: function () { 
+                }
+            },
             deleteItem: { // The "delete" menu item
                 label: "Delete",
                 action: function () {
                     var nodes = $(selectedTree).jstree( "get_selected");
                     isDirty = true;
                     $(selectedTree).jstree( "delete_node", nodes);
                 }
             }
         };
 
         // can't delete root
         //if ($(node).attr('parent') === '#')
             //delete items.deleteItem;
 
         return items;
@@ -302,83 +307,85 @@
         $("#doNewCollection").click ( newCollection );
 
         var trackOpt = {
             hideAfterPaletteSelect : true,
             color : $('#customColorInput').val(),
             showPalette: true,
             showInput: true,
             preferredFormat: "hex",
             change: colorChange,
         };
 
         $("#customColorPicker").spectrum(trackOpt);
         $.jstree.defaults.core.check_callback = checkCallback;
         $.jstree.defaults.core.themes.dots = true;
         $.jstree.defaults.contextmenu.show_at_node = false;
-        var addedOne = false;
+        var addedOne = true;
+        if ( $("#currentCollection ul").length === 0) {
+            addedOne = false;
+        }
         $("#currentCollection div").each(function(index) {
-            addedOne = true;
             var newTree = this;
 
             $(newTree).jstree({
                'plugins' : ['dnd', 'conditionalselect', 'contextmenu'],
                'contextmenu': { "items" : currentCollectionItems},
                'dnd': {
                 "check_callback" : checkCallback,
                 }
             });
             recordNames(newTree);
             trees[this.id] = $(newTree);
             $(newTree).on("select_node.jstree", selectTreeNode);
             $(newTree).on("dblclick.jstree", doubleClickTreeNode);
 
             $(newTree).on("copy_node.jstree", function (evt, data)  {
                 $(evt.target).jstree("open_node", data.parent);
                 $(evt.target).jstree("set_icon", data.node, 'fa fa-minus-square');
             });
             $(newTree).on('click', '.jstree-themeicon ', minusHit);
 
             // select the first cild
             var firstChild = $(newTree).find("li").first();
             $(newTree).jstree("select_node", $(firstChild).attr("id"));
             selectedTree = newTree;
         });
 
-        if (!addedOne) {
-            dialogCollection();
-        }
 
         treeDiv=$('#tracks');
         treeDiv.jstree({
                'plugins' : ['dnd', 'conditionalselect', 'contextmenu'],
                'contextmenu': { "items" : currentTrackItems},
                'dnd': {
                 "check_callback" : checkCallback,
                'always_copy' : true,
                 is_draggable: isDraggable,
                },
                'core' :  {
                 "check_callback" : checkCallback
             }
         });
         treeDiv.on("select_node.jstree", function (evt, data)  {
             $(evt.target).jstree("toggle_node", data.node);
         });
         treeDiv.on('click', '.jstree-themeicon ', plusHit);
 
         //var firstElement = $("#collectionList li").first();
         //selectElements($("#collectionList"), firstElement) ;
+        if (!addedOne) {
+            dialogCollection();
+        }
     }
 
    function submitForm() {
     // Submit the form (from GO button -- as in hgGateway.js)
     // Show a spinner -- sometimes it takes a while for hgTracks to start displaying.
         $('.gbIconGo').removeClass('fa-play').addClass('fa-spinner fa-spin');
         goTracks = true;
         saveCollections(trees);
     }
 
     function updatePage(responseJson) {
         // called after AJAX call
         isDirty = false;
         if (!responseJson) {
             return;