note description: "[ Administrate export functionality. ]" date: "$Date$" revision: "$Revision$" class CMS_ADMIN_EXPORT_HANDLER inherit CMS_HANDLER WSF_URI_HANDLER rename new_mapping as new_uri_mapping end WSF_RESOURCE_HANDLER_HELPER redefine do_get, do_post end REFACTORING_HELPER create make feature -- Execution execute (req: WSF_REQUEST; res: WSF_RESPONSE) -- Execute request handler do execute_methods (req, res) end do_get (req: WSF_REQUEST; res: WSF_RESPONSE) local l_response: CMS_RESPONSE s: STRING f: CMS_FORM do create {GENERIC_VIEW_CMS_RESPONSE} l_response.make (req, res, api) f := exportation_web_form (l_response) create s.make_empty f.append_to_html (l_response.wsf_theme, s) l_response.set_main_content (s) l_response.execute end do_post (req: WSF_REQUEST; res: WSF_RESPONSE) local l_response: CMS_RESPONSE s: STRING f: CMS_FORM l_exportation_parameters: CMS_EXPORT_PARAMETERS do create {GENERIC_VIEW_CMS_RESPONSE} l_response.make (req, res, api) f := exportation_web_form (l_response) f.process (l_response) if attached f.last_data as fd and then fd.is_valid then if attached fd.string_item ("op") as l_op and then l_op.same_string (text_export_all_data) then if attached fd.string_item ("folder") as l_folder then create l_exportation_parameters.make (api.site_location.extended ("export").extended (l_folder)) else create l_exportation_parameters.make (api.site_location.extended ("export").extended ((create {DATE_TIME}.make_now_utc).formatted_out ("yyyy-[0]mm-[0]dd---hh24-[0]mi-[0]ss"))) end api.hooks.invoke_export_to (Void, l_exportation_parameters, l_response) l_response.add_notice_message ("All data exported (if allowed)!") create s.make_empty across l_exportation_parameters.logs as ic loop s.append (ic.item) s.append ("
") s.append_character ('%N') end l_response.add_notice_message (s) else fd.report_error ("Invalid form data!") end end create s.make_empty f.append_to_html (l_response.wsf_theme, s) l_response.set_main_content (s) l_response.execute end feature -- Widget exportation_web_form (a_response: CMS_RESPONSE): CMS_FORM local f_name: WSF_FORM_TEXT_INPUT but: WSF_FORM_SUBMIT_INPUT do create Result.make (a_response.url (a_response.location, Void), "export_all_data") Result.extend_raw_text ("Export CMS data to ") create f_name.make_with_text ("folder", (create {DATE_TIME}.make_now_utc).formatted_out ("yyyy-[0]mm-[0]dd---hh24-[0]mi-[0]ss")) f_name.set_label ("Export folder name") f_name.set_description ("Folder name under 'exports' folder.") f_name.set_is_required (True) Result.extend (f_name) create but.make_with_text ("op", text_export_all_data) Result.extend (but) end feature -- Interface text. text_export_all_data: STRING_32 = "Export all data" end