Skip to:
Content

BuddyPress.org

Changeset 9097


Ignore:
Timestamp:
10/29/2014 12:36:09 AM (6 years ago)
Author:
djpaul
Message:

Mentions: update to latest version of ext. libs.

  • Update atwho JS to rev 0f7ba07 (v0.5.1+).
  • Update caret JS to rev 736a7eb (v0.2.0+).

See #5969

Location:
trunk/src/bp-core/js
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/js/jquery.atwho.js

    • Property svn:executable set to *
    r8958 r9097  
    1 /*! jquery.atwho - v0.5.0 - 2014-07-14
     1/*! jquery.atwho - v0.5.1 - 2014-09-21
    22* Copyright (c) 2014 chord.luo <chord.luo@gmail.com>;
    33* homepage: http://ichord.github.com/At.js
     
    1414  })(function($) {
    1515
    16 var $CONTAINER, Api, App, Controller, DEFAULT_CALLBACKS, KEY_CODE, Model, View,
     16var Api, App, Controller, DEFAULT_CALLBACKS, KEY_CODE, Model, View,
    1717  __slice = [].slice;
    1818
     
    2323    this.alias_maps = {};
    2424    this.$inputor = $(inputor);
    25     this.iframe = null;
    2625    this.setIframe();
    2726    this.listen();
    2827  }
    2928
    30   App.prototype.setIframe = function(iframe) {
     29  App.prototype.createContainer = function(doc) {
     30    if ((this.$el = $("#atwho-container", doc)).length === 0) {
     31      return $(doc.body).append(this.$el = $("<div id='atwho-container'></div>"));
     32    }
     33  };
     34
     35  App.prototype.setIframe = function(iframe, standalone) {
     36    var _ref;
     37    if (standalone == null) {
     38      standalone = false;
     39    }
    3140    if (iframe) {
    3241      this.window = iframe.contentWindow;
    3342      this.document = iframe.contentDocument || this.window.document;
    34       return this.iframe = iframe;
     43      this.iframe = iframe;
    3544    } else {
    3645      this.document = document;
    3746      this.window = window;
    38       return this.iframe = null;
     47      this.iframe = null;
     48    }
     49    if (this.iframeStandalone = standalone) {
     50      if ((_ref = this.$el) != null) {
     51        _ref.remove();
     52      }
     53      return this.createContainer(this.document);
     54    } else {
     55      return this.createContainer(document);
    3956    }
    4057  };
     
    113130      delete this.controllers[_];
    114131    }
    115     return this.$inputor.off('.atwhoInner');
     132    this.$inputor.off('.atwhoInner');
     133    return this.$el.remove();
    116134  };
    117135
     
    226244    this.cur_rect = null;
    227245    this.range = null;
    228     $CONTAINER.append(this.$el = $("<div id='atwho-ground-" + this.id + "'></div>"));
     246    if ((this.$el = $("#atwho-ground-" + this.id, this.app.$el)).length === 0) {
     247      this.app.$el.append(this.$el = $("<div id='atwho-ground-" + this.id + "'></div>"));
     248    }
    229249    this.model = new Model(this);
    230250    this.view = new View(this);
     
    314334
    315335  Controller.prototype.rect = function() {
    316     var c, scale_bottom;
     336    var c, iframe_offset, scale_bottom;
    317337    if (!(c = this.$inputor.caret('offset', this.pos - 1, {
    318338      iframe: this.app.iframe
     
    320340      return;
    321341    }
    322     if (this.$inputor.attr('contentEditable') === 'true') {
    323       c = (this.cur_rect || (this.cur_rect = c)) || c;
     342    if (this.app.iframe && !this.app.iframeStandalone) {
     343      iframe_offset = $(this.app.iframe).offset();
     344      c.left += iframe_offset.left;
     345      c.top += iframe_offset.top;
     346    }
     347    if (this.$inputor.is('[contentEditable]')) {
     348      c = this.cur_rect || (this.cur_rect = c);
    324349    }
    325350    scale_bottom = this.app.document.selection ? 0 : 2;
     
    332357
    333358  Controller.prototype.reset_rect = function() {
    334     if (this.$inputor.attr('contentEditable') === 'true') {
     359    if (this.$inputor.is('[contentEditable]')) {
    335360      return this.cur_rect = null;
    336361    }
     
    338363
    339364  Controller.prototype.mark_range = function() {
    340     if (this.$inputor.attr('contentEditable') === 'true') {
    341       if (this.app.window.getSelection) {
    342         this.range = this.app.window.getSelection().getRangeAt(0);
    343       }
    344       if (this.app.document.selection) {
    345         return this.ie8_range = this.app.document.selection.createRange();
    346       }
     365    var sel;
     366    if (!this.$inputor.is('[contentEditable]')) {
     367      return;
     368    }
     369    if (this.app.window.getSelection && (sel = this.app.window.getSelection()).rangeCount > 0) {
     370      return this.range = sel.getRangeAt(0);
     371    } else if (this.app.document.selection) {
     372      return this.ie8_range = this.app.document.selection.createRange();
    347373    }
    348374  };
     
    542568
    543569  View.prototype.reposition = function(rect) {
    544     var offset, _ref;
    545     if (rect.bottom + this.$el.height() - $(window).scrollTop() > $(window).height()) {
     570    var offset, overflowOffset, _ref, _window;
     571    _window = this.context.app.iframeStandalone ? this.context.app.window : window;
     572    if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {
    546573      rect.bottom = rect.top - this.$el.height();
     574    }
     575    if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {
     576      rect.left = overflowOffset;
    547577    }
    548578    offset = {
     
    678708      flag = '(?:^|\\s)' + flag;
    679709    }
    680     regexp = new RegExp(flag + '([A-Za-z0-9_\+\-]*)$|' + flag + '([^\\x00-\\xff]*)$', 'gi');
     710    regexp = new RegExp(flag + '([A-Za-zÀ-ÿ0-9_\+\-]*)$|' + flag + '([^\\x00-\\xff]*)$', 'gi');
    681711    match = regexp.exec(subtext);
    682712    if (match) {
     
    691721    for (_i = 0, _len = data.length; _i < _len; _i++) {
    692722      item = data[_i];
    693       if (~item[search_key].toLowerCase().indexOf(query.toLowerCase())) {
     723      if (~new String(item[search_key]).toLowerCase().indexOf(query.toLowerCase())) {
    694724        _results.push(item);
    695725      }
     
    706736    for (_i = 0, _len = items.length; _i < _len; _i++) {
    707737      item = items[_i];
    708       item.atwho_order = item[search_key].toLowerCase().indexOf(query.toLowerCase());
     738      item.atwho_order = new String(item[search_key]).toLowerCase().indexOf(query.toLowerCase());
    709739      if (item.atwho_order > -1) {
    710740        _results.push(item);
     
    767797    }
    768798  },
    769   setIframe: function(iframe) {
    770     this.setIframe(iframe);
     799  setIframe: function(iframe, standalone) {
     800    this.setIframe(iframe, standalone);
    771801    return null;
    772802  },
     
    780810};
    781811
    782 $CONTAINER = $("<div id='atwho-container'></div>");
    783 
    784812$.fn.atwho = function(method) {
    785813  var result, _args;
    786814  _args = arguments;
    787   $('body').append($CONTAINER);
    788815  result = null;
    789   this.filter('textarea, input, [contenteditable=true]').each(function() {
     816  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    790817    var $this, app;
    791818    if (!(app = ($this = $(this)).data("atwho"))) {
  • trunk/src/bp-core/js/jquery.caret.js

    • Property svn:executable set to *
    r8958 r9097  
    4242
    4343      EditableCaret.prototype.getIEPosition = function() {
    44         return $.noop();
     44        return this.getPosition();
    4545      };
    4646
    4747      EditableCaret.prototype.getPosition = function() {
    48         return $.noop();
     48        var inputor_offset, offset;
     49        offset = this.getOffset();
     50        inputor_offset = this.$inputor.offset();
     51        offset.left -= inputor_offset.left;
     52        offset.top -= inputor_offset.top;
     53        return offset;
    4954      };
    5055
     
    103108          offset = this.getOldIEOffset();
    104109        }
    105         if (offset && !oFrame) {
     110        if (offset) {
    106111          offset.top += $(oWindow).scrollTop();
    107112          offset.left += $(oWindow).scrollLeft();
     
    212217        $inputor = this.$inputor;
    213218        format = function(value) {
    214           return value.replace(/</g, '&lt').replace(/>/g, '&gt').replace(/`/g, '&#96').replace(/"/g, '&quot').replace(/\r\n|\r|\n/g, "<br />");
     219          return $('<div></div>').text(value).html();
    215220        };
    216221        if (pos === void 0) {
     
    313318      },
    314319      offset: function(pos) {
    315         var iOffset, offset;
     320        var offset;
    316321        offset = this.getOffset(pos);
    317         if (oFrame) {
    318           iOffset = $(oFrame).offset();
    319           offset.top += iOffset.top;
    320           offset.left += iOffset.left;
    321         }
    322322        return offset;
    323323      }
Note: See TracChangeset for help on using the changeset viewer.