From 60aa89132dc2a6034a94d500cf7d174a69e0235d Mon Sep 17 00:00:00 2001 From: Samuel Clay Date: Tue, 13 Mar 2018 11:50:02 -0700 Subject: [PATCH] Removing the article 'The' from alphabetical feed title sorting. --- media/js/newsblur/models/folders.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/media/js/newsblur/models/folders.js b/media/js/newsblur/models/folders.js index 75ed97534..18a047d4c 100644 --- a/media/js/newsblur/models/folders.js +++ b/media/js/newsblur/models/folders.js @@ -384,24 +384,34 @@ NEWSBLUR.Collections.Folders = Backbone.Collection.extend({ return !feedA ? 1 : -1; } + var remove_articles = function(str) { + words = str.split(" "); + if (words.length <= 1) return str; + if (words[0] == 'the') return words.splice(1).join(" "); + return str; + }; + + var feed_a_title = remove_articles(feedA.get('feed_title').toLowerCase()); + var feed_b_title = remove_articles(feedB.get('feed_title').toLowerCase()); + if (sort_order == 'ALPHABETICAL' || !sort_order) { - return feedA.get('feed_title').toLowerCase() > feedB.get('feed_title').toLowerCase() ? high : low; + return feed_a_title > feed_b_title ? high : low; } else if (sort_order == 'MOSTUSED') { return feedA.get('feed_opens') < feedB.get('feed_opens') ? high : (feedA.get('feed_opens') > feedB.get('feed_opens') ? low : - (feedA.get('feed_title').toLowerCase() > feedB.get('feed_title').toLowerCase() ? high : low)); + (feed_a_title > feed_b_title ? high : low)); } else if (sort_order == 'RECENCY') { return feedA.get('last_story_seconds_ago') < feedB.get('last_story_seconds_ago') ? high : (feedA.get('last_story_seconds_ago') > feedB.get('last_story_seconds_ago') ? low : - (feedA.get('feed_title').toLowerCase() > feedB.get('feed_title').toLowerCase() ? high : low)); + (feed_a_title > feed_b_title ? high : low)); } else if (sort_order == 'FREQUENCY') { return feedA.get('average_stories_per_month') < feedB.get('average_stories_per_month') ? high : (feedA.get('average_stories_per_month') > feedB.get('average_stories_per_month') ? low : - (feedA.get('feed_title').toLowerCase() > feedB.get('feed_title').toLowerCase() ? high : low)); + (feed_a_title > feed_b_title ? high : low)); } else if (sort_order == 'SUBSCRIBERS') { return feedA.get('num_subscribers') < feedB.get('num_subscribers') ? high : (feedA.get('num_subscribers') > feedB.get('num_subscribers') ? low : - (feedA.get('feed_title').toLowerCase() > feedB.get('feed_title').toLowerCase() ? high : low)); + (feed_a_title > feed_b_title ? high : low)); } }