kanbanworkflowstimelinescrumrubyroadmapproject-planningproject-managementopenprojectangularissue-trackerifcgantt-chartganttbug-trackerboardsbcf
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.4 KiB
65 lines
2.4 KiB
<tr ng-repeat="node in nodes"
|
|
ng-class="{
|
|
'tl-first-row': $first,
|
|
'tl-last-row': $last,
|
|
'tl-grouping': timeline.isGrouping(),
|
|
'tl-project-row': node.payload.node.payload.identifier === 'projects'
|
|
}"
|
|
ng-show="node.ancestors | ancestorsExpanded">
|
|
|
|
<td ng-if="timeline.isGrouping() && node.payload.identifier === 'projects' && node.level === 0 && node.group !== nodes[$index-1].group" class="tl-grouping" colspan="{{timeline.options.columns.length + 1}}">
|
|
<span class="tl-word-ellipsis">
|
|
{{timeline.escape(node.payload.getFirstLevelGroupingName())}}
|
|
</span>
|
|
</td>
|
|
|
|
<td tree-node
|
|
ng-class="[
|
|
'tl-first-column',
|
|
'tl-indent-' + node.level,
|
|
node.childNodes.length > 0 && (node.isExpanded() && 'tl-expanded' || 'tl-collapsed')
|
|
]">
|
|
<a ng-click="node.expanded = !node.expanded" ng-show="node.childNodes.length > 0">
|
|
{{node.expanded && '-' || '+'}}
|
|
</a>
|
|
|
|
<span class="tl-word-ellipsis">
|
|
<span>
|
|
<a title="{{timeline.i18n('timelines.change')}}"
|
|
ng-class="{
|
|
'icon tl-icon-added': node.payload.identifier === 'planning_elements' && node.payload.isNewlyAdded(),
|
|
'icon tl-icon-deleted': node.payload.identifier === 'planning_elements' && node.payload.isDeleted(),
|
|
'icon tl-icon-changed': node.payload.identifier === 'planning_elements' && node.payload.hasAlternateDates()
|
|
}" />
|
|
</span>
|
|
|
|
<span>
|
|
<a data-modal title="{{node.text}}" ng-class="{'tl-discreet-link': true, 'tl-project': node.payload.node.payload.identifier === 'projects'}">
|
|
{{node.text}}
|
|
</a>
|
|
</span>
|
|
</span>
|
|
</td>
|
|
|
|
<td option-column ng-repeat="option in timeline.options.columns">
|
|
<span class="tl-historical" ng-show="isDateOption(option) && node.payload.does_historical_differ(option)">
|
|
<a href="javascript://" title="{{timeline.i18n('timelines.change')}}"
|
|
ng-class="[
|
|
'icon',
|
|
'tl-icon-' + (node.payload | historicalDateKind:option)
|
|
]">
|
|
{{node.payload.historical()[option] || timeline.i18n('timelines.empty')}}
|
|
</a>
|
|
<br/>
|
|
</span>
|
|
|
|
<span ng-class="[
|
|
'tl-column',
|
|
isDateOption(option) && 'tl-current',
|
|
isDateOption(option) && node.payload.does_historical_differ(option) && 'tl-' + (node.payload | historicalDateKind:option)
|
|
]">
|
|
{{node.payload | getOptionColumn:option}}
|
|
</span>
|
|
</td>
|
|
|
|
</tr>
|
|
|