r1236 - in trunk/simexplorer-is: simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools simexplorer-is-web/src/main/webapp simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components
Author: glandais Date: 2008-02-25 18:16:52 +0000 (Mon, 25 Feb 2008) New Revision: 1236 Added: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.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/ElementMetadata.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/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml Log: ElementManage web page Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActor.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -22,7 +22,6 @@ import fr.cemagref.simexplorer.is.security.entities.Actor; import fr.cemagref.simexplorer.is.security.entities.Group; import fr.cemagref.simexplorer.is.security.entities.LoginAction; -import fr.cemagref.simexplorer.is.security.entities.Permission; import fr.cemagref.simexplorer.is.security.entities.User; /** @@ -31,6 +30,15 @@ public interface DaoActor { /** + * Gets the actor. + * + * @param id the id + * + * @return the actor + */ + public Actor getActor(Integer id); + + /** * Save user. * * @param user the user @@ -196,6 +204,4 @@ */ public List<Group> getGroupsOfGroup(Group group); - - } Modified: trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/dao/DaoActorImpl.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -123,6 +123,14 @@ } /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.security.dao.DaoActor#getActor(java.lang.Integer) + */ + public Actor getActor(Integer id) { + Actor a = (Actor) find(Actor.class, id); + return a; + } + + /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.security.dao.DaoActor#saveGroup(fr.cemagref.simexplorer.is.security.entities.Group) */ public void saveGroup(Group group) { @@ -258,4 +266,6 @@ return groups; } + + } Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationService.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -17,13 +17,14 @@ * ##% */ package fr.cemagref.simexplorer.is.service; +import javax.ejb.Remote; + import fr.cemagref.simexplorer.is.exceptions.SimExplorerException; +import fr.cemagref.simexplorer.is.security.entities.Actor; 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 javax.ejb.Remote; - /** * The Interface AuthenticationService. */ @@ -87,12 +88,16 @@ */ // public void changePassword(String token, String password) // throws SimExplorerException; + public Actor getActor(String token, Integer id) throws SimExplorerException; + /** * Gets the user. * * @param token the token * @param id the id + * * @return the user + * * @throws SimExplorerException the sim explorer service exception */ public User getUser(String token, Integer id) throws SimExplorerException; @@ -332,7 +337,8 @@ * @param token the token * * @return the permissions - * @throws SimExplorerException + * + * @throws SimExplorerException the sim explorer exception */ public Permission[] getPermissions(String token, String uuid) throws SimExplorerException; @@ -342,7 +348,8 @@ * @param uuid the uuid * @param permissions the permissions * @param token the token - * @throws SimExplorerException + * + * @throws SimExplorerException the sim explorer exception */ public void setPermissions(String token, String uuid, Permission[] permissions) throws SimExplorerException; Modified: trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/AuthenticationServiceImpl.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -50,6 +50,7 @@ import fr.cemagref.simexplorer.is.exceptions.SimExplorerTechnicalException; import fr.cemagref.simexplorer.is.security.credentials.CredentialManager; import fr.cemagref.simexplorer.is.security.dao.DaoActor; +import fr.cemagref.simexplorer.is.security.entities.Actor; import fr.cemagref.simexplorer.is.security.entities.Group; import fr.cemagref.simexplorer.is.security.entities.LoginAction; import fr.cemagref.simexplorer.is.security.entities.Permission; @@ -256,7 +257,8 @@ * @param id the id * * @return true, if successful - * @throws SimExplorerException + * + * @throws SimExplorerException the sim explorer exception */ private boolean canDeleteGroup(String token, Integer id) throws SimExplorerException { return canAdminGroup(token, id); @@ -324,7 +326,8 @@ * @param token the token * * @return true, if successful - * @throws SimExplorerException + * + * @throws SimExplorerException the sim explorer exception */ private boolean canViewElements(String token) throws SimExplorerException { User loggedUser = getLoggedUser(token); @@ -367,6 +370,18 @@ } /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.AuthenticationService#getActor(java.lang.String, java.lang.Integer) + */ + @Override + public Actor getActor(String token, Integer id) throws SimExplorerException { + if (canViewElements(token)) { + Actor actor = daoActor.getActor(id); + return actor; + } + throw new SimExplorerSecurityException(); + } + + /* (non-Javadoc) * @see fr.cemagref.simexplorer.is.service.AuthenticationService#getUser(java.lang.String, java.lang.String) */ public User getUser(String token, String login) throws SimExplorerException { @@ -786,6 +801,9 @@ return uuids.toArray(new String[uuids.size()]); } + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.AuthenticationService#getElementsOwnedByCount(java.lang.String, fr.cemagref.simexplorer.is.security.entities.User) + */ public int getElementsOwnedByCount(String token, User user) { return credentialManager.getPermissionsOwnedByCount(user); } Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementDelete.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -68,7 +68,7 @@ * Page loaded. */ void pageLoaded() { - model = ModelFactory.getMetaDataModel(beanModelSource, resources, false); + model = ModelFactory.getMetaDataModel(beanModelSource, resources, false, false); } /* (non-Javadoc) 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-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementList.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -79,7 +79,7 @@ * Page loaded. */ void pageLoaded() { - model = ModelFactory.getMetaDataModel(beanModelSource, resources, true); + model = ModelFactory.getMetaDataModel(beanModelSource, resources, true, false); } /** Added: 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 (rev 0) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementManage.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -0,0 +1,365 @@ +/* +* ##% Copyright (C) 2008 Code Lutin, Gabriel Landais +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.ui.web.pages; + +import java.util.ArrayList; +import java.util.List; +import java.util.StringTokenizer; + +import org.apache.tapestry.ComponentResources; +import org.apache.tapestry.annotations.Component; +import org.apache.tapestry.annotations.InjectPage; +import org.apache.tapestry.annotations.Persist; +import org.apache.tapestry.annotations.Retain; +import org.apache.tapestry.beaneditor.BeanModel; +import org.apache.tapestry.ioc.annotations.Inject; +import org.apache.tapestry.services.BeanModelSource; + +import de.hsofttec.t5components.annotations.SetterGetter; +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; +import fr.cemagref.simexplorer.is.exceptions.SimExplorerException; +import fr.cemagref.simexplorer.is.security.entities.Actor; +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.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.pages.security.UserPage; +import fr.cemagref.simexplorer.is.ui.web.services.RemoteSecurityService; +import fr.cemagref.simexplorer.is.ui.web.tools.ModelFactory; + +/** + * The Class ElementManage. + */ +public class ElementManage extends UserPage { + + /** The model. */ + @Retain + private BeanModel model; + + /** The bean model source. */ + @Inject + private BeanModelSource beanModelSource; + + /** The resources. */ + @Inject + private ComponentResources resources; + + /** The _element. */ + private MetaData element; + + /** The element detail. */ + @InjectPage + private ElementDetail elementDetail; + + /** The element rights. */ + @InjectPage + private ElementRights elementRights; + + /** The user edit. */ + @InjectPage + private UserEdit userEdit; + + /** The group edit. */ + @InjectPage + private GroupEdit groupEdit; + + /** The element list grid. */ + @Component + private SimGrid elementListGrid; + + /** The user. */ + @Persist + private User user; + + /** The owner list. */ + private List<Actor> ownerList; + + /** The read list. */ + private List<Actor> readList; + + /** The write list. */ + private List<Actor> writeList; + + /** The admin list. */ + private List<Actor> adminList; + + /** The actor. */ + @SetterGetter + private Actor actor; + + /** + * Update list. + * + * @param filtering the filtering + * @param actor the actor + */ + private void updateList(boolean filtering, Actor actor) { + elementListGrid.setCurrentPage(1); + elementListGrid.updateSort(""); + } + + /** + * Page loaded. + */ + void pageLoaded() { + model = ModelFactory.getMetaDataModel(beanModelSource, resources, false, true); + } + + /** + * Gets the model. + * + * @return the model + */ + public BeanModel getModel() { + return model; + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.ui.web.pages.security.ProtectedPage#getWindowTitle() + */ + @Override + public String getWindowTitle() { + return getMessages().get("simexplorer.ui.web.title.elementmanage"); + } + + /** + * Gets the elements. + * + * @return the elements + */ + public ElementDataSource getElements() { + ElementListType listType = ElementListType.ApplicationList; + ElementDataSource elementDataSource = new ElementDataSource(getToken(), listType); + return elementDataSource; + } + + /** + * Gets the detail element context. + * + * @return the detail element context + */ + public String getDetailElementContext() { + return element.getUuid() + "," + element.getVersion(); + } + + /** + * On action from detail element. + * + * @param context the context + * + * @return the object + * + * @throws SimExplorerException the sim explorer exception + */ + public Object onActionFromDetailElement(String context) throws SimExplorerException { + StringTokenizer st = new StringTokenizer(context, ","); + String uuid = st.nextToken(); + String version = st.nextToken(); + elementDetail.setup(uuid, version); + return elementDetail; + } + + /** + * On action from view user. + * + * @param actorid the actorid + * + * @return the object + * + * @throws SimExplorerException the sim explorer exception + */ + private Object onActionFromViewUser(Integer actorid) throws SimExplorerException { + Actor anActor = RemoteSecurityService.getAuthentificationService().getActor(getToken(), actorid); + if (anActor instanceof User) { + userEdit.setup(actorid); + return userEdit; + } + if (anActor instanceof Group) { + groupEdit.setup(actorid); + return groupEdit; + } + return null; + } + + /** + * On action from view user owner. + * + * @param actorid the actorid + * + * @return the object + * + * @throws SimExplorerException the sim explorer exception + */ + public Object onActionFromViewUserOwner(Integer actorid) throws SimExplorerException { + return onActionFromViewUser(actorid); + } + + /** + * On action from view user read. + * + * @param actorid the actorid + * + * @return the object + * + * @throws SimExplorerException the sim explorer exception + */ + public Object onActionFromViewUserRead(Integer actorid) throws SimExplorerException { + return onActionFromViewUser(actorid); + } + + /** + * On action from view user write. + * + * @param actorid the actorid + * + * @return the object + * + * @throws SimExplorerException the sim explorer exception + */ + public Object onActionFromViewUserWrite(Integer actorid) throws SimExplorerException { + return onActionFromViewUser(actorid); + } + + /** + * On action from view user admin. + * + * @param actorid the actorid + * + * @return the object + * + * @throws SimExplorerException the sim explorer exception + */ + public Object onActionFromViewUserAdmin(Integer actorid) throws SimExplorerException { + return onActionFromViewUser(actorid); + } + + /** + * On action from rights. + * + * @param context the context + * + * @return the object + * + * @throws SimExplorerException the sim explorer exception + */ + public Object onActionFromRights(String context) throws SimExplorerException { + StringTokenizer st = new StringTokenizer(context, ","); + String uuid = st.nextToken(); + String version = st.nextToken(); + elementRights.setup(uuid, version); + return elementRights; + } + + /** + * Gets the element. + * + * @return the element + */ + public MetaData getElement() { + return element; + } + + /** + * Sets the element. + * + * @param element the new element + * + * @throws SimExplorerException the sim explorer exception + */ + public void setElement(MetaData element) throws SimExplorerException { + this.element = element; + + Permission[] permissions = RemoteSecurityService.getAuthentificationService().getPermissions(getToken(), + element.getUuid()); + + ownerList = new ArrayList<Actor>(); + readList = new ArrayList<Actor>(); + writeList = new ArrayList<Actor>(); + adminList = new ArrayList<Actor>(); + + for (Permission permission : permissions) { + if (permission.isOwner()) { + ownerList.add(permission.getActor()); + } + if (permission.isCanRead()) { + readList.add(permission.getActor()); + } + if (permission.isCanWrite()) { + writeList.add(permission.getActor()); + } + if (permission.isCanAdmin()) { + adminList.add(permission.getActor()); + } + } + + } + + /** + * Gets the owners. + * + * @return the owners + */ + public List<Actor> getOwners() { + return ownerList; + } + + /** + * Gets the readers. + * + * @return the readers + */ + public List<Actor> getReaders() { + return readList; + } + + /** + * Gets the writers. + * + * @return the writers + */ + public List<Actor> getWriters() { + return writeList; + } + + /** + * Gets the admins. + * + * @return the admins + */ + public List<Actor> getAdmins() { + return adminList; + } + + /** + * Gets the actor label. + * + * @return the actor label + */ + public String getActorLabel() { + if (actor instanceof User) { + return ((User) actor).getLogin(); + } + if (actor instanceof Group) { + return ((Group) actor).getName(); + } + return ""; + } + +} Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ElementMetadata.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -62,7 +62,7 @@ * Page loaded. */ void pageLoaded() { - model = ModelFactory.getMetaDataModel(beanModelSource, resources, false); + model = ModelFactory.getMetaDataModel(beanModelSource, resources, false, false); } /** 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-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/UserEdit.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -107,7 +107,7 @@ */ void pageLoaded() { groupModel = ModelFactory.getGroupModel(beanModelSource, resources, false, false); - metadataModel = ModelFactory.getMetaDataModel(beanModelSource, resources, false); + metadataModel = ModelFactory.getMetaDataModel(beanModelSource, resources, false, false); } /** Modified: trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/tools/ModelFactory.java 2008-02-25 18:16:52 UTC (rev 1236) @@ -50,15 +50,18 @@ * @return the meta data model */ public static BeanModel getMetaDataModel(BeanModelSource beanModelSource, ComponentResources resources, - boolean sortable) { + boolean sortable, boolean securityList) { BeanModel model = beanModelSource.create(MetaData.class, false, resources); List<String> wantedProperties = new ArrayList<String>(); wantedProperties.add("uuid"); wantedProperties.add("version"); wantedProperties.add("name"); - wantedProperties.add("description"); - wantedProperties.add("creationDate"); - wantedProperties.add("entityType"); + wantedProperties.add("entityType"); + if (!securityList) { + wantedProperties.add("description"); + wantedProperties.add("creationDate"); + } + List<String> properties = model.getPropertyNames(); for (String property : properties) { if (!sortable) { @@ -68,6 +71,13 @@ model = model.remove(property); } } + if (securityList) { + model.add("owner", null); + model.add("read", null); + model.add("write", null); + model.add("admin", null); + model.add("rights", null); + } return model; } Added: trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml (rev 0) +++ trunk/simexplorer-is/simexplorer-is-web/src/main/webapp/ElementManage.tml 2008-02-25 18:16:52 UTC (rev 1236) @@ -0,0 +1,38 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd" + title="${windowtitle}"> + + <h1 class="Title">${windowtitle}</h1> + + <table t:id="elementListGrid" t:type="SimGrid" source="elements" + row="element" model="model"> + <t:parameter name="uuidCell"> + <t:actionlink t:id="detailElement" context="${detailElementContext}">${message:simexplorer.ui.web.elementlist.details}</t:actionlink> + </t:parameter> + <t:parameter name="ownerCell"> + <t:loop source="owners" value="actor"> + <t:actionlink t:id="viewUserOwner" context="${actor.id}">${actorlabel}</t:actionlink> + </t:loop> + </t:parameter> + <t:parameter name="readCell"> + <t:loop source="readers" value="actor"> + <t:actionlink t:id="viewUserRead" context="${actor.id}">${actorlabel}</t:actionlink> + </t:loop> + </t:parameter> + <t:parameter name="writeCell"> + <t:loop source="writers" value="actor"> + <t:actionlink t:id="viewUserWrite" context="${actor.id}">${actorlabel}</t:actionlink> + </t:loop> + </t:parameter> + <t:parameter name="adminCell"> + <t:loop source="admins" value="actor"> + <t:actionlink t:id="viewUserAdmin" context="${actor.id}">${actorlabel}</t:actionlink> + </t:loop> + </t:parameter> + <t:parameter name="rightsCell"> + <t:actionlink t:id="rights" context="${detailElementContext}">${message:simexplorer.ui.web.rights.action}</t:actionlink> + </t:parameter> + </table> + +</t:layout> Modified: trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml =================================================================== --- trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml 2008-02-25 16:54:12 UTC (rev 1235) +++ trunk/simexplorer-is/simexplorer-is-web/src/resources/fr/cemagref/simexplorer/is/ui/web/components/Layout.tml 2008-02-25 18:16:52 UTC (rev 1236) @@ -31,15 +31,17 @@ <li><t:pagelink page="ElementImport">${message:simexplorer.ui.web.layout.import}</t:pagelink></li> </menu> - <t:if test="administrator"> - <h2 class="Title">${message:simexplorer.ui.web.layout.administration}</h2> - <menu class="menu"> + <h2 class="Title">${message:simexplorer.ui.web.layout.administration}</h2> + <menu class="menu"> + <li><t:pagelink page="ElementManage">${message:simexplorer.ui.web.layout.manageelements}</t:pagelink></li> + <t:if test="administrator"> <li><t:pagelink page="UserList">${message:simexplorer.ui.web.layout.userlist}</t:pagelink></li> <li><t:pagelink page="GroupList">${message:simexplorer.ui.web.layout.grouplist}</t:pagelink></li> - </menu> + </t:if> + </menu> + </div> - </t:if></div> <!-- menu --> <h1 class="tab">${message:simexplorer.ui.web.layout.search}</h1>
participants (1)
-
glandais@users.labs.libre-entreprise.org