Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4198 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'                  Update Package Version
5
'       Designed to be called via AJAX and to return
6
'       JSON formatted data to dynamic page
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Good idea to set when using redirect
12
Response.Expires = 0   ' always load the page, dont store
13
%>
14
<!--#include file="common/conf.asp"-->
15
<!--#include file="common/globals.asp"-->
16
<!--#include file="common/qstr.asp"-->
17
<!--#include file="common/common_subs.asp"-->
18
<!--#include file="common/common_dbedit.asp"-->
4254 dpurdie 19
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
4198 dpurdie 20
<%
21
'------------ Variable Definition -------------
22
Dim parOpr
23
Dim parPkgName
24
Dim result
25
Dim SqlQry
26
Dim rsQry
27
 
28
parOpr = QStrPar("Opr")
29
parPkgName = Trim(QStrPar("packageName"))
30
result = -1
31
 
32
' Init the output JSON class
33
'   Operations can add data
34
'   Default data will be added at the end
35
Dim oJSON
36
Set oJSON = New aspJSON
37
Dim newitem
38
 
4199 dpurdie 39
If NOT objAccessControl.UserLogedIn Then
40
    oJSON.data("error") = 1
4198 dpurdie 41
 
4199 dpurdie 42
    oJSON.data("emsgSummary") = "User no longer logged in"
43
    oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
44
 
45
ElseIf (parOpr = "updateVer") Then
46
 
4198 dpurdie 47
    Dim buildType, changeType, pvId, rtagId, version, vExt, errMessage
48
    ' 
49
    ' Ensure we have all the required parameters
50
    '
51
    buildType = QStrPar("buildType")
52
    changeType = QStrPar("changeType")
53
    pvId = QStrPar("pvId")
54
    rtagId = QStrPar("rtagId")
55
    version = QStrPar("Version")
56
    vExt = QStrPar("vExt")
57
 
58
    '
59
    ' If Manual then force change type to 'F'
60
    ' If Auto then ensure that the version number is of the correct form
61
    if buildType = "M" then 
62
        changeType = "F"
63
    end if
64
 
4203 dpurdie 65
    If changeType <> "F" Then
66
        version=vExt
67
    End If
68
 
4198 dpurdie 69
    '
70
    '   Get existing data
71
    '       Test for package existence
72
    '       Check for changes
73
    '
74
    SqlQry = "SELECT pv.pv_id, pv.pkg_version, pv.v_ext, pv.change_type, pv.build_type"&_
75
             " FROM package_versions pv"&_
76
             " WHERE pv.pv_id = :NNpv_id"
77
    OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
78
 
79
	objEH.ErrorRedirect = FALSE
80
    objEH.TryORA ( OraSession )
81
    On Error Resume Next
82
    Set rsQry = OraDatabase.DbCreateDynaset( SqlQry, ORADYN_DEFAULT )
83
    objEH.CatchORA ( OraSession )
84
    errMessage = OraDatabase.Parameters("errMessage").Value
85
    OraDatabase.Parameters.Remove "NNpv_id"
86
    On Error GoTo 0
87
 
88
    If NOT objEH.LastOraFailed Then
4203 dpurdie 89
        Dim changed
4198 dpurdie 90
        changed = 0
91
 
92
        If ((rsQry.BOF) OR (rsQry.EOF)) Then
93
            oJSON.data("emsgDetails") = "Package not found"
94
            oJSON.data("error") = 1
95
        End If
96
 
97
        ' Detect changes
98
        '   version can only be tested if a Manually Versioned
99
        '
4203 dpurdie 100
        If changeType = "F" AND rsQry("pkg_version") <> version Then changed = 1
101
        If rsQry("build_type")  <> buildType Then changed = changed + 2
4198 dpurdie 102
        If rsQry("v_ext")       <> vExt Then changed = changed + 4
4203 dpurdie 103
        If rsQry("change_type") <> changeType Then changed = changed + 8
4198 dpurdie 104
 
105
        If changed Then
106
            '
107
            '   Setup for the database access
108
            OraDatabase.Parameters.Add "RTAG_ID", rtagId, ORAPARM_INPUT, ORATYPE_NUMBER
109
            OraDatabase.Parameters.Add "NNpv_id", pvId, ORAPARM_INPUT, ORATYPE_NUMBER
110
            OraDatabase.Parameters.Add "SSpkg_version",  version,      ORAPARM_INPUT, ORATYPE_VARCHAR2
111
            OraDatabase.Parameters.Add "BUILD_TYPE", buildType, ORAPARM_INPUT, ORATYPE_CHAR
4203 dpurdie 112
            OraDatabase.Parameters.Add "CHANGE_TYPE", changeType, ORAPARM_INPUT, ORATYPE_CHAR
4198 dpurdie 113
            OraDatabase.Parameters.Add "NNuser_id", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
114
            OraDatabase.Parameters.Add "errMessage", 0, ORAPARM_OUTPUT, ORATYPE_VARCHAR2
115
 
4203 dpurdie 116
            SqlQry = "BEGIN Rename_Package_Version (:NNpv_id,:SSpkg_version,:BUILD_TYPE,:CHANGE_TYPE,:NNuser_id,:errMessage ); END;"
4198 dpurdie 117
            objEH.ErrorRedirect = FALSE
118
            objEH.TryORA ( OraSession )
119
            On Error Resume Next
120
            OraDatabase.ExecuteSQL SqlQry
121
            objEH.CatchORA ( OraSession )
122
            errMessage = OraDatabase.Parameters("errMessage").Value
123
            On Error GoTo 0
124
 
125
            OraDatabase.Parameters.Remove "RTAG_ID"
126
            OraDatabase.Parameters.Remove "NNpv_id"
127
            OraDatabase.Parameters.Remove "SSpkg_version"
128
            OraDatabase.Parameters.Remove "NNuser_id"
129
            OraDatabase.Parameters.Remove "errMessage"
130
            OraDatabase.Parameters.Remove "BUILD_TYPE"
4203 dpurdie 131
            OraDatabase.Parameters.Remove "CHANGE_TYPE"
4198 dpurdie 132
            result = 0
133
        End If
134
 
135
    rsQry.Close
136
    Set rsQry = Nothing
137
    End If
138
End If
139
 
140
 
141
'
142
'   Create JSON data for the user
143
'   Important fields
144
'       result
145
'
146
'   Debug fields
147
'       QueryString
148
'       SqlQry
149
'       Request (Array)
150
'
151
'Write single value
152
oJSON.data("result") = result
153
 
154
' SQL error detection and reporting
155
If objEH.LastOraFailed Then
156
    oJSON.data("error") = 1
157
 
158
    oJSON.data("emsgSummary") = objEH.MessageSummary
159
    oJSON.data("emsgDetails") = objEH.MessageDetails
160
    oJSON.data("SqlQry") = SqlQry
161
End If
162
 
163
' DEBUG: An array of the user provided requests
164
oJSON.data("QueryString") = Request.QueryString
165
 
166
Set oJSON.data("Request") = oJSON.Collection()
167
Set newitem = oJSON.AddToCollection(oJSON.data("Request"))
168
Dim variableName
169
for each variableName in Request.QueryString
170
    newitem.add variableName, Request.QueryString(variableName)
171
next
172
 
173
'Return the object
174
Response.Write oJSON.JSONoutput()
175
%>