package com.attask.jenkins.templates;
import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.Project;
import hudson.model.Run;
import hudson.util.RunList;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import javax.servlet.ServletException;
import java.io.IOException;
/**
* User: Joel Johnson
* Date: 6/26/12
* Time: 7:58 PM
*/
public class TemplateSyncAction implements Action {
private final Syncable syncable;
public TemplateSyncAction(Syncable syncable) {
this.syncable = syncable;
}
public void doSync(StaplerRequest request, StaplerResponse response) throws IOException, ServletException {
syncable.sync();
response.sendRedirect("..");
}
public String getIconFileName() {
if(getDisplayName() == null) {
return null;
}
return "/plugin/Templating/sync.png";
}
public AbstractProject getProject() {
return Project.findNearest(syncable.getProjectName());
}
public boolean getProjectHasRunningJobs() {
RunList<Run> builds = getProject().getBuilds();
for (Run build : builds) {
if(build.isBuilding()) {
return true;
}
}
return false;
}
public String getDisplayName() {
return "Sync";
}
public String getUrlName() {
return "sync";
}
}