kune-commits
Threads by month
- ----- 2026 -----
- October
- September
- August
- July
- 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
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1587 discussions
14 Aug '11
#95: Rename "Meets" for "Meetings"
----------------------------------------+-----------------------------------
Reporter: sam <samer@…> | Owner: vjrj
Type: defect | Status: new
Priority: trivial | Milestone:
Component: Group space | Version:
Keywords: | Blocking:
Blockedby: |
----------------------------------------+-----------------------------------
Comment(by sam <samer@…>):
+1 a "Events" y uso de gwt-cal.
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/95#comment:2>
kune issues <http://kune.ourproject.org/issues/>
1
0
14 Aug '11
#95: Rename "Meets" for "Meetings"
----------------------------------------+-----------------------------------
Reporter: sam <samer@…> | Owner: vjrj
Type: defect | Status: new
Priority: trivial | Milestone:
Component: Group space | Version:
Keywords: | Blocking:
Blockedby: |
----------------------------------------+-----------------------------------
Comment(by vjrj):
What about rename the "Meetings" tools as "Calendar" or "Events" and
inside let in the future the possibility to include other elements (more
than massmob), not necessary meetings? Even to use:
http://code.google.com/p/gwt-cal/
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/95#comment:>
kune issues <http://kune.ourproject.org/issues/>
1
0
Author: vjrj_
Date: 2011-08-14 13:54:12 +0200 (Sun, 14 Aug 2011)
New Revision: 1495
Added:
trunk/src/main/java/cc/kune/core/client/errors/GroupLongNameInUseException.java
trunk/src/main/java/cc/kune/core/client/errors/GroupShortNameInUseException.java
Removed:
trunk/src/main/java/cc/kune/core/client/auth/RegisterView.java
trunk/src/main/java/cc/kune/core/client/auth/SignInView.java
trunk/src/main/java/cc/kune/core/client/errors/GroupNameInUseException.java
Modified:
trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java
trunk/src/main/java/cc/kune/core/client/auth/RegisterPanel.java
trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java
trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java
trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java
trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java
trunk/src/main/java/cc/kune/core/public/ws.css
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/domain/Group.java
trunk/src/main/java/cc/kune/domain/User.java
trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java
trunk/src/main/java/cc/kune/domain/finders/UserFinder.java
trunk/src/test/java/cc/kune/core/server/finders/UserFinderTest.java
trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java
trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
Log:
CLOSED - # 85: When user registration fails (for any reason) sometimes we don't clean the welcome wave and similars
http://kune.ourproject.org/issues/ticket/85
Modified: trunk/src/main/java/cc/kune/core/client/CoreGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/CoreGinModule.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -34,11 +34,11 @@
import cc.kune.core.client.auth.Register;
import cc.kune.core.client.auth.RegisterPanel;
import cc.kune.core.client.auth.RegisterPresenter;
-import cc.kune.core.client.auth.RegisterView;
+import cc.kune.core.client.auth.RegisterPresenter.RegisterView;
import cc.kune.core.client.auth.SignIn;
import cc.kune.core.client.auth.SignInPanel;
import cc.kune.core.client.auth.SignInPresenter;
-import cc.kune.core.client.auth.SignInView;
+import cc.kune.core.client.auth.SignInPresenter.SignInView;
import cc.kune.core.client.auth.UserPassAutocompleteManager;
import cc.kune.core.client.auth.UserPassAutocompleteManagerImpl;
import cc.kune.core.client.cookies.CookiesManager;
Modified: trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/auth/RegisterForm.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -125,4 +125,16 @@
public Field<String> getShortNameField() {
return shortNameRegField;
}
+
+ public void setEmailFailed(final String msg) {
+ emailRegField.markInvalid(msg);
+ }
+
+ public void setLongNameFailed(final String msg) {
+ longNameRegField.markInvalid(msg);
+ }
+
+ public void setShortNameFailed(final String msg) {
+ shortNameRegField.markInvalid(msg);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/auth/RegisterPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/RegisterPanel.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/auth/RegisterPanel.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -22,6 +22,7 @@
import cc.kune.common.client.notify.NotifyLevelImages;
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.MessageToolbar;
+import cc.kune.core.client.auth.RegisterPresenter.RegisterView;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.state.Session;
import cc.kune.core.client.ui.KuneUiUtils;
@@ -33,80 +34,95 @@
public class RegisterPanel extends SignInAbstractPanel implements RegisterView {
- public static final String CANCEL_BUTTON_ID = "k-regp-cb";
+ public static final String CANCEL_BUTTON_ID = "k-regp-cb";
- public static final String ERRMSG = "k-regp-errmsg";
+ public static final String ERRMSG = "k-regp-errmsg";
- public static final String REGISTER_BUTTON_ID = "k-regp-rb";
- public static final String REGISTER_DIALOG = "k-regp-dialog";
- public static final String REGISTER_FORM = "k-regp-p";
- public static final String WELCOME_DIALOG = "k-regp-wdiag";
- public static final String WELCOME_OK_BUTTON = "k-regp-okbt";
- private final RegisterForm registerForm;
+ public static final String REGISTER_BUTTON_ID = "k-regp-rb";
+ public static final String REGISTER_DIALOG = "k-regp-dialog";
+ public static final String REGISTER_FORM = "k-regp-p";
+ public static final String WELCOME_DIALOG = "k-regp-wdiag";
+ public static final String WELCOME_OK_BUTTON = "k-regp-okbt";
+ private final RegisterForm registerForm;
- @Inject
- public RegisterPanel(final I18nTranslationService i18n, final Session session, final MaskWidgetView mask,
- final NotifyLevelImages images) {
- super(REGISTER_DIALOG, mask, i18n, i18n.t(CoreMessages.REGISTER_TITLE), true, true, true, 400, 420, "",
- i18n.t(CoreMessages.REGISTER_TITLE), REGISTER_BUTTON_ID, i18n.tWithNT("Cancel", "used in button"),
- CANCEL_BUTTON_ID, images, ERRMSG, 5);
- registerForm = new RegisterForm(i18n, session);
- registerForm.setWidth(370);
- registerForm.getFormPanel().setId(REGISTER_FORM);
- messageErrorBar = new MessageToolbar(images, errorLabelId);
- registerForm.add(messageErrorBar);
- super.getInnerPanel().add(registerForm.getFormPanel());
- }
+ @Inject
+ public RegisterPanel(final I18nTranslationService i18n, final Session session,
+ final MaskWidgetView mask, final NotifyLevelImages images) {
+ super(REGISTER_DIALOG, mask, i18n, i18n.t(CoreMessages.REGISTER_TITLE), true, true, true, 400, 420,
+ "", i18n.t(CoreMessages.REGISTER_TITLE), REGISTER_BUTTON_ID, i18n.tWithNT("Cancel",
+ "used in button"), CANCEL_BUTTON_ID, images, ERRMSG, 5);
+ registerForm = new RegisterForm(i18n, session);
+ registerForm.setWidth(370);
+ registerForm.getFormPanel().setId(REGISTER_FORM);
+ messageErrorBar = new MessageToolbar(images, errorLabelId);
+ registerForm.add(messageErrorBar);
+ super.getInnerPanel().add(registerForm.getFormPanel());
+ }
- @Override
- public String getEmail() {
- return registerForm.getEmail();
- }
+ @Override
+ public String getEmail() {
+ return registerForm.getEmail();
+ }
- @Override
- public String getLongName() {
- return registerForm.getLongName();
- }
+ @Override
+ public String getLongName() {
+ return registerForm.getLongName();
+ }
- @Override
- public String getRegisterPassword() {
- return registerForm.getRegisterPassword();
- }
+ @Override
+ public String getRegisterPassword() {
+ return registerForm.getRegisterPassword();
+ }
- @Override
- public String getShortName() {
- return registerForm.getShortName();
- }
+ @Override
+ public String getShortName() {
+ return registerForm.getShortName();
+ }
- @Override
- public boolean isRegisterFormValid() {
- return registerForm.isValid();
- }
+ @Override
+ public boolean isRegisterFormValid() {
+ return registerForm.isValid();
+ }
- @Override
- public boolean isValid() {
- return registerForm.isValid();
- }
+ @Override
+ public boolean isValid() {
+ return registerForm.isValid();
+ }
- @Override
- public void reset() {
- Scheduler.get().scheduleDeferred(new ScheduledCommand() {
- @Override
- public void execute() {
- registerForm.reset();
- }
- });
- }
+ @Override
+ public void reset() {
+ Scheduler.get().scheduleDeferred(new ScheduledCommand() {
+ @Override
+ public void execute() {
+ registerForm.reset();
+ }
+ });
+ }
- @Override
- public void show() {
- super.show();
- KuneUiUtils.focusOnField(registerForm.getShortNameField());
- }
+ @Override
+ public void setEmailFailed(final String msg) {
+ registerForm.setEmailFailed(msg);
+ }
- @Override
- public void validate() {
- registerForm.validate();
- }
+ @Override
+ public void setLongNameFailed(final String msg) {
+ registerForm.setLongNameFailed(msg);
+ }
+ @Override
+ public void setShortNameFailed(final String msg) {
+ registerForm.setShortNameFailed(msg);
+ }
+
+ @Override
+ public void show() {
+ super.show();
+ KuneUiUtils.focusOnField(registerForm.getShortNameField());
+ }
+
+ @Override
+ public void validate() {
+ registerForm.validate();
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/auth/RegisterPresenter.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -23,9 +23,11 @@
import cc.kune.common.client.log.Log;
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.core.client.auth.RegisterPresenter.RegisterView;
import cc.kune.core.client.cookies.CookiesManager;
import cc.kune.core.client.errors.EmailAddressInUseException;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.GroupLongNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.client.events.NewUserRegisteredEvent;
import cc.kune.core.client.i18n.I18nUITranslationService;
@@ -61,6 +63,30 @@
@ProxyCodeSplit
public interface RegisterProxy extends Proxy<RegisterPresenter> {
}
+
+ public interface RegisterView extends SignInAbstractView {
+
+ String getEmail();
+
+ String getLongName();
+
+ String getRegisterPassword();
+
+ String getShortName();
+
+ boolean isRegisterFormValid();
+
+ boolean isValid();
+
+ void setEmailFailed(final String msg);
+
+ void setLongNameFailed(final String msg);
+
+ void setShortNameFailed(final String msg);
+
+ void validate();
+
+ }
private final Provider<SignIn> signInProvider;
private final Provider<UserServiceAsync> userServiceProvider;
@@ -123,6 +149,7 @@
}
public void onFormRegister() {
+ getView().hideMessages();
if (getView().isRegisterFormValid()) {
getView().maskProcessing();
@@ -208,9 +235,14 @@
private void onRegistrationFailure(final Throwable caught) {
getView().unMask();
if (caught instanceof EmailAddressInUseException) {
+ getView().setEmailFailed(i18n.t(CoreMessages.EMAIL_IN_USE));
getView().setErrorMessage(i18n.t(CoreMessages.EMAIL_IN_USE), NotifyLevel.error);
- } else if (caught instanceof GroupNameInUseException) {
+ } else if (caught instanceof GroupShortNameInUseException) {
+ getView().setShortNameFailed(i18n.t(CoreMessages.NAME_IN_USE));
getView().setErrorMessage(i18n.t(CoreMessages.NAME_IN_USE), NotifyLevel.error);
+ } else if (caught instanceof GroupLongNameInUseException) {
+ getView().setLongNameFailed(i18n.t(CoreMessages.NAME_IN_USE));
+ getView().setErrorMessage(i18n.t(CoreMessages.NAME_IN_USE), NotifyLevel.error);
} else if (caught instanceof UserRegistrationException) {
getView().setErrorMessage(i18n.t("Error during registration. " + caught.getMessage()),
NotifyLevel.error);
Deleted: trunk/src/main/java/cc/kune/core/client/auth/RegisterView.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/RegisterView.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/auth/RegisterView.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -1,38 +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.auth;
-
-public interface RegisterView extends SignInAbstractView {
-
- String getEmail();
-
- String getLongName();
-
- String getRegisterPassword();
-
- String getShortName();
-
- boolean isRegisterFormValid();
-
- boolean isValid();
-
- void validate();
-
-}
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPanel.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -23,6 +23,7 @@
import cc.kune.common.client.ui.MaskWidgetView;
import cc.kune.common.client.ui.dialogs.MessageToolbar;
import cc.kune.common.client.utils.OnAcceptCallback;
+import cc.kune.core.client.auth.SignInPresenter.SignInView;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.ui.KuneUiUtils;
import cc.kune.core.shared.i18n.I18nTranslationService;
@@ -36,106 +37,107 @@
public class SignInPanel extends SignInAbstractPanel implements SignInView {
- public static final String CANCEL_BUTTON_ID = "k-signinp-cb";
- public static final String CREATE_ONE = "k-signinp-create";
- public static final String ERROR_MSG = "k-sigp-errmsg";
- public static final String SIGN_IN_BUTTON_ID = "k-signinp-sib";
- public static final String SIGNIN_DIALOG = "k-signinp-dialog";
- private Label registerLabel;
- private final SignInForm signInForm;
+ public static final String CANCEL_BUTTON_ID = "k-signinp-cb";
+ public static final String CREATE_ONE = "k-signinp-create";
+ public static final String ERROR_MSG = "k-sigp-errmsg";
+ public static final String SIGN_IN_BUTTON_ID = "k-signinp-sib";
+ public static final String SIGNIN_DIALOG = "k-signinp-dialog";
+ private Label registerLabel;
+ private final SignInForm signInForm;
- @Inject
- public SignInPanel(final I18nTranslationService i18n, final MaskWidgetView mask, final NotifyLevelImages images) {
- super(SIGNIN_DIALOG, mask, i18n, i18n.t(CoreMessages.SIGN_IN_TITLE), true, true, true, 360, 430, "",
- i18n.t(CoreMessages.SIGN_IN_TITLE), SIGN_IN_BUTTON_ID, i18n.tWithNT("Cancel", "used in button"),
- CANCEL_BUTTON_ID, images, ERROR_MSG, 102);
+ @Inject
+ public SignInPanel(final I18nTranslationService i18n, final MaskWidgetView mask,
+ final NotifyLevelImages images) {
+ super(SIGNIN_DIALOG, mask, i18n, i18n.t(CoreMessages.SIGN_IN_TITLE), true, true, true, 360, 430, "",
+ i18n.t(CoreMessages.SIGN_IN_TITLE), SIGN_IN_BUTTON_ID, i18n.tWithNT("Cancel", "used in button"),
+ CANCEL_BUTTON_ID, images, ERROR_MSG, 102);
- signInForm = new SignInForm(i18n);
- signInForm.setWidth(370);
- signInForm.add(createNoAccountRegister());
- messageErrorBar = new MessageToolbar(images, errorLabelId);
- signInForm.add(messageErrorBar);
- super.getInnerPanel().add(signInForm.getFormPanel());
- }
+ signInForm = new SignInForm(i18n);
+ signInForm.setWidth(370);
+ signInForm.add(createNoAccountRegister());
+ messageErrorBar = new MessageToolbar(images, errorLabelId);
+ signInForm.add(messageErrorBar);
+ super.getInnerPanel().add(signInForm.getFormPanel());
+ }
- private VerticalPanel createNoAccountRegister() {
- final VerticalPanel noAccRegisterPanel = new VerticalPanel();
- final HorizontalPanel hpanel = new HorizontalPanel();
- final Label dontHaveAccount = new Label(i18n.t("Don't have an account?"));
- registerLabel = new Label(i18n.t("Create one."));
- registerLabel.ensureDebugId(CREATE_ONE);
- registerLabel.addStyleName("kune-Margin-Medium-l");
- registerLabel.addStyleName("k-link");
- registerLabel.addStyleName("k-cursor");
- hpanel.add(dontHaveAccount);
- hpanel.add(registerLabel);
- noAccRegisterPanel.add(hpanel);
- return noAccRegisterPanel;
- }
+ private VerticalPanel createNoAccountRegister() {
+ final VerticalPanel noAccRegisterPanel = new VerticalPanel();
+ final HorizontalPanel hpanel = new HorizontalPanel();
+ final Label dontHaveAccount = new Label(i18n.t("Don't have an account?"));
+ registerLabel = new Label(i18n.t("Create one."));
+ registerLabel.ensureDebugId(CREATE_ONE);
+ registerLabel.addStyleName("kune-Margin-Medium-l");
+ registerLabel.addStyleName("k-link");
+ registerLabel.addStyleName("k-cursor");
+ hpanel.add(dontHaveAccount);
+ hpanel.add(registerLabel);
+ noAccRegisterPanel.add(hpanel);
+ return noAccRegisterPanel;
+ }
- @Override
- public void focusOnNickname() {
- signInForm.focusLogin();
- }
+ @Override
+ public void focusOnNickname() {
+ signInForm.focusLogin();
+ }
- @Override
- public void focusOnPassword() {
- signInForm.focusOnPassword();
- }
+ @Override
+ public void focusOnPassword() {
+ signInForm.focusOnPassword();
+ }
- @Override
- public HasClickHandlers getAccountRegister() {
- return registerLabel;
- }
+ @Override
+ public HasClickHandlers getAccountRegister() {
+ return registerLabel;
+ }
- @Override
- public String getLoginPassword() {
- return signInForm.getLoginPassword();
- }
+ @Override
+ public String getLoginPassword() {
+ return signInForm.getLoginPassword();
+ }
- private Field<String> getNickname() {
- return signInForm.getNickOrEmailField();
- }
+ private Field<String> getNickname() {
+ return signInForm.getNickOrEmailField();
+ }
- @Override
- public String getNickOrEmail() {
- return signInForm.getNickOrEmail();
- }
+ @Override
+ public String getNickOrEmail() {
+ return signInForm.getNickOrEmail();
+ }
- @Override
- public boolean isSignInFormValid() {
- return signInForm.isValid();
- }
+ @Override
+ public boolean isSignInFormValid() {
+ return signInForm.isValid();
+ }
- @Override
- public void reset() {
- signInForm.reset();
- }
+ @Override
+ public void reset() {
+ signInForm.reset();
+ }
- @Override
- public void setLoginPassword(final String password) {
- signInForm.setLoginPassword(password);
- }
+ @Override
+ public void setLoginPassword(final String password) {
+ signInForm.setLoginPassword(password);
+ }
- @Override
- public void setNickOrEmail(final String nickOrEmail) {
- signInForm.setNickOrEmail(nickOrEmail);
- }
+ @Override
+ public void setNickOrEmail(final String nickOrEmail) {
+ signInForm.setNickOrEmail(nickOrEmail);
+ }
- @Override
- public void setOnPasswordReturn(final OnAcceptCallback onAcceptCallback) {
- signInForm.setOnPasswordReturn(onAcceptCallback);
- }
+ @Override
+ public void setOnPasswordReturn(final OnAcceptCallback onAcceptCallback) {
+ signInForm.setOnPasswordReturn(onAcceptCallback);
+ }
- @Override
- public void show() {
- super.show();
- KuneUiUtils.focusOnField(getNickname());
- }
+ @Override
+ public void show() {
+ super.show();
+ KuneUiUtils.focusOnField(getNickname());
+ }
- @Override
- public void validate() {
- signInForm.validate();
- }
+ @Override
+ public void validate() {
+ signInForm.validate();
+ }
}
Modified: trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInPresenter.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -25,6 +25,7 @@
import cc.kune.common.client.utils.TextUtils;
import cc.kune.common.client.utils.TimerWrapper;
import cc.kune.common.client.utils.TimerWrapper.Executer;
+import cc.kune.core.client.auth.SignInPresenter.SignInView;
import cc.kune.core.client.cookies.CookiesManager;
import cc.kune.core.client.errors.UserAuthException;
import cc.kune.core.client.i18n.I18nUITranslationService;
@@ -40,6 +41,7 @@
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.event.logical.shared.CloseEvent;
import com.google.gwt.event.logical.shared.CloseHandler;
import com.google.gwt.event.shared.EventBus;
@@ -51,186 +53,213 @@
import com.gwtplatform.mvp.client.proxy.Proxy;
import com.gwtplatform.mvp.client.proxy.RevealRootContentEvent;
-public class SignInPresenter extends SignInAbstractPresenter<SignInView, SignInPresenter.SignInProxy> implements SignIn {
+public class SignInPresenter extends SignInAbstractPresenter<SignInView, SignInPresenter.SignInProxy>
+ implements SignIn {
- @ProxyCodeSplit
- public interface SignInProxy extends Proxy<SignInPresenter> {
- }
+ @ProxyCodeSplit
+ public interface SignInProxy extends Proxy<SignInPresenter> {
+ }
- private final EventBus eventBus;
- private final Provider<Register> registerProvider;
- private final TimerWrapper timer;
- private final UserServiceAsync userService;
- private final WaveClientSimpleAuthenticator waveClientAuthenticator;
+ public interface SignInView extends SignInAbstractView {
- @Inject
- public SignInPresenter(final EventBus eventBus, final SignInView view, final SignInProxy proxy,
- final Session session, final StateManager stateManager, final I18nUITranslationService i18n,
- final UserServiceAsync userService, final Provider<Register> registerProvider,
- final CookiesManager cookiesManager, final UserPassAutocompleteManager autocomplete,
- final TimerWrapper timeWrapper, final WaveClientSimpleAuthenticator waveClientAuthenticator) {
- super(eventBus, view, proxy, session, stateManager, i18n, cookiesManager, autocomplete);
- this.eventBus = eventBus;
- this.userService = userService;
- this.registerProvider = registerProvider;
- this.timer = timeWrapper;
- this.waveClientAuthenticator = waveClientAuthenticator;
- }
+ void focusOnNickname();
- @Override
- public void doSignIn(final String nickOrEmail, final String passwd, final AsyncCallback<Void> extCallback) {
- final UserDTO user = new UserDTO();
- user.setShortName(nickOrEmail);
- user.setPassword(passwd);
- saveAutocompleteLoginData(nickOrEmail, passwd);
- waveClientAuthenticator.doLogin(nickOrEmail, passwd, new AsyncCallback<Void>() {
- @Override
- public void onFailure(final Throwable caught) {
- Log.error("SignInPresenter/doLogin fails in Wave auth");
- extCallback.onFailure(caught);
- }
+ void focusOnPassword();
- @Override
- public void onSuccess(final Void arg) {
+ HasClickHandlers getAccountRegister();
- final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
- @Override
- public void onFailure(final Throwable caught) {
- extCallback.onFailure(caught);
- }
+ String getLoginPassword();
- @Override
- public void onSuccess(final UserInfoDTO userInfoDTO) {
- onSignIn(userInfoDTO);
- extCallback.onSuccess(null);
- }
- };
- userService.login(user.getShortName(), user.getPassword(),
- waveClientAuthenticator.getCookieTokenValue(), callback);
- }
- });
- }
+ String getNickOrEmail();
- @Override
- public SignInView getView() {
- return (SignInView) super.getView();
- }
+ boolean isSignInFormValid();
- public void onAccountRegister() {
- getView().reset();
- getView().hideMessages();
- getView().hide();
- stateManager.gotoHistoryToken(SiteTokens.REGISTER);
- }
+ void setLoginPassword(String password);
- @Override
- protected void onBind() {
- super.onBind();
- getView().getFirstBtn().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(final ClickEvent event) {
- onFormSignIn();
- }
- });
- getView().setOnPasswordReturn(new OnAcceptCallback() {
- @Override
- public void onSuccess() {
- onFormSignIn();
- }
- });
- getView().getSecondBtn().addClickHandler(new ClickHandler() {
- @Override
- public void onClick(final ClickEvent event) {
- Log.debug("On cancel signin presenter");
- onCancel();
- }
- });
- getView().getClose().addCloseHandler(new CloseHandler<PopupPanel>() {
+ void setNickOrEmail(String nickOrEmail);
- @Override
- public void onClose(final CloseEvent<PopupPanel> event) {
- Log.debug("Closing signin presenter");
- SignInPresenter.this.onClose();
- }
- });
- getView().getAccountRegister().addClickHandler(new ClickHandler() {
+ void setOnPasswordReturn(OnAcceptCallback onAcceptCallback);
- @Override
- public void onClick(final ClickEvent event) {
- onAccountRegister();
- }
- });
- }
+ void validate();
- public void onFormSignIn() {
- getView().validate();
- if (getView().isSignInFormValid()) {
- getView().maskProcessing();
+ }
- final String nickOrEmail = getView().getNickOrEmail();
- final String passwd = getView().getLoginPassword();
- doSignIn(nickOrEmail, passwd, new AsyncCallback<Void>() {
+ private final EventBus eventBus;
+ private final Provider<Register> registerProvider;
+ private final TimerWrapper timer;
+ private final UserServiceAsync userService;
+ private final WaveClientSimpleAuthenticator waveClientAuthenticator;
- @Override
- public void onFailure(final Throwable caught) {
- onSingInFailed(caught);
- }
+ @Inject
+ public SignInPresenter(final EventBus eventBus, final SignInView view, final SignInProxy proxy,
+ final Session session, final StateManager stateManager, final I18nUITranslationService i18n,
+ final UserServiceAsync userService, final Provider<Register> registerProvider,
+ final CookiesManager cookiesManager, final UserPassAutocompleteManager autocomplete,
+ final TimerWrapper timeWrapper, final WaveClientSimpleAuthenticator waveClientAuthenticator) {
+ super(eventBus, view, proxy, session, stateManager, i18n, cookiesManager, autocomplete);
+ this.eventBus = eventBus;
+ this.userService = userService;
+ this.registerProvider = registerProvider;
+ this.timer = timeWrapper;
+ this.waveClientAuthenticator = waveClientAuthenticator;
+ }
- @Override
- public void onSuccess(final Void result) {
- getView().hide();
- getView().unMask();
- }
- });
+ @Override
+ public void doSignIn(final String nickOrEmail, final String passwd,
+ final AsyncCallback<Void> extCallback) {
+ final UserDTO user = new UserDTO();
+ user.setShortName(nickOrEmail);
+ user.setPassword(passwd);
+ saveAutocompleteLoginData(nickOrEmail, passwd);
+ waveClientAuthenticator.doLogin(nickOrEmail, passwd, new AsyncCallback<Void>() {
+ @Override
+ public void onFailure(final Throwable caught) {
+ Log.error("SignInPresenter/doLogin fails in Wave auth");
+ extCallback.onFailure(caught);
+ }
+
+ @Override
+ public void onSuccess(final Void arg) {
+
+ final AsyncCallback<UserInfoDTO> callback = new AsyncCallback<UserInfoDTO>() {
+ @Override
+ public void onFailure(final Throwable caught) {
+ extCallback.onFailure(caught);
+ }
+
+ @Override
+ public void onSuccess(final UserInfoDTO userInfoDTO) {
+ onSignIn(userInfoDTO);
+ extCallback.onSuccess(null);
+ }
+ };
+ userService.login(user.getShortName(), user.getPassword(),
+ waveClientAuthenticator.getCookieTokenValue(), callback);
+ }
+ });
+ }
+
+ @Override
+ public SignInView getView() {
+ return (SignInView) super.getView();
+ }
+
+ public void onAccountRegister() {
+ getView().reset();
+ getView().hideMessages();
+ getView().hide();
+ stateManager.gotoHistoryToken(SiteTokens.REGISTER);
+ }
+
+ @Override
+ protected void onBind() {
+ super.onBind();
+ getView().getFirstBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ onFormSignIn();
+ }
+ });
+ getView().setOnPasswordReturn(new OnAcceptCallback() {
+ @Override
+ public void onSuccess() {
+ onFormSignIn();
+ }
+ });
+ getView().getSecondBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ Log.debug("On cancel signin presenter");
+ onCancel();
+ }
+ });
+ getView().getClose().addCloseHandler(new CloseHandler<PopupPanel>() {
+
+ @Override
+ public void onClose(final CloseEvent<PopupPanel> event) {
+ Log.debug("Closing signin presenter");
+ SignInPresenter.this.onClose();
+ }
+ });
+ getView().getAccountRegister().addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(final ClickEvent event) {
+ onAccountRegister();
+ }
+ });
+ }
+
+ public void onFormSignIn() {
+ getView().validate();
+ if (getView().isSignInFormValid()) {
+ getView().maskProcessing();
+
+ final String nickOrEmail = getView().getNickOrEmail();
+ final String passwd = getView().getLoginPassword();
+ doSignIn(nickOrEmail, passwd, new AsyncCallback<Void>() {
+
+ @Override
+ public void onFailure(final Throwable caught) {
+ onSingInFailed(caught);
}
- }
- private void onSingInFailed(final Throwable caught) {
- getView().unMask();
- eventBus.fireEvent(new ProgressHideEvent());
- if (caught instanceof UserAuthException) {
- getView().setErrorMessage(i18n.t(CoreMessages.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD), NotifyLevel.error);
- } else {
- getView().setErrorMessage("Error in login", NotifyLevel.error);
- Log.error("Other kind of exception in SignInPresenter/doLogin");
+ @Override
+ public void onSuccess(final Void result) {
+ getView().hide();
+ getView().unMask();
}
+ });
}
+ }
- @Override
- protected void revealInParent() {
- RevealRootContentEvent.fire(this, this);
+ private void onSingInFailed(final Throwable caught) {
+ getView().unMask();
+ eventBus.fireEvent(new ProgressHideEvent());
+ if (caught instanceof UserAuthException) {
+ getView().setErrorMessage(i18n.t(CoreMessages.INCORRECT_NICKNAME_EMAIL_OR_PASSWORD),
+ NotifyLevel.error);
+ } else {
+ getView().setErrorMessage("Error in login", NotifyLevel.error);
+ Log.error("Other kind of exception in SignInPresenter/doLogin");
}
+ }
- @Override
- public void setErrorMessage(final String message, final NotifyLevel level) {
- getView().setErrorMessage(message, level);
- }
+ @Override
+ protected void revealInParent() {
+ RevealRootContentEvent.fire(this, this);
+ }
- @Override
- public void showSignInDialog() {
- registerProvider.get().hide();
- if (session.isLogged()) {
- stateManager.restorePreviousToken();
- } else {
- eventBus.fireEvent(new ProgressShowEvent());
- getView().show();
- // getView().center();
- eventBus.fireEvent(new ProgressHideEvent());
- getView().focusOnNickname();
- timer.configure(new Executer() {
- @Override
- public void execute() {
- final String savedLogin = autocomplete.getNickOrEmail();
- final String savedPasswd = autocomplete.getPassword();
- if (TextUtils.notEmpty(savedLogin)) {
- getView().setNickOrEmail(savedLogin);
- getView().setLoginPassword(savedPasswd);
- getView().focusOnPassword();
- }
- }
- });
- timer.schedule(500);
+ @Override
+ public void setErrorMessage(final String message, final NotifyLevel level) {
+ getView().setErrorMessage(message, level);
+ }
+
+ @Override
+ public void showSignInDialog() {
+ registerProvider.get().hide();
+ if (session.isLogged()) {
+ stateManager.restorePreviousToken();
+ } else {
+ eventBus.fireEvent(new ProgressShowEvent());
+ getView().show();
+ // getView().center();
+ eventBus.fireEvent(new ProgressHideEvent());
+ getView().focusOnNickname();
+ timer.configure(new Executer() {
+ @Override
+ public void execute() {
+ final String savedLogin = autocomplete.getNickOrEmail();
+ final String savedPasswd = autocomplete.getPassword();
+ if (TextUtils.notEmpty(savedLogin)) {
+ getView().setNickOrEmail(savedLogin);
+ getView().setLoginPassword(savedPasswd);
+ getView().focusOnPassword();
+ }
}
+ });
+ timer.schedule(500);
}
+ }
}
Deleted: trunk/src/main/java/cc/kune/core/client/auth/SignInView.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/auth/SignInView.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/auth/SignInView.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -1,48 +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.auth;
-
-import cc.kune.common.client.utils.OnAcceptCallback;
-
-import com.google.gwt.event.dom.client.HasClickHandlers;
-
-public interface SignInView extends SignInAbstractView {
-
- void focusOnNickname();
-
- void focusOnPassword();
-
- HasClickHandlers getAccountRegister();
-
- String getLoginPassword();
-
- String getNickOrEmail();
-
- boolean isSignInFormValid();
-
- void setLoginPassword(String password);
-
- void setNickOrEmail(String nickOrEmail);
-
- void setOnPasswordReturn(OnAcceptCallback onAcceptCallback);
-
- void validate();
-
-}
Added: trunk/src/main/java/cc/kune/core/client/errors/GroupLongNameInUseException.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/errors/GroupLongNameInUseException.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/errors/GroupLongNameInUseException.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -0,0 +1,24 @@
+/*
+ *
+ * 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.errors;
+
+public class GroupLongNameInUseException extends DefaultException {
+ private static final long serialVersionUID = -1211473220006162132L;
+}
Deleted: trunk/src/main/java/cc/kune/core/client/errors/GroupNameInUseException.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/errors/GroupNameInUseException.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/errors/GroupNameInUseException.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -1,24 +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.errors;
-
-public class GroupNameInUseException extends DefaultException {
- private static final long serialVersionUID = -4746775725822225687L;
-}
Copied: trunk/src/main/java/cc/kune/core/client/errors/GroupShortNameInUseException.java (from rev 1489, trunk/src/main/java/cc/kune/core/client/errors/GroupNameInUseException.java)
===================================================================
--- trunk/src/main/java/cc/kune/core/client/errors/GroupShortNameInUseException.java (rev 0)
+++ trunk/src/main/java/cc/kune/core/client/errors/GroupShortNameInUseException.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -0,0 +1,24 @@
+/*
+ *
+ * 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.errors;
+
+public class GroupShortNameInUseException extends DefaultException {
+ private static final long serialVersionUID = -4746775725822225687L;
+}
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPanel.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -51,7 +51,6 @@
public static final String ERROR_MSG_BAR = "k-ngp-error-mb";
private static final int LABEL_WIDTH = 100;
public static final String LONGNAME_FIELD = "k-ngp-long_name";
- private static final String MARGIN_LEFT_105PX = "margin-left: 105px";
public static final String NEWGROUP_WIZARD = "k-ngp-wiz";
public static final String ORG_GROUP_TYPE_ID = "k-ngp-type_of_group_org";
public static final String PROJ_GROUP_TYPE_ID = "k-ngp-type_of_group_proj";
@@ -83,7 +82,7 @@
public NewGroupPanel(final I18nTranslationService i18n, final NotifyLevelImages img,
final MaskWidgetView mask) {
final Builder builder = new BasicTopDialog.Builder(NEWGROUP_WIZARD, false, true).autoscroll(true).height(
- "340px").title(i18n.t("Register a new group"));
+ 340).title(i18n.t("Register a new group"));
builder.icon("k-newgroup-icon");
builder.firstButtonTitle(i18n.t("Register")).firstButtonId(REGISTER_BUTTON);
builder.sndButtonTitle(i18n.t("Cancel")).sndButtonId(CANCEL_BUTTON);
@@ -299,11 +298,21 @@
}
@Override
+ public void setLongNameFailed(final String msg) {
+ longNameField.markInvalid(msg);
+ }
+
+ @Override
public void setMessage(final String message, final NotifyLevel level) {
messageErrorBar.setErrorMessage(message, level);
}
@Override
+ public void setShortNameFailed(final String msg) {
+ shortNameField.markInvalid(msg);
+ }
+
+ @Override
public void show() {
dialog.showCentered();
}
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-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupPresenter.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -23,7 +23,8 @@
import cc.kune.common.client.notify.NotifyLevel;
import cc.kune.common.client.notify.NotifyUser;
import cc.kune.core.client.auth.SignIn;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.GroupLongNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.resources.CoreMessages;
import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
import cc.kune.core.client.rpcservices.GroupServiceAsync;
@@ -155,6 +156,7 @@
}
public void onRegister() {
+ getView().hideMessage();
if (getView().isFormValid()) {
getView().maskProcessing();
final String shortName = getView().getShortName();
@@ -167,9 +169,16 @@
final AsyncCallback<StateToken> callback = new AsyncCallback<StateToken>() {
@Override
public void onFailure(final Throwable caught) {
- if (caught instanceof GroupNameInUseException) {
+ if (caught instanceof GroupShortNameInUseException) {
getView().unMask();
- setMessage(i18n.t(CoreMessages.NAME_IN_ALREADY_IN_USE), NotifyLevel.error);
+ final String msg = i18n.t(CoreMessages.NAME_IN_ALREADY_IN_USE);
+ getView().setShortNameFailed(msg);
+ setMessage(msg, NotifyLevel.error);
+ } else if (caught instanceof GroupLongNameInUseException) {
+ getView().unMask();
+ final String msg = i18n.t(CoreMessages.NAME_IN_ALREADY_IN_USE);
+ getView().setLongNameFailed(msg);
+ setMessage(msg, NotifyLevel.error);
} else {
getView().unMask();
setMessage(i18n.t("Error creating group"), NotifyLevel.error);
Modified: trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/client/groups/newgroup/NewGroupView.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -62,8 +62,12 @@
void maskProcessing();
+ void setLongNameFailed(final String msg);
+
void setMessage(String message, NotifyLevel level);
+ void setShortNameFailed(final String msg);
+
void show();
void unMask();
Modified: trunk/src/main/java/cc/kune/core/public/ws.css
===================================================================
--- trunk/src/main/java/cc/kune/core/public/ws.css 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/public/ws.css 2011-08-14 11:54:12 UTC (rev 1495)
@@ -729,8 +729,8 @@
.k-error-tb {
background: #FFB380 none repeat scroll 0% 50%;
/* color: #250; */
- padding: 10px;
- margin: 16px -20px -20px -20px;
+ padding: 7px 10px;
+ margin: 16px -20px -10px -20px;
}
.k-error-tb img {
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -96,7 +96,7 @@
public void addAuthor(final User user, final Long contentId, final String authorShortName)
throws DefaultException {
final Content content = finder.getContent(contentId);
- final User author = userFinder.getByShortName(authorShortName);
+ final User author = userFinder.findByShortName(authorShortName);
if (author == null) {
throw new UserNotFoundException();
}
@@ -221,7 +221,7 @@
public void removeAuthor(final User user, final Long contentId, final String authorShortName)
throws DefaultException {
final Content content = finder.getContent(contentId);
- final User author = userFinder.getByShortName(authorShortName);
+ final User author = userFinder.findByShortName(authorShortName);
if (author == null) {
throw new UserNotFoundException();
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -24,7 +24,7 @@
import cc.kune.core.client.errors.AccessViolationException;
import cc.kune.core.client.errors.EmailAddressInUseException;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.UserMustBeLoggedException;
import cc.kune.core.server.manager.impl.SearchResult;
import cc.kune.domain.Content;
@@ -37,14 +37,16 @@
void changeWsTheme(User user, Group group, String theme) throws AccessViolationException;
+ void checkIfNamesAreInUse(String shortName, String longName);
+
void clearGroupBackImage(Group group);
- Group createGroup(Group group, User user, String publicDescrip) throws GroupNameInUseException,
+ Group createGroup(Group group, User user, String publicDescrip) throws GroupShortNameInUseException,
UserMustBeLoggedException;
- Group createUserGroup(User user) throws GroupNameInUseException, EmailAddressInUseException;
+ Group createUserGroup(User user) throws GroupShortNameInUseException, EmailAddressInUseException;
- Group createUserGroup(User user, boolean wantPersonalHomepage) throws GroupNameInUseException,
+ Group createUserGroup(User user, boolean wantPersonalHomepage) throws GroupShortNameInUseException,
EmailAddressInUseException;
Set<Group> findAdminInGroups(Long groupId);
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -35,7 +35,8 @@
import cc.kune.core.client.errors.AccessViolationException;
import cc.kune.core.client.errors.EmailAddressInUseException;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.GroupLongNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.UserMustBeLoggedException;
import cc.kune.core.server.manager.FileManager;
import cc.kune.core.server.manager.GroupManager;
@@ -128,7 +129,8 @@
@Override
public Group createGroup(final Group group, final User user, final String publicDescrip)
- throws GroupNameInUseException, UserMustBeLoggedException {
+ throws GroupShortNameInUseException, GroupLongNameInUseException, UserMustBeLoggedException {
+ checkIfNamesAreInUse(group.getShortName(), group.getLongName());
final String defaultSiteWorkspaceTheme = kuneProperties.get(KuneProperties.WS_THEMES_DEF);
if (User.isKnownUser(user)) {
GroupListMode publicVisibility = GroupListMode.EVERYONE;
@@ -160,21 +162,21 @@
}
@Override
- public Group createUserGroup(final User user) throws GroupNameInUseException,
+ public Group createUserGroup(final User user) throws GroupShortNameInUseException,
EmailAddressInUseException {
return createUserGroup(user, true);
}
@Override
public Group createUserGroup(final User user, final boolean wantPersonalHomepage)
- throws GroupNameInUseException, EmailAddressInUseException {
+ throws GroupShortNameInUseException, EmailAddressInUseException {
final String defaultSiteWorkspaceTheme = kuneProperties.get(KuneProperties.WS_THEMES_DEF);
final License licenseDef = licenseManager.getDefLicense();
final Group userGroup = new Group(user.getShortName(), user.getName(), licenseDef,
GroupType.PERSONAL);
User userSameEmail = null;
try {
- userSameEmail = userFinder.getByEmail(user.getEmail());
+ userSameEmail = userFinder.findByEmail(user.getEmail());
} catch (final NoResultException e) {
// Ok, no more with this email
}
@@ -195,7 +197,7 @@
super.persist(user, User.class);
} catch (final PersistenceException e) {
if (e.getCause() instanceof ConstraintViolationException) {
- throw new GroupNameInUseException();
+ throw new GroupShortNameInUseException();
}
throw e;
}
@@ -234,14 +236,14 @@
}
private void initGroup(final User user, final Group group, final Collection<String> toolsToEnable,
- final Object... vars) throws GroupNameInUseException {
+ final Object... vars) throws GroupShortNameInUseException {
try {
persist(group);
} catch (final IllegalStateException e) {
e.printStackTrace();
} catch (final PersistenceException e) {
if (e.getCause() instanceof ConstraintViolationException) {
- throw new GroupNameInUseException();
+ throw new GroupShortNameInUseException();
}
throw e;
}
@@ -309,4 +311,13 @@
toolConfiguration.setEnabled(enabled);
}
+ public void checkIfNamesAreInUse(final String shortName, final String longName) {
+ if (finder.countByShortName(shortName) != 0) {
+ throw new GroupShortNameInUseException();
+ }
+ if (finder.countByLongName(longName) != 0) {
+ throw new GroupLongNameInUseException();
+ }
+ }
+
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -39,7 +39,9 @@
import org.waveprotocol.box.server.persistence.AccountStore;
import org.waveprotocol.wave.model.waveref.WaveRef;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.EmailAddressInUseException;
+import cc.kune.core.client.errors.GroupLongNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.server.manager.GroupManager;
@@ -71,13 +73,13 @@
private final ChatProperties chatProperties;
private final I18nCountryManager countryManager;
- private final UserFinder finder;
private final GroupManager groupManager;
private final I18nTranslationService i18n;
private final KuneWaveManager kuneWaveManager;
private final I18nLanguageManager languageManager;
private final ParticipantUtils participantUtils;
private final KuneBasicProperties properties;
+ private final UserFinder userFinder;
private final AccountStore waveAccountStore;
private final CustomUserRegistrationServlet waveUserRegister;
private final XmppManager xmppManager;
@@ -91,7 +93,7 @@
final ParticipantUtils participantUtils, final KuneBasicProperties properties,
final GroupManager groupManager) {
super(provider, User.class);
- this.finder = finder;
+ this.userFinder = finder;
this.languageManager = languageManager;
this.countryManager = countryManager;
this.xmppManager = xmppManager;
@@ -112,6 +114,16 @@
I18nLanguage language;
I18nCountry country;
TimeZone tz;
+ if (userFinder.countByShortName(shortName) != 0) {
+ throw new GroupShortNameInUseException();
+ }
+ if (userFinder.countByLongName(longName) != 0) {
+ throw new GroupLongNameInUseException();
+ }
+ groupManager.checkIfNamesAreInUse(shortName, longName);
+ if (userFinder.countByEmail(email) != 0) {
+ throw new EmailAddressInUseException();
+ }
try {
language = languageManager.findByCode(langCode);
country = countryManager.findByCode(countryCode);
@@ -124,23 +136,8 @@
try {
createWaveAccount(shortName, passwdDigest);
} catch (final UserRegistrationException e) {
- try {
- if (finder.getByShortName(shortName) != null) {
- throw new GroupNameInUseException();
- } else {
- // Other kind of exception
- throw e;
- }
- } catch (final NoResultException e2) {
- // Other kind of exception
- throw e;
- }
+ throw e;
}
- // if (userPropGroup == null) {
- // userPropGroup = propGroupManager.find(User.PROPS_ID);
- // }
- // final Properties userProp = new Properties(userPropGroup);
- // propManager.persist(userProp);
WaveRef welcome = null;
try {
final User user = new User(shortName, longName, email, passwd, passwdDigest.getDigest(),
@@ -183,7 +180,7 @@
@Override
public User find(final Long userId) {
try {
- return finder.getById(userId);
+ return userFinder.findById(userId);
} catch (final NoResultException e) {
return User.UNKNOWN_USER;
}
@@ -191,11 +188,11 @@
@Override
public User findByShortname(final String shortName) {
- return finder.getByShortName(shortName);
+ return userFinder.findByShortName(shortName);
}
public List<User> getAll() {
- return finder.getAll();
+ return userFinder.getAll();
}
@Override
@@ -209,7 +206,7 @@
final String domain = "@" + chatProperties.getDomain();
final UserBuddiesData buddiesData = new UserBuddiesData();
- final User user = finder.getByShortName(shortName);
+ final User user = userFinder.findByShortName(shortName);
Collection<RosterEntry> roster;
try {
final ChatConnection connection = xmppManager.login(user.getShortName() + domain,
@@ -230,7 +227,7 @@
// local user
try {
final String username = entry.getUser().substring(0, index);
- final User buddie = finder.getByShortName(username);
+ final User buddie = userFinder.findByShortName(username);
buddiesData.getBuddies().add(buddie);
} catch (final NoResultException e) {
// No existent buddie, skip
@@ -248,10 +245,10 @@
public User login(final String nickOrEmail, final String passwd) {
User user;
try {
- user = finder.getByShortName(nickOrEmail);
+ user = userFinder.findByShortName(nickOrEmail);
} catch (final NoResultException e) {
try {
- user = finder.getByEmail(nickOrEmail);
+ user = userFinder.findByEmail(nickOrEmail);
} catch (final NoResultException e2) {
return null;
}
Modified: trunk/src/main/java/cc/kune/domain/Group.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/Group.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/domain/Group.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -93,7 +93,7 @@
private BasicMimeType logoMime;
@Field(index = Index.TOKENIZED, store = Store.NO)
- @Column(unique = true)
+ @Column(nullable = false, unique = true)
@Length(min = 3, max = 50, message = "The longName must be between 3 and 50 characters of length")
private String longName;
Modified: trunk/src/main/java/cc/kune/domain/User.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/User.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/domain/User.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -54,248 +54,248 @@
@Table(name = "kusers")
public class User implements HasId {
- // public static final String PROPS_ID = "userprops";
- // see: http://docs.codehaus.org/display/PICO/Good+Citizen:
- // Never expect or return null
- public static final User UNKNOWN_USER = new User();
+ // public static final String PROPS_ID = "userprops";
+ // see: http://docs.codehaus.org/display/PICO/Good+Citizen:
+ // Never expect or return null
+ public static final User UNKNOWN_USER = new User();
- public static boolean isKnownUser(final User user) {
- return !user.equals(UNKNOWN_USER);
- }
+ public static boolean isKnownUser(final User user) {
+ return !user.equals(UNKNOWN_USER);
+ }
- @Enumerated(EnumType.STRING)
- private UserSNetVisibility sNetVisibility;
+ @ManyToOne
+ @NotNull
+ private I18nCountry country;
- @ManyToOne
- @NotNull
- private I18nCountry country;
+ @Basic(optional = false)
+ private final Long createdOn;
- @Basic(optional = false)
- private final Long createdOn;
+ @Basic
+ @Lob
+ @Column(nullable = false)
+ private byte[] diggest;
- // @OneToOne(cascade = CascadeType.REMOVE)
- // private final CustomProperties customProperties;
+ // @OneToOne(cascade = CascadeType.REMOVE)
+ // private final CustomProperties customProperties;
- @Basic
- @Lob
- @Column(nullable = false)
- private byte[] diggest;
+ @Column(unique = true, nullable = false)
+ @Email
+ @Length(min = 1)
+ private String email;
- @Column(unique = true, nullable = false)
- @Email
- @Length(min = 1)
- private String email;
+ @Id
+ @DocumentId
+ @GeneratedValue
+ private Long id;
- @Id
- @DocumentId
- @GeneratedValue
- private Long id;
+ @ManyToOne
+ @NotNull
+ private I18nLanguage language;
- @ManyToOne
- @NotNull
- private I18nLanguage language;
+ @Basic
+ private Long lastLogin;
- @Basic
- private Long lastLogin;
+ @Field(index = Index.TOKENIZED, store = Store.NO)
+ @Column(nullable = false, unique = true)
+ @Length(min = 3, max = 50)
+ private String name;
- @Field(index = Index.TOKENIZED, store = Store.NO)
- @Column(nullable = false)
- @Length(min = 3, max = 50)
- private String name;
+ @Column(nullable = false)
+ @Length(min = 6, max = 40)
+ private String password;
- @Column(nullable = false)
- @Length(min = 6, max = 40)
- private String password;
+ @Basic
+ @Lob
+ @Column(nullable = false)
+ private byte[] salt;
- @Basic
- @Lob
- @Column(nullable = false)
- private byte[] salt;
+ @Field(index = Index.UN_TOKENIZED, store = Store.NO)
+ @Column(unique = true)
+ // http://www.hibernate.org/hib_docs/validator/reference/en/html/validator-def…
+ @Length(min = 3, max = 15)
+ @Pattern(regex = "^[a-z0-9]+$", message = "The name must be between 3 and 15 lowercase characters. It can only contain Western characters, numbers, and dashes")
+ private String shortName;
- @Field(index = Index.UN_TOKENIZED, store = Store.NO)
- @Column(unique = true)
- // http://www.hibernate.org/hib_docs/validator/reference/en/html/validator-def…
- @Length(min = 3, max = 15)
- @Pattern(regex = "^[a-z0-9]+$", message = "The name must be between 3 and 15 lowercase characters. It can only contain Western characters, numbers, and dashes")
- private String shortName;
+ @Enumerated(EnumType.STRING)
+ private UserSNetVisibility sNetVisibility;
- @NotNull
- private TimeZone timezone;
+ @NotNull
+ private TimeZone timezone;
- @OneToOne(cascade = CascadeType.REMOVE)
- private Group userGroup;
+ @OneToOne(cascade = CascadeType.REMOVE)
+ private Group userGroup;
- // @OneToOne
- // @OnDelete(action = OnDeleteAction.CASCADE)
- // private Properties properties;
+ // @OneToOne
+ // @OnDelete(action = OnDeleteAction.CASCADE)
+ // private Properties properties;
- public User() {
- this(null, null, null, null, null, null, null, null, null);
- }
+ public User() {
+ this(null, null, null, null, null, null, null, null, null);
+ }
- //
- // public User(final String shortName, final String longName, final String
- // email, final String passwd,
- // final I18nLanguage language, final I18nCountry country, final TimeZone
- // timezone) {
- // this(shortName, longName, email, passwd, language, country, timezone,
- // null);
- // }
+ //
+ // public User(final String shortName, final String longName, final String
+ // email, final String passwd,
+ // final I18nLanguage language, final I18nCountry country, final TimeZone
+ // timezone) {
+ // this(shortName, longName, email, passwd, language, country, timezone,
+ // null);
+ // }
- public User(final String shortName, final String longName, final String email, final String passwd,
- final byte[] diggets, final byte[] salt, final I18nLanguage language, final I18nCountry country,
- final TimeZone timezone) {
- this.shortName = shortName;
- this.name = longName;
- this.email = email;
- this.password = passwd;
- this.diggest = diggets;
- this.salt = salt;
- this.userGroup = null;
- this.language = language;
- this.country = country;
- this.timezone = timezone;
- // customProperties = new CustomProperties();
- sNetVisibility = UserSNetVisibility.anyone;
- this.createdOn = System.currentTimeMillis();
- this.lastLogin = null;
- // this.properties = properties;
- }
+ public User(final String shortName, final String longName, final String email, final String passwd,
+ final byte[] diggets, final byte[] salt, final I18nLanguage language, final I18nCountry country,
+ final TimeZone timezone) {
+ this.shortName = shortName;
+ this.name = longName;
+ this.email = email;
+ this.password = passwd;
+ this.diggest = diggets;
+ this.salt = salt;
+ this.userGroup = null;
+ this.language = language;
+ this.country = country;
+ this.timezone = timezone;
+ // customProperties = new CustomProperties();
+ sNetVisibility = UserSNetVisibility.anyone;
+ this.createdOn = System.currentTimeMillis();
+ this.lastLogin = null;
+ // this.properties = properties;
+ }
- public UserSNetVisibility getSNetVisibility() {
- return sNetVisibility;
- }
+ public I18nCountry getCountry() {
+ return country;
+ }
- public I18nCountry getCountry() {
- return country;
- }
+ public Long getCreatedOn() {
+ return createdOn;
+ }
- public Long getCreatedOn() {
- return createdOn;
- }
+ public byte[] getDiggest() {
+ return diggest;
+ }
- // public CustomProperties getCustomProperties() {
- // return customProperties;
- // }
+ // public CustomProperties getCustomProperties() {
+ // return customProperties;
+ // }
- public byte[] getDiggest() {
- return diggest;
- }
+ public String getEmail() {
+ return email;
+ }
- public String getEmail() {
- return email;
- }
+ public boolean getHasLogo() {
+ return hasLogo();
+ }
- public boolean getHasLogo() {
- return hasLogo();
- }
+ @Override
+ public Long getId() {
+ return id;
+ }
- @Override
- public Long getId() {
- return id;
- }
+ public I18nLanguage getLanguage() {
+ return language;
+ }
- public I18nLanguage getLanguage() {
- return language;
- }
+ public Long getLastLogin() {
+ return lastLogin;
+ }
- public Long getLastLogin() {
- return lastLogin;
- }
+ public String getName() {
+ return name;
+ }
- public String getName() {
- return name;
- }
+ public String getPassword() {
+ return password;
+ }
- // public Properties getProperties() {
- // return properties;
- // }
+ // public Properties getProperties() {
+ // return properties;
+ // }
- public String getPassword() {
- return password;
- }
+ public byte[] getSalt() {
+ return salt;
+ }
- public byte[] getSalt() {
- return salt;
- }
+ public String getShortName() {
+ return shortName;
+ }
- public String getShortName() {
- return shortName;
- }
+ public UserSNetVisibility getSNetVisibility() {
+ return sNetVisibility;
+ }
- @Transient
- public StateToken getStateToken() {
- return userGroup.getStateToken();
- }
+ @Transient
+ public StateToken getStateToken() {
+ return userGroup.getStateToken();
+ }
- public TimeZone getTimezone() {
- return timezone;
- }
+ public TimeZone getTimezone() {
+ return timezone;
+ }
- public Group getUserGroup() {
- return userGroup;
- }
+ public Group getUserGroup() {
+ return userGroup;
+ }
- @Transient
- public boolean hasLogo() {
- return getUserGroup().hasLogo();
- }
+ @Transient
+ public boolean hasLogo() {
+ return getUserGroup().hasLogo();
+ }
- public void setSNetVisibility(final UserSNetVisibility sNetVisibility) {
- this.sNetVisibility = sNetVisibility;
- }
+ public void setCountry(final I18nCountry country) {
+ this.country = country;
+ }
- public void setCountry(final I18nCountry country) {
- this.country = country;
- }
+ public void setDiggest(final byte[] diggest) {
+ this.diggest = diggest;
+ }
- public void setDiggest(final byte[] diggest) {
- this.diggest = diggest;
- }
+ public void setEmail(final String email) {
+ this.email = email;
+ }
- public void setEmail(final String email) {
- this.email = email;
- }
+ @Override
+ public void setId(final Long id) {
+ this.id = id;
+ }
- @Override
- public void setId(final Long id) {
- this.id = id;
- }
+ public void setLanguage(final I18nLanguage language) {
+ this.language = language;
+ }
- public void setLanguage(final I18nLanguage language) {
- this.language = language;
- }
+ public void setLastLogin(final Long lastLogin) {
+ this.lastLogin = lastLogin;
+ }
- public void setLastLogin(final Long lastLogin) {
- this.lastLogin = lastLogin;
- }
+ public void setName(final String name) {
+ this.name = name;
+ }
- public void setName(final String name) {
- this.name = name;
- }
+ public void setPassword(final String password) {
+ this.password = password;
+ }
- public void setPassword(final String password) {
- this.password = password;
- }
+ public void setSalt(final byte[] salt) {
+ this.salt = salt;
+ }
- public void setSalt(final byte[] salt) {
- this.salt = salt;
- }
+ public void setShortName(final String shortName) {
+ this.shortName = shortName;
+ }
- public void setShortName(final String shortName) {
- this.shortName = shortName;
- }
+ public void setSNetVisibility(final UserSNetVisibility sNetVisibility) {
+ this.sNetVisibility = sNetVisibility;
+ }
- public void setTimezone(final TimeZone timezone) {
- this.timezone = timezone;
- }
+ public void setTimezone(final TimeZone timezone) {
+ this.timezone = timezone;
+ }
- public void setUserGroup(final Group userGroup) {
- this.userGroup = userGroup;
- }
+ public void setUserGroup(final Group userGroup) {
+ this.userGroup = userGroup;
+ }
- @Override
- public String toString() {
- return "User[" + shortName + "]";
- }
+ @Override
+ public String toString() {
+ return "User[" + shortName + "]";
+ }
}
Modified: trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -31,10 +31,19 @@
public interface GroupFinder {
+ @Finder(query = "SELECT count(*) FROM Group g WHERE g.longName = :longName")
+ public Long countByLongName(@Named("longName") final String longName);
+
+ @Finder(query = "SELECT count(*) FROM Group g WHERE g.shortName = :shortName")
+ public Long countByShortName(@Named("shortName") final String shortName);
+
@Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id "
+ "FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)", returnAs = HashSet.class)
public Set<Group> findAdminInGroups(@Named("groupid") final Long groupId);
+ @Finder(query = "FROM Group g WHERE g.longName = :longName")
+ public Group findByLongName(@Named("longName") final String longName);
+
@Finder(query = "FROM Group g WHERE g.shortName = :shortName")
public Group findByShortName(@Named("shortName") final String shortName);
Modified: trunk/src/main/java/cc/kune/domain/finders/UserFinder.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/finders/UserFinder.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/main/java/cc/kune/domain/finders/UserFinder.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -29,16 +29,27 @@
public interface UserFinder {
- @Finder(query = "from User", returnAs = ArrayList.class)
- public List<User> getAll();
+ @Finder(query = "select count (*) from User where email = :email")
+ public Long countByEmail(@Named("email") final String email);
- @Finder(query = "from User where email = :email")
- public User getByEmail(@Named("email") final String email);
+ @Finder(query = "select count (*) from User where name = :name")
+ public Long countByLongName(@Named("name") final String name);
- @Finder(query = "from User where id = :id")
- public User getById(@Named("id") final Long id);
+ @Finder(query = "select count (*) from User where shortName = :shortName")
+ public Long countByShortName(@Named("shortName") final String shortName);
- @Finder(query = "from User where shortName = :shortName")
- public User getByShortName(@Named("shortName") final String shortName);
+ @Finder(query = "from User where email = :email")
+ public User findByEmail(@Named("email") final String email);
+ @Finder(query = "from User where id = :id")
+ public User findById(@Named("id") final Long id);
+
+ @Finder(query = "from User where name = :name")
+ public User findByLongName(@Named("name") final String name);
+
+ @Finder(query = "from User where shortName = :shortName")
+ public User findByShortName(@Named("shortName") final String shortName);
+
+ @Finder(query = "from User", returnAs = ArrayList.class)
+ public List<User> getAll();
}
Modified: trunk/src/test/java/cc/kune/core/server/finders/UserFinderTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/finders/UserFinderTest.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/test/java/cc/kune/core/server/finders/UserFinderTest.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -46,7 +46,7 @@
@Test
public void findByEmail() {
- final User user = finder.getByEmail("one(a)here.com");
+ final User user = finder.findByEmail("one(a)here.com");
assertNotNull(user);
}
Modified: trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -30,7 +30,8 @@
import org.junit.Test;
import cc.kune.core.client.errors.EmailAddressInUseException;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.GroupLongNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.SessionExpiredException;
import cc.kune.core.client.rpcservices.UserService;
import cc.kune.core.server.integration.IntegrationTest;
@@ -90,14 +91,22 @@
@Test(expected = EmailAddressInUseException.class)
public void createUserExistingEmailFails() throws Exception {
assertNull(session.getUser().getId());
- final UserDTO user = new UserDTO("test", "test", "123456", properties.getAdminEmail(), lang,
+ final UserDTO user = new UserDTO("test2", "test2", "123456", properties.getAdminEmail(), lang,
country, timezone, null, true, SubscriptionMode.manual, "blue");
userService.createUser(user, false);
}
- @Test(expected = GroupNameInUseException.class)
- public void createUserExistingNameFails() throws Exception {
+ @Test(expected = GroupLongNameInUseException.class)
+ public void createUserExistingLongNameFails() throws Exception {
assertNull(session.getUser().getId());
+ final UserDTO user = new UserDTO(properties.getAdminUserName(), "test", "123456",
+ "example1234(a)example.com", lang, country, timezone, null, true, SubscriptionMode.manual, "blue");
+ userService.createUser(user, false);
+ }
+
+ @Test(expected = GroupShortNameInUseException.class)
+ public void createUserExistingShortNameFails() throws Exception {
+ assertNull(session.getUser().getId());
final UserDTO user = new UserDTO("test", properties.getAdminShortName(), "123456",
"example1234(a)example.com", lang, country, timezone, null, true, SubscriptionMode.manual, "blue");
userService.createUser(user, false);
Modified: trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -29,7 +29,8 @@
import org.junit.Test;
import cc.kune.core.client.errors.EmailAddressInUseException;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.GroupLongNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
import cc.kune.core.server.PersistencePreLoadedDataTest;
@@ -79,7 +80,7 @@
rollbackTransaction();
}
- @Test(expected = GroupNameInUseException.class)
+ @Test(expected = GroupLongNameInUseException.class)
public void createGroupWithExistingLongName() throws Exception {
final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
GroupType.PROJECT);
@@ -93,7 +94,7 @@
rollbackTransaction();
}
- @Test(expected = GroupNameInUseException.class)
+ @Test(expected = GroupShortNameInUseException.class)
public void createGroupWithExistingShortName() throws Exception {
final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
GroupType.PROJECT);
@@ -113,7 +114,7 @@
}
@Test(expected = EmailAddressInUseException.class)
- public void createUserExistingEmail() throws I18nNotFoundException, GroupNameInUseException,
+ public void createUserExistingEmail() throws I18nNotFoundException, GroupShortNameInUseException,
EmailAddressInUseException {
userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en", "GB",
"GMT", true);
@@ -121,8 +122,8 @@
"GMT", true);
}
- @Test(expected = GroupNameInUseException.class)
- public void createUserExistingLongName() throws I18nNotFoundException, GroupNameInUseException,
+ @Test(expected = GroupLongNameInUseException.class)
+ public void createUserExistingLongName() throws I18nNotFoundException, GroupShortNameInUseException,
EmailAddressInUseException {
userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en", "GB",
"GMT", true);
@@ -130,8 +131,8 @@
"GMT", true);
}
- @Test(expected = GroupNameInUseException.class)
- public void createUserExistingShortName() throws I18nNotFoundException, GroupNameInUseException,
+ @Test(expected = GroupShortNameInUseException.class)
+ public void createUserExistingShortName() throws I18nNotFoundException, GroupShortNameInUseException,
EmailAddressInUseException {
userManager.createUser("test", "test 1 name", "test21(a)example.com", "some password", "en", "GB",
"GMT", true);
@@ -146,14 +147,14 @@
rollbackTransaction();
}
- @Test(expected = GroupNameInUseException.class)
+ @Test(expected = GroupLongNameInUseException.class)
public void createUserWithExistingLongName() throws Exception {
userManager.createUser("username2", USER_LONG_NAME, "email2(a)example.com", "userPassword", "en",
"GB", TimeZone.getDefault().getID(), true);
rollbackTransaction();
}
- @Test(expected = GroupNameInUseException.class)
+ @Test(expected = GroupShortNameInUseException.class)
public void createUserWithExistingShortName() throws Exception {
userManager.createUser(USER_SHORT_NAME, "the user name 2", "email2(a)example.com", "userPassword",
"en", "GB", TimeZone.getDefault().getID(), true);
Modified: trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2011-08-14 01:21:47 UTC (rev 1494)
+++ trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2011-08-14 11:54:12 UTC (rev 1495)
@@ -31,7 +31,7 @@
import org.hibernate.validator.InvalidStateException;
import org.junit.Test;
-import cc.kune.core.client.errors.GroupNameInUseException;
+import cc.kune.core.client.errors.GroupShortNameInUseException;
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.server.PersistencePreLoadedDataTest;
import cc.kune.core.server.manager.impl.SearchResult;
@@ -99,7 +99,7 @@
* This was not working:
* http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
*/
- @Test(expected = GroupNameInUseException.class)
+ @Test(expected = GroupShortNameInUseException.class)
public void testUserExist() throws I18nNotFoundException {
final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com",
"some password", "en", "GB", "GMT", true);
1
0
Re: [kune-commits] [kune issues] #85: When user registration fails (for any reason) sometimes we don't clean the welcome wave and similars
by kune issues 14 Aug '11
by kune issues 14 Aug '11
14 Aug '11
#85: When user registration fails (for any reason) sometimes we don't clean the
welcome wave and similars
-------------------------+--------------------------------------------------
Reporter: vjrj | Owner: vjrj
Type: defect | Status: closed
Priority: minor | Milestone:
Component: User space | Version:
Resolution: fixed | Keywords:
Blocking: | Blockedby:
-------------------------+--------------------------------------------------
Changes (by vjrj):
* status: new => closed
* resolution: => fixed
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/85#comment:>
kune issues <http://kune.ourproject.org/issues/>
1
0
r1494 - in trunk/src: main/java/cc/kune/core/server/manager main/java/cc/kune/core/server/manager/impl main/java/cc/kune/core/server/rpc main/java/cc/kune/wave/server test/java/cc/kune/core/server test/java/cc/kune/core/server/manager test/java/cc/kune/wave/server
by Vicente J. Ruiz Jurado 14 Aug '11
by Vicente J. Ruiz Jurado 14 Aug '11
14 Aug '11
Author: vjrj_
Date: 2011-08-14 03:21:47 +0200 (Sun, 14 Aug 2011)
New Revision: 1494
Modified:
trunk/src/main/java/cc/kune/core/server/manager/UserManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java
trunk/src/main/java/cc/kune/wave/server/KuneAgent.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java
trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java
trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java
trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java
Log:
NEW - # 85: When user registration fails (for any reason) sometimes we don't clean the welcome wave and similars
http://kune.ourproject.org/issues/ticket/85
Modified: trunk/src/main/java/cc/kune/core/server/manager/UserManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/UserManager.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/main/java/cc/kune/core/server/manager/UserManager.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -39,11 +39,12 @@
* @param country
* @param language
* @param timezone
+ * @param wantPersonalHomepage
* @return User
* @throws I18nNotFoundException
*/
User createUser(String shortName, String longName, String email, String passwd, String language,
- String country, String timezone) throws I18nNotFoundException;
+ String country, String timezone, boolean wantPersonalHomepage) throws I18nNotFoundException;
void createWaveAccount(String shortName, PasswordDigest passwdDigest);
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -37,10 +37,12 @@
import org.jivesoftware.smack.packet.RosterPacket.ItemType;
import org.waveprotocol.box.server.authentication.PasswordDigest;
import org.waveprotocol.box.server.persistence.AccountStore;
+import org.waveprotocol.wave.model.waveref.WaveRef;
import cc.kune.core.client.errors.GroupNameInUseException;
import cc.kune.core.client.errors.I18nNotFoundException;
import cc.kune.core.client.errors.UserRegistrationException;
+import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.I18nCountryManager;
import cc.kune.core.server.manager.I18nLanguageManager;
import cc.kune.core.server.manager.UserManager;
@@ -70,13 +72,13 @@
private final ChatProperties chatProperties;
private final I18nCountryManager countryManager;
private final UserFinder finder;
+ private final GroupManager groupManager;
private final I18nTranslationService i18n;
private final KuneWaveManager kuneWaveManager;
private final I18nLanguageManager languageManager;
private final ParticipantUtils participantUtils;
private final KuneBasicProperties properties;
private final AccountStore waveAccountStore;
- // private final PropertiesManager propManager;
private final CustomUserRegistrationServlet waveUserRegister;
private final XmppManager xmppManager;
@@ -86,7 +88,8 @@
final XmppManager xmppManager, final ChatProperties chatProperties,
final I18nTranslationService i18n, final CustomUserRegistrationServlet waveUserRegister,
final AccountStore waveAccountStore, final KuneWaveManager kuneWaveManager,
- final ParticipantUtils participantUtils, final KuneBasicProperties properties) {
+ final ParticipantUtils participantUtils, final KuneBasicProperties properties,
+ final GroupManager groupManager) {
super(provider, User.class);
this.finder = finder;
this.languageManager = languageManager;
@@ -99,12 +102,13 @@
this.kuneWaveManager = kuneWaveManager;
this.participantUtils = participantUtils;
this.properties = properties;
+ this.groupManager = groupManager;
}
@Override
public User createUser(final String shortName, final String longName, final String email,
- final String passwd, final String langCode, final String countryCode, final String timezone)
- throws I18nNotFoundException {
+ final String passwd, final String langCode, final String countryCode, final String timezone,
+ final boolean wantPersonalHomepage) throws I18nNotFoundException {
I18nLanguage language;
I18nCountry country;
TimeZone tz;
@@ -137,20 +141,28 @@
// }
// final Properties userProp = new Properties(userPropGroup);
// propManager.persist(userProp);
+ WaveRef welcome = null;
try {
final User user = new User(shortName, longName, email, passwd, passwdDigest.getDigest(),
passwdDigest.getSalt(), language, country, tz);
final String defWave = properties.getWelcomewave();
if (defWave != null) {
- kuneWaveManager.createWave(
+ welcome = kuneWaveManager.createWave(
ContentConstants.WELCOME_WAVE_CONTENT_TITLE.replaceAll("\\[%s\\]",
properties.getDefaultSiteName()), "", defWave, null,
participantUtils.of(properties.getAdminShortName()), participantUtils.of(shortName));
}
+ groupManager.createUserGroup(user, wantPersonalHomepage);
+ // Is this necessary? try to remove (used when we were setting the def
+ // content
+ // contentManager.save(userGroup.getDefaultContent());
return user;
} catch (final RuntimeException e) {
try {
+ if (welcome != null) {
+ kuneWaveManager.delParticipants(welcome, properties.getAdminShortName(), shortName);
+ }
// Try to remove wave account
waveAccountStore.removeAccount(participantUtils.of(shortName));
} catch (final Exception e2) {
Modified: trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/main/java/cc/kune/core/server/rpc/UserRPC.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -95,13 +95,14 @@
@Transactional(rollbackOn = DefaultException.class)
public void createUser(final UserDTO userDTO, final boolean wantPersonalHomepage)
throws DefaultException {
- final User user = userManager.createUser(userDTO.getShortName(), userDTO.getName(),
- userDTO.getEmail(), userDTO.getPassword(), userDTO.getLanguage().getCode(),
- userDTO.getCountry().getCode(), userDTO.getTimezone().getId());
- final Group userGroup = groupManager.createUserGroup(user, wantPersonalHomepage);
- // Is this necessary? try to remove (used when we were setting the def
- // content
- contentManager.save(userGroup.getDefaultContent());
+ userManager.createUser(userDTO.getShortName(), userDTO.getName(), userDTO.getEmail(),
+ userDTO.getPassword(), userDTO.getLanguage().getCode(), userDTO.getCountry().getCode(),
+ userDTO.getTimezone().getId(), wantPersonalHomepage);
+ // final Group userGroup = groupManager.createUserGroup(user,
+ // wantPersonalHomepage);
+ // // Is this necessary? try to remove (used when we were setting the def
+ // // content
+ // contentManager.save(userGroup.getDefaultContent());
}
@Override
Modified: trunk/src/main/java/cc/kune/wave/server/KuneAgent.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneAgent.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/main/java/cc/kune/wave/server/KuneAgent.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -100,6 +100,12 @@
}
@Override
+ public void delParticipants(final WaveRef waveName, final String whoDel, final String... participants) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
public Wavelet fetchWave(final WaveId waveId, final WaveletId waveletId, final String author) {
// TODO Auto-generated method stub
return null;
Modified: trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -33,7 +33,7 @@
void addGadget(WaveRef waveName, String author, String gadgetUrl);
- void addParticipants(WaveRef waveName, String author, String userWhoAdd, String... newParticipant);
+ void addParticipants(WaveRef waveName, String author, String userWhoAdd, String... newParticipants);
WaveRef createWave(String message, ParticipantId participants);
@@ -44,6 +44,8 @@
WaveRef createWave(String title, String message, URL gadgetUrl, ParticipantId... participantsArray);
+ void delParticipants(WaveRef waveName, String whoDel, String... participants);
+
Wavelet fetchWave(WaveId waveId, WaveletId waveletId, String author);
Wavelet fetchWave(WaveRef waveRef, String author);
Modified: trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -310,6 +310,29 @@
return createWave(title, message, NO_WAVE_TO_COPY, gadgetUrl, participantsArray);
}
+ @Override
+ public void delParticipants(final WaveRef waveName, final String whoDel, final String... participants) {
+ final Wavelet wavelet = fetchWave(waveName, whoDel);
+ final OperationQueue opQueue = new OperationQueue();
+
+ for (final String participant : participants) {
+ final String partWithDomain = participantUtils.of(participant).toString();
+ boolean mustDel = false;
+ for (final String current : wavelet.getParticipants()) {
+ if (current.equals(partWithDomain)) {
+ mustDel = true;
+ break;
+ }
+ }
+ if (mustDel) {
+ opQueue.removeParticipantFromWavelet(wavelet, partWithDomain);
+ }
+ }
+ if (opQueue.getPendingOperations().size() > 0) {
+ doOperation(whoDel, opQueue, "add participant");
+ }
+ }
+
private void doOperation(final String author, final OperationQueue opQueue, final String logComment) {
final OperationContextImpl context = new OperationContextImpl(waveletProvider,
converterManager.getEventDataConverter(ProtocolVersion.DEFAULT), conversationUtil);
Modified: trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/test/java/cc/kune/core/server/PersistencePreLoadedDataTest.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -107,12 +107,12 @@
gb = new I18nCountry(Long.valueOf(75), "GB", "GBP", ".", "£%n", "", ".", "United Kingdom",
"western", ",");
countryManager.persist(gb);
- user = userManager.createUser(USER_SHORT_NAME, USER_LONG_NAME, USER_EMAIL, USER_PASSWORD, "en",
- "GB", TimeZone.getDefault().getID());
defLicense = new License("by-sa-v3.0", "Creative Commons Attribution-ShareAlike", "",
"http://creativecommons.org/licenses/by-sa/3.0/", true, true, false, "", "");
licenseManager.persist(defLicense);
- groupManager.createUserGroup(user, true);
+ user = userManager.createUser(USER_SHORT_NAME, USER_LONG_NAME, USER_EMAIL, USER_PASSWORD, "en",
+ "GB", TimeZone.getDefault().getID(), true);
+ // groupManager.createUserGroup(user, true);
content = new Content();
content.setLanguage(english);
contentManager.persist(content);
Modified: trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/test/java/cc/kune/core/server/manager/GroupManagerDefaultTest.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -38,166 +38,154 @@
import cc.kune.domain.AccessLists;
import cc.kune.domain.Group;
import cc.kune.domain.SocialNetwork;
-import cc.kune.domain.User;
public class GroupManagerDefaultTest extends PersistencePreLoadedDataTest {
- private static final String PUBLIC_DESCRIP = "Some public descrip";
+ private static final String PUBLIC_DESCRIP = "Some public descrip";
- @Test
- public void createdGroupShoudHaveValidSocialNetwork() throws Exception {
- final Group group = new Group("short", "longName", defLicense, GroupType.PROJECT);
- groupManager.createGroup(group, user, PUBLIC_DESCRIP);
- final SocialNetwork socialNetwork = group.getSocialNetwork();
- final AccessLists lists = socialNetwork.getAccessLists();
- assertTrue(lists.getAdmins().includes(user.getUserGroup()));
- assertTrue(lists.getEditors().isEmpty());
- assertTrue(lists.getViewers().isEmpty());
- closeTransaction();
- }
+ @Test
+ public void createdGroupShoudHaveValidSocialNetwork() throws Exception {
+ final Group group = new Group("short", "longName", defLicense, GroupType.PROJECT);
+ groupManager.createGroup(group, user, PUBLIC_DESCRIP);
+ final SocialNetwork socialNetwork = group.getSocialNetwork();
+ final AccessLists lists = socialNetwork.getAccessLists();
+ assertTrue(lists.getAdmins().includes(user.getUserGroup()));
+ assertTrue(lists.getEditors().isEmpty());
+ assertTrue(lists.getViewers().isEmpty());
+ closeTransaction();
+ }
- @Test
- public void createGroup() throws Exception {
- final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
- GroupType.PROJECT);
- groupManager.createGroup(group, user, PUBLIC_DESCRIP);
- final Group otherGroup = groupManager.findByShortName("ysei");
+ @Test
+ public void createGroup() throws Exception {
+ final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
+ GroupType.PROJECT);
+ groupManager.createGroup(group, user, PUBLIC_DESCRIP);
+ final Group otherGroup = groupManager.findByShortName("ysei");
- assertEquals(group.getLongName(), otherGroup.getLongName());
- assertEquals(group.getShortName(), otherGroup.getShortName());
- closeTransaction();
- }
+ assertEquals(group.getLongName(), otherGroup.getLongName());
+ assertEquals(group.getShortName(), otherGroup.getShortName());
+ closeTransaction();
+ }
- @Test
- public void createGroupAndSearch() throws Exception, ParseException {
- final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
- GroupType.PROJECT);
- groupManager.createGroup(group, user, PUBLIC_DESCRIP);
- groupManager.reIndex();
- final SearchResult<Group> result = groupManager.search("ysei");
- assertEquals(1, result.getSize());
- assertEquals("ysei", result.getList().get(0).getShortName());
- rollbackTransaction();
- }
+ @Test
+ public void createGroupAndSearch() throws Exception, ParseException {
+ final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
+ GroupType.PROJECT);
+ groupManager.createGroup(group, user, PUBLIC_DESCRIP);
+ groupManager.reIndex();
+ final SearchResult<Group> result = groupManager.search("ysei");
+ assertEquals(1, result.getSize());
+ assertEquals("ysei", result.getList().get(0).getShortName());
+ rollbackTransaction();
+ }
- @Test(expected = GroupNameInUseException.class)
- public void createGroupWithExistingLongName() throws Exception {
- final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
- GroupType.PROJECT);
- groupManager.createGroup(group, user, PUBLIC_DESCRIP);
+ @Test(expected = GroupNameInUseException.class)
+ public void createGroupWithExistingLongName() throws Exception {
+ final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
+ GroupType.PROJECT);
+ groupManager.createGroup(group, user, PUBLIC_DESCRIP);
- final Group group2 = new Group("ysei2", "Yellow Submarine Environmental Initiative", defLicense,
- GroupType.PROJECT);
- group2.setDefaultLicense(defLicense);
- groupManager.createGroup(group2, user, PUBLIC_DESCRIP);
+ final Group group2 = new Group("ysei2", "Yellow Submarine Environmental Initiative", defLicense,
+ GroupType.PROJECT);
+ group2.setDefaultLicense(defLicense);
+ groupManager.createGroup(group2, user, PUBLIC_DESCRIP);
- rollbackTransaction();
- }
+ rollbackTransaction();
+ }
- @Test(expected = GroupNameInUseException.class)
- public void createGroupWithExistingShortName() throws Exception {
- final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
- GroupType.PROJECT);
- groupManager.createGroup(group, user, PUBLIC_DESCRIP);
+ @Test(expected = GroupNameInUseException.class)
+ public void createGroupWithExistingShortName() throws Exception {
+ final Group group = new Group("ysei", "Yellow Submarine Environmental Initiative", defLicense,
+ GroupType.PROJECT);
+ groupManager.createGroup(group, user, PUBLIC_DESCRIP);
- final Group group2 = new Group("ysei", "Yellow Submarine Environmental Initiative 2", defLicense,
- GroupType.PROJECT);
- groupManager.createGroup(group2, user, PUBLIC_DESCRIP);
+ final Group group2 = new Group("ysei", "Yellow Submarine Environmental Initiative 2", defLicense,
+ GroupType.PROJECT);
+ groupManager.createGroup(group2, user, PUBLIC_DESCRIP);
- rollbackTransaction();
- }
+ rollbackTransaction();
+ }
- private void createTestGroup(final int number) throws Exception {
- final Group g = new Group("ysei" + number, "Yellow Submarine Environmental Initiative " + number, defLicense,
- GroupType.PROJECT);
- groupManager.createGroup(g, user, PUBLIC_DESCRIP);
- }
+ private void createTestGroup(final int number) throws Exception {
+ final Group g = new Group("ysei" + number, "Yellow Submarine Environmental Initiative " + number,
+ defLicense, GroupType.PROJECT);
+ groupManager.createGroup(g, user, PUBLIC_DESCRIP);
+ }
- @Test(expected = EmailAddressInUseException.class)
- public void createUserExistingEmail() throws I18nNotFoundException, GroupNameInUseException,
- EmailAddressInUseException {
- final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
- "GB", "GMT");
- groupManager.createUserGroup(user1);
- final User user2 = userManager.createUser("test2", "test 2 name", "test1(a)example.com", "some password", "en",
- "GB", "GMT");
- groupManager.createUserGroup(user2);
- }
+ @Test(expected = EmailAddressInUseException.class)
+ public void createUserExistingEmail() throws I18nNotFoundException, GroupNameInUseException,
+ EmailAddressInUseException {
+ userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en", "GB",
+ "GMT", true);
+ userManager.createUser("test2", "test 2 name", "test1(a)example.com", "some password", "en", "GB",
+ "GMT", true);
+ }
- @Test(expected = GroupNameInUseException.class)
- public void createUserExistingLongName() throws I18nNotFoundException, GroupNameInUseException,
- EmailAddressInUseException {
- final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
- "GB", "GMT");
- groupManager.createUserGroup(user1);
- final User user2 = userManager.createUser("test2", "test 1 name", "test2(a)example.com", "some password", "en",
- "GB", "GMT");
- groupManager.createUserGroup(user2);
- }
+ @Test(expected = GroupNameInUseException.class)
+ public void createUserExistingLongName() throws I18nNotFoundException, GroupNameInUseException,
+ EmailAddressInUseException {
+ userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en", "GB",
+ "GMT", true);
+ userManager.createUser("test2", "test 1 name", "test2(a)example.com", "some password", "en", "GB",
+ "GMT", true);
+ }
- @Test(expected = GroupNameInUseException.class)
- public void createUserExistingShortName() throws I18nNotFoundException, GroupNameInUseException,
- EmailAddressInUseException {
- final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
- "GB", "GMT");
- groupManager.createUserGroup(user1);
- final User user2 = userManager.createUser("test", "test 2 name", "test2(a)example.com", "some password", "en",
- "GB", "GMT");
- groupManager.createUserGroup(user2);
- }
+ @Test(expected = GroupNameInUseException.class)
+ public void createUserExistingShortName() throws I18nNotFoundException, GroupNameInUseException,
+ EmailAddressInUseException {
+ userManager.createUser("test", "test 1 name", "test21(a)example.com", "some password", "en", "GB",
+ "GMT", true);
+ userManager.createUser("test", "test 2 name", "test22(a)example.com", "some password", "en", "GB",
+ "GMT", true);
+ }
- @Test(expected = EmailAddressInUseException.class)
- public void createUserWithExistingEmail() throws Exception {
- final User user2 = userManager.createUser("username2", "the user name 2", USER_EMAIL, "userPassword", "en",
- "GB", TimeZone.getDefault().getID());
- groupManager.createUserGroup(user2);
- rollbackTransaction();
- }
+ @Test(expected = EmailAddressInUseException.class)
+ public void createUserWithExistingEmail() throws Exception {
+ userManager.createUser("username2", "the user name 2", USER_EMAIL, "userPassword", "en", "GB",
+ TimeZone.getDefault().getID(), true);
+ rollbackTransaction();
+ }
- @Test(expected = GroupNameInUseException.class)
- public void createUserWithExistingLongName() throws Exception {
- final User user2 = userManager.createUser("username2", USER_LONG_NAME, "email2(a)example.com", "userPassword",
- "en", "GB", TimeZone.getDefault().getID());
- groupManager.createUserGroup(user2);
- rollbackTransaction();
- }
+ @Test(expected = GroupNameInUseException.class)
+ public void createUserWithExistingLongName() throws Exception {
+ userManager.createUser("username2", USER_LONG_NAME, "email2(a)example.com", "userPassword", "en",
+ "GB", TimeZone.getDefault().getID(), true);
+ rollbackTransaction();
+ }
- @Test(expected = GroupNameInUseException.class)
- public void createUserWithExistingShortName() throws Exception {
- final User user2 = userManager.createUser(USER_SHORT_NAME, "the user name 2", "email2(a)example.com",
- "userPassword", "en", "GB", TimeZone.getDefault().getID());
- groupManager.createUserGroup(user2);
- rollbackTransaction();
- }
+ @Test(expected = GroupNameInUseException.class)
+ public void createUserWithExistingShortName() throws Exception {
+ userManager.createUser(USER_SHORT_NAME, "the user name 2", "email2(a)example.com", "userPassword",
+ "en", "GB", TimeZone.getDefault().getID(), true);
+ rollbackTransaction();
+ }
- @Test(expected = UserRegistrationException.class)
- public void createUserWithIncorrectShortName() throws Exception {
- final User user2 = userManager.createUser("u s", "the user name 2", "email2(a)example.com", "userPassword", "en",
- "GB", TimeZone.getDefault().getID());
- groupManager.createUserGroup(user2);
- rollbackTransaction();
- }
+ @Test(expected = UserRegistrationException.class)
+ public void createUserWithIncorrectShortName() throws Exception {
+ userManager.createUser("u s", "the user name 2", "email2(a)example.com", "userPassword", "en", "GB",
+ TimeZone.getDefault().getID(), true);
+ rollbackTransaction();
+ }
- @Test(expected = InvalidStateException.class)
- public void createUserWithVeryShortName() throws Exception {
- final User user2 = userManager.createUser("us", "the user name 2", "email2(a)example.com", "userPassword", "en",
- "GB", TimeZone.getDefault().getID());
- groupManager.createUserGroup(user2);
- rollbackTransaction();
- }
+ @Test(expected = InvalidStateException.class)
+ public void createUserWithVeryShortName() throws Exception {
+ userManager.createUser("us", "the user name 2", "email2(a)example.com", "userPassword", "en", "GB",
+ TimeZone.getDefault().getID(), true);
+ rollbackTransaction();
+ }
- @Test
- public void groupSearchPagination() throws Exception, ParseException {
- for (int i = 1; i < 10; i++) {
- createTestGroup(i);
- }
- groupManager.reIndex();
- final SearchResult<Group> result = groupManager.search("Yellow", 0, 5);
- assertEquals(9, result.getSize());
- assertEquals(5, result.getList().size());
- final SearchResult<Group> result2 = groupManager.search("Yellow", 5, 5);
- assertEquals(9, result2.getSize());
- assertEquals(4, result2.getList().size());
- rollbackTransaction();
+ @Test
+ public void groupSearchPagination() throws Exception, ParseException {
+ for (int i = 1; i < 10; i++) {
+ createTestGroup(i);
}
+ groupManager.reIndex();
+ final SearchResult<Group> result = groupManager.search("Yellow", 0, 5);
+ assertEquals(9, result.getSize());
+ assertEquals(5, result.getList().size());
+ final SearchResult<Group> result2 = groupManager.search("Yellow", 5, 5);
+ assertEquals(9, result2.getSize());
+ assertEquals(4, result2.getList().size());
+ rollbackTransaction();
+ }
}
Modified: trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/test/java/cc/kune/core/server/manager/UserManagerDefaultTest.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -42,105 +42,105 @@
import com.google.inject.Inject;
public class UserManagerDefaultTest extends PersistencePreLoadedDataTest {
- @Inject
- Group groupFinder;
+ @Inject
+ Group groupFinder;
- @Test
- public void emailCorrect() {
- user = new User("test1", "test1 name", "test(a)example.com", "some passwd", "somediggest".getBytes(),
- "some salt".getBytes(), english, gb, getTimeZone());
- persist(user);
- }
+ @Test
+ public void emailCorrect() {
+ user = new User("test1", "test1 name", "test(a)example.com", "some passwd", "somediggest".getBytes(),
+ "some salt".getBytes(), english, gb, getTimeZone());
+ persist(user);
+ }
- @Test(expected = PersistenceException.class)
- public void emailEmpty() {
- user = new User("test1", "test1 name", null, "some passwd", "somediggest".getBytes(), "some salt".getBytes(),
- english, gb, getTimeZone());
- persist(user);
- }
+ @Test(expected = PersistenceException.class)
+ public void emailEmpty() {
+ user = new User("test1", "test1 name", null, "some passwd", "somediggest".getBytes(),
+ "some salt".getBytes(), english, gb, getTimeZone());
+ persist(user);
+ }
- @Test(expected = InvalidStateException.class)
- public void emailIncorrect() {
- user = new User("test1", "test1 name", "falseEmail@", "some passwd", "somediggest".getBytes(),
- "some salt".getBytes(), english, gb, getTimeZone());
- persist(user);
- }
+ @Test(expected = InvalidStateException.class)
+ public void emailIncorrect() {
+ user = new User("test1", "test1 name", "falseEmail@", "some passwd", "somediggest".getBytes(),
+ "some salt".getBytes(), english, gb, getTimeZone());
+ persist(user);
+ }
- private TimeZone getTimeZone() {
- return TimeZone.getDefault();
- }
+ private TimeZone getTimeZone() {
+ return TimeZone.getDefault();
+ }
- @Test
- public void loginIncorrect() {
- final User result = userManager.login("test", "test");
- assertNull(result);
- }
+ @Test
+ public void loginIncorrect() {
+ final User result = userManager.login("test", "test");
+ assertNull(result);
+ }
- @Test
- public void loginWithEmailCorrect() {
- final User result = userManager.login(USER_EMAIL, USER_PASSWORD);
- assertNotNull(result.getId());
- }
+ @Test
+ public void loginWithEmailCorrect() {
+ final User result = userManager.login(USER_EMAIL, USER_PASSWORD);
+ assertNotNull(result.getId());
+ }
- @Test
- public void loginWithNickCorrect() {
- final User result = userManager.login(USER_SHORT_NAME, USER_PASSWORD);
- assertNotNull(result.getId());
- }
+ @Test
+ public void loginWithNickCorrect() {
+ final User result = userManager.login(USER_SHORT_NAME, USER_PASSWORD);
+ assertNotNull(result.getId());
+ }
- @Test(expected = InvalidStateException.class)
- public void passwdLengthIncorrect() {
- user = new User("test1", "test1 name", "test(a)example.com", "pass", "diggest".getBytes(), "salt".getBytes(),
- english, gb, getTimeZone());
- persist(user);
- }
+ @Test(expected = InvalidStateException.class)
+ public void passwdLengthIncorrect() {
+ user = new User("test1", "test1 name", "test(a)example.com", "pass", "diggest".getBytes(),
+ "salt".getBytes(), english, gb, getTimeZone());
+ persist(user);
+ }
- /**
- * This was not working:
- * http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
- */
- @Test(expected = GroupNameInUseException.class)
- public void testUserExist() throws I18nNotFoundException {
- final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
- "GB", "GMT");
- persist(user1);
- final User user2 = userManager.createUser("test", "test 1 name", "test1(a)example.com", "some password", "en",
- "GB", "GMT");
- persist(user2);
- }
+ /**
+ * This was not working:
+ * http://opensource.atlassian.com/projects/hibernate/browse/EJB-382
+ */
+ @Test(expected = GroupNameInUseException.class)
+ public void testUserExist() throws I18nNotFoundException {
+ final User user1 = userManager.createUser("test", "test 1 name", "test1(a)example.com",
+ "some password", "en", "GB", "GMT", true);
+ persist(user1);
+ final User user2 = userManager.createUser("test", "test 1 name", "test1(a)example.com",
+ "some password", "en", "GB", "GMT", true);
+ persist(user2);
+ }
- @Test(expected = InvalidStateException.class)
- public void userNameLengthIncorrect() {
- user = new User("test1", "te", "test(a)example.com", "some passwd", "diggest".getBytes(), "salt".getBytes(),
- english, gb, getTimeZone());
- persist(user);
- }
+ @Test(expected = InvalidStateException.class)
+ public void userNameLengthIncorrect() {
+ user = new User("test1", "te", "test(a)example.com", "some passwd", "diggest".getBytes(),
+ "salt".getBytes(), english, gb, getTimeZone());
+ persist(user);
+ }
- @Test
- public void userSearch() throws Exception, ParseException {
- userManager.reIndex();
- final SearchResult<User> result = userManager.search(USER_SHORT_NAME);
- assertEquals(1, result.getSize());
- assertEquals(USER_SHORT_NAME, result.getList().get(0).getShortName());
- rollbackTransaction();
- }
+ @Test
+ public void userSearch() throws Exception, ParseException {
+ userManager.reIndex();
+ final SearchResult<User> result = userManager.search(USER_SHORT_NAME);
+ assertEquals(1, result.getSize());
+ assertEquals(USER_SHORT_NAME, result.getList().get(0).getShortName());
+ rollbackTransaction();
+ }
- @Test(expected = InvalidStateException.class)
- public void userShortNameIncorrect() {
- user = new User("test1A", "test1 name", "test(a)example.com", "some passwd", "diggest".getBytes(),
- "salt".getBytes(), english, gb, getTimeZone());
- persist(user);
- }
+ @Test(expected = InvalidStateException.class)
+ public void userShortNameIncorrect() {
+ user = new User("test1A", "test1 name", "test(a)example.com", "some passwd", "diggest".getBytes(),
+ "salt".getBytes(), english, gb, getTimeZone());
+ persist(user);
+ }
- @Test
- public void visibilityPersist() {
- user = new User("test1", "test1 name", "test(a)example.com", "some passwd", "somediggest".getBytes(),
- "some salt".getBytes(), english, gb, getTimeZone());
- for (final UserSNetVisibility visibility : UserSNetVisibility.values()) {
- user.setSNetVisibility(visibility);
- persist(user);
- assertEquals(user.getSNetVisibility(), visibility);
- }
+ @Test
+ public void visibilityPersist() {
+ user = new User("test1", "test1 name", "test(a)example.com", "some passwd", "somediggest".getBytes(),
+ "some salt".getBytes(), english, gb, getTimeZone());
+ for (final UserSNetVisibility visibility : UserSNetVisibility.values()) {
+ user.setSNetVisibility(visibility);
+ persist(user);
+ assertEquals(user.getSNetVisibility(), visibility);
}
+ }
}
Modified: trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java 2011-08-13 15:59:10 UTC (rev 1493)
+++ trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java 2011-08-14 01:21:47 UTC (rev 1494)
@@ -20,6 +20,7 @@
package cc.kune.wave.server;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -51,6 +52,29 @@
ParticipantUtils participantUtils;
@Test
+ public void addAndRemoveParticipant() throws IOException {
+ doLogin();
+ final String whoDels = getSiteAdminShortName();
+ final WaveRef waveletName = createTestWave();
+ assertNotNull(waveletName);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), whoDels, NEW_PARTICIPANT);
+ final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchWavelet);
+ assertEquals(2, fetchWavelet.getParticipants().size());
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
+ assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
+ manager.delParticipants(waveletName, whoDels, NEW_PARTICIPANT);
+ final Wavelet fetchDelWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
+ assertNotNull(fetchDelWavelet);
+ assertEquals(1, fetchDelWavelet.getParticipants().size());
+ assertTrue(manager.isParticipant(fetchDelWavelet, getSiteAdminShortName()));
+ assertFalse(manager.isParticipant(fetchDelWavelet, NEW_PARTICIPANT));
+ manager.addParticipants(waveletName, getSiteAdminShortName(), whoDels, NEW_PARTICIPANT);
+ // Del all
+ manager.delParticipants(waveletName, whoDels, getSiteAdminShortName(), NEW_PARTICIPANT);
+ }
+
+ @Test
public void addGadget() throws DefaultException, IOException {
doLogin();
final WaveRef waveletName = createTestWave();
@@ -66,8 +90,8 @@
final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
assertNotNull(fetchWavelet);
assertEquals(2, fetchWavelet.getParticipants().size());
- manager.isParticipant(fetchWavelet, NEW_PARTICIPANT);
- manager.isParticipant(fetchWavelet, "newparti");
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
+ assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
}
@Test
@@ -84,8 +108,8 @@
final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
assertNotNull(fetchWavelet);
assertEquals(2, fetchWavelet.getParticipants().size());
- manager.isParticipant(fetchWavelet, NEW_PARTICIPANT);
- manager.isParticipant(fetchWavelet, "newparti");
+ assertTrue(manager.isParticipant(fetchWavelet, NEW_PARTICIPANT));
+ assertTrue(manager.isParticipant(fetchWavelet, getSiteAdminShortName()));
}
@Test
1
0
[kune issues] #100: Implement improvements suggested by the usability report
by kune issues 13 Aug '11
by kune issues 13 Aug '11
13 Aug '11
#100: Implement improvements suggested by the usability report
--------------------------+-------------------------------------------------
Reporter: vjrj | Owner: vjrj
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Group space | Version:
Resolution: | Keywords:
Blocking: | Blockedby:
--------------------------+-------------------------------------------------
http://kune.ourproject.org/2011/08/kune-usability-report/
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/100>
kune issues <http://kune.ourproject.org/issues/>
1
0
#99: Add a recovery password functionality
--------------------------+-------------------------------------------------
Reporter: vjrj | Owner: vjrj
Type: enhancement | Status: new
Priority: major | Milestone:
Component: Common | Version:
Resolution: | Keywords:
Blocking: | Blockedby:
--------------------------+-------------------------------------------------
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/99>
kune issues <http://kune.ourproject.org/issues/>
1
0
Re: [kune-commits] [kune issues] #94: Registration: emails not timely going out
by kune issues 13 Aug '11
by kune issues 13 Aug '11
13 Aug '11
#94: Registration: emails not timely going out
-------------------------+--------------------------------------------------
Reporter: jlpoole | Owner: vjrj
Type: defect | Status: new
Priority: major | Milestone:
Component: Server side | Version:
Keywords: email | Blocking:
Blockedby: |
-------------------------+--------------------------------------------------
Comment(by vjrj):
Email notifications are not ready at the moment.
We are working on that.
Thanks for the report.
--
Ticket URL: <http://kune.ourproject.org/issues/ticket/94#comment:>
kune issues <http://kune.ourproject.org/issues/>
1
0
Author: vjrj_
Date: 2011-08-13 17:59:10 +0200 (Sat, 13 Aug 2011)
New Revision: 1493
Added:
trunk/src/main/java/cc/kune/gspace/client/actions/RefreshCurrentStateAction.java
trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java
trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java
trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java
trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconMenuItem.java
trunk/src/main/java/cc/kune/lists/client/actions/OptionsListMenu.java
trunk/src/main/java/cc/kune/lists/client/actions/RefreshListMenuItem.java
trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessAction.java
trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessMenuItem.java
trunk/src/main/java/cc/kune/lists/client/actions/SubscriteToListAction.java
trunk/src/main/java/cc/kune/lists/client/rpc/
trunk/src/main/java/cc/kune/lists/client/rpc/ListsService.java
trunk/src/main/java/cc/kune/lists/client/rpc/ListsServiceAsync.java
trunk/src/main/java/cc/kune/lists/server/rpc/
trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveUtils.java
trunk/src/test/java/cc/kune/lists/server/ListsServiceTest.java
Removed:
trunk/src/main/java/cc/kune/lists/client/actions/NewWaveIconBtn.java
trunk/src/main/java/cc/kune/lists/client/actions/NewWaveMenuItem.java
Modified:
trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java
trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
trunk/src/main/java/cc/kune/core/server/auth/Authorizated.java
trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java
trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java
trunk/src/main/java/cc/kune/domain/GroupList.java
trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java
trunk/src/main/java/cc/kune/lists/client/ListsGinModule.java
trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java
trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java
trunk/src/main/java/cc/kune/lists/client/actions/NewListMenuItem.java
trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java
trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java
trunk/src/main/java/cc/kune/meets/shared/MeetingsConstants.java
trunk/src/main/java/cc/kune/wave/server/KuneAgent.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java
trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java
trunk/src/test/java/cc/kune/core/server/integration/IntegrationTest.java
trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java
trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java
trunk/src/test/java/cc/kune/lists/server/ListsServerToolTest.java
trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java
Log:
NEW - # 93: List tool
http://kune.ourproject.org/issues/ticket/93
Modified: trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/chat/client/actions/NewRoomBtn.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -42,7 +42,6 @@
import com.google.inject.Provider;
public class NewRoomBtn extends ButtonDescriptor {
-
public static class NewRoomAction extends RolAction {
private static final String CANCEL_ID = "k-nrbt-cancel";
@@ -91,7 +90,8 @@
final String groupShortName = session.getCurrentState().getGroup().getShortName();
contentService.get().addRoom(session.getUserHash(),
session.getContainerState().getRootContainer().getStateToken(),
- groupShortName + "-" + diag.getText(), new AsyncCallbackSimple<StateContainerDTO>() {
+ groupShortName + "-" + diag.getTextFieldValue(),
+ new AsyncCallbackSimple<StateContainerDTO>() {
@Override
public void onSuccess(final StateContainerDTO state) {
stateManager.setRetrievedStateAndGo(state);
Modified: trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/common/client/ui/dialogs/PromptTopDialog.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -25,14 +25,15 @@
public static class Builder extends BasicTopDialog.Builder {
- private boolean allowBlank;
- private int maxLength;
+ private boolean allowBlank = false;
+ private int maxLength = 0;
private String maxLengthText;
- private int minLength;
+ private int minLength = 0;
private String minLengthText;
private String regex;
private String regexText;
private String textboxId;
+ private int width = 0;
public Builder(final String dialogId, final String promptText, final boolean autohide,
final boolean modal) {
@@ -85,6 +86,12 @@
this.textboxId = textboxId;
return this;
}
+
+ @Override
+ public Builder width(final int width) {
+ this.width = width;
+ return this;
+ }
}
private final TextField<String> textField;
@@ -97,8 +104,15 @@
textField.getMessages().setMinLengthText(builder.minLengthText);
textField.getMessages().setMaxLengthText(builder.maxLengthText);
textField.setId(builder.textboxId);
- textField.setMinLength(builder.minLength);
- textField.setMaxLength(builder.maxLength);
+ if (builder.width != 0) {
+ textField.setWidth(builder.width);
+ }
+ if (builder.minLength != 0) {
+ textField.setMinLength(builder.minLength);
+ }
+ if (builder.maxLength != 0) {
+ textField.setMaxLength(builder.maxLength);
+ }
textField.setAllowBlank(builder.allowBlank);
super.getInnerPanel().add(textField);
}
@@ -107,7 +121,7 @@
textField.focus();
}
- public String getText() {
+ public String getTextFieldValue() {
return textField.getValue();
}
@@ -115,7 +129,7 @@
return textField.isValid();
}
- public void setText(final String text) {
+ public void setTextFieldValue(final String text) {
textField.setValue(text);
}
Modified: trunk/src/main/java/cc/kune/core/server/KuneRackModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/core/server/KuneRackModule.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -55,6 +55,7 @@
import cc.kune.core.server.rest.TestJSONService;
import cc.kune.core.server.rest.UserJSONService;
import cc.kune.docs.server.DocumentServerModule;
+import cc.kune.lists.client.rpc.ListsService;
import cc.kune.lists.server.ListsServerModule;
import cc.kune.meets.server.MeetingServerModule;
import cc.kune.tasks.server.TaskServerModule;
@@ -140,7 +141,7 @@
new ForwardFilter("/ws/ws.html"));
builder.installGWTServices("^/ws/", SiteService.class, GroupService.class, ContentService.class,
- UserService.class, SocialNetworkService.class, I18nService.class);
+ UserService.class, SocialNetworkService.class, I18nService.class, ListsService.class);
builder.installRESTServices("^/ws/json/", TestJSONService.class, GroupJSONService.class,
UserJSONService.class, I18nTranslationJSONService.class, ContentJSONService.class);
builder.installServlet("^/ws/servlets/", FileUploadManager.class, FileDownloadManager.class,
Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -97,6 +97,8 @@
import cc.kune.core.server.xmpp.XmppManagerDefault;
import cc.kune.core.shared.i18n.I18nTranslationService;
import cc.kune.domain.SocialNetwork;
+import cc.kune.lists.client.rpc.ListsService;
+import cc.kune.lists.server.rpc.ListsRPC;
import cc.kune.wave.server.KuneWaveManager;
import cc.kune.wave.server.KuneWaveManagerDefault;
import cc.kune.wave.server.ParticipantUtils;
@@ -141,6 +143,7 @@
bind(UserService.class).to(UserRPC.class);
bind(SocialNetworkService.class).to(SocialNetworkRPC.class);
bind(I18nService.class).to(I18nRPC.class);
+ bind(ListsService.class).to(ListsRPC.class);
}
private void bindServices() {
Modified: trunk/src/main/java/cc/kune/core/server/auth/Authorizated.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/auth/Authorizated.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/core/server/auth/Authorizated.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -28,26 +28,27 @@
/**
* Use in RPC methods, for instance: <code>
- * Authorizated(authLevelRequired = AuthLevelRequired.COLLAB, checkContent = true) </code>
+ * Authorizated({@link #accessRolRequired} = {@link AccessRol#Administrator}, {@link #mustCheckMembership} = true) </code>
*
- * The first parameter in the method must be the userHash, the second the group
- * shortName, and if you want to check also the content access, the 3rd
- * parameter must be a content id (string)
+ * The first parameter in the method must be the userHash and if you want to
+ * check also the second parameter should be the token of the Content (use
+ * {@link ActionLevel#content}) or Container ({@link ActionLevel#container})
+ * etc.
*
*/
@BindingAnnotation
@Retention(RetentionPolicy.RUNTIME)
public @interface Authorizated {
- AccessRol accessRolRequired() default AccessRol.Viewer;
+ AccessRol accessRolRequired() default AccessRol.Viewer;
- /**
- * If the action is over a "group", "tool", "container" or over the content.
- *
- * @return
- */
- ActionLevel actionLevel() default ActionLevel.content;
+ /**
+ * If the action is over a "group", "tool", "container" or over the content.
+ *
+ * @return
+ */
+ ActionLevel actionLevel() default ActionLevel.content;
- boolean mustCheckMembership() default true;
+ boolean mustCheckMembership() default true;
}
Modified: trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/core/server/content/ContentManagerDefault.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -29,7 +29,6 @@
import org.apache.lucene.queryParser.MultiFieldQueryParser;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
-import org.waveprotocol.wave.model.waveref.InvalidWaveRefException;
import org.waveprotocol.wave.model.waveref.WaveRef;
import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder;
@@ -58,6 +57,7 @@
import cc.kune.domain.finders.I18nLanguageFinder;
import cc.kune.domain.finders.UserFinder;
import cc.kune.wave.server.KuneWaveManager;
+import cc.kune.wave.server.KuneWaveUtils;
import cc.kune.wave.server.ParticipantUtils;
import com.google.inject.Inject;
@@ -107,8 +107,8 @@
public void addParticipant(final User user, final Long contentId, final String participant) {
final Content content = finder.getContent(contentId);
if (content.isWave()) {
- kuneWaveManager.addParticipant(getWaveRef(content), content.getAuthors().get(0).getShortName(),
- user.getShortName(), participant);
+ kuneWaveManager.addParticipants(KuneWaveUtils.getWaveRef(content),
+ content.getAuthors().get(0).getShortName(), user.getShortName(), participant);
}
}
@@ -183,14 +183,6 @@
}
}
- private WaveRef getWaveRef(final Content content) {
- try {
- return JavaWaverefEncoder.decodeWaveRefFromPath(String.valueOf(content.getWaveId()));
- } catch (final InvalidWaveRefException e) {
- throw new DefaultException("Error getting the wave");
- }
- }
-
@Override
public Content moveContent(final Content content, final Container newContainer) {
if (newContainer.equals(content.getContainer())) {
@@ -248,7 +240,7 @@
content.getLastRevision().setTitle(newTitleWithoutNL);
if (content.isWave()) {
final String author = content.getAuthors().get(0).getShortName();
- kuneWaveManager.setTitle(getWaveRef(content), newTitle, author);
+ kuneWaveManager.setTitle(KuneWaveUtils.getWaveRef(content), newTitle, author);
}
setModifiedTime(content);
return content;
Modified: trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/core/server/rpc/ContentRPC.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -249,12 +249,20 @@
return getUserSession().getUser();
}
- private StateContainerDTO getState(final User user, final Container container) {
+ public StateContainerDTO getState(final Container container) {
+ return getState(getCurrentUser(), container);
+ }
+
+ public StateContentDTO getState(final Content content) {
+ return getState(getCurrentUser(), content);
+ }
+
+ public StateContainerDTO getState(final User user, final Container container) {
final StateContainer state = stateService.create(user, container);
return mapState(state, user);
}
- private StateContentDTO getState(final User user, final Content content) {
+ public StateContentDTO getState(final User user, final Content content) {
final StateContent state = stateService.create(user, content);
return mapState(state, user);
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/core/shared/dto/GroupDTO.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -121,11 +121,12 @@
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + (defaultLicense == null ? 0 : defaultLicense.hashCode());
- result = prime * result + (id == null ? 0 : id.hashCode());
- result = prime * result + (longName == null ? 0 : longName.hashCode());
+ // result = prime * result + (defaultLicense == null ? 0 :
+ // defaultLicense.hashCode());
+ // result = prime * result + (id == null ? 0 : id.hashCode());
+ // result = prime * result + (longName == null ? 0 : longName.hashCode());
result = prime * result + (shortName == null ? 0 : shortName.hashCode());
- result = prime * result + (groupType == null ? 0 : groupType.hashCode());
+ // result = prime * result + (groupType == null ? 0 : groupType.hashCode());
return result;
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -38,6 +38,17 @@
this.list = list;
}
+ public boolean checkIfIncludes(final GroupDTO group, final String mode) {
+ if (mode.equals(NOBODY)) {
+ return false;
+ }
+ if (mode.equals(EVERYONE)) {
+ return true;
+ }
+ boolean contains = list.contains(group);
+ return contains;
+ }
+
public Set<GroupDTO> getList() {
return list;
}
@@ -46,6 +57,10 @@
return mode;
}
+ public boolean includes(final GroupDTO group) {
+ return checkIfIncludes(group, mode);
+ }
+
public void setList(final Set<GroupDTO> list) {
this.list = list;
}
Modified: trunk/src/main/java/cc/kune/domain/GroupList.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/GroupList.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/domain/GroupList.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -68,12 +68,8 @@
}
public void add(final Group group) {
- // No group duplicate
+ list.add(group);
// TODO: Get this outside Domain?
- if (!list.contains(group)) {
- list.add(group);
- }
- // TODO: Get this outside Domain?
if (getMode() == GroupListMode.NOBODY) {
setMode(GroupListMode.NORMAL);
}
@@ -90,6 +86,10 @@
}
}
+ public void clear() {
+ list.clear();
+ }
+
public ArrayList<Group> duplicate() {
return new ArrayList<Group>(list);
}
Modified: trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/RefreshContentMenuItem.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -19,36 +19,18 @@
*/
package cc.kune.gspace.client.actions;
-import cc.kune.common.client.actions.AbstractExtendedAction;
-import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.client.state.StateManager;
import cc.kune.core.shared.i18n.I18nTranslationService;
import com.google.inject.Inject;
public class RefreshContentMenuItem extends MenuItemDescriptor {
- public static class GoParentContainerAction extends AbstractExtendedAction {
-
- private final StateManager stateManager;
-
- @Inject
- public GoParentContainerAction(final StateManager stateManager) {
- this.stateManager = stateManager;
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- stateManager.refreshCurrentStateWithoutCache();
- }
-
- }
-
@Inject
- public RefreshContentMenuItem(final I18nTranslationService i18n, final GoParentContainerAction action,
- final ContentViewerOptionsMenu optionsMenu, final NavResources res) {
+ public RefreshContentMenuItem(final I18nTranslationService i18n,
+ final RefreshCurrentStateAction action, final ContentViewerOptionsMenu optionsMenu,
+ final NavResources res) {
super(action);
this.withText(i18n.t("Reload current page")).withIcon(res.refresh()).withParent(optionsMenu, false);
}
Added: trunk/src/main/java/cc/kune/gspace/client/actions/RefreshCurrentStateAction.java
===================================================================
--- trunk/src/main/java/cc/kune/gspace/client/actions/RefreshCurrentStateAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/gspace/client/actions/RefreshCurrentStateAction.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,23 @@
+package cc.kune.gspace.client.actions;
+
+import cc.kune.common.client.actions.AbstractExtendedAction;
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.core.client.state.StateManager;
+
+import com.google.inject.Inject;
+
+public class RefreshCurrentStateAction extends AbstractExtendedAction {
+
+ private final StateManager stateManager;
+
+ @Inject
+ public RefreshCurrentStateAction(final StateManager stateManager) {
+ this.stateManager = stateManager;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ stateManager.refreshCurrentStateWithoutCache();
+ }
+
+}
\ No newline at end of file
Modified: trunk/src/main/java/cc/kune/lists/client/ListsGinModule.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/ListsGinModule.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/client/ListsGinModule.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -22,11 +22,13 @@
import cc.kune.common.client.ExtendedGinModule;
import cc.kune.lists.client.actions.ListsClientActions;
import cc.kune.lists.client.actions.ListsNewMenu;
+import cc.kune.lists.client.actions.OptionsListMenu;
public class ListsGinModule extends ExtendedGinModule {
@Override
protected void configure() {
+ s(OptionsListMenu.class);
s(ListsNewMenu.class);
s(ListsClientTool.class);
s(ListsClientActions.class);
Modified: trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/client/actions/ListsClientActions.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -20,8 +20,8 @@
package cc.kune.lists.client.actions;
import static cc.kune.lists.shared.ListsConstants.TYPE_LIST;
+import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
import static cc.kune.lists.shared.ListsConstants.TYPE_ROOT;
-import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
import cc.kune.chat.client.actions.ChatAboutContentBtn;
import cc.kune.core.client.actions.ActionRegistryByType;
import cc.kune.core.client.i18n.I18nUITranslationService;
@@ -31,9 +31,7 @@
import cc.kune.core.client.state.StateManager;
import cc.kune.gspace.client.actions.AbstractFoldableToolActions;
import cc.kune.gspace.client.actions.ActionGroups;
-import cc.kune.gspace.client.actions.ContentViewerOptionsMenu;
import cc.kune.gspace.client.actions.ParticipateInContentBtn;
-import cc.kune.gspace.client.actions.RefreshContentMenuItem;
import cc.kune.gspace.client.actions.SetAsHomePageMenuItem;
import com.google.inject.Inject;
@@ -50,11 +48,13 @@
@Inject
public ListsClientActions(final I18nUITranslationService i18n, final Session session,
final StateManager stateManager, final ActionRegistryByType registry, final CoreResources res,
- final Provider<GoParentFolderBtn> folderGoUp, final Provider<NewWaveMenuItem> newWaveItem,
- final Provider<NewWaveIconBtn> newWaveIconBtn, final Provider<NewListMenuItem> newListMenuItem,
- final Provider<NewListBtn> newListBtn, final Provider<OpenFolderMenuItem> openContentMenuItem,
- final Provider<RefreshContentMenuItem> refresh, final Provider<SubscribeToListBtn> subscribeBtn,
- final Provider<ContentViewerOptionsMenu> optionsMenuContent,
+ final Provider<GoParentFolderBtn> folderGoUp, final Provider<NewListPostIconMenuItem> newPostItem,
+ final Provider<NewListPostIconBtn> newPostIconBtn,
+ final Provider<NewListMenuItem> newListMenuItem, final Provider<NewListBtn> newListBtn,
+ final Provider<OpenFolderMenuItem> openContentMenuItem,
+ final Provider<RefreshListMenuItem> refresh, final Provider<SubscribeToListBtn> subscribeBtn,
+ final Provider<OptionsListMenu> optionsMenuContent,
+ final Provider<SetListOpenessMenuItem> listOpenessMenuItem,
final Provider<ParticipateInContentBtn> participateBtn, final ListsNewMenu listNewMenu,
final NewMenusForTypeIdsRegistry newMenusRegistry, final Provider<ChatAboutContentBtn> chatAbout,
final Provider<DelListMenuItem> delFolderMenuItem,
@@ -64,8 +64,9 @@
actionsRegistry.addAction(ActionGroups.TOOLBAR, listNewMenu, containers);
actionsRegistry.addAction(ActionGroups.TOOLBAR, refresh, all);
actionsRegistry.addAction(ActionGroups.TOOLBAR, subscribeBtn, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOOLBAR, newWaveItem, containersNoRoot);
- actionsRegistry.addAction(ActionGroups.TOOLBAR, newWaveIconBtn, noRoot);
+ actionsRegistry.addAction(ActionGroups.TOOLBAR, listOpenessMenuItem, containersNoRoot);
+ actionsRegistry.addAction(ActionGroups.TOOLBAR, newPostItem, containersNoRoot);
+ actionsRegistry.addAction(ActionGroups.TOOLBAR, newPostIconBtn, noRoot);
actionsRegistry.addAction(ActionGroups.TOOLBAR, newListMenuItem, TYPE_ROOT);
actionsRegistry.addAction(ActionGroups.TOOLBAR, newListBtn, TYPE_ROOT);
actionsRegistry.addAction(ActionGroups.TOOLBAR, folderGoUp, contents);
Added: trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListAction.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,90 @@
+package cc.kune.lists.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog.Builder;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.state.ContentCache;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.gspace.client.viewers.FolderViewerPresenter;
+import cc.kune.lists.client.rpc.ListsServiceAsync;
+import cc.kune.lists.shared.ListsConstants;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class NewListAction extends RolAction {
+ private static final String CANCEL_ID = "k-nla-cancel";
+ private static final String CREATE_ID = "k-nla-create";
+ private static final String ID = "k-nla-dialog";
+ private static final String TEXTBOX_ID = "k-nla-textbox";
+
+ private final ContentCache cache;
+ private final FolderViewerPresenter folderViewer;
+ private final I18nTranslationService i18n;
+ private final Provider<ListsServiceAsync> listsService;
+ private final Session session;
+ private final StateManager stateManager;
+
+ @Inject
+ public NewListAction(final Session session, final StateManager stateManager,
+ final I18nTranslationService i18n, final Provider<ListsServiceAsync> listsService,
+ final ContentCache cache, final FolderViewerPresenter folderViewer) {
+ super(AccessRolDTO.Administrator, true);
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.listsService = listsService;
+ this.cache = cache;
+ this.folderViewer = folderViewer;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ final Builder builder = new PromptTopDialog.Builder(ID, "Name of the new list?", false, true);
+ builder.width("300px").height("50px").firstButtonTitle(i18n.t("Create")).sndButtonTitle(
+ i18n.t("Cancel")).firstButtonId(CREATE_ID).sndButtonId(CANCEL_ID).width(270);
+ builder.textboxId(TEXTBOX_ID);
+ final PromptTopDialog diag = builder.build();
+ diag.showCentered();
+ diag.focusOnTextBox();
+ diag.getSecondBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ diag.hide();
+ }
+ });
+ diag.getFirstBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ NotifyUser.showProgressProcessing();
+ diag.hide();
+ listsService.get().createList(session.getUserHash(), session.getCurrentStateToken(),
+ diag.getTextFieldValue(), ListsConstants.TYPE_LIST, true,
+ new AsyncCallbackSimple<StateContainerDTO>() {
+ @Override
+ public void onSuccess(final StateContainerDTO state) {
+ stateManager.setRetrievedStateAndGo(state);
+ NotifyUser.hideProgress();
+
+ NotifyUser.info(i18n.t("List created"));
+ folderViewer.highlightTitle();
+ }
+ });
+ cache.removeContent(session.getCurrentStateToken());
+ }
+ });
+
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListBtn.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -19,20 +19,19 @@
*/
package cc.kune.lists.client.actions;
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
import cc.kune.core.client.resources.nav.NavResources;
import cc.kune.core.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.actions.NewContainerBtn;
-import cc.kune.lists.shared.ListsConstants;
import com.google.inject.Inject;
-public class NewListBtn extends NewContainerBtn {
+public class NewListBtn extends ButtonDescriptor {
@Inject
- public NewListBtn(final I18nTranslationService i18n, final NewContainerAction action,
- final NavResources res) {
- super(i18n, action, res.listadd(), i18n.t("New list"), i18n.t("Create a new list"),
- i18n.t("New list"), ListsConstants.TYPE_LIST);
+ public NewListBtn(final I18nTranslationService i18n, final NewListAction action, final NavResources res) {
+ super(action);
+ withText(i18n.t("New list")).withToolTip(i18n.t("Create a new list")).withIcon(res.listadd()).withStyles(
+ "k-def-docbtn, k-fl");
}
}
Modified: trunk/src/main/java/cc/kune/lists/client/actions/NewListMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListMenuItem.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListMenuItem.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -19,20 +19,22 @@
*/
package cc.kune.lists.client.actions;
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
import cc.kune.core.client.resources.nav.NavResources;
import cc.kune.core.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.actions.NewContainerMenuItem;
-import cc.kune.lists.shared.ListsConstants;
import com.google.inject.Inject;
-public class NewListMenuItem extends NewContainerMenuItem {
+public class NewListMenuItem extends MenuItemDescriptor {
@Inject
- public NewListMenuItem(final I18nTranslationService i18n, final NewContainerAction action,
+ public NewListMenuItem(final I18nTranslationService i18n, final NewListAction action,
final NavResources res, final ListsNewMenu newMenu) {
- super(i18n, action, res.listadd(), i18n.t("New list"), i18n.t("Create a list"), i18n.t("New list"),
- ListsConstants.TYPE_LIST, newMenu.get());
+ super(action);
+ setParent(newMenu.get(), false);
+ withText(i18n.t("New list")).withToolTip(i18n.t("Create a new list")).withIcon(res.listadd()).withStyles(
+ "k-def-docbtn, k-fl");
+
}
}
Added: trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListPostAction.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,100 @@
+package cc.kune.lists.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.notify.NotifyLevel;
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog;
+import cc.kune.common.client.ui.dialogs.PromptTopDialog.Builder;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.auth.SignIn;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.state.ContentCache;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.TokenUtils;
+import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.gspace.client.viewers.FolderViewerPresenter;
+import cc.kune.lists.client.rpc.ListsServiceAsync;
+
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+@Singleton
+public class NewListPostAction extends RolAction {
+ private static final String CANCEL_ID = "k-nlistpa-cancel";
+ private static final String CREATE_ID = "k-nlistpa-create";
+ private static final String ID = "k-nlistpa-dialog";
+ private static final String TEXTBOX_ID = "k-nlistpa-textbox";
+
+ private final ContentCache cache;
+ private final FolderViewerPresenter folderViewer;
+ private final I18nTranslationService i18n;
+ private final Provider<ListsServiceAsync> listsService;
+ private final Session session;
+ private final Provider<SignIn> signIn;
+ private final StateManager stateManager;
+
+ @Inject
+ public NewListPostAction(final Session session, final StateManager stateManager,
+ final I18nTranslationService i18n, final Provider<ListsServiceAsync> listsService,
+ final ContentCache cache, final FolderViewerPresenter folderViewer, final Provider<SignIn> signIn) {
+ super(AccessRolDTO.Viewer, false);
+ this.session = session;
+ this.stateManager = stateManager;
+ this.i18n = i18n;
+ this.listsService = listsService;
+ this.cache = cache;
+ this.folderViewer = folderViewer;
+ this.signIn = signIn;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ if (session.isLogged()) {
+ final Builder builder = new PromptTopDialog.Builder(ID, "Title of the new post?", false, true);
+ builder.width("300px").height("50px").firstButtonTitle(i18n.t("Post")).sndButtonTitle(
+ i18n.t("Cancel")).firstButtonId(CREATE_ID).sndButtonId(CANCEL_ID).width(270);
+ builder.textboxId(TEXTBOX_ID);
+ final PromptTopDialog diag = builder.build();
+ diag.showCentered();
+ diag.focusOnTextBox();
+ diag.getSecondBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ diag.hide();
+ }
+ });
+ diag.getFirstBtn().addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(final ClickEvent event) {
+ NotifyUser.showProgressProcessing();
+ diag.hide();
+ listsService.get().newPost(session.getUserHash(),
+ session.getCurrentStateToken().copy().clearDocument(), diag.getTextFieldValue(),
+ new AsyncCallbackSimple<StateContentDTO>() {
+ @Override
+ public void onSuccess(final StateContentDTO state) {
+ stateManager.setRetrievedStateAndGo(state);
+ NotifyUser.hideProgress();
+ NotifyUser.info(i18n.t("Post created. Edit it"));
+ folderViewer.highlightTitle();
+ }
+ });
+ cache.removeContent(session.getCurrentStateToken());
+ }
+ });
+ } else {
+ signIn.get().setErrorMessage(i18n.t("Sign in or create an account to susbscribe to this list"),
+ NotifyLevel.info);
+ stateManager.gotoHistoryToken(TokenUtils.addRedirect(SiteTokens.SIGNIN,
+ session.getCurrentStateToken().toString()));
+ }
+ }
+
+}
Copied: trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java (from rev 1491, trunk/src/main/java/cc/kune/lists/client/actions/NewWaveIconBtn.java)
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconBtn.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,39 @@
+/*
+ *
+ * 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.lists.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
+import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+
+public class NewListPostIconBtn extends ButtonDescriptor {
+
+ @Inject
+ public NewListPostIconBtn(final I18nTranslationService i18n, final NewListPostAction action,
+ final NavResources res, final GlobalShortcutRegister shorcutReg) {
+ super(action);
+ this.withText(i18n.t("New post")).withToolTip(i18n.t("Create a new post")).withIcon(res.newemail()).withStyles(
+ "k-def-docbtn, k-fl");
+ }
+
+}
Added: trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewListPostIconMenuItem.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,38 @@
+/*
+ *
+ * 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.lists.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+
+public class NewListPostIconMenuItem extends MenuItemDescriptor {
+
+ @Inject
+ public NewListPostIconMenuItem(final I18nTranslationService i18n, final NewListPostAction action,
+ final NavResources res, final GlobalShortcutRegister shorcutReg, final ListsNewMenu menu) {
+ super(menu.get(), false, action);
+ this.withText(i18n.t("New post")).withToolTip(i18n.t("Create a new post")).withIcon(res.newemail()).withStyles(
+ "k-def-docbtn, k-fr");
+ }
+}
Deleted: trunk/src/main/java/cc/kune/lists/client/actions/NewWaveIconBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewWaveIconBtn.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewWaveIconBtn.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -1,41 +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.lists.client.actions;
-
-import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
-import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.actions.NewContentAction;
-import cc.kune.gspace.client.actions.NewContentBtn;
-import cc.kune.lists.shared.ListsConstants;
-
-import com.google.inject.Inject;
-
-public class NewWaveIconBtn extends NewContentBtn {
-
- @Inject
- public NewWaveIconBtn(final I18nTranslationService i18n, final NewContentAction action,
- final NavResources res, final GlobalShortcutRegister shorcutReg) {
- super(i18n, action, res.newemail(), shorcutReg, "", i18n.t("Create a new post"), i18n.t("New post"),
- ListsConstants.TYPE_POST);
- withStyles("k-btn-min, k-fl");
- }
-
-}
Deleted: trunk/src/main/java/cc/kune/lists/client/actions/NewWaveMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/NewWaveMenuItem.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/client/actions/NewWaveMenuItem.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -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.lists.client.actions;
-
-import cc.kune.common.client.shortcuts.GlobalShortcutRegister;
-import cc.kune.core.client.resources.nav.NavResources;
-import cc.kune.core.shared.i18n.I18nTranslationService;
-import cc.kune.gspace.client.actions.NewContentAction;
-import cc.kune.gspace.client.actions.NewContentMenuItem;
-import cc.kune.lists.shared.ListsConstants;
-
-import com.google.inject.Inject;
-
-public class NewWaveMenuItem extends NewContentMenuItem {
-
- @Inject
- public NewWaveMenuItem(final I18nTranslationService i18n, final NewContentAction action,
- final NavResources res, final GlobalShortcutRegister shorcutReg, final ListsNewMenu listsNewMenu) {
- super(i18n, action, res.newemail(), shorcutReg, i18n.t("New post"), i18n.t("Create a new post"),
- i18n.t("New post"), ListsConstants.TYPE_POST, listsNewMenu.get());
- }
-
-}
Added: trunk/src/main/java/cc/kune/lists/client/actions/OptionsListMenu.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/OptionsListMenu.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/OptionsListMenu.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,36 @@
+/*
+ *
+ * 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.lists.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuDescriptor;
+import cc.kune.core.client.resources.CoreResources;
+
+import com.google.inject.Inject;
+
+public class OptionsListMenu extends MenuDescriptor {
+
+ @Inject
+ public OptionsListMenu(final CoreResources res) {
+ super();
+ this.withIcon(res.arrowdownsitebar()).withStyles(
+ "k-def-docbtn, k-fr, k-noborder, k-no-backimage, k-nobackcolor");
+ }
+
+}
Added: trunk/src/main/java/cc/kune/lists/client/actions/RefreshListMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/RefreshListMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/RefreshListMenuItem.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,38 @@
+/*
+ *
+ * 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.lists.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.core.client.resources.nav.NavResources;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.gspace.client.actions.RefreshCurrentStateAction;
+
+import com.google.inject.Inject;
+
+public class RefreshListMenuItem extends MenuItemDescriptor {
+
+ @Inject
+ public RefreshListMenuItem(final I18nTranslationService i18n, final RefreshCurrentStateAction action,
+ final OptionsListMenu optionsMenu, final NavResources res) {
+ super(action);
+ this.withText(i18n.t("Reload this")).withIcon(res.refresh()).withParent(optionsMenu, false);
+ }
+
+}
Added: trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessAction.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessAction.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,57 @@
+package cc.kune.lists.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.lists.client.rpc.ListsServiceAsync;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class SetListOpenessAction extends RolAction {
+
+ public static final String ISPUBLIC = "stla-ispublic";
+
+ private final I18nTranslationService i18n;
+ private final Provider<ListsServiceAsync> listService;
+ private final Session session;
+ private final StateManager stateManager;
+
+ @Inject
+ public SetListOpenessAction(final I18nTranslationService i18n, final StateManager stateManager,
+ final Session session, final Provider<ListsServiceAsync> listService) {
+ super(AccessRolDTO.Administrator, true);
+ this.i18n = i18n;
+ this.stateManager = stateManager;
+ this.session = session;
+ this.listService = listService;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ NotifyUser.showProgress();
+ final boolean setPublic = !isPublic();
+ listService.get().setPublic(session.getUserHash(), session.getCurrentStateToken(), setPublic,
+ new AsyncCallbackSimple<StateContainerDTO>() {
+ @Override
+ public void onSuccess(final StateContainerDTO result) {
+ NotifyUser.info(setPublic ? i18n.t("This list is now public")
+ : i18n.t("This list is now restricted to the public"));
+ stateManager.setRetrievedState(result);
+ stateManager.refreshCurrentState();
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+
+ private Boolean isPublic() {
+ return (Boolean) getValue(ISPUBLIC);
+ }
+
+}
Added: trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessMenuItem.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessMenuItem.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/SetListOpenessMenuItem.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,29 @@
+package cc.kune.lists.client.actions;
+
+import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor;
+import cc.kune.core.client.resources.CoreResources;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.shared.dto.GroupListDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+
+import com.google.inject.Inject;
+
+public class SetListOpenessMenuItem extends MenuItemDescriptor {
+
+ @Inject
+ public SetListOpenessMenuItem(final I18nTranslationService i18n, final SetListOpenessAction action,
+ final Session session, final CoreResources res, final OptionsListMenu menu) {
+ super(action);
+ setParent(menu, false);
+ final Boolean isPublic = session.getContainerState().getAccessLists().getViewers().getMode().equals(
+ GroupListDTO.EVERYONE);
+ action.putValue(SetListOpenessAction.ISPUBLIC, isPublic);
+ if (!isPublic) {
+ withText(i18n.t("Make this list public"));
+ withIcon(res.everybody());
+ } else {
+ withText(i18n.t("Make this list not public"));
+ withIcon(res.nobody());
+ }
+ }
+}
Modified: trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/client/actions/SubscribeToListBtn.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -1,40 +1,30 @@
package cc.kune.lists.client.actions;
-import cc.kune.common.client.actions.ActionEvent;
import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor;
-import cc.kune.common.client.notify.NotifyUser;
-import cc.kune.common.client.utils.TextUtils;
-import cc.kune.core.client.actions.RolAction;
import cc.kune.core.client.resources.CoreResources;
-import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.client.state.Session;
import cc.kune.core.shared.i18n.I18nTranslationService;
import com.google.inject.Inject;
public class SubscribeToListBtn extends ButtonDescriptor {
- public static class SubscriteToListAction extends RolAction {
-
- private final I18nTranslationService i18n;
-
- @Inject
- public SubscriteToListAction(final I18nTranslationService i18n) {
- super(AccessRolDTO.Editor, true);
- this.i18n = i18n;
- }
-
- @Override
- public void actionPerformed(final ActionEvent event) {
- NotifyUser.info(i18n.t(TextUtils.IN_DEVELOPMENT));
- }
-
- }
-
@Inject
public SubscribeToListBtn(final I18nTranslationService i18n, final SubscriteToListAction action,
- final CoreResources res) {
+ final Session session, final CoreResources res) {
super(action);
- withText(i18n.t("Subscribe")).withIcon(res.add()).withToolTip(
- i18n.t("Subscribe yourself to this list"));
+ final Boolean areYouMember = session.isLogged()
+ && session.getContainerState().getAccessLists().getEditors().getList().contains(
+ session.getCurrentUserInfo().getUserGroup());
+ action.putValue(SubscriteToListAction.ISMEMBER, areYouMember);
+ if (!areYouMember) {
+ withText(i18n.t("Subscribe"));
+ withIcon(res.add());
+ withToolTip(i18n.t("Subscribe to this list"));
+ } else {
+ withText(i18n.t("Unsubscribe"));
+ withIcon(res.remove());
+ withToolTip(i18n.t("Unsubscribe to this list"));
+ }
}
}
Added: trunk/src/main/java/cc/kune/lists/client/actions/SubscriteToListAction.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/actions/SubscriteToListAction.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/actions/SubscriteToListAction.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,89 @@
+package cc.kune.lists.client.actions;
+
+import cc.kune.common.client.actions.ActionEvent;
+import cc.kune.common.client.notify.ConfirmAskEvent;
+import cc.kune.common.client.notify.NotifyLevel;
+import cc.kune.common.client.notify.NotifyUser;
+import cc.kune.common.client.utils.OnAcceptCallback;
+import cc.kune.core.client.actions.RolAction;
+import cc.kune.core.client.auth.SignIn;
+import cc.kune.core.client.rpcservices.AsyncCallbackSimple;
+import cc.kune.core.client.state.Session;
+import cc.kune.core.client.state.SiteTokens;
+import cc.kune.core.client.state.StateManager;
+import cc.kune.core.client.state.TokenUtils;
+import cc.kune.core.shared.dto.AccessRolDTO;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.lists.client.rpc.ListsServiceAsync;
+
+import com.google.gwt.event.shared.EventBus;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+
+public class SubscriteToListAction extends RolAction {
+
+ public static final String ISMEMBER = "stla-ismember";
+
+ private final EventBus eventBus;
+ private final I18nTranslationService i18n;
+ private final Provider<ListsServiceAsync> listService;
+ private final Session session;
+ private final Provider<SignIn> signIn;
+ private final StateManager stateManager;
+
+ @Inject
+ public SubscriteToListAction(final Provider<SignIn> signIn, final I18nTranslationService i18n,
+ final StateManager stateManager, final Session session,
+ final Provider<ListsServiceAsync> listService, final EventBus eventBus) {
+ super(AccessRolDTO.Viewer, false);
+ this.signIn = signIn;
+ this.i18n = i18n;
+ this.stateManager = stateManager;
+ this.session = session;
+ this.listService = listService;
+ this.eventBus = eventBus;
+ }
+
+ @Override
+ public void actionPerformed(final ActionEvent event) {
+ if (session.isLogged()) {
+ if (isMember()) {
+ ConfirmAskEvent.fire(eventBus, i18n.t("Please confirm"), i18n.t("Are you sure?"), i18n.t("Yes"),
+ i18n.t("No"), null, null, new OnAcceptCallback() {
+ @Override
+ public void onSuccess() {
+ performAction();
+ }
+ });
+ } else {
+ performAction();
+ }
+ } else {
+ signIn.get().setErrorMessage(i18n.t("Sign in or create an account to susbscribe to this list"),
+ NotifyLevel.info);
+ stateManager.gotoHistoryToken(TokenUtils.addRedirect(SiteTokens.SIGNIN,
+ session.getCurrentStateToken().toString()));
+ }
+ }
+
+ private Boolean isMember() {
+ return (Boolean) getValue(ISMEMBER);
+ }
+
+ private void performAction() {
+ NotifyUser.showProgress();
+ final boolean subcribe = !isMember();
+ listService.get().subscribeToList(session.getUserHash(), session.getCurrentStateToken(),
+ Boolean.valueOf(subcribe), new AsyncCallbackSimple<StateContainerDTO>() {
+ @Override
+ public void onSuccess(final StateContainerDTO result) {
+ NotifyUser.info(subcribe ? i18n.t("Subscribed") : i18n.t("Unsubscribed"));
+ stateManager.setRetrievedState(result);
+ stateManager.refreshCurrentState();
+ NotifyUser.hideProgress();
+ }
+ });
+ }
+
+}
Added: trunk/src/main/java/cc/kune/lists/client/rpc/ListsService.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/rpc/ListsService.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/rpc/ListsService.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,22 @@
+package cc.kune.lists.client.rpc;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
+@RemoteServiceRelativePath("ListsService")
+public interface ListsService extends RemoteService {
+
+ StateContainerDTO createList(String hash, StateToken parentToken, String name, String description,
+ boolean isPublic);
+
+ public StateContentDTO newPost(final String userHash, final StateToken parentToken, final String title);
+
+ StateContainerDTO setPublic(String hash, StateToken token, Boolean isPublic);
+
+ StateContainerDTO subscribeToList(String hash, StateToken token, Boolean subscribe);
+
+}
\ No newline at end of file
Added: trunk/src/main/java/cc/kune/lists/client/rpc/ListsServiceAsync.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/rpc/ListsServiceAsync.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/client/rpc/ListsServiceAsync.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,23 @@
+package cc.kune.lists.client.rpc;
+
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public interface ListsServiceAsync {
+
+ void createList(String hash, StateToken parentToken, String name, String description,
+ boolean isPublic, AsyncCallback<StateContainerDTO> callback);
+
+ void newPost(String userHash, StateToken parentToken, String title,
+ AsyncCallback<StateContentDTO> callback);
+
+ void setPublic(String hash, StateToken token, Boolean isPublic,
+ AsyncCallback<StateContainerDTO> callback);
+
+ void subscribeToList(String hash, StateToken token, Boolean subscribe,
+ AsyncCallback<StateContainerDTO> callback);
+
+}
Modified: trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/lists/server/ListsServerTool.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -22,35 +22,77 @@
import static cc.kune.lists.shared.ListsConstants.NAME;
import static cc.kune.lists.shared.ListsConstants.ROOT_NAME;
import static cc.kune.lists.shared.ListsConstants.TYPE_LIST;
+import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
import static cc.kune.lists.shared.ListsConstants.TYPE_ROOT;
-import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Set;
import cc.kune.core.server.AbstractServerTool;
+import cc.kune.core.server.UserSession;
import cc.kune.core.server.content.ContainerManager;
import cc.kune.core.server.content.ContentManager;
import cc.kune.core.server.manager.ToolConfigurationManager;
import cc.kune.core.server.tool.ServerToolTarget;
+import cc.kune.core.shared.domain.ContentStatus;
import cc.kune.core.shared.i18n.I18nTranslationService;
+import cc.kune.domain.Container;
+import cc.kune.domain.Content;
import cc.kune.domain.Group;
import cc.kune.domain.User;
+import cc.kune.wave.server.KuneWaveManager;
+import cc.kune.wave.server.KuneWaveUtils;
import com.google.inject.Inject;
+import com.google.inject.Provider;
public class ListsServerTool extends AbstractServerTool {
+ private final Provider<UserSession> userSessionProvider;
+ private final KuneWaveManager waveManager;
+
@Inject
public ListsServerTool(final ContentManager contentManager, final ContainerManager containerManager,
- final ToolConfigurationManager configurationManager, final I18nTranslationService i18n) {
+ final ToolConfigurationManager configurationManager, final I18nTranslationService i18n,
+ final Provider<UserSession> userSessionProvider, final KuneWaveManager waveManager) {
super(NAME, ROOT_NAME, TYPE_ROOT, Arrays.asList(TYPE_POST), Arrays.asList(TYPE_LIST),
Arrays.asList(TYPE_LIST), Arrays.asList(TYPE_ROOT), contentManager, containerManager,
configurationManager, i18n, ServerToolTarget.forGroups);
+ this.userSessionProvider = userSessionProvider;
+ this.waveManager = waveManager;
}
+ private Group getUserGroup() {
+ return userSessionProvider.get().getUser().getUserGroup();
+ }
+
@Override
public Group initGroup(final User user, final Group group, final Object... otherVars) {
createRoot(group);
return group;
}
+
+ @Override
+ public void onCreateContent(final Content content, final Container parent) {
+ content.setStatus(ContentStatus.publishedOnline);
+ content.setPublishedOn(new Date());
+ final Set<Group> admins = parent.getAccessLists().getAdmins().getList();
+ final Set<Group> editors = parent.getAccessLists().getEditors().getList();
+ final ArrayList<String> members = new ArrayList<String>();
+ for (final Group admin : admins) {
+ members.add(admin.getShortName());
+ }
+ for (final Group editor : editors) {
+ members.add(editor.getShortName());
+ }
+ members.add(getUserGroup().getShortName());
+ Collections.sort(members);
+ waveManager.addParticipants(KuneWaveUtils.getWaveRef(content),
+ content.getAuthors().get(0).getShortName(), getUserGroup().getShortName(),
+ members.toArray(new String[members.size()]));
+ }
+
}
Added: trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java (rev 0)
+++ trunk/src/main/java/cc/kune/lists/server/rpc/ListsRPC.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,122 @@
+package cc.kune.lists.server.rpc;
+
+import cc.kune.core.client.errors.AccessViolationException;
+import cc.kune.core.server.UserSession;
+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.content.ContainerManager;
+import cc.kune.core.server.content.ContentUtils;
+import cc.kune.core.server.rpc.ContentRPC;
+import cc.kune.core.server.rpc.RPC;
+import cc.kune.core.shared.domain.AccessRol;
+import cc.kune.core.shared.domain.GroupListMode;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
+import cc.kune.domain.AccessLists;
+import cc.kune.domain.Container;
+import cc.kune.domain.Group;
+import cc.kune.lists.client.rpc.ListsService;
+import cc.kune.lists.shared.ListsConstants;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.persist.Transactional;
+
+public class ListsRPC implements ListsService, RPC {
+ private final ContainerManager contentManager;
+ private final ContentRPC contentRPC;
+ private final Provider<UserSession> userSessionProvider;
+
+ @Inject
+ public ListsRPC(final ContentRPC contentRPC, final Provider<UserSession> userSessionProvider,
+ final ContainerManager contentManager) {
+ this.contentRPC = contentRPC;
+ this.userSessionProvider = userSessionProvider;
+ this.contentManager = contentManager;
+ }
+
+ @Override
+ @Authenticated
+ @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.container)
+ @Transactional
+ public StateContainerDTO createList(final String userHash, final StateToken parentToken,
+ final String title, final String description, final boolean isPublic) {
+ final StateContainerDTO result = contentRPC.addFolder(userHash, parentToken, title,
+ ListsConstants.TYPE_LIST);
+ // Not public list, don't permit subscriptions neither view posts
+ return contentRPC.getState(setContainerAcl(result.getStateToken(), isPublic));
+ }
+
+ private Group getUserGroup() {
+ return userSessionProvider.get().getUser().getUserGroup();
+ }
+
+ @Override
+ @Authenticated
+ @Authorizated(accessRolRequired = AccessRol.Viewer, actionLevel = ActionLevel.container)
+ @Transactional
+ public StateContentDTO newPost(final String userHash, final StateToken parentToken, final String title) {
+ final StateContentDTO content = contentRPC.addContent(userHash, parentToken, title,
+ ListsConstants.TYPE_POST);
+ return content;
+ }
+
+ private Container setContainerAcl(final StateToken token, final boolean isPublic) {
+ final Container container = contentManager.find(ContentUtils.parseId(token.getFolder()));
+ final AccessLists acl = new AccessLists();
+ acl.getAdmins().setMode(GroupListMode.NORMAL);
+ acl.getAdmins().add(getUserGroup());
+ acl.getEditors().setMode(isPublic ? GroupListMode.EVERYONE : GroupListMode.NOBODY);
+ setViewersAcl(isPublic, acl);
+ contentManager.setAccessList(container, acl);
+ return container;
+ }
+
+ @Override
+ @Authenticated
+ @Authorizated(accessRolRequired = AccessRol.Administrator, actionLevel = ActionLevel.container)
+ @Transactional
+ public StateContainerDTO setPublic(final String hash, final StateToken token, final Boolean isPublic) {
+ final Container container = setPublicAcl(token, isPublic);
+ return contentRPC.getState(container);
+ }
+
+ private Container setPublicAcl(final StateToken token, final boolean isPublic) {
+ final Container container = contentManager.find(ContentUtils.parseId(token.getFolder()));
+ final AccessLists acl = container.getAccessLists();
+ setViewersAcl(isPublic, acl);
+ contentManager.setAccessList(container, acl);
+ return container;
+ }
+
+ private void setViewersAcl(final boolean isPublic, final AccessLists acl) {
+ acl.getViewers().clear();
+ acl.getViewers().setMode(isPublic ? GroupListMode.EVERYONE : GroupListMode.NOBODY);
+ }
+
+ @Override
+ @Authenticated
+ @Authorizated(accessRolRequired = AccessRol.Viewer, actionLevel = ActionLevel.container)
+ @Transactional
+ public StateContainerDTO subscribeToList(final String userHash, final StateToken token,
+ final Boolean subscribe) {
+ final Container container = contentManager.find(ContentUtils.parseId(token.getFolder()));
+ final AccessLists acl = container.getAccessLists();
+ if (subscribe) {
+ if (!acl.getAdmins().includes(getUserGroup())
+ && acl.getViewers().getMode().equals(GroupListMode.NOBODY)) {
+ // Not public list, don't permit subscriptions neither view posts
+ throw new AccessViolationException();
+ } else {
+ acl.getEditors().add(getUserGroup());
+ }
+ } else {
+ acl.getEditors().remove(getUserGroup());
+ }
+ contentManager.setAccessList(container, acl);
+ return contentRPC.getState(container);
+ }
+
+}
Modified: trunk/src/main/java/cc/kune/meets/shared/MeetingsConstants.java
===================================================================
--- trunk/src/main/java/cc/kune/meets/shared/MeetingsConstants.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/meets/shared/MeetingsConstants.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -22,7 +22,7 @@
public final class MeetingsConstants {
public static final String NAME = "meets";
- public static final String ROOT_NAME = "meets";
+ public static final String ROOT_NAME = "meetings";
public static final String TYPE_MEETING = NAME + "." + "meet";
public static final String TYPE_ROOT = NAME + "." + "root";
Modified: trunk/src/main/java/cc/kune/wave/server/KuneAgent.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneAgent.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/wave/server/KuneAgent.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -63,8 +63,8 @@
}
@Override
- public void addParticipant(final WaveRef waveName, final String author, final String userWhoAdd,
- final String newParticipant) {
+ public void addParticipants(final WaveRef waveName, final String author, final String userWhoAdd,
+ final String... newParticipants) {
// TODO Auto-generated method stub
}
Modified: trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveManager.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -33,7 +33,7 @@
void addGadget(WaveRef waveName, String author, String gadgetUrl);
- void addParticipant(WaveRef waveName, String author, String userWhoAdd, String newParticipant);
+ void addParticipants(WaveRef waveName, String author, String userWhoAdd, String... newParticipant);
WaveRef createWave(String message, ParticipantId participants);
Modified: trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveManagerDefault.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -186,22 +186,30 @@
}
@Override
- public void addParticipant(final WaveRef waveName, final String author, final String userWhoAdds,
- final String newLocalParticipant) {
+ public void addParticipants(final WaveRef waveName, final String author, final String userWhoAdds,
+ final String... newLocalParticipants) {
final Wavelet wavelet = fetchWave(waveName, author);
- final String newPartWithDomain = participantUtils.of(newLocalParticipant).toString();
- for (final String current : wavelet.getParticipants()) {
- if (current.equals(newPartWithDomain)) {
- // Current user is a participant already (issue #73)
- return;
+ final OperationQueue opQueue = new OperationQueue();
+
+ for (final String newLocalParticipant : newLocalParticipants) {
+ final String newPartWithDomain = participantUtils.of(newLocalParticipant).toString();
+ boolean mustAdd = true;
+ for (final String current : wavelet.getParticipants()) {
+ if (current.equals(newPartWithDomain)) {
+ // Current user is a participant already (issue #73)
+ mustAdd = false;
+ break;
+ }
}
+ if (mustAdd) {
+ opQueue.addParticipantToWavelet(wavelet, newPartWithDomain);
+ }
}
- final String whoAdd = wavelet.getParticipants().contains(participantUtils.of(userWhoAdds)) ? userWhoAdds
- : author;
- final OperationQueue opQueue = new OperationQueue();
- opQueue.addParticipantToWavelet(wavelet, newPartWithDomain);
- doOperation(whoAdd, opQueue, "add participant");
-
+ if (opQueue.getPendingOperations().size() > 0) {
+ final String whoAdd = wavelet.getParticipants().contains(participantUtils.of(userWhoAdds)) ? userWhoAdds
+ : author;
+ doOperation(whoAdd, opQueue, "add participant");
+ }
}
@Override
Added: trunk/src/main/java/cc/kune/wave/server/KuneWaveUtils.java
===================================================================
--- trunk/src/main/java/cc/kune/wave/server/KuneWaveUtils.java (rev 0)
+++ trunk/src/main/java/cc/kune/wave/server/KuneWaveUtils.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,18 @@
+package cc.kune.wave.server;
+
+import org.waveprotocol.wave.model.waveref.InvalidWaveRefException;
+import org.waveprotocol.wave.model.waveref.WaveRef;
+import org.waveprotocol.wave.util.escapers.jvm.JavaWaverefEncoder;
+
+import cc.kune.core.client.errors.DefaultException;
+import cc.kune.domain.Content;
+
+public class KuneWaveUtils {
+ public static WaveRef getWaveRef(final Content content) {
+ try {
+ return JavaWaverefEncoder.decodeWaveRefFromPath(String.valueOf(content.getWaveId()));
+ } catch (final InvalidWaveRefException e) {
+ throw new DefaultException("Error getting the wave");
+ }
+ }
+}
Modified: trunk/src/test/java/cc/kune/core/server/integration/IntegrationTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/IntegrationTest.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/test/java/cc/kune/core/server/integration/IntegrationTest.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -23,64 +23,64 @@
import java.io.IOException;
-
import cc.kune.core.client.errors.DefaultException;
import cc.kune.core.client.rpcservices.UserService;
import cc.kune.core.server.UserSession;
import cc.kune.core.server.properties.KuneBasicProperties;
+import cc.kune.core.shared.dto.UserInfoDTO;
import com.google.inject.Inject;
public abstract class IntegrationTest {
- @Inject
- KuneBasicProperties properties;
- @Inject
- protected UserSession session;
- protected String token;
- @Inject
- UserService userService;
+ @Inject
+ KuneBasicProperties properties;
+ @Inject
+ protected UserSession session;
+ protected String token;
+ @Inject
+ UserService userService;
- protected String doLogin() throws DefaultException, IOException {
- waveLogin();
- return userService.login(getSiteAdminShortName(), properties.getAdminPassword(), token).getUserHash();
- }
+ protected UserInfoDTO doLogin() throws DefaultException, IOException {
+ waveLogin();
+ return userService.login(getSiteAdminShortName(), properties.getAdminPassword(), token);
+ }
- protected String doLoginWithDummyUser() throws DefaultException, IOException {
- waveLogin();
- return userService.login("dummy", properties.getAdminPassword(), token).getUserHash();
- }
+ protected String doLoginWithDummyUser() throws DefaultException, IOException {
+ waveLogin();
+ return userService.login("dummy", properties.getAdminPassword(), token).getUserHash();
+ }
- protected void doLogout() throws DefaultException {
- userService.logout(getHash());
- }
+ protected void doLogout() throws DefaultException {
+ userService.logout(getHash());
+ }
- protected String getDefLicense() {
- return properties.getDefaultLicense();
- }
+ protected String getDefLicense() {
+ return properties.getDefaultLicense();
+ }
- protected String getDefSiteGroupName() {
- return properties.getDefaultSiteShortName();
- }
+ protected String getDefSiteGroupName() {
+ return properties.getDefaultSiteShortName();
+ }
- public String getHash() {
- return session.getHash();
- }
+ public String getHash() {
+ return session.getHash();
+ }
- protected String getSiteAdminShortName() {
- return properties.getAdminShortName();
- }
+ protected String getSiteAdminShortName() {
+ return properties.getAdminShortName();
+ }
- protected void waveLogin() throws IOException {
- token = "somesampletoken";
- // final ClientAuthenticator authenticator = new
- // ClientAuthenticator("http://localhost:8080"
- // + SessionManager.SIGN_IN_URL);
- // final HttpCookie cookie =
- // authenticator.authenticate("admin@localhost",
- // "easyeasy".toCharArray());
- // token = cookie.getValue();
- assertNotNull(token);
- }
+ protected void waveLogin() throws IOException {
+ token = "somesampletoken";
+ // final ClientAuthenticator authenticator = new
+ // ClientAuthenticator("http://localhost:8080"
+ // + SessionManager.SIGN_IN_URL);
+ // final HttpCookie cookie =
+ // authenticator.authenticate("admin@localhost",
+ // "easyeasy".toCharArray());
+ // token = cookie.getValue();
+ assertNotNull(token);
+ }
}
Modified: trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/test/java/cc/kune/core/server/integration/IntegrationTestHelper.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -30,6 +30,7 @@
import org.waveprotocol.box.server.waveserver.WaveServerImpl;
import org.waveprotocol.wave.federation.noop.NoOpFederationModule;
+import cc.kune.barters.server.BarterServerModule;
import cc.kune.chat.server.ChatServerModule;
import cc.kune.core.server.KunePersistenceService;
import cc.kune.core.server.PlatformServerModule;
@@ -37,6 +38,9 @@
import cc.kune.core.server.init.FinderRegistry;
import cc.kune.core.server.properties.PropertiesFileName;
import cc.kune.docs.server.DocumentServerModule;
+import cc.kune.lists.server.ListsServerModule;
+import cc.kune.meets.server.MeetingServerModule;
+import cc.kune.tasks.server.TaskServerModule;
import cc.kune.wave.server.CustomSettingsBinder;
import cc.kune.wiki.server.WikiServerModule;
@@ -59,9 +63,10 @@
final NoOpFederationModule federationModule = injector.getInstance(NoOpFederationModule.class);
final Injector childInjector = injector.createChildInjector(wavePersistModule,
FinderRegistry.init(new JpaPersistModule(TestConstants.PERSISTENCE_UNIT)),
- new RobotApiModule(), new PlatformServerModule(), new DocumentServerModule(),
- new ChatServerModule(), new ServerModule(false), federationModule, new WikiServerModule(),
- new AbstractModule() {
+ new ListsServerModule(), new RobotApiModule(), new PlatformServerModule(),
+ new DocumentServerModule(), new ChatServerModule(), new ServerModule(false), federationModule,
+ new WikiServerModule(), new TaskServerModule(), new BarterServerModule(),
+ new MeetingServerModule(), new AbstractModule() {
@Override
protected void configure() {
bindScope(SessionScoped.class, Scopes.SINGLETON);
Modified: trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/test/java/cc/kune/core/server/integration/content/ContentServiceGetTest.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -36,99 +36,100 @@
public class ContentServiceGetTest extends ContentServiceIntegrationTest {
- @Test
- public void contentOfUserWithNoHomePage() throws Exception {
- final String userHash = doLogin();
- final StateAbstractDTO response = contentService.getContent(userHash, new StateToken(getSiteAdminShortName()));
- assertTrue(response instanceof StateNoContentDTO);
- }
+ @Test
+ public void contentOfUserWithNoHomePage() throws Exception {
+ final String userHash = doLogin().getUserHash();
+ final StateAbstractDTO response = contentService.getContent(userHash, new StateToken(
+ getSiteAdminShortName()));
+ assertTrue(response instanceof StateNoContentDTO);
+ }
- @Test
- public void contentWithLoggedUserIsEditable() throws Exception {
- final String userHash = doLogin();
- final StateContentDTO response = (StateContentDTO) contentService.getContent(userHash,
- getSiteDefaultContent().getStateToken());
- assertNotNull(response.getContentRights());
- assertTrue(response.getContentRights().isEditable());
- assertTrue(response.getAccessLists().getAdmins().getList().size() == 1);
- }
+ @Test
+ public void contentWithLoggedUserIsEditable() throws Exception {
+ final String userHash = doLogin().getUserHash();
+ final StateContentDTO response = (StateContentDTO) contentService.getContent(userHash,
+ getSiteDefaultContent().getStateToken());
+ assertNotNull(response.getContentRights());
+ assertTrue(response.getContentRights().isEditable());
+ assertTrue(response.getAccessLists().getAdmins().getList().size() == 1);
+ }
- @Before
- public void create() {
- new IntegrationTestHelper(this);
- }
+ @Before
+ public void create() {
+ new IntegrationTestHelper(this);
+ }
- @Test
- public void defaultCountentShouldExist() throws Exception {
- final StateContentDTO content = (StateContentDTO) contentService.getContent(null, new StateToken());
- assertNotNull(content);
- assertNotNull(content.getGroup());
- assertNotNull(content.getContainer());
- assertNotNull(content.getContainer().getId());
- assertNotNull(content.getToolName());
- assertNotNull(content.getDocumentId());
- assertNotNull(content.getRateByUsers());
- assertNotNull(content.getRate());
- }
+ @Test
+ public void defaultCountentShouldExist() throws Exception {
+ final StateContentDTO content = (StateContentDTO) contentService.getContent(null, new StateToken());
+ assertNotNull(content);
+ assertNotNull(content.getGroup());
+ assertNotNull(content.getContainer());
+ assertNotNull(content.getContainer().getId());
+ assertNotNull(content.getToolName());
+ assertNotNull(content.getDocumentId());
+ assertNotNull(content.getRateByUsers());
+ assertNotNull(content.getRate());
+ }
- @Test
- public void defContentOfUserWithNoHomePage() throws Exception {
- final String userHash = doLogin();
- final StateAbstractDTO response = contentService.getContent(userHash, new StateToken());
- assertTrue(response.getStateToken().equals(getSiteDefaultContent().getStateToken()));
- }
+ @Test
+ public void defContentOfUserWithNoHomePage() throws Exception {
+ final String userHash = doLogin().getUserHash();
+ final StateAbstractDTO response = contentService.getContent(userHash, new StateToken());
+ assertTrue(response.getStateToken().equals(getSiteDefaultContent().getStateToken()));
+ }
- @Test
- public void noContentNotLogged() throws Exception {
- final StateContentDTO response = (StateContentDTO) contentService.getContent(null, new StateToken());
- assertNotNull(response);
- }
+ @Test
+ public void noContentNotLogged() throws Exception {
+ final StateContentDTO response = (StateContentDTO) contentService.getContent(null, new StateToken());
+ assertNotNull(response);
+ }
- @Test(expected = ContentNotFoundException.class)
- public void nonExistentContent() throws Exception {
- contentService.getContent(null, new StateToken("foo foo foo"));
- }
+ @Test(expected = ContentNotFoundException.class)
+ public void nonExistentContent() throws Exception {
+ contentService.getContent(null, new StateToken("foo foo foo"));
+ }
- @Test(expected = ContentNotFoundException.class)
- public void nonExistentContent2() throws Exception {
- contentService.getContent(null, new StateToken("site.foofoo"));
- }
+ @Test(expected = ContentNotFoundException.class)
+ public void nonExistentContent2() throws Exception {
+ contentService.getContent(null, new StateToken("site.foofoo"));
+ }
- @Test(expected = ContentNotFoundException.class)
- public void nonExistentContent3() throws Exception {
- contentService.getContent(null, new StateToken("site.docs.foofoo"));
- }
+ @Test(expected = ContentNotFoundException.class)
+ public void nonExistentContent3() throws Exception {
+ contentService.getContent(null, new StateToken("site.docs.foofoo"));
+ }
- @Test(expected = ContentNotFoundException.class)
- public void nonExistentContent4() throws Exception {
- final StateContainerDTO stateDTO = getSiteDefaultContent();
- contentService.getContent(null, stateDTO.getStateToken().copy().setDocument("dadaas"));
- }
+ @Test(expected = ContentNotFoundException.class)
+ public void nonExistentContent4() throws Exception {
+ final StateContainerDTO stateDTO = getSiteDefaultContent();
+ contentService.getContent(null, stateDTO.getStateToken().copy().setDocument("dadaas"));
+ }
- @Test(expected = ContentNotFoundException.class)
- public void nonExistentContent5() throws Exception {
- contentService.getContent(null, new StateToken("comm3.docs.19"));
- }
+ @Test(expected = ContentNotFoundException.class)
+ public void nonExistentContent5() throws Exception {
+ contentService.getContent(null, new StateToken("comm3.docs.19"));
+ }
- @Test
- public void notLoggedUserShouldNotEditDefaultDoc() throws Exception {
- final StateContentDTO content = (StateContentDTO) contentService.getContent(null, new StateToken());
- assertFalse(content.getContentRights().isAdministrable());
- assertFalse(content.getContentRights().isEditable());
- assertTrue(content.getContentRights().isVisible());
- assertFalse(content.getContainerRights().isAdministrable());
- assertFalse(content.getContainerRights().isEditable());
- assertTrue(content.getContainerRights().isVisible());
- }
+ @Test
+ public void notLoggedUserShouldNotEditDefaultDoc() throws Exception {
+ final StateContentDTO content = (StateContentDTO) contentService.getContent(null, new StateToken());
+ assertFalse(content.getContentRights().isAdministrable());
+ assertFalse(content.getContentRights().isEditable());
+ assertTrue(content.getContentRights().isVisible());
+ assertFalse(content.getContainerRights().isAdministrable());
+ assertFalse(content.getContainerRights().isEditable());
+ assertTrue(content.getContainerRights().isVisible());
+ }
- @Test
- public void unknownContent() throws Exception {
- final StateContainerDTO content = (StateContainerDTO) contentService.getContent(null, new StateToken(
- "site.docs"));
- assertNotNull(content);
- assertNotNull(content.getGroup());
- assertNotNull(content.getContainer());
- assertNotNull(content.getContainer().getId());
- assertNotNull(content.getToolName());
- }
+ @Test
+ public void unknownContent() throws Exception {
+ final StateContainerDTO content = (StateContainerDTO) contentService.getContent(null,
+ new StateToken("site.docs"));
+ assertNotNull(content);
+ assertNotNull(content.getGroup());
+ assertNotNull(content.getContainer());
+ assertNotNull(content.getContainer().getId());
+ assertNotNull(content.getToolName());
+ }
}
Modified: trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -20,6 +20,8 @@
package cc.kune.core.server.integration.socialnet;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import java.util.Set;
@@ -31,6 +33,7 @@
import cc.kune.core.server.integration.IntegrationTestHelper;
import cc.kune.core.server.manager.GroupManager;
import cc.kune.core.server.manager.SocialNetworkManager;
+import cc.kune.domain.AccessLists;
import cc.kune.domain.Group;
import com.google.inject.Inject;
@@ -54,6 +57,19 @@
}
@Test
+ public void testAdminAddTwice() throws Exception {
+ doLogin();
+ final Set<Group> result = groupFinder.findAdminInGroups(group.getId());
+ final AccessLists acl = group.getSocialNetwork().getAccessLists();
+ assertTrue(acl.getAdmins().includes(group));
+ assertFalse(acl.getEditors().includes(group));
+ acl.addAdmin(group);
+ acl.addAdmin(group);
+ acl.addAdmin(group);
+ assertEquals(2, result.size());
+ }
+
+ @Test
public void testAdminMembersOfGroupFinder() throws Exception {
doLogin();
final Set<Group> result = groupFinder.findAdminInGroups(group.getId());
Modified: trunk/src/test/java/cc/kune/lists/server/ListsServerToolTest.java
===================================================================
--- trunk/src/test/java/cc/kune/lists/server/ListsServerToolTest.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/test/java/cc/kune/lists/server/ListsServerToolTest.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -20,8 +20,8 @@
package cc.kune.lists.server;
import static cc.kune.lists.shared.ListsConstants.TYPE_LIST;
+import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
import static cc.kune.lists.shared.ListsConstants.TYPE_ROOT;
-import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
import org.junit.Before;
import org.junit.Test;
@@ -35,7 +35,7 @@
@Before
public void before() {
- serverTool = new ListsServerTool(null, null, null, null);
+ serverTool = new ListsServerTool(null, null, null, null, null, null);
}
@Test
Added: trunk/src/test/java/cc/kune/lists/server/ListsServiceTest.java
===================================================================
--- trunk/src/test/java/cc/kune/lists/server/ListsServiceTest.java (rev 0)
+++ trunk/src/test/java/cc/kune/lists/server/ListsServiceTest.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -0,0 +1,122 @@
+package cc.kune.lists.server;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import cc.kune.core.client.errors.AccessViolationException;
+import cc.kune.core.client.errors.DefaultException;
+import cc.kune.core.client.rpcservices.ContentService;
+import cc.kune.core.server.integration.IntegrationTest;
+import cc.kune.core.server.integration.IntegrationTestHelper;
+import cc.kune.core.shared.domain.utils.StateToken;
+import cc.kune.core.shared.dto.AccessListsDTO;
+import cc.kune.core.shared.dto.GroupDTO;
+import cc.kune.core.shared.dto.StateAbstractDTO;
+import cc.kune.core.shared.dto.StateContainerDTO;
+import cc.kune.core.shared.dto.StateContentDTO;
+import cc.kune.core.shared.dto.UserInfoDTO;
+import cc.kune.lists.client.rpc.ListsService;
+import cc.kune.lists.shared.ListsConstants;
+
+import com.google.inject.Inject;
+
+public class ListsServiceTest extends IntegrationTest {
+ private StateContainerDTO closeList;
+ @Inject
+ ContentService contentService;
+ @Inject
+ ListsService listsService;
+ private StateContainerDTO openList;
+ private GroupDTO userGroup;
+
+ @Before
+ public void init() throws DefaultException, IOException {
+ new IntegrationTestHelper(this);
+ final UserInfoDTO userInfoDTO = doLogin();
+ userGroup = userInfoDTO.getUserGroup();
+ final StateAbstractDTO rootList = contentService.getContent(getHash(), new StateToken(
+ getDefSiteGroupName(), ListsConstants.ROOT_NAME));
+ openList = listsService.createList(getHash(), rootList.getStateToken(), "test list", "", true);
+ closeList = listsService.createList(getHash(), rootList.getStateToken(), "test list", "", false);
+ }
+
+ @Test(expected = AccessViolationException.class)
+ public void postToCloseShouldFailTest() throws DefaultException, IOException {
+ doLogout();
+ doLoginWithDummyUser();
+ listsService.newPost(getHash(), closeList.getStateToken(), "lalala");
+ }
+
+ @Test
+ public void postToOpenByOthersTest() throws DefaultException, IOException {
+ doLogout();
+ doLoginWithDummyUser();
+ final StateContentDTO newPost = listsService.newPost(getHash(), openList.getStateToken(), "lalala");
+ // FIXME: check participation
+ assertNotNull(newPost);
+ }
+
+ @Test
+ public void postToOpenCloseAndLaterOpenByOthersTest() throws DefaultException, IOException {
+ listsService.setPublic(token, openList.getStateToken(), false);
+ listsService.setPublic(token, openList.getStateToken(), true);
+ doLogout();
+ doLoginWithDummyUser();
+ final StateContentDTO newPost = listsService.newPost(getHash(), openList.getStateToken(), "lalala");
+ assertNotNull(newPost);
+ }
+
+ @Test
+ public void subscribeSeveralToCloseTest() throws DefaultException, IOException {
+ subscribeUnsubsSeveral(closeList);
+ }
+
+ @Test
+ public void subscribeSeveralToPublicTest() {
+ subscribeUnsubsSeveral(openList);
+ }
+
+ @Test(expected = AccessViolationException.class)
+ public void subscribeToCloseShouldFailTest() throws DefaultException, IOException {
+ doLogout();
+ doLoginWithDummyUser();
+ listsService.subscribeToList(getHash(), closeList.getStateToken(), true);
+ }
+
+ @Test(expected = AccessViolationException.class)
+ public void subscribeToOpenAndLaterCloseListShouldFailTest() throws DefaultException, IOException {
+ listsService.setPublic(token, openList.getStateToken(), false);
+ doLogout();
+ doLoginWithDummyUser();
+ listsService.subscribeToList(getHash(), openList.getStateToken(), true);
+ }
+
+ private void subscribeUnsubsSeveral(final StateContainerDTO list) {
+ final AccessListsDTO initialAcl = list.getAccessLists();
+ assertTrue(initialAcl.getAdmins().includes(userGroup));
+ assertFalse(initialAcl.getEditors().getList().contains(userGroup));
+
+ StateContainerDTO state = listsService.subscribeToList(getHash(), list.getStateToken(), true);
+ AccessListsDTO acl = state.getAccessLists();
+ assertTrue(acl.getEditors().includes(userGroup));
+ assertTrue(acl.getAdmins().includes(userGroup));
+
+ state = listsService.subscribeToList(getHash(), list.getStateToken(), false);
+ acl = state.getAccessLists();
+ assertFalse(acl.getEditors().includes(userGroup));
+ assertTrue(acl.getAdmins().includes(userGroup));
+
+ state = listsService.subscribeToList(getHash(), list.getStateToken(), true);
+ acl = state.getAccessLists();
+ assertTrue(acl.getEditors().includes(userGroup));
+ assertTrue(acl.getEditors().getList().contains(userGroup));
+ assertTrue(acl.getAdmins().includes(userGroup));
+ }
+
+}
Modified: trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java
===================================================================
--- trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java 2011-08-12 18:33:43 UTC (rev 1492)
+++ trunk/src/test/java/cc/kune/wave/server/KuneWaveManagerDefaultTest.java 2011-08-13 15:59:10 UTC (rev 1493)
@@ -62,7 +62,7 @@
doLogin();
final WaveRef waveletName = createTestWave();
assertNotNull(waveletName);
- manager.addParticipant(waveletName, getSiteAdminShortName(), whoAdds, NEW_PARTICIPANT);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), whoAdds, NEW_PARTICIPANT);
final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
assertNotNull(fetchWavelet);
assertEquals(2, fetchWavelet.getParticipants().size());
@@ -75,10 +75,12 @@
doLogin();
final WaveRef waveletName = createTestWave();
assertNotNull(waveletName);
- manager.addParticipant(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
+ manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
NEW_PARTICIPANT);
- manager.addParticipant(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
- NEW_PARTICIPANT);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
+ NEW_PARTICIPANT, NEW_PARTICIPANT);
+ manager.addParticipants(waveletName, getSiteAdminShortName(), getSiteAdminShortName(),
+ NEW_PARTICIPANT, NEW_PARTICIPANT, NEW_PARTICIPANT);
final Wavelet fetchWavelet = manager.fetchWave(waveletName, getSiteAdminShortName());
assertNotNull(fetchWavelet);
assertEquals(2, fetchWavelet.getParticipants().size());
1
0
Author: vjrj_
Date: 2011-08-12 20:33:43 +0200 (Fri, 12 Aug 2011)
New Revision: 1492
Modified:
trunk/TODO
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractParentGuiActionDescrip.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java
trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuDescriptor.java
trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java
trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
trunk/src/main/java/cc/kune/core/server/NotInObject.java
trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java
trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
trunk/src/main/java/cc/kune/core/server/users/UserInfo.java
trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java
trunk/src/main/java/cc/kune/core/shared/dto/UserInfoDTO.java
trunk/src/main/java/cc/kune/domain/GroupList.java
trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java
trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java
trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java
trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java
trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java
trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java
Log:
GroupList now use Set instead of List
Fix "Your groups" submenu.
Modified: trunk/TODO
===================================================================
--- trunk/TODO 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/TODO 2011-08-12 18:33:43 UTC (rev 1492)
@@ -167,6 +167,15 @@
http://code.google.com/p/google-web-toolkit/wiki/WAR_Design_1_6
http://www.gwt-ext.com/forum/viewtopic.php?f=5&p=12038
** TODO <v> User preferences storing
+*** links:
+**** http://download.oracle.com/javase/1.4.2/docs/guide/lang/preferences.html (Preferences API)
+**** http://stackoverflow.com/questions/6050397/hibernate-mapping-optional-value
+**** http://stackoverflow.com/questions/3100881/user-preferences-file-vs-app-pre…
+**** http://stackoverflow.com/questions/1079711/best-approach-to-save-user-prefe…
+**** http://stackoverflow.com/questions/3109550/user-preferences-in-jee-applicat…
+**** http://stackoverflow.com/questions/598877/user-preferences-database-table-d…
+
+*** old work
(See also variables in 'Styling braimstorming')
We need a way to store (in db) User preferences (like emite chat configurations) in a extensible way.
Something similar to java.util.prefs.Preferences or Mozilla about:config
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractGuiActionDescrip.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -197,6 +197,13 @@
setParent(parent, true);
}
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * cc.kune.common.client.actions.ui.descrip.GuiActionDescrip#setParent(cc.
+ * kune.common.client.actions.ui.descrip.GuiActionDescrip, boolean)
+ */
@Override
public void setParent(final GuiActionDescrip parent, final boolean addToParent) {
if (parent != NO_PARENT && addToParent) {
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractParentGuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractParentGuiActionDescrip.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/AbstractParentGuiActionDescrip.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -16,6 +16,10 @@
childs.add(descriptors);
}
+ public void clear() {
+ childs.clear();
+ }
+
public GuiActionDescCollection getChilds() {
return childs;
}
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/GuiActionDescrip.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -98,7 +98,8 @@
* @param addToParent
* if yes, the action will be added directly to the parent, useful to
* attach menu items (or other child actions) directly to its parent
- * without any other check (for instance session status, etc)
+ * without any other check (for instance session status, etc).
+ * Default to yes
*/
void setParent(GuiActionDescrip parent, boolean addToParent);
Modified: trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuDescriptor.java
===================================================================
--- trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuDescriptor.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/common/client/actions/ui/descrip/MenuDescriptor.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -73,10 +73,12 @@
this(new BaseAction(text, tooltip, icon));
}
+ @Override
public void clear() {
// Action detects changes in values, then we fire a change (whatever) to
// fire this method in the UI
putValue(MENU_CLEAR, !((Boolean) getValue(MENU_CLEAR)));
+ super.clear();
}
public ImageResource getRightIcon() {
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SiteUserOptionsPresenter.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -19,7 +19,7 @@
\*/
package cc.kune.core.client.sitebar;
-import java.util.List;
+import java.util.Set;
import cc.kune.common.client.actions.AbstractExtendedAction;
import cc.kune.common.client.actions.Action;
@@ -46,7 +46,9 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
+import com.google.inject.Singleton;
+@Singleton
public class SiteUserOptionsPresenter implements SiteUserOptions {
public static final MenuDescriptor LOGGED_USER_MENU = new MenuDescriptor();
@@ -98,7 +100,7 @@
}
private void addActionImpl(final GuiActionDescrip descriptor) {
- descriptor.setParent(LOGGED_USER_MENU);
+ descriptor.setParent(LOGGED_USER_MENU, true);
}
private void addPartipation(final GroupDTO group) {
@@ -107,8 +109,8 @@
participant.setTarget(group);
participant.putValue(Action.NAME, group.getLongName());
participant.putValue(Action.SMALL_ICON, logoImageUrl);
- participant.setParent(partiMenu, false);
- siteOptions.getRightToolbar().add(participant);
+ participant.setParent(partiMenu, true);
+ // siteOptions.getRightToolbar().add(participant);
}
private void createActions() {
@@ -142,8 +144,8 @@
LOGGED_USER_MENU.setEnabled(true);
setLoggedUserName(userInfoDTO.getShortName());
partiMenu.clear();
- final List<GroupDTO> groupsIsAdmin = userInfoDTO.getGroupsIsAdmin();
- final List<GroupDTO> groupsIsCollab = userInfoDTO.getGroupsIsCollab();
+ final Set<GroupDTO> groupsIsAdmin = userInfoDTO.getGroupsIsAdmin();
+ final Set<GroupDTO> groupsIsCollab = userInfoDTO.getGroupsIsCollab();
for (final GroupDTO group : groupsIsAdmin) {
addPartipation(group);
}
@@ -151,6 +153,7 @@
addPartipation(group);
}
partiMenu.setEnabled((groupsIsAdmin.size() + groupsIsCollab.size()) > 0);
+ siteOptions.refreshActions();
}
private void setLoggedUserName(final String shortName) {
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActions.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -27,4 +27,6 @@
ToolbarDescriptor getRightToolbar();
+ void refreshActions();
+
}
Modified: trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/client/sitebar/SitebarActionsPresenter.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -68,11 +68,9 @@
private static final MenuDescriptor OPTIONS_MENU = new MenuDescriptor();
private static final ToolbarDescriptor RIGHT_TOOLBAR = new ToolbarDescriptor();
public static final String SITE_OPTIONS_MENU = "kune-sop-om";
-
private final I18nTranslationService i18n;
private final CoreResources icons;
private final Provider<SitebarNewGroupLink> newGroupLink;
-
private final CoreResources res;
private final Provider<SitebarSignInLink> signInLink;
private final Provider<SitebarSignOutLink> signOutLink;
@@ -181,6 +179,17 @@
MenuSeparatorDescriptor.build(OPTIONS_MENU);
MenuItemDescriptor.build(OPTIONS_MENU, wavePowered);
OPTIONS_MENU.setParent(RIGHT_TOOLBAR);
+ refreshActionsImpl();
+ }
+
+ @Override
+ public void refreshActions() {
+ refreshActionsImpl();
+ }
+
+ private void refreshActionsImpl() {
+ getView().getLeftBar().clear();
+ getView().getRightBar().clear();
getView().getLeftBar().add(LEFT_TOOLBAR);
getView().getRightBar().add(RIGHT_TOOLBAR);
}
Modified: trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java
===================================================================
--- trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/client/sn/GroupSNPresenter.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.client.sn;
-import java.util.List;
+import java.util.Set;
import cc.kune.common.client.actions.ui.IsActionExtensible;
import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection;
@@ -181,9 +181,9 @@
private void setGroupMembers(final SocialNetworkDTO socialNetwork, final AccessRights rights) {
final AccessListsDTO accessLists = socialNetwork.getAccessLists();
- final List<GroupDTO> adminsList = accessLists.getAdmins().getList();
- final List<GroupDTO> collabList = accessLists.getEditors().getList();
- final List<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
+ final Set<GroupDTO> adminsList = accessLists.getAdmins().getList();
+ final Set<GroupDTO> collabList = accessLists.getEditors().getList();
+ final Set<GroupDTO> pendingCollabsList = socialNetwork.getPendingCollaborators().getList();
final int numAdmins = adminsList.size();
final int numCollabs = collabList.size();
Modified: trunk/src/main/java/cc/kune/core/server/NotInObject.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/NotInObject.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/server/NotInObject.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -27,21 +27,22 @@
public class NotInObject extends AbstractMatcher<Method> {
- private final List<String> excluded;
+ private final List<String> excluded;
- public NotInObject() {
- super();
- // FIXME exclude password
- excluded = Arrays.asList(new String[] { "finalize", "toString", "hashCode", "getClass", "wait", "equals" });
- }
+ public NotInObject() {
+ super();
+ // FIXME exclude password
+ excluded = Arrays.asList(new String[] { "finalize", "toString", "hashCode", "getClass", "wait",
+ "equals" });
+ }
- @Override
- public boolean matches(final Method method) {
- final String name = method.getName();
-
- final boolean isGetter = name.startsWith("set");
- final boolean isExcluded = excluded.contains(name);
- return !isGetter || !isExcluded;
- }
-
+ @Override
+ public boolean matches(final Method method) {
+ final String name = method.getName();
+ // http://code.google.com/p/google-guice/issues/detail?id=640
+ final boolean isSynth = method.isSynthetic();
+ final boolean isGetter = name.startsWith("set");
+ final boolean isExcluded = excluded.contains(name);
+ return !isSynth && (!isGetter || !isExcluded);
+ }
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/server/manager/GroupManager.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -20,6 +20,7 @@
package cc.kune.core.server.manager;
import java.util.List;
+import java.util.Set;
import cc.kune.core.client.errors.AccessViolationException;
import cc.kune.core.client.errors.EmailAddressInUseException;
@@ -46,11 +47,11 @@
Group createUserGroup(User user, boolean wantPersonalHomepage) throws GroupNameInUseException,
EmailAddressInUseException;
- List<Group> findAdminInGroups(Long groupId);
+ Set<Group> findAdminInGroups(Long groupId);
Group findByShortName(String groupName);
- List<Group> findCollabInGroups(Long groupId);
+ Set<Group> findCollabInGroups(Long groupId);
List<String> findEnabledTools(Long id);
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/GroupManagerDefault.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -21,6 +21,7 @@
import java.util.Collection;
import java.util.List;
+import java.util.Set;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
@@ -202,7 +203,7 @@
}
@Override
- public List<Group> findAdminInGroups(final Long groupId) {
+ public Set<Group> findAdminInGroups(final Long groupId) {
return finder.findAdminInGroups(groupId);
}
@@ -212,7 +213,7 @@
}
@Override
- public List<Group> findCollabInGroups(final Long groupId) {
+ public Set<Group> findCollabInGroups(final Long groupId) {
return finder.findCollabInGroups(groupId);
}
Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/server/manager/impl/SocialNetworkManagerDefault.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -19,7 +19,7 @@
*/
package cc.kune.core.server.manager.impl;
-import java.util.List;
+import java.util.Set;
import javax.persistence.EntityManager;
@@ -74,7 +74,7 @@
throws DefaultException, AccessViolationException {
final SocialNetwork sn = inGroup.getSocialNetwork();
checkUserLoggedIsAdmin(userLogged, sn);
- final List<Group> pendingCollabs = sn.getPendingCollaborators().getList();
+ final Set<Group> pendingCollabs = sn.getPendingCollaborators().getList();
if (pendingCollabs.contains(group)) {
sn.addCollaborator(group);
sn.removePendingCollaborator(group);
@@ -161,7 +161,7 @@
throws DefaultException {
final SocialNetwork sn = inGroup.getSocialNetwork();
checkUserLoggedIsAdmin(userLogged, sn);
- final List<Group> pendingCollabs = sn.getPendingCollaborators().getList();
+ final Set<Group> pendingCollabs = sn.getPendingCollaborators().getList();
if (pendingCollabs.contains(group)) {
sn.removePendingCollaborator(group);
} else {
@@ -174,13 +174,13 @@
throws AccessViolationException {
get(userLogged, group); // check access
final Long groupId = group.getId();
- final List<Group> adminInGroups = finder.findAdminInGroups(groupId);
+ final Set<Group> adminInGroups = finder.findAdminInGroups(groupId);
// Don't show self user group
if (group.isPersonal()) {
adminInGroups.remove(group);
}
// adminInGroups.remove(userLogged.getUserGroup());
- final List<Group> collabInGroups = finder.findCollabInGroups(groupId);
+ final Set<Group> collabInGroups = finder.findCollabInGroups(groupId);
return new ParticipationData(adminInGroups, collabInGroups);
}
Modified: trunk/src/main/java/cc/kune/core/server/users/UserInfo.java
===================================================================
--- trunk/src/main/java/cc/kune/core/server/users/UserInfo.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/server/users/UserInfo.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -20,6 +20,7 @@
package cc.kune.core.server.users;
import java.util.List;
+import java.util.Set;
import cc.kune.domain.Group;
import cc.kune.domain.I18nCountry;
@@ -27,112 +28,112 @@
import cc.kune.domain.User;
public class UserInfo {
- private String chatName;
- private String chatPassword;
- private List<String> enabledTools;
- private List<Group> groupsIsAdmin;
- private List<Group> groupsIsCollab;
- private String homePage;
- private boolean showDeletedContent;
- private User user;
- private Group userGroup;
- private String userHash;
+ private String chatName;
+ private String chatPassword;
+ private List<String> enabledTools;
+ private Set<Group> groupsIsAdmin;
+ private Set<Group> groupsIsCollab;
+ private String homePage;
+ private boolean showDeletedContent;
+ private User user;
+ private Group userGroup;
+ private String userHash;
- public String getChatName() {
- return chatName;
- }
+ public String getChatName() {
+ return chatName;
+ }
- public String getChatPassword() {
- return chatPassword;
- }
+ public String getChatPassword() {
+ return chatPassword;
+ }
- public I18nCountry getCountry() {
- return user.getCountry();
- }
+ public I18nCountry getCountry() {
+ return user.getCountry();
+ }
- public List<String> getEnabledTools() {
- return enabledTools;
- }
+ public List<String> getEnabledTools() {
+ return enabledTools;
+ }
- public List<Group> getGroupsIsAdmin() {
- return groupsIsAdmin;
- }
+ public Set<Group> getGroupsIsAdmin() {
+ return groupsIsAdmin;
+ }
- public List<Group> getGroupsIsCollab() {
- return groupsIsCollab;
- }
+ public Set<Group> getGroupsIsCollab() {
+ return groupsIsCollab;
+ }
- public String getHomePage() {
- return homePage;
- }
+ public String getHomePage() {
+ return homePage;
+ }
- public I18nLanguage getLanguage() {
- return user.getLanguage();
- }
+ public I18nLanguage getLanguage() {
+ return user.getLanguage();
+ }
- public String getName() {
- return user.getName();
- }
+ public String getName() {
+ return user.getName();
+ }
- public String getShortName() {
- return user.getShortName();
- }
+ public String getShortName() {
+ return user.getShortName();
+ }
- public boolean getShowDeletedContent() {
- return showDeletedContent;
- }
+ public boolean getShowDeletedContent() {
+ return showDeletedContent;
+ }
- public User getUser() {
- return user;
- }
+ public User getUser() {
+ return user;
+ }
- public Group getUserGroup() {
- return userGroup;
- }
+ public Group getUserGroup() {
+ return userGroup;
+ }
- public String getUserHash() {
- return userHash;
- }
+ public String getUserHash() {
+ return userHash;
+ }
- public void setChatName(final String chatName) {
- this.chatName = chatName;
- }
+ public void setChatName(final String chatName) {
+ this.chatName = chatName;
+ }
- @Deprecated
- public void setChatPassword(final String chatPassword) {
- this.chatPassword = chatPassword;
- }
+ @Deprecated
+ public void setChatPassword(final String chatPassword) {
+ this.chatPassword = chatPassword;
+ }
- public void setEnabledTools(final List<String> enabledTools) {
- this.enabledTools = enabledTools;
- }
+ public void setEnabledTools(final List<String> enabledTools) {
+ this.enabledTools = enabledTools;
+ }
- public void setGroupsIsAdmin(final List<Group> groupsIsAdmin) {
- this.groupsIsAdmin = groupsIsAdmin;
- }
+ public void setGroupsIsAdmin(final Set<Group> groupsIsAdmin) {
+ this.groupsIsAdmin = groupsIsAdmin;
+ }
- public void setGroupsIsCollab(final List<Group> groupsIsCollab) {
- this.groupsIsCollab = groupsIsCollab;
- }
+ public void setGroupsIsCollab(final Set<Group> groupsIsCollab) {
+ this.groupsIsCollab = groupsIsCollab;
+ }
- public void setHomePage(final String homePage) {
- this.homePage = homePage;
- }
+ public void setHomePage(final String homePage) {
+ this.homePage = homePage;
+ }
- public void setShowDeletedContent(final boolean showDeletedContent) {
- this.showDeletedContent = showDeletedContent;
- }
+ public void setShowDeletedContent(final boolean showDeletedContent) {
+ this.showDeletedContent = showDeletedContent;
+ }
- public void setUser(final User user) {
- this.user = user;
- }
+ public void setUser(final User user) {
+ this.user = user;
+ }
- public void setUserGroup(final Group userGroup) {
- this.userGroup = userGroup;
- }
+ public void setUserGroup(final Group userGroup) {
+ this.userGroup = userGroup;
+ }
- public void setUserHash(final String userHash) {
- this.userHash = userHash;
- }
+ public void setUserHash(final String userHash) {
+ this.userHash = userHash;
+ }
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/shared/dto/GroupListDTO.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -19,42 +19,43 @@
*/
package cc.kune.core.shared.dto;
-import java.util.List;
+import java.util.Set;
import com.google.gwt.user.client.rpc.IsSerializable;
public class GroupListDTO implements IsSerializable {
- public static final String EVERYONE = "EVERYONE";
- public static final String NOBODY = "NOBODY";
- public static final String NORMAL = "NORMAL";
- private List<GroupDTO> list;
- private String mode;
+ public static final String EVERYONE = "EVERYONE";
+ public static final String NOBODY = "NOBODY";
+ public static final String NORMAL = "NORMAL";
+ private Set<GroupDTO> list;
+ private String mode;
- public GroupListDTO() {
- this(null);
- }
+ public GroupListDTO() {
+ this(null);
+ }
- public GroupListDTO(final List<GroupDTO> list) {
- this.list = list;
- }
+ public GroupListDTO(final Set<GroupDTO> list) {
+ this.list = list;
+ }
- public List<GroupDTO> getList() {
- return list;
- }
+ public Set<GroupDTO> getList() {
+ return list;
+ }
- public String getMode() {
- return mode;
- }
+ public String getMode() {
+ return mode;
+ }
- public void setList(final List<GroupDTO> list) {
- this.list = list;
- }
+ public void setList(final Set<GroupDTO> list) {
+ this.list = list;
+ }
- public void setMode(final String mode) {
- this.mode = mode;
- }
+ public void setMode(final String mode) {
+ this.mode = mode;
+ }
- public String toString() {
- return "GroupListDTO[(" + mode + "): " + list + "]";
- }
+ @Override
+ public String toString() {
+ return "GroupListDTO[(" + mode + "): " + list + "]";
+ }
}
Modified: trunk/src/main/java/cc/kune/core/shared/dto/UserInfoDTO.java
===================================================================
--- trunk/src/main/java/cc/kune/core/shared/dto/UserInfoDTO.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/core/shared/dto/UserInfoDTO.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -20,118 +20,119 @@
package cc.kune.core.shared.dto;
import java.util.List;
+import java.util.Set;
import com.google.gwt.user.client.rpc.IsSerializable;
public class UserInfoDTO implements IsSerializable {
- private String chatName;
- private String chatPassword;
- private List<String> enabledTools;
- private List<GroupDTO> groupsIsAdmin;
- private List<GroupDTO> groupsIsCollab;
- private String homePage;
- private boolean showDeletedContent;
- private UserSimpleDTO user;
- private GroupDTO userGroup;
- private String userHash;
+ private String chatName;
+ private String chatPassword;
+ private List<String> enabledTools;
+ private Set<GroupDTO> groupsIsAdmin;
+ private Set<GroupDTO> groupsIsCollab;
+ private String homePage;
+ private boolean showDeletedContent;
+ private UserSimpleDTO user;
+ private GroupDTO userGroup;
+ private String userHash;
- public String getChatName() {
- return chatName;
- }
+ public String getChatName() {
+ return chatName;
+ }
- @Deprecated
- public String getChatPassword() {
- return chatPassword;
- }
+ @Deprecated
+ public String getChatPassword() {
+ return chatPassword;
+ }
- public I18nCountryDTO getCountry() {
- return user.getCountry();
- }
+ public I18nCountryDTO getCountry() {
+ return user.getCountry();
+ }
- public List<String> getEnabledTools() {
- return enabledTools;
- }
+ public List<String> getEnabledTools() {
+ return enabledTools;
+ }
- public List<GroupDTO> getGroupsIsAdmin() {
- return groupsIsAdmin;
- }
+ public Set<GroupDTO> getGroupsIsAdmin() {
+ return groupsIsAdmin;
+ }
- public List<GroupDTO> getGroupsIsCollab() {
- return groupsIsCollab;
- }
+ public Set<GroupDTO> getGroupsIsCollab() {
+ return groupsIsCollab;
+ }
- public String getHomePage() {
- return homePage;
- }
+ public String getHomePage() {
+ return homePage;
+ }
- public I18nLanguageDTO getLanguage() {
- return user.getLanguage();
- }
+ public I18nLanguageDTO getLanguage() {
+ return user.getLanguage();
+ }
- public String getName() {
- return user.getName();
- }
+ public String getName() {
+ return user.getName();
+ }
- public String getShortName() {
- return user.getShortName();
- }
+ public String getShortName() {
+ return user.getShortName();
+ }
- public boolean getShowDeletedContent() {
- return showDeletedContent;
- }
+ public boolean getShowDeletedContent() {
+ return showDeletedContent;
+ }
- public UserSimpleDTO getUser() {
- return user;
- }
+ public UserSimpleDTO getUser() {
+ return user;
+ }
- public GroupDTO getUserGroup() {
- return userGroup;
- }
+ public GroupDTO getUserGroup() {
+ return userGroup;
+ }
- public String getUserHash() {
- return userHash;
- }
+ public String getUserHash() {
+ return userHash;
+ }
- public void setChatName(final String chatName) {
- this.chatName = chatName;
- }
+ public void setChatName(final String chatName) {
+ this.chatName = chatName;
+ }
- @Deprecated
- public void setChatPassword(final String password) {
- this.chatPassword = password;
+ @Deprecated
+ public void setChatPassword(final String password) {
+ this.chatPassword = password;
- }
+ }
- public void setEnabledTools(final List<String> enabledTools) {
- this.enabledTools = enabledTools;
- }
+ public void setEnabledTools(final List<String> enabledTools) {
+ this.enabledTools = enabledTools;
+ }
- public void setGroupsIsAdmin(final List<GroupDTO> groupsIsAdmin) {
- this.groupsIsAdmin = groupsIsAdmin;
- }
+ public void setGroupsIsAdmin(final Set<GroupDTO> groupsIsAdmin) {
+ this.groupsIsAdmin = groupsIsAdmin;
+ }
- public void setGroupsIsCollab(final List<GroupDTO> groupsIsCollab) {
- this.groupsIsCollab = groupsIsCollab;
- }
+ public void setGroupsIsCollab(final Set<GroupDTO> groupsIsCollab) {
+ this.groupsIsCollab = groupsIsCollab;
+ }
- public void setHomePage(final String homePage) {
- this.homePage = homePage;
- }
+ public void setHomePage(final String homePage) {
+ this.homePage = homePage;
+ }
- public void setShowDeletedContent(final boolean showDeletedContent) {
- this.showDeletedContent = showDeletedContent;
- }
+ public void setShowDeletedContent(final boolean showDeletedContent) {
+ this.showDeletedContent = showDeletedContent;
+ }
- public void setUser(final UserSimpleDTO user) {
- this.user = user;
- }
+ public void setUser(final UserSimpleDTO user) {
+ this.user = user;
+ }
- public void setUserGroup(final GroupDTO userGroup) {
- this.userGroup = userGroup;
- }
+ public void setUserGroup(final GroupDTO userGroup) {
+ this.userGroup = userGroup;
+ }
- public void setUserHash(final String userHash) {
- this.userHash = userHash;
- }
+ public void setUserHash(final String userHash) {
+ this.userHash = userHash;
+ }
}
Modified: trunk/src/main/java/cc/kune/domain/GroupList.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/GroupList.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/domain/GroupList.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -20,7 +20,8 @@
package cc.kune.domain;
import java.util.ArrayList;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
@@ -51,18 +52,18 @@
@Fetch(FetchMode.JOIN)
@OrderBy("shortName ASC")
@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
- List<Group> list;
+ Set<Group> list;
@Enumerated(EnumType.STRING)
@Basic
private GroupListMode mode;
public GroupList() {
- this(new ArrayList<Group>());
+ this(new HashSet<Group>());
this.mode = GroupListMode.NORMAL;
}
- public GroupList(final List<Group> list) {
+ public GroupList(final Set<Group> list) {
this.list = list;
}
@@ -78,7 +79,7 @@
}
}
- public boolean checkIfIncludes(final Group group, final List<Group> list, final GroupListMode mode) {
+ public boolean checkIfIncludes(final Group group, final Set<Group> list, final GroupListMode mode) {
switch (mode) {
case NOBODY:
return false;
@@ -97,7 +98,7 @@
return id;
}
- public List<Group> getList() {
+ public Set<Group> getList() {
return list;
}
@@ -125,7 +126,7 @@
this.id = id;
}
- public void setList(final List<Group> list) {
+ public void setList(final Set<Group> list) {
this.list = list;
}
Modified: trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/domain/finders/GroupFinder.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -20,7 +20,9 @@
package cc.kune.domain.finders;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import cc.kune.domain.Group;
@@ -29,18 +31,21 @@
public interface GroupFinder {
- @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)", returnAs = ArrayList.class)
- public List<Group> findAdminInGroups(@Named("groupid") final Long groupId);
+ @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id "
+ + "FROM g.socialNetwork.accessLists.admins.list adm WHERE adm.id = :groupid)", returnAs = HashSet.class)
+ public Set<Group> findAdminInGroups(@Named("groupid") final Long groupId);
- @Finder(query = "FROM Group g WHERE g.shortName = :shortName")
- public Group findByShortName(@Named("shortName") final String shortName);
+ @Finder(query = "FROM Group g WHERE g.shortName = :shortName")
+ public Group findByShortName(@Named("shortName") final String shortName);
- @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM g.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)", returnAs = ArrayList.class)
- public List<Group> findCollabInGroups(@Named("groupid") final Long groupId);
+ @Finder(query = "FROM Group g WHERE g.id IN (SELECT g.id FROM "
+ + "g.socialNetwork.accessLists.editors.list AS ed WHERE ed.id = :groupid)", returnAs = HashSet.class)
+ public Set<Group> findCollabInGroups(@Named("groupid") final Long groupId);
- @Finder(query = "SELECT t.root.toolName FROM ToolConfiguration t WHERE t.enabled=true AND t.root.owner.id = :groupid", returnAs = ArrayList.class)
- public List<String> findEnabledTools(@Named("groupid") final Long groupId);
+ @Finder(query = "SELECT t.root.toolName FROM ToolConfiguration t "
+ + "WHERE t.enabled=true AND t.root.owner.id = :groupid", returnAs = ArrayList.class)
+ public List<String> findEnabledTools(@Named("groupid") final Long groupId);
- @Finder(query = "FROM Group", returnAs = ArrayList.class)
- public List<Group> getAll();
+ @Finder(query = "FROM Group", returnAs = ArrayList.class)
+ public List<Group> getAll();
}
Modified: trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java
===================================================================
--- trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/domain/utils/ParticipationData.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -19,37 +19,37 @@
*/
package cc.kune.domain.utils;
-import java.util.List;
+import java.util.Set;
import cc.kune.domain.Group;
public class ParticipationData {
- private List<Group> groupsIsAdmin;
- private List<Group> groupsIsCollab;
+ private Set<Group> groupsIsAdmin;
+ private Set<Group> groupsIsCollab;
- public ParticipationData() {
- this(null, null);
- }
+ public ParticipationData() {
+ this(null, null);
+ }
- public ParticipationData(final List<Group> groupsIsAdmin, final List<Group> groupsIsCollab) {
- this.groupsIsAdmin = groupsIsAdmin;
- this.groupsIsCollab = groupsIsCollab;
- }
+ public ParticipationData(final Set<Group> groupsIsAdmin, final Set<Group> groupsIsCollab) {
+ this.groupsIsAdmin = groupsIsAdmin;
+ this.groupsIsCollab = groupsIsCollab;
+ }
- public List<Group> getGroupsIsAdmin() {
- return groupsIsAdmin;
- }
+ public Set<Group> getGroupsIsAdmin() {
+ return groupsIsAdmin;
+ }
- public List<Group> getGroupsIsCollab() {
- return groupsIsCollab;
- }
+ public Set<Group> getGroupsIsCollab() {
+ return groupsIsCollab;
+ }
- public void setGroupsIsAdmin(final List<Group> groupsIsAdmin) {
- this.groupsIsAdmin = groupsIsAdmin;
- }
+ public void setGroupsIsAdmin(final Set<Group> groupsIsAdmin) {
+ this.groupsIsAdmin = groupsIsAdmin;
+ }
- public void setGroupsIsCollab(final List<Group> groupsIsCollab) {
- this.groupsIsCollab = groupsIsCollab;
- }
+ public void setGroupsIsCollab(final Set<Group> groupsIsCollab) {
+ this.groupsIsCollab = groupsIsCollab;
+ }
}
Modified: trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java
===================================================================
--- trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/lists/client/ListsClientTool.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -22,8 +22,8 @@
import static cc.kune.lists.shared.ListsConstants.NAME;
import static cc.kune.lists.shared.ListsConstants.ROOT_NAME;
import static cc.kune.lists.shared.ListsConstants.TYPE_LIST;
+import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
import static cc.kune.lists.shared.ListsConstants.TYPE_ROOT;
-import static cc.kune.lists.shared.ListsConstants.TYPE_POST;
import cc.kune.core.client.registry.ContentCapabilitiesRegistry;
import cc.kune.core.client.resources.nav.NavResources;
import cc.kune.core.shared.i18n.I18nTranslationService;
@@ -60,7 +60,7 @@
registerContentTypeIcon(TYPE_ROOT, navResources.list());
registerContentTypeIcon(TYPE_LIST, navResources.list());
registerContentTypeIcon(TYPE_POST, navResources.email());
- final String noWave = i18n.t("There isn't nothing post yet, create one");
+ final String noWave = i18n.t("There is nothing posted yet. Post something");
final String noList = i18n.t("There isn't any list, create one");
registerEmptyMessages(TYPE_ROOT, noList);
registerEmptyMessages(TYPE_LIST, noWave);
Modified: trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java
===================================================================
--- trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/main/java/cc/kune/msgs/client/UserMessagesPanel.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -31,24 +31,21 @@
public class UserMessagesPanel extends Composite implements UserMessagesView {
- interface MessagesPanelUiBinder extends UiBinder<Widget, UserMessagesPanel> {
- }
- private static MessagesPanelUiBinder uiBinder = GWT.create(MessagesPanelUiBinder.class);
+ interface MessagesPanelUiBinder extends UiBinder<Widget, UserMessagesPanel> {
+ }
+ private static MessagesPanelUiBinder uiBinder = GWT.create(MessagesPanelUiBinder.class);
- @UiField
- VerticalPanel vp;
+ @UiField
+ VerticalPanel vp;
- public UserMessagesPanel() {
- initWidget(uiBinder.createAndBindUi(this));
- }
+ public UserMessagesPanel() {
+ initWidget(uiBinder.createAndBindUi(this));
+ }
- @Override
- public void add(final NotifyLevel level, final String title, final String message, final String id,
- final boolean closeable, final CloseCallback closeCallback) {
- final UserMessage msg = new UserMessage(level, title, message, id, closeable, closeCallback);
- vp.add(msg);
- // final SlideUp anim = new SlideUp(msg.getElement());
- // anim.setDuration(.5);
- // anim.play();
- }
+ @Override
+ public void add(final NotifyLevel level, final String title, final String message, final String id,
+ final boolean closeable, final CloseCallback closeCallback) {
+ final UserMessage msg = new UserMessage(level, title, message, id, closeable, closeCallback);
+ vp.add(msg);
+ }
}
Modified: trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/test/java/cc/kune/core/server/integration/site/UserServiceTest.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -23,7 +23,8 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import java.util.List;
+import java.util.Iterator;
+import java.util.Set;
import org.junit.Before;
import org.junit.Test;
@@ -73,13 +74,12 @@
@Inject
UserService userService;
- private void assertEqualGroupLists(final List<GroupDTO> listDTO, final List<Group> list) {
+ private void assertEqualGroupLists(final Set<GroupDTO> listDTO, final Set<Group> list) {
assertEquals(listDTO.size(), list.size());
- for (int i = 0; i < listDTO.size(); i++) {
- final Object object = listDTO.get(i);
- assertEquals(GroupDTO.class, object.getClass());
- final GroupDTO d = (GroupDTO) object;
- final Group l = list.get(i);
+ final Iterator<Group> ite = list.iterator();
+ for (final GroupDTO groupDTO : listDTO) {
+ final GroupDTO d = groupDTO;
+ final Group l = ite.next();
assertNotNull(d);
assertNotNull(l);
final GroupDTO map = mapper.map(l, GroupDTO.class);
@@ -156,8 +156,8 @@
final UserInfoDTO userInfoDTO = mapper.map(userInfo, UserInfoDTO.class);
assertEquals(userInfo.getName(), userInfoDTO.getName());
assertEquals(userInfo.getChatName(), userInfoDTO.getChatName());
- final List<Group> adminsGroup = userInfo.getGroupsIsAdmin();
- final List<GroupDTO> adminsGroupDTO = userInfoDTO.getGroupsIsAdmin();
+ final Set<Group> adminsGroup = userInfo.getGroupsIsAdmin();
+ final Set<GroupDTO> adminsGroupDTO = userInfoDTO.getGroupsIsAdmin();
assertEqualGroupLists(adminsGroupDTO, adminsGroup);
}
Modified: trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/test/java/cc/kune/core/server/integration/socialnet/SocialNetworkMembersTest.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -21,7 +21,7 @@
import static org.junit.Assert.assertEquals;
-import java.util.List;
+import java.util.Set;
import org.junit.Before;
import org.junit.Test;
@@ -37,34 +37,34 @@
import com.google.inject.persist.Transactional;
public class SocialNetworkMembersTest extends IntegrationTest {
- @Inject
- UserSession session;
- @Inject
- SocialNetworkManager socialNetManager;
- @Inject
- GroupManager groupFinder;
+ private Group group;
+ @Inject
+ GroupManager groupFinder;
+ @Inject
+ UserSession session;
- private Group group;
+ @Inject
+ SocialNetworkManager socialNetManager;
- @Transactional
- @Before
- public void init() {
- new IntegrationTestHelper(this);
- group = groupFinder.findByShortName(getSiteAdminShortName());
- }
+ @Transactional
+ @Before
+ public void init() {
+ new IntegrationTestHelper(this);
+ group = groupFinder.findByShortName(getSiteAdminShortName());
+ }
- @Test
- public void testAdminMembersOfGroupFinder() throws Exception {
- doLogin();
- final List<Group> result = groupFinder.findAdminInGroups(group.getId());
- assertEquals(2, result.size());
- }
+ @Test
+ public void testAdminMembersOfGroupFinder() throws Exception {
+ doLogin();
+ final Set<Group> result = groupFinder.findAdminInGroups(group.getId());
+ assertEquals(2, result.size());
+ }
- @Test
- public void testCollabMembersOfGroupFinder() throws Exception {
- doLogin();
- final List<Group> result = groupFinder.findCollabInGroups(group.getId());
- assertEquals(0, result.size());
- }
+ @Test
+ public void testCollabMembersOfGroupFinder() throws Exception {
+ doLogin();
+ final Set<Group> result = groupFinder.findCollabInGroups(group.getId());
+ assertEquals(0, result.size());
+ }
}
Modified: trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java
===================================================================
--- trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2011-08-11 11:40:45 UTC (rev 1491)
+++ trunk/src/test/java/cc/kune/core/server/mapper/MapperTest.java 2011-08-12 18:33:43 UTC (rev 1492)
@@ -26,7 +26,9 @@
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.junit.Before;
import org.junit.Ignore;
@@ -86,14 +88,13 @@
}
private void assertValidAccessListsMapping(final GroupList groupList, final GroupListDTO groupListDTO) {
- final List<Group> listOrig = groupList.getList();
- final List<GroupDTO> listDto = groupListDTO.getList();
+ final Set<Group> listOrig = groupList.getList();
+ final Set<GroupDTO> listDto = groupListDTO.getList();
assertEquals(listDto.size(), listOrig.size());
- for (int i = 0; i < listDto.size(); i++) {
- final Object object = listDto.get(i);
- assertEquals(GroupDTO.class, object.getClass());
- final GroupDTO d = (GroupDTO) object;
- final Group g = listOrig.get(i);
+ final Iterator<Group> ite = listOrig.iterator();
+ for (final GroupDTO groupDTO : listDto) {
+ final GroupDTO d = groupDTO;
+ final Group g = ite.next();
assertNotNull(d);
assertNotNull(g);
final GroupDTO map = mapper.map(g, GroupDTO.class);
@@ -324,8 +325,8 @@
assertEquals(SocialNetworkVisibility.onlymembers, map.getSocialNetworkVisibility());
assertEquals(UserSNetVisibility.yourbuddies, map.getUserBuddiesVisibility());
assertEquals("test",
- map.getGroupMembers().getAccessLists().getAdmins().getList().get(0).getShortName());
- assertEquals("test", map.getUserParticipation().getGroupsIsAdmin().get(0).getShortName());
+ map.getGroupMembers().getAccessLists().getAdmins().getList().iterator().next().getShortName());
+ assertEquals("test", map.getUserParticipation().getGroupsIsAdmin().iterator().next().getShortName());
assertEquals("usertest", map.getUserBuddies().getBuddies().get(0).getShortName());
assertFalse(map.getGroupRights().isAdministrable());
assertFalse(map.getGroupRights().isEditable());
1
0