Explorar o código

Recent Created pages

Sotaro KARASAWA %!s(int64=10) %!d(string=hai) anos
pai
achega
197a225263
Modificáronse 4 ficheiros con 65 adicións e 5 borrados
  1. 1 1
      lib/models/page.js
  2. 31 2
      lib/routes/page.js
  3. 1 1
      lib/views/user/bookmarks.html
  4. 32 1
      lib/views/user/recent-create.html

+ 1 - 1
lib/models/page.js

@@ -409,7 +409,7 @@ module.exports = function(crowi) {
     var Page = this;
     var User = crowi.model('User');
     var limit = option.limit || 50;
-    var offset = option.skip || 0;
+    var offset = option.offset || 0;
 
     return new Promise(function(resolve, reject) {
       Page

+ 31 - 2
lib/routes/page.js

@@ -292,9 +292,38 @@ module.exports = function(crowi, app) {
   // app.get( '/users/:username([^/]+)/recent-create' , loginRequired(crowi, app) , page.userRecentCreatedList);
   actions.userRecentCreatedList = function(req, res) {
     var username = req.params.username;
+    var limit = 50;
+    var offset = parseInt(req.query.offset) || 0;
+
+    var user;
+    var renderVars = {};
+
+    var pagerOptions = { offset: offset, limit : limit };
+    var queryOptions = { offset: offset, limit : limit + 1};
 
-    return res.render('user/recent-create', {
-      username: username
+
+    User.findUserByUsername(username)
+    .then(function(user) {
+      if (user === null) {
+        throw new Error('The user not found.');
+      }
+      renderVars.user = user;
+
+      return Page.findListByCreator(user, queryOptions);
+    }).then(function(pages) {
+
+      if (pages.length > limit) {
+        pages.pop();
+      }
+      pagerOptions.length = pages.length;
+
+      renderVars.pager = generatePager(pagerOptions);
+      renderVars.pages = pages;
+
+      return res.render('user/recent-create', renderVars);
+    }).catch(function(err) {
+      debug('Error on rendereing recent-created', err);
+      res.redirect('/');
     });
   };
 

+ 1 - 1
lib/views/user/bookmarks.html

@@ -17,7 +17,7 @@
 {% block content_main %}
 <div id="content-main" class="content-main page-list" >
   <div class="page-list-container" id="bookamrk-list">
-    {% include '../widget/page_list.html' with { pages: bookmarks, pagePropertyName: 'page' } %}
+    {% include '../widget/page_list.html' with { pages: bookmarks, pagePropertyName: 'page', pager: pager } %}
   </div>
 </div>
 {% endblock %}

+ 32 - 1
lib/views/user/recent-create.html

@@ -1 +1,32 @@
-{{ username }}
+{% extends '../layout/2column.html' %}
+
+{% block main_css_class %}recent-create-page{% endblock %}
+
+{% block html_title %}{{ user.name }}'s Recent Created Pages 揃 {% endblock %}
+
+{% block content_head %}
+<div class="header-wrap">
+  <header id="page-header">
+    <p class="stopper"><a href="#" data-affix-disable="#page-header"><i class="fa fa-chevron-up"></i></a></p>
+
+    <h1 class="title">{{ user.name }}'s Created Pages</h1>
+  </header>
+</div>
+{% endblock %}
+
+{% block content_main %}
+<div id="content-main" class="content-main page-list" >
+  <div class="page-list-container" id="bookamrk-list">
+    {% include '../widget/page_list.html' with { pages: pages, pager: pager } %}
+  </div>
+</div>
+{% endblock %}
+
+{% block side_header %}
+{% endblock %} {# side_header #}
+
+{% block side_content %}
+{% endblock %}
+
+{% block footer %}
+{% endblock %}