Rev 5506 | Rev 6048 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@LANGUAGE="VBSCRIPT"%><%'=====================================================' _json_Notifications.asp' Ajax support Package Notification Manipulation' updateProjects''=====================================================%><%Option explicit' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)Response.ContentType = "text/html"Response.AddHeader "Content-Type", "text/html;charset=UTF-8"Response.CodePage = 65001Response.CharSet = "UTF-8"%><!--#include file="common/conf.asp"--><!--#include file="common/globals.asp"--><!--#include file="common/qstr.asp"--><!--#include file="common/common_subs.asp"--><!--#include file="_access_control_general.asp"--><SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT><%'------------ Variable Definition -------------Dim parOprDim resultDim SqlQryDim rsQryparOpr = QStrPar("Opr")' Init the output JSON class' Operations can add data' Default data will be added at the endDim oJSONSet oJSON = New aspJSONDim newitemFunction canModifycanModify = canActionInProject()If NOT canModify Thenresult = -4oJSON.data("error") = 1oJSON.data("emsgSummary") = "Permission denied"oJSON.data("emsgDetails") = oJSON.data("emsgSummary")End IfEnd Function'' Prefill error indications'result = -1oJSON.data("emsgSummary") = "JSON Operation:" & parOproJSON.data("emsgDetails") = "Internal Problem. Error not reported"'' Perform the body of the operations within a Sub and use' On Error Resule Next to catch errors that accur in the code'On Error Resume NextIf (parOpr = "updateProjects") ThenIf canModify() Then updateProjectsElseoJSON.data("error") = 1oJSON.data("emsgSummary") = "Unknown JSON Operation"oJSON.data("emsgDetails") = "JSON operation is not supported: " & parOprEnd If' SQL error detection and reportingIf objEH.LastOraFailed ThenoJSON.data("error") = 1result = -1oJSON.data("emsgSummary") = objEH.MessageSummaryoJSON.data("emsgDetails") = objEH.MessageDetailsoJSON.data("SqlQry") = SqlQry'' Detect program errorsElseIf Err.number <> 0 Thenresult = -3oJSON.data("error") = 2oJSON.data("errnum") = Err.numberoJSON.data("errtxt") = Err.descriptionoJSON.data("errsrc") = Err.sourceoJSON.data("emsgSummary") = "Internal VBScript Error:"oJSON.data("emsgDetails") = Err.number & ":" & Err.descriptionEnd IfOn error goto 0'Write single valueoJSON.data("result") = resultIf result = 0 ThenoJSON.data.Remove("emsgSummary")oJSON.data.Remove("emsgDetails")End If'function Sleep(seconds)' dim oshell, cmd' set oShell = CreateObject("Wscript.Shell")' cmd = "cmd.exe /c timeout " & seconds & " /nobreak"' oShell.Run cmd,0,1'End function''Sleep(2)' DEBUG: A Hash of the user provided requests<!--oJSON.data("QueryString") = Request.QueryString --><!-- --><!--Dim requestSet : Set requestSet = oJSON.Collection() --><!--Set oJSON.data("Request") = requestSet --><!--Dim variableName --><!--for each variableName in Request.QueryString --><!-- requestSet.add variableName, Request(variableName)--><!--next --><!--for each variableName in Request.Form --><!-- requestSet.add variableName, Request(variableName)--><!--next -->'Return the objectResponse.Write oJSON.JSONoutput()Set oJSON = NothingCall Destroy_All_Objects%><%'-------------------------------------------------' Function: updateProjects' Description: Add/Del the Named projects to the current users notification list' pkg_id - Package to process' alist - comma seperated list of projects to add' rlist - comma seperated list of projects to removeSub updateProjectsDim parPkgId : parPkgId = QStrPar("pkg_id")Dim parAlist : parAlist = QStrPar("alist")Dim parRlist : parRlist = QStrPar("rlist")If parPkgId <> "" ThenDim arrAfield : arrAfield=Split(parAlist,",")Dim arrRfield : arrRfield=Split(parRlist,",")Dim elemobjEH.ErrorRedirect = FALSEobjEH.TryORA ( OraSession )On Error Resume NextOraDatabase.Parameters.Add "PROJ_ID", 0, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PKG_ID", parPkgId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBERFor each elem in arrAfieldOraDatabase.Parameters("PROJ_ID").value = elemOraDatabase.ExecuteSQL "BEGIN ADD_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"NextFor each elem in arrRfieldOraDatabase.Parameters("PROJ_ID").value = elemOraDatabase.ExecuteSQL "BEGIN REMOVE_PACKAGE_INTEREST ( :PROJ_ID, :PKG_ID, :USER_ID ); END;"NextOraDatabase.Parameters.Remove "PROJ_ID"OraDatabase.Parameters.Remove "PKG_ID"OraDatabase.Parameters.Remove "USER_ID"objEH.CatchORA ( OraSession )result = 0ElseoJSON.data("emsgSummary") = "addProjects"oJSON.data("emsgDetails") = "Insufficient arguments"End IfEnd Sub%>