001package org.nuxeo.snapshot.bean; 002 003import java.io.Serializable; 004 005import org.jboss.seam.ScopeType; 006import org.jboss.seam.annotations.In; 007import org.jboss.seam.annotations.Name; 008import org.jboss.seam.annotations.Scope; 009import org.nuxeo.ecm.core.api.CoreSession; 010import org.nuxeo.ecm.core.api.DocumentModel; 011import org.nuxeo.ecm.core.api.IdRef; 012import org.nuxeo.ecm.platform.ui.web.api.NavigationContext; 013import org.nuxeo.ecm.webapp.helpers.EventManager; 014import org.nuxeo.ecm.webapp.versioning.VersionedActions; 015import org.nuxeo.snapshot.Snapshot; 016 017@Name("vFolderActions") 018@Scope(ScopeType.PAGE) 019public class VFolderActionBean implements Serializable { 020 021 private static final long serialVersionUID = 1L; 022 023 @In(create = true) 024 protected VersionedActions versionedActions; 025 026 @In(create = true) 027 protected transient NavigationContext navigationContext; 028 029 @In(create = true, required = false) 030 protected transient CoreSession documentManager; 031 032 public String restoreToVersion() { 033 String vuuid = versionedActions.getSelectedVersionId(); 034 if (vuuid != null) { 035 036 DocumentModel vfolder = documentManager.getDocument(new IdRef(vuuid)); 037 DocumentModel livefolder = documentManager.getDocument(new IdRef(vfolder.getVersionSeriesId())); 038 039 Snapshot snap = livefolder.getAdapter(Snapshot.class); 040 DocumentModel restoredFolder = snap.restore(vfolder.getVersionLabel()); 041 042 documentManager.save(); 043 044 EventManager.raiseEventsOnDocumentChange(restoredFolder); 045 return navigationContext.navigateToDocument(restoredFolder, "after-edit"); 046 } 047 return null; 048 } 049 050}