add upload-image toolbar

pull/728/head
ruesin 5 years ago
parent 170c350594
commit 93f0d7a1ce

@ -25,6 +25,7 @@ var bindings = {
"toggleHeadingSmaller": toggleHeadingSmaller,
"toggleHeadingBigger": toggleHeadingBigger,
"drawImage": drawImage,
"uploadImage": uploadImage,
"toggleBlockquote": toggleBlockquote,
"toggleOrderedList": toggleOrderedList,
"toggleUnorderedList": toggleUnorderedList,
@ -644,6 +645,59 @@ function drawImage(editor) {
_replaceSelection(cm, stat.image, options.insertTexts.image, url);
}
/**
* Action for upload an img.
*
*/
function uploadImage(editor) {
var _input_id = "simplemde-editor-upload-image-input-id";
var _history = document.getElementById(_input_id);
if(_history) {
editor.options.element.parentNode.removeChild(_history);
}
var _html = document.createElement("input");
_html.setAttribute("type", "file");
_html.setAttribute("accept", "image/gif,image/jpeg,image/jpg,image/png,image/svg");
_html.setAttribute("id", _input_id);
_html.setAttribute("style", "display:none");
editor.options.element.parentNode.appendChild(_html);
var _input = document.getElementById(_input_id);
_input.onchange = function() {
var url = editor.options.uploadUrl || "/upload";
var file = _input.files[0];
var formData = new FormData();
formData.append("image", file);
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", url, true);
xmlhttp.send(formData);
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var res = JSON.parse(xmlhttp.responseText);
if(res.url) {
editor.codemirror.replaceSelection("![" + (res.name || file.name) + "](" + res.url + ")");
}
}
};
editor.options.element.parentNode.removeChild(_input);
};
if(document.all) {
_input.click();
} else {
var e = document.createEvent("MouseEvents");
e.initEvent("click", false, true);
_input.dispatchEvent(e);
}
}
/**
* Action for drawing a table.
*/
@ -1177,6 +1231,12 @@ var toolbarBuiltInButtons = {
title: "Insert Image",
default: true
},
"upload-image": {
name: "upload-image",
action: uploadImage,
className: "fa fa-file-image-o",
title: "Upload Image"
},
"table": {
name: "table",
action: drawTable,
@ -1894,6 +1954,7 @@ SimpleMDE.toggleOrderedList = toggleOrderedList;
SimpleMDE.cleanBlock = cleanBlock;
SimpleMDE.drawLink = drawLink;
SimpleMDE.drawImage = drawImage;
SimpleMDE.uploadImage = uploadImage;
SimpleMDE.drawTable = drawTable;
SimpleMDE.drawHorizontalRule = drawHorizontalRule;
SimpleMDE.undo = undo;
@ -1950,6 +2011,9 @@ SimpleMDE.prototype.drawLink = function() {
SimpleMDE.prototype.drawImage = function() {
drawImage(this);
};
SimpleMDE.prototype.uploadImage = function() {
uploadImage(this);
};
SimpleMDE.prototype.drawTable = function() {
drawTable(this);
};

Loading…
Cancel
Save