Repository: openmeetings
Updated Branches:
  refs/heads/master f915dfb30 -> 9f829f2c0


[OPENMEETINGS-1768] initial commit, code is generalized


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/9f829f2c
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/9f829f2c
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/9f829f2c

Branch: refs/heads/master
Commit: 9f829f2c09d6bda3b53d317e2bc14b50cf582ba9
Parents: f915dfb
Author: Maxim Solodovnik <[email protected]>
Authored: Wed Nov 22 00:03:08 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Wed Nov 22 00:03:32 2017 +0700

----------------------------------------------------------------------
 .../web/app/Application.properties.xml          |  1 +
 .../web/app/Application_ar.properties.xml       |  1 +
 .../web/app/Application_bg.properties.xml       |  1 +
 .../web/app/Application_ca.properties.xml       |  1 +
 .../web/app/Application_cs.properties.xml       |  1 +
 .../web/app/Application_da.properties.xml       |  1 +
 .../web/app/Application_de.properties.xml       |  1 +
 .../web/app/Application_el.properties.xml       |  1 +
 .../web/app/Application_es.properties.xml       |  1 +
 .../web/app/Application_fa.properties.xml       |  1 +
 .../web/app/Application_fi.properties.xml       |  1 +
 .../web/app/Application_fr.properties.xml       |  1 +
 .../web/app/Application_gl.properties.xml       |  1 +
 .../web/app/Application_he.properties.xml       |  1 +
 .../web/app/Application_hu.properties.xml       |  1 +
 .../web/app/Application_id.properties.xml       |  1 +
 .../web/app/Application_it.properties.xml       |  1 +
 .../web/app/Application_ja.properties.xml       |  1 +
 .../web/app/Application_ko.properties.xml       |  1 +
 .../web/app/Application_nl.properties.xml       |  1 +
 .../web/app/Application_pl.properties.xml       |  1 +
 .../web/app/Application_pt.properties.xml       |  1 +
 .../web/app/Application_pt_BR.properties.xml    |  1 +
 .../web/app/Application_ru.properties.xml       |  1 +
 .../web/app/Application_sk.properties.xml       |  1 +
 .../web/app/Application_sv.properties.xml       |  1 +
 .../web/app/Application_th.properties.xml       |  1 +
 .../web/app/Application_tr.properties.xml       |  1 +
 .../web/app/Application_uk.properties.xml       |  1 +
 .../web/app/Application_zh_CN.properties.xml    |  1 +
 .../web/app/Application_zh_TW.properties.xml    |  1 +
 .../openmeetings/web/common/MainPanel.java      |  4 +-
 .../web/common/OmAjaxClientInfoBehavior.java    |  5 ++-
 .../org/apache/openmeetings/web/common/main.js  | 37 ++++++++++-------
 .../web/room/activities/ActivitiesPanel.html    |  3 ++
 .../web/room/activities/activities.js           | 18 +++++++++
 .../org/apache/openmeetings/web/room/room.js    |  6 +--
 .../apache/openmeetings/web/room/settings.js    | 10 +----
 .../openmeetings/web/room/wb/interview-area.js  |  2 +-
 .../apache/openmeetings/web/room/wb/wb-area.js  |  2 +-
 .../apache/openmeetings/web/room/wb/wb-board.js | 14 +++----
 .../web/user/calendar/CalendarPanel.java        |  4 +-
 .../web/user/calendar/calendar-functions.js     |  6 +--
 .../apache/openmeetings/web/user/chat/chat.js   | 42 ++++++++------------
 .../src/main/webapp/css/activities.css          |  4 ++
 45 files changed, 120 insertions(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
----------------------------------------------------------------------
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 e614a42..77282b5 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
----------------------------------------------------------------------
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 d5421ec..5ea995c 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
----------------------------------------------------------------------
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 991011d..8fe30e0 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
----------------------------------------------------------------------
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 e1e7103..02bbb2e 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
----------------------------------------------------------------------
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 d92ebc1..ee6b0b5 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
----------------------------------------------------------------------
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 053c6c0..36107b1 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_de.properties.xml
----------------------------------------------------------------------
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 9afcfb5..e0b0cbb 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
@@ -992,4 +992,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
----------------------------------------------------------------------
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 5af1361..1f2d69d 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_es.properties.xml
----------------------------------------------------------------------
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 fe4a459..84933c6 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
@@ -985,4 +985,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fa.properties.xml
----------------------------------------------------------------------
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 8e9c0eb..090fcce 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
----------------------------------------------------------------------
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 5948bd7..2942b2a 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fr.properties.xml
----------------------------------------------------------------------
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 cb7d890..4a6ba5e 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
@@ -979,4 +979,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
----------------------------------------------------------------------
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 37d461d..99a907b 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_he.properties.xml
----------------------------------------------------------------------
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 e614a42..77282b5 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hu.properties.xml
----------------------------------------------------------------------
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 fc6aab5..e8bfda3 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
@@ -975,4 +975,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_id.properties.xml
----------------------------------------------------------------------
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 e680966..ac7615d 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_it.properties.xml
----------------------------------------------------------------------
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 9a33420..2c3acea 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
@@ -988,4 +988,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ja.properties.xml
----------------------------------------------------------------------
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 19f3f81..11d3119 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
----------------------------------------------------------------------
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 d654aed..2668091 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
----------------------------------------------------------------------
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 aa03edc..a42b8ad 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
----------------------------------------------------------------------
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 12b5531..528bd80 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
----------------------------------------------------------------------
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 374b2ee..1decc1e 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
----------------------------------------------------------------------
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 066cd50..eb943a8 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ru.properties.xml
----------------------------------------------------------------------
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 09227be..89e2ced 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
@@ -988,4 +988,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[По ширине 
страницы]]></entry>
        <entry key="label.dock.panel"><![CDATA[Кликните чтобы 
"прилепить" панель]]></entry>
        <entry key="label.undock.panel"><![CDATA[Кликните чтобы 
"отлепить" панель]]></entry>
+       <entry 
key="activities.autoclean"><![CDATA[Авто-очистка]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
----------------------------------------------------------------------
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 f8e3e8d..ab62305 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sv.properties.xml
----------------------------------------------------------------------
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 8b7b0c7..62a780e 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
----------------------------------------------------------------------
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 42acf92..7746945 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
----------------------------------------------------------------------
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 539fe40..e727980 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_uk.properties.xml
----------------------------------------------------------------------
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 8605337..41a0822 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
@@ -988,4 +988,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_CN.properties.xml
----------------------------------------------------------------------
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 78ffef4..99b00b4 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
@@ -977,4 +977,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
----------------------------------------------------------------------
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 e82bbc6..9f1c699 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
@@ -987,4 +987,5 @@ see http://openmeetings.apache.org/LanguageEditor.html for 
Details
        <entry key="zoom.pageWidth"><![CDATA[Page Width]]></entry>
        <entry key="label.dock.panel"><![CDATA[Click to dock panel]]></entry>
        <entry key="label.undock.panel"><![CDATA[Click to undock 
panel]]></entry>
+       <entry key="activities.autoclean"><![CDATA[Auto-clean]]></entry>
 </properties>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
index 21daec9..bb5c9cc 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
@@ -49,8 +49,8 @@ import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.menu.MainMenuItem;
-import org.apache.openmeetings.web.common.menu.OmMenuItem;
 import org.apache.openmeetings.web.common.menu.MenuPanel;
+import org.apache.openmeetings.web.common.menu.OmMenuItem;
 import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.openmeetings.web.user.AboutDialog;
 import org.apache.openmeetings.web.user.InviteUserToRoomDialog;
@@ -221,6 +221,7 @@ public class MainPanel extends Panel {
                } else {
                        add(new EmptyPanel("dev").setVisible(false));
                }
+               add(new OmAjaxClientInfoBehavior());
                add(about, chat = new ChatPanel("chatPanel"));
                add(newMessage = new MessageDialog("newMessageDialog", new 
CompoundPropertyModel<>(new PrivateMessage())) {
                        private static final long serialVersionUID = 1L;
@@ -291,7 +292,6 @@ public class MainPanel extends Panel {
                                response.render(new 
PriorityHeaderItem(getNamedFunction("inviteUser", this, 
explicit(PARAM_USER_ID))));
                        }
                });
-               add(new OmAjaxClientInfoBehavior());
                topLinks.add(new ConfirmableAjaxBorder("logout", 
getString("310"), getString("634")) {
                        private static final long serialVersionUID = 1L;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
index d13434c..41f4e2b 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
@@ -23,6 +23,8 @@ import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxClientInfoBehavior;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.PriorityHeaderItem;
+import org.apache.wicket.markup.html.pages.BrowserInfoForm;
 import org.apache.wicket.protocol.http.request.WebClientInfo;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
@@ -33,7 +35,8 @@ public class OmAjaxClientInfoBehavior extends 
AjaxClientInfoBehavior {
        @Override
        public void renderHead(Component component, IHeaderResponse response) {
                super.renderHead(component, response);
-               response.render(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(MainPanel.class, "main.js")));
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(BrowserInfoForm.JS)));
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(new 
JavaScriptResourceReference(MainPanel.class, "main.js"))));
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
index add49b0..3dd0ac8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
@@ -1,20 +1,29 @@
 /* Licensed under the Apache License, Version 2.0 (the "License") 
http://www.apache.org/licenses/LICENSE-2.0 */
-var isRtl = "rtl" === $('html').attr('dir');
+var Settings = (function() {
+       const key = 'openmeetings';
+       function _load() {
+               let s = {};
+               try {
+                       s = JSON.parse(localStorage.getItem(key)) || s;
+               } catch (e) {
+                       //no-op
+               }
+               return s;
+       }
+       function _save(s) {
+               const _s = JSON.stringify(s);
+               localStorage.setItem(key, _s);
+               return _s;
+       }
 
+       return {
+               isRtl: "rtl" === $('html').attr('dir')
+               , load: _load
+               , save: _save
+       };
+})();
 Wicket.BrowserInfo.collectExtraInfo = function(info) {
        const l = window.location;
        info.codebase = l.origin + l.pathname;
-       info.settings = JSON.stringify(getSettings());
+       info.settings = Settings.load();
 };
-function getSettings() {
-       let s = localStorage.getItem("openmeetings");
-       if (!!s) {
-               s = JSON.parse(s);
-       }
-       return s || {};
-}
-function saveSetting(name, val) {
-       const s = getSettings();
-       s[name] = val;
-       localStorage.setItem("openmeetings", JSON.stringify(s));
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
index d9b2c29..08ee9d6 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
@@ -23,6 +23,9 @@
        <div class="ui-widget-header">
                <div onclick="Activities.toggle();" class="clickable control 
block ui-widget-header ui-state-active"><div class="ui-icon ui-icon-carat-1-n 
sort-icon"></div><div class="label"><wicket:message key="1363"/></div></div>
        </div>
+       <div class="ctrl ui-widget-content">
+               <div><input type="checkbox" id="activity-auto-clean"/><label 
for="activity-auto-clean"><wicket:message 
key="activities.autoclean"/></label></div>
+       </div>
        <div wicket:id="container" class="area ui-widget-content">
                <div wicket:id="activities" class="activity item 
ui-helper-clearfix ui-corner-all">
                        <span wicket:id="close" class="ui-icon ui-icon-close 
ui-corner-all clickable" wicket:message="title:85"></span>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
index f7059bb..0f9e191 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/activities.js
@@ -3,6 +3,17 @@ var Activities = function() {
        const closedHeight = "20px";
        let activities, openedHeight = "345px", inited = false;
 
+       function _load() {
+               const s = Settings.load();
+               if (typeof s.activity === 'undefined') {
+                       s.activity = {};
+               }
+               return s;
+       }
+       function _updateClean(s, a) {
+               const clean = s.activity.clean === true;
+               a.prop('checked', clean);
+       }
        function isClosed() {
                return activities.height() < 24;
        }
@@ -39,6 +50,13 @@ var Activities = function() {
                                        openedHeight = ui.size.height + "px";
                                }
                        });
+                       const aclean = 
$('#activity-auto-clean').change(function() {
+                               const s = _load();
+                               s.activity.clean = $(this).prop('checked');
+                               Settings.save(s);
+                               _updateClean(s, $(this));
+                       });
+                       _updateClean(_load(), aclean);
                        inited = true;
                }
                , hightlight: function() {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
index c9db35d..d20509b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
@@ -564,7 +564,7 @@ var VideoManager = (function() {
        return self;
 })();
 var Room = (function() {
-       const self = {}, isRtl = "rtl" === $('html').attr('dir'), sbSide = 
isRtl ? 'right' : 'left';
+       const self = {}, sbSide = Settings.isRtl ? 'right' : 'left';
        let options, menuHeight, chat, sb, dock;
 
        function _init(_options) {
@@ -598,7 +598,7 @@ var Room = (function() {
                                        _setSize();
                                });
                });
-               dock.addClass(isRtl ? 'align-left' : 
'align-right').attr('title', dock.data('ttl-undock'))
+               dock.addClass(Settings.isRtl ? 'align-left' : 
'align-right').attr('title', dock.data('ttl-undock'))
                        .button('option', 'label', dock.data('ttl-undock'))
                        .button('refresh');
                menuHeight = menu.length === 0 ? 0 : menu.height();
@@ -703,7 +703,7 @@ var Room = (function() {
        }
        function _sbAddResizable() {
                sb.resizable({
-                       handles: isRtl ? 'w' : 'e'
+                       handles: Settings.isRtl ? 'w' : 'e'
                        , stop: function() {
                                _setSize();
                        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js
index 429ac30..a6f5c38 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings.js
@@ -3,20 +3,14 @@ var VideoSettings = (function() {
        let vs, lm, swf, s, cam, mic, res, o
                , vidScroll, recBtn, playBtn, recAllowed = false;
        function _load() {
-               s = {};
-               try {
-                       s = JSON.parse(localStorage.getItem('openmeetings')) || 
s;
-               } catch (e) {
-                       //no-op
-               }
+               s = Settings.load();
                if (!s.video) {
                        s.video = {};
                }
                return s;
        }
        function _save(refr) {
-               const _s = JSON.stringify(s);
-               localStorage.setItem('openmeetings', _s);
+               const _s = Settings.save(s);
                if (typeof avSettings === 'function') {
                        avSettings(_s);
                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
index c559af5..ad63f30 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/interview-area.js
@@ -68,7 +68,7 @@ var InterviewWbArea = function() {
        function _resize(sbW, chW, w, h) {
                if (!container || !_inited) return;
                const hh = h - 5;
-               container.width(w).height(h).css('left', (isRtl ? chW : sbW) + 
"px");
+               container.width(w).height(h).css('left', (Settings.isRtl ? chW 
: sbW) + "px");
                area.width(w).height(hh);
        }
        function _setRecStartEnabled(en) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
index 3b17d33..a6ce597 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-area.js
@@ -286,7 +286,7 @@ var DrawWbArea = function() {
        };
        self.resize = function(sbW, chW, w, h) {
                const hh = h - 5;
-               container.width(w).height(h).css('left', (isRtl ? chW : sbW) + 
"px");
+               container.width(w).height(h).css('left', (Settings.isRtl ? chW 
: sbW) + "px");
                if (!container || !_inited) return;
                area.width(w).height(hh);
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
index 2b8144a..a9590ca 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
@@ -205,7 +205,7 @@ var Wb = function() {
                                        , containment: 'body'
                                        , start: function() {
                                                if (!!s.css('bottom')) {
-                                                       s.css('bottom', 
'').css(isRtl ? 'left' : 'right', '');
+                                                       s.css('bottom', 
'').css(Settings.isRtl ? 'left' : 'right', '');
                                                }
                                        }
                                        , drag: function() {
@@ -555,18 +555,18 @@ var Wb = function() {
                        role = _role;
                        const sc = a.find('.scroll-container');
                        z = $('#wb-zoom').clone().attr('id', '')
-                               .attr('style', 'position: absolute; top: 0px; ' 
+ (isRtl ? 'right' : 'left') + ': 80px;');
+                               .attr('style', 'position: absolute; top: 0px; ' 
+ (Settings.isRtl ? 'right' : 'left') + ': 80px;');
                        if (role === NONE) {
                                t = $('#wb-tools-readonly').clone().attr('id', 
'');
                                sc.off('scroll', scrollHandler);
                        } else {
                                t = $('#wb-tools').clone().attr('id', '');
                                s = $("#wb-settings").clone().attr('id', '')
-                                       .attr('style', 'display: none; bottom: 
100px; ' + (isRtl ? 'left' : 'right') + ': 100px;');
+                                       .attr('style', 'display: none; bottom: 
100px; ' + (Settings.isRtl ? 'left' : 'right') + ': 100px;');
                                a.append(s);
                                sc.on('scroll', scrollHandler);
                        }
-                       t.attr('style', 'position: absolute; top: 20px; ' + 
(isRtl ? 'left' : 'right') + ': 20px;');
+                       t.attr('style', 'position: absolute; top: 20px; ' + 
(Settings.isRtl ? 'left' : 'right') + ': 20px;');
                        a.append(t).append(z);
                        showCurrentSlide();
                        t = a.find('.tools'), s = a.find(".wb-settings");
@@ -602,15 +602,15 @@ var Wb = function() {
        wb.resize = function() {
                if (t.position().left + t.width() > a.width()) {
                        t.position({
-                               my: (isRtl ? 'left' : 'right')
-                               , at: (isRtl ? 'left' : 'right') + '-20'
+                               my: (Settings.isRtl ? 'left' : 'right')
+                               , at: (Settings.isRtl ? 'left' : 'right') + 
'-20'
                                , of: '#' + a[0].id
                                , collision: "fit"
                        });
                }
                if (z.position().left + z.width() > a.width()) {
                        z.position({
-                               my: (isRtl ? 'right' : 'left') + ' top'
+                               my: (Settings.isRtl ? 'right' : 'left') + ' top'
                                , at: "center top"
                                , of: '#' + a[0].id
                                , collision: "fit"

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
index 7afe918..85c7d33 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
@@ -73,7 +73,6 @@ public class CalendarPanel extends UserBasePanel {
        private static final Logger log = 
Red5LoggerFactory.getLogger(CalendarPanel.class, getWebAppRootKey());
        private static final long serialVersionUID = 1L;
        private static final String JS_MARKUP = "setCalendarHeight();";
-       private final String javaScriptAddDatepicker;
        private final AbstractAjaxTimerBehavior refreshTimer = new 
AbstractAjaxTimerBehavior(Duration.seconds(10)) {
                private static final long serialVersionUID = 1L;
 
@@ -109,7 +108,6 @@ public class CalendarPanel extends UserBasePanel {
                add(dialog);
 
                boolean isRtl = isRtl();
-               javaScriptAddDatepicker = String.format("addCalButton(%s, 
'datepicker');", isRtl);
                Options options = new Options();
                options.set("isRTL", isRtl);
                options.set("header", isRtl ? "{left: 
'agendaDay,agendaWeek,month', center: 'title', right: 'today 
nextYear,next,prev,prevYear'}"
@@ -348,7 +346,7 @@ public class CalendarPanel extends UserBasePanel {
                Optional<AjaxRequestTarget> target = 
getRequestCycle().find(AjaxRequestTarget.class);
                if (target.isPresent()) {
                        target.get().appendJavaScript(JS_MARKUP);
-                       target.get().appendJavaScript(javaScriptAddDatepicker);
+                       
target.get().appendJavaScript("addCalButton('datepicker');");
                } else {
                        
response.render(JavaScriptHeaderItem.forScript(JS_MARKUP, this.getId()));
                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js
index 49f4e4e..af4bc54 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js
@@ -19,12 +19,12 @@ function toggleDatePicker(id) {
        dp.datepicker(dp.datepicker("widget").is(":visible") ? "hide" : "show");
        return false;
 }
-function addCalButton(rtl, id) {
+function addCalButton(id) {
        const my_button =
                '<button class="fc-button fc-state-default fc-corner-right 
fc-corner-left" onclick="return toggleDatePicker(\'' + id + '\');">' +
                '<input type="text" id="' + id + '" /></button>';
 
-       if (rtl) {
+       if (Settings.isRtl) {
                $(".fc .fc-toolbar .fc-right").prepend(my_button);
        } else {
                $(".fc .fc-toolbar .fc-left").append(my_button);
@@ -43,7 +43,7 @@ function addCalButton(rtl, id) {
                dayNamesMin: 
$('#${markupId}').fullCalendar("option","dayNamesShort"),
                monthNames: 
$('#${markupId}').fullCalendar("option","monthNames"),
                monthNamesShort: 
$('#${markupId}').fullCalendar("option","monthNamesShort"),
-               isRTL: rtl,
+               isRTL: Settings.isRtl,
                onChangeMonthYear: function(year, month, inst) {
                        $('#${markupId}').fullCalendar('gotoDate', year + '-' + 
('0' + month).slice(-2) + '-' + inst.selectedDay);
                },

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
index 50d582d..1faaaf0 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
@@ -1,8 +1,7 @@
 /* Licensed under the Apache License, Version 2.0 (the "License") 
http://www.apache.org/licenses/LICENSE-2.0 */
 var Chat = function() {
-       const isRtl = "rtl" === $('html').attr('dir')
-               , align = isRtl ? 'align-right' : 'align-left'
-               , alignIco = isRtl ? 'align-left' : 'align-right'
+       const align = Settings.isRtl ? 'align-right' : 'align-left'
+               , alignIco = Settings.isRtl ? 'align-left' : 'align-right'
                , tabTemplate = "<li><a href='#{href}'>#{label}</a></li>"
                , msgTemplate = "<div class='clear msg-row' 
id='chat-msg-id-#{id}'><img class='profile " + align + "' 
src='#{imgSrc}'/><span class='from " + align + "' 
data-user-id='#{userId}'>#{from}</span><span class='" + align + 
"'>#{msg}</span><span class='date " + alignIco + "'>#{sent}</span></div>"
                , acceptTemplate = "<div class='tick om-icon " + alignIco + " 
clickable' data-msgid='#{msgid}' data-roomid='#{roomid}' onclick='const 
e=$(this);chatActivity('accept',e.data(\"roomid\"),e.data(\"msgid\"));e.parent().remove();'></div>"
@@ -16,12 +15,12 @@ var Chat = function() {
                , emoticon = new CSSEmoticon()
                , doneTypingInterval = 5000 //time in ms, 5 second for example
                , iconOpen = 'ui-icon-caret-1-n'
-               , iconOpenRoom = 'ui-icon-caret-1-' + (isRtl ? 'e' : 'w')
+               , iconOpenRoom = 'ui-icon-caret-1-' + (Settings.isRtl ? 'e' : 
'w')
                , iconClose = 'ui-icon-caret-1-s'
-               , iconCloseRoom = 'ui-icon-caret-1-' + (isRtl ? 'w' : 'e')
+               , iconCloseRoom = 'ui-icon-caret-1-' + (Settings.isRtl ? 'w' : 
'e')
                ;
        let p, pp, ctrl, icon, tabs, openedHeight = "345px", openedWidth = 
"300px", allPrefix = "All"
-               , roomPrefix = "Room ", typingTimer, audio, s, roomMode = 
false, globalWidth = 600
+               , roomPrefix = "Room ", typingTimer, audio, roomMode = false, 
globalWidth = 600
                , editor = $('#chatMessage .wysiwyg-editor')
                ;
 
@@ -34,21 +33,13 @@ var Chat = function() {
                };
        }
        function _load() {
-               s = {};
-               try {
-                       s = JSON.parse(localStorage.getItem('openmeetings')) || 
s;
-               } catch (e) {
-                       //no-op
-               }
-               if (!s.chat) {
+               const s = Settings.load();
+               if (typeof s.chat === 'undefined') {
                        s.chat = {};
                }
+               return s;
        }
-       function _save() {
-               const _s = JSON.stringify(s);
-               localStorage.setItem('openmeetings', _s);
-       }
-       function _updateBtn(a) {
+       function _updateBtn(s, a) {
                const muted = s.chat.muted === true;
                a.removeClass('sound' + (muted ? '' : 
'-mute')).addClass('sound' + (muted ? '-mute' : ''))
                                .attr('title', a.data(muted ? 'sound-enabled' : 
'sound-muted'));
@@ -76,14 +67,14 @@ var Chat = function() {
                                row = $('<tr></tr>');
                        }
                }
-               _load();
                const a = $('#chat .audio');
-               _updateBtn(a);
+               _updateBtn(_load(), a);
                $('#chat .chat-btn').hover(function(){ 
$(this).addClass('ui-state-hover') }, function(){ 
$(this).removeClass('ui-state-hover') });
-               a.click(function() {
+               a.off().click(function() {
+                       const s = _load();
                        s.chat.muted = !s.chat.muted;
-                       _updateBtn(a);
-                       _save();
+                       _updateBtn(s, a);
+                       Settings.save(s);
                });
        }
        function isClosed() {
@@ -142,7 +133,7 @@ var Chat = function() {
                        p.removeClass('room')
                                .off('mouseenter mouseleave')
                                .resizable({
-                                       handles: 'n, ' + (isRtl ? 'w' : 'e')
+                                       handles: 'n, ' + (Settings.isRtl ? 'w' 
: 'e')
                                        , disabled: isClosed()
                                        , alsoResize: "#chatPopup, #chat 
.ui-tabs .ui-tabs-panel.messageArea"
                                        , minHeight: 195
@@ -196,6 +187,7 @@ var Chat = function() {
                if ($('#chat').length > 0 && m && m.type === "chat") {
                        if (isClosed()) {
                                ctrl.addClass('ui-state-highlight');
+                               const s = _load();
                                if (p.is(':visible') && s.chat.muted !== true) {
                                        const playPromise = audio.play();
 
@@ -249,7 +241,7 @@ var Chat = function() {
        function _setOpened() {
                p.addClass('opened').off('mouseenter mouseleave');
                p.resizable({
-                       handles: (isRtl ? 'e' : 'w')
+                       handles: (Settings.isRtl ? 'e' : 'w')
                        , alsoResize: '#chatPopup'
                        , stop: function(event, ui) {
                                p.css({'left': ''});

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9f829f2c/openmeetings-web/src/main/webapp/css/activities.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/activities.css 
b/openmeetings-web/src/main/webapp/css/activities.css
index 2ef9187..dafbb24 100644
--- a/openmeetings-web/src/main/webapp/css/activities.css
+++ b/openmeetings-web/src/main/webapp/css/activities.css
@@ -31,6 +31,10 @@
        display: inline-block;
        padding-left: 20px;
 }
+#activities .ctrl {
+       padding-left: 20px;
+       padding-right: 20px;
+}
 #activities .area {
        height: 319px;
        overflow-y: auto;

Reply via email to