Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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