-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjquery.basic.bbcode.texteditor.1.0.min.js
More file actions
5 lines (4 loc) · 7.84 KB
/
jquery.basic.bbcode.texteditor.1.0.min.js
File metadata and controls
5 lines (4 loc) · 7.84 KB
1
2
3
4
5
/* jQuery Basic Text Editor Plugin - v1.0 - 2014-07-11
* https://github.com/jcoudsi/jquery.basic.bbcode.texteditor
* Copyright (c) 2014 Julien Coudsi; Licensed MIT */
(function(e){e.fn.textEditor=function(t){function n(e,t){var n=e.attr("data-bbcode");var i=e.attr("data-divClassToShow");var s="["+n+"]";var o="[/"+n+"]";if(i){t.siblings("div[class^='basic_bbcode_text_editor_insert']").slideUp();if(t.siblings("."+i).css("display")==="none"){t.siblings("."+i).slideDown()}}else{r(s,o,t)}}function r(e,t,n){var r=n.range();n.caret(r.start);n.caret(e);if(t){n.caret(r.end+e.length);n.caret(t);n.caret(r.start+e.length);n.range(r.start+e.length,r.start+e.length+r.length)}}function i(t,n){var r=t.parent();r.prepend('<div class="basic_bbcode_text_editor_insert_size_text_zone"><label for="basic_bbcode_text_editor_input_size">Taille (pixels) :</label><input type="text" id="basic_bbcode_text_editor_input_size" class="basic_bbcode_text_editor_input_size" value="10" /><input type="button" value="Choisir" class="basic_bbcode_text_editor_button_set_size" /></div>');s(r,t);r.prepend('<div class="basic_bbcode_text_editor_insert_color_zone"><div class="basic_bbcode_text_editor_color_picker" data-color=""></div><input type="button" value="Choisir" class="basic_bbcode_text_editor_button_choose_color" /></div>');o(r,t);r.prepend('<div class="basic_bbcode_text_editor_insert_media_zone"><div class="basic_bbcode_text_editor_media_outlet" data-noPreviewImage="/pimpouces/web/img/nopreview.gif"></div><div><input type="checkbox" class="basic_bbcode_text_editor_media_outlet_size_choice" value="true" />Taille personnalisée</div><div class="basic_bbcode_text_editor_media_outlet_size_zone"><label for="basic_bbcode_text_editor_media_outlet_input_width">Largeur (pixels) :</label><input type="text" id="basic_bbcode_text_editor_media_outlet_input_width" class="basic_bbcode_text_editor_media_outlet_input_width" value="" /><label for="basic_bbcode_text_editor_media_outlet_input_height">Hauteur (pixels) :</label><input type="text" id="basic_bbcode_text_editor_media_outlet_input_height" class="basic_bbcode_text_editor_media_outlet_input_height" value="" /></div><input type="button" value="Insérer" class="basic_bbcode_text_editor_button_insert_media" /></div>');f(r,t,n);r.prepend('<div class="basic_bbcode_text_editor_insert_link_zone"><div><label for="basic_bbcode_text_editor_input_link">URL :</label><input type="text" id="basic_bbcode_text_editor_input_link" class="basic_bbcode_text_editor_input_link" value="http://" /></div><div><input type="checkbox" class="basic_bbcode_text_editor_link_blank" value="blank" />Nouvelle fenêtre </div><input type="button" value="Insérer" class="basic_bbcode_text_editor_button_insert_link" /></div>');a(r,t);r.prepend('<div class="basic_bbcode_text_editor_insert_email_zone"><label for="basic_bbcode_text_editor_input_email">E-mail :</label><input type="text" id="basic_bbcode_text_editor_input_email" class="basic_bbcode_text_editor_input_email" value="Saisir un e-mail" /><input type="button" value="Insérer" class="basic_bbcode_text_editor_button_insert_email" /></div>');u(r,t);r.prepend('<div class="basic_bbcode_text_editor_buttons"><div>');var i=r.children(".basic_bbcode_text_editor_buttons");i.append('<div class="basic_bbcode_text_editor_appareance_buttons"></div>');var l=i.children(".basic_bbcode_text_editor_appareance_buttons");l.append('<i class="fa fa-bold" data-bbcode="bold"></i><i class="fa fa-italic" data-bbcode="italic"></i><i class="fa fa-underline" data-bbcode="underline"></i><i class="fa fa-text-height" data-bbcode="size" data-divClassToShow="basic_bbcode_text_editor_insert_size_text_zone"></i><i class="fa fa-superscript" data-bbcode="superscript"></i><i class="fa fa-subscript" data-bbcode="subscript"></i><i class="fa fa-tint color_button" data-bbcode="color" data-divClassToShow="basic_bbcode_text_editor_insert_color_zone"></i><i class="fa fa-chevron-up" data-bbcode="uppercase"></i><i class="fa fa-chevron-down" data-bbcode="lowercase"></i>');i.append('<div class="basic_bbcode_text_editor_insertion_buttons"></div>');var c=i.children(".basic_bbcode_text_editor_insertion_buttons");c.append('<i class="fa fa-link" data-bbcode="link" data-divClassToShow="basic_bbcode_text_editor_insert_link_zone"></i><i class="fa fa-envelope" data-bbcode="email" data-divClassToShow="basic_bbcode_text_editor_insert_email_zone"></i><i class="fa fa-file-image-o" data-bbcode="media" data-divClassToShow="basic_bbcode_text_editor_insert_media_zone"></i>');i.append('<div class="basic_bbcode_text_editor_position_buttons"></div>');var h=i.children(".basic_bbcode_text_editor_position_buttons");h.append('<i class="fa fa-align-left" data-bbcode="left"></i><i class="fa fa-align-center" data-bbcode="center"></i><i class="fa fa-align-right" data-bbcode="right"></i><i class="fa fa-align-justify" data-bbcode="justify"></i>');i.append('<div class="basic_bbcode_text_editor_miscellaneous_buttons"></div>');var p=i.children(".basic_bbcode_text_editor_miscellaneous_buttons");p.append('<i class="fa fa-list" data-bbcode="list"></i>');i.hover(function(){e(this).css("cursor","pointer")})}function s(t,n){var i=t.children(".basic_bbcode_text_editor_insert_size_text_zone");i.hide();var s=i.children(".basic_bbcode_text_editor_button_set_size");s.click(function(){var t="size";var i=e(this).siblings(".basic_bbcode_text_editor_input_size").val();var s="["+t+'="'+i+'"]';var o="[/"+t+"]";r(s,o,n)})}function o(e,t){var n=e.children(".basic_bbcode_text_editor_insert_color_zone");n.hide();var i=n.children(".basic_bbcode_text_editor_color_picker");var s="0000ff";i.ColorPicker({flat:true,color:"0000ff",onChange:function(e,t,n){s=t}});var o=n.children(".basic_bbcode_text_editor_button_choose_color");o.click(function(){var e="color";var n="["+e+'="#'+s+'"]';var i="[/"+e+"]";r(n,i,t)})}function u(t,n){var i=t.children(".basic_bbcode_text_editor_insert_email_zone");i.hide();var s=i.children(".basic_bbcode_text_editor_button_insert_email");var o=i.children(".basic_bbcode_text_editor_input_email");o.focus(function(){if(e(this).val()==="Saisir un e-mail"){e(this).val("")}});s.click(function(){var e="email";var t=o.val();var i="["+e+'="'+t+'"]';var s="[/"+e+"]";if(t){r(i,s,n)}})}function a(t,n){var i=t.children(".basic_bbcode_text_editor_insert_link_zone");i.hide();var s=i.children(".basic_bbcode_text_editor_button_insert_link");s.click(function(){var t="link";var i=e(this).siblings("div").find(".basic_bbcode_text_editor_input_link").val();var s="["+t+' href="'+i+'"';if(e(this).siblings("div").find(".basic_bbcode_text_editor_link_blank").prop("checked")===true){s+=' target="_blank"'}s+="]";var o="[/"+t+"]";if(i){r(s,o,n)}})}function f(t,n,i){var s=t.children(".basic_bbcode_text_editor_insert_media_zone");var o=s.children(".basic_bbcode_text_editor_media_outlet_size_zone");o.hide();s.hide();var u=s.children(".basic_bbcode_text_editor_media_outlet");var a=null;var f=Routing.generate("media_upload_file");u.mediaOutlet({urlService:f,uploadDir:i.uploadDir,defaultMode:"upload",noPreviewImage:"data-noPreviewImage",onSuccess:function(e,t){if(e.mediaSelectionType==="upload"){a=e.mediaName}else if(e.mediaSelectionType==="url"){a=e.mediaUrl}}});creerVignetteImage(".media_outlet_image_preview",150,100,"crop");var l=s.find(".basic_bbcode_text_editor_media_outlet_size_choice");var c=false;l.click(function(){if(e(this).prop("checked")===true){o.slideDown();c=true}else{o.slideUp();c=false}});var h=s.children(".basic_bbcode_text_editor_button_insert_media");h.click(function(){if(a){var e='[media src="'+a+'"';if(c){var t=o.children("#basic_bbcode_text_editor_media_outlet_input_width").val();var i=o.children("#basic_bbcode_text_editor_media_outlet_input_height").val();e+=' width="'+t+'" height="'+i+'"'}e+=' alt="media description"]';r(e,null,n)}})}return this.each(function(){t=e.extend({uploadDir:null},t);var r=e(this).children("textarea");i(r,t);var s=r.siblings(".basic_bbcode_text_editor_buttons").find("i");s.click(function(){n(e(this),r)})})}})(jQuery);