123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744 |
- if (! ("ace" in window)) {
- window.ace = {}
- }
- jQuery(function() {
- window.ace.click_event = $.fn.tap ? "tap": "click"
- }); (function(e, c) {
- var d = "multiple" in document.createElement("INPUT");
- var j = "FileList" in window;
- var b = "FileReader" in window;
- var f = function(l, m) {
- var k = this;
- this.settings = e.extend({},
- e.fn.ace_file_input.defaults, m);
- this.$element = e(l);
- this.element = l;
- this.disabled = false;
- this.can_reset = true;
- this.$element.on("change.ace_inner_call",
- function(o, n) {
- if (n === true) {
- return
- }
- return a.call(k)
- });
- this.$element.wrap('<div class="ace-file-input" />');
- this.apply_settings()
- };
- f.error = {
- FILE_LOAD_FAILED: 1,
- IMAGE_LOAD_FAILED: 2,
- THUMBNAIL_FAILED: 3
- };
- f.prototype.apply_settings = function() {
- var l = this;
- var k = !!this.settings.icon_remove;
- this.multi = this.$element.attr("multiple") && d;
- this.well_style = this.settings.style == "well";
- if (this.well_style) {
- this.$element.parent().addClass("ace-file-multiple")
- } else {
- this.$element.parent().removeClass("ace-file-multiple")
- }
- this.$element.parent().find(":not(input[type=file])").remove();
- this.$element.after('<label class="file-label" data-title="' + this.settings.btn_choose + '"><span class="file-name" data-title="' + this.settings.no_file + '">' + (this.settings.no_icon ? '<i class="' + this.settings.no_icon + '"></i>': "") + "</span></label>" + (k ? '<a class="remove" href="#"><i class="' + this.settings.icon_remove + '"></i></a>': ""));
- this.$label = this.$element.next();
- this.$label.on("click",
- function() {
- if (!this.disabled && !l.element.disabled && !l.$element.attr("readonly")) {
- l.$element.click()
- }
- });
- if (k) {
- this.$label.next("a").on(ace.click_event,
- function() {
- if (!l.can_reset) {
- return false
- }
- var m = true;
- if (l.settings.before_remove) {
- m = l.settings.before_remove.call(l.element)
- }
- if (!m) {
- return false
- }
- return l.reset_input()
- })
- }
- if (this.settings.droppable && j) {
- g.call(this)
- }
- };
- f.prototype.show_file_list = function(k) {
- var n = typeof k === "undefined" ? this.$element.data("ace_input_files") : k;
- if (!n || n.length == 0) {
- return
- }
- if (this.well_style) {
- this.$label.find(".file-name").remove();
- if (!this.settings.btn_change) {
- this.$label.addClass("hide-placeholder")
- }
- }
- this.$label.attr("data-title", this.settings.btn_change).addClass("selected");
- for (var p = 0; p < n.length; p++) {
- var l = typeof n[p] === "string" ? n[p] : e.trim(n[p].name);
- var q = l.lastIndexOf("\\") + 1;
- if (q == 0) {
- q = l.lastIndexOf("/") + 1
- }
- l = l.substr(q);
- var m = "icon-file";
- if ((/\.(jpe?g|png|gif|svg|bmp|tiff?)$/i).test(l)) {
- m = "icon-picture"
- } else {
- if ((/\.(mpe?g|flv|mov|avi|swf|mp4|mkv|webm|wmv|3gp)$/i).test(l)) {
- m = "icon-film"
- } else {
- if ((/\.(mp3|ogg|wav|wma|amr|aac)$/i).test(l)) {
- m = "icon-music"
- }
- }
- }
- if (!this.well_style) {
- this.$label.find(".file-name").attr({
- "data-title": l
- }).find('[class*="icon-"]').attr("class", m)
- } else {
- this.$label.append('<span class="file-name" data-title="' + l + '"><i class="' + m + '"></i></span>');
- var r = e.trim(n[p].type);
- var o = b && this.settings.thumbnail && ((r.length > 0 && r.match("image")) || (r.length == 0 && m == "icon-picture"));
- if (o) {
- var s = this;
- e.when(i.call(this, n[p])).fail(function(t) {
- if (s.settings.preview_error) {
- s.settings.preview_error.call(s, l, t.code)
- }
- })
- }
- }
- }
- return true
- };
- f.prototype.reset_input = function() {
- this.$label.attr({
- "data-title": this.settings.btn_choose,
- "class": "file-label"
- }).find(".file-name:first").attr({
- "data-title": this.settings.no_file,
- "class": "file-name"
- }).find('[class*="icon-"]').attr("class", this.settings.no_icon).prev("img").remove();
- if (!this.settings.no_icon) {
- this.$label.find('[class*="icon-"]').remove()
- }
- this.$label.find(".file-name").not(":first").remove();
- if (this.$element.data("ace_input_files")) {
- this.$element.removeData("ace_input_files");
- this.$element.removeData("ace_input_method")
- }
- this.reset_input_field();
- return false
- };
- f.prototype.reset_input_field = function() {
- this.$element.wrap("<form>").closest("form").get(0).reset();
- this.$element.unwrap()
- };
- f.prototype.enable_reset = function(k) {
- this.can_reset = k
- };
- f.prototype.disable = function() {
- this.disabled = true;
- this.$element.attr("disabled", "disabled").addClass("disabled")
- };
- f.prototype.enable = function() {
- this.disabled = false;
- this.$element.removeAttr("disabled").removeClass("disabled")
- };
- f.prototype.files = function() {
- return e(this).data("ace_input_files") || null
- };
- f.prototype.method = function() {
- return e(this).data("ace_input_method") || ""
- };
- f.prototype.update_settings = function(k) {
- this.settings = e.extend({},
- this.settings, k);
- this.apply_settings()
- };
- var g = function() {
- var l = this;
- var k = this.element.parentNode;
- e(k).on("dragenter",
- function(m) {
- m.preventDefault();
- m.stopPropagation()
- }).on("dragover",
- function(m) {
- m.preventDefault();
- m.stopPropagation()
- }).on("drop",
- function(q) {
- q.preventDefault();
- q.stopPropagation();
- var p = q.originalEvent.dataTransfer;
- var o = p.files;
- if (!l.multi && o.length > 1) {
- var n = [];
- n.push(o[0]);
- o = n
- }
- var m = true;
- if (l.settings.before_change) {
- m = l.settings.before_change.call(l.element, o, true)
- }
- if (!m || m.length == 0) {
- return false
- }
- if (m instanceof Array || (j && m instanceof FileList)) {
- o = m
- }
- l.$element.data("ace_input_files", o);
- l.$element.data("ace_input_method", "drop");
- l.show_file_list(o);
- l.$element.triggerHandler("change", [true]);
- return true
- })
- };
- var a = function() {
- var l = true;
- if (this.settings.before_change) {
- l = this.settings.before_change.call(this.element, this.element.files || [this.element.value], false)
- }
- if (!l || l.length == 0) {
- if (!this.$element.data("ace_input_files")) {
- this.reset_input_field()
- }
- return false
- }
- var m = !j ? null: ((l instanceof Array || l instanceof FileList) ? l: this.element.files);
- this.$element.data("ace_input_method", "select");
- if (m && m.length > 0) {
- this.$element.data("ace_input_files", m)
- } else {
- var k = e.trim(this.element.value);
- if (k && k.length > 0) {
- m = [];
- m.push(k);
- this.$element.data("ace_input_files", m)
- }
- }
- if (!m || m.length == 0) {
- return false
- }
- this.show_file_list(m);
- return true
- };
- var i = function(o) {
- var n = this;
- var l = n.$label.find(".file-name:last");
- var m = new e.Deferred;
- var k = new FileReader();
- k.onload = function(q) {
- l.prepend("<img class='middle' style='display:none;' />");
- var p = l.find("img:last").get(0);
- e(p).one("load",
- function() {
- var t = 50;
- if (n.settings.thumbnail == "large") {
- t = 150
- } else {
- if (n.settings.thumbnail == "fit") {
- t = l.width()
- }
- }
- l.addClass(t > 50 ? "large": "");
- var s = h(p, t, o.type);
- if (s == null) {
- e(this).remove();
- m.reject({
- code: f.error.THUMBNAIL_FAILED
- });
- return
- }
- var r = s.w,
- u = s.h;
- if (n.settings.thumbnail == "small") {
- r = u = t
- }
- e(p).css({
- "background-image": "url(" + s.src + ")",
- width: r,
- height: u
- }).data("thumb", s.src).attr({
- src: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg=="
- }).show();
- m.resolve()
- }).one("error",
- function() {
- l.find("img").remove();
- m.reject({
- code: f.error.IMAGE_LOAD_FAILED
- })
- });
- p.src = q.target.result
- };
- k.onerror = function(p) {
- m.reject({
- code: f.error.FILE_LOAD_FAILED
- })
- };
- k.readAsDataURL(o);
- return m.promise()
- };
- var h = function(n, s, q) {
- var r = n.width,
- o = n.height;
- if (r > s || o > s) {
- if (r > o) {
- o = parseInt(s / r * o);
- r = s
- } else {
- r = parseInt(s / o * r);
- o = s
- }
- }
- var m;
- try {
- var l = document.createElement("canvas");
- l.width = r;
- l.height = o;
- var k = l.getContext("2d");
- k.drawImage(n, 0, 0, n.width, n.height, 0, 0, r, o);
- m = l.toDataURL()
- } catch(p) {
- m = null
- }
- if (! (/^data\:image\/(png|jpe?g|gif);base64,[0-9A-Za-z\+\/\=]+$/.test(m))) {
- m = null
- }
- if (!m) {
- return null
- }
- return {
- src: m,
- w: r,
- h: o
- }
- };
- e.fn.ace_file_input = function(m, n) {
- var l;
- var k = this.each(function() {
- var q = e(this);
- var p = q.data("ace_file_input");
- var o = typeof m === "object" && m;
- if (!p) {
- q.data("ace_file_input", (p = new f(this, o)))
- }
- if (typeof m === "string") {
- l = p[m](n)
- }
- });
- return (l === c) ? k: l
- };
- e.fn.ace_file_input.defaults = {
- style: false,
- no_file: "No File ...",
- no_icon: "icon-upload-alt",
- btn_choose: "Choose",
- btn_change: "Change",
- icon_remove: "icon-remove",
- droppable: false,
- thumbnail: false,
- before_change: null,
- before_remove: null,
- preview_error: null
- }
- })(window.jQuery); (function(a, b) {
- a.fn.ace_spinner = function(c) {
- this.each(function() {
- var f = c.icon_up || "icon-chevron-up";
- var j = c.icon_down || "icon-chevron-down";
- var h = c.on_sides || false;
- var e = c.btn_up_class || "";
- var g = c.btn_down_class || "";
- var d = c.max || 999;
- d = ("" + d).length;
- a(this).addClass("spinner-input form-control").wrap('<div class="ace-spinner">');
- var k = a(this).closest(".ace-spinner").spinner(c).wrapInner("<div class='input-group'></div>");
- if (h) {
- a(this).before('<div class="spinner-buttons input-group-btn"> <button type="button" class="btn spinner-down btn-xs ' + g + '"> <i class="' + j + '"></i> </button> </div>').after('<div class="spinner-buttons input-group-btn"> <button type="button" class="btn spinner-up btn-xs ' + e + '"> <i class="' + f + '"></i> </button> </div>');
- k.addClass("touch-spinner");
- k.css("width", (d * 20 + 40) + "px")
- } else {
- a(this).after('<div class="spinner-buttons input-group-btn"> <button type="button" class="btn spinner-up btn-xs ' + e + '"> <i class="' + f + '"></i> </button> <button type="button" class="btn spinner-down btn-xs ' + g + '"> <i class="' + j + '"></i> </button> </div>');
- if ("ontouchend" in document || c.touch_spinner) {
- k.addClass("touch-spinner");
- k.css("width", (d * 20 + 40) + "px")
- } else {
- a(this).next().addClass("btn-group-vertical");
- k.css("width", (d * 20 + 10) + "px")
- }
- }
- a(this).on("mousewheel DOMMouseScroll",
- function(l) {
- var m = l.originalEvent.detail < 0 || l.originalEvent.wheelDelta > 0 ? 1 : -1;
- k.spinner("step", m > 0);
- k.spinner("triggerChangedEvent");
- return false
- });
- var i = a(this);
- k.on("changed",
- function() {
- i.trigger("change")
- })
- });
- return this
- }
- })(window.jQuery); (function(a, b) {
- a.fn.ace_wizard = function(c) {
- this.each(function() {
- var e = a(this);
- e.wizard();
- var d = e.siblings(".wizard-actions").eq(0);
- var f = e.data("wizard");
- f.$prevBtn.remove();
- f.$nextBtn.remove();
- f.$prevBtn = d.find(".btn-prev").eq(0).on(ace.click_event,
- function() {
- e.wizard("previous")
- }).attr("disabled", "disabled");
- f.$nextBtn = d.find(".btn-next").eq(0).on(ace.click_event,
- function() {
- e.wizard("next")
- }).removeAttr("disabled");
- f.nextText = f.$nextBtn.text()
- });
- return this
- }
- })(window.jQuery); (function(a, b) {
- a.fn.ace_colorpicker = function(c) {
- var d = a.extend({
- pull_right: false,
- caret: true
- },
- c);
- this.each(function() {
- var g = a(this);
- var e = "";
- var f = "";
- a(this).hide().find("option").each(function() {
- var h = "colorpick-btn";
- if (this.selected) {
- h += " selected";
- f = this.value
- }
- e += '<li><a class="' + h + '" href="#" style="background-color:' + this.value + ';" data-color="' + this.value + '"></a></li>'
- }).end().on("change.ace_inner_call",
- function() {
- a(this).next().find(".btn-colorpicker").css("background-color", this.value)
- }).after('<div class="dropdown dropdown-colorpicker"><a data-toggle="dropdown" class="dropdown-toggle" href="#"><span class="btn-colorpicker" style="background-color:' + f + '"></span></a><ul class="dropdown-menu' + (d.caret ? " dropdown-caret": "") + (d.pull_right ? " pull-right": "") + '">' + e + "</ul></div>").next().find(".dropdown-menu").on(ace.click_event,
- function(j) {
- var h = a(j.target);
- if (!h.is(".colorpick-btn")) {
- return false
- }
- h.closest("ul").find(".selected").removeClass("selected");
- h.addClass("selected");
- var i = h.data("color");
- g.val(i).change();
- j.preventDefault();
- return true
- })
- });
- return this
- }
- })(window.jQuery); (function(a, b) {
- a.fn.ace_tree = function(d) {
- var c = {
- "open-icon": "icon-folder-open",
- "close-icon": "icon-folder-close",
- selectable: true,
- "selected-icon": "tree-dot",
- "unselected-icon": "tree-dot"
- };
- c = a.extend({},
- c, d);
- this.each(function() {
- var e = a(this);
- e.html('<div class = "tree-folder" style="display:none;"> <div class="tree-folder-header"> <i class="' + c["close-icon"] + '"></i> <div class="tree-folder-name"></div> </div> <div class="tree-folder-content"></div> <div class="tree-loader" style="display:none"></div> </div> <div class="tree-item" style="display:none;"> ' + (c["unselected-icon"] == null ? "": '<i class="' + c["unselected-icon"] + '"></i>') + ' <div class="tree-item-name"></div> </div>');
- e.addClass(c.selectable == true ? "tree-selectable": "tree-unselectable");
- e.tree(c)
- });
- return this
- }
- })(window.jQuery); (function(a, b) {
- a.fn.ace_wysiwyg = function(c, h) {
- var d = a.extend({
- speech_button: true,
- wysiwyg: {}
- },
- c);
- var e = ["#ac725e", "#d06b64", "#f83a22", "#fa573c", "#ff7537", "#ffad46", "#42d692", "#16a765", "#7bd148", "#b3dc6c", "#fbe983", "#fad165", "#92e1c0", "#9fe1e7", "#9fc6e7", "#4986e7", "#9a9cff", "#b99aff", "#c2c2c2", "#cabdbf", "#cca6ac", "#f691b2", "#cd74e6", "#a47ae2", "#444444"];
- var g = {
- font: {
- values: ["Arial", "Courier", "Comic Sans MS", "Helvetica", "Open Sans", "Tahoma", "Verdana"],
- icon: "icon-font",
- title: "Font"
- },
- fontSize: {
- values: {
- 5 : "Huge",
- 3 : "Normal",
- 1 : "Small"
- },
- icon: "icon-text-height",
- title: "Font Size"
- },
- bold: {
- icon: "icon-bold",
- title: "Bold (Ctrl/Cmd+B)"
- },
- italic: {
- icon: "icon-italic",
- title: "Italic (Ctrl/Cmd+I)"
- },
- strikethrough: {
- icon: "icon-strikethrough",
- title: "Strikethrough"
- },
- underline: {
- icon: "icon-underline",
- title: "Underline"
- },
- insertunorderedlist: {
- icon: "icon-list-ul",
- title: "Bullet list"
- },
- insertorderedlist: {
- icon: "icon-list-ol",
- title: "Number list"
- },
- outdent: {
- icon: "icon-indent-left",
- title: "Reduce indent (Shift+Tab)"
- },
- indent: {
- icon: "icon-indent-right",
- title: "Indent (Tab)"
- },
- justifyleft: {
- icon: "icon-align-left",
- title: "Align Left (Ctrl/Cmd+L)"
- },
- justifycenter: {
- icon: "icon-align-center",
- title: "Center (Ctrl/Cmd+E)"
- },
- justifyright: {
- icon: "icon-align-right",
- title: "Align Right (Ctrl/Cmd+R)"
- },
- justifyfull: {
- icon: "icon-align-justify",
- title: "Justify (Ctrl/Cmd+J)"
- },
- createLink: {
- icon: "icon-link",
- title: "Hyperlink",
- button_text: "Add",
- placeholder: "URL",
- button_class: "btn-primary"
- },
- unlink: {
- icon: "icon-unlink",
- title: "Remove Hyperlink"
- },
- insertImage: {
- icon: "icon-picture",
- title: "Insert picture",
- button_text: '<i class="icon-file"></i> Choose Image …',
- placeholder: "Image URL",
- button_insert: "Insert",
- button_class: "btn-success",
- button_insert_class: "btn-primary",
- choose_file: true
- },
- foreColor: {
- values: e,
- title: "Change Color"
- },
- backColor: {
- values: e,
- title: "Change Background Color"
- },
- undo: {
- icon: "icon-undo",
- title: "Undo (Ctrl/Cmd+Z)"
- },
- redo: {
- icon: "icon-repeat",
- title: "Redo (Ctrl/Cmd+Y)"
- },
- viewSource: {
- icon: "icon-code",
- title: "View Source"
- }
- };
- var f = d.toolbar || ["font", null, "fontSize", null, "bold", "italic", "strikethrough", "underline", null, "insertunorderedlist", "insertorderedlist", "outdent", "indent", null, "justifyleft", "justifycenter", "justifyright", "justifyfull", null, "createLink", "unlink", null, "insertImage", null, "foreColor", null, "undo", "redo", null, "viewSource"];
- this.each(function() {
- var r = ' <div class="wysiwyg-toolbar btn-toolbar center"> <div class="btn-group"> ';
- for (var n in f) {
- if (f.hasOwnProperty(n)) {
- var p = f[n];
- if (p === null) {
- r += ' </div> <div class="btn-group"> ';
- continue
- }
- if (typeof p == "string" && p in g) {
- p = g[p];
- p.name = f[n]
- } else {
- if (typeof p == "object" && p.name in g) {
- p = a.extend(g[p.name], p)
- } else {
- continue
- }
- }
- var q = "className" in p ? p.className: "";
- switch (p.name) {
- case "font":
- r += ' <a class="btn btn-sm ' + q + ' dropdown-toggle" data-toggle="dropdown" title="' + p.title + '"><i class="' + p.icon + '"></i><i class="icon-angle-down icon-on-right"></i></a> ';
- r += ' <ul class="dropdown-menu dropdown-light">';
- for (var j in p.values) {
- if (p.values.hasOwnProperty(j)) {
- r += ' <li><a data-edit="fontName ' + p.values[j] + '" style="font-family:\'' + p.values[j] + "'\">" + p.values[j] + "</a></li> "
- }
- }
- r += " </ul>";
- break;
- case "fontSize":
- r += ' <a class="btn btn-sm ' + q + ' dropdown-toggle" data-toggle="dropdown" title="' + p.title + '"><i class="' + p.icon + '"></i> <i class="icon-angle-down icon-on-right"></i></a> ';
- r += ' <ul class="dropdown-menu dropdown-light"> ';
- for (var t in p.values) {
- if (p.values.hasOwnProperty(t)) {
- r += ' <li><a data-edit="fontSize ' + t + '"><font size="' + t + '">' + p.values[t] + "</font></a></li> "
- }
- }
- r += " </ul> ";
- break;
- case "createLink":
- r += ' <div class="inline position-relative"> <a class="btn btn-sm ' + q + ' dropdown-toggle" data-toggle="dropdown" title="' + p.title + '"><i class="' + p.icon + '"></i></a> ';
- r += ' <div class="dropdown-menu dropdown-caret pull-right"> <div class="input-group"> <input class="form-control" placeholder="' + p.placeholder + '" type="text" data-edit="' + p.name + '" /> <span class="input-group-btn"> <button class="btn btn-sm ' + p.button_class + '" type="button">' + p.button_text + "</button> </span> </div> </div> </div>";
- break;
- case "insertImage":
- r += ' <div class="inline position-relative"> <a class="btn btn-sm ' + q + ' dropdown-toggle" data-toggle="dropdown" title="' + p.title + '"><i class="' + p.icon + '"></i></a> ';
- r += ' <div class="dropdown-menu dropdown-caret pull-right"> <div class="input-group"> <input class="form-control" placeholder="' + p.placeholder + '" type="text" data-edit="' + p.name + '" /> <span class="input-group-btn"> <button class="btn btn-sm ' + p.button_insert_class + '" type="button">' + p.button_insert + "</button> </span> </div>";
- if (p.choose_file && "FileReader" in window) {
- r += '<div class="space-2"></div> <div class="center"> <button class="btn btn-sm ' + p.button_class + ' wysiwyg-choose-file" type="button">' + p.button_text + '</button> <input type="file" data-edit="' + p.name + '" /> </div>'
- }
- r += " </div> </div>";
- break;
- case "foreColor":
- case "backColor":
- r += ' <select class="hide wysiwyg_colorpicker" title="' + p.title + '"> ';
- for (var m in p.values) {
- r += ' <option value="' + p.values[m] + '">' + p.values[m] + "</option> "
- }
- r += " </select> ";
- r += ' <input style="display:none;" disabled class="hide" type="text" data-edit="' + p.name + '" /> ';
- break;
- case "viewSource":
- r += ' <a class="btn btn-sm ' + q + '" data-view="source" title="' + p.title + '"><i class="' + p.icon + '"></i></a> ';
- break;
- default:
- r += ' <a class="btn btn-sm ' + q + '" data-edit="' + p.name + '" title="' + p.title + '"><i class="' + p.icon + '"></i></a> ';
- break
- }
- }
- }
- r += " </div> </div> ";
- if (d.toolbar_place) {
- r = d.toolbar_place.call(this, r)
- } else {
- r = a(this).before(r).prev()
- }
- r.find("a[title]").tooltip({
- animation: false,
- container: "body"
- });
- r.find(".dropdown-menu input:not([type=file])").on(ace.click_event,
- function() {
- return false
- }).on("change",
- function() {
- a(this).closest(".dropdown-menu").siblings(".dropdown-toggle").dropdown("toggle")
- }).on("keydown",
- function(u) {
- if (u.which == 27) {
- this.value = "";
- a(this).change()
- }
- });
- r.find("input[type=file]").prev().on(ace.click_event,
- function(u) {
- a(this).next().click()
- });
- r.find(".wysiwyg_colorpicker").each(function() {
- a(this).ace_colorpicker({
- pull_right: true
- }).change(function() {
- a(this).nextAll("input").eq(0).val(this.value).change()
- }).next().find(".btn-colorpicker").tooltip({
- title: this.title,
- animation: false,
- container: "body"
- })
- });
- var k;
- if (d.speech_button && "onwebkitspeechchange" in (k = document.createElement("input"))) {
- var i = a(this).offset();
- r.append(k);
- a(k).attr({
- type: "text",
- "data-edit": "inserttext",
- "x-webkit-speech": ""
- }).addClass("wysiwyg-speech-input").css({
- position: "absolute"
- }).offset({
- top: i.top,
- left: i.left + a(this).innerWidth() - 35
- })
- } else {
- k = null
- }
- var s = a(this);
- var l = false;
- r.find("a[data-view=source]").on("click",
- function(v) {
- v.preventDefault();
- if (!l) {
- a("<textarea />").css({
- width: s.outerWidth(),
- height: s.outerHeight()
- }).val(s.html()).insertAfter(s);
- s.hide();
- a(this).addClass("active")
- } else {
- var u = s.next();
- s.html(u.val()).show();
- u.remove();
- a(this).removeClass("active")
- }
- l = !l
- });
- var o = a.extend({},
- {
- activeToolbarClass: "active",
- toolbarSelector: r
- },
- d.wysiwyg || {});
- a(this).wysiwyg(o)
- });
- return this
- }
- })(window.jQuery);
|