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