| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- (function ($) {
- 'use strict';
- var defaultOptions = {
- minSize: 32,
- step: 4
- };
- var preventDefault = function (ev) {
- return ev.preventDefault();
- };
- $.extend(true, $.trumbowyg, {
- plugins: {
- resizimg: {
- init: function (trumbowyg) {
- trumbowyg.o.plugins.resizimg = $.extend(true, {},
- defaultOptions,
- trumbowyg.o.plugins.resizimg || {},
- {
- resizable: {
- resizeWidth: false,
- onDragStart: function (ev, $el) {
- var opt = trumbowyg.o.plugins.resizimg;
- var x = ev.pageX - $el.offset().left;
- var y = ev.pageY - $el.offset().top;
- if (x < $el.width() - opt.minSize || y < $el.height() - opt.minSize) {
- return false;
- }
- },
- onDrag: function (ev, $el, newWidth, newHeight) {
- var opt = trumbowyg.o.plugins.resizimg;
- if (newHeight < opt.minSize) {
- newHeight = opt.minSize;
- }
- newHeight -= newHeight % opt.step;
- $el.height(newHeight);
- return false;
- },
- onDragEnd: function () {
- trumbowyg.$c.trigger('tbwchange');
- }
- }
- }
- );
- function initResizable() {
- trumbowyg.$ed.find('img:not(.resizable)')
- .resizable(trumbowyg.o.plugins.resizimg.resizable)
- .on('mousedown', preventDefault);
- }
- function destroyResizable() {
- trumbowyg.$ed.find('img.resizable')
- .resizable('destroy')
- .off('mousedown', preventDefault);
- trumbowyg.syncTextarea();
- }
- trumbowyg.$c.on('tbwinit', initResizable);
- trumbowyg.$c.on('tbwfocus', initResizable);
- trumbowyg.$c.on('tbwchange', initResizable);
- trumbowyg.$c.on('tbwblur', destroyResizable);
- trumbowyg.$c.on('tbwclose', destroyResizable);
- }
- }
- }
- });
- })(jQuery);
|