<% ' Get all form data Dim appid, appname, appdescription, supportteamid Dim applicationnotes, installpath, applicationlink, documentationpath, image Dim isinstallable, isactive, ishidden, isprinter, islicenced Dim newsupportteamname, newsupportteamurl, newappownerid appid = Request.Form("appid") appname = Trim(Request.Form("appname")) appdescription = Trim(Request.Form("appdescription")) supportteamid = Trim(Request.Form("supportteamid")) applicationnotes = Trim(Request.Form("applicationnotes")) installpath = Trim(Request.Form("installpath")) applicationlink = Trim(Request.Form("applicationlink")) documentationpath = Trim(Request.Form("documentationpath")) image = Trim(Request.Form("image")) ' New support team fields newsupportteamname = Trim(Request.Form("newsupportteamname")) newsupportteamurl = Trim(Request.Form("newsupportteamurl")) newappownerid = Trim(Request.Form("newappownerid")) ' Checkboxes If Request.Form("isinstallable") = "1" Then isinstallable = 1 Else isinstallable = 0 If Request.Form("isactive") = "1" Then isactive = 1 Else isactive = 0 If Request.Form("ishidden") = "1" Then ishidden = 1 Else ishidden = 0 If Request.Form("isprinter") = "1" Then isprinter = 1 Else isprinter = 0 If Request.Form("islicenced") = "1" Then islicenced = 1 Else islicenced = 0 ' Check if we need to create a new support team first If supportteamid = "new" Then If newsupportteamname = "" Then Response.Write("
Error: Support team name is required.
") Response.Write("Go back") objConn.Close Response.End End If If Len(newsupportteamname) > 50 Then Response.Write("
Error: Support team name too long.
") Response.Write("Go back") objConn.Close Response.End End If ' Escape quotes for support team name and URL Dim escapedTeamName, escapedTeamUrl escapedTeamName = Replace(newsupportteamname, "'", "''") escapedTeamUrl = Replace(newsupportteamurl, "'", "''") ' Check if support team already exists Dim checkSQL, rsCheck checkSQL = "SELECT COUNT(*) as cnt FROM supportteams WHERE LOWER(teamname) = LOWER('" & escapedTeamName & "')" Set rsCheck = objConn.Execute(checkSQL) If rsCheck.EOF Then rsCheck.Close Response.Write("
Error: Database query failed.
") Response.Write("Go back") objConn.Close Response.End End If If CLng(rsCheck("cnt")) > 0 Then rsCheck.Close Response.Write("
Error: Support team '" & Server.HTMLEncode(newsupportteamname) & "' already exists.
") Response.Write("Go back") objConn.Close Response.End End If rsCheck.Close ' Check if we need to create a new app owner first (nested creation) If newappownerid = "new" Then Dim newappownername, newappownersso newappownername = Trim(Request.Form("newappownername")) newappownersso = Trim(Request.Form("newappownersso")) If newappownername = "" Or newappownersso = "" Then Response.Write("
Error: App owner name and SSO are required.
") Response.Write("Go back") objConn.Close Response.End End If If Len(newappownername) > 50 Or Len(newappownersso) > 50 Then Response.Write("
Error: App owner name or SSO too long.
") Response.Write("Go back") objConn.Close Response.End End If ' Escape quotes Dim escapedOwnerName, escapedSSO escapedOwnerName = Replace(newappownername, "'", "''") escapedSSO = Replace(newappownersso, "'", "''") ' Check if app owner already exists checkSQL = "SELECT COUNT(*) as cnt FROM appowners WHERE LOWER(appowner) = LOWER('" & escapedOwnerName & "') OR LOWER(sso) = LOWER('" & escapedSSO & "')" Set rsCheck = objConn.Execute(checkSQL) If rsCheck.EOF Then rsCheck.Close Response.Write("
Error: Database query failed (app owner check).
") Response.Write("Go back") objConn.Close Response.End End If If CLng(rsCheck("cnt")) > 0 Then rsCheck.Close Response.Write("
Error: App owner with this name or SSO already exists.
") Response.Write("Go back") objConn.Close Response.End End If rsCheck.Close ' Insert new app owner Dim ownerSQL ownerSQL = "INSERT INTO appowners (appowner, sso, isactive) VALUES ('" & escapedOwnerName & "', '" & escapedSSO & "', 1)" On Error Resume Next objConn.Execute ownerSQL If Err.Number <> 0 Then Response.Write("
Error creating app owner: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the new app owner ID Set rsCheck = objConn.Execute("SELECT LAST_INSERT_ID() as newid") newappownerid = rsCheck("newid") rsCheck.Close Else ' Validate existing app owner ID (only if not empty and not "new") If newappownerid <> "" And newappownerid <> "new" Then If Not IsNumeric(newappownerid) Or CLng(newappownerid) < 1 Then Response.Write("
Error: Invalid app owner.
") Response.Write("Go back") objConn.Close Response.End End If End If End If ' Insert new support team Dim teamSQL teamSQL = "INSERT INTO supportteams (teamname, teamurl, appownerid, isactive) VALUES ('" & escapedTeamName & "', '" & escapedTeamUrl & "', " & newappownerid & ", 1)" On Error Resume Next objConn.Execute teamSQL If Err.Number <> 0 Then Response.Write("
Error creating support team: " & Err.Description & "
") Response.Write("Go back") objConn.Close Response.End End If ' Get the new support team ID Set rsCheck = objConn.Execute("SELECT LAST_INSERT_ID() as newid") supportteamid = rsCheck("newid") rsCheck.Close Else ' Validate existing support team ID (only if not empty and not "new") If supportteamid <> "" And supportteamid <> "new" Then If Not IsNumeric(supportteamid) Or CLng(supportteamid) < 1 Then Response.Write("
Error: Invalid support team ID.
") Response.Write("Go back") objConn.Close Response.End End If End If End If ' Escape backslashes and single quotes for SQL ' Must escape backslashes FIRST, then quotes appname = Replace(appname, "\", "\\") appname = Replace(appname, "'", "''") appdescription = Replace(appdescription, "\", "\\") appdescription = Replace(appdescription, "'", "''") applicationnotes = Replace(applicationnotes, "\", "\\") applicationnotes = Replace(applicationnotes, "'", "''") installpath = Replace(installpath, "\", "\\") installpath = Replace(installpath, "'", "''") applicationlink = Replace(applicationlink, "\", "\\") applicationlink = Replace(applicationlink, "'", "''") documentationpath = Replace(documentationpath, "\", "\\") documentationpath = Replace(documentationpath, "'", "''") image = Replace(image, "\", "\\") image = Replace(image, "'", "''") ' Build UPDATE statement Dim strSQL strSQL = "UPDATE applications SET " & _ "appname = '" & appname & "', " & _ "appdescription = '" & appdescription & "', " & _ "supportteamid = " & supportteamid & ", " & _ "applicationnotes = '" & applicationnotes & "', " & _ "installpath = '" & installpath & "', " & _ "applicationlink = '" & applicationlink & "', " & _ "documentationpath = '" & documentationpath & "', " & _ "image = '" & image & "', " & _ "isinstallable = " & isinstallable & ", " & _ "isactive = " & isactive & ", " & _ "ishidden = " & ishidden & ", " & _ "isprinter = " & isprinter & ", " & _ "islicenced = " & islicenced & " " & _ "WHERE appid = " & appid On Error Resume Next objConn.Execute strSQL If Err.Number = 0 Then objConn.Close Response.Redirect("displayapplication.asp?appid=" & appid) Else Response.Write("Error: " & Err.Description) objConn.Close End If %>