Posts
Sketch
Details
My schedule
Contributor
AdminSite Admin
UBOW.blogFetcher = function(options) { var my=this; var defaults = { per_page: 3, author: 0, html_before: '', html_after: '' }; var $posts = $('#blog-posts'); var $pag = $('#blog-posts-paging'); // initialization $(function() { console.log('blogFetcher init...'); var imgZero = new Image(); imgZero.onload = function() {console.log('zero loaded');} imgZero.src = "/uploads/0.jpg"; my.settings = $.extend({}, defaults, options); $pag.on('click', 'a', function(e) { e.preventDefault(); fetch($(this).data("ci-pagination-page")); }); if (!$posts.html()) fetch(''); }); function format(sum) { function ban() { var ban = ''; if (sum['flags'] & 4) { ban = '
' + '
'; } else if (sum['banner'].length > 0) { ban = '
' + '
' + '' + '
'; } return ban; } return my.settings.html_before + '
' + '
' + '' + '
' + ban() + sum.etc + '
' + '
' + ((my.settings.html_after instanceof Function)? my.settings.html_after(sum) : my.settings.html_after); } function fetch(page) { console.log('blogFetcher fetch...'); $pag.html('loading...'); UBOW.ajax('/blog/fetch/'+page, {per_page:my.settings.per_page,author:my.settings.author}, function(err,dat,msg) { if (err) return UBOW.handleAjaxError(err,dat,msg); $posts.empty(); $.each(dat.posts,function(i,summary){ var $post = $(format(summary)); $post.appendTo($posts); // now wait for banner to load var img = new Image(); img.onload = function() { $post.find('img').attr('src', this.src); $posts.alignElementsSameHeight(); } img.src = '/uploads/' + summary.banner; }); $pag.html(dat.page); $posts.alignElementsSameHeight(); }); } };