diff --git a/apps/common/main/lib/util/utils.js b/apps/common/main/lib/util/utils.js index cb43d2b98..8d3dd460a 100644 --- a/apps/common/main/lib/util/utils.js +++ b/apps/common/main/lib/util/utils.js @@ -822,6 +822,30 @@ Common.Utils.lockControls = function(causes, lock, opts, defControls) { }); }; +Common.Utils.injectButtons = function($slots, id, iconCls, caption, lock, split, menu, toggle) { + var btnsArr = createButtonSet(); + id = id || ("id-toolbar-" + iconCls); + $slots.each(function(index, el) { + var _cls = 'btn-toolbar'; + /x-huge/.test(el.className) && (_cls += ' x-huge icon-top'); + + var button = new Common.UI.Button({ + id: id + index, + cls: _cls, + iconCls: iconCls, + caption: caption, + split: split || false, + menu: menu || false, + enableToggle: toggle || false, + lock: lock, + disabled: true + }).render( $slots.eq(index) ); + + btnsArr.add(button); + }); + return btnsArr; +}; + Common.Utils.injectComponents = function ($slots, id, iconCls, caption, lock, split, menu, toggle) { var btnsArr = []; id = id || ("id-toolbar-" + iconCls); diff --git a/apps/documenteditor/main/app/controller/Toolbar.js b/apps/documenteditor/main/app/controller/Toolbar.js index 3300ce1e3..7a6dea2ba 100644 --- a/apps/documenteditor/main/app/controller/Toolbar.js +++ b/apps/documenteditor/main/app/controller/Toolbar.js @@ -2832,22 +2832,7 @@ define([ me.appOptions = config; if ( config.canCoAuthoring && config.canComments ) { - this.btnsComment = createButtonSet(); - var slots = me.toolbar.$el.find('.slot-comment'); - slots.each(function(index, el) { - var _cls = 'btn-toolbar'; - /x-huge/.test(el.className) && (_cls += ' x-huge icon-top'); - - var button = new Common.UI.Button({ - id: 'tlbtn-addcomment-' + index, - cls: _cls, - iconCls: 'btn-menu-comments', - caption: me.toolbar.capBtnComment - }).render( slots.eq(index) ); - - me.btnsComment.add(button); - }); - + this.btnsComment = Common.Utils.injectButtons(this.toolbar.$el.find('.slot-comment'), 'tlbtn-addcomment-', 'btn-menu-comments', this.toolbar.capBtnComment); if ( this.btnsComment.length ) { var _comments = DE.getController('Common.Controllers.Comments').getView(); this.btnsComment.forEach(function (btn) { diff --git a/apps/documenteditor/main/app/view/Toolbar.js b/apps/documenteditor/main/app/view/Toolbar.js index 237dcfbee..441865be0 100644 --- a/apps/documenteditor/main/app/view/Toolbar.js +++ b/apps/documenteditor/main/app/view/Toolbar.js @@ -1319,30 +1319,8 @@ define([ _injectComponent('#slot-img-movebkwd', this.btnImgBackward); _injectComponent('#slot-img-wrapping', this.btnImgWrapping); - +function injectBreakButtons() { - var me = this; - - me.btnsPageBreak = createButtonSet(); - - var $slots = $host.find('.btn-slot.btn-pagebreak'); - $slots.each(function(index, el) { - var _cls = 'btn-toolbar'; - /x-huge/.test(el.className) && (_cls += ' x-huge icon-top'); - - var button = new Common.UI.Button({ - cls: _cls, - iconCls: 'btn-pagebreak', - caption: me.capBtnInsPagebreak, - split: true, - menu: true - }).render( $slots.eq(index) ); - - me.btnsPageBreak.add(button); - }); - me.btnsPageBreak.setDisabled(true); - - Array.prototype.push.apply(me.paragraphControls, me.btnsPageBreak); - }.call(this); + this.btnsPageBreak = Common.Utils.injectButtons($host.find('.btn-slot.btn-pagebreak'), '', 'btn-pagebreak', this.capBtnInsPagebreak, undefined, true, true); + Array.prototype.push.apply(this.paragraphControls, this.btnsPageBreak); return $host; }, diff --git a/apps/presentationeditor/main/app/controller/Toolbar.js b/apps/presentationeditor/main/app/controller/Toolbar.js index a0583e043..00504db9f 100644 --- a/apps/presentationeditor/main/app/controller/Toolbar.js +++ b/apps/presentationeditor/main/app/controller/Toolbar.js @@ -2052,7 +2052,7 @@ define([ this.btnsComment = []; if ( config.canCoAuthoring && config.canComments ) { var _set = PE.enumLock; - me.btnsComment = Common.Utils.injectComponents(me.toolbar.$el.find('.slot-comment'), 'tlbtn-addcomment-', 'btn-menu-comments', me.toolbar.capBtnComment, [_set.lostConnect, _set.noSlides]); + this.btnsComment = Common.Utils.injectButtons(this.toolbar.$el.find('.slot-comment'), 'tlbtn-addcomment-', 'btn-menu-comments', me.toolbar.capBtnComment, [_set.lostConnect, _set.noSlides]); if ( this.btnsComment.length ) { var _comments = PE.getController('Common.Controllers.Comments').getView(); diff --git a/apps/presentationeditor/main/app/view/Toolbar.js b/apps/presentationeditor/main/app/view/Toolbar.js index 8d8e5f850..85648a5a6 100644 --- a/apps/presentationeditor/main/app/view/Toolbar.js +++ b/apps/presentationeditor/main/app/view/Toolbar.js @@ -926,78 +926,20 @@ define([ _injectComponent('#slot-btn-slidesize', this.btnSlideSize); _injectComponent('#slot-field-styles', this.listTheme); - function _injectBtns(opts) { - var array = createButtonSet(); - var $slots = $host.find(opts.slot); - var id = opts.btnconfig.id; - $slots.each(function(index, el) { - if ( !!id ) opts.btnconfig.id = id + index; + this.btnsInsertImage = Common.Utils.injectButtons($host.find('.slot-insertimg'), 'tlbtn-insertimage-', 'btn-insertimage', this.capInsertImage, + [PE.enumLock.slideDeleted, PE.enumLock.lostConnect, PE.enumLock.noSlides, PE.enumLock.disableOnStart], false, true); + this.btnsInsertText = Common.Utils.injectButtons($host.find('.slot-instext'), 'tlbtn-inserttext-', 'btn-text', this.capInsertText, + [PE.enumLock.slideDeleted, PE.enumLock.lostConnect, PE.enumLock.noSlides, PE.enumLock.disableOnStart], false, false, true); + this.btnsInsertShape = Common.Utils.injectButtons($host.find('.slot-insertshape'), 'tlbtn-insertshape-', 'btn-insertshape', this.capInsertShape, + [PE.enumLock.slideDeleted, PE.enumLock.lostConnect, PE.enumLock.noSlides, PE.enumLock.disableOnStart], false, true, true); + this.btnsAddSlide = Common.Utils.injectButtons($host.find('.slot-addslide'), 'tlbtn-addslide-', 'btn-addslide', this.capAddSlide, + [PE.enumLock.menuFileOpen, PE.enumLock.lostConnect, PE.enumLock.disableOnStart], true, true); - var button = new Common.UI.Button(opts.btnconfig); - button.render( $slots.eq(index) ); - - array.add(button); - }); - - return array; - } - - var me = this; - me.btnsInsertImage = _injectBtns({ - slot: '.slot-insertimg', - btnconfig: { - id : 'tlbtn-insertimage-', - cls : 'btn-toolbar x-huge icon-top', - iconCls : 'btn-insertimage', - caption : me.capInsertImage, - lock : [PE.enumLock.slideDeleted, PE.enumLock.lostConnect, PE.enumLock.noSlides, PE.enumLock.disableOnStart], - menu : true - } - }); - - me.btnsInsertText = _injectBtns({ - slot: '.slot-instext', - btnconfig: { - id : 'tlbtn-inserttext-', - cls : 'btn-toolbar x-huge icon-top', - iconCls : 'btn-text', - caption : me.capInsertText, - lock : [PE.enumLock.slideDeleted, PE.enumLock.lostConnect, PE.enumLock.noSlides, PE.enumLock.disableOnStart], - enableToggle: true - } - }); - - me.btnsInsertShape = _injectBtns({ - slot: '.slot-insertshape', - btnconfig: { - id : 'tlbtn-insertshape-', - cls : 'btn-toolbar x-huge icon-top', - iconCls : 'btn-insertshape', - caption : me.capInsertShape, - lock : [PE.enumLock.slideDeleted, PE.enumLock.lostConnect, PE.enumLock.noSlides, PE.enumLock.disableOnStart], - enableToggle: true, - menu : true - } - }); - - me.btnsAddSlide = _injectBtns({ - slot: '.slot-addslide', - btnconfig: { - id : 'tlbtn-addslide-', - cls : 'btn-toolbar x-huge icon-top', - iconCls : 'btn-addslide', - split : true, - caption : me.capAddSlide, - lock : [PE.enumLock.menuFileOpen, PE.enumLock.lostConnect, PE.enumLock.disableOnStart], - menu : true - } - }); - - var created = me.btnsInsertImage.concat(me.btnsInsertText, me.btnsInsertShape, me.btnsAddSlide); + var created = this.btnsInsertImage.concat(this.btnsInsertText, this.btnsInsertShape, this.btnsAddSlide); this.lockToolbar(PE.enumLock.disableOnStart, true, {array: created}); - Array.prototype.push.apply(me.slideOnlyControls, created); - Array.prototype.push.apply(me.lockControls, created); + Array.prototype.push.apply(this.slideOnlyControls, created); + Array.prototype.push.apply(this.lockControls, created); return $host; }, diff --git a/apps/spreadsheeteditor/main/app/controller/Toolbar.js b/apps/spreadsheeteditor/main/app/controller/Toolbar.js index ae86c1cbe..0381898ca 100644 --- a/apps/spreadsheeteditor/main/app/controller/Toolbar.js +++ b/apps/spreadsheeteditor/main/app/controller/Toolbar.js @@ -3147,7 +3147,7 @@ define([ this.btnsComment = []; if ( config.canCoAuthoring && config.canComments ) { var _set = SSE.enumLock; - me.btnsComment = Common.Utils.injectComponents(me.toolbar.$el.find('.slot-comment'), 'tlbtn-addcomment-', 'btn-menu-comments', me.toolbar.capBtnComment, [_set.lostConnect, _set.commentLock]); + this.btnsComment = Common.Utils.injectButtons(this.toolbar.$el.find('.slot-comment'), 'tlbtn-addcomment-', 'btn-menu-comments', this.toolbar.capBtnComment, [_set.lostConnect, _set.commentLock]); if ( this.btnsComment.length ) { var _comments = SSE.getController('Common.Controllers.Comments').getView();