Mercurial > hg > ismi-richfaces
changeset 190:b36a57a452a6
new Clean UI to find non-public references and witnesses and make them public.
author | Robert Casties <casties@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 09 Nov 2018 15:13:32 +0100 |
parents | 8aff920ec7c0 |
children | fb7cf0b3d775 |
files | src/main/java/de/mpiwg/itgroup/ismi/browse/FullEntityRepositoryBean.java src/main/java/de/mpiwg/itgroup/ismi/merge/NonpublicEntitiesBean.java src/main/webapp/clean/components/nonpublicDigitalization.xhtml src/main/webapp/clean/components/nonpublicReference.xhtml src/main/webapp/clean/components/nonpublicWitness.xhtml src/main/webapp/clean/nonpublicEntities.xhtml |
diffstat | 6 files changed, 430 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/ismi/browse/FullEntityRepositoryBean.java Thu Nov 08 20:15:02 2018 +0100 +++ b/src/main/java/de/mpiwg/itgroup/ismi/browse/FullEntityRepositoryBean.java Fri Nov 09 15:13:32 2018 +0100 @@ -201,7 +201,7 @@ entity = getWrapper().getEntityContent(entity); } boolean condFailed = false; - for (RelationFilter filter :relationFilters) { + for (RelationFilter filter : relationFilters) { if (filter.tarObjectClass != null) { List<Relation> rels = entity.getSourceRelations(filter.relObjectClass, filter.tarObjectClass); if (filter.relationMissing) {
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/NonpublicEntitiesBean.java Thu Nov 08 20:15:02 2018 +0100 +++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/NonpublicEntitiesBean.java Fri Nov 09 15:13:32 2018 +0100 @@ -32,12 +32,15 @@ } public synchronized void reset(){ - logger.info("MissingRelationsBean.reset()"); + logger.info("NonpublicEntitiesBean.reset()"); browseBean = new FullEntityRepositoryBean(); - logger.info("MissingRelationsBean.reset() Done."); + logger.info("NonpublicEntitiesBean.reset() Done."); } + /** + * Find non-public DIGITALIZATIONs of public CODEXs. + */ public void actionFindNonpublicDigitalizations() { logger.debug("Start findNonpublicDigitalizations..."); List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); @@ -77,12 +80,12 @@ } /** - * Makes the selected digitalizations public. - * Uses PrivacityUtils.setTextAndMorePrivacity(). + * Makes the selected Entities public. + * Uses PrivacityUtils.changeEntityPrivacity(). * @return */ - public String actionMakeDigitalizationsPublic() { - logger.info("MAKE DIGITALIZATIONS PUBLIC"); + public String actionMakeSelectedEntitiesPublic() { + logger.info("MAKE SELECTED ENTITIES PUBLIC"); List<String> textMsg = new ArrayList<String>(); try { List<Entity> entities = browseBean.getEntities(); @@ -100,10 +103,92 @@ this.addGeneralMsg(msg); logger.debug(msg); } - addGeneralMsg(browseBean.getEntities().size() + " DIGITALIZATIONS were made public!"); + addGeneralMsg(browseBean.getEntities().size() + " Entities were made public!"); return null; } + /** + * Find non-public REFERENCEs of public Entities. + */ + public void actionFindNonpublicReferences() { + logger.debug("Start findNonpublicReferences..."); + List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); + /* + * find REFERENCE is_reference_of * relations + */ + browseBean = new FullEntityRepositoryBean(); + browseBean.setObjectClass(REFERENCE); + RelationFilter relFilter = new RelationFilter(); + relFilter.relObjectClass = "is_reference_of"; + relFilter.tarObjectClass = "*"; + relFilters.add(relFilter); + try { + // search all References + browseBean.searchByRelations(relFilters); + // filter out non-public REFERENCEs of public Entities + List<Entity> entities = browseBean.getEntities(); + List<Entity> nonpublicEntities = new ArrayList<Entity>(); + for (Entity ent : entities) { + if (!ent.getIsPublic()) { + List<Relation> rels = ent.getSourceRelations("is_reference_of", "*"); + for (Relation rel : rels) { + Entity tar = getWrapper().getEntityById(rel.getTargetId()); + if (tar.getIsPublic()) { + nonpublicEntities.add(ent); + break; + } + } + } + } + browseBean.updateEntities(nonpublicEntities); + + } catch (Exception e) { + logger.error(e); + } + logger.debug("Done findNonpublicReferences."); + } + + /** + * Find non-public WITNESSes of public TEXTs. + */ + public void actionFindNonpublicWitnesses() { + logger.debug("Start findNonpublicWitnesses..."); + List<RelationFilter> relFilters = new ArrayList<RelationFilter>(); + /* + * find WITNESS is_exemplar_of TEXT relation + */ + browseBean = new FullEntityRepositoryBean(); + browseBean.setObjectClass(WITNESS); + RelationFilter relFilter = new RelationFilter(); + relFilter.relObjectClass = "is_exemplar_of"; + relFilter.tarObjectClass = "TEXT"; + relFilters.add(relFilter); + try { + // search all Witnesses + browseBean.searchByRelations(relFilters); + // filter out non-public Witnesses of public CODEXs + List<Entity> entities = browseBean.getEntities(); + List<Entity> nonpublicEntities = new ArrayList<Entity>(); + for (Entity ent : entities) { + if (!ent.getIsPublic()) { + List<Relation> rels = ent.getSourceRelations("is_exemplar_of", TEXT); + for (Relation rel : rels) { + Entity tar = getWrapper().getEntityById(rel.getTargetId()); + if (tar.getIsPublic()) { + nonpublicEntities.add(ent); + break; + } + } + } + } + browseBean.updateEntities(nonpublicEntities); + + } catch (Exception e) { + logger.error(e); + } + logger.debug("Done findNonpublicWitnesses."); + } + public EntityRepositoryBean getBrowseBean() { return browseBean;
--- a/src/main/webapp/clean/components/nonpublicDigitalization.xhtml Thu Nov 08 20:15:02 2018 +0100 +++ b/src/main/webapp/clean/components/nonpublicDigitalization.xhtml Fri Nov 09 15:13:32 2018 +0100 @@ -20,12 +20,6 @@ <h:outputText/> <h:outputText/> - <a4j:commandButton value="make all these digitalizations public" - actionListener="#{Session.nonpublicEntities.actionMakeDigitalizationsPublic}" - render="showDigiPanel" /> - <h:outputText/> - <h:outputText/> - </h:panelGrid> <h:panelGrid id="showDigiPanel" columns="1" @@ -149,6 +143,17 @@ </h:panelGrid> + <h:panelGrid columns="3" styleClass="displayPanel" + columnClasses="displayPanelColumn01,displayPanelColumn02"> + + <a4j:commandButton value="make all these digitalizations public" + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}" + actionListener="#{Session.nonpublicEntities.actionMakeSelectedEntitiesPublic}" + render="showDigiPanel" /> + <h:outputText/> + <h:outputText/> + + </h:panelGrid> </ui:composition>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/clean/components/nonpublicReference.xhtml Fri Nov 09 15:13:32 2018 +0100 @@ -0,0 +1,162 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<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:a4j="http://richfaces.org/a4j" + xmlns:rich="http://richfaces.org/rich"> + +<body> + <ui:composition> + + <h2 style="color:black">non-public References of public Entities</h2> + + <h:panelGrid columns="3" styleClass="displayPanel" + columnClasses="displayPanelColumn01,displayPanelColumn02"> + + <a4j:commandButton value="show non-public references" + actionListener="#{Session.nonpublicEntities.actionFindNonpublicReferences}" + render="showRefPanel" /> + <h:outputText/> + <h:outputText/> + + </h:panelGrid> + + <h:panelGrid id="showRefPanel" columns="1" + style="margin-left: auto; margin-right: auto; text-align: center; width: 100%;"> + + <h:outputText + value="#{Session.nonpublicEntities.browseBean.resultSummaryMsg}" + rendered="#{!empty Session.nonpublicEntities.browseBean.resultSummaryMsg}" + styleClass="summaryMsg" /> + + <h:column + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}"> + <h:outputText value="go to page" styleClass="sumaryMsg" /> + <h:inputText value="#{Session.nonpublicEntities.browseBean.page}" + size="4" /> + <h:commandButton value="submit" + actionListener="#{Session.nonpublicEntities.browseBean.actionGoToPageAdvancedResult}" /> + <h:outputText value=" #{Session.nonpublicEntities.browseBean.pageMsg}" + rendered="#{!empty Session.nonpublicEntities.browseBean.pageMsg}" + style="color:red" /> + </h:column> + + + <h:column + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}"> + <h:panelGroup> + <h:commandButton + image="/resources/css/xp/css-images/arrow-first.gif" + style="border:none;" title="First Page" + action="#{Session.nonpublicEntities.browseBean.advancedFirst}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif" + style="border:none;" title="Fast Backwards" + action="#{Session.nonpublicEntities.browseBean.advancedFastRewind}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-previous.gif" + style="border:none;" title="Previous Page" + action="#{Session.nonpublicEntities.browseBean.advancedPrevious}" /> + + <h:outputText + value="#{Session.nonpublicEntities.browseBean.advancedPaginator.recordStatus}" + styleClass="sumaryMsg" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-next.gif" + style="border:none;" title="Next Page" + action="#{Session.nonpublicEntities.browseBean.advancedNext}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif" + style="border:none;" title="Fast Forward" + action="#{Session.nonpublicEntities.browseBean.advancedFastForward}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-last.gif" + style="border:none;" title="Last Page" + action="#{Session.nonpublicEntities.browseBean.advancedLast}" /> + </h:panelGroup> + </h:column> + + <rich:dataTable id="refDataTable" rows="30" + value="#{Session.nonpublicEntities.browseBean.currentEntities}" + rendered="#{!empty Session.nonpublicEntities.browseBean.currentEntities}" + var="entity" styleClass="rsPanel" columnClasses="rsPanelColumn"> + <h:column style="text-align:left"> + <f:facet name="header">Text</f:facet> + <h:outputLink target="_blank" + value="#{ApplicationBean1.root}/browse/entityDetails.xhtml?eid=#{entity.id}"> + <h:outputText + value="#{entity.ownValue} [#{entity.id}]" /> + </h:outputLink> + <h:commandButton + action="#{Session.nonpublicEntities.browseBean.actionEdit}" + rendered="#{Session.canEdit}" + image="/resources/css/xp/css-images/edit16.gif" + title="Edit this entity" /> + </h:column> + <h:column style="text-align:left"> + <f:facet name="header">State</f:facet> + <h:outputText value="#{entity.privacity}" /> + </h:column> + </rich:dataTable> + + <h:column + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}"> + <h:panelGroup> + <h:commandButton + image="/resources/css/xp/css-images/arrow-first.gif" + style="border:none;" title="First Page" + action="#{Session.nonpublicEntities.browseBean.advancedFirst}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif" + style="border:none;" title="Fast Backwards" + action="#{Session.nonpublicEntities.browseBean.advancedFastRewind}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-previous.gif" + style="border:none;" title="Previous Page" + action="#{Session.nonpublicEntities.browseBean.advancedPrevious}" /> + + <h:outputText + value="#{Session.nonpublicEntities.browseBean.advancedPaginator.recordStatus}" + styleClass="sumaryMsg" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-next.gif" + style="border:none;" title="Next Page" + action="#{Session.nonpublicEntities.browseBean.advancedNext}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif" + style="border:none;" title="Fast Forward" + action="#{Session.nonpublicEntities.browseBean.advancedFastForward}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-last.gif" + style="border:none;" title="Last Page" + action="#{Session.nonpublicEntities.browseBean.advancedLast}" /> + </h:panelGroup> + </h:column> + + + </h:panelGrid> + + <h:panelGrid columns="3" styleClass="displayPanel" + columnClasses="displayPanelColumn01,displayPanelColumn02"> + + <a4j:commandButton value="make all these references public" + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}" + actionListener="#{Session.nonpublicEntities.actionMakeSelectedEntitiesPublic}" + render="showRefPanel" /> + <h:outputText/> + <h:outputText/> + + </h:panelGrid> + + + + </ui:composition> +</body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/clean/components/nonpublicWitness.xhtml Fri Nov 09 15:13:32 2018 +0100 @@ -0,0 +1,154 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<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:a4j="http://richfaces.org/a4j" + xmlns:rich="http://richfaces.org/rich"> + +<body> + <ui:composition> + + <h2 style="color:black">non-public Witnesses of public Texts</h2> + + <h:panelGrid columns="3" styleClass="displayPanel" + columnClasses="displayPanelColumn01,displayPanelColumn02"> + + <a4j:commandButton value="show non-public witnesses" + actionListener="#{Session.nonpublicEntities.actionFindNonpublicWitnesses}" + render="showWitPanel" /> + <h:outputText/> + <h:outputText/> + + </h:panelGrid> + + <h:panelGrid id="showWitPanel" columns="1" + style="margin-left: auto; margin-right: auto; text-align: center; width: 100%;"> + + <h:outputText + value="#{Session.nonpublicEntities.browseBean.resultSummaryMsg}" + rendered="#{!empty Session.nonpublicEntities.browseBean.resultSummaryMsg}" + styleClass="summaryMsg" /> + + <h:column + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}"> + <h:outputText value="go to page" styleClass="sumaryMsg" /> + <h:inputText value="#{Session.nonpublicEntities.browseBean.page}" + size="4" /> + <h:commandButton value="submit" + actionListener="#{Session.nonpublicEntities.browseBean.actionGoToPageAdvancedResult}" /> + <h:outputText value=" #{Session.nonpublicEntities.browseBean.pageMsg}" + rendered="#{!empty Session.nonpublicEntities.browseBean.pageMsg}" + style="color:red" /> + </h:column> + + + <h:column + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}"> + <h:panelGroup> + <h:commandButton + image="/resources/css/xp/css-images/arrow-first.gif" + style="border:none;" title="First Page" + action="#{Session.nonpublicEntities.browseBean.advancedFirst}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif" + style="border:none;" title="Fast Backwards" + action="#{Session.nonpublicEntities.browseBean.advancedFastRewind}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-previous.gif" + style="border:none;" title="Previous Page" + action="#{Session.nonpublicEntities.browseBean.advancedPrevious}" /> + + <h:outputText + value="#{Session.nonpublicEntities.browseBean.advancedPaginator.recordStatus}" + styleClass="sumaryMsg" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-next.gif" + style="border:none;" title="Next Page" + action="#{Session.nonpublicEntities.browseBean.advancedNext}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif" + style="border:none;" title="Fast Forward" + action="#{Session.nonpublicEntities.browseBean.advancedFastForward}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-last.gif" + style="border:none;" title="Last Page" + action="#{Session.nonpublicEntities.browseBean.advancedLast}" /> + </h:panelGroup> + </h:column> + + <rich:dataTable id="witDataTable" rows="30" + value="#{Session.nonpublicEntities.browseBean.currentEntities}" + rendered="#{!empty Session.nonpublicEntities.browseBean.currentEntities}" + var="entity" styleClass="rsPanel" columnClasses="rsPanelColumn"> + <h:column style="text-align:left"> + <f:facet name="header">Text</f:facet> + <h:outputLink target="_blank" + value="#{ApplicationBean1.root}/browse/entityDetails.xhtml?eid=#{entity.id}"> + <h:outputText + value="#{entity.ownValue} [#{entity.id}]" /> + </h:outputLink> + <h:commandButton + action="#{Session.nonpublicEntities.browseBean.actionEdit}" + rendered="#{Session.canEdit}" + image="/resources/css/xp/css-images/edit16.gif" + title="Edit this entity" /> + </h:column> + <h:column style="text-align:left"> + <f:facet name="header">State</f:facet> + <h:outputText value="#{entity.privacity}" /> + </h:column> + </rich:dataTable> + + <h:column + rendered="#{!empty Session.nonpublicEntities.browseBean.entities}"> + <h:panelGroup> + <h:commandButton + image="/resources/css/xp/css-images/arrow-first.gif" + style="border:none;" title="First Page" + action="#{Session.nonpublicEntities.browseBean.advancedFirst}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif" + style="border:none;" title="Fast Backwards" + action="#{Session.nonpublicEntities.browseBean.advancedFastRewind}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-previous.gif" + style="border:none;" title="Previous Page" + action="#{Session.nonpublicEntities.browseBean.advancedPrevious}" /> + + <h:outputText + value="#{Session.nonpublicEntities.browseBean.advancedPaginator.recordStatus}" + styleClass="sumaryMsg" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-next.gif" + style="border:none;" title="Next Page" + action="#{Session.nonpublicEntities.browseBean.advancedNext}" /> + + <h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif" + style="border:none;" title="Fast Forward" + action="#{Session.nonpublicEntities.browseBean.advancedFastForward}" /> + + <h:commandButton + image="/resources/css/xp/css-images/arrow-last.gif" + style="border:none;" title="Last Page" + action="#{Session.nonpublicEntities.browseBean.advancedLast}" /> + </h:panelGroup> + </h:column> + + + </h:panelGrid> + + <h:panelGrid columns="3" styleClass="displayPanel" + columnClasses="displayPanelColumn01,displayPanelColumn02"> + + </h:panelGrid> + + + </ui:composition> +</body> +</html>
--- a/src/main/webapp/clean/nonpublicEntities.xhtml Thu Nov 08 20:15:02 2018 +0100 +++ b/src/main/webapp/clean/nonpublicEntities.xhtml Fri Nov 09 15:13:32 2018 +0100 @@ -24,9 +24,18 @@ itemChangeListener="#{Session.nonpublicEntities.listenerTabChange}" activeItem="#{Session.nonpublicEntities.selectedTab}"> - <rich:tab header="Digitalization" name="aut"> + <rich:tab header="Digitalization" name="dig"> <ui:include src="components/nonpublicDigitalization.xhtml" /> </rich:tab> + + <rich:tab header="Reference" name="ref"> + <ui:include src="components/nonpublicReference.xhtml" /> + </rich:tab> + + <rich:tab header="Witness" name="wit"> + <ui:include src="components/nonpublicWitness.xhtml" /> + </rich:tab> + </rich:tabPanel> </h:panelGrid>