mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-10 04:24:14 +09:00
Unify the logic for inserting uploaded file into editor content
This commit is contained in:
parent
633478710d
commit
bd138800bc
2 changed files with 60 additions and 90 deletions
|
|
@ -73,38 +73,8 @@ CKEDITOR.plugins.add('rx_upload', {
|
||||||
* Insert file into editor.
|
* Insert file into editor.
|
||||||
*/
|
*/
|
||||||
const insertFile = function(container, data) {
|
const insertFile = function(container, data) {
|
||||||
|
const html = container.data('instance').generateHtml(container, data);
|
||||||
let temp_code = '';
|
editor.insertHtml(html, 'unfiltered_html');
|
||||||
if(/\.(gif|jpe?g|png|webp)$/i.test(data.source_filename)) {
|
|
||||||
temp_code += '<img src="' + data.download_url + '" alt="' + data.source_filename + '" editor_component="image_link" data-file-srl="' + data.file_srl + '" />';
|
|
||||||
}
|
|
||||||
else if(/\.(mp3|wav|ogg|flac|aac)$/i.test(data.source_filename)) {
|
|
||||||
temp_code += '<audio src="' + data.download_url + '" controls data-file-srl="' + data.file_srl + '" />';
|
|
||||||
}
|
|
||||||
else if(/\.(mp4|webm|ogv)$/i.test(data.source_filename)) {
|
|
||||||
if(data.original_type === 'image/gif') {
|
|
||||||
temp_code += '<video src="' + data.download_url + '" autoplay loop muted playsinline data-file-srl="' + data.file_srl + '" />';
|
|
||||||
} else if (data.download_url.match(/\b(?:procFileDownload\b|files\/download\/)/)) {
|
|
||||||
if (!data.download_url.match(/^\//)) {
|
|
||||||
data.download_url = XE.URI(default_url).pathname() + data.download_url;
|
|
||||||
}
|
|
||||||
temp_code += '<video src="' + data.download_url + '" controls preload="none" data-file-srl="' + data.file_srl + '" />';
|
|
||||||
} else {
|
|
||||||
temp_code += '<video src="' + data.download_url + '" controls data-file-srl="' + data.file_srl + '" />';
|
|
||||||
}
|
|
||||||
if(data.thumbnail_filename) {
|
|
||||||
temp_code = temp_code.replace('controls', 'poster="' + data.thumbnail_filename.replace(/^.\//, XE.URI(default_url).pathname()) + '" controls');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
temp_code += '<a href="' + data.download_url + '" data-file-srl="' + data.file_srl + '">' + data.source_filename + "</a>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if(temp_code !== '') {
|
|
||||||
temp_code = "<p>" + temp_code + "</p>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
editor.insertHtml(temp_code, 'unfiltered_html');
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -174,36 +174,24 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if(result.error == 0) {
|
if(result.error == 0) {
|
||||||
if(/\.(gif|jpe?g|png|webp)$/i.test(result.source_filename) && opt.autoinsertTypes.image) {
|
var filename = String(result.source_filename);
|
||||||
temp_code += '<img src="' + result.download_url + '" alt="' + result.source_filename + '" editor_component="image_link" data-file-srl="' + result.file_srl + '" />';
|
if (filename.match(/\.(gif|jpe?g|png|webp)$/i) && opt.autoinsertTypes.image) {
|
||||||
|
temp_code = self.generateHtml($container, result);
|
||||||
}
|
}
|
||||||
else if(/\.(mp3|wav|ogg|flac|aac)$/i.test(result.source_filename) && opt.autoinsertTypes.audio) {
|
else if (filename.match(/\.(mp3|wav|ogg|flac|aac)$/i) && opt.autoinsertTypes.audio) {
|
||||||
temp_code += '<audio src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
|
temp_code = self.generateHtml($container, result);
|
||||||
}
|
}
|
||||||
else if(/\.(mp4|webm|ogv)$/i.test(result.source_filename) && opt.autoinsertTypes.video) {
|
else if (filename.match(/\.(mp4|webm|ogv)$/i) && opt.autoinsertTypes.video) {
|
||||||
if(result.original_type === 'image/gif') {
|
temp_code = self.generateHtml($container, result);
|
||||||
temp_code += '<video src="' + result.download_url + '" autoplay loop muted playsinline data-file-srl="' + result.file_srl + '" />';
|
|
||||||
} else if (result.download_url.match(/\b(?:procFileDownload\b|files\/download\/)/)) {
|
|
||||||
if (!result.download_url.match(/^\//)) {
|
|
||||||
result.download_url = XE.URI(default_url).pathname() + result.download_url;
|
|
||||||
}
|
|
||||||
temp_code += '<video src="' + result.download_url + '" controls preload="none" data-file-srl="' + result.file_srl + '" />';
|
|
||||||
} else {
|
|
||||||
temp_code += '<video src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
|
|
||||||
}
|
|
||||||
if(result.thumbnail_filename) {
|
|
||||||
temp_code = temp_code.replace('controls', 'poster="' + result.thumbnail_filename.replace(/^.\//, XE.URI(default_url).pathname()) + '" controls');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(temp_code !== '') {
|
if(temp_code !== '') {
|
||||||
if (opt.autoinsertPosition === 'paragraph') {
|
|
||||||
temp_code = "<p>" + temp_code + "</p>\n";
|
|
||||||
}
|
|
||||||
try {
|
try {
|
||||||
_getCkeInstance(settings.formData.editor_sequence).insertHtml(temp_code, "unfiltered_html");
|
_getCkeInstance(settings.formData.editor_sequence).insertHtml(temp_code, "unfiltered_html");
|
||||||
}
|
}
|
||||||
catch(err) {}
|
catch(err) {
|
||||||
|
// pass
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (typeof result.files !== 'undefined') {
|
if (typeof result.files !== 'undefined') {
|
||||||
$container.data('editorStatus', result);
|
$container.data('editorStatus', result);
|
||||||
|
|
@ -353,51 +341,63 @@
|
||||||
unselectImageFiles: function() {},
|
unselectImageFiles: function() {},
|
||||||
unselectNonImageFiles: function() {},
|
unselectNonImageFiles: function() {},
|
||||||
|
|
||||||
|
generateHtml: function($container, file) {
|
||||||
|
var filename = String(file.source_filename);
|
||||||
|
var html = '';
|
||||||
|
var data = $container.data();
|
||||||
|
|
||||||
|
if (filename.match(/\.(gif|jpe?g|png|webp)$/i)) {
|
||||||
|
html = '<img src="' + file.download_url + '" alt="' + file.source_filename + '"'
|
||||||
|
+ ' editor_component="image_link" data-file-srl="' + file.file_srl + '" />';
|
||||||
|
}
|
||||||
|
else if (filename.match(/\.(mp3|wav|ogg|flac|aac)$/i)) {
|
||||||
|
html = '<audio src="' + file.download_url + '" controls' +
|
||||||
|
' data-file-srl="' + file.file_srl + '" />';
|
||||||
|
}
|
||||||
|
else if (filename.match(/\.(mp4|webm|ogv)$/i)) {
|
||||||
|
if (file.original_type === 'image/gif') {
|
||||||
|
html = '<video src="' + file.download_url + '"'
|
||||||
|
+ ' autoplay loop muted playsinline data-file-srl="' + file.file_srl + '" />';
|
||||||
|
} else if (file.download_url.match(/\b(?:procFileDownload\b|files\/download\/)/)) {
|
||||||
|
if (!file.download_url.match(/^\//)) {
|
||||||
|
file.download_url = XE.URI(default_url).pathname() + file.download_url;
|
||||||
|
}
|
||||||
|
html = '<video src="' + file.download_url + '" controls preload="none"'
|
||||||
|
+ ' data-file-srl="' + file.file_srl + '" />';
|
||||||
|
} else {
|
||||||
|
html = '<video src="' + file.download_url + '" controls data-file-srl="' + file.file_srl + '" />';
|
||||||
|
}
|
||||||
|
if (file.thumbnail_filename) {
|
||||||
|
html = html.replace('controls', 'poster="' + file.thumbnail_filename.replace(/^.\//, XE.URI(default_url).pathname()) + '" controls');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (html !== '' && data.settings.autoinsertPosition === 'paragraph') {
|
||||||
|
html = '<p>' + html + '</p>\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (html === '') {
|
||||||
|
html += '<a href="' + file.download_url + '" data-file-srl="' + file.file_srl + '">' + file.source_filename + '</a>\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
return html;
|
||||||
|
},
|
||||||
|
|
||||||
insertToContent: function($container) {
|
insertToContent: function($container) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var data = $container.data();
|
var data = $container.data();
|
||||||
|
|
||||||
$.each(data.selected_files, function(idx, file) {
|
$.each(data.selected_files, function(idx, file) {
|
||||||
var file_srl = $(file).data().fileSrl;
|
var file_srl = $(file).data().fileSrl;
|
||||||
var result = data.files[file_srl];
|
var result = data.files[file_srl];
|
||||||
if(!result) return;
|
if (result) {
|
||||||
var temp_code = '';
|
var html = self.generateHtml($container, result);
|
||||||
|
try {
|
||||||
if(/\.(gif|jpe?g|png|webp)$/i.test(result.source_filename)) {
|
_getCkeInstance(data.editorSequence).insertHtml(html, 'unfiltered_html');
|
||||||
temp_code += '<img src="' + result.download_url + '" alt="' + result.source_filename + '" editor_component="image_link" data-file-srl="' + result.file_srl + '" />';
|
|
||||||
}
|
|
||||||
else if(/\.(mp3|wav|ogg|flac|aac)$/i.test(result.source_filename)) {
|
|
||||||
temp_code += '<audio src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
|
|
||||||
}
|
|
||||||
else if(/\.(mp4|webm|ogv)$/i.test(result.source_filename)) {
|
|
||||||
if(result.original_type === 'image/gif') {
|
|
||||||
temp_code += '<video src="' + result.download_url + '" autoplay loop muted playsinline data-file-srl="' + result.file_srl + '" />';
|
|
||||||
} else if (result.download_url.match(/\b(?:procFileDownload\b|files\/download\/)/)) {
|
|
||||||
if (!result.download_url.match(/^\//)) {
|
|
||||||
result.download_url = XE.URI(default_url).pathname() + result.download_url;
|
|
||||||
}
|
|
||||||
temp_code += '<video src="' + result.download_url + '" controls preload="none" data-file-srl="' + result.file_srl + '" />';
|
|
||||||
} else {
|
|
||||||
temp_code += '<video src="' + result.download_url + '" controls data-file-srl="' + result.file_srl + '" />';
|
|
||||||
}
|
}
|
||||||
if(result.thumbnail_filename) {
|
catch(err) {
|
||||||
temp_code = temp_code.replace('controls', 'poster="' + result.thumbnail_filename.replace(/^.\//, XE.URI(default_url).pathname()) + '" controls');
|
// pass
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(temp_code !== '') {
|
|
||||||
if (data.settings.autoinsertPosition === 'paragraph') {
|
|
||||||
temp_code = "<p>" + temp_code + "</p>\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(temp_code === '') {
|
|
||||||
temp_code += '<a href="' + result.download_url + '" data-file-srl="' + result.file_srl + '">' + result.source_filename + "</a>\n";
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
_getCkeInstance(data.editorSequence).insertHtml(temp_code, "unfiltered_html");
|
|
||||||
}
|
|
||||||
catch(err) {}
|
|
||||||
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue