<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>全网监控智能分析平台</title>
<style>
.table-null .table{
	margin-bottom: 0px;
}
.table-null .table > tbody > tr > td, .table-null .table > thead > tr > th{
	text-align: center;
 	width: 25%;
}
.table-null td:first-child{	
 	text-align: right;
 	width: 36%;
}
.table-null tr td:last-child .form-control,.table-null tr td:last-child table{
	width: 400px;
}

</style>
<script type="text/javascript" src="${ctx}/static/js/validation.js"></script>
<script language="javascript">
var sandboxOptions = new Array();
var recoverOptions = new Array();
var dataModelOptions = new Array();

var minuteOption = new Array();
var hourOption = new Array();
var dayOption = new Array();
var monthOption = new Array();

	$(document).ready(function() {
		changeInputStatus('parallelFlg', 'parallelNums');
		changeInputStatus('sendmailFlg', 'mailAddress');
		 <c:forEach items="${sanboxList}" var="taskDetail">
			var option = new Option('${taskDetail.name}','${taskDetail.taskInfoId}');
			sandboxOptions.push(option);
		</c:forEach>
		
		<c:forEach items="${recoverList}" var="taskDetail">
			var option = new Option('${taskDetail.name}','${taskDetail.taskInfoId}');
			recoverOptions.push(option);
		</c:forEach> 
		
		<c:forEach items="${dataModelList}" var="dataModel">
			<c:if test="${dataModel.modelStatus != 0}">
				var option = new Option('${dataModel.dataModelName}','${dataModel.dataModelId}');
				dataModelOptions.push(option);
			</c:if>
		</c:forEach>
		$('#modelId').append(dataModelOptions);
		
		changeTaskType();
		$('#modelId').val('${runTask.dataModelView.dataModelId}');
		$('#detailSelect').val('${runTask.taskDetail.taskInfoId}');
		
		for(var i=1;i<=60;i++) {
			var option = new Option(i,i);
			minuteOption.push(option);
		}
		
		for(var i=1;i<=12;i++) {
			var option = new Option(i,i);
			hourOption.push(option);
		}
		
		for(var i=1;i<=31;i++) {
			var option = new Option(i,i);
			dayOption.push(option);
		}
		
		for(var i=1;i<=12;i++) {
			var option = new Option(i,i);
			monthOption.push(option);
		}
		changeFrequencyType();
		if($('#frequencyValueHidden').val()) {
			$('#frequencyValue').val($('#frequencyValueHidden').val());
		}
	});

	function changeInputStatus(eleId, objId) {
		$('#' + objId).attr('disabled', !$('#' + eleId).attr('checked'));
	}

	function submitForm() {
		var url = '${ctx}/BaseManage/TaskManage/checkNameAndCode';
		var data = 'name=' + $('#name').val() + "&code=" + $('#code').val() + "&id=" + $('#taskId').val() + "&defaultTaskType=" + $('#defaultTaskType').val() ;
		/* if(!checkFrequency()) {
			alert("运行频率允许的值为整数、小数、分数和格式为ADD_MONTHS(x)的字符串,其中x可以为整数、小数、分数");
			$('#frequency').focus();
			return;
		} */
		checkAndSubmit(url, encodeURI(encodeURI(data)));
	}
	
	function checkFrequency() {
		if($('#frequency').val()) {
			var frequency = $('#frequency').val().toLowerCase();
			if(frequency.indexOf("add_months(") == 0 && frequency.indexOf(")") >0) {
				frequency = frequency.substring('add_months('.length, frequency.indexOf(")"));
			}
			return checkNumber(frequency);
		}
		return true;
	}
	
	function checkNumber(value) {
		if(value.indexOf("/") > 0) {
			var numerator = value.substring(0, value.indexOf("/"));
			var denominator = value.substring(value.indexOf("/") + 1, value.length);
			if(denominator + 0 == 0 ) {
				return false;
			}
			return checkNumberAndFloat(numerator) && checkNumberAndFloat(denominator);
		} else {
			return checkNumberAndFloat(value);
		}
		return true;
	}
	
	function checkNumberAndFloat(value) {
		var reg1 = new RegExp("([0-9]+\.?[0-9])[0-9]*");
		var reg2 = new RegExp("^(0|[1-9][0-9]*)$");
		if(!reg1.test(value) && !reg2.test(value)) {
			return false;
		}
		return true;
	}
	
	function changeTaskType() {
		if($('#taskType').val() == '1') { //模型任务
			showModel();
		} else if($('#taskType').val() == '2') {//数据恢复任务
			showDetail();
			showRecover();
			$('#taskContextArea').attr('disabled',true);
			$('#taskContext').val('ds_datarecovery.pl');
			$('#taskContextArea').val('ds_datarecovery.pl');
			$('#taskContext').attr('name', 'taskContext');
			$('#taskContextArea').attr('name', '');
			$('#frequencyRow').css("display", "none");
			$('#taskMaxTimesRow').css("display", "none");
			$('#detailRow').css("display", "");
		} else if($('#taskType').val() == '3'){ //沙盒任务
			showDetail();
			showSanbox();
			$('#taskContextArea').attr('disabled',true);
			$('#taskContext').val('ds_datarecovery_shahe.pl');
			$('#taskContextArea').val('ds_datarecovery_shahe.pl');
			$('#taskContext').attr('name', 'taskContext');
			$('#taskContextArea').attr('name', '');
		} else {
			showDetail();
			showSanbox();
			if($('#taskContextArea').attr('disabled')) {
				$('#taskContextArea').attr('disabled',false);
				$('#taskContext').val('');
				$('#taskContextArea').val('');
			}
			
			$('#taskContext').attr('name', '');
			$('#taskContextArea').attr('name', 'taskContext');
			
			$('#frequencyRow').css("display", "");
			$('#taskMaxTimesRow').css("display", "");
			$('#detailRow').css("display", "none");
			
		}
	}
	
	function showModel() {
		$('#detailLabel').addClass("hidden");
		$('#detailDiv').addClass("hidden");
		
		$('#modelLabel').removeClass("hidden");
		$('#modelDiv').removeClass("hidden");
	}
	
	function showDetail() {
		$('#detailLabel').removeClass("hidden");
		$('#detailDiv').removeClass("hidden");
		
		$('#modelLabel').addClass("hidden");
		$('#modelDiv').addClass("hidden");
	}
	
	function showSanbox() {
		$('#detailSelect').empty();
		$('#detailSelect').append(sandboxOptions);
	}
	
	function showRecover() {
		$('#detailSelect').empty();
		$('#detailSelect').append(recoverOptions);
	}

	function validate() {
		if(!checkNameAndCode()) {
			return false;
		}
		if(!$('#taskNextrunTime').val()) {
			alert("请填写下次运行时间");
			return false;
		}
		if(!isNumber($('#frequency'))) {
			return false;
		}
		if(!isNumber($('#taskMaxTimes'))) {
			return false;
		}
		return true;
	}
	
	function changeFrequencyType()  {
		var frequencyType = $("#frequencyType option:selected").val();
		$('#frequencyValue').empty();
		
		if(frequencyType == 1) {
			$('#frequencyValue').append(minuteOption);
			$('#frequencyValue').val('15')
		} else if(frequencyType == 2) {
			$('#frequencyValue').append(hourOption);
		} else if(frequencyType == 3) {
			$('#frequencyValue').append(dayOption);
		} else if(frequencyType == 4) {
			$('#frequencyValue').append(monthOption);
		}
	}
</script>
</head>
<body>
	<div id="main-tab-container">
		<div id="content">
			<div class="section">
				<div class="tab-content">
					<div class="row me-row">
						<!-- this is for emulating position fixed of the nav -->
						<!-- /scroller-inner -->
						<!-- Top Navigation -->
						<div class="content clearfix">
							<div class="row">
								<div class="col-xs-12">
									<form id="detailForm" class="form-horizontal" role="form"
										action="${ctx}/BaseManage/TaskManage/submitTaskFrame" method="post">
										<input type="hidden" id="taskId" name="taskId" value="${runTask.taskId}">
										<input type="hidden" id="defaultTaskType" name="defaultTaskType" value="${runTask.defaultTaskType}">
										<c:if test="${empty runTask.taskId}">
											<input type="hidden" name="taskStatus" value="1">
											<input type="hidden" name="taskRunStatus" value="2">
										</c:if>
										<c:if test="${not empty runTask.taskId}">
											<input type="hidden" name="taskStatus" value="${runTask.taskStatus}">
											<input type="hidden" name="taskRunStatus" value="${runTask.taskStatus}">
										</c:if>
										<table class="table-null">
											<tr>
												<td>任务名称(<font color="red">必填</font>):</td>
												<td><input class="form-control input-sm" id="name" name="name" value="${runTask.name}"></td>
											</tr>
											
											<tr>
												<td>任务代码(<font color="red">必填</font>):</td>
												<td><input type="input" class="form-control input-sm" id="code" name="code" value="${runTask.code}"></td>
											</tr>
											
											<tr>
												<td>任务组:</td>
												<td>
													<select class="form-control input-sm" id="taskGroup" name="taskGroup.taskgroupId">
														<c:forEach items="${taskGroupList}" var="taskGroup">
															<option value="${taskGroup.taskgroupId}" <c:if test="${taskGroup.taskgroupId == runTask.taskGroup.taskgroupId}">selected</c:if> >
																${taskGroup.name}
															</option>
														</c:forEach>
													</select>
												</td>
											</tr>
											
											<tr>
												<td>任务优先级:</td>
												<td>
													<select class="form-control input-sm" id="taskPriority" name="taskPriority">
														<option value="1" <c:if test="${runTask.taskPriority == '1'}">selected</c:if> >1</option>
														<option value="2" <c:if test="${runTask.taskPriority == '2'}">selected</c:if> >2</option>
														<option value="3" <c:if test="${runTask.taskPriority == '3'}">selected</c:if> >3</option>
														<option value="4" <c:if test="${runTask.taskPriority == '4'}">selected</c:if> >4</option>
														<option value="5" <c:if test="${runTask.taskPriority == '5'}">selected</c:if> >5</option>
														<option value="6" <c:if test="${runTask.taskPriority == '6'}">selected</c:if> >6</option>
														<option value="7" <c:if test="${runTask.taskPriority == '7'}">selected</c:if> >7</option>
														<option value="8" <c:if test="${runTask.taskPriority == '8'}">selected</c:if> >8</option>
														<option value="9" <c:if test="${runTask.taskPriority == '9'}">selected</c:if> >9</option>
														<option value="10" <c:if test="${runTask.taskPriority == '10'}">selected</c:if> >10</option>
													</select>
												</td>
											</tr>
											
											<tr>
												<td>任务类型:</td>
												<td>
													<select class="form-control input-sm" id="taskType" name="taskType.tasktypeId" onchange="changeTaskType();">
														<c:if test="${runTask.defaultTaskType == 1 }">
															<c:forEach items="${taskTypeList}" var="taskType">
																<c:if test="${taskType.tasktypeId == '1' }">
																<option value="${taskType.tasktypeId}" <c:if test="${taskType.tasktypeId == runTask.taskType.tasktypeId}">selected</c:if> >
																	${taskType.name}
																</option>
																</c:if>
															</c:forEach>
														</c:if>
														
														<c:if test="${runTask.defaultTaskType == 3 }">
															<c:forEach items="${taskTypeList}" var="taskType">
																<c:if test="${taskType.tasktypeId == '3' }">
																<option value="${taskType.tasktypeId}" <c:if test="${taskType.tasktypeId == runTask.taskType.tasktypeId}">selected</c:if> >
																	${taskType.name}
																</option>
																</c:if>
															</c:forEach>
														</c:if>
														
														<c:if test="${runTask.defaultTaskType != 1 && runTask.defaultTaskType != 3 }">
															<c:forEach items="${taskTypeList}" var="taskType">
																<c:if test="${taskType.tasktypeId != '1' && taskType.tasktypeId != '3'}">
																<option value="${taskType.tasktypeId}" <c:if test="${taskType.tasktypeId == runTask.taskType.tasktypeId}">selected</c:if> >
																	${taskType.name}
																</option>
																</c:if>
															</c:forEach>
														</c:if>
													</select>
												</td>
											</tr>
											
											<tr>
												<td id="modelLabel">关联模型:</td>
												<td id="modelDiv">
													<select class="form-control input-sm" id="modelId" name="dataModelView.dataModelId">
													</select>
												</td>
											</tr>
											
											<tr id="detailRow">
												<td id="detailLabel">数据维护任务信息:</td>
												<td id="detailDiv">
													<select class="form-control input-sm" id="detailSelect" name="taskDetail.taskInfoId">
													</select>
												</td>
											</tr>
											
											<tr>
												<td>下次运行时间(<font color="red">必填</font>):</td>
												<td>
													<input type="input" class="form-control  input-sm  Wdate" id="taskNextrunTime" name="taskNextrunTimeStr" value="${runTask.taskNextrunTime}"
													onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',readOnly:false,minDate:'%y-%M-%d'})">
												</td>
											</tr>
											<c:if test="${runTask.defaultTaskType != 3 }">
											<tr id="frequencyRow">
												<td valign="top">运行频率:</td>
												<td>
													<%-- <input type="input" class="form-control input-sm " id="frequency" name="frequency" value="${runTask.frequency}" maxlength="100"> --%>
													<select class="form-control input-sm" id="frequencyType" name="frequencyType" onchange="changeFrequencyType()">
														<option value="1" <c:if test="${runTask.frequencyType == '1' }">selected</c:if> >分钟</option>
														<option value="2" <c:if test="${runTask.frequencyType == '2' }">selected</c:if> >小时</option>
														<option value="3" <c:if test="${runTask.frequencyType == '3' }">selected</c:if> >日</option>
														<option value="4" <c:if test="${runTask.frequencyType == '4' }">selected</c:if> >月</option>
													</select>
													<select class="form-control input-sm" id="frequencyValue" name="frequencyValue">
													</select>
													<input type="hidden" id="frequencyValueHidden" value="${runTask.frequencyValue }">
												</td>
											</tr>
											</c:if>
											<tr>
												<td>任务内容:</td>
												<td>
													<c:if test="${runTask.defaultTaskType == 1 }">
														<textarea class="form-control input-sm" rows="6" maxlength="666" disabled>r_model_task_agent.pl</textarea>
														<input type="hidden" name="taskContext" value="r_model_task_agent.pl">
													</c:if>
													
													<c:if test="${runTask.defaultTaskType != 1 }">
														<textarea class="form-control input-sm" rows="6" id="taskContextArea" maxlength="666">${runTask.taskContext}</textarea>
														<input type="hidden" name="taskContext" id="taskContext" value="{runTask.taskContext}">
													</c:if>
												</td>
											</tr>
											<c:if test="${runTask.defaultTaskType != 3 }">
												<tr id="taskMaxTimesRow">
													<td>最大运行次数:</td>
													<td>
														<input type="input" class="form-control input-sm" id="taskMaxTimes" name="taskMaxTimes" value="${runTask.taskMaxTimes}" maxlength="10">
													</td>
												</tr>
											</c:if>
											<tr>
												<td></td>
												<td>
													<button type="button" id="modelSubmit" class="btn btn-primary" onclick="saveForm('taskId');">确定</button>
													<!-- <button type="reset" class="btn btn-default" id="modelReset">清空</button> -->
													<button type="reset" class="btn btn-warning" id="modelBack" onclick="window.location.href='${ctx}/BaseManage/TaskManage/taskListFrame?defaultTaskType=${runTask.defaultTaskType}'">返回</button>
												</td>
											</tr>
										</table>
									</form>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</body>
</html>