Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5357 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'|                                                   |
5
'|				        EDIT 					     |
6
'|					  DEPENDENCIES				     |
7
'|                   				                 |
8
'=====================================================
9
%>
10
<%
11
Option explicit
12
' Good idea to set when using redirect
13
Response.Expires = 0	' always load the page, dont store
14
%>
15
<!--#include file="common/conf.asp"-->
16
<!--#include file="common/globals.asp"-->
17
<!--#include file="common/formating.asp"-->
18
<!--#include file="common/qstr.asp"-->
19
<!--#include file="common/common_subs.asp"-->
20
<%
21
' Make sure rtag_id is always present
22
If Request("pv_id") = "" Then
23
	Response.Redirect("index.asp")
24
End If
25
%>
26
<%
27
'------------ ACCESS CONTROL ------------------
28
%>
29
<!--#include file="_access_control_login.asp"-->
30
<!--#include file="_access_control_general.asp"-->
31
<!--#include file="_access_control_project.asp"-->
32
<%
33
'------------ Variable Definition -------------
34
Dim parPv_id
35
Dim rsPkgs
36
Dim HTML_pkg_list
37
Dim JSrequirementsSTR
38
'------------ Constants Declaration -----------
39
'------------ Variable Init -------------------
40
parPv_id = Request("pv_id")
41
Set pkgInfoHash = CreateObject("Scripting.Dictionary")
42
 
43
Sub Generate_Dependencies_List ( NNpv_id, nRtag_id, SShtml_pkg_list, SSJSreq )
44
	Dim rsDeps, Query_String, LatestVisible, disabled
45
 
46
	Query_String = ReadFile( rootPath & "queries\edit_dependencies.sql" )
47
 
48
	OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
49
	OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER
50
 
51
	Set rsDeps = OraDatabase.DbCreateDynaset( Query_String, cint(0))
52
	While ((NOT rsDeps.BOF) AND (NOT rsDeps.EOF))
53
        Dim PVID : PVID=rsDeps("pv_id")
54
        Dim PKGID: PKGID=rsDeps("pkg_id")
55
 
56
		disabled = FALSE
57
		'If IsNull(rsDeps("lpv_id")) Then
58
		'	disabled = TRUE
59
		'End If
60
 
61
		If NOT disabled Then
62
			SShtml_pkg_list = SShtml_pkg_list &"<tr> "
63
			SShtml_pkg_list = SShtml_pkg_list &"  <td background='images/bg_form_lightgray.gif' nowrap class='form_item'>"& rsDeps("pkg_name") &"<input name='bt"& PVID &"' type='hidden' value='"& rsDeps("build_type") &"'></td>"
64
			SShtml_pkg_list = SShtml_pkg_list &"  <td background='images/bg_form_lightgray.gif'>" &_
65
                                "<select style='width:10em;display:none' id='edpkgn"& PVID &"' class='form_item' > " &_
66
                                "<input type='text' readonly ondblclick='editVerNum("& PKGID &","& PVID&");' id='pkgn"& PVID &"' name='pkgn"& PVID &"' class='form_item' size='12' value='"& rsDeps("pkg_version") &"' onBlur='Compare_Version ( """& PVID &""" );' onFocus='Compare_Version ( """& PVID &""" );'> "
67
			SShtml_pkg_list = SShtml_pkg_list &"    <a href='javascript:;' onClick='editVerNum("& PKGID &","& PVID & ")'><img src='images/i_edit.gif' width='12' height='12' align='absmiddle' border='0' alt='Edit Version' title='Select Version from a list'></a> "
68
			SShtml_pkg_list = SShtml_pkg_list &"  </td>"
69
		Else
70
			SShtml_pkg_list = SShtml_pkg_list &"<tr> "
71
			SShtml_pkg_list = SShtml_pkg_list &"  <td background='images/bg_form_lightgray.gif' nowrap class='form_item'>"& rsDeps("pkg_name") &"<input name='bt"& PVID &"' type='hidden' value='"& rsDeps("build_type") &"'></td>"
72
			SShtml_pkg_list = SShtml_pkg_list &"  <td background='images/bg_form_lightgray.gif'><input disabled type='text' class='form_item' size='12' value='"& rsDeps("pkg_version") &"'>"
73
			SShtml_pkg_list = SShtml_pkg_list &"  </td>"
74
		End If
75
 
76
		' Latest Versions
77
		LatestVisible = "style='display:none;'"
78
		If ( PVID <> rsDeps("lpv_id") ) AND ( NOT disabled ) Then
79
			LatestVisible = ""
80
		End If
81
		SShtml_pkg_list = SShtml_pkg_list &"  <td background='images/bg_form_lightgray.gif' class='sublbox_hitem'><DIV id='divLPV"& PVID &"' name='divLPV"& PVID &"' "& LatestVisible &">"&_
82
								  		      "<a href='javascript:;' onClick='Merge_Version ( """& PVID &""", """& rsDeps("lpkg_version") &""" );'>"&_
83
											  "<img src='images/bt_move_left.gif' border='0' alt='Bring over this latest version' hspace='2' align='absmiddle'>"&_
84
											  "</a>"& rsDeps("lpkg_version") &"<input name='lp"& PVID &"' type='hidden' value='"& rsDeps("lpkg_version") &"'></DIV></td> "
85
 
86
		SShtml_pkg_list = SShtml_pkg_list &"</tr>"
87
 
88
		If disabled Then
89
			' Store not found dependency as hidden field.
90
			' NOTE: This is not safe as the client can temper with hidden value but it will do for now.
91
			SShtml_pkg_list = SShtml_pkg_list &"<input type='hidden' name='pkgn"& PVID &"' value='"& rsDeps("pkg_version") &"'>"
92
		Else
93
			SSJSreq = SSJSreq & ",'pkgn"& PVID &"','"& rsDeps("pkg_name") &" Version','RisVersionStr'"
94
		End If
95
 
96
		rsDeps.MoveNext
97
	WEnd
98
	If SSJSreq <> "" Then SSJSreq = Right( SSJSreq, Len(SSJSreq)-1 )		' Remove first comma
99
 
100
	OraDatabase.Parameters.Remove "RTAG_ID"
101
	OraDatabase.Parameters.Remove "PV_ID"
102
End Sub
103
%>
104
<%
105
If parPv_id <> "" Then
106
	Call Get_Pkg_Info ( parPv_id, NULL )
107
End If
108
%>
109
 
110
<%
111
'=================== MAIN LINE =====================
112
Call Generate_Dependencies_List ( parPv_id, parRtag_id, HTML_pkg_list, JSrequirementsSTR )
113
 
114
If JSrequirementsSTR = "" Then
115
	'Edit button clicked on empty dependency list. Redirect user to Add Dependencies
116
	Response.Redirect ("form_search_pkgs.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id &"&add_type="& enum_ADD_DEPENDENCIES)
117
End If
118
%>
119
<html>
120
<head>
121
<title>Release Manager</title>
122
<link rel="shortcut icon" href="<%=FavIcon%>"/>
123
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
124
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
125
<link rel="stylesheet" href="images/release_manager_style.css" type="text/css">
126
<link rel="stylesheet" href="images/navigation.css" type="text/css">
127
<script language="JavaScript" src="images/common.js"></script>
128
<!-- DROPDOWN MENUS -->
129
<!--#include file="_menu_def.asp"-->
130
<script language="JavaScript1.2" src="images/popup_menu.js"></script>
131
<!-- JSON Support -------------------------->
132
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
133
<script type="text/javascript" src="scripts/json2.js"></script>
134
<script language="JavaScript" type="text/JavaScript">
135
<!--
136
 
137
// Restore original value
138
function Merge_Version (pv_id, lpkg_version) {
139
    endEditVerNum(pv_id);
140
    var ediv = MM_findObj("divLPV"+ pv_id );
141
    var epkg = MM_findObj("pkgn"+ pv_id );
142
 
143
    if(epkg) epkg.value = lpkg_version;
144
    if(ediv) ediv.style.display = "none";
145
}
146
 
147
// Highlight diff between release and user selection
148
function Compare_Version ( pv_id ) {
149
	var cv, lv, el;
150
 
151
    el = MM_findObj( "pkgn" + pv_id );
152
	cv = (el) ? el.value : 0;
153
 
154
	lv = MM_findObj( "lp" + pv_id ).value;
155
    var ediv = MM_findObj("divLPV"+ pv_id );
156
    ediv.style.display = (cv == lv) ? 'none' : 'block';
157
}
158
 
159
// Edit the version number
160
var editData = new Object();
161
function editVerNum(NNpkg_id, NN_pv_id)
162
{
163
    // Only initiate the edit once
164
    if (editData[NN_pv_id])
165
    {
166
        endEditVerNum(NN_pv_id);
167
        return;
168
    }
169
 
170
    // Get the base element in the document
171
    var elem = document.getElementById('pkgn' + NN_pv_id );
172
    var elemed = document.getElementById('edpkgn' + NN_pv_id );
173
    if ( ! (elem && elemed) )
174
        return;
175
 
176
    // Show edit element and hide the fixed text
177
    elem.style.display = 'none';
178
    elemed.style.display = '';
179
 
180
    // Populate essential fields
181
    elemed.onchange = function(){editUpdate(NN_pv_id);}
182
    elemed.onblur = elemed.onchange;
183
 
184
    // Create a dummy selection to indicate loading
185
    var el = document.createElement("option");
186
    var vname = "Loading";
187
    el.textContent = vname;
188
    el.value = vname;
189
    elemed.appendChild(el);
190
 
191
    // Save refs to the two elements
192
    var np = editData[NN_pv_id] = new Object();
193
 
194
    np.edit = elemed;
195
    np.elem = elem;
196
    np.Value = elem.value;
197
 
198
    // Load version data into this new element
199
    getVersions(NNpkg_id, NN_pv_id);
200
}
201
 
202
function editUpdate(NN_pv_id)
203
{
204
    var sd = editData[NN_pv_id];
205
    sd.elem.value = sd.edit.value;
206
    Compare_Version(NN_pv_id);
207
}
208
 
209
// Globals are used to save state information
210
function endEditVerNum(NN_pv_id)
211
{
212
    var sd = editData[NN_pv_id];
213
    if (sd) {
214
        sd.elem.value = sd.edit.value;
215
        sd.edit.style.display = 'none';
216
        sd.elem.style.display = '';
217
 
218
        delete editData[NN_pv_id];
219
    }
220
}
221
 
222
// Allow the user to populate the version selector box
223
// Enables the selector once its been populated
224
// Uses AJAX to populate the item on demand
225
function getVersions(NNpkg_id, NN_pv_id)
226
{
227
    xmlHttp=GetXmlHttpObject(getVersionsDone);
228
    if (xmlHttp==null)
229
    {
230
        alert ("Your browser does not support AJAX!");
231
        return;
232
    }
233
 
234
    var url = "_json_checkPackage.asp?"
235
            + "pkg_id=" + NNpkg_id
236
            + "&ref=" + NN_pv_id
237
            + "&Opr=getVerList";
238
    MM_showProgressBar();
239
    xmlHttp.open("GET",url,true);  // `false` makes the request synchronous
240
    xmlHttp.send(null);
241
}
242
 
243
// Call back for getVersions
244
function getVersionsDone()
245
{
246
    //readyState of 4 or 'complete' represents that data has been returned
247
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete'){
248
        MM_hideProgressBar();
249
 
250
        //Gather the results from the callback
251
        var str = xmlHttp.responseText;
252
//alert("JSON:" + str);
253
        if ( !str ) {
254
            alert("Empty responce from Release Manager. May have been logged ");
255
            return;
256
        }
257
        var myJson = JSON.parse(str);
258
        if(myJson.error)
259
        {
260
            alert("Invalid responce from Release Manager");
261
            return;
262
        }
263
 
264
        var ref = myJson.VersionRef;
265
        var sd = editData[ref];
266
        var select = sd.edit;
267
        var sv = (sd) ? sd.Value  : 0;
268
 
269
        select.innerHTML = '';
270
        select.disabled = false;
271
        for( var ii=0; ii< myJson.Versions.length; ii++)
272
        {
273
            var el = document.createElement("option");
274
            var vname = myJson.Versions[ii].vname;
275
 
276
            el.selected = ( vname == sv );
277
            var p1 = el.selected ? '>' : ' ';
278
            var p2 = (myJson.Versions[ii].dlocked == "Y") ? 'R ' : '    ';
279
 
280
            el.textContent = p1 + p2 + vname;
281
            el.value = vname;
282
            select.appendChild(el);
283
        }
284
    }
285
}
286
 
287
// -->
288
</script>
289
 
290
</head>
291
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
292
<!-- MENU LAYERS -------------------------------------->
293
<div id="popmenu" class="menuskin" onMouseover="clearhidemenu();highlightmenu(event,'on')" onMouseout="highlightmenu(event,'off');dynamichide(event)">
294
</div>
295
<!-- TIPS LAYERS -------------------------------------->
296
<div id="formTipsLayer" style="position: absolute; z-index: 1000; visibility: hidden; left:0; top: 0; width: 10">&nbsp;</div>
297
<!----------------------------------------------------->
298
<!-- HEADER -->
299
<!--#include file="_header.asp"-->
300
<!-- BODY ---->
301
<table width="100%" height="80%" border="0" cellpadding="0" cellspacing="0">
302
  <tr>
303
    <td align="center" valign="top" background="images/bg_lght_gray.gif">
304
      <!-- MIDDLE ---------------------------------------->
305
      <table width="650" border="0" cellspacing="0" cellpadding="0">
306
        <tr>
307
          <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
308
              <tr>
309
                <td width="1%"></td>
310
                <td align="right"><img src="images/h_trsp_dot.gif" width="30" height="30"></td>
311
                <td width="1%"></td>
312
              </tr>
313
              <tr>
314
                <td width="1%"></td>
315
                <td> <table width="100%" border="0" cellspacing="0" cellpadding="0">
316
                    <tr>
317
                      <td nowrap class="form_ttl">EDIT dependencies</td>
318
                      <td align="right" valign="bottom"></td>
319
                    </tr>
320
                  </table></td>
321
                <td width="1%"></td>
322
              </tr>
323
              <tr>
324
                <td align="left" valign="top" width="1%" background="images/lbox_bg_blue.gif"><img src="images/lbox_tl_cnr_b.gif" width="13" height="13"></td>
325
                <td background="images/lbox_bg_blue.gif" align="right">
326
                  <!-- Heading -->
327
                  <img src="images/h_trsp_dot.gif" width="1" height="20">
328
                  <!-- END Heading -->
329
                </td>
330
                <td align="right" valign="top" width="1%" background="images/lbox_bg_blue.gif"><img src="images/lbox_tr_cnr_b.gif" width="13" height="13"></td>
331
              </tr>
332
              <tr>
333
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
334
                <td bgcolor="#FFFFFF" valign="top">
335
                  <!-- Body -->
336
                  <table width="100%" border="0" cellspacing="1" cellpadding="2">
337
				    <form name="editdep" method="post" action="_update_dependencies.asp" onSubmit="MM_validateForm(<%=JSrequirementsSTR%>);return document.MM_returnValue">
338
				      <tr>
339
                        <td colspan="2" width="1%" nowrap class="form_field"><%=pkgInfoHash.Item ("pkg_name")%>&nbsp;<%=pkgInfoHash.Item ("pkg_version")%></td>
340
                      </tr>
341
                      <tr>
342
                        <td colspan="2" width="1%" nowrap class="form_field">
343
                          <table width="100%" border="0" cellspacing="1" cellpadding="2">
344
                            <tr>
345
                              <td background="images/bg_form_lightbluedark.gif" nowrap width="1%" class="form_field">Package Name<img src="images/h_trsp_dot.gif" width="1" height="20" align="absmiddle"></td>
346
                              <td background="images/bg_form_lightbluedark.gif" nowrap width="50%" class="form_field">Version</td>
347
							  <td background="images/bg_form_lightbluedark.gif" nowrap width="50%" class="form_field">Released</td>
348
                            </tr>
349
                      		<%=HTML_pkg_list%>
350
                            <tr>
351
                              <td nowrap><img src="images/h_trsp_dot.gif" width="120" height="1"></td>
352
                              <td></td>
353
							  <td></td>
354
                            </tr>
355
                          </table></td>
356
                      </tr>
357
                      <tr>
358
                        <td colspan="2" nowrap>
359
                          <input type="submit" name="btn" value="Update" class="form_btn">
360
						  <input type="reset" name="btn" value="Cancel" class="form_btn" onClick="history.back();">
361
                          <SPAN id="ProgressBar" name="ProgressBar" style="visibility:hidden;" class="body_scol"><img src="images/i_processing.gif" width="11" height="17" align="absmiddle" hspace="3">Processing...</SPAN>
362
                          <br> <br> </td>
363
                      </tr>
364
					  <input type="hidden" name="update_type" value="edit_custom">
365
					  <input type="hidden" name="pv_id" value="<%=parPv_id%>">
366
                      <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
367
                    </form>
368
                  </table>
369
                  <!-- END Body-->
370
                </td>
371
                <td width="1%" background="images/lbox_bgside_white.gif">&nbsp;</td>
372
              </tr>
373
              <tr>
374
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom"><img src="images/lbox_bl_cnr_b.gif" width="13" height="13"></td>
375
                <td background="images/lbox_bg_blue.gif"></td>
376
                <td width="1%" background="images/lbox_bg_blue.gif" valign="bottom" align="right"><img src="images/lbox_br_cnr_b.gif" width="13" height="13"></td>
377
              </tr>
378
            </table></td>
379
        </tr>
380
      </table>
381
      <!-------------------------------------------------->
382
    </td>
383
  </tr>
384
  <tr>
385
    <td valign="bottom" background="images/bg_lght_gray.gif">
386
	<!-- FOOTER -->
387
	<!--#include file="_footer.asp"-->
388
	</td>
389
  </tr>
390
</table>
391
</body>
392
</html>
393
<%
394
Call Destroy_All_Objects
395
%>