Uploaded image for project: 'Links directory'
  1. Links directory
  2. LINKS-33

Do not use JCR same name sibling anymore

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 1.1.0
    • None
    • None

      See CMS-6099

          [LINKS-33] Do not use JCR same name sibling anymore

          Laurence Aumeunier added a comment - - edited

          Script of migration for themes

          function getUniqueName (rootNode, defaultName)
          {
             var uniqueName = defaultName;
             var index = 2;
             while (rootNode.hasNode(uniqueName))
             {
                uniqueName = defaultName + "-" + index;
                index++;
             }   
             return uniqueName;
          }
          
          var qm = session.getWorkspace().getQueryManager();
          var query = qm.createQuery("//element(*, ametys:site)/ametys-internal:plugins/linkdirectory/*/ametys:themes/element(ametys:theme, ametys:directoryTheme)", javax.jcr.query.Query.XPATH);
          var nodes = query.execute().getNodes();
            
          var count = 0;
          while (nodes.hasNext())
          {
            var node = nodes.next();
             
            var label = node.getProperty('ametys-internal:label').getString();
            var normalizedLabel = org.ametys.plugins.linkdirectory.DirectoryHelper.normalizeString(label);
            var newName = getUniqueName (node.getParent(), normalizedLabel);
             
            session.move(node.getPath(), node.getParent().getPath() + '/' + newName);
            count++;
          }
            
          if (count > 0)
          {
            session.save();
          }
          println(count + " themes have been renamed");
          

          Laurence Aumeunier added a comment - - edited Script of migration for themes function getUniqueName (rootNode, defaultName) { var uniqueName = defaultName; var index = 2; while (rootNode.hasNode(uniqueName)) { uniqueName = defaultName + "-" + index; index++; } return uniqueName; } var qm = session.getWorkspace().getQueryManager(); var query = qm.createQuery( " //element(*, ametys:site)/ametys-internal:plugins/linkdirectory/*/ametys:themes/element(ametys:theme, ametys:directoryTheme)" , javax.jcr.query.Query.XPATH); var nodes = query.execute().getNodes(); var count = 0; while (nodes.hasNext()) { var node = nodes.next(); var label = node.getProperty( 'ametys-internal:label' ).getString(); var normalizedLabel = org.ametys.plugins.linkdirectory.DirectoryHelper.normalizeString(label); var newName = getUniqueName (node.getParent(), normalizedLabel); session.move(node.getPath(), node.getParent().getPath() + '/' + newName); count++; } if (count > 0) { session.save(); } println(count + " themes have been renamed" );

            laurence Laurence Aumeunier
            raphael Raphaël Franchet
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: