Author: glandais
Date: 2008-02-26 10:37:49 +0000 (Tue, 26 Feb 2008)
New Revision: 1247
Modified:
trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/database/Database.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java
trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml
trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties
trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties
Log:
ElementManage web page
Modified: trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/database/Database.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/database/Database.java 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/database/Database.java 2008-02-26 10:37:49 UTC (rev 1247)
@@ -85,7 +85,8 @@
*
* @throws SimExplorerException the sim explorer storage exception
*/
- public abstract void insertElement(MetaData element, List<Reader> attachmentsContent, List<Attachment> attachments, List<Descriptor> descriptors) throws SimExplorerException;
+ public abstract void insertElement(MetaData element, List<Reader> attachmentsContent, List<Attachment> attachments,
+ List<Descriptor> descriptors) throws SimExplorerException;
/**
* Save element hierarchy, saving the fact that parent uses child.
@@ -209,10 +210,14 @@
*/
private Map<String, String> getPropertiesByType(String entityTypeName, boolean onlyLatest) {
Map<String, String> properties = new HashMap<String, String>();
-
- EntityTypeEnum entityType = EntityTypeEnum.valueOf(entityTypeName);
- properties.put(KEY_CLASSNAME, entityType.getImplementation().getCanonicalName());
-
+
+ try {
+ EntityTypeEnum entityType = EntityTypeEnum.valueOf(entityTypeName);
+ properties.put(KEY_CLASSNAME, entityType.getImplementation().getCanonicalName());
+ } catch (Exception e) {
+ // retrieve all types
+ }
+
if (onlyLatest) {
properties.put(KEY_LATEST, "1");
}
@@ -233,8 +238,8 @@
*
* @throws SimExplorerException the sim explorer storage exception
*/
- public List<MetaData> findElementsByType(String type, boolean onlyLatest, int start, int count, SortColumn sortColumn,
- SortOrder sortOrder) throws SimExplorerException {
+ public List<MetaData> findElementsByType(String type, boolean onlyLatest, int start, int count,
+ SortColumn sortColumn, SortOrder sortOrder) throws SimExplorerException {
return findElementsByType(type, onlyLatest, start, count, sortColumn, sortOrder, null);
}
@@ -253,9 +258,10 @@
*
* @throws SimExplorerException the sim explorer exception
*/
- public List<MetaData> findElementsByType(String type, boolean onlyLatest, int start, int count, SortColumn sortColumn,
- SortOrder sortOrder, String user) throws SimExplorerException {
- return findElementsByProperties(getPropertiesByType(type, onlyLatest), start, count, sortColumn, sortOrder, user);
+ public List<MetaData> findElementsByType(String type, boolean onlyLatest, int start, int count,
+ SortColumn sortColumn, SortOrder sortOrder, String user) throws SimExplorerException {
+ return findElementsByProperties(getPropertiesByType(type, onlyLatest), start, count, sortColumn, sortOrder,
+ user);
}
/**
@@ -304,8 +310,9 @@
*
* @throws SimExplorerException the sim explorer storage exception
*/
- public abstract List<MetaData> findElementsByContentSearch(String queryText, SearchColumn searchColumn, boolean onlyLatest, int start,
- int count, SortColumn sortColumn, SortOrder sortOrder, String userFilter) throws SimExplorerException;
+ public abstract List<MetaData> findElementsByContentSearch(String queryText, SearchColumn searchColumn,
+ boolean onlyLatest, int start, int count, SortColumn sortColumn, SortOrder sortOrder, String userFilter)
+ throws SimExplorerException;
/**
* Find elements by content search.
@@ -322,9 +329,10 @@
*
* @throws SimExplorerException the sim explorer exception
*/
- public List<MetaData> findElementsByContentSearch(String queryText, SearchColumn searchColumn, boolean onlyLatest, int start, int count,
- SortColumn sortColumn, SortOrder sortOrder) throws SimExplorerException {
- return findElementsByContentSearch(queryText, searchColumn, onlyLatest, start, count, sortColumn, sortOrder, null);
+ public List<MetaData> findElementsByContentSearch(String queryText, SearchColumn searchColumn, boolean onlyLatest,
+ int start, int count, SortColumn sortColumn, SortOrder sortOrder) throws SimExplorerException {
+ return findElementsByContentSearch(queryText, searchColumn, onlyLatest, start, count, sortColumn, sortOrder,
+ null);
}
/**
@@ -339,8 +347,8 @@
*
* @throws SimExplorerException the sim explorer storage exception
*/
- public abstract int findElementsByContentSearchCount(String queryText, SearchColumn searchColumn, boolean onlyLatest, String userFilter)
- throws SimExplorerException;
+ public abstract int findElementsByContentSearchCount(String queryText, SearchColumn searchColumn,
+ boolean onlyLatest, String userFilter) throws SimExplorerException;
/**
* Find elements by content search count.
@@ -353,7 +361,8 @@
*
* @throws SimExplorerException the sim explorer exception
*/
- public int findElementsByContentSearchCount(String queryText, SearchColumn searchColumn, boolean onlyLatest) throws SimExplorerException {
+ public int findElementsByContentSearchCount(String queryText, SearchColumn searchColumn, boolean onlyLatest)
+ throws SimExplorerException {
return findElementsByContentSearchCount(queryText, searchColumn, onlyLatest, null);
}
@@ -365,8 +374,9 @@
*
* @throws SimExplorerTechnicalException the sim explorer technical exception
*/
- public abstract void updateFilter(String userFilter, Collection<String> visibleItems) throws SimExplorerTechnicalException;
-
+ public abstract void updateFilter(String userFilter, Collection<String> visibleItems)
+ throws SimExplorerTechnicalException;
+
// Delete
/**
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/grid/ElementDataSource.java 2008-02-26 10:37:49 UTC (rev 1247)
@@ -38,10 +38,10 @@
/**
* The Enum ElementListType.
*/
- public enum ElementListType {
+ public enum ListType {
/** The Application list. */
- ApplicationList,
+ ElementList,
/** The Search query. */
SearchQuery,
@@ -51,8 +51,11 @@
}
/** The element list type. */
- private ElementListType elementListType;
+ private ListType listType;
+ /** The entity type. */
+ private EntityTypeEnum entityType;
+
/** Query being searched. */
private String searchQuery = "";
@@ -78,11 +81,11 @@
* Build datasource with text query.
*
* @param token the token
- * @param elementListType the element list type
+ * @param listType the list type
*/
- public ElementDataSource(String token, ElementListType elementListType) {
+ public ElementDataSource(String token, ListType listType) {
super();
- this.elementListType = elementListType;
+ this.listType = listType;
this.token = token;
}
@@ -92,10 +95,14 @@
public int getAvailableRows() {
int result;
try {
- switch (elementListType) {
- case ApplicationList:
- result = RemoteStorageService.getStorageService().findElementsCount(token,
- EntityTypeEnum.ExplorationApplication.toString(), true);
+ switch (listType) {
+ case ElementList:
+ if (entityType == null) {
+ result = RemoteStorageService.getStorageService().findElementsCount(token, "", true);
+ } else {
+ result = RemoteStorageService.getStorageService().findElementsCount(token, entityType.toString(),
+ true);
+ }
break;
case SearchQuery:
result = RemoteStorageService.getStorageService().findFullTextCount(token, searchQuery,
@@ -125,7 +132,7 @@
* @see org.apache.tapestry.grid.GridDataSource#getRowValue(int)token
*/
public Object getRowValue(int index) {
- if (elementListType == ElementListType.ElementsOwnedBy) {
+ if (listType == ListType.ElementsOwnedBy) {
MetaData metadata = null;
try {
metadata = RemoteStorageService.getStorageService().getMetadata(token,
@@ -149,11 +156,15 @@
if (sortModel != null) {
sortColumn = sortModel.getPropertyName();
}
- switch (elementListType) {
- case ApplicationList:
- entities = RemoteStorageService.getStorageService().findElements(token,
- EntityTypeEnum.ExplorationApplication.toString(), true, startIndex, 1 + endIndex - startIndex,
- sortColumn, ascending);
+ switch (listType) {
+ case ElementList:
+ if (entityType == null) {
+ entities = RemoteStorageService.getStorageService().findElements(token, "", true, startIndex,
+ 1 + endIndex - startIndex, sortColumn, ascending);
+ } else {
+ entities = RemoteStorageService.getStorageService().findElements(token, entityType.toString(),
+ true, startIndex, 1 + endIndex - startIndex, sortColumn, ascending);
+ }
break;
case SearchQuery:
entities = RemoteStorageService.getStorageService().findFullText(token, searchQuery,
@@ -172,15 +183,6 @@
}
/**
- * Gets the element list type.
- *
- * @return the element list type
- */
- public ElementListType getElementListType() {
- return elementListType;
- }
-
- /**
* Sets the search query.
*
* @param searchQuery the new search query
@@ -207,4 +209,13 @@
this.user = user;
}
+ /**
+ * Sets the entity type.
+ *
+ * @param entityType the new entity type
+ */
+ public void setEntityType(EntityTypeEnum entityType) {
+ this.entityType = entityType;
+ }
+
}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-02-26 10:37:49 UTC (rev 1247)
@@ -29,12 +29,13 @@
import org.apache.tapestry.services.BeanModelSource;
import de.hsofttec.t5components.annotations.SetterGetter;
+import fr.cemagref.simexplorer.is.entities.EntityTypeEnum;
import fr.cemagref.simexplorer.is.entities.metadata.MetaData;
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.storage.SearchColumn;
import fr.cemagref.simexplorer.is.ui.web.components.SimGrid;
import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource;
-import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ElementListType;
+import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ListType;
import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
@@ -114,17 +115,20 @@
* @return the elements
*/
public ElementDataSource getElements() {
- ElementListType listType = ElementListType.SearchQuery;
+ ListType listType;
if (this.query == null) {
- listType = ElementListType.ApplicationList;
+ listType = ListType.ElementList;
} else {
- listType = ElementListType.SearchQuery;
+ listType = ListType.SearchQuery;
}
ElementDataSource elementDataSource = new ElementDataSource(getToken(), listType);
- if (this.query != null) {
+ if (this.query == null) {
+ elementDataSource.setEntityType(EntityTypeEnum.ExplorationApplication);
+ } else {
elementDataSource.setSearchQuery(this.query);
elementDataSource.setSearchColumn(this.searchColumn);
}
+
return elementDataSource;
}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java 2008-02-26 10:37:49 UTC (rev 1247)
@@ -18,6 +18,7 @@
package fr.cemagref.simexplorer.is.ui.web.pages;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.StringTokenizer;
@@ -37,11 +38,12 @@
import fr.cemagref.simexplorer.is.security.entities.Group;
import fr.cemagref.simexplorer.is.security.entities.Permission;
import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.components.SimGrid;
import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource;
-import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ElementListType;
+import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ListType;
import fr.cemagref.simexplorer.is.ui.web.pages.security.UserPage;
-import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
+import fr.cemagref.simexplorer.is.ui.web.services.UserValueEncoder;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
@@ -86,8 +88,12 @@
/** The user. */
@Persist
- private User user;
+ private User userOwner;
+ /** The filter owner. */
+ @Persist
+ private boolean filterOwner;
+
/** The owner list. */
private List<Actor> ownerList;
@@ -104,25 +110,38 @@
@SetterGetter
private Actor actor;
- /**
- * Update list.
- *
- * @param filtering the filtering
- * @param actor the actor
- */
- private void updateList(boolean filtering, Actor actor) {
+ /** The user encoder. */
+ @Persist
+ private UserValueEncoder userEncoder;
+
+ Object onSuccess() {
elementListGrid.setCurrentPage(1);
elementListGrid.updateSort("");
+ return this;
}
/**
* Page loaded.
*/
- void pageLoaded() {
+ public void pageLoaded() {
model = ModelFactory.getMetaDataModel(beanModelSource, resources, false, true);
}
/**
+ * Gets the users.
+ *
+ * @return the users
+ *
+ * @throws SimExplorerException the sim explorer exception
+ */
+ public List<User> getUsers() throws SimExplorerException {
+ List<User> result = new ArrayList<User>();
+ User[] users = RemoteSecurityService.getAuthentificationService().getUsers(getToken());
+ result.addAll(Arrays.asList(users));
+ return result;
+ }
+
+ /**
* Gets the model.
*
* @return the model
@@ -145,8 +164,16 @@
* @return the elements
*/
public ElementDataSource getElements() {
- ElementListType listType = ElementListType.ApplicationList;
- ElementDataSource elementDataSource = new ElementDataSource(getToken(), listType);
+ ElementDataSource elementDataSource;
+ if (filterOwner) {
+ ListType listType = ListType.ElementsOwnedBy;
+ elementDataSource = new ElementDataSource(getToken(), listType);
+ elementDataSource.setUser(userOwner);
+ } else {
+ ListType listType = ListType.ElementList;
+ elementDataSource = new ElementDataSource(getToken(), listType);
+ elementDataSource.setEntityType(null);
+ }
return elementDataSource;
}
@@ -362,4 +389,52 @@
return "";
}
+ /**
+ * Checks if is filter owner.
+ *
+ * @return true, if is filter owner
+ */
+ public boolean isFilterOwner() {
+ return filterOwner;
+ }
+
+ /**
+ * Sets the filter owner.
+ *
+ * @param filterOwner the new filter owner
+ */
+ public void setFilterOwner(boolean filterOwner) {
+ this.filterOwner = filterOwner;
+ }
+
+ /**
+ * Gets the user owner.
+ *
+ * @return the user owner
+ */
+ public User getUserOwner() {
+ return userOwner;
+ }
+
+ /**
+ * Sets the user owner.
+ *
+ * @param userOwner the new user owner
+ */
+ public void setUserOwner(User userOwner) {
+ this.userOwner = userOwner;
+ }
+
+ /**
+ * Gets the user encoder.
+ *
+ * @return the user encoder
+ */
+ public UserValueEncoder getUserEncoder() {
+ if (userEncoder == null) {
+ userEncoder = new UserValueEncoder(getToken());
+ }
+ return userEncoder;
+ }
+
}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-02-26 10:37:49 UTC (rev 1247)
@@ -36,11 +36,11 @@
import fr.cemagref.simexplorer.is.exceptions.SimExplorerException;
import fr.cemagref.simexplorer.is.security.entities.Group;
import fr.cemagref.simexplorer.is.security.entities.User;
+import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource;
-import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ElementListType;
+import fr.cemagref.simexplorer.is.ui.web.grid.ElementDataSource.ListType;
import fr.cemagref.simexplorer.is.ui.web.pages.security.AdminPage;
import fr.cemagref.simexplorer.is.ui.web.services.GroupValueEncoder;
-import fr.cemagref.simexplorer.is.service.remote.RemoteSecurityService;
import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory;
/**
@@ -190,7 +190,7 @@
* @throws SimExplorerException the sim explorer exception
*/
public ElementDataSource getElementsOwnedBy() throws SimExplorerException {
- ElementDataSource elementDataSource = new ElementDataSource(getToken(), ElementListType.ElementsOwnedBy);
+ ElementDataSource elementDataSource = new ElementDataSource(getToken(), ListType.ElementsOwnedBy);
elementDataSource.setUser(user);
return elementDataSource;
}
Modified: trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml 2008-02-26 10:37:49 UTC (rev 1247)
@@ -5,6 +5,13 @@
<h1 class="Title">${windowtitle}</h1>
+ <p><t:form>
+ <t:checkbox value="filterOwner" onclick="this.form.submit();"/>${message:simexplorer.ui.web.elementmanage.filterowner} :
+ <t:select model="users" value="userOwner" encoder="userEncoder" />
+ <input type="submit"
+ value="${message:simexplorer.ui.web.elementmanage.ok}" />
+ </t:form></p>
+
<table t:id="elementListGrid" t:type="SimGrid" source="elements"
row="element" model="model">
<t:parameter name="uuidCell">
Modified: trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app.properties 2008-02-26 10:37:49 UTC (rev 1247)
@@ -32,6 +32,7 @@
simexplorer.ui.web.title.elementimport=Element import
simexplorer.ui.web.title.elementmetadata=Element metadata
simexplorer.ui.web.title.elementrights=Element rights
+simexplorer.ui.web.title.elementmanage=Manage elements rights
simexplorer.ui.web.title.groupedit=Group edit
simexplorer.ui.web.title.grouplist=Group list
simexplorer.ui.web.title.install=Install
@@ -52,6 +53,7 @@
simexplorer.ui.web.layout.list=List
simexplorer.ui.web.layout.import=Import
+simexplorer.ui.web.layout.manageelements=Manage elements
simexplorer.ui.web.layout.administration=Administration
simexplorer.ui.web.layout.userlist=Users
simexplorer.ui.web.layout.grouplist=Groups
@@ -113,6 +115,9 @@
simexplorer.ui.web.elementlist.details=Details
+simexplorer.ui.web.elementmanage.filterowner=Only elements which owner is
+simexplorer.ui.web.elementmanage.ok=Ok
+
simexplorer.ui.web.metadata.properties=Properties
simexplorer.ui.web.metadata.usedby=This element is used by
simexplorer.ui.web.metadata.using=This element is using
Modified: trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties
===================================================================
--- trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties 2008-02-26 10:37:33 UTC (rev 1246)
+++ trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/WEB-INF/app_fr.properties 2008-02-26 10:37:49 UTC (rev 1247)
@@ -32,6 +32,7 @@
simexplorer.ui.web.title.elementimport=Import d'un élément
simexplorer.ui.web.title.elementmetadata=Metadonnées d'un élément
simexplorer.ui.web.title.elementrights=Droits sur un élément
+simexplorer.ui.web.title.elementmanage=Gestion des droits sur les éléments
simexplorer.ui.web.title.groupedit=Edition d'un groupe
simexplorer.ui.web.title.grouplist=Liste des groupes
simexplorer.ui.web.title.install=Installation
@@ -52,6 +53,7 @@
simexplorer.ui.web.layout.list=Liste
simexplorer.ui.web.layout.import=Import
+simexplorer.ui.web.layout.manageelements=Gérer les éléments
simexplorer.ui.web.layout.administration=Administration
simexplorer.ui.web.layout.userlist=Utilisateurs
simexplorer.ui.web.layout.grouplist=Groupes
@@ -113,6 +115,9 @@
simexplorer.ui.web.elementlist.details=Details
+simexplorer.ui.web.elementmanage.filterowner=Seulement les éléments dont le propriétaire est
+simexplorer.ui.web.elementmanage.ok=Ok
+
simexplorer.ui.web.metadata.properties=Propriétés
simexplorer.ui.web.metadata.usedby=Cet élément est utilisé par
simexplorer.ui.web.metadata.using=Cet élément utilise