note description: "Request handler related to /nodes." date: "$Date: 2015-02-13 13:08:13 +0100 (ven., 13 févr. 2015) $" revision: "$Revision: 96616 $" class NODES_HANDLER inherit CMS_NODE_HANDLER WSF_URI_HANDLER rename new_mapping as new_uri_mapping end WSF_RESOURCE_HANDLER_HELPER redefine do_get end REFACTORING_HELPER create make feature -- execute execute (req: WSF_REQUEST; res: WSF_RESPONSE) -- Execute request handler do execute_methods (req, res) end feature -- HTTP Methods do_get (req: WSF_REQUEST; res: WSF_RESPONSE) -- local l_response: CMS_RESPONSE s: STRING n: CMS_NODE lnk: CMS_LOCAL_LINK l_page_helper: CMS_PAGINATION_GENERATOR s_pager: STRING l_count: NATURAL_64 do -- At the moment the template are hardcoded, but we can -- get them from the configuration file and load them into -- the setup class. l_count := node_api.nodes_count create {GENERIC_VIEW_CMS_RESPONSE} l_response.make (req, res, api) create s.make_empty if l_count > 1 then l_response.set_title ("Listing " + l_count.out + " nodes") else l_response.set_title ("Listing " + l_count.out + " node") end create s_pager.make_empty create l_page_helper.make ("nodes/?page={page}&size={size}", node_api.nodes_count, 25) -- FIXME: Make this default page size a global CMS settings l_page_helper.get_setting_from_request (req) if l_page_helper.pages_count > 1 then l_page_helper.append_to_html (l_response, s_pager) if l_page_helper.page_size > 20 then s.append (s_pager) end end if attached node_api.recent_nodes (l_page_helper.query_parameters) as lst then s.append ("%N") end -- Again the pager at the bottom, if needed s.append (s_pager) l_response.set_main_content (s) l_response.execute end end