Subversion Repositories DevTools

Rev

Rev 5506 | Rev 6048 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5266 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'   _json_Notifications.asp
5
'   Ajax support Package Notification Manipulation
6
'       updateProjects
7
'
8
'=====================================================
9
%>
10
<%
11
Option explicit
12
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
13
Response.ContentType = "text/html"
14
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
15
Response.CodePage = 65001
16
Response.CharSet = "UTF-8"
17
%>
18
<!--#include file="common/conf.asp"-->
19
<!--#include file="common/globals.asp"-->
20
<!--#include file="common/qstr.asp"-->
21
<!--#include file="common/common_subs.asp"-->
22
<!--#include file="_access_control_general.asp"-->
23
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
24
<%
25
'------------ Variable Definition -------------
26
Dim parOpr
27
Dim result
28
Dim SqlQry
29
Dim rsQry
30
 
31
parOpr = QStrPar("Opr")
32
 
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
 
40
Function canModify
41
    canModify = canActionInProject()
42
    If NOT canModify Then
43
        result = -4
44
        oJSON.data("error") = 1
45
        oJSON.data("emsgSummary") = "Permission denied"
46
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
47
    End If
48
End Function
49
 
50
'
51
'   Prefill error indications
52
'   
53
result = -1
54
oJSON.data("emsgSummary") = "JSON Operation:" & parOpr
55
oJSON.data("emsgDetails") = "Internal Problem. Error not reported" 
56
 
57
'   
58
'   Perform the body of the operations within a Sub and use
59
'   On Error Resule Next to catch errors that accur in the code
60
'
61
On Error Resume Next
62
 
63
If (parOpr = "updateProjects") Then
64
    If canModify() Then updateProjects
65
 
66
Else
67
    oJSON.data("error") = 1
68
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
69
    oJSON.data("emsgDetails") = "JSON operation is not supported: " & parOpr
70
End If
71
 
72
 
73
' SQL error detection and reporting
74
If objEH.LastOraFailed Then
75
    oJSON.data("error") = 1
76
    result = -1
77
 
78
    oJSON.data("emsgSummary") = objEH.MessageSummary
79
    oJSON.data("emsgDetails") = objEH.MessageDetails
80
    oJSON.data("SqlQry") = SqlQry
81
'
82
'   Detect program errors
83
ElseIf Err.number <> 0 Then
84
    result = -3
85
    oJSON.data("error") = 2
86
    oJSON.data("errnum") = Err.number
87
    oJSON.data("errtxt") = Err.description
88
    oJSON.data("errsrc") = Err.source
89
    oJSON.data("emsgSummary") = "Internal VBScript Error:"
90
    oJSON.data("emsgDetails") = Err.number &  ":" & Err.description
91
End If
92
On error goto 0
93
'Write single value
94
oJSON.data("result") = result
95
If result = 0 Then
96
    oJSON.data.Remove("emsgSummary")
97
    oJSON.data.Remove("emsgDetails")
98
End If
99
 
100
'function Sleep(seconds)
101
'    dim oshell, cmd
102
'    set oShell = CreateObject("Wscript.Shell")
103
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
104
'    oShell.Run cmd,0,1
105
'End function
106
'
107
'Sleep(2)
108
 
109
 
110
' DEBUG: A Hash of the user provided requests
111
<!--oJSON.data("QueryString") = Request.QueryString       -->
112
<!--                                                      -->
113
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
114
<!--Set oJSON.data("Request") = requestSet                -->
115
<!--Dim variableName                                      -->
116
<!--for each variableName in Request.QueryString          -->
117
<!--    requestSet.add variableName, Request(variableName)-->
118
<!--next                                                  -->
119
<!--for each variableName in Request.Form                 -->
120
<!--    requestSet.add variableName, Request(variableName)-->
121
<!--next                                                  -->
122
 
123
 
124
'Return the object
125
Response.Write oJSON.JSONoutput()
5957 dpurdie 126
Set oJSON = Nothing
127
Call Destroy_All_Objects
5266 dpurdie 128
%>
129
<%
130
'-------------------------------------------------
131
' Function:    updateProjects
132
' Description: Add/Del the Named projects to the current users notification list
133
'              pkg_id   - Package to process
134
'              alist    - comma seperated list of projects to add
135
'              rlist    - comma seperated list of projects to remove
136
Sub updateProjects
137
 
138
    Dim  parPkgId : parPkgId = QStrPar("pkg_id")
139
    Dim  parAlist : parAlist = QStrPar("alist")
140
    Dim  parRlist : parRlist = QStrPar("rlist")
141
    If parPkgId <> "" Then
142
 
143
        Dim arrAfield : arrAfield=Split(parAlist,",")
144
        Dim arrRfield : arrRfield=Split(parRlist,",")
145
        Dim elem
146
 
147
        objEH.ErrorRedirect = FALSE
148
        objEH.TryORA ( OraSession )
149
        On Error Resume Next
150
 
151
        OraDatabase.Parameters.Add "PROJ_ID",	0, ORAPARM_INPUT, ORATYPE_NUMBER
152
        OraDatabase.Parameters.Add "PKG_ID",	parPkgId, 	ORAPARM_INPUT, ORATYPE_NUMBER
153
        OraDatabase.Parameters.Add "USER_ID", 	objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
154
 
155
        For each elem in arrAfield
156
            OraDatabase.Parameters("PROJ_ID").value = elem
157
        	OraDatabase.ExecuteSQL "BEGIN ADD_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"
158
        Next
159
 
160
        For each elem in arrRfield
161
            OraDatabase.Parameters("PROJ_ID").value = elem
162
        	OraDatabase.ExecuteSQL "BEGIN REMOVE_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"
163
        Next
164
 
165
        OraDatabase.Parameters.Remove "PROJ_ID"
166
        OraDatabase.Parameters.Remove "PKG_ID"
167
        OraDatabase.Parameters.Remove "USER_ID"
168
 
169
        objEH.CatchORA ( OraSession )
170
        result = 0
171
    Else
172
        oJSON.data("emsgSummary") = "addProjects"
173
        oJSON.data("emsgDetails") = "Insufficient arguments"
174
    End If
175
End Sub
176
 
177
%>