Subversion Repositories DevTools

Rev

Rev 7287 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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