aboutsummaryrefslogtreecommitdiffstats
path: root/public/admin/view/javascript/summernote/plugin/hello/summernote-ext-hello.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/admin/view/javascript/summernote/plugin/hello/summernote-ext-hello.js')
-rw-r--r--public/admin/view/javascript/summernote/plugin/hello/summernote-ext-hello.js82
1 files changed, 82 insertions, 0 deletions
diff --git a/public/admin/view/javascript/summernote/plugin/hello/summernote-ext-hello.js b/public/admin/view/javascript/summernote/plugin/hello/summernote-ext-hello.js
new file mode 100644
index 0000000..7c6434a
--- /dev/null
+++ b/public/admin/view/javascript/summernote/plugin/hello/summernote-ext-hello.js
@@ -0,0 +1,82 @@
+(function (factory) {
+ /* global define */
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], factory);
+ } else if (typeof module === 'object' && module.exports) {
+ // Node/CommonJS
+ module.exports = factory(require('jquery'));
+ } else {
+ // Browser globals
+ factory(window.jQuery);
+ }
+}(function ($) {
+
+ // Extends plugins for adding hello.
+ // - plugin is external module for customizing.
+ $.extend($.summernote.plugins, {
+ /**
+ * @param {Object} context - context object has status of editor.
+ */
+ 'hello': function (context) {
+ var self = this;
+
+ // ui has renders to build ui elements.
+ // - you can create a button with `ui.button`
+ var ui = $.summernote.ui;
+
+ // add hello button
+ context.memo('button.hello', function () {
+ // create button
+ var button = ui.button({
+ contents: '<i class="fa fa-child"/> Hello',
+ tooltip: 'hello',
+ click: function () {
+ self.$panel.show();
+ self.$panel.hide(500);
+ // invoke insertText method with 'hello' on editor module.
+ context.invoke('editor.insertText', 'hello');
+ }
+ });
+
+ // create jQuery object from button instance.
+ var $hello = button.render();
+ return $hello;
+ });
+
+ // This events will be attached when editor is initialized.
+ this.events = {
+ // This will be called after modules are initialized.
+ 'summernote.init': function (we, e) {
+ console.log('summernote initialized', we, e);
+ },
+ // This will be called when user releases a key on editable.
+ 'summernote.keyup': function (we, e) {
+ console.log('summernote keyup', we, e);
+ }
+ };
+
+ // This method will be called when editor is initialized by $('..').summernote();
+ // You can create elements for plugin
+ this.initialize = function () {
+ this.$panel = $('<div class="hello-panel"/>').css({
+ position: 'absolute',
+ width: 100,
+ height: 100,
+ left: '50%',
+ top: '50%',
+ background: 'red'
+ }).hide();
+
+ this.$panel.appendTo('body');
+ };
+
+ // This methods will be called when editor is destroyed by $('..').summernote('destroy');
+ // You should remove elements on `initialize`.
+ this.destroy = function () {
+ this.$panel.remove();
+ this.$panel = null;
+ };
+ }
+ });
+}));