Merge branch 'jvelilla-roc_delete_trash'
This commit is contained in:
@@ -173,6 +173,7 @@ feature {NONE} -- Create a new node
|
|||||||
f: like new_edit_form
|
f: like new_edit_form
|
||||||
fd: detachable WSF_FORM_DATA
|
fd: detachable WSF_FORM_DATA
|
||||||
do
|
do
|
||||||
|
if a_node.is_trashed then
|
||||||
f := new_delete_form (a_node, url (location, Void), "delete-" + a_type.name, a_type)
|
f := new_delete_form (a_node, url (location, Void), "delete-" + a_type.name, a_type)
|
||||||
hooks.invoke_form_alter (f, fd, Current)
|
hooks.invoke_form_alter (f, fd, Current)
|
||||||
if request.is_post_request_method then
|
if request.is_post_request_method then
|
||||||
@@ -193,6 +194,9 @@ feature {NONE} -- Create a new node
|
|||||||
set_title (formatted_string (translation ("Delete $1 #$2", Void), [a_type.title, a_node.id]))
|
set_title (formatted_string (translation ("Delete $1 #$2", Void), [a_type.title, a_node.id]))
|
||||||
f.append_to_html (wsf_theme, b)
|
f.append_to_html (wsf_theme, b)
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
--
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -355,6 +359,8 @@ feature -- Form
|
|||||||
|
|
||||||
new_delete_form (a_node: detachable CMS_NODE; a_url: READABLE_STRING_8; a_name: STRING; a_node_type: CMS_NODE_TYPE [CMS_NODE]): CMS_FORM
|
new_delete_form (a_node: detachable CMS_NODE; a_url: READABLE_STRING_8; a_name: STRING; a_node_type: CMS_NODE_TYPE [CMS_NODE]): CMS_FORM
|
||||||
-- Create a web form named `a_name' for node `a_node' (if set), using form action url `a_url', and for type of node `a_node_type'.
|
-- Create a web form named `a_name' for node `a_node' (if set), using form action url `a_url', and for type of node `a_node_type'.
|
||||||
|
require
|
||||||
|
is_trashed: attached a_node as l_node and then a_node.is_trashed
|
||||||
local
|
local
|
||||||
f: CMS_FORM
|
f: CMS_FORM
|
||||||
ts: WSF_FORM_SUBMIT_INPUT
|
ts: WSF_FORM_SUBMIT_INPUT
|
||||||
@@ -375,10 +381,27 @@ feature -- Form
|
|||||||
ts.set_default_value (translation ("Delete"))
|
ts.set_default_value (translation ("Delete"))
|
||||||
]")
|
]")
|
||||||
f.extend (ts)
|
f.extend (ts)
|
||||||
to_implement ("Refactor code to use the new wsf_html HTML5 support")
|
create ts.make ("op")
|
||||||
f.extend_html_text("<input type='submit' value='Cancel' formmethod='GET', formaction='/node/"+a_node.id.out+"'>" )
|
ts.set_default_value ("Cancel")
|
||||||
|
ts.set_formaction ("/node/"+a_node.id.out)
|
||||||
|
ts.set_formmethod ("GET")
|
||||||
|
f.extend (ts)
|
||||||
|
end
|
||||||
|
f.extend_html_text ("<br/>")
|
||||||
|
f.extend_html_text ("<legend>Do you want to restore the current node?</legend>")
|
||||||
|
if
|
||||||
|
a_node /= Void and then
|
||||||
|
a_node.id > 0
|
||||||
|
then
|
||||||
|
create ts.make ("op")
|
||||||
|
ts.set_default_value ("Restore")
|
||||||
|
ts.set_formaction ("/node/"+a_node.id.out+"/delete")
|
||||||
|
ts.set_formmethod ("POST")
|
||||||
|
fixme ("[
|
||||||
|
ts.set_default_value (translation ("Restore"))
|
||||||
|
]")
|
||||||
|
f.extend (ts)
|
||||||
end
|
end
|
||||||
|
|
||||||
Result := f
|
Result := f
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -404,19 +427,6 @@ feature -- Form
|
|||||||
]")
|
]")
|
||||||
f.extend (ts)
|
f.extend (ts)
|
||||||
end
|
end
|
||||||
f.extend_html_text ("<br/>")
|
|
||||||
f.extend_html_text ("<legend>Do you want to restore the current node?</legend>")
|
|
||||||
if
|
|
||||||
a_node /= Void and then
|
|
||||||
a_node.id > 0
|
|
||||||
then
|
|
||||||
create ts.make ("op")
|
|
||||||
ts.set_default_value ("Restore")
|
|
||||||
fixme ("[
|
|
||||||
ts.set_default_value (translation ("Restore"))
|
|
||||||
]")
|
|
||||||
f.extend (ts)
|
|
||||||
end
|
|
||||||
Result := f
|
Result := f
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -173,6 +173,11 @@ feature -- HTTP Methods
|
|||||||
l_op.value.same_string ("Delete")
|
l_op.value.same_string ("Delete")
|
||||||
then
|
then
|
||||||
do_delete (req, res)
|
do_delete (req, res)
|
||||||
|
elseif
|
||||||
|
attached {WSF_STRING} req.form_parameter ("op") as l_op and then
|
||||||
|
l_op.value.same_string ("Restore")
|
||||||
|
then
|
||||||
|
do_restore (req, res)
|
||||||
end
|
end
|
||||||
elseif req.percent_encoded_path_info.ends_with ("/trash") then
|
elseif req.percent_encoded_path_info.ends_with ("/trash") then
|
||||||
if
|
if
|
||||||
@@ -180,11 +185,6 @@ feature -- HTTP Methods
|
|||||||
l_op.value.same_string ("Trash")
|
l_op.value.same_string ("Trash")
|
||||||
then
|
then
|
||||||
do_trash (req, res)
|
do_trash (req, res)
|
||||||
elseif
|
|
||||||
attached {WSF_STRING} req.form_parameter ("op") as l_op and then
|
|
||||||
l_op.value.same_string ("Restore")
|
|
||||||
then
|
|
||||||
do_restore (req, res)
|
|
||||||
end
|
end
|
||||||
elseif req.percent_encoded_path_info.starts_with ("/node/add/") then
|
elseif req.percent_encoded_path_info.starts_with ("/node/add/") then
|
||||||
create edit_response.make (req, res, api, node_api)
|
create edit_response.make (req, res, api, node_api)
|
||||||
@@ -242,15 +242,19 @@ feature {NONE} -- Trash:Restore
|
|||||||
|
|
||||||
do_delete (req: WSF_REQUEST; res: WSF_RESPONSE)
|
do_delete (req: WSF_REQUEST; res: WSF_RESPONSE)
|
||||||
-- Delete a node from the database.
|
-- Delete a node from the database.
|
||||||
|
local
|
||||||
|
l_source: STRING
|
||||||
do
|
do
|
||||||
if attached current_user (req) as l_user then
|
if attached current_user (req) as l_user then
|
||||||
if attached {WSF_STRING} req.path_parameter ("id") as l_id then
|
if attached {WSF_STRING} req.path_parameter ("id") as l_id then
|
||||||
if
|
if
|
||||||
l_id.is_integer and then
|
l_id.is_integer and then
|
||||||
attached node_api.node (l_id.integer_value) as l_node
|
attached {CMS_NODE} node_api.node (l_id.integer_value) as l_node
|
||||||
then
|
then
|
||||||
if node_api.has_permission_for_action_on_node ("delete", l_node, current_user (req)) then
|
if node_api.has_permission_for_action_on_node ("delete", l_node, current_user (req)) then
|
||||||
node_api.delete_node (l_node)
|
node_api.delete_node (l_node)
|
||||||
|
l_source := node_api.node_path (l_node)
|
||||||
|
api.unset_path_alias (l_source, api.location_alias (l_source))
|
||||||
res.send (create {CMS_REDIRECTION_RESPONSE_MESSAGE}.make (req.absolute_script_url ("")))
|
res.send (create {CMS_REDIRECTION_RESPONSE_MESSAGE}.make (req.absolute_script_url ("")))
|
||||||
else
|
else
|
||||||
send_access_denied (req, res)
|
send_access_denied (req, res)
|
||||||
|
|||||||
@@ -383,7 +383,9 @@ feature -- Change: Node
|
|||||||
local
|
local
|
||||||
l_parameters: STRING_TABLE [ANY]
|
l_parameters: STRING_TABLE [ANY]
|
||||||
l_time: DATE_TIME
|
l_time: DATE_TIME
|
||||||
|
l_sql_delete_node_aliases: STRING
|
||||||
do
|
do
|
||||||
|
sql_begin_transaction
|
||||||
create l_time.make_now_utc
|
create l_time.make_now_utc
|
||||||
write_information_log (generator + ".delete_node_base {" + a_node.id.out + "}")
|
write_information_log (generator + ".delete_node_base {" + a_node.id.out + "}")
|
||||||
|
|
||||||
@@ -400,6 +402,9 @@ feature -- Change: Node
|
|||||||
|
|
||||||
if not error_handler.has_error then
|
if not error_handler.has_error then
|
||||||
extended_delete (a_node)
|
extended_delete (a_node)
|
||||||
|
sql_commit_transaction
|
||||||
|
else
|
||||||
|
sql_rollback_transaction
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -415,9 +420,9 @@ feature -- Change: Node
|
|||||||
error_handler.reset
|
error_handler.reset
|
||||||
create l_parameters.make (1)
|
create l_parameters.make (1)
|
||||||
l_parameters.put (l_time, "changed")
|
l_parameters.put (l_time, "changed")
|
||||||
l_parameters.put ({CMS_NODE_API}.not_published, "status")
|
l_parameters.put ({CMS_NODE_API}.published, "status")
|
||||||
l_parameters.put (a_id, "nid")
|
l_parameters.put (a_id, "nid")
|
||||||
sql_modify (sql_restore_node, l_parameters)
|
sql_modify (sql_update_node_status, l_parameters)
|
||||||
sql_finalize
|
sql_finalize
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -560,8 +565,8 @@ feature {NONE} -- Queries
|
|||||||
sql_delete_node: STRING = "DELETE FROM nodes WHERE nid=:nid"
|
sql_delete_node: STRING = "DELETE FROM nodes WHERE nid=:nid"
|
||||||
-- Physical deletion with free metadata.
|
-- Physical deletion with free metadata.
|
||||||
|
|
||||||
sql_restore_node: STRING = "UPDATE nodes SET changed=:changed, status =:status WHERE nid=:nid"
|
sql_update_node_status: STRING = "UPDATE nodes SET changed=:changed, status =:status WHERE nid=:nid"
|
||||||
-- Restore node to {CMS_NODE_API}.not_publised.
|
-- Restore node to {CMS_NODE_API}.published
|
||||||
|
|
||||||
sql_last_insert_node_id: STRING = "SELECT MAX(nid) FROM nodes;"
|
sql_last_insert_node_id: STRING = "SELECT MAX(nid) FROM nodes;"
|
||||||
|
|
||||||
@@ -584,6 +589,7 @@ feature {NONE} -- Queries
|
|||||||
|
|
||||||
sql_delete_node_revisions: STRING = "DELETE FROM node_revisions WHERE nid=:nid;"
|
sql_delete_node_revisions: STRING = "DELETE FROM node_revisions WHERE nid=:nid;"
|
||||||
|
|
||||||
|
|
||||||
feature {NONE} -- Sql Queries: USER_ROLES collaborators, author
|
feature {NONE} -- Sql Queries: USER_ROLES collaborators, author
|
||||||
|
|
||||||
Select_user_author: STRING = "SELECT uid, name, password, salt, email, users.status, users.created, signed FROM nodes INNER JOIN users ON nodes.author=users.uid AND nodes.nid = :nid AND nodes.revision = :revision;"
|
Select_user_author: STRING = "SELECT uid, name, password, salt, email, users.status, users.created, signed FROM nodes INNER JOIN users ON nodes.author=users.uid AND nodes.nid = :nid AND nodes.revision = :revision;"
|
||||||
|
|||||||
Reference in New Issue
Block a user