taskjuggler 3.6.0 → 3.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG +51 -0
- data/data/css/tjreport.css +4 -0
- data/data/tjp.vim +21 -15
- data/examples/ProjectTemplate/template.tjp +7 -7
- data/examples/Tutorial/tutorial.tjp +1 -1
- data/lib/taskjuggler/Allocation.rb +1 -1
- data/lib/taskjuggler/AttributeBase.rb +10 -4
- data/lib/taskjuggler/Attributes.rb +2 -2
- data/lib/taskjuggler/BatchProcessor.rb +1 -1
- data/lib/taskjuggler/Interval.rb +10 -12
- data/lib/taskjuggler/Journal.rb +2 -2
- data/lib/taskjuggler/LogicalFunction.rb +1 -1
- data/lib/taskjuggler/LogicalOperation.rb +7 -4
- data/lib/taskjuggler/MessageHandler.rb +1 -1
- data/lib/taskjuggler/PTNProxy.rb +1 -1
- data/lib/taskjuggler/Project.rb +27 -22
- data/lib/taskjuggler/PropertyList.rb +7 -1
- data/lib/taskjuggler/PropertySet.rb +1 -1
- data/lib/taskjuggler/PropertyTreeNode.rb +5 -3
- data/lib/taskjuggler/Query.rb +3 -3
- data/lib/taskjuggler/RealFormat.rb +1 -1
- data/lib/taskjuggler/Resource.rb +2 -2
- data/lib/taskjuggler/ResourceScenario.rb +37 -5
- data/lib/taskjuggler/RichText/Snip.rb +1 -1
- data/lib/taskjuggler/RuntimeConfig.rb +1 -1
- data/lib/taskjuggler/Scoreboard.rb +5 -2
- data/lib/taskjuggler/Shift.rb +2 -2
- data/lib/taskjuggler/ShiftAssignments.rb +1 -1
- data/lib/taskjuggler/TaskJuggler.rb +4 -4
- data/lib/taskjuggler/TextParser.rb +1 -1
- data/lib/taskjuggler/TextParser/Scanner.rb +3 -3
- data/lib/taskjuggler/TimeSheets.rb +2 -2
- data/lib/taskjuggler/Tj3AppBase.rb +23 -9
- data/lib/taskjuggler/Tj3Config.rb +5 -3
- data/lib/taskjuggler/TjpExample.rb +3 -1
- data/lib/taskjuggler/TjpSyntaxRules.rb +157 -130
- data/lib/taskjuggler/UTF8String.rb +3 -3
- data/lib/taskjuggler/WorkingHours.rb +3 -3
- data/lib/taskjuggler/XMLElement.rb +12 -1
- data/lib/taskjuggler/apps/Tj3.rb +3 -1
- data/lib/taskjuggler/apps/Tj3Client.rb +3 -2
- data/lib/taskjuggler/apps/Tj3Daemon.rb +3 -1
- data/lib/taskjuggler/apps/Tj3Man.rb +4 -2
- data/lib/taskjuggler/apps/Tj3SsReceiver.rb +3 -1
- data/lib/taskjuggler/apps/Tj3SsSender.rb +3 -1
- data/lib/taskjuggler/apps/Tj3TsReceiver.rb +3 -1
- data/lib/taskjuggler/apps/Tj3TsSender.rb +3 -1
- data/lib/taskjuggler/apps/Tj3TsSummary.rb +3 -1
- data/lib/taskjuggler/apps/Tj3WebD.rb +3 -1
- data/lib/taskjuggler/deep_copy.rb +1 -1
- data/lib/taskjuggler/reports/CSVFile.rb +3 -3
- data/lib/taskjuggler/reports/ChartPlotter.rb +1 -1
- data/lib/taskjuggler/reports/GanttChart.rb +8 -2
- data/lib/taskjuggler/reports/GanttHeader.rb +11 -1
- data/lib/taskjuggler/reports/GanttLine.rb +6 -0
- data/lib/taskjuggler/reports/ICalReport.rb +1 -1
- data/lib/taskjuggler/reports/Report.rb +1 -1
- data/lib/taskjuggler/reports/ReportTableCell.rb +1 -1
- data/lib/taskjuggler/reports/TableReport.rb +7 -12
- data/lib/taskjuggler/reports/TjpExportRE.rb +1 -5
- data/lib/taskjuggler/version.rb +1 -0
- data/man/tj3.1 +130 -0
- data/man/tj3client.1 +145 -0
- data/man/tj3d.1 +93 -0
- data/man/tj3man.1 +76 -0
- data/man/tj3ss_receiver.1 +86 -0
- data/man/tj3ss_sender.1 +100 -0
- data/man/tj3ts_receiver.1 +86 -0
- data/man/tj3ts_sender.1 +92 -0
- data/man/tj3ts_summary.1 +104 -0
- data/man/tj3webd.1 +86 -0
- data/manual/Day_To_Day_Juggling +8 -8
- data/manual/Installation +6 -6
- data/manual/List_Attributes +1 -1
- data/manual/Rich_Text_Attributes +6 -5
- data/manual/Software +6 -6
- data/manual/TaskJuggler_Internals +4 -4
- data/manual/The_TaskJuggler_Syntax +5 -5
- data/manual/Tutorial +13 -11
- data/manual/html/Day_To_Day_Juggling.html +9 -9
- data/manual/html/Getting_Started.html +2 -2
- data/manual/html/How_To_Contribute.html +2 -2
- data/manual/html/Installation.html +8 -8
- data/manual/html/Intro.html +2 -2
- data/manual/html/List_Attributes.html +3 -3
- data/manual/html/Reporting_Bugs.html +2 -2
- data/manual/html/Rich_Text_Attributes.html +5 -5
- data/manual/html/Software.html +7 -7
- data/manual/html/TaskJuggler_2x_Migration.html +2 -2
- data/manual/html/TaskJuggler_Internals.html +6 -6
- data/manual/html/The_TaskJuggler_Syntax.html +6 -6
- data/manual/html/Tutorial.html +17 -14
- data/manual/html/account.html +4 -4
- data/manual/html/account.task.html +2 -2
- data/manual/html/accountprefix.html +2 -2
- data/manual/html/accountreport.html +4 -4
- data/manual/html/accountroot.html +3 -3
- data/manual/html/active.html +3 -3
- data/manual/html/adopt.task.html +2 -2
- data/manual/html/aggregate.html +2 -2
- data/manual/html/alert.html +3 -3
- data/manual/html/alertlevels.html +2 -2
- data/manual/html/allocate.html +3 -3
- data/manual/html/alphabet.html +1 -1
- data/manual/html/alternative.html +2 -2
- data/manual/html/author.html +2 -2
- data/manual/html/auxdir.html +2 -2
- data/manual/html/auxdir.report.html +3 -3
- data/manual/html/balance.html +3 -3
- data/manual/html/booking.resource.html +4 -4
- data/manual/html/booking.task.html +4 -4
- data/manual/html/caption.html +3 -3
- data/manual/html/cellcolor.column.html +3 -3
- data/manual/html/celltext.column.html +3 -3
- data/manual/html/center.html +3 -3
- data/manual/html/charge.html +2 -2
- data/manual/html/chargeset.html +2 -2
- data/manual/html/columnid.html +17 -13
- data/manual/html/columns.html +3 -3
- data/manual/html/complete.html +2 -2
- data/manual/html/copyright.html +2 -2
- data/manual/html/credits.html +2 -2
- data/manual/html/css/tjreport.css +4 -0
- data/manual/html/currency.html +2 -2
- data/manual/html/currencyformat.html +4 -4
- data/manual/html/dailymax.html +2 -2
- data/manual/html/dailymin.html +3 -3
- data/manual/html/dailyworkinghours.html +2 -2
- data/manual/html/date.extend.html +2 -2
- data/manual/html/date.html +5 -5
- data/manual/html/definitions.html +4 -4
- data/manual/html/depends.html +4 -4
- data/manual/html/details.html +2 -2
- data/manual/html/disabled.html +2 -2
- data/manual/html/duration.html +2 -2
- data/manual/html/efficiency.html +3 -3
- data/manual/html/effort.html +2 -2
- data/manual/html/effortdone.html +2 -2
- data/manual/html/effortleft.html +2 -2
- data/manual/html/email.html +2 -2
- data/manual/html/enabled.html +2 -2
- data/manual/html/end.column.html +3 -3
- data/manual/html/end.html +4 -4
- data/manual/html/end.limit.html +2 -2
- data/manual/html/end.report.html +3 -3
- data/manual/html/end.timesheet.html +3 -3
- data/manual/html/endcredit.html +3 -3
- data/manual/html/epilog.html +3 -3
- data/manual/html/export.html +4 -4
- data/manual/html/extend.html +3 -3
- data/manual/html/fail.html +3 -3
- data/manual/html/fdl.html +2 -2
- data/manual/html/flags.account.html +2 -2
- data/manual/html/flags.html +2 -2
- data/manual/html/flags.journalentry.html +2 -2
- data/manual/html/flags.report.html +3 -3
- data/manual/html/flags.resource.html +2 -2
- data/manual/html/flags.statussheet.html +2 -2
- data/manual/html/flags.task.html +2 -2
- data/manual/html/flags.timesheet.html +2 -2
- data/manual/html/fontcolor.column.html +3 -3
- data/manual/html/footer.html +3 -3
- data/manual/html/formats.export.html +3 -3
- data/manual/html/formats.html +4 -4
- data/manual/html/functions.html +5 -5
- data/manual/html/gapduration.html +2 -2
- data/manual/html/gaplength.html +2 -2
- data/manual/html/halign.center.html +2 -2
- data/manual/html/halign.column.html +3 -3
- data/manual/html/halign.left.html +2 -2
- data/manual/html/halign.right.html +2 -2
- data/manual/html/hasalert.html +2 -2
- data/manual/html/header.html +3 -3
- data/manual/html/headline.html +3 -3
- data/manual/html/height.html +4 -4
- data/manual/html/hideaccount.html +4 -4
- data/manual/html/hidejournalentry.html +3 -3
- data/manual/html/hidereport.html +3 -3
- data/manual/html/hideresource.html +4 -4
- data/manual/html/hidetask.html +4 -4
- data/manual/html/icalreport.html +9 -3
- data/manual/html/include.macro.html +3 -3
- data/manual/html/include.project.html +3 -3
- data/manual/html/include.properties.html +3 -3
- data/manual/html/index.html +1 -1
- data/manual/html/inherit.extend.html +3 -3
- data/manual/html/interval1.html +3 -3
- data/manual/html/interval2.html +3 -3
- data/manual/html/interval3.html +2 -2
- data/manual/html/interval4.html +2 -2
- data/manual/html/isactive.html +2 -2
- data/manual/html/ischildof.html +2 -2
- data/manual/html/isdependencyof.html +2 -2
- data/manual/html/isdutyof.html +2 -2
- data/manual/html/isfeatureof.html +2 -2
- data/manual/html/isleaf.html +2 -2
- data/manual/html/ismilestone.html +2 -2
- data/manual/html/isongoing.html +3 -3
- data/manual/html/isresource.html +2 -2
- data/manual/html/isresponsibilityof.html +2 -2
- data/manual/html/istask.html +2 -2
- data/manual/html/isvalid.html +2 -2
- data/manual/html/journalattributes.html +3 -3
- data/manual/html/journalentry.html +3 -3
- data/manual/html/journalmode.html +4 -4
- data/manual/html/leaveallowance.html +3 -3
- data/manual/html/leaves.html +3 -3
- data/manual/html/left.html +3 -3
- data/manual/html/length.html +3 -3
- data/manual/html/limits.allocate.html +2 -2
- data/manual/html/limits.html +2 -2
- data/manual/html/limits.resource.html +2 -2
- data/manual/html/limits.task.html +2 -2
- data/manual/html/listitem.column.html +3 -3
- data/manual/html/listtype.column.html +2 -2
- data/manual/html/loadunit.html +3 -3
- data/manual/html/logicalexpression.html +4 -4
- data/manual/html/logicalflagexpression.html +4 -4
- data/manual/html/macro.html +4 -4
- data/manual/html/managers.html +2 -2
- data/manual/html/mandatory.html +4 -4
- data/manual/html/markdate.html +69 -0
- data/manual/html/maxend.html +4 -4
- data/manual/html/maximum.html +2 -2
- data/manual/html/maxstart.html +2 -2
- data/manual/html/milestone.html +3 -3
- data/manual/html/minend.html +2 -2
- data/manual/html/minimum.html +2 -2
- data/manual/html/minstart.html +2 -2
- data/manual/html/monthlymax.html +2 -2
- data/manual/html/monthlymin.html +3 -3
- data/manual/html/navbar.html +5 -1
- data/manual/html/navigator.html +2 -2
- data/manual/html/newtask.html +3 -3
- data/manual/html/nikureport.html +2 -2
- data/manual/html/note.task.html +4 -4
- data/manual/html/novevents.html +68 -0
- data/manual/html/now.html +4 -4
- data/manual/html/number.extend.html +2 -2
- data/manual/html/numberformat.html +3 -3
- data/manual/html/onend.html +2 -2
- data/manual/html/onstart.html +2 -2
- data/manual/html/opennodes.html +3 -3
- data/manual/html/outputdir.html +3 -3
- data/manual/html/overtime.booking.html +2 -2
- data/manual/html/period.column.html +2 -2
- data/manual/html/period.limit.html +2 -2
- data/manual/html/period.report.html +3 -3
- data/manual/html/period.task.html +2 -2
- data/manual/html/persistent.html +3 -3
- data/manual/html/precedes.html +5 -5
- data/manual/html/priority.html +4 -4
- data/manual/html/priority.timesheet.html +3 -3
- data/manual/html/project.html +4 -4
- data/manual/html/projectid.html +2 -2
- data/manual/html/projectid.task.html +3 -3
- data/manual/html/projectids.html +2 -2
- data/manual/html/projection.html +2 -2
- data/manual/html/prolog.html +3 -3
- data/manual/html/properties.html +3 -3
- data/manual/html/purge.html +3 -3
- data/manual/html/rate.html +2 -2
- data/manual/html/rate.resource.html +2 -2
- data/manual/html/rawhtmlhead.html +4 -4
- data/manual/html/reference.extend.html +2 -2
- data/manual/html/remaining.html +3 -3
- data/manual/html/replace.html +2 -2
- data/manual/html/reportprefix.html +2 -2
- data/manual/html/resource.html +3 -3
- data/manual/html/resourceattributes.html +2 -2
- data/manual/html/resourceprefix.html +2 -2
- data/manual/html/resourcereport.html +5 -5
- data/manual/html/resourceroot.html +4 -4
- data/manual/html/resources.limit.html +2 -2
- data/manual/html/responsible.html +2 -2
- data/manual/html/richtext.extend.html +2 -2
- data/manual/html/right.html +3 -3
- data/manual/html/rollupaccount.html +4 -4
- data/manual/html/rollupresource.html +4 -4
- data/manual/html/rolluptask.html +4 -4
- data/manual/html/scale.column.html +2 -2
- data/manual/html/scenario.html +3 -3
- data/manual/html/scenario.ical.html +3 -3
- data/manual/html/scenarios.export.html +2 -2
- data/manual/html/scenarios.html +3 -3
- data/manual/html/scenariospecific.extend.html +2 -2
- data/manual/html/scheduled.html +2 -2
- data/manual/html/scheduling.html +6 -6
- data/manual/html/schedulingmode.html +2 -2
- data/manual/html/select.html +4 -4
- data/manual/html/selfcontained.html +3 -3
- data/manual/html/shift.allocate.html +2 -2
- data/manual/html/shift.html +3 -3
- data/manual/html/shift.resource.html +4 -4
- data/manual/html/shift.task.html +2 -2
- data/manual/html/shift.timesheet.html +2 -2
- data/manual/html/shifts.allocate.html +2 -2
- data/manual/html/shifts.resource.html +2 -2
- data/manual/html/shifts.task.html +3 -3
- data/manual/html/shorttimeformat.html +3 -3
- data/manual/html/sloppy.booking.html +2 -2
- data/manual/html/sloppy.projection.html +2 -2
- data/manual/html/sortaccounts.html +3 -3
- data/manual/html/sortjournalentries.html +3 -3
- data/manual/html/sortresources.html +3 -3
- data/manual/html/sorttasks.html +3 -3
- data/manual/html/start.column.html +3 -3
- data/manual/html/start.html +4 -4
- data/manual/html/start.limit.html +2 -2
- data/manual/html/start.report.html +3 -3
- data/manual/html/startcredit.html +3 -3
- data/manual/html/status.statussheet.html +2 -2
- data/manual/html/status.timesheet.html +2 -2
- data/manual/html/statussheet.html +2 -2
- data/manual/html/statussheetreport.html +3 -3
- data/manual/html/strict.projection.html +2 -2
- data/manual/html/summary.html +2 -2
- data/manual/html/supplement.html +2 -2
- data/manual/html/supplement.resource.html +2 -2
- data/manual/html/supplement.task.html +2 -2
- data/manual/html/tagfile.html +3 -3
- data/manual/html/task.html +3 -3
- data/manual/html/task.statussheet.html +3 -3
- data/manual/html/task.timesheet.html +2 -2
- data/manual/html/taskattributes.html +2 -2
- data/manual/html/taskprefix.html +2 -2
- data/manual/html/taskreport.html +5 -5
- data/manual/html/taskroot.export.html +2 -2
- data/manual/html/taskroot.html +3 -3
- data/manual/html/text.extend.html +2 -2
- data/manual/html/textreport.html +5 -5
- data/manual/html/timeformat.html +4 -4
- data/manual/html/timeformat1.html +2 -2
- data/manual/html/timeformat2.html +2 -2
- data/manual/html/timeoff.nikureport.html +2 -2
- data/manual/html/timesheet.html +3 -3
- data/manual/html/timesheetreport.html +3 -3
- data/manual/html/timezone.export.html +2 -2
- data/manual/html/timezone.html +2 -2
- data/manual/html/timezone.report.html +3 -3
- data/manual/html/timezone.shift.html +2 -2
- data/manual/html/timingresolution.html +2 -2
- data/manual/html/title.column.html +2 -2
- data/manual/html/title.html +3 -3
- data/manual/html/toc.html +157 -143
- data/manual/html/tooltip.column.html +3 -3
- data/manual/html/tracereport.html +8 -8
- data/manual/html/trackingscenario.html +3 -3
- data/manual/html/treelevel.html +2 -2
- data/manual/html/vacation.html +2 -2
- data/manual/html/vacation.resource.html +2 -2
- data/manual/html/vacation.shift.html +2 -2
- data/manual/html/warn.html +4 -4
- data/manual/html/weeklymax.html +2 -2
- data/manual/html/weeklymin.html +3 -3
- data/manual/html/weekstartsmonday.html +2 -2
- data/manual/html/weekstartssunday.html +2 -2
- data/manual/html/width.column.html +2 -2
- data/manual/html/width.html +4 -4
- data/manual/html/work.html +3 -3
- data/manual/html/workinghours.project.html +3 -3
- data/manual/html/workinghours.resource.html +2 -2
- data/manual/html/workinghours.shift.html +2 -2
- data/manual/html/yearlyworkingdays.html +2 -2
- data/spec/ProjectBroker_spec.rb +6 -6
- data/spec/StatusSheets_spec.rb +1 -1
- data/spec/TimeSheets_spec.rb +1 -1
- data/taskjuggler.gemspec +7 -7
- data/tasks/changelog.rake +2 -0
- data/tasks/gem.rake +3 -0
- data/tasks/help2man.rake +18 -0
- data/tasks/kate.rake +2 -0
- data/tasks/manual.rake +2 -0
- data/tasks/test.rake +5 -0
- data/tasks/vim.rake +2 -0
- data/test/TestSuite/Export-Reports/refs/AccountReport.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/AlertLevels.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/AutoID.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Depends1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Durations.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Gap.tjp +0 -3
- data/test/TestSuite/Export-Reports/refs/Include.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Journal.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Manager.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Milestone.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Project.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +0 -3
- data/test/TestSuite/Export-Reports/refs/Reports.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Resource.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Scenario.tjp +0 -2
- data/test/TestSuite/Export-Reports/refs/Timezone.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/Vacation.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/navigator.tjp +0 -4
- data/test/TestSuite/Export-Reports/refs/template.tjp +0 -6
- data/test/TestSuite/Export-Reports/refs/textreport.tjp +0 -1
- data/test/TestSuite/Export-Reports/refs/tutorial.tjp +0 -8
- data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +5 -0
- data/test/test_ProjectFileScanner.rb +8 -8
- metadata +43 -10
data/man/tj3webd.1
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.5.
|
2
|
+
.TH TJ3WEBD "1" "March 2020" "tj3webd (TaskJuggler) 3.7.1" "TaskJuggler"
|
3
|
+
.SH NAME
|
4
|
+
tj3webd \- TaskJuggler reports web server
|
5
|
+
.SH SYNOPSIS
|
6
|
+
.B tj3webd
|
7
|
+
[\fI\,options\/\fR]
|
8
|
+
.SH DESCRIPTION
|
9
|
+
The TaskJuggler web server can be used to serve the HTTP reports of
|
10
|
+
TaskJuggler projects to be viewed by any HTML5 compliant web browser. It uses
|
11
|
+
the TaskJuggler daemon (tj3d) for data hosting and report generation.
|
12
|
+
.SH OPTIONS
|
13
|
+
.TP
|
14
|
+
\fB\-c\fR, \fB\-\-config\fR <FILE>
|
15
|
+
Use the specified YAML configuration file
|
16
|
+
.TP
|
17
|
+
\fB\-\-silent\fR
|
18
|
+
Don't show program and progress information
|
19
|
+
.TP
|
20
|
+
\fB\-\-no\-color\fR
|
21
|
+
Don't use ANSI contol sequences to color the
|
22
|
+
terminal output. Colors should only be used when
|
23
|
+
spooling to an ANSI terminal. In case the detection
|
24
|
+
fails, you can use this option to force colors to
|
25
|
+
be off.
|
26
|
+
.TP
|
27
|
+
\fB\-\-debug\fR
|
28
|
+
Enable Ruby debug mode
|
29
|
+
.TP
|
30
|
+
\fB\-d\fR, \fB\-\-dont\-daemonize\fR
|
31
|
+
Don't put program into daemon mode. Keep it
|
32
|
+
connected to the terminal and show debug output.
|
33
|
+
.TP
|
34
|
+
\fB\-p\fR, \fB\-\-port\fR <NUMBER>
|
35
|
+
Use the specified TCP/IP port to connect to the
|
36
|
+
TaskJuggler daemon (Default: 8474).
|
37
|
+
.TP
|
38
|
+
\fB\-\-pidfile\fR <FILE NAME>
|
39
|
+
Write the process ID of the daemon to the specified
|
40
|
+
file.
|
41
|
+
.TP
|
42
|
+
\fB\-\-logfile\fR <FILE NAME>
|
43
|
+
Log daemon messages to the specified file.
|
44
|
+
.TP
|
45
|
+
\fB\-\-urifile\fR <FILE NAME>
|
46
|
+
If the port is 0, use this file to read the URI of
|
47
|
+
the TaskJuggler daemon.
|
48
|
+
.TP
|
49
|
+
\fB\-\-webserver\-port\fR <NUMBER>
|
50
|
+
Use the specified TCP/IP port to serve web browser
|
51
|
+
requests (Default: 8080).
|
52
|
+
.TP
|
53
|
+
\fB\-h\fR, \fB\-\-help\fR
|
54
|
+
Show this message
|
55
|
+
.TP
|
56
|
+
\fB\-\-version\fR
|
57
|
+
Show version info
|
58
|
+
.SH ENVIRONMENT
|
59
|
+
|
60
|
+
.TP
|
61
|
+
\fBHOME\fR
|
62
|
+
The user's home folder. Used to search for configuration file if not specified.
|
63
|
+
.SH FILES
|
64
|
+
|
65
|
+
.TP
|
66
|
+
\fB.taskjugglerrc\fR or \fBtaskjuggler.rc\fR
|
67
|
+
tj3d searches for a config file named .taskjugglerrc or taskjuggler.rc in the current path, the user's home path as specified by the HOME environment variable or /etc/. At a minimum the file must contain:
|
68
|
+
|
69
|
+
_global:
|
70
|
+
authKey: ********
|
71
|
+
|
72
|
+
(the user should specify their own auth key and set file permissions accordingly). An alternative config file location may be specified using the -c, --config FILE option.
|
73
|
+
.SH COPYRIGHT
|
74
|
+
Copyright \(co 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020
|
75
|
+
.IP
|
76
|
+
by Chris Schlaeger <cs@taskjuggler.org>
|
77
|
+
.PP
|
78
|
+
This program is free software; you can redistribute it and/or modify it under
|
79
|
+
the terms of version 2 of the GNU General Public License as published by the
|
80
|
+
Free Software Foundation.
|
81
|
+
.PP
|
82
|
+
For more info about TaskJuggler see http://www.taskjuggler.org
|
83
|
+
.SH "SEE ALSO"
|
84
|
+
tj3d(1)
|
85
|
+
|
86
|
+
The full TaskJuggler manual is available online at http://www.taskjuggler.org/tj3/manual/, or via the tj3man command.
|
data/manual/Day_To_Day_Juggling
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
To analyze the impact that a small variation can have on a project,
|
6
6
|
TaskJuggler supports an unlimited amount of scenarios. Each
|
7
|
-
additional scenario is a slight derivation of
|
7
|
+
additional scenario is a slight derivation of it's parent. The
|
8
8
|
task tree structure needs to be the same for all scenarios, but most
|
9
9
|
attributes can vary from one scenario to another. Several report
|
10
10
|
types support comparative listing of multiple [[scenarios]].
|
@@ -223,12 +223,12 @@ missing time sheets and will send out a reminder to those
|
|
223
223
|
contributors that have not submitted their report.
|
224
224
|
|
225
225
|
# On Monday the project managers need to review the time sheets and
|
226
|
-
update the plan accordingly. TaskJuggler can compile a list changes
|
226
|
+
update the plan accordingly. TaskJuggler can compile a list of changes
|
227
227
|
compared to the plan. This makes it easy to update the plan according
|
228
228
|
to the actual progress that was made. The closer the actuals match the
|
229
229
|
plan the less work this is. The project managers now generate
|
230
230
|
bookings for the last week and add them to the database with previous
|
231
|
-
bookings. Doing so
|
231
|
+
bookings. Doing so will prevent changes to the plan to affect the
|
232
232
|
past. Only the future will be modified.
|
233
233
|
|
234
234
|
# Once the plan has been updated, managers will receive their status
|
@@ -696,7 +696,7 @@ by the scheduler according to your provided constraints.
|
|
696
696
|
|
697
697
|
When you run ''''tj3 --freeze'''' again, it will update the header
|
698
698
|
and booking files. Since you have included your booking file, any
|
699
|
-
modifications you have made
|
699
|
+
modifications you have made will be preserved. That is, the actual
|
700
700
|
data will be preserved, not the formatting since the file will be
|
701
701
|
completely re-generated again.
|
702
702
|
|
@@ -722,11 +722,11 @@ is generated by the ''''tj3ss_sender'''' program and is called a status
|
|
722
722
|
report template. Each manager will get one template that includes the
|
723
723
|
status reports for the tasks they are responsible for.
|
724
724
|
|
725
|
-
It's
|
725
|
+
It's the managers task to prepare the report for the next level
|
726
726
|
of management. To do this, the manager has 3 options:
|
727
727
|
|
728
728
|
* Forward the status report of a task directly to the next level. The
|
729
|
-
original authorship can be
|
729
|
+
original authorship can be kept or removed. The content can also be
|
730
730
|
edited if needed.
|
731
731
|
|
732
732
|
* Similar reports for a task or a whole task sub-tree can be combined
|
@@ -747,7 +747,7 @@ created.
|
|
747
747
|
==== The Status Sheet Template Sender ====
|
748
748
|
|
749
749
|
To send out the time sheets, the command ''''tj3ts_sender'''' must be
|
750
|
-
used. It will use the ''''tj3client'''' program to
|
750
|
+
used. It will use the ''''tj3client'''' program to retrieve the
|
751
751
|
necessary data from the TaskJuggler server.
|
752
752
|
|
753
753
|
Before the program can be used, a new section must be added to the
|
@@ -813,7 +813,7 @@ the resource selection and end date.
|
|
813
813
|
|
814
814
|
==== The Status Sheet Receiver ====
|
815
815
|
|
816
|
-
Similarly to the time sheets
|
816
|
+
Similarly to the time sheets, the completed status sheets must be
|
817
817
|
send back by email. We already described how the necessary email
|
818
818
|
aliases should be configured. For status sheets the address
|
819
819
|
''''statussheets@taskjuggler.your_company.com'''' can be used.
|
data/manual/Installation
CHANGED
@@ -88,7 +88,7 @@ If you don't want to install TaskJuggler for all users on the system,
|
|
88
88
|
you can also install it into your home or data directory. This does
|
89
89
|
not require root or admin permissions.
|
90
90
|
|
91
|
-
The following steps
|
91
|
+
The following steps describe the installation on a Linux system
|
92
92
|
with the bash shell. You may have to use slightly different commands
|
93
93
|
on a different operating system.
|
94
94
|
|
@@ -119,7 +119,7 @@ Configure gem to find the installed files.
|
|
119
119
|
The last two settings should also be added to your .profile file to
|
120
120
|
make them permanent.
|
121
121
|
|
122
|
-
That's it. You now should
|
122
|
+
That's it. You now should run TaskJuggler.
|
123
123
|
|
124
124
|
tj3 --version
|
125
125
|
|
@@ -187,7 +187,7 @@ Then checkout the source code with the following command
|
|
187
187
|
|
188
188
|
git clone git@github.com/taskjuggler/TaskJuggler.git
|
189
189
|
|
190
|
-
Make sure
|
190
|
+
Make sure you have removed all previously installed instances of
|
191
191
|
TaskJuggler from your system before doing so. It is a common mistake
|
192
192
|
to have an old version of the TaskJuggler installed and then use parts
|
193
193
|
of the old and new version together.
|
@@ -323,7 +323,7 @@ Log out and back in again. Now
|
|
323
323
|
|
324
324
|
which ruby
|
325
325
|
|
326
|
-
should
|
326
|
+
should return the path to the link to your
|
327
327
|
''''${HOME}/bin/ruby''''. You now have the latest Ruby installed and
|
328
328
|
are ready to use TaskJuggler.
|
329
329
|
|
@@ -343,7 +343,7 @@ TaskJuggler can be used with any text editor that supports UTF-8 text
|
|
343
343
|
file editing. If you don't have a preference yet, we recommend to try
|
344
344
|
the [http://www.vim.org Vim] text editor. It's a very powerful editor
|
345
345
|
and it has been customized for better integration with TaskJuggler.
|
346
|
-
This section describes
|
346
|
+
This section describes how to activate and use the Vim integration.
|
347
347
|
Vim is provided by pretty much any Linux distribution and also works
|
348
348
|
well on MacOX and Windows. See the web page for how to install it if
|
349
349
|
you don't have it yet.
|
@@ -366,7 +366,7 @@ you may have to modify it accordingly.
|
|
366
366
|
|
367
367
|
cp `gem contents taskjuggler | fgrep tjp.vim` .vim/syntax
|
368
368
|
|
369
|
-
Now we have to make sure
|
369
|
+
Now we have to make sure Vim detects the file. Edit the
|
370
370
|
''''.vim/filetype.vim'''' file to contain the following section.
|
371
371
|
|
372
372
|
augroup filetypedetect
|
data/manual/List_Attributes
CHANGED
@@ -29,7 +29,7 @@ In this example, task ''''T3'''' has the flags ''''f1'''' and
|
|
29
29
|
''''f2'''' assigned.
|
30
30
|
|
31
31
|
The same works for scenarios as well. Even though the syntax may not
|
32
|
-
look like inheritance is at play the scenario ''''s2'''' inherits all
|
32
|
+
look like inheritance is at play, the scenario ''''s2'''' inherits all
|
33
33
|
values from ''''s1''''.
|
34
34
|
|
35
35
|
<[example file="ListAttributes" tag="scenario"]>
|
data/manual/Rich_Text_Attributes
CHANGED
@@ -126,7 +126,7 @@ in nowiki tags.
|
|
126
126
|
You can also insert raw HTML code by enclosing it in
|
127
127
|
'''<nowiki><html>...</html></nowiki>''' tags. For all other output
|
128
128
|
formats, this content will be ignored. There is also no error checking
|
129
|
-
|
129
|
+
whether the code is valid! Use this feature very carefully.
|
130
130
|
|
131
131
|
==== Block and Inline Generators ====
|
132
132
|
|
@@ -179,12 +179,13 @@ Parameters:
|
|
179
179
|
|
180
180
|
* ''''attributes'''': A set of attributes that override the original
|
181
181
|
attributes of the referenced report. All report attributes
|
182
|
-
are supported. Since the
|
182
|
+
are supported. Since the values of attributes already must be enclosed
|
183
183
|
by single or double quotes, all single or double quotes contained in
|
184
184
|
the string must be escaped with backslashes. This feature enables
|
185
185
|
reports with content that is customized based on where they have been
|
186
186
|
referenced from. It requires the reports to be dynamically generated
|
187
|
-
and is only available when used with the ''''tj3d'''' web server
|
187
|
+
and is only available when used with the ''''tj3d'''' web server
|
188
|
+
''''tj3webd''''.
|
188
189
|
The ''''tj3'''' application will ignore the attributes setting.
|
189
190
|
|
190
191
|
taskreport "All" {
|
@@ -254,8 +255,8 @@ is used, certain or all of the above parameters have already
|
|
254
255
|
predefined values. When used in the header section of a report, the
|
255
256
|
context does not provide a property or scope property. Start and end
|
256
257
|
dates as well the formatting options are taken from the report
|
257
|
-
context. But when used e. g. in [[celltext.column]] the cell
|
258
|
-
provides
|
258
|
+
context. But when used e. g. in [[celltext.column]], the cell
|
259
|
+
provides that property and the attribute and possibly even the scope
|
259
260
|
property.
|
260
261
|
|
261
262
|
|
data/manual/Software
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
== The TaskJuggler Software ==
|
2
2
|
|
3
|
-
After the installation of a software package the first
|
3
|
+
After the installation of a software package the first question that
|
4
4
|
most users have is ''"How do I run it?"''. Many users expect to find
|
5
5
|
an icon on their desktop or an entry in the start menu hierarchy.
|
6
6
|
Don't bother looking for them, you won't find any for TaskJuggler. As
|
@@ -80,7 +80,7 @@ in your web browser.
|
|
80
80
|
|
81
81
|
The latter defaults to using the
|
82
82
|
[http://www.mozilla.com/en-US/firefox/new/ Mozilla Firefox] web
|
83
|
-
browser
|
83
|
+
browser. Please see
|
84
84
|
|
85
85
|
tj3man --help
|
86
86
|
|
@@ -102,12 +102,12 @@ Linux lingo. The program is called ''''tj3d''''. When started, it
|
|
102
102
|
automatically disconnects from the terminal and runs in the
|
103
103
|
background. All interactions with the server are done via the TCP/IP
|
104
104
|
protocol. For security reasons, only connections from the same
|
105
|
-
machine (localhost) are accepted. To get access all clients must
|
105
|
+
machine (localhost) are accepted. To get access, all clients must
|
106
106
|
provide an authentication key. A TaskJuggler server can serve any
|
107
107
|
number of projects. Once a project has been loaded successfully,
|
108
108
|
clients can retrieve the data in form of reports. Projects are
|
109
109
|
identified by their project ID. If a newly added project has the same
|
110
|
-
ID
|
110
|
+
ID as an already loaded project, the new project will replace
|
111
111
|
the old project once it was scheduled successfully. Before you start
|
112
112
|
the server, you need to provide a configuration file with some basic
|
113
113
|
settings.
|
@@ -147,7 +147,7 @@ configuration option controls the amount of details to be printed out.
|
|
147
147
|
* 3: Like 2, but additionally with information messages
|
148
148
|
* 4: Like 3, but additionally with debug messages
|
149
149
|
|
150
|
-
The configuration file will be searched in the current directory,
|
150
|
+
The configuration file will be searched for in the current directory,
|
151
151
|
the current user's home directory or ''''/etc''''. You can also
|
152
152
|
explicitly tell the server where to find the configuration file with
|
153
153
|
the ''''-c'''' option. See
|
@@ -210,7 +210,7 @@ changed in the ''''_global'''' section of the config file.
|
|
210
210
|
authKey: topsecret
|
211
211
|
webServerPort: 8080
|
212
212
|
|
213
|
-
To access the HTML reports point your web browser to
|
213
|
+
To access the HTML reports, point your web browser to
|
214
214
|
''''http://localhost:8080/taskjuggler''''. This assumes that the
|
215
215
|
server is running on your local machine. You will then see a list of
|
216
216
|
all loaded projects. Click on the project name to get a list of all
|
@@ -26,7 +26,7 @@ github].
|
|
26
26
|
The scheduler needs to determine the start and end date for all tasks
|
27
27
|
that don't have such dates yet. To deal with multiple concurrent time
|
28
28
|
zones, all time related events are stored internally as UTC
|
29
|
-
time.Additionally, it allocates resources to tasks. All events such
|
29
|
+
time. Additionally, it allocates resources to tasks. All events such
|
30
30
|
as start or end of a task, or allocation of a resource can only happen
|
31
31
|
aligned with the [[timingresolution|timing resolution]]. This
|
32
32
|
determines the smallest possible allocation period that we call a time
|
@@ -57,7 +57,7 @@ are scheduled from end to start.
|
|
57
57
|
resources have been assigned for all time slots.
|
58
58
|
|
59
59
|
The goal of the scheduler is to transfer all tasks in the completed
|
60
|
-
state. Until this goal has been reached, at least one
|
60
|
+
state. Until this goal has been reached, at least one task needs to
|
61
61
|
be in the ready state. If that's not the case, the project schedule
|
62
62
|
cannot be determined and an error is raised. In case there are more
|
63
63
|
than one task in the ready state, we need to have a well defined
|
@@ -103,7 +103,7 @@ that is going through a task, the sum of the criticalness values of
|
|
103
103
|
the tasks of the path is computed. The largest sum is the path
|
104
104
|
criticalness of that task.
|
105
105
|
|
106
|
-
This heuristic will favor allocations to
|
106
|
+
This heuristic will favor allocations to tasks with critical resources
|
107
107
|
and long dependency chains. As a result, the critical paths of the
|
108
108
|
project are tried to be kept short. The user can use the
|
109
109
|
'''criticalness''' and '''pathcriticalness''' [[columnid|columns]] to
|
@@ -111,7 +111,7 @@ review the respective values for he project's tasks and resources.
|
|
111
111
|
|
112
112
|
When the criticalness and pathcriticalness for all leaf resources and
|
113
113
|
tasks has been determined, the leaf tasks are sorted by priority
|
114
|
-
(
|
114
|
+
(high to low), then by pathcricialness (high to low) and then by the
|
115
115
|
index (low to high). In a loop that is terminated when all tasks have
|
116
116
|
been scheduled or an error condition has been detected, the first
|
117
117
|
task that is ready for scheduling is completely scheduled. This means
|
@@ -34,7 +34,7 @@ options separated by a vertical bar.
|
|
34
34
|
keyword ( foo | bar | foobar )
|
35
35
|
|
36
36
|
Some keywords take one or more arguments. These are known as list
|
37
|
-
attributes. The arguments are comma separated. The
|
37
|
+
attributes. The arguments are comma separated. The three dots in the
|
38
38
|
syntax description mean that the sequence before the dots can be
|
39
39
|
repeated if needed. Inheritable list attributes will append the new
|
40
40
|
list values to the inherited list. Use can use the [[purge]]
|
@@ -73,7 +73,7 @@ An integer is any natural number, e. g. ''''0'''', ''''1'''',
|
|
73
73
|
|
74
74
|
Strings are character sequences that are enclosed by special
|
75
75
|
character marks. There are three different marks supported. For
|
76
|
-
short strings that fit on one
|
76
|
+
short strings that fit on one line, you can either use single or
|
77
77
|
double quotes.
|
78
78
|
|
79
79
|
'This is a single quoted string.'
|
@@ -112,7 +112,7 @@ exact same combination of tabs and spaces.
|
|
112
112
|
=== Predefined Macros ===
|
113
113
|
|
114
114
|
TaskJuggler supports a few predefined macros. These are available
|
115
|
-
after the project header.
|
115
|
+
after the project header. Their values correspond to the values
|
116
116
|
provided in the project header.
|
117
117
|
|
118
118
|
* ''''projectstart'''' The start date of the project.
|
@@ -128,6 +128,6 @@ the [[timeformat]] setting of the current context.
|
|
128
128
|
=== Environment Variable Expansions ===
|
129
129
|
|
130
130
|
By using the $(VAR) syntax, you can insert the value of the
|
131
|
-
environment variable name VAR. The name of the variable must
|
132
|
-
only of uppercase ASCII letters,
|
131
|
+
environment variable name VAR. The name of the variable must consist
|
132
|
+
only of uppercase ASCII letters, underscores or decimal digits.
|
133
133
|
|
data/manual/Tutorial
CHANGED
@@ -13,7 +13,7 @@ grow larger. The complete tutorial example comes with your
|
|
13
13
|
TaskJuggler software installation. You can use the following command
|
14
14
|
to find the base directory of the example projects.
|
15
15
|
|
16
|
-
|
16
|
+
ruby -e "puts Gem::Specification.find_by_name('taskjuggler').gem_dir"
|
17
17
|
|
18
18
|
The file for the tutorial project is called
|
19
19
|
''''examples/Tutorial/tutorial.tjp''''. You can use any plain text
|
@@ -31,7 +31,7 @@ will result in longer scheduling times and higher memory consumption.
|
|
31
31
|
|
32
32
|
<[example file="tutorial" tag="header1"]>
|
33
33
|
|
34
|
-
All TaskJuggler properties have a unique ID
|
34
|
+
All TaskJuggler properties have a unique ID, a name, and a set of
|
35
35
|
optional attributes. The name must always be specified. The ID can be
|
36
36
|
omitted if you never have to reference the property from another
|
37
37
|
context. If you omit the ID, TaskJuggler will automatically generate a
|
@@ -75,7 +75,7 @@ The [[currency]] attribute specifies the unit of all currency values.
|
|
75
75
|
<[example file="tutorial" tag="currency"]>
|
76
76
|
|
77
77
|
Because each culture has its own way of specifying dates and numbers,
|
78
|
-
the format for these
|
78
|
+
the format for these is configurable. Use the [[timeformat]]
|
79
79
|
attribute to specify the default format for dates. This format is used
|
80
80
|
for reports, it does not affect the way you specify dates in the
|
81
81
|
project files. Here you always need to use the [[date|TaskJuggler date
|
@@ -148,7 +148,7 @@ does not do any resource assignments to tasks.
|
|
148
148
|
|
149
149
|
Use the [[leaves]] attribute to define a global holiday. Global
|
150
150
|
holidays may have a name and must have a date or date range. Other leaves for
|
151
|
-
individual resources or groups of resources can be
|
151
|
+
individual resources or groups of resources can be defined similarly.
|
152
152
|
|
153
153
|
=== Macros ===
|
154
154
|
|
@@ -189,6 +189,8 @@ In order not to get lost with all the various amounts, we declare 3
|
|
189
189
|
[[account|accounts]] to credit the amounts to. We create one account
|
190
190
|
for the development costs, one for the documentation costs, and one
|
191
191
|
for the customer payments.
|
192
|
+
Actually, there is a fourth account consisting of two accounts nested
|
193
|
+
into it.
|
192
194
|
|
193
195
|
<[example file="tutorial" tag="accounts"]>
|
194
196
|
|
@@ -308,7 +310,7 @@ should be allocated to the task. The task won't finish before the
|
|
308
310
|
resources could be allocated long enough to reach the specified
|
309
311
|
effort. Tasks with ''''length'''' or ''''duration'''' criteria and
|
310
312
|
allocated resources will last exactly as long as requested. Resources
|
311
|
-
will be allocated only if available. It's possible that such a
|
313
|
+
will be allocated only if available. It's possible that such a task
|
312
314
|
ends up with no allocations at all if the resources are always
|
313
315
|
assigned to other tasks for that period. Each task can only have one
|
314
316
|
of the three duration criteria. Container tasks may never have a
|
@@ -331,7 +333,7 @@ and end criteria of a task, or one of them and a duration
|
|
331
333
|
specification. The start and end criteria can either be fixed dates or
|
332
334
|
relative dates. Relative dates are specifications of the type ''task B
|
333
335
|
starts after task A has finished''. Or in other words, task B depends
|
334
|
-
on task A. In this example the spec task depends on a
|
336
|
+
on task A. In this example the spec task depends on a subtask of the
|
335
337
|
deliveries task. We have not specified it yet, but it has the local ID
|
336
338
|
''''start''''.
|
337
339
|
|
@@ -347,7 +349,7 @@ specification task would be ''''AcSo.spec''''.
|
|
347
349
|
Relative IDs always start with one or more exclamation marks. Each
|
348
350
|
exclamation mark moves the scope to the next enclosing task. So
|
349
351
|
''''!deliveries.start'''' is expanded to ''''AcSo.deliveries.start''''
|
350
|
-
since ''''AcSo'''' is the enclosing task of deliveries. Relative task
|
352
|
+
since ''''AcSo'''' is the enclosing task of ''''deliveries''''. Relative task
|
351
353
|
IDs are a little bit confusing at first, but have a real advantage
|
352
354
|
over absolute IDs. Sooner or later you want to move tasks around in
|
353
355
|
your project and then it's a lot less likely that you have to fix
|
@@ -362,7 +364,7 @@ We use the [[priority]] attribute to mark the importance of
|
|
362
364
|
the tasks. 500 is the default priority of top-level tasks. Setting the
|
363
365
|
priority to 1000 marks the task as most important task, since the
|
364
366
|
possible range is 1 (not important at all) to 1000 (ultimately
|
365
|
-
important). priority is an attribute that is passed down to subtasks
|
367
|
+
important). ''''priority'''' is an attribute that is passed down to subtasks
|
366
368
|
if specified before the subtasks' declaration. So all subtasks of
|
367
369
|
software have a priority of 1000 as well, unless they have their own
|
368
370
|
priority definition.
|
@@ -486,7 +488,7 @@ scheduled. But no reports would be generated to visualize the results.
|
|
486
488
|
|
487
489
|
=== Visualizing the Project ===
|
488
490
|
|
489
|
-
To see and share the project data
|
491
|
+
To see and share the project data, reports can be generated. You
|
490
492
|
can generate any number of reports and you can select from a variety
|
491
493
|
of report types and output formats. To have a report generated after
|
492
494
|
the project scheduling has been completed, you need include a report
|
@@ -645,7 +647,7 @@ For HTML output, the reference is a click-able link to the referenced
|
|
645
647
|
report file.
|
646
648
|
|
647
649
|
For the [[footer]] we can proceed accordingly. We just add a few more
|
648
|
-
paragraphs of text
|
650
|
+
paragraphs of text to describe certain aspects of the project. By
|
649
651
|
putting it all together, we end up with the following report
|
650
652
|
definition.
|
651
653
|
|
@@ -653,7 +655,7 @@ definition.
|
|
653
655
|
|
654
656
|
The generated report can be found
|
655
657
|
[http://www.taskjuggler.org/tj3/examples/Tutorial/Overview.html
|
656
|
-
here]. It
|
658
|
+
here]. It serves as an entry page for the other reports. While it
|
657
659
|
already contains some references, a navigator bar would be handy as
|
658
660
|
well. Fortunately, there is a block generator called 'navigator' to
|
659
661
|
take care of this. But before we can include the navigator in the
|