From afdb3a948dd37f6c9718ccb716cbfd1b2d28790b Mon Sep 17 00:00:00 2001 From: Delgermurun Date: Thu, 18 Dec 2014 11:26:35 +0800 Subject: [PATCH] Add 'id' to post sort fields. So there is no longer equally sorted posts. closes #4648 - Add id to order by fields on posts API - Order by id on posts controller --- core/client/controllers/posts.js | 7 +++++++ core/server/models/post.js | 1 + 2 files changed, 8 insertions(+) diff --git a/core/client/controllers/posts.js b/core/client/controllers/posts.js index c99d22c0b2..f9119ac0de 100644 --- a/core/client/controllers/posts.js +++ b/core/client/controllers/posts.js @@ -36,9 +36,11 @@ var PostsController = Ember.ArrayController.extend(PaginationControllerMixin, { // status: ASC // published_at: DESC // updated_at: DESC + // id: DESC orderBy: function (item1, item2) { var updated1 = item1.get('updated_at'), updated2 = item2.get('updated_at'), + idResult, statusResult, updatedAtResult, publishedAtResult; @@ -53,12 +55,17 @@ var PostsController = Ember.ArrayController.extend(PaginationControllerMixin, { return 1; } + idResult = Ember.compare(parseInt(item1.get('id')), parseInt(item2.get('id'))); statusResult = Ember.compare(item1.get('status'), item2.get('status')); updatedAtResult = Ember.compare(updated1.valueOf(), updated2.valueOf()); publishedAtResult = publishedAtCompare(item1, item2); if (statusResult === 0) { if (publishedAtResult === 0) { + if (updatedAtResult === 0) { + // This should be DESC + return idResult * -1; + } // This should be DESC return updatedAtResult * -1; } diff --git a/core/server/models/post.js b/core/server/models/post.js index 8813226207..54e7853b35 100644 --- a/core/server/models/post.js +++ b/core/server/models/post.js @@ -435,6 +435,7 @@ Post = ghostBookshelf.Model.extend({ .query('orderBy', 'status', 'ASC') .query('orderBy', 'published_at', 'DESC') .query('orderBy', 'updated_at', 'DESC') + .query('orderBy', 'id', 'DESC') .fetch(_.omit(options, 'page', 'limit')); })