EnVisageOnline/Main/Source/EnVisage/Content/templates/ActivityCalendar/_activityCalendarByCompany....

294 lines
18 KiB
HTML

<div ng-controller="activityCalendarByCompanyController" class="ac-container">
<div class="ac-control" ng-show="ViewModel.DataLoaded" ng-cloak ng-init-widget>
<!--Left Frozen Block-->
<div class="ac-left-col">
<!--Header section-->
<div class="freezeTable1 ac-left-col-header">
<table class="table1 table-light">
<thead>
<tr>
<th class="firstcol">
<div>Project</div>
</th>
<th class="firstcol">
<div>Total</div>
</th>
</tr>
</thead>
</table>
</div>
<!--Section with project names-->
<div class="freezeTable1 ac-left-col-content height-container">
<!-- ac-left-table class uses only for ngMovable directive to identify right place to move body from the bottom part -->
<table class="table table1 vertical-scroll-target watch-resizing ac-left-table ng-popup-menu-container" data-scrollcontainerclass="table-light" data-menuclass="menuGroup">
<tbody ng-if="ViewModel.DisplayMode.ShowUpper.Value">
<!-- Companies -->
<tr ng-repeat-start="company in (ViewModel.Rows) track by $index">
<td class="headcol1 headcol-week">
<div class="shortNameGroup" title="{{ company.Name }}">
<strong>{{ company.Name }}</strong>
</div>
</td>
<td class="ac-row-total">
<div class="ac-total">
<strong>{{ (company.TotalValue || 0 | number:2) }}</strong>
</div>
</td>
</tr>
<!-- Project Names and total values -->
<tr ng-repeat="row in company.Children" grid-row templateUrl="{{row.Templates.Main}}"></tr>
<!-- NPT total row and total value -->
<tr>
<td class="headcol1 headcol-week ac-row-name" ng-click="toggleRow(company.NonProjectTime, $event);">
<a ng-if="company.NonProjectTime.Children">
<i class="fa" ng-attr-title="{{company.NonProjectTime.Collapsed ? 'Expand' : 'Collapse'}}" ng-class="{'fa-plus-square':company.NonProjectTime.Collapsed, 'fa-minus-square':!company.NonProjectTime.Collapsed}"></i>
<div class="shortName ac-name" title="Non-Project Time">Non-Project Time</div>
</a>
<span ng-if="!company.NonProjectTime.Children" title="Non-Project Time">Non-Project Time</span>
</td>
<td class="ac-row-total">
<div class="ac-total">
{{ (company.NonProjectTime.TotalValue || 0 | number:2) }}
</div>
</td>
</tr>
<!-- Non Project Time Category row-->
<tr ng-if="nptCat.Initialized" ng-show="nptCat.Show" ng-repeat-start="nptCat in (company.NonProjectTime.Children) track by $index" class="ac-level-2">
<td class="headcol1 headcol-week expCat ac-row-name" ng-click="toggleRow(nptCat, $event);">
<a title="{{ nptCat.Name }}">
<i class="fa" ng-attr-title="{{nptCat.Collapsed ? 'Expand' : 'Collapse'}}" ng-class="{'fa-plus-square':nptCat.Collapsed, 'fa-minus-square':!nptCat.Collapsed}"></i>
<div class="shortName ac-name">{{ nptCat.Name }}</div>
</a>
</td>
<td class="ac-row-total">
<div class="ac-total">
{{ (nptCat.TotalValue || 0 | number:2) }}
</div>
</td>
</tr>
<!-- Non Project Time Item row -->
<tr ng-if="nptItem.Initialized" ng-show="nptItem.Show" ng-repeat-start="nptItem in (nptCat.Children) track by $index" class="ac-level-3">
<td ng-if="!nptItem.IsTeamWide" class="headcol1 headcol-week expCat ac-row-name" ng-click="toggleRow(nptItem, $event);" style="height: 31px;">
<a title="{{ nptItem.Name }}">
<i class="fa" ng-attr-title="{{nptItem.Collapsed ? 'Expand' : 'Collapse'}}" ng-class="{'fa-plus-square':nptItem.Collapsed, 'fa-minus-square':!nptItem.Collapsed}"></i>
<div class="shortName ac-name">{{ nptItem.Name }}</div>
</a>
</td>
<td ng-if="nptItem.IsTeamWide" class="headcol1 headcol-week expCat ac-row-name" style="height: 31px;">
<div class="shortName ac-name">{{ nptItem.Name }}</div>
</td>
<td class="ac-row-total">
<div class="ac-total">
{{ (nptItem.TotalValue || 0 | number:2) }}
</div>
</td>
</tr>
<!-- Non Project Time Resource row -->
<tr ng-if="res.Initialized" ng-show="res.Show" ng-repeat="res in nptItem.Children track by $index" class="ac-level-4">
<td class="headcol1 headcol-week ac-row-name" style="height: 31px;">
<div class="shortName ac-resource-name" title="{{ res.Name }}">{{ res.Name }}</div>
</td>
<td class="ac-row-total">
<div class="ac-total">
{{ (res.TotalValue || 0 | number:2) }}
</div>
</td>
</tr>
<tr ng-repeat-end ng-if="::false"></tr><!-- NPT Items -->
<tr ng-repeat-end ng-if="::false"></tr><!-- NPT Categories -->
<tr ng-repeat-end ng-if="::false"></tr><!-- Companies -->
<!-- No Team Row -->
<tr ng-if="ViewModel.NoTeamRow && ViewModel.NoTeamRow.Children && ViewModel.NoTeamRow.Children.length">
<td class="headcol1 headcol-week">
<div class="shortNameGroup" title="No Team">
<strong>No Team</strong>
</div>
</td>
<td class="ac-row-total">
<div class="ac-total">
<strong>{{ (ViewModel.NoTeamRow.TotalValue || 0 | number:2) }}</strong>
</div>
</td>
</tr>
<!-- Projects -->
<tr ng-repeat="row in ViewModel.NoTeamRow.Children track by $index" grid-row grid-row-init="row.Initialized" templateUrl="{{row.Templates.Main}}"></tr>
<tr>
<td class="headcol1 headcol-week ac-row-name">
<strong title="Total">Total</strong>
</td>
<td class="ac-row-total">
<strong class="ac-total">
{{ (ViewModel.TotalRow.TotalValue || 0 | number:2) }}
</strong>
</td>
</tr>
</tbody>
<tbody>
<tr class="remaining-capacity-row">
<td class="headcol1 headcol-week">
<strong title="Remaining Capacity">Remaining Capacity</strong>
</td>
<td class="ac-row-total">
<strong class="ac-total">
{{ (ViewModel.RemainingCapacityRow.TotalValue || 0 | number:2) }}
</strong>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="header-container width-container">
<div class="freezeTable1 horizontal-scroll-target" style="margin-left: -400px">
<table class="table ac-table-header table-light">
<thead class="watch-resizing">
<tr>
<th style="width:400px" class="firstcol"></th>
<!-- years -->
<th ng-repeat="header in (ViewModel.Header.Years) track by $index" colspan="{{ header.Colspan }}" class="ac-normal-header-cell">
{{ header.Title }}
</th>
</tr>
<tr>
<th class="headcol" style="visibility: hidden;"></th>
<!-- months -->
<th ng-repeat="header in (ViewModel.Header.Months) track by $index" ng-click="toggleMonth($index)"
colspan="{{ header.Colspan }}" class="ac-normal-header-cell headcol-month">
<i class="fa" ng-class="header.CollapsedClass" style="margin-right: 5px;"></i>
{{ header.ShortTitle }}
</th>
</tr>
<tr>
<th class="headcol" style="visibility: hidden;"></th>
<!-- days -->
<th ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show" class="ac-normal-header-cell">
{{ header.ShortTitle }}
</th>
</tr>
</thead>
</table>
</div>
</div>
<div class="table-light table-responsive very-big-table freezeTable freezeTable1 main-table-container height-container width-container watch-scroll">
<!-- ac-right-table class uses only for ngMovable directive to identify right place to move body from the bottom part -->
<table class="table table-striped table-bordered main-table ac-right-table"
ng-attr-data-visible-cells="{{ ViewModel.Header.Colspan }}"
ng-class="{'bar-mode':ViewModel.DisplayMode.IsBarMode}">
<tbody ng-if="ViewModel.DisplayMode.ShowUpper.Value">
<!-- Companies -->
<tr ng-repeat-start="company in (ViewModel.Rows) track by $index">
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show">
<strong>{{ (company.Cells[$index] | number:2) }}</strong>
</td>
</tr>
<!-- Projects -->
<tr ng-repeat="row in company.Children" grid-row templateUrl="{{row.Templates.Numbers}}"></tr>
<!-- Non Project Time rows -->
<!-- Non Project Time total rows -->
<tr>
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show"
ng-attr-style="{{ company.NonProjectTime.CSSStyle[$index] }}"
ng-class="company.NonProjectTime.CSSClass[$index]">
{{ (company.NonProjectTime.Cells[$index] | number:2) }}
</td>
</tr>
<!-- Non Project Time Category row -->
<tr ng-if="nptCat.Initialized" ng-show="nptCat.Show" ng-repeat-start="nptCat in (company.NonProjectTime.Children) track by $index">
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show"
ng-class="nptCat.CSSClass[$index]">
{{ (nptCat.Cells[$index] | number:2) }}
</td>
</tr>
<!-- Non Project Time Item row -->
<tr ng-if="nptItem.Initialized" ng-show="nptItem.Show" ng-repeat-start="nptItem in (nptCat.Children) track by $index">
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show"
ng-class="nptItem.CSSClass[$index]"
style="height: 31px;">
<a href="javascript:void(0)" editable-text="nptItem.Cells[$index]" e-name="ColValue" e-ng-blur="onTxtBlur(this);" onshow="watchKeyInput(this)" buttons="no"
blur="submit" onbeforesave="checkTeamWideNptValue(company, company.NonProjectTime, nptCat, nptItem, $index, $data)" e-required
ng-if="nptItem.IsTeamWide && nptItem.EditableNptWeeks[$index] && (nptItem.Cells[$index] != 0)">
{{ nptItem.Cells[$index] | number:2 }}
</a>
<span ng-if="(!nptItem.IsTeamWide || !nptItem.EditableNptWeeks[$index]) && (nptItem.Cells[$index] != 0)">
{{ (nptItem.Cells[$index] | number:2) }}
</span>
</td>
</tr>
<!-- Non Project Time Resource row -->
<tr ng-if="nptResource.Initialized" ng-show="nptResource.Show" ng-repeat="nptResource in (nptItem.Children) track by $index">
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show"
ng-class="nptResource.CSSClass[$index]"
style="height: 31px;">
<a href="javascript:void(0)" editable-text="nptResource.Cells[$index]" e-name="ColValue" e-ng-blur="onTxtBlur(this);" onshow="watchKeyInput(this)" buttons="no"
blur="submit" onbeforesave="checkNptResourceValue(company, company.NonProjectTime, nptCat, nptItem, nptResource, $index, $data)" e-required
ng-if="nptResource.EditableNptWeeks[$index] && (nptResource.Cells[$index] != 0)">
{{ nptResource.Cells[$index] | number:2 }}
</a>
<span ng-if="!nptResource.EditableNptWeeks[$index] && (nptResource.Cells[$index] != 0)">
{{ (nptResource.Cells[$index] | number:2) }}
</span>
</td>
</tr>
<tr ng-repeat-end ng-if="::false"></tr><!-- NPT Items -->
<tr ng-repeat-end ng-if="::false"></tr><!-- NPT Categories -->
<tr ng-repeat-end ng-if="::false"></tr><!-- Companies -->
<!-- No Team Row -->
<tr ng-if="ViewModel.NoTeamRow && ViewModel.NoTeamRow.Children && ViewModel.NoTeamRow.Children.length">
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show">
<strong>{{ (ViewModel.NoTeamRow.Cells[$index] | number:2) }}</strong>
</td>
</tr>
<!-- Projects -->
<tr ng-repeat="row in ViewModel.NoTeamRow.Children track by $index" grid-row-init="row.Initialized" grid-row templateUrl="{{row.Templates.Numbers}}"></tr>
<!-- Total row -->
<tr>
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show"
ng-attr-style="{{ ViewModel.TotalRow.CSSStyle[$index] }}"
ng-class="ViewModel.TotalRow.CSSClass[$index]">
<strong>{{ (ViewModel.TotalRow.Cells[$index] | number:2) }}</strong>
</td>
</tr>
</tbody>
<tbody>
<tr class="remaining-capacity-row">
<td ng-repeat="header in (ViewModel.Header.Weeks) track by $index"
ng-if="header.Initialized"
ng-show="header.Show"
ng-attr-style="{{ ViewModel.RemainingCapacityRow.CSSStyle[$index] }}"
ng-class="ViewModel.RemainingCapacityRow.CSSClass[$index]">
<strong>{{ (ViewModel.RemainingCapacityRow.Cells[$index] | number:2) }}</strong>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="ac-control" ng-show="!ViewModel.DataLoaded">
<table class="table" style="width: 100%">
<tbody>
<tr>
<td style="text-align: center;">
There is no data available.
</td>
</tr>
</tbody>
</table>
</div>
<div ng-show="::false" ng-include="'/Content/templates/ActivityCalendar/_activityCalendarTeamInfo.html?v=9'"></div>
</div>