- create term, vocabulary, add or remove term from vocabularies, ... Fixed content editing related to taxonomy (especially with multiple terms vs tags). Fixed various SQL storage issue related to taxonomy and vocabularies. Added CMS_RESPONSE.wsf_theme as helper.
116 lines
2.9 KiB
Plaintext
116 lines
2.9 KiB
Plaintext
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 ("<br/>")
|
|
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
|