changeset 182:ef0949b8efc3

more Find Missing Relations.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Wed, 13 Jun 2018 18:35:37 +0200
parents 52aa06772336
children ee8a923319ec
files src/main/java/de/mpiwg/itgroup/ismi/merge/MissingRelationsBean.java src/main/webapp/clean/components/missingCollection.xhtml src/main/webapp/clean/components/missingPlace.xhtml src/main/webapp/clean/components/missingRepository.xhtml src/main/webapp/clean/missingRelations.xhtml
diffstat 5 files changed, 551 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/MissingRelationsBean.java	Wed Jun 13 17:48:06 2018 +0200
+++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/MissingRelationsBean.java	Wed Jun 13 18:35:37 2018 +0200
@@ -98,6 +98,95 @@
 		logger.debug("Done findMissingCodices.");
 	}
 	
+    public void actionFindMissingCollection() {
+        logger.debug("Start findMissingCollection...");
+        List<RelationFilter> relFilters = new ArrayList<RelationFilter>();
+        /*
+         * find CODEX without is_part_of COLLECTION relation
+         */
+        browseBean = new FullEntityRepositoryBean();
+        browseBean.setObjectClass(CODEX);
+        RelationFilter relFilter = new RelationFilter();
+        relFilter.relObjectClass = "is_part_of";
+        relFilter.tarObjectClass = "COLLECTION";
+        relFilter.relationMissing = true;
+        relFilters.add(relFilter);
+        try {
+            browseBean.searchByRelations(relFilters);
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        logger.debug("Done findMissingCollection.");
+    }
+    
+    public void actionFindMissingRepository() {
+        logger.debug("Start findMissingRepository...");
+        List<RelationFilter> relFilters = new ArrayList<RelationFilter>();
+        /*
+         * find COLLECTION without is_part_of REPOSITORY relation
+         */
+        browseBean = new FullEntityRepositoryBean();
+        browseBean.setObjectClass(COLLECTION);
+        RelationFilter relFilter = new RelationFilter();
+        relFilter.relObjectClass = "is_part_of";
+        relFilter.tarObjectClass = "REPOSITORY";
+        relFilter.relationMissing = true;
+        relFilters.add(relFilter);
+        try {
+            browseBean.searchByRelations(relFilters);
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        logger.debug("Done findMissingRepository.");
+    }
+    
+    public void actionFindMissingPlace() {
+        logger.debug("Start findMissingPlace...");
+        List<RelationFilter> relFilters = new ArrayList<RelationFilter>();
+        /*
+         * find REPOSITORY without is_part_of PLACE relation
+         */
+        browseBean = new FullEntityRepositoryBean();
+        browseBean.setObjectClass(REPOSITORY);
+        RelationFilter relFilter = new RelationFilter();
+        relFilter.relObjectClass = "is_in";
+        relFilter.tarObjectClass = "PLACE";
+        relFilter.relationMissing = true;
+        relFilters.add(relFilter);
+        try {
+            browseBean.searchByRelations(relFilters);
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        logger.debug("Done findMissingPlace.");
+    }
+    
+    public void actionFindMissingWitnessCollection() {
+        logger.debug("Start findMissingWitnessCollection...");
+        List<RelationFilter> relFilters = new ArrayList<RelationFilter>();
+        /*
+         * find CODEX without is_part_of WITNESS and is_part_of COLLECTION relations
+         */
+        browseBean = new FullEntityRepositoryBean();
+        browseBean.setObjectClass(CODEX);
+        RelationFilter relFilter = new RelationFilter();
+        relFilter.relObjectClass = "is_part_of";
+        relFilter.tarObjectClass = "COLLECTION";
+        relFilter.relationMissing = true;
+        relFilters.add(relFilter);
+        RelationFilter relFilter2 = new RelationFilter();
+        relFilter2.relObjectClass = "is_part_of";
+        relFilter2.srcObjectClass = "WITNESS";
+        relFilter2.relationMissing = true;
+        relFilters.add(relFilter2);
+        try {
+            browseBean.searchByRelations(relFilters);
+        } catch (Exception e) {
+            logger.error(e);
+        }
+        logger.debug("Done findMissingWitnessCollection.");
+    }
+    
     public EntityRepositoryBean getBrowseBean() {
         return browseBean;
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/webapp/clean/components/missingCollection.xhtml	Wed Jun 13 18:35:37 2018 +0200
@@ -0,0 +1,150 @@
+<!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">Codices without Collection</h2>
+
+		<h:panelGrid columns="3" styleClass="displayPanel"
+			columnClasses="displayPanelColumn01,displayPanelColumn02">
+
+            <a4j:commandButton value="show codices without collection"
+                actionListener="#{Session.missingRelations.actionFindMissingCollection}"
+                render="showCodexPanel" />
+            <h:outputText/>
+            <h:outputText/>
+
+		</h:panelGrid>
+
+		<h:panelGrid id="showCodexPanel" columns="1"
+			style="margin-left: auto; margin-right: auto; text-align: center; width: 100%;">
+
+			<h:outputText
+				value="#{Session.missingRelations.browseBean.resultSummaryMsg}"
+				rendered="#{!empty Session.missingRelations.browseBean.resultSummaryMsg}"
+				styleClass="summaryMsg" />
+
+			<h:column
+				rendered="#{!empty Session.missingRelations.browseBean.entities}">
+				<h:outputText value="go to page" styleClass="sumaryMsg" />
+				<h:inputText value="#{Session.missingRelations.browseBean.page}"
+					size="4" />
+				<h:commandButton value="submit"
+					actionListener="#{Session.missingRelations.browseBean.actionGoToPageAdvancedResult}" />
+				<h:outputText value=" #{Session.missingRelations.browseBean.pageMsg}"
+					rendered="#{!empty Session.missingRelations.browseBean.pageMsg}"
+					style="color:red" />
+			</h:column>
+
+
+			<h:column
+				rendered="#{!empty Session.missingRelations.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.missingRelations.browseBean.advancedFirst}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.missingRelations.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.missingRelations.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.missingRelations.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.missingRelations.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.missingRelations.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.missingRelations.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
+			<rich:dataTable id="codexDataTable" rows="30"
+				value="#{Session.missingRelations.browseBean.currentEntities}"
+				rendered="#{!empty Session.missingRelations.browseBean.currentEntities}"
+				var="entity" styleClass="rsPanel" columnClasses="rsPanelColumn">
+				<h:column style="text-align:left">
+                    <f:facet name="header">Codex</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.missingRelations.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.missingRelations.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.missingRelations.browseBean.advancedFirst}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.missingRelations.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.missingRelations.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.missingRelations.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.missingRelations.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.missingRelations.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.missingRelations.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
+
+		</h:panelGrid>
+
+
+
+	</ui:composition>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/webapp/clean/components/missingPlace.xhtml	Wed Jun 13 18:35:37 2018 +0200
@@ -0,0 +1,150 @@
+<!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">Repositories without Place</h2>
+
+		<h:panelGrid columns="3" styleClass="displayPanel"
+			columnClasses="displayPanelColumn01,displayPanelColumn02">
+
+            <a4j:commandButton value="show repositories without place"
+                actionListener="#{Session.missingRelations.actionFindMissingPlace}"
+                render="showRepoPanel" />
+            <h:outputText/>
+            <h:outputText/>
+
+		</h:panelGrid>
+
+		<h:panelGrid id="showRepoPanel" columns="1"
+			style="margin-left: auto; margin-right: auto; text-align: center; width: 100%;">
+
+			<h:outputText
+				value="#{Session.missingRelations.browseBean.resultSummaryMsg}"
+				rendered="#{!empty Session.missingRelations.browseBean.resultSummaryMsg}"
+				styleClass="summaryMsg" />
+
+			<h:column
+				rendered="#{!empty Session.missingRelations.browseBean.entities}">
+				<h:outputText value="go to page" styleClass="sumaryMsg" />
+				<h:inputText value="#{Session.missingRelations.browseBean.page}"
+					size="4" />
+				<h:commandButton value="submit"
+					actionListener="#{Session.missingRelations.browseBean.actionGoToPageAdvancedResult}" />
+				<h:outputText value=" #{Session.missingRelations.browseBean.pageMsg}"
+					rendered="#{!empty Session.missingRelations.browseBean.pageMsg}"
+					style="color:red" />
+			</h:column>
+
+
+			<h:column
+				rendered="#{!empty Session.missingRelations.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.missingRelations.browseBean.advancedFirst}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.missingRelations.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.missingRelations.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.missingRelations.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.missingRelations.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.missingRelations.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.missingRelations.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
+			<rich:dataTable id="repoDataTable" rows="30"
+				value="#{Session.missingRelations.browseBean.currentEntities}"
+				rendered="#{!empty Session.missingRelations.browseBean.currentEntities}"
+				var="entity" styleClass="rsPanel" columnClasses="rsPanelColumn">
+				<h:column style="text-align:left">
+                    <f:facet name="header">Codex</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.missingRelations.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.missingRelations.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.missingRelations.browseBean.advancedFirst}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.missingRelations.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.missingRelations.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.missingRelations.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.missingRelations.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.missingRelations.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.missingRelations.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
+
+		</h:panelGrid>
+
+
+
+	</ui:composition>
+</body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/webapp/clean/components/missingRepository.xhtml	Wed Jun 13 18:35:37 2018 +0200
@@ -0,0 +1,150 @@
+<!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">Collections without Repository</h2>
+
+		<h:panelGrid columns="3" styleClass="displayPanel"
+			columnClasses="displayPanelColumn01,displayPanelColumn02">
+
+            <a4j:commandButton value="show collections without repository"
+                actionListener="#{Session.missingRelations.actionFindMissingRepository}"
+                render="showCollectionPanel" />
+            <h:outputText/>
+            <h:outputText/>
+
+		</h:panelGrid>
+
+		<h:panelGrid id="showCollectionPanel" columns="1"
+			style="margin-left: auto; margin-right: auto; text-align: center; width: 100%;">
+
+			<h:outputText
+				value="#{Session.missingRelations.browseBean.resultSummaryMsg}"
+				rendered="#{!empty Session.missingRelations.browseBean.resultSummaryMsg}"
+				styleClass="summaryMsg" />
+
+			<h:column
+				rendered="#{!empty Session.missingRelations.browseBean.entities}">
+				<h:outputText value="go to page" styleClass="sumaryMsg" />
+				<h:inputText value="#{Session.missingRelations.browseBean.page}"
+					size="4" />
+				<h:commandButton value="submit"
+					actionListener="#{Session.missingRelations.browseBean.actionGoToPageAdvancedResult}" />
+				<h:outputText value=" #{Session.missingRelations.browseBean.pageMsg}"
+					rendered="#{!empty Session.missingRelations.browseBean.pageMsg}"
+					style="color:red" />
+			</h:column>
+
+
+			<h:column
+				rendered="#{!empty Session.missingRelations.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.missingRelations.browseBean.advancedFirst}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.missingRelations.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.missingRelations.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.missingRelations.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.missingRelations.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.missingRelations.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.missingRelations.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
+			<rich:dataTable id="collectionDataTable" rows="30"
+				value="#{Session.missingRelations.browseBean.currentEntities}"
+				rendered="#{!empty Session.missingRelations.browseBean.currentEntities}"
+				var="entity" styleClass="rsPanel" columnClasses="rsPanelColumn">
+				<h:column style="text-align:left">
+                    <f:facet name="header">Codex</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.missingRelations.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.missingRelations.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.missingRelations.browseBean.advancedFirst}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.missingRelations.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.missingRelations.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.missingRelations.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.missingRelations.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.missingRelations.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.missingRelations.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
+
+		</h:panelGrid>
+
+
+
+	</ui:composition>
+</body>
+</html>
--- a/src/main/webapp/clean/missingRelations.xhtml	Wed Jun 13 17:48:06 2018 +0200
+++ b/src/main/webapp/clean/missingRelations.xhtml	Wed Jun 13 18:35:37 2018 +0200
@@ -34,6 +34,18 @@
 					<rich:tab header="Missing Codex" name="cod">
 						<ui:include src="components/missingCodex.xhtml" />
 					</rich:tab>
+
+                    <rich:tab header="Missing Collection" name="col">
+                        <ui:include src="components/missingCollection.xhtml" />
+                    </rich:tab>
+
+                    <rich:tab header="Missing Repository" name="rep">
+                        <ui:include src="components/missingRepository.xhtml" />
+                    </rich:tab>
+
+                    <rich:tab header="Missing Place" name="plc">
+                        <ui:include src="components/missingPlace.xhtml" />
+                    </rich:tab>
 				</rich:tabPanel>
 
 			</h:panelGrid>