Warning: No message defined for "+b.name+"")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})});
\ No newline at end of file
diff --git a/BuildFeed/Scripts/trumbowyg/langs/ar.min.js b/BuildFeed/Scripts/trumbowyg/langs/ar.min.js
new file mode 100644
index 0000000..0f83dd3
--- /dev/null
+++ b/BuildFeed/Scripts/trumbowyg/langs/ar.min.js
@@ -0,0 +1,9 @@
+/* ===========================================================
+ * ar.js
+ * Arabic translation for Trumbowyg
+ * http://alex-d.github.com/Trumbowyg
+ * ===========================================================
+ * Author : Abo Mokh ahmed (abomokhahmed)
+ * Github : https://github.com/abomokhahmed
+ */
+jQuery.trumbowyg.langs.ar={_dir:"rtl",viewHTML:"إعرض-HTML",formatting:"تصميم",p:"فقرة",blockquote:"اقتباس",code:"كود",header:"رئيسي",bold:"عريض",italic:"مائل",strikethrough:"مشطوب",underline:"خطّ سفلي",strong:"بارز",em:"تغميق",del:"حذف",unorderedList:"قائمة غير مرتّبة",orderedList:"قائمة مرتّبة",insertImage:"إدخال صورة",insertVideo:"إدخال فيديو",link:"رابط",createLink:"انشاء رابط",unlink:"حذف رابط",justifyLeft:"تصحيح للشمال",justifyCenter:"تصحيح للمركز",justifyRight:"تصحيح لليمين",justifyFull:"تصحيح لكلا الإتّجاهين",horizontalRule:"إدخال خطّ أفقي",fullscreen:"شاشة واسعة",close:"إغلاق",submit:"أرسل",reset:"تهيئة من حديد",required:"إلزامي",description:"وصف",title:"عنوان",text:"نصّ"};
\ No newline at end of file
diff --git a/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.js b/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.js
index 43fb136..3dd69f7 100644
--- a/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.js
+++ b/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.js
@@ -13,6 +13,10 @@
$.extend(true, $.trumbowyg, {
langs: {
+ cs: {
+ foreColor: "Barva textu",
+ backColor: "Barva pozadí"
+ },
en: {
foreColor: "Text color",
backColor: "Background color"
diff --git a/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.min.js b/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.min.js
index b1aecf5..26962a7 100644
--- a/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.min.js
+++ b/BuildFeed/Scripts/trumbowyg/plugins/colors/trumbowyg.colors.min.js
@@ -1 +1 @@
-!function(o){"use strict";function f(f){var e=[];o.each(o.trumbowyg.opts.colors,function(r,d){var b="_"+f+d;o.trumbowyg.opts.btnsDef[b]={func:f,param:"#"+d,style:"background-color: #"+d+";"},e.push(b)});var r="_"+f+"transparent";return o.trumbowyg.opts.btnsDef[r]={func:f,param:"transparent",style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"},e.push(r),e}o.extend(!0,o.trumbowyg,{langs:{en:{foreColor:"Text color",backColor:"Background color"},fr:{foreColor:"Couleur du texte",backColor:"Couleur de fond"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"}}}),o.extend(!0,o.trumbowyg,{opts:{btnsDef:{}}}),o.trumbowyg.opts.colors||(o.trumbowyg.opts.colors=["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646","ffff00","f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","fff2ca","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","ffe694","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","b7dde8","fac08f","f2c314","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","92cddc","e36c09","c09100","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","31859b","974806","7f6000"]),o.extend(!0,o.trumbowyg,{opts:{btnsDef:{foreColor:{dropdown:f("foreColor")},backColor:{dropdown:f("backColor")}}}})}(jQuery);
\ No newline at end of file
+!function(o){"use strict";function f(f){var r=[];o.each(o.trumbowyg.opts.colors,function(e,d){var c="_"+f+d;o.trumbowyg.opts.btnsDef[c]={func:f,param:"#"+d,style:"background-color: #"+d+";"},r.push(c)});var e="_"+f+"transparent";return o.trumbowyg.opts.btnsDef[e]={func:f,param:"transparent",style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"},r.push(e),r}o.extend(!0,o.trumbowyg,{langs:{cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},en:{foreColor:"Text color",backColor:"Background color"},fr:{foreColor:"Couleur du texte",backColor:"Couleur de fond"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"}}}),o.extend(!0,o.trumbowyg,{opts:{btnsDef:{}}}),o.trumbowyg.opts.colors||(o.trumbowyg.opts.colors=["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646","ffff00","f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","fff2ca","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","ffe694","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","b7dde8","fac08f","f2c314","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","92cddc","e36c09","c09100","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","31859b","974806","7f6000"]),o.extend(!0,o.trumbowyg,{opts:{btnsDef:{foreColor:{dropdown:f("foreColor")},backColor:{dropdown:f("backColor")}}}})}(jQuery);
\ No newline at end of file
diff --git a/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.css b/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.css
index ebe7d0d..2425f5d 100644
--- a/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.css
+++ b/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.css
@@ -1,5 +1,5 @@
/**
- * Trumbowyg v2.0.0-beta.2 - A lightweight WYSIWYG editor
+ * Trumbowyg v2.0.0-beta.4 - A lightweight WYSIWYG editor
* Colors plugin stylesheet for Trumbowyg editor
* ------------------------
* @link http://alex-d.github.io/Trumbowyg
@@ -10,7 +10,7 @@
*/
.foreColor-trumbowyg-dropdown, .backColor-trumbowyg-dropdown {
- width: 264px;
+ width: 276px;
padding: 7px 5px; }
.foreColor-trumbowyg-dropdown button, .backColor-trumbowyg-dropdown button {
display: block;
diff --git a/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css b/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css
index 5f34f6f..a9360bb 100644
--- a/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css
+++ b/BuildFeed/Scripts/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css
@@ -1,2 +1,2 @@
-/** Trumbowyg v2.0.0-beta.2 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
-.backColor-trumbowyg-dropdown,.foreColor-trumbowyg-dropdown{width:264px;padding:7px 5px}.backColor-trumbowyg-dropdown button,.foreColor-trumbowyg-dropdown button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.backColor-trumbowyg-dropdown button:focus::after,.backColor-trumbowyg-dropdown button:hover::after,.foreColor-trumbowyg-dropdown button:focus::after,.foreColor-trumbowyg-dropdown button:hover::after{content:" ";display:block;height:27px;width:27px;background:inherit;position:absolute;top:-5px;left:-5px;border:1px solid #FFF;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10}.trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-black.png)}.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-white.png)}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}@media only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (min--moz-device-pixel-ratio:1.3),only screen and (-o-min-device-pixel-ratio:4/3),only screen and (min-device-pixel-ratio:1.3),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-black-2x.png)!important;-webkit-background-size:25px 50px!important;background-size:25px 50px!important}.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-white-2x.png)!important}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}}
\ No newline at end of file
+/** Trumbowyg v2.0.0-beta.4 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
+.backColor-trumbowyg-dropdown,.foreColor-trumbowyg-dropdown{width:276px;padding:7px 5px}.backColor-trumbowyg-dropdown button,.foreColor-trumbowyg-dropdown button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.backColor-trumbowyg-dropdown button:focus::after,.backColor-trumbowyg-dropdown button:hover::after,.foreColor-trumbowyg-dropdown button:focus::after,.foreColor-trumbowyg-dropdown button:hover::after{content:" ";display:block;height:27px;width:27px;background:inherit;position:absolute;top:-5px;left:-5px;border:1px solid #FFF;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10}.trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-black.png)}.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-white.png)}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}@media only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (min--moz-device-pixel-ratio:1.3),only screen and (-o-min-device-pixel-ratio:4/3),only screen and (min-device-pixel-ratio:1.3),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-black-2x.png)!important;-webkit-background-size:25px 50px!important;background-size:25px 50px!important}.trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-image:url(./images/icons-white-2x.png)!important}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-foreColor-button{background-position:5px -20px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-backColor-button{background-position:5px 5px}}
\ No newline at end of file
diff --git a/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.js b/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.js
index 6c9b3f5..626e405 100644
--- a/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.js
+++ b/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.js
@@ -29,6 +29,11 @@
upload: "Envoi",
file: "Fichier",
uploadError: "Erreur"
+ },
+ cs: {
+ upload: "Nahrát obrázek",
+ file: "Soubor",
+ uploadError: "Chyba"
}
},
diff --git a/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.min.js b/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.min.js
index ca39d1d..cd55a9e 100644
--- a/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.min.js
+++ b/BuildFeed/Scripts/trumbowyg/plugins/upload/trumbowyg.upload.min.js
@@ -1 +1 @@
-!function(e){"use strict";function r(){if(!e.trumbowyg&&!e.trumbowyg.addedXhrProgressEvent){var r=e.ajaxSettings.xhr;e.ajaxSetup({xhr:function(){var e=r(),o=this;return e&&"object"==typeof e.upload&&void 0!==o.progressUpload&&e.upload.addEventListener("progress",function(e){o.progressUpload(e)},!1),e}}),e.trumbowyg.addedXhrProgressEvent=!0}}r(),e.extend(!0,e.trumbowyg,{langs:{en:{upload:"Upload",file:"File",uploadError:"Error"},sk:{upload:"Nahrať",file:"Súbor",uploadError:"Chyba"},fr:{upload:"Envoi",file:"Fichier",uploadError:"Erreur"}},upload:{serverPath:"./src/plugins/upload/trumbowyg.upload.php"},opts:{btnsDef:{upload:{func:function(r,o){var a,t=o.o.prefix,n=o.openModalInsert(o.lang.upload,{file:{type:"file",required:!0},alt:{label:"description"}},function(){var r=new FormData;r.append("fileToUpload",a),0===e("."+t+"progress",n).length&&e("."+t+"modal-title",n).after(e("",{"class":t+"progress"}).append(e("",{"class":t+"progress-bar"}))),e.ajax({url:e.trumbowyg.upload.serverPath,type:"POST",data:r,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(r){e("."+t+"progress-bar").stop().animate({width:Math.round(100*r.loaded/r.total)+"%"},200)},success:function(r){"uploadSuccess"==r.message?(o.execCmd("insertImage",r.file),setTimeout(function(){o.closeModal()},250)):o.addErrorOnModalField(e("input[type=file]",n),o.lang[r.message])},error:function(){o.addErrorOnModalField(e("input[type=file]",n),o.lang.uploadError)}})});e("input[type=file]").on("change",function(e){try{a=e.target.files[0]}catch(r){a=e.target.value}})},ico:"insertImage"}}}})}(jQuery);
\ No newline at end of file
+!function(r){"use strict";function e(){if(!r.trumbowyg&&!r.trumbowyg.addedXhrProgressEvent){var e=r.ajaxSettings.xhr;r.ajaxSetup({xhr:function(){var r=e(),o=this;return r&&"object"==typeof r.upload&&void 0!==o.progressUpload&&r.upload.addEventListener("progress",function(r){o.progressUpload(r)},!1),r}}),r.trumbowyg.addedXhrProgressEvent=!0}}e(),r.extend(!0,r.trumbowyg,{langs:{en:{upload:"Upload",file:"File",uploadError:"Error"},sk:{upload:"Nahrať",file:"Súbor",uploadError:"Chyba"},fr:{upload:"Envoi",file:"Fichier",uploadError:"Erreur"},cs:{upload:"Nahrát obrázek",file:"Soubor",uploadError:"Chyba"}},upload:{serverPath:"./src/plugins/upload/trumbowyg.upload.php"},opts:{btnsDef:{upload:{func:function(e,o){var a,t=o.o.prefix,l=o.openModalInsert(o.lang.upload,{file:{type:"file",required:!0},alt:{label:"description"}},function(){var e=new FormData;e.append("fileToUpload",a),0===r("."+t+"progress",l).length&&r("."+t+"modal-title",l).after(r("",{"class":t+"progress"}).append(r("",{"class":t+"progress-bar"}))),r.ajax({url:r.trumbowyg.upload.serverPath,type:"POST",data:e,cache:!1,dataType:"json",processData:!1,contentType:!1,progressUpload:function(e){r("."+t+"progress-bar").stop().animate({width:Math.round(100*e.loaded/e.total)+"%"},200)},success:function(e){"uploadSuccess"==e.message?(o.execCmd("insertImage",e.file),setTimeout(function(){o.closeModal()},250)):o.addErrorOnModalField(r("input[type=file]",l),o.lang[e.message])},error:function(){o.addErrorOnModalField(r("input[type=file]",l),o.lang.uploadError)}})});r("input[type=file]").on("change",function(r){try{a=r.target.files[0]}catch(e){a=r.target.value}})},ico:"insertImage"}}}})}(jQuery);
\ No newline at end of file
diff --git a/BuildFeed/Scripts/trumbowyg/trumbowyg.js b/BuildFeed/Scripts/trumbowyg/trumbowyg.js
index e54e3ac..e83a4a2 100644
--- a/BuildFeed/Scripts/trumbowyg/trumbowyg.js
+++ b/BuildFeed/Scripts/trumbowyg/trumbowyg.js
@@ -1,5 +1,5 @@
/**
- * Trumbowyg v2.0.0-beta.2 - A lightweight WYSIWYG editor
+ * Trumbowyg v2.0.0-beta.4 - A lightweight WYSIWYG editor
* Trumbowyg core file
* ------------------------
* @link http://alex-d.github.io/Trumbowyg
@@ -56,7 +56,8 @@ jQuery.trumbowyg = {
required: "Required",
description: "Description",
title: "Title",
- text: "Text"
+ text: "Text",
+ target: "Target"
}
},
@@ -276,7 +277,10 @@ jQuery.trumbowyg = {
link: {
dropdown: ['createLink', 'unlink']
}
- }
+ },
+
+ blockLevelElements: ['br', 'p', 'div', 'ul', 'ol', 'table', 'img', 'address', 'article', 'aside', 'audio', 'blockquote', 'canvas', 'dl', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'main', 'nav', 'noscript', 'output', 'pre', 'section', 'tfoot', 'video']
+
}, o);
if(o.btns)
@@ -366,10 +370,6 @@ jQuery.trumbowyg = {
}
if(t.o.semantic){
- t.$ed.html(
- html.replace('
', '')
- .replace(' ', ' ')
- );
t.semanticCode();
}
@@ -419,16 +419,10 @@ jQuery.trumbowyg = {
t._ctrl = false;
}, 200);
})
- .on('focus', function(){
- t.$c.trigger('tbwfocus');
- })
- .on('blur', function(){
- t.syncCode();
- t.$c.trigger('tbwblur');
+ .on('focus blur', function(e){
+ t.$c.trigger('tbw' + e.type);
})
.on('paste', function(e){
- t.$c.trigger('tbwpaste', e);
-
if(t.o.removeformatPasted){
e.preventDefault();
@@ -443,11 +437,24 @@ jQuery.trumbowyg = {
// IE 11
t.doc.getSelection().getRangeAt(0).insertNode(document.createTextNode(text));
}
- } catch(err) {
+ } catch(err){
// Not IE
t.execCmd('insertText', (e.originalEvent || e).clipboardData.getData('text/plain'));
}
}
+
+ setTimeout(function() {
+ if(t.o.semantic) {
+ t.semanticCode(false, true);
+ } else {
+ t.syncCode();
+ }
+ t.$c.trigger('tbwpaste', e);
+ }, 0);
+
+ });
+ t.$ta.on('keyup paste', function(){
+ t.$c.trigger('tbwchange');
});
$(t.doc).on('keydown', function(e){
@@ -811,7 +818,6 @@ jQuery.trumbowyg = {
-
// HTML Code management
html: function(html){
var t = this;
@@ -824,10 +830,12 @@ jQuery.trumbowyg = {
},
syncCode: function(force){
var t = this;
- if(!force && t.$ed.is(':visible'))
+ if(!force && t.$ed.is(':visible')){
t.$ta.val(t.$ed.html());
- else
+ t.$c.trigger('tbwchange');
+ } else {
t.$ed.html(t.$ta.val());
+ }
if(t.o.autogrow){
t.height = t.$ed.height();
@@ -844,42 +852,75 @@ jQuery.trumbowyg = {
semanticCode: function(force, full){
var t = this;
t.syncCode(force);
+ t.saveSelection();
if(t.o.semantic){
- t.saveSelection();
-
t.semanticTag('b', 'strong');
t.semanticTag('i', 'em');
t.semanticTag('strike', 'del');
if(full){
- // Wrap text nodes in p
- t.$ed.contents()
- .filter(function(){
- // Only non-empty text nodes
+ var blockElementsSelector = t.o.blockLevelElements.join(', '),
+ inlineElementsSelector = ':not(' + blockElementsSelector + ')';
+
+ // Wrap text nodes in span for easier processing
+ t.$ed.contents().filter(function() {
return this.nodeType === 3 && $.trim(this.nodeValue).length > 0;
- }).wrap('
').end()
+ }).wrap('');
- // Remove all br
- .filter('br').remove();
+ // Wrap groups of inline elements in paragraphs (recursive)
+ var wrapInlinesInParagraphsFrom = function($from) {
+ if ($from.length !== 0) {
+ var $finalParagraph = $from.nextUntil(blockElementsSelector + ', br').andSelf()
+ .wrapAll('').parent();
- t.semanticTag('div', 'p');
+ $finalParagraph.next('br').remove();
+
+ var $nextElement = $finalParagraph.nextAll(inlineElementsSelector).first();
+ if ($nextElement.length) {
+ wrapInlinesInParagraphsFrom($nextElement);
+ }
+ }
+ };
+ wrapInlinesInParagraphsFrom(t.$ed.children(inlineElementsSelector).first());
+
+ t.semanticTag('div', 'p', true);
+
+ // Unwrap paragraphs content, containing nothing usefull
+ t.$ed.find('p').filter(function() {
+ if (t.selection && this === t.selection.startContainer) {
+ // Don't remove currently being edited element
+ return false;
+ }
+ return $(this).text().trim().length === 0 && $(this).children().not('br, span').length === 0;
+ }).contents().unwrap();
+
+ // Get rid of temporial span's
+ $('[data-trumbowyg-textnode]', t.$ed).contents().unwrap();
+
+ // Replace empty with
(IE loves adding empty
)
+ t.$ed.find('p:empty').replaceWith('
');
}
- t.$ta.val(t.$ed.html());
-
t.restoreSelection();
+
+ t.$ta.val(t.$ed.html());
}
},
- semanticTag: function(oldTag, newTag){
- $(oldTag, this.$ed).each(function(){
- $(this).replaceWith(function(){
- return '<'+newTag+'>' + $(this).html() + ''+newTag+'>';
- });
+
+ semanticTag: function(oldTag, newTag, copyAttributes){
+ $(oldTag, this.$ed).each(function() {
+ var $oldTag = $(this);
+ $oldTag.wrap('<' + newTag + '/>');
+ if (copyAttributes) {
+ $.each($oldTag.prop('attributes'), function() {
+ $oldTag.parent().attr(this.name, this.value);
+ });
+ }
+ $oldTag.contents().unwrap();
});
},
-
// Function call when user click on "Insert Link"
createLink: function(){
var t = this;
@@ -890,22 +931,24 @@ jQuery.trumbowyg = {
required: true
},
title: {
- label: t.lang.title,
- value: t.getSelectedText()
+ label: t.lang.title
},
text: {
label: t.lang.text,
value: t.getSelectedText()
+ },
+ target: {
+ label: t.lang.target
}
}, function(v){ // v is value
- t.execCmd('createLink', v.url);
- var l = $('a[href="'+v.url+'"]:not([title])', t.$box);
- if(v.text.length > 0)
- l.text(v.text);
-
- if(v.title.length > 0)
- l.attr('title', v.title);
-
+ var link = $(['', v.text, ''].join(''));
+ if (v.title.length > 0)
+ link.attr('title',v.title);
+ if (v.target.length > 0)
+ link.attr('target',v.target);
+ t.selection.deleteContents();
+ t.selection.insertNode(link.get(0));
+ t.restoreSelection();
return true;
});
},
@@ -953,7 +996,9 @@ jQuery.trumbowyg = {
t.doc.execCommand(cmd, false, param);
}
}
- t.syncCode();
+
+ if(cmd != 'dropdown')
+ t.syncCode();
},
@@ -979,7 +1024,7 @@ jQuery.trumbowyg = {
top: (t.$btnPane.height() + 1) + 'px'
}).appendTo(t.$box);
- // Click on overflay close modal by cancelling them
+ // Click on overlay close modal by cancelling them
t.$overlay.one('click', function(){
$modal.trigger(prefix + 'cancel');
return false;
@@ -1022,6 +1067,8 @@ jQuery.trumbowyg = {
'class': prefix + 'modal-title'
}).prependTo($box);
+ $modal.height($box.outerHeight() + 10);
+
// Focus in modal box
$('input:first', $box).focus();
diff --git a/BuildFeed/Scripts/trumbowyg/trumbowyg.min.js b/BuildFeed/Scripts/trumbowyg/trumbowyg.min.js
index 94b8d9b..60b1075 100644
--- a/BuildFeed/Scripts/trumbowyg/trumbowyg.min.js
+++ b/BuildFeed/Scripts/trumbowyg/trumbowyg.min.js
@@ -1,2 +1,2 @@
-/** Trumbowyg v2.0.0-beta.2 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
-jQuery.trumbowyg={langs:{en:{viewHTML:"View HTML",formatting:"Formatting",p:"Paragraph",blockquote:"Quote",code:"Code",header:"Header",bold:"Bold",italic:"Italic",strikethrough:"Stroke",underline:"Underline",strong:"Strong",em:"Emphasis",del:"Deleted",unorderedList:"Unordered list",orderedList:"Ordered list",insertImage:"Insert Image",insertVideo:"Insert Video",link:"Link",createLink:"Insert link",unlink:"Remove link",justifyLeft:"Align Left",justifyCenter:"Align Center",justifyRight:"Align Right",justifyFull:"Align Justify",horizontalRule:"Insert horizontal rule",removeformat:"Remove format",fullscreen:"fullscreen",close:"Close",submit:"Confirm",reset:"Cancel",required:"Required",description:"Description",title:"Title",text:"Text"}},opts:{},btnsGrps:{design:["bold","italic","underline","strikethrough"],semantic:["strong","em","del"],justify:["justifyLeft","justifyCenter","justifyRight","justifyFull"],lists:["unorderedList","orderedList"]}},function(e,t,n,o,i){"use strict";o.fn.trumbowyg=function(e,t){if(e===Object(e)||!e)return this.each(function(){o(this).data("trumbowyg")||o(this).data("trumbowyg",new r(this,e))});if(1===this.length)try{var n=o(this).data("trumbowyg");switch(e){case"openModal":return n.openModal(t.title,t.content);case"closeModal":return n.closeModal();case"openModalInsert":return n.openModalInsert(t.title,t.fields,t.callback);case"saveSelection":return n.saveSelection();case"getSelection":return n.selection;case"getSelectedText":return n.getSelectedText();case"restoreSelection":return n.restoreSelection();case"destroy":return n.destroy();case"empty":return n.empty();case"lang":return n.lang;case"html":return n.html(t)}}catch(i){}return!1};var r=function(e,t){var i=this;i.doc=e.ownerDocument||n,i.$ta=o(e),i.$c=o(e),t=o.extend(!0,{},t,o.trumbowyg.opts),i.lang="undefined"==typeof t.lang||"undefined"==typeof o.trumbowyg.langs[t.lang]?o.trumbowyg.langs.en:o.extend(!0,{},o.trumbowyg.langs.en,o.trumbowyg.langs[t.lang]);var r=i.lang.header;i.o=o.extend(!0,{},{lang:"en",dir:"ltr",closable:!1,fullscreenable:!0,fixedBtnPane:!1,fixedFullWidth:!1,autogrow:!1,prefix:"trumbowyg-",semantic:!0,resetCss:!1,removeformatPasted:!1,btns:["viewHTML","|","formatting","|","btnGrp-design","|","link","|","insertImage","|","btnGrp-justify","|","btnGrp-lists","|","horizontalRule","|","removeformat"],btnsAdd:[],btnsDef:{viewHTML:{func:"toggle"},p:{func:"formatBlock"},blockquote:{func:"formatBlock"},h1:{func:"formatBlock",title:r+" 1"},h2:{func:"formatBlock",title:r+" 2"},h3:{func:"formatBlock",title:r+" 3"},h4:{func:"formatBlock",title:r+" 4"},bold:{key:"B"},italic:{key:"I"},underline:{},strikethrough:{},strong:{func:"bold",key:"B"},em:{func:"italic",key:"I"},del:{func:"strikethrough"},createLink:{key:"K"},unlink:{},insertImage:{},justifyLeft:{},justifyCenter:{},justifyRight:{},justifyFull:{},unorderedList:{func:"insertUnorderedList"},orderedList:{func:"insertOrderedList"},horizontalRule:{func:"insertHorizontalRule"},removeformat:{},formatting:{dropdown:["p","blockquote","h1","h2","h3","h4"]},link:{dropdown:["createLink","unlink"]}}},t),t.btns?i.o.btns=t.btns:i.o.semantic&&(i.o.btns[4]="btnGrp-semantic"),i.keys=[],i.init()};r.prototype={init:function(){var e=this;e.height=e.$ta.height(),e.buildEditor(),e.buildBtnPane(),e.fixedBtnPaneEvents(),e.buildOverlay()},buildEditor:function(){var e=this,i=e.o.prefix,r="";e.$box=o("
",{"class":i+"box "+i+"editor-visible "+i+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(r=e.$ta.val(),e.$ed=o(""),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,r=e.$ed.html(),e.$ta=o("",{name:e.$ta.attr("id"),height:e.height}).val(r),e.$box.insertAfter(e.$ed).append(e.$ta,e.$ed),e.syncCode()),e.$ta.addClass(i+"textarea").attr("tabindex",-1),e.$ed.addClass(i+"editor").attr({contenteditable:!0,dir:e.lang._dir||e.o.dir}).html(r),e.$c.is("[placeholder]")&&e.$ed.attr("placeholder",e.$c.attr("placeholder")),e.o.resetCss&&e.$ed.addClass(i+"reset-css"),e.o.autogrow||e.$ta.add(e.$ed).css({height:e.height,overflow:"auto"}),e.o.semantic&&(e.$ed.html(r.replace("
","").replace(" "," ")),e.semanticCode()),e._ctrl=!1,e.$ed.on("dblclick","img",function(){var t=o(this);return e.openModalInsert(e.lang.insertImage,{url:{label:"URL",value:t.attr("src"),required:!0},alt:{label:e.lang.description,value:t.attr("alt")}},function(e){return t.attr({src:e.url,alt:e.alt})}),!1}).on("keydown",function(t){if(e._composition=229===t.which,t.ctrlKey){e._ctrl=!0;var n=e.keys[String.fromCharCode(t.which).toUpperCase()];try{return e.execCmd(n.func,n.param),!1}catch(t){}}}).on("keyup",function(t){e._ctrl||17===t.which||e._composition||(e.semanticCode(!1,13===t.which),e.$c.trigger("tbwchange")),setTimeout(function(){e._ctrl=!1},200)}).on("focus",function(){e.$c.trigger("tbwfocus")}).on("blur",function(){e.syncCode(),e.$c.trigger("tbwblur")}).on("paste",function(o){if(e.$c.trigger("tbwpaste",o),e.o.removeformatPasted){o.preventDefault();try{var i=t.clipboardData.getData("Text");try{e.doc.selection.createRange().pasteHTML(i)}catch(r){e.doc.getSelection().getRangeAt(0).insertNode(n.createTextNode(i))}}catch(r){e.execCmd("insertText",(o.originalEvent||o).clipboardData.getData("text/plain"))}}}),o(e.doc).on("keydown",function(t){return 27===t.which?(e.closeModal(),!1):void 0})},buildBtnPane:function(){var e=this,n=e.o.prefix;if(e.o.btns!==!1){e.$btnPane=o("
",{"class":n+"button-pane"}),o.each(e.o.btns.concat(e.o.btnsAdd),function(t,r){try{var a=r.split("btnGrp-");a[1]!==i&&(r=o.trumbowyg.btnsGrps[a[1]])}catch(s){}o.isArray(r)||(r=[r]),o.each(r,function(t,i){try{var r=o("");"|"===i?r.addClass(n+"separator"):e.isSupportedBtn(i)&&r.append(e.buildBtn(i)),e.$btnPane.append(r)}catch(a){}})});var r=o("",{"class":n+"not-disable "+n+"buttons-right"});e.o.fullscreenable&&r.append(e.buildRightBtn("fullscreen").on("click",function(){var i=n+"fullscreen";e.$box.toggleClass(i),e.$box.hasClass(i)?(o("body").addClass(n+"body-fullscreen"),o.each([e.$ta,e.$ed],function(){o(this).css({height:"calc(100% - 35px)",overflow:"auto"})}),e.$btnPane.css("width","100%")):(o("body").removeClass(n+"body-fullscreen"),e.$box.removeAttr("style"),e.o.autogrow||o.each([e.$ta,e.$ed],function(){o(this).css("height",e.height)})),o(t).trigger("scroll")})),e.o.closable&&r.append(e.buildRightBtn("close").on("click",function(){e.$box.hasClass(n+"fullscreen")&&o("body").css("overflow","auto"),e.destroy(),e.$c.trigger("tbwclose")})),r.not(":empty")&&e.$btnPane.append(r),e.$box.prepend(e.$btnPane)}},buildBtn:function(e){var t=this,n=t.o.prefix,i=t.o.btnsDef[e],r=i.dropdown,a=t.lang[e]||e,s=o("",{type:"button","class":n+e+"-button"+(i.ico?" "+n+i.ico+"-button":""),text:i.text||i.title||a,title:i.title||i.text||a+(i.key?" (Ctrl + "+i.key+")":""),tabindex:-1,mousedown:function(){return(!r||o("."+e+"-"+n+"dropdown",t.$box).is(":hidden"))&&o("body",t.doc).trigger("mousedown"),!t.$btnPane.hasClass(n+"disable")||o(this).hasClass(n+"active")||o(this).parent().hasClass(n+"not-disable")?(t.execCmd((r?"dropdown":!1)||i.func||e,i.param||e),!1):!1}});if(r){s.addClass(n+"open-dropdown");var l=n+"dropdown",c=o("",{"class":e+"-"+l+" "+l+" "+n+"fixed-top"});o.each(r,function(e,n){t.o.btnsDef[n]&&t.isSupportedBtn(n)&&c.append(t.buildSubBtn(n))}),t.$box.append(c.hide())}else i.key&&(t.keys[i.key]={func:i.func||e,param:i.param||e});return s},buildSubBtn:function(e){var t=this,n=t.o.btnsDef[e];return n.key&&(t.keys[n.key]={func:n.func||e,param:n.param||e}),o("",{type:"button","class":t.o.prefix+e+"-dropdown-button"+(n.ico?" "+t.o.prefix+n.ico+"-button":""),text:n.text||n.title||t.lang[e]||e,title:n.key?" (Ctrl + "+n.key+")":null,style:n.style||null,mousedown:function(){return o("body",t.doc).trigger("mousedown"),t.execCmd(n.func||e,n.param||e),!1}})},buildRightBtn:function(e){var t=this.lang[e];return o("",{type:"button","class":this.o.prefix+e+"-button",title:t,text:t,tabindex:-1})},isSupportedBtn:function(e){try{return this.o.btnsDef[e].isSupported()}catch(t){}return!0},buildOverlay:function(){var e=this;return e.$overlay=o("",{"class":e.o.prefix+"overlay"}).css({top:e.$btnPane.outerHeight(),height:e.$ed.outerHeight()+1+"px"}).appendTo(e.$box),e.$overlay},showOverlay:function(){var e=this;o(t).trigger("scroll"),e.$overlay.fadeIn(200),e.$box.addClass(e.o.prefix+"box-blur")},hideOverlay:function(){var e=this;e.$overlay.fadeOut(50),e.$box.removeClass(e.o.prefix+"box-blur")},fixedBtnPaneEvents:function(){var e=this,n=e.o.fixedFullWidth,i=e.$box;e.o.fixedBtnPane&&(e.isFixed=!1,o(t).on("scroll resize",function(){if(i){e.syncCode();var r=o(t).scrollTop(),a=i.offset().top+1,s=e.$btnPane,l=s.outerHeight();r-a>0&&r-a-e.height<0?(e.isFixed||(e.isFixed=!0,s.css({position:"fixed",top:0,left:n?"0":"auto",zIndex:7}),o([e.$ta,e.$ed]).css({marginTop:s.height()})),s.css({width:n?"100%":i.width()-1+"px"}),o("."+e.o.prefix+"fixed-top",i).css({position:n?"fixed":"absolute",top:n?l:l+(r-a)+"px",zIndex:15})):e.isFixed&&(e.isFixed=!1,s.removeAttr("style"),o([e.$ta,e.$ed]).css({marginTop:0}),o("."+e.o.prefix+"fixed-top",i).css({position:"absolute",top:l}))}}))},destroy:function(){var e=this,t=e.o.prefix,n=e.height,o=e.html();e.isTextarea?e.$box.after(e.$ta.css({height:n}).val(o).removeClass(t+"textarea").show()):e.$box.after(e.$ed.css({height:n}).removeClass(t+"editor").removeAttr("contenteditable").html(o).show()),e.$box.remove(),e.$c.removeData("trumbowyg")},empty:function(){this.$ta.val(""),this.syncCode(!0)},toggle:function(){var e=this,t=e.o.prefix;e.semanticCode(!1,!0),e.$box.toggleClass(t+"editor-hidden "+t+"editor-visible"),e.$btnPane.toggleClass(t+"disable"),o("."+t+"viewHTML-button",e.$btnPane).toggleClass(t+"active"),e.$box.hasClass(t+"editor-visible")?e.$ta.attr("tabindex",-1):e.$ta.removeAttr("tabindex")},dropdown:function(e){var n=this,i=n.doc,r=n.o.prefix,a=o("."+e+"-"+r+"dropdown",n.$box),s=o("."+r+e+"-button",n.$btnPane);if(a.is(":hidden")){var l=s.offset().left;s.addClass(r+"active"),a.css({position:"absolute",top:n.$btnPane.outerHeight(),left:n.o.fixedFullWidth&&n.isFixed?l+"px":l-n.$btnPane.offset().left+"px"}).show(),o(t).trigger("scroll"),o("body",i).on("mousedown",function(){o("."+r+"dropdown",i).hide(),o("."+r+"active",i).removeClass(r+"active"),o("body",i).off("mousedown")})}else o("body",i).trigger("mousedown")},html:function(e){var t=this;return e?(t.$ta.val(e),t.syncCode(!0),t):t.$ta.val()},syncCode:function(e){var t=this;!e&&t.$ed.is(":visible")?t.$ta.val(t.$ed.html()):t.$ed.html(t.$ta.val()),t.o.autogrow&&(t.height=t.$ed.height(),t.height!=t.$ta.css("height")&&(t.$ta.css({height:t.height}),t.$c.trigger("tbwresize")))},semanticCode:function(e,t){var n=this;n.syncCode(e),n.o.semantic&&(n.saveSelection(),n.semanticTag("b","strong"),n.semanticTag("i","em"),n.semanticTag("strike","del"),t&&(n.$ed.contents().filter(function(){return 3===this.nodeType&&o.trim(this.nodeValue).length>0}).wrap("").end().filter("br").remove(),n.semanticTag("div","p")),n.$ta.val(n.$ed.html()),n.restoreSelection())},semanticTag:function(e,t){o(e,this.$ed).each(function(){o(this).replaceWith(function(){return"<"+t+">"+o(this).html()+""+t+">"})})},createLink:function(){var e=this;e.saveSelection(),e.openModalInsert(e.lang.createLink,{url:{label:"URL",required:!0},title:{label:e.lang.title,value:e.getSelectedText()},text:{label:e.lang.text,value:e.getSelectedText()}},function(t){e.execCmd("createLink",t.url);var n=o('a[href="'+t.url+'"]:not([title])',e.$box);return t.text.length>0&&n.text(t.text),t.title.length>0&&n.attr("title",t.title),!0})},insertImage:function(){var e=this;e.saveSelection(),e.openModalInsert(e.lang.insertImage,{url:{label:"URL",required:!0},alt:{label:e.lang.description,value:e.getSelectedText()}},function(t){return e.execCmd("insertImage",t.url),o('img[src="'+t.url+'"]:not([alt])',e.$box).attr("alt",t.alt),!0})},execCmd:function(t,n){var o=this;"dropdown"!=t&&o.$ed.focus();try{o[t](n)}catch(i){try{t(n,o)}catch(r){"insertHorizontalRule"==t?n=null:"formatBlock"==t&&(-1!==e.userAgent.indexOf("MSIE")||e.appVersion.indexOf("Trident/")>0)&&(n="<"+n+">"),o.doc.execCommand(t,!1,n)}}o.syncCode()},openModal:function(e,n){var i=this,r=i.o.prefix;if(o("."+r+"modal-box",i.$box).length>0)return!1;i.saveSelection(),i.showOverlay(),i.$btnPane.addClass(r+"disable");var a=o("",{"class":r+"modal "+r+"fixed-top"}).css({top:i.$btnPane.height()+1+"px"}).appendTo(i.$box);i.$overlay.one("click",function(){return a.trigger(r+"cancel"),!1});var s=o("",{action:"",html:n}).on("submit",function(){return a.trigger(r+"confirm"),!1}).on("reset",function(){return a.trigger(r+"cancel"),!1}),l=o("",{"class":r+"modal-box",html:s}).css({top:"-"+i.$btnPane.outerHeight()+"px",opacity:0}).appendTo(a).animate({top:0,opacity:1},100);return o("",{text:e,"class":r+"modal-title"}).prependTo(l),o("input:first",l).focus(),i.buildModalBtn("submit",l),i.buildModalBtn("reset",l),o(t).trigger("scroll"),a},buildModalBtn:function(e,t){var n=this,i=n.o.prefix;return o("",{"class":i+"modal-button "+i+"modal-"+e,type:e,text:n.lang[e]||e}).appendTo(o("form",t))},closeModal:function(){var e=this,t=e.o.prefix;e.$btnPane.removeClass(t+"disable"),e.$overlay.off();var n=o("."+t+"modal-box",e.$box);n.animate({top:"-"+n.height()},100,function(){n.parent().remove(),e.hideOverlay()}),e.restoreSelection()},openModalInsert:function(e,t,n){var i=this,r=i.o.prefix,a=i.lang,s="";for(var l in t){var c=t[l],d=c.label,u=c.name?c.name:l;s+='"}return i.openModal(e,s).on(r+"confirm",function(){var e=o("form",o(this)),a=!0,s={};for(var l in t){var c=o('input[name="'+l+'"]',e);s[l]=o.trim(c.val()),t[l].required&&""===s[l]?(a=!1,i.addErrorOnModalField(c,i.lang.required)):t[l].pattern&&!t[l].pattern.test(s[l])&&(a=!1,i.addErrorOnModalField(c,t[l].patternError))}a&&(i.restoreSelection(),n(s,t)&&(i.syncCode(),i.closeModal(),o(this).off(r+"confirm")))}).one(r+"cancel",function(){o(this).off(r+"confirm"),i.closeModal()})},addErrorOnModalField:function(e,t){var n=this.o.prefix,i=e.parent();e.on("change keyup",function(){i.removeClass(n+"input-error")}),i.addClass(n+"input-error").find("input+span").append(o("",{"class":n+"msg-error",text:t}))},saveSelection:function(){var e=this,n=e.doc.selection;if(e.selection=null,t.getSelection){var o=t.getSelection();o.getRangeAt&&o.rangeCount&&(e.selection=o.getRangeAt(0))}else n&&n.createRange&&(e.selection=n.createRange())},restoreSelection:function(){var e=this,n=e.selection;if(n)if(t.getSelection){var o=t.getSelection();o.removeAllRanges(),o.addRange(n)}else e.doc.selection&&n.select&&n.select()},getSelectedText:function(){var e=this.selection;return e.text!==i?e.text:e+""}}}(navigator,window,document,jQuery);
\ No newline at end of file
+/** Trumbowyg v2.0.0-beta.4 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
+jQuery.trumbowyg={langs:{en:{viewHTML:"View HTML",formatting:"Formatting",p:"Paragraph",blockquote:"Quote",code:"Code",header:"Header",bold:"Bold",italic:"Italic",strikethrough:"Stroke",underline:"Underline",strong:"Strong",em:"Emphasis",del:"Deleted",unorderedList:"Unordered list",orderedList:"Ordered list",insertImage:"Insert Image",insertVideo:"Insert Video",link:"Link",createLink:"Insert link",unlink:"Remove link",justifyLeft:"Align Left",justifyCenter:"Align Center",justifyRight:"Align Right",justifyFull:"Align Justify",horizontalRule:"Insert horizontal rule",removeformat:"Remove format",fullscreen:"fullscreen",close:"Close",submit:"Confirm",reset:"Cancel",required:"Required",description:"Description",title:"Title",text:"Text",target:"Target"}},opts:{},btnsGrps:{design:["bold","italic","underline","strikethrough"],semantic:["strong","em","del"],justify:["justifyLeft","justifyCenter","justifyRight","justifyFull"],lists:["unorderedList","orderedList"]}},function(e,t,n,o,r){"use strict";o.fn.trumbowyg=function(e,t){if(e===Object(e)||!e)return this.each(function(){o(this).data("trumbowyg")||o(this).data("trumbowyg",new i(this,e))});if(1===this.length)try{var n=o(this).data("trumbowyg");switch(e){case"openModal":return n.openModal(t.title,t.content);case"closeModal":return n.closeModal();case"openModalInsert":return n.openModalInsert(t.title,t.fields,t.callback);case"saveSelection":return n.saveSelection();case"getSelection":return n.selection;case"getSelectedText":return n.getSelectedText();case"restoreSelection":return n.restoreSelection();case"destroy":return n.destroy();case"empty":return n.empty();case"lang":return n.lang;case"html":return n.html(t)}}catch(r){}return!1};var i=function(e,t){var r=this;r.doc=e.ownerDocument||n,r.$ta=o(e),r.$c=o(e),t=o.extend(!0,{},t,o.trumbowyg.opts),r.lang="undefined"==typeof t.lang||"undefined"==typeof o.trumbowyg.langs[t.lang]?o.trumbowyg.langs.en:o.extend(!0,{},o.trumbowyg.langs.en,o.trumbowyg.langs[t.lang]);var i=r.lang.header;r.o=o.extend(!0,{},{lang:"en",dir:"ltr",closable:!1,fullscreenable:!0,fixedBtnPane:!1,fixedFullWidth:!1,autogrow:!1,prefix:"trumbowyg-",semantic:!0,resetCss:!1,removeformatPasted:!1,btns:["viewHTML","|","formatting","|","btnGrp-design","|","link","|","insertImage","|","btnGrp-justify","|","btnGrp-lists","|","horizontalRule","|","removeformat"],btnsAdd:[],btnsDef:{viewHTML:{func:"toggle"},p:{func:"formatBlock"},blockquote:{func:"formatBlock"},h1:{func:"formatBlock",title:i+" 1"},h2:{func:"formatBlock",title:i+" 2"},h3:{func:"formatBlock",title:i+" 3"},h4:{func:"formatBlock",title:i+" 4"},bold:{key:"B"},italic:{key:"I"},underline:{},strikethrough:{},strong:{func:"bold",key:"B"},em:{func:"italic",key:"I"},del:{func:"strikethrough"},createLink:{key:"K"},unlink:{},insertImage:{},justifyLeft:{},justifyCenter:{},justifyRight:{},justifyFull:{},unorderedList:{func:"insertUnorderedList"},orderedList:{func:"insertOrderedList"},horizontalRule:{func:"insertHorizontalRule"},removeformat:{},formatting:{dropdown:["p","blockquote","h1","h2","h3","h4"]},link:{dropdown:["createLink","unlink"]}},blockLevelElements:["br","p","div","ul","ol","table","img","address","article","aside","audio","blockquote","canvas","dl","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","noscript","output","pre","section","tfoot","video"]},t),t.btns?r.o.btns=t.btns:r.o.semantic&&(r.o.btns[4]="btnGrp-semantic"),r.keys=[],r.init()};i.prototype={init:function(){var e=this;e.height=e.$ta.height(),e.buildEditor(),e.buildBtnPane(),e.fixedBtnPaneEvents(),e.buildOverlay()},buildEditor:function(){var e=this,r=e.o.prefix,i="";e.$box=o("",{"class":r+"box "+r+"editor-visible "+r+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(i=e.$ta.val(),e.$ed=o(""),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,i=e.$ed.html(),e.$ta=o("",{name:e.$ta.attr("id"),height:e.height}).val(i),e.$box.insertAfter(e.$ed).append(e.$ta,e.$ed),e.syncCode()),e.$ta.addClass(r+"textarea").attr("tabindex",-1),e.$ed.addClass(r+"editor").attr({contenteditable:!0,dir:e.lang._dir||e.o.dir}).html(i),e.$c.is("[placeholder]")&&e.$ed.attr("placeholder",e.$c.attr("placeholder")),e.o.resetCss&&e.$ed.addClass(r+"reset-css"),e.o.autogrow||e.$ta.add(e.$ed).css({height:e.height,overflow:"auto"}),e.o.semantic&&e.semanticCode(),e._ctrl=!1,e.$ed.on("dblclick","img",function(){var t=o(this);return e.openModalInsert(e.lang.insertImage,{url:{label:"URL",value:t.attr("src"),required:!0},alt:{label:e.lang.description,value:t.attr("alt")}},function(e){return t.attr({src:e.url,alt:e.alt})}),!1}).on("keydown",function(t){if(e._composition=229===t.which,t.ctrlKey){e._ctrl=!0;var n=e.keys[String.fromCharCode(t.which).toUpperCase()];try{return e.execCmd(n.func,n.param),!1}catch(t){}}}).on("keyup",function(t){e._ctrl||17===t.which||e._composition||(e.semanticCode(!1,13===t.which),e.$c.trigger("tbwchange")),setTimeout(function(){e._ctrl=!1},200)}).on("focus blur",function(t){e.$c.trigger("tbw"+t.type)}).on("paste",function(o){if(e.o.removeformatPasted){o.preventDefault();try{var r=t.clipboardData.getData("Text");try{e.doc.selection.createRange().pasteHTML(r)}catch(i){e.doc.getSelection().getRangeAt(0).insertNode(n.createTextNode(r))}}catch(i){e.execCmd("insertText",(o.originalEvent||o).clipboardData.getData("text/plain"))}}setTimeout(function(){e.o.semantic?e.semanticCode(!1,!0):e.syncCode(),e.$c.trigger("tbwpaste",o)},0)}),e.$ta.on("keyup paste",function(){e.$c.trigger("tbwchange")}),o(e.doc).on("keydown",function(t){return 27===t.which?(e.closeModal(),!1):void 0})},buildBtnPane:function(){var e=this,n=e.o.prefix;if(e.o.btns!==!1){e.$btnPane=o("",{"class":n+"button-pane"}),o.each(e.o.btns.concat(e.o.btnsAdd),function(t,i){try{var a=i.split("btnGrp-");a[1]!==r&&(i=o.trumbowyg.btnsGrps[a[1]])}catch(s){}o.isArray(i)||(i=[i]),o.each(i,function(t,r){try{var i=o("");"|"===r?i.addClass(n+"separator"):e.isSupportedBtn(r)&&i.append(e.buildBtn(r)),e.$btnPane.append(i)}catch(a){}})});var i=o("",{"class":n+"not-disable "+n+"buttons-right"});e.o.fullscreenable&&i.append(e.buildRightBtn("fullscreen").on("click",function(){var r=n+"fullscreen";e.$box.toggleClass(r),e.$box.hasClass(r)?(o("body").addClass(n+"body-fullscreen"),o.each([e.$ta,e.$ed],function(){o(this).css({height:"calc(100% - 35px)",overflow:"auto"})}),e.$btnPane.css("width","100%")):(o("body").removeClass(n+"body-fullscreen"),e.$box.removeAttr("style"),e.o.autogrow||o.each([e.$ta,e.$ed],function(){o(this).css("height",e.height)})),o(t).trigger("scroll")})),e.o.closable&&i.append(e.buildRightBtn("close").on("click",function(){e.$box.hasClass(n+"fullscreen")&&o("body").css("overflow","auto"),e.destroy(),e.$c.trigger("tbwclose")})),i.not(":empty")&&e.$btnPane.append(i),e.$box.prepend(e.$btnPane)}},buildBtn:function(e){var t=this,n=t.o.prefix,r=t.o.btnsDef[e],i=r.dropdown,a=t.lang[e]||e,s=o("",{type:"button","class":n+e+"-button"+(r.ico?" "+n+r.ico+"-button":""),text:r.text||r.title||a,title:r.title||r.text||a+(r.key?" (Ctrl + "+r.key+")":""),tabindex:-1,mousedown:function(){return(!i||o("."+e+"-"+n+"dropdown",t.$box).is(":hidden"))&&o("body",t.doc).trigger("mousedown"),!t.$btnPane.hasClass(n+"disable")||o(this).hasClass(n+"active")||o(this).parent().hasClass(n+"not-disable")?(t.execCmd((i?"dropdown":!1)||r.func||e,r.param||e),!1):!1}});if(i){s.addClass(n+"open-dropdown");var l=n+"dropdown",c=o("",{"class":e+"-"+l+" "+l+" "+n+"fixed-top"});o.each(i,function(e,n){t.o.btnsDef[n]&&t.isSupportedBtn(n)&&c.append(t.buildSubBtn(n))}),t.$box.append(c.hide())}else r.key&&(t.keys[r.key]={func:r.func||e,param:r.param||e});return s},buildSubBtn:function(e){var t=this,n=t.o.btnsDef[e];return n.key&&(t.keys[n.key]={func:n.func||e,param:n.param||e}),o("",{type:"button","class":t.o.prefix+e+"-dropdown-button"+(n.ico?" "+t.o.prefix+n.ico+"-button":""),text:n.text||n.title||t.lang[e]||e,title:n.key?" (Ctrl + "+n.key+")":null,style:n.style||null,mousedown:function(){return o("body",t.doc).trigger("mousedown"),t.execCmd(n.func||e,n.param||e),!1}})},buildRightBtn:function(e){var t=this.lang[e];return o("",{type:"button","class":this.o.prefix+e+"-button",title:t,text:t,tabindex:-1})},isSupportedBtn:function(e){try{return this.o.btnsDef[e].isSupported()}catch(t){}return!0},buildOverlay:function(){var e=this;return e.$overlay=o("",{"class":e.o.prefix+"overlay"}).css({top:e.$btnPane.outerHeight(),height:e.$ed.outerHeight()+1+"px"}).appendTo(e.$box),e.$overlay},showOverlay:function(){var e=this;o(t).trigger("scroll"),e.$overlay.fadeIn(200),e.$box.addClass(e.o.prefix+"box-blur")},hideOverlay:function(){var e=this;e.$overlay.fadeOut(50),e.$box.removeClass(e.o.prefix+"box-blur")},fixedBtnPaneEvents:function(){var e=this,n=e.o.fixedFullWidth,r=e.$box;e.o.fixedBtnPane&&(e.isFixed=!1,o(t).on("scroll resize",function(){if(r){e.syncCode();var i=o(t).scrollTop(),a=r.offset().top+1,s=e.$btnPane,l=s.outerHeight();i-a>0&&i-a-e.height<0?(e.isFixed||(e.isFixed=!0,s.css({position:"fixed",top:0,left:n?"0":"auto",zIndex:7}),o([e.$ta,e.$ed]).css({marginTop:s.height()})),s.css({width:n?"100%":r.width()-1+"px"}),o("."+e.o.prefix+"fixed-top",r).css({position:n?"fixed":"absolute",top:n?l:l+(i-a)+"px",zIndex:15})):e.isFixed&&(e.isFixed=!1,s.removeAttr("style"),o([e.$ta,e.$ed]).css({marginTop:0}),o("."+e.o.prefix+"fixed-top",r).css({position:"absolute",top:l}))}}))},destroy:function(){var e=this,t=e.o.prefix,n=e.height,o=e.html();e.isTextarea?e.$box.after(e.$ta.css({height:n}).val(o).removeClass(t+"textarea").show()):e.$box.after(e.$ed.css({height:n}).removeClass(t+"editor").removeAttr("contenteditable").html(o).show()),e.$box.remove(),e.$c.removeData("trumbowyg")},empty:function(){this.$ta.val(""),this.syncCode(!0)},toggle:function(){var e=this,t=e.o.prefix;e.semanticCode(!1,!0),e.$box.toggleClass(t+"editor-hidden "+t+"editor-visible"),e.$btnPane.toggleClass(t+"disable"),o("."+t+"viewHTML-button",e.$btnPane).toggleClass(t+"active"),e.$box.hasClass(t+"editor-visible")?e.$ta.attr("tabindex",-1):e.$ta.removeAttr("tabindex")},dropdown:function(e){var n=this,r=n.doc,i=n.o.prefix,a=o("."+e+"-"+i+"dropdown",n.$box),s=o("."+i+e+"-button",n.$btnPane);if(a.is(":hidden")){var l=s.offset().left;s.addClass(i+"active"),a.css({position:"absolute",top:n.$btnPane.outerHeight(),left:n.o.fixedFullWidth&&n.isFixed?l+"px":l-n.$btnPane.offset().left+"px"}).show(),o(t).trigger("scroll"),o("body",r).on("mousedown",function(){o("."+i+"dropdown",r).hide(),o("."+i+"active",r).removeClass(i+"active"),o("body",r).off("mousedown")})}else o("body",r).trigger("mousedown")},html:function(e){var t=this;return e?(t.$ta.val(e),t.syncCode(!0),t):t.$ta.val()},syncCode:function(e){var t=this;!e&&t.$ed.is(":visible")?(t.$ta.val(t.$ed.html()),t.$c.trigger("tbwchange")):t.$ed.html(t.$ta.val()),t.o.autogrow&&(t.height=t.$ed.height(),t.height!=t.$ta.css("height")&&(t.$ta.css({height:t.height}),t.$c.trigger("tbwresize")))},semanticCode:function(e,t){var n=this;if(n.syncCode(e),n.saveSelection(),n.o.semantic){if(n.semanticTag("b","strong"),n.semanticTag("i","em"),n.semanticTag("strike","del"),t){var r=n.o.blockLevelElements.join(", "),i=":not("+r+")";n.$ed.contents().filter(function(){return 3===this.nodeType&&o.trim(this.nodeValue).length>0}).wrap("");var a=function(e){if(0!==e.length){var t=e.nextUntil(r+", br").andSelf().wrapAll("").parent();t.next("br").remove();var n=t.nextAll(i).first();n.length&&a(n)}};a(n.$ed.children(i).first()),n.semanticTag("div","p",!0),n.$ed.find("p").filter(function(){return n.selection&&this===n.selection.startContainer?!1:0===o(this).text().trim().length&&0===o(this).children().not("br, span").length}).contents().unwrap(),o("[data-trumbowyg-textnode]",n.$ed).contents().unwrap(),n.$ed.find("p:empty").replaceWith("
")}n.restoreSelection(),n.$ta.val(n.$ed.html())}},semanticTag:function(e,t,n){o(e,this.$ed).each(function(){var e=o(this);e.wrap("<"+t+"/>"),n&&o.each(e.prop("attributes"),function(){e.parent().attr(this.name,this.value)}),e.contents().unwrap()})},createLink:function(){var e=this;e.saveSelection(),e.openModalInsert(e.lang.createLink,{url:{label:"URL",required:!0},title:{label:e.lang.title},text:{label:e.lang.text,value:e.getSelectedText()},target:{label:e.lang.target}},function(t){var n=o(['',t.text,""].join(""));return t.title.length>0&&n.attr("title",t.title),t.target.length>0&&n.attr("target",t.target),e.selection.deleteContents(),e.selection.insertNode(n.get(0)),e.restoreSelection(),!0})},insertImage:function(){var e=this;e.saveSelection(),e.openModalInsert(e.lang.insertImage,{url:{label:"URL",required:!0},alt:{label:e.lang.description,value:e.getSelectedText()}},function(t){return e.execCmd("insertImage",t.url),o('img[src="'+t.url+'"]:not([alt])',e.$box).attr("alt",t.alt),!0})},execCmd:function(t,n){var o=this;"dropdown"!=t&&o.$ed.focus();try{o[t](n)}catch(r){try{t(n,o)}catch(i){"insertHorizontalRule"==t?n=null:"formatBlock"==t&&(-1!==e.userAgent.indexOf("MSIE")||e.appVersion.indexOf("Trident/")>0)&&(n="<"+n+">"),o.doc.execCommand(t,!1,n)}}"dropdown"!=t&&o.syncCode()},openModal:function(e,n){var r=this,i=r.o.prefix;if(o("."+i+"modal-box",r.$box).length>0)return!1;r.saveSelection(),r.showOverlay(),r.$btnPane.addClass(i+"disable");var a=o("",{"class":i+"modal "+i+"fixed-top"}).css({top:r.$btnPane.height()+1+"px"}).appendTo(r.$box);r.$overlay.one("click",function(){return a.trigger(i+"cancel"),!1});var s=o("",{action:"",html:n}).on("submit",function(){return a.trigger(i+"confirm"),!1}).on("reset",function(){return a.trigger(i+"cancel"),!1}),l=o("",{"class":i+"modal-box",html:s}).css({top:"-"+r.$btnPane.outerHeight()+"px",opacity:0}).appendTo(a).animate({top:0,opacity:1},100);return o("",{text:e,"class":i+"modal-title"}).prependTo(l),a.height(l.outerHeight()+10),o("input:first",l).focus(),r.buildModalBtn("submit",l),r.buildModalBtn("reset",l),o(t).trigger("scroll"),a},buildModalBtn:function(e,t){var n=this,r=n.o.prefix;return o("",{"class":r+"modal-button "+r+"modal-"+e,type:e,text:n.lang[e]||e}).appendTo(o("form",t))},closeModal:function(){var e=this,t=e.o.prefix;e.$btnPane.removeClass(t+"disable"),e.$overlay.off();var n=o("."+t+"modal-box",e.$box);n.animate({top:"-"+n.height()},100,function(){n.parent().remove(),e.hideOverlay()}),e.restoreSelection()},openModalInsert:function(e,t,n){var r=this,i=r.o.prefix,a=r.lang,s="";for(var l in t){var c=t[l],d=c.label,u=c.name?c.name:l;s+='"}return r.openModal(e,s).on(i+"confirm",function(){var e=o("form",o(this)),a=!0,s={};for(var l in t){var c=o('input[name="'+l+'"]',e);s[l]=o.trim(c.val()),t[l].required&&""===s[l]?(a=!1,r.addErrorOnModalField(c,r.lang.required)):t[l].pattern&&!t[l].pattern.test(s[l])&&(a=!1,r.addErrorOnModalField(c,t[l].patternError))}a&&(r.restoreSelection(),n(s,t)&&(r.syncCode(),r.closeModal(),o(this).off(i+"confirm")))}).one(i+"cancel",function(){o(this).off(i+"confirm"),r.closeModal()})},addErrorOnModalField:function(e,t){var n=this.o.prefix,r=e.parent();e.on("change keyup",function(){r.removeClass(n+"input-error")}),r.addClass(n+"input-error").find("input+span").append(o("",{"class":n+"msg-error",text:t}))},saveSelection:function(){var e=this,n=e.doc.selection;if(e.selection=null,t.getSelection){var o=t.getSelection();o.getRangeAt&&o.rangeCount&&(e.selection=o.getRangeAt(0))}else n&&n.createRange&&(e.selection=n.createRange())},restoreSelection:function(){var e=this,n=e.selection;if(n)if(t.getSelection){var o=t.getSelection();o.removeAllRanges(),o.addRange(n)}else e.doc.selection&&n.select&&n.select()},getSelectedText:function(){var e=this.selection;return e.text!==r?e.text:e+""}}}(navigator,window,document,jQuery);
\ No newline at end of file
diff --git a/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.css b/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.css
index ed0c020..3a3d561 100644
--- a/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.css
+++ b/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.css
@@ -1,5 +1,5 @@
/**
- * Trumbowyg v2.0.0-beta.2 - A lightweight WYSIWYG editor
+ * Trumbowyg v2.0.0-beta.4 - A lightweight WYSIWYG editor
* Default stylesheet for Trumbowyg editor
* ------------------------
* @link http://alex-d.github.io/Trumbowyg
@@ -9,6 +9,11 @@
* Website : alex-d.fr
*/
+.trumbowyg-box *, .trumbowyg-box *::before, .trumbowyg-box *::after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
.trumbowyg-box, .trumbowyg-editor {
display: block;
position: relative;
@@ -46,7 +51,10 @@
display: block;
overflow: auto;
border: none;
- white-space: normal; }
+ white-space: normal;
+ font-size: 14px;
+ font-family: "Inconsolata", "Consolas", "Courier", "Courier New", sans-serif;
+ line-height: 18px; }
.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea {
position: absolute;
@@ -55,7 +63,8 @@
width: 25%;
min-height: 0 !important;
padding: 0 !important;
- background: none; }
+ background: none;
+ opacity: 0; }
.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea {
display: block; }
@@ -147,8 +156,10 @@
left: 50%;
margin-left: -260px;
width: 520px;
- height: 290px;
- overflow: hidden; }
+ height: 350px;
+ overflow: hidden;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
.trumbowyg-modal-box {
position: absolute;
@@ -156,10 +167,11 @@
left: 50%;
margin-left: -250px;
width: 500px;
- height: 275px;
+ padding-bottom: 45px;
z-index: 1;
background-color: #FFF;
text-align: center;
+ font-size: 14px;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 3px;
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 3px;
-webkit-backface-visibility: hidden;
@@ -200,11 +212,11 @@
transition: all 0.15; }
.trumbowyg-modal-box label .trumbowyg-input-infos span {
display: block;
- color: #859fa5;
+ color: #69878e;
background-color: #fbfcfc;
border: 1px solid #DEDEDE;
- padding: 0 2%;
- width: 19.5%; }
+ padding: 0 7px;
+ width: 137px; }
.trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error {
color: #e74c3c; }
.trumbowyg-modal-box label.trumbowyg-input-error input, .trumbowyg-modal-box label.trumbowyg-input-error textarea {
@@ -215,13 +227,13 @@
position: absolute;
top: 0;
right: 0;
- height: 25px;
- line-height: 25px;
+ height: 27px;
+ line-height: 27px;
border: 1px solid #DEDEDE;
background: transparent;
- width: 72%;
- padding: 0 2%;
- margin: 0 0 0 23%;
+ font-size: 14px;
+ width: 340px;
+ padding: 0 7px;
-webkit-transition: all 0.15s;
transition: all 0.15s; }
.trumbowyg-modal-box label input:hover, .trumbowyg-modal-box label input:focus {
diff --git a/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.min.css b/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.min.css
index 311f9c3..f3f3344 100644
--- a/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.min.css
+++ b/BuildFeed/Scripts/trumbowyg/ui/trumbowyg.min.css
@@ -1,2 +1,2 @@
-/** Trumbowyg v2.0.0-beta.2 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
-.trumbowyg-box,.trumbowyg-editor{display:block;position:relative;border:1px solid #DDD;width:96%;min-height:300px;margin:17px auto}.trumbowyg-box .trumbowyg-editor{margin:0 auto}.trumbowyg-box.trumbowyg-fullscreen{background:#FEFEFE}.trumbowyg-editor,.trumbowyg-textarea{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1% 2%;min-height:300px;width:100%;border-style:none;resize:none;outline:0}.trumbowyg-box-blur .trumbowyg-editor *{color:transparent!important;text-shadow:0 0 7px #333}.trumbowyg-box-blur .trumbowyg-editor img{opacity:.2}.trumbowyg-textarea{position:relative;display:block;overflow:auto;border:none;white-space:normal}.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea{position:absolute;top:37px;height:1px!important;width:25%;min-height:0!important;padding:0!important;background:0 0}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea{display:block}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-editor{display:none}.trumbowyg-editor[contenteditable=true]:empty:before{content:attr(placeholder);color:#999}.trumbowyg-button-pane{position:relative;width:100%;background:#ecf0f1;border-bottom:1px solid #d7e0e2;margin:0;padding:0;list-style-type:none;line-height:10px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-button-pane li{display:inline-block;text-align:center;overflow:hidden;padding:0!important}.trumbowyg-button-pane li.trumbowyg-separator{width:1px;background:#d7e0e2;margin:0 5px;height:35px}.trumbowyg-button-pane.trumbowyg-disable li:not(.trumbowyg-not-disable) button:not(.trumbowyg-active){opacity:.2;cursor:default}.trumbowyg-button-pane.trumbowyg-disable li.trumbowyg-separator{background:#e3e9eb}.trumbowyg-button-pane li button{padding:1px 6px!important}.trumbowyg-button-pane li button.trumbowyg-active,.trumbowyg-button-pane li.trumbowyg-not-disable button:focus,.trumbowyg-button-pane li.trumbowyg-not-disable button:hover,.trumbowyg-button-pane:not(.trumbowyg-disable) li button:focus,.trumbowyg-button-pane:not(.trumbowyg-disable) li button:hover{background-color:#FFF;outline:0}.trumbowyg-button-pane li .trumbowyg-open-dropdown:after{display:block;content:" ";position:absolute;top:25px;right:3px;height:0;width:0;border:3px solid transparent;border-top-color:#555}.trumbowyg-button-pane .trumbowyg-buttons-right{float:right;width:auto}.trumbowyg-button-pane .trumbowyg-buttons-right button{float:left}.trumbowyg-dropdown{width:200px;border:1px solid #ecf0f1;padding:5px 0;border-top:none;background:#FFF;margin-left:-1px;-webkit-box-shadow:rgba(0,0,0,.1) 0 2px 3px;box-shadow:rgba(0,0,0,.1) 0 2px 3px}.trumbowyg-dropdown button{display:block;width:100%;height:35px;line-height:35px;text-decoration:none;background:#FFF;padding:0 14px;color:#333!important;border:none;cursor:pointer;text-align:left;font-size:15px;-webkit-transition:all .15s;transition:all .15s}.trumbowyg-dropdown button:focus,.trumbowyg-dropdown button:hover{background:#ecf0f1}.trumbowyg-modal{position:absolute;top:0;left:50%;margin-left:-260px;width:520px;height:290px;overflow:hidden}.trumbowyg-modal-box{position:absolute;top:0;left:50%;margin-left:-250px;width:500px;height:275px;z-index:1;background-color:#FFF;text-align:center;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 3px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box .trumbowyg-modal-title{font-size:24px;font-weight:700;margin:0 0 20px;padding:15px 0 13px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-progress{width:100%;background:red;height:3px;position:absolute;top:58px}.trumbowyg-modal-box .trumbowyg-progress .trumbowyg-progress-bar{background:#2BC06A;height:100%;-webkit-transition:width .15s linear;transition:width .15s linear}.trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-modal-box label .trumbowyg-input-infos{display:block;text-align:left;height:25px;line-height:25px;-webkit-transition:all .15;transition:all .15}.trumbowyg-modal-box label .trumbowyg-input-infos span{display:block;color:#859fa5;background-color:#fbfcfc;border:1px solid #DEDEDE;padding:0 2%;width:19.5%}.trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-modal-box label.trumbowyg-input-error textarea{border:1px solid #e74c3c}.trumbowyg-modal-box label.trumbowyg-input-error .trumbowyg-input-infos{margin-top:-27px}.trumbowyg-modal-box label input{position:absolute;top:0;right:0;height:25px;line-height:25px;border:1px solid #DEDEDE;background:0 0;width:72%;padding:0 2%;margin:0 0 0 23%;-webkit-transition:all .15s;transition:all .15s}.trumbowyg-modal-box label input:focus,.trumbowyg-modal-box label input:hover{outline:0;border:1px solid #95a5a6}.trumbowyg-modal-box label input:focus{background:rgba(230,230,255,.1)}.trumbowyg-modal-box .error{margin-top:25px;display:block;color:red}.trumbowyg-modal-box .trumbowyg-modal-button{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;border-top:none;cursor:pointer;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif;font-size:16px;-webkit-transition:all .15s;transition:all .15s}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{right:110px;background:#2bc069}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#40d47d;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#25a259}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{color:#555;background:#e6e6e6}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#fbfbfb;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#d4d4d4}.trumbowyg-overlay{position:absolute;background-color:rgba(255,255,255,.5);width:100%;left:0;display:none}body.trumbowyg-body-fullscreen{overflow:hidden}.trumbowyg-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:99999}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen.trumbowyg-box{border:none}.trumbowyg-fullscreen .trumbowyg-overlay{height:100%!important}.trumbowyg-editor embed,.trumbowyg-editor img,.trumbowyg-editor object,.trumbowyg-editor video{width:auto;max-width:100%}.trumbowyg-editor img,.trumbowyg-editor video{height:auto}.trumbowyg-editor img{cursor:move}.trumbowyg-editor.trumbowyg-reset-css{background:#FEFEFE!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;line-height:1.45em!important;white-space:normal!important;color:#333}.trumbowyg-editor.trumbowyg-reset-css a{color:#15c!important;text-decoration:underline!important}.trumbowyg-editor.trumbowyg-reset-css blockquote,.trumbowyg-editor.trumbowyg-reset-css div,.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css p,.trumbowyg-editor.trumbowyg-reset-css ul{-webkit-box-shadow:none!important;box-shadow:none!important;background:0 0!important;margin:0 0 15px!important;line-height:1.4em!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;border:none}.trumbowyg-editor.trumbowyg-reset-css hr,.trumbowyg-editor.trumbowyg-reset-css iframe,.trumbowyg-editor.trumbowyg-reset-css object{margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css blockquote{margin-left:32px!important;font-style:italic!important;color:#555}.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css ul{padding-left:20px!important}.trumbowyg-editor.trumbowyg-reset-css ol ol,.trumbowyg-editor.trumbowyg-reset-css ol ul,.trumbowyg-editor.trumbowyg-reset-css ul ol,.trumbowyg-editor.trumbowyg-reset-css ul ul{border:none;margin:2px!important;padding:0 0 0 24px!important}.trumbowyg-editor.trumbowyg-reset-css hr{display:block;height:1px;border:none;border-top:1px solid #CCC}.trumbowyg-editor.trumbowyg-reset-css h1,.trumbowyg-editor.trumbowyg-reset-css h2,.trumbowyg-editor.trumbowyg-reset-css h3,.trumbowyg-editor.trumbowyg-reset-css h4{color:#111;background:0 0;margin:0!important;padding:0!important;font-weight:700}.trumbowyg-editor.trumbowyg-reset-css h1{font-size:32px!important;line-height:38px!important;margin-bottom:20px!important}.trumbowyg-editor.trumbowyg-reset-css h2{font-size:26px!important;line-height:34px!important;margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css h3{font-size:22px!important;line-height:28px!important;margin-bottom:7px!important}.trumbowyg-editor.trumbowyg-reset-css h4{font-size:16px!important;line-height:22px!important;margin-bottom:7px!important}.trumbowyg-black .trumbowyg-button-pane{background-color:#222;border-bottom-color:#343434}.trumbowyg-black .trumbowyg-button-pane li.trumbowyg-separator{background-color:#343434}.trumbowyg-black .trumbowyg-button-pane.trumbowyg-disable li.trumbowyg-separator{background-color:#2a2a2a}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-active,.trumbowyg-black .trumbowyg-button-pane li.trumbowyg-not-disable button:focus,.trumbowyg-black .trumbowyg-button-pane li.trumbowyg-not-disable button:hover,.trumbowyg-black .trumbowyg-button-pane:not(.trumbowyg-disable) li button:focus,.trumbowyg-black .trumbowyg-button-pane:not(.trumbowyg-disable) li button:hover{background-color:#555}.trumbowyg-black .trumbowyg-button-pane li .trumbowyg-open-dropdown:after{border-top-color:#fff}.trumbowyg-black .trumbowyg-dropdown{border-color:#222;background:#222}.trumbowyg-black .trumbowyg-dropdown button{background:#222;color:#fff}.trumbowyg-black .trumbowyg-dropdown button:focus,.trumbowyg-black .trumbowyg-dropdown button:hover{background:#555}.trumbowyg-black .trumbowyg-modal-box{background-color:#222}.trumbowyg-black .trumbowyg-modal-box .trumbowyg-modal-title{border-bottom:1px solid #555;color:#fff;background:#3c3c3c}.trumbowyg-black .trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-black .trumbowyg-modal-box label .trumbowyg-input-infos span{color:#eee;background-color:#2f2f2f;border-color:#222}.trumbowyg-black .trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-black .trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-black .trumbowyg-modal-box label.trumbowyg-input-error textarea{border-color:#e74c3c}.trumbowyg-black .trumbowyg-modal-box label input{border-color:#222;color:#eee;background:#333}.trumbowyg-black .trumbowyg-modal-box label input:focus,.trumbowyg-black .trumbowyg-modal-box label input:hover{border-color:#95a5a6}.trumbowyg-black .trumbowyg-modal-box label input:focus{background-color:rgba(230,230,255,.1)}.trumbowyg-black .trumbowyg-overlay{background-color:rgba(0,0,0,.5)}.trumbowyg-button-pane li button{display:block;position:relative;text-indent:-9999px;width:35px;height:35px;overflow:hidden;background:url(./images/icons-black.png) no-repeat;border:none;cursor:pointer;-webkit-transition:background-color .15s,background-image .15s,opacity .15s;transition:background-color .15s,background-image .15s,opacity .15s}.trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-fullscreen .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-button-pane li:first-child button{margin-left:6px}.trumbowyg-button-pane li:last-child button{margin-right:6px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}.trumbowyg-black .trumbowyg-button-pane li button{background-image:url(./images/icons-white.png)}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-black .trumbowyg-fullscreen .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-black .trumbowyg-button-pane li:first-child button{margin-left:6px}.trumbowyg-black .trumbowyg-button-pane li:last-child button{margin-right:6px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}@media only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (min--moz-device-pixel-ratio:1.3),only screen and (-o-min-device-pixel-ratio:4/3),only screen and (min-device-pixel-ratio:1.3),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.trumbowyg-button-pane li button{-webkit-background-size:25px 600px!important;background-size:25px 600px!important;background-image:url(./images/icons-black-2x.png)!important}.trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-fullscreen .trumbowyg-button-pane li a.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}.trumbowyg-black .trumbowyg-button-pane li button{-webkit-background-size:25px 600px!important;background-size:25px 600px!important;background-image:url(./images/icons-white-2x.png)!important}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-black .trumbowyg-fullscreen .trumbowyg-button-pane li a.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}}
\ No newline at end of file
+/** Trumbowyg v2.0.0-beta.4 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
+.trumbowyg-box *,.trumbowyg-box ::after,.trumbowyg-box ::before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.trumbowyg-box,.trumbowyg-editor{display:block;position:relative;border:1px solid #DDD;width:96%;min-height:300px;margin:17px auto}.trumbowyg-box .trumbowyg-editor{margin:0 auto}.trumbowyg-box.trumbowyg-fullscreen{background:#FEFEFE}.trumbowyg-editor,.trumbowyg-textarea{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1% 2%;min-height:300px;width:100%;border-style:none;resize:none;outline:0}.trumbowyg-box-blur .trumbowyg-editor *{color:transparent!important;text-shadow:0 0 7px #333}.trumbowyg-box-blur .trumbowyg-editor img{opacity:.2}.trumbowyg-textarea{position:relative;display:block;overflow:auto;border:none;white-space:normal;font-size:14px;font-family:Inconsolata,Consolas,Courier,"Courier New",sans-serif;line-height:18px}.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea{position:absolute;top:37px;height:1px!important;width:25%;min-height:0!important;padding:0!important;background:0 0;opacity:0}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea{display:block}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-editor{display:none}.trumbowyg-editor[contenteditable=true]:empty:before{content:attr(placeholder);color:#999}.trumbowyg-button-pane{position:relative;width:100%;background:#ecf0f1;border-bottom:1px solid #d7e0e2;margin:0;padding:0;list-style-type:none;line-height:10px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-button-pane li{display:inline-block;text-align:center;overflow:hidden;padding:0!important}.trumbowyg-button-pane li.trumbowyg-separator{width:1px;background:#d7e0e2;margin:0 5px;height:35px}.trumbowyg-button-pane.trumbowyg-disable li:not(.trumbowyg-not-disable) button:not(.trumbowyg-active){opacity:.2;cursor:default}.trumbowyg-button-pane.trumbowyg-disable li.trumbowyg-separator{background:#e3e9eb}.trumbowyg-button-pane li button{padding:1px 6px!important}.trumbowyg-button-pane li button.trumbowyg-active,.trumbowyg-button-pane li.trumbowyg-not-disable button:focus,.trumbowyg-button-pane li.trumbowyg-not-disable button:hover,.trumbowyg-button-pane:not(.trumbowyg-disable) li button:focus,.trumbowyg-button-pane:not(.trumbowyg-disable) li button:hover{background-color:#FFF;outline:0}.trumbowyg-button-pane li .trumbowyg-open-dropdown:after{display:block;content:" ";position:absolute;top:25px;right:3px;height:0;width:0;border:3px solid transparent;border-top-color:#555}.trumbowyg-button-pane .trumbowyg-buttons-right{float:right;width:auto}.trumbowyg-button-pane .trumbowyg-buttons-right button{float:left}.trumbowyg-dropdown{width:200px;border:1px solid #ecf0f1;padding:5px 0;border-top:none;background:#FFF;margin-left:-1px;-webkit-box-shadow:rgba(0,0,0,.1) 0 2px 3px;box-shadow:rgba(0,0,0,.1) 0 2px 3px}.trumbowyg-dropdown button{display:block;width:100%;height:35px;line-height:35px;text-decoration:none;background:#FFF;padding:0 14px;color:#333!important;border:none;cursor:pointer;text-align:left;font-size:15px;-webkit-transition:all .15s;transition:all .15s}.trumbowyg-dropdown button:focus,.trumbowyg-dropdown button:hover{background:#ecf0f1}.trumbowyg-modal{position:absolute;top:0;left:50%;margin-left:-260px;width:520px;height:350px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box{position:absolute;top:0;left:50%;margin-left:-250px;width:500px;padding-bottom:45px;z-index:1;background-color:#FFF;text-align:center;font-size:14px;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 3px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box .trumbowyg-modal-title{font-size:24px;font-weight:700;margin:0 0 20px;padding:15px 0 13px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-progress{width:100%;background:red;height:3px;position:absolute;top:58px}.trumbowyg-modal-box .trumbowyg-progress .trumbowyg-progress-bar{background:#2BC06A;height:100%;-webkit-transition:width .15s linear;transition:width .15s linear}.trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-modal-box label .trumbowyg-input-infos{display:block;text-align:left;height:25px;line-height:25px;-webkit-transition:all .15;transition:all .15}.trumbowyg-modal-box label .trumbowyg-input-infos span{display:block;color:#69878e;background-color:#fbfcfc;border:1px solid #DEDEDE;padding:0 7px;width:137px}.trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-modal-box label.trumbowyg-input-error textarea{border:1px solid #e74c3c}.trumbowyg-modal-box label.trumbowyg-input-error .trumbowyg-input-infos{margin-top:-27px}.trumbowyg-modal-box label input{position:absolute;top:0;right:0;height:27px;line-height:27px;border:1px solid #DEDEDE;background:0 0;font-size:14px;width:340px;padding:0 7px;-webkit-transition:all .15s;transition:all .15s}.trumbowyg-modal-box label input:focus,.trumbowyg-modal-box label input:hover{outline:0;border:1px solid #95a5a6}.trumbowyg-modal-box label input:focus{background:rgba(230,230,255,.1)}.trumbowyg-modal-box .error{margin-top:25px;display:block;color:red}.trumbowyg-modal-box .trumbowyg-modal-button{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;border-top:none;cursor:pointer;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif;font-size:16px;-webkit-transition:all .15s;transition:all .15s}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{right:110px;background:#2bc069}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#40d47d;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#25a259}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{color:#555;background:#e6e6e6}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#fbfbfb;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#d4d4d4}.trumbowyg-overlay{position:absolute;background-color:rgba(255,255,255,.5);width:100%;left:0;display:none}body.trumbowyg-body-fullscreen{overflow:hidden}.trumbowyg-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:99999}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen.trumbowyg-box{border:none}.trumbowyg-fullscreen .trumbowyg-overlay{height:100%!important}.trumbowyg-editor embed,.trumbowyg-editor img,.trumbowyg-editor object,.trumbowyg-editor video{width:auto;max-width:100%}.trumbowyg-editor img,.trumbowyg-editor video{height:auto}.trumbowyg-editor img{cursor:move}.trumbowyg-editor.trumbowyg-reset-css{background:#FEFEFE!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;line-height:1.45em!important;white-space:normal!important;color:#333}.trumbowyg-editor.trumbowyg-reset-css a{color:#15c!important;text-decoration:underline!important}.trumbowyg-editor.trumbowyg-reset-css blockquote,.trumbowyg-editor.trumbowyg-reset-css div,.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css p,.trumbowyg-editor.trumbowyg-reset-css ul{-webkit-box-shadow:none!important;box-shadow:none!important;background:0 0!important;margin:0 0 15px!important;line-height:1.4em!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;border:none}.trumbowyg-editor.trumbowyg-reset-css hr,.trumbowyg-editor.trumbowyg-reset-css iframe,.trumbowyg-editor.trumbowyg-reset-css object{margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css blockquote{margin-left:32px!important;font-style:italic!important;color:#555}.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css ul{padding-left:20px!important}.trumbowyg-editor.trumbowyg-reset-css ol ol,.trumbowyg-editor.trumbowyg-reset-css ol ul,.trumbowyg-editor.trumbowyg-reset-css ul ol,.trumbowyg-editor.trumbowyg-reset-css ul ul{border:none;margin:2px!important;padding:0 0 0 24px!important}.trumbowyg-editor.trumbowyg-reset-css hr{display:block;height:1px;border:none;border-top:1px solid #CCC}.trumbowyg-editor.trumbowyg-reset-css h1,.trumbowyg-editor.trumbowyg-reset-css h2,.trumbowyg-editor.trumbowyg-reset-css h3,.trumbowyg-editor.trumbowyg-reset-css h4{color:#111;background:0 0;margin:0!important;padding:0!important;font-weight:700}.trumbowyg-editor.trumbowyg-reset-css h1{font-size:32px!important;line-height:38px!important;margin-bottom:20px!important}.trumbowyg-editor.trumbowyg-reset-css h2{font-size:26px!important;line-height:34px!important;margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css h3{font-size:22px!important;line-height:28px!important;margin-bottom:7px!important}.trumbowyg-editor.trumbowyg-reset-css h4{font-size:16px!important;line-height:22px!important;margin-bottom:7px!important}.trumbowyg-black .trumbowyg-button-pane{background-color:#222;border-bottom-color:#343434}.trumbowyg-black .trumbowyg-button-pane li.trumbowyg-separator{background-color:#343434}.trumbowyg-black .trumbowyg-button-pane.trumbowyg-disable li.trumbowyg-separator{background-color:#2a2a2a}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-active,.trumbowyg-black .trumbowyg-button-pane li.trumbowyg-not-disable button:focus,.trumbowyg-black .trumbowyg-button-pane li.trumbowyg-not-disable button:hover,.trumbowyg-black .trumbowyg-button-pane:not(.trumbowyg-disable) li button:focus,.trumbowyg-black .trumbowyg-button-pane:not(.trumbowyg-disable) li button:hover{background-color:#555}.trumbowyg-black .trumbowyg-button-pane li .trumbowyg-open-dropdown:after{border-top-color:#fff}.trumbowyg-black .trumbowyg-dropdown{border-color:#222;background:#222}.trumbowyg-black .trumbowyg-dropdown button{background:#222;color:#fff}.trumbowyg-black .trumbowyg-dropdown button:focus,.trumbowyg-black .trumbowyg-dropdown button:hover{background:#555}.trumbowyg-black .trumbowyg-modal-box{background-color:#222}.trumbowyg-black .trumbowyg-modal-box .trumbowyg-modal-title{border-bottom:1px solid #555;color:#fff;background:#3c3c3c}.trumbowyg-black .trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-black .trumbowyg-modal-box label .trumbowyg-input-infos span{color:#eee;background-color:#2f2f2f;border-color:#222}.trumbowyg-black .trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-black .trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-black .trumbowyg-modal-box label.trumbowyg-input-error textarea{border-color:#e74c3c}.trumbowyg-black .trumbowyg-modal-box label input{border-color:#222;color:#eee;background:#333}.trumbowyg-black .trumbowyg-modal-box label input:focus,.trumbowyg-black .trumbowyg-modal-box label input:hover{border-color:#95a5a6}.trumbowyg-black .trumbowyg-modal-box label input:focus{background-color:rgba(230,230,255,.1)}.trumbowyg-black .trumbowyg-overlay{background-color:rgba(0,0,0,.5)}.trumbowyg-button-pane li button{display:block;position:relative;text-indent:-9999px;width:35px;height:35px;overflow:hidden;background:url(./images/icons-black.png) no-repeat;border:none;cursor:pointer;-webkit-transition:background-color .15s,background-image .15s,opacity .15s;transition:background-color .15s,background-image .15s,opacity .15s}.trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-fullscreen .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-button-pane li:first-child button{margin-left:6px}.trumbowyg-button-pane li:last-child button{margin-right:6px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}.trumbowyg-black .trumbowyg-button-pane li button{background-image:url(./images/icons-white.png)}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-black .trumbowyg-fullscreen .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-black .trumbowyg-button-pane li:first-child button{margin-left:6px}.trumbowyg-black .trumbowyg-button-pane li:last-child button{margin-right:6px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}@media only screen and (-webkit-min-device-pixel-ratio:1.3),only screen and (min--moz-device-pixel-ratio:1.3),only screen and (-o-min-device-pixel-ratio:4/3),only screen and (min-device-pixel-ratio:1.3),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.trumbowyg-button-pane li button{-webkit-background-size:25px 600px!important;background-size:25px 600px!important;background-image:url(./images/icons-black-2x.png)!important}.trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-fullscreen .trumbowyg-button-pane li a.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}.trumbowyg-black .trumbowyg-button-pane li button{-webkit-background-size:25px 600px!important;background-size:25px 600px!important;background-image:url(./images/icons-white-2x.png)!important}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-viewHTML-button{background-position:5px -570px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-formatting-button{background-position:5px -120px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -45px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-em-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-italic-button{background-position:5px -270px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -495px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -470px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-link-button{background-position:5px -345px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-insertImage-button{background-position:5px -245px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyLeft-button{background-position:5px -320px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyCenter-button{background-position:5px -70px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyRight-button{background-position:5px -420px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-justifyFull-button{background-position:5px 5px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-unorderedList-button{background-position:5px -520px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-orderedList-button{background-position:5px -370px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-horizontalRule-button{background-position:5px -220px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-removeformat-button{background-position:5px -395px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-fullscreen-button{background-position:5px -170px}.trumbowyg-black .trumbowyg-button-pane li button.trumbowyg-close-button{background-position:5px -95px}.trumbowyg-black .trumbowyg-fullscreen .trumbowyg-button-pane li a.trumbowyg-fullscreen-button{background-position:5px -145px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-bold-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strong-button{background-position:5px -195px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-underline-button{background-position:5px -445px}.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-del-button,.trumbowyg-black .trumbowyg-fr .trumbowyg-button-pane li button.trumbowyg-strikethrough-button{background-position:5px -295px}}
\ No newline at end of file
diff --git a/BuildFeed/Scripts/typings/jquery/jquery.d.ts b/BuildFeed/Scripts/typings/jquery/jquery.d.ts
index 4653239..3641af8 100644
--- a/BuildFeed/Scripts/typings/jquery/jquery.d.ts
+++ b/BuildFeed/Scripts/typings/jquery/jquery.d.ts
@@ -105,6 +105,10 @@ interface JQueryAjaxSettings {
* Specify the callback function name for a JSONP request. This value will be used instead of the random name automatically generated by jQuery. It is preferable to let jQuery generate a unique name as it'll make it easier to manage the requests and provide callbacks and error handling. You may want to specify the callback when you want to enable better browser caching of GET requests. As of jQuery 1.5, you can also use a function for this setting, in which case the value of jsonpCallback is set to the return value of that function.
*/
jsonpCallback?: any;
+ /**
+ * The HTTP method to use for the request (e.g. "POST", "GET", "PUT"). (version added: 1.9.0)
+ */
+ method?: string;
/**
* A mime type to override the XHR mime type. (version added: 1.5.1)
*/
@@ -181,6 +185,10 @@ interface JQueryXHR extends XMLHttpRequest, JQueryPromise {
* Property containing the parsed response if the response Content-Type is json
*/
responseJSON?: any;
+ /**
+ * A function to be called if the request fails.
+ */
+ error(xhr: JQueryXHR, textStatus: string, errorThrown: string): void;
}
/**
@@ -233,7 +241,7 @@ interface JQueryCallback {
* @param context A reference to the context in which the callbacks in the list should be fired.
* @param arguments An argument, or array of arguments, to pass to the callbacks in the list.
*/
- fireWith(context?: any, ...args: any[]): JQueryCallback;
+ fireWith(context?: any, args?: any[]): JQueryCallback;
/**
* Determine whether a supplied callback is in a list
@@ -387,7 +395,7 @@ interface JQueryDeferred extends JQueryGenericPromise {
* @param context Context passed to the progressCallbacks as the this object.
* @param args Optional arguments that are passed to the progressCallbacks.
*/
- notifyWith(context: any, value?: any, ...args: any[]): JQueryDeferred;
+ notifyWith(context: any, value?: any[]): JQueryDeferred;
/**
* Reject a Deferred object and call any failCallbacks with the given args.
@@ -401,7 +409,7 @@ interface JQueryDeferred extends JQueryGenericPromise {
* @param context Context passed to the failCallbacks as the this object.
* @param args An optional array of arguments that are passed to the failCallbacks.
*/
- rejectWith(context: any, value?: any, ...args: any[]): JQueryDeferred;
+ rejectWith(context: any, value?: any[]): JQueryDeferred;
/**
* Resolve a Deferred object and call any doneCallbacks with the given args.
@@ -417,7 +425,7 @@ interface JQueryDeferred extends JQueryGenericPromise {
* @param context Context passed to the doneCallbacks as the this object.
* @param args An optional array of arguments that are passed to the doneCallbacks.
*/
- resolveWith(context: any, value?: T, ...args: any[]): JQueryDeferred;
+ resolveWith(context: any, value?: T[]): JQueryDeferred;
/**
* Return a Deferred's Promise object.
@@ -1537,18 +1545,18 @@ interface JQuery {
* @param value The new data value; it can be any Javascript type including Array or Object.
*/
data(key: string, value: any): JQuery;
- /**
- * Store arbitrary data associated with the matched elements.
- *
- * @param obj An object of key-value pairs of data to update.
- */
- data(obj: { [key: string]: any; }): JQuery;
/**
* Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute.
*
* @param key Name of the data stored.
*/
data(key: string): any;
+ /**
+ * Store arbitrary data associated with the matched elements.
+ *
+ * @param obj An object of key-value pairs of data to update.
+ */
+ data(obj: { [key: string]: any; }): JQuery;
/**
* Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute.
*/
@@ -1990,6 +1998,10 @@ interface JQuery {
*/
focus(eventData?: any, handler?: (eventObject: JQueryEventObject) => any): JQuery;
+ /**
+ * Trigger the "focusin" event on an element.
+ */
+ focusin(): JQuery;
/**
* Bind an event handler to the "focusin" JavaScript event
*
@@ -2004,6 +2016,10 @@ interface JQuery {
*/
focusin(eventData: Object, handler: (eventObject: JQueryEventObject) => any): JQuery;
+ /**
+ * Trigger the "focusout" event on an element.
+ */
+ focusout(): JQuery;
/**
* Bind an event handler to the "focusout" JavaScript event
*
diff --git a/BuildFeed/Views/front/editBuild.cshtml b/BuildFeed/Views/front/editBuild.cshtml
index 234fc77..cc9a2da 100644
--- a/BuildFeed/Views/front/editBuild.cshtml
+++ b/BuildFeed/Views/front/editBuild.cshtml
@@ -1,22 +1,22 @@
-@model BuildFeed.Models.Build
+@model BuildFeed.Models.BuildModel
@{
- ViewBag.Title = (string)(ViewContext.RouteData.Values["action"]) == "addBuild" ? "Add a Build | BuildFeed" : string.Format("Edit build {0} | BuildFeed", Model.FullBuildString);
+ ViewBag.Title = (string)(ViewContext.RouteData.Values["action"]) == "addBuild" ? string.Format("{0} | {1}", BuildFeed.Local.Front.AddABuild, BuildFeed.Local.Common.SiteName) : string.Format("{0} {1} | {2}", BuildFeed.Local.Front.EditBuild, Model.FullBuildString, BuildFeed.Local.Common.SiteName);
Html.EnableClientValidation();
Html.EnableUnobtrusiveJavaScript();
}
@if ((string)(ViewContext.RouteData.Values["action"]) == "addBuild")
{
- Add a Build
+ @BuildFeed.Local.Front.AddABuild
}
else
{
- Edit build @Model.FullBuildString
+ @BuildFeed.Local.Front.EditBuild @Model.FullBuildString
}