From c20ca04bfd8437650dae63bdc06af906d3781e2d Mon Sep 17 00:00:00 2001 From: hackerwins Date: Wed, 9 Sep 2015 22:40:26 +0900 Subject: [PATCH] Recover bs3 codeview. --- src/js/bs3/module/Codeview.js | 66 ++++++++++++----------------------- src/js/bs3/module/Toolbar.js | 8 ++++- src/js/bs3/settings.js | 8 +++-- src/js/bs3/ui.js | 10 +++--- 4 files changed, 39 insertions(+), 53 deletions(-) diff --git a/src/js/bs3/module/Codeview.js b/src/js/bs3/module/Codeview.js index 46f3d96ab..5708f545a 100644 --- a/src/js/bs3/module/Codeview.js +++ b/src/js/bs3/module/Codeview.js @@ -1,6 +1,6 @@ define([ - 'summernote/core/agent', - 'summernote/core/dom' + 'summernote/base/core/agent', + 'summernote/base/core/dom' ], function (agent, dom) { var CodeMirror; @@ -17,61 +17,49 @@ define([ /** * @class Codeview */ - var Codeview = function (handler) { + var Codeview = function (summernote) { + var self = this; + var ui = $.summernote.ui; - this.sync = function (layoutInfo) { - var isCodeview = handler.invoke('codeview.isActivated', layoutInfo); + var $editor = summernote.layoutInfo.editor; + var $editable = summernote.layoutInfo.editable; + var $codable = summernote.layoutInfo.codable; + var options = summernote.options; + + this.sync = function () { + var isCodeview = this.isActivated(); if (isCodeview && agent.hasCodeMirror) { - layoutInfo.codable().data('cmEditor').save(); + $codable.data('cmEditor').save(); } }; /** - * @param {Object} layoutInfo * @return {Boolean} */ - this.isActivated = function (layoutInfo) { - var $editor = layoutInfo.editor(); + this.isActivated = function () { return $editor.hasClass('codeview'); }; /** * toggle codeview - * - * @param {Object} layoutInfo */ - this.toggle = function (layoutInfo) { - if (this.isActivated(layoutInfo)) { - this.deactivate(layoutInfo); + this.toggle = function () { + if (this.isActivated()) { + this.deactivate(); } else { - this.activate(layoutInfo); + this.activate(); } }; /** * activate code view - * - * @param {Object} layoutInfo */ - this.activate = function (layoutInfo) { - var $editor = layoutInfo.editor(), - $toolbar = layoutInfo.toolbar(), - $editable = layoutInfo.editable(), - $codable = layoutInfo.codable(), - $popover = layoutInfo.popover(), - $handle = layoutInfo.handle(); - - var options = $editor.data('options'); - + this.activate = function () { $codable.val(dom.html($editable, options.prettifyHtml)); $codable.height($editable.height()); - handler.invoke('toolbar.updateCodeview', $toolbar, true); - handler.invoke('popover.hide', $popover); - handler.invoke('handle.hide', $handle); - + summernote.invoke('toolbar.updateCodeview', [true]); $editor.addClass('codeview'); - $codable.focus(); // activate CodeMirror as codable @@ -99,14 +87,6 @@ define([ * @param {Object} layoutInfo */ this.deactivate = function (layoutInfo) { - var $holder = layoutInfo.holder(), - $editor = layoutInfo.editor(), - $toolbar = layoutInfo.toolbar(), - $editable = layoutInfo.editable(), - $codable = layoutInfo.codable(); - - var options = $editor.data('options'); - // deactivate CodeMirror as codable if (agent.hasCodeMirror) { var cmEditor = $codable.data('cmEditor'); @@ -122,14 +102,12 @@ define([ $editor.removeClass('codeview'); if (isChange) { - handler.bindCustomEvent( - $holder, $editable.data('callbacks'), 'change' - )($editable.html(), $editable); + summernote.triggerEvent('change', [$editable.html(), $editable]); } $editable.focus(); - handler.invoke('toolbar.updateCodeview', $toolbar, false); + summernote.invoke('toolbar.updateCodeview', [false]); }; }; diff --git a/src/js/bs3/module/Toolbar.js b/src/js/bs3/module/Toolbar.js index 2079b15d7..7e5f3d9c8 100644 --- a/src/js/bs3/module/Toolbar.js +++ b/src/js/bs3/module/Toolbar.js @@ -124,6 +124,10 @@ define([ $toolbar.find('.btn-fullscreen').toggleClass('active', isFullscreen); }; + this.updateCodeview = function (isCodeview) { + $toolbar.find('.btn-codeview').toggleClass('active', isCodeview); + }; + this.initialize = function () { $note.on('summernote.keyup summernote.mouseup summernote.change', function () { self.updateCurrentStyle(); @@ -402,7 +406,9 @@ define([ click: this.createInvokeHandler('fullscreen.toggle') }), ui.button({ - contents: '' + className: 'btn-codeview', + contents: '', + click: this.createInvokeHandler('codeview.toggle') }) ]).render()); diff --git a/src/js/bs3/settings.js b/src/js/bs3/settings.js index ab0f66383..fcfc1d76c 100644 --- a/src/js/bs3/settings.js +++ b/src/js/bs3/settings.js @@ -5,8 +5,9 @@ define([ 'summernote/bs3/module/Statusbar', 'summernote/bs3/module/LinkDialog', 'summernote/bs3/module/ImageDialog', - 'summernote/bs3/module/Fullscreen' -], function (ui, Editor, Toolbar, Statusbar, LinkDialog, ImageDialog, Fullscreen) { + 'summernote/bs3/module/Fullscreen', + 'summernote/bs3/module/Codeview' +], function (ui, Editor, Toolbar, Statusbar, LinkDialog, ImageDialog, Fullscreen, Codeview) { var settings = { version: '@VERSION', ui: ui, @@ -18,7 +19,8 @@ define([ 'statusbar': Statusbar, 'linkDialog': LinkDialog, 'imageDialog': ImageDialog, - 'fullscreen': Fullscreen + 'fullscreen': Fullscreen, + 'codeview': Codeview }, width: null, diff --git a/src/js/bs3/ui.js b/src/js/bs3/ui.js index 36c00f406..2e1f57935 100644 --- a/src/js/bs3/ui.js +++ b/src/js/bs3/ui.js @@ -1,11 +1,11 @@ define([ 'summernote/base/renderer' ], function (renderer) { - var editor = renderer.create('
'); - var toolbar = renderer.create('
'); - var editingArea = renderer.create('
'); - var codable = renderer.create('
'); - var editable = renderer.create('
'); + var editor = renderer.create('
'); + var toolbar = renderer.create('
'); + var editingArea = renderer.create('
'); + var codable = renderer.create('