Rev 153 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'====================================================='| |'| wAddDaemonInstruction |'| |'=====================================================%><%Option explicitResponse.Expires = 0%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/formating.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="common/_form_window_common.asp"--><!--#include file="common/common_dbedit.asp"--><!--#include file="common/daemon_instructions.asp"--><%'------------ ACCESS CONTROL ------------------%><!--#include file="_access_control_general.asp"--><!--#include file="_access_control_login.asp"--><%'------------ VARIABLE DEFINITION -------------Dim sMessageDim parProj_idDim parPv_idDim parOp_codeDim parRepeatDim parInst_idDim parSchDateTimeDim parRfileDim bHideRepeatDim bHidePackagesDim bPreventSubmitDim parSortOrder'------------ CONSTANTS DECLARATION -----------'------------ VARIABLE INIT -------------------sMessage = NULLbPreventSubmit = False' collect all parameters from query stringparOp_code = Request("op_code")parProj_id = Request("proj_id")parPv_id = Request("pv_id")parRepeat = Request("repeat")parInst_id = Request("inst_id")parSchDateTime = Request("sdt")parRfile = Request("rfile")parSortOrder = Request("sort")If IsNull(parSortOrder) OR parSortOrder = "" ThenparSortOrder = "0"End IfSet objFormCollector = CreateObject("Scripting.Dictionary")'------------ CONDITIONS ----------------------'----------------------------------------------%><%'------------------------------------------------------------------------------------------------------------------------------------------' For the specified project ID, get a list of all that project's releases that are not closed/archived.' Return True if at least one release was found, else False'------------------------------------------------------------------------------------------------------------------------------------------Function ReleasesAvailable(NNproj_id)Dim rsTemp, Query_StringReleasesAvailable = TrueQuery_String = "SELECT rtag_id, rtag_name "&_" FROM release_tags rt"&_" WHERE rt.proj_id = "& NNproj_id &_" AND ((rt.official = 'N') OR (rt.official = 'C') OR (rt.official = 'R'))"Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If rsTemp.RecordCount = 0 ThenReleasesAvailable = FalseEnd IfrsTemp.CloseSet rsTemp = nothingEnd Function'------------------------------------------------------------------------------------------------------------------------------------------' For the specified Release, get a list of all that release's daemon configurations.' Return True if at least one daemon configuration was found, else False'------------------------------------------------------------------------------------------------------------------------------------------Function DaemonsAvailable(NNrtag_id)Dim rsTemp, Query_StringDaemonsAvailable = TrueQuery_String = "SELECT * "&_" FROM release_config rc"&_" WHERE rc.rtag_id = "& NNrtag_idSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If rsTemp.RecordCount = 0 ThenDaemonsAvailable = FalseEnd IfrsTemp.CloseSet rsTemp = nothingEnd Function'------------------------------------------------------------------------------------------------------------------------------------------' Formulate the HTML for a combo box listing all the daemon instruction operations, and select the one that matches' the op-code passed in as a parameter. If the parameter value could not be found, correct it to the first valid op-code' in the list.'------------------------------------------------------------------------------------------------------------------------------------------Function Get_OpCodes ( NNop_code )Dim op_code_str_arrayDim op_code_strDim op_code_valDim selectedFoundDim tempLINKDim sselectedFound = False' Get the op-codes in terms of human readable string names - these will be used in the drop down select listCall GetDaemonInstructionOperationNameArray(op_code_str_array)s = "<td width='20%' align='left'>Operation</td>"s = s + "<td align='left'><select name='op_code_list' id='op_code_list' class='form_item' onchange=""MM_jumpMenu('parent',this,0)"">"For each op_code_str in op_code_str_array' get equivalent op-code value for this op-code stringop_code_val = DaemonInstructionOperationValue(op_code_str)tempLINK = scriptName & "?inst_id="& parInst_id &_"&op_code="& op_code_val &_"&rtag_id=" & parRtag_id &_"&pv_id=" & parPv_id &_"&sort=" & parSortOrder &_"&sdt="& parSchDateTime &_"&repeat="& parRepeat &_"&rfile="& parRfileIf ((NNop_code = op_code_val) OR (NNop_code = "0")) AND (selectedFound = False) Thens = s + "<option value='"& tempLINK &"' selected>"& op_code_str &"</option>"selectedFound = TrueNNop_code = op_code_valElses = s + "<option value='"& tempLINK &"'>"& op_code_str &"</option>"End IfNexts = s + "</select></td>"Get_OpCodes = sEnd Function'------------------------------------------------------------------------------------------------------------------------------------------' Formulate the HTML for a combo box listing all the Projects, and select the one that matches' the proj-id passed in as a parameter. If the parameter value could not be found, correct it to the first valid proj-id' in the list.'------------------------------------------------------------------------------------------------------------------------------------------Function Get_Projects ( NNproj_id )Dim rsTemp, Query_String, projName, tempLINK, selectedFound, sselectedFound = FalseQuery_String = "SELECT * FROM projects ORDER BY UPPER( proj_name )"Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))s = "<td>Project</td>"s = s + "<td><select id='proj_id_list' name='proj_id_list' class='form_item' onChange=""MM_jumpMenu('parent',this,0)"">"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))projName = UCase(rsTemp.Fields("proj_name"))tempLINK = scriptName & "?inst_id="& parInst_id &_"&op_code="& parOp_code &_"&proj_id=" & rsTemp.Fields("proj_id") &_"&sdt="& parSchDateTime &_"&repeat="& parRepeat &_"&sort=" & parSortOrder &_"&rfile="& parRfileIf ((NNproj_id = Cstr(rsTemp.Fields("proj_id"))) OR (NNproj_id = "0")) AND (selectedFound = False) Thens = s + "<option value='"& tempLINK &"' selected>"& projName &"</option>"selectedFound = TrueNNproj_id = CStr(rsTemp.Fields("proj_id"))Elses = s + "<option value='"& tempLINK &"'>"& projName &"</option>"End IfrsTemp.MoveNextWEnds = s + "</select>"' Correct for a situation where selectedFound is still FALSE.If NOT selectedFound ThenrsTemp.MoveFirstIf ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) ThenNNproj_id = CStr(rsTemp.Fields("proj_id"))ElseNNproj_id = "0"End IfEnd IfrsTemp.CloseSet rsTemp = nothings = s + "</td>"Get_Projects = sEnd Function'------------------------------------------------------------------------------------------------------------------------------------------' Formulate the HTML for a combo box listing all the Release for a specified project, and select the one that matches' the release-tag passed in as a parameter. If the parameter value could not be found, correct it to the first valid release-tag' in the list.'------------------------------------------------------------------------------------------------------------------------------------------Function Get_Releases ( NNproj_id, NNrtag_id )Dim rsTemp, Query_String, releaseName, tempLINK, selectedFound, s, numReleasesselectedFound = FalsenumReleases = 0Query_String = "SELECT rtag_id, rtag_name "&_" FROM release_tags rt"&_" WHERE rt.proj_id = "& NNproj_id &_" AND ((rt.official = 'N') OR (rt.official = 'C') OR (rt.official = 'R'))"&_" ORDER BY UPPER(rtag_name)"Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))s = "<td>Release</td>"s = s + "<td><select id='rtag_id_list' name='rtag_id_list' class='form_item' onChange=""MM_jumpMenu('parent',this,0)"">"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))releaseName = rsTemp.Fields("rtag_name")tempLINK = scriptName & "?inst_id="& parInst_id &_"&op_code="& parOp_code &_"&proj_id="& NNproj_id &_"&rtag_id="& rsTemp.Fields("rtag_id") &_"&sdt="& parSchDateTime &_"&repeat="& parRepeat &_"&sort=" & parSortOrder &_"&rfile="& parRfileIf ((NNrtag_id = CStr(rsTemp.Fields("rtag_id"))) OR (NNrtag_id = "0")) AND (selectedFound = False) Thens = s + "<option value='"& tempLINK &"' selected>"& releaseName &"</option>"selectedFound = TrueNNrtag_id = Cstr(rsTemp.Fields("rtag_id"))Elses = s + "<option value='"& tempLINK &"'>"& releaseName &"</option>"End IfnumReleases = numReleases + 1rsTemp.MoveNextWEnds = s + "</select>"' Correct for a situation where selectedFound is still FALSE.If NOT selectedFound ThenrsTemp.MoveFirstIf ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) ThenNNrtag_id = CStr(rsTemp.Fields("rtag_id"))ElseNNrtag_id = "0"End IfEnd If' If no releases were found then replace drop down list with some warning text and disable form submissionIf numReleases = 0 ThenbPreventSubmit = Trues = "<td>Release</td><td><a style=color:Red>WARNING: No active releases found. The operation cannot be performed.</a></td>"Else' If the selected release does not have a daemon configuration, append some warning text to the right of the drop down list.If DaemonsAvailable(NNrtag_id) = False Thens = s + "<a style=color:Red>WARNING: Release has no build daemon(s)</a>"End IfEnd IfrsTemp.CloseSet rsTemp = nothings = s + "</td>"Get_Releases = sEnd Function'------------------------------------------------------------------------------------------------------------------------------------------' Formulate the HTML for a combo box listing all the Package Versions in a specified release, and select the one that matches' the pv_id passed in as a parameter. If the parameter value could not be found, correct it to the first valid pv_id' in the list.' This function must deal with op-codes that want to read package versions from the work_in_progress table, and op-codes' that need to read package versions from the release_content table.' The function should only be called if a package versions drop down list is required for the form.'------------------------------------------------------------------------------------------------------------------------------------------Function Get_Packages ( NNrtag_id, NNpv_id, NNop_code )Dim rsTemp, Query_String, pkgName, tempLINK, selectedFound, s, numPackagesselectedFound = FalsenumPackages = 0If (NNop_code = OP_CODE_1_TEST_BUILD_PACKAGE) Then' Get list of packages from from work_in_progress tableQuery_String = "SELECT pk.pkg_id, pk.pkg_name, pv.pkg_version, wip.pv_id "&_" FROM work_in_progress wip, release_tags rt, packages pk, package_versions pv "&_" WHERE wip.rtag_id = "& Cstr(NNrtag_id) &_" AND wip.rtag_id = rt.rtag_id"&_" AND ((rt.official = 'N') OR (rt.official = 'C') OR (rt.official = 'R'))"&_" AND wip.pv_id = pv.pv_id"&_" AND pk.pkg_id = pv.pkg_id"&_" ORDER BY UPPER(pkg_name)"Else' Get list of packages from from release_content tableQuery_String = "SELECT pk.pkg_id, pk.pkg_name, pv.pkg_version, rc.pv_id "&_" FROM release_content rc, release_tags rt, packages pk, package_versions pv "&_" WHERE rc.rtag_id = "& Cstr(NNrtag_id) &_" AND rc.rtag_id = rt.rtag_id"&_" AND ((rt.official = 'N') OR (rt.official = 'C') OR (rt.official = 'R'))"&_" AND rc.pv_id = pv.pv_id"&_" AND pk.pkg_id = pv.pkg_id"&_" ORDER BY UPPER(pkg_name)"End IfSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))' modify the control heading to indicate the source of the package version listIf (NNop_code = OP_CODE_1_TEST_BUILD_PACKAGE) Thens = "<td>WIP Package</td>"Elses = "<td>Released Package</td>"End Ifs = s + "<td><select id='pv_id_list' name='pv_id_list' class='form_item' onChange=""MM_jumpMenu('parent',this,0)"">"While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))pkgName = rsTemp.Fields("pkg_name") & " " & rsTemp.Fields("pkg_version")tempLINK = scriptName & "?inst_id="& parInst_id &_"&op_code="& NNop_code &_"&proj_id="& parProj_id &_"&rtag_id="& NNrtag_id &_"&pv_id="& rsTemp.Fields("pv_id") &_"&sdt="& parSchDateTime &_"&repeat="& parRepeat &_"&sort=" & parSortOrder &_"&rfile="& parRfileIf ((NNpv_id = Cstr(rsTemp.Fields("pv_id"))) OR (NNpv_id = "0")) AND (selectedFound = False) Thens = s + "<option value='"& tempLINK &"' selected>"& pkgName &"</option>"selectedFound = TrueNNpv_id = CStr(rsTemp.Fields("pv_id"))Elses = s + "<option value='"& tempLINK &"'>"& pkgName &"</option>"End IfnumPackages = numPackages + 1rsTemp.MoveNextWEnds = s + "</select></td>"' Correct for a situation where selectedFound is still FALSE.If NOT selectedFound ThenrsTemp.MoveFirstIf ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) ThenNNpv_id = Cstr(rsTemp.Fields("pv_id"))ElseNNpv_id = "0"End IfEnd If' replace drop down list with a warning if no package versions were found, and ensure that the user cannot submit the formIf numPackages = 0 ThenbPreventSubmit = TrueIf (NNop_code = OP_CODE_1_TEST_BUILD_PACKAGE) Thens = "<td>Package</td><td><a style=color:Red>WARNING: No WIP package versions found. The operation cannot be performed.</a></td>"Elses = "<td>Package</td><td><a style=color:Red>WARNING: No released package versions found. The operation cannot be performed.</a></td>"End IfEnd IfrsTemp.CloseSet rsTemp = nothingGet_Packages = sEnd Function'------------------------------------------------------------------------------------------------------------------------------------------' This function will be called if and only if the form is first opened in circumstances where the user is editing an existing record' and all of the form's parameters must be set to the values found in that record. The database record must be obtained using a query' and the relevant parameters assigned from the record fields'------------------------------------------------------------------------------------------------------------------------------------------Sub Get_All_Params_From_Inst_Id(NNInstId)Dim rsTemp, Query_StringQuery_String = "SELECT op_code, rtag_id, pv_id, repeat_secs, "&_" TO_CHAR(scheduled_datetime, 'DD-MM-YYYY HH24:MI:SS') AS schedDate "&_" FROM DAEMON_INSTRUCTIONS "&_" WHERE DAEMON_INSTRUCTIONS_ID = " & NNInstIdSet rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))If rstemp.RecordCount = 0 ThenCall RaiseMsg(enum_MSG_ERROR, "Attempt to Edit a non-existent record")End If' assign record fields to global parametersparOp_code = rsTemp("op_code")parRtag_id = rsTemp("rtag_id")parPv_id = rsTemp("pv_id")parRepeat = rsTemp("repeat_secs")parSchDateTime = rsTemp("schedDate")' derive project id since that is not stored in the tableIf NOT IsNull(parRtag_id) AND parRtag_id <> "" ThenparProj_id = Get_Proj_ID(parRtag_id)ElseparProj_id = "0"End IfrsTemp.CloseSet rsTemp = nothingEnd Sub'------------------------------------------------------------------------------------------------------------------------------------------%><%'------------ RUN BEFORE PAGE RENDER ----------' Are we in edit mode? If so, populate all parameters from the record being editedIf (NOT IsNull(parInst_id)) AND (parInst_id <> "") AND (Request("edit") = "true") ThenIf NOT DaemonInstructionInProgress(Request("inst_id")) ThenCall Get_All_Params_From_Inst_Id(parInst_id)ElseCloseWindow ' close the form we were opening' redirect to an error message in the parent formCall RaiseMsgInParent(enum_MSG_ERROR, "Cannot edit an instruction that is currently being processed by a Daemon")End IfEnd If' Make sure we dont have any null strings or empty strings for our parametersIf IsNull(parOp_code) OR parOp_code = "" ThenparOp_code = "0"End IfIf IsNull(parProj_id) OR parProj_id = "" ThenparProj_id = "0"End IfIf IsNull(parRtag_id) OR parRtag_id = "" ThenparRtag_id = "0"End IfIf IsNull(parPv_id) OR parPv_id = "" ThenparPv_id = "0"End IfIf IsNull(parRepeat) OR parRepeat = "" ThenparRepeat = "0"End IfIf IsNull(parRfile) OR parRfile = "" ThenparRfile = "admin_daemon_instructions.asp"End IfIf IsNull(parSchDateTime) OR parSchDateTime = "" ThenparSchDateTime = EuroDateTimeForCalendarControl(Now())End If' If this form is opened with an OP_CODE, RTAG_ID and PV_ID only, then we need to derive the PROJ_ID before' calling Get_Projects() to generate the project drop down list.If parProj_id = "0" AND NOT IsNull(parRtag_id) AND parRtag_id <> "" AND parRtag_id <> "0" ThenparProj_id = Get_Proj_ID(parRtag_id)End If' Hide the Package drop-down list if the Daemon Instruction does not require itIf DaemonInstructionNeedsPV_ID(parOp_code) ThenbHidePackages = FalseElsebHidePackages = TrueparPv_id = "0"End If' NOTE: from this moment on, any real use of parPv_id has to be guarded by examination of bHidePackages' Hide the Repeat buttons if the Daemon Instruction does not require themIf DaemonInstructionNeedsRepeat(parOp_code) ThenbHideRepeat = FalseElsebHideRepeat = TrueEnd If' Call some 'Get' procedures without HTML generation to determine the values of parProj_id, par_Rtag_id, and parPv_id' in case they are not currently present in the query string. This will then allow the use of the ReleasesAvailable() and' DaemonsAvailable() functions further below to hide the form submit button.' It will also support the submit action itself when it takes place during the editing of an existing record where' the user changes (for example) the project without making any changes to release or package and so those items' are nullified and must be reset to something other than their original values that came through the query string' when the edit form was just opened.Call Get_Projects(parProj_id) ' Ensures parProj_id has a good valueCall Get_Releases(parProj_id, parRtag_id) ' Ensures parRtag_id has a good valueIf NOT bHidePackages ThenCall Get_Packages (parRtag_id, parPv_id, parOp_code)End If' Check if form submit is happeningIf CBool(Request("action")) ThenDim RepeatSecondsDim ScheduledDateTimeDim ReleaseModeReleaseMode = GetReleaseMode(parRtag_id)' determine if insert/update is enabled by permissionsif NOT UserCanAddOrEditThisDaemonInst(parProj_id, ReleaseMode, parOp_code) Then' redirect to an error messageCall RaiseMsg(enum_MSG_ERROR, "You have been denied permission to add/update daemon instructions for the specified release.")End If' do daemon instruction validation, continuing only if it passesIf ValidateDaemonInstruction(parOp_code, parRtag_id, parPv_id) = True Then' Setup the repeat seconds count according to the radio button valueIf IsNull(Request("repeat_inst")) OR Request("repeat_inst") = "" OR Request("repeat_inst") = "No" ThenRepeatSeconds = 0ElseRepeatSeconds = 86400End If' If user has not entered a scheduled time, set the scheduled date/time to nowScheduledDateTime = Request("scheduled_time")If IsNull(ScheduledDateTime) OR ScheduledDateTime = "" ThenScheduledDateTime = ORA_SYSDATETIMEElseScheduledDateTime = "TO_DATE( '"& ScheduledDateTime &"','DD-MM-YYYY HH24:MI:SS' )"End If' nullify parPv_id for the SQL, if the instruction op-code does not require oneIf bHidePackages ThenparPv_id = "NULL"End If' if the page has been provided an inst_id, we must be editing an existing record so we do an updateIf (NOT IsNull(parInst_id)) AND (parInst_id <> "") Then' We are updating an existing recordobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL "BEGIN PK_BUILDAPI.update_daemon_inst( "& parInst_id & ", " &_parOp_code & ", " &_parRtag_id & ", " &_parPv_id & ", " &_ScheduledDateTime & ", " &_CStr(RepeatSeconds) & ", " &_ORA_SYSDATETIME & ", " &_objAccessControl.UserId & "); END;"objEH.CatchORA ( OraSession )If objEH.Finally ThenIf parRfile = "admin_daemon_instructions.asp" ThenCall OpenInParentWindow (parRfile & "?sort=" & parSortOrder)ElseCall OpenInParentWindow (parRfile & "?rtag_id=" & parRtag_id & "&pv_id=" & parPv_id)End IfCall CloseWindow()End IfElse ' We are adding a new recordobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.ExecuteSQL "BEGIN PK_BUILDAPI.insert_daemon_inst( "& parOp_code & ", " &_parRtag_id & ", " &_parPv_id & ", " &_ScheduledDateTime & ", " &_CStr(RepeatSeconds) & ", " &_ORA_SYSDATETIME & ", " &_objAccessControl.UserId & "); END;"objEH.CatchORA ( OraSession )If objEH.Finally ThenIf parRfile = "admin_daemon_instructions.asp" ThenCall OpenInParentWindow (parRfile & "?sort=" & parSortOrder)ElseCall OpenInParentWindow (parRfile & "?rtag_id=" & parRtag_id & "&pv_id=" & parPv_id)End IfCall CloseWindow()End IfEnd IfEnd IfEnd If'----------------------------------------------%><script language="JavaScript" type="text/javascript"><!--// This function is designed to be called when a repeat radio button is pressed. It reloads the page with an updated query string// to reflect the new setting of the radio button setfunction Refresh_Repeat(newRepeat){var s;s = '<%=scriptName%>';s += '?inst_id=' + document.getElementById('inst_id').value;s += '&op_code=' + document.getElementById('op_code').value;s += '&proj_id=' + document.getElementById('proj_id').value;s += '&rtag_id=' + document.getElementById('rtag_id').value;s += '&pv_id=' + document.getElementById('pv_id').value;s += '&sort=' + document.getElementById('sortOrder').value;s += '&sdt=' + document.getElementById('scheduled_time').value;s += '&repeat=' + newRepeat;s += '&rfile=' + document.getElementById('rfile').value;document.location = s;}//--></script><html><head><title>Release Manager</title><meta HTTP-EQUIV="Pragma" CONTENT="no-cache"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link href="images/release_manager_style.css" rel="stylesheet" type="text/css"><script language="JavaScript" src="scripts/common.js"></script><script language="JavaScript" src="images/ts_picker.js"></script></head><body background="images/bg_bage_0.gif" leftmargin="0" topmargin="0" ><table width="100%" border="0" cellspacing="0" cellpadding="10"><tr><td bgcolor="#FFFFFF" class="body_txt"><span class="body_h1"><img src="icons/i_linkarrow_black.gif" width="11" height="11" align="absmiddle"> Add/Update Daemon Instruction</span> <br>Add a new Daemon Instruction or edit an existing Daemon Instruction.</td></tr><%'-- FROM START --------------------------------------------------------------------------------------------------------------objFormComponent.FormName = "DaemonInstruction"objFormComponent.Action = ScriptName &_"?inst_id="& parInst_id &_"&op_code="& parOp_code &_"&proj_id="& parProj_id &_"&rtag_id="& parRtag_id &_"&pv_id="& parPv_id &_"&sort="& parSortOrder &_"&rfile="& parRfileobjFormComponent.OnSubmit = "ShowProgress();"Call objFormComponent.FormStart()%><tr><td background="images/bg_login.gif"><table width="50%" border="0" cellspacing="0" cellpadding="0"><tr><td><%=ProgressBar()%></td><td align="right"><%If ReleasesAvailable(parProj_id) AND DaemonsAvailable(parRtag_id) AND NOT bPreventSubmit Then%><input name="btn" type="submit" class="form_btn" value="Add/Update"><%Else%><input name="btn" type="submit" class="form_btn_disabled" value="Add/Update" disabled="disabled" ><%End If%><input name="btn" type="reset" class="form_btn" value="Cancel" onClick="self.close();"></td></tr></table></td></tr><tr><td><!-- NEW PRODUCT ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><%Call Messenger ( sMessage , 3, "100%" )%><!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ --><!--#include file="messages/_msg_inline.asp"--><table width="100%" border="0"><tr><td width="1%"><%=Get_OpCodes(parOp_code)%></td></tr><tr><td> </td></tr><tr><td><div id="SelectProject" style="visibility:visible"><%=Get_Projects(parProj_id)%></div></td></tr><tr><td><div id="SelectRelease" style="visibility:visible"><%=Get_Releases(parProj_id, parRtag_id)%></div></td></tr><%If NOT bHidePackages Then%><tr><td><div id="SelectPackageVersion" style="visibility:visible"><%=Get_Packages ( parRtag_id, parPv_id, parOp_code )%></div></td></tr><%End If%><tr><td> </td></tr><tr><td><td nowrap>Scheduled Time</td><td><input type="text" id="scheduled_time" name="scheduled_time" size="20" class="form_ivalue" value="<%=parSchDateTime%>"><a href="javascript:show_calendar('document.DaemonInstruction.scheduled_time', document.DaemonInstruction.scheduled_time.value);"><img src="images/cal.gif" width="16" height="16" border="0" alt="Click Here to select the (future) time at which to carry out the instruction"></a></td></td></tr><%If NOT bHideRepeat Then%><tr><td><td>Repeat</td><td><input type="radio" name="repeat_inst" id="repeat_inst_no" value="No" <%If parRepeat = "0" Then%>checked<%End If%> onchange='Refresh_Repeat(0)' >No<input type="radio" name="repeat_inst" id="repeat_inst_24hrs" value="24Hrs"<%If parRepeat = "86400" Then%>checked<%End If%> onchange='Refresh_Repeat(86400)' >24 Hrs</td></td></tr><%End If%><tr><td><input type="hidden" id="inst_id" name="inst_id" value="<%=parInst_id%>"><input type="hidden" id="op_code" name="op_code" value="<%=parOp_code%>"><input type="hidden" id="proj_id" name="proj_id" value="<%=parProj_id%>"><input type="hidden" id="rtag_id" name="rtag_id" value="<%=parRtag_id%>"><input type="hidden" id="pv_id" name="pv_id" value="<%=parPv_id%>"><input type="hidden" id="repeat_secs" name="repeat_secs" value="<%=parRepeat%>"><input type="hidden" id="rfile" name="rfile" value="<%=parRfile%>"><input type="hidden" id="sortOrder" name="sortOrder" value="<%=parSortOrder%>"></td></tr></table></td></tr><%=objPMod.ComposeHiddenTags()%><input type="hidden" name="action" value="true"><%Call objFormComponent.FormEnd()'-- FROM END ----------------------------------------------------------------------------------------------------------------%></table></body></html><%'------------ RUN AFTER PAGE RENDER -----------Set objFormCollector = Nothing'----------------------------------------------Call Destroy_All_Objects%>