diff --git a/client/src/style/App.scss b/client/src/style/App.scss index 90b9e27d5..0a9c5fb04 100644 --- a/client/src/style/App.scss +++ b/client/src/style/App.scss @@ -187,6 +187,11 @@ body.hide-scrollbar .Pane2 { .bp3-drawer { box-shadow: 0 0 0; + background-color: #fbfbfb; + + .dashboard__loading-indicator{ + margin: auto; + } } // RTL Icons. diff --git a/server/src/models/ManualJournal.Settings.ts b/server/src/models/ManualJournal.Settings.ts index 484128783..bc6ae8d64 100644 --- a/server/src/models/ManualJournal.Settings.ts +++ b/server/src/models/ManualJournal.Settings.ts @@ -43,6 +43,7 @@ export default { { key: 'draft', label: 'Draft' }, { key: 'published', label: 'published' } ], + filterCustomQuery: StatusFieldFilterQuery, sortCustomQuery: StatusFieldSortQuery, }, 'created_at': { @@ -53,6 +54,16 @@ export default { }, }; +/** + * Status field sorting custom query. + */ function StatusFieldSortQuery(query, role) { return query.modify('sortByStatus', role.order); } + +/** + * Status field filter custom query. + */ + function StatusFieldFilterQuery(query, role) { + query.modify('filterByStatus', role.value); +} diff --git a/server/src/models/ManualJournal.js b/server/src/models/ManualJournal.js index 0de5ac305..84e8c4ac9 100644 --- a/server/src/models/ManualJournal.js +++ b/server/src/models/ManualJournal.js @@ -52,9 +52,41 @@ export default class ManualJournal extends mixin(TenantModel, [ */ static get modifiers() { return { + /** + * Sort by status query. + */ sortByStatus(query, order) { query.orderByRaw(`PUBLISHED_AT IS NULL ${order}`); }, + + /** + * Filter by draft status. + */ + filterByDraft(query) { + query.whereNull('publishedAt'); + }, + + /** + * Filter by published status. + */ + filterByPublished(query) { + query.whereNotNull('publishedAt'); + }, + + /** + * Filter by the given status. + */ + filterByStatus(query, filterType) { + switch (filterType) { + case 'draft': + query.modify('filterByDraft'); + break; + case 'published': + default: + query.modify('filterByPublished'); + break; + } + }, }; }