OFBiz
  1. OFBiz
  2. OFBIZ-4502

Improved CMS tree: more functionality and faster for large trees

    Details

    • Type: Improvement Improvement
    • Status: Patch Available
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: Trunk
    • Fix Version/s: None
    • Component/s: content
    • Labels:
      None

      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;

      1. CMS-Tree-Improvement.patch
        480 kB
        Martin Kreidenweis
      2. CMS-Tree-Improvement-2.patch
        480 kB
        Christoph Neuroth

        Activity

        Hide
        Martin Kreidenweis added a comment -

        the patch

        Show
        Martin Kreidenweis added a comment - the patch
        Hide
        Christoph Neuroth added a comment -

        New version of our patch, applied against current trunk.

        Show
        Christoph Neuroth added a comment - New version of our patch, applied against current trunk.
        Hide
        Christoph Neuroth added a comment -

        We further improved the CMS Tree patch - it will now automatically open the parent of the new content and select it.

        What's your opinion on the patch? Any problems that block integrating our changes?

        Show
        Christoph Neuroth added a comment - We further improved the CMS Tree patch - it will now automatically open the parent of the new content and select it. What's your opinion on the patch? Any problems that block integrating our changes?

          People

          • Assignee:
            Hans Bakker
            Reporter:
            Martin Kreidenweis
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development