diff --git a/modules/node/cms_node_module.e b/modules/node/cms_node_module.e index 3484cb2..b0f42fc 100644 --- a/modules/node/cms_node_module.e +++ b/modules/node/cms_node_module.e @@ -312,6 +312,7 @@ feature -- Hooks if l_node_api.has_permission_for_action_on_node ("view", n, a_current_user) then n := l_node_api.full_node (n) create ch.make (n.content_type, create {CMS_LOCAL_LINK}.make (n.title, "node/" + n.id.out), n.modification_date) + ch.set_id (n.content_type + ":id" + n.id.out + "-rev" + n.revision.out) if n.creation_date ~ n.modification_date then l_info := "new" if not n.is_published then diff --git a/modules/node/persistence/cms_node_storage_sql.e b/modules/node/persistence/cms_node_storage_sql.e index 39a7af2..4ea3da9 100644 --- a/modules/node/persistence/cms_node_storage_sql.e +++ b/modules/node/persistence/cms_node_storage_sql.e @@ -214,7 +214,7 @@ feature -- Access end recent_node_changes_before (a_lower: INTEGER; a_count: INTEGER; a_date: DATE_TIME): LIST [CMS_NODE] - -- List of recent changes, before `a_date', according to `params' settings. + -- List of recent changes on published nodes, before `a_date', according to `params' settings. local l_parameters: STRING_TABLE [detachable ANY] do @@ -224,10 +224,11 @@ feature -- Access write_information_log (generator + ".recent_node_changes_before") from - create l_parameters.make (3) + create l_parameters.make (4) l_parameters.put (a_count, "size") l_parameters.put (a_lower, "offset") l_parameters.put (a_date, "date") + l_parameters.put ({CMS_NODE_API}.published, "status") sql_query (sql_select_recent_node_changes_before, l_parameters) sql_start @@ -613,9 +614,9 @@ feature {NONE} -- Queries nodes end sql_select_recent_node_changes_before: STRING - -- + --published nodes before ':date'. once - Result := sql_select_all_from_nodes + " WHERE changed <= :date ORDER BY changed DESC, nid DESC LIMIT :size OFFSET :offset ;" + Result := sql_select_all_from_nodes + " WHERE changed <= :date AND status=:status ORDER BY changed DESC, nid DESC LIMIT :size OFFSET :offset ;" end feature {NONE} -- Queries node revisions diff --git a/modules/recent_changes/cms_recent_change_item.e b/modules/recent_changes/cms_recent_change_item.e index 3ec11ae..7cf0491 100644 --- a/modules/recent_changes/cms_recent_change_item.e +++ b/modules/recent_changes/cms_recent_change_item.e @@ -23,6 +23,9 @@ feature {NONE} -- Initialization feature -- Access + id: detachable READABLE_STRING_32 + -- Optional id, expected to be unique. + link: CMS_LOCAL_LINK -- Local link associated with the resource. @@ -51,6 +54,16 @@ feature -- Access feature -- Element change + set_id (a_id: detachable READABLE_STRING_GENERAL) + -- Set `id` to `a_id`. + do + if a_id = Void then + id := Void + else + id := a_id.as_string_32 + end + end + set_author_name (n: like author_name) -- Set `author_name' to `n'. do diff --git a/modules/recent_changes/cms_recent_changes_module.e b/modules/recent_changes/cms_recent_changes_module.e index d3c6c2e..16e0888 100644 --- a/modules/recent_changes/cms_recent_changes_module.e +++ b/modules/recent_changes/cms_recent_changes_module.e @@ -132,6 +132,7 @@ feature -- Hook create l_feed_name.make_from_string (a_response.api.setup.site_name) l_feed_name.append_string ({STRING_32} " : recent changes") create l_feed.make (l_feed_name) + l_feed.set_id (a_response.api.absolute_url (a_response.request.path_info, Void)) l_feed.set_date (create {DATE_TIME}.make_now_utc) nb := a_size across @@ -143,6 +144,10 @@ feature -- Hook create l_feed_item.make (ch.link.title) l_feed_item.set_date (ch.date) + if attached ch.id as l_ch_id then + l_feed_item.set_id (l_ch_id) + end + create s.make_empty if attached ch.information as l_information then s.append_string_general (l_information)