Uploaded image for project: 'OFBiz'
  1. OFBiz
  2. OFBIZ-4502

Improved CMS tree: more functionality and faster for large trees

    Details

    • Type: Improvement
    • Status: Reopened
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: Trunk
    • Fix Version/s: 16.11.01
    • Component/s: content
    • Labels:
      None
    • Sprint:
      Bug Crush Event - 21/2/2015

      Description

      We here at Lusini 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;

        Attachments

        1. CMS-Tree-Improvement.patch
          480 kB
          Martin Kreidenweis
        2. CMS-Tree-Improvement-2.patch
          480 kB
          Christoph Neuroth
        3. OFBIZ-4502.patch
          64 kB
          James Yong
        4. Image 109.png
          99 kB
          Jacques Le Roux
        5. OFBIZ-4502.showErrorTree.patch
          0.6 kB
          James Yong

          Issue Links

            Activity

              People

              • Assignee:
                jacques.le.roux Jacques Le Roux
                Reporter:
                mkreidenweis Martin Kreidenweis
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated: