Infinite scroll is now a widget, remove InfiniteScroll#postScroll, use DiasporaJS pub/sub instead, remove timeago.js hacks

This commit is contained in:
Dan Hansen 2011-04-22 20:33:21 -05:00
parent d28e7e70b8
commit 3d11b402e0
8 changed files with 49 additions and 64 deletions

View file

@ -29,11 +29,11 @@ javascripts:
- public/javascripts/widgets/alert.js
- public/javascripts/widgets/embedder.js
- public/javascripts/widgets/timeago.js
- public/javascripts/widgets/infinite-scroll.js
- public/javascripts/widgets/directionDetector.js
- public/javascripts/view.js
- public/javascripts/stream.js
- public/javascripts/search.js
- public/javascripts/infinite-scroll.js
mobile:
- public/javascripts/vendor/jquery152.min.js
- public/javascripts/custom-mobile-scripting.js
@ -41,7 +41,7 @@ javascripts:
- public/javascripts/vendor/jquery.infinitescroll.min.js
- public/javascripts/diaspora.js
- public/javascripts/widgets/i18n.js
- public/javascripts/infinite-scroll.js
- public/javascripts/widgets/infinite-scroll.js
- public/javascripts/rails.js
mailchimp:
- public/javascripts/vendor/mailchimp/jquery.form.js

View file

@ -31,4 +31,5 @@ en:
cannot_remove: "Cannot remove person from last aspect. (If you want to disconnect from this person you must remove contact.)"
publisher:
at_least_one_aspect: "You must publish to at least one aspect"
infinite_scroll:
no_more: "No more posts."

View file

@ -1,38 +0,0 @@
var InfiniteScroll = {
options: {
navSelector : "#pagination",
// selector for the paged navigation (it will be hidden)
nextSelector : ".paginate",
// selector for the NEXT link (to page 2)
itemSelector : ".stream_element",
// selector for all items you'll retrieve
pathParse : function( pathStr, nextPage ){
var newPath = pathStr.replace("?", "?only_posts=true&");
var last_time = $('#main_stream .stream_element').last().find('.time').attr('integer');
return newPath.replace( /max_time=\d+/, 'max_time=' + last_time);
},
bufferPx: 500,
debug: false,
donetext: "no more.",
loadingText: "",
loadingImg: '/images/ajax-loader.gif'
},
postScrollCallback: function(){
for (var callback in InfiniteScroll.postScrollCallbacks){
InfiniteScroll.postScrollCallbacks[callback]();
}
},
postScrollCallbacks: [],
initialize: function(){
Diaspora.widgets.subscribe("stream/reloaded", InfiniteScroll.initialize);
$('#main_stream').infinitescroll(InfiniteScroll.options, InfiniteScroll.postScrollCallback);
},
postScroll: function( callback ){
InfiniteScroll.postScrollCallbacks.push(callback);
}
};
$(document).ready(function() {
InfiniteScroll.initialize();
});

View file

@ -18,7 +18,8 @@ var View = {
$(document).bind('afterReveal.facebox', function() {
jQuery("#facebox label").inFieldLabels();
});
InfiniteScroll.postScroll(function(){
Diaspora.widgets.subscribe("stream/scrolled", function() {
$('#main_stream .comments label').inFieldLabels();
});

View file

@ -8,7 +8,8 @@ Diaspora.widgets.add("directionDetector", function() {
this.start = function() {
Diaspora.widgets.directionDetector.updateBinds();
InfiniteScroll.postScroll(function() {
Diaspora.widgets.subscribe("stream/scrolled", function() {
Diaspora.widgets.directionDetector.updateBinds();
});
};

View file

@ -0,0 +1,35 @@
/* Copyright (c) 2010, Diaspora Inc. This file is
* licensed under the Affero General Public License version 3 or later. See
* the COPYRIGHT file.
*/
(function() {
var InfiniteScroll = function() {
this.options = {
navSelector : "#pagination",
nextSelector : ".paginate",
itemSelector : ".stream_element",
pathParse : function( pathStr, nextPage ){
var newPath = pathStr.replace("?", "?only_posts=true&");
var last_time = $('#main_stream .stream_element').last().find('.time').attr('integer');
return newPath.replace( /max_time=\d+/, 'max_time=' + last_time);
},
bufferPx: 500,
debug: false,
donetext: Diaspora.widgets.i18n.t("infinite_scroll.no_more"),
loadingText: "",
loadingImg: '/images/ajax-loader.gif'
};
this.start = function() {
Diaspora.widgets.subscribe("stream/reloaded", InfiniteScroll.initialize);
$('#main_stream').infinitescroll(this.options, function() {
Diaspora.widgets.publish("stream/scrolled");
});
};
};
Diaspora.widgets.add("infinitescroll", InfiniteScroll)
})();

View file

@ -5,32 +5,17 @@
Diaspora.widgets.add("timeago", function() {
this.selector = "abbr.timeago";
this.not_done = true;
this.start = function() {
this.not_done = false;
InfiniteScroll.postScroll(function(){
Diaspora.widgets.timeago.updateTimeAgo();
});
Diaspora.widgets.subscribe("stream/scrolled", this.updateTimeAgo);
if(Diaspora.widgets.i18n.language === "en") {
return;
if(Diaspora.widgets.i18n.language !== "en") {
$.each($.timeago.settings.strings, function(index, element) {
$.timeago.settings.strings[index] = Diaspora.widgets.i18n.t("timeago." + index);
});
}
$.each($.timeago.settings.strings, function(index, element) {
$.timeago.settings.strings[index] = Diaspora.widgets.i18n.t("timeago." + index);
});
Diaspora.widgets.timeago.updateTimeAgo("abbr");
};
this.updateTimeAgo = function(selector) {
if(this.not_done === true){
this.not_done = false;
Diaspora.widgets.timeago.start();
}
$(selector || this.selector).timeago();
$((typeof selector === "string") ? selector : Diaspora.widgets.timeago.selector).timeago();
};
});