Skip to content

Commit

Permalink
Merge pull request #8861 from IQSS/8766-popup-alert
Browse files Browse the repository at this point in the history
show alert to enable popups for external tools #8766
  • Loading branch information
kcondon authored Jul 27, 2022
2 parents 0a46c04 + 9834b3b commit 4e65f2f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 6 deletions.
4 changes: 1 addition & 3 deletions src/main/java/edu/harvard/iq/dataverse/DatasetPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -5630,9 +5630,7 @@ public void explore(ExternalTool externalTool) {
apiToken.setTokenString(privUrl.getToken());
}
ExternalToolHandler externalToolHandler = new ExternalToolHandler(externalTool, dataset, apiToken, session.getLocaleCode());
String toolUrl = externalToolHandler.getToolUrlWithQueryParams();
logger.fine("Exploring with " + toolUrl);
PrimeFaces.current().executeScript("window.open('"+toolUrl + "', target='_blank');");
PrimeFaces.current().executeScript(externalToolHandler.getExploreScript());
}

private FileMetadata fileMetadataForAction;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import edu.harvard.iq.dataverse.privateurl.PrivateUrl;
import edu.harvard.iq.dataverse.privateurl.PrivateUrlServiceBean;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
import edu.harvard.iq.dataverse.util.BundleUtil;
import edu.harvard.iq.dataverse.util.FileUtil;
import edu.harvard.iq.dataverse.util.StringUtil;
import java.io.IOException;
Expand Down Expand Up @@ -313,9 +314,7 @@ public void explore(GuestbookResponse guestbookResponse, FileMetadata fmd, Exter
ExternalToolHandler externalToolHandler = new ExternalToolHandler(externalTool, dataFile, apiToken, fmd, localeCode);
// Persist the name of the tool (i.e. "Data Explorer", etc.)
guestbookResponse.setDownloadtype(externalTool.getDisplayName());
String toolUrl = externalToolHandler.getToolUrlWithQueryParams();
logger.fine("Exploring with " + toolUrl);
PrimeFaces.current().executeScript("window.open('"+toolUrl + "', target='_blank');");
PrimeFaces.current().executeScript(externalToolHandler.getExploreScript());
// This is the old logic from TwoRavens, null checks and all.
if (guestbookResponse != null && guestbookResponse.isWriteResponse()
&& ((fmd != null && fmd.getDataFile() != null) || guestbookResponse.getDataFile() != null)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import edu.harvard.iq.dataverse.GlobalId;
import edu.harvard.iq.dataverse.authorization.users.ApiToken;
import edu.harvard.iq.dataverse.externaltools.ExternalTool.ReservedWord;
import edu.harvard.iq.dataverse.util.BundleUtil;
import edu.harvard.iq.dataverse.util.SystemConfig;
import java.io.StringReader;
import java.util.ArrayList;
Expand Down Expand Up @@ -200,4 +201,16 @@ public void setApiToken(ApiToken apiToken) {
this.apiToken = apiToken;
}

/**
* @return Returns Javascript that opens the explore tool in a new browser
* tab if the browser allows it.If not, it shows an alert that popups must
* be enabled in the browser.
*/
public String getExploreScript() {
String toolUrl = this.getToolUrlWithQueryParams();
logger.fine("Exploring with " + toolUrl);
String msg = BundleUtil.getStringFromBundle("externaltools.enable.browser.popups");
String script = "const newWin = window.open('" + toolUrl + "', target='_blank'); if (!newWin || newWin.closed || typeof newWin.closed == \"undefined\") {alert(\"" + msg + "\");}";
return script;
}
}
2 changes: 2 additions & 0 deletions src/main/java/propertyFiles/Bundle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2198,6 +2198,8 @@ dataset.AddReplication=Add "Replication Data for" to Title
dataset.replicationDataFor=Replication Data for:
dataset.additionalEntry=Additional Entry

#externaltools
externaltools.enable.browser.popups=You must enable popups in your browser to open external tools in a new window or tab.

#mydata_fragment.xhtml
mydataFragment.infoAccess=Here are all the dataverses, datasets, and files you have access to. You can filter through them by publication status and roles.
Expand Down

0 comments on commit 4e65f2f

Please sign in to comment.