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
|
# = 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
|