You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2017/10/10 05:01:22 UTC
openmeetings git commit: [OPENMEETINGS-1719] room seems to look as
expected in RTL
Repository: openmeetings
Updated Branches:
refs/heads/master fba7dcdbf -> 687415930
[OPENMEETINGS-1719] room seems to look as expected in RTL
Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/68741593
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/68741593
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/68741593
Branch: refs/heads/master
Commit: 687415930cc6c81dbda3deef848f19b67168f7c1
Parents: fba7dcd
Author: Maxim Solodovnik <so...@gmail.com>
Authored: Tue Oct 10 12:01:14 2017 +0700
Committer: Maxim Solodovnik <so...@gmail.com>
Committed: Tue Oct 10 12:01:14 2017 +0700
----------------------------------------------------------------------
.../apache/openmeetings/web/room/RoomPanel.html | 2 +-
.../web/room/activities/ActivitiesPanel.html | 8 +--
.../web/room/activities/ActivitiesPanel.java | 36 ++++++----
.../org/apache/openmeetings/web/room/room.js | 6 +-
.../web/room/sidebar/RoomClientPanel.html | 2 +-
.../web/room/sidebar/RoomClientPanel.java | 4 ++
.../openmeetings/web/room/wb/WbPanel.html | 8 +--
.../openmeetings/web/room/wb/tool-apointer.js | 2 +-
.../apache/openmeetings/web/room/wb/wb-board.js | 19 ++---
.../apache/openmeetings/web/user/chat/Chat.html | 2 +-
.../apache/openmeetings/web/user/chat/chat.js | 17 +++--
.../src/main/webapp/css/general-rtl.css | 33 +++++++++
.../src/main/webapp/css/general.css | 2 +-
openmeetings-web/src/main/webapp/css/room.css | 76 ++++++++++----------
14 files changed, 135 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index 2c1629b..48f13be 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -22,7 +22,7 @@
<div class="room holder">
<div class="room box" wicket:id="roomContainer">
<div class="room menu" wicket:id="menu"></div>
- <div class="room sidebar left" wicket:id="sidebar"></div>
+ <div class="room sidebar" wicket:id="sidebar"></div>
<div wicket:id="wb-area" class="room wb area">
<div class="wb-drop-area"></div>
<div class="wb-area" wicket:id="whiteboard"></div>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
index b2b31fe..d9b2c29 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.html
@@ -25,10 +25,10 @@
</div>
<div wicket:id="container" class="area ui-widget-content">
<div wicket:id="activities" class="activity item ui-helper-clearfix ui-corner-all">
- <span wicket:id="close" class="ui-icon ui-icon-close ui-corner-all align-right clickable" wicket:message="title:85"></span>
- <span wicket:id="accept" class="ui-icon ui-icon-check ui-corner-all align-right clickable" wicket:message="title:1360"></span>
- <span wicket:id="decline" class="ui-icon ui-icon-cancel ui-corner-all align-right clickable" wicket:message="title:1361"></span>
- <span wicket:id="find" class="ui-icon crosshair ui-corner-all align-right clickable" wicket:message="title:find.user"></span>
+ <span wicket:id="close" class="ui-icon ui-icon-close ui-corner-all clickable" wicket:message="title:85"></span>
+ <span wicket:id="accept" class="ui-icon ui-icon-check ui-corner-all clickable" wicket:message="title:1360"></span>
+ <span wicket:id="decline" class="ui-icon ui-icon-cancel ui-corner-all clickable" wicket:message="title:1361"></span>
+ <span wicket:id="find" class="ui-icon crosshair ui-corner-all clickable" wicket:message="title:find.user"></span>
<div wicket:id="text"></div>
</div>
</div>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index 1ff9fa3..57c6385 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -25,6 +25,8 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKe
import static org.apache.openmeetings.web.app.Application.getBean;
import static org.apache.openmeetings.web.app.Application.getOnlineClient;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.addOnClick;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
@@ -41,6 +43,7 @@ import org.apache.openmeetings.db.entity.room.Room.RoomElement;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.util.message.RoomMessage;
import org.apache.openmeetings.util.message.TextRoomMessage;
+import org.apache.openmeetings.web.pages.BasePage;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
@@ -66,6 +69,7 @@ public class ActivitiesPanel extends Panel {
private static final String ACTION = "action";
private static final String PARAM_ROOM_ID = "roomid";
private static final String ACTIVITY_FMT = "%s %s [%s]";
+ private static final String ACTIVITY_FMT_RTL = "%3$s %2$s [%1$s]";
private static final String ACTIVITY_FUNC_FMT = "activityAction(%s, '%s', '%s');";
private enum Action {
accept, decline, close
@@ -194,47 +198,53 @@ public class ActivitiesPanel extends Panel {
User u = getBean(UserDao.class).get(a.getSender());
name = self ? getString("1362") : String.format("%s %s", u.getFirstname(), u.getLastname());
}
+ final String fmt = ((BasePage)getPage()).isRtl() ? ACTIVITY_FMT_RTL : ACTIVITY_FMT;
switch (a.getType()) {
case roomEnter:
text = ""; // TODO should this be fixed?
item.setVisible(false);
break;
case roomExit:
- text = String.format(ACTIVITY_FMT, name, getString("1367"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("1367"), df.format(a.getCreated()));
break;
case reqRightModerator:
- text = String.format(ACTIVITY_FMT, name, getString("room.action.request.right.moderator"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("room.action.request.right.moderator"), df.format(a.getCreated()));
break;
case reqRightPresenter:
- text = String.format(ACTIVITY_FMT, name, getString("right.presenter.request"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("right.presenter.request"), df.format(a.getCreated()));
break;
case reqRightWb:
- text = String.format(ACTIVITY_FMT, name, getString("694"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("694"), df.format(a.getCreated()));
break;
case reqRightShare:
- text = String.format(ACTIVITY_FMT, name, getString("1070"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("1070"), df.format(a.getCreated()));
break;
case reqRightRemote:
- text = String.format(ACTIVITY_FMT, name, getString("1082"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("1082"), df.format(a.getCreated()));
break;
case reqRightA:
- text = String.format(ACTIVITY_FMT, name, getString("1603"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("1603"), df.format(a.getCreated()));
break;
case reqRightAv:
- text = String.format(ACTIVITY_FMT, name, getString("695"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("695"), df.format(a.getCreated()));
break;
case reqRightMute:
- text = String.format(ACTIVITY_FMT, name, getString("1399"), df.format(a.getCreated()));//TODO un-mute 1398
+ text = String.format(fmt, name, getString("1399"), df.format(a.getCreated()));//TODO un-mute 1398
break;
case reqRightExclusive:
- text = String.format(ACTIVITY_FMT, name, getString("1427"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("1427"), df.format(a.getCreated()));
break;
case haveQuestion:
- text = String.format(ACTIVITY_FMT, name, getString("693"), df.format(a.getCreated()));
+ text = String.format(fmt, name, getString("693"), df.format(a.getCreated()));
break;
}
- item.add(new WebMarkupContainer("close").add(addOnClick(String.format(ACTIVITY_FUNC_FMT, roomId, Action.close.name(), a.getId()))));
- item.add(accept, decline, find, new Label("text", text));
+ final String align = ((BasePage)getPage()).isRtl() ? ALIGN_LEFT : ALIGN_RIGHT;
+ item.add(new WebMarkupContainer("close").add(addOnClick(String.format(ACTIVITY_FUNC_FMT, roomId, Action.close.name(), a.getId())))
+ .add(AttributeModifier.append("class", align)));
+ item.add(accept.add(AttributeModifier.append("class", align))
+ , decline.add(AttributeModifier.append("class", align))
+ , find.add(AttributeModifier.append("class", align))
+ , new Label("text", text));
item.add(AttributeModifier.append("class", getClass(a)));
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
index 54e3b43..78cc170 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room.js
@@ -567,7 +567,7 @@ var Room = (function() {
}
}
function _setSize() {
- const sb = $(".room.sidebar.left")
+ const sb = $(".room.sidebar")
, w = $(window).width() - sb.width() - 8
, h = $(window).height() - $('#menu').height() - 3
, p = sb.find('.tabs')
@@ -612,13 +612,13 @@ var Room = (function() {
});
}
function _load() {
- $(".room.sidebar.left").ready(function() {
+ $(".room.sidebar").ready(function() {
_setSize();
});
$(window).on('resize.openmeetings', function() {
_setSize();
});
- $(".room.sidebar.left").resizable({
+ $(".room.sidebar").resizable({
handles: "e"
, stop: function() {
_setSize();
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
index 4304edb..514ef3a 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.html
@@ -20,7 +20,7 @@
-->
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
- <span wicket:id="status" class="ui-icon align-right"></span>
+ <span wicket:id="status" class="ui-icon"></span>
<span wicket:id="refresh"></span>
<div wicket:id="name" class="user name"></div>
<span class="ui-icon align-right typing-activity big"></span>
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
index aa20fc0..8828388 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
@@ -19,11 +19,14 @@
package org.apache.openmeetings.web.room.sidebar;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
+import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.web.pages.BasePage;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.openmeetings.web.room.sidebar.icon.KickIcon;
import org.apache.openmeetings.web.room.sidebar.icon.RefreshIcon;
@@ -100,6 +103,7 @@ public class RoomClientPanel extends Panel {
status = "status-user";
statusTitle = "677";
}
+ status = String.format("%s %s", status, ((BasePage)getPage()).isRtl() ? ALIGN_LEFT : ALIGN_RIGHT);
//TODO add ability to change 'first/last name'
add(new WebMarkupContainer("status").add(AttributeModifier.append("class", status), AttributeModifier.replace("title", getString(statusTitle))));
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
index b72fcdb..da0bb35 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.html
@@ -56,7 +56,7 @@
<div class="canvases"></div>
</div>
</div>
- <div id="wb-zoom" class="wb-zoom" style="position: absolute; top: 0px; left: 80px;">
+ <div id="wb-zoom" class="wb-zoom">
<div class="doc-group btn-group btn-group-xs block" role="group" aria-label="...">
<button type="button" class="btn btn-default up" wicket:message="title:256"> </button>
<button type="button" class="btn btn-default down" wicket:message="title:256"> </button>
@@ -85,7 +85,7 @@
<option value="4.00">400%</option>
</select>
</div>
- <div id="wb-tools" class="tools ui-state-active vertical clear" style="position: absolute; top: 20px; right: 20px;">
+ <div id="wb-tools" class="tools ui-state-active vertical clear">
<div class="bumper"></div>
<div wicket:message="title:62" class="ui-widget-header clickable om-icon big clear-all"></div>
<div wicket:message="title:1005" class="ui-widget-header clickable om-icon big clear-slide"></div>
@@ -103,11 +103,11 @@
<div wicket:message="title:79" class="ui-widget-header clickable om-icon big arrow"></div>
<div wicket:message="title:4" class="ui-widget-header clickable om-icon big settings"></div>
</div>
- <div id="wb-tools-readonly" class="tools readonly ui-state-active vertical clear" style="position: absolute; top: 20px; right: 20px;">
+ <div id="wb-tools-readonly" class="tools readonly ui-state-active vertical clear">
<div class="bumper"></div>
<div wicket:message="title:557" class="ui-widget-header clickable om-icon big apointer"></div>
</div>
- <div id="wb-settings" class="wb-settings ui-corner-all ui-widget-content" style="display: none; bottom: 100px; right: 100px;">
+ <div id="wb-settings" class="wb-settings ui-corner-all ui-widget-content">
<div wicket:message="title:843" class="header ui-dialog-titlebar ui-corner-all ui-widget-header ui-helper-clearfix ui-draggable-handle">
<span class="ui-dialog-title"><wicket:message key="843"/></span>
<button type="button" class="ui-button ui-corner-all ui-widget ui-button-icon-only ui-dialog-titlebar-close" wicket:message="title:85">
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-apointer.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-apointer.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-apointer.js
index af52f86..50498ca 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-apointer.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/tool-apointer.js
@@ -69,7 +69,7 @@ var APointer = function(wb) {
const canvas = this
, ptr = canvas.getPointer(o.e);
if (pointer.user === '') {
- pointer.user = $('.room.sidebar.left .user.list .current .name').text();
+ pointer.user = $('.room.sidebar .user.list .current .name').text();
}
const obj = {
type: 'pointer'
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
index c92b4e6..1f3b0c1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
@@ -224,10 +224,10 @@ var Wb = function() {
});
s.draggable({
scroll: false
- , containment: "body"
+ , containment: 'body'
, start: function() {
- if (!!s.css("bottom")) {
- s.css("bottom", "").css("right", "");
+ if (!!s.css('bottom')) {
+ s.css('bottom', '').css(isRtl ? 'left' : 'right', '');
}
}
, drag: function() {
@@ -575,16 +575,19 @@ var Wb = function() {
a.find('.wb-zoom').remove();
role = _role;
const sc = a.find('.scroll-container');
- z = $('#wb-zoom').clone().attr('id', '');
+ z = $('#wb-zoom').clone().attr('id', '')
+ .attr('style', 'position: absolute; top: 0px; ' + (isRtl ? 'right' : 'left') + ': 80px;');
if (role === NONE) {
t = $('#wb-tools-readonly').clone().attr('id', '');
sc.off('scroll', scrollHandler);
} else {
t = $('#wb-tools').clone().attr('id', '');
- s = $("#wb-settings").clone().attr('id', '');
+ s = $("#wb-settings").clone().attr('id', '')
+ .attr('style', 'display: none; bottom: 100px; ' + (isRtl ? 'left' : 'right') + ': 100px;');
a.append(s);
sc.on('scroll', scrollHandler);
}
+ t.attr('style', 'position: absolute; top: 20px; ' + (isRtl ? 'left' : 'right') + ': 20px;');
a.append(t).append(z);
showCurrentSlide();
t = a.find('.tools'), s = a.find(".wb-settings");
@@ -620,15 +623,15 @@ var Wb = function() {
wb.resize = function() {
if (t.position().left + t.width() > a.width()) {
t.position({
- my: "right"
- , at: "right-20"
+ my: (isRtl ? 'left' : 'right')
+ , at: (isRtl ? 'left' : 'right') + '-20'
, of: '#' + a[0].id
, collision: "fit"
});
}
if (z.position().left + z.width() > a.width()) {
z.position({
- my: "left top"
+ my: (isRtl ? 'right' : 'left') + ' top'
, at: "center top"
, of: '#' + a[0].id
, collision: "fit"
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
index 8f059d0..fec0873 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.html
@@ -27,7 +27,7 @@
</div>
<form wicket:id="sendForm">
<div style="display: inline-block;" wicket:id="toolbarContainer"></div>
- <div class="clickable chat-btn ui-state-default ui-corner-all">
+ <div class="clickable chat-btn ui-state-default ui-corner-all" wicket:enclosure="ajax-cancel-button">
<div class="formCancelButton" wicket:id="ajax-cancel-button" wicket:message="title:442"></div>
</div>
<div class="clickable chat-btn ui-state-default ui-corner-all">
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
index 45e0bcd..f3ff9fb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
@@ -1,12 +1,15 @@
/* Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 */
var Chat = function() {
- const tabTemplate = "<li><a href='#{href}'>#{label}</a></li>"
- , msgTemplate = "<div class='clear' id='chat-msg-id-#{id}'><img class='profile' src='#{imgSrc}'/><span class='from' data-user-id='#{userId}'>#{from}</span><span class='date align-right'>#{sent}</span>#{msg}</div>"
- , acceptTemplate = "<div class='tick om-icon align-right clickable' data-msgid='#{msgid}' data-roomid='#{roomid}' onclick='const e=$(this);chatActivity('accept',e.data(\"roomid\"),e.data(\"msgid\"));e.parent().remove();'></div>"
- , infoTemplate = "<div class='user om-icon align-right clickable' data-user-id='#{userId}' onclick='const e=$(this);showUserInfo(e.data(\"userId\"));'></div>"
- , addTemplate = "<div class='add om-icon align-right clickable' data-user-id='#{userId}' onclick='const e=$(this);addContact(e.data(\"userId\"));'></div>"
- , messageTemplate = "<div class='new-email om-icon align-right clickable' data-user-id='#{userId}' onclick='const e=$(this);privateMessage(e.data(\"userId\"));'></div>"
- , inviteTemplate = "<div class='invite om-icon align-right clickable' data-user-id='#{userId}' onclick='const e=$(this);inviteUser(e.data(\"userId\"));'></div>"
+ const isRtl = "rtl" === $('html').attr('dir')
+ , align = isRtl ? 'align-right' : 'align-left'
+ , alignIco = isRtl ? 'align-left' : 'align-right'
+ , tabTemplate = "<li><a href='#{href}'>#{label}</a></li>"
+ , msgTemplate = "<div class='clear msg-row' id='chat-msg-id-#{id}'><img class='profile " + align + "' src='#{imgSrc}'/><span class='from " + align + "' data-user-id='#{userId}'>#{from}</span><span class='" + align + "'>#{msg}</span><span class='date " + alignIco + "'>#{sent}</span></div>"
+ , acceptTemplate = "<div class='tick om-icon " + alignIco + " clickable' data-msgid='#{msgid}' data-roomid='#{roomid}' onclick='const e=$(this);chatActivity('accept',e.data(\"roomid\"),e.data(\"msgid\"));e.parent().remove();'></div>"
+ , infoTemplate = "<div class='user om-icon " + alignIco + " clickable' data-user-id='#{userId}' onclick='const e=$(this);showUserInfo(e.data(\"userId\"));'></div>"
+ , addTemplate = "<div class='add om-icon " + alignIco + " clickable' data-user-id='#{userId}' onclick='const e=$(this);addContact(e.data(\"userId\"));'></div>"
+ , messageTemplate = "<div class='new-email om-icon " + alignIco + " clickable' data-user-id='#{userId}' onclick='const e=$(this);privateMessage(e.data(\"userId\"));'></div>"
+ , inviteTemplate = "<div class='invite om-icon " + alignIco + " clickable' data-user-id='#{userId}' onclick='const e=$(this);inviteUser(e.data(\"userId\"));'></div>"
, closeBlock = "<span class='ui-icon ui-icon-close' role='presentation'></span>"
, closedHeight = "20px"
, emoticon = new CSSEmoticon()
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/webapp/css/general-rtl.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/general-rtl.css b/openmeetings-web/src/main/webapp/css/general-rtl.css
index e640dfb..696bcb3 100644
--- a/openmeetings-web/src/main/webapp/css/general-rtl.css
+++ b/openmeetings-web/src/main/webapp/css/general-rtl.css
@@ -98,8 +98,41 @@ form .input {
padding-left: initial !important;
padding-right: 20px !important;
}
+.btn-toolbar .btn, .btn-toolbar .btn-group, .btn-toolbar .input-group {
+ float: right !important;
+}
+#chat .chat-btn {
+ float: left !important;
+ margin-right: initial !important;
+ margin-left: 10px !important;
+}
+.room.sidebar .tab.om-icon.big {
+ padding: 0em 2.5em 0 1em !important;
+}
+@media screen and (max-width: 1280px) {
+ .room.holder .room.sidebar .tab.om-icon.big {
+ padding-left: 0 !important;
+ }
+}
+.om-icon.big {
+ background-position: right 1px top 1px !important;
+}
+.room.sidebar .user.list .user {
+ background-position: right 2px top 2px !important;
+}
+.room.sidebar .user.list .user.name {
+ margin-left: 0px 0px 0px 20px !important;
+ padding: 0px 44px 0px 0px !important;
+}
+.room.sidebar .user.list .user .ui-icon.audio-activity {
+ right: initial !important;
+ left: 3px !important;
+}
/**** TODO need to be moved to wicket-jquery-ui **************/
+span.css-emoticon.un-transformed-emoticon, span.css-emoticon.animated-emoticon:hover {
+ transform: rotate(0deg) !important;
+}
span.css-emoticon {
transform: rotate(-90deg) !important;
}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/webapp/css/general.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/general.css b/openmeetings-web/src/main/webapp/css/general.css
index fe032a6..b0f066a 100644
--- a/openmeetings-web/src/main/webapp/css/general.css
+++ b/openmeetings-web/src/main/webapp/css/general.css
@@ -534,7 +534,7 @@ form .input {
.no-close .ui-dialog-titlebar-close {
display: none;
}
-.table {
+.table, .msg-row {
position: relative;
}
.table .column {
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/68741593/openmeetings-web/src/main/webapp/css/room.css
----------------------------------------------------------------------
diff --git a/openmeetings-web/src/main/webapp/css/room.css b/openmeetings-web/src/main/webapp/css/room.css
index 45663b0..5d183c8 100644
--- a/openmeetings-web/src/main/webapp/css/room.css
+++ b/openmeetings-web/src/main/webapp/css/room.css
@@ -88,37 +88,37 @@
.room.menu.right .icon .profile img {
width: 28px;
}
-.room.sidebar.left {
+.room.sidebar {
min-width: 150px;
width: 315px;
position: absolute;
}
-.room.sidebar.left .ui-resizable-handle {
+.room.sidebar .ui-resizable-handle {
width: 4px;
background-color: #f3f3f4;
border: 1px solid #dedee0;
}
-.room.sidebar.left .ui-resizable-handle:hover {
+.room.sidebar .ui-resizable-handle:hover {
background-color: #b6bdca;
border-color: #bebec3;
}
-.room.sidebar.left .ui-tabs .ui-tabs-panel {
+.room.sidebar .ui-tabs .ui-tabs-panel {
padding: 0;
}
-.room.sidebar.left .user.header {
+.room.sidebar .user.header {
height: 45px;
padding-left: 5px;
}
-.room.sidebar.left .user.header .ui-icon {
+.room.sidebar .user.header .ui-icon {
margin-top: 5px;
margin-left: 5px;
width: 32px;
height: 32px;
}
-.room.sidebar.left .user.list {
+.room.sidebar .user.list {
overflow-y: auto;
}
-.room.sidebar.left .user.list .user {
+.room.sidebar .user.list .user {
min-height: 40px;
padding-left: 5px;
padding-top: 5px;
@@ -127,7 +127,7 @@
background-position: 2px 2px;
position: relative;
}
-.room.sidebar.left .user.list .user.name {
+.room.sidebar .user.list .user.name {
line-height: 18px;
height: 18px;
padding: 0;
@@ -135,10 +135,10 @@
margin-right: 20px;
overflow: hidden;
}
-.room.holder.small .room.sidebar.left .user.list .user.name {
+.room.holder.small .room.sidebar .user.list .user.name {
display: none;
}
-.room.sidebar.left .user.list .user .user.actions {
+.room.sidebar .user.list .user .user.actions {
position: relative;
min-height: 18px;
padding: 0;
@@ -146,22 +146,22 @@
visibility: hidden;
margin-right: 35px;
}
-.room.sidebar.left .user.list .user:hover .user.actions {
+.room.sidebar .user.list .user:hover .user.actions {
visibility: visible;
}
-.room.sidebar.left .user.list .user .user.actions .ui-icon {
+.room.sidebar .user.list .user .user.actions .ui-icon {
margin-right: 2px;
margin-top: 0;
}
-.room.sidebar.left .user.list .user .ui-icon {
+.room.sidebar .user.list .user .ui-icon {
background-size: 16px;
}
-.room.sidebar.left .user.list .user .ui-icon.audio-activity {
+.room.sidebar .user.list .user .ui-icon.audio-activity {
position: absolute;
bottom: 0px;
right: 3px;
}
-.room.sidebar.left .user.list .user .ui-icon.big {
+.room.sidebar .user.list .user .ui-icon.big {
background-size: 32px;
}
.audio-activity.ui-icon {
@@ -257,14 +257,14 @@
.activity.mic.enabled.ui-icon {
background-image: url(images/microphone_disable.png);
}
-.room.sidebar.left .user.list .user .user.actions .ui-icon.bumper
- , .room.sidebar.left .user.header .ui-icon.bumper {
+.room.sidebar .user.list .user .user.actions .ui-icon.bumper
+ , .room.sidebar .user.header .ui-icon.bumper {
padding-right: 5px;
}
-.room.sidebar.left .tabs, .room.sidebar.left .tabs #utab, .room.sidebar.left .tabs #ftab {
+.room.sidebar .tabs, .room.sidebar .tabs #utab, .room.sidebar .tabs #ftab {
padding: 0;
}
-.room.sidebar.left .user.list .user.current {
+.room.sidebar .user.list .user.current {
font-weight: bold;
background-color: #00FF00;
}
@@ -365,7 +365,7 @@
padding: .1em .7em;
font-weight: bolder;
}
-.room.sidebar.left .tab.om-icon.big {
+.room.sidebar .tab.om-icon.big {
padding: 0em 1em 0 2.5em;
line-height: 30px;
width: auto;
@@ -374,19 +374,19 @@
overflow: hidden;
white-space: nowrap;
}
-.room.holder.small .room.sidebar.left .tab.om-icon.big {
+.room.holder.small .room.sidebar .tab.om-icon.big {
max-width: 0px;
padding-right: 0;
}
-.room.holder.small .room.sidebar.left .file.tree .file.item .name
- , .room.holder.small .room.sidebar.left .file.tree .file.item .name span
+.room.holder.small .room.sidebar .file.tree .file.item .name
+ , .room.holder.small .room.sidebar .file.tree .file.item .name span
{
width: 40px;
}
-.room.sidebar.left .tab.om-icon.big.user {
+.room.sidebar .tab.om-icon.big.user {
background-image: url(images/group.png);
}
-.room.sidebar.left .tab.om-icon.big.file {
+.room.sidebar .tab.om-icon.big.file {
background-image: url(images/folder_explore.png);
}
/************ VIDEO **************/
@@ -432,40 +432,40 @@
max-width: 250px;
}
@media screen and (max-width: 1280px) {
- .room.sidebar.left {
+ .room.sidebar {
width: 150px;
}
- .room.holder .room.sidebar.left .tab.om-icon.big {
+ .room.holder .room.sidebar .tab.om-icon.big {
max-width: 0px;
padding-right: 0;
}
- .room.holder.big .room.sidebar.left .tab.om-icon.big {
+ .room.holder.big .room.sidebar .tab.om-icon.big {
max-width: 80px;
padding: 0em 1em 0 2.5em;
}
- .room.holder .room.sidebar.left .user.list .user.name {
+ .room.holder .room.sidebar .user.list .user.name {
display: none;
}
- .room.holder.big .room.sidebar.left .user.list .user.name {
+ .room.holder.big .room.sidebar .user.list .user.name {
display: block;
}
- .room.holder .room.sidebar.left .file.tree .file.item .name
- , .room.holder .room.sidebar.left .file.tree .file.item .name span
+ .room.holder .room.sidebar .file.tree .file.item .name
+ , .room.holder .room.sidebar .file.tree .file.item .name span
{
width: 40px;
}
- .room.holder.big .room.sidebar.left .file.tree .file.item .name
- , .room.holder.big .room.sidebar.left .file.tree .file.item .name span
+ .room.holder.big .room.sidebar .file.tree .file.item .name
+ , .room.holder.big .room.sidebar .file.tree .file.item .name span
{
width: 230px;
}
- .room.sidebar.left .file.tree .file.item .name span {
+ .room.sidebar .file.tree .file.item .name span {
padding: 0;
}
- .room.holder .room.sidebar.left .file.tree .file.item {
+ .room.holder .room.sidebar .file.tree .file.item {
width: 80px;
}
- .room.holder.big .room.sidebar.left .file.tree .file.item {
+ .room.holder.big .room.sidebar .file.tree .file.item {
width: auto;
}
}