Mercurial > hg > LGDataverses
diff src/main/webapp/permissions-manage.xhtml @ 10:a50cf11e5178
Rewrite LGDataverse completely upgrading to dataverse4.0
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Tue, 08 Sep 2015 17:00:21 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/permissions-manage.xhtml Tue Sep 08 17:00:21 2015 +0200 @@ -0,0 +1,227 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://java.sun.com/jsf/core" + xmlns:ui="http://java.sun.com/jsf/facelets" + xmlns:p="http://primefaces.org/ui" + xmlns:c="http://java.sun.com/jsp/jstl/core" + xmlns:iqbs="http://xmlns.jcp.org/jsf/composite/iqbs"> + + <h:head> + </h:head> + + <h:body> + <f:metadata> + <f:viewParam name="id" value="#{managePermissionsPage.dvObject.id}"/> + <f:viewAction action="#{managePermissionsPage.init}"/> + <f:viewAction action="#{dataverseHeaderFragment.initBreadcrumbs(managePermissionsPage.dvObject, (managePermissionsPage.dvObject.instanceofDataverse ? bundle['dataverse.permissions.title'] : bundle['dataverse.permissions.dataset.title']))}"/> + </f:metadata> + <ui:composition template="/dataverse_template.xhtml"> + <ui:param name="pageTitle" value="#{bundle['dataverse.permissions.title']} - #{managePermissionsPage.dvObject.displayName}"/> + <ui:param name="dataverse" value="#{managePermissionsPage.dvObject.dataverseContext}"/> + <ui:param name="dataset" value="#{managePermissionsPage.dvObject.instanceofDataset ? managePermissionsPage.dvObject : null}"/> + <ui:param name="version" value="#{managePermissionsPage.dvObject.instanceofDataset ? managePermissionsPage.dvObject.latestVersion : null}"/> + <ui:param name="showMessagePanel" value="false"/> + <ui:define name="body"> + <h:form id="rolesPermissionsForm" styleClass="margin-top"> + <div class="panel-group"> + <!-- Permissions Configure Panel --> + <p:fragment id="configureSettings"> + <c:if test="#{managePermissionsPage.dvObject.instanceofDataverse}"> + <div class="panel panel-default"> + <div data-toggle="collapse" data-target="#panelCollapsePermissions" class="panel-heading text-info"> + Permissions <span class="glyphicon glyphicon-chevron-up"/> + </div> + <div id="panelCollapsePermissions" class="collapse in"> + <div class="panel-body"> + <p:fragment id="configureMessages"> + <div class="messagePanel"> + <iqbs:messages collapsible="true" rendered="#{managePermissionsPage.renderConfigureMessages}"/> + </div> + </p:fragment> + <p:commandLink type="button" id="configureButton" styleClass="btn btn-default pull-right" + actionListener="#{managePermissionsPage.initAccessSettings}" + update="accessDialog" + oncomplete="accessForm.show();"> + <span class="glyphicon glyphicon-cog"/> #{bundle['dataverse.permissions.access.accessBtn']} + </p:commandLink> + <p class="help-block clearfix">#{bundle['dataverse.permissions.description']}</p> + <div> + <div class="form-group"> + <label for="accessRadios"> + #{bundle['dataverse.permissions.Q1']} + </label> + <div class="col-sm-offset-1"> + <p class="form-control-static"> + <h:outputText value="#{bundle['dataverse.permissions.Q1.answer1']}" rendered="#{empty managePermissionsPage.authenticatedUsersContributorRoleAlias}" /> + <h:outputText value="#{bundle['dataverse.permissions.Q1.answer2']}" rendered="#{managePermissionsPage.authenticatedUsersContributorRoleAlias eq 'dvContributor'}" /> + <h:outputText value="#{bundle['dataverse.permissions.Q1.answer3']}" rendered="#{managePermissionsPage.authenticatedUsersContributorRoleAlias eq 'dsContributor'}" /> + <h:outputText value="#{bundle['dataverse.permissions.Q1.answer4']}" rendered="#{managePermissionsPage.authenticatedUsersContributorRoleAlias eq 'fullContributor'}" /> + </p> + </div> + </div> + <div class="form-group"> + <label for="contributorRadios"> + #{bundle['dataverse.permissions.Q2']} + </label> + <div class="col-sm-offset-1"> + <p class="form-control-static"> + <ui:fragment rendered="#{managePermissionsPage.defaultContributorRoleAlias eq 'editor'}"> + #{bundle.editor} <span class="text-muted">#{bundle['dataverse.permissions.Q2.answer.editor.description']}</span> + </ui:fragment> + <ui:fragment rendered="#{managePermissionsPage.defaultContributorRoleAlias eq 'curator'}"> + #{bundle.curator} <span class="text-muted">#{bundle['dataverse.permissions.Q2.answer.curator.description']}</span> + </ui:fragment> + </p> + </div> + </div> + </div> + </div> + </div> + </div> + </c:if> + </p:fragment> + + <!-- Role Assignments Panel --> + <div class="panel panel-default"> + <div data-toggle="collapse" data-target="#panelCollapseUsersGroups" class="panel-heading text-info"> + #{bundle['dataverse.permissions.usersOrGroups']} <span class="glyphicon #{!managePermissionsPage.dvObject.instanceofDataverse ? 'glyphicon-chevron-up' : 'glyphicon-chevron-down'}"/> + </div> + <div id="panelCollapseUsersGroups" class="collapse #{!managePermissionsPage.dvObject.instanceofDataverse ? 'in' : ''}"> + <div class="panel-body"> + <p:fragment id="assignmentMessages"> + <div class="messagePanel"> + <iqbs:messages collapsible="true" rendered="#{managePermissionsPage.renderAssignmentMessages}"/> + </div> + </p:fragment> + <div class="button-block pull-right"> + <p:commandLink type="button" id="createGroup" styleClass="btn btn-default" + actionListener="#{managePermissionsPage.initExplicitGroupDialog}" + update="explicitGroupNewDialog" oncomplete="explicitGroupForm.show();handleResizeDialog('explicitGroupNewDialog');bind_bsui_components();"> + <span class="glyphicon glyphicon-plus-sign"/> #{bundle['dataverse.permissions.usersOrGroups.createGroupBtn']} + </p:commandLink> + <p:commandLink type="button" id="userGroupsAdd" styleClass="btn btn-default" + actionListener="#{managePermissionsPage.initAssigneeDialog}" + update="userGroupDialog" + oncomplete="userGroupsForm.show();handleResizeDialog('userGroupDialog');bind_bsui_components();"> + <span class="glyphicon glyphicon-user"/> #{bundle['dataverse.permissions.usersOrGroups.assignBtn']} + </p:commandLink> + </div> + <p class="help-block clearfix">#{bundle['dataverse.permissions.usersOrGroups.description']}</p> + <div> + <p:dataTable id="assignedRoles" var="roleAssignment" value="#{managePermissionsPage.roleAssignments}"> + <p:column width="35%" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.userOrGroup']}"> + <h:outputText value="#{roleAssignment.assigneeDisplayInfo.title}"/> + <h:outputText value=" (#{roleAssignment.assigneeDisplayInfo.affiliation})" rendered="#{!empty roleAssignment.assigneeDisplayInfo.affiliation}"/> + </p:column> + <p:column width="15%" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.id']}"> + <h:outputText value="#{roleAssignment.roleAssignment.assigneeIdentifier}"/> + </p:column> + <p:column width="20%" class="text-center" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.role']}"> + <h:outputText value="#{roleAssignment.roleName}"/> + </p:column> + <p:column width="30%" class="text-center" headerText="#{bundle['dataverse.permissions.usersOrGroups.tabHeader.action']}"> + <h:outputFormat styleClass="text-muted italic" value="#{bundle['dataverse.permissions.usersOrGroups.assignedAt']}" rendered="#{managePermissionsPage.dvObject ne roleAssignment.definitionPoint}"> + <f:param value="#{roleAssignment.assignedDvName}"/> + </h:outputFormat> + <p:commandLink type="button" styleClass="btn btn-default" + rendered="#{managePermissionsPage.dvObject eq roleAssignment.definitionPoint}" + onclick="confirmation.show()"> + <f:setPropertyActionListener value="#{roleAssignment.roleAssignment}" target="#{managePermissionsPage.selectedRoleAssignment}" /> + <span class="glyphicon glyphicon-remove"/> #{bundle['dataverse.permissions.usersOrGroups.removeBtn']} + </p:commandLink> + </p:column> + </p:dataTable> + </div> + </div> + </div> + </div> + + <!-- Roles Panel --> + <div class="panel panel-default"> + <div data-toggle="collapse" data-target="#panelCollapseRoles" class="panel-heading text-info"> + #{bundle['dataverse.permissions.roles']} <span class="glyphicon glyphicon-chevron-down"/> + </div> + <div id="panelCollapseRoles" class="collapse"> + <div class="panel-body"> + <p:fragment id="roleMessages"> + <div class="messagePanel"> + <iqbs:messages collapsible="true" rendered="#{managePermissionsPage.renderRoleMessages}"/> + </div> + </p:fragment> + <p:commandLink type="button" id="rolesAdd" styleClass="btn btn-default pull-right" + rendered="#{managePermissionsPage.dvObject.instanceofDataverse and permissionsWrapper.canManagePermissions(managePermissionsPage.dvObject) + and dataverseSession.user.superuser}" + actionListener="#{managePermissionsPage.createNewRole}" + oncomplete="roleForm.show();handleResizeDialog('rolesPermissionsDialog');bind_bsui_components();" + update=":#{p:component('editRolePanel')}"> + <span class="glyphicon glyphicon-plus"/> #{bundle['dataverse.permissions.roles.add']} + </p:commandLink> + <p class="help-block clearfix">#{bundle['dataverse.permissions.roles.description']}</p> + <p:fragment id="roleDisplay"> + <ui:repeat id="roleList" value="#{managePermissionsPage.availableRoles}" var="role"> + <f:passThroughAttribute name="class" value="list-unstyled" /> + <div class="form-group col-sm-12 #{!empty role.owner ? 'bg-info' : 'bg-warning'}"> + <span class="highlightBold">#{role.name}</span> + <h:outputText value=" - #{role.description}" rendered="#{!empty role.description}"/> + <p:commandLink title="#{bundle['dataverse.permissions.roles.edit']}" styleClass="icon-inline-action bootstrap-button-tooltip" + rendered="#{!empty role.owner and managePermissionsPage.dvObject.instanceofDataverse and permissionsWrapper.canManagePermissions(role.owner) + and dataverseSession.user.superuser}" + actionListener="#{managePermissionsPage.editRole(role.id)}" + oncomplete="roleForm.show();handleResizeDialog('rolesPermissionsDialog');" + update=":#{p:component('editRolePanel')}"><span class="glyphicon glyphicon-pencil"></span></p:commandLink> + <p:commandLink title="#{bundle['dataverse.permissions.roles.copy']}" styleClass="icon-inline-action bootstrap-button-tooltip" + rendered="#{managePermissionsPage.dvObject.instanceofDataverse and permissionsWrapper.canManagePermissions(managePermissionsPage.dvObject) + and dataverseSession.user.superuser}" + actionListener="#{managePermissionsPage.cloneRole(role.id)}" + oncomplete="roleForm.show();handleResizeDialog('rolesPermissionsDialog');" + update=":#{p:component('editRolePanel')}"><span class="glyphicon glyphicon-duplicate"></span></p:commandLink> + <div> + <ui:repeat value="#{role.permissions().toArray()}" var="prm"> + <span class="label label-default">#{prm}</span> + </ui:repeat> + </div> + </div> + </ui:repeat> + </p:fragment> + </div> + </div> + </div> + </div> + + <!-- Users/Groups Popup --> + <!-- Defined this way as we may reuse the include not in a popup --> + <p:dialog id="accessDialog" styleClass="largePopUp" header="#{bundle['dataverse.permissions.accessDialog.header']}" widgetVar="accessForm" modal="true"> + <ui:include src="permissions-configure.xhtml"/> + <div class="button-block"> + <p:commandLink type="button" styleClass="btn btn-default" value="#{bundle['saveChanges']}" + update=":#{p:component('configureSettings')} assignedRoles @([id$=Messages])" + actionListener="#{managePermissionsPage.saveConfiguration}" + oncomplete="accessForm.hide();"/> + <button type="button" class="btn btn-default" onclick="accessForm.hide()" value="Cancel">#{bundle.cancel}</button> + </div> + </p:dialog> + + <!-- Users/Groups Popup --> + <ui:include src="roles-assign.xhtml"/> + <!-- Roles Edit Popup --> + <ui:include src="roles-edit.xhtml"/> + <!-- Explicit Group Edit Popup --> + <ui:include src="explicitGroup-new-dialog.xhtml"/> + + <p:dialog header="#{bundle['dataverse.permissions.usersOrGroups.removeBtn']}" widgetVar="confirmation" modal="true"> + <p class="help-block"> + <span class="glyphicon glyphicon-warning-sign text-danger"/> <span class="text-danger">#{bundle['dataverse.permissions.usersOrGroups.removeBtn.confirmation']}</span> + </p> + <div class="button-block"> + <p:commandButton value="#{bundle.continue}" onclick="confirmation.hide()" + action="#{managePermissionsPage.removeRoleAssignment()}" + update=":#{p:component('configureSettings')} assignedRoles @([id$=Messages])" /> + <p:commandButton value="#{bundle.cancel}" onclick="confirmation.hide()" type="button" /> + </div> + </p:dialog> + </h:form> + </ui:define> + </ui:composition> + </h:body> +</html>
