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 2017/08/04 08:48:36 UTC
openmeetings git commit: [OPENMEETINGS-1642] more work on zoom panel
Repository: openmeetings
Updated Branches:
refs/heads/master 666b05587 -> 2b96f6c14
[OPENMEETINGS-1642] more work on zoom panel
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/2b96f6c1
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/2b96f6c1
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/2b96f6c1
Branch: refs/heads/master
Commit: 2b96f6c14e9918db9874c3db0e008abb2ea9d892
Parents: 666b055
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Fri Aug 4 15:48:28 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Fri Aug 4 15:48:28 2017 +0700
----------------------------------------------------------------------
.../openmeetings/db/dto/room/Whiteboard.java | 6 ++++-
.../openmeetings/web/room/wb/WbPanel.html | 14 +++++------
.../openmeetings/web/room/wb/WbPanel.java | 11 +++++++--
.../web/room/wb/WbWebSocketHelper.java | 6 ++++-
.../org/apache/openmeetings/web/room/wb/wb.js | 25 ++++++++++++++------
5 files changed, 44 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2b96f6c1/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/Whiteboard.java
----------------------------------------------------------------------
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 81a4534..5c3e818 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
@@ -34,6 +34,7 @@ import com.github.openjson.JSONObject;
public class Whiteboard implements Serializable {
private static final long serialVersionUID = 1L;
+ public static final String ITEMS_KEY = "roomItems";
private long id;
private Integer x = 0;
private Integer y = 0;
@@ -162,7 +163,10 @@ public class Whiteboard implements Serializable {
//deep-copy
JSONObject json = new JSONObject(new JSONObject(this).toString(new NullStringer()));
json.remove("id"); //filtering
- JSONObject items = json.getJSONObject("roomItems");
+ if (!json.has(ITEMS_KEY)) {
+ json.put(ITEMS_KEY, new JSONObject());
+ }
+ JSONObject items = json.getJSONObject(ITEMS_KEY);
for (String uid : items.keySet()) {
JSONObject o = items.getJSONObject(uid);
o.remove("_src");
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2b96f6c1/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
index 143e2f9..bf0b1a9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
@@ -58,18 +58,18 @@
</div>
<div id="wb-zoom" class="wb-zoom">
<div class="doc-group btn-group btn-group-xs block" role="group" aria-label="...">
- <button type="button" class="btn btn-default up"> </button>
- <button type="button" class="btn btn-default down"> </button>
+ <button type="button" class="btn btn-default up" wicket:message="title:256"> </button>
+ <button type="button" class="btn btn-default down" wicket:message="title:256"> </button>
</div>
<div class="doc-group input-group input-group-xs block">
- <input type="number" />
- <span class="input-group-addon">of</span>
- <span class="input-group-addon">14</span>
+ <input class="curr-slide" type="number" min="1" max="1"/>
+ <span class="input-group-addon"><wicket:message key="254"/></span>
+ <span class="last-page input-group-addon">1</span>
</div>
<div class="btn-group btn-group-xs block" role="group" aria-label="...">
- <button type="button" class="btn btn-default"><span class="ui-icon ui-icon-minusthick"></span></button>
- <button type="button" class="btn btn-default"><span class="ui-icon ui-icon-plusthick"></span></button>
+ <button type="button" class="btn btn-default" wicket:message="title:259"><span class="ui-icon ui-icon-minusthick"></span></button>
+ <button type="button" class="btn btn-default" wicket:message="title:260"><span class="ui-icon ui-icon-plusthick"></span></button>
</div>
<select>
<option value="auto">Automatic Zoom</option>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2b96f6c1/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
----------------------------------------------------------------------
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 afeca53..9c655ed 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
@@ -18,10 +18,12 @@
*/
package org.apache.openmeetings.web.room.wb;
+import static org.apache.openmeetings.db.dto.room.Whiteboard.ITEMS_KEY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.room.wb.WbWebSocketHelper.PARAM_OBJ;
import static org.apache.openmeetings.web.room.wb.WbWebSocketHelper.getObjWbJson;
+import static org.apache.openmeetings.web.room.wb.WbWebSocketHelper.getWbJson;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
import static org.apache.wicket.AttributeModifier.append;
import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
@@ -311,7 +313,12 @@ public class WbPanel extends Panel {
}
sb.append("WbArea.load(").append(getObjWbJson(entry.getKey(), arr).toString(new NullStringer())).append(");");
}
- sb.append("WbArea.activateWb({wbId: ").append(wbs.getActiveWb()).append("});");
+ JSONObject wbj = getWbJson(wbs.getActiveWb());
+ sb.append("WbArea.activateWb(").append(wbj).append(");");
+ Whiteboard wb = wbs.get(wbs.getActiveWb());
+ if (wb != null) {
+ sb.append("WbArea.setSlide(").append(wbj.put("slide", wb.getSlide())).append(");");
+ }
target.appendJavaScript(sb);
inited = true;
}
@@ -383,7 +390,7 @@ public class WbPanel extends Panel {
}
private static JSONArray getArray(JSONObject wb, Function<JSONObject, JSONObject> postprocess) {
- JSONObject items = wb.getJSONObject("roomItems");
+ JSONObject items = wb.getJSONObject(ITEMS_KEY);
JSONArray arr = new JSONArray();
for (String uid : items.keySet()) {
JSONObject o = items.getJSONObject(uid);
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2b96f6c1/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
index a96081f..d65e626 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
@@ -76,8 +76,12 @@ public class WbWebSocketHelper extends WebSocketHelper {
sendWb(roomId, meth, obj, c -> !uid.equals(c.getUid()));
}
+ public static JSONObject getWbJson(Long wbId) {
+ return new JSONObject().put("wbId", wbId);
+ }
+
public static JSONObject getObjWbJson(Long wbId, Object o) {
- return new JSONObject().put("wbId", wbId).put(PARAM_OBJ, o);
+ return getWbJson(wbId).put(PARAM_OBJ, o);
}
private static CharSequence urlFor(final ResourceReference resourceReference, PageParameters parameters) {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/2b96f6c1/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
index 3a17086..de236fe 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb.js
@@ -581,6 +581,16 @@ var Wb = function() {
});
return confirm;
}
+ function _updateZoom() {
+ var ccount = canvases.length;
+ if (ccount > 1 && role === PRESENTER) {
+ z.find('.doc-group').show();
+ z.find('.doc-group .curr-slide').val(slide).attr('max', ccount);
+ z.find('.doc-group .last-page').text(ccount);
+ } else {
+ z.find('.doc-group').hide();
+ }
+ }
function internalInit() {
t.draggable({
snap: "parent"
@@ -608,6 +618,7 @@ var Wb = function() {
confirmDlg('clear-all-confirm', function() { wbAction('clearAll', JSON.stringify({wbId: wb.id})); });
}).removeClass('disabled');
case WHITEBOARD:
+ _updateZoom();
if (role === WHITEBOARD) {
clearAll.addClass('disabled');
}
@@ -775,6 +786,7 @@ var Wb = function() {
canvas.setBackgroundImage(_o._src + "&slide=" + i, canvas.renderAll.bind(canvas), {})
.setWidth(width).setHeight(height);
}
+ _updateZoom();
if (ccount != canvases.length) {
var b = getBtn();
if (b.length && b.hasClass(ACTIVE)) {
@@ -894,14 +906,16 @@ var Wb = function() {
wbId: wb.id
, slide: idx
}));
+ _updateZoom();
return false;
}
});
}
- function showCurentSlide() {
+ function showCurrentSlide() {
a.find('.scroll-container .canvas-container').each(function(idx) {
if (role === PRESENTER) {
$(this).show();
+ a.find('.scroll-container .canvas-container')[slide].scrollIntoView();
} else {
if (idx == slide) {
$(this).show();
@@ -994,7 +1008,7 @@ var Wb = function() {
, of: '#'+a[0].id
, collision: "fit"
});
- showCurentSlide();
+ showCurrentSlide();
t = a.find('.tools'), s = a.find(".wb-settings");
wb.eachCanvas(function(canvas) {
setHandlers(canvas);
@@ -1029,11 +1043,7 @@ var Wb = function() {
};
wb.setSlide = function(_sl) {
slide = _sl;
- if (role === NONE) {
- showCurentSlide();
- } else {
- a.find('.scroll-container .canvas-container')[slide].scrollIntoView();
- }
+ showCurrentSlide();
};
wb.createObj = function(o) {
var arr = [];
@@ -1093,6 +1103,7 @@ var Wb = function() {
canvases.splice(1);
canvases[0].clear();
minWidth = minHeight = 0;
+ _updateZoom();
};
wb.clearSlide = function(_sl) {
if (canvases.length > _sl) {