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>