summernote-webpack
Version:
Super simple WYSIWYG editor
69 lines (55 loc) • 1.74 kB
JavaScript
define(function () {
var Toolbar = function (context) {
var ui = $.summernote.ui;
var $note = context.layoutInfo.note;
var $toolbar = context.layoutInfo.toolbar;
var options = context.options;
this.shouldInitialize = function () {
return !options.airMode;
};
this.initialize = function () {
options.toolbar = options.toolbar || [];
if (!options.toolbar.length) {
$toolbar.hide();
} else {
context.invoke('buttons.build', $toolbar, options.toolbar);
}
if (options.toolbarContainer) {
$toolbar.appendTo(options.toolbarContainer);
}
$note.on('summernote.keyup summernote.mouseup summernote.change', function () {
context.invoke('buttons.updateCurrentStyle');
});
context.invoke('buttons.updateCurrentStyle');
};
this.destroy = function () {
$toolbar.children().remove();
};
this.updateFullscreen = function (isFullscreen) {
ui.toggleBtnActive($toolbar.find('.btn-fullscreen'), isFullscreen);
};
this.updateCodeview = function (isCodeview) {
ui.toggleBtnActive($toolbar.find('.btn-codeview'), isCodeview);
if (isCodeview) {
this.deactivate();
} else {
this.activate();
}
};
this.activate = function (isIncludeCodeview) {
var $btn = $toolbar.find('button');
if (!isIncludeCodeview) {
$btn = $btn.not('.btn-codeview');
}
ui.toggleBtn($btn, true);
};
this.deactivate = function (isIncludeCodeview) {
var $btn = $toolbar.find('button');
if (!isIncludeCodeview) {
$btn = $btn.not('.btn-codeview');
}
ui.toggleBtn($btn, false);
};
};
return Toolbar;
});