Uploaded image for project: 'User Directory'
  1. User Directory
  2. UD-130

Migrate organization chart service to the new service paramters API

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Major Major
    • 2.2.0
    • 2.2.0
    • None
    • 4.2 M9

        [UD-130] Migrate organization chart service to the new service paramters API

        Caroline Bayle added a comment -

        Here is the script to migrate organization chart services :

         

        var qm = session.getWorkspace().getQueryManager(); 
        var query = qm.createQuery("//element(*, ametys:zoneItem)[@ametys-internal:type = 'SERVICE' and @ametys-internal:service = 'org.ametys.plugins.userdirectory.service.OrganizationChart']", javax.jcr.query.Query.XPATH);
        var nodes = query.execute().getNodes(); 
        var count = 0; 
        while (nodes.hasNext()) 
        {
            var node = nodes.nextNode().getNode("ametys:service_parameters"); 
            if (node.hasProperty("ametys:maxLevel")) 
            {
                var property = node.getProperty("ametys:maxLevel");
                var value = Number(property.getString());
                property.remove();
                count++;
                if (value >= 1) // If the property is not filled, then value == 0
                {	
                    node['setProperty(java.lang.String, long)']("ametys:maxLevel", value); 
                }
            }
        }
        session.save(); 
        print(count + " updated organization chart services.");

        Caroline Bayle added a comment - Here is the script to migrate organization chart services :   var qm = session.getWorkspace().getQueryManager(); var query = qm.createQuery( " //element(*, ametys:zoneItem)[@ametys-internal:type = 'SERVICE' and @ametys-internal:service = 'org.ametys.plugins.userdirectory.service.OrganizationChart' ]" , javax.jcr.query.Query.XPATH); var nodes = query.execute().getNodes(); var count = 0; while (nodes.hasNext()) { var node = nodes.nextNode().getNode( "ametys:service_parameters" ); if (node.hasProperty( "ametys:maxLevel" )) { var property = node.getProperty( "ametys:maxLevel" ); var value = Number (property.getString()); property.remove(); count++; if (value >= 1) // If the property is not filled, then value == 0 { node[ 'setProperty(java.lang. String , long )' ]( "ametys:maxLevel" , value); } } } session.save(); print(count + " updated organization chart services." );

          Unassigned Unassigned
          cbayle Caroline Bayle
          Votes:
          0 Vote for this issue
          Watchers:
          1 Start watching this issue

            Created:
            Updated:
            Resolved: