Improved CMS tree: more functionality and faster for large trees ----------------------------------------------------------------
Key: OFBIZ-4502 URL: https://issues.apache.org/jira/browse/OFBIZ-4502 Project: OFBiz Issue Type: Improvement Components: content Affects Versions: SVN trunk Reporter: Martin Kreidenweis Attachments: CMS-Tree-Improvement.patch We here at [Lusini|http://www.lusini.de/] did several improvements to the CMS backend to make it more useable for large CMS installations. * Improved performance of CMS tree ** loading nodes dynamically using AJAX *** Created ContentJsonEvents to handle the JSON calls ** use OFBiz entity caches ** removed duplicate execution of WebSitePublishPoint.groovy *** removed reference from controller.xml as it is not used anywhere * Moving nodes in CMS tree possible now using drag'n'drop ** ContentJsonEvents returns updated node attributes ** Adjusted WebSiteCMSNav.ftl to update the moved node with the data from the ajax request ** Needed to replace the jstree jQuery plugin by the current version available on the jstree website * Made nodes deleteable ** added remove to context menu ** We did not want to delete the WebSitePathAlias entities right away, so we added a fromDate and thruDate to it. *** extended WebSitePathAlias entity definition: added fromDate and thruDate *** now checking for date range everywhere when accessing path aliases *** This also allows users to publish or unpublish contents under a certain URL automatically at some time in the future. ** created event to "delete" a node *** thruDate of all assocs pointing to this node are set to current timestamp *** thruDate of WebSitePathAliases pointing to this content or any contents below are set to current timestamp *** this way nothing is actually removed from the DB and a "undo" would be possible if necessary ** extracted context menu to variable so it can be reused for all trees * fixed missing references to uiLabels in CMS menu bar * Activated cookie plugin so the selected node is remembered To migrate existing path aliases the following SQL statements can be used: BEGIN; UPDATE web_site_path_alias SET from_date=w.created_stamp FROM web_site_path_alias w WHERE w.path_alias=web_site_path_alias.path_alias; ALTER TABLE web_site_path_alias DROP CONSTRAINT pk_web_site_path_alias, ADD CONSTRAINT pk_web_site_path_alias PRIMARY KEY (web_site_id, path_alias, from_date); COMMIT; -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira