A form to show the state of a project as some HTML chart.

<div>

<script runat="server"><![CDATA[
  var jobDS    = null;
  var project  = getProject();
  var job      = null;
  var jobProgress = null;
  
  if (project != null) {
    print("project is: "+project);
    jobDS = project.getJobDataSource();
    jobDS.setQualifier("category = 'Jobverfolgung' and jobStatus <> '30_archived'");

        /* 
          Qualifier attribute: keywords, category, jobStatus, startDate, endDate

          moeglich Werte von jobStatus: 00_created
                                        02_rejected
                                        20_processing
                                        25_done
                                        30_archived

           zum Beispiel: ("keyword like 'test*' and jobStatus <> '00_archived'")

       */

  }
  else
    alert("couldn't get datasource ..");

  function getJobProgress() {
    var progress;
    var historyDS = job.getHistoryDataSource();
    var histories = historyDS.fetchObjects();
    var history   = histories[histories.length-1];
    var comment   = history.getAttribute("comment");

    comment = new String(comment);
    comment = comment.split('%');

    print("comment is " + comment[0]);

    jobProgress = comment[0];

    return comment[0];
  }

  function vorzugColor() {
    var startDate   = job.getAttribute("startDate").getTime();
    var endDate     = job.getAttribute("endDate").getTime();
    var currentDate = SkyDate().getTime();
    var progress    = getJobProgress();

    return ((((currentDate - startDate) / (endDate - startDate))*100) <= progress)
      ? "#00FF00"
      : "#FF0000";
  }

  function progress0Color() {
    return (getJobProgress() > 0) ? "#00FF00" :  "#FFFFFF";
  }

  function progress100Color() {
    return (getJobProgress() >= 100) ? "#00FF00" :  "#FFFFFF";
  }

  function progressPlus() {
    var progress = getJobProgress();

    return progress+'%';
  }

  function progressMinus() {
    return 100-getJobProgress()+'%';
  }


]]></script>

<TABLE border="0" width="100%">

<var:foreach item="job" list="jobDS.fetchObjects">
  <TR>
    <TD colspan="6">
      <TABLE width="100%" border="0" cellpadding="0" cellspacing="0">
        <TR>
          <TD height="10" js:bgcolor="progress0Color()" js:width="progressPlus()">
            <xul:image src="invisible_space_1.gif"/>    
          </TD>
          <TD height="10" js:bgcolor="progress100Color()" js:width="progressMinus()">
            <xul:image src="invisible_space_1.gif"/>    
          </TD>
        </TR>
      </TABLE>
    </TD>
  </TR>
  <TR>

    <td valign="middle" rowspan="2" align="center" js:bgcolor="vorzugColor()">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="3">
      <B>Verzugsanzeige</B>
     </FONT>
    </td>

    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      Bearbeitet durch:
     </FONT>
    </TD>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      Starttermin:
     </FONT>
    </TD>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      Endtermin:
     </FONT>
    </TD>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      Fortschritt:
     </FONT>
    </TD>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      Beschreibung zum Vorgang:
     </FONT>
    </TD>
  </TR>
  <TR>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      <var:string value="job.executor.name"/>
     </FONT>
    </TD>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      <var:string value="job.startDate"/>
     </FONT>
    </TD>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      <var:string value="job.endDate"/>
     </FONT>
    </TD>
    <TD valign="top" align="right">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      <var:string value="jobProgress"/> %
     </FONT>
    </TD>
    <TD valign="top" align="left">
     <FONT face="Arial,Helvetica,Verdana,Geneva,Tahoma" size="2">
      <var:string value="job.name"/>
     </FONT>
    </TD>
  </TR>
  <TR><TD COLSPAN="6"><HR size="1" /></TD></TR>
</var:foreach>

</TABLE>

</div>