Subversion Repositories DevTools

Rev

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