From d2220fd8ba71ec510c63548d79809c4041d33572 Mon Sep 17 00:00:00 2001 From: Will <hortonw@mir.wustl.edu> Date: Sun, 5 Jun 2016 12:37:27 -0500 Subject: [PATCH] XNAT-4324, XNAT-4194: Fix Browse menu display issues, and apply them to Admin pages as well. Update docs links in Admin pages too. --- src/main/webapp/WEB-INF/tags/page/xnat.tag | 26 ++++++++- .../webapp/scripts/xnat/ui/topnav-browse.js | 54 +++++++++++++++++++ .../xnat-templates/screens/topBar/Browse.vm | 2 +- .../screens/topBar/Browse/Default.vm | 54 ++----------------- 4 files changed, 83 insertions(+), 53 deletions(-) create mode 100644 src/main/webapp/scripts/xnat/ui/topnav-browse.js diff --git a/src/main/webapp/WEB-INF/tags/page/xnat.tag b/src/main/webapp/WEB-INF/tags/page/xnat.tag index ca4ed6bc..bf6b7271 100644 --- a/src/main/webapp/WEB-INF/tags/page/xnat.tag +++ b/src/main/webapp/WEB-INF/tags/page/xnat.tag @@ -270,6 +270,30 @@ ${bodyTop} }); </script> </li> + <!-- Sequence: 11 --> + <li><a id="browse" title="Browse" href="#Browse">Browse</a> + <ul class="" style="display:none; min-width: 120px;"> + <!-- Browse/Default --> + <li><a href="#BrowseProjects">Projects</a> + <ul id="browse-projects"> + <!-- Sequence: 10 --> + <li class="create-project hidden"><a href="${SITE_ROOT}/app/template/XDATScreen_add_xnat_projectData.vm">Project</a></li> + </ul> + </li> + <li class="hidden"><a href="#FavoriteProjects">Favorite Projects</a> + <ul id="favorite-projects"> + <!-- Sequence: 10 --> + </ul> + </li> + <li class="hidden"><a href="#BrowseData">Data</a> + <ul id="browse-data"> + <!-- Sequence: 10 --> + </ul> + </li> + + <script src="${SITE_ROOT}/scripts/xnat/ui/topnav-browse.js"></script> + </ul> + </li> <!-- Sequence: 20 --> <li class="more"><a href="#new">New</a> <ul class="" style="display: none;"> @@ -330,7 +354,7 @@ ${bodyTop} <!-- Sequence: 10 --> <!-- allowGuest: true --> <li> - <a href="https://wiki.xnat.org/display/XNAT16/XNAT+Desktop" target="_blank">XNAT Desktop (XND)</a> + <a href="https://wiki.xnat.org/display/XTOOLS/XNAT+Desktop" target="_blank">XNAT Desktop (XND)</a> </li> <li> <a href="http://nrg.wustl.edu/software/dicom-browser/" target="_blank">DICOM Browser</a> diff --git a/src/main/webapp/scripts/xnat/ui/topnav-browse.js b/src/main/webapp/scripts/xnat/ui/topnav-browse.js new file mode 100644 index 00000000..3f69402d --- /dev/null +++ b/src/main/webapp/scripts/xnat/ui/topnav-browse.js @@ -0,0 +1,54 @@ +var displayProjectNav = function(projectList) { + if (projectList.length > 0) { + for (p in projectList) { + var pLink = '<li><a href="'+serverRoot+'/data/projects/'+projectList[p].id+'">'+projectList[p].name+'</a></li>'; + $('#browse-projects').append(pLink); + }; + } else { + $('#browse-projects').find('.create-project').removeClass('hidden'); + } +}; +var displayFavoriteProjects = function(projectList) { + if (projectList.length > 0) { + for (p in projectList) { + var pLink = '<li><a href="'+serverRoot+'/data/projects/'+projectList[p].id+'">'+projectList[p].name+'</a></li>'; + $('#favorite-projects').append(pLink); + }; + $('#favorite-projects').parent('li').removeClass('hidden'); + } +} + +var displayProjectNavFail = function() { + $('#browse-projects').find('.create-project').removeClass('hidden'); +}; + +var displayDataNav = function() { + var dataTypes = window.available_elements; + if (dataTypes.length > 0) { + for (d in dataTypes) { + if (dataTypes[d].plural !== undefined && dataTypes[d].element_name !== 'wrk:workflowData') { + var dLink = '<li><a href="'+serverRoot+'/app/template/Search.vm/node/d.'+dataTypes[d].element_name+'">'+dataTypes[d].plural+'</a></li>'; + $('#browse-data').append(dLink); + } + }; + $('#browse-data').parent('li').removeClass('hidden'); + } +}; +$(document).ready(function(){ + // populate project list + $.getJSON(serverRoot+'/data/projects?accessible=true&XNAT_CSRF='+csrfToken) + .success(function(data){ displayProjectNav(data.ResultSet.Result) }) + .fail(function() { displayProjectNavFail(); }); + + // look for favorite projects. If found, show that dropdown list. + $.getJSON(serverRoot+'/data/projects?favorite=true&format=json&XNAT_CSRF='+csrfToken) + .success(function(data) { displayFavoriteProjects(data.ResultSet.Result) }) + .fail(function() { /* set Favorite Projects nav item to hidden, if necessary */ }); + + // populate data list + if (window.available_elements !== undefined) { + displayDataNav(); + } else { + $('#browse-data').parent('li').addClass('disabled'); + } +}); diff --git a/src/main/webapp/xnat-templates/screens/topBar/Browse.vm b/src/main/webapp/xnat-templates/screens/topBar/Browse.vm index b8d56ec2..ef9715f9 100644 --- a/src/main/webapp/xnat-templates/screens/topBar/Browse.vm +++ b/src/main/webapp/xnat-templates/screens/topBar/Browse.vm @@ -1,6 +1,6 @@ <!-- Sequence: 11 --> <li><a href="#browse">Browse</a> - <ul style="width: 151px;"> + <ul style="min-width: 120px"> #addGlobalCustomScreens("topBar/Browse") </ul> </li> diff --git a/src/main/webapp/xnat-templates/screens/topBar/Browse/Default.vm b/src/main/webapp/xnat-templates/screens/topBar/Browse/Default.vm index 607b687a..768a4c67 100644 --- a/src/main/webapp/xnat-templates/screens/topBar/Browse/Default.vm +++ b/src/main/webapp/xnat-templates/screens/topBar/Browse/Default.vm @@ -3,7 +3,7 @@ <li><a href="#BrowseProjects">Projects</a> <ul id="browse-projects"> <!-- Sequence: 10 --> - <li class="create-project hidden"><a href="$link.setPage("XDATScreen_add_xnat_projectData.vm")">$displayManager.getSingularDisplayNameForProject()</a></li> + <li class="create-project hidden"><a href="$link.setPage("XDATScreen_add_xnat_projectData.vm")">Create $displayManager.getSingularDisplayNameForProject()</a></li> </ul> </li> <li class="hidden"><a href="#FavoriteProjects">Favorite Projects</a> @@ -11,58 +11,10 @@ <!-- Sequence: 10 --> </ul> </li> - <li><a href="#BrowseData">Data</a> + <li class="hidden"><a href="#BrowseData">Data</a> <ul id="browse-data"> <!-- Sequence: 10 --> </ul> </li> -<script> - var displayProjectNav = function(projectList) { - for (p in projectList) { - var pLink = '<li><a href="'+serverRoot+'/data/projects/'+projectList[p].id+'">'+projectList[p].name+'</a></li>'; - $('#browse-projects').append(pLink); - }; - }; - var displayFavoriteProjects = function(projectList) { - if (projectList.length > 0) { - for (p in projectList) { - var pLink = '<li><a href="'+serverRoot+'/data/projects/'+projectList[p].id+'">'+projectList[p].name+'</a></li>'; - $('#favorite-projects').append(pLink); - }; - $('#favorite-projects').parent('li').removeClass('hidden'); - } - } - - var displayProjectNavFail = function() { - $('#browse-projects').find('.create-project').removeClass('hidden'); - }; - - var displayDataNav = function() { - var dataTypes = window.available_elements; - for (d in dataTypes) { - if (dataTypes[d].plural !== undefined && dataTypes[d].element_name !== 'wrk:workflowData') { - var dLink = '<li><a href="'+serverRoot+'/app/template/Search.vm/node/d.'+dataTypes[d].element_name+'">'+dataTypes[d].plural+'</a></li>'; - $('#browse-data').append(dLink); - } - }; - }; - $(document).ready(function(){ - // populate project list - $.getJSON(serverRoot+'/data/projects?accessible=true&XNAT_CSRF='+csrfToken) - .success(function(data){ displayProjectNav(data.ResultSet.Result) }) - .fail(function() { displayProjectNavFail(); }); - - // look for favorite projects. If found, show that dropdown list. - $.getJSON(serverRoot+'/data/projects?favorite=true&format=json&XNAT_CSRF='+csrfToken) - .success(function(data) { displayFavoriteProjects(data.ResultSet.Result) }) - .fail(function() { /* set Favorite Projects nav item to hidden, if necessary */ }); - - // populate data list - if (window.available_elements !== undefined) { - displayDataNav(); - } else { - $('#browse-data').parent('li').addClass('disabled'); - } - }); -</script> +<script src="$content.getURI("/scripts/xnat/ui/topnav-browse.js")"></script> -- GitLab