diff --git a/src/main/webapp/WEB-INF/tags/page/xnat.tag b/src/main/webapp/WEB-INF/tags/page/xnat.tag index ca4ed6bcbf8d7d777ae0554412d114b41220942a..bf6b7271f780768bc747645311279077798c6dae 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 0000000000000000000000000000000000000000..3f69402d9bb145c98ab26976ef68491be6e0e543 --- /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 b8d56ec28449d7cc0b8ba46e6bb8f9bb93faf6da..ef9715f913895014e68d943530848dfcc3fbef5f 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 607b687a273ad18482aea716ea5aa24787326035..768a4c674b45daa57b2d12ebef7034feba0f3abe 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>