Sha256: 309bbd340d8b3d147c3a6d4c05b9c9b03fb48df6b38f01a2c6e809b943e0cf7e

Contents?: true

Size: 1.71 KB

Versions: 2

Compression:

Stored size: 1.71 KB

Contents

window.jRichTextArea = function(textArea, options){
  this.textArea = textArea;

  // Default options
  settings = $.extend({
       className: "richTextToolbar"
  }, options);

  this.toolbar = {
    settings : settings,
    textArea : textArea,
    listElement : false,
    buttons : new Array(),
    addButton : function(name, callback, options) {
      // Default options
      settings = $.extend({
           className: name.replace(/[\s]+/, '')+"Button"
      }, options);
      var li = document.createElement("li");
      var a = document.createElement("a");
      a.title = name;
      a.textArea = this.textArea;
      //callback.this = this;
      $(a).mousedown(callback);
      $(a).addClass(settings.className);
      $(li).append(a).appendTo(this.listElement);
      this.buttons.push(li);
      return this;
    },
    create : function() {
      if(!this.listElement) {
        this.listElement = document.createElement("ul");
        $(this.listElement).addClass(this.settings.className);
        $(this.listElement).insertBefore(this.textArea);
      }
    }
  }

  this.textArea.selectedText = function() {
    return $(this).getSelection().text;
  }
  this.textArea.replaceSelection = function(replacement) {
    return $(this).replaceSelection(replacement);
  }
  this.textArea.wrapSelection = function() {
    var prepend = arguments[0];
    var append = (arguments.length > 1) ? arguments[1] : prepend
    var selectedText = this.selectedText();
    var trailingSpace = selectedText.match(/(\s)*$/)[0];
    selectedText = selectedText.replace(/(\s)*$/, '');
    return this.replaceSelection(prepend + selectedText + append + trailingSpace);
  }

  // Delegates
  this.textArea.toolbar = this.toolbar;
  this.toolbar.create();
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pages_core-3.4.3 app/assets/javascripts/pages/admin/lib/jrichtextarea.js
pages_core-3.4.2 app/assets/javascripts/pages/admin/lib/jrichtextarea.js