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