diff --git a/handlers/handlerallpages.cpp b/handlers/handlerallpages.cpp index 9362e85..53601ac 100644 --- a/handlers/handlerallpages.cpp +++ b/handlers/handlerallpages.cpp @@ -19,6 +19,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "handlerallpages.h" +#include "../grouper.h" +#include "../pagelistrenderer.h" Response HandlerAllPages::handleRequest(const Request &r) { @@ -27,17 +29,21 @@ Response HandlerAllPages::handleRequest(const Request &r) Response response; auto pageDao = this->database->createPageDao(); QueryOption qo = queryOption(r); - auto resultList = pageDao->getPageList(qo); - if(resultList.size() == 0) + std::vector pageList = pageDao->getPageList(qo); + if(pageList.size() == 0) { return errorResponse("No pages", "This wiki does not have any pages yet"); } - TemplatePage searchPage = this->templ->getPage("allpages"); - std::string body = this->templ->renderSearch(resultList); - searchPage.setVar("pagelist", body); - searchPage.setVar("title", createPageTitle("All pages")); - setGeneralVars(searchPage); - response.setBody(searchPage.render()); + + PageListRenderer pagelistrender(*this->templ, *this->urlProvider, *this->database); + TemplatePage allPages = this->templ->getPage("allpages"); + allPages.setVar("pagelistcontent", pagelistrender.render(pageList, r.get("rendertype"))); + allPages.setVar("pagelistletterlink", this->urlProvider->allPages(PageListRenderer::RENDER_GROUP_BY_LETTER)); + allPages.setVar("pagelistcreationdatelink", this->urlProvider->allPages(PageListRenderer::RENDER_GROUP_BY_CREATIONDATE)); + + allPages.setVar("title", createPageTitle("All pages")); + setGeneralVars(allPages); + response.setBody(allPages.render()); response.setStatus(200); return response; } diff --git a/handlers/handlercategory.cpp b/handlers/handlercategory.cpp index 9b322ab..7d8a7f0 100644 --- a/handlers/handlercategory.cpp +++ b/handlers/handlercategory.cpp @@ -19,6 +19,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "handlercategory.h" +#include "../pagelistrenderer.h" Response HandlerCategory::handleRequest(const Request &r) { @@ -34,8 +35,12 @@ Response HandlerCategory::handleRequest(const Request &r) QueryOption qo = queryOption(r); auto resultList = categoryDao->fetchMembers(categoryname, qo); TemplatePage searchPage = this->templ->getPage("show_category"); - std::string body = this->templ->renderSearch(resultList); - searchPage.setVar("pagelist", body); + PageListRenderer pagelistrender(*this->templ, *this->urlProvider, *this->database); + + std::string body = pagelistrender.render(resultList, r.get("rendertype")); + searchPage.setVar("pagelistcontent", body); + searchPage.setVar("pagelistletterlink", this->urlProvider->category(categoryname, PageListRenderer::RENDER_GROUP_BY_LETTER)); + searchPage.setVar("pagelistcreationdatelink", this->urlProvider->category(categoryname, PageListRenderer::RENDER_GROUP_BY_CREATIONDATE)); searchPage.setVar("categoryname", categoryname); setGeneralVars(searchPage); searchPage.setVar("title", createPageTitle("Category: " + categoryname)); diff --git a/template/quitesimple/allpages b/template/quitesimple/allpages index c3d452b..06f6f9c 100644 --- a/template/quitesimple/allpages +++ b/template/quitesimple/allpages @@ -1,6 +1,6 @@ {qswiki:include:general_header}

All pages

-{qswiki:var:pagelist} +{qswiki:include:pagelistrender}
-{qswiki:include:general_footer} \ No newline at end of file +{qswiki:include:general_footer} diff --git a/template/quitesimple/show_category b/template/quitesimple/show_category index efe591a..c7a9d36 100644 --- a/template/quitesimple/show_category +++ b/template/quitesimple/show_category @@ -1,6 +1,6 @@ {qswiki:include:general_header}

Category: {qswiki:var:categoryname}

-{qswiki:var:pagelist} +{qswiki:include:pagelistrender}
-{qswiki:include:general_footer} \ No newline at end of file +{qswiki:include:general_footer}