<%--
 * Copyright by Intland Software
 *
 * All rights reserved.
 *
 * This software is the confidential and proprietary information
 * of Intland Software. ("Confidential Information"). You
 * shall not disclose such Confidential Information and shall use
 * it only in accordance with the terms of the license agreement
 * you entered into with Intland.
 *
 * $Revision$ $Date$
--%>

<%@ taglib uri="jstl-c" prefix="c" %>
<%@ taglib uri="jstl-fmt" prefix="fmt" %>
<%@ taglib uri="jstl-fn" prefix="fn" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<%@ taglib uri="taglib" prefix="tag" %>
<%@ taglib uri="acltaglib" prefix="acl" %>
<%@ taglib uri="uitaglib" prefix="ui" %>

<%@ page import="java.io.IOException" %>
<%@ page import="com.intland.codebeamer.persistence.dto.TrackerLayoutLabelDto" %>

<meta name="decorator" content="main">
<meta name="module" content="tracker">
<meta name="stylesheet" content="tracker.css">

<%!
	private int MAXCOLUMNS = 1;

	void insertNewRow(JspWriter out, int cnt) throws IOException {
		if ((cnt % MAXCOLUMNS) == 0) {
			if (cnt != 0) {
				out.println("</TR>");
			}
			out.println("<TR>");
		}
	}
%>

<acl:isUserInRole var="isAdmin" value="${applicationScope.PERMISSION_SYSTEM_ADMIN}" />

<%
	int fieldCounter = 1;
	int importCounter = 0;
	int wideValuesColSpan = 1;

	pageContext.setAttribute("ID_LABEL_ID", new Integer(TrackerLayoutLabelDto.ID_LABEL_ID));
	pageContext.setAttribute("NAME_LABEL_ID", new Integer(TrackerLayoutLabelDto.NAME_LABEL_ID));
%>

<ui:actionMenuBar>
	<table height="100%">
		<tr valign="middle">
			<td valign="middle" width="100%" height="100%" nowrap>
				<span class="titlenormal">
					<ui:breadcrumbs showProjects="false"/> : <ui:pageTitle>Assign Columns of Imported Data</ui:pageTitle>
				</span>
			</td>
		</tr>
	</table>
</ui:actionMenuBar>


<c:set var="nr_of_records" value="${fn:length(importForm.dataList)}" />
<c:set var="nr_of_fields" value="${fn:length(importForm.dataList[0])}" />

<c:if test="${nr_of_fields gt 10}">
<%
	MAXCOLUMNS = 2;
	wideValuesColSpan = 3;
%>
</c:if>

<form:form commandName="importForm" action="${flowUrl}">
<form:errors cssClass="error"/>

<form:hidden path="trackerId"/>

<div class='actionBar'>
	&nbsp;&nbsp;<input type="submit" class="button" name="_eventId_back" value="&lt; Back" />
	&nbsp;&nbsp;<input type="submit" class="button" name="_eventId_next" value="Next &gt;" />
	&nbsp;&nbsp;<input type="submit" class="button" name="_eventId_cancel" value="Cancel" />
</div>

<TABLE BORDER="0" CELLSPACING="1" CELLPADDING="0">

<TR>
	<TD NOWRAP CLASS="mandatory">&nbsp;Date Format:&nbsp;</TD>

	<TD>
	<form:select path="dateFormat" cssClass="fixSelectWidth">
		<form:option value="y-MM-dd">1999-12-31</form:option>
		<form:option value="y.MM.dd">1999.12.31</form:option>
		<form:option value="dd/MM/y">31/12/1999</form:option>
		<form:option value="dd.MM.y">31.12.1999</form:option>
		<form:option value="dd-MMM-y">31-Dec-1999</form:option>
		<form:option value="MM/dd/y">12/31/1999</form:option>
		<form:option value="y/MM/dd">1999/12/31</form:option>
	</form:select></TD>
</TR>

<TR>
	<TD NOWRAP CLASS="mandatory">&nbsp;Number Format:&nbsp;</TD>

	<TD>
	<form:select path="numberFormat" cssClass="fixSelectWidth">
		<form:option value="us">1234.10</form:option>
		<form:option value="de">1234,10</form:option>
	</form:select>
	</TD>
</TR>

<TR>
	<TD NOWRAP CLASS="mandatory">&nbsp;Start Import at Row:&nbsp;</TD>

	<TD><form:input size="4" path="startImportAtRow" cssClass="fixSelectWidth" /></TD>
</TR>

<c:forEach var="field" items="${importForm.fieldList}">
<c:set var="fieldCounter" value="<%=Integer.toString(fieldCounter++)%>"/>
<TR>
<%
	insertNewRow(out, fieldCounter);
%>
	<c:if test="${field.mandatory}">
<%
	importCounter = 1;
%>
		<TD NOWRAP CLASS="mandatory">&nbsp;<c:out value="${field.description}"/>:&nbsp;</TD>
		<TD>
			<form:select path="importFieldMap[${fieldCounter}]">
				<c:forEach var="importField" items="${importForm.importMandatoryOptions}">
					<c:set var="importCounter" value="<%=Integer.toString(importCounter++)%>"/>
					<form:option label="${importField}" value="${importCounter}"/>
				</c:forEach>
			</form:select>
		</TD>
	</c:if>
	<c:if test="${!field.mandatory}">
<%
	importCounter = 0;
%>
		<TD NOWRAP CLASS="optional">&nbsp;<c:out value="${field.description}"/>:&nbsp;</TD>
		<TD>
			<form:select path="importFieldMap[${fieldCounter}]">
				<c:forEach var="importField" items="${importForm.importOptionalOptions}">
					<c:set var="importCounter" value="<%=Integer.toString(importCounter++)%>"/>
					<form:option label="${importField}" value="${importCounter}"/>
				</c:forEach>
			</form:select>
		</TD>
	</c:if>
</TR>
</c:forEach>

</TABLE>

</form:form>

<c:set var="maxPreviewSize" value="25" />

Scanned <STRONG><fmt:formatNumber value="${nr_of_records}" /></STRONG> rows
and <STRONG><fmt:formatNumber value="${nr_of_fields}" /></STRONG> columns.

<c:if test="${nr_of_records gt maxPreviewSize}">
	(The list below is truncated to <STRONG><fmt:formatNumber value="${maxPreviewSize}" /></STRONG> rows.)
</c:if>

<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
<%	int counter = 0;	%>

	<TR CLASS="head">
		<TH>Row#</TH>
		<tag:tableColumnSeparator header="true" />

	<c:forEach begin="1" end="${nr_of_fields}" var="current">
		<TH CLASS="textData"><c:out value="[${current}]" /></TH>
		<tag:tableColumnSeparator header="true" />
	</c:forEach>
	</TR>

	<c:forEach items="${importForm.dataList}" var="record" end="${maxPreviewSize - 1}" varStatus="loopStatus">
		<TR VALIGN="top" CLASS="<%=((counter++ % 2) == 0 ? "even" : "odd")%>">

			<TD CLASS="textDataWrap"><c:out value="${loopStatus.index + 1}" /></TD>
			<tag:tableColumnSeparator />

			<c:forEach items="${record}" var="column">
				<TD CLASS="textDataWrap"><c:out value="${column}" /></TD>

				<tag:tableColumnSeparator />
			</c:forEach>
		</TR>
	</c:forEach>
</TABLE>
