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 2018/08/22 02:10:42 UTC
[openmeetings] branch master updated: [OPENMEETINGS-1884] icon
groups improvements
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 8d2b3de [OPENMEETINGS-1884] icon groups improvements
8d2b3de is described below
commit 8d2b3de587ee4303db010849dfd0d57c5f84c226
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Aug 22 09:09:59 2018 +0700
[OPENMEETINGS-1884] icon groups improvements
---
.../openmeetings/web/room/wb/raw-wb-board.js | 69 +++++++++++++++-------
openmeetings-web/src/main/webapp/css/raw-wb.css | 6 ++
2 files changed, 53 insertions(+), 22 deletions(-)
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 39658b5..d4b16da 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
@@ -7,76 +7,101 @@ var Wb = function() {
, zoom = 1., zoomMode = 'pageWidth', role = null;
function _getBtn(m) {
- return !!t ? t.find('.om-icon.' + (m || mode)) : null;
+ return !!t ? t.find('.om-icon.' + (m || mode) + ':not(.stub)') : null;
+ }
+ function _cleanActive() {
+ !!t && t.find('.om-icon.' + ACTIVE).removeClass(ACTIVE);
+ }
+ function _setActive() {
+ !!t && t.find('.om-icon.' + mode).addClass(ACTIVE);
+ }
+ function _btnClick(toolType) {
+ const b = _getBtn();
+ if (b.length && b.hasClass(ACTIVE)) {
+ b.data().deactivate();
+ }
+ _cleanActive();
+ _getBtn('string' === typeof(toolType) && !!toolType ? toolType : $(this).data('toolType')).data().activate();
+ _setActive();
}
function _initToolBtn(m, def, obj) {
const btn = _getBtn(m);
btn.data({
obj: obj
+ , toolType: m
, activate: function() {
if (!btn.hasClass(ACTIVE)) {
mode = m;
- btn.addClass(ACTIVE);
obj.activate();
}
}
, deactivate: function() {
- btn.removeClass(ACTIVE);
obj.deactivate();
}
- }).click(function() {
- const b = _getBtn();
- if (b.length && b.hasClass(ACTIVE)) {
- b.data().deactivate();
- }
- btn.data().activate();
- });
+ }).click(_btnClick);
if (def) {
btn.data().activate();
}
}
+ function _setCurrent(c, _cur) {
+ const hndl = c.find('a')
+ , cur = _cur || c.find('div.om-icon.big:first')
+ c.attr('title', cur.attr('title'));
+ hndl.find('.om-icon').remove();
+ hndl.prepend(cur.clone().addClass('stub').data('toolType', cur.data('toolType')));
+ }
+ function _initGroupHandle(c) {
+ c.find('a').off().click(function(e) {
+ e.stopImmediatePropagation()
+ const stub = $(this).find('.stub');
+ if (stub.hasClass(ACTIVE)) {
+ $(this).dropdown('toggle')
+ } else {
+ _btnClick(stub.data('toolType'));
+ stub.addClass(ACTIVE);
+ }
+ });
+ _setCurrent(c);
+ }
function _initGroup(__id, e) {
const c = OmUtil.tmpl(__id);
e.after(c);
- const fT = c.find('div.om-icon.big:first');
- c.attr('title', fT.attr('title')).find('a').prepend(fT);
c.find('.om-icon').each(function() {
const cur = $(this);
cur.click(function() {
- const old = c.find('a .om-icon');
- c.find('ul li').prepend(old);
- c.attr('title', cur.attr('title')).find('a').prepend(cur);
- });
+ _setCurrent(c, cur);
+ });
});
+ return c;
}
function _initTexts() {
- _initGroup('#wb-area-texts', _getBtn('apointer'));
+ const c = _initGroup('#wb-area-texts', _getBtn('apointer'));
_initToolBtn('text', false, Text(wb, s));
_initToolBtn('textbox', false, Textbox(wb, s));
+ _initGroupHandle(c);
}
function _initDrawings() {
- _initGroup('#wb-area-drawings', t.find('.texts'));
+ const c = _initGroup('#wb-area-drawings', t.find('.texts'));
_initToolBtn('paint', false, Paint(wb, s));
_initToolBtn('line', false, Line(wb, s));
_initToolBtn('uline', false, ULine(wb, s));
_initToolBtn('rect', false, Rect(wb, s));
_initToolBtn('ellipse', false, Ellipse(wb, s));
_initToolBtn('arrow', false, Arrow(wb, s));
+ _initGroupHandle(c);
}
function _initCliparts() {
const c = OmUtil.tmpl('#wb-area-cliparts');
t.find('.drawings').after(c);
- c.find('a').prepend(c.find('div.om-icon.big:first'));
c.find('.om-icon.clipart').each(function() {
const cur = $(this);
cur.css('background-image', 'url(' + cur.data('image') + ')')
.click(function() {
- const old = c.find('a .om-icon.clipart');
- c.find('ul li').prepend(old);
- c.find('a').prepend(cur);
+ _setCurrent(c, cur);
});
_initToolBtn(cur.data('mode'), false, Clipart(wb, cur, s));
});
+ _initGroupHandle(c);
}
function _updateZoomPanel() {
const ccount = canvases.length;
diff --git a/openmeetings-web/src/main/webapp/css/raw-wb.css b/openmeetings-web/src/main/webapp/css/raw-wb.css
index 955d368..d826bbf 100644
--- a/openmeetings-web/src/main/webapp/css/raw-wb.css
+++ b/openmeetings-web/src/main/webapp/css/raw-wb.css
@@ -86,9 +86,15 @@
margin: 0;
background-position: 4px !important;
}
+.room.wb.area .tools .dropdown-menu .om-icon.big {
+ float: none;
+}
.room.wb.area .tools .om-icon.big.active {
background-color: whitesmoke;
}
+.room.wb.area .tools .dropdown-menu .om-icon.big.active {
+ border: 1px solid #6b6565;
+}
.room.wb.area .tools .om-icon.big.paint {
background-image: url(images/paintbrush.png);
}