diff --git a/src/main/java/edu/harvard/iq/dataverse/DataverseHeaderFragment.java b/src/main/java/edu/harvard/iq/dataverse/DataverseHeaderFragment.java index d1a2e7ab9dd..d3607a27093 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DataverseHeaderFragment.java +++ b/src/main/java/edu/harvard/iq/dataverse/DataverseHeaderFragment.java @@ -223,11 +223,11 @@ public String logout() { redirectPage = URLDecoder.decode(redirectPage, "UTF-8"); } catch (UnsupportedEncodingException ex) { Logger.getLogger(LoginPage.class.getName()).log(Level.SEVERE, null, ex); - redirectPage = "dataverse.xhtml&alias=" + dataverseService.findRootDataverse().getAlias(); + redirectPage = redirectToRoot(); } if (StringUtils.isEmpty(redirectPage)) { - redirectPage = "dataverse.xhtml&alias=" + dataverseService.findRootDataverse().getAlias(); + redirectPage = redirectToRoot(); } logger.log(Level.INFO, "Sending user to = " + redirectPage); @@ -236,6 +236,10 @@ public String logout() { private Boolean signupAllowed = null; + private String redirectToRoot(){ + return "dataverse.xhtml?alias=" + dataverseService.findRootDataverse().getAlias(); + } + public boolean isSignupAllowed() { if (signupAllowed != null) { return signupAllowed; diff --git a/src/main/java/edu/harvard/iq/dataverse/DataversePage.java b/src/main/java/edu/harvard/iq/dataverse/DataversePage.java index c10bc5724a0..07a21c8c557 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DataversePage.java +++ b/src/main/java/edu/harvard/iq/dataverse/DataversePage.java @@ -639,7 +639,7 @@ public String save() { JsfHelper.addSuccessMessage(message); editMode = null; - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } catch (CommandException ex) { @@ -732,7 +732,7 @@ public String saveLinkedDataverse() { String msg = "Only authenticated users can link a dataverse."; logger.severe(msg); JsfHelper.addErrorMessage(msg); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } linkingDataverse = dataverseService.find(linkingDataverseId); @@ -745,7 +745,7 @@ public String saveLinkedDataverse() { String msg = "Unable to link " + dataverse.getDisplayName() + " to " + linkingDataverse.getDisplayName() + ". An internal error occurred."; logger.log(Level.SEVERE, "{0} {1}", new Object[]{msg, ex}); JsfHelper.addErrorMessage(msg); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } SavedSearch savedSearchOfChildren = createSavedSearchForChildren(savedSearchCreator); @@ -758,20 +758,20 @@ public String saveLinkedDataverse() { DataverseRequest dataverseRequest = new DataverseRequest(savedSearchCreator, SavedSearchServiceBean.getHttpServletRequest()); savedSearchService.makeLinksForSingleSavedSearch(dataverseRequest, savedSearchOfChildren, debug); JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("dataverse.linked.success", getSuccessMessageArguments())); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } catch (SearchException | CommandException ex) { // error: solr is down, etc. can't link children right now JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("dataverse.linked.internalerror", getSuccessMessageArguments())); String msg = dataverse.getDisplayName() + " has been successfully linked to " + linkingDataverse.getDisplayName() + " but contents will not appear until an internal error has been fixed."; logger.log(Level.SEVERE, "{0} {1}", new Object[]{msg, ex}); //JsfHelper.addErrorMessage(msg); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } } else { // defer: please wait for the next timer/cron job //JsfHelper.addSuccessMessage(dataverse.getDisplayName() + " has been successfully linked to " + linkingDataverse.getDisplayName() + ". Please wait for its contents to appear."); JsfHelper.addSuccessMessage(BundleUtil.getStringFromBundle("dataverse.linked.success.wait", getSuccessMessageArguments())); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } } @@ -819,7 +819,7 @@ public String saveSavedSearch() { String msg = "Only authenticated users can save a search."; logger.severe(msg); JsfHelper.addErrorMessage(msg); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } SavedSearch savedSearch = new SavedSearch(searchIncludeFragment.getQuery(), linkingDataverse, savedSearchCreator); @@ -843,12 +843,12 @@ public String saveSavedSearch() { arguments.add(linkString); String successMessageString = BundleUtil.getStringFromBundle("dataverse.saved.search.success", arguments); JsfHelper.addSuccessMessage(successMessageString); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } catch (CommandException ex) { String msg = "There was a problem linking this search to yours: " + ex; logger.severe(msg); JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("dataverse.saved.search.failure") + " " + ex); - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } } @@ -876,7 +876,7 @@ public String releaseDataverse() { } else { JsfHelper.addErrorMessage(BundleUtil.getStringFromBundle("dataverse.publish.not.authorized")); } - return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + return returnRedirect(); } @@ -1016,5 +1016,9 @@ public void validateAlias(FacesContext context, UIComponent toValidate, Object v } } } + + private String returnRedirect(){ + return "/dataverse.xhtml?alias=" + dataverse.getAlias() + "&faces-redirect=true"; + } } diff --git a/src/main/java/edu/harvard/iq/dataverse/DataverseServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/DataverseServiceBean.java index 8adc5832040..026af897c6b 100644 --- a/src/main/java/edu/harvard/iq/dataverse/DataverseServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/DataverseServiceBean.java @@ -468,7 +468,40 @@ public Map getAllHarvestedDataverseDescriptions(){ return ret; }*/ + + public String getParentAliasString(SolrSearchResult solrSearchResult){ + Long dvId = solrSearchResult.getEntityId(); + String retVal = ""; + + if (dvId == null) { + return retVal; + } + + String searchResult; + try { + System.out.print("select t0.ALIAS FROM DATAVERSE t0, DVOBJECT t1, DVOBJECT t2 WHERE (t0.ID = t1.ID) AND (t2.OWNER_ID = t1.ID) AND (t2.ID =" + dvId + ")"); + searchResult = (String) em.createNativeQuery("select t0.ALIAS FROM DATAVERSE t0, DVOBJECT t1, DVOBJECT t2 WHERE (t0.ID = t1.ID) AND (t2.OWNER_ID = t1.ID) AND (t2.ID =" + dvId + ")").getSingleResult(); + + } catch (Exception ex) { + System.out.print("catching exception"); + System.out.print("catching exception" + ex.getMessage()); + return retVal; + } + if (searchResult == null) { + System.out.print("searchResult == null"); + return retVal; + } + + if (searchResult != null) { + System.out.print(searchResult); + return searchResult; + } + + return retVal; + } + + public void populateDvSearchCard(SolrSearchResult solrSearchResult) { Long dvId = solrSearchResult.getEntityId(); diff --git a/src/main/java/edu/harvard/iq/dataverse/LoginPage.java b/src/main/java/edu/harvard/iq/dataverse/LoginPage.java index 1f5328f9b35..6bde3ba6775 100644 --- a/src/main/java/edu/harvard/iq/dataverse/LoginPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/LoginPage.java @@ -173,14 +173,14 @@ public String login() { session.setUser(r); if ("dataverse.xhtml".equals(redirectPage)) { - redirectPage = redirectPage + "&alias=" + dataverseService.findRootDataverse().getAlias(); + redirectPage = redirectToRoot(); } try { redirectPage = URLDecoder.decode(redirectPage, "UTF-8"); } catch (UnsupportedEncodingException ex) { Logger.getLogger(LoginPage.class.getName()).log(Level.SEVERE, null, ex); - redirectPage = "dataverse.xhtml&alias=" + dataverseService.findRootDataverse().getAlias(); + redirectPage = redirectToRoot(); } logger.log(Level.FINE, "Sending user to = {0}", redirectPage); @@ -214,6 +214,10 @@ public String login() { } } + + private String redirectToRoot(){ + return "dataverse.xhtml?alias=" + dataverseService.findRootDataverse().getAlias(); + } public String getCredentialsAuthProviderId() { return credentialsAuthProviderId; diff --git a/src/main/java/edu/harvard/iq/dataverse/Shib.java b/src/main/java/edu/harvard/iq/dataverse/Shib.java index 9945d10c916..b5a8b6d6a51 100644 --- a/src/main/java/edu/harvard/iq/dataverse/Shib.java +++ b/src/main/java/edu/harvard/iq/dataverse/Shib.java @@ -13,6 +13,7 @@ import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; import edu.harvard.iq.dataverse.util.BundleUtil; import edu.harvard.iq.dataverse.util.JsfHelper; +import edu.harvard.iq.dataverse.util.SystemConfig; import java.io.IOException; import java.sql.Timestamp; import java.util.ArrayList; @@ -441,9 +442,9 @@ public String getPrettyFacesHomePageString(boolean includeFacetDashRedirect) { String rootDvAlias = getRootDataverseAlias(); if (includeFacetDashRedirect) { if (rootDvAlias != null) { - return plainHomepageString + "?alias=" + rootDvAlias + "&faces-redirect=true"; + return plainHomepageString + "?alias=" + rootDvAlias + "&faces-redirect=true"; } else { - return plainHomepageString + "?faces-redirect=true"; + return plainHomepageString + "?faces-redirect=true"; } } else if (rootDvAlias != null) { /** diff --git a/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java b/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java index 8f9c79f4dc8..17b59eb27fd 100644 --- a/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java +++ b/src/main/java/edu/harvard/iq/dataverse/ThemeWidgetFragment.java @@ -262,7 +262,7 @@ public void resetForm() { } public String cancel() { - return "dataverse?faces-redirect=true&alias="+editDv.getAlias(); // go to dataverse page + return "dataverse.xhtml?faces-redirect=true&alias="+editDv.getAlias(); // go to dataverse page } @@ -285,7 +285,7 @@ public String save() { this.cleanupTempDirectory(); } JsfHelper.addSuccessMessage(JH.localize("dataverse.theme.success")); - return "dataverse?faces-redirect=true&alias="+editDv.getAlias(); // go to dataverse page + return "dataverse.xhtml?faces-redirect=true&alias="+editDv.getAlias(); // go to dataverse page } } diff --git a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/DataverseUserPage.java b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/DataverseUserPage.java index 37c3a75cddd..df2db501035 100644 --- a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/DataverseUserPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/builtin/DataverseUserPage.java @@ -340,14 +340,14 @@ public String save() { // go back to where user came from if ("dataverse.xhtml".equals(redirectPage)) { - redirectPage = redirectPage + "&alias=" + dataverseService.findRootDataverse().getAlias(); + redirectPage = redirectPage + "?alias=" + dataverseService.findRootDataverse().getAlias(); } try { redirectPage = URLDecoder.decode(redirectPage, "UTF-8"); } catch (UnsupportedEncodingException ex) { logger.log(Level.SEVERE, "Server does not support 'UTF-8' encoding.", ex); - redirectPage = "dataverse.xhtml&alias=" + dataverseService.findRootDataverse().getAlias(); + redirectPage = "dataverse.xhtml?alias=" + dataverseService.findRootDataverse().getAlias(); } logger.log(Level.FINE, "Sending user to = {0}", redirectPage); diff --git a/src/main/java/edu/harvard/iq/dataverse/mydata/DataRetrieverAPI.java b/src/main/java/edu/harvard/iq/dataverse/mydata/DataRetrieverAPI.java index c369c1f52e0..efcfdbdae96 100644 --- a/src/main/java/edu/harvard/iq/dataverse/mydata/DataRetrieverAPI.java +++ b/src/main/java/edu/harvard/iq/dataverse/mydata/DataRetrieverAPI.java @@ -4,6 +4,7 @@ package edu.harvard.iq.dataverse.mydata; import edu.harvard.iq.dataverse.DataverseRoleServiceBean; +import edu.harvard.iq.dataverse.DataverseServiceBean; import edu.harvard.iq.dataverse.DataverseSession; import edu.harvard.iq.dataverse.DvObjectServiceBean; import edu.harvard.iq.dataverse.RoleAssigneeServiceBean; @@ -22,6 +23,7 @@ import edu.harvard.iq.dataverse.search.SearchException; import edu.harvard.iq.dataverse.search.SearchFields; import edu.harvard.iq.dataverse.search.SortBy; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Random; @@ -67,6 +69,8 @@ public class DataRetrieverAPI extends AbstractApiBean { SearchServiceBean searchService; @EJB AuthenticationServiceBean authenticationService; + @EJB + DataverseServiceBean dataverseService; //@EJB //MyDataQueryHelperServiceBean myDataQueryHelperServiceBean; @EJB @@ -522,6 +526,12 @@ private JsonArrayBuilder formatSolrDocs(SolrQueryResponse solrResponse, RoleTagR // ------------------------------------------- myDataCardInfo = doc.getJsonForMyData(); + if (!doc.getEntity().isInstanceofDataFile()){ + String parentAlias = dataverseService.getParentAliasString(doc); + System.out.print("parentAlias: " + parentAlias); + myDataCardInfo.add("parent_alias",parentAlias); + } + // ------------------------------------------- // (b) Add role info // ------------------------------------------- diff --git a/src/main/java/edu/harvard/iq/dataverse/passwordreset/PasswordResetPage.java b/src/main/java/edu/harvard/iq/dataverse/passwordreset/PasswordResetPage.java index 228c6741a80..a0b3ec437c2 100644 --- a/src/main/java/edu/harvard/iq/dataverse/passwordreset/PasswordResetPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/passwordreset/PasswordResetPage.java @@ -13,6 +13,7 @@ import edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; import edu.harvard.iq.dataverse.settings.SettingsServiceBean; import edu.harvard.iq.dataverse.util.BundleUtil; +import edu.harvard.iq.dataverse.util.SystemConfig; import java.util.logging.Level; import java.util.logging.Logger; import javax.ejb.EJB; diff --git a/src/main/java/edu/harvard/iq/dataverse/search/SearchServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/search/SearchServiceBean.java index 660b5cc80e7..96b51ed3240 100644 --- a/src/main/java/edu/harvard/iq/dataverse/search/SearchServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/search/SearchServiceBean.java @@ -455,7 +455,7 @@ public SolrQueryResponse search(DataverseRequest dataverseRequest, Dataverse dat */ if (type.equals("dataverses")) { solrSearchResult.setName(name); - solrSearchResult.setHtmlUrl(baseUrl + "/dataverse/" + identifier); + solrSearchResult.setHtmlUrl(baseUrl + SystemConfig.DATAVERSE_PATH + identifier); // Do not set the ImageUrl, let the search include fragment fill in // the thumbnail, similarly to how the dataset and datafile cards // are handled. diff --git a/src/main/java/edu/harvard/iq/dataverse/util/SystemConfig.java b/src/main/java/edu/harvard/iq/dataverse/util/SystemConfig.java index ee26d1e19c5..c99d99a4b05 100644 --- a/src/main/java/edu/harvard/iq/dataverse/util/SystemConfig.java +++ b/src/main/java/edu/harvard/iq/dataverse/util/SystemConfig.java @@ -42,6 +42,8 @@ public class SystemConfig { @EJB AuthenticationServiceBean authenticationService; + + public static final String DATAVERSE_PATH = "/dataverse/"; /** * A JVM option for the advertised fully qualified domain name (hostname) of diff --git a/src/main/webapp/dataset.xhtml b/src/main/webapp/dataset.xhtml index a966e39bd50..b425fbc8de1 100755 --- a/src/main/webapp/dataset.xhtml +++ b/src/main/webapp/dataset.xhtml @@ -1343,7 +1343,7 @@ - + @@ -1413,12 +1413,12 @@ - + - + diff --git a/src/main/webapp/dataverse.xhtml b/src/main/webapp/dataverse.xhtml index 55818bdd09c..2bd4b9b29bb 100644 --- a/src/main/webapp/dataverse.xhtml +++ b/src/main/webapp/dataverse.xhtml @@ -483,7 +483,7 @@

#{bundle['dataverse.share.dataverseShare.tip']}

-
+
@@ -199,7 +199,7 @@ - + @@ -227,7 +227,7 @@ {{ card_info.date_to_display_on_card }} - - {{ card_info.parentName }} + - {{ card_info.parentName }} {%if card_info.citationHtml %}{{ card_info.citationHtml|safe }}{% else %}{{ card_info.citation|safe }}{% endif %} diff --git a/src/main/webapp/search-include-fragment.xhtml b/src/main/webapp/search-include-fragment.xhtml index 456ffa42817..10ed666aa5a 100644 --- a/src/main/webapp/search-include-fragment.xhtml +++ b/src/main/webapp/search-include-fragment.xhtml @@ -442,7 +442,7 @@ - + @@ -463,7 +463,7 @@ - + @@ -523,7 +523,7 @@ - +