[UPD] website: update of summernote lib

This commit is contained in:
Christophe Matthieu
2015-01-08 11:01:43 +01:00
parent e089f296d2
commit 1c6eec023d
5 changed files with 69 additions and 12 deletions
@@ -296,13 +296,45 @@ define([
*/
var hPasteClipboardImage = function (event) {
var clipboardData = event.originalEvent.clipboardData;
var layoutInfo = makeLayoutInfo(event.currentTarget || event.target);
var $editable = layoutInfo.editable();
if (!clipboardData || !clipboardData.items || !clipboardData.items.length) {
var callbacks = $editable.data('callbacks');
// only can run if it has onImageUpload method
if (!callbacks.onImageUpload) {
return;
}
// save cursor
editor.saveNode($editable);
editor.saveRange($editable);
$editable.html('');
setTimeout(function () {
var $img = $editable.find('img');
var datauri = $img[0].src;
var data = atob(datauri.split(',')[1]);
var array = new Uint8Array(data.length);
for (var i = 0; i < data.length; i++) {
array[i] = data.charCodeAt(i);
}
var blob = new Blob([array], { type : 'image/png'});
blob.name = 'clipboard.png';
editor.restoreNode($editable);
editor.restoreRange($editable);
insertImages(layoutInfo, [blob]);
editor.afterCommand($editable);
}, 0);
return;
}
var layoutInfo = makeLayoutInfo(event.currentTarget || event.target),
$editable = layoutInfo.editable();
var item = list.head(clipboardData.items);
var isClipboardImage = item.kind === 'file' && item.type.indexOf('image/') !== -1;
@@ -541,10 +573,13 @@ define([
event.preventDefault();
var dataTransfer = event.originalEvent.dataTransfer;
if (dataTransfer && dataTransfer.files) {
var layoutInfo = makeLayoutInfo(event.currentTarget || event.target);
layoutInfo.editable().focus();
var text = dataTransfer.getData('text/plain');
var layoutInfo = makeLayoutInfo(event.currentTarget || event.target);
layoutInfo.editable().focus();
if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
insertImages(layoutInfo, dataTransfer.files);
} else if (text) {
editor.insertText(layoutInfo.editable(), text);
}
}).on('dragover', false); // prevent default dragover event
};
@@ -460,10 +460,12 @@ define([
var body = [];
for (var i in keys) {
body.push(
'<div class="' + keyClass + 'key">' + keys[i].kbd + '</div>' +
'<div class="' + keyClass + 'name">' + keys[i].text + '</div>'
);
if (keys.hasOwnProperty(i)) {
body.push(
'<div class="' + keyClass + 'key">' + keys[i].kbd + '</div>' +
'<div class="' + keyClass + 'name">' + keys[i].text + '</div>'
);
}
}
return '<div class="note-shortcut-row row"><div class="' + keyClass + 'title col-xs-offset-6">' + title + '</div></div>' +
@@ -48,6 +48,15 @@ define([
}
};
this.saveNode = function ($editable) {
// copy child node reference
var copy = [];
for (var key = 0, len = $editable[0].childNodes.length; key < len; key++) {
copy.push($editable[0].childNodes[key]);
}
$editable.data('childNodes', copy);
};
/**
* restore lately range
*
@@ -61,6 +70,13 @@ define([
}
};
this.restoreNode = function ($editable) {
$editable.html('');
var child = $editable.data('childNodes');
for (var index = 0, len = child.length; index < len; index++) {
$editable[0].appendChild(child[index]);
}
};
/**
* current style
*/
@@ -222,8 +222,8 @@ define('summernote/settings', function () {
shapeCircle: 'Shape: Circle',
shapeThumbnail: 'Shape: Thumbnail',
shapeNone: 'Shape: None',
dragImageHere: 'Drag image here',
dropImage: 'Drop image',
dragImageHere: 'Drag image or text here',
dropImage: 'Drop image or Text',
selectFromFiles: 'Select from files',
maximumFileSize: 'Maximum file size',
maximumFileSizeError: 'Maximum file size exceeded.',
@@ -297,6 +297,10 @@
&>div {
display: none; /* BS2's hide pacth. */
}
.form-group { /* overwrite BS's form-horizontal minus margins */
margin-left: 0;
margin-right: 0;
}
.note-modal-form {
margin: 0; /* overwrite BS2's form margin bottom */
}