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 2022/12/19 04:20:45 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2753] Redo is added
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 7cd3e4316 [OPENMEETINGS-2753] Redo is added
7cd3e4316 is described below
commit 7cd3e431666ed762296b64a737d9dd5855c0535b
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Mon Dec 19 11:20:32 2022 +0700
[OPENMEETINGS-2753] Redo is added
---
.../db/manager/IWhiteboardManager.java | 3 +-
openmeetings-web/src/main/front/wb/src/wb-tools.js | 3 +
.../web/app/Application.properties.xml | 3 +-
.../web/app/Application_ar.properties.xml | 3 +-
.../web/app/Application_bg.properties.xml | 3 +-
.../web/app/Application_bn.properties.xml | 3 +-
.../web/app/Application_ca.properties.xml | 3 +-
.../web/app/Application_cs.properties.xml | 3 +-
.../web/app/Application_da.properties.xml | 3 +-
.../web/app/Application_de.properties.xml | 3 +-
.../web/app/Application_el.properties.xml | 3 +-
.../web/app/Application_es.properties.xml | 3 +-
.../web/app/Application_fa.properties.xml | 3 +-
.../web/app/Application_fi.properties.xml | 3 +-
.../web/app/Application_fr.properties.xml | 3 +-
.../web/app/Application_gl.properties.xml | 3 +-
.../web/app/Application_he.properties.xml | 3 +-
.../web/app/Application_hi.properties.xml | 3 +-
.../web/app/Application_hu.properties.xml | 3 +-
.../web/app/Application_id.properties.xml | 3 +-
.../web/app/Application_it.properties.xml | 27 +-
.../web/app/Application_ja.properties.xml | 3 +-
.../web/app/Application_ko.properties.xml | 3 +-
.../web/app/Application_ku.properties.xml | 3 +-
.../web/app/Application_lo.properties.xml | 3 +-
.../web/app/Application_nl.properties.xml | 3 +-
.../web/app/Application_pl.properties.xml | 3 +-
.../web/app/Application_pt.properties.xml | 3 +-
.../web/app/Application_pt_BR.properties.xml | 3 +-
.../web/app/Application_ru.properties.xml | 3 +-
.../web/app/Application_sk.properties.xml | 3 +-
.../web/app/Application_sv.properties.xml | 3 +-
.../web/app/Application_ta.properties.xml | 3 +-
.../web/app/Application_th.properties.xml | 3 +-
.../web/app/Application_tk.properties.xml | 3 +-
.../web/app/Application_tr.properties.xml | 3 +-
.../web/app/Application_uk.properties.xml | 3 +-
.../web/app/Application_ur.properties.xml | 3 +-
.../web/app/Application_zh_CN.properties.xml | 3 +-
.../web/app/Application_zh_TW.properties.xml | 3 +-
.../openmeetings/web/app/WhiteboardManager.java | 6 +-
.../openmeetings/web/room/wb/InterviewWbPanel.java | 6 -
.../openmeetings/web/room/wb/UndoObject.java | 18 +-
.../apache/openmeetings/web/room/wb/WbAction.java | 1 +
.../apache/openmeetings/web/room/wb/WbPanel.html | 3 +-
.../apache/openmeetings/web/room/wb/WbPanel.java | 484 ++++++++++++---------
openmeetings-web/src/main/webapp/css/raw-wb.css | 5 +-
.../openmeetings/webservice/WbWebService.java | 2 +-
48 files changed, 402 insertions(+), 267 deletions(-)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IWhiteboardManager.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IWhiteboardManager.java
index 9b0323553..2d7cdc2d6 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IWhiteboardManager.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IWhiteboardManager.java
@@ -19,7 +19,6 @@
package org.apache.openmeetings.db.manager;
import java.util.function.BiConsumer;
-import java.util.function.Consumer;
import org.apache.openmeetings.db.dto.room.Whiteboard;
import org.apache.openmeetings.db.dto.room.Whiteboards;
@@ -29,6 +28,6 @@ import com.github.openjson.JSONArray;
public interface IWhiteboardManager {
Whiteboards get(Long roomId);
void reset(Long roomId, Long userId);
- void clearAll(Long roomId, long wbId, Consumer<Whiteboard> consumer);
+ void clearAll(Long roomId, long wbId, boolean redo, BiConsumer<Whiteboard, Boolean> consumer);
void cleanSlide(Long roomId, long wbId, int slide, BiConsumer<Whiteboard, JSONArray> consumer);
}
diff --git a/openmeetings-web/src/main/front/wb/src/wb-tools.js b/openmeetings-web/src/main/front/wb/src/wb-tools.js
index e299fa5e6..b4c9cb5f4 100644
--- a/openmeetings-web/src/main/front/wb/src/wb-tools.js
+++ b/openmeetings-web/src/main/front/wb/src/wb-tools.js
@@ -361,6 +361,9 @@ module.exports = class WbTools {
tools.find('.om-icon.undo').click(function() {
OmUtil.wbAction({action: 'undo', data: {wbId: wb.getId()}});
});
+ tools.find('.om-icon.redo').click(function() {
+ OmUtil.wbAction({action: 'redo', data: {wbId: wb.getId()}});
+ });
_initSettings();
_initMath();
case Role.NONE:
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
index 7ab5e50a2..dd9f98409 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
index a990ce8bc..57f077bf2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[موافق]]></entry>
<entry key="59"><![CDATA[اللغة]]></entry>
<entry key="62"><![CDATA[مسح اللوح الابيض]]></entry>
- <entry key="70"><![CDATA[الغاء]]></entry>
<entry key="72"><![CDATA[اختر جسم]]></entry>
<entry key="73"><![CDATA[النص]]></entry>
<entry key="74"><![CDATA[الطلاء]]></entry>
@@ -972,6 +971,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="wb.tool.math.formula"><![CDATA[صيغ الرياضيات]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[دليل بناء الجملة الرياضاتيه]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[الغاء]]></entry>
<entry key="wb.tool.white-out"><![CDATA[تبييض]]></entry>
<entry key="widget.recent.desc"><![CDATA[تعرض هذه الأقسام الغرف التي فتحتها مؤخرًا]]></entry>
<entry key="widget.recent.title"><![CDATA[الغرف الحديثة]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
index 6d5908b37..d0bfc4e4d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ОК]]></entry>
<entry key="59"><![CDATA[Език:]]></entry>
<entry key="62"><![CDATA[Изчистване на дъската]]></entry>
- <entry key="70"><![CDATA[Стъпка назад]]></entry>
<entry key="72"><![CDATA[Маркиране на обект]]></entry>
<entry key="73"><![CDATA[Текст]]></entry>
<entry key="74"><![CDATA[Рисуване]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Стъпка назад]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
index e08f05bbb..943964a62 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ঠিক আছে]]></entry>
<entry key="59"><![CDATA[ভাষা]]></entry>
<entry key="62"><![CDATA[হোয়াইটবোর্ড সাফ করুন]]></entry>
- <entry key="70"><![CDATA[আনডু]]></entry>
<entry key="72"><![CDATA[একটি বস্তু নির্ধারন করুন]]></entry>
<entry key="73"><![CDATA[লিখিত]]></entry>
<entry key="74"><![CDATA[অংকন]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[আনডু]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
index 8c06aa11d..e56508a89 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Idioma:]]></entry>
<entry key="62"><![CDATA[Eliminar pissarra]]></entry>
- <entry key="70"><![CDATA[Desfer]]></entry>
<entry key="72"><![CDATA[Seleccionar un objecte]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Pintar]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Desfer]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
index 665801242..fd533655d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Jazyk:]]></entry>
<entry key="62"><![CDATA[Smaž tabuli]]></entry>
- <entry key="70"><![CDATA[Krok zpět]]></entry>
<entry key="72"><![CDATA[Vyber Objekt]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Kreslení]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Krok zpět]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
index 99dffcd36..3fca24f1b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Sprog:]]></entry>
<entry key="62"><![CDATA[Rens skrivebordet]]></entry>
- <entry key="70"><![CDATA[Fortryd]]></entry>
<entry key="72"><![CDATA[Vælg et objekt]]></entry>
<entry key="73"><![CDATA[Tekst]]></entry>
<entry key="74"><![CDATA[Mal/tegn]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Fortryd]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
index 4600b0921..03ec631ec 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[Ok]]></entry>
<entry key="59"><![CDATA[Kurssprache:]]></entry>
<entry key="62"><![CDATA[Zeichenbrett leeren]]></entry>
- <entry key="70"><![CDATA[Rückgängig]]></entry>
<entry key="72"><![CDATA[Markieren]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Frei zeichnen]]></entry>
@@ -976,6 +975,8 @@ Bitte am OM server {3} anmelden und sie unter Admininistration -> Gruppen prüfe
<entry key="wb.tool.math.formula"><![CDATA[Mathe Formeln]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Anleitung zur LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://de.wikibooks.org/wiki/LaTeX-Kompendium:_Für_Mathematiker]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Rückgängig]]></entry>
<entry key="wb.tool.white-out"><![CDATA[Löschen]]></entry>
<entry key="widget.recent.desc"><![CDATA[Hier finden Sie kürzlich benutzte Räume.]]></entry>
<entry key="widget.recent.title"><![CDATA[kürzlich benutzte Räum]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
index c74655c17..aab8a8f18 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[Εντάξει]]></entry>
<entry key="59"><![CDATA[Γλώσσα:]]></entry>
<entry key="62"><![CDATA[Εκκαθάριση Πίνακα]]></entry>
- <entry key="70"><![CDATA[Αναίρεση]]></entry>
<entry key="72"><![CDATA[Επιλογή Αντικειμένου]]></entry>
<entry key="73"><![CDATA[Κείμενο]]></entry>
<entry key="74"><![CDATA[Ζωγραφική]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Αναίρεση]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
index 820a72a5d..e1c57ece6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[Aceptar]]></entry>
<entry key="59"><![CDATA[Idioma]]></entry>
<entry key="62"><![CDATA[Borrar pizarra]]></entry>
- <entry key="70"><![CDATA[Deshacer]]></entry>
<entry key="72"><![CDATA[Seleccionar un objeto]]></entry>
<entry key="73"><![CDATA[Texto]]></entry>
<entry key="74"><![CDATA[Pintar]]></entry>
@@ -974,6 +973,8 @@ Por favor visite el {3} servidor de OM y compruébelo en Admin -> Grupos]]></ent
<entry key="wb.tool.math.formula"><![CDATA[Fórmula matemática]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guía de sintaxis de LaTex]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Deshacer]]></entry>
<entry key="wb.tool.white-out"><![CDATA[Borrador]]></entry>
<entry key="widget.recent.desc"><![CDATA[Esta sección presenta las salas que recientemente visitaste]]></entry>
<entry key="widget.recent.title"><![CDATA[Salas recientes]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
index a7c6732ba..f5dd65af0 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ادامه]]></entry>
<entry key="59"><![CDATA[زبان:]]></entry>
<entry key="62"><![CDATA[پاک کردن وایت بورد]]></entry>
- <entry key="70"><![CDATA[بازگشت به قبل]]></entry>
<entry key="72"><![CDATA[موضوع مورد نظر]]></entry>
<entry key="73"><![CDATA[متن]]></entry>
<entry key="74"><![CDATA[نقاشی کردن]]></entry>
@@ -967,6 +966,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[بازگشت به قبل]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[این بخش اتاق هایی که اخیراً توسط شما باز شده نمایش می دهد]]></entry>
<entry key="widget.recent.title"><![CDATA[اتاق های اخیر]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
index bae83bf9c..65e7ec05b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Kieli:]]></entry>
<entry key="62"><![CDATA[Tyhjää kirjoitustaulu]]></entry>
- <entry key="70"><![CDATA[Peru]]></entry>
<entry key="72"><![CDATA[Valitse objekti]]></entry>
<entry key="73"><![CDATA[Teksti]]></entry>
<entry key="74"><![CDATA[Piirrä]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Peru]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
index 22f946df5..b73c3708c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[Ok]]></entry>
<entry key="59"><![CDATA[Langue :]]></entry>
<entry key="62"><![CDATA[Nettoyer le tableau blanc]]></entry>
- <entry key="70"><![CDATA[Annuler]]></entry>
<entry key="72"><![CDATA[Sélectionner un objet]]></entry>
<entry key="73"><![CDATA[Texte]]></entry>
<entry key="74"><![CDATA[Dessiner]]></entry>
@@ -975,6 +974,8 @@ dans {1} jours. Si vous souhaitez sauvegarder cet enregistrement, veuillez le t
<entry key="wb.tool.math.formula"><![CDATA[Formule mathématique]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide de la syntaxe LaTeX]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://fr.wikibooks.org/wiki/LaTeX/%C3%89crire_des_math%C3%A9matiques]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Annuler]]></entry>
<entry key="wb.tool.white-out"><![CDATA[Effacez]]></entry>
<entry key="widget.recent.desc"><![CDATA[Cet espace affiche les salles que vous avez fréquenté récemment ]]></entry>
<entry key="widget.recent.title"><![CDATA[Salles récentes]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
index 07b4a23a6..bba5f5613 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[Aceptar]]></entry>
<entry key="59"><![CDATA[Idioma:]]></entry>
<entry key="62"><![CDATA[Borrar o taboleiro]]></entry>
- <entry key="70"><![CDATA[Desfacer]]></entry>
<entry key="72"><![CDATA[Seleccionar un obxeto]]></entry>
<entry key="73"><![CDATA[Texto]]></entry>
<entry key="74"><![CDATA[Pintar]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Desfacer]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
index 485520eba..135b38c93 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
index 5260769c7..72a73f9fc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
index 330535c04..ee2f98b16 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[Rendben]]></entry>
<entry key="59"><![CDATA[Nyelv:]]></entry>
<entry key="62"><![CDATA[Tábla törlése]]></entry>
- <entry key="70"><![CDATA[Vissza]]></entry>
<entry key="72"><![CDATA[Válassz objektumot]]></entry>
<entry key="73"><![CDATA[Szöveg]]></entry>
<entry key="74"><![CDATA[Rajz]]></entry>
@@ -961,6 +960,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Vissza]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
index ace2b48b6..4090525a7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Bahasa:]]></entry>
<entry key="62"><![CDATA[hapus whiteboard]]></entry>
- <entry key="70"><![CDATA[Batal]]></entry>
<entry key="72"><![CDATA[Pilih Objek]]></entry>
<entry key="73"><![CDATA[Tulisan]]></entry>
<entry key="74"><![CDATA[Gambar]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Batal]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
index 6c422d26d..7d0e8aa99 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Lingua:]]></entry>
<entry key="62"><![CDATA[Cancella la lavagna]]></entry>
- <entry key="70"><![CDATA[Annulla le modifiche]]></entry>
<entry key="72"><![CDATA[Seleziona un'oggetto]]></entry>
<entry key="73"><![CDATA[Testo]]></entry>
<entry key="74"><![CDATA[Disegna]]></entry>
@@ -148,7 +147,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="306"><![CDATA[Impostazioni WebCam e Mic]]></entry>
<entry key="308"><![CDATA[Esci]]></entry>
<entry key="309"><![CDATA[Torna alle stanze]]></entry>
- <entry key="310"><![CDATA[Logout]]></entry>
+ <entry key="310"><![CDATA[Esci]]></entry>
<entry key="311"><![CDATA[Password dimenticata?]]></entry>
<entry key="312"><![CDATA[Reimposta password]]></entry>
<entry key="313"><![CDATA[Tramite indirizzo email]]></entry>
@@ -294,7 +293,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="815"><![CDATA[Dettagli evento]]></entry>
<entry key="816"><![CDATA[Moderatori predefiniti]]></entry>
<entry key="817"><![CDATA[Super]]></entry>
- <entry key="823"><![CDATA[Se la Stanza è moderata, l'utente con permessi di Moderatore o Amministratore sarà automaticamente il Moderatore se entra nella Stanza. Se non vuoi questo e vuoi che solo alcuni utenti siano Moderatori usa la funzione di Moderatore predefinito. ]]></entry>
+ <entry key="823"><![CDATA[Se la Stanza è moderata, l'utente con permessi di Moderatore o Amministratore sarà automaticamente il Moderatore se entra nella Stanza. Se non vuoi questo e vuoi che solo alcuni utenti siano Moderatori usa la funzione di Moderatore predefinito.]]></entry>
<entry key="828"><![CDATA[Se aggiungi un'organizzazione alla stanza solo gli utenti di questa organizzazione avranno accesso ad essa (Questo vale se il Flag Pubblico non è attivo!)]]></entry>
<entry key="830"><![CDATA[Limitazioni]]></entry>
<entry key="832"><![CDATA[Sei sicuro?]]></entry>
@@ -556,7 +555,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.group.form.days"><![CDATA[giorni]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
- <entry key="admin.group.form.maxFilesSize"><![CDATA[Maximum files size]]></entry>
+ <entry key="admin.group.form.maxFilesSize"><![CDATA[Dimensione massima file]]></entry>
<entry key="admin.group.form.maxRecordingsSize"><![CDATA[Massima dimensione della registrazione]]></entry>
<entry key="admin.group.form.maxRooms"><![CDATA[Massimo numero di stanze]]></entry>
<entry key="admin.group.form.minutes"><![CDATA[minutes]]></entry>
@@ -564,7 +563,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.group.form.reminderDays"><![CDATA[Expire reminder sent in]]></entry>
<entry key="admin.group.form.tag"><![CDATA[Tag]]></entry>
<entry key="admin.group.new.users.notification.interval"><![CDATA[New user notification interval]]></entry>
- <entry key="admin.oauth.attr.oauth"><![CDATA[OAuth User attribute]]></entry>
+ <entry key="admin.oauth.attr.oauth"><![CDATA[Attributo utente OAuth]]></entry>
<entry key="admin.oauth.attr.om"><![CDATA[OM User attribute]]></entry>
<entry key="admin.oauth.req.info.method"><![CDATA[Request info method]]></entry>
<entry key="admin.oauth.req.token.method"><![CDATA[Request token method]]></entry>
@@ -581,7 +580,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="appointment.tab.advanced"><![CDATA[Avanzate]]></entry>
<entry key="bad.captcha.text"><![CDATA[You have entered incorrect captcha text]]></entry>
<entry key="bad.password.digit"><![CDATA['Weak' password: at least 1 digit is required]]></entry>
- <entry key="bad.password.lower"><![CDATA['Weak' password: at least 1 lower-case letter is required]]></entry>
+ <entry key="bad.password.lower"><![CDATA[Password insicura: almeno 1 lettera minuscola è obbligatoria]]></entry>
<entry key="bad.password.short"><![CDATA['Weak' password: minimum password length is ${0}]]></entry>
<entry key="bad.password.special"><![CDATA['Weak' password: at least 1 special symbol '!@#$%^&*][' is required]]></entry>
<entry key="bad.password.stop"><![CDATA['Weak' password: it shouldn't contain part of the user's email address or username]]></entry>
@@ -589,13 +588,13 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="button.label.share"><![CDATA[Condividi]]></entry>
<entry key="calendar.addCalendar"><![CDATA[Add External Calendar]]></entry>
<entry key="calendar.defaultTitle"><![CDATA[New Calendar]]></entry>
- <entry key="calendar.dialogTitle"><![CDATA[Calendar Details]]></entry>
+ <entry key="calendar.dialogTitle"><![CDATA[Dettagli calendario]]></entry>
<entry key="calendar.error"><![CDATA[Error in making connection on the URL specified.]]></entry>
<entry key="calendar.gcal"><![CDATA[Google Calendar]]></entry>
<entry key="calendar.googleID"><![CDATA[Google Calendar ID]]></entry>
<entry key="calendar.googleKey"><![CDATA[Google Calendar API key]]></entry>
<entry key="calendar.sync"><![CDATA[Sync]]></entry>
- <entry key="calendar.url"><![CDATA[External CalDAV Calendar URL]]></entry>
+ <entry key="calendar.url"><![CDATA[URL CalDAV esterno]]></entry>
<entry key="camera.off"><![CDATA[Camera is off. Click to turn on.]]></entry>
<entry key="camera.on"><![CDATA[Camera is on. Click to turn off.]]></entry>
<entry key="captcha.text"><![CDATA[Captcha text]]></entry>
@@ -724,7 +723,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="install.wizard.params.step1.username.title"><![CDATA[Specifica un nome utente]]></entry>
<entry key="install.wizard.params.step2.allowFrontendRegister"><![CDATA[Permetti auto-registrazione]]></entry>
<entry key="install.wizard.params.step2.configuration"><![CDATA[Configurazione]]></entry>
- <entry key="install.wizard.params.step2.createDefaultObjects"><![CDATA[Default DB objects of all types will be created (including Rooms, OAuth2 servers etc.)]]></entry>
+ <entry key="install.wizard.params.step2.createDefaultObjects"><![CDATA[Saranno creati oggetti predefiniti di DB di tutti i tipi (incluse stanze, servers OAuth2, etc.)]]></entry>
<entry key="install.wizard.params.step2.defaultLangId"><![CDATA[Lingua predefinita]]></entry>
<entry key="install.wizard.params.step2.mailAuthName"><![CDATA[Nome utente SMTP]]></entry>
<entry key="install.wizard.params.step2.mailAuthName.title"><![CDATA[Specifica il nome utente per mail]]></entry>
@@ -854,7 +853,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="microphone.off"><![CDATA[Microphone is off. Click to turn on.]]></entry>
<entry key="microphone.on"><![CDATA[Microphone is on. Click to turn off.]]></entry>
<entry key="my.room.conference"><![CDATA[Mia stanza conferenza]]></entry>
- <entry key="my.room.presentation"><![CDATA[My presentation room (for 1-120 users)]]></entry>
+ <entry key="my.room.presentation"><![CDATA[La mia stanza di presentazione (per 1-120 utenti)]]></entry>
<entry key="network.test.click.play"><![CDATA[Clicca il pulsante play per il test]]></entry>
<entry key="network.test.copy.log"><![CDATA[Copia il log nella clipboard]]></entry>
<entry key="network.test.dwn"><![CDATA[Velocità Download]]></entry>
@@ -891,7 +890,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="profile.invitations"><![CDATA[Inviti]]></entry>
<entry key="ptt.info"><![CDATA[Your microphone is muted. You can hold Ctrl+Space (Cmd+Space) to temporary unmute it (Push-to-Talk)]]></entry>
<entry key="recordings.root.group"><![CDATA[Group recordings]]></entry>
- <entry key="register.privacy.accept"><![CDATA[By clicking "${register}", you agree to our ${link}.]]></entry>
+ <entry key="register.privacy.accept"><![CDATA[Facendo click su "${register}" vi dichiarate d'accordo con la nostra ${link}.]]></entry>
<entry key="register.privacy.statement"><![CDATA[privacy statement]]></entry>
<entry key="reset.whiteboard"><![CDATA[Reset Whiteboard]]></entry>
<entry key="restricted.group.files"><![CDATA[Group files are restricted]]></entry>
@@ -935,11 +934,11 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="ulist.right.presenter.request"><![CDATA[Richiedi i permessi di presentatore]]></entry>
<entry key="ulist.right.presenter.revoke"><![CDATA[Elimina i permessi di presentatore da questo utente]]></entry>
<entry key="ulist.right.remote.grant"><![CDATA[Allow Remote Control (during screen sharing)]]></entry>
- <entry key="ulist.right.remote.request"><![CDATA[Request remote control permission (during screen sharing)]]></entry>
+ <entry key="ulist.right.remote.request"><![CDATA[Richiedi permesso di controllo remoto (durante la condivisione dello schermo)]]></entry>
<entry key="ulist.right.remote.revoke"><![CDATA[Remove user's Remote Control permission (during screen sharing)]]></entry>
<entry key="ulist.right.share.grant"><![CDATA[Consenti all'utente di condividere/registrare lo schermo]]></entry>
<entry key="ulist.right.share.request"><![CDATA[Richiedi il permesso di condividere/registrare lo schermo]]></entry>
- <entry key="ulist.right.share.revoke"><![CDATA[Remove user's screenshare/record permission]]></entry>
+ <entry key="ulist.right.share.revoke"><![CDATA[Revoca permesso di condivisione schermo/registrazione all'utente]]></entry>
<entry key="ulist.right.video.grant"><![CDATA[Consenti all'utente di utilizzare la telecamera]]></entry>
<entry key="ulist.right.video.request"><![CDATA[Richiedi il permesso di utilizzare la telecamera]]></entry>
<entry key="ulist.right.video.revoke"><![CDATA[Spegni la telecamera dell'utente e rimuovi l'autorizzazione]]></entry>
@@ -974,6 +973,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Annulla le modifiche]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Stanze recenti]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
index 72d1b8510..12796dec5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[はい]]></entry>
<entry key="59"><![CDATA[言語:]]></entry>
<entry key="62"><![CDATA[ホワイトボードのクリア]]></entry>
- <entry key="70"><![CDATA[取り消し]]></entry>
<entry key="72"><![CDATA[オブジェクト選択]]></entry>
<entry key="73"><![CDATA[文字列]]></entry>
<entry key="74"><![CDATA[自由線]]></entry>
@@ -973,6 +972,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[数式]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[取り消し]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[あなたが最近開設した会議室を表示します。]]></entry>
<entry key="widget.recent.title"><![CDATA[最近の会議室]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
index eacc1c6d2..5d7edd53f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[네]]></entry>
<entry key="59"><![CDATA[언어:]]></entry>
<entry key="62"><![CDATA[칠판 지우기]]></entry>
- <entry key="70"><![CDATA[원래대로 돌려놓다.]]></entry>
<entry key="72"><![CDATA[물건을 선택해주십시요.]]></entry>
<entry key="73"><![CDATA[원문]]></entry>
<entry key="74"><![CDATA[페인트]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[원래대로 돌려놓다.]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
index 27941f874..a1dafe489 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
index 98d54be26..90f758bc5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -972,6 +971,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
index a29873bf2..8cc24031e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Taal:]]></entry>
<entry key="62"><![CDATA[Tekenbord schoonmaken]]></entry>
- <entry key="70"><![CDATA[Ongedaan maken]]></entry>
<entry key="72"><![CDATA[Selecteer een object]]></entry>
<entry key="73"><![CDATA[Tekst]]></entry>
<entry key="74"><![CDATA[Verf]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Ongedaan maken]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
index 7a5002a75..2cdfd524a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Język:]]></entry>
<entry key="62"><![CDATA[Wyczyść tablicę]]></entry>
- <entry key="70"><![CDATA[Cofnij]]></entry>
<entry key="72"><![CDATA[Wskaż obiekt]]></entry>
<entry key="73"><![CDATA[Tekst]]></entry>
<entry key="74"><![CDATA[Malowanie]]></entry>
@@ -972,6 +971,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Wzór matematyczny]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Przewodnik po składni LaTeX]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Cofnij]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Ostatnie pokoje]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
index aed665167..04fe17abb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Idioma:]]></entry>
<entry key="62"><![CDATA[Limpar a lousa.]]></entry>
- <entry key="70"><![CDATA[Desfazer]]></entry>
<entry key="72"><![CDATA[Selecionar um objeto]]></entry>
<entry key="73"><![CDATA[Texto]]></entry>
<entry key="74"><![CDATA[Pintura]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Desfazer]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
index 225669fd0..a85a08612 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ok]]></entry>
<entry key="59"><![CDATA[Idioma:]]></entry>
<entry key="62"><![CDATA[Limpar a lousa.]]></entry>
- <entry key="70"><![CDATA[Desfazer]]></entry>
<entry key="72"><![CDATA[Selecionar um objeto]]></entry>
<entry key="73"><![CDATA[Texto]]></entry>
<entry key="74"><![CDATA[Pintura]]></entry>
@@ -973,6 +972,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Desfazer]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
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 fd800b432..f67309add 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
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ОК]]></entry>
<entry key="59"><![CDATA[Язык курса:]]></entry>
<entry key="62"><![CDATA[Очистить доску]]></entry>
- <entry key="70"><![CDATA[Отмена]]></entry>
<entry key="72"><![CDATA[Выбрать объект]]></entry>
<entry key="73"><![CDATA[Текст]]></entry>
<entry key="74"><![CDATA[Рисование]]></entry>
@@ -973,6 +972,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="wb.tool.math.formula"><![CDATA[Математическая формула]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Инструкция по синтаксису LaTeX]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Вернуть]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Отмена]]></entry>
<entry key="wb.tool.white-out"><![CDATA[Корректор]]></entry>
<entry key="widget.recent.desc"><![CDATA[Эта секция отображает комнаты в которые Вы недавно заходили]]></entry>
<entry key="widget.recent.title"><![CDATA[Последние комнаты]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
index 41a7997a2..be7995299 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Jazyk]]></entry>
<entry key="62"><![CDATA[Zmazať tabuľu]]></entry>
- <entry key="70"><![CDATA[Zrušiť]]></entry>
<entry key="72"><![CDATA[Vybrať objekt]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Farba]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Zrušiť]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
index 2e4009400..246f18898 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Språk]]></entry>
<entry key="62"><![CDATA[Rensa vita tavlan]]></entry>
- <entry key="70"><![CDATA[Ångra]]></entry>
<entry key="72"><![CDATA[Välj ett objekt]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Måla]]></entry>
@@ -980,6 +979,8 @@ vänligen ladda ned den dessförrinnan. ]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Matematisk formel]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide till LaTeX-syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Ångra]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[Denna sektion visar rum nyligen skapade av dig]]></entry>
<entry key="widget.recent.title"><![CDATA[Senaste rum]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
index 1a9ecbd65..86d319261 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -983,6 +982,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
index 490b0bf64..5e217632a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[ตกลง]]></entry>
<entry key="59"><![CDATA[ภาษา:]]></entry>
<entry key="62"><![CDATA[ลบไวท์บอร์ด]]></entry>
- <entry key="70"><![CDATA[เลิกทำ]]></entry>
<entry key="72"><![CDATA[เลือกรายการ]]></entry>
<entry key="73"><![CDATA[ข้อความ]]></entry>
<entry key="74"><![CDATA[ระบายสี]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[เลิกทำ]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
index 67b84b02d..f8197519a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
index 6bb027963..eb84ca12a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[tamam]]></entry>
<entry key="59"><![CDATA[Dil:]]></entry>
<entry key="62"><![CDATA[Tahtayı temizle]]></entry>
- <entry key="70"><![CDATA[Geri al]]></entry>
<entry key="72"><![CDATA[Bir Nesne Seçin]]></entry>
<entry key="73"><![CDATA[Metin]]></entry>
<entry key="74"><![CDATA[Boyama]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Geri al]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
index cf61a133f..6e6fc2cd8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Мова:]]></entry>
<entry key="62"><![CDATA[Очистити планшет]]></entry>
- <entry key="70"><![CDATA[Відмінити]]></entry>
<entry key="72"><![CDATA[Вибрати об'єкт]]></entry>
<entry key="73"><![CDATA[Текст]]></entry>
<entry key="74"><![CDATA[Малювання]]></entry>
@@ -972,6 +971,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Відмінити]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
index 7ab5e50a2..dd9f98409 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[OK]]></entry>
<entry key="59"><![CDATA[Language]]></entry>
<entry key="62"><![CDATA[Clear whiteboard]]></entry>
- <entry key="70"><![CDATA[Undo]]></entry>
<entry key="72"><![CDATA[Select an object]]></entry>
<entry key="73"><![CDATA[Text]]></entry>
<entry key="74"><![CDATA[Paint]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[Undo]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
index 90bfac2dd..4bdce2246 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[确定]]></entry>
<entry key="59"><![CDATA[语言:]]></entry>
<entry key="62"><![CDATA[清除白板]]></entry>
- <entry key="70"><![CDATA[取消]]></entry>
<entry key="72"><![CDATA[选择对象]]></entry>
<entry key="73"><![CDATA[文本]]></entry>
<entry key="74"><![CDATA[绘画]]></entry>
@@ -973,6 +972,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[取消]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
index c14357c32..e154396c7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
@@ -53,7 +53,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="54"><![CDATA[设定好了]]></entry>
<entry key="59"><![CDATA[語言 :]]></entry>
<entry key="62"><![CDATA[清掉電子白板]]></entry>
- <entry key="70"><![CDATA[撤消]]></entry>
<entry key="72"><![CDATA[選擇對象]]></entry>
<entry key="73"><![CDATA[全文]]></entry>
<entry key="74"><![CDATA[繪畫]]></entry>
@@ -981,6 +980,8 @@ Please visit {3} OM server and check them under Admin -> Groups]]></entry>
<entry key="wb.tool.math.formula"><![CDATA[Math formula]]></entry>
<entry key="wb.tool.math.guide.lbl"><![CDATA[Guide to LaTeX Syntax]]></entry>
<entry key="wb.tool.math.guide.url"><![CDATA[https://en.wikibooks.org/wiki/LaTeX/Mathematics]]></entry>
+ <entry key="wb.tool.redo"><![CDATA[Redo]]></entry>
+ <entry key="wb.tool.undo"><![CDATA[撤消]]></entry>
<entry key="wb.tool.white-out"><![CDATA[White-Out]]></entry>
<entry key="widget.recent.desc"><![CDATA[This sections displays rooms recently opened by you]]></entry>
<entry key="widget.recent.title"><![CDATA[Recent Rooms]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
index a67e10c37..cda6b6e36 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
@@ -205,13 +205,13 @@ public class WhiteboardManager implements IWhiteboardManager {
}
@Override
- public void clearAll(Long roomId, long wbId, Consumer<Whiteboard> consumer) {
+ public void clearAll(Long roomId, long wbId, boolean redo, BiConsumer<Whiteboard, Boolean> addUndo) {
Whiteboard wb = get(roomId).get(wbId);
if (wb == null) {
return;
}
- if (consumer != null) {
- consumer.accept(wb);
+ if (addUndo != null) {
+ addUndo.accept(wb, redo);
}
wb = clear(roomId, wbId);
sendWbAll(roomId, WbAction.CLEAR_ALL, new JSONObject().put("wbId", wbId));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
index 07cf5f811..e6a6b49fa 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
@@ -21,7 +21,6 @@ package org.apache.openmeetings.web.room.wb;
import java.io.IOException;
import org.apache.openmeetings.db.entity.basic.Client;
-import org.apache.openmeetings.db.entity.file.BaseFileItem;
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -44,11 +43,6 @@ public class InterviewWbPanel extends AbstractWbPanel {
return rp.getClient().hasRight(Right.MODERATOR) ? Right.MODERATOR.name() : ROLE_NONE;
}
- @Override
- public void sendFileToWb(final BaseFileItem fi, boolean clean) {
- //no-op
- }
-
@Override
public void processWbAction(WbAction a, JSONObject obj, IPartialPageRequestHandler handler) throws IOException {
Client c = rp.getClient();
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/UndoObject.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/UndoObject.java
index f8416babf..5771d8713 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/UndoObject.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/UndoObject.java
@@ -33,19 +33,33 @@ public class UndoObject implements Serializable {
, REMOVE
, MODIFY
}
+ private final WbAction action;
+ private final String origObject;
private final Type type;
private final String object;
- public UndoObject(Type type, JSONObject obj) {
+ public UndoObject(WbAction action, JSONObject origObj, Type type, JSONObject obj) {
+ this.action = action;
+ this.origObject = origObj.toString(new NullStringer());
this.type = type;
this.object = obj.toString(new NullStringer());
}
- public UndoObject(Type type, JSONArray arr) {
+ public UndoObject(WbAction action, JSONObject origObj, Type type, JSONArray arr) {
+ this.action = action;
+ this.origObject = origObj.toString(new NullStringer());
this.type = type;
this.object = arr.toString(new NullStringer());
}
+ public WbAction getAction() {
+ return action;
+ }
+
+ public JSONObject getOrigObject() {
+ return new JSONObject(origObject);
+ }
+
public Type getType() {
return type;
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbAction.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbAction.java
index f0a1f297e..6ac562b3d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbAction.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbAction.java
@@ -34,6 +34,7 @@ public enum WbAction {
, SAVE("save")
, LOAD("load")
, UNDO("undo")
+ , REDO("redo")
, SET_SIZE("setSize")
, DOWNLOAD("download")
, START_RECORDING("startRecording")
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 74e87531b..8a45d0765 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
@@ -138,7 +138,8 @@
data-btn-ok-class="btn btn-sm btn-danger"
data-btn-ok-icon-class="fas fa-exclamation-triangle"></div>
<div wicket:message="title:199" class="clickable om-icon big save"></div>
- <div wicket:message="title:70" class="clickable om-icon big undo"></div>
+ <div wicket:message="title:wb.tool.undo" class="clickable om-icon big undo"></div>
+ <div wicket:message="title:wb.tool.redo" class="clickable om-icon big redo"></div>
<div wicket:message="title:72" class="clickable om-icon big pointer"></div>
<div wicket:message="title:557" class="clickable om-icon big apointer"></div>
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 1b830283b..b21a2a723 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,7 +46,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.function.Consumer;
-import java.util.function.Function;
+import java.util.function.UnaryOperator;
import org.apache.openmeetings.db.dao.file.FileItemDao;
import org.apache.openmeetings.db.dto.room.Whiteboard;
@@ -73,7 +73,7 @@ import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.apache.wicket.util.string.Strings;
-import org.danekja.java.util.function.serializable.SerializableConsumer;
+import org.danekja.java.util.function.serializable.SerializableBiConsumer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -94,6 +94,7 @@ public class WbPanel extends AbstractWbPanel {
private final Long roomId;
private long wb2save = -1;
private final Map<Long, Deque<UndoObject>> undoList = new HashMap<>();
+ private final Map<Long, Deque<UndoObject>> redoList = new HashMap<>();
private final NameDialog fileName = new NameDialog("filename") {
private static final long serialVersionUID = 1L;
@@ -123,10 +124,15 @@ public class WbPanel extends AbstractWbPanel {
return new ResourceModel("144");
}
};
- private final SerializableConsumer<Whiteboard> addUndo = wb -> {
+ private final SerializableBiConsumer<Whiteboard, Boolean> addUndo = (wb, redo) -> {
JSONArray arr = getArray(wb.toJson(), null);
if (arr.length() != 0) {
- addUndo(wb.getId(), new UndoObject(UndoObject.Type.REMOVE, arr));
+ if (!redo) {
+ cleanRedo(wb.getId());
+ }
+ addUndo(wb.getId(), new UndoObject(WbAction.CLEAR_ALL
+ , new JSONObject().put("wbId", wb.getId())
+ , UndoObject.Type.REMOVE, arr));
}
};
@SpringBean
@@ -161,9 +167,9 @@ public class WbPanel extends AbstractWbPanel {
@Override
void internalWbLoad(StringBuilder sb) {
Long langId = rp.getClient().getUser().getLanguageId();
- wbm.initFiles(rp.getRoom(), langId, (wbs, wbIdx, roomFiles) -> {
- roomFiles.forEach(rf -> addFileToWb(wbs, wbIdx, rf.getFile(), false, false));
- });
+ wbm.initFiles(rp.getRoom(), langId, (wbs, wbIdx, roomFiles)
+ -> roomFiles.forEach(rf -> addFileToWb(wbs, wbIdx, rf.getFile(), false, false))
+ );
Whiteboards wbs = wbm.get(roomId, langId);
loadWhiteboards(sb, rp.getClient(), wbs, wbm.list(roomId));
JSONObject wbj = getWbJson(wbs.getActiveWb());
@@ -188,13 +194,31 @@ public class WbPanel extends AbstractWbPanel {
if (c == null) {
return;
}
+ doAction(c, a, obj, false, handler);
+ }
+
+ private void doAction(Client c, WbAction a, JSONObject obj, boolean redo, IPartialPageRequestHandler handler) throws IOException {
+ if (processActionGeneral(c, a, obj, handler)) {
+ return;
+ }
+ //presenter-right
+ if (c.hasRight(Right.PRESENTER)) {
+ processActionPresenter(c, a, obj, redo, handler);
+ }
+ //wb-right
+ if (c.hasRight(Right.PRESENTER) || c.hasRight(Right.WHITEBOARD)) {
+ processActionWhiteboard(c, a, obj, false, handler);
+ }
+ }
+
+ private boolean processActionGeneral(Client c, WbAction a, JSONObject obj, IPartialPageRequestHandler handler) throws IOException {
switch (a) {
case CREATE_OBJ, MODIFY_OBJ:
{
JSONObject o = obj.optJSONObject("obj");
if (o != null && "pointer".equals(o.getString(ATTR_OMTYPE))) {
sendWbOthers(a, obj);
- return;
+ return true;
}
}
break;
@@ -205,7 +229,7 @@ public class WbPanel extends AbstractWbPanel {
if (moder && !r.isHidden(RoomElement.ACTION_MENU)) {
rp.startDownload(handler, obj.getString("type"), obj.getString("fuid"));
}
- return;
+ return true;
}
case LOAD_VIDEOS:
{
@@ -232,200 +256,227 @@ public class WbPanel extends AbstractWbPanel {
}
sb.append(arr.toString()).append(");");
handler.appendJavaScript(sb);
- return;
+ return true;
}
default:
break;
}
+ return false;
+ }
- //presenter-right
- if (c.hasRight(Right.PRESENTER)) {
- switch (a) {
- case CREATE_WB:
- {
- Whiteboard wb = wbm.add(roomId, c.getUser().getLanguageId());
- sendWbAll(WbAction.CREATE_WB, wb.getAddJson());
- }
- break;
- case REMOVE_WB:
- {
- long id = obj.optLong("wbId", -1);
- if (id > -1) {
- long prevId = obj.optLong("prevWbId", -1);
- wbm.remove(roomId, id, prevId);
- sendWbAll(WbAction.REMOVE_WB, obj);
- }
- }
- break;
- case ACTIVATE_WB:
- {
- long wbId = obj.optLong("wbId", -1);
- if (wbId > -1) {
- wbm.activate(roomId, wbId);
- sendWbAll(WbAction.ACTIVATE_WB, obj);
- }
- }
- break;
- case RENAME_WB:
- {
- Whiteboard wb = wbm.get(roomId).get(obj.optLong("wbId", -1));
- if (wb != null) {
- wbm.update(roomId, wb.setName(obj.getString("name")));
- sendWbAll(WbAction.RENAME_WB, obj);
- }
+ private void processActionPresenter(Client c, WbAction a, JSONObject obj, boolean redo, IPartialPageRequestHandler handler) throws IOException {
+ switch (a) {
+ case CREATE_WB:
+ {
+ Whiteboard wb = wbm.add(roomId, c.getUser().getLanguageId());
+ sendWbAll(WbAction.CREATE_WB, wb.getAddJson());
+ }
+ break;
+ case REMOVE_WB:
+ {
+ long id = obj.optLong("wbId", -1);
+ if (id > -1) {
+ long prevId = obj.optLong("prevWbId", -1);
+ wbm.remove(roomId, id, prevId);
+ sendWbAll(WbAction.REMOVE_WB, obj);
}
- break;
- case SET_SLIDE:
- {
- Whiteboard wb = wbm.get(roomId).get(obj.optLong("wbId", -1));
- if (wb != null) {
- wb.setSlide(obj.optInt(ATTR_SLIDE, 0));
- wbm.update(roomId, wb);
- sendWbOthers(WbAction.SET_SLIDE, obj);
- }
+ }
+ break;
+ case ACTIVATE_WB:
+ {
+ long wbId = obj.optLong("wbId", -1);
+ if (wbId > -1) {
+ wbm.activate(roomId, wbId);
+ sendWbAll(WbAction.ACTIVATE_WB, obj);
}
- break;
- case CLEAR_ALL:
- {
- wbm.clearAll(roomId, obj.getLong("wbId"), addUndo);
+ }
+ break;
+ case RENAME_WB:
+ {
+ Whiteboard wb = wbm.get(roomId).get(obj.optLong("wbId", -1));
+ if (wb != null) {
+ wbm.update(roomId, wb.setName(obj.getString("name")));
+ sendWbAll(WbAction.RENAME_WB, obj);
}
- break;
- case SET_SIZE:
- {
- Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
- wb.setWidth(obj.getInt(ATTR_WIDTH));
- wb.setHeight(obj.getInt(ATTR_HEIGHT));
- wb.setZoom(obj.getDouble(ATTR_ZOOM));
- wb.setZoomMode(ZoomMode.valueOf(obj.getString("zoomMode")));
+ }
+ break;
+ case SET_SLIDE:
+ {
+ Whiteboard wb = wbm.get(roomId).get(obj.optLong("wbId", -1));
+ if (wb != null) {
+ wb.setSlide(obj.optInt(ATTR_SLIDE, 0));
wbm.update(roomId, wb);
- sendWbOthers(WbAction.SET_SIZE, wb.getAddJson());
+ sendWbOthers(WbAction.SET_SLIDE, obj);
}
- break;
- default:
- break;
}
+ break;
+ case CLEAR_ALL:
+ {
+ wbm.clearAll(roomId, obj.getLong("wbId"), redo, addUndo);
+ }
+ break;
+ case SET_SIZE:
+ {
+ Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
+ wb.setWidth(obj.getInt(ATTR_WIDTH));
+ wb.setHeight(obj.getInt(ATTR_HEIGHT));
+ wb.setZoom(obj.getDouble(ATTR_ZOOM));
+ wb.setZoomMode(ZoomMode.valueOf(obj.getString("zoomMode")));
+ wbm.update(roomId, wb);
+ sendWbOthers(WbAction.SET_SIZE, wb.getAddJson());
+ }
+ break;
+ default:
+ break;
}
- //wb-right
- if (c.hasRight(Right.PRESENTER) || c.hasRight(Right.WHITEBOARD)) {
- switch (a) {
- case CREATE_OBJ:
- {
- Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
- JSONObject o = obj.getJSONObject("obj");
- wb.put(o.getString("uid"), o);
- wbm.update(roomId, wb);
- addUndo(wb.getId(), new UndoObject(UndoObject.Type.ADD, o));
+ }
+
+ private void processActionWhiteboard(Client c, WbAction a, JSONObject obj, boolean redo, IPartialPageRequestHandler handler) throws IOException {
+ switch (a) {
+ case CREATE_OBJ:
+ {
+ Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
+ JSONObject o = obj.getJSONObject("obj");
+ wb.put(o.getString("uid"), o);
+ wbm.update(roomId, wb);
+ addUndo(wb.getId(), new UndoObject(a, obj, UndoObject.Type.ADD, o));
+ if (redo) {
+ sendWbAll(WbAction.CREATE_OBJ, obj);
+ } else {
+ cleanRedo(wb.getId());
sendWbOthers(WbAction.CREATE_OBJ, obj);
}
- break;
- case MODIFY_OBJ:
- {
- Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
- JSONArray arr = obj.getJSONArray("obj");
- JSONArray undo = new JSONArray();
- for (int i = 0; i < arr.length(); ++i) {
- JSONObject oi = arr.getJSONObject(i);
- String uid = oi.getString("uid");
- JSONObject po = wb.get(uid);
- if (po != null) {
- undo.put(po);
- wb.put(uid, oi);
- }
- }
- if (arr.length() != 0) {
- wbm.update(roomId, wb);
- addUndo(wb.getId(), new UndoObject(UndoObject.Type.MODIFY, undo));
+ }
+ break;
+ case MODIFY_OBJ:
+ {
+ Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
+ JSONArray arr = obj.getJSONArray("obj");
+ JSONArray undo = new JSONArray();
+ for (int i = 0; i < arr.length(); ++i) {
+ JSONObject oi = arr.getJSONObject(i);
+ String uid = oi.getString("uid");
+ JSONObject po = wb.get(uid);
+ if (po != null) {
+ undo.put(po);
+ wb.put(uid, oi);
}
- sendWbOthers(WbAction.MODIFY_OBJ, obj);
}
- break;
- case DELETE_OBJ:
- {
- Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
- JSONArray arr = obj.getJSONArray("obj");
- JSONArray undo = new JSONArray();
- for (int i = 0; i < arr.length(); ++i) {
- JSONObject oi = arr.getJSONObject(i);
- JSONObject u = wb.remove(oi.getString("uid"));
- if (u != null) {
- undo.put(u);
- }
+ if (arr.length() != 0) {
+ wbm.update(roomId, wb);
+ addUndo(wb.getId(), new UndoObject(a, obj, UndoObject.Type.MODIFY, undo));
+ if (redo) {
+ sendWbAll(WbAction.MODIFY_OBJ, obj);
+ } else {
+ cleanRedo(wb.getId());
+ sendWbOthers(WbAction.MODIFY_OBJ, obj);
}
- if (undo.length() != 0) {
- wbm.update(roomId, wb);
- addUndo(wb.getId(), new UndoObject(UndoObject.Type.REMOVE, undo));
+ }
+ }
+ break;
+ case DELETE_OBJ:
+ {
+ Whiteboard wb = wbm.get(roomId).get(obj.getLong("wbId"));
+ JSONArray arr = obj.getJSONArray("obj");
+ JSONArray undo = new JSONArray();
+ for (int i = 0; i < arr.length(); ++i) {
+ JSONObject oi = arr.getJSONObject(i);
+ JSONObject u = wb.remove(oi.getString("uid"));
+ if (u != null) {
+ undo.put(u);
}
- sendWbAll(WbAction.DELETE_OBJ, obj);
}
- break;
- case CLEAR_SLIDE:
- {
- wbm.cleanSlide(roomId, obj.getLong("wbId"), obj.getInt(ATTR_SLIDE)
- , (wb, arr) -> addUndo(wb.getId(), new UndoObject(UndoObject.Type.REMOVE, arr)));
+ if (undo.length() != 0) {
+ wbm.update(roomId, wb);
+ addUndo(wb.getId(), new UndoObject(a, obj, UndoObject.Type.REMOVE, undo));
+ }
+ if (!redo) {
+ cleanRedo(wb.getId());
}
- break;
- case SAVE:
- wb2save = obj.getLong("wbId");
- fileName.show(handler);
- break;
- case UNDO:
- {
- Long wbId = obj.getLong("wbId");
- UndoObject uo = getUndo(wbId);
- if (uo != null) {
- Whiteboard wb = wbm.get(roomId).get(wbId);
- switch (uo.getType()) {
- case ADD:
- {
- JSONObject o = new JSONObject(uo.getObject());
- wb.remove(o.getString("uid"));
- wbm.update(roomId, wb);
- sendWbAll(WbAction.DELETE_OBJ, obj.put("obj", new JSONArray().put(o)));
+ sendWbAll(WbAction.DELETE_OBJ, obj);
+ }
+ break;
+ case CLEAR_SLIDE:
+ {
+ wbm.cleanSlide(roomId, obj.getLong("wbId"), obj.getInt(ATTR_SLIDE)
+ , (wb, arr) -> {
+ if (!redo) {
+ cleanRedo(wb.getId());
}
- break;
- case REMOVE:
- {
- JSONArray arr = new JSONArray(uo.getObject());
- for (int i = 0; i < arr.length(); ++i) {
- JSONObject o = arr.getJSONObject(i);
- wb.put(o.getString("uid"), o);
- }
- wbm.update(roomId, wb);
- sendWbAll(WbAction.CREATE_OBJ, obj.put("obj", new JSONArray(uo.getObject())));
+ addUndo(wb.getId(), new UndoObject(a, obj, UndoObject.Type.REMOVE, arr));
+ });
+ }
+ break;
+ case SAVE:
+ wb2save = obj.getLong("wbId");
+ fileName.show(handler);
+ break;
+ case UNDO:
+ {
+ Long wbId = obj.getLong("wbId");
+ UndoObject uo = getUndo(wbId);
+ if (uo != null) {
+ Whiteboard wb = wbm.get(roomId).get(wbId);
+ switch (uo.getType()) {
+ case ADD:
+ {
+ JSONObject o = new JSONObject(uo.getObject());
+ wb.remove(o.getString("uid"));
+ wbm.update(roomId, wb);
+ sendWbAll(WbAction.DELETE_OBJ, obj.put("obj", new JSONArray().put(o)));
+ }
+ break;
+ case REMOVE:
+ {
+ JSONArray arr = new JSONArray(uo.getObject());
+ for (int i = 0; i < arr.length(); ++i) {
+ JSONObject o = arr.getJSONObject(i);
+ wb.put(o.getString("uid"), o);
}
- break;
- case MODIFY:
- {
- JSONArray arr = new JSONArray(uo.getObject());
- for (int i = 0; i < arr.length(); ++i) {
- JSONObject o = arr.getJSONObject(i);
- wb.put(o.getString("uid"), o);
- }
- wbm.update(roomId, wb);
- sendWbAll(WbAction.MODIFY_OBJ, obj.put("obj", arr));
+ wbm.update(roomId, wb);
+ sendWbAll(WbAction.CREATE_OBJ, obj.put("obj", new JSONArray(uo.getObject())));
+ }
+ break;
+ case MODIFY:
+ {
+ JSONArray arr = new JSONArray(uo.getObject());
+ for (int i = 0; i < arr.length(); ++i) {
+ JSONObject o = arr.getJSONObject(i);
+ wb.put(o.getString("uid"), o);
}
- break;
+ wbm.update(roomId, wb);
+ sendWbAll(WbAction.MODIFY_OBJ, obj.put("obj", arr));
}
+ break;
}
}
- break;
- case VIDEO_STATUS:
- {
- 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_OMTYPE))) {
- JSONObject ns = obj.getJSONObject(PARAM_STATUS);
- po.put(PARAM_STATUS, ns.put(PARAM_UPDATED, System.currentTimeMillis()));
- wbm.update(roomId, wb.put(uid, po));
- obj.put(ATTR_SLIDE, po.getInt(ATTR_SLIDE));
- sendWbAll(WbAction.VIDEO_STATUS, obj);
- }
+ }
+ break;
+ case REDO:
+ {
+ Long wbId = obj.getLong("wbId");
+ UndoObject uo = getRedo(wbId);
+ if (uo != null) {
+ processActionWhiteboard(c, uo.getAction(), uo.getOrigObject(), true, handler);
+ }
+ }
+ break;
+ case VIDEO_STATUS:
+ {
+ 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_OMTYPE))) {
+ JSONObject ns = obj.getJSONObject(PARAM_STATUS);
+ po.put(PARAM_STATUS, ns.put(PARAM_UPDATED, System.currentTimeMillis()));
+ wbm.update(roomId, wb.put(uid, po));
+ obj.put(ATTR_SLIDE, po.getInt(ATTR_SLIDE));
+ sendWbAll(WbAction.VIDEO_STATUS, obj);
}
- break;
- default:
- break;
}
+ break;
+ default:
+ break;
}
}
@@ -462,7 +513,7 @@ public class WbPanel extends AbstractWbPanel {
return file;
}
- private static JSONArray getArray(JSONObject wb, Function<JSONObject, JSONObject> postprocess) {
+ private static JSONArray getArray(JSONObject wb, UnaryOperator<JSONObject> postprocess) {
JSONObject items = wb.getJSONObject(ITEMS_KEY);
JSONArray arr = new JSONArray();
for (String uid : items.keySet()) {
@@ -493,28 +544,7 @@ public class WbPanel extends AbstractWbPanel {
//do nothing
break;
case WML_FILE:
- {
- File f = fi.getFile();
- if (f.exists() && f.isFile()) {
- try (BufferedReader br = Files.newBufferedReader(f.toPath())) {
- final boolean[] updated = {false};
- JSONArray arr = getArray(new JSONObject(new JSONTokener(br)), o -> {
- wb.put(o.getString("uid"), o);
- updated[0] = true;
- return addFileUrl(rp.getClient(), wbs.getUid(), o, bf -> updateWbSize(wb, bf));
- });
- if (sendAndUpdate) {
- if (updated[0]) {
- wbm.update(roomId, wb);
- }
- sendWbAll(WbAction.SET_SIZE, wb.getAddJson());
- sendWbAll(WbAction.LOAD, getObjWbJson(wb.getId(), arr));
- }
- } catch (Exception e) {
- log.error("Unexpected error while loading WB", e);
- }
- }
- }
+ addWmlFileToWb(wbs, wb, fi, sendAndUpdate);
break;
case POLL_CHART:
break;
@@ -542,7 +572,7 @@ public class WbPanel extends AbstractWbPanel {
}
final String ruid = wbs.getUid();
if (clean) {
- wbm.clearAll(roomId, wb.getId(), addUndo);
+ wbm.clearAll(roomId, wb.getId(), false, addUndo);
}
wb.put(wuid, file);
updateWbSize(wb, fi);
@@ -556,6 +586,29 @@ public class WbPanel extends AbstractWbPanel {
}
}
+ private void addWmlFileToWb(Whiteboards wbs, Whiteboard wb, final BaseFileItem fi, boolean sendAndUpdate) {
+ File f = fi.getFile();
+ if (f.exists() && f.isFile()) {
+ try (BufferedReader br = Files.newBufferedReader(f.toPath())) {
+ final boolean[] updated = {false};
+ JSONArray arr = getArray(new JSONObject(new JSONTokener(br)), o -> {
+ wb.put(o.getString("uid"), o);
+ updated[0] = true;
+ return addFileUrl(rp.getClient(), wbs.getUid(), o, bf -> updateWbSize(wb, bf));
+ });
+ if (sendAndUpdate) {
+ if (updated[0]) {
+ wbm.update(roomId, wb);
+ }
+ sendWbAll(WbAction.SET_SIZE, wb.getAddJson());
+ sendWbAll(WbAction.LOAD, getObjWbJson(wb.getId(), arr));
+ }
+ } catch (Exception e) {
+ log.error("Unexpected error while loading WB", e);
+ }
+ }
+ }
+
private void sendFileToWb(Long wbId, final BaseFileItem fi, boolean clean) {
if (isVisible()) {
Whiteboards wbs = wbm.get(roomId);
@@ -587,11 +640,40 @@ public class WbPanel extends AbstractWbPanel {
}
private UndoObject getUndo(Long wbId) {
- if (wbId == null || !undoList.containsKey(wbId)) {
+ if (wbId == null) {
return null;
}
Deque<UndoObject> deq = undoList.get(wbId);
- return deq.isEmpty() ? null : deq.pop();
+ if (deq == null || deq.isEmpty()) {
+ return null;
+ }
+ UndoObject undoObj = deq.pop();
+ redoList
+ .computeIfAbsent(wbId, id -> new LimitedLinkedList<>())
+ .push(undoObj);
+ return undoObj;
+ }
+
+ private void cleanRedo(Long wbId) {
+ if (wbId == null) {
+ return;
+ }
+ Deque<UndoObject> redoDeq = redoList.get(wbId);
+ if (redoDeq != null) {
+ redoDeq.clear();
+ }
+ }
+
+ private UndoObject getRedo(Long wbId) {
+ if (wbId == null) {
+ return null;
+ }
+ Deque<UndoObject> deq = redoList.get(wbId);
+ if (deq == null || deq.isEmpty()) {
+ return null;
+ }
+ UndoObject redoObj = deq.pop();
+ return redoObj;
}
private static class LimitedLinkedList<T> extends LinkedList<T> {
diff --git a/openmeetings-web/src/main/webapp/css/raw-wb.css b/openmeetings-web/src/main/webapp/css/raw-wb.css
index c1d78326f..74c00f9f2 100644
--- a/openmeetings-web/src/main/webapp/css/raw-wb.css
+++ b/openmeetings-web/src/main/webapp/css/raw-wb.css
@@ -144,7 +144,10 @@ html[dir="rtl"] .room-block .sb-wb .wb-block {
content: '\f0c7';
}
.room-block .sb-wb .wb-block .tools .om-icon.big.undo::before {
- content: '\f0e2';
+ content: '\f3e5';
+}
+.room-block .sb-wb .wb-block .tools .om-icon.big.redo::before {
+ content: '\f064';
}
.room-block .sb-wb .wb-block .tools .om-icon.big.math::before {
content: '\f534';
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
index f60db4436..2c88b72fd 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
@@ -154,7 +154,7 @@ public class WbWebService extends BaseWebService {
{
log.debug("[cleanWb] room id {}, wb id {}", roomId, wbId);
return performCall(sid, User.Right.SOAP, sd -> {
- wbManager.clearAll(roomId, wbId, null);
+ wbManager.clearAll(roomId, wbId, false, null);
return new ServiceResult("", Type.SUCCESS);
});
}