Skip to content

Commit

Permalink
Merge pull request #7458 from IQSS/7406-access-requested-refresh
Browse files Browse the repository at this point in the history
7406 access requested refresh
  • Loading branch information
kcondon committed Dec 8, 2020
2 parents 0511c8a + cb6e958 commit 70b6dd2
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 68 deletions.
12 changes: 12 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/FileDownloadHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import edu.harvard.iq.dataverse.authorization.users.PrivateUrlUser;
import edu.harvard.iq.dataverse.externaltools.ExternalTool;
import edu.harvard.iq.dataverse.util.BundleUtil;
import edu.harvard.iq.dataverse.util.FileUtil;
import static edu.harvard.iq.dataverse.util.JsfHelper.JH;
import java.util.ArrayList;
import java.util.HashMap;
Expand Down Expand Up @@ -295,6 +296,17 @@ public void requestAccess(DataFile file){
//Called from download button fragment via either dataset page or file page
// when there's only one file for the access request and there's no pop-up
processRequestAccess(file, true);
}

public void handleCommandLinkClick(FileMetadata fmd){

if (FileUtil.isDownloadPopupRequired(fmd.getDatasetVersion())){
addFileForRequestAccess(fmd.getDataFile());
PrimeFaces.current().executeScript("PF('requestAccessPopup').show()");
} else {
requestAccess(fmd.getDataFile());
}

}

public void requestAccessMultiple(List<DataFile> files) {
Expand Down
50 changes: 31 additions & 19 deletions src/main/webapp/file-download-button-fragment.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -177,28 +177,40 @@
<!-- Request Access Options -->
<ui:fragment rendered="#{!fileMetadata.datasetVersion.deaccessioned and !fileDownloadHelper.canDownloadFile(fileMetadata)
and fileMetadata.dataFile.owner.fileAccessRequest}">
<li class="#{fileMetadata.dataFile.fileAccessRequesters.contains(dataverseSession.user) ? 'disabled' : ''}">
<p:commandLink styleClass="btn-request" rendered="#{fileDownloadHelper.session.user.authenticated
and !requestAccessPopupRequired}"
process="@this"
actionListener="#{fileDownloadHelper.requestAccess(fileMetadata.dataFile)}"
update="@this"
disabled="#{fileMetadata.dataFile.fileAccessRequesters.contains(dataverseSession.user)}">
#{fileMetadata.dataFile.fileAccessRequesters.contains(dataverseSession.user) ? bundle['file.accessRequested'] : bundle['file.requestAccess']}
</p:commandLink>
<p:commandLink styleClass="btn-request" rendered="#{fileDownloadHelper.session.user.authenticated
and requestAccessPopupRequired}"
process="@this"
actionListener="#{fileDownloadHelper.addFileForRequestAccess(fileMetadata.dataFile)}"
onclick="PF('requestAccessPopup').show()"
id="requestAccessPopupLink"
<li class="dropdown-header">#{bundle['file.accessBtn.header.download']} <span class="glyphicon glyphicon-download-alt"/></li>

<style type="text/css">
div[id$="requestPanel"].iq-dropdown-list-item {display:list-item !important;}
div[id$="requestPanel"].iq-dropdown-list-item>a.ui-commandlink{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}
div[id$="requestPanel"].iq-dropdown-list-item>a.ui-commandlink:focus,
div[id$="requestPanel"].iq-dropdown-list-item>a.ui-commandlink:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}
div[id$="requestPanel"].iq-dropdown-list-item>a.ui-commandlink.active,
div[id$="requestPanel"].iq-dropdown-list-item>a.ui-commandlink.active:focus,
div[id$="requestPanel"].iq-dropdown-list-item>a.ui-commandlink.active:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}

div[id$="requestPanel"].iq-dropdown-list-item.disabled>span.ui-commandlink.ui-state-disabled{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;white-space:nowrap}
div[id$="requestPanel"].iq-dropdown-list-item.disabled>span.ui-commandlink.ui-state-disabled,
div[id$="requestPanel"].iq-dropdown-list-item.disabled>span.ui-commandlink.ui-state-disabled:focus,
div[id$="requestPanel"].iq-dropdown-list-item.disabled>span.ui-commandlink.ui-state-disabled:hover{background-color:transparent;color:#777;}
div[id$="requestPanel"].iq-dropdown-list-item.disabled>span.ui-commandlink.ui-state-disabled:focus,
div[id$="requestPanel"].iq-dropdown-list-item.disabled>span.ui-commandlink.ui-state-disabled:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}
div[id$="requestPanel"].iq-dropdown-list-item.disabled{cursor:not-allowed;}
div[id$="requestPanel"].iq-dropdown-list-item.disabled>span.ui-commandlink.ui-state-disabled{pointer-events:none;}
</style>

<p:outputPanel id="requestPanel" styleClass="iq-dropdown-list-item #{fileMetadata.dataFile.fileAccessRequesters.contains(dataverseSession.user) ? 'disabled' : ''}"
rendered="#{fileDownloadHelper.session.user.authenticated}">
<p:commandLink styleClass="btn-request"
actionListener="#{fileDownloadHelper.handleCommandLinkClick(fileMetadata)}"
update="@([id$=requestAccessConsolidated]), @([id$=requestPanel])"
id="requestAccessConsolidated"
disabled="#{fileMetadata.dataFile.fileAccessRequesters.contains(dataverseSession.user)}">

<!-- TODO fix disabled styling span vs a -->

#{fileMetadata.dataFile.fileAccessRequesters.contains(dataverseSession.user) ? bundle['file.accessRequested'] : bundle['file.requestAccess']}
</p:commandLink>
<p:commandLink styleClass="btn-request" rendered="#{!fileDownloadHelper.session.user.authenticated }"
</p:outputPanel>

<li jsf:rendered="#{!fileDownloadHelper.session.user.authenticated}">
<p:commandLink styleClass="btn-request"
process="@this"
onclick="PF('accessSignUpLogIn_popup').show()">
#{bundle['file.requestAccess']}
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/file-request-access-popup-fragment.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
<div class="button-block">
<p:commandButton styleClass="btn btn-default" value="#{bundle.acceptTerms}"
action="#{fileDownloadHelper.requestAccessIndirect()}"
update="@([id$=requestAccessPopupButton])" oncomplete="PF('requestAccessPopup').hide();">
update="@([id$=requestAccessConsolidated]), @([id$=requestPanel])" oncomplete="PF('requestAccessPopup').hide();">
</p:commandButton>
<button class="btn btn-link" onclick="PF('requestAccessPopup').hide();PF('blockDatasetForm').hide();" type="button">
#{bundle.cancel}
Expand Down
92 changes: 44 additions & 48 deletions src/main/webapp/filesFragment.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -575,38 +575,36 @@
</span>
</div>
<!-- END: FILE LEVEL MSGs -->

<div class="btn-group" role="group" aria-label="#{bundle['file.actionsBlock']}">
<div class="btn-group" role="group" aria-label="#{bundle['file.actionsBlock']}" jsf:rendered="#{showAccessFileButtonGroup}">
<!-- Access File - Download, Explore, Compute -->
<div class="btn-group" rendered="#{showAccessFileButtonGroup}">
<div class="btn-group" jsf:rendered="#{showAccessFileButtonGroup}">

<!-- TO-DO FIX RSYNC LOGIC !fileMetadata.dataFile.filePackage or
fileMetadata.dataFile.filePackage and systemConfig.HTTPDownload -->

<ui:fragment rendered="#{DatasetPage.isShowPreviewButton(fileMetadata.dataFile.id) and not fileMetadata.restricted}">
<a class="btn-preview btn btn-link bootstrap-button-tooltip" title="#{bundle.preview}"
href="#{widgetWrapper.wrapURL('/file.xhtml?'.concat(!empty fileMetadata.dataFile.globalIdString ? 'persistentId=' : 'fileId=').concat(!empty fileMetadata.dataFile.globalIdString ? fileMetadata.dataFile.globalIdString : fileMetadata.dataFile.id).concat('&amp;version=').concat(fileMetadata.datasetVersion.friendlyVersionNumber))}">
<span class="glyphicon glyphicon-eye-open"/><span class="sr-only">#{bundle.preview}</span>
</a>
</ui:fragment>
<a type="button" class="btn-access-file btn btn-link bootstrap-button-tooltip dropdown-toggle"
<ui:fragment rendered="#{DatasetPage.isShowPreviewButton(fileMetadata.dataFile.id) and not fileMetadata.restricted}">
<a class="btn-preview btn btn-link bootstrap-button-tooltip" title="#{bundle.preview}"
href="#{widgetWrapper.wrapURL('/file.xhtml?'.concat(!empty fileMetadata.dataFile.globalIdString ? 'persistentId=' : 'fileId=').concat(!empty fileMetadata.dataFile.globalIdString ? fileMetadata.dataFile.globalIdString : fileMetadata.dataFile.id).concat('&amp;version=').concat(fileMetadata.datasetVersion.friendlyVersionNumber))}">
<span class="glyphicon glyphicon-eye-open"/><span class="sr-only">#{bundle.preview}</span>
</a>
</ui:fragment>
<a type="button" style="padding:6px 8px;" class="btn-access-file btn btn-link bootstrap-button-tooltip dropdown-toggle"
title="#{bundle['file.accessBtn']}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-download-alt"/><span class="sr-only">#{bundle['file.accessBtn']}</span><span class="caret"></span>
</a>
<ul class="dropdown-menu pull-right text-left">
<!-- Explore/Download/Request Button Block -->
<ui:fragment rendered="#{true}">
<ui:include src="file-download-button-fragment.xhtml">
<ui:param name="fileMetadata" value="#{fileMetadata}"/>
<ui:param name="downloadPopupRequired" value="#{DatasetPage.downloadPopupRequired}"/>
<ui:param name="requestAccessPopupRequired" value="#{DatasetPage.requestAccessPopupRequired}"/>
<ui:param name="guestbookResponse" value="#{DatasetPage.guestbookResponse}"/>
<ui:param name="guestbookResponseService" value="#{DatasetPage.guestbookResponseService}"/>
<ui:param name="fileDownloadService" value="#{DatasetPage.fileDownloadService}"/>
<ui:param name="lockedFromDownload" value="#{DatasetPage.lockedFromDownload}"/>
<ui:param name="exploreTools" value="#{DatasetPage.getExploreToolsForDataFile(fileMetadata.dataFile.id)}"/>
</ui:include>
</ui:fragment>
<ui:include src="file-download-button-fragment.xhtml">
<ui:param name="fileMetadata" value="#{fileMetadata}"/>
<ui:param name="downloadPopupRequired" value="#{DatasetPage.downloadPopupRequired}"/>
<ui:param name="requestAccessPopupRequired" value="#{DatasetPage.requestAccessPopupRequired}"/>
<ui:param name="guestbookResponse" value="#{DatasetPage.guestbookResponse}"/>
<ui:param name="guestbookResponseService" value="#{DatasetPage.guestbookResponseService}"/>
<ui:param name="fileDownloadService" value="#{DatasetPage.fileDownloadService}"/>
<ui:param name="lockedFromDownload" value="#{DatasetPage.lockedFromDownload}"/>
<ui:param name="exploreTools" value="#{DatasetPage.getExploreToolsForDataFile(fileMetadata.dataFile.id)}"/>
</ui:include>
<!-- END: Explore/Download/Request Button Block -->

<!-- Data Access for Rsync Download -->
Expand All @@ -625,32 +623,30 @@

<!-- TO-DO NEW FILE OPTIONS RENDER LOGIC -->
<!-- File Options -->
<ui:fragment rendered="#{!widgetWrapper.widgetView
and DatasetPage.sessionUserAuthenticated
and DatasetPage.canUpdateDataset()}">
<div class="btn-group">
<!-- Kebab / Edit / File Options Dropdown -->
<a type="button" class="btn-file-options btn btn-link bootstrap-button-tooltip dropdown-toggle #{DatasetPage.lockedFromEdits ? 'disabled' : ''}"
disabled="#{DatasetPage.lockedFromEdits ? 'disabled' : ''}"
title="#{bundle['file.optionsBtn']}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-option-vertical"/><span class="sr-only">#{bundle['file.optionsBtn']}</span><span class="caret"></span>
</a>
<ul class="dropdown-menu multi-level pull-right text-left">
<li class="dropdown-header">#{bundle['file.optionsBtn.header.edit']} <span class="glyphicon glyphicon-pencil"/></li>
<!-- TO-DO NEW FILE-LEVEL EDIT OPTIONS... RENDER LOGIC, LINKS, DISABLED LOGIC -->
<!-- Edit Options -->
<ui:include src="file-edit-button-fragment.xhtml">
<ui:param name="fileMetadata" value="#{fileMetadata}"/>
<ui:param name="fileMetadataForAction" value="#{DatasetPage.fileMetadataForAction}"/>
<ui:param name="isDraftReplacementFile" value="#{false}"/>
<ui:param name="hasPackageFile" value="#{fileMetadata.dataFile.filePackage}"/>
<ui:param name="configureTools" value="#{DatasetPage.getConfigureToolsForDataFile(fileMetadata.dataFile.id)}"/>
<ui:param name="bean" value="#{DatasetPage}"/>
<ui:param name="unrestrictFileAction" value="restrictFiles"/>
</ui:include>
</ul>
</div>
</ui:fragment>
<div class="btn-group" jsf:rendered="#{!widgetWrapper.widgetView
and DatasetPage.sessionUserAuthenticated
and DatasetPage.canUpdateDataset()}">
<!-- Kebab / Edit / File Options Dropdown -->
<a type="button" style="padding:6px 8px;" class="btn-file-options btn btn-link bootstrap-button-tooltip dropdown-toggle #{DatasetPage.lockedFromEdits ? 'disabled' : ''}"
disabled="#{DatasetPage.lockedFromEdits ? 'disabled' : ''}"
title="#{bundle['file.optionsBtn']}" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="glyphicon glyphicon-option-vertical"/><span class="sr-only">#{bundle['file.optionsBtn']}</span><span class="caret"></span>
</a>
<ul class="dropdown-menu multi-level pull-right text-left">
<li class="dropdown-header">#{bundle['file.optionsBtn.header.edit']} <span class="glyphicon glyphicon-pencil"/></li>
<!-- TO-DO NEW FILE-LEVEL EDIT OPTIONS... RENDER LOGIC, LINKS, DISABLED LOGIC -->
<!-- Edit Options -->
<ui:include src="file-edit-button-fragment.xhtml">
<ui:param name="fileMetadata" value="#{fileMetadata}"/>
<ui:param name="fileMetadataForAction" value="#{DatasetPage.fileMetadataForAction}"/>
<ui:param name="isDraftReplacementFile" value="#{false}"/>
<ui:param name="hasPackageFile" value="#{fileMetadata.dataFile.filePackage}"/>
<ui:param name="configureTools" value="#{DatasetPage.getConfigureToolsForDataFile(fileMetadata.dataFile.id)}"/>
<ui:param name="bean" value="#{DatasetPage}"/>
<ui:param name="unrestrictFileAction" value="restrictFiles"/>
</ui:include>
</ul>
</div>
<!-- END: File Options -->

</div>
Expand Down

0 comments on commit 70b6dd2

Please sign in to comment.