This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 8d22b37  [OPENMEETINGS-2165] initial work on room icons
8d22b37 is described below

commit 8d22b378796970f726c537a0138f6654529f7a0b
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Mon Mar 9 17:04:38 2020 +0700

    [OPENMEETINGS-2165] initial work on room icons
---
 .../openmeetings/web/room/menu/OmButton.java       |  44 ------
 .../openmeetings/web/room/menu/RoomMenuPanel.html  |   4 +-
 .../openmeetings/web/room/menu/RoomMenuPanel.java  |   3 +-
 .../web/room/sidebar/SelfIconsPanel.html           |  32 +++--
 .../sidebar/icon/right/MuteOthersRightIcon.java    |   2 +-
 .../openmeetings/web/room/wb/AbstractWbPanel.java  |   2 +-
 .../apache/openmeetings/web/room/wb/WbPanel.html   |   2 +-
 .../openmeetings/web/room/wb/raw-wb-board.js       | 157 +++++++++++----------
 openmeetings-web/src/main/webapp/css/raw-room.css  |  71 +++++-----
 openmeetings-web/src/main/webapp/css/raw-wb.css    |  26 ++--
 10 files changed, 161 insertions(+), 182 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/OmButton.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/OmButton.java
deleted file mode 100644
index 4c1d5c7..0000000
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/OmButton.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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 static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
-
-import org.apache.wicket.ajax.AjaxEventBehavior;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-
-import com.googlecode.wicket.jquery.ui.form.button.Button;
-
-public abstract class OmButton extends Button {
-       private static final long serialVersionUID = 1L;
-
-       public OmButton(String id) {
-               super(id);
-               add(new AjaxEventBehavior(EVT_CLICK) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void onEvent(AjaxRequestTarget target) {
-                               OmButton.this.onClick(target);
-                       }
-               });
-       }
-
-       public abstract void onClick(AjaxRequestTarget target);
-}
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
index 445428f..a15d257 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.html
@@ -25,7 +25,9 @@
        <div class="details">
                <span class="icon shared ui-button ui-corner-all ui-widget 
d-none" wicket:message="data-user:692, data-text:850, data-view:848"
                                role="button"></span>
-               <span wicket:id="ask" class="icon ask"></span>
+               <span wicket:id="ask" class="btn btn-outline-secondary ask">
+                       <i class="fas fa-hand-paper m-0"></i>
+               </span>
                <span wicket:id="share" class="icon share" 
wicket:message="title:732" onclick="Sharer.open();"></span>
                <span wicket:id="roomName" class="room name"></span>
                <span wicket:id="tag" class="room name"></span>
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 dfd2721..ca1aade 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
@@ -52,6 +52,7 @@ import org.apache.openmeetings.web.room.OmTimerBehavior;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.html.basic.Label;
@@ -73,7 +74,7 @@ public class RoomMenuPanel extends Panel {
        private final Button shareBtn;
        private final Label roomName;
        private static final FastDateFormat df = 
FastDateFormat.getInstance("dd.MM.yyyy HH:mm");
-       private final OmButton askBtn = new OmButton("ask") {
+       private final AjaxLink<Void> askBtn = new AjaxLink<Void>("ask") {
                private static final long serialVersionUID = 1L;
 
                @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.html
index 52e1793..e92efc8 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/SelfIconsPanel.html
@@ -21,16 +21,32 @@
 <html xmlns:wicket="http://wicket.apache.org";>
 <wicket:panel>
        <span wicket:id="settings"></span>
-       <span wicket:id="right-video"></span>
+       <span wicket:id="right-video">
+               <i class="fas"/>
+       </span>
        <span wicket:id="cam"></span>
-       <span wicket:id="right-audio"></span>
+       <span wicket:id="right-audio">
+               <i class="fas"/>
+       </span>
        <span wicket:id="mic"></span>
-       <span wicket:id="right-presenter"></span>
-       <span wicket:id="right-wb"></span>
-       <span wicket:id="right-screen-share"></span>
-       <span wicket:id="right-remote-control"></span>
-       <span wicket:id="right-mute-others"></span>
-       <span wicket:id="right-moder"></span>
+       <span wicket:id="right-presenter">
+               <i class="fas"/>
+       </span>
+       <span wicket:id="right-wb">
+               <i class="fas"/>
+       </span>
+       <span wicket:id="right-screen-share">
+               <i class="fas"/>
+       </span>
+       <span wicket:id="right-remote-control">
+               <i class="fas"/>
+       </span>
+       <span wicket:id="right-mute-others">
+               <i class="fas"/>
+       </span>
+       <span wicket:id="right-moder">
+               <i class="fas"/>
+       </span>
        <div class="clear"></div>
 </wicket:panel>
 </html>
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
index 3d4695b..a21a894 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
@@ -25,7 +25,7 @@ public class MuteOthersRightIcon extends RoomRightIcon {
 
        public MuteOthersRightIcon(String id, String uid) {
                super(id, uid, Right.MUTE_OTHERS);
-               mainCssClass = "mute-others ";
+               mainCssClass = "right mute-others ";
        }
 
        @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
index fb351da..717ff57 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/AbstractWbPanel.java
@@ -29,7 +29,7 @@ import com.github.openjson.JSONObject;
 
 public abstract class AbstractWbPanel extends Panel {
        private static final long serialVersionUID = 1L;
-       protected static final String ROLE_NONE = "none";
+       protected static final String ROLE_NONE = "NONE";
        protected final RoomPanel rp;
        protected boolean inited = false;
 
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 ca0c274..4edc71d 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
@@ -134,7 +134,7 @@
                        <div wicket:message="title:843" class="clickable 
om-icon big settings"></div>
                </div>
                <div id="wb-tools-readonly">
-                       <div wicket:message="title:557" class="clickable big 
apointer"></div>
+                       <div wicket:message="title:557" class="clickable 
om-icon big apointer"></div>
                </div>
                <div id="wb-tool-settings" class="wb-tool-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">
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
index 46f525c..e7b360a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-board.js
@@ -3,7 +3,7 @@ var Wb = function() {
        const ACTIVE = 'active', BUMPER = 100, wb = {id: -1, name: ''}, 
canvases = []
                , area = $('.room-block .wb-block .wb-area .tabs'), bar = 
area.find('.wb-tabbar')
                , extraProps = ['uid', 'fileId', 'fileType', 'count', 'slide', 
'omType', '_src', 'formula'];
-       let c, tools, z, s, f, mode, slide = 0, width = 0, height = 0
+       let tools, zoomBar, settings, math, mode, slide = 0, width = 0, height 
= 0
                        , zoom = 1., zoomMode = 'PAGE_WIDTH', role = null, 
scrollTimeout = null;
 
        function _getBtn(m) {
@@ -85,19 +85,19 @@ var Wb = function() {
        }
        function _initTexts(sBtn) {
                const c = _initGroup('#wb-area-texts', _getBtn('apointer'));
-               _initToolBtn('text', false, Text(wb, s, sBtn));
-               _initToolBtn('textbox', false, Textbox(wb, s, sBtn));
+               _initToolBtn('text', false, Text(wb, settings, sBtn));
+               _initToolBtn('textbox', false, Textbox(wb, settings, sBtn));
                _initGroupHandle(c);
        }
        function _initDrawings(sBtn) {
                const c = _initGroup('#wb-area-drawings', tools.find('.texts'));
-               _initToolBtn('eraser', false, Whiteout(wb, s, sBtn));
-               _initToolBtn('paint', false, Paint(wb, s, sBtn));
-               _initToolBtn('line', false, Line(wb, s, sBtn));
-               _initToolBtn('uline', false, ULine(wb, s, sBtn));
-               _initToolBtn('rect', false, Rect(wb, s, sBtn));
-               _initToolBtn('ellipse', false, Ellipse(wb, s, sBtn));
-               _initToolBtn('arrow', false, Arrow(wb, s, sBtn));
+               _initToolBtn('eraser', false, Whiteout(wb, settings, sBtn));
+               _initToolBtn('paint', false, Paint(wb, settings, sBtn));
+               _initToolBtn('line', false, Line(wb, settings, sBtn));
+               _initToolBtn('uline', false, ULine(wb, settings, sBtn));
+               _initToolBtn('rect', false, Rect(wb, settings, sBtn));
+               _initToolBtn('ellipse', false, Ellipse(wb, settings, sBtn));
+               _initToolBtn('arrow', false, Arrow(wb, settings, sBtn));
                _initGroupHandle(c);
        }
        function _initCliparts(sBtn) {
@@ -109,21 +109,21 @@ var Wb = function() {
                                .click(function() {
                                        _setCurrent(c, cur);
                                });
-                       _initToolBtn(cur.data('mode'), false, Clipart(wb, cur, 
s, sBtn));
+                       _initToolBtn(cur.data('mode'), false, Clipart(wb, cur, 
settings, sBtn));
                });
                _initGroupHandle(c);
        }
        function _updateZoomPanel() {
                const ccount = canvases.length;
                if (ccount > 1 && role === PRESENTER) {
-                       z.find('.doc-group').show();
+                       zoomBar.find('.doc-group').show();
                        const ns = 1 * slide;
-                       z.find('.doc-group .curr-slide').val(ns + 
1).attr('max', ccount);
-                       z.find('.doc-group .up').prop('disabled', ns < 1);
-                       z.find('.doc-group .down').prop('disabled', ns > ccount 
- 2);
-                       z.find('.doc-group .last-page').text(ccount);
+                       zoomBar.find('.doc-group .curr-slide').val(ns + 
1).attr('max', ccount);
+                       zoomBar.find('.doc-group .up').prop('disabled', ns < 1);
+                       zoomBar.find('.doc-group .down').prop('disabled', ns > 
ccount - 2);
+                       zoomBar.find('.doc-group .last-page').text(ccount);
                } else {
-                       z.find('.doc-group').hide();
+                       zoomBar.find('.doc-group').hide();
                }
        }
        function _setSlide(_sld) {
@@ -150,7 +150,7 @@ var Wb = function() {
                        }
                        canvas.requestRenderAll();
                }
-               s.find('.wb-prop-b, .wb-prop-i')
+               settings.find('.wb-prop-b, .wb-prop-i')
                        .button()
                        .click(function() {
                                $(this).toggleClass('ui-state-active selected');
@@ -164,18 +164,18 @@ var Wb = function() {
                                        setStyle(canvas, isB ? 'fontWeight' : 
'fontStyle', val)
                                });
                        });
-               s.find('.wb-prop-lock-color, .wb-prop-lock-fill')
+               settings.find('.wb-prop-lock-color, .wb-prop-lock-fill')
                        .button({icon: 'ui-icon-locked', showLabel: false})
                        .click(function() {
                                const btn = _getBtn()
                                        , isColor = 
$(this).hasClass('wb-prop-lock-color')
-                                       , c = s.find(isColor ? '.wb-prop-color' 
: '.wb-prop-fill')
+                                       , c = settings.find(isColor ? 
'.wb-prop-color' : '.wb-prop-fill')
                                        , enabled = $(this).button('option', 
'icon') === 'ui-icon-locked';
                                $(this).button('option', 'icon', enabled ? 
'ui-icon-unlocked' : 'ui-icon-locked');
                                c.prop('disabled', !enabled);
                                btn.data().obj[isColor ? 'stroke' : 
'fill'].enabled = enabled;
                        });
-               s.find('.wb-prop-color').change(function() {
+               settings.find('.wb-prop-color').change(function() {
                        const btn = _getBtn();
                        if (btn.length === 1) {
                                const v = $(this).val();
@@ -189,7 +189,7 @@ var Wb = function() {
                                });
                        }
                });
-               s.find('.wb-prop-width').change(function() {
+               settings.find('.wb-prop-width').change(function() {
                        const btn = _getBtn();
                        if (btn.length === 1) {
                                const v = 1 * $(this).val();
@@ -203,7 +203,7 @@ var Wb = function() {
                                });
                        }
                });
-               s.find('.wb-prop-fill').change(function() {
+               settings.find('.wb-prop-fill').change(function() {
                        const btn = _getBtn();
                        if (btn.length === 1) {
                                const v = $(this).val();
@@ -213,7 +213,7 @@ var Wb = function() {
                                });
                        }
                });
-               s.find('.wb-prop-opacity').change(function() {
+               settings.find('.wb-prop-opacity').change(function() {
                        const btn = _getBtn();
                        if (btn.length === 1) {
                                const v = (1 * $(this).val()) / 100;
@@ -227,26 +227,26 @@ var Wb = function() {
                                });
                        }
                });
-               s.find('.ui-dialog-titlebar-close').click(function() {
-                       s.hide();
+               settings.find('.ui-dialog-titlebar-close').click(function() {
+                       settings.hide();
                });
-               s.draggable({
+               settings.draggable({
                        scroll: false
                        , containment: 'body'
                        , start: function() {
-                               if (!!s.css('bottom')) {
-                                       s.css('bottom', '').css(Settings.isRtl 
? 'left' : 'right', '');
+                               if (!!settings.css('bottom')) {
+                                       settings.css('bottom', 
'').css(Settings.isRtl ? 'left' : 'right', '');
                                }
                        }
                        , drag: function() {
-                               if (s.position().x + s.width() >= 
s.parent().width()) {
+                               if (settings.position().x + settings.width() >= 
settings.parent().width()) {
                                        return false;
                                }
                        }
                });
        }
        function internalInit() {
-               z.draggable({
+               zoomBar.draggable({
                        snap: 'parent'
                        , containment: 'parent'
                        , scroll: false
@@ -259,19 +259,19 @@ var Wb = function() {
                                clearAll.click(function() {
                                        OmUtil.confirmDlg('clear-all-confirm', 
function() { OmUtil.wbAction({action: 'clearAll', data: {wbId: wb.id}}); });
                                }).removeClass('disabled');
-                               z.find('.curr-slide').change(function() {
+                               zoomBar.find('.curr-slide').change(function() {
                                        _setSlide($(this).val() - 1);
                                        showCurrentSlide();
                                });
-                               z.find('.doc-group .up').click(function () {
+                               zoomBar.find('.doc-group .up').click(function 
() {
                                        _setSlide(1 * slide - 1);
                                        showCurrentSlide();
                                });
-                               z.find('.doc-group .down').click(function () {
+                               zoomBar.find('.doc-group .down').click(function 
() {
                                        _setSlide(1 * slide + 1);
                                        showCurrentSlide();
                                });
-                               
z.find('.settings-group').show().find('.settings').click(function () {
+                               
zoomBar.find('.settings-group').show().find('.settings').click(function () {
                                        const wbs = $('#wb-settings')
                                                , wbsw = 
wbs.find('.wbs-width').val(width)
                                                , wbsh = 
wbs.find('.wbs-height').val(height);
@@ -305,17 +305,17 @@ var Wb = function() {
                                if (role === WHITEBOARD) {
                                        clearAll.addClass('disabled');
                                }
-                               _initToolBtn('pointer', _firstToolItem, 
Pointer(wb, s, sBtn));
+                               _initToolBtn('pointer', _firstToolItem, 
Pointer(wb, settings, sBtn));
                                _firstToolItem = false;
                                _initTexts(sBtn);
                                _initDrawings(sBtn);
-                               _initToolBtn('math', _firstToolItem, TMath(wb, 
s, sBtn));
+                               _initToolBtn('math', _firstToolItem, TMath(wb, 
settings, sBtn));
                                _initCliparts(sBtn);
                                
tools.find('.om-icon.settings').click(function() {
-                                       s.show();
+                                       settings.show();
                                });
                                tools.find('.om-icon.math').click(function() {
-                                       f.show();
+                                       math.show();
                                });
                                
tools.find('.om-icon.clear-slide').click(function() {
                                        
OmUtil.confirmDlg('clear-slide-confirm', function() { OmUtil.wbAction({action: 
'clearSlide', data: {wbId: wb.id, slide: slide}}); });
@@ -326,17 +326,17 @@ var Wb = function() {
                                tools.find('.om-icon.undo').click(function() {
                                        OmUtil.wbAction({action: 'undo', data: 
{wbId: wb.id}});
                                });
-                               
f.find('.ui-dialog-titlebar-close').click(function() {
-                                       f.hide();
+                               
math.find('.ui-dialog-titlebar-close').click(function() {
+                                       math.hide();
                                });
                                _initSettings();
-                               f.find('.update-btn').button().click(function() 
{
+                               
math.find('.update-btn').button().click(function() {
                                        const o = _findObject({
                                                uid: $(this).data('uid')
                                                , slide: $(this).data('slide')
                                        });
                                        const json = toOmJson(o);
-                                       json.formula = f.find('textarea').val();
+                                       json.formula = 
math.find('textarea').val();
                                        const cnvs = canvases[o.slide];
                                        StaticTMath.create(json, cnvs
                                                , function(obj) {
@@ -344,30 +344,30 @@ var Wb = function() {
                                                        
cnvs.trigger('object:modified', {target: obj});
                                                }
                                                , function(msg) {
-                                                       const err = 
f.find('.status');
+                                                       const err = 
math.find('.status');
                                                        err.text(msg);
                                                        
StaticTMath.highlight(err);
                                                });
                                }).parent().css('text-align', Settings.isRtl ? 
'left' : 'right');
-                               f.draggable({
+                               math.draggable({
                                        scroll: false
                                        , containment: 'body'
                                        , start: function() {
-                                               if (!!f.css('bottom')) {
-                                                       f.css('bottom', 
'').css(Settings.isRtl ? 'left' : 'right', '');
+                                               if (!!math.css('bottom')) {
+                                                       math.css('bottom', 
'').css(Settings.isRtl ? 'left' : 'right', '');
                                                }
                                        }
                                        , drag: function() {
-                                               if (f.position().x + f.width() 
>= f.parent().width()) {
+                                               if (math.position().x + 
math.width() >= math.parent().width()) {
                                                        return false;
                                                }
                                        }
                                }).resizable({
-                                       alsoResize: f.find('.text-container')
+                                       alsoResize: math.find('.text-container')
                                });
                        case NONE:
                                _updateZoomPanel();
-                               z.find('.zoom-out').click(function() {
+                               zoomBar.find('.zoom-out').click(function() {
                                        zoom -= .2;
                                        if (zoom < .1) {
                                                zoom = .1;
@@ -375,12 +375,12 @@ var Wb = function() {
                                        zoomMode = 'ZOOM';
                                        _sendSetSize();
                                });
-                               z.find('.zoom-in').click(function() {
+                               zoomBar.find('.zoom-in').click(function() {
                                        zoom += .2;
                                        zoomMode = 'ZOOM';
                                        _sendSetSize();
                                });
-                               z.find('.zoom').change(function() {
+                               zoomBar.find('.zoom').change(function() {
                                        const zzz = $(this).val();
                                        zoomMode = 'ZOOM';
                                        if (isNaN(zzz)) {
@@ -401,7 +401,7 @@ var Wb = function() {
                                        _sendSetSize();
                                });
                                _setSize();
-                               _initToolBtn('apointer', _firstToolItem, 
APointer(wb, s, sBtn));
+                               _initToolBtn('apointer', _firstToolItem, 
APointer(wb, settings, sBtn));
                        default:
                                //no-op
                }
@@ -586,10 +586,10 @@ var Wb = function() {
        };
        function objSelectedHandler(e) {
                const o = e.target;
-               s.find('.wb-dim-x').val(o.left);
-               s.find('.wb-dim-y').val(o.top);
-               s.find('.wb-dim-w').val(o.width);
-               s.find('.wb-dim-h').val(o.height);
+               settings.find('.wb-dim-x').val(o.left);
+               settings.find('.wb-dim-y').val(o.top);
+               settings.find('.wb-dim-w').val(o.width);
+               settings.find('.wb-dim-h').val(o.height);
        }
        function selectionCleared(e) {
                const o = e.target;
@@ -716,19 +716,19 @@ var Wb = function() {
                switch (zoomMode) {
                        case 'FULL_FIT':
                                zoom = Math.min((area.width() - 30) / width, 
(area.height() - bar.height() - 30) / height);
-                               z.find('.zoom').val(zoomMode);
+                               zoomBar.find('.zoom').val(zoomMode);
                                break;
                        case 'PAGE_WIDTH':
-                               zoom = (area.width() - 30) / width;
-                               z.find('.zoom').val(zoomMode);
+                               zoom = (area.width() - 30 - 40) / width; // 
bumper + toolbar
+                               zoomBar.find('.zoom').val(zoomMode);
                                break;
                        default:
                        {
-                               const oo = 
z.find('.zoom').find('option[value="' + zoom.toFixed(2) + '"]');
+                               const oo = 
zoomBar.find('.zoom').find('option[value="' + zoom.toFixed(2) + '"]');
                                if (oo.length === 1) {
                                        oo.prop('selected', true);
                                } else {
-                                       z.find('.zoom').data('custom-val', 
zoom).find('option[value=custom]')
+                                       
zoomBar.find('.zoom').data('custom-val', zoom).find('option[value=custom]')
                                                .text((100. * zoom).toFixed(0) 
+ '%')
                                                .prop('selected', true);
                                }
@@ -764,33 +764,34 @@ var Wb = function() {
                        if (__validBtn(btn)) {
                                btn.data().deactivate();
                        }
-                       wbEl.find('.tools div').remove();
+                       wbEl.find('.tools>div').remove();
                        wbEl.find('.wb-tool-settings').remove();
                        wbEl.find('.wb-zoom').remove();
                        role = _role;
                        const sc = wbEl.find('.scroll-container');
-                       z = OmUtil.tmpl('#wb-zoom')
+                       zoomBar = OmUtil.tmpl('#wb-zoom')
                                .attr('style', 'position: absolute; top: 0px; ' 
+ (Settings.isRtl ? 'right' : 'left') + ': 80px;');
                        __safeRemove(tools);
-                       __safeRemove(s);
-                       __safeRemove(f);
+                       __safeRemove(settings);
+                       __safeRemove(math);
                        if (role === NONE) {
                                __destroySettings();
                                tools = !!Room.getOptions().questions ? 
OmUtil.tmpl('#wb-tools-readonly') : wbEl.find('invalid-wb-element');
                                sc.off('scroll', scrollHandler);
                        } else {
                                tools = OmUtil.tmpl('#wb-tools');
-                               s = OmUtil.tmpl('#wb-tool-settings')
+                               settings = OmUtil.tmpl('#wb-tool-settings')
                                        .attr('style', 'display: none; bottom: 
100px; ' + (Settings.isRtl ? 'left' : 'right') + ': 100px;');
-                               f = OmUtil.tmpl('#wb-formula')
+                               math = OmUtil.tmpl('#wb-formula')
                                        .attr('style', 'display: none; bottom: 
100px; ' + (Settings.isRtl ? 'left' : 'right') + ': 100px;');
-                               wbEl.append(s, f);
+                               wbEl.append(settings, math);
                                sc.on('scroll', scrollHandler);
                        }
                        wbEl.find('.tools').append(tools);
-                       wbEl.append(z);
+                       wbEl.append(zoomBar);
                        showCurrentSlide();
-                       tools = wbEl.find('.tools div'), s = 
wbEl.find('.wb-tool-settings');
+                       tools = wbEl.find('.tools>div');
+                       settings = wbEl.find('.wb-tool-settings');
                        wb.eachCanvas(function(canvas) {
                                setHandlers(canvas);
                                canvas.forEachObject(function(__o) {
@@ -819,10 +820,10 @@ var Wb = function() {
                zoom = wbo.zoom;
                zoomMode = wbo.zoomMode;
                _setSize();
-       }
+       };
        wb.resize = function() {
-               if (z.position().left + z.width() > a.width()) {
-                       z.position({
+               if (zoomBar.position().left + zoomBar.width() > a.width()) {
+                       zoomBar.position({
                                my: (Settings.isRtl ? 'right' : 'left') + ' top'
                                , at: 'center top'
                                , of: '#' + a[0].id
@@ -880,7 +881,7 @@ var Wb = function() {
                        const o = _arr[i];
                        switch(o.omType) {
                                case 'pointer':
-                                       
_modifyHandler(APointer(wb).create(canvases[o.slide], o))
+                                       
_modifyHandler(APointer(wb).create(canvases[o.slide], o));
                                        break;
                                case 'Video':
                                {
@@ -948,13 +949,13 @@ var Wb = function() {
                return role;
        };
        wb.getFormula = function() {
-               return f;
+               return math;
        };
        wb.getZoom = function() {
                return zoom;
-       }
+       };
        wb.destroy = function() {
                __destroySettings();
-       }
+       };
        return wb;
 };
diff --git a/openmeetings-web/src/main/webapp/css/raw-room.css 
b/openmeetings-web/src/main/webapp/css/raw-room.css
index 3f565f3..601b563 100644
--- a/openmeetings-web/src/main/webapp/css/raw-room.css
+++ b/openmeetings-web/src/main/webapp/css/raw-room.css
@@ -176,60 +176,59 @@ html[dir="rtl"] .room-block .sidebar {
 .audio-activity.ui-icon.speaking, .ui-icon.granted {
        opacity: 1;
 }
-.right.moderator.ui-icon {
-       background-image: url(images/user_add.png);
+.room-block .menu .details .ask {
+       padding: 0.1rem 0.4rem;
+       float: right;
 }
-.room-block .menu .details .icon.ask {
-       background-image: url(images/hand.png);
+.room-block .menu .details .ask i::before {
+       font-size: 2.2em;
+       line-height: 1.2em;
 }
-.right.moderator.ui-icon.granted {
-       background-image: url(images/user_delete.png);
+.right.om-icon {
+       position: relative;
 }
-.right.presenter.ui-icon {
-       background-image: url(images/wand_add.png);
+.right.om-icon i {
+       position: absolute;
+       bottom: 1px;
+       right: 1px;
+       font-size: 1.2em;
 }
-.right.presenter.ui-icon.granted {
-       background-image: url(images/wand_delete.png);
+.right.om-icon i::before {
+       color: var(--success);
+       content: "\f055";
 }
-.right.wb.ui-icon {
-       background-image: url(images/pencil_add.png);
+.right.om-icon.granted i::before {
+       color: var(--danger);
+       content: "\f056";
 }
-.right.wb.ui-icon.granted {
-       background-image: url(images/pencil_delete.png);
+.right.moderator.om-icon::before {
+       content: "\f007";
 }
-.right.screen-share.ui-icon {
-       background-image: url(images/monitor_add.png);
+.right.presenter.om-icon::before {
+       content: "\f0d0";
 }
-.right.screen-share.ui-icon.granted {
-       background-image: url(images/monitor_delete.png);
+.right.wb.om-icon::before {
+       content: "\f303";
 }
-.right.remote-control.ui-icon {
-       background-image: url(images/mouse_add.png);
+.right.screen-share.om-icon::before {
+       content: "\f108";
 }
-.right.remote-control.ui-icon.granted {
-       background-image: url(images/mouse_delete.png);
+.right.remote-control.om-icon::before {
+       content: "\f8cc";
 }
-.right.audio.ui-icon {
-       background-image: url(images/microphone_add.png);
+.right.audio.om-icon::before {
+       content: "\f130";
 }
-.right.audio.ui-icon.granted {
-       background-image: url(images/microphone_delete.png);
+.right.camera.om-icon::before {
+       content: '\f03d';
 }
-.right.camera.ui-icon {
-       background-image: url(images/webcam_add.png);
+.right.mute-others.om-icon::before {
+       content: '\f6a9';
 }
 .room-block .sidebar .user-list .user .kick.ui-icon {
-       background-size: auto; /* IE */
        background-size: initial;
 }
-.right.camera.ui-icon.granted {
-       background-image: url(images/webcam_delete.png);
-}
-.ui-icon.mute-others {
-       background-image: url(images/microphone_muteothers.png);
-}
 .restart.ui-icon {
-       background-size: auto !important; /* IE */
        background-size: initial !important;
 }
 .settings.om-icon::before {
diff --git a/openmeetings-web/src/main/webapp/css/raw-wb.css 
b/openmeetings-web/src/main/webapp/css/raw-wb.css
index 7db582a..4dea432 100644
--- a/openmeetings-web/src/main/webapp/css/raw-wb.css
+++ b/openmeetings-web/src/main/webapp/css/raw-wb.css
@@ -69,16 +69,25 @@ html[dir="rtl"] .room-block .wb-block {
        display: inline-block;
        border: 0;
 }
-.room-block .wb-block .tools .om-icon.big {
-       float: left;
-       vertical-align: top;
+.room-block .wb-block .tools .btn-group, .room-block .wb-block .tools 
.om-icon.big {
        width: 35px;
        height: 35px;
+}
+.room-block .wb-block .tools .om-icon.big {
+       vertical-align: top;
        background-size: 27px;
        margin: 0;
        background-position: 4px !important;
        position: relative;
 }
+.room-block .wb-block .tools .om-icon.big.stub {
+       width: 30px;
+       height: 30px;
+}
+.room-block .wb-block .tools .dropleft .dropdown-toggle::before {
+       vertical-align: bottom;
+       margin-right: 0.1rem;
+}
 .room-block .wb-block .tools .om-icon.big.settings {
        border: 0 !important;
 }
@@ -100,16 +109,11 @@ html[dir="rtl"] .room-block .wb-block {
 .room-block .wb-block .tools .om-icon.big.pointer::before {
        content: '\f245';
 }
-.room-block .wb-block .tools .om-icon.big.apointer {
-       background-image: url(images/wbpointer.png);
+.room-block .wb-block .tools .om-icon.big.apointer::before {
+       content: '\f3c5';
 }
 .room-block .wb-block .tools .om-icon.big.line::before {
-       content: '/';
-       font-weight: 900;
-       font-size: 2.8em;
-       line-height: 1em;
-       position: absolute;
-       right: 10px;
+       content: '\f715';
 }
 .room-block .wb-block .tools .om-icon.big.uline::before {
        content: '\f591'

Reply via email to