| Line 48... |
Line 48... |
| 48 |
OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
48 |
OraDatabase.Parameters.Add "RTAG_ID", nRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
| 49 |
OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
49 |
OraDatabase.Parameters.Add "PV_ID", NNpv_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
| 50 |
|
50 |
|
| 51 |
Set rsDeps = OraDatabase.DbCreateDynaset( Query_String, cint(0))
|
51 |
Set rsDeps = OraDatabase.DbCreateDynaset( Query_String, cint(0))
|
| 52 |
While ((NOT rsDeps.BOF) AND (NOT rsDeps.EOF))
|
52 |
While ((NOT rsDeps.BOF) AND (NOT rsDeps.EOF))
|
| - |
|
53 |
Dim PVID : PVID=rsDeps("pv_id")
|
| - |
|
54 |
Dim PKGID: PKGID=rsDeps("pkg_id")
|
| - |
|
55 |
|
| 53 |
disabled = FALSE
|
56 |
disabled = FALSE
|
| 54 |
'If IsNull(rsDeps("lpv_id")) Then
|
57 |
'If IsNull(rsDeps("lpv_id")) Then
|
| 55 |
' disabled = TRUE
|
58 |
' disabled = TRUE
|
| 56 |
'End If
|
59 |
'End If
|
| 57 |
|
60 |
|
| 58 |
If NOT disabled Then
|
61 |
If NOT disabled Then
|
| 59 |
SShtml_pkg_list = SShtml_pkg_list &"<tr> "
|
62 |
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>"
|
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>"
|
| 61 |
SShtml_pkg_list = SShtml_pkg_list &" <td background='images/bg_form_lightgray.gif'>" &_
|
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' > " &_
|
| 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") &""" );'> "
|
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 &""" );'> "
|
| 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> "
|
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> "
|
| 64 |
SShtml_pkg_list = SShtml_pkg_list &" </td>"
|
68 |
SShtml_pkg_list = SShtml_pkg_list &" </td>"
|
| 65 |
Else
|
69 |
Else
|
| 66 |
SShtml_pkg_list = SShtml_pkg_list &"<tr> "
|
70 |
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>"
|
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>"
|
| 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") &"'>"
|
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") &"'>"
|
| 69 |
SShtml_pkg_list = SShtml_pkg_list &" </td>"
|
73 |
SShtml_pkg_list = SShtml_pkg_list &" </td>"
|
| 70 |
End If
|
74 |
End If
|
| 71 |
|
75 |
|
| 72 |
' Latest Versions
|
76 |
' Latest Versions
|
| 73 |
LatestVisible = "style='display:none;'"
|
77 |
LatestVisible = "style='display:none;'"
|
| 74 |
If ( rsDeps("pv_id") <> rsDeps("lpv_id") ) AND ( NOT disabled ) Then
|
78 |
If ( PVID <> rsDeps("lpv_id") ) AND ( NOT disabled ) Then
|
| 75 |
LatestVisible = ""
|
79 |
LatestVisible = ""
|
| 76 |
End If
|
80 |
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 &">"&_
|
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 &">"&_
|
| 78 |
"<a href='javascript:;' onClick='Merge_Version ( ""pkgn"& rsDeps("pv_id") &""", """& rsDeps("lpkg_version") &""", ""divLPV"& rsDeps("pv_id") &""" );'>"&_
|
82 |
"<a href='javascript:;' onClick='Merge_Version ( """& PVID &""", """& rsDeps("lpkg_version") &""" );'>"&_
|
| 79 |
"<img src='images/bt_move_left.gif' border='0' alt='Bring over this latest version' hspace='2' align='absmiddle'>"&_
|
83 |
"<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> "
|
84 |
"</a>"& rsDeps("lpkg_version") &"<input name='lp"& PVID &"' type='hidden' value='"& rsDeps("lpkg_version") &"'></DIV></td> "
|
| 81 |
|
85 |
|
| 82 |
SShtml_pkg_list = SShtml_pkg_list &"</tr>"
|
86 |
SShtml_pkg_list = SShtml_pkg_list &"</tr>"
|
| 83 |
|
87 |
|
| 84 |
If disabled Then
|
88 |
If disabled Then
|
| 85 |
' Store not found dependency as hidden field.
|
89 |
' Store not found dependency as hidden field.
|
| 86 |
' NOTE: This is not safe as the client can temper with hidden value but it will do for now.
|
90 |
' 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") &"'>"
|
91 |
SShtml_pkg_list = SShtml_pkg_list &"<input type='hidden' name='pkgn"& PVID &"' value='"& rsDeps("pkg_version") &"'>"
|
| 88 |
Else
|
92 |
Else
|
| 89 |
SSJSreq = SSJSreq & ",'pkgn"& rsDeps("pv_id") &"','"& rsDeps("pkg_name") &" Version','RisVersionStr'"
|
93 |
SSJSreq = SSJSreq & ",'pkgn"& PVID &"','"& rsDeps("pkg_name") &" Version','RisVersionStr'"
|
| 90 |
End If
|
94 |
End If
|
| 91 |
|
95 |
|
| 92 |
rsDeps.MoveNext
|
96 |
rsDeps.MoveNext
|
| 93 |
WEnd
|
97 |
WEnd
|
| 94 |
If SSJSreq <> "" Then SSJSreq = Right( SSJSreq, Len(SSJSreq)-1 ) ' Remove first comma
|
98 |
If SSJSreq <> "" Then SSJSreq = Right( SSJSreq, Len(SSJSreq)-1 ) ' Remove first comma
|
| Line 128... |
Line 132... |
| 128 |
<script type="text/javascript" src="scripts/json2.js"></script>
|
132 |
<script type="text/javascript" src="scripts/json2.js"></script>
|
| 129 |
<script language="JavaScript" type="text/JavaScript">
|
133 |
<script language="JavaScript" type="text/JavaScript">
|
| 130 |
<!--
|
134 |
<!--
|
| 131 |
|
135 |
|
| 132 |
// Restore original value
|
136 |
// Restore original value
|
| 133 |
function Merge_Version ( pkgtxt_name, lpkg_version, lpkg_div ) {
|
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 |
|
| 134 |
MM_findObj( pkgtxt_name ).value = lpkg_version;
|
142 |
if(epkg) epkg.value = lpkg_version;
|
| 135 |
MM_findObj(lpkg_div).style.display = "none";
|
143 |
if(ediv) ediv.style.display = "none";
|
| 136 |
}
|
144 |
}
|
| 137 |
|
145 |
|
| 138 |
// Highlight diff between release and user selection
|
146 |
// Highlight diff between release and user selection
|
| 139 |
function Compare_Version ( pv_id ) {
|
147 |
function Compare_Version ( pv_id ) {
|
| 140 |
var cv, lv, el;
|
148 |
var cv, lv, el;
|
| 141 |
|
149 |
|
| 142 |
el = MM_findObj( "pkgn" + pv_id );
|
150 |
el = MM_findObj( "pkgn" + pv_id );
|
| 143 |
cv = (el) ? el.value : 0;
|
151 |
cv = (el) ? el.value : 0;
|
| 144 |
|
152 |
|
| 145 |
lv = MM_findObj( "lp" + pv_id ).value;
|
153 |
lv = MM_findObj( "lp" + pv_id ).value;
|
| 146 |
|
- |
|
| 147 |
if ( cv != lv ) {
|
- |
|
| 148 |
MM_findObj( "divLPV"+ pv_id ).style.display = "block";
|
154 |
var ediv = MM_findObj("divLPV"+ pv_id );
|
| 149 |
} else {
|
- |
|
| 150 |
MM_findObj( "divLPV"+ pv_id ).style.display = "none";
|
155 |
ediv.style.display = (cv == lv) ? 'none' : 'block';
|
| 151 |
}
|
- |
|
| 152 |
|
- |
|
| 153 |
}
|
156 |
}
|
| 154 |
|
157 |
|
| 155 |
// Edit the version number
|
158 |
// Edit the version number
|
| 156 |
var editElementSaved;
|
- |
|
| 157 |
var editElement;
|
- |
|
| 158 |
var editElementValue;
|
159 |
var editData = new Object();
|
| 159 |
function editVerNum(NNpkg_id, NN_pv_id)
|
160 |
function editVerNum(NNpkg_id, NN_pv_id)
|
| 160 |
{
|
161 |
{
|
| 161 |
// Determine element to be edited
|
162 |
// Only initiate the edit once
|
| - |
|
163 |
if (editData[NN_pv_id])
|
| - |
|
164 |
{
|
| - |
|
165 |
endEditVerNum(NN_pv_id);
|
| - |
|
166 |
return;
|
| - |
|
167 |
}
|
| - |
|
168 |
|
| 162 |
// Won't be found if we are editing one.
|
169 |
// Get the base element in the document
|
| 163 |
var elem = document.getElementById('pkgn' + NN_pv_id );
|
170 |
var elem = document.getElementById('pkgn' + NN_pv_id );
|
| - |
|
171 |
var elemed = document.getElementById('edpkgn' + NN_pv_id );
|
| 164 |
if ( !elem)
|
172 |
if ( ! (elem && elemed) )
|
| 165 |
return;
|
173 |
return;
|
| 166 |
|
174 |
|
| 167 |
// Only edit one at a time
|
175 |
// Show edit element and hide the fixed text
|
| 168 |
// Close previous one first
|
176 |
elem.style.display = 'none';
|
| 169 |
if (editElementSaved) {
|
177 |
elemed.style.display = '';
|
| 170 |
endEditVerNum();
|
- |
|
| 171 |
}
|
- |
|
| 172 |
|
178 |
|
| 173 |
// Create a new selection element
|
- |
|
| 174 |
// Populate essential fields
|
179 |
// Populate essential fields
|
| 175 |
var nel = document.createElement("select");
|
180 |
elemed.onchange = function(){editUpdate(NN_pv_id);}
|
| 176 |
nel.style.width = '10em';
|
- |
|
| 177 |
nel.className = elem.className;
|
- |
|
| 178 |
nel.id = 'ed' + elem.id;
|
- |
|
| 179 |
nel.onblur = endEditVerNum;
|
181 |
elemed.onblur = elemed.onchange;
|
| 180 |
nel.onchange = function(){Compare_Version(NN_pv_id);}
|
- |
|
| 181 |
|
182 |
|
| 182 |
// Create a dummy selection to indicate loading
|
183 |
// Create a dummy selection to indicate loading
|
| 183 |
var el = document.createElement("option");
|
184 |
var el = document.createElement("option");
|
| 184 |
var vname = "Loading";
|
185 |
var vname = "Loading";
|
| 185 |
el.textContent = vname;
|
186 |
el.textContent = vname;
|
| 186 |
el.value = vname;
|
187 |
el.value = vname;
|
| 187 |
nel.appendChild(el);
|
188 |
elemed.appendChild(el);
|
| 188 |
|
189 |
|
| 189 |
// Save element and replace the DOM with our edit element
|
190 |
// Save refs to the two elements
|
| 190 |
editElementSaved = elem;
|
191 |
var np = editData[NN_pv_id] = new Object();
|
| - |
|
192 |
|
| 191 |
editElement = nel;
|
193 |
np.edit = elemed;
|
| 192 |
editElementValue = elem.value;
|
194 |
np.elem = elem;
|
| 193 |
elem.parentNode.replaceChild(nel, elem);
|
195 |
np.Value = elem.value;
|
| 194 |
|
196 |
|
| 195 |
// Load version data into this new element
|
197 |
// Load version data into this new element
|
| 196 |
getVersions(NNpkg_id, NN_pv_id);
|
198 |
getVersions(NNpkg_id, NN_pv_id);
|
| 197 |
}
|
199 |
}
|
| 198 |
|
200 |
|
| - |
|
201 |
function editUpdate(NN_pv_id)
|
| - |
|
202 |
{
|
| - |
|
203 |
var sd = editData[NN_pv_id];
|
| 199 |
// Only one element is being edited at any one time
|
204 |
sd.elem.value = sd.edit.value;
|
| - |
|
205 |
Compare_Version(NN_pv_id);
|
| - |
|
206 |
}
|
| - |
|
207 |
|
| 200 |
// Globals are used to save state information
|
208 |
// Globals are used to save state information
|
| 201 |
function endEditVerNum()
|
209 |
function endEditVerNum(NN_pv_id)
|
| 202 |
{
|
210 |
{
|
| - |
|
211 |
var sd = editData[NN_pv_id];
|
| 203 |
if (editElementSaved ) {
|
212 |
if (sd) {
|
| 204 |
editElementSaved.value = editElement.value;
|
213 |
sd.elem.value = sd.edit.value;
|
| 205 |
editElement.parentNode.replaceChild(editElementSaved, editElement);
|
214 |
sd.edit.style.display = 'none';
|
| 206 |
editElementSaved.onblur();
|
215 |
sd.elem.style.display = '';
|
| 207 |
|
216 |
|
| 208 |
editElementSaved = null;
|
217 |
delete editData[NN_pv_id];
|
| 209 |
}
|
218 |
}
|
| 210 |
}
|
219 |
}
|
| 211 |
|
220 |
|
| 212 |
// Allow the user to populate the version selector box
|
221 |
// Allow the user to populate the version selector box
|
| 213 |
// Enables the selector once its been populated
|
222 |
// Enables the selector once its been populated
|
| Line 250... |
Line 259... |
| 250 |
alert("Invalid responce from Release Manager");
|
259 |
alert("Invalid responce from Release Manager");
|
| 251 |
return;
|
260 |
return;
|
| 252 |
}
|
261 |
}
|
| 253 |
|
262 |
|
| 254 |
var ref = myJson.VersionRef;
|
263 |
var ref = myJson.VersionRef;
|
| - |
|
264 |
var sd = editData[ref];
|
| 255 |
var select = document.getElementById("edpkgn" + ref);
|
265 |
var select = sd.edit;
|
| - |
|
266 |
var sv = (sd) ? sd.Value : 0;
|
| 256 |
|
267 |
|
| 257 |
select.innerHTML = '';
|
268 |
select.innerHTML = '';
|
| 258 |
select.disabled = false;
|
269 |
select.disabled = false;
|
| 259 |
for( var ii=0; ii< myJson.Versions.length; ii++)
|
270 |
for( var ii=0; ii< myJson.Versions.length; ii++)
|
| 260 |
{
|
271 |
{
|
| 261 |
var el = document.createElement("option");
|
272 |
var el = document.createElement("option");
|
| 262 |
var vname = myJson.Versions[ii].vname;
|
273 |
var vname = myJson.Versions[ii].vname;
|
| 263 |
|
274 |
|
| 264 |
el.selected = ( vname == editElementValue );
|
275 |
el.selected = ( vname == sv );
|
| 265 |
var p1 = el.selected ? '>' : ' ';
|
276 |
var p1 = el.selected ? '>' : ' ';
|
| 266 |
var p2 = (myJson.Versions[ii].dlocked == "Y") ? 'R ' : ' ';
|
277 |
var p2 = (myJson.Versions[ii].dlocked == "Y") ? 'R ' : ' ';
|
| 267 |
|
278 |
|
| 268 |
el.textContent = p1 + p2 + vname;
|
279 |
el.textContent = p1 + p2 + vname;
|
| 269 |
el.value = vname;
|
280 |
el.value = vname;
|