/*******************************************************************************
*
* Copyright (c) 2004-2009, Oracle Corporation
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*
*
*
*
*******************************************************************************/
package hudson.diagnosis;
import hudson.model.AdministrativeMonitor;
import hudson.model.Hudson;
import hudson.Extension;
import hudson.Functions;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import java.io.IOException;
/**
* If Hudson is run with a lot of jobs but no views, suggest the user that they
* can create views.
*
* <p> I noticed at an user visit that some users didn't notice the '+' icon in
* the tab bar.
*
* @author Kohsuke Kawaguchi
*/
@Extension
public class TooManyJobsButNoView extends AdministrativeMonitor {
public boolean isActivated() {
Hudson h = Hudson.getInstance();
return h.getViews().size() == 1 && h.getItemMap().size() > THRESHOLD;
}
/**
* Depending on whether the user said "yes" or "no", send him to the right
* place.
*/
public void doAct(StaplerRequest req, StaplerResponse rsp) throws IOException {
if (req.hasParameter("no")) {
disable(true);
rsp.sendRedirect(Functions.getRequestRootPath(req) + "/manage");
} else {
rsp.sendRedirect(Functions.getRequestRootPath(req) + "/newView");
}
}
public static final int THRESHOLD = 16;
}