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