From 957ca96bc5a6e30037660e20f83e270bbdf140af Mon Sep 17 00:00:00 2001 From: jvelilla Date: Wed, 27 May 2015 11:26:49 -0300 Subject: [PATCH] Updated code based on comments. --- .../handler/cms_node_pagination_builder.e | 22 ++++---- modules/node/handler/cms_pagination_builder.e | 18 +++--- modules/node/handler/nodes_handler.e | 55 ++++++++++--------- 3 files changed, 50 insertions(+), 45 deletions(-) diff --git a/modules/node/handler/cms_node_pagination_builder.e b/modules/node/handler/cms_node_pagination_builder.e index 5fb641a..b19f32a 100644 --- a/modules/node/handler/cms_node_pagination_builder.e +++ b/modules/node/handler/cms_node_pagination_builder.e @@ -10,35 +10,35 @@ inherit CMS_PAGINATION_BUILDER [CMS_NODE] - CMS_NODE_HANDLER - redefine - make - end create make feature {NONE} -- Initialization - make (a_api: CMS_API; a_module_api: CMS_NODE_API) + make (a_api: CMS_NODE_API) -- Create an object. do - Precursor (a_api, a_module_api) - limit := 5 + node_api := a_api + count := 5 offset := 0 - ensure then - limit_set: limit = 5 + ensure + node_api_set: node_api = a_api + limit_set: count = 5 offset_set: offset = 0 end + node_api: CMS_NODE_API + -- CMS API. + feature -- Pager - list: ITERABLE [CMS_NODE] + items: ITERABLE [CMS_NODE] -- . do --NOTE: the current implementation does not use -- order by and ordering. create {ARRAYED_LIST [CMS_NODE]} Result.make (0) - Result := node_api.recent_nodes (offset.as_integer_32, limit.as_integer_32) + Result := node_api.recent_nodes (offset.as_integer_32, count.as_integer_32) end end diff --git a/modules/node/handler/cms_pagination_builder.e b/modules/node/handler/cms_pagination_builder.e index cd9d20f..7ca2be3 100644 --- a/modules/node/handler/cms_pagination_builder.e +++ b/modules/node/handler/cms_pagination_builder.e @@ -8,12 +8,12 @@ deferred class feature -- Access - set_limit (a_limit: NATURAL) - -- Set limit with `a_limit'. + set_count (a_count: NATURAL) + -- Set `count' with `a_count'. do - limit := a_limit + count := a_count ensure - limit_set: limit = a_limit + count_set: count = a_count end set_offset (a_offset: NATURAL) @@ -46,21 +46,21 @@ feature -- Access feature -- Pager - list: ITERABLE[G] + items: ITERABLE [G] -- Iterable of G with filters. deferred end feature -- Access - limit: NATURAL - -- Number of rows per page. + count: NATURAL + -- Number of items per page. offset: NATURAL - -- rows starting from the next row to the given OFFSET. + -- lower index of `items' pagination. order_by: detachable STRING - -- field to order by + -- field to order by. order_ascending: BOOLEAN -- is ascending ordering? diff --git a/modules/node/handler/nodes_handler.e b/modules/node/handler/nodes_handler.e index 53288a6..eddc92d 100644 --- a/modules/node/handler/nodes_handler.e +++ b/modules/node/handler/nodes_handler.e @@ -37,7 +37,7 @@ feature -- HTTP Methods do_get (req: WSF_REQUEST; res: WSF_RESPONSE) -- local - l_page: CMS_RESPONSE + l_response: CMS_RESPONSE s: STRING n: CMS_NODE lnk: CMS_LOCAL_LINK @@ -49,30 +49,30 @@ feature -- HTTP Methods -- get them from the configuration file and load them into -- the setup class. - create {GENERIC_VIEW_CMS_RESPONSE} l_page.make (req, res, api) - l_page.add_variable (node_api.nodes, "nodes") + create {GENERIC_VIEW_CMS_RESPONSE} l_response.make (req, res, api) + l_response.add_variable (node_api.nodes, "nodes") - create pager.make (api, node_api) - number_of_pages := (node_api.nodes_count // pager.limit) + 1 + create pager.make (node_api) + number_of_pages := (node_api.nodes_count // pager.count) + 1 -- Size:limit if attached {WSF_STRING} req.query_parameter ("size") as l_size and then l_size.is_integer then - pager.set_limit (l_size.integer_value.to_natural_32) + pager.set_count (l_size.integer_value.to_natural_32) end --Page:offset if - attached {WSF_STRING} req.query_parameter ("page") as ll_page and then - ll_page.is_integer + attached {WSF_STRING} req.query_parameter ("page") as l_page and then + l_page.is_integer then - current_page := ll_page.integer_value + current_page := l_page.integer_value if current_page > 1 then - pager.set_offset (((current_page-1)*(pager.limit.to_integer_32)).to_natural_32) + pager.set_offset (((current_page-1)*(pager.count.to_integer_32)).to_natural_32) end else current_page := 1 @@ -81,39 +81,44 @@ feature -- HTTP Methods -- NOTE: for development purposes we have the following hardcode output. - create s.make_from_string ("

Nodes:

") + create s.make_from_string ("

Items:

") + + s.append ("

Current Page:") + s.append_integer (current_page) + s.append (" of ") + s.append_integer_64 (number_of_pages) + s.append (" pages

") - s.append ("

Current Page:" + current_page.out + " of " + number_of_pages.out + " pages

" ) -- pager s.append ("
%N") s.append ("
    %N") - create lnk.make ("First", "nodes/?page=1&size="+pager.limit.out) + create lnk.make ("First", "nodes/?page=1&size="+pager.count.out) s.append ("
  • ") - s.append (l_page.link (lnk.title, lnk.location, Void)) + s.append (l_response.link (lnk.title, lnk.location, Void)) s.append ("
  • ") if (current_page - 1) > 1 then - create lnk.make ("Prev", "nodes/?page="+ (current_page-1).out +"&size="+pager.limit.out) + create lnk.make ("Prev", "nodes/?page="+ (current_page-1).out +"&size="+pager.count.out) s.append ("
  • ") - s.append (l_page.link (lnk.title, lnk.location, Void)) + s.append (l_response.link (lnk.title, lnk.location, Void)) s.append ("
  • ") end if (current_page + 1) < number_of_pages then - create lnk.make ("Next", "nodes/?page="+ (current_page+1).out +"&size="+pager.limit.out) + create lnk.make ("Next", "nodes/?page="+ (current_page+1).out +"&size="+pager.count.out) s.append ("
  • ") - s.append (l_page.link (lnk.title, lnk.location, Void)) + s.append (l_response.link (lnk.title, lnk.location, Void)) s.append ("
  • ") end - create lnk.make ("Last", "nodes/?page="+ number_of_pages.out +"&size="+pager.limit.out) + create lnk.make ("Last", "nodes/?page="+ number_of_pages.out +"&size="+pager.count.out) s.append ("
  • ") - s.append (l_page.link (lnk.title, lnk.location, Void)) + s.append (l_response.link (lnk.title, lnk.location, Void)) s.append ("
  • ") s.append ("
%N") s.append ("
%N") - if attached pager.list as lst then + if attached pager.items as lst then s.append ("
    %N") across lst as ic @@ -121,15 +126,15 @@ feature -- HTTP Methods n := ic.item lnk := node_api.node_link (n) s.append ("
  • ") - s.append (l_page.link (lnk.title, lnk.location, Void)) + s.append (l_response.link (lnk.title, lnk.location, Void)) s.append ("
  • %N") end s.append ("
%N") end - l_page.set_main_content (s) - l_page.add_block (create {CMS_CONTENT_BLOCK}.make ("nodes_warning", Void, "/nodes/ is not yet fully implemented
", Void), "highlighted") - l_page.execute + l_response.set_main_content (s) + l_response.add_block (create {CMS_CONTENT_BLOCK}.make ("nodes_warning", Void, "/nodes/ is not yet fully implemented
", Void), "highlighted") + l_response.execute end end