You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/04/17 13:27:21 UTC
svn commit: r1739582 [2/2] - in /openmeetings/application:
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/
branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/red5/
branches/3.2.x/openm...
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.html Sun Apr 17 11:27:20 2016
@@ -96,16 +96,12 @@
<fieldset class="ui-widget-content">
<legend class="ui-widget-header"><wicket:message key="881" /></legend>
<div class="formelement">
+ <div class="info-text"><wicket:message key="880" /></div>
<label><wicket:message key="879" /></label><input type="checkbox" class="formcheckbox" wicket:id="allowUserQuestions" />
</div>
<div class="formelement">
- <wicket:message key="880" />
- <br/>
- <label><wicket:message key="1076" /></label><input type="checkbox" class="formcheckbox" wicket:id="audioOnly" />
- </div>
- <div class="formelement">
<div class="info-text"><wicket:message key="1077" /></div>
- <label><wicket:message key="1531" /></label><input type="checkbox" class="formcheckbox" wicket:id="allowFontStyles" />
+ <label><wicket:message key="1076" /></label><input type="checkbox" class="formcheckbox" wicket:id="audioOnly" />
</div>
<div class="formelement">
<div class="info-text"><wicket:message key="1101" /></div>
@@ -122,6 +118,9 @@
<div class="formelement">
<label><wicket:message key="1355" /></label><input type="checkbox" class="formcheckbox" wicket:id="allowRecording" />
</div>
+ <div class="formelement">
+ <label><wicket:message key="1513" /></label><input type="checkbox" class="formcheckbox" wicket:id="chatModerated" />
+ </div>
</fieldset>
<!-- Room Layout options -->
@@ -152,9 +151,6 @@
<label><wicket:message key="1442" /></label><input type="checkbox" class="formcheckbox" wicket:id="showMicrophoneStatus" />
</div>
<div class="formelement">
- <label><wicket:message key="1513" /></label><input type="checkbox" class="formcheckbox" wicket:id="chatModerated" />
- </div>
- <div class="formelement">
<label><wicket:message key="1515" /></label><input type="checkbox" class="formcheckbox" wicket:id="chatOpened" />
</div>
<div class="formelement">
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/KickMessageDialog.java Sun Apr 17 11:27:20 2016
@@ -33,32 +33,21 @@ public class KickMessageDialog extends A
public KickMessageDialog(String id) {
super(id, "");
- add(new Label("message", Application.getString(606)));
}
@Override
protected void onInitialize() {
super.onInitialize();
- add(new JQueryBehavior(JQueryWidget.getSelector(this), "dialog") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected String $() {
- return this.$(Options.asString("open"));
- }
- });
+ add(new Label("message", getString("606")));
};
@Override
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
+ behavior.setOption("autoOpen", true);
behavior.setOption("closeOnEscape", false);
- behavior.setOption("dialogClass", Options.asString("no-close"));
- behavior.setOption("resizable", false);
- }
-
- public String getOnClickJavaScript() {
- return "$('#" + getButtons().get(0).getMarkupId() +"').click(function(e){$('#" + getMarkupId() +"').close(); })";
+ behavior.setOption("dialogClass", Options.asString("no-close"));
+ behavior.setOption("resizable", false);
}
@Override
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java Sun Apr 17 11:27:20 2016
@@ -58,7 +58,7 @@ public class ResetPasswordDialog extends
public ResetPasswordDialog(String id, final User user) {
super(id, Application.getString(325));
this.user = user;
- add(form = new Form<String>("form"){
+ add(form = new Form<String>("form") {
private static final long serialVersionUID = 1L;
private TextField<String> login;
private PasswordTextField confirmPassword;
@@ -76,14 +76,14 @@ public class ResetPasswordDialog extends
confirmPassword.setLabel(Model.of(Application.getString(329)));
confirmPassword.setRequired(true).add(minimumLength(getMinPasswdLength(cfgDao)));
- add(new AjaxButton("submit") { //FAKE button so "submit-on-enter" works as expected
+ add(new AjaxButton("submit") { // FAKE button so "submit-on-enter" works as expected
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
ResetPasswordDialog.this.onSubmit(target);
}
-
+
@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
ResetPasswordDialog.this.onError(target);
@@ -99,18 +99,19 @@ public class ResetPasswordDialog extends
}
super.onValidate();
}
-
+
});
- confirmReset = new MessageDialog("confirmReset", Application.getString(325), Application.getString(332), DialogButtons.OK, DialogIcon.INFO){
+ confirmReset = new MessageDialog("confirmReset", Application.getString(325), Application.getString(332),
+ DialogButtons.OK, DialogIcon.INFO) {
private static final long serialVersionUID = 1L;
@Override
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
- behavior.setOption("dialogClass", Options.asString("no-close"));
+ behavior.setOption("dialogClass", Options.asString("no-close"));
behavior.setOption("closeOnEscape", false);
}
-
+
@Override
public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
setResponsePage(Application.get().getSignInPageClass());
@@ -118,11 +119,12 @@ public class ResetPasswordDialog extends
};
add(confirmReset);
}
-
+
@Override
public void onConfigure(JQueryBehavior behavior) {
super.onConfigure(behavior);
- behavior.setOption("dialogClass", Options.asString("no-close"));
+ behavior.setOption("autoOpen", true);
+ behavior.setOption("dialogClass", Options.asString("no-close"));
behavior.setOption("closeOnEscape", false);
}
@@ -130,7 +132,7 @@ public class ResetPasswordDialog extends
protected List<DialogButton> getButtons() {
return Arrays.asList(resetBtn);
}
-
+
@Override
public DialogButton getSubmitButton() {
return resetBtn;
@@ -154,26 +156,13 @@ public class ResetPasswordDialog extends
error(e.getMessage());
}
}
-
+
@Override
public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
- if (resetBtn.equals(button)){
+ if (resetBtn.equals(button)) {
confirmReset.open(handler);
} else {
setResponsePage(Application.get().getSignInPageClass());
}
}
-
- @Override
- protected void onInitialize() {
- super.onInitialize();
- add(new JQueryBehavior(JQueryWidget.getSelector(this), "dialog") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected String $() {
- return this.$(Options.asString("open"));
- }
- });
- }
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java Sun Apr 17 11:27:20 2016
@@ -62,7 +62,6 @@ import org.apache.wicket.ajax.AjaxReques
import org.apache.wicket.ajax.json.JSONException;
import org.apache.wicket.ajax.json.JSONObject;
import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.request.IRequestParameters;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.flow.RedirectToUrlException;
@@ -150,7 +149,6 @@ public class SignInPage extends BaseInit
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
- response.render(OnDomReadyHeaderItem.forScript(m.getOnClickJavaScript()));
}
@Override
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java?rev=1739582&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ExpiredMessageDialog.java Sun Apr 17 11:27:20 2016
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room;
+
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+public class ExpiredMessageDialog extends MessageDialog {
+ private static final long serialVersionUID = 1L;
+ private final RoomMenuPanel menu;
+
+ public ExpiredMessageDialog(String id, String message, RoomMenuPanel menu) {
+ super(id, Application.getString(204), message, DialogButtons.OK, DialogIcon.ERROR);
+ this.menu = menu;
+ }
+
+ @Override
+ public boolean isModal() {
+ return true;
+ }
+
+ @Override
+ public void onConfigure(JQueryBehavior behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("autoOpen", true);
+ }
+
+ @Override
+ public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
+ menu.exit(handler);
+ }
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java?rev=1739582&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/OmRedirectTimerBehavior.java Sun Apr 17 11:27:20 2016
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.util.time.Duration;
+
+public abstract class OmRedirectTimerBehavior extends AbstractAjaxTimerBehavior {
+ private static final long serialVersionUID = 1L;
+ private final long clock;
+ private final int delay;
+ private final String labelId;
+
+ public OmRedirectTimerBehavior(int delay, String labelId) {
+ super(Duration.ONE_SECOND);
+ clock = System.currentTimeMillis();
+ this.delay = delay;
+ this.labelId = labelId;
+ }
+
+ protected static String getTime(int remain) {
+ return Duration.seconds(remain).toString(WebSession.get().getLocale());
+ }
+
+ public static String getText(String text, int remain) {
+ return String.format("%s: %s", text, getTime(remain));
+ }
+
+ protected String getText(int remain) {
+ return getText(getComponent().getString(labelId), remain);
+ }
+
+ private int remain(long now) {
+ return (int)(delay - (now - clock) / 1000);
+ }
+
+ @Override
+ protected void onBind() {
+ super.onBind();
+ getComponent().setDefaultModelObject(getText(delay));
+ getComponent().setOutputMarkupId(true);
+ onTimer(delay);
+ }
+
+ protected void onTimer(int remain) {
+ }
+
+ @Override
+ protected void onTimer(AjaxRequestTarget target) {
+ int remain = remain(System.currentTimeMillis());
+ if (remain > -1) {
+ getComponent().setDefaultModelObject(getText(remain));
+ onTimer(remain);
+ target.add(getComponent());
+ } else {
+ stop(target);
+ onFinish(target);
+ }
+ }
+
+ protected abstract void onFinish(AjaxRequestTarget target);
+}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java?rev=1739582&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RedirectMessageDialog.java Sun Apr 17 11:27:20 2016
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room;
+
+import java.util.ArrayList;
+
+import org.apache.directory.api.util.Strings;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.wicket.Component;
+import org.apache.wicket.RestartResponseException;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.request.flow.RedirectToUrlException;
+
+import com.googlecode.wicket.jquery.core.JQueryBehavior;
+import com.googlecode.wicket.jquery.core.Options;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
+import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
+import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
+
+public class RedirectMessageDialog extends MessageDialog {
+ private static final long serialVersionUID = 1L;
+ private final String labelId;
+ private final String url;
+ private final int delay = 5;
+ private final boolean autoOpen;
+ private Component label;
+
+ public RedirectMessageDialog(String id, String labelId, boolean autoOpen, String url) {
+ super(id, Application.getString(204), "", new ArrayList<DialogButton>(), DialogIcon.ERROR);
+ this.labelId = labelId;
+ this.url = url;
+ this.autoOpen = autoOpen;
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ if (autoOpen) {
+ startTimer(null);
+ }
+ }
+
+ private void startTimer(IPartialPageRequestHandler handler) {
+ label.add(new OmRedirectTimerBehavior(delay, labelId) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void onFinish(AjaxRequestTarget target) {
+ if (Strings.isEmpty(url)) {
+ throw new RestartResponseException(Application.get().getHomePage());
+ } else {
+ throw new RedirectToUrlException(url);
+ }
+ }
+ });
+ if (handler != null) {
+ handler.add(label);
+ }
+ }
+
+ @Override
+ protected void onOpen(IPartialPageRequestHandler handler) {
+ super.onOpen(handler);
+ startTimer(handler);
+ }
+
+ @Override
+ public void onConfigure(JQueryBehavior behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("autoOpen", autoOpen);
+ behavior.setOption("closeOnEscape", false);
+ behavior.setOption("dialogClass", Options.asString("no-close"));
+ behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public boolean isModal() {
+ return true;
+ }
+
+ @Override
+ public boolean isDefaultCloseEventEnabled() {
+ return false;
+ }
+
+ @Override
+ public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
+ }
+
+ @Override
+ protected Component newLabel(String id, IModel<String> model) {
+ label = super.newLabel(id, model);
+ return label;
+ }
+}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html Sun Apr 17 11:27:20 2016
@@ -28,13 +28,15 @@
</wicket:head>
<wicket:panel>
<div wicket:id="roomContainer" style="height: 100%">
- <div class="room menu" wicket:id="roomMenu"></div>
+ <div class="room menu" wicket:id="menu"></div>
<div class="room sidebar left" wicket:id="sidebar"></div>
<div class="room wb area">
<div class="wb" wicket:id="whiteboard"></div>
</div>
- <div wicket:id="activitiesPanel"></div>
+ <div wicket:id="activities"></div>
</div>
- <div wicket:id="accessDenied"></div>
+ <div wicket:id="access-denied"></div>
+ <div wicket:id="room-closed"></div>
+ <div wicket:id="wait-for-recording"></div>
</wicket:panel>
</html>
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java Sun Apr 17 11:27:20 2016
@@ -38,6 +38,8 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.TextRoomMessage;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.WebSession;
@@ -45,8 +47,6 @@ import org.apache.openmeetings.web.commo
import org.apache.openmeetings.web.room.activities.ActivitiesPanel;
import org.apache.openmeetings.web.room.activities.Activity;
import org.apache.openmeetings.web.room.menu.RoomMenuPanel;
-import org.apache.openmeetings.web.room.message.RoomMessage;
-import org.apache.openmeetings.web.room.message.TextRoomMessage;
import org.apache.openmeetings.web.room.sidebar.RoomSidebar;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -84,6 +84,7 @@ import com.googlecode.wicket.jquery.ui.w
public class RoomPanel extends BasePanel {
private static final long serialVersionUID = 1L;
private static final Logger log = Red5LoggerFactory.getLogger(RoomPanel.class, webAppRootKey);
+ private static final String ACCESS_DENIED_ID = "access-denied";
private final Room r;
private final WebMarkupContainer room = new WebMarkupContainer("roomContainer");
private final AbstractDefaultAjaxBehavior aab = new AbstractDefaultAjaxBehavior() {
@@ -110,13 +111,14 @@ public class RoomPanel extends BasePanel
.put("labels", getStringLabels(448, 449, 450, 451, 758, 447, 52, 53, 1429, 1430, 775, 452, 767, 764, 765, 918, 54, 761, 762))
.toString()
));
- broadcast(new RoomMessage(r.getId(), RoomMessage.Type.roomEnter));
+ broadcast(new RoomMessage(r.getId(), getUserId(), RoomMessage.Type.roomEnter));
getMainPage().getChat().roomEnter(r, target);
} catch (MalformedURLException e) {
log.error("Error while constructing room parameters", e);
}
}
};
+ private RedirectMessageDialog roomClosed;
private RoomMenuPanel menu;
private RoomSidebar sidebar;
private ActivitiesPanel activities;
@@ -130,66 +132,92 @@ public class RoomPanel extends BasePanel
protected void onInitialize() {
getClient().setRoomId(r.getId());
super.onInitialize();
- Component accessDenied = new WebMarkupContainer("accessDenied").setVisible(false);
- boolean allowed = false;
- String deniedMessage = null;
- if (r.isAppointment()) {
- Appointment a = getBean(AppointmentDao.class).getByRoom(r.getId());
- if (a != null && !a.isDeleted()) {
- allowed = a.getOwner().getId().equals(getUserId());
- log.debug("appointed room, isOwner ? " + allowed);
+ Component accessDenied = new WebMarkupContainer(ACCESS_DENIED_ID).setVisible(false);
+ add(roomClosed = new RedirectMessageDialog("room-closed", "1098", r.isClosed(), r.getRedirectURL()));
+ if (r.isClosed()) {
+ room.setVisible(false);
+ } else if (r.getNumberOfPartizipants() >= getRoomUsers(r.getId()).size()) {
+ accessDenied = new ExpiredMessageDialog(ACCESS_DENIED_ID, getString("99"), menu);
+ room.setVisible(false);
+ } else {
+ boolean allowed = false;
+ String deniedMessage = null;
+ if (r.isAppointment()) {
+ Appointment a = getBean(AppointmentDao.class).getByRoom(r.getId());
+ if (a != null && !a.isDeleted()) {
+ allowed = a.getOwner().getId().equals(getUserId());
+ log.debug("appointed room, isOwner ? " + allowed);
+ if (!allowed) {
+ for (MeetingMember mm : a.getMeetingMembers()) {
+ if (mm.getUser().getId() == getUserId()) {
+ allowed = true;
+ break;
+ }
+ }
+ }
+ /*
+ TODO need to be reviewed
+ Calendar c = WebSession.getCalendar();
+ if (c.getTime().after(a.getStart()) && c.getTime().before(a.getEnd())) {
+ allowed = true;
+ } else {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm"); //FIXME format
+ deniedMessage = getString("1271") + String.format(" %s - %s", sdf.format(a.getStart()), sdf.format(a.getEnd()));
+ }
+ */
+ }
+ } else {
+ allowed = r.getIspublic() || (r.getOwnerId() != null && r.getOwnerId().equals(getUserId()));
+ log.debug("public ? " + r.getIspublic() + ", ownedId ? " + r.getOwnerId() + " " + allowed);
if (!allowed) {
- for (MeetingMember mm : a.getMeetingMembers()) {
- if (mm.getUser().getId() == getUserId()) {
- allowed = true;
+ User u = getBean(UserDao.class).get(getUserId());
+ for (RoomGroup ro : r.getRoomGroups()) {
+ for (GroupUser ou : u.getGroupUsers()) {
+ if (ro.getGroup().getId().equals(ou.getGroup().getId())) {
+ allowed = true;
+ break;
+ }
+ }
+ if (allowed) {
break;
}
}
}
- /*
- TODO need to be reviewed
- Calendar c = WebSession.getCalendar();
- if (c.getTime().after(a.getStart()) && c.getTime().before(a.getEnd())) {
- allowed = true;
- } else {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm"); //FIXME format
- deniedMessage = getString("1271") + String.format(" %s - %s", sdf.format(a.getStart()), sdf.format(a.getEnd()));
- }
- */
}
- } else {
- allowed = r.getIspublic() || (r.getOwnerId() != null && r.getOwnerId().equals(getUserId()));
- log.debug("public ? " + r.getIspublic() + ", ownedId ? " + r.getOwnerId() + " " + allowed);
if (!allowed) {
- User u = getBean(UserDao.class).get(getUserId());
- for (RoomGroup ro : r.getRoomGroups()) {
- for (GroupUser ou : u.getGroupUsers()) {
- if (ro.getGroup().getId().equals(ou.getGroup().getId())) {
- allowed = true;
- break;
- }
- }
- if (allowed) {
- break;
- }
+ if (deniedMessage == null) {
+ deniedMessage = getString("1599");
}
+ accessDenied = new ExpiredMessageDialog(ACCESS_DENIED_ID, deniedMessage, menu);
+ room.setVisible(false);
}
}
- if (!allowed) {
- if (deniedMessage == null) {
- deniedMessage = getString("1599");
- }
- accessDenied = new ExpiredMessageDialog("accessDenied", deniedMessage);
- room.setVisible(false);
- }
- room.add((menu = new RoomMenuPanel("roomMenu", this)).setVisible(!r.getHideTopBar()));
+ room.add((menu = new RoomMenuPanel("menu", this)).setVisible(!r.getHideTopBar()));
WebMarkupContainer wb = new WebMarkupContainer("whiteboard");
room.add(wb.setOutputMarkupId(true));
room.add(new WhiteboardBehavior("1", wb.getMarkupId(), null, null, null));
room.add(aab);
room.add(sidebar = new RoomSidebar("sidebar", this));
- room.add((activities = new ActivitiesPanel("activitiesPanel", this)).setVisible(!r.isActivitiesHidden()));
+ room.add((activities = new ActivitiesPanel("activities", this)).setVisible(!r.isActivitiesHidden()));
add(room, accessDenied);
+ if (r.getWaitForRecording()) {
+ add(new MessageDialog("wait-for-recording", getString("1316"), getString("1315"), DialogButtons.OK, DialogIcon.INFO) {//DialogIcon.LIGHT
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onConfigure(JQueryBehavior behavior) {
+ super.onConfigure(behavior);
+ behavior.setOption("autoOpen", true);
+ behavior.setOption("resizable", false);
+ }
+
+ @Override
+ public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
+ }
+ });
+ } else {
+ add(new WebMarkupContainer("wait-for-recording").setVisible(false));
+ }
}
@Override
@@ -218,6 +246,10 @@ public class RoomPanel extends BasePanel
sidebar.updateUsers(handler);
activities.add(new Activity(m.getUid(), m.getUserId(), Activity.Type.roomExit), handler);
break;
+ case roomClosed:
+ handler.add(room.setVisible(false));
+ roomClosed.open(handler);
+ break;
case requestRightModerator:
if (isModerator(getUserId(), r.getId())) {
TextRoomMessage tm = (TextRoomMessage)m;
@@ -347,32 +379,6 @@ public class RoomPanel extends BasePanel
}
}
- class ExpiredMessageDialog extends MessageDialog {
- private static final long serialVersionUID = 1L;
- public boolean autoOpen = false;
-
- public ExpiredMessageDialog(String id, String message) {
- super(id, Application.getString(204), message, DialogButtons.OK, DialogIcon.ERROR);
- autoOpen = true;
- }
-
- @Override
- public boolean isModal() {
- return true;
- }
-
- @Override
- public void onConfigure(JQueryBehavior behavior) {
- super.onConfigure(behavior);
- behavior.setOption("autoOpen", autoOpen);
- }
-
- @Override
- public void onClose(IPartialPageRequestHandler handler, DialogButton button) {
- menu.exit(handler);
- }
- }
-
public Room getRoom() {
return r;
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java Sun Apr 17 11:27:20 2016
@@ -35,12 +35,12 @@ import java.util.Map;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.TextRoomMessage;
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.Client.Right;
import org.apache.openmeetings.web.common.BasePanel;
import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.room.message.RoomMessage;
-import org.apache.openmeetings.web.room.message.TextRoomMessage;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -94,7 +94,7 @@ public class ActivitiesPanel extends Bas
break;
case decline:
if (isModerator(getUserId(), roomId)) {
- broadcast(new TextRoomMessage(room.getRoom().getId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
}
break;
case accept:
@@ -110,8 +110,8 @@ public class ActivitiesPanel extends Bas
}
if (client != null) {
client.getRights().add(Right.moderator);
- broadcast(new TextRoomMessage(room.getRoom().getId(), RoomMessage.Type.activityRemove, uid));
- broadcast(new RoomMessage(room.getRoom().getId(), RoomMessage.Type.rightUpdated));
+ broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.activityRemove, uid));
+ broadcast(new RoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.rightUpdated));
}
break;
default:
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java Sun Apr 17 11:27:20 2016
@@ -34,19 +34,19 @@ import org.apache.openmeetings.db.dao.us
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.entity.user.User.Right;
+import org.apache.openmeetings.util.message.RoomMessage;
+import org.apache.openmeetings.util.message.TextRoomMessage;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.Client;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.OmButton;
import org.apache.openmeetings.web.common.menu.MenuPanel;
import org.apache.openmeetings.web.common.menu.RoomMenuItem;
+import org.apache.openmeetings.web.room.OmRedirectTimerBehavior;
import org.apache.openmeetings.web.room.RoomPanel;
-import org.apache.openmeetings.web.room.message.RoomMessage;
-import org.apache.openmeetings.web.room.message.TextRoomMessage;
import org.apache.openmeetings.web.room.poll.CreatePollDialog;
import org.apache.openmeetings.web.room.poll.PollResultsDialog;
import org.apache.openmeetings.web.room.poll.VoteDialog;
-import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -55,7 +55,6 @@ import org.apache.wicket.markup.html.pan
import org.apache.wicket.model.Model;
import org.apache.wicket.request.flow.RedirectToUrlException;
import org.apache.wicket.util.string.Strings;
-import org.apache.wicket.util.time.Duration;
import com.googlecode.wicket.jquery.ui.widget.menu.IMenuItem;
@@ -75,7 +74,7 @@ public class RoomMenuPanel extends Panel
}
@Override
protected void onClick(AjaxRequestTarget target) {
- RoomPanel.broadcast(new TextRoomMessage(room.getRoom().getId(), RoomMessage.Type.requestRightModerator, room.getClient().getUid()));
+ RoomPanel.broadcast(new TextRoomMessage(room.getRoom().getId(), getUserId(), RoomMessage.Type.requestRightModerator, room.getClient().getUid()));
}
};
private final RoomPanel room;
@@ -155,18 +154,6 @@ public class RoomMenuPanel extends Panel
}
- private static String getDemoTime(int remain) {
- return Duration.seconds(remain).toString(WebSession.get().getLocale());
- }
-
- private String getDemoText(int remain) {
- return String.format("%s: %s", getString("637"), getDemoTime(remain));
- }
-
- private String getDemoTitle(int remain) {
- return String.format("%s: %s", getString("639"), getDemoTime(remain));
- }
-
@Override
protected void onInitialize() {
super.onInitialize();
@@ -175,31 +162,17 @@ public class RoomMenuPanel extends Panel
Room r = room.getRoom();
add(demo.setVisible(r.isDemoRoom() && r.getDemoTime() != null && room.getRoom().getDemoTime().intValue() > 0));
if (demo.isVisible()) {
- demo.setOutputMarkupId(true);
- demo.setDefaultModelObject(getDemoText(r.getDemoTime().intValue()));
- demo.add(AttributeAppender.replace("title", getDemoTitle(r.getDemoTime().intValue())));
- demo.add(new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) {
+ demo.add(new OmRedirectTimerBehavior(room.getRoom().getDemoTime().intValue(), "637") {
private static final long serialVersionUID = 1L;
- private final long clock;
- {
- clock = System.currentTimeMillis();
- }
- private int remain(long now) {
- return (int)(room.getRoom().getDemoTime().longValue() - (now - clock) / 1000);
+ @Override
+ protected void onTimer(int remain) {
+ getComponent().add(AttributeAppender.replace("title", getText("639", remain)));
}
-
+
@Override
- protected void onTimer(AjaxRequestTarget target) {
- int remain = remain(System.currentTimeMillis());
- if (remain > -1) {
- getComponent().setDefaultModelObject(getDemoText(remain));
- getComponent().add(AttributeAppender.replace("title", getDemoTitle(remain)));
- target.add(getComponent());
- } else {
- stop(target);
- exit(target);
- }
+ protected void onFinish(AjaxRequestTarget target) {
+ exit(target);
}
});
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java Sun Apr 17 11:27:20 2016
@@ -193,7 +193,6 @@ public class MessageDialog extends Abstr
r.setNumberOfPartizipants(100L);
r.setAppointment(true);
r.setAllowUserQuestions(true);
- r.setAllowFontStyles(true);
r = getBean(RoomDao.class).update(r, getUserId());
Appointment a = new Appointment();
a.setTitle(m.getSubject());
Modified: openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1739582&r1=1739581&r2=1739582&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java (original)
+++ openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java Sun Apr 17 11:27:20 2016
@@ -22,9 +22,7 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.webservice.Constants.TNS;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import javax.jws.WebMethod;
import javax.jws.WebParam;
@@ -40,7 +38,6 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
-import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.db.dao.room.IInvitationManager;
import org.apache.openmeetings.db.dao.room.InvitationDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -57,7 +54,13 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.util.OpenmeetingsVariables;
+import org.apache.openmeetings.util.message.RoomMessage;
import org.apache.openmeetings.webservice.error.ServiceException;
+import org.apache.wicket.Application;
+import org.apache.wicket.protocol.ws.WebSocketSettings;
+import org.apache.wicket.protocol.ws.api.IWebSocketConnection;
+import org.apache.wicket.protocol.ws.api.registry.IWebSocketConnectionRegistry;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -86,8 +89,6 @@ public class RoomWebService {
@Autowired
private IInvitationManager invitationManager;
@Autowired
- private ScopeApplicationAdapter scopeApplicationAdapter;
- @Autowired
private ISessionManager sessionManager;
@Autowired
private RoomDao roomDao;
@@ -317,10 +318,16 @@ public class RoomWebService {
roomDao.update(room, userId);
- Map<String, String> message = new HashMap<String, String>();
- message.put("message", "roomClosed");
- scopeApplicationAdapter.sendMessageByRoomAndDomain(id, message);
-
+ Application app = Application.get(OpenmeetingsVariables.wicketApplicationName);
+ WebSocketSettings settings = WebSocketSettings.Holder.get(app);
+ IWebSocketConnectionRegistry registry = settings.getConnectionRegistry();
+ RoomMessage cm = new RoomMessage(room.getId(), userId, RoomMessage.Type.roomClosed);
+ for (IWebSocketConnection wc : registry.getConnections(app)) {
+ if (wc != null && wc.isOpen()) {
+ wc.sendMessage(cm);
+ }
+ }
+
return new ServiceResult(1L, "Closed", Type.SUCCESS);
} else {
throw new ServiceException("Insufficient permissions"); //TODO code -26