| 129 |
ghuddy |
1 |
<!-- #INCLUDE FILE="..\common\adovbs.inc" -->
|
| 119 |
ghuddy |
2 |
<%
|
|
|
3 |
'=============================================================
|
|
|
4 |
'//
|
| 127 |
ghuddy |
5 |
'// Action Button Control
|
| 119 |
ghuddy |
6 |
'//
|
|
|
7 |
'=============================================================
|
|
|
8 |
%>
|
|
|
9 |
<%
|
|
|
10 |
'--------------- Global Constants ----------------
|
|
|
11 |
Const enumABTNCTRL_ON_READONLY_HIDE = 1
|
|
|
12 |
Const enumABTNCTRL_ON_READONLY_DISABLE = 2
|
|
|
13 |
'-------------------------------------------------
|
|
|
14 |
|
| 7235 |
dpurdie |
15 |
Class ActionButton
|
|
|
16 |
Public ABTN_NAME
|
|
|
17 |
Public TEXT
|
|
|
18 |
Public ACTION_LINK
|
|
|
19 |
Public EVENT_HANDLER
|
|
|
20 |
Public IMG_ENABLED
|
|
|
21 |
Public IMG_DISABLED
|
|
|
22 |
Public HINT
|
|
|
23 |
Public VISIBLE
|
|
|
24 |
Public ACTIVE
|
|
|
25 |
Public IS_READONLY_ACTION
|
|
|
26 |
Public HIDE_ON_CLOSED
|
|
|
27 |
|
|
|
28 |
Public Sub Class_Initialize
|
|
|
29 |
ABTN_NAME = "NONE"
|
|
|
30 |
VISIBLE = "Y"
|
|
|
31 |
ACTIVE = "Y"
|
|
|
32 |
IS_READONLY_ACTION = "N"
|
|
|
33 |
HIDE_ON_CLOSED = "N"
|
|
|
34 |
End Sub
|
|
|
35 |
|
|
|
36 |
Public Sub Class_Terminate
|
|
|
37 |
End Sub
|
|
|
38 |
|
|
|
39 |
' Psuedo constructor
|
|
|
40 |
' Use: Set myButton = New ActionButton.Init("btnName")
|
|
|
41 |
Public Sub Init(bName)
|
|
|
42 |
ABTN_NAME = bName
|
|
|
43 |
Set Init = Me
|
|
|
44 |
End Sub
|
|
|
45 |
|
|
|
46 |
End Class
|
|
|
47 |
|
| 119 |
ghuddy |
48 |
Class ActionButtonControl
|
| 127 |
ghuddy |
49 |
|
|
|
50 |
Private mArrAbtnDef()
|
|
|
51 |
Private mobjNameDefMap ' Item can be accesed by name. Must be unique within one page
|
|
|
52 |
Private mobjIdDefMap ' Item can be accesed by id. Must be unique within one page. If NULL, ubound is assigned to it
|
|
|
53 |
Private mobjSeparator ' Has a name of item after separator is applied
|
|
|
54 |
Private mobjACActionsMap ' Map of buttons to actions from access control
|
|
|
55 |
|
|
|
56 |
Private mnButtonSpacer
|
|
|
57 |
Private mnImageHspace
|
|
|
58 |
|
|
|
59 |
Private mNumOfProperties
|
|
|
60 |
Private mLastPropertyInx
|
|
|
61 |
|
|
|
62 |
Private mbDisableAll
|
|
|
63 |
|
|
|
64 |
Private mbIsReadonly
|
| 4083 |
dpurdie |
65 |
Private mbIsClosed
|
| 127 |
ghuddy |
66 |
Private mReadonlyActionBehaviour
|
|
|
67 |
|
|
|
68 |
Private InxName
|
|
|
69 |
Private InxTxt
|
|
|
70 |
Private InxLink
|
|
|
71 |
Private InxEventHandler
|
|
|
72 |
Private InxImg
|
|
|
73 |
Private InxImgOff
|
|
|
74 |
Private InxHint
|
|
|
75 |
Private InxVisible
|
|
|
76 |
Private InxActive
|
|
|
77 |
Private InxIsReadonlyAction
|
| 4083 |
dpurdie |
78 |
Private InxHideOnClosed
|
| 127 |
ghuddy |
79 |
|
|
|
80 |
|
|
|
81 |
Public Property Let AllActive ( cActive )
|
|
|
82 |
If cActive = enumDB_NO Then
|
|
|
83 |
mbDisableAll = TRUE
|
|
|
84 |
Else
|
|
|
85 |
mbDisableAll = FALSE
|
|
|
86 |
End If
|
|
|
87 |
|
|
|
88 |
End Property
|
|
|
89 |
|
|
|
90 |
Public Property Let ButtonSpacer ( nWidth )
|
|
|
91 |
mnButtonSpacer = nWidth
|
|
|
92 |
End Property
|
|
|
93 |
|
|
|
94 |
Public Property Let ImageHspace ( nWidth )
|
|
|
95 |
mnImageHspace = nWidth
|
|
|
96 |
End Property
|
|
|
97 |
|
|
|
98 |
Public Property Let IsReadonlyAction ( IsReadonly )
|
|
|
99 |
If IsReadonly = enumDB_YES Then
|
|
|
100 |
mbIsReadonly = TRUE
|
|
|
101 |
|
|
|
102 |
ElseIf IsReadonly = enumDB_NO Then
|
|
|
103 |
mbIsReadonly = FALSE
|
|
|
104 |
Else
|
|
|
105 |
mbIsReadonly = IsReadonly
|
|
|
106 |
End If
|
| 4083 |
dpurdie |
107 |
End Property
|
| 127 |
ghuddy |
108 |
|
| 4083 |
dpurdie |
109 |
Public Property Let setClosed ( isClosed )
|
|
|
110 |
mbIsClosed = isClosed
|
| 127 |
ghuddy |
111 |
End Property
|
| 4083 |
dpurdie |
112 |
|
| 127 |
ghuddy |
113 |
Public Property Let ReadonlyActionBehaviour ( nEnum )
|
|
|
114 |
mReadonlyActionBehaviour = nEnum
|
|
|
115 |
End Property
|
|
|
116 |
|
|
|
117 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
118 |
Public Sub SetRelationship ( sButtonName, sActionName )
|
|
|
119 |
Call mobjACActionsMap.Add ( sButtonName, sActionName )
|
|
|
120 |
End Sub
|
|
|
121 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
122 |
Private Sub SetItemPropertyByIndex ( nInx, nProperty, Value )
|
|
|
123 |
If nInx = "" Then Exit Sub ' Exit sub if you don't find defined button
|
|
|
124 |
|
|
|
125 |
If nProperty = "" OR Value = "" Then Err.Raise 8, "Method SetItemPropertyByIndex", "Empty parameters found. nInx="& nInx &", nProperty="& nProperty &", Value="& Value
|
|
|
126 |
|
|
|
127 |
mArrAbtnDef ( nProperty, nInx ) = Value
|
|
|
128 |
|
|
|
129 |
'Response.write "mArrAbtnDef ( "& nProperty &", "& nInx &" ) = "& Value &"<br>"
|
|
|
130 |
End Sub
|
|
|
131 |
'-----------------------------------------------------------------------------------------------------------------
|
| 143 |
ghuddy |
132 |
Private Function GetItemPropertyByIndex ( nInx, nProperty )
|
|
|
133 |
GetItemPropertyByIndex = ""
|
|
|
134 |
If nInx = "" Then Exit Function ' Exit sub if you don't find defined button
|
|
|
135 |
|
|
|
136 |
If nProperty = "" Then Err.Raise 8, "Method GetItemPropertyByIndex", "Empty parameters found. nInx="& nInx &", nProperty="& nProperty
|
|
|
137 |
|
|
|
138 |
GetItemPropertyByIndex = Cstr(mArrAbtnDef ( nProperty, nInx ))
|
|
|
139 |
End Function
|
|
|
140 |
'-----------------------------------------------------------------------------------------------------------------
|
| 127 |
ghuddy |
141 |
Private Function LastItemInx ()
|
|
|
142 |
LastItemInx = UBound ( mArrAbtnDef, 2 )
|
|
|
143 |
End Function
|
|
|
144 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
145 |
Public Sub Render ( aAbtnList, ByRef oAccessControl )
|
|
|
146 |
Dim itemInx, itemName, nLastItemInx, btnImage, ButtonStr, ButtonStrDisabled, bIsVisibleAC, bIsActiveAC
|
| 6873 |
dpurdie |
147 |
Response.write "<table cellpadding='0' cellspacing='0' width='1' ><tr>"
|
| 127 |
ghuddy |
148 |
|
|
|
149 |
For Each itemName in aAbtnList
|
|
|
150 |
itemInx = mobjNameDefMap.Item (Cstr(itemName))
|
|
|
151 |
|
|
|
152 |
'-- Define Image
|
|
|
153 |
btnImage = "<img src='images/spacer.gif' width='"& mnButtonSpacer &"' height='1' align='absmiddle' border='0'>"
|
|
|
154 |
If (mArrAbtnDef( InxImg, itemInx ) <> "") Then
|
|
|
155 |
btnImage = "<img src='"& mArrAbtnDef( InxImg, itemInx ) &"' hspace='"& mnImageHspace &"' border='0' align='absmiddle'>"
|
|
|
156 |
End If
|
|
|
157 |
|
|
|
158 |
'-- Define Button
|
| 5190 |
dpurdie |
159 |
'-- Two forms
|
|
|
160 |
'-- Starts with "vixConfirm - Generate confirmation dialog with url
|
|
|
161 |
'-- Else 'eval' and use in raw form
|
|
|
162 |
Dim uhref,uevent
|
|
|
163 |
uhref = Eval( mArrAbtnDef( InxLink, itemInx ) )
|
|
|
164 |
uevent = Eval( mArrAbtnDef( InxEventHandler, itemInx ) )
|
|
|
165 |
If InStr( uevent, "vixConfirm" ) = 1 Then
|
|
|
166 |
uevent = Replace(uevent, "HREF", uhref )
|
|
|
167 |
uevent = "onclick=""" & uevent & """"
|
|
|
168 |
uhref = "javascript:;"
|
|
|
169 |
End If
|
| 6827 |
dpurdie |
170 |
Dim hint: hint = mArrAbtnDef( InxHint, itemInx )
|
|
|
171 |
If uhref = "javascript:;" Then
|
|
|
172 |
ButtonStr = _
|
|
|
173 |
"<td nowrap>"&_
|
|
|
174 |
"<span id='"& mArrAbtnDef( InxName, itemInx ) &"' "&_
|
|
|
175 |
" "& uevent &" class='menu_link' title='"& hint &"'>" &_
|
|
|
176 |
btnImage & mArrAbtnDef( InxTxt, itemInx ) &"<span>"&_
|
|
|
177 |
"</td>"
|
|
|
178 |
Else
|
|
|
179 |
ButtonStr = _
|
|
|
180 |
"<td nowrap>"&_
|
|
|
181 |
"<a id='"& mArrAbtnDef( InxName, itemInx ) &"' "&_
|
|
|
182 |
" name='"& mArrAbtnDef( InxName, itemInx ) &"' href='"& uhref &"' "&_
|
|
|
183 |
" "& uevent &" class='menu_link' title='"& hint &"'>"&_
|
|
|
184 |
btnImage & mArrAbtnDef( InxTxt, itemInx ) &"</a>"&_
|
|
|
185 |
"</td>"
|
|
|
186 |
End If
|
| 127 |
ghuddy |
187 |
|
| 7235 |
dpurdie |
188 |
'-- Define Disabled Button
|
| 5814 |
dpurdie |
189 |
' A Null value of '' will use InxImg with the lessOpacity Class
|
| 6176 |
dpurdie |
190 |
hint = hint & " [Disabled]"
|
| 5814 |
dpurdie |
191 |
If IsNull(mArrAbtnDef( InxImgOff, itemInx )) Then
|
|
|
192 |
ButtonStrDisabled = _
|
|
|
193 |
"<td nowrap>"&_
|
| 6176 |
dpurdie |
194 |
"<img src='"& mArrAbtnDef( InxImg, itemInx ) &"' hspace='2' border='0' align='absmiddle' class='lessOpacity' title='"&hint&"'>"&_
|
| 5814 |
dpurdie |
195 |
"<label class='menu_txt'>"& mArrAbtnDef( InxTxt, itemInx ) &"</label>"&_
|
|
|
196 |
"</td>"
|
|
|
197 |
Else
|
|
|
198 |
ButtonStrDisabled = _
|
|
|
199 |
"<td nowrap>"&_
|
| 6176 |
dpurdie |
200 |
"<img src='"& mArrAbtnDef( InxImgOff, itemInx ) &"' hspace='2' border='0' align='absmiddle' title='"&hint&"'>"&_
|
| 5814 |
dpurdie |
201 |
"<label class='menu_txt'>"& mArrAbtnDef( InxTxt, itemInx ) &"</label>"&_
|
|
|
202 |
"</td>"
|
|
|
203 |
End If
|
| 127 |
ghuddy |
204 |
|
|
|
205 |
|
|
|
206 |
'-- Get Access Control permissions --
|
|
|
207 |
bIsVisibleAC = TRUE
|
|
|
208 |
bIsActiveAC = TRUE
|
|
|
209 |
If NOT IsNull( oAccessControl ) Then
|
|
|
210 |
' Access control object is supplied
|
|
|
211 |
|
|
|
212 |
If mobjACActionsMap.Exists ( itemName ) Then
|
|
|
213 |
' Relationship supplied
|
|
|
214 |
bIsVisibleAC = oAccessControl.IsVisible ( mobjACActionsMap.Item( itemName ) )
|
|
|
215 |
bIsActiveAC = oAccessControl.IsActive ( mobjACActionsMap.Item( itemName ) )
|
| 143 |
ghuddy |
216 |
'Response.write "<br>" & itemName &":"& bIsVisibleAC &"-"& bIsActiveAC
|
| 127 |
ghuddy |
217 |
End If
|
|
|
218 |
|
|
|
219 |
End If
|
|
|
220 |
|
| 4670 |
dpurdie |
221 |
' Hide Buttons on closed (Release is closed, or archived)
|
| 4083 |
dpurdie |
222 |
If mbIsClosed AND (mArrAbtnDef( InxHideOnClosed, itemInx ) = enumDB_YES) Then
|
|
|
223 |
bIsVisibleAC = FALSE
|
|
|
224 |
End If
|
| 127 |
ghuddy |
225 |
|
| 4670 |
dpurdie |
226 |
' Debug
|
|
|
227 |
'Response.write "<br>Render["&itemInx &"](V:"&itemName &","&_
|
|
|
228 |
' mArrAbtnDef( InxVisible, itemInx )&":" &bIsVisibleAC & ",A:"&_
|
|
|
229 |
' mArrAbtnDef( InxActive, itemInx ) &":" &bIsActiveAC & ")"
|
|
|
230 |
|
|
|
231 |
' Button
|
|
|
232 |
' is visible AND to be shown
|
|
|
233 |
' OR isa width specification
|
|
|
234 |
' OR isa height specification
|
|
|
235 |
'
|
| 127 |
ghuddy |
236 |
If ( ( mArrAbtnDef( InxVisible, itemInx ) = enumDB_YES) AND bIsVisibleAC ) _
|
|
|
237 |
OR (InStr( itemName, "width=" ) > 0) _
|
|
|
238 |
OR (InStr( itemName, "height=" ) > 0) Then
|
|
|
239 |
' --- Display if Visible ---
|
|
|
240 |
|
|
|
241 |
'AND (NOT bIsActiveAC)
|
|
|
242 |
'( mbDisableAll OR ( mArrAbtnDef( InxActive, itemInx ) = enumDB_NO ) ) AND ( itemInx <> "" )
|
|
|
243 |
'Response.write itemName &":"& mbDisableAll &"-"& Eval( mArrAbtnDef( InxActive, itemInx ) = enumDB_NO ) &"-"& Eval( NOT bIsActiveAC ) &"-"& itemInx &"<br>"
|
|
|
244 |
If ( itemInx <> "" ) AND _
|
|
|
245 |
( mbDisableAll OR _
|
|
|
246 |
( ( mArrAbtnDef( InxActive, itemInx ) = enumDB_NO ) OR (NOT bIsActiveAC) ) _
|
|
|
247 |
) _
|
|
|
248 |
Then
|
| 143 |
ghuddy |
249 |
'Response.Write "<br>"&itemName&" is disabled," & itemInx & "," & mbDisableAll & "," & mArrAbtnDef( InxActive, itemInx ) & "," & mArrAbtnDef( InxVisible, itemInx )
|
| 127 |
ghuddy |
250 |
|
|
|
251 |
' --- Display DISABLED Button Item ---
|
|
|
252 |
Response.write ButtonStrDisabled
|
|
|
253 |
|
|
|
254 |
If mnButtonSpacer > 0 Then
|
|
|
255 |
Response.write "<td><img src='images/spacer.gif' width='"& mnButtonSpacer &"' height='1' align='absmiddle'></td>"
|
|
|
256 |
End If
|
|
|
257 |
|
|
|
258 |
Else
|
|
|
259 |
|
|
|
260 |
' --- Display Action Button Item ---
|
|
|
261 |
If ( NOT mbIsReadonly ) OR _
|
|
|
262 |
( mbIsReadonly AND mArrAbtnDef( InxIsReadonlyAction, itemInx ) = enumDB_YES ) Then
|
|
|
263 |
|
|
|
264 |
If InStr( itemName, "width=" ) > 0 Then
|
|
|
265 |
Response.write "<td><img src='images/spacer.gif' "& itemName &" height='1' align='absmiddle'></td>"
|
|
|
266 |
|
|
|
267 |
ElseIf InStr( itemName, "height=" ) > 0 Then
|
|
|
268 |
Response.write "<td><img src='images/bg_bage_2.gif' width='1' "& itemName &" align='absmiddle' hspace='4'></td>"
|
|
|
269 |
|
|
|
270 |
Else
|
|
|
271 |
'/* It is a button, i.e. Display Button */
|
|
|
272 |
|
|
|
273 |
' Check if button is loaded from Database
|
|
|
274 |
If itemInx = "" Then Err.Raise 8, "Method Render", "Definition for item name '"& itemName &"' not found."
|
|
|
275 |
|
|
|
276 |
Response.write ButtonStr
|
| 143 |
ghuddy |
277 |
'Response.Write "<br>"&itemName&" is enabled"
|
| 127 |
ghuddy |
278 |
|
|
|
279 |
If mnButtonSpacer > 0 Then
|
|
|
280 |
Response.write "<td><img src='images/spacer.gif' width='"& mnButtonSpacer &"' height='1' align='absmiddle'></td>"
|
|
|
281 |
End If
|
|
|
282 |
|
|
|
283 |
End If
|
|
|
284 |
|
|
|
285 |
ElseIf ( mbIsReadonly AND mArrAbtnDef( InxIsReadonlyAction, itemInx ) = enumDB_NO ) Then
|
|
|
286 |
|
|
|
287 |
If mReadonlyActionBehaviour = enumABTNCTRL_ON_READONLY_DISABLE Then
|
|
|
288 |
Response.write ButtonStrDisabled
|
|
|
289 |
End If
|
|
|
290 |
|
|
|
291 |
End If
|
|
|
292 |
|
|
|
293 |
End If
|
|
|
294 |
|
|
|
295 |
End If
|
|
|
296 |
|
|
|
297 |
' --- Separators added manually using method AddSeparator or AddSeparatorAfter ---
|
|
|
298 |
If mobjSeparator.Exists ( Cstr(mArrAbtnDef( InxName, itemInx )) ) Then
|
|
|
299 |
Response.write "<td><img src='images/spacer.gif' width='"& mobjSeparator.Item ( Cstr(mArrAbtnDef( InxName, itemInx )) ) &"' height='1'></td>"
|
|
|
300 |
End If
|
|
|
301 |
|
|
|
302 |
|
|
|
303 |
Next
|
|
|
304 |
|
|
|
305 |
Response.write "</tr></table>"
|
|
|
306 |
End Sub
|
| 143 |
ghuddy |
307 |
'-----------------------------------------------------------------------------------------------------------------
|
| 127 |
ghuddy |
308 |
' Return true if required_abtnName is one of the strings in the aAbtnList string array, else return false
|
|
|
309 |
Private Function isAbtnRequired (aAbtnList, required_abtnName)
|
|
|
310 |
Dim this_abtnName
|
|
|
311 |
|
|
|
312 |
isAbtnRequired = FALSE
|
|
|
313 |
|
|
|
314 |
For Each this_abtnName in aAbtnList
|
|
|
315 |
If 0 = StrComp(this_abtnName, required_abtnName) Then
|
|
|
316 |
isAbtnRequired = TRUE
|
|
|
317 |
Exit Function
|
|
|
318 |
End If
|
|
|
319 |
Next
|
|
|
320 |
End Function
|
|
|
321 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
322 |
Public Sub LoadActionButtons ( aAbtnList, ByRef objOraDatabase )
|
|
|
323 |
|
|
|
324 |
' The following code is now used in place of the earlier code to acquire action button records.
|
|
|
325 |
'
|
|
|
326 |
' This code exploits the fact that in ADO 2.8 onwards, you can create ADO DB record sets
|
|
|
327 |
' without a connection to an actual database. So, to rid ourselves of the need for a DEF_ACTION_BUTTONS
|
|
|
328 |
' table in the database, we can simply take all of the table's rows and reproduce them here in row
|
|
|
329 |
' creation and field assignment statements. The rest of the website code will be ignorant of the fact
|
|
|
330 |
' that the data has not come from the actual database.
|
|
|
331 |
'
|
|
|
332 |
' Complicating factors:
|
|
|
333 |
' 1) Some action button fields (action_link and event_handler) are to be EVAL'ed later on when used
|
|
|
334 |
' to render the HTML page. This can lead to some very complex looking strings that are difficult to
|
|
|
335 |
' understand. EVAL allows things like parRtag_id used in a string to be converted to an actual
|
|
|
336 |
' number (in string form) at time of HTML rendering. We have to use EVAL. There is no other option.
|
|
|
337 |
'
|
|
|
338 |
' 2) The strings from the database must also be represented as VBScript strings in the assignments
|
|
|
339 |
' below. This means that where a string needs to have an embedded " char, two such chars must be
|
|
|
340 |
' used, and remember about EVAL mentioned above, meaning that sometimes """" has to be used to
|
|
|
341 |
' give a single " to the resulting string that pops out from EVAL.
|
|
|
342 |
' Remember also that whilst HTML doesn't care whether you use single or double quotes, javascript
|
|
|
343 |
' does (it must use single quotes) and VBScript does (it must use double quotes)
|
|
|
344 |
'
|
|
|
345 |
' Possible Future Roadmap
|
| 7003 |
dpurdie |
346 |
' 1) Simplify the entier process
|
| 127 |
ghuddy |
347 |
'
|
|
|
348 |
'
|
|
|
349 |
Dim rsQry
|
|
|
350 |
Dim varFields
|
|
|
351 |
Dim varValues
|
|
|
352 |
|
|
|
353 |
' Create the object and configure some of its properties
|
|
|
354 |
Set rsQry = Server.CreateObject("ADODB.Recordset")
|
|
|
355 |
rsQry.CursorLocation = adUseClient
|
|
|
356 |
rsQry.CursorType = adOpenKeyset
|
|
|
357 |
rsQry.LockType = adLockOptimistic
|
|
|
358 |
|
|
|
359 |
' Based upon the original DEF_ACTION_BUTTONS table DDL, define the fields (ie. table columns) being simulated
|
|
|
360 |
rsQry.Fields.Append "ABTN_NAME", adVarChar, 64
|
|
|
361 |
rsQry.Fields.Append "TEXT", adVarChar, 128, adFldIsNullable
|
|
|
362 |
rsQry.Fields.Append "ACTION_LINK", adVarChar, 512, adFldIsNullable
|
|
|
363 |
rsQry.Fields.Append "EVENT_HANDLER", adVarChar, 512, adFldIsNullable
|
|
|
364 |
rsQry.Fields.Append "IMG_ENABLED", adVarChar, 128, adFldIsNullable
|
|
|
365 |
rsQry.Fields.Append "IMG_DISABLED", adVarChar, 128, adFldIsNullable
|
|
|
366 |
rsQry.Fields.Append "HINT", adVarChar, 256, adFldIsNullable
|
|
|
367 |
rsQry.Fields.Append "VISIBLE", adChar, 1
|
|
|
368 |
rsQry.Fields.Append "ACTIVE", adChar, 1
|
|
|
369 |
rsQry.Fields.Append "IS_READONLY_ACTION", adChar, 1
|
| 4083 |
dpurdie |
370 |
rsQry.Fields.Append "HIDE_ON_CLOSED", adChar, 1
|
| 127 |
ghuddy |
371 |
|
|
|
372 |
' open the record set for updating
|
|
|
373 |
rsQry.Open
|
|
|
374 |
|
|
|
375 |
' Specify the field order that we are going to use in our row creation statements
|
| 7003 |
dpurdie |
376 |
varFields = Array("ABTN_NAME", "TEXT",_
|
| 127 |
ghuddy |
377 |
"ACTION_LINK",_
|
|
|
378 |
"EVENT_HANDLER",_
|
|
|
379 |
"IMG_ENABLED",_
|
|
|
380 |
"IMG_DISABLED",_
|
|
|
381 |
"HINT",_
|
|
|
382 |
"VISIBLE",_
|
|
|
383 |
"ACTIVE",_
|
| 4083 |
dpurdie |
384 |
"IS_READONLY_ACTION",_
|
|
|
385 |
"HIDE_ON_CLOSED")
|
| 127 |
ghuddy |
386 |
|
|
|
387 |
' Add the rows to the record set, but only for buttons specifed in the list supplied by the caller
|
|
|
388 |
|
| 7003 |
dpurdie |
389 |
' Remember, Field Ordering is... name, text, link, event handler, en-img, dis-img, hint, visible, active, is readonly action
|
| 127 |
ghuddy |
390 |
|
|
|
391 |
If isAbtnRequired(aAbtnList, "btnNewVersion") Then
|
| 7003 |
dpurdie |
392 |
varValues = Array("btnNewVersion", null,_
|
| 127 |
ghuddy |
393 |
"""form_new_version.asp?""& objPMod.ComposeURL()",_
|
|
|
394 |
null,_
|
|
|
395 |
"images/abtn_new_version.gif",_
|
| 4671 |
dpurdie |
396 |
"images/abtn_new_version_off.gif",_
|
| 127 |
ghuddy |
397 |
"Create new version of this package.",_
|
|
|
398 |
"Y",_
|
|
|
399 |
"Y",_
|
| 4083 |
dpurdie |
400 |
"N",_
|
| 127 |
ghuddy |
401 |
"N")
|
|
|
402 |
rsQry.AddNew varFields, varValues
|
|
|
403 |
End If
|
|
|
404 |
|
|
|
405 |
If isAbtnRequired(aAbtnList, "btnVersionHistory") Then
|
| 7003 |
dpurdie |
406 |
varValues = Array("btnVersionHistory", null,_
|
| 127 |
ghuddy |
407 |
"""javascript:;""",_
|
| 5933 |
dpurdie |
408 |
"""onClick=""""MM_openBrWindow('_wform_versions_history_release_notes.asp?OLDpv_id=""& parPv_id &""&pkg_id=""& pkgInfoHash.Item (""pkg_id"") &""&FLpkg_version=*""& pkgInfoHash.Item(""v_ext"") &""&FLuser_name=*&rfile=""& scriptName &""&""& objPMod.ComposeURL() &""','History','resizable=yes,scrollbars=yes,width=1000,height='+ ( screen.height - 100 ) );""""""",_
|
| 127 |
ghuddy |
409 |
"images/abtn_version_history.gif",_
|
|
|
410 |
null,_
|
|
|
411 |
"Show version history of this package.",_
|
|
|
412 |
"Y",_
|
|
|
413 |
"Y",_
|
| 4083 |
dpurdie |
414 |
"Y",_
|
|
|
415 |
"N")
|
| 127 |
ghuddy |
416 |
rsQry.AddNew varFields, varValues
|
|
|
417 |
End If
|
|
|
418 |
|
|
|
419 |
If isAbtnRequired(aAbtnList, "btnRemovePackage") Then
|
| 7003 |
dpurdie |
420 |
varValues = Array("btnRemovePackage", null,_
|
| 127 |
ghuddy |
421 |
"""_remove_package.asp?pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
422 |
"""vixConfirm('Remove this package from this release.',{title:'Remove Package', button:'Remove', url: 'HREF'});""",_
|
| 127 |
ghuddy |
423 |
"images/abtn_remove_pkg.gif",_
|
| 4670 |
dpurdie |
424 |
"images/abtn_remove_pkg_off.gif",_
|
|
|
425 |
"Remove the package-version from this Release.",_
|
| 127 |
ghuddy |
426 |
"Y",_
|
|
|
427 |
"Y",_
|
| 4083 |
dpurdie |
428 |
"N",_
|
| 127 |
ghuddy |
429 |
"N")
|
|
|
430 |
rsQry.AddNew varFields, varValues
|
|
|
431 |
End If
|
|
|
432 |
|
|
|
433 |
If isAbtnRequired(aAbtnList, "btnMakeRelease") Then
|
| 7003 |
dpurdie |
434 |
varValues = Array("btnMakeRelease", null,_
|
| 127 |
ghuddy |
435 |
"""_make_released.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
436 |
"""vixConfirm('Making this package released will prevent any further changes',{title:'Make Release', button:'Release', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
437 |
"icons/i_make_released.gif",_
|
|
|
438 |
"icons/i_make_released_off.gif",_
|
|
|
439 |
"Make this package released, so that other packages can use it.",_
|
|
|
440 |
"Y",_
|
|
|
441 |
"Y",_
|
| 4083 |
dpurdie |
442 |
"N",_
|
| 127 |
ghuddy |
443 |
"N")
|
|
|
444 |
rsQry.AddNew varFields, varValues
|
|
|
445 |
End If
|
|
|
446 |
|
|
|
447 |
If isAbtnRequired(aAbtnList, "btnMakeUnrelease") Then
|
| 7003 |
dpurdie |
448 |
varValues = Array("btnMakeUnrelease", null,_
|
| 127 |
ghuddy |
449 |
"""_make_unreleased.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
450 |
"""vixConfirm('You are going to unrelease this package.',{title:'Make UnRelease', button:'UnRelease', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
451 |
"icons/i_make_unreleased.gif",_
|
|
|
452 |
"icons/i_make_unreleased_off.gif",_
|
| 183 |
brianf |
453 |
"Unrelease this package.",_
|
| 127 |
ghuddy |
454 |
"Y",_
|
|
|
455 |
"Y",_
|
| 4083 |
dpurdie |
456 |
"N",_
|
| 127 |
ghuddy |
457 |
"N")
|
|
|
458 |
rsQry.AddNew varFields, varValues
|
|
|
459 |
End If
|
|
|
460 |
|
|
|
461 |
If isAbtnRequired(aAbtnList, "btnMakePending") Then
|
| 7003 |
dpurdie |
462 |
varValues = Array("btnMakePending", null,_
|
| 127 |
ghuddy |
463 |
"""_make_pending.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
464 |
"""vixConfirm('Making this package pending will prevent any further changes.',{title:'Make Pending', button:'Pending', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
465 |
"icons/i_make_pending.gif",_
|
|
|
466 |
"icons/i_make_pending_off.gif",_
|
|
|
467 |
"Make this package pending for build/release.",_
|
|
|
468 |
"Y",_
|
|
|
469 |
"Y",_
|
| 4083 |
dpurdie |
470 |
"N",_
|
| 127 |
ghuddy |
471 |
"N")
|
|
|
472 |
rsQry.AddNew varFields, varValues
|
|
|
473 |
End If
|
|
|
474 |
|
|
|
475 |
If isAbtnRequired(aAbtnList, "btnRejectPackage") Then
|
| 7003 |
dpurdie |
476 |
varValues = Array("btnRejectPackage", null,_
|
| 127 |
ghuddy |
477 |
"""_make_rejected.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
478 |
"""vixConfirm('Rejecting a new package version will move it to Work-In-Progress.<br>Rejecting a merge package version will simply remove it from pending.',{title:'Reject Package', button:'Reject', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
479 |
"icons/i_reject_pending.gif",_
|
| 7003 |
dpurdie |
480 |
null,_
|
| 127 |
ghuddy |
481 |
"Reject this package from Pending.",_
|
|
|
482 |
"Y",_
|
|
|
483 |
"Y",_
|
| 4083 |
dpurdie |
484 |
"N",_
|
| 127 |
ghuddy |
485 |
"N")
|
|
|
486 |
rsQry.AddNew varFields, varValues
|
|
|
487 |
End If
|
|
|
488 |
|
|
|
489 |
If isAbtnRequired(aAbtnList, "btnMoveToView") Then
|
| 7003 |
dpurdie |
490 |
varValues = Array("btnMoveToView", null,_
|
| 127 |
ghuddy |
491 |
"""javascript:;""",_
|
| 6579 |
dpurdie |
492 |
"""onClick=""""MM_openVixIFrame('_wform_change_group.asp?""& objPMod.ComposeURL() &""','Set Package Base View');""""""",_
|
| 127 |
ghuddy |
493 |
"images/abtn_move_package.gif",_
|
| 4670 |
dpurdie |
494 |
"images/abtn_move_package_off.gif",_
|
| 127 |
ghuddy |
495 |
"Move this package to different Base View (Group).",_
|
|
|
496 |
"Y",_
|
|
|
497 |
"Y",_
|
| 4083 |
dpurdie |
498 |
"N",_
|
| 127 |
ghuddy |
499 |
"N")
|
|
|
500 |
rsQry.AddNew varFields, varValues
|
|
|
501 |
End If
|
|
|
502 |
|
|
|
503 |
If isAbtnRequired(aAbtnList, "btnReversionPackage") Then
|
| 7003 |
dpurdie |
504 |
varValues = Array("btnReversionPackage", null,_
|
| 127 |
ghuddy |
505 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
506 |
"""onClick=""""MM_openVixIFrame('_wform_rename_version.asp?renameMode=1&rfile=""& ScriptName & objPMod.ComposeURLWithout(""rfile"") &""','Rename Version Number');""""""",_
|
| 127 |
ghuddy |
507 |
"images/abtn_rename_version.gif",_
|
|
|
508 |
"images/abtn_rename_version_off.gif",_
|
|
|
509 |
"Reversion this package.",_
|
|
|
510 |
"Y",_
|
|
|
511 |
"Y",_
|
| 6176 |
dpurdie |
512 |
"Y",_
|
| 4199 |
dpurdie |
513 |
"N")
|
| 127 |
ghuddy |
514 |
rsQry.AddNew varFields, varValues
|
|
|
515 |
End If
|
|
|
516 |
|
|
|
517 |
If isAbtnRequired(aAbtnList, "btnStickyNotes") Then
|
| 7003 |
dpurdie |
518 |
varValues = Array("btnStickyNotes", null,_
|
| 127 |
ghuddy |
519 |
"""javascript:;""",_
|
|
|
520 |
"""onClick=""""showHideNote();""""""",_
|
|
|
521 |
"notemanager/images/note.gif",_
|
|
|
522 |
null,_
|
|
|
523 |
"Sticky notes",_
|
|
|
524 |
"Y",_
|
|
|
525 |
"Y",_
|
| 4083 |
dpurdie |
526 |
"N",_
|
| 127 |
ghuddy |
527 |
"N")
|
|
|
528 |
rsQry.AddNew varFields, varValues
|
|
|
529 |
End If
|
|
|
530 |
|
|
|
531 |
If isAbtnRequired(aAbtnList, "btnObsoletePatch") Then
|
| 7003 |
dpurdie |
532 |
varValues = Array("btnObsoletePatch", null,_
|
| 127 |
ghuddy |
533 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
534 |
"""onClick=""""MM_openVixIFrame('_wform_obsolete_patch.asp?rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Make Patch Obsolete');""""""",_
|
| 127 |
ghuddy |
535 |
"images/abtn_obsolete_patch.gif",_
|
|
|
536 |
"images/abtn_obsolete_patch_off.gif",_
|
|
|
537 |
"Make this patch obsolete.",_
|
|
|
538 |
"Y",_
|
|
|
539 |
"Y",_
|
| 4083 |
dpurdie |
540 |
"N",_
|
| 127 |
ghuddy |
541 |
"N")
|
|
|
542 |
rsQry.AddNew varFields, varValues
|
|
|
543 |
End If
|
|
|
544 |
|
|
|
545 |
If isAbtnRequired(aAbtnList, "btnUnobsoletePatch") Then
|
| 7003 |
dpurdie |
546 |
varValues = Array("btnUnobsoletePatch", null,_
|
| 127 |
ghuddy |
547 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
548 |
"""onClick=""""MM_openVixIFrame('_wform_obsolete_patch.asp?action=true&unobsolete=true&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','UnObsolete Patch');""""""",_
|
| 127 |
ghuddy |
549 |
"images/abtn_unobsolete_patch.gif",_
|
|
|
550 |
null,_
|
|
|
551 |
"Undo patch obsolete.",_
|
|
|
552 |
"Y",_
|
|
|
553 |
"Y",_
|
| 4083 |
dpurdie |
554 |
"N",_
|
| 127 |
ghuddy |
555 |
"N")
|
|
|
556 |
rsQry.AddNew varFields, varValues
|
|
|
557 |
End If
|
|
|
558 |
|
| 7022 |
dpurdie |
559 |
If isAbtnRequired(aAbtnList, "btnApprovePackage") Then
|
| 7003 |
dpurdie |
560 |
varValues = Array("btnApprovePackage", null,_
|
|
|
561 |
"""javascript:;""",_
|
| 7240 |
dpurdie |
562 |
"""onClick=""""vixDialog('_wform_build_package.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id &""',{width : 'auto', title: 'Approve Package', onLoad: 'buildPkgInit'});""""""",_
|
| 7003 |
dpurdie |
563 |
"icons/i_submit_build.gif",_
|
|
|
564 |
null,_
|
|
|
565 |
"Make this package released for automated build.",_
|
|
|
566 |
"Y",_
|
|
|
567 |
"Y",_
|
|
|
568 |
"N",_
|
|
|
569 |
"N")
|
|
|
570 |
rsQry.AddNew varFields, varValues
|
|
|
571 |
End If
|
|
|
572 |
|
| 127 |
ghuddy |
573 |
If isAbtnRequired(aAbtnList, "btnNewRelease") Then
|
| 7003 |
dpurdie |
574 |
varValues = Array("btnNewRelease", null,_
|
| 6508 |
dpurdie |
575 |
"""new_release.asp?" & objPMod.ComposeURL() &"""",_
|
| 127 |
ghuddy |
576 |
null,_
|
|
|
577 |
"images/abtn_new_release.gif",_
|
|
|
578 |
"images/abtn_new_release_off.gif",_
|
|
|
579 |
"Create new release...",_
|
|
|
580 |
"Y",_
|
|
|
581 |
"Y",_
|
| 4083 |
dpurdie |
582 |
"N",_
|
| 127 |
ghuddy |
583 |
"N")
|
|
|
584 |
rsQry.AddNew varFields, varValues
|
|
|
585 |
End If
|
|
|
586 |
|
|
|
587 |
If isAbtnRequired(aAbtnList, "btnEditRelease") Then
|
| 7003 |
dpurdie |
588 |
varValues = Array("btnEditRelease", null,_
|
| 127 |
ghuddy |
589 |
"""javascript:go_submit( document.FormName, """"btnEditRelease"""" );""",_
|
|
|
590 |
null,_
|
|
|
591 |
"images/abtn_edit.gif",_
|
|
|
592 |
"images/abtn_edit_off.gif",_
|
|
|
593 |
"Edit selected release details...",_
|
|
|
594 |
"Y",_
|
|
|
595 |
"Y",_
|
| 4083 |
dpurdie |
596 |
"N",_
|
| 127 |
ghuddy |
597 |
"N")
|
|
|
598 |
rsQry.AddNew varFields, varValues
|
|
|
599 |
End If
|
|
|
600 |
|
|
|
601 |
If isAbtnRequired(aAbtnList, "btnMergeManager") Then
|
| 7003 |
dpurdie |
602 |
varValues = Array("btnMergeManager", null,_
|
| 6508 |
dpurdie |
603 |
"""diff.asp""",_
|
| 127 |
ghuddy |
604 |
null,_
|
|
|
605 |
"images/abtn_merge_manager.gif",_
|
|
|
606 |
"images/abtn_merge_manager_off.gif",_
|
| 5177 |
dpurdie |
607 |
"Run merge manager...",_
|
| 127 |
ghuddy |
608 |
"Y",_
|
|
|
609 |
"Y",_
|
| 4083 |
dpurdie |
610 |
"N",_
|
| 127 |
ghuddy |
611 |
"N")
|
|
|
612 |
rsQry.AddNew varFields, varValues
|
|
|
613 |
End If
|
|
|
614 |
|
|
|
615 |
If isAbtnRequired(aAbtnList, "btnMoveRelease") Then
|
| 7003 |
dpurdie |
616 |
varValues = Array("btnMoveRelease", null,_
|
| 127 |
ghuddy |
617 |
"""javascript:go_submit( document.FormName, """"btnMoveRelease"""" );""",_
|
|
|
618 |
null,_
|
|
|
619 |
"images/abtn_move_release.gif",_
|
|
|
620 |
"images/abtn_move_release_off.gif",_
|
|
|
621 |
"Move selected release vertically...",_
|
|
|
622 |
"Y",_
|
|
|
623 |
"Y",_
|
| 4083 |
dpurdie |
624 |
"N",_
|
| 127 |
ghuddy |
625 |
"N")
|
|
|
626 |
rsQry.AddNew varFields, varValues
|
|
|
627 |
End If
|
|
|
628 |
|
|
|
629 |
If isAbtnRequired(aAbtnList, "btnNewVersion-MASSREF") Then
|
| 7003 |
dpurdie |
630 |
varValues = Array("btnNewVersion-MASSREF", null,_
|
| 127 |
ghuddy |
631 |
"""form_new_version.asp?rtag_id=""& AssocMASSREFValue &""&pv_id=""& Request(""pv_id"")",_
|
|
|
632 |
null,_
|
|
|
633 |
"images/abtn_new_version_MassRef.gif",_
|
|
|
634 |
null,_
|
|
|
635 |
"Create new version of this package in associated MASS REF.",_
|
|
|
636 |
"Y",_
|
|
|
637 |
"Y",_
|
| 4083 |
dpurdie |
638 |
"N",_
|
| 127 |
ghuddy |
639 |
"N")
|
|
|
640 |
rsQry.AddNew varFields, varValues
|
|
|
641 |
End If
|
|
|
642 |
|
| 5930 |
dpurdie |
643 |
If isAbtnRequired(aAbtnList, "btnDestroyWip") Then
|
| 7003 |
dpurdie |
644 |
varValues = Array("btnDestroyWip", null,_
|
| 5930 |
dpurdie |
645 |
"""javascript:;""",_
|
|
|
646 |
"""onClick=""""MM_openVixIFrame('_destroy_package.asp?bfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Destroy WIP');""""""",_
|
|
|
647 |
"icons/i_destroy_package.gif",_
|
|
|
648 |
"icons/i_destroy_package_off.gif",_
|
|
|
649 |
"Destroy this WIP",_
|
|
|
650 |
"Y",_
|
|
|
651 |
"Y",_
|
|
|
652 |
"Y",_
|
|
|
653 |
"N")
|
|
|
654 |
rsQry.AddNew varFields, varValues
|
|
|
655 |
End If
|
|
|
656 |
|
| 127 |
ghuddy |
657 |
If isAbtnRequired(aAbtnList, "btnRecycleBin") Then
|
| 7003 |
dpurdie |
658 |
varValues = Array("btnRecycleBin", null,_
|
| 5930 |
dpurdie |
659 |
"""javascript:;""",_
|
|
|
660 |
"""onClick=""""MM_openVixIFrame('_destroy_package.asp?&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Destroy Package Version');""""""",_
|
| 127 |
ghuddy |
661 |
"icons/i_destroy_package.gif",_
|
| 5929 |
dpurdie |
662 |
"icons/i_destroy_package_off.gif",_
|
|
|
663 |
"Destroy this package version",_
|
| 127 |
ghuddy |
664 |
"Y",_
|
|
|
665 |
"Y",_
|
| 5929 |
dpurdie |
666 |
"Y",_
|
| 127 |
ghuddy |
667 |
"N")
|
|
|
668 |
rsQry.AddNew varFields, varValues
|
|
|
669 |
End If
|
|
|
670 |
|
|
|
671 |
If isAbtnRequired(aAbtnList, "btnDeprecation") Then
|
| 7003 |
dpurdie |
672 |
varValues = Array("btnDeprecation", null,_
|
| 127 |
ghuddy |
673 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
674 |
"""onClick='MM_openVixIFrame(""""_wform_deprecate_package.asp?rfile=""& scriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id &"""""",""""Deprecate Package"""")' class='body_txt' title='Deprecate the package.'""",_
|
| 127 |
ghuddy |
675 |
"images/BombBorder.gif",_
|
| 5169 |
dpurdie |
676 |
"images/BombBorder_off.gif",_
|
| 127 |
ghuddy |
677 |
"Deprecate this package in this release.",_
|
|
|
678 |
"Y",_
|
|
|
679 |
"Y",_
|
| 4083 |
dpurdie |
680 |
"N",_
|
| 127 |
ghuddy |
681 |
"N")
|
|
|
682 |
rsQry.AddNew varFields, varValues
|
|
|
683 |
End If
|
|
|
684 |
|
|
|
685 |
If isAbtnRequired(aAbtnList, "btnUnDeprecation") Then
|
| 7003 |
dpurdie |
686 |
varValues = Array("btnUnDeprecation", null,_
|
| 5190 |
dpurdie |
687 |
"""_wform_undeprecate_package.asp?rfile=""& scriptName &""&pkg_id=""& pkgInfoHash.Item(""pkg_id"") &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id &""""",_
|
|
|
688 |
"""vixConfirm('You are about to undeprecate package: ""& pkgInfoHash.Item (""pkg_name"") &"".',{title:'Undeprecate Package', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
689 |
"images/BombBorder.gif",_
|
|
|
690 |
null,_
|
| 5190 |
dpurdie |
691 |
"Un Deprecate this package in this release",_
|
| 127 |
ghuddy |
692 |
"Y",_
|
|
|
693 |
"Y",_
|
| 4083 |
dpurdie |
694 |
"N",_
|
| 127 |
ghuddy |
695 |
"N")
|
|
|
696 |
rsQry.AddNew varFields, varValues
|
|
|
697 |
End If
|
|
|
698 |
|
|
|
699 |
If isAbtnRequired(aAbtnList, "btnAdminView") Then
|
| 7003 |
dpurdie |
700 |
varValues = Array("btnAdminView", null,_
|
| 6508 |
dpurdie |
701 |
"""form_edit_project_view.asp?proj_id=""& parProjId &""""",_
|
| 127 |
ghuddy |
702 |
null,_
|
|
|
703 |
"images/view_admin.gif",_
|
|
|
704 |
null,_
|
|
|
705 |
"Administer the views in the project.",_
|
|
|
706 |
"Y",_
|
|
|
707 |
"Y",_
|
| 4083 |
dpurdie |
708 |
"N",_
|
| 127 |
ghuddy |
709 |
"N")
|
|
|
710 |
rsQry.AddNew varFields, varValues
|
|
|
711 |
End If
|
|
|
712 |
|
| 6508 |
dpurdie |
713 |
If isAbtnRequired(aAbtnList, "btnNotificationView") Then
|
| 7003 |
dpurdie |
714 |
varValues = Array("btnNotificationView", null,_
|
| 6508 |
dpurdie |
715 |
"""form_view_release_notifications.asp?proj_id=""& parProjId &""""",_
|
|
|
716 |
null,_
|
|
|
717 |
"images/view_notifications.gif",_
|
|
|
718 |
null,_
|
|
|
719 |
"Display the package notification information in this project .",_
|
|
|
720 |
"Y",_
|
|
|
721 |
"Y",_
|
|
|
722 |
"N",_
|
|
|
723 |
"N")
|
|
|
724 |
rsQry.AddNew varFields, varValues
|
|
|
725 |
End If
|
|
|
726 |
|
| 6770 |
dpurdie |
727 |
If isAbtnRequired(aAbtnList, "btnProjectReplication") Then
|
| 7003 |
dpurdie |
728 |
varValues = Array("btnProjectReplication", null,_
|
| 6770 |
dpurdie |
729 |
"""form_project_replication.asp?proj_id=""& parProjId &""""",_
|
|
|
730 |
null,_
|
|
|
731 |
"images/project_replication.gif",_
|
|
|
732 |
null,_
|
|
|
733 |
"Display the project replication information.",_
|
|
|
734 |
"Y",_
|
|
|
735 |
"Y",_
|
|
|
736 |
"N",_
|
|
|
737 |
"N")
|
|
|
738 |
rsQry.AddNew varFields, varValues
|
|
|
739 |
End If
|
| 6508 |
dpurdie |
740 |
|
| 127 |
ghuddy |
741 |
' NOTE: I do not think this one is ever used
|
|
|
742 |
If isAbtnRequired(aAbtnList, "btnAddProc") Then
|
| 7003 |
dpurdie |
743 |
varValues = Array("btnAddProc", "Add Process",_
|
| 127 |
ghuddy |
744 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
745 |
"""onClick=""""MM_openVixIFrame('wAddProc.asp?rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Add Process');""""""",_
|
| 127 |
ghuddy |
746 |
"icons/btn_add.gif",_
|
|
|
747 |
null,_
|
|
|
748 |
null,_
|
|
|
749 |
"Y",_
|
|
|
750 |
"Y",_
|
| 4083 |
dpurdie |
751 |
"N",_
|
| 127 |
ghuddy |
752 |
"N")
|
|
|
753 |
rsQry.AddNew varFields, varValues
|
|
|
754 |
End If
|
|
|
755 |
|
|
|
756 |
If isAbtnRequired(aAbtnList, "btnEditGBE_Machtype") Then
|
| 7003 |
dpurdie |
757 |
varValues = Array("btnEditGBE_Machtype", null,_
|
| 127 |
ghuddy |
758 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
759 |
"""onClick=""""MM_openVixIFrame('wAddMachtype.asp?type=edit&gbe_id=""& gbe_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Machine Type');""""""",_
|
| 127 |
ghuddy |
760 |
"icons/i_edit.gif",_
|
| 5814 |
dpurdie |
761 |
null,_
|
| 127 |
ghuddy |
762 |
"Edit this GBE MachType value",_
|
|
|
763 |
"Y",_
|
|
|
764 |
"Y",_
|
| 4083 |
dpurdie |
765 |
"N",_
|
| 127 |
ghuddy |
766 |
"N")
|
|
|
767 |
rsQry.AddNew varFields, varValues
|
|
|
768 |
End If
|
|
|
769 |
|
|
|
770 |
If isAbtnRequired(aAbtnList, "btnDeleteGBE_Machtype") Then
|
| 7003 |
dpurdie |
771 |
varValues = Array("btnDeleteGBE_Machtype", null,_
|
| 127 |
ghuddy |
772 |
"""_DeleteMachtype.asp?rfile=""& SCRIPT_NAME &""&gbe_id=""& gbe_id &""&""& objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
773 |
"""vixConfirm('Remove \'""& GBE_VALUE &""\' from this list?',{title:'Remove GBE_MACHTYPE', button:'Remove', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
774 |
"icons/i_remove.gif",_
|
|
|
775 |
null,_
|
|
|
776 |
"Delete this GBE MachType value",_
|
|
|
777 |
"Y",_
|
|
|
778 |
"Y",_
|
| 4083 |
dpurdie |
779 |
"N",_
|
| 127 |
ghuddy |
780 |
"N")
|
|
|
781 |
rsQry.AddNew varFields, varValues
|
|
|
782 |
End If
|
|
|
783 |
|
|
|
784 |
If isAbtnRequired(aAbtnList, "btnEditDaemon") Then
|
| 7003 |
dpurdie |
785 |
varValues = Array("btnEditDaemon", null,_
|
| 127 |
ghuddy |
786 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
787 |
"""onClick=""""MM_openVixIFrame('wAddDaemon.asp?type=edit&rcon_id=""& rcon_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Build Daemon');""""""",_
|
| 127 |
ghuddy |
788 |
"icons/i_edit.gif",_
|
| 5983 |
dpurdie |
789 |
NULL,_
|
| 4295 |
dpurdie |
790 |
"Edit Build Configuration",_
|
| 127 |
ghuddy |
791 |
"Y",_
|
|
|
792 |
"Y",_
|
| 4083 |
dpurdie |
793 |
"N",_
|
| 127 |
ghuddy |
794 |
"N")
|
|
|
795 |
rsQry.AddNew varFields, varValues
|
|
|
796 |
End If
|
|
|
797 |
|
|
|
798 |
If isAbtnRequired(aAbtnList, "btnDeleteDaemon") Then
|
| 7003 |
dpurdie |
799 |
varValues = Array("btnDeleteDaemon", null,_
|
| 4293 |
dpurdie |
800 |
"""_DeleteDaemon.asp?rcon_id=""& rcon_id & ""&action=Delete&"" & objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
801 |
"""vixConfirm('Delete the \'""& Daemon &""\' Daemon and associated information from this Release?',{title:'Remove Deamon', button:'Remove', url: 'HREF'});""""""",_
|
| 4295 |
dpurdie |
802 |
"icons/i_remove.gif",_
|
| 4293 |
dpurdie |
803 |
null,_
|
| 4295 |
dpurdie |
804 |
"Delete Daemon",_
|
| 4293 |
dpurdie |
805 |
"Y",_
|
|
|
806 |
"Y",_
|
|
|
807 |
"N",_
|
|
|
808 |
"N")
|
|
|
809 |
rsQry.AddNew varFields, varValues
|
|
|
810 |
End If
|
|
|
811 |
|
|
|
812 |
If isAbtnRequired(aAbtnList, "btnRemoveDaemon") Then
|
| 7003 |
dpurdie |
813 |
varValues = Array("btnRemoveDaemon", null,_
|
| 4293 |
dpurdie |
814 |
"""_DeleteDaemon.asp?rcon_id=""& rcon_id & ""&action=Remove&""& objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
815 |
"""vixConfirm('Unlink the \'""& Daemon &""\' Daemon from this Release.<p>Configuration information will be maintained.',{title:'Unlink Deamon', button:'Unlink', url: 'HREF'});""""""",_
|
| 4295 |
dpurdie |
816 |
"icons/break_link.gif",_
|
| 127 |
ghuddy |
817 |
null,_
|
| 4295 |
dpurdie |
818 |
"Unlink Daemon from entry",_
|
| 127 |
ghuddy |
819 |
"Y",_
|
|
|
820 |
"Y",_
|
| 4083 |
dpurdie |
821 |
"N",_
|
| 127 |
ghuddy |
822 |
"N")
|
|
|
823 |
rsQry.AddNew varFields, varValues
|
|
|
824 |
End If
|
|
|
825 |
|
| 6770 |
dpurdie |
826 |
If isAbtnRequired(aAbtnList, "btnEditBlatMachine") Then
|
| 7003 |
dpurdie |
827 |
varValues = Array("btnEditBlatMachine", null,_
|
| 6770 |
dpurdie |
828 |
"""javascript:;""",_
|
|
|
829 |
"""onClick=""""MM_openVixIFrame('wAddPkgReplica.asp?type=edit&server_id=""& server_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Package Replica');""""""",_
|
|
|
830 |
"icons/i_edit.gif",_
|
|
|
831 |
NULL,_
|
|
|
832 |
"Edit Package Replica",_
|
|
|
833 |
"Y",_
|
|
|
834 |
"Y",_
|
|
|
835 |
"N",_
|
|
|
836 |
"N")
|
|
|
837 |
rsQry.AddNew varFields, varValues
|
|
|
838 |
End If
|
|
|
839 |
|
|
|
840 |
If isAbtnRequired(aAbtnList, "btnDeleteBlatMachine") Then
|
| 7003 |
dpurdie |
841 |
varValues = Array("btnDeleteBlatMachine", null,_
|
| 6770 |
dpurdie |
842 |
"""_DeletePkgReplica.asp?rfile=""& SCRIPT_NAME &""&server_id=""& server_id &""&""& objPMod.ComposeURL()",_
|
|
|
843 |
"""vixConfirm('Remove Package Replica \'""& display_name &""\' from this list?',{title:'Delete Package Replica', button:'Delete', url: 'HREF'});""""""",_
|
|
|
844 |
"icons/i_remove.gif",_
|
|
|
845 |
null,_
|
|
|
846 |
"Delete Package Replica",_
|
|
|
847 |
"Y",_
|
|
|
848 |
"Y",_
|
|
|
849 |
"N",_
|
|
|
850 |
"N")
|
|
|
851 |
rsQry.AddNew varFields, varValues
|
|
|
852 |
End If
|
|
|
853 |
|
| 127 |
ghuddy |
854 |
If isAbtnRequired(aAbtnList, "btnPendingIntegration") Then
|
| 7003 |
dpurdie |
855 |
varValues = Array("btnPendingIntegration", null,_
|
| 127 |
ghuddy |
856 |
"""_modify_product_state.asp?state_id=1&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_
|
| 5190 |
dpurdie |
857 |
"""vixConfirm('Do you want to proceed to make this product pending for INTEGRATION?',{title:'Make Pending', button:'Pending', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
858 |
"icons/PendingIntegration.gif",_
|
|
|
859 |
null,_
|
|
|
860 |
"Make this product pending for Integration.",_
|
|
|
861 |
"Y",_
|
|
|
862 |
"Y",_
|
| 4083 |
dpurdie |
863 |
"N",_
|
| 127 |
ghuddy |
864 |
"N")
|
|
|
865 |
rsQry.AddNew varFields, varValues
|
|
|
866 |
End If
|
|
|
867 |
|
|
|
868 |
If isAbtnRequired(aAbtnList, "btnPendingTest") Then
|
| 7003 |
dpurdie |
869 |
varValues = Array("btnPendingTest", null,_
|
| 127 |
ghuddy |
870 |
"""_modify_product_state.asp?state_id=2&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_
|
| 5190 |
dpurdie |
871 |
"""vixConfirm('Do you want to proceed to make this product pending for Test?',{title:'Make Test', button:'Test', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
872 |
"icons/PendingTest.gif",_
|
|
|
873 |
null,_
|
|
|
874 |
"Make this product pending for Test.",_
|
|
|
875 |
"Y",_
|
|
|
876 |
"Y",_
|
| 4083 |
dpurdie |
877 |
"N",_
|
| 127 |
ghuddy |
878 |
"N")
|
|
|
879 |
rsQry.AddNew varFields, varValues
|
|
|
880 |
End If
|
|
|
881 |
|
|
|
882 |
If isAbtnRequired(aAbtnList, "btnPendingDeployment") Then
|
| 7003 |
dpurdie |
883 |
varValues = Array("btnPendingDeployment", null,_
|
| 127 |
ghuddy |
884 |
"""_modify_product_state.asp?state_id=3&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_
|
| 5190 |
dpurdie |
885 |
"""vixConfirm('Do you want to proceed to make this product pending for DEPLOYMENT?',{title:'Make Deploy', button:'Deploy', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
886 |
"icons/PendingDeployment.gif",_
|
|
|
887 |
null,_
|
|
|
888 |
"Make this product pending for Deployment.",_
|
|
|
889 |
"Y",_
|
|
|
890 |
"Y",_
|
| 4083 |
dpurdie |
891 |
"N",_
|
| 127 |
ghuddy |
892 |
"N")
|
|
|
893 |
rsQry.AddNew varFields, varValues
|
|
|
894 |
End If
|
|
|
895 |
|
|
|
896 |
If isAbtnRequired(aAbtnList, "btnRejectProduct") Then
|
| 7003 |
dpurdie |
897 |
varValues = Array("btnRejectProduct", null,_
|
| 127 |
ghuddy |
898 |
"""_modify_product_state.asp?state_id=4&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_
|
| 5190 |
dpurdie |
899 |
"""vixConfirm('Do you want to REJECT this product from DEPLOYMENT?',{title:'Reject Product', button:'Reject', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
900 |
"icons/i_reject_pending.gif",_
|
|
|
901 |
null,_
|
|
|
902 |
"Reject this product from Deployment.",_
|
|
|
903 |
"Y",_
|
|
|
904 |
"Y",_
|
| 4083 |
dpurdie |
905 |
"N",_
|
| 127 |
ghuddy |
906 |
"N")
|
|
|
907 |
rsQry.AddNew varFields, varValues
|
|
|
908 |
End If
|
|
|
909 |
|
|
|
910 |
If isAbtnRequired(aAbtnList, "btnPendingIntegrateAndDeploy") Then
|
| 7003 |
dpurdie |
911 |
varValues = Array("btnPendingIntegrateAndDeploy", null,_
|
| 127 |
ghuddy |
912 |
"""_modify_product_state.asp?state_id=5&rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_
|
| 5190 |
dpurdie |
913 |
"""vixConfirm('Do you want to proceed to make this product pending for INTEGRATION and DEPLOYMENT?',{title:'Pending Product', button:'Confirm', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
914 |
"icons/PendingDeployment.gif",_
|
|
|
915 |
null,_
|
|
|
916 |
"Make this product pending for Integration and Deployment.",_
|
|
|
917 |
"Y",_
|
|
|
918 |
"Y",_
|
| 4083 |
dpurdie |
919 |
"N",_
|
| 127 |
ghuddy |
920 |
"N")
|
|
|
921 |
rsQry.AddNew varFields, varValues
|
|
|
922 |
End If
|
|
|
923 |
|
|
|
924 |
If isAbtnRequired(aAbtnList, "btnDeleteSchedule") Then
|
| 7003 |
dpurdie |
925 |
varValues = Array("btnDeleteSchedule", null,_
|
| 127 |
ghuddy |
926 |
"""_DeleteSchedule.asp?scheduled_id=""& scheduled_id &""&""& objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
927 |
"""vixConfirm('Remove Schedule from this list?',{title:'Remove Schedule', button:'Remove', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
928 |
"icons/i_remove.gif",_
|
| 177 |
brianf |
929 |
"icons/i_remove_dis.gif",_
|
| 127 |
ghuddy |
930 |
"Delete Schedule",_
|
|
|
931 |
"Y",_
|
|
|
932 |
"Y",_
|
| 4083 |
dpurdie |
933 |
"N",_
|
| 127 |
ghuddy |
934 |
"N")
|
|
|
935 |
rsQry.AddNew varFields, varValues
|
|
|
936 |
End If
|
|
|
937 |
|
|
|
938 |
If isAbtnRequired(aAbtnList, "btnApproveMerge") Then
|
| 7003 |
dpurdie |
939 |
varValues = Array("btnApproveMerge", null,_
|
| 127 |
ghuddy |
940 |
"""_approve_merge.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id",_
|
| 5190 |
dpurdie |
941 |
"""vixConfirm('The release will be updated by this merge operation',{title:'Approve Merge', button:'Merge', url: 'HREF'});""""""",_
|
| 127 |
ghuddy |
942 |
"icons/i_make_released.gif",_
|
|
|
943 |
"icons/i_make_released_off.gif",_
|
|
|
944 |
"Approve and carry out the pending merge operation",_
|
|
|
945 |
"Y",_
|
|
|
946 |
"Y",_
|
| 4083 |
dpurdie |
947 |
"N",_
|
| 127 |
ghuddy |
948 |
"N")
|
|
|
949 |
rsQry.AddNew varFields, varValues
|
|
|
950 |
End If
|
|
|
951 |
|
| 143 |
ghuddy |
952 |
If isAbtnRequired(aAbtnList, "btnRejectAutobuildPackage") Then
|
| 7003 |
dpurdie |
953 |
varValues = Array("btnRejectAutobuildPackage", null,_
|
| 143 |
ghuddy |
954 |
"""_make_rejected.asp?rfile=""& ScriptName &""&pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
955 |
"""vixConfirm('Rejecting a package already approved for autobuild will set it back to Work-In-Progress',{title:'Reject Package', button:'Reject', url: 'HREF'});""""""",_
|
| 143 |
ghuddy |
956 |
"icons/i_reject_pending.gif",_
|
|
|
957 |
"icons/i_reject_pending_off.gif",_
|
|
|
958 |
"Unapprove autobuild, move back to Work-In-Progress.",_
|
|
|
959 |
"Y",_
|
|
|
960 |
"Y",_
|
| 4083 |
dpurdie |
961 |
"N",_
|
| 143 |
ghuddy |
962 |
"N")
|
|
|
963 |
rsQry.AddNew varFields, varValues
|
|
|
964 |
End If
|
|
|
965 |
|
| 147 |
ghuddy |
966 |
If isAbtnRequired(aAbtnList, "btnDeleteDaemonInst") Then
|
| 7003 |
dpurdie |
967 |
varValues = Array("btnDeleteDaemonInst", null,_
|
| 147 |
ghuddy |
968 |
"""_DeleteDaemonInstruction.asp?rfile=""& ScriptName &""&inst_id=""& daemonInstId &""&""& objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
969 |
"""vixConfirm('Delete the Daemon Instruction from this list?',{title:'Delete Instruction', button:'Delete', url: 'HREF', width : 350, height : 150});""""""",_
|
| 147 |
ghuddy |
970 |
"icons/i_remove.gif",_
|
|
|
971 |
null,_
|
|
|
972 |
"Delete this Daemon Instruction",_
|
|
|
973 |
"Y",_
|
|
|
974 |
"Y",_
|
| 4083 |
dpurdie |
975 |
"N",_
|
| 147 |
ghuddy |
976 |
"N")
|
|
|
977 |
rsQry.AddNew varFields, varValues
|
|
|
978 |
End If
|
|
|
979 |
|
|
|
980 |
If isAbtnRequired(aAbtnList, "btnEditDaemonInst") Then
|
| 7003 |
dpurdie |
981 |
varValues = Array("btnEditDaemonInst", null,_
|
| 5590 |
dpurdie |
982 |
"""javascript:;""",_
|
|
|
983 |
"""onClick=""""MM_openVixIFrame('wAddDaemonInstruction.asp?edit=true&inst_id=""& daemonInstId & ""&sort="" & parSortOrder & ""&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Edit Daemon Instruction');""""""",_
|
| 147 |
ghuddy |
984 |
"icons/i_edit.gif",_
|
| 5983 |
dpurdie |
985 |
NULL,_
|
| 147 |
ghuddy |
986 |
"Edit this Daemon Instruction",_
|
|
|
987 |
"Y",_
|
|
|
988 |
"Y",_
|
| 4083 |
dpurdie |
989 |
"N",_
|
| 147 |
ghuddy |
990 |
"N")
|
|
|
991 |
rsQry.AddNew varFields, varValues
|
|
|
992 |
End If
|
|
|
993 |
|
|
|
994 |
If isAbtnRequired(aAbtnList, "btnAddDaemonInstRipplePackage") Then
|
| 7003 |
dpurdie |
995 |
varValues = Array("btnAddDaemonInstRipplePackage", null,_
|
| 5590 |
dpurdie |
996 |
"""javascript:;""",_
|
|
|
997 |
"""onClick=""""MM_openVixIFrame('wAddDaemonInstructionSimple.asp?op_code=0"" &""&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Ripple or Test Build Package');""""""",_
|
| 147 |
ghuddy |
998 |
"images/ripplesquare.gif",_
|
| 6185 |
dpurdie |
999 |
NULL,_
|
| 147 |
ghuddy |
1000 |
"Request the Build Daemon to ripple this package version",_
|
|
|
1001 |
"Y",_
|
|
|
1002 |
"Y",_
|
| 4083 |
dpurdie |
1003 |
"N",_
|
|
|
1004 |
"Y")
|
| 147 |
ghuddy |
1005 |
rsQry.AddNew varFields, varValues
|
|
|
1006 |
End If
|
|
|
1007 |
|
| 6185 |
dpurdie |
1008 |
If isAbtnRequired(aAbtnList, "btnDelDaemonInstRipplePackage") Then
|
| 7003 |
dpurdie |
1009 |
varValues = Array("btnDelDaemonInstRipplePackage", null,_
|
| 6185 |
dpurdie |
1010 |
"""_DeleteDaemonInstruction.asp?rfile=""& ScriptName &""&opCode="" & OP_CODE_0_RIPPLE_BUILD_PACKAGE & ""&""& objPMod.ComposeURL()",_
|
|
|
1011 |
"""vixConfirm('Delete the Ripple Request?',{title:'Delete Ripple Request', button:'Delete', url: 'HREF', width : 350, height : 150});""""""",_
|
| 6187 |
dpurdie |
1012 |
"images/CascadeSquareDel.gif",_
|
| 6185 |
dpurdie |
1013 |
NULL,_
|
|
|
1014 |
"Delete the Ripple Request",_
|
|
|
1015 |
"Y",_
|
|
|
1016 |
"Y",_
|
|
|
1017 |
"N",_
|
|
|
1018 |
"Y")
|
|
|
1019 |
rsQry.AddNew varFields, varValues
|
|
|
1020 |
End If
|
|
|
1021 |
|
|
|
1022 |
If isAbtnRequired(aAbtnList, "btnDelDaemonInstTestPackage") Then
|
| 7003 |
dpurdie |
1023 |
varValues = Array("btnDelDaemonInstTestPackage", null,_
|
| 6185 |
dpurdie |
1024 |
"""_DeleteDaemonInstruction.asp?rfile=""& ScriptName &""&opCode="" & OP_CODE_1_TEST_BUILD_PACKAGE & ""&""& objPMod.ComposeURL()",_
|
|
|
1025 |
"""vixConfirm('Delete the Test Build Request?',{title:'Delete Test Build Request', button:'Delete', url: 'HREF', width : 350, height : 150});""""""",_
|
| 6187 |
dpurdie |
1026 |
"images/testSquareDel.gif",_
|
| 6185 |
dpurdie |
1027 |
NULL,_
|
|
|
1028 |
"Delete the Test Build Request",_
|
|
|
1029 |
"Y",_
|
|
|
1030 |
"Y",_
|
|
|
1031 |
"N",_
|
|
|
1032 |
"Y")
|
|
|
1033 |
rsQry.AddNew varFields, varValues
|
|
|
1034 |
End If
|
|
|
1035 |
|
|
|
1036 |
|
| 149 |
ghuddy |
1037 |
If isAbtnRequired(aAbtnList, "btnAddDaemonInstTestBuildPackage") Then
|
| 7003 |
dpurdie |
1038 |
varValues = Array("btnAddDaemonInstTestBuildPackage", null,_
|
| 5590 |
dpurdie |
1039 |
"""javascript:;""",_
|
|
|
1040 |
"""onClick=""""MM_openVixIFrame('wAddDaemonInstruction.asp?op_code=1"" &""&rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Add Daemon Instruction');""""""",_
|
| 149 |
ghuddy |
1041 |
"images/abtn_test_build.gif",_
|
| 6188 |
dpurdie |
1042 |
NULL,_
|
| 149 |
ghuddy |
1043 |
"Request the Build Daemon to test build this WIP package version",_
|
|
|
1044 |
"Y",_
|
|
|
1045 |
"Y",_
|
| 4083 |
dpurdie |
1046 |
"N",_
|
| 149 |
ghuddy |
1047 |
"N")
|
|
|
1048 |
rsQry.AddNew varFields, varValues
|
|
|
1049 |
End If
|
|
|
1050 |
|
| 157 |
ghuddy |
1051 |
If isAbtnRequired(aAbtnList, "btnMoveWIPToRelease") Then
|
| 7003 |
dpurdie |
1052 |
varValues = Array("btnMoveWIPToRelease", null,_
|
| 157 |
ghuddy |
1053 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
1054 |
"""onClick=""""MM_openVixIFrame('_wform_move_wip.asp"" &""?rfile=""& ScriptName &""&""& objPMod.ComposeURL() &""','Move WIP');""""""",_
|
| 157 |
ghuddy |
1055 |
"images/abtn_move_wip_to_release.gif",_
|
| 4670 |
dpurdie |
1056 |
"images/abtn_move_wip_to_release_off.gif",_
|
| 157 |
ghuddy |
1057 |
"Move this WIP to another release.",_
|
|
|
1058 |
"Y",_
|
|
|
1059 |
"Y",_
|
| 4083 |
dpurdie |
1060 |
"N",_
|
| 157 |
ghuddy |
1061 |
"N")
|
|
|
1062 |
rsQry.AddNew varFields, varValues
|
|
|
1063 |
End If
|
|
|
1064 |
|
| 183 |
brianf |
1065 |
If isAbtnRequired(aAbtnList, "btnLockPackage") Then
|
| 7003 |
dpurdie |
1066 |
varValues = Array("btnLockPackage", null,_
|
| 183 |
brianf |
1067 |
"""_s_lock_package.asp?pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
1068 |
"""vixConfirm('Lock Package.<p>This will prevent changes to the package.',{title:'Lock Package', button:'Lock', url: 'HREF'});""""""",_
|
| 183 |
brianf |
1069 |
"icons/i_lock.gif",_
|
|
|
1070 |
"icons/i_lock_off.gif",_
|
|
|
1071 |
"Lock this package.",_
|
|
|
1072 |
"Y",_
|
|
|
1073 |
"Y",_
|
| 4083 |
dpurdie |
1074 |
"N",_
|
| 183 |
brianf |
1075 |
"N")
|
|
|
1076 |
rsQry.AddNew varFields, varValues
|
|
|
1077 |
End If
|
|
|
1078 |
|
|
|
1079 |
If isAbtnRequired(aAbtnList, "btnUnLockPackage") Then
|
| 7003 |
dpurdie |
1080 |
varValues = Array("btnUnLockPackage", null,_
|
| 183 |
brianf |
1081 |
"""_s_unlock_package.asp?pv_id=""& parPv_id &""&rtag_id=""& parRtag_id ",_
|
| 5190 |
dpurdie |
1082 |
"""vixConfirm('Unlock Package.<p>This may have serious side effects.',{title:'Unlock Package', button:'Unlock', url: 'HREF'});""""""",_
|
| 183 |
brianf |
1083 |
"icons/i_unlock.gif",_
|
|
|
1084 |
"icons/i_unlock_off.gif",_
|
|
|
1085 |
"Unlock this package.",_
|
|
|
1086 |
"Y",_
|
|
|
1087 |
"Y",_
|
| 4083 |
dpurdie |
1088 |
"N",_
|
| 183 |
brianf |
1089 |
"N")
|
|
|
1090 |
rsQry.AddNew varFields, varValues
|
|
|
1091 |
End If
|
|
|
1092 |
|
| 4293 |
dpurdie |
1093 |
|
|
|
1094 |
|
| 3959 |
dpurdie |
1095 |
If isAbtnRequired(aAbtnList, "btnEditProjectExtensions") Then
|
| 7003 |
dpurdie |
1096 |
varValues = Array("btnEditProjectExtensions", null,_
|
| 3959 |
dpurdie |
1097 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
1098 |
"""onClick=""""MM_openVixIFrame('wAddProjectExtension.asp?type=edit&ext=""& extName &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Project Extension');""""""",_
|
| 3959 |
dpurdie |
1099 |
"icons/i_edit.gif",_
|
| 5983 |
dpurdie |
1100 |
NULL,_
|
| 3959 |
dpurdie |
1101 |
"Edit Project Extensions",_
|
|
|
1102 |
"Y",_
|
|
|
1103 |
"Y",_
|
| 4083 |
dpurdie |
1104 |
"N",_
|
| 3959 |
dpurdie |
1105 |
"N")
|
|
|
1106 |
rsQry.AddNew varFields, varValues
|
|
|
1107 |
End If
|
|
|
1108 |
|
|
|
1109 |
If isAbtnRequired(aAbtnList, "btnDeleteProjectExtension") Then
|
| 7003 |
dpurdie |
1110 |
varValues = Array("btnDeleteProjectExtension", null,_
|
| 3959 |
dpurdie |
1111 |
"""_DeleteProjectExtension.asp?rfile=""& SCRIPT_NAME &""&ext=""& extName &""&""& objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
1112 |
"""vixConfirm('Remove Project Extension: \'""& extName &""\' from this list?<p>This will prevent it from being used in new package versions.',{title:'Remove Project Extension', button:'Remove', url: 'HREF'});""""""",_
|
| 3959 |
dpurdie |
1113 |
"icons/i_remove.gif",_
|
|
|
1114 |
null,_
|
|
|
1115 |
"Delete Project Extension",_
|
|
|
1116 |
"Y",_
|
|
|
1117 |
"Y",_
|
| 4083 |
dpurdie |
1118 |
"N",_
|
| 3959 |
dpurdie |
1119 |
"N")
|
|
|
1120 |
rsQry.AddNew varFields, varValues
|
|
|
1121 |
End If
|
| 4029 |
dpurdie |
1122 |
|
|
|
1123 |
If isAbtnRequired(aAbtnList, "btnEditGBE_Machclass") Then
|
| 7003 |
dpurdie |
1124 |
varValues = Array("btnEditGBE_Machclass", null,_
|
| 4029 |
dpurdie |
1125 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
1126 |
"""onClick=""""MM_openVixIFrame('wAddMachclass.asp?type=edit&bm_id=""& bm_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Machine Class');""""""",_
|
| 4029 |
dpurdie |
1127 |
"icons/i_edit.gif",_
|
| 5983 |
dpurdie |
1128 |
NULL,_
|
| 4029 |
dpurdie |
1129 |
"Edit this GBE MachClass value",_
|
|
|
1130 |
"Y",_
|
|
|
1131 |
"Y",_
|
| 4083 |
dpurdie |
1132 |
"N",_
|
| 4029 |
dpurdie |
1133 |
"N")
|
|
|
1134 |
rsQry.AddNew varFields, varValues
|
|
|
1135 |
End If
|
|
|
1136 |
|
|
|
1137 |
If isAbtnRequired(aAbtnList, "btnDeleteGBE_Machclass") Then
|
| 7003 |
dpurdie |
1138 |
varValues = Array("btnDeleteGBE_Machclass", null,_
|
| 4040 |
dpurdie |
1139 |
"""wAddMachclass.asp?type=delete&bm_id=""& bm_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
1140 |
"""vixConfirm('Delete the \'""& GBE_VALUE &""\' Machine Class',{title:'Delete Machine Class', button:'Delete', url: 'HREF'});""""""",_
|
| 4029 |
dpurdie |
1141 |
"icons/i_remove.gif",_
|
|
|
1142 |
null,_
|
|
|
1143 |
"Delete this GBE MachClass value",_
|
|
|
1144 |
"Y",_
|
|
|
1145 |
"Y",_
|
| 4083 |
dpurdie |
1146 |
"N",_
|
| 4029 |
dpurdie |
1147 |
"N")
|
|
|
1148 |
rsQry.AddNew varFields, varValues
|
|
|
1149 |
End If
|
| 4670 |
dpurdie |
1150 |
|
| 5122 |
dpurdie |
1151 |
If isAbtnRequired(aAbtnList, "btnEditGBE_BuildStandard") Then
|
| 7003 |
dpurdie |
1152 |
varValues = Array("btnEditGBE_BuildStandard", null,_
|
| 5122 |
dpurdie |
1153 |
"""javascript:;""",_
|
| 5590 |
dpurdie |
1154 |
"""onClick=""""MM_openVixIFrame('wAddBuildStandard.asp?type=edit&bsa_id=""& bsa_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Build Standard');""""""",_
|
| 5122 |
dpurdie |
1155 |
"icons/i_edit.gif",_
|
| 5983 |
dpurdie |
1156 |
NULL,_
|
| 5122 |
dpurdie |
1157 |
"Edit this Build Standard",_
|
|
|
1158 |
"Y",_
|
|
|
1159 |
"Y",_
|
|
|
1160 |
"N",_
|
|
|
1161 |
"N")
|
|
|
1162 |
rsQry.AddNew varFields, varValues
|
|
|
1163 |
End If
|
|
|
1164 |
|
|
|
1165 |
If isAbtnRequired(aAbtnList, "btnDeleteGBE_BuildStandard") Then
|
| 7003 |
dpurdie |
1166 |
varValues = Array("btnDeleteGBE_BuildStandard", null,_
|
| 5122 |
dpurdie |
1167 |
"""_DeleteBuildStandard.asp?rfile=""& SCRIPT_NAME &""&bsa_id=""& bsa_id &""&""& objPMod.ComposeURL()",_
|
| 5190 |
dpurdie |
1168 |
"""vixConfirm('Delete the \'""& GBE_VALUE &""\' Build Standard',{title : 'Delete Build Standard', button:'Delete', url: 'HREF'});""""""",_
|
| 5122 |
dpurdie |
1169 |
"icons/i_remove.gif",_
|
|
|
1170 |
null,_
|
|
|
1171 |
"Delete this Build Standard",_
|
|
|
1172 |
"Y",_
|
|
|
1173 |
"Y",_
|
|
|
1174 |
"N",_
|
|
|
1175 |
"N")
|
|
|
1176 |
rsQry.AddNew varFields, varValues
|
|
|
1177 |
End If
|
| 3959 |
dpurdie |
1178 |
|
| 7225 |
dpurdie |
1179 |
If isAbtnRequired(aAbtnList, "btnEditBuildPlatforms") Then
|
|
|
1180 |
varValues = Array("btnEditBuildPlatforms", null,_
|
|
|
1181 |
"""javascript:;""",_
|
|
|
1182 |
"""onClick=""""MM_openVixIFrame('wAddBuildPlatform.asp?type=edit&bp_id=""& bp_id &""&rfile=""& SCRIPT_NAME &""&""& objPMod.ComposeURL() &""','Edit Build Platform');""""""",_
|
|
|
1183 |
"icons/i_edit.gif",_
|
|
|
1184 |
NULL,_
|
|
|
1185 |
"Edit Build Platform",_
|
|
|
1186 |
"Y",_
|
|
|
1187 |
"Y",_
|
|
|
1188 |
"N",_
|
|
|
1189 |
"N")
|
|
|
1190 |
rsQry.AddNew varFields, varValues
|
|
|
1191 |
End If
|
|
|
1192 |
|
|
|
1193 |
If isAbtnRequired(aAbtnList, "btnDeleteBuildPlatforms") Then
|
|
|
1194 |
varValues = Array("btnDeleteBuildPlatforms", null,_
|
|
|
1195 |
"""_DeleteBuildPlatform.asp?rfile=""& SCRIPT_NAME &""&bp_id=""& bp_id &""&""& objPMod.ComposeURL()",_
|
|
|
1196 |
"""vixConfirm('Remove Build Platform \'""& bp_name &""\' from this list?',{title:'Delete Build Platform', button:'Delete', url: 'HREF'});""""""",_
|
|
|
1197 |
"icons/i_remove.gif",_
|
|
|
1198 |
null,_
|
|
|
1199 |
"Delete Build Platform",_
|
|
|
1200 |
"Y",_
|
|
|
1201 |
"Y",_
|
|
|
1202 |
"N",_
|
|
|
1203 |
"N")
|
|
|
1204 |
rsQry.AddNew varFields, varValues
|
|
|
1205 |
End If
|
|
|
1206 |
|
| 127 |
ghuddy |
1207 |
' Move cursor to the first record
|
|
|
1208 |
rsQry.MoveFirst
|
|
|
1209 |
|
|
|
1210 |
If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
|
|
|
1211 |
Call LoadButtons ( rsQry.GetRows() )
|
|
|
1212 |
End If
|
|
|
1213 |
|
|
|
1214 |
rsQry.Close
|
|
|
1215 |
Set rsQry = Nothing
|
|
|
1216 |
End Sub
|
|
|
1217 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1218 |
Public Sub LoadButtons ( aRows )
|
|
|
1219 |
Dim nProperty, newArrayDim, LastRow, rowNum
|
|
|
1220 |
|
|
|
1221 |
LastRow = UBound( aRows, 2 )
|
|
|
1222 |
|
|
|
1223 |
For rowNum = 0 To LastRow
|
|
|
1224 |
' Increase array by 1
|
|
|
1225 |
newArrayDim = LastRowInx() + 1
|
|
|
1226 |
ReDim Preserve mArrAbtnDef( mNumOfProperties, newArrayDim )
|
|
|
1227 |
|
|
|
1228 |
|
|
|
1229 |
mobjNameDefMap.Item ( Cstr( aRows ( InxName, rowNum ) ) ) = newArrayDim
|
|
|
1230 |
|
|
|
1231 |
For nProperty = 0 To mLastPropertyInx
|
|
|
1232 |
mArrAbtnDef ( nProperty, newArrayDim ) = aRows ( nProperty, rowNum )
|
|
|
1233 |
|
|
|
1234 |
Next
|
|
|
1235 |
|
|
|
1236 |
Next
|
|
|
1237 |
|
|
|
1238 |
End Sub
|
|
|
1239 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1240 |
Private Function LastRowInx ()
|
|
|
1241 |
LastRowInx = UBound ( mArrAbtnDef, 2 )
|
|
|
1242 |
End Function
|
|
|
1243 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1244 |
Public Sub AddSeparatorAfter ( sItemName, sSeparatorWidth )
|
|
|
1245 |
If InStr( sItemName, " " ) > 0 Then Err.Raise 8, "Method AddSeparatorAfter", "Item Name '"& sItemName &"' cannot have spaces."
|
|
|
1246 |
mobjSeparator.Add (Cstr(sItemName)), CStr(sSeparatorWidth)
|
|
|
1247 |
End Sub
|
|
|
1248 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1249 |
Public Sub AddSeparator ( sSeparatorWidth )
|
|
|
1250 |
mobjSeparator.Add ( Cstr(mArrAbtnDef(InxName, LastItemInx())) ), CStr(sSeparatorWidth)
|
|
|
1251 |
End Sub
|
|
|
1252 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1253 |
Private Sub SetItemDefaults ( sItemName )
|
|
|
1254 |
' Additional default setup
|
|
|
1255 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxActive, enumDB_YES ) ' Default Active = enumDB_YES
|
|
|
1256 |
End Sub
|
|
|
1257 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1258 |
Public Sub Text ( sItemName, Value )
|
|
|
1259 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxTxt, Value )
|
|
|
1260 |
End Sub
|
|
|
1261 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1262 |
Public Sub Image ( sItemName, Value )
|
|
|
1263 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxImg, Value )
|
|
|
1264 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxImgOff, Value ) ' Default image disable to be the same as image
|
|
|
1265 |
End Sub
|
|
|
1266 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1267 |
Public Sub ImageOff ( sItemName, Value )
|
|
|
1268 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxImgOff, Value )
|
|
|
1269 |
End Sub
|
|
|
1270 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1271 |
Public Sub Link ( sItemName, Value )
|
|
|
1272 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxLink, Value )
|
|
|
1273 |
End Sub
|
|
|
1274 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1275 |
Public Sub EventHandler ( sItemName, Value )
|
|
|
1276 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxEventHandler, Value )
|
|
|
1277 |
End Sub
|
|
|
1278 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1279 |
Public Sub Hint ( sItemName, Value )
|
|
|
1280 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxHint, Value )
|
|
|
1281 |
End Sub
|
|
|
1282 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1283 |
Public Sub Visible ( sItemName, Value )
|
|
|
1284 |
'Response.write sItemName &"here"& mobjNameDefMap.Item (Cstr(sItemName))
|
|
|
1285 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxVisible, Value )
|
|
|
1286 |
End Sub
|
|
|
1287 |
'-----------------------------------------------------------------------------------------------------------------
|
| 5929 |
dpurdie |
1288 |
Public Sub ReadOnly ( sItemName, Value )
|
|
|
1289 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxIsReadonlyAction, Value )
|
|
|
1290 |
End Sub
|
|
|
1291 |
'-----------------------------------------------------------------------------------------------------------------
|
| 143 |
ghuddy |
1292 |
Public Function IsVisible ( sItemName )
|
|
|
1293 |
'Response.write sItemName &"here"& mobjNameDefMap.Item (Cstr(sItemName))
|
|
|
1294 |
IsVisible = GetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxVisible )
|
|
|
1295 |
End Function
|
|
|
1296 |
'-----------------------------------------------------------------------------------------------------------------
|
| 127 |
ghuddy |
1297 |
Public Sub Active ( sItemName, Value )
|
|
|
1298 |
'Response.write sItemName &"here"& mobjNameDefMap.Item (Cstr(sItemName))
|
|
|
1299 |
Call SetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxActive, Value )
|
|
|
1300 |
End Sub
|
|
|
1301 |
'-----------------------------------------------------------------------------------------------------------------
|
| 143 |
ghuddy |
1302 |
Public Function IsActive ( sItemName )
|
|
|
1303 |
IsActive = GetItemPropertyByIndex ( mobjNameDefMap.Item (Cstr(sItemName)), InxActive )
|
|
|
1304 |
End Function
|
|
|
1305 |
'-----------------------------------------------------------------------------------------------------------------
|
| 127 |
ghuddy |
1306 |
Private Sub Class_Initialize()
|
|
|
1307 |
'// Perform action on creation of object. e.g. Set myObj = New ThisClassName
|
|
|
1308 |
Set mobjNameDefMap = CreateObject("Scripting.Dictionary")
|
|
|
1309 |
Set mobjIdDefMap = CreateObject("Scripting.Dictionary")
|
|
|
1310 |
Set mobjSeparator = CreateObject("Scripting.Dictionary")
|
|
|
1311 |
Set mobjACActionsMap = CreateObject("Scripting.Dictionary")
|
|
|
1312 |
|
|
|
1313 |
'mbIsReadonly = FALSE ' Tell control that it should use only readonly action buttons (i.e. actions which will not alter database )
|
|
|
1314 |
mReadonlyActionBehaviour = enumABTNCTRL_ON_READONLY_HIDE ' Tell control what to do by default if mbIsReadonly = TRUE
|
|
|
1315 |
|
|
|
1316 |
mnButtonSpacer = 0
|
|
|
1317 |
mnImageHspace = 4
|
|
|
1318 |
|
| 7003 |
dpurdie |
1319 |
mNumOfProperties = 11 ' Number of properties in array which define one menu item.
|
| 127 |
ghuddy |
1320 |
mLastPropertyInx = mNumOfProperties - 1
|
|
|
1321 |
|
|
|
1322 |
mbDisableAll = FALSE
|
|
|
1323 |
|
|
|
1324 |
ReDim mArrAbtnDef ( mNumOfProperties, -1 )
|
| 7003 |
dpurdie |
1325 |
InxName = 0
|
|
|
1326 |
InxTxt = 1
|
|
|
1327 |
InxLink = 2
|
|
|
1328 |
InxEventHandler = 3
|
|
|
1329 |
InxImg = 4
|
|
|
1330 |
InxImgOff = 5
|
|
|
1331 |
InxHint = 6
|
|
|
1332 |
InxVisible = 7
|
|
|
1333 |
InxActive = 8
|
|
|
1334 |
InxIsReadonlyAction = 9
|
|
|
1335 |
InxHideOnClosed = 10
|
| 127 |
ghuddy |
1336 |
End Sub
|
|
|
1337 |
'-----------------------------------------------------------------------------------------------------------------
|
|
|
1338 |
Private Sub Class_Terminate()
|
|
|
1339 |
'// Perform action on object disposal. e.g. Set myObj = Nothing
|
|
|
1340 |
Set mobjNameDefMap = Nothing
|
|
|
1341 |
Set mobjIdDefMap = Nothing
|
|
|
1342 |
Set mobjSeparator = Nothing
|
|
|
1343 |
Set mobjACActionsMap = Nothing
|
|
|
1344 |
|
|
|
1345 |
|
|
|
1346 |
End Sub
|
|
|
1347 |
'-----------------------------------------------------------------------------------------------------------------
|
| 119 |
ghuddy |
1348 |
End Class
|
| 127 |
ghuddy |
1349 |
%>
|