Wikitty-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
May 2011
- 5 participants
- 78 discussions
r891 - in trunk/wikitty-api/src/main/java/org/nuiton/wikitty: . search
by sletellier@users.nuiton.org 16 May '11
by sletellier@users.nuiton.org 16 May '11
16 May '11
Author: sletellier
Date: 2011-05-16 11:24:13 +0200 (Mon, 16 May 2011)
New Revision: 891
Url: http://nuiton.org/repositories/revision/wikitty/891
Log:
#1519 TreeNodeResult has null id in proxy
Modified:
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/TreeNodeResult.java
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2011-05-14 11:45:33 UTC (rev 890)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2011-05-16 09:24:13 UTC (rev 891)
@@ -25,6 +25,7 @@
package org.nuiton.wikitty;
+import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.AbstractMap.SimpleEntry;
import org.apache.commons.logging.Log;
@@ -1032,7 +1033,7 @@
* @param <TARGET> le type d'objet pour le nouvel arbre
* @since 3.1
*/
- static private class ConvertTreeVisitor<TARGET> implements TreeNodeResult.Visitor<String> {
+ static private class ConvertTreeVisitor<TARGET extends Serializable> implements TreeNodeResult.Visitor<String> {
static private interface Converter<SOURCE, TARGET> {
public TARGET convert(SOURCE o);
Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/TreeNodeResult.java
===================================================================
--- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/TreeNodeResult.java 2011-05-14 11:45:33 UTC (rev 890)
+++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/search/TreeNodeResult.java 2011-05-16 09:24:13 UTC (rev 891)
@@ -25,12 +25,12 @@
package org.nuiton.wikitty.search;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
-import java.util.Vector;
import javax.swing.tree.DefaultMutableTreeNode;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -45,18 +45,21 @@
* Last update: $Date$
* by : $Author$
*/
-public class TreeNodeResult<T> extends DefaultMutableTreeNode implements Iterable<TreeNodeResult<T>> {
+public class TreeNodeResult<T extends Serializable> extends DefaultMutableTreeNode implements Iterable<TreeNodeResult<T>> {
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(TreeNodeResult.class);
private static final long serialVersionUID = 31L;
+ /** optional user object */
+ protected T object;
+
/**
* Visitor for TreeNodeResult
* @param <T>
*/
- static public interface Visitor<T> {
+ static public interface Visitor<T extends Serializable> {
/**
*
* @param node node to visit
@@ -79,11 +82,82 @@
* @param attCount le nombre d'attachment pour ce noeud (avec les sous noeud)
*/
public TreeNodeResult(T object, int attCount) {
- super(object);
+ this(object);
this.attCount = attCount;
}
/**
+ * sletellier 20110516 : override all methods using userObject,
+ * because this one is transient and getter and setters are not used
+ */
+
+ /**
+ * Creates a tree node with no parent, no children, but which allows
+ * children, and initializes it with the specified user object.
+ *
+ * @param userObject an Object provided by the user that constitutes
+ * the node's data
+ */
+ public TreeNodeResult(T userObject) {
+ this(userObject, true);
+ }
+
+ /**
+ * Creates a tree node with no parent, no children, initialized with
+ * the specified user object, and that allows children only if
+ * specified.
+ *
+ * @param userObject an Object provided by the user that constitutes
+ * the node's data
+ * @param allowsChildren if true, the node is allowed to have child
+ * nodes -- otherwise, it is always a leaf node
+ */
+ public TreeNodeResult(T userObject, boolean allowsChildren) {
+ super(userObject, allowsChildren);
+ this.object = userObject;
+ }
+
+ /**
+ * Sets the user object for this node to <code>userObject</code>.
+ *
+ * @param userObject the Object that constitutes this node's
+ * user-specified data
+ * @see #getUserObject
+ * @see #toString
+ */
+ public void setUserObject(T userObject) {
+ super.setUserObject(userObject);
+ this.object = userObject;
+ }
+
+ /**
+ * Returns this node's user object.
+ *
+ * @return the Object stored at this node by the user
+ * @see #toString
+ */
+ @Override
+ public T getUserObject() {
+ return object;
+ }
+
+ /**
+ * Returns the result of sending <code>toString()</code> to this node's
+ * user object, or null if this node has no user object.
+ *
+ * @see #getUserObject
+ */
+ @Override
+ public String toString() {
+ T userObject = getUserObject();
+ if (userObject == null) {
+ return null;
+ } else {
+ return userObject.toString();
+ }
+ }
+
+ /**
* Visite en profondeur de l'arbre, il est possible d'arreter la visite
* soit en entrant dans le noeud soit en sortant du noeud, si respectivement
* visitEnter ou visitLeave retourne false.
@@ -153,7 +227,7 @@
* @return l'objet associe avec ce noeud (id, wikitty ou BusinessEntity)
*/
public T getObject() {
- return (T)getUserObject();
+ return getUserObject();
}
/**
1
0
Author: tchemit
Date: 2011-05-14 13:45:33 +0200 (Sat, 14 May 2011)
New Revision: 890
Url: http://nuiton.org/repositories/revision/wikitty/890
Log:
Update mavenpom4redmine to 2.5.4.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-13 16:03:23 UTC (rev 889)
+++ trunk/pom.xml 2011-05-14 11:45:33 UTC (rev 890)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.5.3</version>
+ <version>2.5.4</version>
</parent>
<!-- ************************************************************* -->
1
0
r889 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication resources
by mfortun@users.nuiton.org 13 May '11
by mfortun@users.nuiton.org 13 May '11
13 May '11
Author: mfortun
Date: 2011-05-13 18:03:23 +0200 (Fri, 13 May 2011)
New Revision: 889
Url: http://nuiton.org/repositories/revision/wikitty/889
Log:
* add the very beginning for multicontext support
Added:
trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-fallback.properties
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java 2011-05-13 12:50:59 UTC (rev 888)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationConfig.java 2011-05-13 16:03:23 UTC (rev 889)
@@ -7,6 +7,8 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.ArgumentsParserException;
+import org.nuiton.wikitty.publication.synchro.PropertiesExtended;
+
import static org.nuiton.i18n.I18n._;
public class WikittyPublicationConfig {
@@ -20,13 +22,32 @@
private WikittyPublicationConfig() {
}
+
+
+ static public ApplicationConfig getFallBackConfig(){
+ //TODO mfortun-2011-05-13 temporary import/load properties for fallback service
+ ApplicationConfig conf = new ApplicationConfig(
+ OptionFallBack.class, null, null, null);
+
+ try {
+ conf.parse(null);
+ } catch (ArgumentsParserException eee) {
+ if (log.isErrorEnabled()) {
+ log.error("Can't load Wikitty Publication configuration", eee);
+ }
+ }
+ return conf;
+
+ }
static public ApplicationConfig getConfig() {
- return getConfig(null, null);
+ return getConfig(null,null );
}
static public ApplicationConfig getConfig(
Properties props, String configFilename, String ... args) {
+
+
ApplicationConfig conf = new ApplicationConfig(
Option.class, null, props, configFilename);
@@ -52,13 +73,81 @@
return instance;
}
+
+
+
+ public enum OptionFallBack implements ApplicationConfig.OptionDef {
+ CONFIG_FILE(
+ ApplicationConfig.CONFIG_FILE_NAME,
+ _("wikitty-publication.config.configFileName.description"),
+ "wikitty-publication-ws-fallback.properties", String.class, false, false);
+
+
+
+ public final String key;
+ public final String description;
+ public String defaultValue;
+ public final Class<?> type;
+ public boolean isTransient;
+ public boolean isFinal;
+ OptionFallBack(String key, String description, String defaultValue,
+ Class<?> type, boolean isTransient, boolean isFinal) {
+ this.key = key;
+ this.description = description;
+ this.defaultValue = defaultValue;
+ this.type = type;
+ this.isFinal = isFinal;
+ this.isTransient = isTransient;
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ public Class<?> getType() {
+ return type;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ public boolean isTransient() {
+ return isTransient;
+ }
+
+ public boolean isFinal() {
+ return isFinal;
+ }
+
+ public void setDefaultValue(String defaultValue) {
+ this.defaultValue = defaultValue;
+ }
+
+ public void setTransient(boolean isTransient) {
+ this.isTransient = isTransient;
+ }
+
+ public void setFinal(boolean isFinal) {
+ this.isFinal = isFinal;
+ }
+ }
+
+
+
public enum Option implements ApplicationConfig.OptionDef {
CONFIG_FILE(
ApplicationConfig.CONFIG_FILE_NAME,
_("wikitty-publication.config.configFileName.description"),
"wikitty-publication-ws-default.properties", String.class, false, false);
+
+
public final String key;
public final String description;
public String defaultValue;
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-13 12:50:59 UTC (rev 888)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-13 16:03:23 UTC (rev 889)
@@ -1,36 +1,85 @@
package org.nuiton.wikitty.publication;
-import java.io.Serializable;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
import org.nuiton.wikitty.WikittyServiceFactory;
+import org.nuiton.wikitty.entities.BusinessEntity;
+import org.nuiton.wikitty.entities.BusinessEntityImpl;
+import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
+import org.nuiton.wikitty.entities.WikittyUser;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.PagedResult;
+import org.nuiton.wikitty.search.TreeNodeResult;
+import org.nuiton.wikitty.services.WikittyEvent;
/**
- * Proxy use by action in wikitty publication
+ * Proxy use by action in wikitty publication it encapsulate two wikitty proxy
+ * because we can have two distinct service use to store wikitty used by
+ * publication structure
*
* @author mfortun
*
*/
public class WikittyPublicationProxy extends WikittyProxy {
+ public static String WIKITTY_SERVICE_FALLBACK_COMPONNENT_KEY;
+ public static String WIKITTY_SERVICE_FALLBACK_URL_KEY;
+
/*
- * TODO mfortun-2011-05-06 in this class add multicontexte supportby
- * overiding wikitty proxy method
+ * TODO mfortun-2011-05-13 multicontext the begginning,
+ * need to think about how invoke method in the different proxy
+ * properly.
*/
/**
*
*/
private static final long serialVersionUID = -568462410130999972L;
- static protected WikittyService ws = null;
+ static protected WikittyService service = null;
+ static protected WikittyService serviceFallback = null;
+ protected WikittyProxy fallbackProxy = null;
+ protected WikittyProxy mainProxy = null;
+
protected WikittyPublicationProxy(ApplicationConfig config,
WikittyService ws) {
- super(config, ws);
+ mainProxy = new WikittyProxy(config, ws);
+
}
+ protected WikittyPublicationProxy(ApplicationConfig config,
+ WikittyService ws, ApplicationConfig configFallBack,
+ WikittyService serviceback) {
+ this(config, ws);
+ fallbackProxy = new WikittyProxy(configFallBack, serviceback);
+ }
+
+ /*
+ *
+ */
+
+ static public WikittyPublicationProxy getInstanceWithFallback(String token) {
+ ApplicationConfig config = WikittyPublicationConfig.getInstance();
+ WikittyService ws = getWikittyService(config);
+
+ ApplicationConfig configFallBack = WikittyPublicationConfig
+ .getInstance();
+ WikittyService fallservice = getWikittyServiceFallBack(configFallBack);
+
+ WikittyPublicationProxy result = new WikittyPublicationProxy(config,
+ ws, configFallBack, fallservice);
+ result.setSecurityToken(token);
+
+ return result;
+ }
+
static public WikittyPublicationProxy getInstance(String token) {
ApplicationConfig config = WikittyPublicationConfig.getInstance();
WikittyService ws = getWikittyService(config);
@@ -41,14 +90,336 @@
}
static protected WikittyService getWikittyService(ApplicationConfig config) {
- if (ws == null) {
+ if (service == null) {
synchronized (WikittyPublicationProxy.class) {
- if (ws == null) {
- ws = WikittyServiceFactory.buildWikittyService(config);
+ if (service == null) {
+ service = WikittyServiceFactory.buildWikittyService(config);
}
}
}
- return ws;
+ return service;
}
+ static protected WikittyService getWikittyServiceFallBack(
+ ApplicationConfig config) {
+ if (serviceFallback == null) {
+ synchronized (WikittyPublicationProxy.class) {
+ if (serviceFallback == null) {
+ serviceFallback = WikittyServiceFactory
+ .buildWikittyService(config);
+ }
+ }
+ }
+ return serviceFallback;
+ }
+
+ public boolean isFallbackService() {
+ return fallbackProxy != null;
+ }
+
+ public void login(String login, String password) {
+ mainProxy.login(login, password);
+ if ( isFallbackService()) {
+ fallbackProxy.login(login, password);
+ }
+ }
+
+ public void logout() {
+ mainProxy.logout();
+ if ( isFallbackService()) {
+ fallbackProxy.logout();
+ }
+ }
+
+ public String getSecurityToken() {
+ return mainProxy.getSecurityToken();
+ }
+
+ public void setSecurityToken(String securityToken) {
+ mainProxy.setSecurityToken(securityToken);
+ if ( isFallbackService()) {
+ fallbackProxy.setSecurityToken(securityToken);
+ }
+ }
+
+ public WikittyUser getUser() {
+ return mainProxy.getUser();
+ }
+
+ public <E extends BusinessEntity> E getUser(Class<E> clazz) {
+ return mainProxy.getUser(clazz);
+ }
+
+ public WikittyService getWikittyService() {
+ return mainProxy.getWikittyService();
+ }
+
+ public void setWikittyService(WikittyService wikittyService) {
+ mainProxy.setWikittyService(wikittyService);
+ }
+
+ public <E extends BusinessEntity> E cast(BusinessEntity source,
+ Class<E> target) {
+ return mainProxy.cast(source, target);
+ }
+
+ public <E extends BusinessEntity> E store(E e) {
+ return mainProxy.store(e);
+ }
+
+ public Wikitty store(Wikitty w) {
+ // TODO mfortun-2011-05-13 store in wich one ?
+ // check before if wikitty exist on fall back
+ // and the stock on it if exist and store after on main
+
+ return mainProxy.store(w);
+ }
+
+ public <E extends BusinessEntity> List<E> store(E e1, E e2, E... eN) {
+ return mainProxy.store(e1, e2, eN);
+ }
+
+ public Wikitty[] store(Wikitty w1, Wikitty w2, Wikitty... wN) {
+ return mainProxy.store(w1, w2, wN);
+ }
+
+ public <E extends BusinessEntity> List<E> store(List<E> objets) {
+ return mainProxy.store(objets);
+ }
+
+ public List<Wikitty> storeWikitty(List<Wikitty> wikitties) {
+ return mainProxy.storeWikitty(wikitties);
+ }
+
+ public <E extends BusinessEntity> E restore(Class<E> clazz, String id,
+ boolean checkExtension) {
+ return mainProxy.restore(clazz, id, checkExtension);
+ }
+
+ public Wikitty restore(String id) {
+ Wikitty result = mainProxy.restore(id);
+
+ if ( isFallbackService() && result == null) {
+ result = fallbackProxy.restore(id);
+ }
+
+ return result;
+ }
+
+ public <E extends BusinessEntity> E restore(Class<E> clazz, String id) {
+ E result = mainProxy.restore(clazz, id);
+
+ if ( isFallbackService() && result == null) {
+ result = fallbackProxy.restore(clazz, id);
+ }
+
+ return result;
+ }
+
+ public List<Wikitty> restore(List<String> id) {
+ List<Wikitty> result = mainProxy.restore(id);
+
+ // TODO mfortun-2011-05-13 need to merge the two list
+ if ( isFallbackService() && result == null) {
+ result = fallbackProxy.restore( id);
+ }
+
+ return result;
+
+ }
+
+ public <E extends BusinessEntity> List<E> restore(Class<E> clazz,
+ List<String> id, boolean checkExtension) {
+ return mainProxy.restore(clazz, id, checkExtension);
+ }
+
+ public <E extends BusinessEntity> List<E> restore(Class<E> clazz,
+ List<String> id) {
+ return mainProxy.restore(clazz, id);
+ }
+
+ public void delete(String id) {
+ mainProxy.delete(id);
+ }
+
+ public <E extends BusinessEntity> void delete(E object) {
+ mainProxy.delete(object);
+ }
+
+ public void delete(Collection<String> ids) {
+ mainProxy.delete(ids);
+ }
+
+ public <E extends BusinessEntity> void delete(List<E> objets) {
+ mainProxy.delete(objets);
+ }
+
+ public <E extends BusinessEntityImpl> PagedResult<E> findAllByExample(E e,
+ int firstIndex, int endIndex, String... fieldFacet) {
+ return mainProxy.findAllByExample(e, firstIndex, endIndex, fieldFacet);
+ }
+
+ public <E extends BusinessEntityImpl> E findByExample(E e) {
+ return mainProxy.findByExample(e);
+ }
+
+ public <E extends BusinessEntity> List<PagedResult<E>> findAllByCriteria(
+ Class<E> clazz, List<Criteria> criterias) {
+ return mainProxy.findAllByCriteria(clazz, criterias);
+ }
+
+ public <E extends BusinessEntity> PagedResult<E> findAllByCriteria(
+ Class<E> clazz, Criteria criteria) {
+ return mainProxy.findAllByCriteria(clazz, criteria);
+ }
+
+ public <E extends BusinessEntity> PagedResult<E>[] findAllByCriteria(
+ Class<E> clazz, Criteria c1, Criteria c2, Criteria... otherCriteria) {
+ return mainProxy.findAllByCriteria(clazz, c1, c2, otherCriteria);
+ }
+
+ public List<PagedResult<Wikitty>> findAllByCriteria(List<Criteria> criteria) {
+ return mainProxy.findAllByCriteria(criteria);
+ }
+
+ public PagedResult<Wikitty> findAllByCriteria(Criteria criteria) {
+ return mainProxy.findAllByCriteria(criteria);
+ }
+
+ public PagedResult<Wikitty>[] findAllByCriteria(Criteria c1, Criteria c2,
+ Criteria... otherCriteria) {
+ return mainProxy.findAllByCriteria(c1, c2, otherCriteria);
+ }
+
+ public List<PagedResult<String>> findAllIdByCriteria(List<Criteria> criteria) {
+ return mainProxy.findAllIdByCriteria(criteria);
+ }
+
+ public PagedResult<String> findAllIdByCriteria(Criteria criteria) {
+ return mainProxy.findAllIdByCriteria(criteria);
+ }
+
+ public PagedResult<String>[] findAllIdByCriteria(Criteria c1, Criteria c2,
+ Criteria... otherCriteria) {
+ return mainProxy.findAllIdByCriteria(c1, c2, otherCriteria);
+ }
+
+ public List<String> findIdByCriteria(List<Criteria> criteria) {
+ return mainProxy.findIdByCriteria(criteria);
+ }
+
+ public String findIdByCriteria(Criteria criteria) {
+ return mainProxy.findIdByCriteria(criteria);
+ }
+
+ public String[] findIdByCriteria(Criteria c1, Criteria c2,
+ Criteria... otherCriteria) {
+ return mainProxy.findIdByCriteria(c1, c2, otherCriteria);
+ }
+
+ public <E extends BusinessEntity> List<E> findByCriteria(Class<E> clazz,
+ List<Criteria> criterias) {
+ return mainProxy.findByCriteria(clazz, criterias);
+ }
+
+ public <E extends BusinessEntity> E findByCriteria(Class<E> clazz,
+ Criteria criteria) {
+ return mainProxy.findByCriteria(clazz, criteria);
+ }
+
+ public <E extends BusinessEntity> E[] findByCriteria(Class<E> clazz,
+ Criteria c1, Criteria c2, Criteria... otherCriteria) {
+ return mainProxy.findByCriteria(clazz, c1, c2, otherCriteria);
+ }
+
+ public List<Wikitty> findByCriteria(List<Criteria> criteria) {
+ return mainProxy.findByCriteria(criteria);
+ }
+
+ public Wikitty findByCriteria(Criteria criteria) {
+ return mainProxy.findByCriteria(criteria);
+ }
+
+ public Wikitty[] findByCriteria(Criteria c1, Criteria c2,
+ Criteria... otherCriteria) {
+ return mainProxy.findByCriteria(c1, c2, otherCriteria);
+ }
+
+ public TreeNodeResult<Wikitty> findTreeNode(String wikittyId, int depth,
+ boolean count, Criteria filter) {
+ return mainProxy.findTreeNode(wikittyId, depth, count, filter);
+ }
+
+ public TreeNodeResult<String> findAllIdTreeNode(String wikittyId,
+ int depth, boolean count, Criteria filter) {
+ return mainProxy.findAllIdTreeNode(wikittyId, depth, count, filter);
+ }
+
+ public WikittyEvent deleteTree(String treeNodeId) {
+ return mainProxy.deleteTree(treeNodeId);
+ }
+
+ public Wikitty restoreVersion(String wikittyId, String version) {
+ return mainProxy.restoreVersion(wikittyId, version);
+ }
+
+ public <E extends BusinessEntity> boolean hasType(Class<E> clazz,
+ String wikittyId) {
+ return mainProxy.hasType(clazz, wikittyId);
+ }
+
+ public WikittyEvent storeExtension(WikittyExtension ext) {
+ return mainProxy.storeExtension(ext);
+ }
+
+ public WikittyEvent storeExtension(Collection<WikittyExtension> exts) {
+ return mainProxy.storeExtension(exts);
+ }
+
+ public WikittyExtension restoreExtension(String extensionId) {
+ return mainProxy.restoreExtension(extensionId);
+ }
+
+ public WikittyExtension restoreExtensionLastVersion(String extensionName) {
+ return mainProxy.restoreExtensionLastVersion(extensionName);
+ }
+
+ public void deleteExtension(String extName) {
+ mainProxy.deleteExtension(extName);
+ }
+
+ public void deleteExtension(Collection<String> extNames) {
+ mainProxy.deleteExtension(extNames);
+ }
+
+ public List<String> getAllExtensionIds() {
+ return mainProxy.getAllExtensionIds();
+ }
+
+ public List<String> getAllExtensionsRequires(String extensionName) {
+ return mainProxy.getAllExtensionsRequires(extensionName);
+ }
+
+ public WikittyEvent clear() {
+ return mainProxy.clear();
+ }
+
+ public void syncSearchEngine() {
+ mainProxy.syncSearchEngine();
+ }
+
+ public Wikitty getWikitty(BusinessEntity entity) {
+ return mainProxy.getWikitty(entity);
+ }
+
+ public boolean isMember(String groupName) {
+ return mainProxy.isMember(groupName);
+ }
+
+ public WikittyUser getLoggedInUser() {
+ return mainProxy.getLoggedInUser();
+ }
+
+
+
}
Added: trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-fallback.properties
===================================================================
--- trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-fallback.properties (rev 0)
+++ trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-fallback.properties 2011-05-13 16:03:23 UTC (rev 889)
@@ -0,0 +1,58 @@
+###
+# #%L
+# Wikitty :: publication
+#
+# $Id: wikitty-publication-ws-default.properties 823 2011-04-20 14:45:47Z mfortun $
+# $HeadURL: http://svn.nuiton.org/svn/wikitty/trunk/wikitty-publication/src/main/resour… $
+# %%
+# Copyright (C) 2009 - 2010 CodeLutin, Benjamin Poussin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+
+wikitty.data.directory=./targetBD2/data
+wikitty.service.server.url=http://localhost:2222/wikitty
+wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties
+wikitty.storage.jdbc.driver=org.h2.Driver
+wikitty.storage.jdbc.host=jdbc:h2:file:${wikitty.data.directory}/data/db
+wikitty.storage.jdbc.login=sa
+wikitty.storage.jdbc.password=
+wikitty.storage.jdbc.xadatasource=org.h2.jdbcx.JdbcDataSource
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.URL=${wikitty.storage.jdbc.host}
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.user=${wikitty.storage.jdbc.login}
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.password=${wikitty.storage.jdbc.password}
+wikitty.searchengine.solr.directory.data=${wikitty.data.directory}/data/solr
+wikitty.searchengine.solr.directory.factory=solr.StandardDirectoryFactory
+wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceStorage,\
+org.nuiton.wikitty.services.WikittyServiceNotifier,\
+org.nuiton.wikitty.services.WikittyServiceCached,\
+org.nuiton.wikitty.services.WikittyServiceSecurity,\
+org.nuiton.wikitty.services.WikittyServiceAccessStat,\
+org.nuiton.wikitty.services.WikittyServiceCajoServer
+
+wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
+org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
+org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr
+wikitty.service.cache.listenevents=false
+wikitty.service.cache.allwaysRestoreCopies=false
+wikitty.service.event.propagate=false
+wikitty.service.event.listen=false
+wikitty.service.accessstat.extensions=WikittyPubText,WikittyPubData
+wikitty.addon.export.threadnumber=1
+wikitty.addon.export.directory=${wikitty.data.directory}/export
+wikitty.addon.export.publicurl=file://${wikitty.data.directory}/export/
+wikitty.WikittyServiceAccessStat.components=\
+org.nuiton.wikitty.services.WikittyServiceAccessStat$AccessStatStorageLog
Property changes on: trunk/wikitty-publication/src/main/resources/wikitty-publication-ws-fallback.properties
___________________________________________________________________
Added: svn:mime-type
+ text/plain
1
0
r888 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication java/org/nuiton/wikitty/publication/action resources webapp
by mfortun@users.nuiton.org 13 May '11
by mfortun@users.nuiton.org 13 May '11
13 May '11
Author: mfortun
Date: 2011-05-13 14:50:59 +0200 (Fri, 13 May 2011)
New Revision: 888
Url: http://nuiton.org/repositories/revision/wikitty/888
Log:
* cosmetic change
* add register page and action
* #1504 login implemented
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRegister.java
trunk/wikitty-publication/src/main/webapp/register.jsp
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
trunk/wikitty-publication/src/main/resources/struts.xml
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java 2011-05-13 09:15:02 UTC (rev 887)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java 2011-05-13 12:50:59 UTC (rev 888)
@@ -40,19 +40,9 @@
*/
public class LoginInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = -7520186185205372272L;
- protected String succes;
+
protected String error;
-
-
- public String getSucces() {
- return succes;
- }
-
- public void setSucces(String succes) {
- this.succes = succes;
- }
-
public String getError() {
return error;
}
@@ -65,14 +55,11 @@
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map<String, Object> session = ActionContext.getContext().getSession();
-
-
-
-
WikittyPublicationSession pubSession = WikittyPublicationSession.getWikittyPublicationSession(session);
WikittyUser user = pubSession.getUser();
String result = null;
+
//If the user isn't logged in
if (user == null) {
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java 2011-05-13 09:15:02 UTC (rev 887)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java 2011-05-13 12:50:59 UTC (rev 888)
@@ -28,8 +28,6 @@
import org.nuiton.wikitty.entities.WikittyUser;
import org.nuiton.wikitty.publication.WikittyPublicationProxy;
-import com.opensymphony.xwork2.ActionContext;
-
/**
* Class used as an action login, call the login method on the proxy with
* login/password pass threw the login form
@@ -43,8 +41,9 @@
protected String password;
protected String error;
- static public String DEFAULT_ERROR = "login.jsp";
protected String success;
+
+ static public String DEFAULT_ERROR = "login.jsp";
static public String DEFAULT_SUCCESS = "index.jsp";
public String getLogin() {
@@ -63,8 +62,27 @@
this.password = password;
}
- public String execute() {
+ public String getError() {
+ return error;
+ }
+ public void setError(String error) {
+ this.error = error;
+ }
+
+ public String getSuccess() {
+ return success;
+ }
+
+ public void setSuccess(String success) {
+ this.success = success;
+ }
+
+ /**
+ * Method executed when struts invoke it and the struts action mapped to
+ * this class
+ */
+ public String execute() {
String result = ERROR;
if (login != null) {
@@ -78,10 +96,11 @@
WikittyPublicationProxy proxy = getWikittyPublicationSession()
.getProxy();
+ // Try to log a wikitty user
proxy.login(login, md5);
WikittyUser user = proxy.getLoggedInUser();
-
+ // check if a user is logged
if (user != null) {
getWikittyPublicationSession().setUser(user);
result = SUCCESS;
@@ -97,25 +116,4 @@
return result;
}
- public String getError() {
-
- return error;
- }
-
- public void setError(String error) {
-
- this.error = error;
- }
-
- public String getSuccess() {
-
- return success;
- }
-
- public void setSuccess(String success) {
-
- this.success = success;
-
- }
-
}
\ No newline at end of file
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java 2011-05-13 09:15:02 UTC (rev 887)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java 2011-05-13 12:50:59 UTC (rev 888)
@@ -28,33 +28,26 @@
-
+/**
+ * Class used as an action logout
+ *
+ * @author mfortun
+ *
+ */
public class PublicationActionLogout extends PublicationBaseAction {
protected String success;
- private static final long serialVersionUID = 4806944250461551896L;
-
-
-
-
-
+ private static final long serialVersionUID = 4806944250461551896L;
+
public String getSuccess() {
return success;
}
-
-
-
-
-
+
public void setSuccess(String success) {
this.success = success;
}
-
-
-
-
public String execute() {
WikittyPublicationSession.invalidate(session);
return SUCCESS;
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRegister.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRegister.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRegister.java 2011-05-13 12:50:59 UTC (rev 888)
@@ -0,0 +1,112 @@
+package org.nuiton.wikitty.publication.action;
+
+import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.entities.WikittyUser;
+import org.nuiton.wikitty.entities.WikittyUserImpl;
+import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.Search;
+
+/**
+ * Class mapped to the registered action, it create a wikittyuser with the
+ * information send by the form
+ *
+ * @author mfortun
+ *
+ */
+public class PublicationActionRegister extends PublicationBaseAction {
+ private static final long serialVersionUID = 2204772861770399542L;
+ protected String login;
+ protected String password;
+ protected String repeatPassword;
+
+ public String getLogin() {
+ return login;
+ }
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getRepeatPassword() {
+ return repeatPassword;
+ }
+
+ public void setRepeatPassword(String repeatPassword) {
+ this.repeatPassword = repeatPassword;
+ }
+
+ protected boolean alreadyRegistered() {
+ boolean result = true;
+
+ WikittyProxy proxy = getWikittyPublicationProxy();
+ Criteria criteria = Search.query()
+ .eq(WikittyUser.FQ_FIELD_WIKITTYUSER_LOGIN, login).criteria();
+
+ // If the user doesn't already exist
+ if (proxy.findByCriteria(WikittyUser.class, criteria) == null) {
+ result = false;
+ }
+
+ return result;
+ }
+
+ /**
+ * Registers the new user and sends an email to confirm registration
+ */
+ public String execute() {
+ String result = INPUT;
+
+ try {
+ if (login != null) {
+ login = login.trim();
+ if (password != null) {
+ if (!password.equals(repeatPassword)) {
+ // TODO mfortun-2011-05-13 handle error message in jsp
+ } else {
+ String md5 = StringUtil.encodeMD5(password);
+
+ // If the email address isn't already used
+ if (!alreadyRegistered()) {
+ WikittyProxy proxy = getWikittyPublicationProxy();
+
+ WikittyUser user = new WikittyUserImpl();
+ user.setLogin(login);
+ user.setPassword(md5);
+
+ WikittyUser userLoged = proxy.store(user);
+ // check if wikitty still exist
+ if (userLoged == null) {
+ // TODO mfortun-2011-05-13 handle error message
+ // in jsp
+ } else {
+ // try to login with information
+ proxy.login(login, md5);
+ // if logged it works
+ if (proxy.getLoggedInUser() != null) {
+
+ getWikittyPublicationSession().setUser(
+ proxy.getLoggedInUser());
+
+ result = SUCCESS;
+ }
+ }
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ // TODO mfortun-2011-05-13 really handle exception
+ e.printStackTrace();
+ }
+ return result;
+ }
+}
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionRegister.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-13 09:15:02 UTC (rev 887)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-13 12:50:59 UTC (rev 888)
@@ -1,12 +1,9 @@
package org.nuiton.wikitty.publication.action;
-import java.util.Collection;
+
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
-
import org.apache.struts2.interceptor.SessionAware;
-import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.publication.WikittyPublicationProxy;
import org.nuiton.wikitty.publication.WikittyPublicationSession;
import org.nuiton.wikitty.publication.entities.WikittyPubData;
@@ -60,40 +57,8 @@
this.session = sess;
}
+
/**
- * Recherche le type mime dont on a besoin. Par defaut recherche dans les
- * arguments si on a dans l'ordre de preference <li>ARG_MIMETYPE +
- * SEARCH_SEPARATOR + name (ex: mimetype:MyCommand.name:df=text/plain) <li>
- * ARG_MIMETYPE (ex: mimetype=MyCommand.mimetype) <li>si w a l'extension
- * WikittyPubText alors on prend la valeur du champs mimetype <li>si w a
- * l'extension WikittyPubData alors on prend la valeur du champs mimetype
- * <li>on retourne null
- *
- * @param context
- * @param name
- * la chaine utilise pour faire la recherche du wikitty
- * @param w
- * le wikitty trouve grace a name
- * @return le mimetype ou null
- *
- * protected String getMimeType( String name, Wikitty w) { //
- * looking for mimetype field String mimetype = context.getArgument(
- * ARG_MIMETYPE + SEARCH_SEPARATOR + name, null); if (mimetype ==
- * null) { mimetype = context.getArgument(ARG_MIMETYPE, null); } if
- * (mimetype != null) { int i =
- * mimetype.indexOf(WikittyUtil.FQ_FIELD_NAME_SEPARATOR); if (i > 0)
- * { // perhaps fully qualified field String extName =
- * WikittyExtension.extractExtensionName(mimetype); String fieldName
- * = WikittyExtension.extractFieldName(mimetype); if
- * (w.hasField(extName, fieldName)) { // mimetype target field in
- * wikitty // replace with field value mimetype =
- * w.getFieldAsString(extName, fieldName); } } } else if
- * (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) { mimetype =
- * WikittyPubTextHelper.getMimeType(w); } else if
- * (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) { mimetype =
- * WikittyPubDataHelper.getMimeType(w); } return mimetype; }
- */
- /**
* Retourne le critere pour recherche l'objet sur lequel faire l'action. Le
* nom du critere doit etre convenablement positionné avec la chaine qui a
* permit la recherche
@@ -127,33 +92,7 @@
return result;
}
- /**
- * Recherche le champs contenant le content dont on a besoin. Par defaut
- * recherche dans les arguments si on a dans l'ordre de preference <li>
- * ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name (ex:
- * contentField:MyCommand.name:df=MyCommand.script) <li>ARG_CONTENT_FIELD
- * (ex: contentField=MyCommand.script) <li>si w a l'extension WikittyPubText
- * alors on prend le champs content <li>si w a l'extension WikittyPubData
- * alors on prend le champs content <li>on retourne null
- *
- * @param context
- * @param name
- * la chaine utilise pour faire la recherche du wikitty
- * @param w
- * le wikitty trouve grace a name
- * @return le champs contenant le content ou null
- *
- * protected String getContentFieldName(WikittyPublicationContext
- * context, String name, Wikitty w) { String contentField =
- * context.getArgument( ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name,
- * null); if (contentField == null) { contentField =
- * context.getArgument(ARG_CONTENT_FIELD, null); } if (contentField
- * == null) { if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT))
- * { contentField = WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_CONTENT;
- * } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
- * contentField = WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_CONTENT; }
- * } return contentField; }
- */
+
protected String getError(PublicationContext context) {
context.setContentType("text/html");
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java 2011-05-13 09:15:02 UTC (rev 887)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationContext.java 2011-05-13 12:50:59 UTC (rev 888)
@@ -10,7 +10,12 @@
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.WikittyService;
-
+/**
+ * Interface for eval action.
+ *
+ * @author mfortun
+ *
+ */
public interface PublicationContext {
Modified: trunk/wikitty-publication/src/main/resources/struts.xml
===================================================================
--- trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-13 09:15:02 UTC (rev 887)
+++ trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-13 12:50:59 UTC (rev 888)
@@ -10,20 +10,20 @@
<constant name="struts.enable.SlashesInActionNames" value="true" />
-
+ <!-- basic interceptor stack use redefine our stack -->
<package name="publicArea" extends="struts-default">
<interceptors>
<interceptor-stack name="publicAreaStack">
- <interceptor-ref name="defaultStack">
-
+ <interceptor-ref name="defaultStack">
+
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="publicAreaStack" />
</package>
-
-
-
+
+
+
<!-- Define a package for the login area -->
<package name="loginArea" extends="publicArea">
<interceptors>
@@ -36,13 +36,13 @@
</interceptors>
<default-interceptor-ref name="loginAreaStack" />
</package>
-
- <!-- Define a package for the restricted area -->
+
+ <!-- Define a package for the restricted area must be logged to access -->
<package name="restrictedArea" extends="publicArea">
<interceptors>
<interceptor name="login"
class="org.nuiton.wikitty.publication.LoginInterceptor">
- <param name="error">/login.jsp</param>
+ <param name="error">/wikitty-publication/login_input.action</param>
</interceptor>
<interceptor-stack name="restrictedAreaStack">
<interceptor-ref name="login" />
@@ -51,27 +51,26 @@
</interceptors>
<default-interceptor-ref name="restrictedAreaStack" />
</package>
-
+
<package name="login" extends="loginArea">
- <action name="login"
- class="org.nuiton.wikitty.publication.action.PublicationActionLogin">
- <result>login.jsp</result>
- <result name="success" type="redirect">${success}</result>
- <result name="error" type="redirect">${error}</result>
- <!--
- <result name="input">login.jsp</result>
- <result name="login" type="redirectAction">home</result>
- <result type="success">home</result>
- -->
+ <action name="register_*" method="{1}"
+ class="org.nuiton.wikitty.publication.action.PublicationActionRegister">
+ <result name="input">register.jsp</result>
+ <result type="redirect">index.jsp</result>
</action>
- <action name="logout" class="org.nuiton.wikitty.publication.action.PublicationActionLogout">
+ <action name="login_*" method="{1}"
+ class="org.nuiton.wikitty.publication.action.PublicationActionLogin">
+ <result name="input">login.jsp</result>
+ <result name="success" type="redirect">${success}</result>
+ <result name="error" type="redirect">${error}</result>
+ </action>
+ <action name="logout"
+ class="org.nuiton.wikitty.publication.action.PublicationActionLogout">
<result type="redirect">${success}</result>
</action>
</package>
-
-
-
+ <!-- Action aviable only to logged user -->
<package name="publication" extends="restrictedArea">
<action name="*/edit/*"
@@ -108,18 +107,4 @@
</result>
</action>
</package>
-
-
-
-
-
- <!-- <package name="wikitty-publication" namespace="/" extends="struts-default">
- <default-action-ref name="home" /> <action name="*/action/*" class="org.nuiton.nospamweb.action.CheckAction">
- <param name="context">{1}</param> <param name="args">{1}</param> <result
- name="input">WEB-INF/jsp/captcha.jsp</result> <result name="success" type="redirect">${redirectTo}</result>
- </action> </package> code base for action <action name="*/action/*" class="org.nuiton.nospamweb.action.CheckAction">
- <param name="context">{1}</param> <param name="args">{1}</param> <result
- name="input">WEB-INF/jsp/captcha.jsp</result> <result name="success" type="redirect">${redirectTo}</result>
- </action> -->
-
</struts>
Added: trunk/wikitty-publication/src/main/webapp/register.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/register.jsp (rev 0)
+++ trunk/wikitty-publication/src/main/webapp/register.jsp 2011-05-13 12:50:59 UTC (rev 888)
@@ -0,0 +1,25 @@
+
+<%@taglib prefix="s" uri="/struts-tags"%>
+<div id="content">
+ <div id="formFrame" class="fond">
+ <h1>
+ <s:text name="Register" />
+ </h1>
+ <s:form action="register">
+ <s:actionerror />
+ <p>
+ <s:textfield key="publication.login.login" name="login"
+ labelposition="top" labelSeparator=" :" />
+ <s:password key="publication.login.password" name="password"
+ labelposition="top" labelSeparator=" :" />
+ <s:password key="publication.login.repeatPassword"
+ name="repeatPassword" labelposition="top" labelSeparator=" :" />
+ <s:submit key="publication.register.submit" name="submit" />
+ </p>
+ </s:form>
+ <s:a action="login_input" id="loginLink">
+ <s:text name="login" />
+ </s:a>
+ </div>
+
+</div>
\ No newline at end of file
Property changes on: trunk/wikitty-publication/src/main/webapp/register.jsp
___________________________________________________________________
Added: svn:mime-type
+ text/plain
1
0
r887 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action resources
by mfortun@users.nuiton.org 13 May '11
by mfortun@users.nuiton.org 13 May '11
13 May '11
Author: mfortun
Date: 2011-05-13 11:15:02 +0200 (Fri, 13 May 2011)
New Revision: 887
Url: http://nuiton.org/repositories/revision/wikitty/887
Log:
* logout action with success redirection
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
trunk/wikitty-publication/src/main/resources/struts.xml
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java 2011-05-13 09:00:49 UTC (rev 886)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java 2011-05-13 09:15:02 UTC (rev 887)
@@ -27,9 +27,34 @@
+
+
public class PublicationActionLogout extends PublicationBaseAction {
+
+ protected String success;
+
private static final long serialVersionUID = 4806944250461551896L;
+
+
+
+
+ public String getSuccess() {
+ return success;
+ }
+
+
+
+
+
+ public void setSuccess(String success) {
+ this.success = success;
+ }
+
+
+
+
+
public String execute() {
WikittyPublicationSession.invalidate(session);
return SUCCESS;
Modified: trunk/wikitty-publication/src/main/resources/struts.xml
===================================================================
--- trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-13 09:00:49 UTC (rev 886)
+++ trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-13 09:15:02 UTC (rev 887)
@@ -64,8 +64,8 @@
<result type="success">home</result>
-->
</action>
- <action name="logout" class="org.nuiton.wikitty.publication.action.PublicationActionLogin">
- <result type="redirectAction">login</result>
+ <action name="logout" class="org.nuiton.wikitty.publication.action.PublicationActionLogout">
+ <result type="redirect">${success}</result>
</action>
</package>
1
0
r886 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication java/org/nuiton/wikitty/publication/action webapp
by mfortun@users.nuiton.org 13 May '11
by mfortun@users.nuiton.org 13 May '11
13 May '11
Author: mfortun
Date: 2011-05-13 11:00:49 +0200 (Fri, 13 May 2011)
New Revision: 886
Url: http://nuiton.org/repositories/revision/wikitty/886
Log:
* add default value for login
* remove old class used in old publication implementation
* remove system.out used for dev
Removed:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractAction.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractActionOnWikitty.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEval.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionLogin.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationAction.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
trunk/wikitty-publication/src/main/webapp/login.jsp
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractAction.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractAction.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractAction.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,56 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public abstract class AbstractAction implements WikittyPublicationAction {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(AbstractAction.class);
-
- protected String mapping = null;
-
- @Override
- public String getMapping() {
- return mapping;
- }
-
- @Override
- public void setMapping(String mapping) {
- this.mapping = mapping;
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractActionOnWikitty.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractActionOnWikitty.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/AbstractActionOnWikitty.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,177 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.publication.entities.WikittyPubData;
-import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
-import org.nuiton.wikitty.publication.entities.WikittyPubText;
-import org.nuiton.wikitty.publication.entities.WikittyPubTextHelper;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.search.Search;
-
-import java.util.List;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public abstract class AbstractActionOnWikitty extends AbstractAction {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(AbstractActionOnWikitty.class);
-
- static final public int ARG_QUERY = 0;
- static final public String ARG_MIMETYPE = "mimetype";
- static final public String ARG_CONTENT_FIELD = "contentField";
- static final public String SEARCH_SEPARATOR = ":";
-
- abstract protected String getExampleUsage();
-
- /**
- * Recherche le type mime dont on a besoin.
- * Par defaut recherche dans les arguments si on a dans l'ordre de preference
- * <li> ARG_MIMETYPE + SEARCH_SEPARATOR + name
- * (ex: mimetype:MyCommand.name:df=text/plain)
- * <li> ARG_MIMETYPE
- * (ex: mimetype=MyCommand.mimetype)
- * <li> si w a l'extension WikittyPubText alors on prend la valeur du champs mimetype
- * <li> si w a l'extension WikittyPubData alors on prend la valeur du champs mimetype
- * <li> on retourne null
- *
- * @param context
- * @param name la chaine utilise pour faire la recherche du wikitty
- * @param w le wikitty trouve grace a name
- * @return le mimetype ou null
- */
- protected String getMimeType(WikittyPublicationContext context,
- String name, Wikitty w) {
- // looking for mimetype field
- String mimetype = context.getArgument(
- ARG_MIMETYPE + SEARCH_SEPARATOR + name, null);
- if (mimetype == null) {
- mimetype = context.getArgument(ARG_MIMETYPE, null);
- }
- if (mimetype != null) {
- int i = mimetype.indexOf(WikittyUtil.FQ_FIELD_NAME_SEPARATOR);
- if (i > 0) { // perhaps fully qualified field
- String extName = WikittyExtension.extractExtensionName(mimetype);
- String fieldName = WikittyExtension.extractFieldName(mimetype);
- if (w.hasField(extName, fieldName)) {
- // mimetype target field in wikitty
- // replace with field value
- mimetype = w.getFieldAsString(extName, fieldName);
- }
- }
- } else if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
- mimetype = WikittyPubTextHelper.getMimeType(w);
- } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
- mimetype = WikittyPubDataHelper.getMimeType(w);
- }
- return mimetype;
- }
-
- /**
- * Retourne le critere pour recherche l'objet sur lequel faire l'action.
- * Le nom du critere doit etre convenablement positionné avec la chaine
- * qui a permit la recherche
- *
- * @param context
- * @return
- */
- protected Criteria searchCriteria(List<String> subContext) {
- Criteria result;
- if (subContext.size() <= 0) {
- result = null;
- } else {
- String searchString = subContext.get(ARG_QUERY);
- if (searchString.contains(SEARCH_SEPARATOR)) {
- // on a un field=value
- String[] arg = searchString.split(SEARCH_SEPARATOR);
- result = Search.query().eq(arg[0], arg[1]).criteria(searchString);
- } else {
- // on a pas le champs, alors par defaut on recherche dans
- // WikittyPubText.name et WikittyPubData.name
- result = Search.query().or()
- .eq(WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_NAME, searchString)
- .eq(WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_NAME, searchString)
- .criteria(searchString);
- }
- }
- return result;
- }
-
- /**
- * Recherche le champs contenant le content dont on a besoin.
- * Par defaut recherche dans les arguments si on a dans l'ordre de preference
- * <li> ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name
- * (ex: contentField:MyCommand.name:df=MyCommand.script)
- * <li> ARG_CONTENT_FIELD
- * (ex: contentField=MyCommand.script)
- * <li> si w a l'extension WikittyPubText alors on prend le champs content
- * <li> si w a l'extension WikittyPubData alors on prend le champs content
- * <li> on retourne null
- *
- * @param context
- * @param name la chaine utilise pour faire la recherche du wikitty
- * @param w le wikitty trouve grace a name
- * @return le champs contenant le content ou null
- */
- protected String getContentFieldName(WikittyPublicationContext context,
- String name, Wikitty w) {
- String contentField = context.getArgument(
- ARG_CONTENT_FIELD + SEARCH_SEPARATOR + name, null);
- if (contentField == null) {
- contentField = context.getArgument(ARG_CONTENT_FIELD, null);
- }
- if (contentField == null) {
- if (w.hasExtension(WikittyPubText.EXT_WIKITTYPUBTEXT)) {
- contentField = WikittyPubText.FQ_FIELD_WIKITTYPUBTEXT_CONTENT;
- } else if (w.hasExtension(WikittyPubData.EXT_WIKITTYPUBDATA)) {
- contentField = WikittyPubData.FQ_FIELD_WIKITTYPUBDATA_CONTENT;
- }
- }
- return contentField;
- }
-
- protected String getError(WikittyPublicationContext context) {
- context.setContentType("text/html");
- String result = String.format(
- "<h1>bad query %s</h1>"
- + "Usage example"
- + "<pre>%s</pre>", context.getRequest().getPathInfo(), getExampleUsage());
- return result;
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEdit.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,242 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.CollectionUtil;
-import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.WikittyUtil;
-import org.nuiton.wikitty.entities.FieldType;
-import org.nuiton.wikitty.entities.FieldType.TYPE;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.entities.WikittyImpl;
-import org.nuiton.wikitty.publication.entities.WikittyPubData;
-import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.search.operators.Element;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class ActionEdit extends AbstractActionOnWikitty {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(ActionError.class);
-
- static final protected String exampleUsage = "edit/WikittyPubText.name=Wiki\n"
- + "edit/Tuto\n"
- + "edit/WikittyPubText.name=Tuto\n"
- + "edit/Command.id=df\n";
-
- protected ApplicationConfig appConfig;
-
- public ActionEdit(ApplicationConfig appConfig) {
- this.appConfig = appConfig;
- }
-
- @Override
- public Object doAction(WikittyPublicationContext context) {
- String result;
- Wikitty w;
-
- WikittyProxy proxy = context.getWikittyProxy();
-
- if (context.getArguments().containsKey("delete")) {
- // on nous demande supprimer le wikitty, on l'efface et on
- // affichera un wikitty vide
- String id = context.getArguments().get("id");
- proxy.delete(id);
- // apres un effacement on reprend l'edition d'un tout nouveau
- // wikitty
- w = new WikittyImpl();
- } else {
- // recherche du Wikitty a editer ou creation d'un nouveau si
- // necessaire
- Criteria criteria = searchCriteria(context.getMandatoryArguments());
- if (criteria == null) {
- w = new WikittyImpl();
- } else {
- w = proxy.findByCriteria(criteria);
- }
-
- // si on ne retrouve pas le wikitty, mais qu'il vient d'etre cree
- // pour l'edition, on recree un wikitty avec ce meme identifiant
- if (w == null
- && "0.0".equals(context.getArguments().get("version"))) {
- // c'est un nouvel objet, il n'a pas encore ete sauve, mais on
- // veut le faire
- String id = context.getArguments().get("id");
- w = new WikittyImpl(id);
- }
-
- if (w == null) {
- // si le wikitty est null, et qu'on etait pas en edition
- // cela signifie qu'on ne retrouve pas le wikitty a editer
- // on creer un nouveau wikitty vide que l'on editera
- w = new WikittyImpl();
- } else {
- // on met a jour le wikitty avec les infos trouvees dans les
- // arguments
-
- // ajout des extensions deja existante si necessaire
- String extensions = context.getArgument("extensions", null);
- if (extensions != null) {
- String[] exts = StringUtil.split(extensions
- .replace("[", "").replace("]", ""), ",");
- for (String extName : exts) {
- WikittyExtension ext = proxy
- .restoreExtensionLastVersion(extName);
- if (ext != null) {
- w.addExtension(ext);
- }
- }
- }
-
- // ajout de l'extension demande par l'utilisateur
- String extName = context.getArgument("newExtension", null);
- if (extName != null && !"".equals(extName)) {
- WikittyExtension ext = proxy
- .restoreExtensionLastVersion(extName);
- if (ext != null) {
- w.addExtension(ext);
- }
- }
-
- Map<String, Object> args = new HashMap<String, Object>();
- args.putAll(context.getArguments());
- args.putAll(context.getArgumentFiles());
- for (Map.Entry<String, Object> field : args.entrySet()) {
- String key = field.getKey();
- Object value = null;
- if (key.contains(WikittyUtil.FQ_FIELD_NAME_SEPARATOR)) {
- String ext = WikittyExtension.extractExtensionName(key);
- String fieldName = WikittyExtension
- .extractFieldName(key);
-
- if (w.hasField(ext, fieldName)) {
- if (!"true".equals(context.getArgument("isNull-"
- + key, "false"))) {
-
- value = field.getValue();
- }
-
- FieldType extFieldType = w.getExtension(ext)
- .getFieldType(fieldName);
- if (extFieldType.isCollection()
- && extFieldType.getType() == TYPE.STRING
- && value != null) {
-
- String valueString = value.toString();
-
- valueString = new String(valueString.substring(
- 1, valueString.length() - 1));
-
- Collection<String> list = new ArrayList<String>();
-
- String[] valuesString = StringUtil.split(
- valueString, ",");
-
- for (String element : valuesString) {
- list.add(element.trim());
- }
-
- w.setField(ext, fieldName, list);
-
- } else {
- w.setField(ext, fieldName, value);
- }
- // si w est un WikittyPubData on essai de mettre a
- // jour si besoin les champs mimetype et name
- if (ext.equals(WikittyPubData.EXT_WIKITTYPUBDATA)
- && fieldName
- .equals(WikittyPubData.FIELD_WIKITTYPUBDATA_CONTENT)) {
- if (null == WikittyPubDataHelper.getName(w)) {
- WikittyPubDataHelper.setName(
- w,
- String.valueOf(args.get(key
- + "-filename")));
- }
- if (null == WikittyPubDataHelper.getMimeType(w)) {
- WikittyPubDataHelper.setMimeType(
- w,
- String.valueOf(args.get(key
- + "-contentType")));
- }
- }
- }
- }
- }
-
- if (context.getArguments().containsKey("store")) {
- // on nous demande la sauvegarde
- proxy.store(w);
- }
- }
- }
-
- // forward l'affichage de la page vers la jsp d'edition
- context.setContentType("forward/jsp");
- context.getRequest().setAttribute(ActionEval.CONTEXT_VAR, context);
- context.getRequest().setAttribute(ActionEval.WIKITTY_VAR, w);
- result = "/WEB-INF/jsp/edit.jsp";
-
- return result;
- }
-
- /**
- * create url to edit wikitty object, assume that edition already start add
- * context.getActionName() return edit action name.
- *
- * @param context
- * @param w
- * @return
- */
- public String makeUrl(WikittyPublicationContext context, Wikitty w) {
- String url = getMapping() + "/" + Element.ELT_ID + SEARCH_SEPARATOR
- + w.getId();
- url = context.makeUrl(url);
- return url;
- }
-
- @Override
- protected String getExampleUsage() {
- return exampleUsage;
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionError.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,86 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-
-import javax.servlet.http.HttpServletRequest;
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ExceptionUtil;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class ActionError extends AbstractAction {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(ActionError.class);
-
- protected Throwable error = null;
-
- public ActionError(Throwable error) {
- this.error = error;
- }
-
- @Override
- public Object doAction(WikittyPublicationContext context) {
- error.printStackTrace();
-
- HttpServletRequest req = context.getRequest();
- String result = "<html><body>Error: "
- + "<br>context: " + context
- + "<br>"
- + "<br>getContextPath: " + req.getContextPath()
- + "<br>getMethod: " + req.getMethod()
- + "<br>getPathInfo: " + req.getPathInfo()
- + "<br>getPathTranslated: " + req.getPathTranslated()
- + "<br>getQueryString: " + req.getQueryString()
- + "<br>getRemoteUser: " + req.getRemoteUser()
- + "<br>getRequestURI: " + req.getRequestURI()
- + "<br>getRequestURI: " + req.getRequestURI()
- + "<br>getRequestedSessionId: " + req.getRequestedSessionId()
- + "<br>getServletPath: " + req.getServletPath()
- + "<br>getCharacterEncoding: " + req.getCharacterEncoding()
- + "<br>getContentType: " + req.getContentType()
- + "<br>getLocalAddr: " + req.getLocalAddr()
- + "<br>getLocalName: " + req.getLocalName()
- + "<br>getProtocol: " + req.getProtocol()
- + "<br>getRemoteAddr: " + req.getRemoteAddr()
- + "<br>getRemoteHost: " + req.getRemoteHost()
- + "<br>getScheme: " + req.getScheme()
- + "<br>getServerName: " + req.getServerName()
- + "<br>"
- + "<br>error:<pre>" + StringEscapeUtils.escapeHtml(ExceptionUtil.stackTrace(error)) + "</pre>"
- + "</body></html>";
- return result;
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEval.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEval.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionEval.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,186 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.script.Bindings;
-import javax.script.ScriptEngine;
-import javax.script.ScriptEngineFactory;
-import javax.script.ScriptEngineManager;
-import javax.script.ScriptException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.ScriptEvaluator;
-import org.nuiton.wikitty.WikittyException;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.publication.entities.WikittyPubText;
-import org.nuiton.wikitty.search.Criteria;
-
-/**
- * Permet d'evaluer un WikittyPubText et de retourner la valeur de l'evaluation.
- * La variable de nom {@link WikittyPublicationContext#CONTEXT_VAR} et de type
- * {@link WikittyPublicationContext} est positionnee dans l'environnement
- * d'evaluation.
- *
- * Le script doit positionner convenablement la valeur de
- * {@link WikittyPublicationContext#setContentType(java.lang.String)} par
- * rapport a l'objet retourne
- *
- * L'evaluateur est recherche via la valeur du champs
- * {@link WikittyPubText#getMimeType()}.
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class ActionEval extends AbstractActionOnWikitty {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(ActionError.class);
-
- /** variable contenant l'instance de la classe ActionEval */
- static final public String EVAL_VAR = "wpEval";
- /** variable name use to put context in script and jsp */
- static final public String CONTEXT_VAR = "wpContext";
- /** contient la liste des arguments mandatory non encore utilise */
- static final public String SUBCONTEXT_VAR = "wpSubContext";
- /**
- * contient le nom de la page WikittyPubText (ex: Wiki) ou la requete ayant
- * permis de trouver la page (ex: MyScript.name=df)
- */
- static final public String PAGE_NAME_VAR = "wpPage";
- /**
- * contient le wikitty utilise comme script
- */
- static final public String WIKITTY_VAR = "wpWikitty";
-
- static final protected String exampleUsage =
- "eval/WikittyPubText.name=Wiki/WikittyPubText.content?mimetype=WikittyPubText.mimetype\n"
- + "eval/Tuto\n"
- + "eval/Tuto/WikittyPubText.content\n"
- + "eval/WikittyPubText.name=Tuto/WikittyPubText.content\n"
- + "eval/WikittyPubText.name=Tuto/WikittyPubText.content?mimetype=WikittyPubText.mimetype\n"
- + "eval/Command.id=df/Command.script?mimetype=Command.mimetype\n";
-
- protected ApplicationConfig appConfig;
- protected ScriptEngineManager scriptEnginManager;
-
- public ActionEval(ApplicationConfig appConfig) {
- this.appConfig = appConfig;
-
- scriptEnginManager = new ScriptEngineManager();
- }
-
- public Object doAction(WikittyPublicationContext context, List<String> subContext) {
- log.info("path " + subContext);
-
- Object result;
-
- Criteria criteria = searchCriteria(subContext);
-
- if (criteria == null) {
- // rien a evaluer, on retourne une chaine vide
- result = "";
- } else {
- WikittyProxy proxy = context.getWikittyProxy();
- Wikitty w = proxy.findByCriteria(criteria);
-
- if (w == null) {
- context.setContentType("text/plain");
- result = String.format(
- "no data found for criteria '%s'", criteria);
- } else {
- String contentField = getContentFieldName(context, criteria.getName(), w);
-
- if (contentField == null) {
- result = getError(context);
- } else {
- String extName = WikittyExtension.extractExtensionName(contentField);
- String fieldName = WikittyExtension.extractFieldName(contentField);
-
- String mimetype = getMimeType(context, criteria.getName(), w);
- String content = w.getFieldAsString(extName, fieldName);
-
- // supprime de subcontext ce qui a ete utilise dans cette methode
- subContext = new ArrayList<String>(subContext.subList(1, subContext.size()));
-
- Map<String, Object> bindings = new HashMap<String, Object>();
- bindings.put(PAGE_NAME_VAR, criteria.getName());
- bindings.put(CONTEXT_VAR, context);
- bindings.put(SUBCONTEXT_VAR, subContext);
- bindings.put(WIKITTY_VAR, w);
- bindings.put(EVAL_VAR, this);
-
- result = ScriptEvaluator.eval(
- null, criteria.getName(), content, mimetype, bindings);
- }
- }
- }
-
- return result;
- }
-
- public Object doAction(WikittyPublicationContext context, String subContextAsText) {
- Object result;
- if (subContextAsText == null || "".equals(subContextAsText)) {
- result = getError(context);
- } else {
- if (subContextAsText.startsWith("/")) {
- subContextAsText = subContextAsText.substring(1);
- }
- String[] subContextArray = StringUtil.split(subContextAsText, "/");
- List<String> subContext = Arrays.asList(subContextArray);
- result = doAction(context, subContext);
- }
- return result;
- }
-
- @Override
- public Object doAction(WikittyPublicationContext context) {
- Object result;
- if (context.getMandatoryArguments().size() <= 0) {
- result = getError(context);
- } else {
- result = doAction(context, context.getMandatoryArguments());
- }
- return result;
- }
-
- @Override
- protected String getExampleUsage() {
- return exampleUsage;
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionLogin.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionLogin.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionLogin.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,122 +0,0 @@
-package org.nuiton.wikitty.publication;
-
-import javax.servlet.http.Cookie;
-
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.entities.WikittyUser;
-import org.nuiton.wikitty.entities.WikittyUserHelper;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.search.Search;
-
-/**
- * Class for the login action.
- *
- * @author mfortun
- *
- */
-public class ActionLogin extends AbstractActionOnWikitty {
-
- static public String COOKIE_NAME = "wikittypublication";
-
- static final protected String exampleUsage = "";
-
- protected ApplicationConfig appConfig;
-
- public ActionLogin(ApplicationConfig appConfig) {
- this.appConfig = appConfig;
- }
-
- @Override
- public Object doAction(WikittyPublicationContext context) {
-
- /*
- * /login?login=moi&password=xxxx&succes=/eval/Wiki/WikiHello
-
- *
- * /login?logout&succes=/eval/Wiki/WikiHello
- */
-
- String result = "";
- Wikitty w;
- WikittyProxy proxy = context.getWikittyProxy();
- Cookie loginCookie = null;
-
- context.getRequest().getCookies();
-
-
- /*
- *if logout option, remove our cookie.
- */
- if (context.getArguments().containsKey("logout")) {
- loginCookie = new Cookie(COOKIE_NAME, "");
- loginCookie.setMaxAge(0);
- context.getResponse().addCookie(loginCookie);
- }
-
-
-
-
- if (context.getArguments().containsKey("login")) {
- String login = context.getArguments().get("login");
- String password = context.getArguments().get("password");
-
- String idUser = proxy.findIdByCriteria(this
- .constructCriteriaOnUser(login));
-
- result = login + idUser;
- w = proxy.restore(idUser);
-
- boolean loginSucces = WikittyUserHelper.getPassword(w).equals(password);
-
- if (loginSucces){
- Cookie cook = new Cookie(COOKIE_NAME, "roger");
- // cook.setMaxAge(0)
-
- context.getResponse().addCookie(cook);
-
- }
-
- }
-
-
-
-
-
-
- if (context.getArguments().containsKey("succes")) {
- // faire un truc avec la chaine succes
- }
-
-
- /*
- * verification de la présence d'un cookie si présence ok
- *
- * sinon proposer de loger sinon info de log on va créer cookie
- *
- * créer une session ?
- */
- return result;
- }
-
- @Override
- protected String getExampleUsage() {
- return exampleUsage;
-
- }
-
- protected Criteria constructCriteriaOnUser(String loginName) {
-
- Criteria criteriaOnLogin;
- Search mainRequest = Search.query();
-
- // wikitty user with the loginName
- criteriaOnLogin = mainRequest.exteq(WikittyUser.EXT_WIKITTYUSER)
- .eq(WikittyUser.FQ_FIELD_WIKITTYUSER_LOGIN, loginName)
- .criteria();
-
- return criteriaOnLogin;
- }
-
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/ActionView.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,106 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.entities.Wikitty;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.search.PagedResult;
-import org.nuiton.wikitty.search.Search;
-import org.nuiton.wikitty.search.operators.Element;
-
-/**
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class ActionView extends AbstractAction {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(ActionError.class);
-
- protected ApplicationConfig appConfig;
-
- public ActionView(ApplicationConfig appConfig) {
- this.appConfig = appConfig;
- }
-
- @Override
- public Object doAction(WikittyPublicationContext context) {
- WikittyProxy proxy = context.getWikittyProxy();
-
- String r = context.getArguments().get("r");
- if (r == null || "".equals(r)) {
- r = "*";
- }
- String first = context.getArgument("first", "0");
- String end = context.getArgument("end", "100");
- int firstIndex = StringUtil.toInt(first);
- int endIndex = StringUtil.toInt(end);
-
-
-
- Criteria criteria = Search.query().keyword(r).criteria();
- criteria.setFirstIndex(firstIndex);
- criteria.setEndIndex(endIndex);
-
- PagedResult<Wikitty> pagedResult = proxy.findAllByCriteria(criteria);
-
- String id = context.getArguments().get("id");
- Wikitty w = proxy.restore(id);
-
- // forward l'affichage de la page vers la jsp d'edition
- context.setContentType("forward/jsp");
- context.getRequest().setAttribute(ActionEval.CONTEXT_VAR, context);
- context.getRequest().setAttribute(ActionEval.WIKITTY_VAR, w);
- context.getRequest().setAttribute("pagedResult", pagedResult);
- String result = "/WEB-INF/jsp/view.jsp";
-
- return result;
- }
-
- /**
- * create url to edit wikitty object, assume that edition already start
- * add context.getActionName() return edit action name.
- *
- * @param context
- * @param w
- * @return
- */
- static public String makeUrl(WikittyPublicationContext context, Wikitty w) {
- String url = context.getActionName() + "/"
- + Element.ELT_ID + "=" + w.getId();
- url = context.makeUrl(url);
- return url;
- }
-
-}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -42,9 +42,7 @@
@Override
- public String intercept(ActionInvocation invocation) throws Exception {
- System.out.println("passed logout");
-
+ public String intercept(ActionInvocation invocation) throws Exception {
Map<String, Object> session = ActionContext.getContext().getSession();
WikittyPublicationSession.invalidate(session);
String result = invocation.invoke();
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationAction.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationAction.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationAction.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,40 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-/**
- * each action can be used by multiple thread
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public interface WikittyPublicationAction {
- public String getMapping();
- public void setMapping(String mapping);
- public Object doAction(WikittyPublicationContext context);
-}
Deleted: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationContext.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -1,390 +0,0 @@
-/*
- * #%L
- * Wikitty :: publication
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2010 CodeLutin, Benjamin Poussin, Benjamin Poussin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.wikitty.publication;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.fileupload.FileItem;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ArgumentsParserException;
-import org.nuiton.util.ObjectUtil;
-import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.WikittyConfig;
-import org.nuiton.wikitty.WikittyConfigOption;
-import org.nuiton.wikitty.WikittyException;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.WikittyService;
-import org.nuiton.wikitty.WikittyServiceFactory;
-import org.nuiton.wikitty.entities.WikittyExtension;
-import org.nuiton.wikitty.entities.WikittyLabelAbstract;
-import org.nuiton.wikitty.entities.WikittyTreeNodeAbstract;
-import org.nuiton.wikitty.entities.WikittyUserAbstract;
-import org.nuiton.wikitty.publication.entities.WikittyPubDataAbstract;
-import org.nuiton.wikitty.publication.entities.WikittyPubTextAbstract;
-
-/**
- * Context de la requete en cours.
- *
- * Les parametres de la requete sont parses et mis dans deux variables
- * <li>arguments
- * <li>argumentFiles
- *
- * un parametre simple sera dans arguments:
- * <li> [filename]=[valeur du champs]
- *
- * un parametre de type upload aura des entrees dans les deux
- * dans arguments:
- * <li> [fieldname]-upload=true
- * <li> [fieldname]-filename=[nom du fichier]
- * <li> [fieldname]-contentType=[type mime du fichier]
- * dans argumentFiles:
- * <li> [fieldname]=[contenu binaire du fichier]
- *
- * @author poussin
- * @version $Revision$
- *
- * Last update: $Date$
- * by : $Author$
- */
-public class WikittyPublicationContext {
-
- /** to use log facility, just put in your code: log.info(\"...\"); */
- static private Log log = LogFactory.getLog(WikittyPublicationContext.class);
-
- /** configuration option name FIXME poussin 20101206 use OptionDef */
- static final public String CONFIG_FILE = "wikitty.publication.config.pattern";
- static final public String ACTION_PREFIX = "wikitty.publication.action";
-
- static final protected Map<String, WikittyService> services =
- new HashMap<String, WikittyService>();
- static final protected Map<String, WikittyPublicationAction> actions =
- new HashMap<String, WikittyPublicationAction>();
-
- protected ApplicationConfig appConfig;
- protected HttpServletRequest req;
- protected HttpServletResponse resp;
- protected String wsContext = null;
- protected String actionName = null;
- protected String path = "";
- protected List<String> mandatoryArguments = new ArrayList<String>();
- protected Map<String, String> arguments = new HashMap<String, String>();
- protected Map<String, byte[]> argumentFiles = new HashMap<String, byte[]>();
- protected WikittyProxy proxy = null;
-
- protected String contentType = "text/html";
-
- public WikittyPublicationContext(ApplicationConfig appConfig) {
- this.appConfig = appConfig;
-
- // force load of action in configuration
- for(String key : appConfig.getFlatOptions().stringPropertyNames()) {
- if (key.startsWith(ACTION_PREFIX)) {
- String action = key.substring(ACTION_PREFIX.length() + 1);
- getAction(action);
- }
- }
- }
-
- /**
- * add here all extension that WikittyService must know
- */
- protected void addRequiredExtension(WikittyService ws) {
- List<WikittyExtension> exts = new ArrayList<WikittyExtension>();
-
- exts.addAll(WikittyUserAbstract.extensions);
- exts.addAll(WikittyLabelAbstract.extensions);
- exts.addAll(WikittyTreeNodeAbstract.extensions);
- exts.addAll(WikittyPubTextAbstract.extensions);
- exts.addAll(WikittyPubDataAbstract.extensions);
-
- ws.storeExtension(null, exts);
- }
-
- /**
- * set attributes:
- * <li> req
- * <li> wsContext
- * <li> actionName
- * <li> mandatoryArguments
- * <li> arguments
- *
- * @param req
- */
- public void parse(HttpServletRequest req, HttpServletResponse resp) {
- this.req = req;
- this.resp = resp;
-
- String path = req.getPathInfo();
-
- // path start with '/' then comps[0] == empty
- String[] comps = StringUtil.split(path, "/");
- if (comps.length > 0) {
- wsContext = comps[1];
- }
- if (comps.length > 1) {
- actionName = comps[2];
- }
-
-
- for (int i = 3; i < comps.length; i++) {
- mandatoryArguments.add(comps[i]);
- path += "/" + comps[i];
- }
-
-
- boolean isMultipart = ServletFileUpload.isMultipartContent(getRequest());
- if (isMultipart == true) {
- // Create a factory for disk-based file items
- DiskFileItemFactory factory = new DiskFileItemFactory();
- // Create a new file upload handler
- ServletFileUpload upload = new ServletFileUpload(factory);
- // Process the uploaded items
- // Parse the request
- try {
- List<FileItem> items = upload.parseRequest(getRequest());
- for (FileItem item : items) {
- String name = item.getFieldName();
- if (item.isFormField()) {
- String value = item.getString();
- arguments.put(name, value);
- } else {
- String filename = item.getName();
- String mime = item.getContentType();
- byte[] value = item.get();
- log.info(String.format(
- "Argument file '%s' of type '%s'",
- filename, mime));
- argumentFiles.put(name, value);
- arguments.put(name+"-upload", "true");
- arguments.put(name+"-filename", filename);
- arguments.put(name+"-contentType", mime);
- }
- }
- } catch (FileUploadException eee) {
- log.error("Can't get uploaded file", eee);
- }
- } else {
- for (Enumeration<String> e = req.getParameterNames(); e.hasMoreElements();) {
- String name = e.nextElement();
- String value = req.getParameter(name);
- arguments.put(name, value);
- }
- }
- log.info(String.format(
- "path %s => ws: %s action: %s mandatoryArguments: %s arguments: %s",
- path, wsContext, actionName, mandatoryArguments, arguments));
- }
-
- public HttpServletRequest getRequest() {
- return req;
- }
-
- public HttpServletResponse getResponse() {
- return resp;
- }
-
- public ApplicationConfig getAppConfig() {
- return appConfig;
- }
-
- /**
- * le nom de l'action a faire
- * @return
- */
- public String getActionName() {
- return actionName;
- }
-
- /**
- * le reste de l'url apres l'action
- * @return
- */
- public String getPath() {
- return path;
- }
-
-
- public WikittyProxy getWikittyProxy() {
- if (proxy == null) {
- proxy = new WikittyProxy(getAppConfig(), getWikittyService());
- }
- return proxy;
- }
-
- /**
- * add context to the url and parameter if necessary
- * @param url
- * @return
- */
- public String makeUrl(String url) {
- String finalUrl = url;
- if (!finalUrl.startsWith("/")) {
- finalUrl = "/" + finalUrl;
- }
- finalUrl = getRequest().getContextPath() + "/" + wsContext + finalUrl;
- finalUrl = getResponse().encodeURL(finalUrl);
- if (log.isInfoEnabled()) {
- log.info(String.format("transforme url from '%s' to '%s'", url, finalUrl));
- }
- return finalUrl;
- }
-
- public WikittyService getWikittyService() {
- WikittyService result = services.get(wsContext);
- if (result == null) {
- String patternConfigFilename = appConfig.getOption(CONFIG_FILE);
-
- // load default configuration for all wikitty service
- String filename = String.format(patternConfigFilename, "default");
- log.info(String.format("Try to load config file '%s'", filename));
- ApplicationConfig wsConfigDefault;
-
- wsConfigDefault = WikittyConfig.getConfig(filename);
-
- // change juste data dir with context path
- String dataDir = wsConfigDefault.getOption(
- WikittyConfigOption.WIKITTY_DATA_DIR.getKey());
- wsConfigDefault.setOption(
- WikittyConfigOption.WIKITTY_DATA_DIR.getKey(),
- dataDir + File.separator + wsContext);
-
- // read specifique configuration with default config as default properties
- filename = String.format(patternConfigFilename, wsContext);
- log.info(String.format("Try to load config file '%s'", filename));
- ApplicationConfig wsConfig;
- try {
- wsConfig = new ApplicationConfig(wsConfigDefault.getFlatOptions(false));
- wsConfig.setConfigFileName(filename);
- wsConfig.parse(null);
- } catch (ArgumentsParserException eee) {
- throw new WikittyException(String.format(
- "Can't parse configuration %s", filename), eee);
- }
- synchronized (services) {
- result = services.get(wsContext);
- if (result == null) {
- result = WikittyServiceFactory.buildWikittyService(wsConfig);
- addRequiredExtension(result);
- services.put(wsContext, result);
- }
- }
- }
- return result;
- }
-
- public List<String> getMandatoryArguments() {
- return mandatoryArguments;
- }
-
- public Map<String, String> getArguments() {
- return arguments;
- }
-
- public Map<String, byte[]> getArgumentFiles() {
- return argumentFiles;
- }
-
- public String getArgument(String name, String defaultValue) {
- String result = defaultValue;
- if (getArguments().containsKey(name)) {
- result = getArguments().get(name);
- }
- return result;
- }
-
- public WikittyPublicationAction getAction() {
- WikittyPublicationAction result = getAction(actionName);
- return result;
- }
-
-
- public <E extends WikittyPublicationAction> E getAction(Class<E> actionClass) {
- E result = null;
- for (WikittyPublicationAction a : actions.values()) {
- if (actionClass.isInstance(a)) {
- result = (E)a;
- break;
- }
- }
- return result;
- }
-
- public WikittyPublicationAction getAction(String actionName) {
- if (log.isInfoEnabled()) {
- log.info(String.format("Looking for class for '%s' action", actionName));
- }
- WikittyPublicationAction result = actions.get(actionName);
- if (result == null) {
- String action = ACTION_PREFIX + "." + actionName;
- log.info(String.format("try to load action %s", action));
- try {
- Class<WikittyPublicationAction> clazz = (Class<WikittyPublicationAction>)
- appConfig.getOptionAsClass(action);
- Collection args = Collections.singleton(appConfig);
- result = ObjectUtil.newInstance(clazz, args, true);
- result.setMapping(actionName);
- actions.put(actionName, result);
- } catch (Exception eee) {
- log.error(String.format("Can't find action %s", action), eee);
- result = new ActionError(eee);
- }
- }
- return result;
- }
-
- public String getContentType() {
- return contentType;
- }
-
- public void setContentType(String contentType) {
- this.contentType = contentType;
- }
-
- @Override
- public String toString() {
- String path = req.getPathInfo();
- String result = String.format("WPContext [path: %s\n"
- + " ws: %s\n"
- + " action: %s\n"
- + " mandatoryArguments: %s\n"
- + " arguments: %s\n"
- + "]", path, wsContext, actionName, mandatoryArguments, arguments);
- return result;
- }
-
-}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -42,10 +42,10 @@
protected String login;
protected String password;
- protected String error = DEFAULT_ERROR;
- static protected String DEFAULT_ERROR = "login.jsp";
- protected String success = DEFAULT_SUCCESS;
- static protected String DEFAULT_SUCCESS = "index.jsp";
+ protected String error;
+ static public String DEFAULT_ERROR = "login.jsp";
+ protected String success;
+ static public String DEFAULT_SUCCESS = "index.jsp";
public String getLogin() {
return login;
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java 2011-05-13 09:00:49 UTC (rev 886)
@@ -31,7 +31,6 @@
private static final long serialVersionUID = 4806944250461551896L;
public String execute() {
- System.out.println("logout");
WikittyPublicationSession.invalidate(session);
return SUCCESS;
}
Modified: trunk/wikitty-publication/src/main/webapp/login.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/login.jsp 2011-05-12 16:16:20 UTC (rev 885)
+++ trunk/wikitty-publication/src/main/webapp/login.jsp 2011-05-13 09:00:49 UTC (rev 886)
@@ -2,20 +2,36 @@
<%@page
+ import="org.nuiton.wikitty.publication.action.PublicationActionLogin"%>
+<%@page
import="org.nuiton.wikitty.publication.WikittyPublicationSession"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
+
+<%
+ String successValue = request.getParameter("success");
+ String errorValue = request.getParameter("error");
+
+ if (successValue == null || successValue == "") {
+ successValue = PublicationActionLogin.DEFAULT_SUCCESS;
+ }
+
+ //TODO mfortun-2011-05-13 find how to have default value configured by struts
+ if (errorValue == null || errorValue == "") {
+ errorValue = PublicationActionLogin.DEFAULT_ERROR;
+ }
+%>
+
+
<s:form action="login">
<p>
- <input type="hidden" name="success" value="<%=request.getParameter("success") %>" />
- <input type="hidden" name="error" value="<%=request.getParameter("error") %>" />
+ <input type="hidden" name="success" value="<%=successValue%>" /> <input
+ type="hidden" name="error" value="<%=errorValue%>" />
<s:textfield key="login" name="login" labelposition="top"
labelSeparator=" :" />
- <br />
- <br />
- <s:password key="password" name="password"
- labelposition="top" labelSeparator=" :" />
- <br />
- <br />
+ <br /> <br />
+ <s:password key="password" name="password" labelposition="top"
+ labelSeparator=" :" />
+ <br /> <br />
<s:submit key="publication.login.submit" name="submit" />
</p>
</s:form>
\ No newline at end of file
1
0
r885 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication java/org/nuiton/wikitty/publication/action resources webapp
by mfortun@users.nuiton.org 12 May '11
by mfortun@users.nuiton.org 12 May '11
12 May '11
Author: mfortun
Date: 2011-05-12 18:16:20 +0200 (Thu, 12 May 2011)
New Revision: 885
Url: http://nuiton.org/repositories/revision/wikitty/885
Log:
* login page basically works, if not logged acces to publication action not allowed
* need to reworks on redirect action to show login page if not allowed then show requested page after login
Added:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
trunk/wikitty-publication/src/main/webapp/login.jsp
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java
trunk/wikitty-publication/src/main/resources/struts.xml
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java 2011-05-12 16:16:20 UTC (rev 885)
@@ -0,0 +1,93 @@
+/*
+ * #%L
+ * bow
+ *
+ * $Id: LoginInterceptor.java 276 2011-04-29 21:02:55Z bpoussin $
+ * $HeadURL: http://svn.chorem.org/svn/bow/trunk/bow-ui/src/main/java/org/chorem/bow/int… $
+ * %%
+ * Copyright (C) 2010 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package org.nuiton.wikitty.publication;
+
+import java.util.Map;
+
+import org.apache.struts2.ServletActionContext;
+import org.nuiton.wikitty.entities.WikittyUser;
+
+
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
+
+
+/**
+ * Interceptor used to redirect a non-logged user if he tries to access a page
+ * where logging is mandatory
+ */
+public class LoginInterceptor extends AbstractInterceptor {
+ private static final long serialVersionUID = -7520186185205372272L;
+ protected String succes;
+ protected String error;
+
+
+
+ public String getSucces() {
+ return succes;
+ }
+
+ public void setSucces(String succes) {
+ this.succes = succes;
+ }
+
+ public String getError() {
+ return error;
+ }
+
+ public void setError(String error) {
+ this.error = error;
+ }
+
+
+ @Override
+ public String intercept(ActionInvocation invocation) throws Exception {
+ Map<String, Object> session = ActionContext.getContext().getSession();
+
+
+
+
+
+ WikittyPublicationSession pubSession = WikittyPublicationSession.getWikittyPublicationSession(session);
+ WikittyUser user = pubSession.getUser();
+ String result = null;
+
+ //If the user isn't logged in
+ if (user == null) {
+ ServletActionContext.getResponse().sendRedirect(error);
+ } else {
+ result = invocation.invoke();
+ }
+
+
+
+
+ result = invocation.invoke();
+ return result;
+ }
+
+
+
+}
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LoginInterceptor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java 2011-05-12 16:16:20 UTC (rev 885)
@@ -0,0 +1,53 @@
+/*
+ * #%L
+ * bow
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2010 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package org.nuiton.wikitty.publication;
+
+import java.util.Map;
+
+import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
+
+/**
+ * Interceptor used to remove all trace of user in session. Used for login page
+ */
+public class LogoutInterceptor extends AbstractInterceptor {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -66045004020326043L;
+
+
+
+ @Override
+ public String intercept(ActionInvocation invocation) throws Exception {
+ System.out.println("passed logout");
+
+ Map<String, Object> session = ActionContext.getContext().getSession();
+ WikittyPublicationSession.invalidate(session);
+ String result = invocation.invoke();
+ return result;
+ }
+}
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/LogoutInterceptor.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java 2011-05-11 15:09:23 UTC (rev 884)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationSession.java 2011-05-12 16:16:20 UTC (rev 885)
@@ -6,6 +6,7 @@
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.wikitty.entities.WikittyUser;
public class WikittyPublicationSession implements Serializable {
@@ -21,11 +22,16 @@
.getSimpleName();
protected WikittyPublicationProxy proxy;
+ protected WikittyUser user;
public WikittyPublicationSession() {
proxy = WikittyPublicationProxy.getInstance(null);
}
+ /**
+ * remove wikittypublicationSession from the httpsession
+ * @param session
+ */
static public void invalidate(Map<String, Object> session) {
session.remove(WIKITTY_PUBLICATION_SESSION_KEY);
}
@@ -63,4 +69,12 @@
return proxy;
}
+ public WikittyUser getUser() {
+ return user;
+ }
+
+ public void setUser(WikittyUser user) {
+ this.user = user;
+ }
+
}
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java 2011-05-12 16:16:20 UTC (rev 885)
@@ -0,0 +1,121 @@
+/*
+ * #%L
+ * bow
+ *
+ * $Id: LoginAction.java 228 2011-03-03 10:59:29Z vbriand $
+ * $HeadURL: http://svn.chorem.org/svn/bow/trunk/bow-ui/src/main/java/org/chorem/bow/act… $
+ * %%
+ * Copyright (C) 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package org.nuiton.wikitty.publication.action;
+
+import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.entities.WikittyUser;
+import org.nuiton.wikitty.publication.WikittyPublicationProxy;
+
+import com.opensymphony.xwork2.ActionContext;
+
+/**
+ * Class used as an action login, call the login method on the proxy with
+ * login/password pass threw the login form
+ *
+ * @author mfortun
+ *
+ */
+public class PublicationActionLogin extends PublicationBaseAction {
+ private static final long serialVersionUID = 6891064800288772246L;
+ protected String login;
+ protected String password;
+
+ protected String error = DEFAULT_ERROR;
+ static protected String DEFAULT_ERROR = "login.jsp";
+ protected String success = DEFAULT_SUCCESS;
+ static protected String DEFAULT_SUCCESS = "index.jsp";
+
+ public String getLogin() {
+ return login;
+ }
+
+ public void setLogin(String login) {
+ this.login = login;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String execute() {
+
+ String result = ERROR;
+
+ if (login != null) {
+ login = login.trim();
+
+ if (password != null) {
+ String md5 = StringUtil.encodeMD5(password);
+
+ try {
+
+ WikittyPublicationProxy proxy = getWikittyPublicationSession()
+ .getProxy();
+
+ proxy.login(login, md5);
+
+ WikittyUser user = proxy.getLoggedInUser();
+
+ if (user != null) {
+ getWikittyPublicationSession().setUser(user);
+ result = SUCCESS;
+ }
+ } catch (Exception e) {
+ // TODO mfortun-2011-05-12 handle exception due to wrong
+ // login/password
+ e.printStackTrace();
+ }
+ }
+ }
+
+ return result;
+ }
+
+ public String getError() {
+
+ return error;
+ }
+
+ public void setError(String error) {
+
+ this.error = error;
+ }
+
+ public String getSuccess() {
+
+ return success;
+ }
+
+ public void setSuccess(String success) {
+
+ this.success = success;
+
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogin.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java (rev 0)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java 2011-05-12 16:16:20 UTC (rev 885)
@@ -0,0 +1,38 @@
+/*
+ * #%L
+ * bow
+ *
+ * $Id: LogoutAction.java 192 2011-02-14 14:53:06Z tchemit $
+ * $HeadURL: http://svn.chorem.org/svn/bow/trunk/bow-ui/src/main/java/org/chorem/bow/act… $
+ * %%
+ * Copyright (C) 2010 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package org.nuiton.wikitty.publication.action;
+
+import org.nuiton.wikitty.publication.WikittyPublicationSession;
+
+
+
+public class PublicationActionLogout extends PublicationBaseAction {
+ private static final long serialVersionUID = 4806944250461551896L;
+
+ public String execute() {
+ System.out.println("logout");
+ WikittyPublicationSession.invalidate(session);
+ return SUCCESS;
+ }
+}
Property changes on: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionLogout.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/wikitty-publication/src/main/resources/struts.xml
===================================================================
--- trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-11 15:09:23 UTC (rev 884)
+++ trunk/wikitty-publication/src/main/resources/struts.xml 2011-05-12 16:16:20 UTC (rev 885)
@@ -11,22 +11,83 @@
- <package name="test" extends="struts-default">
+ <package name="publicArea" extends="struts-default">
+ <interceptors>
+ <interceptor-stack name="publicAreaStack">
+ <interceptor-ref name="defaultStack">
+
+ </interceptor-ref>
+ </interceptor-stack>
+ </interceptors>
+ <default-interceptor-ref name="publicAreaStack" />
+ </package>
+
+
+
+ <!-- Define a package for the login area -->
+ <package name="loginArea" extends="publicArea">
+ <interceptors>
+ <interceptor name="logout"
+ class="org.nuiton.wikitty.publication.LogoutInterceptor" />
+ <interceptor-stack name="loginAreaStack">
+ <interceptor-ref name="logout" />
+ <interceptor-ref name="publicAreaStack" />
+ </interceptor-stack>
+ </interceptors>
+ <default-interceptor-ref name="loginAreaStack" />
+ </package>
+
+ <!-- Define a package for the restricted area -->
+ <package name="restrictedArea" extends="publicArea">
+ <interceptors>
+ <interceptor name="login"
+ class="org.nuiton.wikitty.publication.LoginInterceptor">
+ <param name="error">/login.jsp</param>
+ </interceptor>
+ <interceptor-stack name="restrictedAreaStack">
+ <interceptor-ref name="login" />
+ <interceptor-ref name="publicAreaStack" />
+ </interceptor-stack>
+ </interceptors>
+ <default-interceptor-ref name="restrictedAreaStack" />
+ </package>
+
+ <package name="login" extends="loginArea">
+ <action name="login"
+ class="org.nuiton.wikitty.publication.action.PublicationActionLogin">
+ <result>login.jsp</result>
+ <result name="success" type="redirect">${success}</result>
+ <result name="error" type="redirect">${error}</result>
+ <!--
+ <result name="input">login.jsp</result>
+ <result name="login" type="redirectAction">home</result>
+ <result type="success">home</result>
+ -->
+ </action>
+ <action name="logout" class="org.nuiton.wikitty.publication.action.PublicationActionLogin">
+ <result type="redirectAction">login</result>
+ </action>
+ </package>
+
+
+
+ <package name="publication" extends="restrictedArea">
+
<action name="*/edit/*"
class="org.nuiton.wikitty.publication.action.PublicationActionEdit">
<param name="context">{1}</param>
<param name="args">{2}</param>
<result>/WEB-INF/jsp/edit.jsp</result>
</action>
-
+
<action name="*/view/*"
class="org.nuiton.wikitty.publication.action.PublicationActionView">
<param name="context">{1}</param>
<param name="args">{2}</param>
<result>/WEB-INF/jsp/view.jsp</result>
</action>
-
+
<action name="*/raw/*"
class="org.nuiton.wikitty.publication.action.PublicationActionRaw">
<param name="context">{1}</param>
Added: trunk/wikitty-publication/src/main/webapp/login.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/login.jsp (rev 0)
+++ trunk/wikitty-publication/src/main/webapp/login.jsp 2011-05-12 16:16:20 UTC (rev 885)
@@ -0,0 +1,21 @@
+
+
+
+<%@page
+ import="org.nuiton.wikitty.publication.WikittyPublicationSession"%>
+<%@ taglib prefix="s" uri="/struts-tags"%>
+<s:form action="login">
+ <p>
+ <input type="hidden" name="success" value="<%=request.getParameter("success") %>" />
+ <input type="hidden" name="error" value="<%=request.getParameter("error") %>" />
+ <s:textfield key="login" name="login" labelposition="top"
+ labelSeparator=" :" />
+ <br />
+ <br />
+ <s:password key="password" name="password"
+ labelposition="top" labelSeparator=" :" />
+ <br />
+ <br />
+ <s:submit key="publication.login.submit" name="submit" />
+ </p>
+</s:form>
\ No newline at end of file
Property changes on: trunk/wikitty-publication/src/main/webapp/login.jsp
___________________________________________________________________
Added: svn:mime-type
+ text/plain
1
0
r884 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action webapp webapp/WEB-INF/jsp
by mfortun@users.nuiton.org 11 May '11
by mfortun@users.nuiton.org 11 May '11
11 May '11
Author: mfortun
Date: 2011-05-11 17:09:23 +0200 (Wed, 11 May 2011)
New Revision: 884
Url: http://nuiton.org/repositories/revision/wikitty/884
Log:
* edit action basically reworks, without file
* edit page must be acceded by url end with edit/.action of edit/{criteria}.action not edit.action
* try to correct url link to edit page from view page
* update index page with "/" for action path
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp
trunk/wikitty-publication/src/main/webapp/index.jsp
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-10 16:13:58 UTC (rev 883)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-11 15:09:23 UTC (rev 884)
@@ -5,6 +5,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import org.nuiton.util.StringUtil;
import org.nuiton.wikitty.WikittyProxy;
@@ -17,6 +18,7 @@
import org.nuiton.wikitty.publication.entities.WikittyPubData;
import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
import org.nuiton.wikitty.search.Criteria;
+import org.nuiton.wikitty.search.operators.Element;
@@ -32,6 +34,8 @@
protected String newExtension;
protected Wikitty wikitty;
+
+ private HashMap<String, Object> wikittyFieldMap;
@@ -84,6 +88,9 @@
Criteria criteria = searchCriteria(argsString);
if (criteria == null) {
wikitty = new WikittyImpl();
+ ActionContext.getContext().getParameters()
+ .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
+
} else {
wikitty = proxy.findByCriteria(criteria);
}
@@ -96,6 +103,9 @@
// veut le faire
String id = getArgument("id", "");;
wikitty = new WikittyImpl(id);
+ ActionContext.getContext().getParameters()
+ .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
+
}
if (wikitty == null) {
@@ -103,6 +113,9 @@
// cela signifie qu'on ne retrouve pas le wikitty a editer
// on creer un nouveau wikitty vide que l'on editera
wikitty = new WikittyImpl();
+ ActionContext.getContext().getParameters()
+ .put(ARGS_KEY, Element.ELT_ID + ":" + wikitty.getId());
+
} else {
// on met a jour le wikitty avec les infos trouvees dans les
// arguments
@@ -132,8 +145,7 @@
}
Map<String, Object> args1 = new HashMap<String, Object>();
- // args1.putAll(getArguments());
- // args.putAll(context.getArgumentFiles());
+ args1.putAll(getFieldArguments());
for (Map.Entry<String, Object> field : args1.entrySet()) {
String key = field.getKey();
Object value = null;
@@ -237,9 +249,35 @@
}
+ public String getPostUrl(){
+
+ return this.getArgument(ARGS_KEY, "") + ".action";
+ }
-
+ protected Map<String, Object> getFieldArguments() {
+ wikittyFieldMap = new HashMap<String, Object>();
+ for (Entry<String, Object> en : ActionContext.getContext()
+ .getParameters().entrySet()) {
+
+ if (en.getKey().startsWith("Wikitty")) {
+
+ String value = "";
+
+ if (en.getValue() instanceof String[]) {
+ for (String occu : (String[]) en.getValue()) {
+ value += occu;
+ }
+ } else {
+ value = String.valueOf(en.getValue());
+ }
+
+ wikittyFieldMap.put(en.getKey(), value);
+ }
+
+ }
+ return wikittyFieldMap;
}
+}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-10 16:13:58 UTC (rev 883)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-11 15:09:23 UTC (rev 884)
@@ -1,9 +1,11 @@
package org.nuiton.wikitty.publication.action;
+
import org.nuiton.wikitty.entities.Wikitty;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.PagedResult;
import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.search.operators.Element;
import com.opensymphony.xwork2.ActionContext;
@@ -14,7 +16,7 @@
protected String search = "*";
protected int first = 0;
protected int end = 100;
-
+
/**
@@ -30,11 +32,10 @@
@Override
public String execute() throws Exception {
-
- //search = this.getArgument("r", "*");
- //first = this.getArgument("first", "0");
- //end = this.getArgument("end", "100");
-
+ // search = this.getArgument("r", "*");
+ // first = this.getArgument("first", "0");
+ // end = this.getArgument("end", "100");
+
String id = getArgument("id", "");
if (!"".equals(id)) {
@@ -85,8 +86,6 @@
this.search = search;
}
-
-
public int getFirst() {
return first;
}
@@ -103,12 +102,14 @@
this.end = end;
}
- public String makeUrlEdit(Wikitty w){
+ public String makeUrlEdit(Wikitty w) {
- String result = getArgument("context", "")+"/edit.action?id="+w.getId();
-
- return result;
-
+ String result = getArgument("context", "") + "/edit/" + Element.ELT_ID
+ + ":" + w.getId() + ".action";
+
+ return (result);
+
}
-
+
+
}
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-10 16:13:58 UTC (rev 883)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-11 15:09:23 UTC (rev 884)
@@ -61,8 +61,7 @@
<pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre>
-<form class="edit" action="edit.action" method="post" enctype="multipart/form-data">
- <input type="hidden" name="MAX_FILE_SIZE" value="104857600" /> <!-- 100Mo -->
+<form class="edit" action="<%=action.getPostUrl()%>" method="post" >
<input type="hidden" name="id" value="<%=wikitty.getId()%>" />
<input type="hidden" name="version" value="<%=wikitty.getVersion()%>" />
<input type="hidden" name="extensions" value="<%=wikitty.getExtensionNames()%>"/>
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-10 16:13:58 UTC (rev 883)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-11 15:09:23 UTC (rev 884)
@@ -65,9 +65,13 @@
Wikitty wikit = action.getWikittyResult();
- if (wikit!=null) {%>
- <pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikit))%></pre>
- <%} %>
+ if (wikit != null) {
+%>
+<pre><%=StringEscapeUtils.escapeHtml(String
+ .valueOf(wikit))%></pre>
+<%
+ }
+%>
<form action="view.action" method="post">
<div>
<textarea title="Search" name="search"><%=action.getSearch()%></textarea>
@@ -80,22 +84,26 @@
</pre>
<table>
- <tr>
- <td></td>
- <td>Wikitty Id</td>
- <td>Version</td>
- <td>Extensions</td>
- </tr>
-
-
+ <tr>
+ <td></td>
+ <td>Wikitty Id</td>
+ <td>Version</td>
+ <td>Extensions</td>
+ </tr>
+
+
<%
for (Wikitty w : action.getPagedResult().getAll()) {
%>
<tr>
- <td><a href="<%=action.makeUrlEdit(w)%>">edit</a>
+ <td><s:url var="editlink" action="/wiki/edit">
+ <s:param name="id"><%=w.getId()%></s:param>
+ </s:url> <s:a href="%{editlink}" id="regenPermToken">
+ <s:text name="edit" />
+ </s:a> <a href="<%=action.makeUrlEdit(w)%>">edit</a></td>
+ <td><input type="submit" name="id" value="<%=w.getId()%>" />
</td>
- <td><input type="submit" name="id" value="<%=w.getId()%>"/></td>
-
+
<td><%=w.getVersion()%></td>
<td><%=w.getExtensionNames()%></td>
</tr>
Modified: trunk/wikitty-publication/src/main/webapp/index.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/index.jsp 2011-05-10 16:13:58 UTC (rev 883)
+++ trunk/wikitty-publication/src/main/webapp/index.jsp 2011-05-11 15:09:23 UTC (rev 884)
@@ -11,14 +11,14 @@
.getWikittyPublicationSession(session);
%>
-<s:url var="regenPermToken" action="wiki/view" />
-<s:a href="%{regenPermToken}" id="regenPermToken">
+<s:url var="urlviewpage" action="wiki/view/" />
+<s:a href="%{urlviewpage}" id="urlviewpage">
<s:text name="view" />
</s:a>
-<s:url var="regenPermToken" action="wiki/edit" />
-<s:a href="%{regenPermToken}" id="regenPermToken">
+<s:url var="urleditpage" action="wiki/edit/" />
+<s:a href="%{urleditpage}" id="urleditpage">
<s:text name="edit" />
</s:a>
1
0
r883 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication java/org/nuiton/wikitty/publication/action webapp/WEB-INF/jsp
by mfortun@users.nuiton.org 10 May '11
by mfortun@users.nuiton.org 10 May '11
10 May '11
Author: mfortun
Date: 2011-05-10 18:13:58 +0200 (Tue, 10 May 2011)
New Revision: 883
Url: http://nuiton.org/repositories/revision/wikitty/883
Log:
* need to strutify and correct edit page
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-10 09:13:45 UTC (rev 882)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/WikittyPublicationProxy.java 2011-05-10 16:13:58 UTC (rev 883)
@@ -20,6 +20,10 @@
* overiding wikitty proxy method
*/
+ /**
+ *
+ */
+ private static final long serialVersionUID = -568462410130999972L;
static protected WikittyService ws = null;
protected WikittyPublicationProxy(ApplicationConfig config,
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-10 09:13:45 UTC (rev 882)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionEdit.java 2011-05-10 16:13:58 UTC (rev 883)
@@ -1,8 +1,25 @@
package org.nuiton.wikitty.publication.action;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.nuiton.util.StringUtil;
+import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.WikittyUtil;
+import org.nuiton.wikitty.entities.FieldType;
import org.nuiton.wikitty.entities.Wikitty;
+import org.nuiton.wikitty.entities.WikittyExtension;
import org.nuiton.wikitty.entities.WikittyImpl;
+import org.nuiton.wikitty.entities.FieldType.TYPE;
+import org.nuiton.wikitty.publication.entities.WikittyPubData;
+import org.nuiton.wikitty.publication.entities.WikittyPubDataHelper;
+import org.nuiton.wikitty.search.Criteria;
+
+
import com.opensymphony.xwork2.ActionContext;
public class PublicationActionEdit extends PublicationBaseAction{
@@ -12,8 +29,10 @@
*/
private static final long serialVersionUID = -590087371230933701L;
+ protected String newExtension;
protected Wikitty wikitty;
+
static public PublicationActionEdit getAction() {
@@ -24,19 +43,171 @@
@Override
public String execute() throws Exception {
- String id = getArgument("id", "");
+ doAction();
- if ("".equals(id)){
- wikitty = new WikittyImpl();
- }else{
- wikitty = getWikittyPublicationProxy().restore(id);
- }
-
return SUCCESS;
}
+
+
+
+
+ public void doAction(){
+
+ WikittyProxy proxy = getWikittyPublicationProxy();
+ Object context;
+
+ Map<String, Object> param = ActionContext.getContext().getParameters();
+
+
+ if (param.containsKey("delete")) {
+ // on nous demande supprimer le wikitty, on l'efface et on
+ // affichera un wikitty vide
+ String id = getArgument("id", "");
+ proxy.delete(id);
+ // apres un effacement on reprend l'edition d'un tout nouveau
+ // wikitty
+ wikitty = new WikittyImpl();
+ } else {
+ List<String> argsString = new ArrayList<String>();
+ String args = ActionContext.getContext().getParameters().get(ARGS_KEY)
+ .toString();
+ String[] argsTab = StringUtil.split(args, SEPARATOR);
+
+ for (String arg : argsTab) {
+ argsString.add(arg);
+ }
+ // recherche du Wikitty a editer ou creation d'un nouveau si
+ // necessaire
+ Criteria criteria = searchCriteria(argsString);
+ if (criteria == null) {
+ wikitty = new WikittyImpl();
+ } else {
+ wikitty = proxy.findByCriteria(criteria);
+ }
+
+ // si on ne retrouve pas le wikitty, mais qu'il vient d'etre cree
+ // pour l'edition, on recree un wikitty avec ce meme identifiant
+ if (wikitty == null
+ && "0.0".equals( getArgument("version", ""))) {
+ // c'est un nouvel objet, il n'a pas encore ete sauve, mais on
+ // veut le faire
+ String id = getArgument("id", "");;
+ wikitty = new WikittyImpl(id);
+ }
+
+ if (wikitty == null) {
+ // si le wikitty est null, et qu'on etait pas en edition
+ // cela signifie qu'on ne retrouve pas le wikitty a editer
+ // on creer un nouveau wikitty vide que l'on editera
+ wikitty = new WikittyImpl();
+ } else {
+ // on met a jour le wikitty avec les infos trouvees dans les
+ // arguments
+
+ // ajout des extensions deja existante si necessaire
+ String extensions = getArgument("extensions", null);
+ if (extensions != null) {
+ String[] exts = StringUtil.split(extensions
+ .replace("[", "").replace("]", ""), ",");
+ for (String extName : exts) {
+ WikittyExtension ext = proxy
+ .restoreExtensionLastVersion(extName);
+ if (ext != null) {
+ wikitty.addExtension(ext);
+ }
+ }
+ }
+
+ // ajout de l'extension demande par l'utilisateur
+ String extName = getArgument("newExtension", null);
+ if (extName != null && !"".equals(extName)) {
+ WikittyExtension ext = proxy
+ .restoreExtensionLastVersion(extName);
+ if (ext != null) {
+ wikitty.addExtension(ext);
+ }
+ }
+
+ Map<String, Object> args1 = new HashMap<String, Object>();
+ // args1.putAll(getArguments());
+ // args.putAll(context.getArgumentFiles());
+ for (Map.Entry<String, Object> field : args1.entrySet()) {
+ String key = field.getKey();
+ Object value = null;
+ if (key.contains(WikittyUtil.FQ_FIELD_NAME_SEPARATOR)) {
+ String ext = WikittyExtension.extractExtensionName(key);
+ String fieldName = WikittyExtension
+ .extractFieldName(key);
+
+ if (wikitty.hasField(ext, fieldName)) {
+ if (!"true".equals(getArgument("isNull-"
+ + key, "false"))) {
+
+ value = field.getValue();
+ }
+
+ FieldType extFieldType = wikitty.getExtension(ext)
+ .getFieldType(fieldName);
+ if (extFieldType.isCollection()
+ && extFieldType.getType() == TYPE.STRING
+ && value != null) {
+
+ String valueString = value.toString();
+
+ valueString = new String(valueString.substring(
+ 1, valueString.length() - 1));
+
+ Collection<String> list = new ArrayList<String>();
+
+ String[] valuesString = StringUtil.split(
+ valueString, ",");
+
+ for (String element : valuesString) {
+ list.add(element.trim());
+ }
+
+ wikitty.setField(ext, fieldName, list);
+
+ } else {
+ wikitty.setField(ext, fieldName, value);
+ }
+ // si w est un WikittyPubData on essai de mettre a
+ // jour si besoin les champs mimetype et name
+ if (ext.equals(WikittyPubData.EXT_WIKITTYPUBDATA)
+ && fieldName
+ .equals(WikittyPubData.FIELD_WIKITTYPUBDATA_CONTENT)) {
+ if (null == WikittyPubDataHelper.getName(wikitty)) {
+ WikittyPubDataHelper.setName(
+ wikitty,
+ String.valueOf(args1.get(key
+ + "-filename")));
+ }
+ if (null == WikittyPubDataHelper.getMimeType(wikitty)) {
+ WikittyPubDataHelper.setMimeType(
+ wikitty,
+ String.valueOf(args1.get(key
+ + "-contentType")));
+ }
+ }
+ }
+ }
+ }
+
+ if (param.containsKey("store")) {
+ // on nous demande la sauvegarde
+ proxy.store(wikitty);
+ }
+ }
+ }
+ }
+
+
+
+
+
public Wikitty getWikitty() {
return wikitty;
}
@@ -46,6 +217,29 @@
}
+ public List<String> getWikittyExtentionAviable(){
+ List<String> result = new ArrayList<String>();
+ result.add("ponay");
+ result.add("machin");
+
+ return result;
+ }
+
+ public String getNewExtension() {
+ return newExtension;
+ }
+
+ /*
+ * <s:combobox list="wikittyExtentionAviable" label="test" name="newExtension" />
+ */
+ public void setNewExtension(String newExtension) {
+ this.newExtension = newExtension;
+ }
+
+
+
}
+
+
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-10 09:13:45 UTC (rev 882)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-10 16:13:58 UTC (rev 883)
@@ -30,14 +30,13 @@
@Override
public String execute() throws Exception {
- System.out.println(search);
+
//search = this.getArgument("r", "*");
//first = this.getArgument("first", "0");
//end = this.getArgument("end", "100");
-
String id = getArgument("id", "");
- System.out.println(id);
+
if (!"".equals(id)) {
wikittyResult = getWikittyPublicationProxy().restore(id);
}
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-10 09:13:45 UTC (rev 882)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationBaseAction.java 2011-05-10 16:13:58 UTC (rev 883)
@@ -182,4 +182,5 @@
return result;
}
+
}
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-10 09:13:45 UTC (rev 882)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/edit.jsp 2011-05-10 16:13:58 UTC (rev 883)
@@ -54,14 +54,14 @@
String url = action.makeUrl(context, wikitty);
*/
-String url = "TODO";
+
%>
<h1>Edit <%=wikitty.getId()%></h1>
<pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikitty))%></pre>
-<form class="edit" action='<%=url%>' method="post" enctype="multipart/form-data">
+<form class="edit" action="edit.action" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="104857600" /> <!-- 100Mo -->
<input type="hidden" name="id" value="<%=wikitty.getId()%>" />
<input type="hidden" name="version" value="<%=wikitty.getVersion()%>" />
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-10 09:13:45 UTC (rev 882)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-10 16:13:58 UTC (rev 883)
@@ -28,6 +28,7 @@
Author : poussin
--%>
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
<%@page
import="org.nuiton.wikitty.publication.action.PublicationActionView"%>
<%@page import="org.nuiton.util.StringUtil"%>
@@ -51,8 +52,6 @@
PublicationActionView action = PublicationActionView
.getAction();
- out.println(action.getPagedResult().size());
-
/*
WikittyPublicationContext context = (WikittyPublicationContext) request
.getAttribute(ActionEval.CONTEXT_VAR);
@@ -65,14 +64,10 @@
*/
Wikitty wikit = action.getWikittyResult();
-%>
-<%
- if (wikit != null) {
- out.print(wikit);
- }
-%>
-
+ if (wikit!=null) {%>
+ <pre><%=StringEscapeUtils.escapeHtml(String.valueOf(wikit))%></pre>
+ <%} %>
<form action="view.action" method="post">
<div>
<textarea title="Search" name="search"><%=action.getSearch()%></textarea>
@@ -85,14 +80,23 @@
</pre>
<table>
+ <tr>
+ <td></td>
+ <td>Wikitty Id</td>
+ <td>Version</td>
+ <td>Extensions</td>
+ </tr>
+
+
<%
for (Wikitty w : action.getPagedResult().getAll()) {
%>
<tr>
<td><a href="<%=action.makeUrlEdit(w)%>">edit</a>
</td>
- <td><input type="submit" name="id" value="<%=w.getId()%>" />
- </td>
+ <td><input type="submit" name="id" value="<%=w.getId()%>"/></td>
+
+ <td><%=w.getVersion()%></td>
<td><%=w.getExtensionNames()%></td>
</tr>
<%
1
0
r882 - in trunk/wikitty-publication/src/main: java/org/nuiton/wikitty/publication/action webapp/WEB-INF/jsp
by mfortun@users.nuiton.org 10 May '11
by mfortun@users.nuiton.org 10 May '11
10 May '11
Author: mfortun
Date: 2011-05-10 11:13:45 +0200 (Tue, 10 May 2011)
New Revision: 882
Url: http://nuiton.org/repositories/revision/wikitty/882
Log:
* improve view with struts direct mapping field<->attribute
Modified:
trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp
Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java
===================================================================
--- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-10 07:57:31 UTC (rev 881)
+++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/action/PublicationActionView.java 2011-05-10 09:13:45 UTC (rev 882)
@@ -11,9 +11,10 @@
protected PagedResult<Wikitty> pagedResult;
protected Wikitty wikittyResult;
- protected String search;
- protected String first;
- protected String end;
+ protected String search = "*";
+ protected int first = 0;
+ protected int end = 100;
+
/**
@@ -29,12 +30,12 @@
@Override
public String execute() throws Exception {
+ System.out.println(search);
+ //search = this.getArgument("r", "*");
+ //first = this.getArgument("first", "0");
+ //end = this.getArgument("end", "100");
- search = this.getArgument("r", "*");
- first = this.getArgument("first", "0");
- end = this.getArgument("end", "100");
-
String id = getArgument("id", "");
System.out.println(id);
if (!"".equals(id)) {
@@ -50,8 +51,8 @@
String r = search;
- int firstIndex = Integer.parseInt(first);
- int endIndex = Integer.parseInt(end);
+ int firstIndex = first;
+ int endIndex = end;
Criteria criteria = Search.query().keyword(r).criteria();
criteria.setFirstIndex(firstIndex);
@@ -85,23 +86,30 @@
this.search = search;
}
- public String getFirst() {
+
+
+ public int getFirst() {
return first;
}
- public void setFirst(String first) {
+ public void setFirst(int first) {
this.first = first;
}
- public String getEnd() {
+ public int getEnd() {
return end;
}
- public void setEnd(String end) {
+ public void setEnd(int end) {
this.end = end;
}
+ public String makeUrlEdit(Wikitty w){
+
+ String result = getArgument("context", "")+"/edit.action?id="+w.getId();
+
+ return result;
+
+ }
-
-
}
Modified: trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp
===================================================================
--- trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-10 07:57:31 UTC (rev 881)
+++ trunk/wikitty-publication/src/main/webapp/WEB-INF/jsp/view.jsp 2011-05-10 09:13:45 UTC (rev 882)
@@ -41,7 +41,7 @@
import="org.nuiton.wikitty.publication.WikittyPublicationContext"%>
<%@page import="org.nuiton.wikitty.search.PagedResult"%>
<%@page import="org.nuiton.wikitty.entities.Wikitty"%>
-
+<%@taglib prefix="s" uri="/struts-tags"%>
<h1>Wikitty View</h1>
<%
@@ -68,21 +68,18 @@
%>
<%
-if (wikit!=null){
- out.print(wikit);
-}
-
+ if (wikit != null) {
+ out.print(wikit);
+ }
%>
<form action="view.action" method="post">
<div>
- <textarea name="r" rows="4" cols="20"><%=action.getSearch()%></textarea>
+ <textarea title="Search" name="search"><%=action.getSearch()%></textarea>
</div>
- <label for="first">First</label> <input type="text" name="first"
- value="<%=action.getFirst()%>" /> <label for="first">End</label>
- <input type="text" name="end"
- value="<%=action.getEnd()%>" /> <input type="submit"
- name="id" value="Search" />
+ <s:textfield label="First" key="first" name="first" />
+ <s:textfield label="End" key="end" name="end" />
+ <input type="submit" name="id" value="Search" />
<pre>
</pre>
@@ -92,8 +89,10 @@
for (Wikitty w : action.getPagedResult().getAll()) {
%>
<tr>
- <td><a">edit</a></td>
- <td><input type="submit" name="id" value="<%=w.getId()%>" /></td>
+ <td><a href="<%=action.makeUrlEdit(w)%>">edit</a>
+ </td>
+ <td><input type="submit" name="id" value="<%=w.getId()%>" />
+ </td>
<td><%=w.getExtensionNames()%></td>
</tr>
<%
1
0