Ver Fonte

[core] Remove unused desktop JS libraries

Removed Farbtastic
Enrico Berti há 11 anos atrás
pai
commit
d328bd0

+ 0 - 13
desktop/core/static/ext/css/freshereditor.css

@@ -1,13 +0,0 @@
-.fresheditor-toolbar 
-{
-	font-family:"Georgia", Serif;
-	line-height:1.67em;
-	font-size:1em;
-}
-.toolbar-btn {
-	height: 20px;
-}
-.colorpanel {
-	background-color: #333;
-}
-

+ 0 - 51
desktop/core/static/ext/farbtastic/farbtastic.css

@@ -1,51 +0,0 @@
-/**
- * Farbtastic Color Picker 1.2
- * © 2008 Steven Wittens
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-.farbtastic {
-  position: relative;
-}
-.farbtastic * {
-  position: absolute;
-  cursor: crosshair;
-}
-.farbtastic, .farbtastic .wheel {
-  width: 195px;
-  height: 195px;
-}
-.farbtastic .color, .farbtastic .overlay {
-  top: 47px;
-  left: 47px;
-  width: 101px;
-  height: 101px;
-}
-.farbtastic .wheel {
-  background: url(wheel.png) no-repeat;
-  width: 195px;
-  height: 195px;
-}
-.farbtastic .overlay {
-  background: url(mask.png) no-repeat;
-}
-.farbtastic .marker {
-  width: 17px;
-  height: 17px;
-  margin: -8px 0 0 -8px;
-  overflow: hidden; 
-  background: url(marker.png) no-repeat;
-}
-

+ 0 - 345
desktop/core/static/ext/farbtastic/farbtastic.js

@@ -1,345 +0,0 @@
-/**
- * Farbtastic Color Picker 1.2
- * © 2008 Steven Wittens
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- */
-
-jQuery.fn.farbtastic = function (callback) {
-  $.farbtastic(this, callback);
-  return this;
-};
-
-jQuery.farbtastic = function (container, callback) {
-  var container = $(container).get(0);
-  return container.farbtastic || (container.farbtastic = new jQuery._farbtastic(container, callback));
-}
-
-jQuery._farbtastic = function (container, callback) {
-  // Store farbtastic object
-  var fb = this;
-
-  // Insert markup
-  $(container).html('<div class="farbtastic"><div class="color"></div><div class="wheel"></div><div class="overlay"></div><div class="h-marker marker"></div><div class="sl-marker marker"></div></div>');
-  var e = $('.farbtastic', container);
-  fb.wheel = $('.wheel', container).get(0);
-  // Dimensions
-  fb.radius = 84;
-  fb.square = 100;
-  fb.width = 194;
-
-  // Fix background PNGs in IE6
-  if (navigator.appVersion.match(/MSIE [0-6]\./)) {
-    $('*', e).each(function () {
-      if (this.currentStyle.backgroundImage != 'none') {
-        var image = this.currentStyle.backgroundImage;
-        image = this.currentStyle.backgroundImage.substring(5, image.length - 2);
-        $(this).css({
-          'backgroundImage': 'none',
-          'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=crop, src='" + image + "')"
-        });
-      }
-    });
-  }
-
-  /**
-   * Link to the given element(s) or callback.
-   */
-  fb.linkTo = function (callback) {
-    // Unbind previous nodes
-    if (typeof fb.callback == 'object') {
-      $(fb.callback).unbind('keyup', fb.updateValue);
-    }
-
-    // Reset color
-    fb.color = null;
-
-    // Bind callback or elements
-    if (typeof callback == 'function') {
-      fb.callback = callback;
-    }
-    else if (typeof callback == 'object' || typeof callback == 'string') {
-      fb.callback = $(callback);
-      fb.callback.bind('keyup', fb.updateValue);
-      if (fb.callback.get(0).value) {
-        fb.setColor(fb.callback.get(0).value);
-      }
-    }
-    return this;
-  }
-  fb.updateValue = function (event) {
-    if (this.value && this.value != fb.color) {
-      fb.setColor(this.value);
-    }
-  }
-
-  /**
-   * Change color with HTML syntax #123456
-   */
-  fb.setColor = function (color) {
-    var unpack = fb.unpack(color);
-    if (fb.color != color && unpack) {
-      fb.color = color;
-      fb.rgb = unpack;
-      fb.hsl = fb.RGBToHSL(fb.rgb);
-      fb.updateDisplay();
-    }
-    return this;
-  }
-
-  /**
-   * Change color with HSL triplet [0..1, 0..1, 0..1]
-   */
-  fb.setHSL = function (hsl) {
-    fb.hsl = hsl;
-    fb.rgb = fb.HSLToRGB(hsl);
-    fb.color = fb.pack(fb.rgb);
-    fb.updateDisplay();
-    return this;
-  }
-
-  /////////////////////////////////////////////////////
-
-  /**
-   * Retrieve the coordinates of the given event relative to the center
-   * of the widget.
-   */
-  fb.widgetCoords = function (event) {
-    var x, y;
-    var el = event.target || event.srcElement;
-    var reference = fb.wheel;
-
-    if (typeof event.offsetX != 'undefined') {
-      // Use offset coordinates and find common offsetParent
-      var pos = { x: event.offsetX, y: event.offsetY };
-
-      // Send the coordinates upwards through the offsetParent chain.
-      var e = el;
-      while (e) {
-        e.mouseX = pos.x;
-        e.mouseY = pos.y;
-        pos.x += e.offsetLeft;
-        pos.y += e.offsetTop;
-        e = e.offsetParent;
-      }
-
-      // Look for the coordinates starting from the wheel widget.
-      var e = reference;
-      var offset = { x: 0, y: 0 }
-      while (e) {
-        if (typeof e.mouseX != 'undefined') {
-          x = e.mouseX - offset.x;
-          y = e.mouseY - offset.y;
-          break;
-        }
-        offset.x += e.offsetLeft;
-        offset.y += e.offsetTop;
-        e = e.offsetParent;
-      }
-
-      // Reset stored coordinates
-      e = el;
-      while (e) {
-        e.mouseX = undefined;
-        e.mouseY = undefined;
-        e = e.offsetParent;
-      }
-    }
-    else {
-      // Use absolute coordinates
-      var pos = fb.absolutePosition(reference);
-      x = (event.pageX || 0*(event.clientX + $('html').get(0).scrollLeft)) - pos.x;
-      y = (event.pageY || 0*(event.clientY + $('html').get(0).scrollTop)) - pos.y;
-    }
-    // Subtract distance to middle
-    return { x: x - fb.width / 2, y: y - fb.width / 2 };
-  }
-
-  /**
-   * Mousedown handler
-   */
-  fb.mousedown = function (event) {
-    // Capture mouse
-    if (!document.dragging) {
-      $(document).bind('mousemove', fb.mousemove).bind('mouseup', fb.mouseup);
-      document.dragging = true;
-    }
-
-    // Check which area is being dragged
-    var pos = fb.widgetCoords(event);
-    fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;
-
-    // Process
-    fb.mousemove(event);
-    return false;
-  }
-
-  /**
-   * Mousemove handler
-   */
-  fb.mousemove = function (event) {
-    // Get coordinates relative to color picker center
-    var pos = fb.widgetCoords(event);
-
-    // Set new HSL parameters
-    if (fb.circleDrag) {
-      var hue = Math.atan2(pos.x, -pos.y) / 6.28;
-      if (hue < 0) hue += 1;
-      fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
-    }
-    else {
-      var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
-      var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
-      fb.setHSL([fb.hsl[0], sat, lum]);
-    }
-    return false;
-  }
-
-  /**
-   * Mouseup handler
-   */
-  fb.mouseup = function () {
-    // Uncapture mouse
-    $(document).unbind('mousemove', fb.mousemove);
-    $(document).unbind('mouseup', fb.mouseup);
-    document.dragging = false;
-  }
-
-  /**
-   * Update the markers and styles
-   */
-  fb.updateDisplay = function () {
-    // Markers
-    var angle = fb.hsl[0] * 6.28;
-    $('.h-marker', e).css({
-      left: Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px',
-      top: Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px'
-    });
-
-    $('.sl-marker', e).css({
-      left: Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px',
-      top: Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px'
-    });
-
-    // Saturation/Luminance gradient
-    $('.color', e).css('backgroundColor', fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5])));
-
-    // Linked elements or callback
-    if (typeof fb.callback == 'object') {
-      // Set background/foreground color
-      $(fb.callback).css({
-        backgroundColor: fb.color,
-        color: fb.hsl[2] > 0.5 ? '#000' : '#fff'
-      });
-
-      // Change linked value
-      $(fb.callback).each(function() {
-        if (this.value && this.value != fb.color) {
-          this.value = fb.color;
-        }
-      });
-    }
-    else if (typeof fb.callback == 'function') {
-      fb.callback.call(fb, fb.color);
-    }
-  }
-
-  /**
-   * Get absolute position of element
-   */
-  fb.absolutePosition = function (el) {
-    var r = { x: el.offsetLeft, y: el.offsetTop };
-    // Resolve relative to offsetParent
-    if (el.offsetParent) {
-      var tmp = fb.absolutePosition(el.offsetParent);
-      r.x += tmp.x;
-      r.y += tmp.y;
-    }
-    return r;
-  };
-
-  /* Various color utility functions */
-  fb.pack = function (rgb) {
-    var r = Math.round(rgb[0] * 255);
-    var g = Math.round(rgb[1] * 255);
-    var b = Math.round(rgb[2] * 255);
-    return '#' + (r < 16 ? '0' : '') + r.toString(16) +
-           (g < 16 ? '0' : '') + g.toString(16) +
-           (b < 16 ? '0' : '') + b.toString(16);
-  }
-
-  fb.unpack = function (color) {
-    if (color.length == 7) {
-      return [parseInt('0x' + color.substring(1, 3)) / 255,
-        parseInt('0x' + color.substring(3, 5)) / 255,
-        parseInt('0x' + color.substring(5, 7)) / 255];
-    }
-    else if (color.length == 4) {
-      return [parseInt('0x' + color.substring(1, 2)) / 15,
-        parseInt('0x' + color.substring(2, 3)) / 15,
-        parseInt('0x' + color.substring(3, 4)) / 15];
-    }
-  }
-
-  fb.HSLToRGB = function (hsl) {
-    var m1, m2, r, g, b;
-    var h = hsl[0], s = hsl[1], l = hsl[2];
-    m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
-    m1 = l * 2 - m2;
-    return [this.hueToRGB(m1, m2, h+0.33333),
-        this.hueToRGB(m1, m2, h),
-        this.hueToRGB(m1, m2, h-0.33333)];
-  }
-
-  fb.hueToRGB = function (m1, m2, h) {
-    h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
-    if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
-    if (h * 2 < 1) return m2;
-    if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
-    return m1;
-  }
-
-  fb.RGBToHSL = function (rgb) {
-    var min, max, delta, h, s, l;
-    var r = rgb[0], g = rgb[1], b = rgb[2];
-    min = Math.min(r, Math.min(g, b));
-    max = Math.max(r, Math.max(g, b));
-    delta = max - min;
-    l = (min + max) / 2;
-    s = 0;
-    if (l > 0 && l < 1) {
-      s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
-    }
-    h = 0;
-    if (delta > 0) {
-      if (max == r && max != g) h += (g - b) / delta;
-      if (max == g && max != b) h += (2 + (b - r) / delta);
-      if (max == b && max != r) h += (4 + (r - g) / delta);
-      h /= 6;
-    }
-    return [h, s, l];
-  }
-
-  // Install mousedown handler (the others are set on the document on-demand)
-  $('*', e).mousedown(fb.mousedown);
-
-    // Init color
-  fb.setColor('#000000');
-
-  // Set linked elements/callback
-  if (callback) {
-    fb.linkTo(callback);
-  }
-}

BIN
desktop/core/static/ext/farbtastic/marker.png


BIN
desktop/core/static/ext/farbtastic/mask.png


BIN
desktop/core/static/ext/farbtastic/wheel.png


+ 0 - 490
desktop/core/static/ext/js/freshereditor.min.js

@@ -1,490 +0,0 @@
-(function() {
-  (function($) {
-    var methods;
-    methods = {
-      edit: function(isEditing) {
-        return this.each(function() {
-          return $(this).attr("contentEditable", isEditing || false);
-        });
-      },
-      save: function(callback) {
-        return this.each(function() {
-          return callback($(this).attr('id'), $(this).html());
-        });
-      },
-      createlink: function() {
-        var urlPrompt;
-        urlPrompt = prompt("Enter URL:", "http://");
-        return document.execCommand("createlink", false, urlPrompt);
-      },
-      insertimage: function() {
-        var urlPrompt;
-        urlPrompt = prompt("Enter Image URL:", "http://");
-        return document.execCommand("insertimage", false, urlPrompt);
-      },
-      formatblock: function(block) {
-        return document.execCommand("formatblock", null, block);
-      },
-      init: function(opts) {
-        var $toolbar, button, command, commands, excludes, font, font_list, fontnames, fontsize, fontsizes, group, groups, options, shortcuts, size_list, _i, _j, _k, _l, _len, _len2, _len3, _len4;
-        options = opts || {};
-        groups = [
-          [
-            {
-              name: 'bold',
-              label: "<span style='font-weight:bold;'>B</span>",
-              title: 'Bold (Ctrl+B)',
-              classname: 'toolbar_bold'
-            }, {
-            name: 'italic',
-            label: "<span style='font-style:italic;'>I</span>",
-            title: 'Italic (Ctrl+I)',
-            classname: 'toolbar_italic'
-          }, {
-            name: 'underline',
-            label: "<span style='text-decoration:underline!important;'>U</span>",
-            title: 'Underline (Ctrl+U)',
-            classname: 'toolbar_underline'
-          }, {
-            name: 'strikethrough',
-            label: "<span style='text-shadow:none;text-decoration:line-through;'>ABC</span>",
-            title: 'Strikethrough',
-            classname: 'toolbar_strikethrough'
-          }, {
-            name: 'removeFormat',
-            label: "<i class='fa fa-minus'></i>",
-            title: 'Remove Formating (Ctrl+M)',
-            classname: 'toolbar_remove'
-          }
-          ], [
-            {
-              name: 'fontname',
-              label: "F <span class='caret'></span>",
-              title: 'Select font name',
-              classname: 'toolbar_fontname dropdown-toggle',
-              dropdown: true
-            }
-          ], [
-            {
-              name: 'FontSize',
-              label: "<span style='font:bold 16px;'>A</span><span style='font-size:8px;'>A</span> <span class='caret'></span>",
-              title: 'Select font size',
-              classname: 'toolbar_fontsize dropdown-toggle',
-              dropdown: true
-            }
-          ], [
-            {
-              name: 'forecolor',
-              label: "<div style='color:#ff0000;'>A <span class='caret'></span></div>",
-              title: 'Select font color',
-              classname: 'toolbar_forecolor dropdown-toggle',
-              dropdown: true
-            }
-          ], [
-            {
-              name: 'backcolor',
-              label: "<div style='display:inline-block;margin:3px;width:15px;height:12px;background-color:#0000ff;'></div> <span class='caret'></span>",
-              title: 'Select background color',
-              classname: 'toolbar_bgcolor dropdown-toggle',
-              dropdown: true
-            }
-          ], [
-            {
-              name: 'justifyleft',
-              label: "<i class='fa fa-align-left' style='margin-top:2px;'></i>",
-              title: 'Left justify',
-              classname: 'toolbar_justifyleft'
-            }, {
-              name: 'justifycenter',
-              label: "<i class='fa fa-align-center' style='margin-top:2px;'></i>",
-              title: 'Center justify',
-              classname: 'toolbar_justifycenter'
-            }, {
-              name: 'justifyright',
-              label: "<i class='fa fa-align-right' style='margin-top:2px;'></i>",
-              title: 'Right justify',
-              classname: 'toolbar_justifyright'
-            }, {
-              name: 'justifyfull',
-              label: "<i class='fa fa-align-justify' style='margin-top:2px;'></i>",
-              title: 'Full justify',
-              classname: 'toolbar_justifyfull'
-            }
-          ], [
-            {
-              name: 'createlink',
-              label: '@',
-              title: 'Link to a web page (Ctrl+L)',
-              userinput: "yes",
-              classname: 'toolbar_link'
-            }, {
-              name: 'insertimage',
-              label: "<i style='margin-top:2px;' class='fa fa-picture-o'></i>",
-              title: 'Insert an image (Ctrl+G)',
-              userinput: "yes",
-              classname: 'toolbar_image'
-            }, {
-              name: 'insertorderedlist',
-              label: "<i class='fa fa-list-alt' style='margin-top:2px;'></i>",
-              title: 'Insert ordered list',
-              classname: 'toolbar_ol'
-            }, {
-              name: 'insertunorderedlist',
-              label: "<i class='fa fa-list' style='margin-top:2px;'></i>",
-              title: 'Insert unordered list',
-              classname: 'toolbar_ul'
-            }
-          ], [
-            {
-              name: 'insertparagraph',
-              label: 'P',
-              title: 'Insert a paragraph (Ctrl+Alt+0)',
-              classname: 'toolbar_p',
-              block: 'p'
-            }, {
-              name: 'insertheading1',
-              label: 'H1',
-              title: "Heading 1 (Ctrl+Alt+1)",
-              classname: 'toolbar_h1',
-              block: 'h1'
-            }, {
-              name: 'insertheading2',
-              label: 'H2',
-              title: "Heading 2 (Ctrl+Alt+2)",
-              classname: 'toolbar_h2',
-              block: 'h2'
-            }, {
-              name: 'insertheading3',
-              label: 'H3',
-              title: "Heading 3 (Ctrl+Alt+3)",
-              classname: 'toolbar_h3',
-              block: 'h3'
-            }, {
-              name: 'insertheading4',
-              label: 'H4',
-              title: "Heading 4 (Ctrl+Alt+4)",
-              classname: 'toolbar_h4',
-              block: 'h4'
-            }
-          ], [
-            {
-              name: 'blockquote',
-              label: "<i style='margin-top:2px;' class='fa fa-comment'></i>",
-              title: 'Blockquote (Ctrl+Q)',
-              classname: 'toolbar_blockquote',
-              block: 'blockquote'
-            }, {
-              name: 'code',
-              label: '{&nbsp;}',
-              title: 'Code (Ctrl+Alt+K)',
-              classname: 'toolbar_code',
-              block: 'pre'
-            }, {
-              name: 'superscript',
-              label: 'x<sup>2</sup>',
-              title: 'Superscript',
-              classname: 'toolbar_superscript'
-            }, {
-              name: 'subscript',
-              label: 'x<sub>2</sub>',
-              title: 'Subscript',
-              classname: 'toolbar_subscript'
-            }
-          ]
-        ];
-        if (options.toolbar_selector != null) {
-          $toolbar = $(options.toolbar_selector);
-        } else {
-          $(this).before("<div id='editor-toolbar'></div>");
-          $toolbar = $('#editor-toolbar');
-        }
-        $toolbar.addClass('fresheditor-toolbar');
-        $toolbar.append("<div class='btn-toolbar'></div>");
-        excludes = options.excludes || [];
-        for (_i = 0, _len = groups.length; _i < _len; _i++) {
-          commands = groups[_i];
-          group = '';
-          for (_j = 0, _len2 = commands.length; _j < _len2; _j++) {
-            command = commands[_j];
-            if (jQuery.inArray(command.name, excludes) < 0) {
-              button = "<a href='#' class='btn toolbar-btn toolbar-cmd " + command.classname + "' title='" + command.title + "' command='" + command.name + "'";
-              if (command.userinput != null) {
-                button += " userinput='" + command.userinput + "'";
-              }
-              if (command.block != null) {
-                button += " block='" + command.block + "'";
-              }
-              if (command.dropdown) {
-                button += " data-toggle='dropdown'";
-              }
-              button += ">" + command.label + "</a>";
-              group += button;
-            }
-          }
-          $('.btn-toolbar', $toolbar).append("<div class='btn-group'>" + group + "</div>");
-        }
-        $("[data-toggle='dropdown']").removeClass('toolbar-cmd');
-        if (jQuery.inArray('fontname', excludes) < 0) {
-          fontnames = ["Arial", "Arial Black", "Comic Sans MS", "Courier New", "Georgia", "Helvetica", "Sans Serif", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana"];
-          font_list = '';
-          for (_k = 0, _len3 = fontnames.length; _k < _len3; _k++) {
-            font = fontnames[_k];
-            font_list += "<li><a href='#' class='fontname-option' style='font-family:" + font + ";'>" + font + "</a></li>";
-          }
-          $('.toolbar_fontname').after("<ul class='dropdown-menu'>" + font_list + "</ul>");
-          $('.fontname-option').on('click', function() {
-            document.execCommand("fontname", false, $(this).text());
-            $(this).closest('.btn-group').removeClass('open');
-            return false;
-          });
-        }
-        if (jQuery.inArray('FontSize', excludes) < 0) {
-          fontsizes = [
-            {
-              size: 1,
-              point: 8
-            }, {
-              size: 2,
-              point: 10
-            }, {
-              size: 3,
-              point: 12
-            }, {
-              size: 4,
-              point: 14
-            }, {
-              size: 5,
-              point: 18
-            }, {
-              size: 6,
-              point: 24
-            }, {
-              size: 7,
-              point: 36
-            }
-          ];
-          size_list = '';
-          for (_l = 0, _len4 = fontsizes.length; _l < _len4; _l++) {
-            fontsize = fontsizes[_l];
-            size_list += "<li><a href='#' class='font-option fontsize-option' style='font-size:" + fontsize.point + "px;' fontsize='" + fontsize.size + "'>" + fontsize.size + "(" + fontsize.point + "pt)</a></li>";
-          }
-          $('.toolbar_fontsize').after("<ul class='dropdown-menu'>" + size_list + "</ul>");
-          $('a.fontsize-option').on('click', function() {
-            console.log($(this).attr('fontsize'));
-            document.execCommand("FontSize", false, $(this).attr('fontsize'));
-            $(this).closest('.btn-group').removeClass('open');
-            return false;
-          });
-        }
-        if (jQuery.inArray('forecolor', excludes) < 0) {
-          $('a.toolbar_forecolor').after("<ul class='dropdown-menu colorpanel'><input type='text' id='forecolor-input' value='#000000' /><div id='forecolor-picker'></div></ul>");
-          $('#forecolor-picker').farbtastic(function(color) {
-            $('#forecolor-input').val(color);
-            document.execCommand("forecolor", false, color);
-            $(this).closest('.btn-group').removeClass('open');
-            $('.toolbar_forecolor div').css({
-              "color": color
-            });
-            return false;
-          });
-        }
-        if (jQuery.inArray('backcolor', excludes) < 0) {
-          $('a.toolbar_bgcolor').after("<ul class='dropdown-menu colorpanel'><input type='text' id='bgcolor-input' value='#000000' /><div id='bgcolor-picker'></div></ul>");
-          $('#bgcolor-picker').farbtastic(function(color) {
-            $('#bgcolor-input').val(color);
-            document.execCommand("backcolor", false, color);
-            $(this).closest('.btn-group').removeClass('open');
-            $('.toolbar_bgcolor div').css({
-              "background-color": color
-            });
-            return false;
-          });
-        }
-        $(this).on('focus', function() {
-          var $this;
-          $this = $(this);
-          $this.data('before', $this.html());
-          return $this;
-        }).on('blur keyup paste', function() {
-              var $this;
-              $this = $(this);
-              if ($this.data('before') !== $this.html()) {
-                $this.data('before', $this.html());
-                $this.trigger('change');
-              }
-              return $this;
-            });
-        $("a.toolbar-cmd").on('click', function() {
-          var ceNode, cmd, dummy, range;
-          cmd = $(this).attr('command');
-          if ($(this).attr('userinput') === 'yes') {
-            methods[cmd].apply(this);
-          } else if ($(this).attr('block')) {
-            methods['formatblock'].apply(this, ["<" + ($(this).attr('block')) + ">"]);
-          } else {
-            if ((cmd === 'justifyright') || (cmd === 'justifyleft') || (cmd === 'justifycenter') || (cmd === 'justifyfull')) {
-              try {
-                document.execCommand(cmd, false, null);
-              } catch (e) {
-                if (e && e.result === 2147500037) {
-                  range = window.getSelection().getRangeAt(0);
-                  dummy = document.createElement('br');
-                  ceNode = range.startContainer.parentNode;
-                  while ((ceNode != null) && ceNode.contentEditable !== 'true') {
-                    ceNode = ceNode.parentNode;
-                  }
-                  if (!ceNode) {
-                    throw 'Selected node is not editable!';
-                  }
-                  ceNode.insertBefore(dummy, ceNode.childNodes[0]);
-                  document.execCommand(cmd, false, null);
-                  dummy.parentNode.removeChild(dummy);
-                } else if (console && console.log) {
-                  console.log(e);
-                }
-              }
-            } else {
-              document.execCommand(cmd, false, null);
-            }
-          }
-          return false;
-        });
-        shortcuts = [
-          {
-            keys: 'Ctrl+l',
-            method: function() {
-              return methods.createlink.apply(this);
-            }
-          }, {
-            keys: 'Ctrl+g',
-            method: function() {
-              return methods.insertimage.apply(this);
-            }
-          }, {
-            keys: 'Ctrl+Alt+U',
-            method: function() {
-              return document.execCommand('insertunorderedlist', false, null);
-            }
-          }, {
-            keys: 'Ctrl+Alt+O',
-            method: function() {
-              return document.execCommand('insertorderedlist', false, null);
-            }
-          }, {
-            keys: 'Ctrl+q',
-            method: function() {
-              return methods.formatblock.apply(this, ["<blockquote>"]);
-            }
-          }, {
-            keys: 'Ctrl+Alt+k',
-            method: function() {
-              return methods.formatblock.apply(this, ["<pre>"]);
-            }
-          }, {
-            keys: 'Ctrl+.',
-            method: function() {
-              return document.execCommand('superscript', false, null);
-            }
-          }, {
-            keys: 'Ctrl+Shift+.',
-            method: function() {
-              return document.execCommand('subscript', false, null);
-            }
-          }, {
-            keys: 'Ctrl+Alt+0',
-            method: function() {
-              return methods.formatblock.apply(this, ["p"]);
-            }
-          }, {
-            keys: 'Ctrl+b',
-            method: function() {
-              return document.execCommand('bold', false, null);
-            }
-          }, {
-            keys: 'Ctrl+i',
-            method: function() {
-              return document.execCommand('italic', false, null);
-            }
-          }, {
-            keys: 'Ctrl+Alt+1',
-            method: function() {
-              return methods.formatblock.apply(this, ["H1"]);
-            }
-          }, {
-            keys: 'Ctrl+Alt+2',
-            method: function() {
-              return methods.formatblock.apply(this, ["H2"]);
-            }
-          }, {
-            keys: 'Ctrl+Alt+3',
-            method: function() {
-              return methods.formatblock.apply(this, ["H3"]);
-            }
-          }, {
-            keys: 'Ctrl+Alt+4',
-            method: function() {
-              return methods.formatblock.apply(this, ["H4"]);
-            }
-          }, {
-            keys: 'Ctrl+m',
-            method: function() {
-              return document.execCommand("removeFormat", false, null);
-            }
-          }, {
-            keys: 'Ctrl+u',
-            method: function() {
-              return document.execCommand('underline', false, null);
-            }
-          }, {
-            keys: 'tab',
-            method: function() {
-              return document.execCommand('indent', false, null);
-            }
-          }, {
-            keys: 'Ctrl+tab',
-            method: function() {
-              return document.execCommand('indent', false, null);
-            }
-          }, {
-            keys: 'Shift+tab',
-            method: function() {
-              return document.execCommand('outdent', false, null);
-            }
-          }
-        ];
-        $.each(shortcuts, function(index, elem) {
-          return shortcut.add(elem.keys, function() {
-            elem.method();
-            return false;
-          }, {
-            'type': 'keydown',
-            'propagate': false
-          });
-        });
-        return this.each(function() {
-          var $this, data, tooltip;
-          $this = $(this);
-          data = $this.data('fresheditor');
-          tooltip = $('<div/>', {
-            text: $this.attr('title')
-          });
-          if (!data) {
-            return $(this).data('fresheditor', {
-              target: $this,
-              tooltip: tooltip
-            });
-          }
-        });
-      }
-    };
-    return $.fn.freshereditor = function(method) {
-      if (methods[method]) {
-        methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
-      } else if (typeof method === 'object' || !method) {
-        methods.init.apply(this, arguments);
-      } else {
-        $.error('Method ' + method + ' does not exist on jQuery.contentEditable');
-      }
-    };
-  })(jQuery);
-}).call(this);