taskjuggler 3.5.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG +31 -0
- data/COPYING +72 -13
- data/README.rdoc +8 -8
- data/bin/tj3 +1 -1
- data/bin/tj3client +1 -1
- data/bin/tj3d +1 -1
- data/bin/tj3man +1 -1
- data/bin/tj3ss_receiver +1 -1
- data/bin/tj3ss_sender +1 -1
- data/bin/tj3ts_receiver +1 -1
- data/bin/tj3ts_sender +1 -1
- data/bin/tj3ts_summary +1 -1
- data/bin/tj3webd +1 -1
- data/data/tjp.vim +13 -5
- data/examples/Fedora-20/f-20.tjp +15 -15
- data/examples/ProjectTemplate/template.tjp +2 -2
- data/lib/header.tmpl +2 -2
- data/lib/taskjuggler/Account.rb +2 -2
- data/lib/taskjuggler/AccountCredit.rb +2 -2
- data/lib/taskjuggler/AccountScenario.rb +2 -2
- data/lib/taskjuggler/AlertLevelDefinitions.rb +2 -2
- data/lib/taskjuggler/AlgorithmDiff.rb +4 -4
- data/lib/taskjuggler/Allocation.rb +2 -2
- data/lib/taskjuggler/AppConfig.rb +3 -3
- data/lib/taskjuggler/AttributeBase.rb +12 -4
- data/lib/taskjuggler/AttributeDefinition.rb +2 -2
- data/lib/taskjuggler/Attributes.rb +3 -3
- data/lib/taskjuggler/BatchProcessor.rb +2 -2
- data/lib/taskjuggler/Booking.rb +2 -2
- data/lib/taskjuggler/Charge.rb +2 -2
- data/lib/taskjuggler/ChargeSet.rb +2 -2
- data/lib/taskjuggler/DataCache.rb +2 -2
- data/lib/taskjuggler/FileList.rb +2 -2
- data/lib/taskjuggler/HTMLDocument.rb +2 -2
- data/lib/taskjuggler/HTMLElements.rb +3 -3
- data/lib/taskjuggler/ICalendar.rb +2 -2
- data/lib/taskjuggler/Interval.rb +2 -2
- data/lib/taskjuggler/IntervalList.rb +2 -2
- data/lib/taskjuggler/Journal.rb +2 -2
- data/lib/taskjuggler/KateSyntax.rb +2 -2
- data/lib/taskjuggler/KeywordArray.rb +2 -2
- data/lib/taskjuggler/KeywordDocumentation.rb +55 -33
- data/lib/taskjuggler/LeaveList.rb +4 -3
- data/lib/taskjuggler/Limits.rb +2 -2
- data/lib/taskjuggler/Log.rb +2 -2
- data/lib/taskjuggler/LogicalExpression.rb +2 -2
- data/lib/taskjuggler/LogicalFunction.rb +15 -3
- data/lib/taskjuggler/LogicalOperation.rb +15 -10
- data/lib/taskjuggler/MessageHandler.rb +2 -2
- data/lib/taskjuggler/PTNProxy.rb +2 -2
- data/lib/taskjuggler/Painter.rb +2 -2
- data/lib/taskjuggler/Project.rb +8 -2
- data/lib/taskjuggler/ProjectFileParser.rb +3 -3
- data/lib/taskjuggler/ProjectFileScanner.rb +2 -2
- data/lib/taskjuggler/PropertyList.rb +8 -15
- data/lib/taskjuggler/PropertySet.rb +6 -2
- data/lib/taskjuggler/PropertyTreeNode.rb +20 -2
- data/lib/taskjuggler/Query.rb +9 -4
- data/lib/taskjuggler/RealFormat.rb +2 -2
- data/lib/taskjuggler/Resource.rb +2 -2
- data/lib/taskjuggler/ResourceScenario.rb +45 -33
- data/lib/taskjuggler/RichText.rb +2 -2
- data/lib/taskjuggler/RichText/Document.rb +2 -2
- data/lib/taskjuggler/RichText/Element.rb +2 -2
- data/lib/taskjuggler/RichText/FunctionExample.rb +2 -2
- data/lib/taskjuggler/RichText/FunctionHandler.rb +2 -2
- data/lib/taskjuggler/RichText/Parser.rb +2 -2
- data/lib/taskjuggler/RichText/RTFHandlers.rb +2 -2
- data/lib/taskjuggler/RichText/RTFNavigator.rb +2 -2
- data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
- data/lib/taskjuggler/RichText/RTFReport.rb +2 -2
- data/lib/taskjuggler/RichText/RTFReportLink.rb +2 -2
- data/lib/taskjuggler/RichText/RTFWithQuerySupport.rb +2 -2
- data/lib/taskjuggler/RichText/Scanner.rb +2 -2
- data/lib/taskjuggler/RichText/Snip.rb +2 -2
- data/lib/taskjuggler/RichText/SyntaxRules.rb +2 -2
- data/lib/taskjuggler/RichText/TOCEntry.rb +2 -2
- data/lib/taskjuggler/RichText/TableOfContents.rb +2 -2
- data/lib/taskjuggler/RuntimeConfig.rb +4 -4
- data/lib/taskjuggler/Scenario.rb +2 -2
- data/lib/taskjuggler/ScenarioData.rb +2 -2
- data/lib/taskjuggler/Scoreboard.rb +2 -2
- data/lib/taskjuggler/SheetHandlerBase.rb +3 -3
- data/lib/taskjuggler/SheetReceiver.rb +2 -2
- data/lib/taskjuggler/SheetSender.rb +2 -2
- data/lib/taskjuggler/Shift.rb +2 -2
- data/lib/taskjuggler/ShiftAssignments.rb +2 -2
- data/lib/taskjuggler/ShiftScenario.rb +2 -2
- data/lib/taskjuggler/SimpleQueryExpander.rb +2 -2
- data/lib/taskjuggler/StatusSheetReceiver.rb +2 -2
- data/lib/taskjuggler/StatusSheetSender.rb +4 -4
- data/lib/taskjuggler/StdIoWrapper.rb +2 -2
- data/lib/taskjuggler/SyntaxReference.rb +3 -3
- data/lib/taskjuggler/TableColumnDefinition.rb +2 -2
- data/lib/taskjuggler/TableColumnSorter.rb +2 -2
- data/lib/taskjuggler/Task.rb +2 -2
- data/lib/taskjuggler/TaskDependency.rb +2 -2
- data/lib/taskjuggler/TaskJuggler.rb +3 -4
- data/lib/taskjuggler/TaskScenario.rb +138 -60
- data/lib/taskjuggler/TernarySearchTree.rb +2 -2
- data/lib/taskjuggler/TextFormatter.rb +2 -2
- data/lib/taskjuggler/TextParser.rb +2 -2
- data/lib/taskjuggler/TextParser/MacroTable.rb +2 -2
- data/lib/taskjuggler/TextParser/Pattern.rb +2 -2
- data/lib/taskjuggler/TextParser/Rule.rb +2 -2
- data/lib/taskjuggler/TextParser/Scanner.rb +3 -3
- data/lib/taskjuggler/TextParser/SourceFileInfo.rb +2 -2
- data/lib/taskjuggler/TextParser/StackElement.rb +2 -2
- data/lib/taskjuggler/TextParser/State.rb +2 -2
- data/lib/taskjuggler/TextParser/TokenDoc.rb +2 -2
- data/lib/taskjuggler/TimeSheetReceiver.rb +2 -2
- data/lib/taskjuggler/TimeSheetSender.rb +2 -2
- data/lib/taskjuggler/TimeSheetSummary.rb +3 -3
- data/lib/taskjuggler/TimeSheets.rb +2 -2
- data/lib/taskjuggler/Tj3AppBase.rb +2 -2
- data/lib/taskjuggler/Tj3Config.rb +5 -5
- data/lib/taskjuggler/Tj3SheetAppBase.rb +2 -2
- data/lib/taskjuggler/TjException.rb +2 -2
- data/lib/taskjuggler/TjTime.rb +2 -2
- data/lib/taskjuggler/TjpExample.rb +2 -2
- data/lib/taskjuggler/TjpSyntaxRules.rb +206 -52
- data/lib/taskjuggler/URLParameter.rb +2 -2
- data/lib/taskjuggler/UTF8String.rb +2 -2
- data/lib/taskjuggler/UserManual.rb +3 -2
- data/lib/taskjuggler/VimSyntax.rb +4 -4
- data/lib/taskjuggler/WorkingHours.rb +2 -2
- data/lib/taskjuggler/XMLDocument.rb +2 -2
- data/lib/taskjuggler/XMLElement.rb +2 -2
- data/lib/taskjuggler/apps/Tj3.rb +2 -2
- data/lib/taskjuggler/apps/Tj3Client.rb +2 -2
- data/lib/taskjuggler/apps/Tj3Daemon.rb +7 -3
- data/lib/taskjuggler/apps/Tj3Man.rb +3 -3
- data/lib/taskjuggler/apps/Tj3SsReceiver.rb +2 -2
- data/lib/taskjuggler/apps/Tj3SsSender.rb +2 -2
- data/lib/taskjuggler/apps/Tj3TsReceiver.rb +2 -2
- data/lib/taskjuggler/apps/Tj3TsSender.rb +2 -2
- data/lib/taskjuggler/apps/Tj3TsSummary.rb +2 -2
- data/lib/taskjuggler/apps/Tj3WebD.rb +7 -3
- data/lib/taskjuggler/daemon/Daemon.rb +2 -2
- data/lib/taskjuggler/daemon/DaemonConnector.rb +2 -2
- data/lib/taskjuggler/daemon/ProcessIntercom.rb +4 -3
- data/lib/taskjuggler/daemon/ProjectBroker.rb +2 -2
- data/lib/taskjuggler/daemon/ProjectServer.rb +2 -2
- data/lib/taskjuggler/daemon/ReportServer.rb +2 -2
- data/lib/taskjuggler/daemon/ReportServlet.rb +22 -11
- data/lib/taskjuggler/daemon/WebServer.rb +2 -2
- data/lib/taskjuggler/daemon/WelcomePage.rb +2 -2
- data/lib/taskjuggler/deep_copy.rb +2 -2
- data/lib/taskjuggler/reports/AccountListRE.rb +2 -2
- data/lib/taskjuggler/reports/CSVFile.rb +2 -2
- data/lib/taskjuggler/reports/ChartPlotter.rb +2 -2
- data/lib/taskjuggler/reports/CollisionDetector.rb +2 -2
- data/lib/taskjuggler/reports/ColumnTable.rb +2 -2
- data/lib/taskjuggler/reports/ExportRE.rb +2 -2
- data/lib/taskjuggler/reports/GanttChart.rb +2 -2
- data/lib/taskjuggler/reports/GanttContainer.rb +2 -2
- data/lib/taskjuggler/reports/GanttHeader.rb +2 -2
- data/lib/taskjuggler/reports/GanttHeaderScaleItem.rb +2 -2
- data/lib/taskjuggler/reports/GanttLine.rb +8 -5
- data/lib/taskjuggler/reports/GanttLoadStack.rb +2 -2
- data/lib/taskjuggler/reports/GanttMilestone.rb +2 -2
- data/lib/taskjuggler/reports/GanttRouter.rb +2 -2
- data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -2
- data/lib/taskjuggler/reports/HTMLGraphics.rb +2 -2
- data/lib/taskjuggler/reports/ICalReport.rb +2 -2
- data/lib/taskjuggler/reports/MspXmlRE.rb +6 -3
- data/lib/taskjuggler/reports/Navigator.rb +2 -2
- data/lib/taskjuggler/reports/NikuReport.rb +2 -2
- data/lib/taskjuggler/reports/Report.rb +6 -6
- data/lib/taskjuggler/reports/ReportBase.rb +2 -2
- data/lib/taskjuggler/reports/ReportContext.rb +2 -2
- data/lib/taskjuggler/reports/ReportTable.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableCell.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableColumn.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableLegend.rb +2 -2
- data/lib/taskjuggler/reports/ReportTableLine.rb +2 -2
- data/lib/taskjuggler/reports/ResourceListRE.rb +2 -2
- data/lib/taskjuggler/reports/StatusSheetReport.rb +2 -2
- data/lib/taskjuggler/reports/TableReport.rb +22 -19
- data/lib/taskjuggler/reports/TableReportColumn.rb +2 -2
- data/lib/taskjuggler/reports/TagFile.rb +2 -2
- data/lib/taskjuggler/reports/TaskListRE.rb +2 -2
- data/lib/taskjuggler/reports/TextReport.rb +2 -2
- data/lib/taskjuggler/reports/TimeSheetReport.rb +2 -2
- data/lib/taskjuggler/reports/TjpExportRE.rb +2 -2
- data/lib/taskjuggler/reports/TraceReport.rb +3 -3
- data/lib/tj3.rb +2 -2
- data/lib/tj3client.rb +2 -2
- data/lib/tj3d.rb +2 -2
- data/lib/tj3man.rb +2 -2
- data/lib/tj3ss_receiver.rb +2 -2
- data/lib/tj3ss_sender.rb +2 -2
- data/lib/tj3ts_receiver.rb +2 -2
- data/lib/tj3ts_sender.rb +2 -2
- data/lib/tj3ts_summary.rb +2 -2
- data/lib/tj3webd.rb +2 -2
- data/manual/Day_To_Day_Juggling +7 -7
- data/manual/Getting_Started +2 -2
- data/manual/Installation +4 -4
- data/manual/Intro +1 -1
- data/manual/List_Attributes +45 -0
- data/manual/Rich_Text_Attributes +5 -5
- data/manual/Software +1 -1
- data/manual/TaskJuggler_2x_Migration +2 -2
- data/manual/html/Day_To_Day_Juggling.html +9 -9
- data/manual/html/Getting_Started.html +3 -3
- data/manual/html/How_To_Contribute.html +2 -2
- data/manual/html/Installation.html +6 -6
- data/manual/html/Intro.html +3 -3
- data/manual/html/List_Attributes.html +76 -0
- data/manual/html/Reporting_Bugs.html +2 -2
- data/manual/html/Rich_Text_Attributes.html +9 -9
- data/manual/html/Software.html +5 -5
- data/manual/html/TaskJuggler_2x_Migration.html +4 -4
- data/manual/html/TaskJuggler_Internals.html +2 -2
- data/manual/html/The_TaskJuggler_Syntax.html +2 -2
- data/manual/html/Tutorial.html +2 -2
- data/manual/html/account.html +5 -3
- data/manual/html/account.task.html +5 -3
- data/manual/html/accountprefix.html +5 -3
- data/manual/html/accountreport.html +5 -3
- data/manual/html/accountroot.html +5 -3
- data/manual/html/active.html +5 -3
- data/manual/html/adopt.task.html +5 -3
- data/manual/html/aggregate.html +5 -3
- data/manual/html/alert.html +5 -3
- data/manual/html/alertlevels.html +5 -3
- data/manual/html/allocate.html +6 -3
- data/manual/html/alphabet.html +1 -1
- data/manual/html/alternative.html +5 -3
- data/manual/html/author.html +5 -3
- data/manual/html/auxdir.html +5 -3
- data/manual/html/auxdir.report.html +5 -3
- data/manual/html/balance.html +5 -3
- data/manual/html/booking.resource.html +6 -4
- data/manual/html/booking.task.html +7 -4
- data/manual/html/caption.html +5 -3
- data/manual/html/cellcolor.column.html +5 -3
- data/manual/html/celltext.column.html +5 -3
- data/manual/html/center.html +5 -3
- data/manual/html/charge.html +6 -3
- data/manual/html/chargeset.html +6 -3
- data/manual/html/columnid.html +24 -15
- data/manual/html/columns.html +6 -3
- data/manual/html/complete.html +5 -3
- data/manual/html/copyright.html +5 -3
- data/manual/html/credits.html +6 -3
- data/manual/html/currency.html +5 -3
- data/manual/html/currencyformat.html +5 -3
- data/manual/html/dailymax.html +5 -3
- data/manual/html/dailymin.html +5 -3
- data/manual/html/dailyworkinghours.html +5 -3
- data/manual/html/date.extend.html +5 -3
- data/manual/html/date.html +5 -3
- data/manual/html/definitions.html +5 -3
- data/manual/html/depends.html +6 -3
- data/manual/html/details.html +5 -3
- data/manual/html/disabled.html +5 -3
- data/manual/html/duration.html +5 -3
- data/manual/html/efficiency.html +5 -3
- data/manual/html/effort.html +7 -5
- data/manual/html/effortdone.html +105 -0
- data/manual/html/effortleft.html +105 -0
- data/manual/html/email.html +7 -5
- data/manual/html/enabled.html +5 -3
- data/manual/html/end.column.html +5 -3
- data/manual/html/end.html +5 -3
- data/manual/html/end.limit.html +5 -3
- data/manual/html/end.report.html +5 -3
- data/manual/html/end.timesheet.html +5 -3
- data/manual/html/endcredit.html +5 -3
- data/manual/html/epilog.html +5 -3
- data/manual/html/export.html +5 -3
- data/manual/html/extend.html +5 -3
- data/manual/html/fail.html +6 -3
- data/manual/html/fdl.html +2 -2
- data/manual/html/flags.account.html +6 -3
- data/manual/html/flags.html +5 -3
- data/manual/html/flags.journalentry.html +5 -3
- data/manual/html/flags.report.html +6 -3
- data/manual/html/flags.resource.html +6 -3
- data/manual/html/flags.statussheet.html +5 -3
- data/manual/html/flags.task.html +6 -3
- data/manual/html/flags.timesheet.html +5 -3
- data/manual/html/fontcolor.column.html +5 -3
- data/manual/html/footer.html +5 -3
- data/manual/html/formats.export.html +6 -4
- data/manual/html/formats.html +6 -3
- data/manual/html/functions.html +5 -3
- data/manual/html/gapduration.html +6 -4
- data/manual/html/gaplength.html +6 -4
- data/manual/html/halign.center.html +5 -3
- data/manual/html/halign.column.html +5 -3
- data/manual/html/halign.left.html +5 -3
- data/manual/html/halign.right.html +5 -3
- data/manual/html/hasalert.html +5 -3
- data/manual/html/header.html +5 -3
- data/manual/html/headline.html +5 -3
- data/manual/html/height.html +5 -3
- data/manual/html/hideaccount.html +5 -3
- data/manual/html/hidejournalentry.html +5 -3
- data/manual/html/hidereport.html +5 -3
- data/manual/html/hideresource.html +5 -3
- data/manual/html/hidetask.html +5 -3
- data/manual/html/icalreport.html +5 -3
- data/manual/html/include.macro.html +5 -3
- data/manual/html/include.project.html +5 -3
- data/manual/html/include.properties.html +5 -3
- data/manual/html/index.html +1 -1
- data/manual/html/inherit.extend.html +5 -3
- data/manual/html/interval1.html +5 -3
- data/manual/html/interval2.html +5 -3
- data/manual/html/interval3.html +5 -3
- data/manual/html/interval4.html +5 -3
- data/manual/html/isactive.html +5 -3
- data/manual/html/ischildof.html +5 -3
- data/manual/html/isdependencyof.html +5 -3
- data/manual/html/isdutyof.html +5 -3
- data/manual/html/isfeatureof.html +5 -3
- data/manual/html/isleaf.html +5 -3
- data/manual/html/ismilestone.html +5 -3
- data/manual/html/isongoing.html +5 -3
- data/manual/html/isresource.html +5 -3
- data/manual/html/isresponsibilityof.html +5 -3
- data/manual/html/istask.html +5 -3
- data/manual/html/isvalid.html +5 -3
- data/manual/html/journalattributes.html +5 -3
- data/manual/html/journalentry.html +5 -3
- data/manual/html/journalmode.html +5 -3
- data/manual/html/leaveallowance.html +5 -3
- data/manual/html/leaves.html +13 -6
- data/manual/html/left.html +5 -3
- data/manual/html/length.html +5 -3
- data/manual/html/limits.allocate.html +5 -3
- data/manual/html/limits.html +5 -3
- data/manual/html/limits.resource.html +5 -3
- data/manual/html/limits.task.html +5 -3
- data/manual/html/listitem.column.html +5 -3
- data/manual/html/listtype.column.html +5 -3
- data/manual/html/loadunit.html +5 -3
- data/manual/html/logicalexpression.html +6 -4
- data/manual/html/logicalflagexpression.html +5 -3
- data/manual/html/macro.html +5 -3
- data/manual/html/managers.html +6 -3
- data/manual/html/mandatory.html +5 -3
- data/manual/html/maxend.html +5 -3
- data/manual/html/maximum.html +5 -3
- data/manual/html/maxstart.html +5 -3
- data/manual/html/milestone.html +5 -3
- data/manual/html/minend.html +5 -3
- data/manual/html/minimum.html +5 -3
- data/manual/html/minstart.html +5 -3
- data/manual/html/monthlymax.html +5 -3
- data/manual/html/monthlymin.html +5 -3
- data/manual/html/navbar.html +7 -1
- data/manual/html/navigator.html +5 -3
- data/manual/html/newtask.html +5 -3
- data/manual/html/nikureport.html +5 -3
- data/manual/html/note.task.html +5 -3
- data/manual/html/now.html +5 -3
- data/manual/html/number.extend.html +5 -3
- data/manual/html/numberformat.html +5 -3
- data/manual/html/onend.html +5 -3
- data/manual/html/onstart.html +5 -3
- data/manual/html/opennodes.html +5 -3
- data/manual/html/outputdir.html +5 -3
- data/manual/html/overtime.booking.html +5 -3
- data/manual/html/period.column.html +5 -3
- data/manual/html/period.limit.html +5 -3
- data/manual/html/period.report.html +5 -3
- data/manual/html/period.task.html +5 -3
- data/manual/html/persistent.html +5 -3
- data/manual/html/precedes.html +6 -3
- data/manual/html/priority.html +5 -3
- data/manual/html/priority.timesheet.html +5 -3
- data/manual/html/project.html +5 -3
- data/manual/html/projectid.html +5 -3
- data/manual/html/projectid.task.html +5 -3
- data/manual/html/projectids.html +5 -3
- data/manual/html/projection.html +5 -3
- data/manual/html/prolog.html +5 -3
- data/manual/html/properties.html +5 -3
- data/manual/html/purge.html +5 -3
- data/manual/html/rate.html +5 -3
- data/manual/html/rate.resource.html +5 -3
- data/manual/html/rawhtmlhead.html +5 -3
- data/manual/html/reference.extend.html +5 -3
- data/manual/html/remaining.html +5 -3
- data/manual/html/replace.html +5 -3
- data/manual/html/reportprefix.html +5 -3
- data/manual/html/resource.html +5 -3
- data/manual/html/resourceattributes.html +5 -3
- data/manual/html/resourceprefix.html +5 -3
- data/manual/html/resourcereport.html +5 -3
- data/manual/html/resourceroot.html +5 -3
- data/manual/html/resources.limit.html +5 -3
- data/manual/html/responsible.html +6 -3
- data/manual/html/richtext.extend.html +5 -3
- data/manual/html/right.html +5 -3
- data/manual/html/rollupaccount.html +5 -3
- data/manual/html/rollupresource.html +5 -3
- data/manual/html/rolluptask.html +5 -3
- data/manual/html/scale.column.html +5 -3
- data/manual/html/scenario.html +5 -3
- data/manual/html/scenario.ical.html +5 -3
- data/manual/html/scenarios.export.html +5 -3
- data/manual/html/scenarios.html +6 -3
- data/manual/html/scenariospecific.extend.html +5 -3
- data/manual/html/scheduled.html +6 -4
- data/manual/html/scheduling.html +7 -5
- data/manual/html/schedulingmode.html +74 -0
- data/manual/html/select.html +7 -5
- data/manual/html/selfcontained.html +5 -3
- data/manual/html/shift.allocate.html +5 -3
- data/manual/html/shift.html +5 -3
- data/manual/html/shift.resource.html +5 -3
- data/manual/html/shift.task.html +5 -3
- data/manual/html/shift.timesheet.html +5 -3
- data/manual/html/shifts.allocate.html +5 -3
- data/manual/html/shifts.resource.html +5 -3
- data/manual/html/shifts.task.html +6 -4
- data/manual/html/shorttimeformat.html +5 -3
- data/manual/html/sloppy.booking.html +5 -3
- data/manual/html/sloppy.projection.html +5 -3
- data/manual/html/sortaccounts.html +6 -4
- data/manual/html/sortjournalentries.html +5 -3
- data/manual/html/sortresources.html +6 -4
- data/manual/html/sorttasks.html +6 -4
- data/manual/html/start.column.html +5 -3
- data/manual/html/start.html +5 -3
- data/manual/html/start.limit.html +5 -3
- data/manual/html/start.report.html +5 -3
- data/manual/html/startcredit.html +5 -3
- data/manual/html/status.statussheet.html +5 -3
- data/manual/html/status.timesheet.html +5 -3
- data/manual/html/statussheet.html +5 -3
- data/manual/html/statussheetreport.html +5 -3
- data/manual/html/strict.projection.html +5 -3
- data/manual/html/summary.html +5 -3
- data/manual/html/supplement.html +5 -3
- data/manual/html/supplement.resource.html +5 -3
- data/manual/html/supplement.task.html +24 -4
- data/manual/html/tagfile.html +5 -3
- data/manual/html/task.html +24 -4
- data/manual/html/task.statussheet.html +5 -3
- data/manual/html/task.timesheet.html +5 -3
- data/manual/html/taskattributes.html +5 -3
- data/manual/html/taskprefix.html +5 -3
- data/manual/html/taskreport.html +5 -3
- data/manual/html/taskroot.export.html +5 -3
- data/manual/html/taskroot.html +5 -3
- data/manual/html/text.extend.html +5 -3
- data/manual/html/textreport.html +5 -3
- data/manual/html/timeformat.html +5 -3
- data/manual/html/timeformat1.html +5 -3
- data/manual/html/timeformat2.html +5 -3
- data/manual/html/timeoff.nikureport.html +5 -3
- data/manual/html/timesheet.html +5 -3
- data/manual/html/timesheetreport.html +5 -3
- data/manual/html/timezone.export.html +5 -3
- data/manual/html/timezone.html +5 -3
- data/manual/html/timezone.report.html +5 -3
- data/manual/html/timezone.shift.html +5 -3
- data/manual/html/timingresolution.html +5 -3
- data/manual/html/title.column.html +5 -3
- data/manual/html/title.html +5 -3
- data/manual/html/toc.html +251 -223
- data/manual/html/tooltip.column.html +5 -3
- data/manual/html/tracereport.html +6 -3
- data/manual/html/trackingscenario.html +5 -3
- data/manual/html/treelevel.html +5 -3
- data/manual/html/vacation.html +5 -3
- data/manual/html/vacation.resource.html +5 -3
- data/manual/html/vacation.shift.html +5 -3
- data/manual/html/warn.html +6 -3
- data/manual/html/weeklymax.html +5 -3
- data/manual/html/weeklymin.html +5 -3
- data/manual/html/weekstartsmonday.html +5 -3
- data/manual/html/weekstartssunday.html +5 -3
- data/manual/html/width.column.html +5 -3
- data/manual/html/width.html +5 -3
- data/manual/html/work.html +5 -3
- data/manual/html/workinghours.project.html +5 -3
- data/manual/html/workinghours.resource.html +5 -3
- data/manual/html/workinghours.shift.html +5 -3
- data/manual/html/yearlyworkingdays.html +5 -3
- data/spec/Color_spec.rb +6 -2
- data/spec/ICalendar_spec.rb +6 -2
- data/spec/IntervalList_spec.rb +7 -3
- data/spec/ProjectBroker_spec.rb +6 -2
- data/spec/StatusSheets_spec.rb +6 -2
- data/spec/TableColumnSorter_spec.rb +6 -2
- data/spec/TernarySearchTree_spec.rb +8 -4
- data/spec/TimeSheets_spec.rb +6 -2
- data/spec/Tj3Daemon_spec.rb +6 -2
- data/spec/Tj3_spec.rb +6 -2
- data/spec/TraceReport_spec.rb +2 -2
- data/spec/support/DaemonControl.rb +2 -2
- data/spec/support/spec_helper.rb +2 -2
- data/taskjuggler.gemspec +1 -1
- data/test/MessageChecker.rb +2 -2
- data/test/ReferenceGenerator.rb +2 -2
- data/test/TestSuite/CSV-Reports/headcount.tjp +1 -0
- data/test/TestSuite/ReportGenerator/Correct/JournalMode.tjp +1 -1
- data/test/TestSuite/ReportGenerator/Correct/refs/JournalMode-1.csv +9 -9
- data/test/TestSuite/ReportGenerator/Correct/refs/JournalMode-2.csv +46 -48
- data/test/TestSuite/Scheduler/Correct/Depends.tjp +17 -0
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +17 -0
- data/test/TestSuite/Scheduler/Correct/Scheduled.tjp +11 -0
- data/test/TestSuite/Scheduler/Correct/SchedulingMode.tjp +45 -0
- data/test/TestSuite/{Syntax → Scheduler}/Errors/not_scheduled.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/ListAttributes.tjp +48 -0
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/working_duration_too_small.tjp +6 -0
- data/test/TjpGen.rb +2 -2
- data/test/all.rb +2 -2
- data/test/test_AlgorithmDiff.rb +2 -2
- data/test/test_BatchProcessor.rb +2 -2
- data/test/test_CSV-Reports.rb +2 -2
- data/test/test_CSVFile.rb +2 -2
- data/test/test_CollisionDetector.rb +2 -2
- data/test/test_Export-Reports.rb +2 -2
- data/test/test_Journal.rb +2 -2
- data/test/test_Limits.rb +2 -2
- data/test/test_LogicalExpression.rb +2 -2
- data/test/test_MacroTable.rb +2 -2
- data/test/test_Project.rb +2 -2
- data/test/test_ProjectFileScanner.rb +2 -2
- data/test/test_PropertySet.rb +2 -2
- data/test/test_Query.rb +2 -2
- data/test/test_RealFormat.rb +2 -2
- data/test/test_ReportGenerator.rb +2 -2
- data/test/test_RichText.rb +2 -2
- data/test/test_Scheduler.rb +2 -2
- data/test/test_ShiftAssignments.rb +2 -2
- data/test/test_SimpleQueryExpander.rb +2 -2
- data/test/test_Syntax.rb +2 -2
- data/test/test_TextFormatter.rb +2 -2
- data/test/test_TjTime.rb +2 -2
- data/test/test_TjpExample.rb +2 -2
- data/test/test_URLParameter.rb +2 -2
- data/test/test_UTF8String.rb +2 -2
- data/test/test_WorkingHours.rb +2 -2
- data/test/test_deep_copy.rb +2 -2
- metadata +346 -350
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TableReportColumn.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TagFile.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TaskListRE.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TextReport.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TimeSheetReport.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TjpExportRE.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TraceReport.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
@@ -86,7 +86,7 @@ class TaskJuggler
|
|
86
86
|
generatePropertyListHeader(taskList, query)
|
87
87
|
|
88
88
|
discontinuedColumns = 0
|
89
|
-
if File.
|
89
|
+
if File.exist?(@fileName)
|
90
90
|
begin
|
91
91
|
@table = CSVFile.new(nil, nil).read(@fileName)
|
92
92
|
rescue
|
data/lib/tj3.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3client.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3client.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3d.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3d.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3man.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3man.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3ss_receiver.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3ss_receiver.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3ss_sender.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3ss_sender.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3ts_receiver.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3ts_receiver.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3ts_sender.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3ts_sender.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3ts_summary.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3ts_summary.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/lib/tj3webd.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = tj3webd.rb -- The TaskJuggler III Project Management Software
|
5
5
|
#
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
7
|
-
# by Chris Schlaeger <
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
|
7
|
+
# by Chris Schlaeger <cs@taskjuggler.org>
|
8
8
|
#
|
9
9
|
# This program is free software; you can redistribute it and/or modify
|
10
10
|
# it under the terms of version 2 of the GNU General Public License as
|
data/manual/Day_To_Day_Juggling
CHANGED
@@ -257,7 +257,7 @@ as HTML pages from a web server.
|
|
257
257
|
|
258
258
|
=== Implementing the status tracking system ===
|
259
259
|
|
260
|
-
====
|
260
|
+
==== Prerequisites ====
|
261
261
|
|
262
262
|
The .tjp and .tji files of your project plan should be managed by a
|
263
263
|
revision control system. TaskJuggler does not require a particular
|
@@ -285,7 +285,7 @@ For the email based communication you need to provide email addresses
|
|
285
285
|
for all project contributors. This is done in the project plan in the
|
286
286
|
resource definition by using the [[email]] attribute.
|
287
287
|
|
288
|
-
resource joe "Joe
|
288
|
+
resource joe "Joe Average" {
|
289
289
|
email "joe@your_company.com
|
290
290
|
}
|
291
291
|
|
@@ -372,7 +372,7 @@ To test the command without sending out actual emails you can use the
|
|
372
372
|
directories. A copy of the generated templates will be stored in
|
373
373
|
''''TimeSheetTemplates/<date>/'''' under
|
374
374
|
''''<resource_id>-date.tji''''. ''''<date>'''' is replaced with the
|
375
|
-
end date of the reporting interval and ''''<
|
375
|
+
end date of the reporting interval and ''''<resource_id>'''' is the ID
|
376
376
|
of the resource.
|
377
377
|
|
378
378
|
If you re-run the command existing templates will not be regenerated
|
@@ -380,7 +380,7 @@ nor will they be sent out again. You can use the ''''-f''''
|
|
380
380
|
command line option to force them to be generated and sent out again.
|
381
381
|
|
382
382
|
The ''''tj3ts_sender'''' command will also add the reporting interval
|
383
|
-
to a file called ''''TimeSheetTemplates/
|
383
|
+
to a file called ''''TimeSheetTemplates/acceptable_intervals''''.
|
384
384
|
We'll cover this file later on when we deal with the time sheet
|
385
385
|
receiver.
|
386
386
|
|
@@ -490,7 +490,7 @@ the taskjuggler home directory, you need to create it now.
|
|
490
490
|
This procmail configuration will cause incoming emails that are
|
491
491
|
addressed to timesheets@taskjuggler.your_company.com to be forwarded
|
492
492
|
to the ''''tj3ts_receiver'''' program. Of course you need to replace
|
493
|
-
''
|
493
|
+
''your_company.com'' with whatever domain you are using.
|
494
494
|
|
495
495
|
The received emails are then checked for syntactical and logical
|
496
496
|
errors. If such are found, an email is sent back with an appropriate
|
@@ -751,7 +751,7 @@ used. It will use the ''''tj3client'''' program to do 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
|
754
|
-
|
754
|
+
TaskJuggler configuration file.
|
755
755
|
|
756
756
|
_statussheets:
|
757
757
|
projectId: prj
|
@@ -764,7 +764,7 @@ can hardcode that like in the example above. For multiple level of
|
|
764
764
|
management you need to specify which group of managers should the
|
765
765
|
report templates be generated for and pass that information on the
|
766
766
|
command line. Use the ''''--hideresource'''' option to specify a
|
767
|
-
|
767
|
+
logical expression to filter away the resources you don't want
|
768
768
|
templates to be generated for. The easiest way to achieve this is by
|
769
769
|
using unique flags for each management level. In the example above we
|
770
770
|
assume you have assigned the flag ''''manager'''' to each first-level
|
data/manual/Getting_Started
CHANGED
@@ -47,8 +47,8 @@ reports. Each project must have at least one task defined and should
|
|
47
47
|
have at least one report. Properties don't have to be listed in a
|
48
48
|
particular order, but may have interdependencies that require such an
|
49
49
|
order. If you want to assign a resource to work on a task, this
|
50
|
-
resource needs to be defined first. It is
|
51
|
-
define them in the following sequence
|
50
|
+
resource needs to be defined first. It is therefore recommended to
|
51
|
+
define them in the following sequence:
|
52
52
|
|
53
53
|
* [[macro|macros]]
|
54
54
|
* [[flags]]
|
data/manual/Installation
CHANGED
@@ -42,13 +42,13 @@ recommended Ruby version to make full use of TaskJuggler is Ruby 2.0.
|
|
42
42
|
Ruby 1.9.1 contains some bugs that prevent the multi-core support to
|
43
43
|
work. For users that are not interested in multi-core support, the web
|
44
44
|
server, the time sheet infrastructure and daemon Ruby 1.8.7 is still
|
45
|
-
|
45
|
+
OK to use. On Windows you need at least Ruby 1.9.2. If you want to
|
46
46
|
use non-ASCII characters, Ruby 1.9.2 or later is required as well.
|
47
47
|
|
48
48
|
You must have configured your system locale to be UTF-8 to work
|
49
49
|
properly with non-ASCII characters.
|
50
50
|
|
51
|
-
See below for instructions on how to use the latest and
|
51
|
+
See below for instructions on how to use the latest and greatest Ruby
|
52
52
|
version in parallel with your distribution Ruby.
|
53
53
|
|
54
54
|
* '''RubyGems:''' If it did not come with your OS or the Ruby
|
@@ -67,7 +67,7 @@ been tested.
|
|
67
67
|
|
68
68
|
===== System Wide Installation =====
|
69
69
|
|
70
|
-
TaskJuggler is a
|
70
|
+
TaskJuggler is a command line tool. It does not (yet) have a graphical
|
71
71
|
user interface. To use it, you need to know how to open a command
|
72
72
|
or terminal window. In this manual, we refer to it as your shell. The
|
73
73
|
following paragraphs describe the commands you need to type into your
|
@@ -185,7 +185,7 @@ have [http://www.kernel.org/pub/software/scm/git/docs/ git] installed.
|
|
185
185
|
|
186
186
|
Then checkout the source code with the following command
|
187
187
|
|
188
|
-
git clone git@github.com
|
188
|
+
git clone git@github.com/taskjuggler/TaskJuggler.git
|
189
189
|
|
190
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
|
data/manual/Intro
CHANGED
@@ -34,7 +34,7 @@ and other reports, but it takes some effort to master its power. For
|
|
34
34
|
those that are willing to invest a few hours to get started with the
|
35
35
|
software it will become a companion you don't want to miss anymore.
|
36
36
|
|
37
|
-
TaskJuggler is a
|
37
|
+
TaskJuggler is a command line tool that you use from a
|
38
38
|
[http://en.wikipedia.org/wiki/Shell_(computing) shell]. This means
|
39
39
|
that to enter your project data you will use one of the most
|
40
40
|
versatile and powerful tools there is: your favorite
|
@@ -0,0 +1,45 @@
|
|
1
|
+
=== List Attributes ===
|
2
|
+
|
3
|
+
All properties have some optional attributes. Which attributes can be
|
4
|
+
used depends on the type of the property. Attributes can either be
|
5
|
+
single value attributes or they can have multiple values. In the
|
6
|
+
latter case, we call them list attributes.
|
7
|
+
|
8
|
+
All list attributes are marked as such in the syntax reference. When
|
9
|
+
using an attribute inside a property context, it is important to
|
10
|
+
understand whether it is a list attribute or not. In many cases, the
|
11
|
+
attribute name already indicates that the attribute may have a list
|
12
|
+
of values. E. g. [[flags.task|flags]] or [[limits.task|limits]].
|
13
|
+
|
14
|
+
The multiple values of the list attributes can either be specified as
|
15
|
+
a comma separated list or by using multiple attribute statements in
|
16
|
+
the same context. In this example, the task has the flags ''''f1'''',
|
17
|
+
''''f2'''' and ''''f3'''' assigned. The second ''''flags''''
|
18
|
+
attribute does not override the first value. It will append the new
|
19
|
+
ones to the old list.
|
20
|
+
|
21
|
+
<[example file="ListAttributes" tag="define"]>
|
22
|
+
|
23
|
+
Special care needs to be taken when list attributes are inherited by
|
24
|
+
the enclosing property or by the parent scenario.
|
25
|
+
|
26
|
+
<[example file="ListAttributes" tag="inherit"]>
|
27
|
+
|
28
|
+
In this example, task ''''T3'''' has the flags ''''f1'''' and
|
29
|
+
''''f2'''' assigned.
|
30
|
+
|
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
|
33
|
+
values from ''''s1''''.
|
34
|
+
|
35
|
+
<[example file="ListAttributes" tag="scenario"]>
|
36
|
+
|
37
|
+
In scenario ''''s2'''' the task ''''T4'''' has the flags ''''f1''''
|
38
|
+
and ''''f2'''' assigned.
|
39
|
+
|
40
|
+
Sometimes this inheritance is not desired. In these cases, you can
|
41
|
+
explicitly purge the attribute list before assigning new values.
|
42
|
+
Here, task ''''T6'''' only has the flag ''''f2'''' assigned.
|
43
|
+
|
44
|
+
<[example file="ListAttributes" tag="purge"]>
|
45
|
+
|
data/manual/Rich_Text_Attributes
CHANGED
@@ -50,7 +50,7 @@ as pre-formatted text. The formatting will be preserved by using a
|
|
50
50
|
fixed-width font and by not interpreting any markup characters within
|
51
51
|
the text.
|
52
52
|
|
53
|
-
|
53
|
+
Pre-formatted text start with
|
54
54
|
a single space at the start of
|
55
55
|
each line.
|
56
56
|
|
@@ -64,7 +64,7 @@ start at the start of the line.
|
|
64
64
|
This is a ''''monospaced'''' word.
|
65
65
|
This is a '''''italic and bold''''' word.
|
66
66
|
|
67
|
-
The
|
67
|
+
The monospaced format is not part of the original MediaWiki markup, but
|
68
68
|
we found it useful to have for this manual.
|
69
69
|
|
70
70
|
Text can be colored when enclosed in ''''fcol'''' tags.
|
@@ -163,7 +163,7 @@ The navigator generator inserts the referenced navigator.
|
|
163
163
|
----
|
164
164
|
'''Block Generator''' ''''report''''
|
165
165
|
|
166
|
-
|
166
|
+
Parameters:
|
167
167
|
|
168
168
|
* ''''id'''' : ID of a defined report
|
169
169
|
|
@@ -173,7 +173,7 @@ report period and the property set from the referencing report.
|
|
173
173
|
----
|
174
174
|
'''Inline Generator''' ''''reportlink''''
|
175
175
|
|
176
|
-
|
176
|
+
Parameters:
|
177
177
|
|
178
178
|
* ''''id'''' : ID of a defined report
|
179
179
|
|
@@ -205,7 +205,7 @@ The report link generator inserts a link to the referenced report.
|
|
205
205
|
----
|
206
206
|
'''Inline Generator''' ''''query''''
|
207
207
|
|
208
|
-
|
208
|
+
Parameters:
|
209
209
|
|
210
210
|
* ''''family'''' : Specifies whether a ''''task'''' or a ''''resource''''
|
211
211
|
should be queried.
|
data/manual/Software
CHANGED
@@ -115,7 +115,7 @@ settings.
|
|
115
115
|
All taskjuggler components can use the same TaskJuggler configuration
|
116
116
|
file. The format is a simple plain text format that follows the
|
117
117
|
[http://www.yaml.org/ YAML specification]. The file should be called
|
118
|
-
''''.
|
118
|
+
''''.taskjugglerrc'''' or ''''taskjuggler.rc''''. The settings are
|
119
119
|
structured by sections. Section names always start with an underscore.
|
120
120
|
|
121
121
|
_global:
|
@@ -28,7 +28,7 @@ renamed to ''''shifts'''' to allow support for multiple shifts.
|
|
28
28
|
* The global ''''limits'''' attribute has been removed. Since both
|
29
29
|
tasks and resources have a ''''limits'''' attribute, a global
|
30
30
|
attribute was inconsistent as only resources inherited this
|
31
|
-
attribute. Use a parent resource to emulate the old
|
31
|
+
attribute. Use a parent resource to emulate the old behavior.
|
32
32
|
|
33
33
|
* Shifts and limits for allocations have been deprecated. The concept
|
34
34
|
was bogus and not compatible with bookings. The functionality is
|
@@ -107,7 +107,7 @@ The resulting ''''FullProject.tjp'''' file is a valid self-contained
|
|
107
107
|
project file that can be read with TaskJuggler 2.x or TaskJuggler
|
108
108
|
3.x. The file does not contain any report definitions. To generate
|
109
109
|
reports with TaskJuggler 3.x you need to create an additional file
|
110
|
-
that contains the
|
110
|
+
that contains the TaskJuggler 3.x report definitions.
|
111
111
|
|
112
112
|
Let's assume the file is called ''''tj3reports.tji''''. Start
|
113
113
|
TaskJuggler 3.x with the following command:
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
|
-
<!-- This file has been generated by tj3man v3.
|
2
|
+
<!-- This file has been generated by tj3man v3.6.0 -->
|
3
3
|
<html lang="en" xml:lang="en">
|
4
4
|
<head>
|
5
5
|
<title>Day_To_Day_Juggling</title>
|
@@ -130,12 +130,12 @@
|
|
130
130
|
</ol>
|
131
131
|
<p class="manual">In addition to the plain text versions of the time sheet summaries and the dashboards, TaskJuggler provides support for publishing them as HTML pages from a web server.</p>
|
132
132
|
<h2 class="manual" id="Implementing_the_status_tracking_system">7.6 Implementing the status tracking system</h2>
|
133
|
-
<h3 class="manual" id="
|
133
|
+
<h3 class="manual" id="Prerequisites">7.6.1 Prerequisites</h3>
|
134
134
|
<p class="manual">The .tjp and .tji files of your project plan should be managed by a revision control system. TaskJuggler does not require a particular software, but for this manual we illustrate the implementation with <a href="http://subversion.apache.org" target="_top">Subversion</a>. It should be obvious how to do this with other software though.</p>
|
135
135
|
<p class="manual">All communication of time sheets and status sheets is done via email. TaskJuggler has built-in support for sending emails. To receive emails and to feed them to the correct program, TaskJuggler needs support from a mail transfer agent (MTA) and a mail processor. In this documentation we describe the setup with <a href="http://www.postfix.org/" target="_top">postfix</a> as MTA and <a href="http://www.procmail.org/" target="_top">procmail</a> as mail processor. These are standard parts of any Linux distribution and should be easy to setup. It's certainly possible to use other MTAs and mail processors, but this is not the scope of this manual.</p>
|
136
136
|
<p class="manual">Finally, you need a web server to publish your reports. This can really be any web server. The generated reports are static HTML pages that can simply be put into a directory that the web server is serving.</p>
|
137
137
|
<p class="manual">For the email based communication you need to provide email addresses for all project contributors. This is done in the project plan in the resource definition by using the <a href="email.html">email</a> attribute.</p>
|
138
|
-
<div class="manual" codesection="1"><pre class="manual" codesection="1">resource joe "Joe
|
138
|
+
<div class="manual" codesection="1"><pre class="manual" codesection="1">resource joe "Joe Average" {
|
139
139
|
email "joe@your_company.com
|
140
140
|
}
|
141
141
|
</pre></div>
|
@@ -165,9 +165,9 @@ _timesheets:
|
|
165
165
|
<p class="manual">The hideResource option works similarly to the <a href="hideresource.html">hideresource</a> attribute in the report definitions of the project plan. It allows you to restrict the sending of time sheet templates to a subset of your defined resources. In this example, we only want to send templates to individual resources and not the teams you might have defined.</p>
|
166
166
|
<p class="manual">By default the time sheets will cover the week from Monday morning 0:00 to Sunday night 24:00. When called without the <code class="manual">-e</code> option, <code class="manual">tj3ts_sender</code> will send out templates for the current week.</p>
|
167
167
|
<p class="manual">To call the <code class="manual">tj3ts_sender</code> command you either need to be in the <code class="manual">/home/taskjuggler/projects/prj</code> directory or use the <code class="manual">-c</code> command line option to point it to the configuration file to use. In the latter case you also need to call it with the <code class="manual">-d</code> option to change the output directory to your project directory.</p>
|
168
|
-
<p class="manual">To test the command without sending out actual emails you can use the <code class="manual">--dryrun</code> option on the command line. To do its job, <code class="manual">tj3ts_sender</code> needs to generate a number of files and directories. A copy of the generated templates will be stored in <code class="manual">TimeSheetTemplates/<date>/</code> under <code class="manual"><resource_id>-date.tji</code>. <code class="manual"><date></code> is replaced with the end date of the reporting interval and <code class="manual"><
|
168
|
+
<p class="manual">To test the command without sending out actual emails you can use the <code class="manual">--dryrun</code> option on the command line. To do its job, <code class="manual">tj3ts_sender</code> needs to generate a number of files and directories. A copy of the generated templates will be stored in <code class="manual">TimeSheetTemplates/<date>/</code> under <code class="manual"><resource_id>-date.tji</code>. <code class="manual"><date></code> is replaced with the end date of the reporting interval and <code class="manual"><resource_id></code> is the ID of the resource.</p>
|
169
169
|
<p class="manual">If you re-run the command existing templates will not be regenerated nor will they be sent out again. You can use the <code class="manual">-f</code> command line option to force them to be generated and sent out again.</p>
|
170
|
-
<p class="manual">The <code class="manual">tj3ts_sender</code> command will also add the reporting interval to a file called <code class="manual">TimeSheetTemplates/
|
170
|
+
<p class="manual">The <code class="manual">tj3ts_sender</code> command will also add the reporting interval to a file called <code class="manual">TimeSheetTemplates/acceptable_intervals</code>. We'll cover this file later on when we deal with the time sheet receiver.</p>
|
171
171
|
<h3 class="manual" id="The_Time_Sheet_Receiver">7.6.3 The Time Sheet Receiver</h3>
|
172
172
|
<p class="manual">To receive the filled-out time sheets and to process them automatically you need to create a special user. TaskJuggler requires a number of email addresses to be setup to receive emails. We recommend to use the following setup. Create a special user called <code class="manual">taskjuggler</code> on a dedicated Linux machine. Then create the following email aliases for this user.</p>
|
173
173
|
<div class="manual" codesection="1"><pre class="manual" codesection="1">timesheets
|
@@ -237,7 +237,7 @@ all
|
|
237
237
|
:0
|
238
238
|
/dev/null
|
239
239
|
</pre></div>
|
240
|
-
<p class="manual">This procmail configuration will cause incoming emails that are addressed to timesheets@taskjuggler.your_company.com to be forwarded to the <code class="manual">tj3ts_receiver</code> program. Of course you need to replace <i>
|
240
|
+
<p class="manual">This procmail configuration will cause incoming emails that are addressed to timesheets@taskjuggler.your_company.com to be forwarded to the <code class="manual">tj3ts_receiver</code> program. Of course you need to replace <i>your_company.com</i> with whatever domain you are using.</p>
|
241
241
|
<p class="manual">The received emails are then checked for syntactical and logical errors. If such are found, an email is sent back with an appropriate error message. The time sheet contains the resource ID of the reporting resource. As soon as this has been detected, all email communication will be sent to the email address in the project plan. Only when the resource ID could not be identified, the sender of the email will get the answer. This was implemented as a security measure so other users cannot easily retrieve project related information from other users.</p>
|
242
242
|
<p class="manual">Correct time sheets are archived in the <code class="manual">TimeSheets/<date>/</code> directory where <code class="manual"><date></code> is the end date of the reporting period. If the directory does not exist yet, it will be created. The file will be called <code class="manual"><resource_id>-<date>.tji</code>. If a SCM command was specified, the file will be automatically put under revision control. Subsequent submission of the same time sheet will simply overwrite the earlier submissions. The file name will also be added to a file called <code class="manual">all.tji</code> which consists of include statements of all time sheet files in the directory. There also is an automatically maintained file <code class="manual">all.tji</code> in the <code class="manual">TimeSheets</code> directory that includes all the <code class="manual"><date>/all.tji</code> files. To add all the submitted time sheets to your project plan, simply include the top-level <code class="manual">all.tji</code>.</p>
|
243
243
|
<p class="manual">
|
@@ -324,14 +324,14 @@ include</a> this file at the end of your project header section.</p>
|
|
324
324
|
<p class="manual">The status sheet template is designed to perform all three actions in a simple manner. The original reports are commented out. To remove a report, it needs to be uncommented and the headline must be set to an empty string. To change a report, the text must be edited after the comment marks have been removed. To create a summary report for a group of tasks, a new report for the common parent task must be created.</p>
|
325
325
|
<h3 class="manual" id="The_Status_Sheet_Template_Sender">7.7.2 The Status Sheet Template Sender</h3>
|
326
326
|
<p class="manual">To send out the time sheets, the command <code class="manual">tj3ts_sender</code> must be used. It will use the <code class="manual">tj3client</code> program to do retrieve the necessary data from the TaskJuggler server.</p>
|
327
|
-
<p class="manual">Before the program can be used, a new section must be added to the
|
327
|
+
<p class="manual">Before the program can be used, a new section must be added to the TaskJuggler configuration file.</p>
|
328
328
|
<div class="manual" codesection="1"><pre class="manual" codesection="1">_statussheets:
|
329
329
|
projectId: prj
|
330
330
|
_sender:
|
331
331
|
senderEmail: 'TaskJuggler <statussheets@taskjuggler.amd.com>'
|
332
332
|
hideResource: '~(isleaf() & manager)'
|
333
333
|
</pre></div>
|
334
|
-
<p class="manual">If you are using status sheets for only one level of management you can hardcode that like in the example above. For multiple level of management you need to specify which group of managers should the report templates be generated for and pass that information on the command line. Use the <code class="manual">--hideresource</code> option to specify a
|
334
|
+
<p class="manual">If you are using status sheets for only one level of management you can hardcode that like in the example above. For multiple level of management you need to specify which group of managers should the report templates be generated for and pass that information on the command line. Use the <code class="manual">--hideresource</code> option to specify a logical expression to filter away the resources you don't want templates to be generated for. The easiest way to achieve this is by using unique flags for each management level. In the example above we assume you have assigned the flag <code class="manual">manager</code> to each first-level manager.</p>
|
335
335
|
<p class="manual">For the override mechanism to work, the manager reports must always have a newer date than the original report. So, the end date of the first-level manager status sheets must be after the time sheet interval. The second-level mangers must use a later date than the first-level managers and so on.</p>
|
336
336
|
<p class="manual">By default <code class="manual">tj3ss_sender</code> will use the next Wednesday as end date. If you need a different date, you must use the <code class="manual">-e</code> option to specify that date.</p>
|
337
337
|
<p class="manual">Let's say you have two levels of managers that use status sheets. The time sheets are due midnight on Sunday. The project managers can work in the deltas and new tasks on Monday. After that you generate the reports for the first level managers with and end date of Wednesday. This implies a submission deadline of midnight on Tuesday. The second level manager templates will be sent out right after this deadline with an end date of Thursday. That would be the deadline for the second-level managers. The final report can than be generated by TaskJuggler automatically right after that deadline.</p>
|
@@ -360,6 +360,6 @@ include</a> this file at the end of your project header section.</p>
|
|
360
360
|
</tr></table>
|
361
361
|
<hr/>
|
362
362
|
<br/>
|
363
|
-
<div align="center" style="font-size:10px;">Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 by Chris Schlaeger <
|
363
|
+
<div align="center" style="font-size:10px;">Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 by Chris Schlaeger <cs@taskjuggler.org>.<a href="http://www.taskjuggler.org">TaskJuggler</a> is a trademark of Chris Schlaeger.</div>
|
364
364
|
</body>
|
365
365
|
</html>
|