package org.openedit.entermedia.modules; import java.util.Collection; import java.util.Iterator; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.entermedia.upload.FileUpload; import org.entermedia.upload.FileUploadItem; import org.entermedia.upload.UploadRequest; import org.openedit.Data; import org.openedit.data.Searcher; import org.openedit.entermedia.Asset; import org.openedit.entermedia.Category; import org.openedit.entermedia.MediaArchive; import org.openedit.entermedia.push.OLDPublishChecker; import org.openedit.entermedia.push.PushManager; import com.openedit.WebPageRequest; import com.openedit.hittracker.SearchQuery; import com.openedit.util.PathUtilities; public class SyncModule extends BaseMediaModule { private static final Log log = LogFactory.getLog(SyncModule.class); protected PushManager fieldPushManager; public PushManager getPushManager() { return fieldPushManager; } public void setPushManager(PushManager inPushManager) { fieldPushManager = inPushManager; } public void acceptPush(WebPageRequest inReq) { MediaArchive archive = getMediaArchive(inReq); getPushManager().acceptPush(inReq,archive); } public void resetPushStatus(WebPageRequest inReq) { MediaArchive archive = getMediaArchive(inReq); String old = inReq.findValue("oldpushstatus"); String newstatus = inReq.findValue("newpushstatus"); getPushManager().resetPushStatus(archive, old, newstatus); } public void processPushQueue(WebPageRequest inReq) { MediaArchive archive = getMediaArchive(inReq); String ids = inReq.getRequestParameter("assetids"); getPushManager().processPushQueue(archive, ids, inReq.getUser()); } public void processDeletedAssets(WebPageRequest inReq) { MediaArchive archive = getMediaArchive(inReq); //String ids = inReq.getRequestParameter("assetids"); getPushManager().processDeletedAssets(archive, inReq.getUser()); } // private boolean isOkToSendX(Data inHotfolder) // { // boolean active = Boolean.parseBoolean(inHotfolder.get("auto")); // // TODO: check dates, times. // return active; // } public void togglePush(WebPageRequest inReq) throws Exception { MediaArchive archive = getMediaArchive(inReq); Searcher searcher = getSearcherManager().getSearcher(archive.getCatalogId(), "catalogsettings"); Data setting = (Data)searcher.searchById("push_masterswitch"); String switchvalue = setting.get("value"); if( Boolean.parseBoolean(switchvalue) ) { switchvalue = "false"; } else { switchvalue = "true"; } setting.setProperty("value",switchvalue); searcher.saveData(setting, inReq.getUser()); if( "true".equals(switchvalue)) { archive.fireSharedMediaEvent("push/pushassets"); } getPushManager().toggle(archive.getCatalogId()); } public void clearQueue(WebPageRequest inReq) throws Exception { MediaArchive archive = getMediaArchive(inReq); Searcher pushsearcher = archive.getSearcherManager().getSearcher(archive.getCatalogId(), "pushrequest"); pushsearcher.deleteAll(inReq.getUser()); } // public void addAssetToQueue(WebPageRequest inReq) throws Exception // { // MediaArchive archive = getMediaArchive(inReq); // // //String enabled = archive.getCatalogSettingValue("push_convertpresets"); // // Searcher pushsearcher = archive.getSearcherManager().getSearcher(archive.getCatalogId(), "pushrequest"); // //Searcher hot = archive.getSearcherManager().getSearcher( archive.getCatalogId(), "hotfolder"); // // //SearchQuery query = pushsearcher.createSearchQuery(); // // boolean foundone = false; // String assetid = inReq.getRequestParameter("assetid"); // if( assetid == null) // { // //TODO: Remove bad assets? // log.info("Warning: Checking all assets"); // Collection hits = archive.getAssetSearcher().getAllHits(); // for (Iterator iterator = hits.iterator(); iterator.hasNext();) // { // Data row = (Data)iterator.next(); // boolean found = getPushManager().checkPublish(archive, pushsearcher, row.getId(), inReq.getUser()); // if( found ) // { // foundone = true; // } // } // } // else // { // foundone = getPushManager().checkPublish(archive, pushsearcher, assetid, inReq.getUser()); // } // if( foundone ) // { // archive.fireSharedMediaEvent("push/pushassets"); // } // // } public void loadQueue(WebPageRequest inReq ) throws Exception { MediaArchive archive = getMediaArchive(inReq); SearchQuery q = archive.getAssetSearcher().createSearchQuery().append("category","index"); q.addNot("editstatus","7"); Collection all = archive.getAssetSearcher().search(q); inReq.putPageValue("assets", all); Collection importpending = getPushManager().getImportPendingAssets(archive); inReq.putPageValue("importpending", importpending); Collection importcomplete = getPushManager().getImportCompleteAssets(archive); inReq.putPageValue("importcomplete", importcomplete); Collection importerror = getPushManager().getImportErrorAssets(archive); inReq.putPageValue("importerror", importerror); // Collection pusherror = getPushManager().getErrorAssets(archive); inReq.putPageValue("pusherror", pusherror); Collection nogenerated = getPushManager().getNoGenerated(archive); inReq.putPageValue("nogenerated", nogenerated); Collection pushcomplete = getPushManager().getCompletedAssets(archive); inReq.putPageValue("pushcomplete", pushcomplete); Collection pushpending = getPushManager().getPendingAssets(archive); inReq.putPageValue("pushpending", pushpending); } public void pollRemotePublish(WebPageRequest inReq) throws Exception { MediaArchive archive = getMediaArchive(inReq); getPushManager().pollRemotePublish(archive); //getPublishChecker().addCatalogToMonitor(archive.getCatalogId()); //getPushManager().pollRemotePublish(archive); //search for publish tasks and complete them with a push } }