| 7022 |
dpurdie |
1 |
<%@LANGUAGE="VBSCRIPT"%>
|
|
|
2 |
<%
|
|
|
3 |
Option explicit
|
|
|
4 |
Response.Expires = 0 ' always load the page, dont store
|
|
|
5 |
%>
|
|
|
6 |
<%
|
|
|
7 |
'=====================================================
|
| 7240 |
dpurdie |
8 |
' _wform_build_package.asp
|
| 7022 |
dpurdie |
9 |
'=====================================================
|
|
|
10 |
%>
|
|
|
11 |
<!--#include file="common/conf.asp"-->
|
|
|
12 |
<!--#include file="common/globals.asp"-->
|
|
|
13 |
<!--#include file="common/qstr.asp"-->
|
|
|
14 |
<!--#include file="common/common_subs.asp"-->
|
|
|
15 |
<!--#include file="common/common_dbedit.asp"-->
|
|
|
16 |
<!--#include file="common/_popup_window_common.asp"-->
|
|
|
17 |
<!--#include file="common/daemon_instructions.asp"-->
|
|
|
18 |
<%
|
|
|
19 |
'------------ ACCESS CONTROL ------------------
|
|
|
20 |
%>
|
|
|
21 |
<!--#include file="_access_control_login_optional.asp"-->
|
|
|
22 |
<!--#include file="_access_control_general.asp"-->
|
|
|
23 |
<!--#include file="_access_control_project.asp"-->
|
|
|
24 |
<%
|
|
|
25 |
'------------ Variable Definition -------------
|
|
|
26 |
Dim sMessage, sMessageType
|
| 7240 |
dpurdie |
27 |
Dim rsTemp, TotalBuildTime, BuildTime
|
|
|
28 |
Dim bLongBuild
|
| 7022 |
dpurdie |
29 |
'------------ Constants Declaration -----------
|
|
|
30 |
'------------ Variable Init -------------------
|
|
|
31 |
sMessage = NULL
|
|
|
32 |
sMessageType = 3
|
|
|
33 |
'----------------------------------------------
|
| 7240 |
dpurdie |
34 |
'--- Before Render
|
|
|
35 |
' Estimate the complete ripple time of this package
|
|
|
36 |
' Provide a warning if the complete ripple time is long
|
|
|
37 |
|
|
|
38 |
OraDatabase.Parameters.Add "RTAG_ID", Request("rtag_id"), ORAPARM_INPUT, ORATYPE_NUMBER
|
|
|
39 |
OraDatabase.Parameters.Add "PV_ID", Request("pv_id"), ORAPARM_INPUT, ORATYPE_NUMBER
|
|
|
40 |
Set rsTemp = OraDatabase.DbCreateDynaset( GetQuery("CalcRippleTime.sql"), cint(0))
|
|
|
41 |
OraDatabase.Parameters.Remove "PV_ID"
|
|
|
42 |
OraDatabase.Parameters.Remove "RTAG_ID"
|
|
|
43 |
If rsTemp.RecordCount > 0 Then
|
| 7242 |
dpurdie |
44 |
TotalBuildTime = NiceCLng (rsTemp("Total_BuildTime"), 0)
|
|
|
45 |
BuildTime = NiceCLng (rsTemp("BuildTime"), 0)
|
| 7240 |
dpurdie |
46 |
If TotalBuildTime > 2 * 60 * 60 Then
|
|
|
47 |
bLongBuild = TRUE
|
|
|
48 |
End If
|
|
|
49 |
End If
|
|
|
50 |
rsTemp.Close()
|
|
|
51 |
Set rsTemp = nothing
|
|
|
52 |
|
| 7022 |
dpurdie |
53 |
'------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
54 |
' Add a line of text to the System Message
|
|
|
55 |
'
|
|
|
56 |
Sub sMessageAdd(eLevel, text)
|
|
|
57 |
If NOT isNull(sMessage) Then
|
|
|
58 |
sMessage = sMessage & "<br>"
|
|
|
59 |
End If
|
|
|
60 |
sMessage = sMessage & text
|
|
|
61 |
|
|
|
62 |
If eLevel < sMessageType Then
|
|
|
63 |
sMessageType = eLevel
|
|
|
64 |
End If
|
|
|
65 |
End Sub
|
|
|
66 |
'------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
67 |
'Call sMessageAdd(1,"Just a Test")
|
|
|
68 |
%>
|
|
|
69 |
<script src="jquery/jquery-ui-timepicker-addon.js?ver=<%=VixVerNum%>"></script>
|
|
|
70 |
<link rel="stylesheet" href="jquery/jquery-ui-timepicker-addon.css?ver=<%=VixVerNum%>" type="text/css">
|
|
|
71 |
<script type="text/javascript" charset="utf-8">
|
|
|
72 |
// This function will be called by vixDialog() when the dialoag has been loaded
|
|
|
73 |
// Intended use: Init the javascript items
|
|
|
74 |
function buildPkgInit () {
|
|
|
75 |
var myDateTimePicker = null;
|
| 7240 |
dpurdie |
76 |
//console.log('buildPkgInit');
|
|
|
77 |
//debugger;
|
|
|
78 |
showHideDatePicker();
|
| 7022 |
dpurdie |
79 |
|
|
|
80 |
$('#cancel').click(function(){
|
|
|
81 |
closeIFrame();
|
|
|
82 |
});
|
|
|
83 |
|
|
|
84 |
$('#release').click(function(){
|
|
|
85 |
var data = getScheduledTime();
|
| 7240 |
dpurdie |
86 |
//console.log("Scheduled Date:", data);
|
|
|
87 |
//debugger;
|
| 7022 |
dpurdie |
88 |
displayError();
|
|
|
89 |
if ( data && data.delta <=0 ) {
|
|
|
90 |
displayError('Scheduled time is now in the past');
|
|
|
91 |
return false;
|
|
|
92 |
}
|
|
|
93 |
|
|
|
94 |
$("#progressBar").css('visibility', 'visible');
|
|
|
95 |
window.location.href = '_make_approved.asp?' + jQuery.param({
|
|
|
96 |
pv_id : '<%=Request("pv_id")%>',
|
|
|
97 |
rtag_id : '<%=Request("rtag_id")%>',
|
|
|
98 |
rfile : '<%=RequestDefault("rfile", "dependencies.asp")%>',
|
|
|
99 |
sched : data ? data.txt : null
|
|
|
100 |
}) ;
|
|
|
101 |
}).focus();
|
|
|
102 |
|
|
|
103 |
function displayError(txt, detail) {
|
|
|
104 |
if ( txt ) {
|
|
|
105 |
if ( detail ) {
|
|
|
106 |
txt += ": " + detail;
|
|
|
107 |
}
|
|
|
108 |
$('#errorPane').removeClass('display-none').html(txt);
|
|
|
109 |
} else {
|
|
|
110 |
$('#errorPane').addClass('display-none').html('');
|
|
|
111 |
}
|
|
|
112 |
}
|
|
|
113 |
|
| 7240 |
dpurdie |
114 |
$('#schedule').change(showHideDatePicker);
|
|
|
115 |
|
|
|
116 |
function showHideDatePicker()
|
|
|
117 |
{
|
|
|
118 |
var radio_button_val = $("input[name='sched']:checked").val();
|
|
|
119 |
if ( radio_button_val === 'sched' ) {
|
| 7022 |
dpurdie |
120 |
$('#showdate').removeClass('display-none');
|
|
|
121 |
myDateTimePicker = $('#datetime').datetimepicker(
|
|
|
122 |
{
|
|
|
123 |
timeFormat: "HH:mm z",
|
|
|
124 |
//dateFormat: "D dd-M-yy",
|
|
|
125 |
controlType: 'select',
|
|
|
126 |
closeText: 'Done',
|
|
|
127 |
oneLine: true,
|
|
|
128 |
timeInput: true,
|
|
|
129 |
showTimezone : true,
|
|
|
130 |
constrainInput: true,
|
|
|
131 |
showOn: 'both',
|
|
|
132 |
buttonImageOnly : true,
|
|
|
133 |
buttonImage: "images/cal.gif",
|
|
|
134 |
buttonText: "Select Date and Time",
|
|
|
135 |
minDate : 0,
|
|
|
136 |
maxDate : 3,
|
|
|
137 |
onClose : function(p1,p2){
|
| 7246 |
dpurdie |
138 |
//console.log("Close", p1 );
|
| 7022 |
dpurdie |
139 |
},
|
|
|
140 |
onSelect : function(p1,p2){
|
| 7246 |
dpurdie |
141 |
//console.log("Select", p1 );
|
| 7022 |
dpurdie |
142 |
getScheduledTime();
|
|
|
143 |
},
|
|
|
144 |
});
|
| 7240 |
dpurdie |
145 |
|
|
|
146 |
// Set default time to be midnight - Perth Time (UTC+8)
|
|
|
147 |
var midnight = new Date();
|
|
|
148 |
midnight.setUTCHours(24-8,0,0,0);
|
|
|
149 |
myDateTimePicker.datetimepicker('setDate', midnight);
|
| 7022 |
dpurdie |
150 |
getScheduledTime();
|
|
|
151 |
|
|
|
152 |
} else {
|
|
|
153 |
$('#datetime').datepicker( "destroy" );
|
|
|
154 |
$('#showdate').addClass('display-none');
|
|
|
155 |
myDateTimePicker = null;
|
|
|
156 |
}
|
| 7240 |
dpurdie |
157 |
}
|
| 7022 |
dpurdie |
158 |
|
|
|
159 |
function getScheduledTime() {
|
|
|
160 |
if ( myDateTimePicker ) {
|
|
|
161 |
// Convert to Perth timezime 8 hours ahead of GMT
|
|
|
162 |
// Then pick the essential bits out of the structure
|
|
|
163 |
var myTZO = 480;
|
|
|
164 |
tpDate = new Date(myDateTimePicker.datetimepicker('getDate'));
|
|
|
165 |
//var perthTime=new Date(tpDate.getTime() + (60000*(tpDate.getTimezoneOffset() + myTZO)));
|
|
|
166 |
var perthTime=new Date(tpDate.getTime() + (60000* myTZO));
|
| 7246 |
dpurdie |
167 |
//console.log('new', perthTime);
|
| 7022 |
dpurdie |
168 |
var txt = perthTime.toISOString().substr(0, 19).replace('T', ' ');
|
|
|
169 |
|
|
|
170 |
// Calculate distance ino the future for display purposes
|
|
|
171 |
var now = new Date();
|
|
|
172 |
var delta = 60 * Math.trunc((tpDate / 1000 / 60) - (now / 1000 / 60));
|
|
|
173 |
|
|
|
174 |
var seconds = delta;
|
|
|
175 |
var days = Math.floor(seconds / (3600*24));
|
|
|
176 |
seconds -= days*3600*24;
|
|
|
177 |
var hrs = Math.floor(seconds / 3600);
|
|
|
178 |
seconds -= hrs*3600;
|
|
|
179 |
var mnts = Math.floor(seconds / 60);
|
|
|
180 |
seconds -= mnts*60;
|
|
|
181 |
var result = days +"d "+hrs+"h "+mnts+"m";
|
|
|
182 |
|
|
|
183 |
|
|
|
184 |
$('#otime').text(txt);
|
|
|
185 |
$('#ofuture').text(result);
|
|
|
186 |
return {txt: txt, delta: delta};
|
|
|
187 |
}
|
|
|
188 |
}
|
|
|
189 |
}
|
|
|
190 |
</script>
|
|
|
191 |
<div class='Panel tight' style="width:100%">
|
|
|
192 |
<div class=PanelPad>
|
|
|
193 |
<!-- MESSAGE ++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
|
194 |
<%Call Messenger ( sMessage , sMessageType, "100%" )%>
|
|
|
195 |
<!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
|
196 |
<!--#include file="messages/_msg_inline.asp"-->
|
|
|
197 |
</div>
|
|
|
198 |
<div class='textPanel PanelPad'>
|
| 7240 |
dpurdie |
199 |
<img class=PanelCell src="images/i_warning.gif" style="margin:0 7px 20px 0;">
|
|
|
200 |
<span class=PanelCell>Approve this package for autobuild
|
| 7242 |
dpurdie |
201 |
<p>Estimated build duration: <%=IIF(BuildTime > 0, NiceDuration(BuildTime), "Unknown")%>
|
|
|
202 |
<br>Estimated duration of complete ripple: <%=IIF(TotalBuildTime, NiceDuration(TotalBuildTime), "Unknown")%>
|
| 7240 |
dpurdie |
203 |
</span>
|
| 7022 |
dpurdie |
204 |
</div>
|
| 7240 |
dpurdie |
205 |
<%If bLongBuild Then%>
|
|
|
206 |
<div class='textPanel PanelPad informPanel'>
|
| 7248 |
dpurdie |
207 |
<img class=PanelCell src="images/s_critical.gif">
|
| 7240 |
dpurdie |
208 |
<span class=PanelCell>This package will cause a significant ripple.<br>Consider scheduling it for a time to minimise dev impact.</span>
|
|
|
209 |
</div>
|
|
|
210 |
<%End If%>
|
| 7022 |
dpurdie |
211 |
<div id=showdate class=display-none>
|
|
|
212 |
<div class='textPanel PanelPad' id=datetime></div>
|
|
|
213 |
<div>Perth Time: <span id=otime></span></div>
|
|
|
214 |
<div>In: <span id=ofuture></span></div>
|
|
|
215 |
</div>
|
| 7240 |
dpurdie |
216 |
<div class='PanelSep'></div>
|
|
|
217 |
<div class='buttonPanelWhite' id=schedule>
|
|
|
218 |
<div class=nowrap>
|
|
|
219 |
<input name=sched type=radio value='sched' <%=IIF(bLongBuild, "checked","")%>>Schedule
|
|
|
220 |
<input name=sched type=radio value='now' <%=IIF(bLongBuild, "","checked")%>>Include immediately
|
| 7248 |
dpurdie |
221 |
<span style='margin-left:4em'></span>
|
| 7240 |
dpurdie |
222 |
<button id=release>Release</button>
|
|
|
223 |
<button id=cancel>Cancel</button>
|
|
|
224 |
</div>
|
| 7022 |
dpurdie |
225 |
</div>
|
| 7240 |
dpurdie |
226 |
<div id='progressBar' class='vixSpinner' style='visibility:hidden;'></div>
|
| 7022 |
dpurdie |
227 |
<div id=errorPane class='display-none errorPanel PanelPadTop'></div>
|
|
|
228 |
</div>
|
|
|
229 |
<!-- DESTRUCTOR ------->
|
|
|
230 |
<!--#include file="common/destructor.asp"-->
|