converted permission edit to dialog based

and simplified implemenation
This commit is contained in:
2018-11-10 16:49:05 +01:00
parent 17c080faa2
commit 634b51b051
3 changed files with 107 additions and 104 deletions

View File

@ -24,7 +24,6 @@ import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped; import javax.enterprise.context.SessionScoped;
import javax.inject.Named; import javax.inject.Named;
import javax.validation.constraints.Size;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -41,42 +40,45 @@ public class PermissionView implements Serializable {
@EJB @EJB
ApplicationPermissionControl applicationPermissionService; ApplicationPermissionControl applicationPermissionService;
@Size(max = 80)
private String newPermissionName;
@Size(max = 200)
private String newPermissionDescription;
private ApplicationPermissionEntity currentPermission; private ApplicationPermissionEntity currentPermission;
// flag if a permission is selected - used to control button state
private boolean permissionSelected;
public List<ApplicationPermissionEntity> getAppPermissions() { public List<ApplicationPermissionEntity> getAppPermissions() {
return applicationPermissionService.getApplicationPermissions(); return applicationPermissionService.getApplicationPermissions();
} }
public void savePermission() { public void saveEditPermission() throws AccountException {
if (currentPermission != null) {
String newPermissionName = currentPermission.getPermissionName();
String newPermissionDescription = currentPermission.getPermissionDescription();
if ((newPermissionName == null) || (newPermissionName.trim().length() == 0)) { if ((newPermissionName == null) || (newPermissionName.trim().length() == 0)) {
FacesUtil.addGlobalErrorMessage("Error", "Permission name must not be null"); FacesUtil.addErrorMessage("editDialogMessages", "Error", "Permission name must not be null");
} else if ((newPermissionDescription == null) || (newPermissionDescription.trim().length() == 0)) { } else if ((newPermissionDescription == null) || (newPermissionDescription.trim().length() == 0)) {
FacesUtil.addGlobalErrorMessage("Error", "Permission name must not be null"); FacesUtil.addErrorMessage("editDialogMessages", "Error", "Permission name must not be null");
} else { } else {
applicationPermissionService.createOrUpdate(newPermissionName, newPermissionDescription); if (currentPermission.getId() == null) {
FacesUtil.addGlobalInfoMessage("Pemissin updated", "Permission "+newPermissionName+" updated"); applicationPermissionService.create(newPermissionName, newPermissionName);
newPermissionName = null; FacesUtil.addGlobalInfoMessage("Info", "Permission " + newPermissionName + " created");
newPermissionDescription = null; // deselectPermission();
deselectPermission(); } else {
applicationPermissionService.update(currentPermission);
FacesUtil.addGlobalInfoMessage("Info", "Permission " + newPermissionName + " updated");
// deselectPermission();
} }
} }
}
}
public void cancelEditPermission() {
this.currentPermission = null;
}
public void newPermission() {
this.currentPermission = new ApplicationPermissionEntity();
}
public void editPermission() { public void editPermission() {
if (currentPermission == null) { if (currentPermission == null) {
FacesUtil.addGlobalErrorMessage("Error", "Please select a permission to edit"); FacesUtil.addGlobalErrorMessage("Error", "Please select a permission to edit");
} else {
newPermissionName = currentPermission.getPermissionName();
newPermissionDescription = currentPermission.getPermissionDescription();
} }
} }
@ -98,16 +100,13 @@ public class PermissionView implements Serializable {
} }
} }
public void selectPermission() { // public void selectPermission() {
this.permissionSelected = true; // this.permissionSelected = true;
} // }
//
public void deselectPermission() { // public void deselectPermission() {
this.permissionSelected = false; // this.permissionSelected = false;
this.newPermissionName = null; // }
this.newPermissionDescription = null;
}
public boolean getCanEdit() { public boolean getCanEdit() {
if (!isPermissionSelected()) { if (!isPermissionSelected()) {
@ -117,13 +116,7 @@ public class PermissionView implements Serializable {
} }
public boolean getCanDelete() { public boolean getCanDelete() {
if (!isPermissionSelected()) { return isPermissionSelected();
return false;
}
if (newPermissionName == null) {
return true;
}
return false;
} }
/* *** getter / setter *** */ /* *** getter / setter *** */
@ -132,36 +125,16 @@ public class PermissionView implements Serializable {
} }
public void setCurrentPermission(ApplicationPermissionEntity newCurrentPermission) { public void setCurrentPermission(ApplicationPermissionEntity newCurrentPermission) {
if ((currentPermission == null) || (newCurrentPermission == null) || (!currentPermission.equals(newCurrentPermission))) {
this.newPermissionName = null;
this.newPermissionDescription = null;
}
this.currentPermission = newCurrentPermission; this.currentPermission = newCurrentPermission;
} }
public String getNewPermissionName() {
return newPermissionName;
}
public void setNewPermissionName(String newPermissionName) {
this.newPermissionName = newPermissionName;
}
public String getNewPermissionDescription() {
return newPermissionDescription;
}
public void setNewPermissionDescription(String newPermissionDescription) {
this.newPermissionDescription = newPermissionDescription;
}
public boolean isPermissionSelected() { public boolean isPermissionSelected() {
return permissionSelected; return currentPermission != null;
} }
public void setPermissionSelected(boolean permissionSelected) { // public void setPermissionSelected(boolean permissionSelected) {
this.permissionSelected = permissionSelected; // this.permissionSelected = permissionSelected;
} // }
} }

View File

@ -50,8 +50,6 @@ roles.unauthorizedUrl = /error/accessDenied.xhtml
/resources/**=anon /resources/**=anon
/fonts/**=anon /fonts/**=anon
/javax.faces.resource/**=anon /javax.faces.resource/**=anon
/=anon
/index.html=anon
/login.xhtml=authc /login.xhtml=authc
/logout.xhtml=logout /logout.xhtml=logout
/web/**=authc /web/**=authc

View File

@ -14,45 +14,16 @@
</ui:define> </ui:define>
<ui:define name="description"> <ui:define name="description">
Edit permissions for #{applicationView.currentApplication.applicationName}
</ui:define> </ui:define>
<ui:define name="body"> <ui:define name="body">
<h:form id="permissionForm"> <h:form id="permissionForm">
<p:panel styleClass="card no-border">
<div class="ui-g ui-fluid">
<div class="ui-g-12 ui-md-3">
<div class="ui-inputgroup">
<span class="ui-inputgroup-addon"><i style="font-size: 20px" class="fa fa-edit"></i></span>
<p:inputText id="newName" value="#{permissionView.newPermissionName}" maxlength="80" size="30" placeholder="#{msgs.label_name}" />
</div>
</div>
<div class="ui-g-12 ui-md-3">
<div class="ui-inputgroup">
<span class="ui-inputgroup-addon"><i style="font-size: 20px" class="fa fa-edit"></i></span>
<p:inputText id="newDescription" value="#{permissionView.newPermissionDescription}" maxlength="200" size="30" placeholder="#{msgs.label_description}" />
</div>
</div>
<div class="ui-g-12 ui-md-2">
<p:commandButton icon="fa fa-fw fa-save" value="#{msgs.button_save}" action="#{permissionView.savePermission}"
update="permissionForm" styleClass="btn-primary btn-block" />
</div>
<div class="ui-g-12 ui-md-2">
<p:commandButton id="editPermissionButton" icon="fa fa-fw fa-pencil" value="#{msgs.button_edit}" action="#{permissionView.editPermission}"
update="permissionForm" styleClass="btn-teal btn-block" disabled="#{!permissionView.canEdit}" />
</div>
<div class="ui-g-12 ui-md-2">
<p:commandButton id="deletePermissionButton" icon="fa fa-fw fa-trash-o" value="#{msgs.button_delete}" action="#{permissionView.deletePermission}"
update="permissionForm" styleClass="btn-danger btn-block" disabled="#{!permissionView.canDelete}">
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-fw fa-exclamation-triangle" />
</p:commandButton>
</div>
</div>
<p:dataTable id="permissionTable" value="#{permissionView.appPermissions}" var="permission" rowKey="#{permission.id}" <p:dataTable id="permissionTable" value="#{permissionView.appPermissions}" var="permission" rowKey="#{permission.id}"
selectionMode="single" selection="#{permissionView.currentPermission}" styleClass="box-primary"> selectionMode="single" selection="#{permissionView.currentPermission}" styleClass="box-primary">
<p:ajax event="rowSelect" update=":permissionForm" listener="#{permissionView.selectPermission}" /> <p:ajax event="rowSelect" update=":permissionForm:permissionTable:editPermissionButton,:permissionForm:permissionTable:deletePermissionButton" />
<p:ajax event="rowUnselect" update=":permissionForm" listener="#{permissionView.deselectPermission}" /> <p:ajax event="rowUnselect" update=":permissionForm:permissionTable:editPermissionButton,:permissionForm:permissionTable:deletePermissionButton" />
<p:column headerText="Permission name"> <p:column headerText="Permission name">
<h:outputText value="#{permission.permissionName}" /> <h:outputText value="#{permission.permissionName}" />
@ -60,13 +31,74 @@
<p:column headerText="Permission description"> <p:column headerText="Permission description">
<h:outputText value="#{permission.permissionDescription}" /> <h:outputText value="#{permission.permissionDescription}" />
</p:column> </p:column>
<f:facet name="footer">
<div class="ui-g-12 ui-md-2">
<p:commandButton id="newPermissionButton" icon="fa fa-plus" value="#{msgs.button_new}" action="#{permissionView.newPermission}"
oncomplete="PF('editDialogVar').show();" update="editDialog" styleClass="btn-primary btn-block" />
</div>
<div class="ui-g-12 ui-md-2">
<p:commandButton id="editPermissionButton" icon="fa fa-pencil" value="#{msgs.button_edit}" action="#{permissionView.editPermission}"
oncomplete="PF('editDialogVar').show();" update="editDialog" styleClass="btn-teal btn-block" disabled="#{!permissionView.canEdit}" />
</div>
<div class="ui-g-12 ui-md-2">
<p:commandButton id="deletePermissionButton" icon="fa fa-trash-o" value="#{msgs.button_delete}" actionListener="#{permissionView.deletePermission}"
update="permissionForm" styleClass="btn-danger btn-block" disabled="#{!permissionView.canDelete}">
<p:confirm header="Confirmation" message="Are you sure?" icon="fa fa-fw fa-exclamation-triangle" />
</p:commandButton>
</div>
</f:facet>
</p:dataTable> </p:dataTable>
<composite:confirmationDialog /> <composite:confirmationDialog />
</p:panel>
</h:form> </h:form>
<p:dialog id="editDialog" widgetVar="editDialogVar" header="Edit permission" width="600"
modal="true" appendTo="@(body)" showEffect="fade" hideEffect="fade" styleClass="box-solid box-primary" >
<h:form id="editDialogForm">
<p:messages id="editDialogMessages" showDetail="true" showIcon="true" showSummary="true">
<p:autoUpdate />
</p:messages>
<div class="ui-g ui-fluid">
<div class="ui-g-12 ui-md-3">
<div class="ui-inputgroup">
<span class="ui-inputgroup-addon"><i style="font-size: 20px" class="fa fa-edit"></i></span>
<p:inputText id="newName" value="#{permissionView.currentPermission.permissionName}" maxlength="80" size="30" placeholder="#{msgs.label_name}" />
</div>
</div>
<div class="col-sm-12 col-md-9">
<p:message for="newName"><p:autoUpdate /></p:message>
</div>
<div class="ui-g-12 ui-md-3">
<div class="ui-inputgroup">
<span class="ui-inputgroup-addon"><i style="font-size: 20px" class="fa fa-edit"></i></span>
<p:inputText id="newDescription" value="#{permissionView.currentPermission.permissionDescription}" maxlength="200" size="30" placeholder="#{msgs.label_description}" />
</div>
</div>
<div class="col-sm-12 col-md-9">
<p:message for="newDescription"><p:autoUpdate /></p:message>
</div>
<div class="col-sm-12 col-md-6">
<p:spacer height="10px" />
<p:commandButton value="Save" action="#{permissionView.saveEditPermission}" styleClass="btn-primary btn-block"
oncomplete="if (args &amp;&amp; !args.validationFailed) PF('editDialogVar').hide();" update=":permissionForm:permissionTable" />
</div>
<div class="col-sm-12 col-md-6">
<p:spacer height="10px" />
<p:commandButton value="Cancel" action="#{permissionView.cancelEditPermission}" immediate="true" styleClass="btn-teal btn-block"
oncomplete="PF('editDialogVar').hide();" />
</div>
</div>
</h:form>
</p:dialog>
</ui:define> </ui:define>