<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="5.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"
    xsi:schemaLocation="http://docbook.org/ns/docbook ../../../content/dtd/docbook.xsd"
    xmlns="http://docbook.org/ns/docbook">
    <title>MyWork</title>
    <section>
        <title></title>
        <para>
            This perform to work's information and update timesheet
            <orderedlist>
                <listitem><para>Current Timesheet</para></listitem>
                <listitem><para>Open task assigned to me</para></listitem>
                <listitem><para>Assign an exist Task to me</para></listitem>
                <listitem><para>Add a new weekly Timesheet</para></listitem>
                <listitem><para>Timesheet list of</para></listitem>
            </orderedlist>
        </para>
    </section>
    <section>
        <title>Current Timesheet</title>
        <para>
            To update a member's Timesheet and the set the task's status to complete when
            the task has been done.
        </para>
    </section>
    <section>
        <title>Open task assigned to me</title>
        <para>
            To show all tasks belong to the member and the tasks have not set to complete.
        </para>
    </section>
    <section>
        <title>Assign an exist Task to me</title>
        <para>
            To select the task in the drop down list named "Task name" for assignment the the ownself.
        </para>
    </section>
    <section>
        <title>Add a new weekly Timesheet</title>
        <para>
            To create a new Timesheet for user who login to the system.
        </para>
    </section>
    <section>
        <title>Timesheet list of</title>
        <para>
            To show all Timesheet for user who login to the system.
        </para>
    </section>
</section>