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