Subversion Repositories DevTools

Rev

Rev 7248 | Rev 7293 | 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
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
 
7287 dpurdie 94
        $("#ProgressBar").css('visibility', 'visible');
7022 dpurdie 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>
7287 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"-->