1 parent
7e17c68dba
commit
b0be7a14d2
5 files changed
+82
-33
No files matched your search
@@ -72,7 +72,7 @@ define('attachment_upload', ['jquery.ui.widget', 'fileupload'], function(){
|
||||
return;
|
||||
}
|
||||
|
||||
var tpl = $('<div class="alert alert-info"><img class="loader" src="/tinymce/plugins/leaui_image/public/images/ajax-loader.gif"> <a class="close" data-dismiss="alert">×</a></div>');
|
||||
var tpl = $('<div class="alert alert-info"><img class="loader" src="/images/ajax-loader.gif"> <a class="close" data-dismiss="alert">×</a></div>');
|
||||
|
||||
// Append the file name and file size
|
||||
tpl.append(data.files[0].name + ' <small>[<i>' + formatFileSize(data.files[0].size) + '</i>]</small>');
|
||||
|
||||
@@ -2,6 +2,18 @@
|
||||
// drag image to editor
|
||||
var urlPrefix = UrlPrefix; // window.location.protocol + "//" + window.location.host;
|
||||
define('editor_drop_paste', ['jquery.ui.widget', 'fileupload'], function() {
|
||||
|
||||
// 在toggle成pre或ace时
|
||||
// 最后没有元素, 或者元素不是p, 则在最后插入之
|
||||
function insertPIfNotExists() {
|
||||
var children = $('#editorContent').children();
|
||||
var lastChild = children && children.length > 0 ? children[children.length - 1] : null;
|
||||
if (!lastChild || lastChild.tagName != 'P') {
|
||||
$('#editorContent').append('<p><br data-mce-bogus="1"></p>');
|
||||
}
|
||||
}
|
||||
|
||||
// 粘贴图片的进度控制
|
||||
function Process(editor) {
|
||||
var id = '__mcenew' + (new Date()).getTime();
|
||||
var str = '<div contenteditable="false" id="' + id + '" class="leanote-image-container">' +
|
||||
@@ -13,7 +25,10 @@ define('editor_drop_paste', ['jquery.ui.widget', 'fileupload'], function(){
|
||||
'</div>' +
|
||||
'</div>';
|
||||
this.containerStr = str;
|
||||
|
||||
editor.insertContent(str);
|
||||
insertPIfNotExists();
|
||||
|
||||
var container = $('#' + id);
|
||||
this.container = container;
|
||||
this.id = id;
|
||||
@@ -111,7 +126,7 @@ define('editor_drop_paste', ['jquery.ui.widget', 'fileupload'], function(){
|
||||
ajaxPost("/file/copyImage", {userId: UserInfo.UserId, fileId: fileId, toUserId: curNote.UserId}, function(re) {
|
||||
if(reIsOk(re) && re.Id) {
|
||||
var urlPrefix = window.location.protocol + "//" + window.location.host;
|
||||
data.src = urlPrefix + "/file/outputImage?fileId=" + re.Id;
|
||||
data.src = urlPrefix + "/api/file/getImage?fileId=" + re.Id;
|
||||
}
|
||||
renderImage(data);
|
||||
});
|
||||
@@ -147,7 +162,7 @@ define('editor_drop_paste', ['jquery.ui.widget', 'fileupload'], function(){
|
||||
// This function is called when a file is added to the queue;
|
||||
// either via the browse button, or via drag/drop:
|
||||
add: function(e, data) {
|
||||
var tpl = $('<li><div class="alert alert-info"><img class="loader" src="/public/album/images/ajax-loader.gif"> <a class="close" data-dismiss="alert">×</a></div></li>');
|
||||
var tpl = $('<li><div class="alert alert-info"><img class="loader" src="/images/ajax-loader.gif"> <a class="close" data-dismiss="alert">×</a></div></li>');
|
||||
|
||||
// Append the file name and file size
|
||||
tpl.find('div').append(data.files[0].name + ' <small>[<i>' + formatFileSize(data.files[0].size) + '</i>]</small>');
|
||||
@@ -165,7 +180,7 @@ define('editor_drop_paste', ['jquery.ui.widget', 'fileupload'], function(){
|
||||
if (data.result.Ok == true) {
|
||||
data.context.remove();
|
||||
// life
|
||||
var data2 = {src: urlPrefix + "/file/outputImage?fileId=" + data.result.Id}
|
||||
var data2 = {src: urlPrefix + "/api/file/getImage?fileId=" + data.result.Id}
|
||||
insertImage(data2);
|
||||
} else {
|
||||
data.context.empty();
|
||||
@@ -355,7 +370,7 @@ define('editor_drop_paste', ['jquery.ui.widget', 'fileupload'], function(){
|
||||
}
|
||||
// 这里, 如果图片宽度过大, 这里设置成500px
|
||||
var urlPrefix = UrlPrefix; // window.location.protocol + "//" + window.location.host;
|
||||
var src = urlPrefix + "/file/outputImage?fileId=" + re.Id;
|
||||
var src = urlPrefix + "/api/file/getImage?fileId=" + re.Id;
|
||||
getImageSize(src, function(wh) {
|
||||
// life 4/25
|
||||
if(wh && wh.width) {
|
||||
@@ -379,7 +394,7 @@ define('editor_drop_paste', ['jquery.ui.widget', 'fileupload'], function(){
|
||||
// 这里, 如果图片宽度过大, 这里设置成500px
|
||||
var re = data.result;
|
||||
var urlPrefix = UrlPrefix; // window.location.protocol + "//" + window.location.host;
|
||||
var src = urlPrefix + "/file/outputImage?fileId=" + re.Id;
|
||||
var src = urlPrefix + "/api/file/getImage?fileId=" + re.Id;
|
||||
|
||||
if(curNote && !curNote.IsMarkdown) {
|
||||
data.process.replace(src);
|
||||
|
||||
@@ -341,7 +341,31 @@ define("tinymce/pasteplugin/Clipboard", [
|
||||
document.body.appendChild(img);
|
||||
}
|
||||
|
||||
// 是否有图片的粘贴, 有则删除paste bin
|
||||
// 因为paste bin隐藏不见了, 如果不删除, 则editor_drop_paste的图片就会在这个bin下
|
||||
// 而且, paste bin最后会删除, 导致图片不能显示
|
||||
function hasImage(event) {
|
||||
var items;
|
||||
if (event.clipboardData) {
|
||||
items = event.clipboardData.items;
|
||||
}
|
||||
else if(event.originalEvent && event.originalEvent.clipboardData) {
|
||||
items = event.originalEvent.clipboardData;
|
||||
}
|
||||
if (!items) {
|
||||
return false;
|
||||
}
|
||||
// find pasted image among pasted items
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
if (items[i].type.indexOf("image") === 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 上传图片
|
||||
// 已过时, 不用, pasteImage在editor_drop_paste.js中用
|
||||
function pasteImage(event) {
|
||||
// use event.originalEvent.clipboard for newer chrome versions
|
||||
var items = (event.clipboardData || event.originalEvent.clipboardData).items; // 可能有多个file, 找到属于图片的file
|
||||
@@ -406,6 +430,12 @@ define("tinymce/pasteplugin/Clipboard", [
|
||||
|
||||
editor.on('paste', function(e) {
|
||||
if(inAcePrevent()) {
|
||||
removePasteBin();
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasImage(e)) {
|
||||
removePasteBin();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -459,21 +489,8 @@ define("tinymce/pasteplugin/Clipboard", [
|
||||
pasteHtml(html, clipboardContent['text/plain']);
|
||||
}
|
||||
}, 0);
|
||||
|
||||
//-----------
|
||||
// paste image
|
||||
try {
|
||||
/*
|
||||
if(pasteImage(e)) {
|
||||
return;
|
||||
}
|
||||
*/
|
||||
} catch(e) {};
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
self.pasteHtml = pasteHtml;
|
||||
self.pasteText = pasteText;
|
||||
};
|
||||
|
||||
@@ -526,7 +526,31 @@ define("tinymce/pasteplugin/Clipboard", [
|
||||
document.body.appendChild(img);
|
||||
}
|
||||
|
||||
// 是否有图片的粘贴, 有则删除paste bin
|
||||
// 因为paste bin隐藏不见了, 如果不删除, 则editor_drop_paste的图片就会在这个bin下
|
||||
// 而且, paste bin最后会删除, 导致图片不能显示
|
||||
function hasImage(event) {
|
||||
var items;
|
||||
if (event.clipboardData) {
|
||||
items = event.clipboardData.items;
|
||||
}
|
||||
else if(event.originalEvent && event.originalEvent.clipboardData) {
|
||||
items = event.originalEvent.clipboardData;
|
||||
}
|
||||
if (!items) {
|
||||
return false;
|
||||
}
|
||||
// find pasted image among pasted items
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
if (items[i].type.indexOf("image") === 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// 上传图片
|
||||
// 已过时, 不用, pasteImage在editor_drop_paste.js中用
|
||||
function pasteImage(event) {
|
||||
// use event.originalEvent.clipboard for newer chrome versions
|
||||
var items = (event.clipboardData || event.originalEvent.clipboardData).items; // 可能有多个file, 找到属于图片的file
|
||||
@@ -591,6 +615,12 @@ define("tinymce/pasteplugin/Clipboard", [
|
||||
|
||||
editor.on('paste', function(e) {
|
||||
if(inAcePrevent()) {
|
||||
removePasteBin();
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasImage(e)) {
|
||||
removePasteBin();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -644,21 +674,8 @@ define("tinymce/pasteplugin/Clipboard", [
|
||||
pasteHtml(html, clipboardContent['text/plain']);
|
||||
}
|
||||
}, 0);
|
||||
|
||||
//-----------
|
||||
// paste image
|
||||
try {
|
||||
/*
|
||||
if(pasteImage(e)) {
|
||||
return;
|
||||
}
|
||||
*/
|
||||
} catch(e) {};
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
self.pasteHtml = pasteHtml;
|
||||
self.pasteText = pasteText;
|
||||
};
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
!function(a,b){"use strict";function c(a,b){for(var c,d=[],f=0;f<a.length;++f){if(c=g[a[f]]||e(a[f]),!c)throw"module definition dependecy not found: "+a[f];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){g[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}function f(c){for(var d=0;d<c.length;d++){for(var e=a,f=c[d],h=f.split(/[.\/]/),i=0;i<h.length-1;++i)e[h[i]]===b&&(e[h[i]]={}),e=e[h[i]];e[h[h.length-1]]=g[f]}}var g={};d("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(a,b,c){function d(b,c){return a.each(c,function(a){b=a.constructor==RegExp?b.replace(a,""):b.replace(a[0],a[1])}),b}function e(d){function e(a){var b=a.name,c=a;if("br"===b)return void(h+="\n");if(i[b]&&(h+=" "),j[b])return void(h+=" ");if(3==a.type&&(h+=a.value),!a.shortEnded&&(a=a.firstChild))do e(a);while(a=a.next);k[b]&&c.next&&(h+="\n","p"==b&&(h+="\n"))}var f=new c,g=new b({},f),h="",i=f.getShortEndedElements(),j=a.makeMap("script noscript style textarea video audio iframe object"," "),k=f.getBlockElements();return e(g.parse(d)),h}return{filter:d,innerText:e}}),d("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/util/VK","tinymce/pasteplugin/Utils"],function(a,b,c){return function(d){function e(a,b){ajaxPost("/file/copyHttpImage",{src:a},function(a){if(reIsOk(a)){var c=urlPrefix+"/file/outputImage?fileId="+a.Id,e=d.dom;for(var f in b){var g=b[f],h=e.get(g);e.setAttrib(h,"src",c)}}})}function f(a,b){var c,f=d.dom;if(d.settings.paste_data_images||(a=a.replace(/<img[^>]+src=\"data:image[^>]+>/g,"")),c=d.fire("BeforePastePreProcess",{content:a}),c=d.fire("PastePreProcess",c),a=c.content,!c.isDefaultPrevented()){if(d.hasEventListeners("PastePostProcess")&&!c.isDefaultPrevented()){var g=f.add(d.getBody(),"div",{style:"display:none"},a);c=d.fire("PastePostProcess",{node:g}),f.remove(g),a=c.node.innerHTML}if(!c.isDefaultPrevented()){var h=d.selection.getNode();if("PRE"==h.nodeName){if(!b)try{b=$(a).text()}catch(i){}b=b.replace(/</g,"<"),b=b.replace(/>/g,">"),d.insertRawContent(b)}else if(p.copyImage){var j=UrlPrefix,k={},l=(new Date).getTime();try{for(var m=$("<div>"+a+"</div>"),n=m.find("img"),o=0;o<n.length;++o){var q=n.eq(o),r=q.attr("src");if(-1==r.indexOf(j)){l++;var s="__LEANOTE_IMAGE_"+l;q.attr("id",s),k[r]?k[r].push(s):k[r]=[s]}}d.insertContent(m.html());for(var r in k){var t=k[r];e(r,t)}}catch(i){d.insertContent(a)}}else d.insertContent(a)}}}function g(a){var b=a;a=d.dom.encode(a).replace(/\r\n/g,"\n");var e,g=d.dom.getParent(d.selection.getStart(),d.dom.isBlock),h=d.settings.forced_root_block;h&&(e=d.dom.createHTML(h,d.settings.forced_root_block_attrs),e=e.substr(0,e.length-3)+">"),g&&/^(PRE|DIV)$/.test(g.nodeName)||!h?a=c.filter(a,[[/\n/g,"<br>"]]):(a=c.filter(a,[[/\n\n/g,"</p>"+e],[/^(.*<\/p>)(<p>)$/,e+"$1"],[/\n/g,"<br />"]]),-1!=a.indexOf("<p>")&&(a=e+a)),f(a,b)}function h(){var a=d.dom,b=d.getBody(),c=d.dom.getViewPort(d.getWin()),e=d.inline?b.scrollTop:c.y,f=d.inline?b.clientHeight:c.h;i(),m=a.add(d.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+(e+20)+"px;width: 10px; height: "+(f-40)+"px; overflow: hidden; opacity: 0"},r),a.setStyle(m,"left","rtl"==a.getStyle(b,"direction",!0)?65535:-65535),a.bind(m,"beforedeactivate focusin focusout",function(a){a.stopPropagation()}),n=d.selection.getRng(),m.focus(),d.selection.select(m,!0)}function i(){m&&(d.dom.unbind(m),d.dom.remove(m),n&&d.selection.setRng(n)),o=!1,m=n=null}function j(){return m?m.innerHTML:r}function k(a){var b={},c=a.clipboardData||d.getDoc().dataTransfer;if(c&&c.types){b["text/plain"]=c.getData("Text");for(var e=0;e<c.types.length;e++){var f=c.types[e];b[f]=c.getData(f)}}return b}function l(){var a=LeaAce.nowIsInAce();return a?(setTimeout(function(){a[0].focus()}),!0):!1}var m,n,o,p=this,q=0,r="%MCEPASTEBIN%";d.on("keydown",function(c){if(!c.isDefaultPrevented()&&(b.metaKeyPressed(c)&&86==c.keyCode||c.shiftKey&&45==c.keyCode)){if(l())return;if(o=c.shiftKey&&86==c.keyCode,c.stopImmediatePropagation(),q=(new Date).getTime(),a.ie&&o)return c.preventDefault(),void d.fire("paste",{ieFake:!0});h()}}),d.on("paste",function(b){if(!l()){var e=k(b),n=(new Date).getTime()-q<100,s="text"==p.pasteFormat||o;n||b.preventDefault(),!a.ie||n&&!b.ieFake||(h(),d.dom.bind(m,"paste",function(a){a.stopPropagation()}),d.getDoc().execCommand("Paste",!1,null),e["text/html"]=j(),i()),setTimeout(function(){var a=j();m&&m.firstChild&&"mcepastebin"===m.firstChild.id&&(s=!0),i(),(a!=r&&n||(a=e["text/html"]||e["text/plain"]||r,a!=r))&&(s?g(e["text/plain"]||c.innerText(a)):f(a,e["text/plain"]))},0);try{}catch(b){}}}),p.pasteHtml=fLine truncated
|
||||
!function(a,b){"use strict";function c(a,b){for(var c,d=[],f=0;f<a.length;++f){if(c=g[a[f]]||e(a[f]),!c)throw"module definition dependecy not found: "+a[f];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){g[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}function f(c){for(var d=0;d<c.length;d++){for(var e=a,f=c[d],h=f.split(/[.\/]/),i=0;i<h.length-1;++i)e[h[i]]===b&&(e[h[i]]={}),e=e[h[i]];e[h[h.length-1]]=g[f]}}var g={};d("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(a,b,c){function d(b,c){return a.each(c,function(a){b=a.constructor==RegExp?b.replace(a,""):b.replace(a[0],a[1])}),b}function e(d){function e(a){var b=a.name,c=a;if("br"===b)return void(h+="\n");if(i[b]&&(h+=" "),j[b])return void(h+=" ");if(3==a.type&&(h+=a.value),!a.shortEnded&&(a=a.firstChild))do e(a);while(a=a.next);k[b]&&c.next&&(h+="\n","p"==b&&(h+="\n"))}var f=new c,g=new b({},f),h="",i=f.getShortEndedElements(),j=a.makeMap("script noscript style textarea video audio iframe object"," "),k=f.getBlockElements();return e(g.parse(d)),h}return{filter:d,innerText:e}}),d("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/util/VK","tinymce/pasteplugin/Utils"],function(a,b,c){return function(d){function e(a,b){ajaxPost("/file/copyHttpImage",{src:a},function(a){if(reIsOk(a)){var c=urlPrefix+"/file/outputImage?fileId="+a.Id,e=d.dom;for(var f in b){var g=b[f],h=e.get(g);e.setAttrib(h,"src",c)}}})}function f(a,b){var c,f=d.dom;if(d.settings.paste_data_images||(a=a.replace(/<img[^>]+src=\"data:image[^>]+>/g,"")),c=d.fire("BeforePastePreProcess",{content:a}),c=d.fire("PastePreProcess",c),a=c.content,!c.isDefaultPrevented()){if(d.hasEventListeners("PastePostProcess")&&!c.isDefaultPrevented()){var g=f.add(d.getBody(),"div",{style:"display:none"},a);c=d.fire("PastePostProcess",{node:g}),f.remove(g),a=c.node.innerHTML}if(!c.isDefaultPrevented()){var h=d.selection.getNode();if("PRE"==h.nodeName){if(!b)try{b=$(a).text()}catch(i){}b=b.replace(/</g,"<"),b=b.replace(/>/g,">"),d.insertRawContent(b)}else if(q.copyImage){var j=UrlPrefix,k={},l=(new Date).getTime();try{for(var m=$("<div>"+a+"</div>"),n=m.find("img"),o=0;o<n.length;++o){var p=n.eq(o),r=p.attr("src");if(-1==r.indexOf(j)){l++;var s="__LEANOTE_IMAGE_"+l;p.attr("id",s),k[r]?k[r].push(s):k[r]=[s]}}d.insertContent(m.html());for(var r in k){var t=k[r];e(r,t)}}catch(i){d.insertContent(a)}}else d.insertContent(a)}}}function g(a){var b=a;a=d.dom.encode(a).replace(/\r\n/g,"\n");var e,g=d.dom.getParent(d.selection.getStart(),d.dom.isBlock),h=d.settings.forced_root_block;h&&(e=d.dom.createHTML(h,d.settings.forced_root_block_attrs),e=e.substr(0,e.length-3)+">"),g&&/^(PRE|DIV)$/.test(g.nodeName)||!h?a=c.filter(a,[[/\n/g,"<br>"]]):(a=c.filter(a,[[/\n\n/g,"</p>"+e],[/^(.*<\/p>)(<p>)$/,e+"$1"],[/\n/g,"<br />"]]),-1!=a.indexOf("<p>")&&(a=e+a)),f(a,b)}function h(){var a=d.dom,b=d.getBody(),c=d.dom.getViewPort(d.getWin()),e=d.inline?b.scrollTop:c.y,f=d.inline?b.clientHeight:c.h;i(),n=a.add(d.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"1",style:"position: absolute; top: "+(e+20)+"px;width: 10px; height: "+(f-40)+"px; overflow: hidden; opacity: 0"},s),a.setStyle(n,"left","rtl"==a.getStyle(b,"direction",!0)?65535:-65535),a.bind(n,"beforedeactivate focusin focusout",function(a){a.stopPropagation()}),o=d.selection.getRng(),n.focus(),d.selection.select(n,!0)}function i(){n&&(d.dom.unbind(n),d.dom.remove(n),o&&d.selection.setRng(o)),p=!1,n=o=null}function j(){return n?n.innerHTML:s}function k(a){var b={},c=a.clipboardData||d.getDoc().dataTransfer;if(c&&c.types){b["text/plain"]=c.getData("Text");for(var e=0;e<c.types.length;e++){var f=c.types[e];b[f]=c.getData(f)}}return b}function l(){var a=LeaAce.nowIsInAce();return a?(setTimeout(function(){a[0].focus()}),!0):!1}function m(a){var b;if(a.clipboardData?b=a.clipboardData.items:a.originalEvent&&a.originalEvent.clipboardData&&(b=a.originalEvent.clipboardData),!b)return!1;for(var c=0;c<b.length;c++)if(0===b[c].type.indexOf("image"))return!0;return!1}var n,o,p,q=this,r=0,s="%MCEPASTEBIN%";d.on("keydown",function(c){if(!c.isDefaultPrevented()&&(b.metaKeyPressed(c)&&86==c.keyCode||c.shiftKey&&45==c.keyCode)){if(l())return;if(p=c.shiftKey&&86==c.keyCode,c.stopImmediatePropagation(),r=(new Date).getTime(),a.ie&&p)return c.preventDefault(),void d.fire("paste",{ieFake:!0});h()}}),d.on("paste",function(b){if(l())return void i();if(m(b))return void i();var e=k(b),o=(new Date).getTime()-r<100,t="text"==q.pasteFormat||p;o||b.preventDefault(),!a.ie||o&&!b.ieFake||(h(),d.dom.bind(n,"paste",function(a){a.stopPropagation()}),d.getDoc().execCommand("Paste",!1,nLine truncated
|
||||
Reference in new issue
Block a user