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>