Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3892 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'                  NEW VERSION
5
'       Package Inquiry utilities
6
'       Designed to be called via AJAX and to return
7
'       JSON formatted data to dynamic page
8
'=====================================================
9
%>
10
<%
11
Option explicit
12
' Good idea to set when using redirect
13
Response.Expires = 0   ' always load the page, dont store
14
%>
15
<!--#include file="common/conf.asp"-->
16
<!--#include file="common/globals.asp"-->
17
<!--#include file="common/qstr.asp"-->
18
<!--#include file="common/common_subs.asp"-->
19
<!--#include file="class/classaspJSON.asp" -->
3896 dpurdie 20
<!--#include file="class/classSortHelper.asp"-->
3892 dpurdie 21
<%
22
'------------ Variable Definition -------------
23
Dim parOpr
24
Dim parPkgName
25
Dim result
26
Dim SqlQry
27
Dim rsQry
28
 
29
parOpr = QStrPar("Opr")
30
parPkgName = Trim(QStrPar("packageName"))
31
result = -1
32
 
3896 dpurdie 33
' Init the output JSON class
34
'   Operations can add data
35
'   Default data will be added at the end
36
Dim oJSON
37
Set oJSON = New aspJSON
38
Dim newitem
39
 
3892 dpurdie 40
If (parOpr = "checkName") Then
41
 
42
    ' Test existance of a package name
43
    ' Returns the PKG_ID of the package or 0
44
    '
45
    result = 0
46
    SqlQry = "SELECT pkg.*" &_
47
         "  FROM packages pkg"&_
48
         " WHERE pkg.pkg_id != 0"&_
49
         "   AND UPPER(pkg.pkg_name) = UPPER('"& parPkgName & "')"
50
 
51
    On Error Resume Next
52
    objEH.ErrorRedirect = FALSE
53
    objEH.TryORA ( OraSession )
54
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
55
    objEH.CatchORA ( OraSession )
56
 
57
    If objEH.Finally Then
58
        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
59
            result = rsQry("pkg_id")
60
        End If
61
    End If
62
 
63
    rsQry.Close
64
    Set rsQry = Nothing
65
 
66
ElseIf (parOpr = "checkVer") Then
67
    '
68
    ' Test the existance of a Package-Version
69
    ' Returns the PV_ID of the package-Version or 0
70
    '
71
    result = 0
72
    SqlQry = "select pv.pkg_id, pv.PV_ID" &_
73
         "  FROM packages pkg,"&_
74
         "       package_versions pv"&_
75
         " WHERE pkg.pkg_id = pv.pkg_id"&_
76
         "   AND UPPER(pkg.pkg_name) = UPPER('"& parPkgName & "')" &_
77
         "   AND UPPER(pv.pkg_version) = UPPER('" & QStrPar("Version") & "')"
78
 
79
    On Error Resume Next
80
    objEH.ErrorRedirect = FALSE
81
    objEH.TryORA ( OraSession )
82
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
83
    objEH.CatchORA ( OraSession )
84
 
85
    If objEH.Finally Then
86
        If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
87
            result = rsQry("PV_ID")
88
        End If
89
    End IF
90
 
91
    rsQry.Close
92
    Set rsQry = Nothing
3896 dpurdie 93
 
94
ElseIf (parOpr = "getVerList") Then
95
    Dim parPkgId
96
    parPkgId = QStrPar("pkg_id")
97
 
98
    result = 0
99
    SqlQry = "select pv_id, pkg_version, dlocked" &_
100
         "  FROM package_versions pv" &_
101
         " WHERE pv.pkg_id = "& parPkgId
102
 
103
    On Error Resume Next
104
    objEH.ErrorRedirect = FALSE
105
    objEH.TryORA ( OraSession )
106
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
107
    objEH.CatchORA ( OraSession )
108
 
109
    If objEH.Finally Then
110
 
111
        oJSON.data("VersionRef") = QStrPar("Ref")
112
        Set oJSON.data("Versions") = oJSON.Collection()
113
 
114
        Dim aVersions
115
        Dim objSortHelper
116
        Dim lastRow, i
117
 
118
	    If rsQry.RecordCount > 0 Then
119
 
120
		    aVersions = rsQry.GetRows()
121
		    lastRow = UBound( aVersions, 2 )
122
 
123
		    Set objSortHelper = New SortHelper
124
 
125
		    ' Sort versions
126
		    Call objSortHelper.VersionSort( aVersions, 0, lastRow, rsQry.FieldIndex("pkg_version") )
127
 
128
		    ' Descending order
129
		    For i = lastRow To 0 Step -1
130
 
131
                Dim vname : vname = aVersions( rsQry.FieldIndex("pkg_version"), i )
132
                Dim pvid : pvid = aVersions( rsQry.FieldIndex("pv_id"), i )
133
                Dim lck : lck = aVersions( rsQry.FieldIndex("dlocked"), i )
134
 
135
                result = result + 1
136
 
137
                Set newitem = oJSON.AddToCollection(oJSON.data("Versions"))
138
                newitem.add "vname", vname
139
                newitem.add "pv_id", pvid
140
                newitem.add "dlocked", lck
141
		    Next
142
		    Set objSortHelper = nothing
143
	    End If
144
    End IF
145
 
146
    rsQry.Close
147
    Set rsQry = Nothing
148
 
3892 dpurdie 149
End If
150
 
151
 
152
'
153
'   Create JSON data for the user
154
'   Important fields
155
'       result
156
'
157
'   Debug fields
158
'       QueryString
159
'       SqlQry
160
'       Request (Array)
161
'
162
'Write single value
163
oJSON.data("result") = result
164
 
165
' SQL error detection and reporting
166
If objEH.LastOraFailed Then
167
    oJSON.data("error") = 1
168
 
169
    oJSON.data("emsgSummary") = objEH.MessageSummary
170
    oJSON.data("emsgDetails") = objEH.MessageDetails
171
    oJSON.data("SqlQry") = SqlQry
172
End If
173
 
174
' DEBUG: An array of the user provided requests
175
oJSON.data("QueryString") = Request.QueryString
176
 
177
Set oJSON.data("Request") = oJSON.Collection()
178
Set newitem = oJSON.AddToCollection(oJSON.data("Request"))
179
Dim variableName
180
for each variableName in Request.QueryString
181
    newitem.add variableName, Request.QueryString(variableName)
182
next
183
 
184
'Return the object
185
Response.Write oJSON.JSONoutput()
186
%>