blob: 00ab7e19c793c77e7c10ea8f02c72d948f6030a0 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. The ASF licenses this file to You
* under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License. For additional information regarding
* copyright in this work, please see the NOTICE file in the top level
* directory of this distribution.
*/
package org.apache.roller.weblogger.ui.struts2.core;
import java.util.Collection;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.PropertiesManager;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.pojos.RuntimeConfigProperty;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.struts2.convention.annotation.AllowedMethods;
/**
* Page used to display Roller install instructions.
*/
// TODO: make this work @AllowedMethods({"execute","save"})
public class Setup extends UIAction {
private static final Log LOG = LogFactory.getLog(Setup.class);
private long userCount = 0;
private long blogCount = 0;
private String frontpageBlog;
private Boolean aggregated;
// weblogs for frontpage blog chooser
private Collection<Weblog> weblogs;
public Setup() {
this.pageTitle = "index.heading";
}
@Override
public boolean isUserRequired() {
return false;
}
@Override
public boolean isWeblogRequired() {
return false;
}
@Override
public String execute() {
try {
WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
setWeblogs(mgr.getWeblogs(true, null, null, null, 0, -1));
} catch (WebloggerException ex) {
LOG.error("Error getting weblogs", ex);
addError("frontpageConfig.weblogs.error");
}
try {
setUserCount(WebloggerFactory.getWeblogger().getUserManager().getUserCount());
setBlogCount(WebloggerFactory.getWeblogger().getWeblogManager().getWeblogCount());
} catch (WebloggerException ex) {
LOG.error("Error getting user/weblog counts", ex);
}
return SUCCESS;
}
public String save() {
PropertiesManager mgr = WebloggerFactory.getWeblogger().getPropertiesManager();
try {
RuntimeConfigProperty frontpageBlogProp = mgr.getProperty("site.frontpage.weblog.handle");
frontpageBlogProp.setValue(frontpageBlog);
mgr.saveProperty(frontpageBlogProp);
RuntimeConfigProperty aggregatedProp = mgr.getProperty("site.frontpage.weblog.aggregated");
aggregatedProp.setValue(aggregated.toString());
mgr.saveProperty(aggregatedProp);
WebloggerFactory.getWeblogger().flush();
addMessage("frontpageConfig.values.saved");
} catch (WebloggerException ex) {
LOG.error("ERROR saving frontpage configuration", ex);
addError("frontpageConfig.values.error");
}
return "home";
}
public long getUserCount() {
return userCount;
}
public void setUserCount(long userCount) {
this.userCount = userCount;
}
public long getBlogCount() {
return blogCount;
}
public void setBlogCount(long blogCount) {
this.blogCount = blogCount;
}
public Collection<Weblog> getWeblogs() {
return weblogs;
}
public void setWeblogs(Collection<Weblog> weblogs) {
this.weblogs = weblogs;
}
public String getFrontpageBlog() {
return frontpageBlog;
}
public void setFrontpageBlog(String frontpageBlog) {
this.frontpageBlog = frontpageBlog;
}
public Boolean getAggregated() {
return aggregated;
}
public void setAggregated(Boolean aggregated) {
this.aggregated = aggregated;
}
}