From 547da4d595baa06ad328ff1a1bbf58f384da2ee5 Mon Sep 17 00:00:00 2001 From: Wesley Moore Date: Thu, 4 Mar 2010 07:44:34 +1100 Subject: [PATCH] Refactor JS --- layouts/articles.html | 17 ++++++- output/js/articles.js | 106 ------------------------------------------ output/js/common.js | 10 ---- 3 files changed, 16 insertions(+), 117 deletions(-) delete mode 100644 output/js/articles.js delete mode 100644 output/js/common.js diff --git a/layouts/articles.html b/layouts/articles.html index 078048b..c1c2b11 100644 --- a/layouts/articles.html +++ b/layouts/articles.html @@ -7,7 +7,22 @@ - + + <%= render '_header' %> diff --git a/output/js/articles.js b/output/js/articles.js deleted file mode 100644 index 6da3eb8..0000000 --- a/output/js/articles.js +++ /dev/null @@ -1,106 +0,0 @@ -(function() { - var articles = null; - var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; - var per_page = 10; - - function search_item_selected(item) { - }; - - function show_javascript_widgets() { - $('.pagination').show(); - $('#search').show(); - $('#search input').jsonSuggest(articles, { - onSelect: search_item_selected, - width: 400 - }); - }; - - function webkit_search_tweak() { - if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) { - $('#search input').css('paddingTop', 0); - } - }; - - - function render_article(o) { - return '
  • \n\ - \n\ - ' + (Mojo.escape(Mojo.normalize(o.day))) + '\n\ - ' + (Mojo.escape(Mojo.normalize(o.month))) + '\n\ - ' + (Mojo.escape(Mojo.normalize(o.year))) + '\n\ - \n\ -

    \n\ - ' + (Mojo.escape(Mojo.normalize(o.title))) + '\n\ - ' + (Mojo.escape(Mojo.normalize(o.summary))) + '\n\ -

    \n\ -
  • '; - }; - - function update_pagination_controls(page) { - var older = $('.pagination .older').attr('href', '#' + (page + 1)); - var newer = $('.pagination .newer').attr('href', '#' + (page - 1)); - - // Hide if out of range - older.css('visibility', page * per_page >= articles.length ? 'hidden' : 'visible'); - newer.css('visibility', page <= 1 ? 'hidden' : 'visible'); - }; - - function articles_loaded(data) { - articles = data; - jQuery(function() { - $(window).bind('hashchange', function(e) { - // Get the hash (fragment) as a string, with any leading # removed. Note that - // in jQuery 1.4, you should use e.fragment instead of $.param.fragment(). - var page; - var matches; - var page_fragment = e.fragment; - if(!page_fragment) { - page_fragment = $.param.fragment(); - } - if(matches = page_fragment.match(/(\d+)$/)) { - page = new Number(matches[1]); - } - else { - page = 1; - } - - var container = $('ul.articles'); - container.empty(); - - // Generate the items - var i = (page - 1) * per_page; - for(; i < page * per_page && i < articles.length; i++) { - var article = articles[i]; - var date = new Date(Date.parse(article.date)); - var article_view = { - date: article.date, - day: date.getDate(), - month: months[date.getMonth()], - year: date.getYear() + 1900, - path: article.path, - title: article.title, - summary: article.summary - }; - var li = render_article(article_view); - container.append(li); - } - - update_pagination_controls(page); - window.document.title = "All Articles - Page " + page - }); - - // Since the event is only triggered when the hash changes, we need to trigger - // the event now, to handle the hash the page may have loaded with. - $(window).trigger('hashchange'); - show_javascript_widgets(); - webkit_search_tweak(); - }); - }; - - // Load articles JSON ASAP - var path = 'json/articles.json'; - if(document.location.pathname.match(/page\/$/)) { - path = '../json/articles.json'; - } - jQuery.getJSON(path, {}, articles_loaded); -})(); diff --git a/output/js/common.js b/output/js/common.js deleted file mode 100644 index 13f5b94..0000000 --- a/output/js/common.js +++ /dev/null @@ -1,10 +0,0 @@ -function show_javascript_widgets() { - $('.pagination').show(); - $('#search').show(); -}; - -function webkit_search_tweak() { - if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) { - $('#search input').css('paddingTop', 0); - } -};