Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5048 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'   sdk_opr_json.asp
5
'   Ajax support for SDK operations
5097 dpurdie 6
'       addSdkName
7
'       getSdkNameData
8
'       updateSdkName
9
'       getSdkNames
10
'       getBaseViews
11
'       getSdkDetails
12
'       getSdkVersions
13
'       getSdkVersionDetails
14
'       updateSdkVersionDetails
15
'       getProjectList
16
'       getReleaseList
17
'       addNewSdkVersion
18
'       deleteSdkVersion
19
'       setSdkState
20
'       setSdkContentState
21
'
5048 dpurdie 22
'=====================================================
23
%>
24
<%
25
Option explicit
5049 dpurdie 26
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
27
Response.ContentType = "text/html"
28
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
29
Response.CodePage = 65001
30
Response.CharSet = "UTF-8"
5048 dpurdie 31
%>
32
<!--#include file="common/conf.asp"-->
33
<!--#include file="common/globals.asp"-->
34
<!--#include file="common/qstr.asp"-->
35
<!--#include file="common/common_subs.asp"-->
36
<!--#include file="_access_control_general.asp"-->
37
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
38
<%
39
'------------ Variable Definition -------------
40
Dim parOpr
41
Dim result
42
Dim SqlQry
43
Dim rsQry
44
 
45
parOpr = QStrPar("action")
46
result = -1
47
 
48
' Init the output JSON class
49
'   Operations can add data
50
'   Default data will be added at the end
51
Dim oJSON
52
Set oJSON = New aspJSON
53
Dim newitem
54
 
55
Function canModify
5097 dpurdie 56
    canModify = canActionControl("AdminSdk")
5048 dpurdie 57
    If NOT canModify Then
58
        result = -4
59
        oJSON.data("error") = 1
60
        oJSON.data("emsgSummary") = "Permission denied"
61
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
62
    End If
63
End Function
64
 
65
'   
66
'   Perform the body of the operations within a Sub and use
67
'   On Error Resule Next to catch errors that accur in the code
68
'
69
On Error Resume Next
5097 dpurdie 70
If (parOpr = "addSdkName") Then
71
    If canModify() Then addSdkName
5048 dpurdie 72
 
5097 dpurdie 73
ElseIf (parOpr = "getSdkNameData") Then
74
     getSdkNameData
5048 dpurdie 75
 
5097 dpurdie 76
ElseIf (parOpr = "updateSdkName") Then
77
    If canModify() Then updateSdkName
5048 dpurdie 78
 
5049 dpurdie 79
ElseIf (parOpr = "getSdkNames") Then
80
    getSdkNames
81
 
5097 dpurdie 82
ElseIf (parOpr = "getBaseViews") Then
83
    getBaseViews
84
 
5053 dpurdie 85
ElseIf (parOpr = "getSdkDetails") Then
86
    getSdkDetails
87
 
5050 dpurdie 88
ElseIf (parOpr = "getSdkVersions") Then
89
    getSdkVersions
90
 
5052 dpurdie 91
ElseIf (parOpr = "getSdkVersionDetails") Then
92
    getSdkVersionDetails
93
 
5098 dpurdie 94
ElseIf (parOpr = "getSdkUsage") Then
95
    getSdkUsage
96
 
5055 dpurdie 97
ElseIf (parOpr = "updateSdkVersionDetails") Then
98
    updateSdkVersionDetails
99
 
5049 dpurdie 100
ElseIf (parOpr = "getProjectList") Then
101
    getProjectList
102
 
103
ElseIf (parOpr = "getReleaseList") Then
104
    getReleaseList
105
 
106
ElseIf (parOpr = "addNewSdkVersion") Then
107
    addNewSdkVersion
108
 
5053 dpurdie 109
ElseIf (parOpr = "deleteSdkVersion") Then
110
    deleteSdkVersion
111
 
5052 dpurdie 112
ElseIf (parOpr = "setSdkState") Then
113
    setSdkState
114
 
5050 dpurdie 115
ElseIf (parOpr = "setSdkContentState") Then
116
    setSdkContentState
117
 
5048 dpurdie 118
Else
119
    oJSON.data("error") = 1
120
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
121
    oJSON.data("emsgDetails") = "The Requested JSON operation is not supported: " & parOpr
122
End If
123
 
124
 
125
' SQL error detection and reporting
126
If objEH.LastOraFailed Then
127
    oJSON.data("error") = 1
128
    result = -1
129
 
130
    oJSON.data("emsgSummary") = objEH.MessageSummary
131
    oJSON.data("emsgDetails") = objEH.MessageDetails
132
    oJSON.data("SqlQry") = SqlQry
133
'
134
'   Detect program errors
135
ElseIf Err.number <> 0 Then
136
    result = -3
137
    oJSON.data("error") = 2
138
    oJSON.data("errnum") = Err.number
139
    oJSON.data("errtxt") = Err.description
140
    oJSON.data("errsrc") = Err.source
141
    oJSON.data("emsgSummary") = "Internal VBScript Error:" & Err.number &  ":" & Err.description
142
End If
5052 dpurdie 143
On error goto 0
5048 dpurdie 144
'Write single value
145
oJSON.data("result") = result
146
 
147
'function Sleep(seconds)
148
'    dim oshell, cmd
149
'    set oShell = CreateObject("Wscript.Shell")
150
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
151
'    oShell.Run cmd,0,1
152
'End function
153
'
154
'Sleep(2)
155
 
156
 
157
' DEBUG: A Hash of the user provided requests
158
<!--oJSON.data("QueryString") = Request.QueryString       -->
159
<!--                                                      -->
160
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
161
<!--Set oJSON.data("Request") = requestSet                -->
162
<!--Dim variableName                                      -->
163
<!--for each variableName in Request.QueryString          -->
164
<!--    requestSet.add variableName, Request(variableName)-->
165
<!--next                                                  -->
166
<!--for each variableName in Request.Form                 -->
167
<!--    requestSet.add variableName, Request(variableName)-->
168
<!--next                                                  -->
169
 
170
 
171
'Return the object
172
Response.Write oJSON.JSONoutput()
173
%>
174
<%
175
'-------------------------------------------------
5097 dpurdie 176
' Function:    addSdkName
5048 dpurdie 177
' Description: Create a new SDK Name entry
5097 dpurdie 178
Sub addSdkName
179
    Dim baseView : baseView = "SDK_" & QStrPar("sdkName") 
180
    Dim SEQ_view_id
5048 dpurdie 181
 
5097 dpurdie 182
 
5048 dpurdie 183
    '   Add a new entry
184
    '
185
    '   Setup for the database access
5097 dpurdie 186
    OraDatabase.Parameters.Add "SDKNAME",    QStrPar("sdkName"),    ORAPARM_INPUT, ORATYPE_VARCHAR2
5048 dpurdie 187
    OraDatabase.Parameters.Add "SDKCOMMENT", QStrPar("sdkComment"), ORAPARM_INPUT, ORATYPE_VARCHAR2
5097 dpurdie 188
    OraDatabase.Parameters.Add "SDKBASEVIEW", baseView,             ORAPARM_INPUT, ORATYPE_VARCHAR2
5102 dpurdie 189
    OraDatabase.Parameters.Add "SDKVIEWID",  0,                     ORAPARM_INPUT, ORATYPE_NUMBER
190
    OraDatabase.Parameters.Add "SDKPROJECT", QStrPar("sdkProject"), ORAPARM_INPUT, ORATYPE_NUMBER
5048 dpurdie 191
 
192
     '  Test existance - simply to provide a Nice Error message
193
    SqlQry = "SELECT * FROM SDK_NAMES WHERE SDK_NAME = :SDKNAME"
194
    objEH.ErrorRedirect = FALSE
195
    objEH.TryORA ( OraSession )
196
    On Error Resume Next
197
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
198
    objEH.CatchORA ( OraSession )
199
    On Error GoTo 0
200
 
201
    If rsQry.RecordCount <> 0 Then
202
        result = -3
203
        oJSON.data("error") = -1
204
        oJSON.data("emsgSummary") = "SDK Name already exists"
205
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
206
    Else
207
 
5097 dpurdie 208
        ' Test for existance of Base View Name
209
        '
210
        SqlQry = "SELECT * FROM VIEWS WHERE UPPER(VIEW_NAME) = UPPER(:SDKBASEVIEW)"
5048 dpurdie 211
        objEH.ErrorRedirect = FALSE
212
        objEH.TryORA ( OraSession )
213
        On Error Resume Next
5097 dpurdie 214
        Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5048 dpurdie 215
        objEH.CatchORA ( OraSession )
216
        On Error GoTo 0
5097 dpurdie 217
        If rsQry.RecordCount <> 0 Then
218
            ' Use existing base view
219
            SEQ_view_id = rsQry("VIEW_ID")
220
            OraDatabase.Parameters("SDKVIEWID").Value = SEQ_view_id 
221
        Else
5048 dpurdie 222
 
5097 dpurdie 223
            ' Create a new Base View for this SDK
224
            ' Return new Base View
225
            SEQ_view_id = Get_From_DUAL("SEQ_VIEW_ID.nextval")
226
            OraDatabase.Parameters("SDKVIEWID").Value = SEQ_view_id 
227
 
228
            On Error Resume Next
229
            OraDatabase.ExecuteSQL _
230
              "INSERT INTO views (view_id, view_name, owner_id, base_view, public_read)"&_
231
              " VALUES ("& SEQ_view_id &", '"& baseView  &"', 0,'S','Y')"
232
        End If
233
 
234
        If Err.Number = 0 Then
5102 dpurdie 235
            SqlQry = "INSERT INTO SDK_NAMES (SDK_NAME, SDK_COMMENT, VIEW_ID, PROJ_ID) VALUES (:SDKNAME, :SDKCOMMENT, :SDKVIEWID, :SDKPROJECT )"
5097 dpurdie 236
            On Error Resume Next
237
            OraDatabase.ExecuteSQL SqlQry
238
            If Err.Number = 0 Then
239
                result = 0
240
            End If
241
        End If
242
 
243
        objEH.CatchORA ( OraSession )
244
        On Error GoTo 0
5048 dpurdie 245
    End If
5102 dpurdie 246
    OraDatabase.Parameters.Remove "SDKPROJECT"
5097 dpurdie 247
    OraDatabase.Parameters.Remove "SDKVIEWID"
248
    OraDatabase.Parameters.Remove "SDKBASEVIEW"
5048 dpurdie 249
    OraDatabase.Parameters.Remove "SDKCOMMENT"
250
    OraDatabase.Parameters.Remove "SDKNAME"
251
End Sub
252
 
253
'-------------------------------------------------
5097 dpurdie 254
' Function:    getSdkNameData
5048 dpurdie 255
' Description: get data for a specified SDK Name
5097 dpurdie 256
Sub getSdkNameData
5048 dpurdie 257
 
258
    '   Get Data for an existing entry
259
    '   Setup for the database access
260
    OraDatabase.Parameters.Add "SDKID",    QStrPar("sdkId"), ORAPARM_INPUT, ORATYPE_NUMBER
261
 
262
    SqlQry = "SELECT * from SDK_NAMES where SDK_ID=:SDKID"
263
 
264
    objEH.ErrorRedirect = FALSE
265
    objEH.TryORA ( OraSession )
266
    On Error Resume Next
267
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
268
    objEH.CatchORA ( OraSession )
269
    OraDatabase.Parameters.Remove "SDKID"
270
 
271
    Dim resultSet : Set resultSet = oJSON.Collection()
272
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
273
        Dim ii
274
        for ii = 0 to rsQry.Fields.Count - 1
275
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
276
        Next
277
        Set oJSON.data("aaData") = resultSet
278
        result = 0
279
    End If
280
    rsQry.Close
281
    Set rsQry = Nothing
282
End Sub
283
 
284
'-------------------------------------------------
5097 dpurdie 285
' Function:    updateSdkName
286
' Description: Update an existing SDK Names entry
287
Sub updateSdkName
5048 dpurdie 288
 
289
    '
290
    '
291
    OraDatabase.Parameters.Add "SDKID",      QStrPar("sdkId"), ORAPARM_INPUT, ORATYPE_NUMBER
292
    OraDatabase.Parameters.Add "SDKNAME",    QStrPar("sdkName"), ORAPARM_INPUT, ORATYPE_VARCHAR2
293
    OraDatabase.Parameters.Add "SDKCOMMENT", QStrPar("sdkComment"), ORAPARM_INPUT, ORATYPE_VARCHAR2
5097 dpurdie 294
    OraDatabase.Parameters.Add "SDKBASEVIEW", QStrPar("sdkBaseView"), ORAPARM_INPUT, ORATYPE_NUMBER
5102 dpurdie 295
    OraDatabase.Parameters.Add "SDKPROJECT", QStrPar("sdkProject"), ORAPARM_INPUT, ORATYPE_NUMBER
5048 dpurdie 296
 
297
    '  Test existance - simply to provide a Nice Error message
298
    SqlQry = "SELECT * FROM SDK_NAMES WHERE SDK_NAME = :SDKNAME AND  SDK_ID != :SDKID"
299
    objEH.ErrorRedirect = FALSE
300
    objEH.TryORA ( OraSession )
301
    On Error Resume Next
302
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
303
    objEH.CatchORA ( OraSession )
304
    On Error GoTo 0
305
 
306
    If rsQry.RecordCount <> 0 Then
307
        result = -3
308
        oJSON.data("error") = -1
309
        oJSON.data("emsgSummary") = "SDK Name already exists"
310
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
311
    Else
312
        '   Update an existing entry
5102 dpurdie 313
        SqlQry = "UPDATE SDK_NAMES SET SDK_NAME = :SDKNAME, SDK_COMMENT = :SDKCOMMENT, VIEW_ID = :SDKBASEVIEW, PROJ_ID = :SDKPROJECT WHERE SDK_ID = :SDKID"
5048 dpurdie 314
        objEH.ErrorRedirect = FALSE
315
        objEH.TryORA ( OraSession )
316
        On Error Resume Next
317
        OraDatabase.ExecuteSQL SqlQry
318
        objEH.CatchORA ( OraSession )
319
        On Error GoTo 0
320
        result = 0
321
    End If
322
 
5102 dpurdie 323
    OraDatabase.Parameters.Remove "SDKPROJECT"
5097 dpurdie 324
    OraDatabase.Parameters.Remove "SDKBASEVIEW"
5048 dpurdie 325
    OraDatabase.Parameters.Remove "SDKCOMMENT"
326
    OraDatabase.Parameters.Remove "SDKNAME"
327
    OraDatabase.Parameters.Remove "SDKID"
328
End Sub
5049 dpurdie 329
 
330
'-------------------------------------------------
331
' Function:    getSdkNames
332
' Description: Get Project information
333
'              Array of:
334
'               SDK_ID
335
'               SDK_NAME
5103 dpurdie 336
' Parameters:   proj_id (optional) If present, limit names to those available in this project
5049 dpurdie 337
 
338
Sub getSdkNames
5103 dpurdie 339
 
340
    Dim proj_id : proj_id = QStrPar("proj_id")
341
 
5049 dpurdie 342
    '   Get Data for an existing entry
343
    '   Setup for the database access
5103 dpurdie 344
    If proj_id <> "" Then
345
        SqlQry = "SELECT SDK_ID, SDK_NAME from SDK_NAMES WHERE proj_id = " & proj_id & " order by UPPER(SDK_NAME) ASC"
346
    Else
347
        SqlQry = "SELECT SDK_ID,SDK_NAME from SDK_NAMES order by UPPER(SDK_NAME) ASC"
348
    End If
5049 dpurdie 349
 
350
    objEH.ErrorRedirect = FALSE
351
    objEH.TryORA ( OraSession )
352
    On Error Resume Next
353
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
354
    objEH.CatchORA ( OraSession )
355
 
356
    Set oJSON.data("aaData") = oJSON.Collection()
357
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
358
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
359
         Dim ii
360
        for ii = 0 to rsQry.Fields.Count - 1
361
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
362
        Next
363
 
364
       rsQry.MoveNext
365
    Wend
366
    result = 0
367
    rsQry.Close
368
    Set rsQry = Nothing
369
 
370
End Sub
371
 
5097 dpurdie 372
'-------------------------------------------------
373
' Function:    getBaseViews
374
' Description: Get Base Views
375
'              Array of:
376
'               VIEW_ID
377
'               VIEW_NAME
378
 
379
Sub getBaseViews
380
    '   Get Data for an existing entry
381
    '   Setup for the database access
382
    SqlQry = "SELECT VIEW_ID, VIEW_NAME from VIEWS WHERE base_view = 'S' order by UPPER(VIEW_NAME) ASC"
383
 
384
    objEH.ErrorRedirect = FALSE
385
    objEH.TryORA ( OraSession )
386
    On Error Resume Next
387
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
388
    objEH.CatchORA ( OraSession )
389
 
390
    Set oJSON.data("aaData") = oJSON.Collection()
391
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
392
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
393
         Dim ii
394
        for ii = 0 to rsQry.Fields.Count - 1
395
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
396
        Next
397
 
398
       rsQry.MoveNext
399
    Wend
400
    result = 0
401
    rsQry.Close
402
    Set rsQry = Nothing
403
 
404
End Sub
405
 
406
'-------------------------------------------------
5053 dpurdie 407
' Function:    getSdkDetails
408
' Description: Get Details for a specific SDK Family
409
'              Hash of:
410
'               Lots of stuff
411
'
412
' Options:      sdk_id  - SDK to get
413
 
414
Sub getSdkDetails
415
    '   Get Data for an existing entry
416
    '   Setup for the database access
417
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
418
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
419
    SqlQry = "SELECT * " &_
420
             "FROM SDK_NAMES " &_
421
             "WHERE SDK_ID = :SDK_ID"
422
 
423
    ' Perform Query
424
    objEH.ErrorRedirect = FALSE
425
    objEH.TryORA ( OraSession )
426
    On Error Resume Next
427
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
428
    objEH.CatchORA ( OraSession )
429
on error goto 0
430
    ' Process Results
431
    Dim resultSet : Set resultSet = oJSON.Collection()
432
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
433
        Dim ii
434
        for ii = 0 to rsQry.Fields.Count - 1
435
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
436
        Next
437
        Set oJSON.data("aaData") = resultSet
438
        result = 0
439
    End If
440
 
441
    result = 0
442
    rsQry.Close
443
    Set rsQry = Nothing
444
 
445
    OraDatabase.Parameters.Remove "SDK_ID"
446
End Sub
447
 
448
 
5050 dpurdie 449
'-------------------------------------------------
450
' Function:    getSdkVersions
451
' Description: Get SDK Versions information for a given family
452
'              Array of:
453
'               sdktag_id
454
'               sdktag_name
455
'               sdktag_state
456
'
457
' Options:      sdk_id  - Get versions for given sdk family
5087 dpurdie 458
'               active  - true: Only active Releases, else use mode
5050 dpurdie 459
'               mode    - true: All Releases, otherwise only non-closed releases
5049 dpurdie 460
 
5050 dpurdie 461
Sub getSdkVersions
462
    '   Get Data for an existing entry
463
    '   Setup for the database access
464
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
465
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
466
 
467
    '
468
    '   Limit Selection to non-closed releases
469
    '
470
    Dim limit
471
    If NOT QStrPar("mode") Then
5062 dpurdie 472
        limit = " AND SDK_STATE NOT IN ('D')"
5050 dpurdie 473
    End If
474
 
5087 dpurdie 475
    If QStrPar("active") Then
476
        limit = " AND SDK_STATE NOT IN ('D','U')"
477
    End If
478
 
5050 dpurdie 479
    SqlQry = "SELECT SDKTAG_ID,SDKTAG_NAME,SDK_STATE as SDKTAG_STATE from SDK_TAGS" &_
480
             " WHERE SDK_ID = :SDK_ID" & limit &_
481
             " ORDER BY UPPER(SDKTAG_NAME) ASC"
482
 
483
    ' Perform Query
484
    objEH.ErrorRedirect = FALSE
485
    objEH.TryORA ( OraSession )
486
    On Error Resume Next
487
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
488
    objEH.CatchORA ( OraSession )
489
 
490
    ' Process Results
491
    Set oJSON.data("aaData") = oJSON.Collection()
492
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
493
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
494
        Dim ii
495
        for ii = 0 to rsQry.Fields.Count - 1
496
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
497
        Next
498
       rsQry.MoveNext
499
    Wend
500
 
501
    result = 0
502
    rsQry.Close
503
    Set rsQry = Nothing
504
 
505
    OraDatabase.Parameters.Remove "SDK_ID"
506
End Sub
507
 
5049 dpurdie 508
'-------------------------------------------------
5052 dpurdie 509
' Function:    getSdkVersionDetails
510
' Description: Get Details for a specific SDK Version
511
'              Hash of:
512
'               Lots of stuff
513
'
514
' Options:      sdktag_id  - SDK Version to get
515
 
516
Sub getSdkVersionDetails
517
    '   Get Data for an existing entry
518
    '   Setup for the database access
519
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
520
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
521
    SqlQry = "SELECT st.SDKTAG_ID, " &_
522
             "  SDKTAG_NAME, " &_
523
             "  DESCRIPTION, " &_
524
             "  st.SDK_ID, " &_
525
             "  TO_CHAR(CREATED_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as CREATED_STAMP , " &_
526
             "  CREATOR_ID, " &_
527
             "  TO_CHAR(STATE_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as STATE_STAMP , " &_
528
             "  STATE_ID, " &_
529
             "  SDK_STATE, " &_
530
             "  SDK_NAME, " &_
531
             "  SDK_COMMENT " &_
532
             "FROM SDK_TAGS st, " &_
533
             "  SDK_NAMES sn " &_
534
             "WHERE st.SDKTAG_ID = :SDKTAG_ID " &_
535
             "AND st.SDK_ID = sn.SDK_ID "
536
 
537
    ' Perform Query
538
    objEH.ErrorRedirect = FALSE
539
    objEH.TryORA ( OraSession )
540
    On Error Resume Next
541
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
542
    objEH.CatchORA ( OraSession )
543
on error goto 0
544
    ' Process Results
545
    Dim resultSet : Set resultSet = oJSON.Collection()
546
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
547
        Dim ii
548
        for ii = 0 to rsQry.Fields.Count - 1
549
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
550
        Next
551
        Set oJSON.data("aaData") = resultSet
552
        result = 0
553
    End If
554
 
555
    result = 0
556
    rsQry.Close
557
    Set rsQry = Nothing
558
 
559
    OraDatabase.Parameters.Remove "SDKTAG_ID"
560
End Sub
561
 
562
'-------------------------------------------------
5055 dpurdie 563
' Function:    updateSdkVersionDetails
564
' Description: Update specific parts of the SDK Version Meta Data
565
'
566
' Options:      sdktag_id       - SDK Version to update
567
'               sdkTagName     -
568
'               sdkTagComment  -
569
 
570
Sub updateSdkVersionDetails
571
    '   Get Data for an existing entry
572
    '   Setup for the database access
573
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
574
    Dim sdkTagName : sdkTagName = QStrPar("sdkTagName")
575
    Dim sdkTagComment : sdkTagComment = QStrPar("sdkTagComment")
576
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
577
    OraDatabase.Parameters.Add "SDKTAG_NAME",      sdkTagName, ORAPARM_INPUT, ORATYPE_VARCHAR2
578
    OraDatabase.Parameters.Add "DESCRIPTION",      sdkTagComment, ORAPARM_INPUT, ORATYPE_VARCHAR2
579
 
580
    '   Update an existing entry
581
    SqlQry = "UPDATE SDK_TAGS SET SDKTAG_NAME = :SDKTAG_NAME, DESCRIPTION = :DESCRIPTION WHERE SDKTAG_ID = :SDKTAG_ID"
582
    objEH.ErrorRedirect = FALSE
583
    objEH.TryORA ( OraSession )
584
    On Error Resume Next
585
    OraDatabase.ExecuteSQL SqlQry
586
    objEH.CatchORA ( OraSession )
587
    On Error GoTo 0
588
    result = 0
589
 
590
    OraDatabase.Parameters.Remove "DESCRIPTION"
591
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
592
    OraDatabase.Parameters.Remove "SDKTAG_ID"
593
End Sub
594
 
595
'-------------------------------------------------
5098 dpurdie 596
' Function:    getSdkUsage
597
' Description: Get SDK Usage information for a given sdktag_id
5102 dpurdie 598
'                Array of (unless countOnly is not empty):
599
'                 sdktag_id
600
'                 sdktag_name
601
'                 sdktag_state
602
'                useCount
5098 dpurdie 603
'
604
' Options:      sdktag_id  - Get information for given sdktag
5102 dpurdie 605
'               countOnly       - Just get count (Simple Test)
5098 dpurdie 606
 
607
Sub getSdkUsage
608
    '   Get Data for an existing entry
609
    '   Setup for the database access
610
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
611
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
612
 
613
    SqlQry = "SELECT DISTINCT p.proj_id, rc.rtag_id, p.PROJ_NAME, rt.RTAG_NAME" &_
614
             " FROM release_content rc," &_
615
             " release_tags rt, PROJECTS p" &_
5102 dpurdie 616
             " WHERE rc.SDKTAG_ID = :SDKTAG_ID" &_
5098 dpurdie 617
             " and rc.RTAG_ID = rt.RTAG_ID" &_
618
             " and p.PROJ_ID = rt.PROJ_ID" &_
619
             " ORDER BY UPPER(p.PROJ_NAME), UPPER(rt.RTAG_NAME)"
620
 
621
    ' Perform Query
622
    objEH.ErrorRedirect = FALSE
623
    objEH.TryORA ( OraSession )
624
    On Error Resume Next
625
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
626
    objEH.CatchORA ( OraSession )
627
 
628
    ' Process Results
5102 dpurdie 629
    If QStrPar("countOnly") = "" Then
630
        Set oJSON.data("aaData") = oJSON.Collection()
631
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
632
            Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
633
            Dim ii
634
            for ii = 0 to rsQry.Fields.Count - 1
635
                newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
636
            Next
637
           rsQry.MoveNext
638
        Wend
639
    End If
5098 dpurdie 640
 
5102 dpurdie 641
    ' Return count too
642
    oJSON.data("useCount") = rsQry.RecordCount 
643
 
5098 dpurdie 644
    result = 0
645
    rsQry.Close
646
    Set rsQry = Nothing
647
 
648
    OraDatabase.Parameters.Remove "SDKTAG_ID"
649
End Sub
650
 
651
 
652
'-------------------------------------------------
5049 dpurdie 653
' Function:    getProjectList
654
' Description: Get Project information
655
'              Array of:
656
'               proj_id
657
'               proj_name
658
Sub getProjectList
659
    '   Get Data for an existing entry
660
    '   Setup for the database access
661
    SqlQry = "SELECT PROJ_ID,PROJ_NAME from PROJECTS order by PROJ_NAME ASC"
662
 
663
    objEH.ErrorRedirect = FALSE
664
    objEH.TryORA ( OraSession )
665
    On Error Resume Next
666
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
667
    objEH.CatchORA ( OraSession )
668
 
669
    Set oJSON.data("aaData") = oJSON.Collection()
670
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
671
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
672
         Dim ii
673
        for ii = 0 to rsQry.Fields.Count - 1
674
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
675
        Next
676
 
677
       rsQry.MoveNext
678
    Wend
679
    result = 0
680
    rsQry.Close
681
    Set rsQry = Nothing
682
 
683
End Sub
684
 
685
'-------------------------------------------------
686
' Function:    getReleaseList
687
' Description: Get Release information for a project
688
'              Array of:
689
'               rtag_id
690
'               rtag_name
691
'               official
692
'              Also
693
'               proj_id
694
'
695
' Options:      proj_id - Get Releases for given project
696
'               rtag_id - Get Releases for project of this release
697
'               mode    - true: All Releases, otherwise only non-closed releases
698
 
699
Sub getReleaseList
700
    '   Get Data for an existing entry
701
    '   Setup for the database access
702
    Dim rtag_id : rtag_id = QStrPar("rtag_id")
703
    Dim proj_id : proj_id = QStrPar("proj_id")
704
    OraDatabase.Parameters.Add "PROJ_ID",      proj_id, ORAPARM_INPUT, ORATYPE_NUMBER
705
    OraDatabase.Parameters.Add "RTAG_ID",      rtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
706
 
707
    '
708
    '   Limit Selection to non-closed releases
709
    '
710
    Dim limit
711
    If NOT QStrPar("mode") Then
712
        limit = " AND OFFICIAL NOT IN ('Y', 'A')"
713
    End If
714
 
715
    Dim where
716
    If rtag_id <> "" Then
717
        where = " WHERE proj_id = (SELECT PROJ_ID from RELEASE_TAGS where RTAG_ID=:RTAG_ID)" 
718
    Else
719
        where = " WHERE PROJ_ID=:PROJ_ID"
720
    End If
721
 
722
    SqlQry = "SELECT PROJ_ID,RTAG_ID,RTAG_NAME,OFFICIAL  from RELEASE_TAGS" &_
723
             where & limit &_
724
             " ORDER BY RTAG_NAME ASC"
725
 
726
    ' Perform Query
727
    objEH.ErrorRedirect = FALSE
728
    objEH.TryORA ( OraSession )
729
    On Error Resume Next
730
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
731
    objEH.CatchORA ( OraSession )
732
 
733
    ' Process Results
734
    Set oJSON.data("aaData") = oJSON.Collection()
735
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
736
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
737
        Dim ii
738
        for ii = 1 to rsQry.Fields.Count - 1
739
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
740
        Next
741
        proj_id = rsQry.Fields(0) 
742
 
743
       rsQry.MoveNext
744
    Wend
745
 
746
    oJSON.data("proj_id") = proj_id
747
 
748
    result = 0
749
    rsQry.Close
750
    Set rsQry = Nothing
751
 
752
    OraDatabase.Parameters.Remove "RTAG_ID"
753
    OraDatabase.Parameters.Remove "PROJ_ID"
754
End Sub
755
 
756
'-------------------------------------------------
757
' Function:     addNewSdkVersion
758
' Description:  Add a New Sdk Version
5050 dpurdie 759
'               Returns the SDKTAG_ID if the created entry
5049 dpurdie 760
Sub addNewSdkVersion
761
    Dim userId : userId = objAccessControl.UserId()
5050 dpurdie 762
    Dim sdkTagId
5049 dpurdie 763
    '   Add a new entry
764
    '
765
    '   Setup for the database access
766
    '
767
    OraDatabase.Parameters.Add "SDKTAG_NAME",   QStrPar("sdkName"),     ORAPARM_INPUT, ORATYPE_VARCHAR2
768
    OraDatabase.Parameters.Add "DESCRIPTION",   QStrPar("sdkComment"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
769
    OraDatabase.Parameters.Add "SDK_ID",        QStrPar("sdk_id"),      ORAPARM_INPUT, ORATYPE_NUMBER
770
    OraDatabase.Parameters.Add "RTAG_ID",       QStrPar("rtag_id"),     ORAPARM_INPUT, ORATYPE_NUMBER
771
    OraDatabase.Parameters.Add "CREATOR_ID",    userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
772
    OraDatabase.Parameters.Add "STATE_ID",      userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
5050 dpurdie 773
    OraDatabase.Parameters.Add "SDKTAG_ID",     NULL,                   ORAPARM_BOTH, ORATYPE_NUMBER
5049 dpurdie 774
 
775
     '  Test existance - simply to provide a Nice Error message
776
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_NAME = :SDKTAG_NAME AND SDK_ID = :SDK_ID"
777
    objEH.ErrorRedirect = FALSE
778
    objEH.TryORA ( OraSession )
779
    On Error Resume Next
780
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
781
    objEH.CatchORA ( OraSession )
782
    On Error GoTo 0
783
 
784
    If rsQry.RecordCount <> 0 Then
785
        result = -3
786
        oJSON.data("error") = -1
787
        oJSON.data("emsgSummary") = "SDK Verion Name already exists in this SDK family"
788
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
789
    Else
5050 dpurdie 790
        SqlQry = "BEGIN "&_
791
                 " INSERT INTO SDK_TAGS (SDKTAG_NAME, DESCRIPTION, SDK_ID, RTAG_ID, CREATOR_ID, STATE_ID)" &_
792
                 " VALUES (:SDKTAG_NAME, :DESCRIPTION, :SDK_ID, :RTAG_ID, :CREATOR_ID, :STATE_ID)"&_
793
                 " RETURNING SDKTAG_ID INTO :SDKTAG_ID;" &_
794
                 " END;"
5049 dpurdie 795
        objEH.ErrorRedirect = FALSE
796
        objEH.TryORA ( OraSession )
797
        On Error Resume Next
798
        OraDatabase.ExecuteSQL SqlQry
5050 dpurdie 799
        sdkTagId = OraDatabase.Parameters("SDKTAG_ID").Value
800
 
801
        '
802
        '   Create the initial SDK_CONTENT
803
        '
804
        If Err.Number = 0 Then
805
            SqlQry = "INSERT INTO SDK_CONTENT ( SDKTAG_ID, PV_ID) SELECT :SDKTAG_ID, pv_id FROM RELEASE_CONTENT WHERE RTAG_ID = :RTAG_ID"
806
            OraDatabase.ExecuteSQL SqlQry
807
        End If
808
 
5049 dpurdie 809
        objEH.CatchORA ( OraSession )
810
        On Error GoTo 0
811
 
5050 dpurdie 812
        oJSON.data("SDKTAG_ID") = sdkTagId
5049 dpurdie 813
        result = 0
814
    End If
815
 
816
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
817
    OraDatabase.Parameters.Remove "DESCRIPTION"
818
    OraDatabase.Parameters.Remove "SDK_ID"
819
    OraDatabase.Parameters.Remove "RTAG_ID"    
820
    OraDatabase.Parameters.Remove "CREATOR_ID" 
821
    OraDatabase.Parameters.Remove "STATE_ID"   
5050 dpurdie 822
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
5049 dpurdie 823
 
824
End Sub
5050 dpurdie 825
 
826
'-------------------------------------------------
5053 dpurdie 827
' Function:     deleteSdkVersion
828
' Description:  Delete the specified Sdk Version
829
'               Will delete SDK_NAME entry if this is the last one
830
'                   sdktag_id   - Version to delete
831
'
832
'   SHOULD have checks to ensure that its not in use
833
 
834
Sub deleteSdkVersion
835
    Dim sdkTagId : sdkTagId = QStrPar("sdktagId")
836
    '
837
    '   Setup for the database access
838
    '
839
    OraDatabase.Parameters.Add "SDKTAG_ID", sdkTagId, ORAPARM_INPUT, ORATYPE_NUMBER
840
 
841
     '  Test to see if the version is in use - simply to provide a Nice Error message
842
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5102 dpurdie 843
    'objEH.ErrorRedirect = FALSE
844
    'objEH.TryORA ( OraSession )
5053 dpurdie 845
    'On Error Resume Next
846
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 847
    'objEH.CatchORA ( OraSession )
5053 dpurdie 848
    On Error GoTo 0
849
 
850
    If rsQry.RecordCount = 0 Then
851
        result = -3
852
        oJSON.data("error") = -1
853
        oJSON.data("emsgSummary") = "SDK Verion does not exist"
854
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
855
    Else
856
 
5102 dpurdie 857
        ' Determine if the SDK is in use
858
        '
859
        SqlQry = "SELECT distinct rtag_id FROM RELEASE_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 860
        Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 861
        If rsQry.RecordCount  <> 0 Then
862
            oJSON.data("useCount") = rsQry.RecordCount
863
            result = 0
864
        Else
865
 
866
            ' Determine the number of times this SDK_TAG is in use
867
            ' Determine the sdk_tag
868
            SqlQry = "SELECT st.SDK_ID, st.SDKTAG_ID FROM SDK_TAGS st WHERE SDK_ID IN ( SELECT SDK_ID FROM SDK_TAGS WHERE SDKTAG_ID=:SDKTAG_ID)"
5053 dpurdie 869
 
5102 dpurdie 870
            Dim sdkId, sdkTagCount
5053 dpurdie 871
            objEH.ErrorRedirect = FALSE
872
            objEH.TryORA ( OraSession )
873
            On Error Resume Next
5102 dpurdie 874
            Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
875
            If Err.Number = 0 Then
876
                sdkTagCount = rsQry.RecordCount
877
                oJSON.data("sdkTagCount") = sdkTagCount
5053 dpurdie 878
 
5102 dpurdie 879
                If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
880
                    sdkId = rsQry.Fields(0)
881
                    oJSON.data("sdkId") = sdkId
882
                End If
883
 
884
                ' Delete content
885
                SqlQry = "DELETE FROM SDK_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
886
                objEH.ErrorRedirect = FALSE
887
                objEH.TryORA ( OraSession )
888
                On Error Resume Next
5053 dpurdie 889
                OraDatabase.ExecuteSQL SqlQry
890
 
5102 dpurdie 891
                ' Delete tag
892
                If Err.Number = 0 Then
893
                    SqlQry = "DELETE FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 894
                    OraDatabase.ExecuteSQL SqlQry
895
                End If
5102 dpurdie 896
 
897
                If Err.Number = 0 Then
898
                    ' Possibly delete the Sdk Name entry
899
                    If sdkTagCount = 1 Then
900
                        SqlQry = "DELETE FROM SDK_NAMES WHERE SDK_ID = :SDK_ID"
901
                        OraDatabase.Parameters.Add "SDK_ID", sdkId, ORAPARM_INPUT, ORATYPE_NUMBER
902
                        OraDatabase.ExecuteSQL SqlQry
903
                        OraDatabase.Parameters.Remove "SDK_ID"   
904
                        oJSON.data("SdkNameRemoved") = sdkId
905
                    End If
906
                End If
5053 dpurdie 907
            End If
908
 
909
            objEH.CatchORA ( OraSession )
910
            On Error GoTo 0
911
            result = 0
912
        End If
913
    End If
914
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
915
 
916
End Sub
917
 
918
'-------------------------------------------------
5052 dpurdie 919
' Function:     setSdkState
920
' Description:  Update the state of the SDK Release
921
'               Request Parameters
922
'                   sdktag_id
923
'                   sdk_state
924
Sub setSdkState
925
    Dim userId : userId = objAccessControl.UserId()
926
    '
927
    '
928
    OraDatabase.Parameters.Add "SDKTAG_ID", QStrPar("sdktagId"),  ORAPARM_INPUT, ORATYPE_NUMBER
929
    OraDatabase.Parameters.Add "SDK_STATE", QStrPar("sdk_state"), ORAPARM_INPUT, ORATYPE_CHAR
930
    OraDatabase.Parameters.Add "STATE_ID",  userId,               ORAPARM_INPUT, ORATYPE_NUMBER
931
 
932
        '   Update an existing entry
933
        SqlQry = "UPDATE SDK_TAGS SET SDK_STATE = :SDK_STATE, STATE_ID = :STATE_ID, STATE_STAMP = SYSTIMESTAMP WHERE SDKTAG_ID = :SDKTAG_ID"
934
        objEH.ErrorRedirect = FALSE
935
        objEH.TryORA ( OraSession )
936
        On Error Resume Next
937
        OraDatabase.ExecuteSQL SqlQry
938
        objEH.CatchORA ( OraSession )
939
        On Error GoTo 0
940
        result = 0
941
 
942
    OraDatabase.Parameters.Remove "STATE_ID"
943
    OraDatabase.Parameters.Remove "SDK_STATE"
944
    OraDatabase.Parameters.Remove "SDKTAG_ID"
945
 
946
End Sub
947
 
948
'-------------------------------------------------
5050 dpurdie 949
' Function:     setSdkContentState
950
' Description:  Update the state of a SDK conent item
951
'               Request Parameters
952
'                   sdktag_id
953
'                   pv_id
954
'                   sdkpkg_state
955
Sub setSdkContentState
956
    '
957
    '
958
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
959
    OraDatabase.Parameters.Add "PV_ID",         QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_VARCHAR2
960
    OraDatabase.Parameters.Add "SDKPKG_STATE",  QStrPar("sdkpkg_state"), ORAPARM_INPUT, ORATYPE_CHAR
961
 
962
        '   Update an existing entry
963
        SqlQry = "UPDATE SDK_CONTENT SET SDKPKG_STATE = :SDKPKG_STATE WHERE SDKTAG_ID = :SDKTAG_ID AND PV_ID = :PV_ID"
964
        objEH.ErrorRedirect = FALSE
965
        objEH.TryORA ( OraSession )
966
        On Error Resume Next
967
        OraDatabase.ExecuteSQL SqlQry
968
        objEH.CatchORA ( OraSession )
969
        On Error GoTo 0
970
        result = 0
971
 
972
    OraDatabase.Parameters.Remove "SDKPKG_STATE"
973
    OraDatabase.Parameters.Remove "PV_ID"
974
    OraDatabase.Parameters.Remove "SDKTAG_ID"
975
 
976
End Sub
5048 dpurdie 977
%>