From 998c3e9f4ddb4d2bfdf5e48df3289001871d821e Mon Sep 17 00:00:00 2001 From: Marcelo Boeira Date: Wed, 17 Sep 2014 11:29:14 -0300 Subject: [PATCH 1/2] Injecting EJS Filters into Sails views. Closes #23 :ok_hand: --- api/services/FilterService.js | 20 ++++++++++++++++++++ config/bootstrap.js | 8 ++++++++ config/http.js | 8 +++++++- 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 api/services/FilterService.js diff --git a/api/services/FilterService.js b/api/services/FilterService.js new file mode 100644 index 0000000..92da02c --- /dev/null +++ b/api/services/FilterService.js @@ -0,0 +1,20 @@ +/** + * View Filters + * + * @see https://github.com/vimia/blew/issues/23 + */ +module.exports = { + + /** + * Apply moment.js at server-side as a filter + * + * @param d - Dirty Date + * @return 'x days ago' + */ + dateFromNow: function(d) { + var moment = require('moment'); + return moment(d).fromNow(); + } + //TODO - Date Component creator.. +} + diff --git a/config/bootstrap.js b/config/bootstrap.js index ddb47b2..9161207 100644 --- a/config/bootstrap.js +++ b/config/bootstrap.js @@ -1,4 +1,12 @@ module.exports.bootstrap = function(cb) { cb(); + + /** + * Injecting EJS Filters in the FilterService + * + * @see https://github.com/vimia/blew/issues/23 + */ + sails.config.http.locals.filters = FilterService; + _.extend(sails.hooks.http.app.locals, sails.config.http.locals); }; diff --git a/config/http.js b/config/http.js index 8e0cdd8..df6db42 100644 --- a/config/http.js +++ b/config/http.js @@ -19,5 +19,11 @@ module.exports.http = { '500' ], }, - cache: 31557600000 + cache: 31557600000, + + // Keep to FilerService work + locals: { + filters: [] + } }; + From 8709f42843f79a33ec3e6be568cc5082dc6226f9 Mon Sep 17 00:00:00 2001 From: Marcelo Boeira Date: Wed, 17 Sep 2014 11:29:50 -0300 Subject: [PATCH 2/2] DateFromNow filter with moment.js, closes #22 --- views/index/index.ejs | 4 ++-- views/paste/view.ejs | 8 +++++--- views/user/view.ejs | 15 ++++++--------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/views/index/index.ejs b/views/index/index.ejs index 18c1c8f..3897d4c 100644 --- a/views/index/index.ejs +++ b/views/index/index.ejs @@ -30,8 +30,8 @@ <%= paste.name %> <%= paste.language %> <%= paste.owner.name %> - - + <%=: paste.createdAt | dateFromNow %> + <%=: paste.updatedAt | dateFromNow %> <% }); %> diff --git a/views/paste/view.ejs b/views/paste/view.ejs index 335ad9a..2d3db90 100644 --- a/views/paste/view.ejs +++ b/views/paste/view.ejs @@ -4,9 +4,11 @@

<%= paste.name %>


<%= paste.language %> | - <%= paste.owner.name %> | - <%= __("Created") %> | - <%= __("Updated") %> + <%= paste.owner.name %> | + <%= __("Created") %> + <%=: paste.createdAt | dateFromNow %>" | + <%= __("Updated") %> + <%=: paste.updatedAt | dateFromNow %>
diff --git a/views/user/view.ejs b/views/user/view.ejs index 82c1638..61e7173 100644 --- a/views/user/view.ejs +++ b/views/user/view.ejs @@ -1,7 +1,6 @@
@@ -13,10 +12,10 @@
  • <%= __('Joined') %> - + <%=: user.createdAt | dateFromNow %>
  • - <%= __('Last Seen') %> + <%= __('Last Seen') %> <%=: user.updatedAt | dateFromNow %>
  • <%= __('Username') %> <%= user.username %> @@ -53,8 +52,9 @@ <%= paste.name %> <%= paste.language %> - - + + <%=: paste.createdAt | dateFromNow %> + <%=: paste.updatedAt | dateFromNow %> <% }); %> @@ -89,11 +89,8 @@ !> -
  • - - +
    - \ No newline at end of file