/*
 * Author       : suganya
 * Generated on : 25-Nov-2009 02:57:55
 * Version      : 3.0
 */
application "Bug Tracker"
{
    type = public
    allow html = true
    date format = "dd-MMM-yyyy"
    time zone = "America/Los_Angeles"
    section File_Issues
    {
        displayname = "File Issues"
        form  Issue
        {
            displayname  =  "File issue"
            
            must  have  Title
            (
                type  =  text
            )

            must  have  Description
            (
                type  =  textarea
            )

            Module
            (
                type  =  picklist
                values  =  Module.Module_Name
                on user input
                {
                    team  =  team_member  [Module == input.Module];
                    for each t in team
                    {
                        Assigned_to:ui.add(t.name);
                    }
                }
            )

            Priority
            (
                type  =  radiobuttons
                values  =  {"Very High",   "High",   "Medium",   "Low"}
            )

            Status
            (
                type  =  picklist
                values  =  {"Open",   "InProgress",   "Closed"}
            )

            Reported_Date
            (
                displayname  =  "Reported date"
                type  =  date
            )

            Assigned_to
            (
                displayname  =  "Assigned to"
                type  =  picklist
                values  =  team_member.name
            )

            actions
            {
                on add
                {
                    on load
                    {
                        /* Set default value for fields including picklist while loading a form */
                        input.Status = "Open";
                    }
                    Submit
                    (
                        type  =  submit
                        displayname  =  "Submit"
                    )
                    Reset
                    (
                        type  =  reset
                        displayname  =  "Reset"
                    )
                }
                on edit
                {
                    Update
                    (
                        type  =  submit
                        displayname  =  "Update"
                    )
                    Cancel
                    (
                        type  =  cancel
                        displayname  =  "Cancel"
                    )
                }
            }
        }

    }

    section Team_Members
    {
        displayname = "Team Members"
        form  team_member
        {
            displayname  =  "Add team member"
            
            name
            (
                displayname  =  "Name"
                type  =  text
            )

            Module
            (
                type  =  picklist
                values  =  Module.Module_Name
            )

            email
            (
                displayname  =  "Email id"
                type  =  email
            )

            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"
                    )
                }
            }
        }

        form  Module
        {
            displayname  =  "Add Module"
            
            Module_Name
            (
                displayname  =  "Module Name"
                type  =  text
            )

            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  List_all_modules
        {
            displayname = "List all modules"
            show  all  rows  from  Module 
            (
                Module_Name as "Module Name"
            )
            options
            (
                display rows = 100
            )
            permission
            (
                add = true
                edit = true
                delete = true
            )
        }

        list  All_team_members
        {
            displayname = "All team members"
            show  all  rows  from  team_member 
            (
                name as "Name"
                Module
            )
            options
            (
                display rows = 100
            )
            permission
            (
                add = true
                edit = true
                delete = true
            )
        }

    }

    section My_Issues
    {
        displayname = "My Issues"
        list  My_pending_issues
        {
            displayname = "My pending issues"
            show  all  rows  from  Issue [(Status != "Closed" && Assigned_to.email == zoho.loginuserid)]
            (
                Title
                Description
                Module
                Priority
                Status
                Reported_Date as "Reported date"
            )
            filters 
            (
                Module
                Priority
                Status
                Reported_Date
                Assigned_to
            )
            options
            (
                display rows = 100
            )
            permission
            (
                add = true
                edit = true
                delete = true
            )
        }

    }

    section All_Issues_Pending
    {
        displayname = "All Issues - Pending"
        list  All_open_Issues
        {
            displayname = "All open Issues"
            show  all  rows  from  Issue [Status == "Open"]
            (
                Title
                Module
                Priority
                Reported_Date as "Reported date"
                Assigned_to as "Assigned to"
            )
            filters 
            (
                Module
                Priority
            )
            options
            (
                display rows = 100
            )
            permission
            (
                add = true
                edit = true
                delete = true
            )
        }

        list  All_Issues_in_progress
        {
            displayname = "All Issues in progress"
            show  all  rows  from  Issue [Status == "InProgress"]
            (
                Title
                Module
                Priority
                Assigned_to as "Assigned to"
            )
            filters 
            (
                Module
                Priority
            )
            options
            (
                display rows = 100
            )
            permission
            (
                add = true
                edit = true
                delete = true
            )
        }

    }

    section All_Issues
    {
        displayname = "All Issues"
        list  All_Issues
        {
            displayname = "All Issues"
            show  all  rows  from  Issue 
            (
                Title
                Description
                Module
                Priority
                Status
                Reported_Date as "Reported date"
                Assigned_to as "Assigned to"
            )
            filters 
            (
                Module
                Priority
                Status
                Reported_Date
                Assigned_to
            )
            options
            (
                display rows = 100
            )
            permission
            (
                add = true
                edit = true
                delete = true
            )
        }

    }

}
