PATH:
home
/
lab2454c
/
vaultchip.com
/
platform
/
core
/
media
/
resources
/
assets
/
js
/* ======================================================================== * AddMedia.js v1.0 * Requires Botble Media * ======================================================================== */ +function ($) { 'use strict'; /** * @param element * @param options * @constructor */ let AddMedia = function (element, options) { this.options = options; $(element).rvMedia({ multiple: true, onSelectFiles: function (files, $el) { if (typeof files !== 'undefined') { switch ($el.data('editor')) { case 'summernote': handleInsertImagesForSummerNote($el, files); break; case 'wysihtml5': let editor = $(options.target).data('wysihtml5').editor; handleInsertImagesForWysihtml5Editor(editor, files); break; case 'ckeditor': handleForCkeditor($el, files); break; case 'tinymce': handleForTinyMce(files); break; } } } }); }; AddMedia.VERSION = '1.1.0'; /** * Insert images to summernote editor * @param $el * @param files */ function handleInsertImagesForSummerNote($el, files) { if (files.length === 0) { return; } let instance = $el.data('target'); for (let i = 0; i < files.length; i++) { if (files[i].type === 'image') { $(instance).summernote('insertImage', files[i].full_url, files[i].basename); } else { $(instance).summernote('pasteHTML', '<a href="' + files[i].full_url + '">' + files[i].full_url + '</a>'); } } } /** * Insert images to Wysihtml5 editor * @param editor * @param files */ function handleInsertImagesForWysihtml5Editor(editor, files) { if (files.length === 0) { return; } // insert images for the wysihtml5 editor let s = ''; for (let i = 0; i < files.length; i++) { if (files[i].type === 'image') { s += '<img src="' + files[i].full_url + '" alt="' + files[i].name + '">'; } else { s += '<a href="' + files[i].full_url + '">' + files[i].full_url + '</a>'; } } if (editor.getValue().length > 0) { let length = editor.getValue(); editor.composer.commands.exec('insertHTML', s); if (editor.getValue() === length) { editor.setValue(editor.getValue() + s); } } else { editor.setValue(editor.getValue() + s); } } /** * @param $el * @param files */ function handleForCkeditor($el, files) { let instance = $el.data('target').replace('#', ''); let content = ''; $.each(files, (index, file) => { let link = file.full_url; if (file.type === 'image') { content += '<img src="' + link + '" alt="' + file.name + '" /><br />'; } else { content += '<a href="' + link + '">' + file.name + '</a><br />'; } }); CKEDITOR.instances[instance].insertHtml(content); } /** * @param files */ function handleForTinyMce(files) { let html = ''; $.each(files, (index, file) => { let link = file.full_url; if (file.type === 'image') { html += '<img src="' + link + '" alt="' + file.name + '" /><br />'; } else { html += '<a href="' + link + '">' + file.name + '</a><br />'; } }); tinymce.activeEditor.execCommand('mceInsertContent', false, html); } /** * @param option */ function callAction(option) { return this.each(function () { let $this = $(this); let data = $this.data('bs.media'); let options = $.extend({}, $this.data(), typeof option === 'object' && option); if (!data) { $this.data('bs.media', (new AddMedia(this, options))); } }) } $.fn.addMedia = callAction; $.fn.addMedia.Constructor = AddMedia; $(window).on('load', function () { $('[data-type="rv-media"]').each(function () { let $addMedia = $(this); callAction.call($addMedia, $addMedia.data()); }); }); }(jQuery);
[+]
..
[-] integrate.js
[edit]
[-] media.js
[edit]
[+]
App
[-] jquery.addMedia.js
[edit]