Merge pull request #2941 from netchampfaris/summernote-fixes

Summernote fixes
This commit is contained in:
Nabin Hait 2017-03-28 13:56:08 +05:30 committed by GitHub
commit 13fa7c8a69
2 changed files with 45 additions and 0 deletions

View file

@ -1581,6 +1581,7 @@ frappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({
this.has_input = true;
this.make_editor();
this.hide_elements_on_mobile();
this.setup_drag_drop();
},
make_editor: function() {
var me = this;
@ -1611,6 +1612,7 @@ frappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({
'CMD+ENTER': ''
}
},
prettifyHtml: true,
callbacks: {
onChange: function(value) {
me.parse_validate_and_set_in_model(value);
@ -1676,6 +1678,40 @@ frappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({
// to fix <p> on enter
this.set_input('<div><br></div>');
},
setup_drag_drop: function() {
this.note_editor.on('dragenter dragover', false)
.on('drop', function(e) {
var dataTransfer = e.originalEvent.dataTransfer;
if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
me.note_editor.focus();
var files = [].slice.call(dataTransfer.files);
files.forEach(file => {
me.get_image(file, (url) => {
me.editor.summernote('insertImage', url, file.name);
});
});
}
e.preventDefault();
e.stopPropagation();
});
},
get_image: function (fileobj, callback) {
var freader = new FileReader(),
me = this;
freader.onload = function() {
var dataurl = freader.result;
// add filename to dataurl
var parts = dataurl.split(",");
parts[0] += ";filename=" + fileobj.name;
dataurl = parts[0] + ',' + parts[1];
callback(dataurl);
}
freader.readAsDataURL(fileobj);
},
hide_elements_on_mobile: function() {
this.note_editor.find('.note-btn-underline,\
.note-btn-italic, .note-fontsize,\

View file

@ -4771,6 +4771,15 @@
$editor.addClass('codeview');
$codable.focus();
$codable.on('keyup', function () {
var value = $codable.val();
var isChange = $editable.html() !== value;
if (isChange) {
context.triggerEvent('change', value, $editable);
}
});
// activate CodeMirror as codable
if (agent.hasCodeMirror) {
var cmEditor = CodeMirror.fromTextArea($codable[0], options.codemirror);