Script - Purge all folders into some parent
That script purges all folders into a parent, without previously moving files to trash.
The purge action is a non recovery action that removes definitely the objects from OpenKM repository. Use it with care.
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import com.openkm.api.OKMFolder;
import com.openkm.db.bean.NodeFolder;
import com.openkm.util.ContextWrapper;
String qs = "from NodeFolder nf where nf.parent='2ed9586e-570c-4d27-a107-eeb0a5f181be'";
Session session = null;
Transaction tx = null;
boolean found = true;
try {
SessionFactory sessionFactory = ContextWrapper.getContext().getBean(SessionFactory.class);
OKMFolder okmFolder = ContextWrapper.getContext().getBean(OKMFolder.class);
while (found) {
session = sessionFactory.openSession();
Query q = session.createQuery(qs);
q.setMaxResults(100);
found = false;
List fldList = new ArrayList();
for (NodeFolder fld : q.list()) {
found = true;
fldList.add(fld.getUuid());
}
for (String uuid : fldList) {
try {
okmFolder.purge(null, uuid);
} catch (Exception e) {
print(e.getMessage() + "<br/>");
}
}
}
} catch (Exception e) {
print(e.getMessage());
} finally {
session.close();
}