This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new b5886bd [OPENMEETINGS-2081] some ajax calls are moved to WS
b5886bd is described below
commit b5886bd1173eb794a0a2c5ea2909b8596a7bde4e
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Sun Aug 18 19:42:07 2019 +0700
[OPENMEETINGS-2081] some ajax calls are moved to WS
---
.../openmeetings/db/dto/room/Whiteboard.java | 1 +
.../web/app/Application_ru.properties.xml | 2 +-
.../org/apache/openmeetings/web/common/main.js | 3 +
.../apache/openmeetings/web/pages/MainPage.java | 10 +-
.../apache/openmeetings/web/room/RoomPanel.java | 5 +-
.../org/apache/openmeetings/web/room/raw-sharer.js | 1 -
.../openmeetings/web/room/raw-video-manager.js | 2 +-
.../org/apache/openmeetings/web/room/raw-video.js | 2 +-
.../openmeetings/web/room/sidebar/RoomSidebar.java | 165 ++++++++++-----------
.../web/room/sidebar/icon/ClientIcon.java | 13 +-
.../web/room/sidebar/icon/KickIcon.java | 4 +-
.../web/room/sidebar/icon/right/RoomRightIcon.java | 6 +-
.../apache/openmeetings/web/room/wb/WbPanel.java | 3 +-
.../openmeetings/web/room/wb/raw-tool-apointer.js | 2 +-
.../openmeetings/web/room/wb/raw-tool-clipart.js | 1 +
.../openmeetings/web/room/wb/raw-tool-text.js | 25 +++-
.../openmeetings/web/room/wb/raw-tool-textbox.js | 5 +-
.../apache/openmeetings/web/room/wb/raw-wb-area.js | 10 +-
.../openmeetings/web/room/wb/raw-wb-board.js | 30 ++--
19 files changed, 153 insertions(+), 137 deletions(-)
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
index ee79f09..5a7f696 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
@@ -47,6 +47,7 @@ public class Whiteboard implements Serializable {
private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(Whiteboard.class);
public static final String ATTR_TYPE = "type";
+ public static final String ATTR_OMTYPE = "omType";
public static final String ATTR_FILE_ID = "fileId";
public static final String ATTR_FILE_TYPE = "fileType";
public static final String ATTR_SLIDE = "slide";
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
index 40cdd61..ad2c449 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
@@ -177,7 +177,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for
Details
<entry key="379"><![CDATA[Изображение]]></entry>
<entry key="387"><![CDATA[Импорт]]></entry>
<entry key="395"><![CDATA[Записи]]></entry>
- <entry key="398"><![CDATA[Участники :]]></entry>
+ <entry key="398"><![CDATA[Участники]]></entry>
<entry key="404"><![CDATA[Нажмите на комнату для деталей]]></entry>
<entry key="406"><![CDATA[Комната:]]></entry>
<entry key="407"><![CDATA[Участники в этой комнате:]]></entry>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
index 5701f7a..efb0f00 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
@@ -98,6 +98,9 @@ var OmUtil = (function() {
self.wbAction = function(_m) {
self.sendMessage(_m, {area: 'room', type: 'wb'});
};
+ self.roomAction = function(_m) {
+ self.sendMessage(_m, {area: 'room', type: 'room'});
+ };
self.getKeyCode = function(evt) {
let code = evt.code;
if (typeof (code) === 'undefined') {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
index 04026f5..605769a 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
@@ -97,12 +97,12 @@ public class MainPage extends BaseInitedPage {
@Override
protected void onParameterArrival(IRequestParameters params,
AjaxRequestTarget target) {
log.debug("MainPage::onParameterArrival");
- OmUrlFragment _f = getUrlFragment(params);
- if (_f != null) {
- uf = _f;
+ OmUrlFragment newf = getUrlFragment(params);
+ if (newf != null) {
+ uf = newf;
}
- if (loaded && _f != null) {
- main.updateContents(_f, target, false);
+ if (loaded && newf != null) {
+ main.updateContents(newf, target, false);
}
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 2326dfc..bd32425 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -118,6 +118,7 @@ public class RoomPanel extends BasePanel {
kick
, muteOthers
, mute
+ , toggleRight
}
private final Room r;
private final boolean interview;
@@ -170,7 +171,7 @@ public class RoomPanel extends BasePanel {
private void initVideos(AjaxRequestTarget target) {
StringBuilder sb = new StringBuilder();
JSONArray streams = new JSONArray();
- for (Client c: cm.listByRoom(getRoom().getId())) {
+ for (Client c : cm.listByRoom(getRoom().getId())) {
for (StreamDesc sd : c.getStreams()) {
streams.put(sd.toJson());
}
@@ -749,6 +750,8 @@ public class RoomPanel extends BasePanel {
if ("wb".equals(type)) {
WbAction a =
WbAction.valueOf(o.getString(PARAM_ACTION));
wb.processWbAction(a, o.optJSONObject("data"),
handler);
+ } else if ("room".equals(type)) {
+ sidebar.roomAction(handler, o);
}
}
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-sharer.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-sharer.js
index 7b94205..4a4015d 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-sharer.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-sharer.js
@@ -18,7 +18,6 @@ var Sharer = (function() {
} else {
type = sharer.find('select.type');
const b = kurentoUtils.WebRtcPeer.browser;
- type.find('option[value="' + (VideoUtil.isChrome() ?
'application' : 'tab') + '"]').remove();
type.selectmenu({
width: 150
, disabled: _typeDisabled(b)
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
index bc6de79..fad9045 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video-manager.js
@@ -242,7 +242,7 @@ var VideoManager = (function() {
, click: function() {
s.video.confirmMuteOthers = !$('#muteothers-confirm-dont-show').prop('checked');
VideoSettings.save();
-
roomAction('muteOthers', uid);
+
OmUtil.roomAction({action: 'muteOthers', uid: uid});
$(this).dialog('close');
}
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
index 7e7d0f5..8fab384 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-video.js
@@ -293,7 +293,7 @@ var Video = (function() {
})
.click(function(e) {
e.stopImmediatePropagation();
- roomAction('mute', JSON.stringify({uid: sd.uid,
mute: !muted}));
+ OmUtil.roomAction({action: 'mute', uid: sd.uid,
mute: !muted});
_mute(!muted);
volume.hide();
return false;
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 62eeacf..806a790 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -70,8 +70,6 @@ import
com.googlecode.wicket.jquery.ui.widget.dialog.DialogButton;
public class RoomSidebar extends Panel {
private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(RoomSidebar.class);
- public static final String FUNC_TOGGLE_RIGHT = "toggleRight";
- public static final String FUNC_ACTION = "roomAction";
public static final String FUNC_SETTINGS = "avSettings";
public static final String PARAM_ACTION = "action";
public static final String PARAM_RIGHT = "right";
@@ -112,90 +110,6 @@ public class RoomSidebar extends Panel {
item.add(new RoomClientPanel("user", item, room));
}
};
- private final AbstractDefaultAjaxBehavior roomAction = new
AbstractDefaultAjaxBehavior() {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void respond(AjaxRequestTarget target) {
- try {
- String uid =
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
- if (Strings.isEmpty(uid)) {
- return;
- }
- Client cl = room.getClient();
- Action a =
Action.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_ACTION).toString());
- switch (a) {
- case kick:
- if
(cl.hasRight(Right.moderator)) {
- kickedClient =
cm.get(uid);
- if (kickedClient ==
null) {
- return;
- }
- if
(!kickedClient.hasRight(Right.superModerator) &&
!cl.getUid().equals(kickedClient.getUid())) {
-
confirmKick.getDialog().open(target);
- }
- }
- break;
- case muteOthers:
- if
(room.getClient().hasRight(Right.muteOthers)) {
-
WebSocketHelper.sendRoom(new TextRoomMessage(room.getRoom().getId(), cl,
RoomMessage.Type.muteOthers, uid));
- }
- break;
- case mute:
- {
- JSONObject obj = uid.isEmpty()
? new JSONObject() : new JSONObject(uid);
- Client _c =
cm.get(obj.getString("uid"));
- if (_c == null ||
!_c.hasActivity(Client.Activity.AUDIO)) {
- return;
- }
- if
(cl.hasRight(Right.moderator) || cl.getUid().equals(_c.getUid())) {
- // basic checks, will
throw in case of missing options
- obj.getBoolean("mute");
- obj.put("sid",
cl.getSid());
-
WebSocketHelper.sendRoom(new TextRoomMessage(room.getRoom().getId(), cl,
RoomMessage.Type.mute, obj.toString()));
- }
- }
- break;
- default:
- }
- } catch (Exception e) {
- log.error("Unexpected exception while toggle
'roomAction'", e);
- }
- }
- };
- private final AbstractDefaultAjaxBehavior toggleRight = new
AbstractDefaultAjaxBehavior() {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void respond(AjaxRequestTarget target) {
- try {
- String uid =
getRequest().getRequestParameters().getParameterValue(PARAM_UID).toString();
- if (Strings.isEmpty(uid)) {
- return;
- }
- Right right =
Right.valueOf(getRequest().getRequestParameters().getParameterValue(PARAM_RIGHT).toString());
- if (room.getClient().hasRight(Right.moderator))
{
- Client client = cm.get(uid);
- if (client == null) {
- return;
- }
- if (client.hasRight(right)) {
- room.denyRight(client, right);
- } else {
- if (Right.video == right) {
- room.allowRight(client,
Right.audio, right);
- } else {
- room.allowRight(client,
right);
- }
- }
- } else {
- room.requestRight(right, target);
- }
- } catch (Exception e) {
- log.error("Unexpected exception while toggle
'right'", e);
- }
- }
- };
private final AbstractDefaultAjaxBehavior avSettings = new
AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@@ -248,7 +162,7 @@ public class RoomSidebar extends Panel {
, fileTab.setVisible(!room.isInterview()),
roomFiles.setVisible(!room.isInterview()));
add(addFolder, settings, userCount.setOutputMarkupId(true));
- add(toggleRight, roomAction, avSettings);
+ add(avSettings);
add(confirmKick = new ConfirmableAjaxBorder("confirm-kick",
getString("603"), getString("605")) {
private static final long serialVersionUID = 1L;
@@ -266,8 +180,6 @@ public class RoomSidebar extends Panel {
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
- response.render(new
PriorityHeaderItem(getNamedFunction(FUNC_TOGGLE_RIGHT, toggleRight,
explicit(PARAM_RIGHT), explicit(PARAM_UID))));
- response.render(new
PriorityHeaderItem(getNamedFunction(FUNC_ACTION, roomAction,
explicit(PARAM_ACTION), explicit(PARAM_UID))));
response.render(new
PriorityHeaderItem(getNamedFunction(FUNC_SETTINGS, avSettings,
explicit(PARAM_SETTINGS))));
}
@@ -314,4 +226,79 @@ public class RoomSidebar extends Panel {
public void removeActivity(String uid, IPartialPageRequestHandler
handler) {
activities.remove(handler, uid);
}
+
+ public void roomAction(IPartialPageRequestHandler handler, JSONObject
o) {
+ try {
+ final String uid = o.getString(PARAM_UID);
+ if (Strings.isEmpty(uid)) {
+ return;
+ }
+ Client self = room.getClient();
+ Action a = Action.valueOf(o.getString(PARAM_ACTION));
+ switch (a) {
+ case kick:
+ if (self.hasRight(Right.moderator)) {
+ kickedClient = cm.get(uid);
+ if (kickedClient == null) {
+ return;
+ }
+ if
(!kickedClient.hasRight(Right.superModerator) &&
!self.getUid().equals(kickedClient.getUid())) {
+
confirmKick.getDialog().open(handler);
+ }
+ }
+ break;
+ case muteOthers:
+ if
(room.getClient().hasRight(Right.muteOthers)) {
+ WebSocketHelper.sendRoom(new
TextRoomMessage(room.getRoom().getId(), self, RoomMessage.Type.muteOthers,
uid));
+ }
+ break;
+ case mute:
+ {
+ Client c = cm.get(uid);
+ if (c == null ||
!c.hasActivity(Client.Activity.AUDIO)) {
+ return;
+ }
+ if (self.hasRight(Right.moderator) ||
self.getUid().equals(c.getUid())) {
+ WebSocketHelper.sendRoom(new
TextRoomMessage(room.getRoom().getId(), self, RoomMessage.Type.mute
+ , new
JSONObject()
+
.put("sid", self.getSid())
+
.put(PARAM_UID, uid)
+
.put("mute", o.getBoolean("mute")).toString()));
+ }
+ }
+ break;
+ case toggleRight:
+ toggleRight(handler, self, uid, o);
+ break;
+ default:
+ }
+ } catch (Exception e) {
+ log.error("Unexpected exception while toggle
'roomAction'", e);
+ }
+ }
+
+ private void toggleRight(IPartialPageRequestHandler handler, Client
self, String uid, JSONObject o) {
+ try {
+ Right right = Right.valueOf(o.getString(PARAM_RIGHT));
+ if (self.hasRight(Right.moderator)) {
+ Client client = cm.get(uid);
+ if (client == null) {
+ return;
+ }
+ if (client.hasRight(right)) {
+ room.denyRight(client, right);
+ } else {
+ if (Right.video == right) {
+ room.allowRight(client,
Right.audio, right);
+ } else {
+ room.allowRight(client, right);
+ }
+ }
+ } else {
+ room.requestRight(right, handler);
+ }
+ } catch (Exception e) {
+ log.error("Unexpected exception while toggle 'right'",
e);
+ }
+ }
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
index cd73af3..212e0a4 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/ClientIcon.java
@@ -18,6 +18,12 @@
*/
package org.apache.openmeetings.web.room.sidebar.icon;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
+import static
org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick;
+
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -29,13 +35,8 @@ import
org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.spring.injection.annot.SpringBean;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
-import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
-import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
-import static
org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick;
-
public abstract class ClientIcon extends WebMarkupContainer {
+ protected static final String FUNC_ACTION = "OmUtil.roomAction";
private static final long serialVersionUID = 1L;
protected static final String ICON_CLASS = "ui-icon ";
protected static final String CLS_CLICKABLE = "clickable ";
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
index 35e33a8..b11ca55 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
@@ -18,8 +18,6 @@
*/
package org.apache.openmeetings.web.room.sidebar.icon;
-import static org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_ACTION;
-
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.web.room.RoomPanel.Action;
@@ -45,7 +43,7 @@ public class KickIcon extends ClientIcon {
@Override
protected String getScript() {
Client c = getClient();
- return c == null ? "" : String.format("%s('%s', '%s');",
FUNC_ACTION, Action.kick.name(), c.getUid());
+ return c == null ? "" : String.format("%s({action: '%s', uid:
'%s'});", FUNC_ACTION, Action.kick.name(), c.getUid());
}
@Override
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
index 9e301cb..04cd139 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
@@ -18,9 +18,8 @@
*/
package org.apache.openmeetings.web.room.sidebar.icon.right;
-import static
org.apache.openmeetings.web.room.sidebar.RoomSidebar.FUNC_TOGGLE_RIGHT;
-
import org.apache.openmeetings.db.entity.room.Room.Right;
+import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.openmeetings.web.room.sidebar.icon.ClientIcon;
public abstract class RoomRightIcon extends ClientIcon {
@@ -44,7 +43,8 @@ public abstract class RoomRightIcon extends ClientIcon {
@Override
protected String getScript() {
- return String.format("%s('%s', '%s');", FUNC_TOGGLE_RIGHT,
right.name(), uid);
+ return String.format("OmUtil.roomAction({action: '%s', right:
'%s', uid: '%s'});"
+ , RoomPanel.Action.toggleRight.name(),
right.name(), uid);
}
protected boolean visible() {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
index 0ee5598..8382649 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
@@ -23,6 +23,7 @@ import static
org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_FILE_ID;
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_FILE_TYPE;
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_HEIGHT;
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_SLIDE;
+import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_OMTYPE;
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_TYPE;
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_WIDTH;
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_ZOOM;
@@ -444,7 +445,7 @@ public class WbPanel extends AbstractWbPanel {
Whiteboard wb =
wbm.get(roomId).get(obj.getLong("wbId"));
String uid = obj.getString("uid");
JSONObject po = wb.get(uid);
- if (po != null &&
"video".equals(po.getString(ATTR_TYPE))) {
+ if (po != null &&
"Video".equals(po.getString(ATTR_OMTYPE))) {
JSONObject ns =
obj.getJSONObject(PARAM_STATUS);
po.put(PARAM_STATUS,
ns.put(PARAM_UPDATED, System.currentTimeMillis()));
wbm.update(roomId, wb.put(uid,
po));
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-apointer.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-apointer.js
index 0792545..33e850b 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-apointer.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-apointer.js
@@ -75,7 +75,7 @@ var APointer = function(wb, s, sBtn) {
pointer.user = $('.room-block .sidebar .user-list
.current .name').text();
}
const obj = {
- type: 'pointer'
+ omType: 'pointer'
, x: ptr.x
, y: ptr.y
, user: pointer.user
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-clipart.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-clipart.js
index 4c0546e..4e91d01 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-clipart.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-clipart.js
@@ -18,6 +18,7 @@ var Clipart = function(wb, btn, s, sBtn) {
art.orig.width = 32;
art.orig.height = 32;
art.obj =
fabric.util.groupSVGElements(elements, opts);
+ art.obj.set(opts);
canvas.add(art.obj);
});
} else {
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-text.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-text.js
index 4509b30..e283bcb 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-text.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-text.js
@@ -2,18 +2,30 @@
var Text = function(wb, s, sBtn) {
const text = ShapeBase();
text.obj = null;
- text.fabricType = 'i-text';
+ text.omType = 'i-text';
text.fill.color = '#000000';
text.stroke.enabled = false;
text.stroke.width = 50; //fontSize
text.stroke.color = '#000000';
text.style = {bold: false, italic: false};
+ function __valid(o) {
+ return !!o && text.omType === o.omType;
+ }
+ function __getObj(canvas, o) {
+ if (__valid(o)) {
+ return o;
+ } else {
+ const _o = canvas.getActiveObject();
+ return __valid(_o) ? _o : null;
+ }
+ }
text.createTextObj = function(canvas, pointer) {
return new fabric.IText('', {
left: pointer.x
, top: pointer.y
, padding: 7
+ , omType: text.omType
, fill: text.fill.enabled ? text.fill.color :
'rgba(0,0,0,0)'
, stroke: text.stroke.enabled ? text.stroke.color :
'rgba(0,0,0,0)'
, fontSize: text.stroke.width
@@ -33,8 +45,8 @@ var Text = function(wb, s, sBtn) {
text.mouseDown = function(o) {
const canvas = this
, pointer = canvas.getPointer(o.e)
- , ao = canvas.getActiveObject();
- if (!!ao && text.fabricType === ao.type) {
+ , ao = __getObj(canvas, o.target);
+ if (!!ao) {
text.obj = ao;
} else {
text.obj = text.createTextObj(canvas, pointer);
@@ -48,13 +60,16 @@ var Text = function(wb, s, sBtn) {
}
text._onMouseDown();
};
+ text._editable = function(o) {
+ return text.omType === o.omType;
+ }
text.activate = function() {
wb.eachCanvas(function(canvas) {
canvas.on('mouse:down', text.mouseDown);
canvas.on('mouse:dblclick', text.doubleClick);
canvas.selection = true;
canvas.forEachObject(function(o) {
- if (text.fabricType === o.type) {
+ if (text._editable(o)) {
o.selectable = true;
o.editable = true;
}
@@ -83,7 +98,7 @@ var Text = function(wb, s, sBtn) {
canvas.off('mouse:dblclick', text.doubleClick);
canvas.selection = false;
canvas.forEachObject(function(o) {
- if (text.fabricType === o.type) {
+ if (text.omType === o.omType) {
o.selectable = false;
o.editable = false;
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-textbox.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-textbox.js
index c1dbc28..0fa8c78 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-textbox.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-tool-textbox.js
@@ -1,7 +1,7 @@
/* Licensed under the Apache License, Version 2.0 (the "License")
http://www.apache.org/licenses/LICENSE-2.0 */
var Textbox = function(wb, s, sBtn) {
const text = Text(wb, s, sBtn);
- text.fabricType = 'textbox';
+ text.omType = 'textbox';
text.createTextObj = function(canvas, pointer) {
return new fabric.Textbox('', {
@@ -12,6 +12,7 @@ var Textbox = function(wb, s, sBtn) {
, stroke: text.stroke.enabled ? text.stroke.color :
'rgba(0,0,0,0)'
//, strokeWidth: text.stroke.width
, fontSize: text.stroke.width
+ , omType: text.omType
, fontFamily: text.fontFamily
, opacity: text.opacity
, breakWords: true
@@ -22,7 +23,7 @@ var Textbox = function(wb, s, sBtn) {
};
text.doubleClick = function(e) {
const ao = e.target;
- if (!!ao && text.fabricType === ao.type) {
+ if (!!ao && text.omType === ao.omType) {
text.obj = ao;
text.obj.enterEditing();
WbArea.removeDeleteHandler();
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
index 0ce5000..7cb1807 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
@@ -25,9 +25,13 @@ var DrawWbArea = function() {
break;
case 'tr':
{
- const x = left + (this.cornerSize -
delImg.width) / 2
- , y = top + (this.cornerSize -
delImg.height) / 2;
- ctx.drawImage(delImg, x, y);
+ if (role === PRESENTER) {
+ const x = left +
(this.cornerSize - delImg.width) / 2
+ , y = top +
(this.cornerSize - delImg.height) / 2;
+ ctx.drawImage(delImg, x, y);
+ } else {
+
window.originalDrawControl.call(this, control, ctx, methodName, left, top,
styleOverride);
+ }
}
break;
default:
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
index 690a3f9..398ba72 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
@@ -127,6 +127,10 @@ var Wb = function() {
}
}
function _setSlide(_sld) {
+ const sld = 1 * _sld;
+ if (sld < 0 || sld > canvases.length - 1) {
+ return;
+ }
slide = _sld;
OmUtil.wbAction({action: 'setSlide', data: {
wbId: wb.id
@@ -523,11 +527,9 @@ var Wb = function() {
const r = o.toJSON(extraProps);
switch (o.omType) {
case 'Video':
- r.type = 'video';
delete r.objects;
break;
case 'Math':
- r.type = 'math';
delete r.objects;
break;
default:
@@ -537,11 +539,11 @@ var Wb = function() {
}
//events
function objCreatedHandler(o) {
- if (role === NONE && o.type !== 'pointer') {
+ if (role === NONE && o.omType !== 'pointer') {
return;
}
let json;
- switch(o.type) {
+ switch(o.omType) {
case 'pointer':
json = o;
break;
@@ -557,10 +559,10 @@ var Wb = function() {
};
function objAddedHandler(e) {
const o = e.target;
- if (!!o.loaded) {
+ if (o.loaded === true) {
return;
}
- switch(o.type) {
+ switch(o.omType) {
case 'textbox':
case 'i-text':
o.uid = uuidv4();
@@ -574,7 +576,7 @@ var Wb = function() {
};
function objModifiedHandler(e) {
const o = e.target, items = [];
- if (role === NONE && o.type !== 'pointer') {
+ if (role === NONE && o.omType !== 'pointer') {
return;
}
o.includeDefaultValues = false;
@@ -607,7 +609,7 @@ var Wb = function() {
if (!o || '' !== o.text) {
return;
}
- if ('textbox' === o.type || 'i-text' === o.type) {
+ if ('textbox' === o.omType || 'i-text' === o.omType) {
OmUtil.wbAction({action: 'deleteObj', data: {
wbId: wb.id
, obj: [{
@@ -863,14 +865,14 @@ var Wb = function() {
del.push(o);
continue;
}
- switch(o.type) {
+ switch(o.omType) {
case 'pointer':
APointer(wb).create(canvases[o.slide],
o);
break;
- case 'video':
+ case 'Video':
Player.create(canvases[o.slide], o, wb);
break;
- case 'math':
+ case 'Math':
StaticTMath.create(o,
canvases[o.slide]);
break;
default:
@@ -896,11 +898,11 @@ var Wb = function() {
const arr = [], _arr = Array.isArray(obj) ? obj : [obj];
for (let i = 0; i < _arr.length; ++i) {
const o = _arr[i];
- switch(o.type) {
+ switch(o.omType) {
case 'pointer':
_modifyHandler(APointer(wb).create(canvases[o.slide], o))
break;
- case 'video':
+ case 'Video':
{
const g = _findObject(o);
if (!!g) {
@@ -908,7 +910,7 @@ var Wb = function() {
}
}
break;
- case 'math':
+ case 'Math':
{
_removeHandler(o);
StaticTMath.create(o,
canvases[o.slide]);