Subversion Repositories DevTools

Rev

Rev 5957 | 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 ------------------ %>
23
<!--#include file="_access_control_login.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
67
 
68
Else
69
    oJSON.data("error") = 1
70
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
71
    oJSON.data("emsgDetails") = "JSON operation is not supported: " & parOpr
72
End If
73
 
74
 
75
' SQL error detection and reporting
76
If objEH.LastOraFailed Then
77
    oJSON.data("error") = 1
78
    result = -1
79
 
80
    oJSON.data("emsgSummary") = objEH.MessageSummary
81
    oJSON.data("emsgDetails") = objEH.MessageDetails
82
    oJSON.data("SqlQry") = SqlQry
83
'
84
'   Detect program errors
85
ElseIf Err.number <> 0 Then
86
    result = -3
87
    oJSON.data("error") = 2
88
    oJSON.data("errnum") = Err.number
89
    oJSON.data("errtxt") = Err.description
90
    oJSON.data("errsrc") = Err.source
91
    oJSON.data("emsgSummary") = "Internal VBScript Error:"
92
    oJSON.data("emsgDetails") = Err.number &  ":" & Err.description
93
End If
94
On error goto 0
95
'Write single value
96
oJSON.data("result") = result
97
If result = 0 Then
98
    oJSON.data.Remove("emsgSummary")
99
    oJSON.data.Remove("emsgDetails")
100
End If
101
 
102
'function Sleep(seconds)
103
'    dim oshell, cmd
104
'    set oShell = CreateObject("Wscript.Shell")
105
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
106
'    oShell.Run cmd,0,1
107
'End function
108
'
109
'Sleep(2)
110
 
111
 
112
' DEBUG: A Hash of the user provided requests
113
<!--oJSON.data("QueryString") = Request.QueryString       -->
114
<!--                                                      -->
115
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
116
<!--Set oJSON.data("Request") = requestSet                -->
117
<!--Dim variableName                                      -->
118
<!--for each variableName in Request.QueryString          -->
119
<!--    requestSet.add variableName, Request(variableName)-->
120
<!--next                                                  -->
121
<!--for each variableName in Request.Form                 -->
122
<!--    requestSet.add variableName, Request(variableName)-->
123
<!--next                                                  -->
124
 
125
 
126
'Return the object
127
Response.Write oJSON.JSONoutput()
5957 dpurdie 128
Set oJSON = Nothing
129
Call Destroy_All_Objects
5266 dpurdie 130
%>
131
<%
132
'-------------------------------------------------
133
' Function:    updateProjects
134
' Description: Add/Del the Named projects to the current users notification list
135
'              pkg_id   - Package to process
136
'              alist    - comma seperated list of projects to add
137
'              rlist    - comma seperated list of projects to remove
138
Sub updateProjects
139
 
140
    Dim  parPkgId : parPkgId = QStrPar("pkg_id")
141
    Dim  parAlist : parAlist = QStrPar("alist")
142
    Dim  parRlist : parRlist = QStrPar("rlist")
143
    If parPkgId <> "" Then
144
 
145
        Dim arrAfield : arrAfield=Split(parAlist,",")
146
        Dim arrRfield : arrRfield=Split(parRlist,",")
147
        Dim elem
148
 
149
        objEH.ErrorRedirect = FALSE
150
        objEH.TryORA ( OraSession )
151
        On Error Resume Next
152
 
153
        OraDatabase.Parameters.Add "PROJ_ID",	0, ORAPARM_INPUT, ORATYPE_NUMBER
154
        OraDatabase.Parameters.Add "PKG_ID",	parPkgId, 	ORAPARM_INPUT, ORATYPE_NUMBER
155
        OraDatabase.Parameters.Add "USER_ID", 	objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
156
 
157
        For each elem in arrAfield
158
            OraDatabase.Parameters("PROJ_ID").value = elem
159
        	OraDatabase.ExecuteSQL "BEGIN ADD_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"
160
        Next
161
 
162
        For each elem in arrRfield
163
            OraDatabase.Parameters("PROJ_ID").value = elem
164
        	OraDatabase.ExecuteSQL "BEGIN REMOVE_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"
165
        Next
166
 
167
        OraDatabase.Parameters.Remove "PROJ_ID"
168
        OraDatabase.Parameters.Remove "PKG_ID"
169
        OraDatabase.Parameters.Remove "USER_ID"
170
 
171
        objEH.CatchORA ( OraSession )
172
        result = 0
173
    Else
174
        oJSON.data("emsgSummary") = "addProjects"
175
        oJSON.data("emsgDetails") = "Insufficient arguments"
176
    End If
177
End Sub
178
 
179
%>