diff --git a/app/assets/javascripts/admin.js b/app/assets/javascripts/admin.js index 8325a2d7fb557ccbcf2813bec4b23fe348317df0..df8c757fe72c91f0f03b673dcf613e00c6a093f4 100644 --- a/app/assets/javascripts/admin.js +++ b/app/assets/javascripts/admin.js @@ -11,6 +11,7 @@ //= require gdpr/cookie_consent //= require trix //= require sortablejs/Sortable +//= require summernote/summernote-bs5 //= require slug/slug //= require cocoon //= require_self diff --git a/app/assets/javascripts/admin/commons/summernote.js b/app/assets/javascripts/admin/commons/summernote.js new file mode 100644 index 0000000000000000000000000000000000000000..913056647a2b97c970221a251d04726388ad83c8 --- /dev/null +++ b/app/assets/javascripts/admin/commons/summernote.js @@ -0,0 +1,101 @@ +/* eslint no-alert: 'off' */ +/*global $, FormData */ +// window.b2bylon.summernote.sendFile = function (file, toSummernote) { +// 'use strict'; +// var data = new FormData(); +// data.append('file', file); +// $.ajax({ +// data: data, +// type: 'POST', +// headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, +// url: '/admin/summernote_blobs', +// cache: false, +// contentType: false, +// processData: false, +// success: function (successData) { +// if (typeof successData.errors !== 'undefined' && successData.errors !== null) { +// return $.each(successData.errors, function (errorKey, messages) { +// return $.each(messages, function (messageKey, message) { +// return window.alert(message); +// }); +// }); +// } +// return toSummernote.summernote('pasteHTML', successData.node); +// } +// }); +// }; +// +// window.b2bylon.summernote.addConfig('pico', { +// toolbar: [ +// ['style', ['bold', 'italic']], +// ['font', ['superscript', 'subscript']], +// ['code', ['codeview']] +// ] +// }); +// +// window.b2bylon.summernote.addConfig('newsletters', { +// toolbar: [ +// ['style', ['bold', 'italic']], +// ['link', ['linkDialogShow', 'unlink']], +// ['code', ['codeview']] +// ] +// }); +// +// window.b2bylon.summernote.addConfig('nano', { +// toolbar: [ +// ['style', ['bold', 'italic']], +// ['font', ['superscript', 'subscript']], +// ['alignment', ['ul']], +// ['code', ['codeview']] +// ] +// }); +// +// window.b2bylon.summernote.addConfig('mini', { +// toolbar: [ +// ['headline', ['style']], +// ['style', ['bold', 'italic']], +// ['font', ['superscript', 'subscript']], +// ['alignment', ['ul', 'ol', 'paragraph']], +// ['insert', ['hr']], +// ['link', ['linkDialogShow', 'unlink']], +// ['code', ['codeview']] +// ], +// styleTags: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'] +// }); +// +// window.b2bylon.summernote.addConfig('full', { +// disableDragAndDrop: false, +// toolbar: [ +// ['headline', ['style']], +// ['style', ['bold', 'italic']], +// ['font', ['superscript', 'subscript']], +// ['alignment', ['ul', 'ol', 'paragraph']], +// ['insert', ['hr']], +// ['link', ['linkDialogShow', 'unlink']], +// ['media', ['picture']], +// ['code', ['codeview']] +// ], +// popover: { +// image: [ +// ['remove', ['removeMedia']] +// ] +// } +// }, 'mini'); +// +// window.b2bylon.summernote.configs.full.callbacks.onImageUpload = function (files) { +// 'use strict'; +// window.b2bylon.summernote.sendFile(files[0], $(this)); +// }; +// +// $.extend($.summernote.lang['en-US'].image, { +// dragImageHere: 'Drag file here', +// dropImage: 'Drop file' +// }); + +$(function () { + 'use strict'; + + $('[data-provider="summernote"]').each(function () { + $(this).summernote(); + }); +}); diff --git a/app/assets/stylesheets/admin.sass b/app/assets/stylesheets/admin.sass index bb3070795a9d36bfdd6469f255ae799e6e1c0708..3f2bc5d2049b988d4af5bcc04a4dd10b1daa0590 100644 --- a/app/assets/stylesheets/admin.sass +++ b/app/assets/stylesheets/admin.sass @@ -3,6 +3,7 @@ @import 'appstack/light' @import 'simple_form_password_with_hints' @import 'simple_form_bs5_file_input' +@import 'summernote-bs5' @import 'cropperjs/dist/cropper' @import 'gdpr/cookie_consent' @import 'commons/*' diff --git a/app/views/admin/communication/website/posts/_form.html.erb b/app/views/admin/communication/website/posts/_form.html.erb index 99427bb40bfaa74d47f3da9e403dd2991452cd5a..41281bd67e2048a8f040ac13c6dc74b65800682e 100644 --- a/app/views/admin/communication/website/posts/_form.html.erb +++ b/app/views/admin/communication/website/posts/_form.html.erb @@ -9,6 +9,7 @@ <%= f.input :title %> <%= f.input :description %> <%= f.input :text, as: :rich_text_area %> + <%= f.input :text_new, as: :summernote %> </div> </div> <div class="card flex-fill w-100">