diaspora/app/assets/javascripts/widgets/direction-detector.js
Florian Staudacher 2572fb77fc * refactored text direction detector into helper (also for handlebars)
* added handlebars helper for markdown formatting
* finished port of profile sidebar view to handlebars template
* people_controller refactoring
2014-09-15 01:37:23 +02:00

47 lines
1.3 KiB
JavaScript

/* Copyright (c) 2010-2011, Diaspora Inc. This file is
* licensed under the Affero General Public License version 3 or later. See
* the COPYRIGHT file.
*/
/* Modified version of https://gitorious.org/statusnet/mainline/blobs/master/plugins/DirectionDetector/jquery.DirectionDetector.js */
(function() {
var DirectionDetector = function() {
var self = this;
this.binds = [];
this.cleaner = new RegExp("@[^ ]+|^RT[: ]{1}| RT | RT: |[♺♻:]+", "g");
this.subscribe("widget/ready", function() {
self.updateBinds();
self.globalSubscribe("stream/scrolled", function() {
self.updateBinds();
});
});
this.isRTL = app.helpers.txtDirection;
this.updateBinds = function() {
$.each(self.binds, function(index, bind) {
bind.unbind("keyup", self.updateDirection);
});
self.binds = [];
$("textarea, input[type='text'], input[type='search']").each(self.bind);
};
this.bind = function() {
self.binds.push(
$(this).bind("keyup", self.updateDirection)
);
};
this.updateDirection = function() {
var textArea = $(this),
cleaned = textArea.val().replace(self.cleaner, "").replace(/^[ ]+/, "");
app.helpers.txtDirection.setCssFor(cleaned, textArea);
};
};
Diaspora.Widgets.DirectionDetector = DirectionDetector;
})();