% '---------------------------------------------------- ' ASP XML Script to manage simple tasks via web ' Nick Sumner 17.08.2003 ' scripts@nicksumner.com ' www.nicksumner.com/scripts '---------------------------------------------------- %> <% Option Explicit %>
View Tasks | Manage Tasks | New Task | Notes | Clear Tasks | Info
<% Dim strFile strFile = Server.MapPath("tasks.xml") Dim msg msg = "" 'load XML file Dim objXML, objRoot, AllItems, TaskItem Set objXML = Server.CreateObject("Microsoft.XMLDOM") XMLLoad() Dim TaskID Dim TaskName Dim TaskEmail Dim TaskDesc Dim TaskNotes Dim TaskDone Dim TaskDate Dim Task_ID Dim Task_Name Dim Task_Email Dim Task_Desc Dim Task_Notes Dim Task_Done Dim Task_Date TaskID = Trim(Request("task_id")) TaskName = Trim(Request("task_name")) TaskEmail = Trim(Request("task_email")) TaskDesc = Trim(Request("task_desc")) TaskNotes = Trim(Request("task_notes")) TaskDone = Trim(Request("task_done")) TaskDate = Now() If TaskName<>"" Then Session("TaskName") = TaskName If TaskEmail<>"" Then Session("TaskEmail") = TaskEmail If Trim(Request("task_new"))="1" Then Call newXMLField(strFile) Else Call UpdateTasks() End If Set objRoot = Nothing Set AllItems = Nothing Set objXML = Nothing FUNCTION XMLLoad() objXML.async = False objXML.Load (strFile) Set AllItems = objXML.selectNodes("//task") Set objRoot = objXML.documentElement END FUNCTION FUNCTION UpdateTasks() If (TaskName<>"" And TaskDesc<>"") Or _ TaskDone<>"" Then If TaskID<>"" Then Call updateXMLField(TaskID, TaskName, TaskEmail, TaskDesc, TaskNotes, TaskDone, strFile) Else Call insertXMLField(TaskName, TaskEmail, TaskDesc, TaskNotes, TaskDone, strFile) End If End If XMLLoad() If (TaskID<>"") Then If TaskName="" And TaskDesc="" And TaskDone<>"" Then Response.Redirect "tasks.asp?" Response.End End If Call DisplayTask(TaskID) Else Call DisplayTasks() End If END FUNCTION FUNCTION DisplayTask(task) Dim I If task="0" Then task="" Dim strTaskName Dim strTaskEmail Dim strTaskDesc Dim strTaskNotes Dim strTaskDone Dim strTaskDate For I = 0 to (AllItems.Length - 1) Set Task_ID = AllItems(I).selectNodes("task_id") If ((Task_ID(0).text) = trim(task)) Then Set Task_Name = AllItems(I).selectNodes("task_name") Set Task_Email = AllItems(I).selectNodes("task_email") Set Task_Desc = AllItems(I).selectNodes("task_desc") Set Task_Notes = AllItems(I).selectNodes("task_notes") Set Task_Done = AllItems(I).selectNodes("task_done") Set Task_Date = AllItems(I).selectNodes("task_date") strTaskName = Task_Name(0).text strTaskEmail = Task_Email(0).text strTaskDesc = Task_Desc(0).text strTaskNotes = Task_Notes(0).text strTaskDone = Task_Done(0).text strTaskDate = Task_Date(0).text EXIT FOR End If Next If strTaskName="" Then strTaskName = Session("TaskName") If strTaskEmail="" Then strTaskEmail = Session("TaskEmail") Response.Write "" & vbcrlf END FUNCTION FUNCTION DisplayTasks() Dim I Dim strTaskID Dim strTaskName Dim strTaskEmail Dim strTaskDesc Dim strTaskNotes Dim strTaskDone Dim strTaskDate Response.Write "| " & vbcrlf Response.Write "ID" Response.Write " | " & vbcrlf Response.Write " | " & vbcrlf Response.Write "Name" Response.Write " | " & vbcrlf Response.Write "Task" Response.Write " | " & vbcrlf Response.Write "Date" Response.Write " |
|---|---|---|---|---|
| " & vbcrlf Response.Write "" Response.Write strTaskID Response.Write "" Response.Write " | " & vbcrlf Response.Write "" Response.Write " | " & vbcrlf Response.Write "" Response.Write strTaskName Response.Write "" Response.Write " | " & vbcrlf
Response.Write ""
Response.Write Left(strTaskDesc, 35)
If LEN(strTaskDesc)>35 Then Response.Write "..."
Response.Write ""
If Trim(Request("notes"))="1" Then
Response.Write " " strTaskNotes = Trim(Replace(" " & strTaskNotes, Chr(10), " ")) Response.Write strTaskNotes End If Response.Write " | " & vbcrlf Response.Write strTaskDate Response.Write " |
Task updated
" END FUNCTION FUNCTION insertXMLField(task_name_str, task_email_str, task_desc_str, task_notes_str, task_done_str, strXMLFile) Dim objField, I, found, max_elem_id, elem_id 'update - find the element elem_id = 1 max_elem_id = 1 For I = 0 to (AllItems.Length - 1) Set Task_ID = AllItems(I).selectNodes("task_id") elem_id = CINT(Task_ID(0).text) If (elem_id => max_elem_id) Then max_elem_id = elem_id + 1 End If Next If (task_done_str="") Then task_done_str="0" 'create and add the elment Dim objTask, obj Set objTask = objXML.createElement("task") objRoot.appendChild(objTask) Set obj = objXML.createElement("task_id") objTask.appendChild(obj) obj.text = max_elem_id Set obj = objXML.createElement("task_name") objTask.appendChild(obj) obj.text = task_name_str Set obj = objXML.createElement("task_email") objTask.appendChild(obj) obj.text = task_email_str Set obj = objXML.createElement("task_desc") objTask.appendChild(obj) obj.text = task_desc_str Set obj = objXML.createElement("task_notes") objTask.appendChild(obj) obj.text = task_notes_str Set obj = objXML.createElement("task_done") objTask.appendChild(obj) obj.text = task_done_str Set obj = objXML.createElement("task_date") objTask.appendChild(obj) obj.text = Now() objXML.save strXMLFile insertXMLField = True Set objField = Nothing msg = "Task inserted
" END FUNCTION FUNCTION newXMLField(strXMLFile) 'create xml objXML.LoadXML("Tasks deleted
" END FUNCTION Response.Write msg %>