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;