jQuery(function($){ function showErrorAlert (reason, detail) { var msg=''; if (reason==='unsupported-file-type') { msg = "Unsupported format " +detail; } else { //console.log("error uploading file", reason, detail); } $('
'+ 'File upload error '+msg+'
').prependTo('#alerts'); } //$('#editor1').ace_wysiwyg();//this will create the default editor will all buttons //but we want to change a few buttons colors for the third style $('#editor1').ace_wysiwyg({ toolbar: [ 'font', null, 'fontSize', null, {name:'bold', className:'btn-info'}, {name:'italic', className:'btn-info'}, {name:'strikethrough', className:'btn-info'}, {name:'underline', className:'btn-info'}, null, {name:'insertunorderedlist', className:'btn-success'}, {name:'insertorderedlist', className:'btn-success'}, {name:'outdent', className:'btn-purple'}, {name:'indent', className:'btn-purple'}, null, {name:'justifyleft', className:'btn-primary'}, {name:'justifycenter', className:'btn-primary'}, {name:'justifyright', className:'btn-primary'}, {name:'justifyfull', className:'btn-inverse'}, null, {name:'createLink', className:'btn-pink'}, {name:'unlink', className:'btn-pink'}, null, {name:'insertImage', className:'btn-success'}, null, 'foreColor', null, {name:'undo', className:'btn-grey'}, {name:'redo', className:'btn-grey'} ], 'wysiwyg': { fileUploadError: showErrorAlert } }).prev().addClass('wysiwyg-style2'); /** //make the editor have all the available height $(window).on('resize.editor', function() { var offset = $('#editor1').parent().offset(); var winHeight = $(this).height(); $('#editor1').css({'height':winHeight - offset.top - 10, 'max-height': 'none'}); }).triggerHandler('resize.editor'); */ $('#editor2').css({'height':'200px'}).ace_wysiwyg({ toolbar_place: function(toolbar) { return $(this).closest('.widget-box') .find('.widget-header').prepend(toolbar) .find('.wysiwyg-toolbar').addClass('inline'); }, toolbar: [ 'bold', {name:'italic' , title:'Change Title!', icon: 'ace-icon fa fa-leaf'}, 'strikethrough', null, 'insertunorderedlist', 'insertorderedlist', null, 'justifyleft', 'justifycenter', 'justifyright' ], speech_button: false }); $('[data-toggle="buttons"] .btn').on('click', function(e){ var target = $(this).find('input[type=radio]'); var which = parseInt(target.val()); var toolbar = $('#editor1').prev().get(0); if(which >= 1 && which <= 4) { toolbar.className = toolbar.className.replace(/wysiwyg\-style(1|2)/g , ''); if(which == 1) $(toolbar).addClass('wysiwyg-style1'); else if(which == 2) $(toolbar).addClass('wysiwyg-style2'); if(which == 4) { $(toolbar).find('.btn-group > .btn').addClass('btn-white btn-round'); } else $(toolbar).find('.btn-group > .btn-white').removeClass('btn-white btn-round'); } }); //RESIZE IMAGE //Add Image Resize Functionality to Chrome and Safari //webkit browsers don't have image resize functionality when content is editable //so let's add something using jQuery UI resizable //another option would be opening a dialog for user to enter dimensions. if ( typeof jQuery.ui !== 'undefined' && ace.vars['webkit'] ) { var lastResizableImg = null; function destroyResizable() { if(lastResizableImg == null) return; lastResizableImg.resizable( "destroy" ); lastResizableImg.removeData('resizable'); lastResizableImg = null; } var enableImageResize = function() { $('.wysiwyg-editor') .on('mousedown', function(e) { var target = $(e.target); if( e.target instanceof HTMLImageElement ) { if( !target.data('resizable') ) { target.resizable({ aspectRatio: e.target.width / e.target.height, }); target.data('resizable', true); if( lastResizableImg != null ) { //disable previous resizable image lastResizableImg.resizable( "destroy" ); lastResizableImg.removeData('resizable'); } lastResizableImg = target; } } }) .on('click', function(e) { if( lastResizableImg != null && !(e.target instanceof HTMLImageElement) ) { destroyResizable(); } }) .on('keydown', function() { destroyResizable(); }); } enableImageResize(); /** //or we can load the jQuery UI dynamically only if needed if (typeof jQuery.ui !== 'undefined') enableImageResize(); else {//load jQuery UI if not loaded $.getScript($path_assets+"/js/jquery-ui.custom.min.js", function(data, textStatus, jqxhr) { enableImageResize() }); } */ } });