<%--
 * 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="struts-html" prefix="html" %>

<%@ taglib uri="wikitab" prefix="wikitab" %>
<%@ taglib uri="uitaglib" prefix="ui" %>

<meta name="decorator" content="main">
<meta name="moduleCSSClass" content="trackersModule">
<meta name="stylesheet" content="tracker.css">
<meta name="module" content="tracker">
<c:if test="${param.CMDB eq 'true'}">
	<meta name="module" content="cmdb">
</c:if>

<wikitab:config />

<%-- param.categoryMode parameter set to "true" if creating/editing a Category-tracker --%>
<c:set var="categoryMode" value="${param.categoryMode eq 'true'}"/>

<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
<!-- Hide script from old browsers
function confirmDeleteTracker(button) {
	return showFancyConfirmDialog(button, '<fmt:message key="tracker.admin.delete.confirm" />');
}
window.onload=function updateTabs(){
	try{
		onLoad();
	}catch(e){
	}
}

// -->
</SCRIPT>

<c:set var="TrackerTypeName" value="Tracker"/>
<c:if test="${categoryMode}">
	<c:set var="TrackerTypeName" value="Category"/>
</c:if>

<c:set var="newTracker" value="${empty param.tracker_id || param.tracker_id == -1}" />
<c:choose>
	<c:when test="${! newTracker}">
		<c:set var="tracker_id" value="${param.tracker_id}" />
		<c:set var="hdr" value="General" />
		<c:set var="submitTitle" value="Set Tracker" />
		<c:set var="addButton" value="Save" />
		<c:set var="action" value="/proj/tracker/updateTracker" />

		<c:if test="${categoryMode}">
			<c:set var="submitTitle" value="Set Category" />
			<c:set var="action" value="/proj/cmdb/updateCategory" />
		</c:if>
	</c:when>

	<c:otherwise>
		<c:set var="tracker_id" value="-1" />
		<c:set var="hdr" value="Add New Tracker" />
		<c:set var="submitTitle" value="Add New Tracker" />
		<c:set var="addButton" value="Add" />
		<c:set var="action" value="/proj/tracker/addNewTracker" />

		<c:if test="${categoryMode}">
			<c:set var="hdr" value="Add New Category" />
			<c:set var="submitTitle" value="Add New Category" />
			<c:set var="action" value="/proj/cmdb/addNewCategory" />
		</c:if>
	</c:otherwise>
</c:choose>

<c:if test="${newTracker}">
	<ui:actionMenuBar>
		<span class="titlenormal">
			<ui:breadcrumbs showProjects="false"/> : <ui:pageTitle>${hdr}</ui:pageTitle>
		</span>
	</ui:actionMenuBar>
</c:if>

<c:set var="controlButtons">
		&nbsp;&nbsp;
		<html:submit styleClass="button" property="SUBMIT" title="${submitTitle}" value="${addButton}"
			onclick="return TemplateTrackerHandler.confirmSubmit();"
		/>

		<c:if test="${! newTracker}">
			&nbsp;&nbsp;<html:submit styleClass="button" property="DELETE" onclick="return confirmDeleteTracker(this);" value="Delete..." />
		</c:if>

		&nbsp;&nbsp;<html:cancel styleClass="button" />
</c:set>

<html:errors />

<html:form action="${action}">

<c:set target="${trackerConfigForm}" property="initialValues" value="${tracker_id}" />

<html:hidden property="tracker_id" />
<html:hidden property="CMDB"/>

<div class="actionBar">
	<c:out value="${controlButtons}" escapeXml="false" />
</div>

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

<c:choose>
	<c:when test="${licenseCode.enabled.customTrackers}">
		<TR>
			<TD CLASS="mandatory" NOWRAP>
				Template ${TrackerTypeName}:&nbsp;
			</TD>
			<TD CLASS="expandText">
				<c:set var="availableTrackersForTemplate" value="${trackerConfigForm.availableTrackersForTemplate}" />
				<c:set var="templateSelected" value="${(! empty trackerConfigForm.templateTrackerId) && (trackerConfigForm.templateTrackerId > 0)}" />
				<html:select property="templateTrackerId" styleId="templateTrackerId">
					<html:option value="-1" >None</html:option>
					<c:forEach var="tracker" items="${availableTrackersForTemplate}">
						<html:option value="${tracker.id}" >${tracker.project.name} -- ${tracker.name}</html:option>
					</c:forEach>
				</html:select>

				<c:if test="${newTracker}">
					&nbsp;&nbsp;
					<html:checkbox property="copyConfig" /> Do not inherit template configuration: Make a copy
				</c:if>
			</TD>
		</TR>
	</c:when>
	<c:otherwise>
		<html:hidden property="templateTrackerId"/>
	</c:otherwise>
</c:choose>

<TR>
<TD CLASS="mandatory" NOWRAP>
	Name:&nbsp;
</TD>
<TD CLASS="expandText"><html:text size="32" property="tracker_name" styleClass="expandText" tabindex="1" /></TD>
</TR>

<TR>
<TD CLASS="mandatory" NOWRAP>
	&nbsp;Key (short name):&nbsp;
</TD>
<TD CLASS="expandText"><html:text size="6" maxlength="6" property="trackerKeyName" tabindex="2" onkeydown="if(tabBtnPressed(event)) {focusWiki('editor', 'wiki', event)}" /></TD>
</TR>

<TR>
<TD CLASS="mandatory" NOWRAP VALIGN="top">
	&nbsp;Description:&nbsp;</TD>
<TD CLASS="expandTextArea">
	<wikitab:container id="wiki" formControl="editor" showPreview="false">
		<html:textarea rows="12" cols="80" property="description" styleClass="expandWikiTextArea" styleId="editor"/>
	</wikitab:container>
</TD>
</TR>

<TR>
	<TD NOWRAP CLASS="mandatory">&nbsp;Description Format:
		<ui:helpLink />
	</TD>

	<TD NOWRAP>
		<html:select onchange="checkInputFormat(this, 'wiki')" property="descriptionFormat" styleClass="fixMiddleSelectWidth">
			<html:option value="W" key="text.format.wiki" />
			<html:option value="" key="text.format.flat" />
			<html:option value="H" key="text.format.html" />
		</html:select>
	</TD>
</TR>

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

	<TD>
		<html:select styleId="availableTypes" property="descId" styleClass="fixMiddleSelectWidth">
			<html:optionsCollection property="availableTypes" label="name" value="id" />
		</html:select>
	</TD>
</TR>

<TR>
	<TD CLASS="mandatory" NOWRAP>&nbsp;Workflow:&nbsp;</TD>
	<TD>
		<c:choose>
			<c:when test="${workflowDisabled}">Workflow is not available with this License...</c:when>
			<c:otherwise>
				<html:checkbox styleId="usingWorkflow" property="usingWorkflow" /> Active
			</c:otherwise>
		</c:choose>
	</TD>
</TR>

<c:if test="${newTracker and licenseCode.enabled.customTrackers}">
	<TR>
		<TD COLSPAN="2"><STRONG>*</STRONG> Permissions, layout, default values,
			approval and notifications settings will be copied from the template ${TrackerTypeName}.
			Account dependent settings such as notifications and approval will be set
			only for accounts that are also members in the template ${TrackerTypeName}'s
			and of this project. ${TrackerTypeName} items will not be copied from the
			template ${TrackerTypeName}.
		</TD>
	</TR>
</c:if>

</TABLE>

<script language ="JavaScript" type="text/javascript">

	// static class to handle template-tracker change
	var TemplateTrackerHandler =  {

		originalValue_templateTrackerId : '${trackerConfigForm.templateTrackerId}',
		newTracker : ${newTracker},

		templateTrackerElement: document.getElementById("templateTrackerId"),

		// check if the value for a tracker-template is for "None"
		isNoneTemplateValue: function(value) {
			return value == '-1';
		},

		// script called when the tracker data would be submitted
		// @return if the submit can be executed
		confirmSubmit: function() {
			var select = this.templateTrackerElement;
			var value = select.value;
			var selectedTemplateTrackerName = select.options[select.selectedIndex].text;

			// check if changing template tracker from "None"->"<some-selected>" to show a warning!
			var templateSelected = ! this.isNoneTemplateValue(value);
			var originalwasNone = this.isNoneTemplateValue(this.originalValue_templateTrackerId);
			if ((!this.newTracker) && originalwasNone && templateSelected) {
				var msg = i18n.message("tracker.admin.warning.changing.template.tracker", selectedTemplateTrackerName);
				return confirm(msg);
			}
			return true;
		}

	}
</script>

</html:form>
