1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
diff -dPNur 0.11/tracjsgantt/htdocs/jsgantt.js 0.11-fixed//tracjsgantt/htdocs/jsgantt.js
--- 0.11/tracjsgantt/htdocs/jsgantt.js 2011-08-10 21:26:35.000000000 +0200
+++ 0.11-fixed//tracjsgantt/htdocs/jsgantt.js 2011-09-16 22:00:00.000000000 +0200
@@ -1097,7 +1097,7 @@
// DRAW the Left-side of the chart (names, resources, comp%)
vLeftTable =
- '<DIV class=scroll id=leftside style="width:' + vLeftWidth + 'px"><TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>' +
+ '<DIV class=scroll id=leftside style="width:' + vLeftWidth + 'px;overflow-x: scroll"><TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>' +
'<TR style="HEIGHT: 17px">' +
' <TD style="WIDTH: 15px; HEIGHT: 17px"></TD>' +
' <TD style="WIDTH: ' + vNameWidth + 'px; HEIGHT: 17px; border:1;align:left BORDER-TOP: #efefef 1px solid; FONT-SIZE: 11px; BORDER-LEFT: #efefef 1px solid;" colspan = ' + vRadioSpan + '>';
@@ -1141,13 +1141,13 @@
vLeftTable +=
'<TR style="HEIGHT: 20px">' +
' <TD style="BORDER-TOP: #efefef 1px solid; WIDTH: 15px; HEIGHT: 20px"></TD>' +
- ' <TD style="BORDER-TOP: #efefef 1px solid; WIDTH: ' + vNameWidth + 'px; HEIGHT: 20px"><NOBR></NOBR></TD>' ;
+ ' <TD style="BORDER-TOP: #efefef 1px solid; HEIGHT: 20px"><NOBR></NOBR></TD>' ;
- if(vShowRes ==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; WIDTH: 60px; HEIGHT: 20px" align=center nowrap>Resource</TD>' ;
- if(vShowDur ==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; WIDTH: 60px; HEIGHT: 20px" align=center nowrap>Duration</TD>' ;
- if(vShowComp==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; WIDTH: 60px; HEIGHT: 20px" align=center nowrap>% Comp.</TD>' ;
- if(vShowStartDate==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; WIDTH: 60px; HEIGHT: 20px" align=center nowrap>Start Date</TD>' ;
- if(vShowEndDate==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; WIDTH: 60px; HEIGHT: 20px" align=center nowrap>End Date</TD>' ;
+ if(vShowRes ==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; HEIGHT: 20px" align=center nowrap>Resource</TD>' ;
+ if(vShowDur ==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; HEIGHT: 20px" align=center nowrap>Duration</TD>' ;
+ if(vShowComp==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; HEIGHT: 20px" align=center nowrap>% Comp.</TD>' ;
+ if(vShowStartDate==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; HEIGHT: 20px" align=center nowrap>Start Date</TD>' ;
+ if(vShowEndDate==1) vLeftTable += ' <TD style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid; HEIGHT: 20px" align=center nowrap>End Date</TD>' ;
vLeftTable += '</TR>';
@@ -1192,26 +1192,22 @@
vLeftTable +=
'<span ' +'class="'+vTaskList[i].getClass()+'" '+
'onclick=JSGantt.taskLink("' + vTaskList[i].getLink() + '","'+vPopupFeatures+'"); ' +
- 'style="cursor:pointer; display:inline-block;width:'+vNameWidth+'px;overflow:hidden;padding:0px" ' +
+ 'style="cursor:pointer; display:inline-block;overflow:hidden;padding:0px" ' +
'title="'+vTaskList[i].getName()+'"> ' + vTaskList[i].getName() +
'</span>' +
'</NOBR></TD>' ;
- if(vShowRes ==1) vLeftTable += ' <TD class=gname style="WIDTH: 60px; HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + vTaskList[i].getResource() + '</NOBR></TD>' ;
- if(vShowDur ==1) vLeftTable += ' <TD class=gname style="WIDTH: 60px; HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + vTaskList[i].getDuration(vFormat) + '</NOBR></TD>' ;
- if(vShowComp==1) vLeftTable += ' <TD class=gname style="WIDTH: 60px; HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + vTaskList[i].getCompStr() + '</NOBR></TD>' ;
- if(vShowStartDate==1) vLeftTable += ' <TD class=gname style="WIDTH: 60px; HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + JSGantt.formatDateStr( vTaskList[i].getStart(), vDateDisplayFormat) + '</NOBR></TD>' ;
- if(vShowEndDate==1) vLeftTable += ' <TD class=gname style="WIDTH: 60px; HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + JSGantt.formatDateStr( vTaskList[i].getEnd(), vDateDisplayFormat) + '</NOBR></TD>' ;
+ if(vShowRes ==1) vLeftTable += ' <TD class=gname style="HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + vTaskList[i].getResource() + '</NOBR></TD>' ;
+ if(vShowDur ==1) vLeftTable += ' <TD class=gname style="HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + vTaskList[i].getDuration(vFormat) + '</NOBR></TD>' ;
+ if(vShowComp==1) vLeftTable += ' <TD class=gname style="HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + vTaskList[i].getCompStr() + '</NOBR></TD>' ;
+ if(vShowStartDate==1) vLeftTable += ' <TD class=gname style="HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + JSGantt.formatDateStr( vTaskList[i].getStart(), vDateDisplayFormat) + '</NOBR></TD>' ;
+ if(vShowEndDate==1) vLeftTable += ' <TD class=gname style="HEIGHT: 20px; TEXT-ALIGN: center; BORDER-TOP: #efefef 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #efefef 1px solid;" align=center><NOBR>' + JSGantt.formatDateStr( vTaskList[i].getEnd(), vDateDisplayFormat) + '</NOBR></TD>' ;
vLeftTable += '</TR>';
}
// DRAW the date format selector at bottom left. Another potential GanttChart parameter to hide/show this selector
- vLeftTable += '</TD></TR>' +
- '<TR><TD border=1 colspan=5 align=left style="BORDER-TOP: #efefef 1px solid; FONT-SIZE: 11px; BORDER-LEFT: #efefef 1px solid; height:18px"> Powered by <a href=http://www.jsgantt.com>jsGantt</a> ';
-
-
vLeftTable += '</TD></TR></TBODY></TABLE></div>';
vMainTable += vLeftTable;
diff -dPNur 0.11/tracjsgantt/tracjsgantt.py 0.11-fixed//tracjsgantt/tracjsgantt.py
--- 0.11/tracjsgantt/tracjsgantt.py 2011-09-15 20:59:28.000000000 +0200
+++ 0.11-fixed//tracjsgantt/tracjsgantt.py 2011-09-16 20:51:00.000000000 +0200
@@ -590,8 +590,10 @@
# If there's no due date, default to today
ts = row[1] or None
+#SDS
milestoneTicket[self.fields['finish']] = \
- format_date(ts, self.dbDateFormat)
+ format_date(ts, self.dbDateFormat.encode('latin-1'))
+#EDS
# jsGantt ignores start for a milestone but we use it
# for scheduling.
|