Subversion Repositories DevTools

Rev

Rev 5506 | Rev 5896 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5506 Rev 5895
Line 1... Line 1...
1
<%@LANGUAGE="VBSCRIPT"%>
1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
2
<%
3
'=====================================================
3
'=====================================================
-
 
4
'|  form_edit_deps.asp
-
 
5
'|	Used by JATS and ANT import pages to sanitize the package versions to be used
4
'|                                                   |
6
'|  	Do not allow user to name packages that do not exist
5
'|				        EDIT 					     |
7
'|  	Do not allow the user to name package-versions that do not exist
6
'|					  DEPENDENCIES				     |
8
'|	Used by Edit Dependencies button
7
'|                   				                 |
9
'|		Restrict users to versions that exist
-
 
10
'|	
8
'=====================================================
11
'=====================================================
9
%>
12
%>
10
<%
13
<%
11
Option explicit
14
Option explicit
12
' Good idea to set when using redirect
15
' Good idea to set when using redirect
Line 32... Line 35...
32
<%
35
<%
33
'------------ Variable Definition -------------
36
'------------ Variable Definition -------------
34
Dim parPv_id
37
Dim parPv_id
35
Dim rsPkgs
38
Dim rsPkgs
36
Dim HTML_pkg_list
39
Dim HTML_pkg_list
37
Dim JSrequirementsSTR
40
Dim DataFound
-
 
41
 
38
'------------ Constants Declaration -----------
42
'------------ Constants Declaration -----------
39
'------------ Variable Init -------------------
43
'------------ Variable Init -------------------
40
parPv_id = Request("pv_id")
44
parPv_id = Request("pv_id")
41
Set pkgInfoHash = CreateObject("Scripting.Dictionary")
45
Set pkgInfoHash = CreateObject("Scripting.Dictionary")
-
 
46
'-------------------------------------------------
-
 
47
' Function:     Populate_from_Import   
-
 
48
' Description:  Generate the body of the display based on user imported data
-
 
49
Sub Populate_from_Import ( SSdep_import, SShtml_pkg_list, BBDataFound)
-
 
50
   Dim recCnt, pkg_name, pkg_version, build_type, re, Matches, Match
-
 
51
   Dim Query_String, rsDeps, PVID, PKGID, builtTypeEnum, LatestVisible
-
 
52
   Dim OraParameter
-
 
53
 
-
 
54
   DataFound = false
-
 
55
   If (SSdep_import = "") Then Exit Sub      ' exit if no dependencies are submited
-
 
56
 
-
 
57
   ' Decode Server.URLEncode if present
-
 
58
   SSdep_import = URLDecode( SSdep_import )
-
 
59
 
-
 
60
   SSdep_import = Replace(SSdep_import, " ", "")            ' remove spaces
-
 
61
   SSdep_import = Replace(SSdep_import, VBTab, "")          ' remove horizontal tabs
-
 
62
   SSdep_import = Replace(SSdep_import, VBVerticalTab, "")  ' remove vertical tabs
-
 
63
   SSdep_import = Replace(SSdep_import, """", "'")          ' replace " with '
-
 
64
 
-
 
65
   Set re = New RegExp
-
 
66
   re.IgnoreCase = True
-
 
67
   re.Global = True
-
 
68
 
-
 
69
   'The following regular expression captures the package name and version on each matching line.
-
 
70
   'The following is an example of the format of the input string, SSdep_import.
-
 
71
   '
-
 
72
   'BuildPkgArchive ( 'linux_kernel_viper'  , '2.6.24.6.5000.cots' );
-
 
73
   '
-
 
74
   '#   Packages for creating the debian package
-
 
75
   '#LinkPkgArchive  ( 'debian_dpkg'         , '1.13.25000.cots' );
-
 
76
   'LinkPkgArchive  ( 'debian_packager'     , '1.1.0000.cr' );
-
 
77
   'LinkPkgArchive  ( 'Jasper Patch (JBoss/Tomcat Hotfix)' , '1.6.0,REV=2006.11.29.02.51' );
-
 
78
   'LinkPkgArchive  ( 'Java 2 SDK, Enterprise Edition (J2EE)' , '1.6.0,REV=2006.11.29.02.51' );
-
 
79
   '
-
 
80
   ' Note. Ant dependencies are formatted to look like:
-
 
81
   '    AntStyle('PackageName','PackageVersion');
-
 
82
 
-
 
83
   re.Pattern = "(^|\n)\s*([_A-Za-z0-9]+)\s*\(\s*\'([^\']*)\'\s*\,\s*\'([^\']*)\'\s*\)"
-
 
84
   Set Matches = re.Execute(SSdep_import)
-
 
85
 
-
 
86
	Query_String = ReadFile( rootPath & "queries\form_edit_import_deps.sql" )
-
 
87
	OraDatabase.Parameters.Add "RTAG_ID", parRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
-
 
88
	OraDatabase.Parameters.Add "PKG_NAME", pkg_name , ORAPARM_INPUT, ORATYPE_STRING
-
 
89
	OraDatabase.Parameters.Add "PKG_VERSION", pkg_version, ORAPARM_INPUT, ORATYPE_STRING
-
 
90
	Set OraParameter = OraDatabase.Parameters
-
 
91
 
-
 
92
   recCnt=0
-
 
93
   For Each Match in Matches
-
 
94
     build_type = Match.SubMatches(1)
-
 
95
     pkg_name = Match.SubMatches(2)
-
 
96
     pkg_version = Match.SubMatches(3)
-
 
97
 
-
 
98
      ' Proceed only if:
-
 
99
      '    pkg name is not empty,
-
 
100
      '    pkg version is not empty,
-
 
101
      If ( pkg_name <> "" )  AND  ( pkg_version <> "" ) Then
-
 
102
 
-
 
103
         ' Define build type
-
 
104
         '  Unknown will be a BuildPkgArchive
-
 
105
         If LCase(build_type) = LCase("BuildPkgArchive") Then
-
 
106
            builtTypeEnum = enum_BUILD_PKG_ARCHIVE
-
 
107
         ElseIf LCase(build_type) = LCase("LinkPkgArchive") Then
-
 
108
            builtTypeEnum = enum_LINK_PKG_ARCHIVE
-
 
109
         Else
-
 
110
            builtTypeEnum = enum_BUILD_PKG_ARCHIVE
-
 
111
         End If
-
 
112
 
-
 
113
         '
-
 
114
         ' Create one entry
-
 
115
         '
-
 
116
         OraParameter("PKG_NAME").Value = pkg_name
-
 
117
         OraParameter("PKG_VERSION").Value = pkg_version
-
 
118
 
-
 
119
         Set rsDeps = OraDatabase.DbCreateDynaset( Query_String, cint(0))
-
 
120
         If rsDeps.RecordCount <> 0 Then
-
 
121
            SShtml_pkg_list = SShtml_pkg_list & GenerateEntry( recCnt, rsDeps("pkg_id"), rsDeps("pv_id"), rsDeps("pkg_name"), rsDeps("pkg_version"), builtTypeEnum, rsDeps("lpkg_version"))
-
 
122
            recCnt = recCnt + 1
-
 
123
		    DataFound = true
-
 
124
         End If
-
 
125
     End If
-
 
126
   Next
-
 
127
 
-
 
128
	OraDatabase.Parameters.Remove "RTAG_ID"
-
 
129
	OraDatabase.Parameters.Remove "PKG_NAME"
-
 
130
	OraDatabase.Parameters.Remove "PKG_VERSION"
-
 
131
    Set OraParameter = Nothing
42
 
132
 
-
 
133
    rsDeps.Close
-
 
134
    Set rsDeps = Nothing
-
 
135
 
-
 
136
End Sub
-
 
137
'-------------------------------------------------
-
 
138
' Function:     Populate_from_Package
-
 
139
' Description:  Generate the body of the display based on package-versions in the current package
-
 
140
'
43
Sub Generate_Dependencies_List ( NNpv_id, nRtag_id, SShtml_pkg_list, SSJSreq )
141
Sub Populate_from_Package( NNpv_id, nRtag_id, SShtml_pkg_list, BBDataFound )
44
	Dim rsDeps, Query_String, LatestVisible, disabled
142
	Dim rsDeps, Query_String, recCnt
45
 
143
 
-
 
144
    BBDataFound = FALSE
-
 
145
    recCnt = 0
46
	Query_String = ReadFile( rootPath & "queries\edit_dependencies.sql" )
146
	Query_String = ReadFile( rootPath & "queries\edit_dependencies.sql" )
47
 
147
 
48
	OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
148
	OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
49
	OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER
149
	OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER
50
 
150
 
51
	Set rsDeps = OraDatabase.DbCreateDynaset( Query_String, cint(0))
151
	Set rsDeps = OraDatabase.DbCreateDynaset( Query_String, cint(0))
52
	While ((NOT rsDeps.BOF) AND (NOT rsDeps.EOF))
152
	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>"
153
        SShtml_pkg_list = SShtml_pkg_list & GenerateEntry( recCnt, rsDeps("pkg_id"), rsDeps("pv_id"), rsDeps("pkg_name"), rsDeps("pkg_version"), rsDeps("build_type"), rsDeps("lpkg_version"))
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 &""" );'> "
154
        recCnt = recCnt + 1
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
155
        BBDataFound = TRUE
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
156
		rsDeps.MoveNext
97
	WEnd
157
	WEnd
98
	If SSJSreq <> "" Then SSJSreq = Right( SSJSreq, Len(SSJSreq)-1 )		' Remove first comma
-
 
99
 
158
 
100
	OraDatabase.Parameters.Remove "RTAG_ID"
159
	OraDatabase.Parameters.Remove "RTAG_ID"
101
	OraDatabase.Parameters.Remove "PV_ID"
160
	OraDatabase.Parameters.Remove "PV_ID"
102
End Sub
161
End Sub
-
 
162
 
-
 
163
'-------------------------------------------------
-
 
164
' Function:    GenerateEntry
-
 
165
' Description: Generate one line of the import display
-
 
166
Function GenerateEntry( idx, pkgId, pvId, pName, pVersion, pBuildType, pLversion)
-
 
167
    Dim LatestVisible
-
 
168
    GenerateEntry = GenerateEntry &"<tr> "
-
 
169
 
-
 
170
    ' Package Name - will always be present
-
 
171
    GenerateEntry = GenerateEntry &"  <td background='images/bg_form_lightgray.gif' nowrap class='form_item'>" & pName
-
 
172
    GenerateEntry = GenerateEntry &"    <input name='bt"& idx &"' type='hidden' value='"& pBuildType &"'>"
-
 
173
    GenerateEntry = GenerateEntry &"    <input name='btName"& idx &"' type='hidden' value='"& pName & "'>"
-
 
174
    GenerateEntry = GenerateEntry &"  </td>"
-
 
175
 
-
 
176
    ' Package Version specified by user
-
 
177
    '   If package does not exist, then this is a text field
-
 
178
    '
-
 
179
    If isNULL(pkgId) Then
-
 
180
        GenerateEntry = GenerateEntry &"  <td background='images/bg_form_lightgray.gif'>" &_
-
 
181
                            "<input type='text' readonly class='form_item' size='20' value='"& pVersion &"' disabled > " &_
-
 
182
                            "<input type='text' hidden id='pkgn"& idx &"' name='pkgn"& idx &"' value=''> "
-
 
183
        GenerateEntry = GenerateEntry &"  </td>"
-
 
184
        GenerateEntry = GenerateEntry &"  <td background='images/bg_form_lightgray.gif' class='form_item err_alert badPackage'> Package Name does not exist"
-
 
185
        GenerateEntry = GenerateEntry &"  </td>"
-
 
186
    Else
-
 
187
        GenerateEntry = GenerateEntry &"  <td background='images/bg_form_lightgray.gif'>" &_
-
 
188
                            "<select style='width:15em;display:none' id='edpkgn"& idx &"' class='form_item' > " &_
-
 
189
                            "<input type='text' readonly ondblclick='editVerNum("& pkgId &","&idx&");' id='pkgn"& idx &"' name='pkgn"& idx &"' class='form_item' size='20' value='"& pVersion &"' onBlur='Compare_Version ( " & idx & " );' onFocus='Compare_Version ( " & idx & " );'> "
-
 
190
        GenerateEntry = GenerateEntry &"    <a href='javascript:;' onClick='editVerNum("& pkgId &","& idx &")'><img src='images/i_edit.gif' width='12' height='12' align='absmiddle' border='0' title='Edit Version' title='Select Version from a list'></a> "
-
 
191
 
-
 
192
        If isNull(pvId) Then
-
 
193
            GenerateEntry = GenerateEntry &"  <span class='badPackage' id='divBver"& idx &"'>"&_
-
 
194
                                                  "<img src='images/s_critical.gif' border='0' title='Version does not exist' hspace='2' align='absmiddle'>"&_
-
 
195
                                                  "<input name='lpBver"& idx &"' type='hidden' value='"& pVersion &"'></span>"
-
 
196
        End If
-
 
197
        GenerateEntry = GenerateEntry &"  </td>"
-
 
198
 
-
 
199
        ' Latest Versions
-
 
200
        GenerateEntry = GenerateEntry &"  <td background='images/bg_form_lightgray.gif' class='sublbox_hitem'>"
-
 
201
        LatestVisible = ""
-
 
202
        If NOT IsNull(pLversion) Then
-
 
203
            If ( pVersion = pLversion ) Then
-
 
204
                LatestVisible = "style='display:none;'"
-
 
205
            End If
-
 
206
 
-
 
207
            GenerateEntry = GenerateEntry &"  <DIV id='divLPV"& idx &"' "& LatestVisible &">"&_
-
 
208
                                                  "<a href='javascript:;' onClick='Merge_Version ( """& pLversion & ""","& idx & " );'>"&_
-
 
209
                                                  "<img src='images/bt_move_left.gif' border='0' title='Bring over this latest version' hspace='2' align='absmiddle'>"&_
-
 
210
                                                  "</a>"& pLversion &"<input name='lp"& idx &"' type='hidden' value='"& pLversion &"'></DIV>"
-
 
211
        End If
-
 
212
        GenerateEntry = GenerateEntry &"  </td>"
-
 
213
    End If
-
 
214
    GenerateEntry = GenerateEntry &"</tr>"
-
 
215
End Function
-
 
216
 
103
%>
217
%>
104
<%
218
<%
105
If parPv_id <> "" Then
219
If parPv_id <> "" Then
106
	Call Get_Pkg_Info ( parPv_id, NULL )
220
	Call Get_Pkg_Info ( parPv_id, NULL )
107
End If
221
End If
108
%>
222
%>
109
 
223
 
110
<%
224
<%
111
'=================== MAIN LINE =====================
225
'=================== MAIN LINE =====================
-
 
226
'   Determine call mode
-
 
227
On Error GoTo 0
-
 
228
If (Request("FRdeps") <> "") Then
-
 
229
    Call Populate_from_Import ( Request("FRdeps"), HTML_pkg_list, DataFound )
-
 
230
Else
112
Call Generate_Dependencies_List ( parPv_id, parRtag_id, HTML_pkg_list, JSrequirementsSTR )
231
    Call Populate_from_Package ( parPv_id, parRtag_id, HTML_pkg_list, DataFound )
-
 
232
End If
113
 
233
 
114
If JSrequirementsSTR = "" Then
234
If NOT DataFound Then
115
	'Edit button clicked on empty dependency list. Redirect user to Add Dependencies
235
	'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)
236
	Response.Redirect ("form_search_pkgs.asp?pv_id="& parPv_id &"&rtag_id="& parRtag_id &"&add_type="& enum_ADD_DEPENDENCIES)
117
End If
237
End If
118
%>
238
%>
119
<html>
239
<html>
Line 131... Line 251...
131
<!-- JSON Support -------------------------->
251
<!-- JSON Support -------------------------->
132
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
252
<script language="JavaScript" src="scripts/remote_scripting.js"></script>
133
<script type="text/javascript" src="scripts/json2.js"></script>
253
<script type="text/javascript" src="scripts/json2.js"></script>
134
<script language="JavaScript" type="text/JavaScript">
254
<script language="JavaScript" type="text/JavaScript">
135
<!--
255
<!--
-
 
256
// When the page is loaded
-
 
257
window.onload = scanBadData;
-
 
258
 
-
 
259
// ValidateForm
-
 
260
function ValidateForm(){
-
 
261
	return scanBadData();
-
 
262
}
-
 
263
 
-
 
264
//	Scan the form for bad entries and update the 'Update' button accordingly
-
 
265
function scanBadData()
-
 
266
{
-
 
267
	var elem = MM_findObj("btn_update")
-
 
268
	var rv = false;
-
 
269
	if (elem) {
-
 
270
		rv = document.getElementsByClassName("badPackage").length == 0;
-
 
271
		elem.disabled = !rv;
-
 
272
	}
-
 
273
}
136
 
274
 
137
// Restore original value
275
// Restore original value
138
function Merge_Version (pv_id, lpkg_version) {
276
function Merge_Version (lpkg_version, recId) {
139
    endEditVerNum(pv_id);
277
    endEditVerNum(recId);
140
    var ediv = MM_findObj("divLPV"+ pv_id );
278
    var ediv = MM_findObj("divLPV"+ recId.toString() );
141
    var epkg = MM_findObj("pkgn"+ pv_id );
279
    var epkg = MM_findObj("pkgn"+ recId.toString() );
142
 
280
 
143
    if(epkg) epkg.value = lpkg_version;
281
    if(epkg) epkg.value = lpkg_version;
144
    if(ediv) ediv.style.display = "none";
282
    if(ediv) ediv.style.display = "none";
-
 
283
 
-
 
284
    var ebad = MM_findObj("divBver"+ recId.toString() );
-
 
285
    if(ebad) ebad.parentElement.removeChild(ebad);
-
 
286
	scanBadData();
145
}
287
}
146
 
288
 
147
// Highlight diff between release and user selection
289
// Highlight diff between release and user selection
148
function Compare_Version ( pv_id ) {
290
function Compare_Version ( recId ) {
149
	var cv, lv, el;
291
	var cv, lv, el;
150
 
292
 
151
    el = MM_findObj( "pkgn" + pv_id );
293
    el = MM_findObj( "pkgn" + recId.toString() );
152
	cv = (el) ? el.value : 0;
294
	cv = (el) ? el.value : 0;
153
 
295
 
154
	lv = MM_findObj( "lp" + pv_id ).value;
296
	el = MM_findObj( "lp" + recId.toString() );
-
 
297
	if (el)
-
 
298
	{
-
 
299
		lv = el.value;
155
    var ediv = MM_findObj("divLPV"+ pv_id );
300
		var ediv = MM_findObj("divLPV"+ recId.toString() );
-
 
301
		if (ediv)
-
 
302
		{
156
    ediv.style.display = (cv == lv) ? 'none' : 'block';
303
			ediv.style.display = (cv == lv) ? 'none' : 'block';
-
 
304
		}
-
 
305
	}
157
}
306
}
158
 
307
 
159
// Edit the version number
308
// Edit the version number
160
var editData = new Object();
309
var editData = new Object();
161
function editVerNum(NNpkg_id, NN_pv_id)
310
function editVerNum(NNpkg_id, recId)
162
{
311
{
163
    // Only initiate the edit once
312
    // Only initiate the edit once
164
    if (editData[NN_pv_id])
313
    if (editData[recId])
165
    {
314
    {
166
        endEditVerNum(NN_pv_id);
315
        endEditVerNum(recId);
167
        return;
316
        return;
168
    }
317
    }
169
 
318
 
170
    // Get the base element in the document
319
    // Get the base element in the document
171
    var elem = document.getElementById('pkgn' + NN_pv_id );
320
    var elem = document.getElementById('pkgn' + recId.toString() );
172
    var elemed = document.getElementById('edpkgn' + NN_pv_id );
321
    var elemed = document.getElementById('edpkgn' + recId.toString() );
173
    if ( ! (elem && elemed) )
322
    if ( ! (elem && elemed) )
174
        return;
323
        return;
175
 
324
 
176
    // Show edit element and hide the fixed text
325
    // Show edit element and hide the fixed text
177
    elem.style.display = 'none';
326
    elem.style.display = 'none';
178
    elemed.style.display = '';
327
    elemed.style.display = '';
179
 
328
 
-
 
329
	// Delete the bad version indication
-
 
330
    var ebad = MM_findObj("divBver"+ recId.toString() );
-
 
331
    if(ebad) ebad.parentElement.removeChild(ebad);
-
 
332
 
180
    // Populate essential fields
333
    // Populate essential fields
181
    elemed.onchange = function(){editUpdate(NN_pv_id);}
334
    elemed.onchange = function(){editUpdate(recId);}
182
    elemed.onblur = elemed.onchange;
335
    elemed.onblur = elemed.onchange;
183
 
336
 
184
    // Create a dummy selection to indicate loading
337
    // Create a dummy selection to indicate loading
185
    var el = document.createElement("option");
338
    var el = document.createElement("option");
186
    var vname = "Loading";
339
    var vname = "Loading";
187
    el.textContent = vname;
340
    el.textContent = vname;
188
    el.value = vname;
341
    el.value = vname;
189
    elemed.appendChild(el);
342
    elemed.appendChild(el);
190
 
343
 
191
    // Save refs to the two elements
344
    // Save refs to the two elements
192
    var np = editData[NN_pv_id] = new Object();
345
    var np = editData[recId] = new Object();
193
    
346
    
194
    np.edit = elemed;
347
    np.edit = elemed;
195
    np.elem = elem;
348
    np.elem = elem;
196
    np.Value = elem.value;
349
    np.Value = elem.value;
197
 
350
 
198
    // Load version data into this new element
351
    // Load version data into this new element
199
    getVersions(NNpkg_id, NN_pv_id);
352
    getVersions(NNpkg_id, recId);
-
 
353
	scanBadData();
200
}
354
}
201
 
355
 
202
function editUpdate(NN_pv_id)
356
function editUpdate(recId)
203
{
357
{
204
    var sd = editData[NN_pv_id];
358
    var sd = editData[recId];
205
    sd.elem.value = sd.edit.value;
359
    sd.elem.value = sd.edit.value;
206
    Compare_Version(NN_pv_id);
360
    Compare_Version(recId);
-
 
361
	scanBadData();
207
}
362
}
208
 
363
 
209
// Globals are used to save state information
364
// Globals are used to save state information
210
function endEditVerNum(NN_pv_id)
365
function endEditVerNum(recId)
211
{
366
{
212
    var sd = editData[NN_pv_id];
367
    var sd = editData[recId];
213
    if (sd) {
368
    if (sd) {
214
        sd.elem.value = sd.edit.value;
369
        sd.elem.value = sd.edit.value;
215
        sd.edit.style.display = 'none';
370
        sd.edit.style.display = 'none';
216
        sd.elem.style.display = '';
371
        sd.elem.style.display = '';
217
 
372
 
218
        delete editData[NN_pv_id];
373
        delete editData[recId];
219
    }
374
    }
-
 
375
	scanBadData();
220
}
376
}
221
 
377
 
222
// Allow the user to populate the version selector box
378
// Allow the user to populate the version selector box
223
// Enables the selector once its been populated
379
// Enables the selector once its been populated
224
// Uses AJAX to populate the item on demand
380
// Uses AJAX to populate the item on demand
Line 332... Line 488...
332
              <tr>
488
              <tr>
333
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
489
                <td width="1%" bgcolor="#FFFFFF"><img src="images/h_trsp_dot.gif" width="10" height="100"></td>
334
                <td bgcolor="#FFFFFF" valign="top">
490
                <td bgcolor="#FFFFFF" valign="top">
335
                  <!-- Body -->
491
                  <!-- Body -->
336
                  <table width="100%" border="0" cellspacing="1" cellpadding="2">
492
                  <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">
493
				    <form name="editdep" method="post" action="_update_dependencies.asp" onSubmit="return ValidateForm();">
338
				      <tr>
494
				      <tr>
339
                        <td colspan="2" width="1%" nowrap class="form_field"><%=pkgInfoHash.Item ("pkg_name")%>&nbsp;<%=pkgInfoHash.Item ("pkg_version")%></td>
495
                        <td colspan="2" width="1%" nowrap class="form_field"><%=pkgInfoHash.Item ("pkg_name")%>&nbsp;<%=pkgInfoHash.Item ("pkg_version")%></td>
340
                      </tr>
496
                      </tr>
341
                      <tr>
497
                      <tr>
342
                        <td colspan="2" width="1%" nowrap class="form_field">
498
                        <td colspan="2" width="1%" nowrap class="form_field">
Line 354... Line 510...
354
                            </tr>
510
                            </tr>
355
                          </table></td>
511
                          </table></td>
356
                      </tr>
512
                      </tr>
357
                      <tr>
513
                      <tr>
358
                        <td colspan="2" nowrap>
514
                        <td colspan="2" nowrap>
359
                          <input type="submit" name="btn" value="Update" class="form_btn">
515
                          <input type="submit" name="btn" value="Update" class="form_btn" id="btn_update">
360
						  <input type="reset" name="btn" value="Cancel" class="form_btn" onClick="history.back();">
516
						  <input type="reset" name="btn" value="Back" class="form_btn" onClick="history.back();">
-
 
517
                          <input name="btn" type="reset" class="form_btn" value="Cancel" onClick="window.location='dependencies.asp?pv_id=<%=Request("pv_id")%>&rtag_id=<%=Request("rtag_id")%>';">
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>
518
                          <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>
519
                          <br> <br> </td>
363
                      </tr>
520
                      </tr>
364
					  <input type="hidden" name="update_type" value="edit_custom">
521
					  <input type="hidden" name="update_type" value="edit_import">
365
					  <input type="hidden" name="pv_id" value="<%=parPv_id%>">
522
					  <input type="hidden" name="pv_id" value="<%=parPv_id%>">
366
                      <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
523
                      <input type="hidden" name="rtag_id" value="<%=parRtag_id%>">
367
                    </form>
524
                    </form>
368
                  </table>
525
                  </table>
369
                  <!-- END Body-->
526
                  <!-- END Body-->