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 0b5ea46 [OPENMEETINGS-1934] delete icon is added
0b5ea46 is described below
commit 0b5ea464ba5592a6bfd75edd724ce93fbe1be083
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Oct 23 14:14:03 2018 +0700
[OPENMEETINGS-1934] delete icon is added
---
.../apache/openmeetings/web/room/wb/raw-wb-area.js | 61 ++++++++++++++++-----
.../openmeetings/web/room/wb/raw-wb-board.js | 11 +---
.../src/main/webapp/images/icon-delete-24px.png | Bin 0 -> 706 bytes
3 files changed, 48 insertions(+), 24 deletions(-)
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
index f404c35..2d7e537 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/raw-wb-area.js
@@ -2,9 +2,53 @@
var PRESENTER = 'presenter';
var WHITEBOARD = 'whiteBoard';
var DrawWbArea = function() {
- const self = BaseWbArea();;
+ const self = BaseWbArea()
+ , arrowImg = new Image(), delImg = new Image();
+ arrowImg.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAICAYAAADqSp8ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAygAAAMoBawMUsgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFsSURBVCiRrdI/SEJRFMfx37lPGxqKoGwxKJoaImhpCf8NEUFL9WgLUrPnIyEIa6reVEPQn0GeWDS4NDQETQ2JT4waojUoHBqCoJKWINB3720yIhGl+q7ncj5nuIQ6jWiaq1xmU4IwBACQ5GCAU5D8IECRAkUQzt8V++wmlSrX20e1BoFIrFdwHidIIQhH5O68sgzD/vnOF4m0QyijJGgMQIHZtJdJJ4oNg6qqNr20dKwBaOWKvZFPpZ7qXV3JH4wNSMbjJHGZ7XIlYRiiFkiBsL4CphwLwbck5E7uwMw3ClXD2iRIm
[...]
+ delImg.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAAGgrv1cAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADNQTFRFAAAA4j094j094j094j094j094j094j094j094j094j094j094j094j094j094j094j09hIdAxgAAABB0Uk5TABAgMEBQYHCAj5+vv8/f7yMagooAAADXSURBVBgZBcEBYoQgDACw1DJETmz//9olwGn6AAAbBxoiSACTpCTtJd02smg+MPoef7UgnpPQeVM42Vg02kl+qAPeE2B19wYAgO83xi6ggRMoBfuvsUSxp+vPjag98VqwC8oI9ozC5rMnUVbw5ITID94Fo4D4umsAwN/+urvfOwDg6d8FiFUnALPnkwCs6zvg+UKcSmD3ZBWyL4hTye4J3s16AXG6J+D+uD/A7vtUAut
[...]
let container, area, tabs, scroll, role = NONE, _inited = false;
+ // Fabric overrides (should be kept up-to-date on fabric.js updates)
+ if ('function' !== typeof(window.originalDrawControl)) {
+ window.originalDrawControl =
fabric.Object.prototype._drawControl;
+ window.originalGetRotatedCornerCursor =
fabric.Canvas.prototype._getRotatedCornerCursor;
+ window.originalGetActionFromCorner =
fabric.Canvas.prototype._getActionFromCorner;
+ fabric.Object.prototype._drawControl = function(control, ctx,
methodName, left, top, styleOverride) {
+ switch (control) {
+ case 'mtr':
+ {
+ const x = left + (this.cornerSize -
arrowImg.width) / 2
+ , y = top + (this.cornerSize -
arrowImg.height) / 2;
+ ctx.drawImage(arrowImg, x, y);
+ }
+ break;
+ case 'tr':
+ {
+ const x = left + (this.cornerSize -
delImg.width) / 2
+ , y = top + (this.cornerSize -
delImg.height) / 2;
+ ctx.drawImage(delImg, x, y);
+ }
+ break;
+ default:
+ window.originalDrawControl.call(this,
control, ctx, methodName, left, top, styleOverride);
+ break;
+ }
+ };
+ fabric.Canvas.prototype._getRotatedCornerCursor =
function(corner, target, e) {
+ if (role === PRESENTER && 'tr' === corner) {
+ return 'pointer';
+ }
+ return window.originalGetRotatedCornerCursor.call(this,
corner, target, e);
+ };
+ fabric.Canvas.prototype._getActionFromCorner = function(target,
corner, e) {
+ if (role === PRESENTER && 'tr' === corner) {
+ _performDelete([target]);
+ return 'none';
+ }
+ return window.originalGetActionFromCorner.call(this,
target, corner, e);
+ };
+ }
+
function refreshTabs() {
tabs.tabs('refresh').find('ul').removeClass('ui-corner-all').removeClass('ui-widget-header');
}
@@ -18,13 +62,13 @@ var DrawWbArea = function() {
}
return null;
}
- function _performDelete() {
+ function _performDelete(objects) {
const wb = getActive().data()
, canvas = wb.getCanvas();
if (role !== PRESENTER || !canvas) {
return true;
}
- const arr = [], objs = canvas.getActiveObjects();
+ const arr = [], objs = objects || canvas.getActiveObjects();
for (let i = 0; i < objs.length; ++i) {
arr.push({
uid: objs[i].uid
@@ -349,14 +393,3 @@ var DrawWbArea = function() {
self.updateAreaClass = function() {};
return self;
};
-if ('function' !== window.originalDrawControl) {
- window.originalDrawControl = fabric.Object.prototype._drawControl;
- fabric.Object.prototype._drawControl = function(control, ctx,
methodName, left, top) {
- const size = this.cornerSize;
- if (this.canvas.controlCallback && 'function' ===
typeof(this.canvas.controlCallback[control])) {
- this.canvas.controlCallback[control](ctx, left, top,
size);
- } else {
- window.originalDrawControl.call(this, control, ctx,
methodName, left, top);
- }
- };
-}
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 7561dc1..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
@@ -2,9 +2,7 @@
var Wb = function() {
const ACTIVE = 'active', BUMPER = 100, wb = {id: -1, name: ''},
canvases = []
, area = $('.room.wb.area .wb-area .tabs.ui-tabs'), bar =
area.find('.wb-tabbar')
- , extraProps = ['uid', 'fileId', 'fileType', 'count', 'slide',
'omType', '_src', 'formula']
- , arrowImg = new Image();
- arrowImg.src =
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAICAYAAADqSp8ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAygAAAMoBawMUsgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFsSURBVCiRrdI/SEJRFMfx37lPGxqKoGwxKJoaImhpCf8NEUFL9WgLUrPnIyEIa6reVEPQn0GeWDS4NDQETQ2JT4waojUoHBqCoJKWINB3720yIhGl+q7ncj5nuIQ6jWiaq1xmU4IwBACQ5GCAU5D8IECRAkUQzt8V++wmlSrX20e1BoFIrFdwHidIIQhH5O68sgzD/vnOF4m0QyijJGgMQIHZtJdJJ4oNg6qqNr20dKwBaOWKvZFPpZ7qXV3JH4wNSMbjJHGZ7XIlYRiiFkiBsL4CphwLwbck5E7uwMw3ClXD2iRIm
[...]
+ , extraProps = ['uid', 'fileId', 'fileType', 'count', 'slide',
'omType', '_src', 'formula'];
let a, t, z, s, f, mode, slide = 0, width = 0, height = 0
, zoom = 1., zoomMode = 'pageWidth', role = null;
@@ -648,13 +646,6 @@ var Wb = function() {
a.find('.canvases').append(c);
const canvas = new fabric.Canvas(c.attr('id'), {
preserveObjectStacking: true
- , controlCallback: {
- mtr: function(ctx, left, top, size) {
- const x = left + (size -
arrowImg.width) / 2
- , y = top + (size -
arrowImg.height) / 2;
- ctx.drawImage(arrowImg, x, y);
- }
- }
});
canvas.wbId = wb.id;
canvas.slide = sl;
diff --git a/openmeetings-web/src/main/webapp/images/icon-delete-24px.png
b/openmeetings-web/src/main/webapp/images/icon-delete-24px.png
new file mode 100644
index 0000000..051b195
Binary files /dev/null and
b/openmeetings-web/src/main/webapp/images/icon-delete-24px.png differ