/*
 * Author       : zchelp
 * Generated on : 24-Nov-2009 13:28:31
 * Version      : 3.0
 */
application "Task Management"
{
    type = public
    date format = "dd-MMM-yyyy"
    time zone = "America/Los_Angeles"
    section Tasks
    {
        form  Tasks
        {
            
            Task
            (
                type  =  text
            )

            Description
            (
                type  =  textarea
            )

            old_descr
            (
                displayname  =  "old descr."
                type  =  textarea
            )

            actions
            {
                on add
                {
                    Submit
                    (
                        type  =  submit
                        displayname  =  "Submit"
                    )
                    Reset
                    (
                        type  =  reset
                        displayname  =  "Reset"
                    )
                }
                on edit
                {
                    Update
                    (
                        type  =  submit
                        displayname  =  "Update"
                        on validate
                        {
                            input.old_descr = old.Description;
                        }
                    )
                    Cancel
                    (
                        type  =  cancel
                        displayname  =  "Cancel"
                    )
                }
            }
        }

        list  Tasks_View
        {
            displayname = "Tasks View"
            show  all  rows  from  Tasks 
            (
                Task
                Description
            )
            options
            (
                display rows = 100
            )
        }

        list  xxx
        {
            show  all  rows  from  Assign_Task 
            (
                Assigned_Date as "Assigned Date"
                Tasks_Assigned as "Tasks Assigned"
                Staff
            )
            filters 
            (
                Assigned_Date
                Staff
            )
            options
            (
                display rows = 100
            )
        }

        form  History
        {
            
            Deleted_Task
            (
                displayname  =  "Deleted Task"
                type  =  textarea
            )

            actions
            {
                on add
                {
                    Submit
                    (
                        type  =  submit
                        displayname  =  "Submit"
                    )
                    Reset
                    (
                        type  =  reset
                        displayname  =  "Reset"
                    )
                }
                on edit
                {
                    Update
                    (
                        type  =  submit
                        displayname  =  "Update"
                    )
                    Cancel
                    (
                        type  =  cancel
                        displayname  =  "Cancel"
                    )
                }
            }
        }

        list  History_View
        {
            displayname = "History View"
            show  all  rows  from  History 
            (
                Deleted_Task as "Deleted Task"
            )
            options
            (
                display rows = 100
            )
        }

    }

    section Assign_Tasks
    {
        displayname = "Assign Tasks"
        form  Assign_Task
        {
            displayname  =  "Assign Task"
            
            Assigned_Date
            (
                displayname  =  "Assigned Date"
                type  =  date
            )

            Tasks_Assigned
            (
                displayname  =  "Tasks Assigned"
                type  =  list
                values  =  Tasks.Task
            )

            Staff
            (
                type  =  picklist
                values  =  Staff_Details.Staff_Name
            )

            actions
            {
                on add
                {
                    Submit
                    (
                        type  =  submit
                        displayname  =  "Submit"
                        on success
                        {
                            temp = "";
                            for each Tasks_Assigned r in Assign_Task  [(Staff == input.Staff && Assigned_Date == input.Assigned_Date)]
                            {
                                temp = temp + r.Task + "<br>";
                            }
                            rec  =  Staff_Details  [Staff_Name == input.Staff];
                            sendmail
                            (
                                To       :  rec.Email_Id 
                                From     :  zoho.adminuserid 
                                Subject  :  "Subject of the email" 
                                Message  :  "The following tasks are assigned to you: <br>" + temp 
                            )
                        }
                    )
                    Reset
                    (
                        type  =  reset
                        displayname  =  "Reset"
                    )
                }
                on edit
                {
                    Update
                    (
                        type  =  submit
                        displayname  =  "Update"
                    )
                    Cancel
                    (
                        type  =  cancel
                        displayname  =  "Cancel"
                    )
                }
            }
        }

        list  Assign_Task_View
        {
            displayname = "Assign Task View"
            show  all  rows  from  Assign_Task 
            (
                Staff
                Tasks_Assigned as "Assign Task"
                Assigned_Date as "Assigned Date"
            )
            filters 
            (
                Assigned_Date
                Staff
            )
            options
            (
                display rows = 100
            )
        }

    }

    section Staff_Details
    {
        displayname = "Staff Details"
        form  Staff_Details
        {
            displayname  =  "Staff Details"
            
            Staff_Name
            (
                displayname  =  "Staff Name"
                type  =  text
            )

            Email_Id
            (
                displayname  =  "Email Id"
                type  =  email
            )

            Module
            (
                type  =  picklist
                values  =  feedback_application.Modules.Module_Name
            )

            Module_Name
            (
                displayname  =  "Module Name"
                type  =  picklist
                values  =  {"Scripting",   "Usability",   "GUI",   "Docs",   "Testing"}
            )

            actions
            {
                on add
                {
                    Submit
                    (
                        type  =  submit
                        displayname  =  "Submit"
                        on success
                        {
                            for each r in Staff_Details  [Module == "Scripting"]
                            {
                                sendmail
                                (
                                    To       :  r.Email_Id 
                                    From     :  zoho.adminuserid 
                                    Subject  :  "Meeting" 
                                    Message  :  "You are requested to attend a meeting on 22/1/2008, 3.00 p.m at the Pacific Hall" 
                                )
                            }
                        }
                    )
                    Reset
                    (
                        type  =  reset
                        displayname  =  "Reset"
                    )
                }
                on edit
                {
                    Update
                    (
                        type  =  submit
                        displayname  =  "Update"
                    )
                    Cancel
                    (
                        type  =  cancel
                        displayname  =  "Cancel"
                    )
                }
            }
        }

        list  Staff_Details_View
        {
            displayname = "Staff Details View"
            show  all  rows  from  Staff_Details 
            (
                Staff_Name as "Staff Name"
                Email_Id as "Email Id"
                Module
            )
            filters 
            (
                Module
            )
            options
            (
                display rows = 100
            )
        }

        list  Copy_of_Tasks_View
        {
            displayname = "Copy of Tasks View"
            show  all  rows  from  Tasks 
            (
                Task
                Description
            )
            options
            (
                display rows = 100
            )
        }

    }

}
