Skip to content

Commit

Permalink
Add Exporters to File Landing Page
Browse files Browse the repository at this point in the history
  • Loading branch information
sekmiller committed Oct 28, 2016
1 parent 2ab8664 commit 076d51a
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/FilePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,13 @@
import edu.harvard.iq.dataverse.engine.command.Command;
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
import edu.harvard.iq.dataverse.engine.command.impl.UpdateDatasetCommand;
import edu.harvard.iq.dataverse.export.ExportException;
import edu.harvard.iq.dataverse.export.ExportService;
import edu.harvard.iq.dataverse.export.spi.Exporter;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
import edu.harvard.iq.dataverse.util.JsfHelper;
import static edu.harvard.iq.dataverse.util.JsfHelper.JH;
import edu.harvard.iq.dataverse.util.SystemConfig;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
Expand Down Expand Up @@ -79,6 +83,9 @@ public class FilePage implements java.io.Serializable {
GuestbookResponseServiceBean guestbookResponseService;
@EJB
AuthenticationServiceBean authService;

@EJB
SystemConfig systemConfig;


@Inject
Expand Down Expand Up @@ -205,6 +212,32 @@ public String getVersion() {
public void setVersion(String version) {
this.version = version;
}

public List< String[]> getExporters(){
List<String[]> retList = new ArrayList();
String myHostURL = systemConfig.getDataverseSiteUrl();
for (String [] provider : ExportService.getInstance().getExportersLabels() ){
String formatName = provider[1];
String formatDisplayName = provider[0];

Exporter exporter = null;
try {
exporter = ExportService.getInstance().getExporter(formatName);
} catch (ExportException ex) {
exporter = null;
}
if (exporter != null && exporter.isAvailableToUsers()) {
// Not all metadata exports should be presented to the web users!
// Some are only for harvesting clients.

String[] temp = new String[2];
temp[0] = formatDisplayName;
temp[1] = myHostURL + "/api/datasets/export?exporter=" + formatName + "&persistentId=" + fileMetadata.getDatasetVersion().getDataset().getGlobalId();
retList.add(temp);
}
}
return retList;
}

public String restrictFile(boolean restricted){
String fileNames = null;
Expand Down
15 changes: 15 additions & 0 deletions src/main/webapp/file.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,21 @@
</h:outputLink>
</div>
<!-- END: Add + Edit Metadata Button -->
<!-- Download Button -->
<div class="btn-group" jsf:rendered="#{FilePage.fileMetadata.datasetVersion.dataset.released}" >
<button class="btn btn-default dropdown-toggle" type="button" styleClass="btn btn-default" data-toggle="dropdown">
<span class="glyphicon glyphicon-export"/> #{bundle['dataset.exportBtn']} <span class="caret"/></button>
<ul class="dropdown-menu" role="menu">
<ui:repeat var="exporter" value="#{FilePage.getExporters()}">
<li>
<h:outputLink value="#{exporter[1]}" target="_blank">
<h:outputText value="#{exporter[0]}"/>
</h:outputLink>
</li>
</ui:repeat>
</ul>
</div>
<!-- END: Add + Edit Metadata Button -->

<div class="panel panel-default">
<div data-toggle="collapse" data-target="#panelCollapseFMD" class="panel-heading text-info">
Expand Down

0 comments on commit 076d51a

Please sign in to comment.