taskjuggler 3.5.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
# = StackElement.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
|
# = State.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
|
# = TokenDoc.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
|
# = TimeSheetReceiver.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
|
# = TimeSheetSender.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
|
# = TimeSheetSummary.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
|
@@ -78,7 +78,7 @@ EOT
|
|
78
78
|
templateFile = "#{@templateDir}/#{@date}/#{resourceId}_#{@date}.tji"
|
79
79
|
sheetFile = "#{@sheetDir}/#{@date}/#{resourceId}_#{@date}.tji"
|
80
80
|
if File.exist?(templateFile)
|
81
|
-
if File.
|
81
|
+
if File.exist?(sheetFile)
|
82
82
|
# If there are no recipients specified, we don't need to compile
|
83
83
|
# the summary.
|
84
84
|
unless @digestRecipients.empty? && @sheetRecipients.empty?
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TimeSheets.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
|
# = Tj3AppBase.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
|
# = Tj3Config.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, 2016
|
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
|
@@ -14,12 +14,12 @@
|
|
14
14
|
require 'taskjuggler/UTF8String'
|
15
15
|
require 'taskjuggler/AppConfig'
|
16
16
|
|
17
|
-
AppConfig.version = '3.
|
17
|
+
AppConfig.version = '3.6.0'
|
18
18
|
AppConfig.packageName = 'taskjuggler'
|
19
19
|
AppConfig.softwareName = 'TaskJuggler'
|
20
20
|
AppConfig.packageInfo = 'A Project Management Software'
|
21
|
-
AppConfig.copyright = [ (2006..
|
22
|
-
AppConfig.authors = [ 'Chris Schlaeger <
|
21
|
+
AppConfig.copyright = [ (2006..2016).to_a ]
|
22
|
+
AppConfig.authors = [ 'Chris Schlaeger <cs@taskjuggler.org>' ]
|
23
23
|
AppConfig.contact = 'http://www.taskjuggler.org'
|
24
24
|
AppConfig.license = <<'EOT'
|
25
25
|
This program is free software; you can redistribute it and/or modify it under
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = Tj3SheetAppBase.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
|
# = TjException.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/taskjuggler/TjTime.rb
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
# = TjTime.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
|
# = TjpExample.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
|
# = TjpSyntaxRules.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
|
@@ -1030,6 +1030,10 @@ EOT
|
|
1030
1030
|
descr('days')
|
1031
1031
|
end
|
1032
1032
|
|
1033
|
+
def rule_dynamicAttributes
|
1034
|
+
pattern(%w( !reportAttributes . ))
|
1035
|
+
end
|
1036
|
+
|
1033
1037
|
def rule_export
|
1034
1038
|
pattern(%w( !exportHeader !exportBody ), lambda {
|
1035
1039
|
@property = @property.parent
|
@@ -1191,7 +1195,9 @@ TaskJuggler manages assignments with a larger accuracy than the Microsft
|
|
1191
1195
|
Project XML format can represent. This will inevitably lead to some rounding
|
1192
1196
|
errors and different interpretation of the data. The numbers you will see in
|
1193
1197
|
Project are not necessarily an exact match of the numbers you see in
|
1194
|
-
TaskJuggler.
|
1198
|
+
TaskJuggler. The XML file format requires the sequence of the tasks in the
|
1199
|
+
file to follow the work breakdown structure. Hence all user provided sorting
|
1200
|
+
directions will be ignored for this format.
|
1195
1201
|
EOT
|
1196
1202
|
)
|
1197
1203
|
end
|
@@ -2303,7 +2309,8 @@ EOT
|
|
2303
2309
|
end
|
2304
2310
|
|
2305
2311
|
def rule_leaveAllowance
|
2306
|
-
pattern(%w( _annual !valDate !optionalMinus
|
2312
|
+
pattern(%w( _annual !valDate !optionalMinus
|
2313
|
+
!nonZeroWorkingDuration ), lambda {
|
2307
2314
|
LeaveAllowance.new(:annual, @val[1], (@val[2] ? -1 : 1) * @val[3])
|
2308
2315
|
})
|
2309
2316
|
end
|
@@ -2372,7 +2379,10 @@ EOT
|
|
2372
2379
|
descr('Unpaid leave')
|
2373
2380
|
|
2374
2381
|
singlePattern('_holiday')
|
2375
|
-
descr('Public or bank holiday
|
2382
|
+
descr('Public or bank holiday')
|
2383
|
+
|
2384
|
+
singlePattern('_unemployed')
|
2385
|
+
descr('Not employeed (highest priority)')
|
2376
2386
|
end
|
2377
2387
|
|
2378
2388
|
def rule_limitAttributes
|
@@ -2425,7 +2435,7 @@ EOT
|
|
2425
2435
|
end
|
2426
2436
|
|
2427
2437
|
def rule_limitValue
|
2428
|
-
pattern([ '!
|
2438
|
+
pattern([ '!nonZeroWorkingDuration' ], lambda {
|
2429
2439
|
@limitInterval = ScoreboardInterval.new(@project['start'],
|
2430
2440
|
@project['scheduleGranularity'],
|
2431
2441
|
@project['start'], @project['end'])
|
@@ -3814,6 +3824,15 @@ height. This does not work well with rich text columns in some browsers. Some
|
|
3814
3824
|
show a scrollbar for the compressed table cells, others don't. It is
|
3815
3825
|
recommended, that you don't use rich text columns in conjuction with the chart
|
3816
3826
|
column.
|
3827
|
+
EOT
|
3828
|
+
)
|
3829
|
+
|
3830
|
+
singlePattern('_children')
|
3831
|
+
descr(<<'EOT'
|
3832
|
+
A list of all direct sub elements.
|
3833
|
+
|
3834
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
3835
|
+
[[listtype.column|listtype]] attributes.
|
3817
3836
|
EOT
|
3818
3837
|
)
|
3819
3838
|
|
@@ -3877,7 +3896,8 @@ EOT
|
|
3877
3896
|
descr(<<'EOT'
|
3878
3897
|
The resources that have this resource assigned as manager.
|
3879
3898
|
|
3880
|
-
The list can be customized by the [[listitem.column|listitem]]
|
3899
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
3900
|
+
[[listtype.column|listtype]] attribute.
|
3881
3901
|
EOT
|
3882
3902
|
)
|
3883
3903
|
|
@@ -3919,9 +3939,10 @@ symbols are used for <nowiki><dep></nowiki>.
|
|
3919
3939
|
* '''<nowiki>]->]</nowiki>''': End-to-End dependency
|
3920
3940
|
* '''<nowiki>[->]</nowiki>''': Start-to-End dependency
|
3921
3941
|
|
3922
|
-
The list can be customized by the [[listitem.column|listitem]]
|
3923
|
-
The dependency symbol can be generated via
|
3924
|
-
inthe query, the target date via the
|
3942
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
3943
|
+
[[listtype.column]] attributes. The dependency symbol can be generated via
|
3944
|
+
the ''''dependency'''' attribute inthe query, the target date via the
|
3945
|
+
''''date'''' attribute.
|
3925
3946
|
EOT
|
3926
3947
|
)
|
3927
3948
|
|
@@ -3960,7 +3981,8 @@ EOT
|
|
3960
3981
|
descr(<<'EOT'
|
3961
3982
|
For resources this is the headcount number of the resource or resource group.
|
3962
3983
|
For a single resource this is the [[efficiency]] rounded to the next integer.
|
3963
|
-
|
3984
|
+
Resources that are marked as unemployed at the report start time are not
|
3985
|
+
counted. For a group it is the sum of the sub resources headcount.
|
3964
3986
|
|
3965
3987
|
For tasks it's the number of different resources allocated to the task during
|
3966
3988
|
the report interval. Resources are weighted with their rounded efficiencies.
|
@@ -3989,7 +4011,8 @@ A list of milestones that are a prerequiste for the current task. For
|
|
3989
4011
|
container tasks it will also include the inputs of the child tasks. Inputs may
|
3990
4012
|
not have any predecessors.
|
3991
4013
|
|
3992
|
-
The list can be customized by the [[listitem.column|listitem]]
|
4014
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
4015
|
+
[[listtype.column|listtype]] attribute.
|
3993
4016
|
EOT
|
3994
4017
|
)
|
3995
4018
|
|
@@ -4025,7 +4048,8 @@ EOT
|
|
4025
4048
|
descr(<<'EOT'
|
4026
4049
|
A list of managers that the resource reports to.
|
4027
4050
|
|
4028
|
-
The list can be customized by the [[listitem.column|listitem]]
|
4051
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
4052
|
+
[[listtype.column|listtype]] attributes.
|
4029
4053
|
EOT
|
4030
4054
|
)
|
4031
4055
|
|
@@ -4076,9 +4100,10 @@ are used
|
|
4076
4100
|
* '''<nowiki>]->]</nowiki>''': End-to-End dependency
|
4077
4101
|
* '''<nowiki>[->]</nowiki>''': Start-to-End dependency
|
4078
4102
|
|
4079
|
-
The list can be customized by the [[listitem.column|listitem]]
|
4080
|
-
The dependency symbol can be
|
4081
|
-
|
4103
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
4104
|
+
[[listtype.column|listtype]] attributes. The dependency symbol can be
|
4105
|
+
generated via the ''''dependency'''' attribute inthe query, the target date
|
4106
|
+
via the ''''date'''' attribute.
|
4082
4107
|
EOT
|
4083
4108
|
)
|
4084
4109
|
|
@@ -4095,7 +4120,8 @@ EOT
|
|
4095
4120
|
descr(<<'EOT'
|
4096
4121
|
All resources that have this resource assigned as a direct or indirect manager.
|
4097
4122
|
|
4098
|
-
The list can be customized by the [[listitem.column|listitem]]
|
4123
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
4124
|
+
[[listtype.column|listtype]] attributes.
|
4099
4125
|
EOT
|
4100
4126
|
)
|
4101
4127
|
|
@@ -4103,7 +4129,8 @@ EOT
|
|
4103
4129
|
descr(<<'EOT'
|
4104
4130
|
A list of resources that are assigned to the task in the report time frame.
|
4105
4131
|
|
4106
|
-
The list can be customized by the [[listitem.column|listitem]]
|
4132
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
4133
|
+
[[listtype.column|listtype]] attributes.
|
4107
4134
|
EOT
|
4108
4135
|
)
|
4109
4136
|
|
@@ -4111,7 +4138,8 @@ EOT
|
|
4111
4138
|
descr(<<'EOT'
|
4112
4139
|
The responsible people for this task.
|
4113
4140
|
|
4114
|
-
The list can be customized by the [[listitem.column|listitem]]
|
4141
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
4142
|
+
[[listtype.column|listtype]] attributes.
|
4115
4143
|
EOT
|
4116
4144
|
)
|
4117
4145
|
|
@@ -4164,7 +4192,8 @@ A list of milestones that depend on the current task. For container tasks it
|
|
4164
4192
|
will also include the targets of the child tasks. Targets may not have any
|
4165
4193
|
follower tasks.
|
4166
4194
|
|
4167
|
-
The list can be customized by the [[listitem.column|listitem]]
|
4195
|
+
The list can be customized by the [[listitem.column|listitem]] and
|
4196
|
+
[[listtype.column|listtype]] attributes.
|
4168
4197
|
EOT
|
4169
4198
|
)
|
4170
4199
|
|
@@ -4758,7 +4787,7 @@ EOT
|
|
4758
4787
|
end
|
4759
4788
|
|
4760
4789
|
def rule_resourceList
|
4761
|
-
listRule('moreResources', '!
|
4790
|
+
listRule('moreResources', '!undefResourceId')
|
4762
4791
|
end
|
4763
4792
|
|
4764
4793
|
def rule_resourceReport
|
@@ -5174,6 +5203,11 @@ EOT
|
|
5174
5203
|
singlePattern('_asap')
|
5175
5204
|
end
|
5176
5205
|
|
5206
|
+
def rule_schedulingMode
|
5207
|
+
singlePattern('_planning')
|
5208
|
+
singlePattern('_projection')
|
5209
|
+
end
|
5210
|
+
|
5177
5211
|
def rule_shift
|
5178
5212
|
pattern(%w( !shiftHeader !shiftBody ), lambda {
|
5179
5213
|
@property = @property.parent
|
@@ -5332,6 +5366,12 @@ EOT
|
|
5332
5366
|
case args.length
|
5333
5367
|
when 2
|
5334
5368
|
# <attribute>.<up|down>
|
5369
|
+
# We default to the top-level scenario.
|
5370
|
+
if args[1] != 'up' && args[1]!= 'down'
|
5371
|
+
error('sort_direction', "Sorting direction must be 'up' or 'down'",
|
5372
|
+
@sourceFileInfo[0])
|
5373
|
+
end
|
5374
|
+
|
5335
5375
|
scenario = -1
|
5336
5376
|
direction = args[1] == 'up'
|
5337
5377
|
attribute = args[0]
|
@@ -5359,6 +5399,30 @@ EOT
|
|
5359
5399
|
'(without appended .up or .down) instead.',
|
5360
5400
|
@sourceFileInfo[0])
|
5361
5401
|
end
|
5402
|
+
case @sortProperty
|
5403
|
+
when :account
|
5404
|
+
ps = @project.accounts
|
5405
|
+
when :resource
|
5406
|
+
ps = @project.resources
|
5407
|
+
when :task
|
5408
|
+
ps = @project.tasks
|
5409
|
+
end
|
5410
|
+
unless ps.knownAttribute?(attribute) ||
|
5411
|
+
TableReport::calculated?(attribute)
|
5412
|
+
error('sorting_unknown_attr',
|
5413
|
+
"Sorting criterium '#{attribute} is not a known attribute.")
|
5414
|
+
end
|
5415
|
+
if scenario > 0 && !(ps.scenarioSpecific?(attribute) ||
|
5416
|
+
TableReport.scenarioSpecific?(attribute))
|
5417
|
+
error('sorting_attr_scen_spec',
|
5418
|
+
"Sorting criterium '#{attribute}' is not scenario specific " +
|
5419
|
+
"but a scenario has been specified.")
|
5420
|
+
elsif scenario == -1 && (ps.scenarioSpecific?(attribute) ||
|
5421
|
+
TableReport.scenarioSpecific?(attribute))
|
5422
|
+
# If no scenario was specified but the attribute is scenario specific,
|
5423
|
+
# we default to the top-level scenario.
|
5424
|
+
scenario = 0
|
5425
|
+
end
|
5362
5426
|
[ attribute, direction, scenario ]
|
5363
5427
|
})
|
5364
5428
|
arg(0, 'criteria', <<'EOT'
|
@@ -5366,7 +5430,8 @@ The sorting criteria must consist of a property attribute ID. See [[columnid]]
|
|
5366
5430
|
for a complete list of available attributes. The ID must be suffixed by '.up'
|
5367
5431
|
or '.down' to determine the sorting direction. Optionally the ID may be
|
5368
5432
|
prefixed with a scenario ID and a dot to determine the scenario that should be
|
5369
|
-
used for sorting.
|
5433
|
+
used for sorting. In case no scenario was specified, the top-level scenario is
|
5434
|
+
used. Example values are 'plan.start.up' or 'priority.down'.
|
5370
5435
|
EOT
|
5371
5436
|
)
|
5372
5437
|
end
|
@@ -5396,8 +5461,14 @@ EOT
|
|
5396
5461
|
)
|
5397
5462
|
end
|
5398
5463
|
|
5464
|
+
def rule_sortAccountsKeyword
|
5465
|
+
pattern(%w( _sortaccounts ), lambda {
|
5466
|
+
@sortProperty = :account
|
5467
|
+
})
|
5468
|
+
end
|
5469
|
+
|
5399
5470
|
def rule_sortAccounts
|
5400
|
-
pattern(%w(
|
5471
|
+
pattern(%w( !sortAccountsKeyword !sortCriteria ), lambda {
|
5401
5472
|
@property.set('sortAccounts', @val[1])
|
5402
5473
|
})
|
5403
5474
|
doc('sortaccounts', <<'EOT'
|
@@ -5409,8 +5480,14 @@ EOT
|
|
5409
5480
|
)
|
5410
5481
|
end
|
5411
5482
|
|
5483
|
+
def rule_sortResourcesKeyword
|
5484
|
+
pattern(%w( _sortresources ), lambda {
|
5485
|
+
@sortProperty = :resource
|
5486
|
+
})
|
5487
|
+
end
|
5488
|
+
|
5412
5489
|
def rule_sortResources
|
5413
|
-
pattern(%w(
|
5490
|
+
pattern(%w( !sortResourcesKeyword !sortCriteria ), lambda {
|
5414
5491
|
@property.set('sortResources', @val[1])
|
5415
5492
|
})
|
5416
5493
|
doc('sortresources', <<'EOT'
|
@@ -5422,8 +5499,14 @@ EOT
|
|
5422
5499
|
)
|
5423
5500
|
end
|
5424
5501
|
|
5502
|
+
def rule_sortTasksKeyword
|
5503
|
+
pattern(%w( _sorttasks ), lambda {
|
5504
|
+
@sortProperty = :task
|
5505
|
+
})
|
5506
|
+
end
|
5507
|
+
|
5425
5508
|
def rule_sortTasks
|
5426
|
-
pattern(%w(
|
5509
|
+
pattern(%w( !sortTasksKeyword !sortCriteria ), lambda {
|
5427
5510
|
@property.set('sortTasks', @val[1])
|
5428
5511
|
})
|
5429
5512
|
doc('sorttasks', <<'EOT'
|
@@ -5904,21 +5987,22 @@ EOT
|
|
5904
5987
|
@taskDependency.gapDuration = @val[1]
|
5905
5988
|
})
|
5906
5989
|
doc('gapduration', <<'EOT'
|
5907
|
-
Specifies the minimum required gap between the end of a preceding
|
5908
|
-
start of this task, or the start of a following task and
|
5909
|
-
This is calendar time, not working time. 7d means one
|
5990
|
+
Specifies the minimum required gap between the start or end of a preceding
|
5991
|
+
task and the start of this task, or the start or end of a following task and
|
5992
|
+
the end of this task. This is calendar time, not working time. 7d means one
|
5993
|
+
week.
|
5910
5994
|
EOT
|
5911
5995
|
)
|
5912
5996
|
|
5913
|
-
pattern(%w( _gaplength !
|
5997
|
+
pattern(%w( _gaplength !nonZeroWorkingDuration ), lambda {
|
5914
5998
|
@taskDependency.gapLength = @val[1]
|
5915
5999
|
})
|
5916
6000
|
doc('gaplength', <<'EOT'
|
5917
|
-
Specifies the minimum required gap between the end of a preceding
|
5918
|
-
start of this task, or the start of a following task and
|
5919
|
-
This is working time, not calendar time. 7d means 7
|
5920
|
-
week. Whether a day is considered a working day or not
|
5921
|
-
working hours and global leaves.
|
6001
|
+
Specifies the minimum required gap between the start or end of a preceding
|
6002
|
+
task and the start of this task, or the start or end of a following task and
|
6003
|
+
the end of this task. This is working time, not calendar time. 7d means 7
|
6004
|
+
working days, not one week. Whether a day is considered a working day or not
|
6005
|
+
depends on the defined working hours and global leaves.
|
5922
6006
|
EOT
|
5923
6007
|
)
|
5924
6008
|
|
@@ -6287,6 +6371,42 @@ EOT
|
|
6287
6371
|
example('Durations')
|
6288
6372
|
also(%w( duration length ))
|
6289
6373
|
|
6374
|
+
pattern(%w( _effortdone !workingDuration ), lambda {
|
6375
|
+
@property['effortdone', @scenarioIdx] = @val[1]
|
6376
|
+
})
|
6377
|
+
level(:beta)
|
6378
|
+
doc('effortdone', <<'EOT'
|
6379
|
+
Specifies how much effort of the task has already been completed. This can
|
6380
|
+
only be used for [[effort]] based tasks and only if the task is scheduled in
|
6381
|
+
[[schedulingmode|projection mode]]. No [[booking.task|bookings]] must be
|
6382
|
+
specified for the scenario. TaskJuggler is unable to create exact bookings
|
6383
|
+
for the time period before the current date. All effort values prior to the
|
6384
|
+
current date will be reported as zero.
|
6385
|
+
|
6386
|
+
This attribute forces the task to be scheduled in [[scheduling|ASAP mode]].
|
6387
|
+
The task must have a predetermined [[start]] date.
|
6388
|
+
EOT
|
6389
|
+
)
|
6390
|
+
also(%w( effort effortleft schedulingmode trackingscenario ))
|
6391
|
+
|
6392
|
+
pattern(%w( _effortleft !workingDuration ), lambda {
|
6393
|
+
@property['effortleft', @scenarioIdx] = @val[1]
|
6394
|
+
})
|
6395
|
+
level(:beta)
|
6396
|
+
doc('effortleft', <<'EOT'
|
6397
|
+
Specifies how much effort of the task is still not completed. This can
|
6398
|
+
only be used for [[effort]] based tasks and only if the task is scheduled in
|
6399
|
+
[[schedulingmode|projection mode]]. No [[booking.task|bookings]] must be
|
6400
|
+
specified for the scenario. TaskJuggler is unable to create exact bookings
|
6401
|
+
for the time period before the current date. All effort values prior to the
|
6402
|
+
current date will be reported as zero.
|
6403
|
+
|
6404
|
+
This attribute forces the task to be scheduled in [[scheduling|ASAP mode]].
|
6405
|
+
The task must have a predetermined [[start]] date.
|
6406
|
+
EOT
|
6407
|
+
)
|
6408
|
+
also(%w( effort effortdone schedulingmode trackingscenario ))
|
6409
|
+
|
6290
6410
|
pattern(%w( _end !valDate ), lambda {
|
6291
6411
|
@property['end', @scenarioIdx] = @val[1]
|
6292
6412
|
begin
|
@@ -6328,7 +6448,7 @@ EOT
|
|
6328
6448
|
|
6329
6449
|
pattern(%w( !fail ))
|
6330
6450
|
|
6331
|
-
pattern(%w( _length !
|
6451
|
+
pattern(%w( _length !nonZeroWorkingDuration ), lambda {
|
6332
6452
|
setDurationAttribute('length', @val[1])
|
6333
6453
|
})
|
6334
6454
|
doc('length', <<'EOT'
|
@@ -6514,24 +6634,16 @@ EOT
|
|
6514
6634
|
)
|
6515
6635
|
|
6516
6636
|
pattern(%w( _scheduled ), lambda {
|
6517
|
-
if (@property['milestone', @scenarioIdx] &&
|
6518
|
-
@property['start', @scenarioIdx].nil? &&
|
6519
|
-
@property['end', @scenarioIdx].nil?) ||
|
6520
|
-
(!@property['milestone', @scenarioIdx] &&
|
6521
|
-
(@property['start', @scenarioIdx].nil? ||
|
6522
|
-
@property['end', @scenarioIdx].nil?))
|
6523
|
-
error('not_scheduled',
|
6524
|
-
"Task #{@property.fullId} is marked as scheduled but does not " +
|
6525
|
-
'have a fixed start and end date.',
|
6526
|
-
@sourceFileInfo[0], @property)
|
6527
|
-
end
|
6528
6637
|
@property['scheduled', @scenarioIdx] = true
|
6529
6638
|
})
|
6530
6639
|
doc('scheduled', <<'EOT'
|
6531
|
-
|
6532
|
-
|
6533
|
-
|
6534
|
-
|
6640
|
+
It specifies that the task can be ignored for scheduling in the scenario. This
|
6641
|
+
option only makes sense if you provide all resource
|
6642
|
+
[[booking.resource|bookings]] manually. Without booking statements, the task
|
6643
|
+
will be reported with 0 effort and no resources assigned. If the task is not a
|
6644
|
+
milestone, has no effort, length or duration criteria, the start and end date
|
6645
|
+
will be derived from the first and last booking in case those dates are not
|
6646
|
+
supplied.
|
6535
6647
|
EOT
|
6536
6648
|
)
|
6537
6649
|
|
@@ -6581,6 +6693,22 @@ from end to start.
|
|
6581
6693
|
As a general rule, try to avoid ALAP tasks whenever possible. Have a close
|
6582
6694
|
eye on tasks that have been switched implicitly to ALAP mode because the
|
6583
6695
|
end attribute comes after the start attribute.
|
6696
|
+
EOT
|
6697
|
+
)
|
6698
|
+
|
6699
|
+
pattern(%w( _schedulingmode !schedulingMode ), lambda {
|
6700
|
+
@property['projectionmode', @scenarioIdx] = (@val[1] == 'projection')
|
6701
|
+
})
|
6702
|
+
level(:beta)
|
6703
|
+
doc('schedulingmode', <<'EOT'
|
6704
|
+
The scheduling mode controls how the scheduler assigns resources to this task.
|
6705
|
+
In planning mode, resources are allocated before and after the current date.
|
6706
|
+
In projection mode, resources are only allocated after the current date. In
|
6707
|
+
this mode, any resource activity prior to the current date must be provided
|
6708
|
+
with [[booking.task|bookings]]. Alternatively, the [[effortdone]] or
|
6709
|
+
[[effortleft]] attribute can be used.
|
6710
|
+
|
6711
|
+
This scheduling mode is automatically set to projection mode when the [[trackingscenario]] is set. However, the setting can be overwritten by using this attribute.
|
6584
6712
|
EOT
|
6585
6713
|
)
|
6586
6714
|
|
@@ -6614,7 +6742,7 @@ EOT
|
|
6614
6742
|
@shiftAssignments = nil
|
6615
6743
|
})
|
6616
6744
|
doc('shifts.task', <<'EOT'
|
6617
|
-
Limits the working time for this task during the
|
6745
|
+
Limits the working time for this task during the specified interval
|
6618
6746
|
to the working hours of the given shift. Multiple shifts can be defined, but
|
6619
6747
|
shift intervals may not overlap. This is an additional working time
|
6620
6748
|
restriction ontop of the working hours of the allocated resources. It does not
|
@@ -7042,6 +7170,10 @@ shows the tracked values over time will be generated. The CSV file may contain
|
|
7042
7170
|
all kinds of values that are being tracked. Report formats that don't support
|
7043
7171
|
a mix of different values will just show the values of the second column.
|
7044
7172
|
|
7173
|
+
The values in the CSV files are fixed units and cannot be formated. Effort
|
7174
|
+
values are always in resource-days. This allows other software to interpret
|
7175
|
+
the file without any need for additional context information.
|
7176
|
+
|
7045
7177
|
The HTML version generates SVG graphs that are embedded in the HTML page.
|
7046
7178
|
These graphs are only visble if the web browser supports HTML5. This is true
|
7047
7179
|
for the latest generation of browsers, but older browsers may not support this
|
@@ -7110,6 +7242,7 @@ EOT
|
|
7110
7242
|
})
|
7111
7243
|
arg(1, 'task', 'ID of the new task')
|
7112
7244
|
end
|
7245
|
+
|
7113
7246
|
def rule_tsReportHeader
|
7114
7247
|
pattern(%w( _timesheetreport !optionalID $STRING ), lambda {
|
7115
7248
|
newReport(@val[1], @val[2], :timeSheet, @sourceFileInfo[0]) do
|
@@ -7121,7 +7254,8 @@ EOT
|
|
7121
7254
|
end
|
7122
7255
|
@property.set('scenarios', [ scenarioIdx ])
|
7123
7256
|
# Show all tasks, sorted by seqno-up.
|
7124
|
-
@property.set('hideTask',
|
7257
|
+
@property.set('hideTask',
|
7258
|
+
LogicalExpression.new(LogicalOperation.new(0)))
|
7125
7259
|
@property.set('sortTasks', [ [ 'seqno', true, -1 ] ])
|
7126
7260
|
# Show all resources, sorted by seqno-up.
|
7127
7261
|
@property.set('hideResource',
|
@@ -7320,6 +7454,13 @@ EOT
|
|
7320
7454
|
arg(1, 'task', 'ID of an already existing task')
|
7321
7455
|
end
|
7322
7456
|
|
7457
|
+
def rule_undefResourceId
|
7458
|
+
pattern(%w( $ID ), lambda {
|
7459
|
+
(@resourceprefix.empty? ? '' : @resourceprefix + '.') + @val[0]
|
7460
|
+
})
|
7461
|
+
arg(0, 'resource', 'The ID of a defined resource')
|
7462
|
+
end
|
7463
|
+
|
7323
7464
|
def rule_vacationName
|
7324
7465
|
optional
|
7325
7466
|
pattern(%w( $STRING )) # We just throw the name away
|
@@ -7476,6 +7617,19 @@ EOT
|
|
7476
7617
|
'Weekday (sun - sat). It is included in the interval.')
|
7477
7618
|
end
|
7478
7619
|
|
7620
|
+
def rule_nonZeroWorkingDuration
|
7621
|
+
pattern(%w( !workingDuration ), lambda {
|
7622
|
+
slots = @val[0]
|
7623
|
+
if slots <= 0
|
7624
|
+
error('working_duration_too_small',
|
7625
|
+
"Duration values must be at least " +
|
7626
|
+
"#{@project['scheduleGranularity'] / 60} minutes " +
|
7627
|
+
"(your timingresolution) long.")
|
7628
|
+
end
|
7629
|
+
slots
|
7630
|
+
})
|
7631
|
+
end
|
7632
|
+
|
7479
7633
|
def rule_workingDuration
|
7480
7634
|
pattern(%w( !number !durationUnit ), lambda {
|
7481
7635
|
convFactors = [ 60, # minutes
|