Subversion Repositories DevTools

Rev

Go to most recent revision | 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
336
 
337
Sub getSdkNames
338
    '   Get Data for an existing entry
339
    '   Setup for the database access
5097 dpurdie 340
    SqlQry = "SELECT SDK_ID,SDK_NAME from SDK_NAMES order by UPPER(SDK_NAME) ASC"
5049 dpurdie 341
 
342
    objEH.ErrorRedirect = FALSE
343
    objEH.TryORA ( OraSession )
344
    On Error Resume Next
345
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
346
    objEH.CatchORA ( OraSession )
347
 
348
    Set oJSON.data("aaData") = oJSON.Collection()
349
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
350
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
351
         Dim ii
352
        for ii = 0 to rsQry.Fields.Count - 1
353
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
354
        Next
355
 
356
       rsQry.MoveNext
357
    Wend
358
    result = 0
359
    rsQry.Close
360
    Set rsQry = Nothing
361
 
362
End Sub
363
 
5097 dpurdie 364
'-------------------------------------------------
365
' Function:    getBaseViews
366
' Description: Get Base Views
367
'              Array of:
368
'               VIEW_ID
369
'               VIEW_NAME
370
 
371
Sub getBaseViews
372
    '   Get Data for an existing entry
373
    '   Setup for the database access
374
    SqlQry = "SELECT VIEW_ID, VIEW_NAME from VIEWS WHERE base_view = 'S' order by UPPER(VIEW_NAME) ASC"
375
 
376
    objEH.ErrorRedirect = FALSE
377
    objEH.TryORA ( OraSession )
378
    On Error Resume Next
379
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
380
    objEH.CatchORA ( OraSession )
381
 
382
    Set oJSON.data("aaData") = oJSON.Collection()
383
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
384
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
385
         Dim ii
386
        for ii = 0 to rsQry.Fields.Count - 1
387
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
388
        Next
389
 
390
       rsQry.MoveNext
391
    Wend
392
    result = 0
393
    rsQry.Close
394
    Set rsQry = Nothing
395
 
396
End Sub
397
 
398
'-------------------------------------------------
5053 dpurdie 399
' Function:    getSdkDetails
400
' Description: Get Details for a specific SDK Family
401
'              Hash of:
402
'               Lots of stuff
403
'
404
' Options:      sdk_id  - SDK to get
405
 
406
Sub getSdkDetails
407
    '   Get Data for an existing entry
408
    '   Setup for the database access
409
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
410
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
411
    SqlQry = "SELECT * " &_
412
             "FROM SDK_NAMES " &_
413
             "WHERE SDK_ID = :SDK_ID"
414
 
415
    ' Perform Query
416
    objEH.ErrorRedirect = FALSE
417
    objEH.TryORA ( OraSession )
418
    On Error Resume Next
419
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
420
    objEH.CatchORA ( OraSession )
421
on error goto 0
422
    ' Process Results
423
    Dim resultSet : Set resultSet = oJSON.Collection()
424
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
425
        Dim ii
426
        for ii = 0 to rsQry.Fields.Count - 1
427
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
428
        Next
429
        Set oJSON.data("aaData") = resultSet
430
        result = 0
431
    End If
432
 
433
    result = 0
434
    rsQry.Close
435
    Set rsQry = Nothing
436
 
437
    OraDatabase.Parameters.Remove "SDK_ID"
438
End Sub
439
 
440
 
5050 dpurdie 441
'-------------------------------------------------
442
' Function:    getSdkVersions
443
' Description: Get SDK Versions information for a given family
444
'              Array of:
445
'               sdktag_id
446
'               sdktag_name
447
'               sdktag_state
448
'
449
' Options:      sdk_id  - Get versions for given sdk family
5087 dpurdie 450
'               active  - true: Only active Releases, else use mode
5050 dpurdie 451
'               mode    - true: All Releases, otherwise only non-closed releases
5049 dpurdie 452
 
5050 dpurdie 453
Sub getSdkVersions
454
    '   Get Data for an existing entry
455
    '   Setup for the database access
456
    Dim sdk_id : sdk_id = QStrPar("sdk_id")
457
    OraDatabase.Parameters.Add "SDK_ID",      sdk_id, ORAPARM_INPUT, ORATYPE_NUMBER
458
 
459
    '
460
    '   Limit Selection to non-closed releases
461
    '
462
    Dim limit
463
    If NOT QStrPar("mode") Then
5062 dpurdie 464
        limit = " AND SDK_STATE NOT IN ('D')"
5050 dpurdie 465
    End If
466
 
5087 dpurdie 467
    If QStrPar("active") Then
468
        limit = " AND SDK_STATE NOT IN ('D','U')"
469
    End If
470
 
5050 dpurdie 471
    SqlQry = "SELECT SDKTAG_ID,SDKTAG_NAME,SDK_STATE as SDKTAG_STATE from SDK_TAGS" &_
472
             " WHERE SDK_ID = :SDK_ID" & limit &_
473
             " ORDER BY UPPER(SDKTAG_NAME) ASC"
474
 
475
    ' Perform Query
476
    objEH.ErrorRedirect = FALSE
477
    objEH.TryORA ( OraSession )
478
    On Error Resume Next
479
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
480
    objEH.CatchORA ( OraSession )
481
 
482
    ' Process Results
483
    Set oJSON.data("aaData") = oJSON.Collection()
484
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
485
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
486
        Dim ii
487
        for ii = 0 to rsQry.Fields.Count - 1
488
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
489
        Next
490
       rsQry.MoveNext
491
    Wend
492
 
493
    result = 0
494
    rsQry.Close
495
    Set rsQry = Nothing
496
 
497
    OraDatabase.Parameters.Remove "SDK_ID"
498
End Sub
499
 
5049 dpurdie 500
'-------------------------------------------------
5052 dpurdie 501
' Function:    getSdkVersionDetails
502
' Description: Get Details for a specific SDK Version
503
'              Hash of:
504
'               Lots of stuff
505
'
506
' Options:      sdktag_id  - SDK Version to get
507
 
508
Sub getSdkVersionDetails
509
    '   Get Data for an existing entry
510
    '   Setup for the database access
511
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
512
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
513
    SqlQry = "SELECT st.SDKTAG_ID, " &_
514
             "  SDKTAG_NAME, " &_
515
             "  DESCRIPTION, " &_
516
             "  st.SDK_ID, " &_
517
             "  TO_CHAR(CREATED_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as CREATED_STAMP , " &_
518
             "  CREATOR_ID, " &_
519
             "  TO_CHAR(STATE_STAMP, 'Dy DD-Mon-YYYY HH24:MI:SS') as STATE_STAMP , " &_
520
             "  STATE_ID, " &_
521
             "  SDK_STATE, " &_
522
             "  SDK_NAME, " &_
523
             "  SDK_COMMENT " &_
524
             "FROM SDK_TAGS st, " &_
525
             "  SDK_NAMES sn " &_
526
             "WHERE st.SDKTAG_ID = :SDKTAG_ID " &_
527
             "AND st.SDK_ID = sn.SDK_ID "
528
 
529
    ' Perform Query
530
    objEH.ErrorRedirect = FALSE
531
    objEH.TryORA ( OraSession )
532
    On Error Resume Next
533
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
534
    objEH.CatchORA ( OraSession )
535
on error goto 0
536
    ' Process Results
537
    Dim resultSet : Set resultSet = oJSON.Collection()
538
    If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
539
        Dim ii
540
        for ii = 0 to rsQry.Fields.Count - 1
541
            resultSet (rsQry.FieldName(ii)) = rsQry.Fields(ii)
542
        Next
543
        Set oJSON.data("aaData") = resultSet
544
        result = 0
545
    End If
546
 
547
    result = 0
548
    rsQry.Close
549
    Set rsQry = Nothing
550
 
551
    OraDatabase.Parameters.Remove "SDKTAG_ID"
552
End Sub
553
 
554
'-------------------------------------------------
5055 dpurdie 555
' Function:    updateSdkVersionDetails
556
' Description: Update specific parts of the SDK Version Meta Data
557
'
558
' Options:      sdktag_id       - SDK Version to update
559
'               sdkTagName     -
560
'               sdkTagComment  -
561
 
562
Sub updateSdkVersionDetails
563
    '   Get Data for an existing entry
564
    '   Setup for the database access
565
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
566
    Dim sdkTagName : sdkTagName = QStrPar("sdkTagName")
567
    Dim sdkTagComment : sdkTagComment = QStrPar("sdkTagComment")
568
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
569
    OraDatabase.Parameters.Add "SDKTAG_NAME",      sdkTagName, ORAPARM_INPUT, ORATYPE_VARCHAR2
570
    OraDatabase.Parameters.Add "DESCRIPTION",      sdkTagComment, ORAPARM_INPUT, ORATYPE_VARCHAR2
571
 
572
    '   Update an existing entry
573
    SqlQry = "UPDATE SDK_TAGS SET SDKTAG_NAME = :SDKTAG_NAME, DESCRIPTION = :DESCRIPTION WHERE SDKTAG_ID = :SDKTAG_ID"
574
    objEH.ErrorRedirect = FALSE
575
    objEH.TryORA ( OraSession )
576
    On Error Resume Next
577
    OraDatabase.ExecuteSQL SqlQry
578
    objEH.CatchORA ( OraSession )
579
    On Error GoTo 0
580
    result = 0
581
 
582
    OraDatabase.Parameters.Remove "DESCRIPTION"
583
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
584
    OraDatabase.Parameters.Remove "SDKTAG_ID"
585
End Sub
586
 
587
'-------------------------------------------------
5098 dpurdie 588
' Function:    getSdkUsage
589
' Description: Get SDK Usage information for a given sdktag_id
5102 dpurdie 590
'                Array of (unless countOnly is not empty):
591
'                 sdktag_id
592
'                 sdktag_name
593
'                 sdktag_state
594
'                useCount
5098 dpurdie 595
'
596
' Options:      sdktag_id  - Get information for given sdktag
5102 dpurdie 597
'               countOnly       - Just get count (Simple Test)
5098 dpurdie 598
 
599
Sub getSdkUsage
600
    '   Get Data for an existing entry
601
    '   Setup for the database access
602
    Dim sdktag_id : sdktag_id = QStrPar("sdktag_id")
603
    OraDatabase.Parameters.Add "SDKTAG_ID",      sdktag_id, ORAPARM_INPUT, ORATYPE_NUMBER
604
 
605
    SqlQry = "SELECT DISTINCT p.proj_id, rc.rtag_id, p.PROJ_NAME, rt.RTAG_NAME" &_
606
             " FROM release_content rc," &_
607
             " release_tags rt, PROJECTS p" &_
5102 dpurdie 608
             " WHERE rc.SDKTAG_ID = :SDKTAG_ID" &_
5098 dpurdie 609
             " and rc.RTAG_ID = rt.RTAG_ID" &_
610
             " and p.PROJ_ID = rt.PROJ_ID" &_
611
             " ORDER BY UPPER(p.PROJ_NAME), UPPER(rt.RTAG_NAME)"
612
 
613
    ' Perform Query
614
    objEH.ErrorRedirect = FALSE
615
    objEH.TryORA ( OraSession )
616
    On Error Resume Next
617
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
618
    objEH.CatchORA ( OraSession )
619
 
620
    ' Process Results
5102 dpurdie 621
    If QStrPar("countOnly") = "" Then
622
        Set oJSON.data("aaData") = oJSON.Collection()
623
        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
624
            Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
625
            Dim ii
626
            for ii = 0 to rsQry.Fields.Count - 1
627
                newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
628
            Next
629
           rsQry.MoveNext
630
        Wend
631
    End If
5098 dpurdie 632
 
5102 dpurdie 633
    ' Return count too
634
    oJSON.data("useCount") = rsQry.RecordCount 
635
 
5098 dpurdie 636
    result = 0
637
    rsQry.Close
638
    Set rsQry = Nothing
639
 
640
    OraDatabase.Parameters.Remove "SDKTAG_ID"
641
End Sub
642
 
643
 
644
'-------------------------------------------------
5049 dpurdie 645
' Function:    getProjectList
646
' Description: Get Project information
647
'              Array of:
648
'               proj_id
649
'               proj_name
650
Sub getProjectList
651
    '   Get Data for an existing entry
652
    '   Setup for the database access
653
    SqlQry = "SELECT PROJ_ID,PROJ_NAME from PROJECTS order by PROJ_NAME ASC"
654
 
655
    objEH.ErrorRedirect = FALSE
656
    objEH.TryORA ( OraSession )
657
    On Error Resume Next
658
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
659
    objEH.CatchORA ( OraSession )
660
 
661
    Set oJSON.data("aaData") = oJSON.Collection()
662
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
663
       Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
664
         Dim ii
665
        for ii = 0 to rsQry.Fields.Count - 1
666
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
667
        Next
668
 
669
       rsQry.MoveNext
670
    Wend
671
    result = 0
672
    rsQry.Close
673
    Set rsQry = Nothing
674
 
675
End Sub
676
 
677
'-------------------------------------------------
678
' Function:    getReleaseList
679
' Description: Get Release information for a project
680
'              Array of:
681
'               rtag_id
682
'               rtag_name
683
'               official
684
'              Also
685
'               proj_id
686
'
687
' Options:      proj_id - Get Releases for given project
688
'               rtag_id - Get Releases for project of this release
689
'               mode    - true: All Releases, otherwise only non-closed releases
690
 
691
Sub getReleaseList
692
    '   Get Data for an existing entry
693
    '   Setup for the database access
694
    Dim rtag_id : rtag_id = QStrPar("rtag_id")
695
    Dim proj_id : proj_id = QStrPar("proj_id")
696
    OraDatabase.Parameters.Add "PROJ_ID",      proj_id, ORAPARM_INPUT, ORATYPE_NUMBER
697
    OraDatabase.Parameters.Add "RTAG_ID",      rtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
698
 
699
    '
700
    '   Limit Selection to non-closed releases
701
    '
702
    Dim limit
703
    If NOT QStrPar("mode") Then
704
        limit = " AND OFFICIAL NOT IN ('Y', 'A')"
705
    End If
706
 
707
    Dim where
708
    If rtag_id <> "" Then
709
        where = " WHERE proj_id = (SELECT PROJ_ID from RELEASE_TAGS where RTAG_ID=:RTAG_ID)" 
710
    Else
711
        where = " WHERE PROJ_ID=:PROJ_ID"
712
    End If
713
 
714
    SqlQry = "SELECT PROJ_ID,RTAG_ID,RTAG_NAME,OFFICIAL  from RELEASE_TAGS" &_
715
             where & limit &_
716
             " ORDER BY RTAG_NAME ASC"
717
 
718
    ' Perform Query
719
    objEH.ErrorRedirect = FALSE
720
    objEH.TryORA ( OraSession )
721
    On Error Resume Next
722
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
723
    objEH.CatchORA ( OraSession )
724
 
725
    ' Process Results
726
    Set oJSON.data("aaData") = oJSON.Collection()
727
    While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
728
        Set newitem = oJSON.AddToCollection(oJSON.data("aaData"))
729
        Dim ii
730
        for ii = 1 to rsQry.Fields.Count - 1
731
            newitem (rsQry.FieldName(ii)) = rsQry.Fields(ii)
732
        Next
733
        proj_id = rsQry.Fields(0) 
734
 
735
       rsQry.MoveNext
736
    Wend
737
 
738
    oJSON.data("proj_id") = proj_id
739
 
740
    result = 0
741
    rsQry.Close
742
    Set rsQry = Nothing
743
 
744
    OraDatabase.Parameters.Remove "RTAG_ID"
745
    OraDatabase.Parameters.Remove "PROJ_ID"
746
End Sub
747
 
748
'-------------------------------------------------
749
' Function:     addNewSdkVersion
750
' Description:  Add a New Sdk Version
5050 dpurdie 751
'               Returns the SDKTAG_ID if the created entry
5049 dpurdie 752
Sub addNewSdkVersion
753
    Dim userId : userId = objAccessControl.UserId()
5050 dpurdie 754
    Dim sdkTagId
5049 dpurdie 755
    '   Add a new entry
756
    '
757
    '   Setup for the database access
758
    '
759
    OraDatabase.Parameters.Add "SDKTAG_NAME",   QStrPar("sdkName"),     ORAPARM_INPUT, ORATYPE_VARCHAR2
760
    OraDatabase.Parameters.Add "DESCRIPTION",   QStrPar("sdkComment"),  ORAPARM_INPUT, ORATYPE_VARCHAR2
761
    OraDatabase.Parameters.Add "SDK_ID",        QStrPar("sdk_id"),      ORAPARM_INPUT, ORATYPE_NUMBER
762
    OraDatabase.Parameters.Add "RTAG_ID",       QStrPar("rtag_id"),     ORAPARM_INPUT, ORATYPE_NUMBER
763
    OraDatabase.Parameters.Add "CREATOR_ID",    userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
764
    OraDatabase.Parameters.Add "STATE_ID",      userId,                 ORAPARM_INPUT, ORATYPE_NUMBER
5050 dpurdie 765
    OraDatabase.Parameters.Add "SDKTAG_ID",     NULL,                   ORAPARM_BOTH, ORATYPE_NUMBER
5049 dpurdie 766
 
767
     '  Test existance - simply to provide a Nice Error message
768
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_NAME = :SDKTAG_NAME AND SDK_ID = :SDK_ID"
769
    objEH.ErrorRedirect = FALSE
770
    objEH.TryORA ( OraSession )
771
    On Error Resume Next
772
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
773
    objEH.CatchORA ( OraSession )
774
    On Error GoTo 0
775
 
776
    If rsQry.RecordCount <> 0 Then
777
        result = -3
778
        oJSON.data("error") = -1
779
        oJSON.data("emsgSummary") = "SDK Verion Name already exists in this SDK family"
780
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
781
    Else
5050 dpurdie 782
        SqlQry = "BEGIN "&_
783
                 " INSERT INTO SDK_TAGS (SDKTAG_NAME, DESCRIPTION, SDK_ID, RTAG_ID, CREATOR_ID, STATE_ID)" &_
784
                 " VALUES (:SDKTAG_NAME, :DESCRIPTION, :SDK_ID, :RTAG_ID, :CREATOR_ID, :STATE_ID)"&_
785
                 " RETURNING SDKTAG_ID INTO :SDKTAG_ID;" &_
786
                 " END;"
5049 dpurdie 787
        objEH.ErrorRedirect = FALSE
788
        objEH.TryORA ( OraSession )
789
        On Error Resume Next
790
        OraDatabase.ExecuteSQL SqlQry
5050 dpurdie 791
        sdkTagId = OraDatabase.Parameters("SDKTAG_ID").Value
792
 
793
        '
794
        '   Create the initial SDK_CONTENT
795
        '
796
        If Err.Number = 0 Then
797
            SqlQry = "INSERT INTO SDK_CONTENT ( SDKTAG_ID, PV_ID) SELECT :SDKTAG_ID, pv_id FROM RELEASE_CONTENT WHERE RTAG_ID = :RTAG_ID"
798
            OraDatabase.ExecuteSQL SqlQry
799
        End If
800
 
5049 dpurdie 801
        objEH.CatchORA ( OraSession )
802
        On Error GoTo 0
803
 
5050 dpurdie 804
        oJSON.data("SDKTAG_ID") = sdkTagId
5049 dpurdie 805
        result = 0
806
    End If
807
 
808
    OraDatabase.Parameters.Remove "SDKTAG_NAME"
809
    OraDatabase.Parameters.Remove "DESCRIPTION"
810
    OraDatabase.Parameters.Remove "SDK_ID"
811
    OraDatabase.Parameters.Remove "RTAG_ID"    
812
    OraDatabase.Parameters.Remove "CREATOR_ID" 
813
    OraDatabase.Parameters.Remove "STATE_ID"   
5050 dpurdie 814
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
5049 dpurdie 815
 
816
End Sub
5050 dpurdie 817
 
818
'-------------------------------------------------
5053 dpurdie 819
' Function:     deleteSdkVersion
820
' Description:  Delete the specified Sdk Version
821
'               Will delete SDK_NAME entry if this is the last one
822
'                   sdktag_id   - Version to delete
823
'
824
'   SHOULD have checks to ensure that its not in use
825
 
826
Sub deleteSdkVersion
827
    Dim sdkTagId : sdkTagId = QStrPar("sdktagId")
828
    '
829
    '   Setup for the database access
830
    '
831
    OraDatabase.Parameters.Add "SDKTAG_ID", sdkTagId, ORAPARM_INPUT, ORATYPE_NUMBER
832
 
833
     '  Test to see if the version is in use - simply to provide a Nice Error message
834
    SqlQry = "SELECT * FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5102 dpurdie 835
    'objEH.ErrorRedirect = FALSE
836
    'objEH.TryORA ( OraSession )
5053 dpurdie 837
    'On Error Resume Next
838
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 839
    'objEH.CatchORA ( OraSession )
5053 dpurdie 840
    On Error GoTo 0
841
 
842
    If rsQry.RecordCount = 0 Then
843
        result = -3
844
        oJSON.data("error") = -1
845
        oJSON.data("emsgSummary") = "SDK Verion does not exist"
846
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
847
    Else
848
 
5102 dpurdie 849
        ' Determine if the SDK is in use
850
        '
851
        SqlQry = "SELECT distinct rtag_id FROM RELEASE_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 852
        Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
5102 dpurdie 853
        If rsQry.RecordCount  <> 0 Then
854
            oJSON.data("useCount") = rsQry.RecordCount
855
            result = 0
856
        Else
857
 
858
            ' Determine the number of times this SDK_TAG is in use
859
            ' Determine the sdk_tag
860
            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 861
 
5102 dpurdie 862
            Dim sdkId, sdkTagCount
5053 dpurdie 863
            objEH.ErrorRedirect = FALSE
864
            objEH.TryORA ( OraSession )
865
            On Error Resume Next
5102 dpurdie 866
            Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
867
            If Err.Number = 0 Then
868
                sdkTagCount = rsQry.RecordCount
869
                oJSON.data("sdkTagCount") = sdkTagCount
5053 dpurdie 870
 
5102 dpurdie 871
                If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
872
                    sdkId = rsQry.Fields(0)
873
                    oJSON.data("sdkId") = sdkId
874
                End If
875
 
876
                ' Delete content
877
                SqlQry = "DELETE FROM SDK_CONTENT WHERE SDKTAG_ID = :SDKTAG_ID"
878
                objEH.ErrorRedirect = FALSE
879
                objEH.TryORA ( OraSession )
880
                On Error Resume Next
5053 dpurdie 881
                OraDatabase.ExecuteSQL SqlQry
882
 
5102 dpurdie 883
                ' Delete tag
884
                If Err.Number = 0 Then
885
                    SqlQry = "DELETE FROM SDK_TAGS WHERE SDKTAG_ID = :SDKTAG_ID"
5053 dpurdie 886
                    OraDatabase.ExecuteSQL SqlQry
887
                End If
5102 dpurdie 888
 
889
                If Err.Number = 0 Then
890
                    ' Possibly delete the Sdk Name entry
891
                    If sdkTagCount = 1 Then
892
                        SqlQry = "DELETE FROM SDK_NAMES WHERE SDK_ID = :SDK_ID"
893
                        OraDatabase.Parameters.Add "SDK_ID", sdkId, ORAPARM_INPUT, ORATYPE_NUMBER
894
                        OraDatabase.ExecuteSQL SqlQry
895
                        OraDatabase.Parameters.Remove "SDK_ID"   
896
                        oJSON.data("SdkNameRemoved") = sdkId
897
                    End If
898
                End If
5053 dpurdie 899
            End If
900
 
901
            objEH.CatchORA ( OraSession )
902
            On Error GoTo 0
903
            result = 0
904
        End If
905
    End If
906
    OraDatabase.Parameters.Remove "SDKTAG_ID"   
907
 
908
End Sub
909
 
910
'-------------------------------------------------
5052 dpurdie 911
' Function:     setSdkState
912
' Description:  Update the state of the SDK Release
913
'               Request Parameters
914
'                   sdktag_id
915
'                   sdk_state
916
Sub setSdkState
917
    Dim userId : userId = objAccessControl.UserId()
918
    '
919
    '
920
    OraDatabase.Parameters.Add "SDKTAG_ID", QStrPar("sdktagId"),  ORAPARM_INPUT, ORATYPE_NUMBER
921
    OraDatabase.Parameters.Add "SDK_STATE", QStrPar("sdk_state"), ORAPARM_INPUT, ORATYPE_CHAR
922
    OraDatabase.Parameters.Add "STATE_ID",  userId,               ORAPARM_INPUT, ORATYPE_NUMBER
923
 
924
        '   Update an existing entry
925
        SqlQry = "UPDATE SDK_TAGS SET SDK_STATE = :SDK_STATE, STATE_ID = :STATE_ID, STATE_STAMP = SYSTIMESTAMP WHERE SDKTAG_ID = :SDKTAG_ID"
926
        objEH.ErrorRedirect = FALSE
927
        objEH.TryORA ( OraSession )
928
        On Error Resume Next
929
        OraDatabase.ExecuteSQL SqlQry
930
        objEH.CatchORA ( OraSession )
931
        On Error GoTo 0
932
        result = 0
933
 
934
    OraDatabase.Parameters.Remove "STATE_ID"
935
    OraDatabase.Parameters.Remove "SDK_STATE"
936
    OraDatabase.Parameters.Remove "SDKTAG_ID"
937
 
938
End Sub
939
 
940
'-------------------------------------------------
5050 dpurdie 941
' Function:     setSdkContentState
942
' Description:  Update the state of a SDK conent item
943
'               Request Parameters
944
'                   sdktag_id
945
'                   pv_id
946
'                   sdkpkg_state
947
Sub setSdkContentState
948
    '
949
    '
950
    OraDatabase.Parameters.Add "SDKTAG_ID",     QStrPar("sdktagId"), ORAPARM_INPUT, ORATYPE_NUMBER
951
    OraDatabase.Parameters.Add "PV_ID",         QStrPar("pv_id"), ORAPARM_INPUT, ORATYPE_VARCHAR2
952
    OraDatabase.Parameters.Add "SDKPKG_STATE",  QStrPar("sdkpkg_state"), ORAPARM_INPUT, ORATYPE_CHAR
953
 
954
        '   Update an existing entry
955
        SqlQry = "UPDATE SDK_CONTENT SET SDKPKG_STATE = :SDKPKG_STATE WHERE SDKTAG_ID = :SDKTAG_ID AND PV_ID = :PV_ID"
956
        objEH.ErrorRedirect = FALSE
957
        objEH.TryORA ( OraSession )
958
        On Error Resume Next
959
        OraDatabase.ExecuteSQL SqlQry
960
        objEH.CatchORA ( OraSession )
961
        On Error GoTo 0
962
        result = 0
963
 
964
    OraDatabase.Parameters.Remove "SDKPKG_STATE"
965
    OraDatabase.Parameters.Remove "PV_ID"
966
    OraDatabase.Parameters.Remove "SDKTAG_ID"
967
 
968
End Sub
5048 dpurdie 969
%>