<?xml version="1.0" encoding="UTF-8"?>
<beans
		xmlns="http://www.springframework.org/schema/beans"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="
			http://www.springframework.org/schema/beans
			http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

	<bean id="default" class="org.springframework.web.servlet.view.RedirectView">
		<property name="contextRelative" value="true" />
		<property name="url" value="/" />
	</bean>

	<bean id="user-list-redirect" class="org.springframework.web.servlet.view.RedirectView">
		<property name="contextRelative" value="true" />
		<property name="url" value="/user" />
	</bean>

	<bean id="tag-list-redirect" class="org.springframework.web.servlet.view.RedirectView">
		<property name="contextRelative" value="true" />
		<property name="url" value="/tag" />
	</bean>
	
	<!-- Default view for simple pages -->
	<bean id="main-layout" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="templateName" value="template" />
		<property name="url" value="/WEB-INF/jsp/layout/main.jsp" />
		<property name="attributes">
			<map>
				<entry key="header" value="/WEB-INF/jsp/header/default.jsp" />
				<entry key="footer" value="/WEB-INF/jsp/footer/default.jsp" />
				<entry key="left">
					<list>
						<value>/WEB-INF/jsp/sidebar/navigation.jsp</value>
						<value>/WEB-INF/jsp/sidebar/login.jsp</value>
						<value>/WEB-INF/jsp/sidebar/welcome.jsp</value>
						<value>/WEB-INF/jsp/sidebar/validation.jsp</value>
					</list>
				</entry>
				<entry key="right"><null /></entry>
			</map>
		</property>
	</bean>
	
	<!-- View for wide pages (no right section) -->
	<bean id="wide-layout" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="main-layout" />
		<property name="url" value="/WEB-INF/jsp/layout/wide.jsp" />
	</bean>
	
	<!-- Login page -->
	<bean id="login" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Login" />	
				<entry key="javascript" value="login.js" />
				<entry key="error">
					<bean class="java.lang.Boolean"><constructor-arg value="false" /></bean>
				</entry>
				<entry key="left">
					<list>
						<value>/WEB-INF/jsp/sidebar/navigation.jsp</value>
						<value>/WEB-INF/jsp/sidebar/welcome.jsp</value>
						<value>/WEB-INF/jsp/sidebar/validation.jsp</value>
					</list>
				</entry>
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/login.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>
	
	<!-- Login error page -->
	<bean id="login-error" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="login" />
		<property name="attributes">
			<map>
				<entry key="title" value="Login error" />	
				<entry key="error">
					<bean class="java.lang.Boolean"><constructor-arg value="true" /></bean>
				</entry>
			</map>
		</property>
	</bean>
	
	<!-- Home page -->
	<bean id="home" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="main-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Home" />
				<entry key="showCommentLinks" value="true" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/article-list.jsp</value>
						<value>/WEB-INF/jsp/content/pager.jsp</value>
					</list>
				</entry>
				<entry key="right">
					<list>
						<value>/WEB-INF/jsp/sidebar/calendar.jsp</value>
						<value>/WEB-INF/jsp/sidebar/tagcloud.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>

	<!-- User list -->
	<bean id="user-list" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Users" />
				<entry key="javascript" value="user-list.js" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/user-list.jsp</value>
						<value>/WEB-INF/jsp/content/pager.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>

	<!-- Tag list -->
	<bean id="tag-list" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Tags" />
				<entry key="javascript" value="tag-list.js" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/tag-list.jsp</value>
						<value>/WEB-INF/jsp/content/pager.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>
	
	<bean id="article-tag-list" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="home" />
		<property name="attributes">
			<map>
				<entry key="title" value="Tags" />
			</map>
		</property>
	</bean>
	
	<bean id="article-view" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title"><null /></entry>
				<entry key="showCommentLinks" value="false" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/article-list.jsp</value>
						<value>/WEB-INF/jsp/content/article-comment.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>
	
	<bean id="change-password" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Change password" />
				<entry key="javascript" value="change-password.js" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/change-password.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>
	
	<bean id="article-add" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Add article" />
				<entry key="formMode" value="add" />
				<entry key="formAction" value="/article/add" />
				<entry key="javascript" value="article-edit.js" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/article-edit.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>
	
	<bean id="article-edit" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="article-add" />
		<property name="attributes">
			<map>
				<entry key="title" value="Edit article" />
				<entry key="formMode" value="edit" />
				<entry key="formAction" value="/article/edit" />
			</map>
		</property>
	</bean>

	<bean id="test-form" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Test form" />
				<entry key="javascript" value="test-form.js" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/test-form.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>

	<bean id="legal-about" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="About this site" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/legal-about.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>

	<bean id="legal-license" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="License" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/legal-license.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>

	<bean id="user-add" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Add user" />
				<entry key="formMode" value="add" />
				<entry key="formAction" value="/user/add" />
				<entry key="javascript" value="user-edit.js" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/user-edit.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>
	
	<bean id="user-edit" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="user-add" />
		<property name="attributes">
			<map>
				<entry key="title" value="Edit user" />
				<entry key="formMode" value="edit" />
				<entry key="formAction" value="/user/edit" />
			</map>
		</property>
	</bean>

	<bean id="tag-add" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="wide-layout" />
		<property name="attributes">
			<map>
				<entry key="title" value="Add tag" />
				<entry key="formMode" value="add" />
				<entry key="formAction" value="/tag/add" />
				<entry key="javascript" value="tag-edit.js" />
				<entry key="content">
					<list>
						<value>/WEB-INF/jsp/content/tag-edit.jsp</value>
					</list>
				</entry>
			</map>
		</property>
	</bean>
	
	<bean id="tag-edit" class="com.randomcoder.springmvc.JstlTemplateView">
		<property name="parent" ref="tag-add" />
		<property name="attributes">
			<map>
				<entry key="title" value="Edit tag" />
				<entry key="formMode" value="edit" />
				<entry key="formAction" value="/tag/edit" />
			</map>
		</property>
	</bean>
	
</beans>
