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/07/01 17:19:12 UTC
openmeetings git commit: [OPENMEETINGS-1639] Load is implemented
Repository: openmeetings
Updated Branches:
refs/heads/master 7d80d7712 -> 568c47ac6
[OPENMEETINGS-1639] Load is implemented
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/568c47ac
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/568c47ac
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/568c47ac
Branch: refs/heads/master
Commit: 568c47ac6249f832d629b988f22cae5fefb383db
Parents: 7d80d77
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Sun Jul 2 00:19:04 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Sun Jul 2 00:19:04 2017 +0700
----------------------------------------------------------------------
.../core/data/file/FileProcessor.java | 5 +--
.../openmeetings/db/dto/room/Whiteboard.java | 15 +++-----
.../apache/openmeetings/util/NullStringer.java | 39 ++++++++++++++++++++
.../web/room/RoomResourceReference.java | 2 +-
.../openmeetings/web/room/wb/WbPanel.java | 38 ++++++-------------
.../org/apache/openmeetings/web/room/wb/wb.js | 3 ++
6 files changed, 62 insertions(+), 40 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
----------------------------------------------------------------------
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
index 8c4b620..8ae3e6c 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
@@ -98,9 +98,6 @@ public class FileProcessor {
}
f.setHash(hash);
- f = fileDao.update(f);
- log.debug("fileId: " + f.getId());
-
File file = f.getFile(ext);
log.debug("writing file to: " + file);
if (!file.getParentFile().exists() && !file.getParentFile().mkdirs()) {
@@ -130,6 +127,8 @@ public class FileProcessor {
result.addItem("processVideo " + i++, returnMap);
}
}
+ f = fileDao.update(f);
+ log.debug("fileId: " + f.getId());
// has to happen at the end, otherwise it will be overwritten
//cause the variable is new initialized
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/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 a11a800..be67d0e 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
@@ -18,8 +18,6 @@
*/
package org.apache.openmeetings.db.dto.room;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
-
import java.util.Collections;
import java.util.Date;
import java.util.LinkedHashMap;
@@ -27,13 +25,11 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
+import org.apache.openmeetings.util.NullStringer;
import com.github.openjson.JSONObject;
public class Whiteboard {
- private static final Logger log = Red5LoggerFactory.getLogger(Whiteboard.class, webAppRootKey);
private long id;
private Integer x = 0;
private Integer y = 0;
@@ -42,7 +38,6 @@ public class Whiteboard {
private Map<String, JSONObject> roomItems = Collections.synchronizedMap(new LinkedHashMap<>());
private Date created = new Date();
private int slide = 0;
- private int zIndex = 1;
private String name;
public Whiteboard() {}
@@ -101,10 +96,8 @@ public class Whiteboard {
public void clear() {
roomItems.clear();
- zIndex = 1;
}
- //getter is required, otherwise roomItems are not available in red5
public Map<String, JSONObject> getRoomItems() {
return roomItems;
}
@@ -143,11 +136,13 @@ public class Whiteboard {
public JSONObject toJson() {
//deep-copy
- JSONObject json = new JSONObject(new JSONObject(this).toString());
+ JSONObject json = new JSONObject(new JSONObject(this).toString(new NullStringer()));
json.remove("id"); //filtering
JSONObject items = json.getJSONObject("roomItems");
for (String uid : items.keySet()) {
- items.getJSONObject(uid).remove("_src"); //filtering
+ JSONObject o = items.getJSONObject(uid);
+ o.remove("_src");
+ o.remove("src"); //filtering
}
return json;
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java
----------------------------------------------------------------------
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java
new file mode 100644
index 0000000..04a8d7c
--- /dev/null
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/NullStringer.java
@@ -0,0 +1,39 @@
+/*
+ * 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.util;
+
+import java.util.Map.Entry;
+
+import com.github.openjson.JSONStringer;
+
+public class NullStringer extends JSONStringer {
+ public NullStringer() {
+ super();
+ }
+
+ public NullStringer(int indent) {
+ //super(indent); FIXME TODO uncomment
+ super();
+ }
+
+ @Override
+ public JSONStringer entry(Entry<String, Object> entry) {
+ return this.key(entry.getKey()).value(entry.getValue());
+ }
+}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
index a8d98a6..c4fd8bf 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
@@ -105,7 +105,7 @@ public class RoomResourceReference extends FileItemResourceReference<FileExplore
Whiteboards wbs = getBean(WhiteboardCache.class).get(c.getRoomId());
if (!Strings.isEmpty(wuid) && !Strings.isEmpty(ruid) && ruid.equals(wbs.getUid())) {
for (Entry<Long, Whiteboard> e : wbs.getWhiteboards().entrySet()) {
- JSONObject file = e.getValue().getRoomItems().get(wuid);
+ JSONObject file = e.getValue().get(wuid);
if (file != null && f.getId().equals(file.optLong("fileId"))) {
return f; // item IS on WB
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/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 e9b9aec..e70e410 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
@@ -46,6 +46,7 @@ import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.file.FileItem.Type;
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import org.apache.openmeetings.util.NullStringer;
import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.common.NameDialog;
@@ -76,7 +77,6 @@ import org.slf4j.Logger;
import com.github.openjson.JSONArray;
import com.github.openjson.JSONObject;
-import com.github.openjson.JSONStringer;
import com.github.openjson.JSONTokener;
public class WbPanel extends Panel {
@@ -105,6 +105,7 @@ public class WbPanel extends Panel {
, clearAll
, clearSlide
, save
+ , load
}
private final AbstractDefaultAjaxBehavior wbAction = new AbstractDefaultAjaxBehavior() {
private static final long serialVersionUID = 1L;
@@ -242,7 +243,7 @@ public class WbPanel extends Panel {
f.setName(getModelObject());
f = getBean(FileExplorerItemDao.class).update(f);
try (BufferedWriter writer = Files.newBufferedWriter(f.getFile().toPath())) {
- writer.write(wb.toJson().toString(2));
+ writer.write(wb.toJson().toString(new NullStringer(2)));
} catch (IOException e) {
error("Unexpected error while saving WB: " + e.getMessage());
target.add(feedback);
@@ -302,7 +303,7 @@ public class WbPanel extends Panel {
.append(getAddWbJson(entry.getKey(), entry.getValue().getName()).toString())
.append(");"));
JSONArray arr = new JSONArray();
- for (Entry<String, JSONObject> wbEntry : entry.getValue().getRoomItems().entrySet()) {
+ for (Entry<String, JSONObject> wbEntry : entry.getValue().entrySet()) {
JSONObject o = wbEntry.getValue();
arr.put(addFileUrl(wbs.getUid(), o));
}
@@ -415,19 +416,14 @@ public class WbPanel extends Panel {
File f = fi.getFile();
if (f.exists() && f.isFile()) {
try (BufferedReader br = Files.newBufferedReader(f.toPath())) {
- JSONObject wbo = new JSONObject(new JSONTokener(br));
- /*WebSocketHelper.sendRoom(
- roomId
- , new JSONObject().put("type", "wb")
- , null
- , (o, c) -> {
- return o.put("func", String.format("WbArea.%s(%s);"
- , Action.createObj.name()
- , getObjWbJson(wb.getId(), addFileUrl(ruid, file, fi, c)).toString())
- ).toString();
- }
- );*/
- } catch (IOException e) {
+ JSONObject items = new JSONObject(new JSONTokener(br)).getJSONObject("roomItems");
+ JSONArray arr = new JSONArray();
+ for (String uid : items.keySet()) {
+ JSONObject o = items.getJSONObject(uid);
+ arr.put(addFileUrl(wbs.getUid(), o));
+ }
+ sendWbAll(Action.load, getObjWbJson(wb.getId(), arr));
+ } catch (Exception e) {
log.error("Unexpected error while loading WB", e);
}
}
@@ -470,14 +466,4 @@ public class WbPanel extends Panel {
}
}
}
-
- //FIXME TODO openjson 1.0.2
- //private static class ObjectStringer
-
- private static class NullStringer extends JSONStringer {
- @Override
- public JSONStringer entry(Entry<String, Object> entry) {
- return this.key(entry.getKey()).value(entry.getValue());
- }
- }
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/568c47ac/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 cf86951..6c8a7be 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
@@ -200,8 +200,11 @@ var ShapeBase = function(wb) {
var Text = function(wb, s) {
var text = ShapeBase(wb);
text.obj = null;
+ text.fill.color = '#000000';
text.stroke.width = 1;
+ text.stroke.color = '#000000';
text.style = {bold: false, italic: false};
+ //TODO font size, background color
text.mouseDown = function(o) {
var canvas = this;