[kune-commits] r1535 - in trunk: script src/main/java/cc/kune/common/client/tooltip src/main/java/cc/kune/common/client/utils src/main/java/cc/kune/core/client/groups/newgroup src/main/java/cc/kune/core/client/i18n src/main/java/cc/kune/core/client/services src/main/java/cc/kune/core/client/sitebar src/main/java/cc/kune/core/client/state src/main/java/cc/kune/core/client/sub src/main/java/cc/kune/core/client/ui src/main/java/cc/kune/core/client/ws/entheader src/main/java/cc/kune/core/public src/main/java/cc/kune/core/server src/main/java/cc/kune/core/server/manager/file src/main/java/cc/kune/core/shared src/main/java/cc/kune/gspace/client/i18n src/main/java/cc/kune/gspace/client/options/logo src/main/java/cc/kune/gspace/client/options/style src/main/java/cc/kune/gspace/client/ui/footer/license src/main/java/cc/kune/msgs/client src/main/java/cc/kune/wave/client src/main/java/cc/kune/wave/public src/main/java/com/google/wave/splash/web/template src/main/java/org/ourproject/kune src/main/java/org/ourproject/kune/platf/client/ui src/main/java/org/ourproject/kune/workspace src/main/resources src/main/webapp src/test/java/cc/kune/selenium src/test/java/cc/kune/selenium/login

Vicente J. Ruiz Jurado vjrj_ at ourproject.org
Mon Sep 26 22:24:14 CEST 2011


Author: vjrj_
Date: 2011-09-26 22:24:14 +0200 (Mon, 26 Sep 2011)
New Revision: 1535

Added:
   trunk/src/main/java/cc/kune/core/shared/FileConstants.java
   trunk/src/main/webapp/static/
   trunk/src/main/webapp/ws.html
Removed:
   trunk/src/main/java/cc/kune/core/client/services/FileConstants.java
   trunk/src/main/java/cc/kune/core/public/ws.html
   trunk/src/main/java/cc/kune/wave/public/static/
   trunk/src/main/java/org/ourproject/kune/gallery/
   trunk/src/main/java/org/ourproject/kune/platf/client/ui/rte/
   trunk/src/main/java/org/ourproject/kune/workspace/client/
Modified:
   trunk/script/kune client  -no-server.launch
   trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
   trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java
   trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
   trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties
   trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
   trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml
   trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
   trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java
   trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
   trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
   trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java
   trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
   trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
   trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java
   trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
   trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java
   trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java
   trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java
   trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java
   trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java
   trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java
   trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java
   trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java
   trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java
   trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java
   trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java
   trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml
   trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
   trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
   trunk/src/main/resources/kune.properties
   trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
   trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
   trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
   trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
Log:
NEW - # 128: Remove /ws/ prefix in kune URL 
http://kune.ourproject.org/issues/ticket/128
NEW - # 81: Minor CSS issues in chrommium 
http://kune.ourproject.org/issues/ticket/81

Modified: trunk/script/kune client  -no-server.launch
===================================================================
--- trunk/script/kune client  -no-server.launch	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/script/kune client  -no-server.launch	2011-09-26 20:24:14 UTC (rev 1535)
@@ -7,7 +7,7 @@
 <listAttribute key="com.google.gwt.eclipse.core.ENTRY_POINT_MODULES">
 <listEntry value="cc.kune.Kune"/>
 </listAttribute>
-<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/ws/?locale=en&amp;log_level=INFO"/>
+<stringAttribute key="com.google.gwt.eclipse.core.URL" value="/?locale=en&amp;log_level=INFO"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
 <listEntry value="/kune"/>
 </listAttribute>
@@ -20,7 +20,7 @@
 </listAttribute>
 <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gwt.eclipse.core.moduleClasspathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-war /home/vjrj/proyectos/dev/kune/trunk/target/kune-0.1.0-SNAPSHOT -startupUrl /ws/?locale=en&amp;log_level=INFO -noserver -remoteUI &quot;${gwt_remote_ui_server_port}:${unique_id}&quot; -logLevel INFO -codeServerPort 9997 cc.kune.Kune"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-war /home/vjrj/proyectos/dev/kune/trunk/target/kune-0.1.0-SNAPSHOT -startupUrl /?locale=en&amp;log_level=INFO -noserver -remoteUI &quot;${gwt_remote_ui_server_port}:${unique_id}&quot; -logLevel INFO -codeServerPort 9997 cc.kune.Kune"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="kune"/>
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx512m"/>
 </launchConfiguration>

Modified: trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/common/client/tooltip/Tooltip.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -170,10 +170,6 @@
         Tooltip.current.hide();
       }
       Tooltip.current = this;
-      Tooltip.this.showAt(TooltipPositionCalculator.calculate(Window.getClientWidth(),
-          Window.getClientHeight(), ofWidget.getAbsoluteLeft(), ofWidget.getAbsoluteTop(),
-          ofWidget.getOffsetWidth(), ofWidget.getOffsetHeight(), Tooltip.this.getWidth(),
-          Tooltip.this.getHeight()));
       if (width != WIDTH_NOT_DEFINED) {
         tooltip.getElement().getStyle().setWidth(width, Unit.PX);
       } else if (tooltip.getOffsetWidth() > 430) {
@@ -181,9 +177,17 @@
       } else {
         tooltip.getElement().getStyle().clearWidth();
       }
+      showAt();
     }
   }
 
+  private void showAt() {
+    Tooltip.this.showAt(TooltipPositionCalculator.calculate(Window.getClientWidth(),
+        Window.getClientHeight(), ofWidget.getAbsoluteLeft(), ofWidget.getAbsoluteTop(),
+        ofWidget.getOffsetWidth(), ofWidget.getOffsetHeight(), Tooltip.this.getWidth(),
+        Tooltip.this.getHeight()));
+  }
+
   protected void showAt(final TooltipPosition position) {
     this.setPopupPosition(position.getLeft(), position.getTop());
     switch (position.getArrowPosition()) {

Modified: trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/common/client/utils/TextUtils.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -166,6 +166,7 @@
       // text = text.replaceAll("\'", "&#039;");
       result = result.replaceAll("<", "&lt;");
       result = result.replaceAll(">", "&gt;");
+      result = result.replaceAll("—", "&#8212;");
     }
     return result;
   }
@@ -245,6 +246,7 @@
     result = result.replaceAll("&#039;", "\'");
     result = result.replaceAll("&lt;", "<");
     result = result.replaceAll("&gt;", ">");
+    result = result.replaceAll("&#8212;", "—");
     return result;
   }
 

Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -201,7 +201,6 @@
             @Override
             public void execute() {
               stateManager.setRetrievedStateAndGo(state);
-              NotifyUser.info("Test", true);
               groupOptions.showTooltip();
             }
           });

Modified: trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties
===================================================================
--- trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/i18n/KuneConstants.properties	2011-09-26 20:24:14 UTC (rev 1535)
@@ -201,7 +201,7 @@
 selectACreativeCommonsLicenseRecommendedForCulturalWorks = Select a Creative Commons license (recommended for cultural works)
 otherKindOfLicenses = Other kind of licenses
 useTheGnuLicensesRecommendedForFreeSoftwareWorksAndOtherKindOfLicenses = Use the GNU licenses (recommended for free software works) and other kind of licenses
-withACreativeCommonsLicenseYouKeepYourCopyrightButAllowPeopleToCopyAndDistributeYourWorkProvidedThey = With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit � and only on the conditions you specify here. What do you want to do?
+withACreativeCommonsLicenseYouKeepYourCopyrightButAllowPeopleToCopyAndDistributeYourWorkProvidedThey = With a Creative Commons license, you keep your copyright but allow people to copy and distribute your work provided they give you credit — and only on the conditions you specify here. What do you want to do?
 allowAnyUsesOfYourWorkIncludingCommercial = Allow any uses of your work, including commercial?
 allowModificationsOfYourWork = Allow modifications of your work?
 yes = Yes
@@ -211,7 +211,7 @@
 theLicensorPermitsOthersToCopyDistributeDisplayAndPerformTheWorkAsWellAsMakeDerivativeWorksBasedOnIt = The licensor permits others to copy, distribute, display and perform the work, as well as make derivative works based on it
 yesAsLongAsOtherShareAlike = Yes, as long as other share alike
 theLicensorPermitsOthersToDistributeDerivativeWorksOnlyUnderTheSameLicenseOrOneCompatibleWithTheOneT = The licensor permits others to distribute derivative works only under the same license or one compatible with the one that governs the licensor's work
-theLicensorPermitsOthersToCopyDistributeDisplayAndPerformOnlyUnalteredCopiesOfTheWorkNotDerivativeWo = The licensor permits others to copy, distribute, display and perform only unaltered copies of the work � not derivative works based on it
+theLicensorPermitsOthersToCopyDistributeDisplayAndPerformOnlyUnalteredCopiesOfTheWorkNotDerivativeWo = The licensor permits others to copy, distribute, display and perform only unaltered copies of the work — not derivative works based on it
 thisIsACopyleftLicense = This is a copyleft license.
 thisIsNotACopyleftLicense = This is not a copyleft license.
 thisIsAppropriateForFreeCulturalWorks = This is appropriate for free cultural works.

Deleted: trunk/src/main/java/cc/kune/core/client/services/FileConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/FileConstants.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/services/FileConstants.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,40 +0,0 @@
-/*
- *
- * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
- * This file is part of kune.
- *
- * 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 Affero 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/>.
- *
- \*/
-package cc.kune.core.client.services;
-
-public final class FileConstants {
-
-  public final static String DOWNLOAD = "download";
-  public final static String FILENAME = "filename";
-  public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
-  public final static String HASH = "hash";
-  public final static String IMGSIZE = "imgsize";
-  public final static int LOGO_DEF_HEIGHT = 60;
-  public final static int LOGO_DEF_WIDTH = 468;
-  public final static int LOGO_MIN_HEIGHT = 28;
-  public final static int LOGO_MIN_WIDTH = 468;
-  public final static String TOKEN = "token";
-  public final static String TYPE_ID = "typeid";
-  public final static String USER_LOGO_FIELD = "k-ulogov-ff";
-  public final static String USERNAME = "username";
-
-  private FileConstants() {
-  }
-}

Modified: trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/services/FileDownloadUtils.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -22,25 +22,17 @@
 import cc.kune.common.client.utils.Url;
 import cc.kune.common.client.utils.UrlParam;
 import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.core.shared.dto.GroupDTO;
 import cc.kune.core.shared.dto.UserSimpleDTO;
 
-import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.DOM;
 import com.google.gwt.user.client.ui.RootPanel;
 import com.google.inject.Inject;
 
 public class FileDownloadUtils {
 
-  public static final String AVATARDOWNLOADSERVLET = "servlets/UserLogoDownloadManager";
-  private static final String BACKDOWNLOADSERVLET = "servlets/EntityBackgroundDownloadManager";
-  private static final String DOWNLOADSERVLET = "servlets/FileDownloadManager";
-  protected static final String GROUP_NO_AVATAR_IMAGE = "images/group-def-icon.png";
-  private static final String LOGODOWNLOADSERVLET = "servlets/EntityLogoDownloadManager";
-  protected static final String PERSON_NO_AVATAR_IMAGE = "images/unknown.jpg";
-  public static final String WORLD_AVATAR_IMAGE = "images/world-90.gif";
-
   private final ImageUtils imageUtils;
   private final Session session;
 
@@ -51,7 +43,7 @@
   }
 
   private String calculateUrl(final StateToken token, final boolean download, final boolean useHash) {
-    final Url url = new Url(GWT.getModuleBaseURL() + DOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
+    final Url url = new Url(FileConstants.DOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
         token.toString()));
     if (download) {
       url.add(new UrlParam(FileConstants.DOWNLOAD, download));
@@ -71,18 +63,20 @@
   }
 
   public String getBackgroundImageUrl(final StateToken token) {
-    return new Url(GWT.getModuleBaseURL() + BACKDOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
-        token.toString())).toString();
+    return new Url(FileConstants.BACKDOWNLOADSERVLET,
+        new UrlParam(FileConstants.TOKEN, token.toString())).toString();
   }
 
   public String getBackgroundResizedUrl(final StateToken token, final ImageSize imageSize) {
-    return new Url(GWT.getModuleBaseURL() + BACKDOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
-        token.toString()), new UrlParam(FileConstants.IMGSIZE, imageSize.toString())).toString();
+    return new Url(FileConstants.BACKDOWNLOADSERVLET,
+        new UrlParam(FileConstants.TOKEN, token.toString()), new UrlParam(FileConstants.IMGSIZE,
+            imageSize.toString())).toString();
   }
 
   public String getGroupLogo(final GroupDTO group) {
     return group.hasLogo() ? getLogoImageUrl(group.getStateToken())
-        : group.isPersonal() ? PERSON_NO_AVATAR_IMAGE : GROUP_NO_AVATAR_IMAGE;
+        : group.isPersonal() ? FileConstants.PERSON_NO_AVATAR_IMAGE
+            : FileConstants.GROUP_NO_AVATAR_IMAGE;
   }
 
   public String getImageResizedUrl(final StateToken token, final ImageSize imageSize) {
@@ -106,8 +100,8 @@
   }
 
   public String getLogoImageUrl(final StateToken token) {
-    return new Url(GWT.getModuleBaseURL() + LOGODOWNLOADSERVLET, new UrlParam(FileConstants.TOKEN,
-        token.toString())).toString();
+    return new Url(FileConstants.LOGODOWNLOADSERVLET,
+        new UrlParam(FileConstants.TOKEN, token.toString())).toString();
   }
 
   public String getUrl(final StateToken token) {
@@ -115,11 +109,10 @@
   }
 
   public String getUserAvatar(final String username) {
-    return new Url(GWT.getModuleBaseURL() + AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME,
-        username)).toString();
+    return new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME, username)).toString();
   }
 
   public String getUserAvatar(final UserSimpleDTO user) {
-    return user.hasLogo() ? getLogoImageUrl(user.getStateToken()) : PERSON_NO_AVATAR_IMAGE;
+    return user.hasLogo() ? getLogoImageUrl(user.getStateToken()) : FileConstants.PERSON_NO_AVATAR_IMAGE;
   }
 }

Modified: trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/AboutKuneDialog.ui.xml	2011-09-26 20:24:14 UTC (rev 1535)
@@ -16,7 +16,7 @@
   </ui:style>
 
   <g:FlowPanel styleName="{style.panel}" ui:field="flow">
-    <g:Frame styleName="{style.frame}" url="about.html"
+    <g:Frame styleName="{style.frame}" url="ws/about.html"
       ui:field="frame" />
   </g:FlowPanel>
 </ui:UiBinder>

Modified: trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/state/StateManagerDefault.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -137,7 +137,7 @@
 
   @Override
   public void gotoHistoryToken(final String token) {
-    Log.debug("StateManager: history goto-string-token :" + token);
+    Log.debug("StateManager: history goto-string-token: " + token);
     history.newItem(token);
   }
 

Modified: trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/state/TokenUtils.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -19,13 +19,30 @@
  */
 package cc.kune.core.client.state;
 
+import cc.kune.common.client.utils.Base64Utils;
+
 public class TokenUtils {
 
-    public static String addRedirect(final String token, final String redirect) {
-        return new StringBuffer().append(token).append("(").append(redirect).append(")").toString();
+  public static String addRedirect(final String token, final String redirect) {
+    return new StringBuffer().append(token).append("(").append(redirect).append(")").toString();
+  }
+
+  private static String compose(final String... params) {
+    final StringBuffer sb = new StringBuffer();
+    for (final String param : params) {
+      sb.append(param).append("|");
     }
+    return sb.toString().replaceAll("\\|$", "");
+  }
 
-    public static String preview(final String token) {
-        return addRedirect(SiteTokens.PREVIEW, token);
-    }
+  public static String preview(final String token) {
+    return addRedirect(SiteTokens.PREVIEW, token);
+  }
+
+  public static String subtitle(final String title, final String description, final String redirect) {
+    return addRedirect(
+        SiteTokens.SUBTITLES,
+        compose(Base64Utils.toBase64(title.getBytes()), Base64Utils.toBase64(description.getBytes()),
+            redirect));
+  }
 }

Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesManager.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,6 +1,7 @@
 package cc.kune.core.client.sub;
 
 import cc.kune.common.client.utils.Base64Utils;
+import cc.kune.common.client.utils.SimpleCallback;
 import cc.kune.core.client.state.StateManager;
 
 import com.google.gwt.event.shared.EventBus;
@@ -24,7 +25,7 @@
 
     void setTitleText(String text);
 
-    void show();
+    void show(final SimpleCallback atShowEnd);
 
   }
   private final StateManager stateManager;
@@ -45,7 +46,11 @@
     final String[] params = token.split("\\|");
     getView().setTitleText(new String(Base64Utils.fromBase64(params[0])));
     getView().setDescription(new String(Base64Utils.fromBase64(params[1])));
-    getView().show();
-    stateManager.gotoHistoryToken(params[2]);
+    getView().show(new SimpleCallback() {
+      @Override
+      public void onCallback() {
+        stateManager.gotoHistoryToken(params[2]);
+      }
+    });
   }
 }
\ No newline at end of file

Modified: trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/sub/SubtitlesWidget.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -5,6 +5,7 @@
 import org.adamtacy.client.ui.effects.examples.Show;
 import org.adamtacy.client.ui.effects.examples.SlideRight;
 
+import cc.kune.common.client.utils.SimpleCallback;
 import cc.kune.core.client.sub.SubtitlesManager.SubtitlesView;
 
 import com.google.gwt.core.client.GWT;
@@ -30,12 +31,14 @@
 
   private static SubtitlesWidgetUiBinder uiBinder = GWT.create(SubtitlesWidgetUiBinder.class);
 
+  private SimpleCallback callback;
   @UiField
   InlineLabel description;
   private final PopupPanel popup;
   private boolean showing;
   @UiField
   InlineLabel title;
+
   private final Widget widget;
 
   public SubtitlesWidget() {
@@ -57,6 +60,7 @@
             @Override
             public void onEffectCompleted(final EffectCompletedEvent event) {
               popup.hide();
+              callback.onCallback();
             }
           });
           showing = false;
@@ -91,9 +95,11 @@
   }
 
   @Override
-  public void show() {
+  public void show(final SimpleCallback callback) {
+    this.callback = callback;
     popup.setWidget(widget);
     setSize(Window.getClientWidth(), Window.getClientHeight());
+    popup.sinkEvents(Event.MOUSEEVENTS);
     popup.show();
     final Show showAtIni = new Show(popup.getElement());
     showAtIni.setDuration(3);
@@ -101,7 +107,6 @@
     final SlideRight slideAtIni = new SlideRight(popup.getElement());
     slideAtIni.setDuration(3);
     slideAtIni.play();
-    popup.sinkEvents(Event.MOUSEEVENTS);
     this.showing = true;
   }
 

Modified: trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/ui/DefaultFormUtils.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -44,8 +44,6 @@
         if (radioTip != null && tooltip == null) {
           tooltip = Tooltip.to(radio, radioTip);
           tooltip.setWidth(300);
-          tooltip.show();
-          tooltip.hide();
         }
       }
     });

Modified: trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/client/ws/entheader/EntityHeaderPanel.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -25,9 +25,9 @@
 import cc.kune.common.client.actions.ui.bind.GuiProvider;
 import cc.kune.common.client.actions.ui.descrip.GuiActionDescrip;
 import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.client.services.FileDownloadUtils;
 import cc.kune.core.client.ws.entheader.EntityHeaderPresenter.EntityHeaderView;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.core.shared.dto.GroupDTO;
 import cc.kune.gspace.client.GSpaceArmor;

Deleted: trunk/src/main/java/cc/kune/core/public/ws.html
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.html	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/public/ws.html	2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,261 +0,0 @@
-<!doctype html>
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
-<title>Kune</title>
-<script type="text/javascript" language="javascript"
-    src="/ws/ws.nocache.js"></script>
-<meta name="emite.httpBase" content="/http-bind/" />
-<meta name="emite.host" content="localhost" />
-<meta name="emite.searchHost" content="search.localhost" />
-<!--<meta name="emite.session" content="login" />-->
-<meta name="hablar.roomService" content="rooms.localhost" />
-<meta name="hablar.login" content="false" />
-<meta name="hablar.hasVCard" content="false" />
-<meta name="hablar.search" content="false" />
-<meta name="hablar.hasSound" content="false" />
-<meta name="hablar.hasCopyToClipboard" content="true" />
-<!--<meta name="hablar.hasLogger" content="true" />-->
-<meta name="hablar.hasSignals" content="false" />
-<meta name="hablar.roster" content="true" />
-<meta name="hablar.dockRoster" content="left" />
-<meta name="hablar.icons" content="alt" />
-<meta name="hablar.layout" content="tabs" />
-<meta name="hablar.inline" content="vertical_dock_div" />
-<meta name="hablar.width" content="550px" />
-<meta name="hablar.height" content="400px" />
-<link rel="shortcut icon" href="favicon.ico" />
-<link rel="stylesheet" type="text/css"
-    href="http://yui.yahooapis.com/2.8.0r4/build/reset/reset-min.css">
-<!-- FIXME: make something local -->
-<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
-<script>
-  WebFont.load({
-    google : {
-      families : [ 'Ubuntu' ]
-    }
-  });
-</script>
-<link
-    href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic'
-    rel='stylesheet' type='text/css'>
-<!-- <link href='http://fonts.googleapis.com/css?family=Inconsolata'
-  rel='stylesheet' type='text/css'> -->
-<link type="text/css" rel="stylesheet" href="gxt/css/gxt-all.css">
-<link type="text/css" rel="stylesheet" href="gxt/css/gxt-gray.css">
-<link type="text/css" rel="stylesheet"
-    href="gxt-custom/css/gxt-op-common.css">
-<link type="text/css" rel="stylesheet" href="kune-hablar.css">
-<link type="text/css" rel="stylesheet" href="kune-chat.css">
-<link type="text/css" rel="stylesheet" href="kune-common.css">
-<link type="text/css" rel="stylesheet"
-    href="fontface/ubuntufontface.css">
-<link type="text/css" rel="stylesheet" href="kune-message.css">
-<link type="text/css" rel="stylesheet" href="/others/splash/style/permalink.css">
-<link type="text/css" rel="stylesheet" href="/others/splash/style/stuff.css">
-<link type="text/css" rel="stylesheet" href="/others/splash/style/main.css">
-<link type="text/css" rel="stylesheet" href="ws.css">
-<script type="text/javascript" src="/others/splash/js/gadget.js"></script>
-<script type="text/javascript" src="/others/splash/js/rpc.js"></script>
-<script type="text/javascript" src="/others/splash/js/common_client.js"></script>
-<script type="text/javascript" src="/others/splash/js/permalink_client.js"></script>
-<script type="text/javascript" src="http://wave.google.com/gadgets/js/core:rpc.js?c=1"></script>
-
-<style type="text/css">
-
-body {
-  background-color: white;
-  color: black;
-  font-family: 'Ubuntu', Arial;
-  font-size: small;
-  overflow: hidden;
-}
-
-#kuneloading {
-  position: absolute;
-  left: 2%;
-  top: 2%;
-  z-index: 20001;
-  height: auto;
-  border: solid 2px #ccc;
-  -moz-border-radius: 10px;
-  -webkit-border-radius: 10px;
-  border-radius: 10px;
-  background-color: white;
-}
-
-#kuneloading a {
-  color: #225588;
-}
-
-#kuneloading .kuneloading-indicator {
-  color: #444;
-  font: bold 13px tahoma, arial, helvetica;
-  padding: 3px 3px 8px;
-  margin: 0;
-  height: auto;
-}
-
-#kuneloading-msg {
-  font: normal 10px arial, tahoma, sans-serif;
-}
-
-#k-home-prewrap {
-  margin-top: -22px;
-}
-
-#k-home-wrapper {
-  margin-left: auto;
-  margin-right: auto;
-  position: relative;
-  width: 665px;
-  min-width: 320px;
-}
-
-#k-home-ini {
-  clear: both;
-  font-size: 28px;
-  color: #69312f;
-  text-align: justify;
-  padding: 27px 0;
-  line-height: 1.3em;
-}
-
-#k-home-ini a {
-  color: #803000;
-  font-weight: bold;
-}
-
-#k-home-ini strong {
-  font-weight: bold;
-}
-
-#k-home-stats {
-  font-size: 22px;
-  color: #c87137;
-  font-weight: bold;
-}
-
-#k-home-table {
-  display: table;
-}
-
-#k-home-header {
-  display: table-row;
-}
-
-#k-home-logo {
-  display: table-cell;
-  margin: 50px 0 22px 0;
-  float: right;
-}
-
-#k-home-summary {
-  display: table-cell;
-  font-size: 32px;
-  color: #dd8a3d;
-  font-weight: bold;
-  white-space: nowrap;
-  float: left;
-}
-
-#k-home-summary li {
-  padding-left: 41px;
-  background-repeat: no-repeat;
-  background-position: 0 .2em;
-  line-height: 45px;
-}
-
-#k-home-row {
-  display: table-row;
-}
-
-#k-home-left {
-  display: table-cell;
-}
-
-#k-home-right {
-  display: table-cell;
-}
-
-.banner {
-  margin: 30px;
-}
-</style>
-<!--[if IE 6]>
-    <link type="text/css" rel="stylesheet" href="ie6.css">
-<![endif]-->
-</head>
-<body>
-    <!-- Banner for wave errors -->
-    <div class="banner" id="banner"></div>
-    <!-- Autocomplete user/pass -->
-    <form method="post" action="javascript:void(0)" style="display: none">
-        <input type="text" id="address" name="address" value="" /> <input
-            type="password" id="password" name="password" value="" /> <input
-            type="submit" value="Login" id="login" /> <input type="submit"
-            class="wiab le button" name="signIn" id="signIn" value="Sign in">
-    </form>
-    <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
-    <noscript>
-        <div
-            style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
-            Your web browser must have JavaScript enabled in order for this
-            application to display correctly.</div>
-    </noscript>
-    <iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
-    <iframe src="" id="__download" style="width: 0; height: 0; border: 0"></iframe>
-    <div id="kuneinitialcurtain"></div>
-    <div id="kuneloading">
-        <div class="kuneloading-indicator">
-            <img src="images/kune-anim-g.gif" width="35" height="35"
-                alt="kune-loading"
-                style="margin-right: 3px; float: left; vertical-align: top;" />kune&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
-            <span id="kuneloading-msg">Starting...</span>
-        </div>
-    </div>
-    <div id="k-home-prewrap">
-        <div id="k-home-wrapper">
-            <div id="k-home-table">
-                <div id="k-home-header">
-                    <div id="k-home-logo">
-                        <img src="logo-big-home.png" alt="" />
-                    </div>
-                    <div id="k-home-summary">
-                        <ul>
-                            <li style="background-image: url(images/kune-intro-user.png);">Comunicate with others</li>
-                            <li style="background-image: url(images/kune-intro-group.png);">Work in collaboration</li>
-                            <li style="background-image: url(images/kune-intro-world.png);">And share with the world</li>
-                        </ul>
-                    </div>
-                    <!-- k-home-summary -->
-                </div>
-                <!-- div home-header -->
-                <div id="k-home-row">
-                    <div id="k-home-left">
-                        <div id="k-home-ini">
-                            Welcome! This site is a Kune node. Kune, which means
-                            "together" in esperanto, it's a network of interconnected
-                            sites like this one, where you can <strong>communicate,
-                                share, collaborate with others and create your web
-                                spaces easily</strong>. <a href="#signin">Join!</a>
-                        </div>
-                        <!--  div home-ini -->
-                        <div id="k-home-stats" style="display: none;">Latests
-                            groups created</div>
-                    </div>
-                    <!-- div k-home-left -->
-                    <div id="k-home-right">
-                        <!-- div home-stats -->
-                    </div>
-                    <!-- div k-home-right -->
-                </div>
-                <!-- div k-home-row -->
-            </div>
-            <!-- div home-table -->
-        </div>
-        <!-- home-wrapper -->
-    </div>
-    <!-- home-prewrap -->
-</body>
-</html>

Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -73,13 +73,15 @@
 public class KuneRackModule implements RackModule {
   public static final Log LOG = LogFactory.getLog(KuneRackModule.class);
   private final Module configModule;
+  private final String suffix;
 
   public KuneRackModule() {
-    this("development", null);
+    this("development", "/ws", null);
   }
 
-  public KuneRackModule(final String jpaUnit, final Scope sessionScope) {
+  public KuneRackModule(final String jpaUnit, final String suffix, final Scope sessionScope) {
 
+    this.suffix = suffix;
     final SystemConfiguration sysConf = new SystemConfiguration();
     final String kuneConfig = sysConf.getString("kune.server.config");
 
@@ -135,22 +137,24 @@
     builder.at(".*").install(new GuiceFilter());
 
     // NOTE: Commented this while testing Wave
-    // builder.at("^/$").install(new RedirectFilter("/ws/"));
-    builder.at("^/ws").install(new RedirectFilter("/ws/"));
+    // builder.at("^/$").install(new RedirectFilter(KUNE_PREFIX + "/"));
+    builder.at("^" + suffix + "").install(new RedirectFilter(suffix + "/"));
 
-    builder.at("^/ws/$").install(new ListenerFilter(KuneApplicationListener.class),
-        new ForwardFilter("/ws/ws.html"));
+    builder.at("^" + suffix + "/$").install(new ListenerFilter(KuneApplicationListener.class),
+        new ForwardFilter(suffix + "/ws.html"));
 
-    builder.installGWTServices("^/ws/", SiteService.class, GroupService.class, ContentService.class,
-        UserService.class, SocialNetworkService.class, I18nService.class, ListsService.class);
-    builder.installRESTServices("^/ws/json/", TestJSONService.class, GroupJSONService.class,
+    builder.installGWTServices("^" + suffix + "/", SiteService.class, GroupService.class,
+        ContentService.class, UserService.class, SocialNetworkService.class, I18nService.class,
+        ListsService.class);
+    builder.installRESTServices("^" + suffix + "/json/", TestJSONService.class, GroupJSONService.class,
         UserJSONService.class, I18nTranslationJSONService.class, ContentJSONService.class);
-    builder.installServlet("^/ws/servlets/", FileUploadManager.class, FileDownloadManager.class,
-        EntityLogoUploadManager.class, EntityLogoDownloadManager.class, FileGwtUploadServlet.class,
-        EntityBackgroundDownloadManager.class, EntityBackgroundUploadManager.class,
-        UserLogoDownloadManager.class);
+    builder.installServlet("^" + suffix + "/servlets/", FileUploadManager.class,
+        FileDownloadManager.class, EntityLogoUploadManager.class, EntityLogoDownloadManager.class,
+        FileGwtUploadServlet.class, EntityBackgroundDownloadManager.class,
+        EntityBackgroundUploadManager.class, UserLogoDownloadManager.class);
 
-    builder.at("^/ws/(.*)$").install(new ForwardFilter("^/ws/(.*)$", "/ws/{0}"));
+    builder.at("^" + suffix + "/(.*)$").install(
+        new ForwardFilter("^" + suffix + "/(.*)$", suffix + "/{0}"));
   }
 
   private void installGuiceModules(final RackBuilder builder) {

Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityBackgroundDownloadManager.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -33,10 +33,10 @@
 import org.apache.commons.logging.LogFactory;
 
 import cc.kune.core.client.errors.ContentNotFoundException;
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.client.services.ImageSize;
 import cc.kune.core.server.manager.GroupManager;
 import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.domain.Group;
 

Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoDownloadManager.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -28,8 +28,8 @@
 import javax.servlet.http.HttpServletResponse;
 
 
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.server.manager.GroupManager;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.domain.Group;
 

Modified: trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/EntityLogoUploadManager.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -29,12 +29,12 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.server.auth.ActionLevel;
 import cc.kune.core.server.auth.Authenticated;
 import cc.kune.core.server.auth.Authorizated;
 import cc.kune.core.server.manager.GroupManager;
 import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.AccessRol;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.core.shared.i18n.I18nTranslationService;

Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/FileDownloadManager.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -33,7 +33,6 @@
 import org.apache.commons.logging.LogFactory;
 
 import cc.kune.core.client.errors.ContentNotFoundException;
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.client.services.ImageSize;
 import cc.kune.core.server.auth.ActionLevel;
 import cc.kune.core.server.auth.Authenticated;
@@ -41,6 +40,7 @@
 import cc.kune.core.server.content.ContentManager;
 import cc.kune.core.server.content.ContentUtils;
 import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.AccessRol;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.domain.BasicMimeType;

Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/FileGwtUploadAbstractServlet.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -30,8 +30,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.utils.StateToken;
 
 import com.google.inject.servlet.RequestScoped;

Modified: trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/FileUploadManagerAbstract.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -38,8 +38,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.server.properties.KuneProperties;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.utils.StateToken;
 
 import com.google.inject.Inject;

Modified: trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/server/manager/file/UserLogoDownloadManager.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -28,8 +28,8 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import cc.kune.core.client.services.FileConstants;
 import cc.kune.core.server.manager.GroupManager;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.domain.Group;
 

Copied: trunk/src/main/java/cc/kune/core/shared/FileConstants.java (from rev 1531, trunk/src/main/java/cc/kune/core/client/services/FileConstants.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/FileConstants.java	                        (rev 0)
+++ trunk/src/main/java/cc/kune/core/shared/FileConstants.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -0,0 +1,49 @@
+/*
+ *
+ * Copyright (C) 2007-2011 The kune development team (see CREDITS for details)
+ * This file is part of kune.
+ *
+ * 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 Affero 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/>.
+ *
+ \*/
+package cc.kune.core.shared;
+
+public final class FileConstants {
+
+  public final static String ASITE_PREFIX = "ws/";
+  public final static String AVATARDOWNLOADSERVLET = ASITE_PREFIX + "servlets/UserLogoDownloadManager";
+  public final static String BACKDOWNLOADSERVLET = ASITE_PREFIX
+      + "servlets/EntityBackgroundDownloadManager";
+  public final static String DOWNLOAD = "download";
+  public static final String DOWNLOADSERVLET = ASITE_PREFIX + "servlets/FileDownloadManager";
+  public final static String FILENAME = "filename";
+  public final static String GROUP_LOGO_FIELD = "k-glogov-ff";
+  public static final String GROUP_NO_AVATAR_IMAGE = ASITE_PREFIX + "images/group-def-icon.png";
+  public final static String HASH = "hash";
+  public final static String IMGSIZE = "imgsize";
+  public final static int LOGO_DEF_HEIGHT = 60;
+  public final static int LOGO_DEF_WIDTH = 468;
+  public final static int LOGO_MIN_HEIGHT = 28;
+  public final static int LOGO_MIN_WIDTH = 468;
+  public static final String LOGODOWNLOADSERVLET = ASITE_PREFIX + "servlets/EntityLogoDownloadManager";
+  public final static String PERSON_NO_AVATAR_IMAGE = ASITE_PREFIX + "images/unknown.jpg";
+  public final static String TOKEN = "token";
+  public final static String TYPE_ID = "typeid";
+  public final static String USER_LOGO_FIELD = "k-ulogov-ff";
+  public final static String USERNAME = "username";
+  public final static String WORLD_AVATAR_IMAGE = ASITE_PREFIX + "images/world-90.gif";
+
+  public FileConstants() {
+  }
+}

Modified: trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/core/shared/SearcherConstants.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -21,21 +21,27 @@
 
 public final class SearcherConstants {
 
-  public final static String CONTENT_DATA_PROXY_URL = "/ws/json/ContentJSONService/search";
-  public final static String CONTENT_TEMPLATE_TEXT_PREFIX = "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img src=\"";
-  public final static String CONTENT_TEMPLATE_TEXT_SUFFIX = "\" style=\"height: 16px; width: 16px;\" />{shortName}:&nbsp;{longName}</span></div>";
+  // public final static String CONTENT_DATA_PROXY_URL =
+  // "/ws/json/ContentJSONService/search";
+  // public final static String CONTENT_TEMPLATE_TEXT_PREFIX =
+  // "<div class=\"search-item\"><span class=\"kune-IconHyperlink\"><img src=\"";
+  // public final static String CONTENT_TEMPLATE_TEXT_SUFFIX =
+  // "\" style=\"height: 16px; width: 16px;\" />{shortName}:&nbsp;{longName}</span></div>";
   public final static String GROUP_DATA_PROXY_URL = "/ws/json/GroupJSONService/search";
+  // public final static String I18N_JSON_SERVICE =
+  // "/ws/json/I18nTranslationJSONService/search";
   public final static String GROUP_PARAM = "group";
-  public final static String I18N_JSON_SERVICE = "/ws/json/I18nTranslationJSONService/search";
 
-  public final static String I18N_JSON_SERVICE_TRANSLATED = "/ws/json/I18nTranslationJSONService/searchtranslated";
   public final static String LIMIT_PARAM = "limit";
   public final static String MIMETYPE_PARAM = "mimetype";
   public final static String MIMETYPE2_PARAM = "mimetype2";
   public final static String QUERY_PARAM = "query";
 
   public final static String START_PARAM = "start";
-  public final static String USER_DATA_PROXY_URL = "/ws/json/UserJSONService/search";
+  // public final static String I18N_JSON_SERVICE_TRANSLATED =
+  // "/ws/json/I18nTranslationJSONService/searchtranslated";
+  // public final static String USER_DATA_PROXY_URL =
+  // "/ws/json/UserJSONService/search";
   public static final String WILDCARD = "*";
 
   private SearcherConstants() {

Modified: trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/i18n/I18nTranslateRecomendPanel.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -16,7 +16,7 @@
   @Inject
   public I18nTranslateRecomendPanel(final I18nTranslationService i18n) {
     tabTitle = new Label(i18n.t("Recommendations"));
-    recommFrame = new Frame("i18n-recom.html");
+    recommFrame = new Frame("ws/i18n-recom.html");
     // recommFrame.setHeight("auto");
     recommFrame.setStyleName("k-i18n-recommend");
     initWidget(recommFrame);

Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPanel.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -27,10 +27,11 @@
 import cc.kune.common.client.utils.OnAcceptCallback;
 import cc.kune.core.client.resources.CoreMessages;
 import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.i18n.I18nTranslationService;
 import cc.kune.gspace.client.options.EntityOptionsView;
 
+import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.shared.EventBus;
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.ui.Composite;
@@ -38,10 +39,11 @@
 
 public class EntityOptLogoPanel extends Composite implements EntityOptLogoView {
 
-  public static final String ICON_UPLD_SERVLET = "servlets/EntityLogoUploadManager";
-  private final EntityUploaderForm uploader;
+  public static final String ICON_UPLD_SERVLET = GWT.getModuleBaseURL()
+      + "servlets/EntityLogoUploadManager";
   private final I18nTranslationService i18n;
   private final IconLabel tabTitle;
+  private final EntityUploaderForm uploader;
 
   public EntityOptLogoPanel(final EventBus eventBus, final I18nTranslationService i18n,
       final String panelId, final String buttonId, final String inputId, final NavResources res) {

Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityOptLogoPresenter.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -86,7 +86,7 @@
   }
 
   public void onSubmitFailed(final String responseText) {
-    NotifyUser.error(i18n.t("Error setting the logo", responseText));
+    NotifyUser.error(i18n.t("Error setting the logo"));
   }
 
   protected abstract void setState();

Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/EntityUploaderForm.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -25,7 +25,7 @@
 import gwtupload.client.IUploader.OnFinishUploaderHandler;
 import gwtupload.client.IUploader.OnStartUploaderHandler;
 import gwtupload.client.MultiUploader;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
 
 import com.google.gwt.event.shared.HandlerRegistration;
 import com.google.gwt.user.client.ui.Composite;

Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/GroupOptLogoPanel.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -20,7 +20,7 @@
 package cc.kune.gspace.client.options.logo;
 
 import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.i18n.I18nTranslationService;
 
 import com.google.gwt.event.shared.EventBus;

Modified: trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/logo/UserOptLogoPanel.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -20,7 +20,7 @@
 package cc.kune.gspace.client.options.logo;
 
 import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.client.services.FileConstants;
+import cc.kune.core.shared.FileConstants;
 import cc.kune.core.shared.i18n.I18nTranslationService;
 
 import com.google.gwt.event.shared.EventBus;

Modified: trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/options/style/EntityOptStylePanel.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -34,6 +34,7 @@
 import cc.kune.gspace.client.options.logo.EntityUploaderForm;
 import cc.kune.gspace.client.themes.GSpaceThemeSelectorPanel;
 
+import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.HasClickHandlers;
@@ -47,7 +48,8 @@
 
 public class EntityOptStylePanel extends FlowPanel implements EntityOptStyleView {
 
-  public static final String ICON_UPLD_SERVLET = "servlets/EntityBackgroundUploadManager";
+  public static final String ICON_UPLD_SERVLET = GWT.getModuleBaseURL()
+      + "servlets/EntityBackgroundUploadManager";
   private final Label backgroundLabel;
   private final Image backImage;
   private final String changeImage;

Modified: trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/gspace/client/ui/footer/license/EntityLicensePanel.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -26,6 +26,7 @@
 import cc.kune.gspace.client.GSpaceArmor;
 import cc.kune.gspace.client.ui.footer.license.EntityLicensePresenter.EntityLicenseView;
 
+import com.google.gwt.core.client.GWT;
 import com.google.gwt.event.dom.client.HasClickHandlers;
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.Image;
@@ -81,7 +82,7 @@
   public void showLicense(final String groupName, final LicenseDTO licenseDTO) {
     final String licenseText = i18n.t("© [%s], under license: [%s]", groupName, licenseDTO.getLongName());
     // KuneUiUtils.setQuickTip(licenseLabel, licenseText);
-    licenseImage.setUrl(licenseDTO.getImageUrl());
+    licenseImage.setUrl(GWT.getModuleBaseURL() + licenseDTO.getImageUrl());
     tooltip.setText(licenseText);
   }
 }

Modified: trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml
===================================================================
--- trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/msgs/client/UserMessage.ui.xml	2011-09-26 20:24:14 UTC (rev 1535)
@@ -1,22 +1,36 @@
 <!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
 <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
   xmlns:g="urn:import:com.google.gwt.user.client.ui">
+
+  <ui:style>
+    @if user.agent safari {
+      .k-msg-width {
+        width: 0px;
+      }
+    }
+
+    @elif user.agent gecko1_8 {
+      .k-msg-width {
+        width: auto;
+      }
+    }
+  </ui:style>
   <ui:with field='img'
-    type='cc.kune.msgs.client.resources.UserMessageImages' />
+    type='cc.kune.msgs.client.resources.UserMessageImages'/>
   <g:HorizontalPanel verticalAlignment="ALIGN_MIDDLE"
-    height="42px" addStyleNames="k-msg, k-3corners">
+    height="42px" addStyleNames="k-msg, k-3corners, {style.k-msg-width}">
     <g:SimplePanel addStyleNames="k-msg-icon">
-      <g:Image width="100%" ui:field="icon" height="100%" />
+      <g:Image width="100%" ui:field="icon" height="100%"/>
     </g:SimplePanel>
     <g:Cell width="100%">
       <g:InlineHTML ui:field="label" width="100%"
-        styleName="k-msg-label" />
+        styleName="k-msg-label"/>
     </g:Cell>
     <g:PushButton ui:field="close" styleName="k-msg-close"
       width="22px">
-      <g:upFace image='{img.remove}' />
-      <g:downFace image='{img.removeOver}' />
-      <g:upHoveringFace image='{img.removeGrey}' />
+      <g:upFace image='{img.remove}'/>
+      <g:downFace image='{img.removeOver}'/>
+      <g:upHoveringFace image='{img.removeGrey}'/>
     </g:PushButton>
   </g:HorizontalPanel>
 </ui:UiBinder>

Modified: trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/cc/kune/wave/client/KuneWaveProfileManager.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -26,12 +26,14 @@
 import org.waveprotocol.wave.model.wave.ParticipantId;
 
 import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.shared.FileConstants;
 
 import com.google.inject.Inject;
 
 /**
  * The Class KuneWaveProfileManager is a workaround to show avatars in kune
- * while the Wave part is more mature (see in the future RemoteProfileManagerImpl)
+ * while the Wave part is more mature (see in the future
+ * RemoteProfileManagerImpl)
  * 
  */
 public class KuneWaveProfileManager extends AbstractProfileManager<ProfileImpl> implements
@@ -51,14 +53,14 @@
     }
     final String address = profile.getAddress();
     if (address.equals(localDomain) || address.equals("@")) {
-      updateProfileAvatar(profile, FileDownloadUtils.WORLD_AVATAR_IMAGE);
+      updateProfileAvatar(profile, FileConstants.WORLD_AVATAR_IMAGE);
     } else if (address.contains(Session.get().getDomain())) {
       updateProfileAvatar(profile, downloadUtils.getUserAvatar(address.split("@")[0]));
     }
   }
 
   @Override
-  public ProfileImpl getProfile(ParticipantId participantId) {
+  public ProfileImpl getProfile(final ParticipantId participantId) {
     ProfileImpl profile = profiles.get(participantId.getAddress());
 
     if (profile == null) {

Modified: trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java
===================================================================
--- trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/java/com/google/wave/splash/web/template/ThreadedWaveRenderer.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -26,8 +26,7 @@
 
 import cc.kune.common.client.utils.Url;
 import cc.kune.common.client.utils.UrlParam;
-import cc.kune.core.client.services.FileConstants;
-import cc.kune.core.client.services.FileDownloadUtils;
+import cc.kune.core.shared.FileConstants;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
@@ -151,10 +150,10 @@
   private String getAvatarUrl(final String address) {
     String avatar = "";
     if (address.contains(domain)) {
-      avatar = new Url("/ws/" + FileDownloadUtils.AVATARDOWNLOADSERVLET, new UrlParam(
-          FileConstants.USERNAME, address.split("@")[0])).toString();
+      avatar = new Url(FileConstants.AVATARDOWNLOADSERVLET, new UrlParam(FileConstants.USERNAME,
+          address.split("@")[0])).toString();
     } else {
-      avatar = "/others/unknown.jpg";
+      avatar = FileConstants.PERSON_NO_AVATAR_IMAGE;
     }
     return avatar;
   }

Modified: trunk/src/main/resources/kune.properties
===================================================================
--- trunk/src/main/resources/kune.properties	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/main/resources/kune.properties	2011-09-26 20:24:14 UTC (rev 1535)
@@ -4,7 +4,7 @@
 
 kune.siteurl = http://localhost:8080
 
-kune.sitelogourl = images/kune-logo-16px.png
+kune.sitelogourl = ws/images/kune-logo-16px.png
 
 # Every kune site have a group with this name:
 

Copied: trunk/src/main/webapp/static (from rev 1531, trunk/src/main/java/cc/kune/wave/public/static)

Added: trunk/src/main/webapp/ws.html
===================================================================
--- trunk/src/main/webapp/ws.html	                        (rev 0)
+++ trunk/src/main/webapp/ws.html	2011-09-26 20:24:14 UTC (rev 1535)
@@ -0,0 +1,261 @@
+<!doctype html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<title>Kune</title>
+<script type="text/javascript" language="javascript"
+    src="ws/ws.nocache.js"></script>
+<meta name="emite.httpBase" content="/http-bind/" />
+<meta name="emite.host" content="localhost" />
+<meta name="emite.searchHost" content="search.localhost" />
+<!--<meta name="emite.session" content="login" />-->
+<meta name="hablar.roomService" content="rooms.localhost" />
+<meta name="hablar.login" content="false" />
+<meta name="hablar.hasVCard" content="false" />
+<meta name="hablar.search" content="false" />
+<meta name="hablar.hasSound" content="false" />
+<meta name="hablar.hasCopyToClipboard" content="true" />
+<!--<meta name="hablar.hasLogger" content="true" />-->
+<meta name="hablar.hasSignals" content="false" />
+<meta name="hablar.roster" content="true" />
+<meta name="hablar.dockRoster" content="left" />
+<meta name="hablar.icons" content="alt" />
+<meta name="hablar.layout" content="tabs" />
+<meta name="hablar.inline" content="vertical_dock_div" />
+<meta name="hablar.width" content="550px" />
+<meta name="hablar.height" content="400px" />
+<link rel="shortcut icon" href="ws/favicon.ico" />
+<link rel="stylesheet" type="text/css"
+    href="http://yui.yahooapis.com/2.8.0r4/build/reset/reset-min.css">
+<!-- FIXME: make something local -->
+<script src="//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"></script>
+<script>
+  WebFont.load({
+    google : {
+      families : [ 'Ubuntu' ]
+    }
+  });
+</script>
+<link
+    href='http://fonts.googleapis.com/css?family=Ubuntu:regular,italic,bold,bolditalic'
+    rel='stylesheet' type='text/css'>
+<!-- <link href='http://fonts.googleapis.com/css?family=Inconsolata'
+  rel='stylesheet' type='text/css'> -->
+<link type="text/css" rel="stylesheet" href="ws/gxt/css/gxt-all.css">
+<link type="text/css" rel="stylesheet" href="ws/gxt/css/gxt-gray.css">
+<link type="text/css" rel="stylesheet"
+    href="ws/gxt-custom/css/gxt-op-common.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-hablar.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-chat.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-common.css">
+<link type="text/css" rel="stylesheet"
+    href="ws/fontface/ubuntufontface.css">
+<link type="text/css" rel="stylesheet" href="ws/kune-message.css">
+<link type="text/css" rel="stylesheet" href="others/splash/style/permalink.css">
+<link type="text/css" rel="stylesheet" href="others/splash/style/stuff.css">
+<link type="text/css" rel="stylesheet" href="others/splash/style/main.css">
+<link type="text/css" rel="stylesheet" href="ws/ws.css">
+<script type="text/javascript" src="others/splash/js/gadget.js"></script>
+<script type="text/javascript" src="others/splash/js/rpc.js"></script>
+<script type="text/javascript" src="others/splash/js/common_client.js"></script>
+<script type="text/javascript" src="others/splash/js/permalink_client.js"></script>
+<script type="text/javascript" src="http://wave.google.com/gadgets/js/core:rpc.js?c=1"></script>
+
+<style type="text/css">
+
+body {
+  background-color: white;
+  color: black;
+  font-family: 'Ubuntu', Arial;
+  font-size: small;
+  overflow: hidden;
+}
+
+#kuneloading {
+  position: absolute;
+  left: 2%;
+  top: 2%;
+  z-index: 20001;
+  height: auto;
+  border: solid 2px #ccc;
+  -moz-border-radius: 10px;
+  -webkit-border-radius: 10px;
+  border-radius: 10px;
+  background-color: white;
+}
+
+#kuneloading a {
+  color: #225588;
+}
+
+#kuneloading .kuneloading-indicator {
+  color: #444;
+  font: bold 13px tahoma, arial, helvetica;
+  padding: 3px 3px 8px;
+  margin: 0;
+  height: auto;
+}
+
+#kuneloading-msg {
+  font: normal 10px arial, tahoma, sans-serif;
+}
+
+#k-home-prewrap {
+  margin-top: -22px;
+}
+
+#k-home-wrapper {
+  margin-left: auto;
+  margin-right: auto;
+  position: relative;
+  width: 665px;
+  min-width: 320px;
+}
+
+#k-home-ini {
+  clear: both;
+  font-size: 28px;
+  color: #69312f;
+  text-align: justify;
+  padding: 27px 0;
+  line-height: 1.3em;
+}
+
+#k-home-ini a {
+  color: #803000;
+  font-weight: bold;
+}
+
+#k-home-ini strong {
+  font-weight: bold;
+}
+
+#k-home-stats {
+  font-size: 22px;
+  color: #c87137;
+  font-weight: bold;
+}
+
+#k-home-table {
+  display: table;
+}
+
+#k-home-header {
+  display: table-row;
+}
+
+#k-home-logo {
+  display: table-cell;
+  margin: 50px 0 22px 0;
+  float: right;
+}
+
+#k-home-summary {
+  display: table-cell;
+  font-size: 32px;
+  color: #dd8a3d;
+  font-weight: bold;
+  white-space: nowrap;
+  float: left;
+}
+
+#k-home-summary li {
+  padding-left: 41px;
+  background-repeat: no-repeat;
+  background-position: 0 .2em;
+  line-height: 45px;
+}
+
+#k-home-row {
+  display: table-row;
+}
+
+#k-home-left {
+  display: table-cell;
+}
+
+#k-home-right {
+  display: table-cell;
+}
+
+.banner {
+  margin: 30px;
+}
+</style>
+<!--[if IE 6]>
+    <link type="text/css" rel="stylesheet" href="ie6.css">
+<![endif]-->
+</head>
+<body>
+    <!-- Banner for wave errors -->
+    <div class="banner" id="banner"></div>
+    <!-- Autocomplete user/pass -->
+    <form method="post" action="javascript:void(0)" style="display: none">
+        <input type="text" id="address" name="address" value="" /> <input
+            type="password" id="password" name="password" value="" /> <input
+            type="submit" value="Login" id="login" /> <input type="submit"
+            class="wiab le button" name="signIn" id="signIn" value="Sign in">
+    </form>
+    <!-- RECOMMENDED if your web app will not function without JavaScript enabled -->
+    <noscript>
+        <div
+            style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
+            Your web browser must have JavaScript enabled in order for this
+            application to display correctly.</div>
+    </noscript>
+    <iframe id="__gwt_historyFrame" style="width: 0; height: 0; border: 0"></iframe>
+    <iframe src="" id="__download" style="width: 0; height: 0; border: 0"></iframe>
+    <div id="kuneinitialcurtain"></div>
+    <div id="kuneloading">
+        <div class="kuneloading-indicator">
+            <img src="ws/images/kune-anim-g.gif" width="35" height="35"
+                alt="kune-loading"
+                style="margin-right: 3px; float: left; vertical-align: top;" />kune&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
+            <span id="kuneloading-msg">Starting...</span>
+        </div>
+    </div>
+    <div id="k-home-prewrap">
+        <div id="k-home-wrapper">
+            <div id="k-home-table">
+                <div id="k-home-header">
+                    <div id="k-home-logo">
+                        <img src="ws/logo-big-home.png" alt="" />
+                    </div>
+                    <div id="k-home-summary">
+                        <ul>
+                            <li style="background-image: url(ws/images/kune-intro-user.png);">Comunicate with others</li>
+                            <li style="background-image: url(ws/images/kune-intro-group.png);">Work in collaboration</li>
+                            <li style="background-image: url(ws/images/kune-intro-world.png);">And share with the world</li>
+                        </ul>
+                    </div>
+                    <!-- k-home-summary -->
+                </div>
+                <!-- div home-header -->
+                <div id="k-home-row">
+                    <div id="k-home-left">
+                        <div id="k-home-ini">
+                            Welcome! This site is a Kune node. Kune, which means
+                            "together" in esperanto, it's a network of interconnected
+                            sites like this one, where you can <strong>communicate,
+                                share, collaborate with others and create your web
+                                spaces easily</strong>. <a href="#signin">Join!</a>
+                        </div>
+                        <!--  div home-ini -->
+                        <div id="k-home-stats" style="display: none;">Latests
+                            groups created</div>
+                    </div>
+                    <!-- div k-home-left -->
+                    <div id="k-home-right">
+                        <!-- div home-stats -->
+                    </div>
+                    <!-- div k-home-right -->
+                </div>
+                <!-- div k-home-row -->
+            </div>
+            <!-- div home-table -->
+        </div>
+        <!-- home-wrapper -->
+    </div>
+    <!-- home-prewrap -->
+</body>
+</html>

Modified: trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/CustomWebDriverEventListener.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -10,6 +10,7 @@
 
   @Override
   public void afterChangeValueOf(final WebElement element, final WebDriver driver) {
+    sleep(200);
   }
 
   @Override

Modified: trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/KuneSeleniumDefaults.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -34,6 +34,9 @@
 import org.testng.annotations.DataProvider;
 
 import cc.kune.core.client.auth.AnonUsersManager;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.TokenUtils;
+import cc.kune.core.client.sub.SubtitlesWidget;
 import cc.kune.core.shared.domain.utils.StateToken;
 import cc.kune.selenium.login.EntityHeaderPageObject;
 import cc.kune.selenium.login.LoginPageObject;
@@ -54,8 +57,9 @@
   private final WebDriver webdriver;
 
   public KuneSeleniumDefaults() {
-    // baseUrl = "http://kune.beta.iepala.es/ws/?locale=en#";
-    baseUrl = "http://127.0.0.1:8888/ws/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:9997#";
+    baseUrl = "http://kune.beta.iepala.es/ws/?locale=en#";
+    // baseUrl =
+    // "http://127.0.0.1:8888/ws/?locale=es&log_level=INFO&gwt.codesvr=127.0.0.1:9997#";
     injector = Guice.createInjector(new SeleniumModule());
     webdriver = injector.getInstance(WebDriver.class);
     login = injector.getInstance(LoginPageObject.class);
@@ -142,6 +146,12 @@
     js.executeScript("window.resizeTo(840,770); window.moveTo(0,0);");
   }
 
+  public void showSubtitle(final String title, final String description, final String token) {
+    gotoToken(TokenUtils.subtitle("User sign in", "", SiteTokens.SIGNIN));
+    sleep(3000);
+    webdriver.findElement(By.id(SeleniumConstants.GWTDEV + SubtitlesWidget.SUBTITLE_MANAGER_ID)).click();
+  }
+
   public void sleep(final int milliseconds) {
     try {
       Thread.sleep(milliseconds);

Modified: trunk/src/test/java/cc/kune/selenium/SeleniumModule.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/SeleniumModule.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/SeleniumModule.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -47,8 +47,8 @@
   @Override
   protected void configure() {
 
-    // final RemoteWebDriver driver = createChromeDriver();
-    final WebDriver driver = creatFirefoxDriver();
+    final RemoteWebDriver driver = createChromeDriver();
+    // final WebDriver driver = creatFirefoxDriver();
     final EventFiringWebDriver wrap = new EventFiringWebDriver(driver);
     wrap.register(new CustomWebDriverEventListener());
 
@@ -69,7 +69,11 @@
     System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver");
     final DesiredCapabilities capabilities = DesiredCapabilities.chrome();
     // http://peter.sh/experiments/chromium-command-line-switches/
-    capabilities.setCapability("chrome.switches", Arrays.asList("--disable-translate"));
+    capabilities.setCapability("chrome.switches", Arrays.asList("--disable-translate"
+    // ,
+    // "--load-extension=/home/YOURUSER/.config/chromium/Default/Extensions/jpjpnpmbddbjkfaccnmhnkdgjideieim/1.0.9738_0/"
+    // (tests with the gwt extension)
+    ));
     capabilities.setCapability("chrome.binary", "/usr/bin/chromium-browser");
     final ChromeDriver driver = new ChromeDriver(capabilities);
     return driver;

Modified: trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java
===================================================================
--- trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java	2011-09-26 16:00:47 UTC (rev 1534)
+++ trunk/src/test/java/cc/kune/selenium/login/LoginSeleniumTests.java	2011-09-26 20:24:14 UTC (rev 1535)
@@ -59,7 +59,7 @@
   @Test(dataProvider = "correctlogin")
   public void signInWithToken(final String user, final String passwd) {
     login.assertIsDisconnected();
-    gotoToken(SiteTokens.SIGNIN);
+    showSubtitle("User sign in", "", SiteTokens.SIGNIN);
     login.fillSigInInForm(user, passwd, true);
     login.assertIsConnectedAs(user);
     login.logout();




More information about the kune-commits mailing list