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 2021/06/17 00:32:57 UTC
[openmeetings] 01/02: [OPENMEETINGS-2604] customized extra menu in
room
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
commit 80e769aaee9708d3054cf84520d816d20b4ed652
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jun 17 00:06:23 2021 +0700
[OPENMEETINGS-2604] customized extra menu in room
---
.../openmeetings/db/dao/room/ExtraMenuDao.java | 129 +++++++++++++++++++++
.../apache/openmeetings/db/dao/user/UserDao.java | 2 +-
.../openmeetings/db/entity/room/ExtraMenu.java | 122 +++++++++++++++++++
.../org/apache/openmeetings/db/util/DaoHelper.java | 5 +-
.../web/admin/configurations/ConfigForm.java | 10 +-
.../web/admin/configurations/ConfigsPanel.java | 15 +--
.../web/admin/connection/ConnectionsPanel.java | 51 ++++----
.../openmeetings/web/admin/email/EmailPanel.java | 13 +--
.../openmeetings/web/admin/extra/ExtraForm.java | 113 ++++++++++++++++++
.../openmeetings/web/admin/extra/ExtraPanel.html | 70 +++++++++++
.../EmailPanel.java => extra/ExtraPanel.java} | 66 +++++------
.../openmeetings/web/admin/groups/GroupForm.java | 44 ++++---
.../openmeetings/web/admin/groups/GroupsPanel.java | 17 +--
.../openmeetings/web/admin/labels/LangPanel.java | 15 +--
.../openmeetings/web/admin/ldaps/LdapsPanel.java | 15 +--
.../openmeetings/web/admin/oauth/OAuthPanel.java | 15 +--
.../openmeetings/web/admin/rooms/RoomForm.java | 48 ++++----
.../openmeetings/web/admin/rooms/RoomsPanel.java | 17 +--
.../openmeetings/web/admin/users/UsersPanel.java | 15 +--
.../web/app/Application.properties.xml | 7 +-
.../web/app/Application_ar.properties.xml | 7 +-
.../web/app/Application_bg.properties.xml | 7 +-
.../web/app/Application_bn.properties.xml | 7 +-
.../web/app/Application_ca.properties.xml | 7 +-
.../web/app/Application_cs.properties.xml | 7 +-
.../web/app/Application_da.properties.xml | 7 +-
.../web/app/Application_de.properties.xml | 9 +-
.../web/app/Application_el.properties.xml | 7 +-
.../web/app/Application_es.properties.xml | 7 +-
.../web/app/Application_fa.properties.xml | 7 +-
.../web/app/Application_fi.properties.xml | 7 +-
.../web/app/Application_fr.properties.xml | 7 +-
.../web/app/Application_gl.properties.xml | 7 +-
.../web/app/Application_hi.properties.xml | 7 +-
.../web/app/Application_hu.properties.xml | 7 +-
.../web/app/Application_in.properties.xml | 7 +-
.../web/app/Application_it.properties.xml | 7 +-
.../web/app/Application_iw.properties.xml | 7 +-
.../web/app/Application_ja.properties.xml | 7 +-
.../web/app/Application_ko.properties.xml | 7 +-
.../web/app/Application_ku.properties.xml | 7 +-
.../web/app/Application_lo.properties.xml | 7 +-
.../web/app/Application_nl.properties.xml | 7 +-
.../web/app/Application_pl.properties.xml | 7 +-
.../web/app/Application_pt.properties.xml | 7 +-
.../web/app/Application_pt_BR.properties.xml | 7 +-
.../web/app/Application_ru.properties.xml | 7 +-
.../web/app/Application_sk.properties.xml | 7 +-
.../web/app/Application_sv.properties.xml | 7 +-
.../web/app/Application_ta.properties.xml | 7 +-
.../web/app/Application_th.properties.xml | 7 +-
.../web/app/Application_tk.properties.xml | 7 +-
.../web/app/Application_tr.properties.xml | 7 +-
.../web/app/Application_uk.properties.xml | 7 +-
.../web/app/Application_ur.properties.xml | 7 +-
.../web/app/Application_zh_CN.properties.xml | 7 +-
.../web/app/Application_zh_TW.properties.xml | 7 +-
.../apache/openmeetings/web/app/WebSession.java | 13 +--
.../apache/openmeetings/web/common/BasePanel.java | 1 +
.../openmeetings/web/common/InvitationForm.java | 25 ++--
.../apache/openmeetings/web/common/MainPanel.java | 3 +
.../web/common/PagingNavigatorPanel.java | 21 ++--
.../openmeetings/web/room/menu/ExtrasSubMenu.java | 76 ++++++++++++
.../web/room/menu/RoomInvitationForm.java | 14 +--
.../openmeetings/web/room/menu/RoomMenuPanel.java | 5 +
.../web/room/poll/PollResultsDialog.java | 23 ++--
.../web/room/sidebar/RoomFilePanel.java | 9 +-
.../web/user/calendar/AppointmentDialog.java | 23 ++--
.../web/user/calendar/CalendarPanel.java | 13 +--
.../openmeetings/web/user/chat/ChatToolbar.java | 9 +-
.../web/user/profile/InvitationsPanel.java | 21 ++--
.../web/user/profile/MessagesContactsPanel.java | 60 +++-------
.../openmeetings/web/util/OmUrlFragment.java | 9 ++
.../WEB-INF/classes/META-INF/db2_persistence.xml | 1 +
.../WEB-INF/classes/META-INF/h2_persistence.xml | 1 +
.../WEB-INF/classes/META-INF/mssql_persistence.xml | 1 +
.../WEB-INF/classes/META-INF/mysql_persistence.xml | 1 +
.../classes/META-INF/oracle_persistence.xml | 1 +
.../classes/META-INF/postgresql_persistence.xml | 1 +
.../org/apache/openmeetings/web/TestMainAreas.java | 12 ++
80 files changed, 991 insertions(+), 402 deletions(-)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
new file mode 100644
index 0000000..911a3ef
--- /dev/null
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.dao.room;
+
+import static org.apache.openmeetings.db.util.DaoHelper.getSearchQuery;
+import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
+import static org.apache.openmeetings.db.util.DaoHelper.single;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.apache.openmeetings.db.dao.IGroupAdminDataProviderDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.ExtraMenu;
+import org.apache.openmeetings.db.entity.user.Group;
+import org.apache.openmeetings.db.entity.user.GroupUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+@Repository
+@Transactional
+public class ExtraMenuDao implements IGroupAdminDataProviderDao<ExtraMenu> {
+ public final static String[] searchFields = {"name", "link", "description"};
+
+ @PersistenceContext
+ private EntityManager em;
+
+ @Autowired
+ private UserDao userDao;
+
+ @Override
+ public ExtraMenu get(Long id) {
+ return single(em.createNamedQuery("getExtraMenuById", ExtraMenu.class)
+ .getResultList());
+ }
+
+ @Override
+ public ExtraMenu get(long id) {
+ return get(Long.valueOf(id));
+ }
+
+ @Override
+ public List<ExtraMenu> get(long start, long count) {
+ return setLimits(em.createNamedQuery("getExtraMenus", ExtraMenu.class), start, count).getResultList();
+ }
+
+ @Override
+ public List<ExtraMenu> get(String search, long start, long count, String order) {
+ return setLimits(
+ em.createQuery(getSearchQuery("ExtraMenu", "m", search, false, false, order, searchFields)
+ , ExtraMenu.class)
+ , start, count).getResultList();
+ }
+
+ public List<ExtraMenu> getByGroups(List<Long> groups) {
+ return em.createNamedQuery("getExtraMenuByGroups", ExtraMenu.class)
+ .setParameter("ids", groups)
+ .getResultList();
+ }
+
+ @Override
+ public long count() {
+ return em.createNamedQuery("countExtraMenus", Long.class).getSingleResult();
+ }
+
+ @Override
+ public long count(String search) {
+ return em.createQuery(getSearchQuery("ExtraMenu", "m", search, false, true, null, searchFields), Long.class)
+ .getSingleResult();
+ }
+
+ @Override
+ public ExtraMenu update(ExtraMenu entity, Long userId) {
+ if (entity.getId() == null) {
+ em.persist(entity);
+ } else {
+ entity = em.merge(entity);
+ }
+ return entity;
+ }
+
+ @Override
+ public void delete(ExtraMenu entity, Long userId) {
+ em.remove(entity);
+ }
+
+ @Override
+ public List<ExtraMenu> adminGet(String search, Long adminId, long start, long count, String order) {
+ final String additionalWhere = getGroupFilter(adminId);
+ return setLimits(em.createQuery(getSearchQuery("ExtraMenu", "m", null, search, false, false, additionalWhere, order, searchFields), ExtraMenu.class)
+ , start, count).getResultList();
+ }
+
+ @Override
+ public long adminCount(String search, Long adminId) {
+ final String additionalWhere = getGroupFilter(adminId);
+ return em.createQuery(getSearchQuery("ExtraMenu", "m", null, search, false, true, additionalWhere, null, searchFields), Long.class)
+ .getSingleResult();
+ }
+
+ private String getGroupFilter(Long adminId) {
+ return userDao.get(adminId).getGroupUsers().stream()
+ .filter(GroupUser::isModerator)
+ .map(GroupUser::getGroup)
+ .map(Group::getId)
+ .map(String::valueOf)
+ .collect(Collectors.joining(", ", "m.groups IN (", ")"));
+ }
+}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
index bae79dc..b8dc754 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
@@ -435,7 +435,7 @@ public class UserDao implements IGroupAdminDataProviderDao<User> {
try {
// get all users
TypedQuery<Long> query = em.createNamedQuery("selectMaxFromUsersWithSearch", Long.class);
- query.setParameter("search", StringUtils.lowerCase(search));
+ query.setParameter("search", StringUtils.lowerCase(search, Locale.ROOT));
List<Long> ll = query.getResultList();
log.info("selectMaxFromUsers {}", ll.get(0));
return ll.get(0);
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
new file mode 100644
index 0000000..609b0b2
--- /dev/null
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.entity.room;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.CollectionTable;
+import javax.persistence.Column;
+import javax.persistence.ElementCollection;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import org.apache.openmeetings.db.bind.adapter.LongAdapter;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
+
+@Entity
+@NamedQueries({
+ @NamedQuery(name = "getExtraMenuById", query = "SELECT m FROM ExtraMenu m WHERE m.id = :id")
+ , @NamedQuery(name = "getExtraMenus", query = "SELECT m FROM ExtraMenu m")
+ , @NamedQuery(name = "getExtraMenuByGroups", query = "SELECT m FROM ExtraMenu m WHERE m.groups IS NULL OR m.groups IN (:ids)")
+ , @NamedQuery(name = "countExtraMenus", query = "SELECT COUNT(m) FROM ExtraMenu m")
+})
+@Table(name = "extra_menu")
+public class ExtraMenu implements IDataProviderEntity {
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "id")
+ @XmlElement(name = "id")
+ @XmlJavaTypeAdapter(LongAdapter.class)
+ private Long id;
+
+ @Column(name = "name")
+ @XmlElement(name = "name")
+ private String name;
+
+ @Column(name = "link")
+ @XmlElement(name = "link")
+ private String link;
+
+ @Column(name = "description")
+ @XmlElement(name = "description")
+ private String description;
+
+ @ElementCollection(fetch = FetchType.EAGER)
+ @Column(name = "group_id", nullable = false)
+ @CollectionTable(name = "menu_group", joinColumns = @JoinColumn(name = "menu_id"))
+ @XmlElementWrapper(name = "groups", required = false)
+ @XmlElement(name = "group", required = false)
+ @XmlJavaTypeAdapter(LongAdapter.class)
+ private List<Long> groups = new ArrayList<>();
+
+ @Override
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<Long> getGroups() {
+ return groups;
+ }
+
+ public void setGroups(List<Long> groups) {
+ this.groups = groups;
+ }
+}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java
index c0b44f6..6bca782 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java
@@ -19,6 +19,7 @@
package org.apache.openmeetings.db.util;
import java.util.List;
+import java.util.Locale;
import java.util.function.Function;
import javax.persistence.EntityManager;
@@ -90,7 +91,7 @@ public class DaoHelper {
inSb.append(" OR ");
}
StringBuilder placeholder = new StringBuilder();
- placeholder.append("%").append(StringUtils.lowerCase(searchItems[i])).append("%");
+ placeholder.append("%").append(StringUtils.lowerCase(searchItems[i], Locale.ROOT)).append("%");
inSb.append("(");
for (int j = 0; j < fields.length; ++j) {
@@ -117,7 +118,7 @@ public class DaoHelper {
}
public static String getStringParam(String param) {
- return param == null ? "%" : "%" + StringUtils.lowerCase(param) + "%";
+ return param == null ? "%" : "%" + StringUtils.lowerCase(param, Locale.ROOT) + "%";
}
public static <T> TypedQuery<T> setLimits(TypedQuery<T> q, Long first, Long max) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
index 5148ae0..1e24eee 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.web.admin.configurations;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
import static org.apache.wicket.validation.validator.StringValidator.maximumLength;
import java.util.List;
@@ -137,14 +138,7 @@ public class ConfigForm extends AdminBaseForm<Configuration> {
}
return null;
}
- }).setLabel(new ResourceModel("45")).add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- update(target);
- }
- }));
+ }).setLabel(new ResourceModel("45")).add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, this::update)));
add(new RequiredTextField<String>("key").setLabel(new ResourceModel("265")).add(new IValidator<String>(){
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
index 1c50a1e..afb2e0a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
@@ -68,16 +68,11 @@ public class ConfigsPanel extends AdminBasePanel {
item.add(new Label("id"));
item.add(new Label("key"));
item.add(new Label("value"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setNewRecordVisible(false);
- form.setModelObject(cfgDao.get(c.getId())); // force fetch lazy user
- target.add(form, listContainer);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setNewRecordVisible(false);
+ form.setModelObject(cfgDao.get(c.getId())); // force fetch lazy user
+ target.add(form, listContainer);
+ }));
item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(c.getId(), form.getModelObject().getId())));
}
};
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
index 0c933c2..9132b84 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
@@ -132,36 +132,31 @@ public class ConnectionsPanel extends AdminBasePanel {
}.add(newOkCancelConfirm(this, getString("605"))));
}
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- Field[] ff = (item.getModelObject() instanceof KStreamDto ? KStreamDto.class : Client.class).getDeclaredFields();
- RepeatingView lines = new RepeatingView("line");
- Object c = item.getModelObject();
-
- for (Field f : ff) {
- int mod = f.getModifiers();
- if (Modifier.isStatic(mod) || Modifier.isTransient(mod)) {
- continue;
- }
- WebMarkupContainer line = new WebMarkupContainer(lines.newChildId());
- line.add(new Label("name", f.getName()));
- String val = "";
- try {
- f.setAccessible(true);
- val = "" + f.get(c);
- } catch (Exception e) {
- //noop
- }
- line.add(new Label("value", val));
- lines.add(line);
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ Field[] ff = (item.getModelObject() instanceof KStreamDto ? KStreamDto.class : Client.class).getDeclaredFields();
+ RepeatingView lines = new RepeatingView("line");
+ Object c = item.getModelObject();
+
+ for (Field f : ff) {
+ int mod = f.getModifiers();
+ if (Modifier.isStatic(mod) || Modifier.isTransient(mod)) {
+ continue;
}
- details.addOrReplace(lines);
- target.add(details.setVisible(true));
+ WebMarkupContainer line = new WebMarkupContainer(lines.newChildId());
+ line.add(new Label("name", f.getName()));
+ String val = "";
+ try {
+ f.setAccessible(true);
+ val = "" + f.get(c);
+ } catch (Exception e) {
+ //noop
+ }
+ line.add(new Label("value", val));
+ lines.add(line);
}
- });
+ details.addOrReplace(lines);
+ target.add(details.setVisible(true));
+ }));
item.add(AttributeModifier.append(ATTR_CLASS, ROW_CLASS));
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
index 0d825fc..4a820bb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
@@ -53,15 +53,10 @@ public class EmailPanel extends AdminBasePanel {
item.add(new Label("id"));
item.add(new Label("status", getString("admin.email.status." + m.getStatus().name())));
item.add(new Label("subject"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setModelObject(m);
- target.add(form, list);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setModelObject(m);
+ target.add(form, list);
+ }));
item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(m)));
}
};
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
new file mode 100644
index 0000000..21384a0
--- /dev/null
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.admin.extra;
+
+import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
+import static org.apache.openmeetings.web.app.WebSession.getRights;
+
+import java.util.ArrayList;
+
+import org.apache.openmeetings.db.dao.room.ExtraMenuDao;
+import org.apache.openmeetings.db.dao.user.GroupDao;
+import org.apache.openmeetings.db.entity.room.ExtraMenu;
+import org.apache.openmeetings.db.entity.user.Group;
+import org.apache.openmeetings.web.admin.AdminBaseForm;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.common.GroupChoiceProvider;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.WebMarkupContainer;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.RequiredTextField;
+import org.apache.wicket.markup.html.form.TextArea;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.model.util.CollectionModel;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.wicketstuff.select2.Select2MultiChoice;
+
+public class ExtraForm extends AdminBaseForm<ExtraMenu> {
+ private static final long serialVersionUID = 1L;
+ private final WebMarkupContainer list;
+ final Select2MultiChoice<Group> groups = new Select2MultiChoice<>("groups"
+ , new CollectionModel<>(new ArrayList<Group>())
+ , new GroupChoiceProvider());
+
+ @SpringBean
+ private ExtraMenuDao menuDao;
+ @SpringBean
+ private GroupDao groupDao;
+
+ public ExtraForm(String id, final WebMarkupContainer list, ExtraMenu m) {
+ super(id, new CompoundPropertyModel<>(m));
+ this.list = list;
+ }
+
+ @Override
+ protected void onInitialize() {
+ super.onInitialize();
+ add(new RequiredTextField<String>("name").setLabel(new ResourceModel("165")));
+ add(new RequiredTextField<String>("link").setLabel(new ResourceModel("admin.extra.link")));
+ add(groups.setLabel(new ResourceModel("126")).setRequired(hasGroupAdminLevel(getRights())));
+ add(new TextArea<String>("description").setLabel(new ResourceModel("lbl.description")));
+ }
+
+ @Override
+ protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) {
+ ExtraMenu m = getModelObject();
+ m.getGroups().clear();
+ for (Group g : groups.getModelObject()) {
+ m.getGroups().add(g.getId());
+ }
+ setModelObject(menuDao.update(m, WebSession.getUserId()));
+ setNewVisible(false);
+ target.add(this, list);
+ }
+
+ @Override
+ protected void onModelChanged() {
+ super.onModelChanged();
+ ExtraMenu m = getModelObject();
+ groups.setModelObject(m == null || m.getGroups() == null || m.getGroups().isEmpty() ? new ArrayList<>() : groupDao.get(m.getGroups()));
+ }
+
+ @Override
+ protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) {
+ this.setModelObject(new ExtraMenu());
+ target.add(this);
+ }
+
+ @Override
+ protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) {
+ ExtraMenu m = getModelObject();
+ if (m.getId() != null) {
+ m = menuDao.get(m.getId());
+ } else {
+ m = new ExtraMenu();
+ }
+ this.setModelObject(m);
+ target.add(this);
+ }
+
+ @Override
+ protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) {
+ menuDao.delete(getModelObject(), WebSession.getUserId());
+ this.setModelObject(new ExtraMenu());
+ target.add(list, this);
+ }
+}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraPanel.html
new file mode 100644
index 0000000..05fa6a6
--- /dev/null
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraPanel.html
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+
+-->
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+ <div class="adminPanelColumnTable col-6">
+ <div class="adminNav" wicket:id="navigator">[dataview navigator]</div>
+ <table class="list-table table-striped table-hover">
+ <thead>
+ <tr>
+ <th class="col-1"><span wicket:id="orderById"></span><wicket:message key="188" /></th>
+ <th class="col-5"><span wicket:id="orderByName"></span><wicket:message key="165" /></th>
+ <th class="col-6"><span wicket:id="orderByLink"></span><wicket:message key="admin.extra.link" /></th>
+ </tr>
+ </thead>
+ <tbody wicket:id="list">
+ <tr wicket:id="menu">
+ <td class="col-1"><div class="col-wrapper"><span wicket:id="id"></span></div></td>
+ <td class="col-5"><div class="col-wrapper"><span wicket:id="name"></span></div></td>
+ <td class="col-6"><div class="col-wrapper"><span wicket:id="link"></span></div></td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="adminPanelColumnForm col-6">
+ <form wicket:id="form" class="adminForm">
+ <div wicket:id="buttons"></div>
+ <div class="scrollcontent" id="adminForm">
+ <fieldset>
+ <legend><wicket:message key="admin.extra.group.label" /></legend>
+ <div class="formelement">
+ <label wicket:for="name" class="col-3 text-right"><wicket:message key="165" /></label>
+ <input type="text" wicket:id="name" class="col-8"/>
+ </div>
+ <div class="formelement">
+ <label wicket:for="link" class="col-3 text-right"><wicket:message key="admin.extra.link" /></label>
+ <input type="text" wicket:id="link" class="col-8"/>
+ </div>
+ <div class="formelement">
+ <label wicket:for="description" class="col-3 text-right"><wicket:message key="admin.extra.desc" /></label>
+ <textarea wicket:id="description" class="col-8"></textarea>
+ </div>
+ <div class="formelement">
+ <label wicket:for="groups" class="col-3 text-right"><wicket:message key="126" /></label>
+ <div class="om-select2 p-0 d-inline-block col-8"><select class="input w-100" wicket:id="groups"></select></div>
+ </div>
+ </fieldset>
+ </div>
+ </form>
+ </div>
+</wicket:extend>
+</html>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraPanel.java
similarity index 58%
copy from openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
copy to openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraPanel.java
index 0d825fc..4d0b215 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraPanel.java
@@ -16,80 +16,74 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.openmeetings.web.admin.email;
+package org.apache.openmeetings.web.admin.extra;
import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
-import org.apache.openmeetings.db.dao.basic.MailMessageDao;
-import org.apache.openmeetings.db.entity.basic.MailMessage;
+import org.apache.openmeetings.db.dao.room.ExtraMenuDao;
+import org.apache.openmeetings.db.entity.room.ExtraMenu;
import org.apache.openmeetings.web.admin.AdminBasePanel;
import org.apache.openmeetings.web.admin.SearchableDataView;
import org.apache.openmeetings.web.common.PagedEntityListPanel;
import org.apache.openmeetings.web.data.DataViewContainer;
import org.apache.openmeetings.web.data.OmOrderByBorder;
-import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.openmeetings.web.data.SearchableGroupAdminDataProvider;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.Item;
-public class EmailPanel extends AdminBasePanel {
+@AuthorizeInstantiation({"ADMIN", "GROUP_ADMIN"})
+public class ExtraPanel extends AdminBasePanel {
private static final long serialVersionUID = 1L;
private final WebMarkupContainer list = new WebMarkupContainer("list");
- private final EmailForm form;
+ private ExtraForm form;
- public EmailPanel(String id) {
+ public ExtraPanel(String id) {
super(id);
- SearchableDataView<MailMessage> dataView = new SearchableDataView<>("email",
- new SearchableDataProvider<>(MailMessageDao.class))
+ }
+
+ @Override
+ protected void onInitialize() {
+ SearchableDataView<ExtraMenu> dataView = new SearchableDataView<>("menu",
+ new SearchableGroupAdminDataProvider<>(ExtraMenuDao.class))
{
private static final long serialVersionUID = 1L;
@Override
- protected void populateItem(Item<MailMessage> item) {
- final MailMessage m = item.getModelObject();
+ protected void populateItem(Item<ExtraMenu> item) {
+ final ExtraMenu m = item.getModelObject();
item.add(new Label("id"));
- item.add(new Label("status", getString("admin.email.status." + m.getStatus().name())));
- item.add(new Label("subject"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setModelObject(m);
- target.add(form, list);
- }
- });
- item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(m)));
+ item.add(new Label("name"));
+ item.add(new Label("link"));
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setModelObject(m);
+ target.add(form, list);
+ }));
+ item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(m.getId(), form.getModelObject().getId())));
}
};
add(list.add(dataView).setOutputMarkupId(true));
final PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = -1L;
@Override
protected void onEvent(AjaxRequestTarget target) {
target.add(list);
}
};
- DataViewContainer<MailMessage> container = new DataViewContainer<>(list, dataView, navigator);
+ DataViewContainer<ExtraMenu> container = new DataViewContainer<>(list, dataView, navigator);
container.addLink(new OmOrderByBorder<>("orderById", "id", container))
- .addLink(new OmOrderByBorder<>("orderBySubject", "subject", container))
- .addLink(new OmOrderByBorder<>("orderByStatus", "status", container));
+ .addLink(new OmOrderByBorder<>("orderByName", "name", container))
+ .addLink(new OmOrderByBorder<>("orderByLink", "link", container));
add(container.getLinks());
add(navigator);
- form = new EmailForm("form", list, new MailMessage());
+ form = new ExtraForm("form", list, new ExtraMenu());
add(form);
- }
-
- private StringBuilder getRowClass(final MailMessage m) {
- StringBuilder sb = getRowClass(m.getId(), form.getModelObject().getId());
- if (MailMessage.Status.ERROR == m.getStatus()) {
- sb.append(" bg-warning");
- }
- return sb;
+ super.onInitialize();
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
index f0d002a..79a0b28 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.util.OmFileHelper.getGroupLogo;
import static org.apache.openmeetings.util.OmFileHelper.getGroupLogoDir;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
import static org.apache.openmeetings.web.util.GroupLogoResourceReference.getUrl;
import java.io.File;
@@ -115,34 +116,29 @@ public class GroupForm extends AdminBaseForm<Group> {
return formatUser(choice);
}
}));
- userToadd.add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- Group o = GroupForm.this.getModelObject();
- User u = userToadd.getModelObject();
- boolean found = false;
- if (o.getId() != null) {
- found = null != groupUserDao.getByGroupAndUser(o.getId(), u.getId());
- }
- if (!found && u != null) {
- for (GroupUser ou : usersPanel.getUsers2add()) {
- if (ou.getUser().getId().equals(u.getId())) {
- found = true;
- break;
- }
+ userToadd.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ Group o = GroupForm.this.getModelObject();
+ User u = userToadd.getModelObject();
+ boolean found = false;
+ if (o.getId() != null) {
+ found = null != groupUserDao.getByGroupAndUser(o.getId(), u.getId());
+ }
+ if (!found && u != null) {
+ for (GroupUser ou : usersPanel.getUsers2add()) {
+ if (ou.getUser().getId().equals(u.getId())) {
+ found = true;
+ break;
}
- if (!found) {
- GroupUser ou = new GroupUser(o, u);
- usersPanel.getUsers2add().add(ou);
+ }
+ if (!found) {
+ GroupUser ou = new GroupUser(o, u);
+ usersPanel.getUsers2add().add(ou);
- userToadd.setModelObject(null);
- target.add(usersPanel, userToadd);
- }
+ userToadd.setModelObject(null);
+ target.add(usersPanel, userToadd);
}
}
- });
+ }));
}
static String formatUser(User choice) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
index 2aa075d..56ed420 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
@@ -75,17 +75,12 @@ public class GroupsPanel extends AdminBasePanel {
name.add(AttributeModifier.append("class", "external"));
}
item.add(name);
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setNewRecordVisible(false);
- form.setModelObject(g);
- form.updateView(target);
- target.add(listContainer);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setNewRecordVisible(false);
+ form.setModelObject(g);
+ form.updateView(target);
+ target.add(listContainer);
+ }));
item.add(AttributeModifier.append(ATTR_CLASS, getRowClass(g.getId(), form.getModelObject().getId())));
}
};
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
index 05219d3..93cde50 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
@@ -119,16 +119,11 @@ public class LangPanel extends AdminBasePanel {
final StringLabel fv = item.getModelObject();
item.add(new Label("key"));
item.add(new Label("value"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setModelObject(fv);
- form.setNewRecordVisible(false);
- target.add(form, listContainer);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setModelObject(fv);
+ form.setNewRecordVisible(false);
+ target.add(form, listContainer);
+ }));
item.add(AttributeModifier.append(ATTR_CLASS, getRowClass(fv.getId(), form.getModelObject().getId())));
}
};
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
index f9e2c5e..a045b0f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapsPanel.java
@@ -62,16 +62,11 @@ public class LdapsPanel extends AdminBasePanel {
item.add(new Label("id"));
item.add(new Label("name"));
item.add(new Label("configFileName"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setModelObject(lc);
- form.setNewRecordVisible(false);
- target.add(form, listContainer);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setModelObject(lc);
+ form.setNewRecordVisible(false);
+ target.add(form, listContainer);
+ }));
item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(lc.getId(), form.getModelObject().getId())));
}
};
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
index a14fe8b..555a262 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.java
@@ -57,16 +57,11 @@ public class OAuthPanel extends AdminBasePanel {
final OAuthServer server = item.getModelObject();
item.add(new Label("id"));
item.add(new Label("name"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setModelObject(server);
- form.setNewRecordVisible(false);
- target.add(form, listContainer);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setModelObject(server);
+ form.setNewRecordVisible(false);
+ target.add(form, listContainer);
+ }));
item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(server.getId(), form.getModelObject().getId())));
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
index afde3de..b93776d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
@@ -24,6 +24,7 @@ import static org.apache.openmeetings.web.admin.AdminUserChoiceProvider.PAGE_SIZ
import static org.apache.openmeetings.web.app.Application.kickUser;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
import static org.apache.wicket.validation.validator.StringValidator.maximumLength;
@@ -277,35 +278,30 @@ public class RoomForm extends AdminBaseForm<Room> {
}
});
moderatorChoice.getSettings().setCloseOnSelect(true);
- add(moderatorChoice.add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- Room r = RoomForm.this.getModelObject();
- User u = moderator2add.getObject();
- boolean found = false;
- if (u != null) {
- if (r.getModerators() == null) {
- r.setModerators(new ArrayList<>());
- }
- for (RoomModerator rm : r.getModerators()) {
- if (rm.getUser().getId().equals(u.getId())) {
- found = true;
- break;
- }
- }
- if (!found) {
- RoomModerator rm = new RoomModerator();
- rm.setRoomId(r.getId());
- rm.setUser(u);
- r.getModerators().add(0, rm);
- moderator2add.setObject(null);
- target.add(moderatorContainer, moderatorChoice);
+ add(moderatorChoice.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ Room r = RoomForm.this.getModelObject();
+ User u = moderator2add.getObject();
+ boolean found = false;
+ if (u != null) {
+ if (r.getModerators() == null) {
+ r.setModerators(new ArrayList<>());
+ }
+ for (RoomModerator rm : r.getModerators()) {
+ if (rm.getUser().getId().equals(u.getId())) {
+ found = true;
+ break;
}
}
+ if (!found) {
+ RoomModerator rm = new RoomModerator();
+ rm.setRoomId(r.getId());
+ rm.setUser(u);
+ r.getModerators().add(0, rm);
+ moderator2add.setObject(null);
+ target.add(moderatorContainer, moderatorChoice);
+ }
}
- }).setOutputMarkupId(true));
+ })).setOutputMarkupId(true));
add(moderatorContainer.add(new ListView<RoomModerator>("moderators") {
private static final long serialVersionUID = 1L;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
index c713faa..898be32 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
@@ -57,17 +57,12 @@ public class RoomsPanel extends AdminBasePanel {
item.add(new Label("id"));
item.add(new Label("name"));
item.add(new Label("ispublic"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setNewRecordVisible(false);
- form.setModelObject(roomDao.get(roomId));
- form.updateView(target);
- target.add(form, listContainer);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setNewRecordVisible(false);
+ form.setModelObject(roomDao.get(roomId));
+ form.updateView(target);
+ target.add(form, listContainer);
+ }));
item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(room.getId(), form.getModelObject().getId())));
}
};
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
index cf261ef..6dba04d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
@@ -71,16 +71,11 @@ public class UsersPanel extends AdminBasePanel {
item.add(new Label("login"));
item.add(new Label("firstname"));
item.add(new Label("lastname"));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- form.setModelObject(userDao.get(userId));
- form.setNewRecordVisible(false);
- form.update(target);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ form.setModelObject(userDao.get(userId));
+ form.setNewRecordVisible(false);
+ form.update(target);
+ }));
StringBuilder cl = getRowClass(u.getId(), form.getModelObject().getId());
if (u.isDeleted()) {
cl.append(" deleted");
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 f8d7f08..f64b4a1 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 bab690b..d2c6d08 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[يود دعوتك إلى غرفة الاجتماعات:]]></entry>
<entry key="1138"><![CDATA[رسالة دعوة]]></entry>
<entry key="1143"><![CDATA[المنطقه الزمنيه]]></entry>
- <entry key="1146"><![CDATA[الوصف]]></entry>
<entry key="1147"><![CDATA[انشأ من قبل]]></entry>
<entry key="1151"><![CDATA[مؤتمر {0} جديد:]]></entry>
<entry key="1152"><![CDATA[التفاصيل:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[خطأ]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[لا شيء]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[إرسال]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[ايام]]></entry>
<entry key="admin.group.form.limited"><![CDATA[تمكين الحدود]]></entry>
<entry key="admin.group.form.logo"><![CDATA[شعار]]></entry>
@@ -828,6 +829,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="label.start"><![CDATA[بداية]]></entry>
<entry key="label.undock.panel"><![CDATA[انقر لإلغاء قفل اللوحة]]></entry>
<entry key="lbl.cancel"><![CDATA[الغاء]]></entry>
+ <entry key="lbl.description"><![CDATA[الوصف]]></entry>
<entry key="lbl.email"><![CDATA[البريد الإلكتروني]]></entry>
<entry key="lbl.enter"><![CDATA[أدخل]]></entry>
<entry key="lbl.general"><![CDATA[عام]]></entry>
@@ -839,6 +841,9 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="lbl.video"><![CDATA[فيديو]]></entry>
<entry key="main.menu.admin.email"><![CDATA[إدارة البريد الإلكتروني]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[تحقق من معالجة رسائل البريد الإلكتروني بواسطة النظام]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[استطلاعات الرأي]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[جمع الملاحظات دون إنشاء استطلاع]]></entry>
<entry key="menu.polls.quick.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 c857352..9e2563d 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Начало]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Отказ]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[E-mail:]]></entry>
<entry key="lbl.enter"><![CDATA[Вход]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Анкети]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 9b4c42d..531ec4d 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[শুরু]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[ইমেইল]]></entry>
<entry key="lbl.enter"><![CDATA[প্রবেশ করুন]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 633dfda..15bc331 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Inici]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancelar]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Correu:]]></entry>
<entry key="lbl.enter"><![CDATA[Entrar]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 4bccd69..9320649 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Začátek]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[zruš]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[EMail:]]></entry>
<entry key="lbl.enter"><![CDATA[vstup]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 c7fe6f5..afc6e54 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Afbryd]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email:]]></entry>
<entry key="lbl.enter"><![CDATA[Log ind]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 f8cba91..c99cd27 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[möchte Sie in den Konferenzraum einladen:]]></entry>
<entry key="1138"><![CDATA[Einladung]]></entry>
<entry key="1143"><![CDATA[Zeitzone]]></entry>
- <entry key="1146"><![CDATA[Beschreibung]]></entry>
<entry key="1147"><![CDATA[Erstellt von]]></entry>
<entry key="1151"><![CDATA[Neue {0} Konferenz:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Fehler]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[keine]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[senden]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[Tage]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Begrenzungen aktiv]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -631,7 +632,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="error.contact.approved"><![CDATA[Der Nutzer wurde bereits bestätigt.]]></entry>
<entry key="error.contact.denied"><![CDATA[Der Nutzer wurde bereits abgelehnt.]]></entry>
<entry key="error.email.inuse"><![CDATA[Die E-Mail ist bereits registriert.]]></entry>
- <entry key="error.hash.invalid"><![CDATA[Die Einladung ist nicht mehr gültig.]]></entry>
+ <entry key="error.hash.invalid"><![CDATA[Die Einladung ist nicht gültig]]></entry>
<entry key="error.hash.period"><![CDATA[Ihr Einladungscode ist ungültig. Er kann nur im angegebenen Zeitraum genutzt werden:]]></entry>
<entry key="error.hash.used"><![CDATA[Die Einladung ist nicht mehr gültig.]]></entry>
<entry key="error.login.inuse"><![CDATA[Der Nutzername ist bereits vergeben]]></entry>
@@ -834,6 +835,7 @@ Bitte <tt>openmeetings.log</tt> prüfen und die OpenMeetings-Entwickeler kontakt
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Klicken, um das Panel abzudocken]]></entry>
<entry key="lbl.cancel"><![CDATA[Abbrechen]]></entry>
+ <entry key="lbl.description"><![CDATA[Beschreibung]]></entry>
<entry key="lbl.email"><![CDATA[E-Mail:]]></entry>
<entry key="lbl.enter"><![CDATA[Betreten]]></entry>
<entry key="lbl.general"><![CDATA[Generell]]></entry>
@@ -845,6 +847,9 @@ Bitte <tt>openmeetings.log</tt> prüfen und die OpenMeetings-Entwickeler kontakt
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[E-Mail Management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[E-Mail-Prozess im System überprüfen]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Umfragen]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Feedback ohne Umfage anzulegegen ]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Schnelle Abstimmung erzeugen]]></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 cf1815e..69025b3 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Έναρξη]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Ακύρωση]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email:]]></entry>
<entry key="lbl.enter"><![CDATA[Είσοδος]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 d61276a..30d835e 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
@@ -355,7 +355,6 @@ Las salas creadas via Calendario están listadas solamente en esta sección, dur
<entry key="1137"><![CDATA[me gustaría invitarle a sala de conferencia:]]></entry>
<entry key="1138"><![CDATA[Mensaje de invitación]]></entry>
<entry key="1143"><![CDATA[Zona Horaria]]></entry>
- <entry key="1146"><![CDATA[Descripción]]></entry>
<entry key="1147"><![CDATA[Creado por]]></entry>
<entry key="1151"><![CDATA[Nueva {0} conferencia:]]></entry>
<entry key="1152"><![CDATA[Detalles:]]></entry>
@@ -556,6 +555,8 @@ Las salas creadas via Calendario están listadas solamente en esta sección, dur
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[Ninguno]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Enviando]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[días]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Límites permitidos]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -830,6 +831,7 @@ por favor revise <tt> openmeetings.log </tt> y contacte a los desarrolladores de
<entry key="label.start"><![CDATA[Inicio]]></entry>
<entry key="label.undock.panel"><![CDATA[Haga clic para desacoplar el panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancelar]]></entry>
+ <entry key="lbl.description"><![CDATA[Descripción]]></entry>
<entry key="lbl.email"><![CDATA[Correo]]></entry>
<entry key="lbl.enter"><![CDATA[Entrar]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -841,6 +843,9 @@ por favor revise <tt> openmeetings.log </tt> y contacte a los desarrolladores de
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Gestión de correo]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Verifique el procesamiento de correos electrónicos por parte del sistema]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Encuestas]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Recopilar comentarios sin crear una encuesta]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Crear Encuesta Rápida]]></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 ef65f2d..fc6903e 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[آیا مایلید شما را به اتاق کنفرانس دعوت کنم؟]]></entry>
<entry key="1138"><![CDATA[پیام دعوت]]></entry>
<entry key="1143"><![CDATA[منطقه زمانی]]></entry>
- <entry key="1146"><![CDATA[توضیح]]></entry>
<entry key="1147"><![CDATA[ایجاد شده توسط]]></entry>
<entry key="1151"><![CDATA[کنفرانس جدید: {0}]]></entry>
<entry key="1152"><![CDATA[جزییات:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[خطا]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[هیچ کدام]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[ارسال]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[روزها]]></entry>
<entry key="admin.group.form.limited"><![CDATA[فعال کردن محدودیت ها]]></entry>
<entry key="admin.group.form.logo"><![CDATA[لوگو]]></entry>
@@ -825,6 +826,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[شروع]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[انصراف]]></entry>
+ <entry key="lbl.description"><![CDATA[توضیح]]></entry>
<entry key="lbl.email"><![CDATA[ایمیل:]]></entry>
<entry key="lbl.enter"><![CDATA[ورود]]></entry>
<entry key="lbl.general"><![CDATA[کلی]]></entry>
@@ -836,6 +838,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[مدیریت پست الکترونیک]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[اجرای ایمیل ها را توسط سیستم بررسی کنید]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[نظرسنجی ها]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 2932f7e..413ac0a 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Alku]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[peruuta]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Sähköposti:]]></entry>
<entry key="lbl.enter"><![CDATA[astu sisään]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 0fc781b..286ced2 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[souhaite vous inviter dans la salle de conférence :]]></entry>
<entry key="1138"><![CDATA[Message d'invitation]]></entry>
<entry key="1143"><![CDATA[Fus. horaire]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Créé par]]></entry>
<entry key="1151"><![CDATA[Nouvelle conférence {0} :]]></entry>
<entry key="1152"><![CDATA[Détails :]]></entry>
@@ -554,6 +553,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Erreur]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[Aucun]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Envoi]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[jours]]></entry>
<entry key="admin.group.form.limited"><![CDATA[LImites activées.]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -830,6 +831,7 @@ allez sur <tt>openmeetings.log</tt> et contactez les développeurs d'OpenMeeting
<entry key="label.start"><![CDATA[Début]]></entry>
<entry key="label.undock.panel"><![CDATA[Cliquez pour détacher le panneau]]></entry>
<entry key="lbl.cancel"><![CDATA[Annuler]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Courriel :]]></entry>
<entry key="lbl.enter"><![CDATA[Entrer]]></entry>
<entry key="lbl.general"><![CDATA[Général]]></entry>
@@ -841,6 +843,9 @@ allez sur <tt>openmeetings.log</tt> et contactez les développeurs d'OpenMeeting
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Gestion courriels]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Verifier courriels traités par le système]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Sondages]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Rassembler les retours sans créer de sondages.]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Créer un sondage rapide]]></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 a56d2a8..e0ac9f7 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Comeza]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancelar]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Correo-e:]]></entry>
<entry key="lbl.enter"><![CDATA[Entrar]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 f4063ea..c6f6ba4 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[मतदान]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 ca26cfb..8891929 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[szeretne meghívni a konferencia szobába:]]></entry>
<entry key="1138"><![CDATA[Meghívó üzenet]]></entry>
<entry key="1143"><![CDATA[Időzóna]]></entry>
- <entry key="1146"><![CDATA[Leírás]]></entry>
<entry key="1147"><![CDATA[Létrehozta]]></entry>
<entry key="1151"><![CDATA[új {0} konferencia:]]></entry>
<entry key="1152"><![CDATA[Részletek:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -817,6 +818,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Indul]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Mégse]]></entry>
+ <entry key="lbl.description"><![CDATA[Leírás]]></entry>
<entry key="lbl.email"><![CDATA[EMail:]]></entry>
<entry key="lbl.enter"><![CDATA[belépés]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -828,6 +830,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
index b969009..9bb7d65 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[batal]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email:]]></entry>
<entry key="lbl.enter"><![CDATA[masuk]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 424caf3..d023c09 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[vuole invitarti alla stanza delle conferenze:]]></entry>
<entry key="1138"><![CDATA[Messaggio di invito]]></entry>
<entry key="1143"><![CDATA[Fuso orario]]></entry>
- <entry key="1146"><![CDATA[Descrizione]]></entry>
<entry key="1147"><![CDATA[Creato da]]></entry>
<entry key="1151"><![CDATA[{0} nuove conferenze:]]></entry>
<entry key="1152"><![CDATA[Dettagli:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Errore]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[Nessuno]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Spedizione]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<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>
@@ -830,6 +831,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Inizio]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[annulla]]></entry>
+ <entry key="lbl.description"><![CDATA[Descrizione]]></entry>
<entry key="lbl.email"><![CDATA[EMail:]]></entry>
<entry key="lbl.enter"><![CDATA[Entra]]></entry>
<entry key="lbl.general"><![CDATA[Generale]]></entry>
@@ -841,6 +843,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Gestione Email]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Verifica elaborazione e-mails del sistema]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Sondaggi]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Crea un sondaggio rapido]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_iw.properties.xml b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_iw.properties.xml
index 11102d5..f2c325f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_iw.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_iw.properties.xml
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 3bd0d47..95dfef6 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[会議への参加を依頼されています。依頼者=]]></entry>
<entry key="1138"><![CDATA[参加依頼メッセージ]]></entry>
<entry key="1143"><![CDATA[タイムゾーン]]></entry>
- <entry key="1146"><![CDATA[概要]]></entry>
<entry key="1147"><![CDATA[作成者]]></entry>
<entry key="1151"><![CDATA[{0}会議が設定されました:]]></entry>
<entry key="1152"><![CDATA[詳細:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[エラー]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[無し]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[送信中]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[日]]></entry>
<entry key="admin.group.form.limited"><![CDATA[制限を有効化]]></entry>
<entry key="admin.group.form.logo"><![CDATA[ロゴ]]></entry>
@@ -829,6 +830,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[開始]]></entry>
<entry key="label.undock.panel"><![CDATA[クリックしてパネルを切り離す]]></entry>
<entry key="lbl.cancel"><![CDATA[キャンセル]]></entry>
+ <entry key="lbl.description"><![CDATA[概要]]></entry>
<entry key="lbl.email"><![CDATA[メールアドレス:]]></entry>
<entry key="lbl.enter"><![CDATA[入室]]></entry>
<entry key="lbl.general"><![CDATA[一般]]></entry>
@@ -840,6 +842,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[電子メール管理]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[システムで使用する電子メールのチェックを実行]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[投票]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[投票を作成せずにフィードバックを収集]]></entry>
<entry key="menu.polls.quick.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 6f1aba4..d542c70 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[무효]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[EMail:]]></entry>
<entry key="lbl.enter"><![CDATA[들어가다]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 95c775a..729ecd5 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 008c141..3423fcc 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 b1672e2..14d1726 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Begin]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Annuleren]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[E-mail:]]></entry>
<entry key="lbl.enter"><![CDATA[Deelnemen]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 47c6164..404f951 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[chciałbym zaprosić Cię do sali konferencyjnej:]]></entry>
<entry key="1138"><![CDATA[Zaproś wiadomość]]></entry>
<entry key="1143"><![CDATA[Strefa czasowa]]></entry>
- <entry key="1146"><![CDATA[Opis]]></entry>
<entry key="1147"><![CDATA[Utworzony przez]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Kliknij, aby oddokować panel]]></entry>
<entry key="lbl.cancel"><![CDATA[anuluj]]></entry>
+ <entry key="lbl.description"><![CDATA[Opis]]></entry>
<entry key="lbl.email"><![CDATA[e-mail:]]></entry>
<entry key="lbl.enter"><![CDATA[Wejdź]]></entry>
<entry key="lbl.general"><![CDATA[Ogólne]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Ankiety]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Stworz szybką ankietę]]></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 e8be8aa..b8076ac 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[cancelar]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[EMail:]]></entry>
<entry key="lbl.enter"><![CDATA[entrar]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 ec3d94a..139add4 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Mensagem convite]]></entry>
<entry key="1143"><![CDATA[Fuso horário]]></entry>
- <entry key="1146"><![CDATA[Descrição]]></entry>
<entry key="1147"><![CDATA[Criado por]]></entry>
<entry key="1151"><![CDATA[Nova conferência {0}]]></entry>
<entry key="1152"><![CDATA[Detalhes:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[dias]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Inicio]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancelar]]></entry>
+ <entry key="lbl.description"><![CDATA[Descrição]]></entry>
<entry key="lbl.email"><![CDATA[Email:]]></entry>
<entry key="lbl.enter"><![CDATA[entrar]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Votação]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Criar Pesquisa Rápida]]></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 6fc1090..6b6c138 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[хотелось бы пригласить вас в комнату для конференций:]]></entry>
<entry key="1138"><![CDATA[Приглашение]]></entry>
<entry key="1143"><![CDATA[Временная зона]]></entry>
- <entry key="1146"><![CDATA[Описание]]></entry>
<entry key="1147"><![CDATA[Создано]]></entry>
<entry key="1151"><![CDATA[Новая конференция {0}:]]></entry>
<entry key="1152"><![CDATA[Детали:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Ошибка]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[Нет]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Посылается]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[Параметры ссылки]]></entry>
+ <entry key="admin.extra.link"><![CDATA[Ссылка]]></entry>
<entry key="admin.group.form.days"><![CDATA[дней]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Разрешить ограничения]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Лого]]></entry>
@@ -829,6 +830,7 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="label.start"><![CDATA[Начало]]></entry>
<entry key="label.undock.panel"><![CDATA[Кликните чтобы "отлепить" панель]]></entry>
<entry key="lbl.cancel"><![CDATA[Отменить]]></entry>
+ <entry key="lbl.description"><![CDATA[Описание]]></entry>
<entry key="lbl.email"><![CDATA[e-mail:]]></entry>
<entry key="lbl.enter"><![CDATA[Вход]]></entry>
<entry key="lbl.general"><![CDATA[Общие]]></entry>
@@ -840,6 +842,9 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="lbl.video"><![CDATA[Видео]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Управление письмами]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Проверка статуса отосланных писем]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Доп. меню]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Дополнительные ссылки для комнат]]></entry>
+ <entry key="menu.extras"><![CDATA[Ссылки]]></entry>
<entry key="menu.polls"><![CDATA[Голосования]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Собрать отзывы без создания голосования]]></entry>
<entry key="menu.polls.quick.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 8716737..15663b0 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Začiatok]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Zrušiť]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Vstup]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 efad215..60d4c49 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
@@ -353,7 +353,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[vill bjuda in dig till detta konferensrum:]]></entry>
<entry key="1138"><![CDATA[Inbjudningsmeddelande]]></entry>
<entry key="1143"><![CDATA[Tidszon]]></entry>
- <entry key="1146"><![CDATA[Beskrivning]]></entry>
<entry key="1147"><![CDATA[Skapad av]]></entry>
<entry key="1151"><![CDATA[Ny {0} konferens:]]></entry>
<entry key="1152"><![CDATA[Detaljer:]]></entry>
@@ -554,6 +553,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Fel]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sänder]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[dagar]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Begränsningar aktiverade]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logga]]></entry>
@@ -826,6 +827,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Början]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Avbryt]]></entry>
+ <entry key="lbl.description"><![CDATA[Beskrivning]]></entry>
<entry key="lbl.email"><![CDATA[E-postadress]]></entry>
<entry key="lbl.enter"><![CDATA[Anslut]]></entry>
<entry key="lbl.general"><![CDATA[Allmänt]]></entry>
@@ -837,6 +839,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[E-posthantering]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Enkäter]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Skaffa feedback utan att skapa en enkät]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Skapa snabbenkät]]></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 0cd1d93..6a5e248 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -554,6 +553,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -830,6 +831,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -841,6 +843,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 5c666c7..281e418 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[เริ่ม]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[ยกเลิก]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[อีเมล์:]]></entry>
<entry key="lbl.enter"><![CDATA[เข้าห้อง]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 c513535..b273337 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 2fbe1e2..169e6cb 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Baş]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[iptal]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[E-posta:]]></entry>
<entry key="lbl.enter"><![CDATA[giriş]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 3d052f2..59f4190 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[хотілося б запросити вас у кімнату для нарад:]]></entry>
<entry key="1138"><![CDATA[Запрошення]]></entry>
<entry key="1143"><![CDATA[Таймзона]]></entry>
- <entry key="1146"><![CDATA[Опис]]></entry>
<entry key="1147"><![CDATA[Створено]]></entry>
<entry key="1151"><![CDATA[Нова конференція {0}:]]></entry>
<entry key="1152"><![CDATA[Деталі:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Помилка]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[Немає]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Надсилається]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[днів]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Початок]]></entry>
<entry key="label.undock.panel"><![CDATA[Натисніть щоб відокремити панель]]></entry>
<entry key="lbl.cancel"><![CDATA[Скасувати]]></entry>
+ <entry key="lbl.description"><![CDATA[Опис]]></entry>
<entry key="lbl.email"><![CDATA[E-mail:]]></entry>
<entry key="lbl.enter"><![CDATA[Вхід]]></entry>
<entry key="lbl.general"><![CDATA[Загальне]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Управління листами]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Перевірка статусу надісланих листів]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Опитування]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Створити швидке опитування]]></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 f8d7f08..f64b4a1 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[Cancel]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[Email]]></entry>
<entry key="lbl.enter"><![CDATA[Enter]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 0db9bab..b63c4a8 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[想请您加入会议室:]]></entry>
<entry key="1138"><![CDATA[邀请信]]></entry>
<entry key="1143"><![CDATA[时区]]></entry>
- <entry key="1146"><![CDATA[详细描述]]></entry>
<entry key="1147"><![CDATA[创建者]]></entry>
<entry key="1151"><![CDATA[新会议: {0}]]></entry>
<entry key="1152"><![CDATA[详细情况]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -829,6 +830,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[开始]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[取消]]></entry>
+ <entry key="lbl.description"><![CDATA[详细描述]]></entry>
<entry key="lbl.email"><![CDATA[邮件:]]></entry>
<entry key="lbl.enter"><![CDATA[进入]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -840,6 +842,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></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 786c46f..01db3e1 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
@@ -352,7 +352,6 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="1137"><![CDATA[would like to invite you to the conference room:]]></entry>
<entry key="1138"><![CDATA[Invite message]]></entry>
<entry key="1143"><![CDATA[Timezone]]></entry>
- <entry key="1146"><![CDATA[Description]]></entry>
<entry key="1147"><![CDATA[Created by]]></entry>
<entry key="1151"><![CDATA[New {0} conference:]]></entry>
<entry key="1152"><![CDATA[Details:]]></entry>
@@ -553,6 +552,8 @@ see https://openmeetings.apache.org/LanguageEditor.html for Details
<entry key="admin.email.status.ERROR"><![CDATA[Error]]></entry>
<entry key="admin.email.status.NONE"><![CDATA[None]]></entry>
<entry key="admin.email.status.SENDING"><![CDATA[Sending]]></entry>
+ <entry key="admin.extra.group.label"><![CDATA[URL details]]></entry>
+ <entry key="admin.extra.link"><![CDATA[URL]]></entry>
<entry key="admin.group.form.days"><![CDATA[days]]></entry>
<entry key="admin.group.form.limited"><![CDATA[Limits enabled]]></entry>
<entry key="admin.group.form.logo"><![CDATA[Logo]]></entry>
@@ -828,6 +829,7 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="label.start"><![CDATA[Start]]></entry>
<entry key="label.undock.panel"><![CDATA[Click to undock panel]]></entry>
<entry key="lbl.cancel"><![CDATA[取消]]></entry>
+ <entry key="lbl.description"><![CDATA[Description]]></entry>
<entry key="lbl.email"><![CDATA[郵箱:]]></entry>
<entry key="lbl.enter"><![CDATA[進入]]></entry>
<entry key="lbl.general"><![CDATA[General]]></entry>
@@ -839,6 +841,9 @@ please check <tt>openmeetings.log</tt> and contact OpenMeetings developers]]></e
<entry key="lbl.video"><![CDATA[Video]]></entry>
<entry key="main.menu.admin.email"><![CDATA[Email management]]></entry>
<entry key="main.menu.admin.email.desc"><![CDATA[Check e-mails processing by the system]]></entry>
+ <entry key="main.menu.admin.extra"><![CDATA[Extra Menu]]></entry>
+ <entry key="main.menu.admin.extra.desc"><![CDATA[Custom links to room menu]]></entry>
+ <entry key="menu.extras"><![CDATA[Extras]]></entry>
<entry key="menu.polls"><![CDATA[Polls]]></entry>
<entry key="menu.polls.quick.descr"><![CDATA[Gather feedback without creating a poll]]></entry>
<entry key="menu.polls.quick.title"><![CDATA[Create Quick Poll]]></entry>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index 0228a2a..a4df318 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
@@ -37,7 +37,6 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
-import java.util.Optional;
import java.util.Set;
import java.util.TimeZone;
@@ -65,7 +64,6 @@ import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.db.util.FormatHelper;
import org.apache.openmeetings.db.util.LocaleHelper;
import org.apache.openmeetings.util.OmException;
-import org.apache.openmeetings.web.app.ClientManager.InstantToken;
import org.apache.openmeetings.web.pages.HashPage;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
import org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor;
@@ -267,13 +265,12 @@ public class WebSession extends AbstractAuthenticatedWebSession implements IWebS
}
public void checkToken(StringValue intoken) {
- Optional<InstantToken> token = cm.getToken(intoken);
- if (token.isPresent()) {
+ cm.getToken(intoken).ifPresent(token -> {
invalidateNow();
- signIn(userDao.get(token.get().getUserId()));
- log.debug("Cluster:: Token for room {} is found, signedIn ? {}", token.get().getRoomId(), userId != null);
- area = RoomEnterBehavior.getRoomUrlFragment(token.get().getRoomId());
- }
+ signIn(userDao.get(token.getUserId()));
+ log.debug("Cluster:: Token for room {} is found, signedIn ? {}", token.getRoomId(), userId != null);
+ area = RoomEnterBehavior.getRoomUrlFragment(token.getRoomId());
+ });
}
public boolean signIn(String secureHash, boolean markUsed) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
index abfe714..f9cd354 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
@@ -33,6 +33,7 @@ import com.github.openjson.JSONObject;
public abstract class BasePanel extends Panel {
private static final long serialVersionUID = 1L;
public static final String EVT_CLICK = "click";
+ public static final String EVT_CHANGE = "change";
protected static final String ROW_CLASS = "clickable";
protected BasePanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index fd8bd00..ba87710 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.util.CalendarHelper.getDate;
import static org.apache.openmeetings.web.app.Application.getInvitationLink;
import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
import static org.apache.openmeetings.web.util.CalendarWebHelper.getZoneId;
import java.time.LocalDateTime;
@@ -99,15 +100,10 @@ public abstract class InvitationForm extends Form<Invitation> {
@Override
protected void onInitialize() {
add(subject, message);
- recipients.setLabel(new ResourceModel("216")).setRequired(true).add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- url.setModelObject(null);
- updateButtons(target);
- }
- }).setOutputMarkupId(true);
+ recipients.setLabel(new ResourceModel("216")).setRequired(true).add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ url.setModelObject(null);
+ updateButtons(target);
+ })).setOutputMarkupId(true);
add(new AjaxCheckBox("passwordProtected") {
private static final long serialVersionUID = 1L;
@@ -137,14 +133,9 @@ public abstract class InvitationForm extends Form<Invitation> {
add(from.setLabel(new ResourceModel("530")).setOutputMarkupId(true)
, to.setLabel(new ResourceModel("531")).setOutputMarkupId(true)
, timeZoneId.setOutputMarkupId(true));
- timeZoneId.add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- //no-op added to preserve selection
- }
- });
+ timeZoneId.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ //no-op added to preserve selection
+ }));
add(url.setOutputMarkupId(true));
add(lang, feedback.setOutputMarkupId(true));
super.onInitialize();
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 f1382fe..76e636c 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
@@ -350,6 +350,9 @@ public class MainPanel extends Panel {
if (isAdmin) {
l.add(getSubItem("main.menu.admin.email", "main.menu.admin.email.desc", MenuActions.ADMIN_EMAIL));
}
+ if (isAdmin || isGrpAdmin) {
+ l.add(getSubItem("main.menu.admin.extra", "main.menu.admin.extra.desc", MenuActions.ADMIN_EXTRA));
+ }
mmenu.add(new OmMenuItem(getString("6"), l));
}
return mmenu;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.java
index 5e37061..a51929a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/PagingNavigatorPanel.java
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.web.common;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
+
import java.util.List;
import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -53,18 +55,13 @@ public abstract class PagingNavigatorPanel extends Panel {
final Form<Void> f = new Form<>("pagingForm");
f.add(new OmPagingNavigator("navigator", dataView).setOutputMarkupId(true))
.add(new DropDownChoice<>("entitiesPerPage", new PropertyModel<>(this, "entitiesPerPage"), numbers)
- .add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- long newPage = dataView.getCurrentPage() * dataView.getItemsPerPage() / entitiesPerPage;
- dataView.setItemsPerPage(entitiesPerPage);
- dataView.setCurrentPage(newPage);
- target.add(f);
- PagingNavigatorPanel.this.onEvent(target);
- }
- }));
+ .add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ long newPage = dataView.getCurrentPage() * dataView.getItemsPerPage() / entitiesPerPage;
+ dataView.setItemsPerPage(entitiesPerPage);
+ dataView.setCurrentPage(newPage);
+ target.add(f);
+ PagingNavigatorPanel.this.onEvent(target);
+ })));
add(f.setOutputMarkupId(true));
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ExtrasSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ExtrasSubMenu.java
new file mode 100644
index 0000000..818d19f
--- /dev/null
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ExtrasSubMenu.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.room.menu;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.apache.openmeetings.db.dao.room.ExtraMenuDao;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.entity.room.ExtraMenu;
+import org.apache.openmeetings.db.entity.room.RoomGroup;
+import org.apache.openmeetings.db.entity.user.Group;
+import org.apache.openmeetings.web.common.menu.OmMenuItem;
+import org.apache.openmeetings.web.room.RoomPanel;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.injection.Injector;
+import org.apache.wicket.spring.injection.annot.SpringBean;
+
+public class ExtrasSubMenu implements Serializable {
+ private static final long serialVersionUID = 1L;
+ private final RoomPanel room;
+ private OmMenuItem extraMenu;
+
+ @SpringBean
+ private RoomDao roomDao;
+ @SpringBean
+ private ExtraMenuDao menuDao;
+
+ public ExtrasSubMenu(final RoomPanel room) {
+ this.room = room;
+ }
+
+ public void init() {
+ Injector.get().inject(this);
+ extraMenu = new OmMenuItem(room.getString("menu.extras"), null, false);
+ List<Long> groups = roomDao.get(room.getRoom().getId()).getGroups().stream()
+ .map(RoomGroup::getGroup)
+ .map(Group::getId)
+ .collect(Collectors.toList());
+ for (ExtraMenu em : menuDao.getByGroups(groups)) {
+ extraMenu.add(new OmMenuItem(em.getName(), em.getDescription()) {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void onClick(AjaxRequestTarget target) {
+ target.appendJavaScript(String.format("window.open('%s', '_blank');", em.getLink()));
+ }
+ });
+ }
+ }
+
+ OmMenuItem getMenu() {
+ return extraMenu;
+ }
+
+ public void update(final boolean moder) {
+ extraMenu.setVisible(moder);
+ }
+}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
index f59cba3..34b9456 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
@@ -19,6 +19,7 @@
package org.apache.openmeetings.web.room.menu;
import static org.apache.openmeetings.web.app.WebSession.getRights;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
import java.util.ArrayList;
import java.util.Collection;
@@ -87,15 +88,10 @@ public class RoomInvitationForm extends InvitationForm {
}
}));
groupContainer.add(
- groups.setRequired(true).add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- url.setModelObject(null);
- updateButtons(target);
- }
- }).setOutputMarkupId(true)
+ groups.setRequired(true).add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ url.setModelObject(null);
+ updateButtons(target);
+ })).setOutputMarkupId(true)
, new Radio<>("group", Model.of(InviteeType.group))
);
rdi.add(recipients, groupContainer.setVisible(showGroups));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index fced8f3..39e0b4f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -105,6 +105,7 @@ public class RoomMenuPanel extends Panel {
};
private final PollsSubMenu pollsSubMenu;
private final ActionsSubMenu actionsSubMenu;
+ private final ExtrasSubMenu extrasSubMenu;
@SpringBean
private ClientManager cm;
@SpringBean
@@ -129,6 +130,7 @@ public class RoomMenuPanel extends Panel {
shareBtn.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
pollsSubMenu = new PollsSubMenu(room, this);
actionsSubMenu = new ActionsSubMenu(room, this);
+ extrasSubMenu = new ExtrasSubMenu(room);
}
private Group getGroup() {
@@ -151,6 +153,7 @@ public class RoomMenuPanel extends Panel {
};
actionsSubMenu.init();
pollsSubMenu.init();
+ extrasSubMenu.init();
add((menuPanel = new MenuPanel("menu", getMenu())).setVisible(isVisible()));
add(askBtn.add(AttributeModifier.replace(ATTR_TITLE, getString("84"))));
@@ -191,6 +194,7 @@ public class RoomMenuPanel extends Panel {
if (pollsSubMenu.isVisible()) {
menu.add(pollsSubMenu.getMenu());
}
+ menu.add(extrasSubMenu.getMenu());
return menu;
}
@@ -204,6 +208,7 @@ public class RoomMenuPanel extends Panel {
boolean moder = room.getClient().hasRight(Room.Right.MODERATOR);
actionsSubMenu.update(moder, notExternalUser);
pollsSubMenu.update(moder, notExternalUser, r);
+ extrasSubMenu.update(moder);
menuPanel.update(handler);
StringBuilder roomClass = new StringBuilder("room name");
String roomTitle = "";
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
index ac98e41..3522b44 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.room.poll;
import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
import java.util.ArrayList;
@@ -334,14 +335,9 @@ public class PollResultsDialog extends Modal<RoomPoll> {
public String getIdValue(RoomPoll object, int index) {
return object == null ? "" : "" + object.getId();
}
- })).add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- dispForm.updateModel(select.getModelObject(), true, target);
- }
- }));
+ })).add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ dispForm.updateModel(select.getModelObject(), true, target);
+ })));
updateModel(null);
}
@@ -375,14 +371,9 @@ public class PollResultsDialog extends Modal<RoomPoll> {
protected void onInitialize() {
add(name, question, count);
chartType = new DropDownChoice<>("chartType", Model.of(chartSimple), List.of(chartSimple, chartPie));
- add(chartType.add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- redraw(target, false);
- }
- }));
+ add(chartType.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ redraw(target, false);
+ })));
super.onInitialize();
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
index a2e4b50..5eb979d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
@@ -74,13 +74,6 @@ public class RoomFilePanel extends FileTreePanel {
protected Component getUpload() {
return super.getUpload()
.setVisible(true)
- .add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- room.getSidebar().showUpload(target);
- }
- });
+ .add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> room.getSidebar().showUpload(target)));
}
}
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
index faea5c5..6c913dc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
@@ -21,6 +21,7 @@ package org.apache.openmeetings.web.user.calendar;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
import static org.apache.openmeetings.web.util.CalendarWebHelper.getDate;
import static org.apache.openmeetings.web.util.CalendarWebHelper.getDateTime;
@@ -383,23 +384,13 @@ public class AppointmentDialog extends Modal<Appointment> {
, new Radio<>("group", Model.of(InviteeType.group))
);
if (showGroups) {
- groups.add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- // added to update model
- }
- }).setEnabled(false);
+ groups.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ // added to update model
+ })).setEnabled(false);
}
- rdi.add(attendees.add(new AjaxFormComponentUpdatingBehavior("change") {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onUpdate(AjaxRequestTarget target) {
- // added to update model
- }
- })
+ rdi.add(attendees.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target -> {
+ // added to update model
+ }))
, groupContainer.setVisible(showGroups)
);
rdi.add(new Radio<>("user", Model.of(InviteeType.user)));
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 bdc5b0f..d6bd651 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
@@ -282,15 +282,10 @@ public class CalendarPanel extends UserBasePanel {
final OmCalendar cal = item.getModelObject();
item.add(new WebMarkupContainer("item")
.add(new Label("name", cal.getTitle())));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- calendarDialog.show(target, CalendarDialog.DIALOG_TYPE.UPDATE_CALENDAR, cal);
- target.add(calendarDialog);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ calendarDialog.show(target, CalendarDialog.DIALOG_TYPE.UPDATE_CALENDAR, cal);
+ target.add(calendarDialog);
+ }));
}
});
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
index 76c5098..635866c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
@@ -213,14 +213,7 @@ public class ChatToolbar extends Panel implements IWysiwygToolbar {
toolbar.add(delBtn.setVisible(hasAdminLevel(getRights())).setOutputMarkupId(true)
.setOutputMarkupPlaceholderTag(true));
toolbar.add(save.setVisible(hasAdminLevel(getRights())).setOutputMarkupId(true)
- .setOutputMarkupPlaceholderTag(true).add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- download.initiate(target);
- }
- }));
+ .setOutputMarkupPlaceholderTag(true).add(AjaxEventBehavior.onEvent(EVT_CLICK, download::initiate)));
}
private static JSONObject cleanMsg(String scope) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.java
index 4d3aa78..3be2347 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.java
@@ -63,20 +63,15 @@ public class InvitationsPanel extends UserBasePanel {
item.add(new Label("id"));
item.add(new Label("valid"/*, getString("admin.email.status." + m.getStatus().name())*/));
item.add(new Label("invitee", formatUser(i.getInvitee())));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- if (i.getId().equals(selected)) {
- selected = null;
- } else {
- selected = i.getId();
- }
- form.setModelObject(i);
- target.add(form, list);
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ if (i.getId().equals(selected)) {
+ selected = null;
+ } else {
+ selected = i.getId();
}
- });
+ form.setModelObject(i);
+ target.add(form, list);
+ }));
item.add(AttributeModifier.replace(ATTR_CLASS, getRowClass(i)));
}
};
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
index d1622d9..83d6b73 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
@@ -229,14 +229,7 @@ public class MessagesContactsPanel extends UserBasePanel {
del.setIconType(FontAwesome5IconType.times_s)
.add(newOkCancelDangerConfirm(this, getString("833")));
item.add(del);
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- selectFolder(item, item.getModelObject().getId(), target);
- }
- });
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> selectFolder(item, item.getModelObject().getId(), target)));
setFolderClass(item);
}
}).setOutputMarkupId(true));
@@ -281,22 +274,17 @@ public class MessagesContactsPanel extends UserBasePanel {
item.add(new Label("from", getDisplayName(m.getFrom())));
item.add(new Label("subject", m.getSubject()));
item.add(new Label("send", getDateFormat().format(m.getInserted())));
- item.add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- long selected = id;
- if (selectedMessages.contains(id)) {
- selectedMessages.remove(id);
- selected = selectedMessages.isEmpty() ? -1 : selectedMessages.iterator().next();
- } else {
- selectedMessages.add(id);
- }
- selectMessage(selected, target);
- target.add(container);
+ item.add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ long selected = id;
+ if (selectedMessages.contains(id)) {
+ selectedMessages.remove(id);
+ selected = selectedMessages.isEmpty() ? -1 : selectedMessages.iterator().next();
+ } else {
+ selectedMessages.add(id);
}
- });
+ selectMessage(selected, target);
+ target.add(container);
+ }));
StringBuilder cssClass = new StringBuilder(m.getIsRead() ? "" : CSS_UNREAD);
if (selectedMessages.contains(id)) {
cssClass.append(" selected");
@@ -461,24 +449,14 @@ public class MessagesContactsPanel extends UserBasePanel {
item.add(AttributeModifier.append(ATTR_CLASS, CSS_UNREAD));
}
item.add(new Label("name", getName(uc)));
- item.add(new WebMarkupContainer("accept").add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- ContactsHelper.acceptUserContact(contactId);
- updateContacts(target);
- }
- }).setVisible(uc.isPending()));
- item.add(new WebMarkupContainer("decline").add(new AjaxEventBehavior(EVT_CLICK) {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onEvent(AjaxRequestTarget target) {
- contactDao.delete(contactId);
- updateContacts(target);
- }
- }).setVisible(uc.isPending()));
+ item.add(new WebMarkupContainer("accept").add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ ContactsHelper.acceptUserContact(contactId);
+ updateContacts(target);
+ })).setVisible(uc.isPending()));
+ item.add(new WebMarkupContainer("decline").add(AjaxEventBehavior.onEvent(EVT_CLICK, target -> {
+ contactDao.delete(contactId);
+ updateContacts(target);
+ })).setVisible(uc.isPending()));
item.add(new WebMarkupContainer("view").add(AttributeModifier.append("data-user-id", userId)));
item.add(new WebMarkupContainer("message").add(AttributeModifier.append("data-user-id", userId)).setVisible(!uc.isPending()));
BootstrapAjaxLink<String> del = new BootstrapAjaxLink<>("delete", Buttons.Type.Outline_Danger) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
index 3e54e8b..91b7588 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
@@ -30,6 +30,7 @@ import org.apache.openmeetings.web.admin.backup.BackupPanel;
import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
import org.apache.openmeetings.web.admin.connection.ConnectionsPanel;
import org.apache.openmeetings.web.admin.email.EmailPanel;
+import org.apache.openmeetings.web.admin.extra.ExtraPanel;
import org.apache.openmeetings.web.admin.groups.GroupsPanel;
import org.apache.openmeetings.web.admin.labels.LangPanel;
import org.apache.openmeetings.web.admin.ldaps.LdapsPanel;
@@ -73,6 +74,7 @@ public class OmUrlFragment implements Serializable {
public static final String TYPE_BACKUP = "backup";
public static final String TYPE_OAUTH2 = "oauth2";
public static final String TYPE_EMAIL = "email";
+ public static final String TYPE_EXTRA = "extra";
public static final String TYPE_SEARCH = "search";
public static final String TYPE_INVITATION = "invitation";
public static final String TYPE_WIDGET = "widget";
@@ -109,6 +111,7 @@ public class OmUrlFragment implements Serializable {
, ADMIN_BACKUP
, ADMIN_OAUTH
, ADMIN_EMAIL
+ , ADMIN_EXTRA
, PROFILE_MESSAGE
, PROFILE_EDIT
, PROFILE_SEARCH
@@ -187,6 +190,10 @@ public class OmUrlFragment implements Serializable {
setArea(AreaKeys.admin);
setType(TYPE_EMAIL);
break;
+ case ADMIN_EXTRA:
+ setArea(AreaKeys.admin);
+ setType(TYPE_EXTRA);
+ break;
case PROFILE_MESSAGE:
setArea(AreaKeys.profile);
setType(TYPE_MESSAGES);
@@ -262,6 +269,8 @@ public class OmUrlFragment implements Serializable {
basePanel = new OAuthPanel(CHILD_ID);
} else if (TYPE_EMAIL.equals(type)) {
basePanel = new EmailPanel(CHILD_ID);
+ } else if (TYPE_EXTRA.equals(type)) {
+ basePanel = new ExtraPanel(CHILD_ID);
}
break;
case profile:
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
index 4381c72..71197e8 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
@@ -44,6 +44,7 @@
<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
+ <class>org.apache.openmeetings.db.entity.room.ExtraMenu</class>
<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
index 27eb624..abac226 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
@@ -44,6 +44,7 @@
<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
+ <class>org.apache.openmeetings.db.entity.room.ExtraMenu</class>
<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
index 4ea39f0..1da1012 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
@@ -44,6 +44,7 @@
<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
+ <class>org.apache.openmeetings.db.entity.room.ExtraMenu</class>
<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
index d1127c0..76879b3 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
@@ -44,6 +44,7 @@
<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
+ <class>org.apache.openmeetings.db.entity.room.ExtraMenu</class>
<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
index 8a183ae..ef3326d 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
@@ -44,6 +44,7 @@
<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
+ <class>org.apache.openmeetings.db.entity.room.ExtraMenu</class>
<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
index d8ff368..264eb47 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
@@ -44,6 +44,7 @@
<class>org.apache.openmeetings.db.entity.room.RoomModerator</class>
<class>org.apache.openmeetings.db.entity.room.RoomPoll</class>
<class>org.apache.openmeetings.db.entity.room.RoomPollAnswer</class>
+ <class>org.apache.openmeetings.db.entity.room.ExtraMenu</class>
<class>org.apache.openmeetings.db.entity.server.LdapConfig</class>
<class>org.apache.openmeetings.db.entity.server.OAuthServer</class>
<class>org.apache.openmeetings.db.entity.server.Sessiondata</class>
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
index 81905a8..a24b3e2 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
@@ -24,6 +24,7 @@ import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_CONFIG;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_CONNECTION;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_EDIT;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_EMAIL;
+import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_EXTRA;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_GROUP;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_LANG;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_LDAP;
@@ -45,6 +46,7 @@ import org.apache.openmeetings.web.admin.backup.BackupPanel;
import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
import org.apache.openmeetings.web.admin.connection.ConnectionsPanel;
import org.apache.openmeetings.web.admin.email.EmailPanel;
+import org.apache.openmeetings.web.admin.extra.ExtraPanel;
import org.apache.openmeetings.web.admin.groups.GroupsPanel;
import org.apache.openmeetings.web.admin.labels.LangPanel;
import org.apache.openmeetings.web.admin.ldaps.LdapsPanel;
@@ -255,6 +257,16 @@ class TestMainAreas extends AbstractWicketTester {
}
@Test
+ void testAdminExtras() throws OmException {
+ checkArea(AreaKeys.admin, TYPE_EXTRA, ExtraPanel.class, adminUsername, groupAdminUsername);
+ }
+
+ @Test
+ void testAdminExtras1() throws OmException {
+ checkUnauthArea(AreaKeys.admin, TYPE_EXTRA, regularUsername);
+ }
+
+ @Test
void testAdminBad() throws OmException {
checkArea(AreaKeys.admin, "BAD", OmDashboardPanel.class, adminUsername);
}