Subversion Repositories DevTools

Rev

Rev 6181 | 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"-->
6048 dpurdie 22
<% '------------ ACCESS CONTROL ------------------ %>
6181 dpurdie 23
<!--#include file="_access_control_login_optional.asp"-->
5266 dpurdie 24
<!--#include file="_access_control_general.asp"-->
25
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
26
<%
27
'------------ Variable Definition -------------
28
Dim parOpr
29
Dim result
30
Dim SqlQry
31
Dim rsQry
32
 
33
parOpr = QStrPar("Opr")
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
43
    canModify = canActionInProject()
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
'   Prefill error indications
54
'   
55
result = -1
56
oJSON.data("emsgSummary") = "JSON Operation:" & parOpr
57
oJSON.data("emsgDetails") = "Internal Problem. Error not reported" 
58
 
59
'   
60
'   Perform the body of the operations within a Sub and use
61
'   On Error Resule Next to catch errors that accur in the code
62
'
63
On Error Resume Next
64
 
65
If (parOpr = "updateProjects") Then
66
    If canModify() Then updateProjects
6497 dpurdie 67
ElseIf (parOpr = "RemoveUserFromProject") Then
68
    If canModify() Then RemoveUserFromProject
5266 dpurdie 69
 
70
Else
71
    oJSON.data("error") = 1
72
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
73
    oJSON.data("emsgDetails") = "JSON operation is not supported: " & parOpr
74
End If
75
 
76
 
77
' SQL error detection and reporting
78
If objEH.LastOraFailed Then
79
    oJSON.data("error") = 1
80
    result = -1
81
 
82
    oJSON.data("emsgSummary") = objEH.MessageSummary
83
    oJSON.data("emsgDetails") = objEH.MessageDetails
84
    oJSON.data("SqlQry") = SqlQry
85
'
86
'   Detect program errors
87
ElseIf Err.number <> 0 Then
88
    result = -3
89
    oJSON.data("error") = 2
90
    oJSON.data("errnum") = Err.number
91
    oJSON.data("errtxt") = Err.description
92
    oJSON.data("errsrc") = Err.source
93
    oJSON.data("emsgSummary") = "Internal VBScript Error:"
94
    oJSON.data("emsgDetails") = Err.number &  ":" & Err.description
95
End If
96
On error goto 0
97
'Write single value
98
oJSON.data("result") = result
99
If result = 0 Then
100
    oJSON.data.Remove("emsgSummary")
101
    oJSON.data.Remove("emsgDetails")
102
End If
103
 
104
'function Sleep(seconds)
105
'    dim oshell, cmd
106
'    set oShell = CreateObject("Wscript.Shell")
107
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
108
'    oShell.Run cmd,0,1
109
'End function
110
'
111
'Sleep(2)
112
 
113
 
114
' DEBUG: A Hash of the user provided requests
115
<!--oJSON.data("QueryString") = Request.QueryString       -->
116
<!--                                                      -->
117
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
118
<!--Set oJSON.data("Request") = requestSet                -->
119
<!--Dim variableName                                      -->
120
<!--for each variableName in Request.QueryString          -->
121
<!--    requestSet.add variableName, Request(variableName)-->
122
<!--next                                                  -->
123
<!--for each variableName in Request.Form                 -->
124
<!--    requestSet.add variableName, Request(variableName)-->
125
<!--next                                                  -->
126
 
127
 
128
'Return the object
129
Response.Write oJSON.JSONoutput()
5957 dpurdie 130
Set oJSON = Nothing
131
Call Destroy_All_Objects
5266 dpurdie 132
%>
133
<%
134
'-------------------------------------------------
135
' Function:    updateProjects
136
' Description: Add/Del the Named projects to the current users notification list
137
'              pkg_id   - Package to process
138
'              alist    - comma seperated list of projects to add
139
'              rlist    - comma seperated list of projects to remove
140
Sub updateProjects
141
 
142
    Dim  parPkgId : parPkgId = QStrPar("pkg_id")
143
    Dim  parAlist : parAlist = QStrPar("alist")
144
    Dim  parRlist : parRlist = QStrPar("rlist")
145
    If parPkgId <> "" Then
146
 
147
        Dim arrAfield : arrAfield=Split(parAlist,",")
148
        Dim arrRfield : arrRfield=Split(parRlist,",")
149
        Dim elem
150
 
151
        objEH.ErrorRedirect = FALSE
152
        objEH.TryORA ( OraSession )
153
        On Error Resume Next
154
 
155
        OraDatabase.Parameters.Add "PROJ_ID",	0, ORAPARM_INPUT, ORATYPE_NUMBER
156
        OraDatabase.Parameters.Add "PKG_ID",	parPkgId, 	ORAPARM_INPUT, ORATYPE_NUMBER
157
        OraDatabase.Parameters.Add "USER_ID", 	objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
158
 
159
        For each elem in arrAfield
160
            OraDatabase.Parameters("PROJ_ID").value = elem
161
        	OraDatabase.ExecuteSQL "BEGIN ADD_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"
162
        Next
163
 
164
        For each elem in arrRfield
165
            OraDatabase.Parameters("PROJ_ID").value = elem
166
        	OraDatabase.ExecuteSQL "BEGIN REMOVE_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"
167
        Next
168
 
169
        OraDatabase.Parameters.Remove "PROJ_ID"
170
        OraDatabase.Parameters.Remove "PKG_ID"
171
        OraDatabase.Parameters.Remove "USER_ID"
172
 
173
        objEH.CatchORA ( OraSession )
174
        result = 0
175
    Else
6497 dpurdie 176
        oJSON.data("emsgSummary") = "updateProjects"
5266 dpurdie 177
        oJSON.data("emsgDetails") = "Insufficient arguments"
178
    End If
179
End Sub
180
 
6497 dpurdie 181
'-------------------------------------------------
182
' Function:    RemoveUserFromProject
183
' Description: Remove the named user from the specified project
184
'              pkg_id   - Package to process
185
'              user_id  - User to Remove
186
'              proj_id  - Project to remove the user from
187
 
188
Sub RemoveUserFromProject
189
    Dim  parPkgId : parPkgId = QStrPar("pkg_id")
190
    Dim  parUserId : parUserId = QStrPar("user_id")
191
    Dim  parProjId : parProjId = QStrPar("proj_id")
192
    If parPkgId <> "" AND parUserId<> "" AND parProjId <> "" Then
193
        objEH.ErrorRedirect = FALSE
194
        objEH.TryORA ( OraSession )
195
        'On Error Resume Next
196
 
197
        OraDatabase.Parameters.Add "PROJ_ID",	parProjId,  ORAPARM_INPUT, ORATYPE_NUMBER
198
        OraDatabase.Parameters.Add "PKG_ID",	parPkgId, 	ORAPARM_INPUT, ORATYPE_NUMBER
199
        OraDatabase.Parameters.Add "USER_ID", 	parUserId,  ORAPARM_INPUT, ORATYPE_NUMBER
200
 
201
        OraDatabase.ExecuteSQL "BEGIN REMOVE_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"
202
 
203
        OraDatabase.Parameters.Remove "PROJ_ID"
204
        OraDatabase.Parameters.Remove "PKG_ID"
205
        OraDatabase.Parameters.Remove "USER_ID"
206
 
207
        objEH.CatchORA ( OraSession )
208
        result = 0
209
 
210
    Else
211
        oJSON.data("emsgSummary") = "RemoveUserFromProject"
212
        oJSON.data("emsgDetails") = "Insufficient arguments"
213
    End If
214
End Sub 
5266 dpurdie 215
%>