| 5357 |
dpurdie |
1 |
<%@LANGUAGE="VBSCRIPT"%>
|
|
|
2 |
<%
|
|
|
3 |
'=====================================================
|
|
|
4 |
'| |
|
|
|
5 |
'| wAddDaemon |
|
|
|
6 |
'| |
|
|
|
7 |
'=====================================================
|
|
|
8 |
%>
|
|
|
9 |
<%
|
|
|
10 |
Option explicit
|
|
|
11 |
Response.Expires = 0
|
|
|
12 |
%>
|
|
|
13 |
<!--#include file="common/conf.asp"-->
|
|
|
14 |
<!--#include file="common/globals.asp"-->
|
|
|
15 |
<!--#include file="common/formating.asp"-->
|
|
|
16 |
<!--#include file="common/qstr.asp"-->
|
|
|
17 |
<!--#include file="common/common_subs.asp"-->
|
|
|
18 |
<!--#include file="common/_form_window_common.asp"-->
|
|
|
19 |
<%
|
|
|
20 |
'------------ ACCESS CONTROL ------------------
|
|
|
21 |
%>
|
|
|
22 |
<!--#include file="_access_control_general.asp"-->
|
|
|
23 |
<!--#include file="_access_control_login.asp"-->
|
|
|
24 |
<%
|
|
|
25 |
'------------ VARIABLE DEFINITION -------------
|
|
|
26 |
Dim rsQry, healthTag, cmdInterface, pkgOwner, isInterface, package, procDesc
|
|
|
27 |
Dim sMessage
|
|
|
28 |
Dim Query_String
|
|
|
29 |
Dim RecordCount
|
|
|
30 |
Dim bmcon_id
|
|
|
31 |
Dim daemon_mode
|
|
|
32 |
Dim gbe_buildfilter
|
|
|
33 |
Dim bShowEmpty
|
| 7278 |
dpurdie |
34 |
Dim bAdd
|
| 5357 |
dpurdie |
35 |
'------------ CONSTANTS DECLARATION -----------
|
|
|
36 |
'------------ VARIABLE INIT -------------------
|
|
|
37 |
sMessage = NULL
|
|
|
38 |
|
|
|
39 |
parRtag_id = Request("rtag_id")
|
| 5523 |
dpurdie |
40 |
bmcon_id = RequestDefault("bmcon_id",Request("base_bmcon_id"))
|
| 7278 |
dpurdie |
41 |
bAdd = (Request("rcon_id") = "")
|
| 5357 |
dpurdie |
42 |
|
|
|
43 |
Set objFormCollector = CreateObject("Scripting.Dictionary")
|
|
|
44 |
'------------ CONDITIONS ----------------------
|
|
|
45 |
'----------------------------------------------
|
|
|
46 |
%>
|
|
|
47 |
<%
|
|
|
48 |
'--------------------------------------------------------------------------------------------------------------------------
|
| 7278 |
dpurdie |
49 |
' Function: GetData
|
|
|
50 |
' Description: Determine the basic data for the edit session
|
|
|
51 |
Sub GetData
|
|
|
52 |
|
|
|
53 |
' Determine if any daemons have been configured in this release
|
|
|
54 |
' Will be used to determine if a new entry should be a MASTER or a SLAVE
|
|
|
55 |
'
|
|
|
56 |
Query_String = "select * " &_
|
|
|
57 |
" from release_config rc," &_
|
|
|
58 |
" gbe_machtype gbe " &_
|
|
|
59 |
" where rc.rtag_id = "& parRtag_id &_
|
|
|
60 |
" and gbe.gbe_id = rc.gbe_id"
|
|
|
61 |
|
|
|
62 |
Set rsQry = OraDatabase.DbCreateDynaset( Query_String, cint(0))
|
|
|
63 |
|
|
|
64 |
RecordCount = rsQry.RecordCount
|
|
|
65 |
If RecordCount = 0 Then
|
|
|
66 |
daemon_mode = "M"
|
|
|
67 |
else
|
|
|
68 |
daemon_mode = "S"
|
|
|
69 |
End If
|
|
|
70 |
rsQry.Close()
|
|
|
71 |
Set rsQry = Nothing
|
|
|
72 |
|
|
|
73 |
|
|
|
74 |
' Edit an existing entry
|
|
|
75 |
' May have a link into the build_machine_config - or it may not
|
|
|
76 |
' Check first
|
|
|
77 |
bShowEmpty = TRUE
|
|
|
78 |
|
|
|
79 |
If NOT bAdd Then
|
|
|
80 |
Query_String = "SELECT * " &_
|
|
|
81 |
" FROM RELEASE_CONFIG rc," &_
|
|
|
82 |
" gbe_machtype gb" &_
|
|
|
83 |
" WHERE rc.rcon_id = "& Request("rcon_id") &_
|
|
|
84 |
" AND rc.gbe_id = gb.gbe_id"
|
|
|
85 |
|
|
|
86 |
Set rsQry = OraDatabase.DbCreateDynaset( Query_String, cint(0))
|
|
|
87 |
|
|
|
88 |
If rsQry.RecordCount > 0 Then
|
|
|
89 |
bmcon_id = rsQry("bmcon_id")
|
|
|
90 |
daemon_mode = rsQry("daemon_mode")
|
|
|
91 |
gbe_buildfilter = NiceCStr(rsQry("gbe_buildfilter"),"")
|
|
|
92 |
End If
|
|
|
93 |
|
|
|
94 |
rsQry.Close()
|
|
|
95 |
Set rsQry = Nothing
|
|
|
96 |
End If
|
|
|
97 |
|
|
|
98 |
If NOT isNULL(bmcon_id) AND bmcon_id <> "" Then
|
|
|
99 |
|
|
|
100 |
' Extract information from the machine config
|
|
|
101 |
Query_String = "SELECT * " &_
|
|
|
102 |
" FROM build_machine_config bc, " &_
|
|
|
103 |
" gbe_machtype gb " &_
|
|
|
104 |
"WHERE bc.bmcon_id = " & bmcon_id &_
|
|
|
105 |
" AND bc.gbe_id = gb.gbe_id"
|
|
|
106 |
|
|
|
107 |
Set rsQry = OraDatabase.DbCreateDynaset( Query_String, cint(0))
|
|
|
108 |
|
|
|
109 |
If rsQry.RecordCount > 0 Then
|
|
|
110 |
bmcon_id = rsQry("bmcon_id")
|
|
|
111 |
bShowEmpty = FALSE
|
|
|
112 |
End If
|
|
|
113 |
|
|
|
114 |
rsQry.Close()
|
|
|
115 |
Set rsQry = Nothing
|
|
|
116 |
End If
|
|
|
117 |
|
|
|
118 |
' Cleanup gbe_buildfilter
|
|
|
119 |
Dim regEx
|
|
|
120 |
Set regEx = New RegExp
|
|
|
121 |
regEx.Global = true
|
|
|
122 |
regEx.IgnoreCase = True
|
|
|
123 |
|
|
|
124 |
regEx.Pattern = "\s{2,}"
|
|
|
125 |
|
|
|
126 |
gbe_buildfilter = Replace(gbe_buildfilter,","," ")
|
|
|
127 |
gbe_buildfilter = Trim(regEx.Replace(gbe_buildfilter, " "))
|
|
|
128 |
End Sub
|
|
|
129 |
|
|
|
130 |
Sub InsertXrefData
|
|
|
131 |
'
|
|
|
132 |
' Create a data structure (javascript) to map build machine (bmcon_id) to available platforms
|
|
|
133 |
'
|
|
|
134 |
Query_String = "SELECT bp.bp_name, bp.bp_id, bc2.bmcon_id" &_
|
|
|
135 |
" FROM release_manager.build_platforms bp, release_manager.build_platforms_config2 bc2 " &_
|
|
|
136 |
" WHERE bp.bp_id = bc2.bp_id " &_
|
|
|
137 |
" ORDER BY upper(bp.bp_name)"
|
|
|
138 |
|
|
|
139 |
Set rsQry = OraDatabase.DbCreateDynaset( Query_String, ORADYN_DEFAULT )
|
|
|
140 |
While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
|
|
|
141 |
Response.Write "AddXrefEntry('" & rsQry("bp_name") &"',"& rsQry("bmcon_id") & ");" & vbCrLf
|
|
|
142 |
rsQry.MoveNext
|
|
|
143 |
Wend
|
|
|
144 |
rsQry.Close()
|
|
|
145 |
Set rsQry = Nothing
|
|
|
146 |
End Sub
|
|
|
147 |
|
| 5357 |
dpurdie |
148 |
'-------------------------------------------------
|
| 7279 |
dpurdie |
149 |
' Gnerate a table of build machine information
|
|
|
150 |
Sub DisplayBuildMachines
|
| 5357 |
dpurdie |
151 |
Dim rsQry, query
|
|
|
152 |
|
| 7279 |
dpurdie |
153 |
Response.Write "<table id='daemonHost' class='comboBox' width='100%'>"
|
| 5357 |
dpurdie |
154 |
|
| 7279 |
dpurdie |
155 |
OraDatabase.Parameters.Add "bmcon_id", bmcon_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
|
|
156 |
OraDatabase.Parameters.Add "rtag_id", parRtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
| 5357 |
dpurdie |
157 |
|
| 7279 |
dpurdie |
158 |
query = ReadFile( rootPath & "queries\available_build_machines.sql" )
|
| 5357 |
dpurdie |
159 |
|
| 7279 |
dpurdie |
160 |
Set rsQry = OraDatabase.DbCreateDynaset( query, ORADYN_DEFAULT )
|
|
|
161 |
While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
|
|
|
162 |
Response.Write "<tr class='"& rsQry("state") & "' data-bmconid="& rsQry("bmcon_id") &">"
|
|
|
163 |
Response.Write "<td>" & rsQry("display_name") & "</td>"
|
|
|
164 |
Response.Write "<td>" & rsQry("gbe_value") & "</td>"
|
|
|
165 |
Response.Write "<td style='max-width:300px'>" & rsQry("description") & "</td>"
|
|
|
166 |
Response.Write "</tr>"
|
| 5357 |
dpurdie |
167 |
|
| 7279 |
dpurdie |
168 |
rsQry.MoveNext
|
|
|
169 |
Wend
|
|
|
170 |
|
|
|
171 |
rsQry.Close()
|
|
|
172 |
Set rsQry = Nothing
|
|
|
173 |
|
|
|
174 |
OraDatabase.Parameters.Remove "bmcon_id"
|
|
|
175 |
OraDatabase.Parameters.Remove "rtag_id"
|
|
|
176 |
|
|
|
177 |
Response.Write "</table>"
|
|
|
178 |
|
|
|
179 |
End Sub
|
|
|
180 |
|
| 5357 |
dpurdie |
181 |
'--------------------------------------------------------------------------------------------------------------------------
|
|
|
182 |
'------------ RUN BEFORE PAGE RENDER ----------
|
|
|
183 |
|
|
|
184 |
If CBool(Request("action")) Then
|
|
|
185 |
|
| 5523 |
dpurdie |
186 |
If bmcon_id = "" Then
|
| 5357 |
dpurdie |
187 |
sMessage = "Select a Build Machine before updating the entry"
|
|
|
188 |
Else
|
|
|
189 |
|
|
|
190 |
' Add or Update after the users edit session
|
|
|
191 |
If Request("rcon_id") <> "" Then
|
|
|
192 |
|
|
|
193 |
OraDatabase.Parameters.Add "RCON_ID", Request("rcon_id"), ORAPARM_INPUT, ORATYPE_NUMBER
|
| 5523 |
dpurdie |
194 |
OraDatabase.Parameters.Add "BMCON_ID", bmcon_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
| 5357 |
dpurdie |
195 |
OraDatabase.Parameters.Add "DAEMON_MODE", Request("daemon_mode"), ORAPARM_INPUT, ORATYPE_VARCHAR2
|
|
|
196 |
OraDatabase.Parameters.Add "GBE_BUILDFILTER", Request("gbe_buildfilter"), ORAPARM_INPUT, ORATYPE_VARCHAR2
|
|
|
197 |
|
| 5590 |
dpurdie |
198 |
objEH.ErrorRedirect = FALSE
|
| 5357 |
dpurdie |
199 |
objEH.TryORA ( OraSession )
|
|
|
200 |
On Error Resume Next
|
|
|
201 |
|
|
|
202 |
OraDatabase.ExecuteSQL "BEGIN PK_BUILDAPI.UPDATE_DAEMON_CONFIG(:RCON_ID, :BMCON_ID, :DAEMON_MODE, :GBE_BUILDFILTER); END;"
|
|
|
203 |
OraSession.CommitTrans
|
|
|
204 |
|
|
|
205 |
objEH.CatchORA ( OraSession )
|
|
|
206 |
|
|
|
207 |
OraDatabase.Parameters.Remove "RCON_ID"
|
|
|
208 |
OraDatabase.Parameters.Remove "BMCON_ID"
|
|
|
209 |
OraDatabase.Parameters.Remove "DAEMON_MODE"
|
|
|
210 |
OraDatabase.Parameters.Remove "GBE_BUILDFILTER"
|
|
|
211 |
|
|
|
212 |
If objEH.Finally Then
|
|
|
213 |
Call OpenInParentWindow ("release_config.asp?rtag_id="&parRtag_id)
|
|
|
214 |
Call CloseWindow()
|
|
|
215 |
End If
|
|
|
216 |
|
|
|
217 |
rsQry.Close
|
|
|
218 |
Set rsQry = nothing
|
|
|
219 |
|
|
|
220 |
Else
|
|
|
221 |
OraDatabase.Parameters.Add "RTAG_ID", Request("rtag_id"), ORAPARM_INPUT, ORATYPE_NUMBER
|
| 5523 |
dpurdie |
222 |
OraDatabase.Parameters.Add "BMCON_ID", bmcon_id, ORAPARM_INPUT, ORATYPE_NUMBER
|
| 5357 |
dpurdie |
223 |
OraDatabase.Parameters.Add "DAEMON_MODE", Request("daemon_mode"), ORAPARM_INPUT, ORATYPE_VARCHAR2
|
|
|
224 |
OraDatabase.Parameters.Add "GBE_BUILDFILTER", Request("gbe_buildfilter"), ORAPARM_INPUT, ORATYPE_VARCHAR2
|
|
|
225 |
|
| 5590 |
dpurdie |
226 |
objEH.ErrorRedirect = FALSE
|
| 5357 |
dpurdie |
227 |
objEH.TryORA ( OraSession )
|
|
|
228 |
On Error Resume Next
|
|
|
229 |
|
|
|
230 |
OraDatabase.ExecuteSQL "BEGIN PK_BUILDAPI.ADD_DAEMON_CONFIG(:RTAG_ID, :BMCON_ID, :DAEMON_MODE, :GBE_BUILDFILTER); END;"
|
|
|
231 |
|
|
|
232 |
objEH.CatchORA ( OraSession )
|
|
|
233 |
|
|
|
234 |
OraDatabase.Parameters.Remove "RTAG_ID"
|
|
|
235 |
OraDatabase.Parameters.Remove "BMCON_ID"
|
|
|
236 |
OraDatabase.Parameters.Remove "DAEMON_MODE"
|
|
|
237 |
OraDatabase.Parameters.Remove "GBE_BUILDFILTER"
|
|
|
238 |
|
|
|
239 |
If objEH.Finally Then
|
|
|
240 |
Call OpenInParentWindow ("release_config.asp?rtag_id="&parRtag_id)
|
|
|
241 |
Call CloseWindow()
|
|
|
242 |
End If
|
|
|
243 |
|
|
|
244 |
rsQry.Close
|
|
|
245 |
Set rsQry = nothing
|
|
|
246 |
|
|
|
247 |
End If
|
|
|
248 |
End If
|
|
|
249 |
End If
|
| 7278 |
dpurdie |
250 |
call GetData
|
| 5357 |
dpurdie |
251 |
'----------------------------------------------
|
| 7278 |
dpurdie |
252 |
Sub InsertJavaScript %>
|
|
|
253 |
<script type="text/javascript" charset="utf-8">
|
|
|
254 |
var platformXref = {};
|
|
|
255 |
$(document).ready(function(){
|
|
|
256 |
|
|
|
257 |
// Function to init Platform CrossRef Data
|
|
|
258 |
// Create a two dimensional associative array
|
|
|
259 |
// First level - Platform Name
|
|
|
260 |
// Second Level - BMCONID
|
|
|
261 |
//
|
|
|
262 |
function AddXrefEntry(platform, bmconid){
|
|
|
263 |
platform = platform.toUpperCase();
|
|
|
264 |
if ( ! platformXref[platform] ) {
|
|
|
265 |
platformXref[platform] = {};
|
|
|
266 |
}
|
|
|
267 |
platformXref[platform][bmconid] = 1;
|
|
|
268 |
};
|
|
|
269 |
// Function calls generated by the ASP code to create a data structure
|
|
|
270 |
<%Call InsertXrefData%>
|
|
|
271 |
|
|
|
272 |
// Add in two special platforms. NONE and TOOLSET
|
|
|
273 |
AddXrefEntry('TOOLSET', 'ALL');
|
|
|
274 |
AddXrefEntry('NONE', 'ALL');
|
|
|
275 |
|
| 7279 |
dpurdie |
276 |
// Init the Daemon Host Combo
|
|
|
277 |
setDaemonHost();
|
|
|
278 |
|
| 7278 |
dpurdie |
279 |
// Initial config of visible PLATFORMS
|
|
|
280 |
setbmConId();
|
|
|
281 |
|
| 7279 |
dpurdie |
282 |
// Initial Focus
|
|
|
283 |
$("#daemonHostDiv").focus();
|
|
|
284 |
|
| 7278 |
dpurdie |
285 |
// Wire up the MachType selector to modify the available PLATFORMS
|
|
|
286 |
$('#selBmConId').change( setbmConId );
|
|
|
287 |
|
|
|
288 |
// Wire up the GBE_BUILDFILTER so that user changes are represented
|
|
|
289 |
$('#gbe_buildfilter').change( setbmConId );
|
|
|
290 |
|
|
|
291 |
// Update the available platforms when the user changes the GBE_MACHTYPE
|
|
|
292 |
// Sanitise the value of GBE_BUILDFILTER
|
|
|
293 |
// Operation relies on the fact that
|
|
|
294 |
// Hidden items will not be submitted as a part of the form
|
|
|
295 |
// Platforms supported on multiple machines will appear multiple times
|
|
|
296 |
function setbmConId( )
|
|
|
297 |
{
|
| 7279 |
dpurdie |
298 |
var bmConId = $('#bmcon_id').val();
|
| 7278 |
dpurdie |
299 |
var table = $('#selPlat');
|
|
|
300 |
table.empty();
|
|
|
301 |
|
|
|
302 |
// Parse the existing GBE_BUILDFILTER so that we can determine any platforms that are not
|
|
|
303 |
// supported on the selected build machine
|
|
|
304 |
// Convert the GBE_BUILDFILTER into an object for easy processing
|
|
|
305 |
var curFilter = {};
|
| 7279 |
dpurdie |
306 |
var curFilterArray = getBuildFilter();
|
| 7278 |
dpurdie |
307 |
for ( i = 0; i < curFilterArray.length; i++ ) {
|
|
|
308 |
curFilter[curFilterArray[i]] = 1;
|
|
|
309 |
}
|
|
|
310 |
|
|
|
311 |
// Insert platforms supported on selected machine
|
|
|
312 |
Object.keys(platformXref).sort().forEach(platform => {
|
|
|
313 |
if ( platformXref[platform][bmConId] || platformXref[platform]['ALL'] ){
|
|
|
314 |
table.append(createPlatformRow(platform, curFilter[platform], undefined));
|
|
|
315 |
delete curFilter[platform];
|
|
|
316 |
}
|
|
|
317 |
});
|
|
|
318 |
|
|
|
319 |
// Insert platforms NOT supported on selected machine
|
|
|
320 |
// Prepend in reverse order
|
|
|
321 |
Object.keys(curFilter).sort().reverse().forEach(platform => {
|
|
|
322 |
if ( platform ) {
|
|
|
323 |
table.prepend(createPlatformRow(platform, true, 'err_alert'));
|
|
|
324 |
}
|
|
|
325 |
});
|
| 7279 |
dpurdie |
326 |
|
|
|
327 |
setBuildFilter();
|
| 7278 |
dpurdie |
328 |
}
|
|
|
329 |
|
|
|
330 |
// Local function to create a platform row, with checkbox
|
|
|
331 |
//
|
|
|
332 |
function createPlatformRow(platform, state, eClass){
|
|
|
333 |
var row = $("<tr/>").addClass('body_txt selPlat').addClass(eClass);
|
|
|
334 |
var td = $("<td/>");
|
| 7279 |
dpurdie |
335 |
var item = $("<input/>").attr('type', 'checkbox').css('margin','0px 3px').prop('checked', state).change(togglePlatforms);
|
|
|
336 |
if ( platform == 'NONE' ) {
|
|
|
337 |
item.attr('id', 'check_none');
|
|
|
338 |
}
|
| 7278 |
dpurdie |
339 |
var itemText = $("<span/>").text(platform);
|
|
|
340 |
if ( eClass ) {
|
|
|
341 |
itemText.append(' - Not available');
|
|
|
342 |
}
|
|
|
343 |
td.append(item);
|
|
|
344 |
td.append(itemText);
|
|
|
345 |
row.append(td);
|
|
|
346 |
return row;
|
|
|
347 |
}
|
|
|
348 |
|
|
|
349 |
// Update GBE_BUILDFILTER as the user selects and deselects platforms
|
| 7279 |
dpurdie |
350 |
function togglePlatforms(){
|
| 7278 |
dpurdie |
351 |
var state = this.checked;
|
|
|
352 |
var platform = $(this).parent().text().trim();
|
|
|
353 |
var idx = platform.indexOf(' - ');
|
|
|
354 |
if ( idx >= 0 )
|
|
|
355 |
platform = platform.substring(0, idx );
|
|
|
356 |
|
|
|
357 |
// Add or remove item
|
|
|
358 |
// Split the string into an array
|
|
|
359 |
// Always remove the item
|
|
|
360 |
// Append the platform - if adding
|
|
|
361 |
// Sort and reform a space-seperated string
|
|
|
362 |
//
|
| 7279 |
dpurdie |
363 |
var gbeFilter = getBuildFilter()
|
| 7278 |
dpurdie |
364 |
gbeFilter = gbeFilter.filter(e => e !== platform);
|
|
|
365 |
if ( state ) {
|
|
|
366 |
gbeFilter.push(platform);
|
|
|
367 |
}
|
|
|
368 |
|
| 7279 |
dpurdie |
369 |
setBuildFilter(gbeFilter);
|
| 7278 |
dpurdie |
370 |
}
|
| 7279 |
dpurdie |
371 |
|
|
|
372 |
//
|
|
|
373 |
// Get the current gbe_buildfilter and return an array
|
|
|
374 |
//
|
|
|
375 |
function getBuildFilter() {
|
|
|
376 |
var uniq = [ ...new Set($('#gbe_buildfilter').val().replace(/,/g, ' ').trim().toUpperCase().split(/\s+/)) ];
|
|
|
377 |
return uniq;
|
|
|
378 |
}
|
|
|
379 |
|
|
|
380 |
|
|
|
381 |
// Handle the special NONE case
|
|
|
382 |
// Remove NONE - if there are others
|
|
|
383 |
// Insert NONE if there are no others
|
|
|
384 |
// Pretty up the GBE_BUIDLFILTER
|
|
|
385 |
// Sort the list
|
|
|
386 |
// Force upper case
|
|
|
387 |
//
|
|
|
388 |
function setBuildFilter(gbeFilter) {
|
|
|
389 |
var hasNone = false;
|
|
|
390 |
var hasOthers = false;
|
|
|
391 |
|
|
|
392 |
if ( !gbeFilter ) {
|
|
|
393 |
gbeFilter = getBuildFilter();
|
|
|
394 |
}
|
|
|
395 |
|
|
|
396 |
gbeFilter.forEach (platform => {
|
|
|
397 |
if (platform.length <= 0) {
|
|
|
398 |
} else if ( platform == 'NONE' ) {
|
|
|
399 |
hasNone = true;
|
|
|
400 |
} else if ( platform != 'TOOLSET' ) {
|
|
|
401 |
hasOthers = true;
|
|
|
402 |
}
|
|
|
403 |
});
|
|
|
404 |
|
|
|
405 |
// Insert NONE, if there are no others
|
|
|
406 |
if ( !hasNone && !hasOthers ) {
|
|
|
407 |
gbeFilter.push('NONE');
|
|
|
408 |
gbeFilter = gbeFilter.sort();
|
|
|
409 |
$('#check_none').prop('checked', true);
|
|
|
410 |
}
|
|
|
411 |
|
|
|
412 |
// Remove NONE, if there are others
|
|
|
413 |
if ( hasNone && hasOthers ) {
|
|
|
414 |
var idx = gbeFilter.indexOf('NONE');
|
|
|
415 |
if ( idx >= 0 ) {
|
|
|
416 |
gbeFilter.splice(idx, 1);
|
|
|
417 |
}
|
|
|
418 |
$('#check_none').prop('checked', false);
|
|
|
419 |
}
|
|
|
420 |
|
|
|
421 |
// Pretty up the display
|
|
|
422 |
$('#gbe_buildfilter').val(gbeFilter.sort().join(' '));
|
|
|
423 |
|
|
|
424 |
}
|
|
|
425 |
|
|
|
426 |
// Multicolumn combo box handling
|
|
|
427 |
//
|
|
|
428 |
|
|
|
429 |
$('.comboParent').on('keydown',function(e) {
|
|
|
430 |
if(e.which == 13) {
|
|
|
431 |
openComboBox(e, this);
|
|
|
432 |
}
|
|
|
433 |
});
|
|
|
434 |
|
|
|
435 |
$('.comboParent').click(openComboBox);
|
|
|
436 |
|
|
|
437 |
$('.comboBox tr').click(function(){
|
|
|
438 |
if ( $(this).hasClass('available') )
|
|
|
439 |
{
|
| 7280 |
dpurdie |
440 |
var elp = $(this).closest('.comboContainer');
|
|
|
441 |
closeComboBox(elp)
|
| 7279 |
dpurdie |
442 |
|
|
|
443 |
// Capture the data and store it in the parent element
|
|
|
444 |
elp.find('.selected').removeClass('selected');
|
|
|
445 |
$(this).addClass('selected');
|
|
|
446 |
|
|
|
447 |
var $clone = $(this).clone();
|
|
|
448 |
$('.comboParent table').first().html($clone);
|
|
|
449 |
|
|
|
450 |
// Update the field that will be submitted
|
|
|
451 |
var bmconid = $(this).data('bmconid');
|
|
|
452 |
$('#bmcon_id').val(bmconid);
|
|
|
453 |
setbmConId();
|
|
|
454 |
}
|
|
|
455 |
});
|
|
|
456 |
|
|
|
457 |
// Show the combo box
|
|
|
458 |
//
|
|
|
459 |
function openComboBox(e, that) {
|
|
|
460 |
if ( that == undefined ) {
|
|
|
461 |
that = this;
|
|
|
462 |
}
|
| 7280 |
dpurdie |
463 |
|
|
|
464 |
var el = $(that).find('.comboContainer:first');
|
|
|
465 |
if (el.is(":hidden")) {
|
|
|
466 |
el.show();
|
|
|
467 |
event.stopImmediatePropagation();
|
|
|
468 |
$(document).on('click.comboBox', function(){
|
|
|
469 |
var elp = $(that).closest('.comboContainer');
|
|
|
470 |
if ( elp.size() <= 0 ) {
|
|
|
471 |
closeComboBox(elp)
|
|
|
472 |
}
|
|
|
473 |
});
|
|
|
474 |
} else {
|
|
|
475 |
// Combobox is already shown
|
|
|
476 |
closeComboBox(el);
|
|
|
477 |
}
|
|
|
478 |
}
|
|
|
479 |
|
|
|
480 |
// Hide the combo box and remove handlers
|
|
|
481 |
//
|
|
|
482 |
function closeComboBox( el) {
|
|
|
483 |
el.hide();
|
|
|
484 |
$(document).off('click.comboBox');
|
|
|
485 |
$("#daemonHostDiv").focus();
|
| 7279 |
dpurdie |
486 |
event.stopImmediatePropagation();
|
|
|
487 |
}
|
|
|
488 |
|
| 7280 |
dpurdie |
489 |
|
| 7279 |
dpurdie |
490 |
// Init the Deamon Host display.
|
|
|
491 |
// Select the required data from the tables
|
|
|
492 |
function setDaemonHost() {
|
|
|
493 |
var el = $("#daemonHost").find('.selected');
|
|
|
494 |
if ( el.size() > 0 ) {
|
|
|
495 |
var $clone = el.clone();
|
|
|
496 |
$('#daemonHostDiv table').first().html($clone)
|
|
|
497 |
}
|
|
|
498 |
}
|
|
|
499 |
|
| 7278 |
dpurdie |
500 |
});
|
|
|
501 |
</script>
|
|
|
502 |
<%End Sub
|
|
|
503 |
'-------------------------------------------------
|
| 5357 |
dpurdie |
504 |
%>
|
|
|
505 |
<html>
|
|
|
506 |
<head>
|
|
|
507 |
<title>Release Manager</title>
|
|
|
508 |
<link rel="shortcut icon" href="<%=FavIcon%>"/>
|
|
|
509 |
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
|
|
510 |
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
| 6579 |
dpurdie |
511 |
<link href="images/release_manager_style.css?ver=<%=VixVerNum%>" rel="stylesheet" type="text/css">
|
| 6676 |
dpurdie |
512 |
<script language="JavaScript" src="scripts/common.js?ver=<%=VixVerNum%>"></script>
|
| 7278 |
dpurdie |
513 |
<!--#include file="_jquery_includes.asp"-->
|
|
|
514 |
<%Call InsertJavaScript %>
|
| 7279 |
dpurdie |
515 |
<style>
|
|
|
516 |
.comboBox {}
|
|
|
517 |
.comboParent { position:relative; background:white;}
|
|
|
518 |
.comboParent table {border-collapse:collapse;}
|
|
|
519 |
.comboParent table td {border:1px solid darkgrey; padding-right: 10px;white-space: nowrap;overflow-x: hidden;}
|
|
|
520 |
.comboParent table {color:#000000;font:11px tahoma,sans-serif;text-decoration:none;}
|
| 7280 |
dpurdie |
521 |
.comboContainer{position:absolute;overflow-y:scroll;background:white; border: 1px solid darkgrey;display:none;xxtop:0px;right:0px;left:0px;}
|
| 7279 |
dpurdie |
522 |
table.comboBox {border-collapse:collapse;}
|
|
|
523 |
table.comboBox td {border:1px solid darkgrey;padding-right: 10px;white-space: normal}
|
|
|
524 |
table.comboBox tr.available:hover {background: #1e90ff;}
|
|
|
525 |
table.comboBox tr.selected {background: #d5e8fb;}
|
|
|
526 |
table.comboBox tr.disabled {color:grey;}
|
|
|
527 |
.icon-down:before {content: "\25BC"; position:absolute;top:2;right:2;font-size:11px}
|
|
|
528 |
</style>
|
| 5357 |
dpurdie |
529 |
</head>
|
|
|
530 |
|
| 7279 |
dpurdie |
531 |
<body background="images/bg_bage_0.gif" leftmargin="0" topmargin="0" >
|
| 5357 |
dpurdie |
532 |
<table width="100%" border="0" cellspacing="0" cellpadding="10">
|
|
|
533 |
<tr>
|
| 5590 |
dpurdie |
534 |
<td bgcolor="#FFFFFF" class="body_txt">
|
| 7278 |
dpurdie |
535 |
<%If bAdd Then%>
|
|
|
536 |
Add a new DAEMON
|
|
|
537 |
<%Else%>
|
|
|
538 |
Edit an existing DAEMON
|
|
|
539 |
<%End If%>
|
| 5357 |
dpurdie |
540 |
</td>
|
|
|
541 |
</tr>
|
|
|
542 |
|
|
|
543 |
<%
|
|
|
544 |
'-- FROM START --------------------------------------------------------------------------------------------------------------
|
|
|
545 |
objFormComponent.FormName = "FormName"
|
| 5590 |
dpurdie |
546 |
objFormComponent.FormClass = "form_tight"
|
| 5357 |
dpurdie |
547 |
objFormComponent.Action = ScriptName
|
|
|
548 |
objFormComponent.OnSubmit = "ShowProgress();"
|
|
|
549 |
Call objFormComponent.FormStart()
|
|
|
550 |
%>
|
|
|
551 |
<tr>
|
|
|
552 |
<td>
|
| 5590 |
dpurdie |
553 |
<!-- LOCAL ERROR +++++++++++++++++++++++++++++++++++++++++++++++ -->
|
| 5357 |
dpurdie |
554 |
<%Call Messenger ( sMessage , 3, "100%" )%>
|
|
|
555 |
<!-- MESSAGE +++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
|
556 |
<!--#include file="messages/_msg_inline.asp"-->
|
| 7279 |
dpurdie |
557 |
<table border="0" width='700px'>
|
| 5357 |
dpurdie |
558 |
<tr>
|
| 7279 |
dpurdie |
559 |
<td width=1%><span class="body_txt">Daemon Host</span></td>
|
| 5357 |
dpurdie |
560 |
<td>
|
| 7279 |
dpurdie |
561 |
<div id='daemonHostDiv' class='comboParent icon-down' tabindex=0 >
|
|
|
562 |
<table width=100%>
|
|
|
563 |
<tr>
|
|
|
564 |
<td>Select Deamon Host</td>
|
|
|
565 |
</tr>
|
|
|
566 |
</table>
|
|
|
567 |
<div class=comboContainer style="height:10em;">
|
|
|
568 |
<%DisplayBuildMachines%>
|
|
|
569 |
</div>
|
|
|
570 |
</div>
|
|
|
571 |
</td>
|
| 5357 |
dpurdie |
572 |
</tr>
|
|
|
573 |
<tr>
|
|
|
574 |
<td><span class="body_txt">Daemon Mode</span></td>
|
|
|
575 |
<td>
|
|
|
576 |
<select name="daemon_mode" class='body_txt'>
|
| 7278 |
dpurdie |
577 |
<option value=M <%=iif(daemon_mode="M","selected","")%>>Master</option>
|
|
|
578 |
<option value=S <%=iif(daemon_mode="S","selected","")%>>Slave</option>
|
| 5357 |
dpurdie |
579 |
</select>
|
|
|
580 |
</td>
|
|
|
581 |
</tr>
|
|
|
582 |
<tr>
|
|
|
583 |
<tr>
|
|
|
584 |
<td><span class="body_txt">GBE_BUILDFILTER</span></td>
|
| 7278 |
dpurdie |
585 |
<td><input id=gbe_buildfilter name="gbe_buildfilter" type="text" class="body_txt" size="120" spellcheck="false" value="<%=gbe_buildfilter%>"></td>
|
| 5357 |
dpurdie |
586 |
</tr>
|
|
|
587 |
</tr>
|
| 7278 |
dpurdie |
588 |
<tr>
|
|
|
589 |
<td><span class="body_txt nowrap">Platforms</span></td>
|
|
|
590 |
<td style="border: darkgrey 1px solid">
|
|
|
591 |
<div style="overflow-y: scroll;height: 20em;">
|
|
|
592 |
<table id=selPlat></table>
|
|
|
593 |
</div>
|
|
|
594 |
</td>
|
|
|
595 |
</tr>
|
| 5590 |
dpurdie |
596 |
</table>
|
|
|
597 |
</td>
|
|
|
598 |
</tr>
|
|
|
599 |
<tr>
|
|
|
600 |
<td bgcolor=#FFFFFF>
|
|
|
601 |
<table class="full_table">
|
| 5357 |
dpurdie |
602 |
<tr>
|
| 5590 |
dpurdie |
603 |
<td><%=ProgressBar()%></td>
|
|
|
604 |
<td align="right">
|
|
|
605 |
<input name="btn" type="submit" class="form_btn" value="Add/Update">
|
|
|
606 |
<input name="btn" type="reset" class="form_btn" value="Cancel" onclick="parent.closeIFrame();">
|
|
|
607 |
</td>
|
| 5357 |
dpurdie |
608 |
</tr>
|
|
|
609 |
</table>
|
|
|
610 |
</td>
|
|
|
611 |
</tr>
|
|
|
612 |
<%=objPMod.ComposeHiddenTags()%>
|
|
|
613 |
<input type="hidden" name="action" value="true">
|
| 5523 |
dpurdie |
614 |
<input type="hidden" name="base_bmcon_id" value="<%=bmcon_id%>">
|
| 7279 |
dpurdie |
615 |
<input type="hidden" id=bmcon_id name="bmcon_id" value="<%=bmcon_id%>">
|
| 7278 |
dpurdie |
616 |
<%If NOT bAdd Then%>
|
|
|
617 |
<input type="hidden" name="rcon_id" value="<%=Request("rcon_id")%>">
|
|
|
618 |
<% End If %>
|
| 5357 |
dpurdie |
619 |
<%
|
|
|
620 |
Call objFormComponent.FormEnd()
|
|
|
621 |
'-- FROM END ----------------------------------------------------------------------------------------------------------------
|
|
|
622 |
%>
|
|
|
623 |
</table>
|
|
|
624 |
</body>
|
|
|
625 |
</html>
|
|
|
626 |
<%
|
|
|
627 |
'------------ RUN AFTER PAGE RENDER -----------
|
|
|
628 |
Set objFormCollector = Nothing
|
|
|
629 |
'----------------------------------------------
|
|
|
630 |
Call Destroy_All_Objects
|
|
|
631 |
%>
|