|
@@ -315,7 +315,9 @@
|
|
|
</th>
|
|
|
@foreach($multiPros as $multiPro)
|
|
|
<th data-pro-uid="{{$multiPro->uid}}" count-required>
|
|
|
- <div class="pro-label" title="{{$multiPro->name_display}}">{{$multiPro->name_display}}</div>
|
|
|
+ <div class="pro-label position-relative" title="{{$multiPro->name_display}}">{{$multiPro->name_display}}
|
|
|
+ <a href="#" class="mv-delete-pro-trigger rounded-circle bg-white c-pointer" data-pro-uid="{{$multiPro->uid}}"><i class="fa fa-times text-danger"></i></a>
|
|
|
+ </div>
|
|
|
</th>
|
|
|
@endforeach
|
|
|
</tr>
|
|
@@ -323,14 +325,14 @@
|
|
|
<tbody>
|
|
|
@foreach($linesFlat as $line)
|
|
|
<tr data-line-uid="{{$line->uid}}" {!! $line->parent ? 'data-parent-line-uid="' . $line->parent->uid . '"' : '' !!}>
|
|
|
- <td class="p-0">
|
|
|
+ <td class="p-0 on-hover-aliceblue c-pointer mv-view-data-trigger">
|
|
|
<div class="count-label">
|
|
|
<div class="count">{{$line->last_refresh_count}}</div>
|
|
|
<div class="drop-percent"></div>
|
|
|
</div>
|
|
|
</td>
|
|
|
@foreach($multiPros as $multiPro)
|
|
|
- <td class="p-0" data-pro-uid="{{$multiPro->uid}}">
|
|
|
+ <td class="p-0 on-hover-aliceblue c-pointer mv-view-data-trigger" data-pro-uid="{{$multiPro->uid}}">
|
|
|
<div class="count-label">
|
|
|
<div class="count"></div>
|
|
|
<div class="drop-percent"></div>
|
|
@@ -1357,8 +1359,33 @@
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
+ $(document)
|
|
|
+ .off('click', '.mv-view-data-trigger')
|
|
|
+ .on('click', '.mv-view-data-trigger', function() {
|
|
|
+ let title = 'View Data';
|
|
|
+ if($(this).attr('data-pro-uid')) {
|
|
|
+ let tdIndex = $(this).index();
|
|
|
+ title = 'View Data for ' + $(this).closest('table').find('thead tr th:eq(' + tdIndex + ')').text();
|
|
|
+ }
|
|
|
+ openDynamicStagPopup('/practice-management/stat-tree-lines/view-data/' + $(this).closest('tr').attr('data-line-uid') + '?proUid=' + $(this).attr('data-pro-uid'),
|
|
|
+ null,
|
|
|
+ title,
|
|
|
+ false,
|
|
|
+ 'medium');
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
+ $(document)
|
|
|
+ .off('click', '.mv-delete-pro-trigger')
|
|
|
+ .on('click', '.mv-delete-pro-trigger', function() {
|
|
|
+ debugger
|
|
|
+ let proUids = '{{request()->input('multi-pro-uids')}}'.split(',').filter(_x => _x !== $(this).attr('data-pro-uid'));
|
|
|
+ fastLoad('/practice-management/stat-trees/view/{{$statTree->uid}}/edit?multi-pro=1&multi-pro-uids=' + proUids.join(','));
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
@if($multiProView)
|
|
|
- $('[count-required]').each(function() {
|
|
|
+ /*$('[count-required]').each(function() {
|
|
|
$.post('{{route('practice-management.api.statTree.getCountsForPro')}}', {
|
|
|
uid: '{{$statTree->uid}}',
|
|
|
proUid: $(this).attr('data-pro-uid')
|
|
@@ -1395,7 +1422,44 @@
|
|
|
});
|
|
|
|
|
|
}, 'json');
|
|
|
- });
|
|
|
+ });*/
|
|
|
+ $.get('{{route('practice-management.api.statTree.getCountsForPros')}}', {
|
|
|
+ uid: '{{$statTree->uid}}',
|
|
|
+ proUids: '{{request()->input('multi-pro-uids')}}'
|
|
|
+ }, _data => {
|
|
|
+ for(let x in _data) {
|
|
|
+ let lineTR = $('.multi-pro-stats-table tr[data-line-uid="' + x + '"]');
|
|
|
+ for (let i = 0; i < _data[x].length; i++) {
|
|
|
+ lineTR.find('>td[data-pro-uid="' + _data[x][i]._v_pro_uid + '"] .count').text(_data[x][i].count);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // calculate drop %
|
|
|
+ $('.multi-pro-stats-table tr[data-line-uid][data-parent-line-uid]').each(function() {
|
|
|
+ for (let i = 0; i < $(this).find('>td').length; i++) {
|
|
|
+ let parentCount = $('.multi-pro-stats-table tr[data-line-uid="' + $(this).attr('data-parent-line-uid') + '"]>td:eq(' + i + ') .count').first().text(),
|
|
|
+ myCount = $(this).find('>td:eq(' + i + ') .count').first().text();
|
|
|
+ if(parentCount && myCount && !Number.isNaN(+parentCount) && !Number.isNaN(+myCount) && +parentCount > 0) {
|
|
|
+ parentCount = +parentCount;
|
|
|
+ myCount = +myCount;
|
|
|
+ let element = $(this).find('>td:eq(' + i + ') .drop-percent').first(), cssClass = '';
|
|
|
+ let dropPercent = ((parentCount - myCount) / parentCount) * 100;
|
|
|
+ if(dropPercent > 75) {
|
|
|
+ cssClass = 'mv-drop-76-100';
|
|
|
+ }
|
|
|
+ else if(dropPercent > 50 && dropPercent <= 75) {
|
|
|
+ cssClass = 'mv-drop-51-75';
|
|
|
+ }
|
|
|
+ else if(dropPercent > 25 && dropPercent <= 50) {
|
|
|
+ cssClass = 'mv-drop-26-50';
|
|
|
+ }
|
|
|
+ else if(dropPercent > 0 && dropPercent <= 25) {
|
|
|
+ cssClass = 'mv-drop-0-25';
|
|
|
+ }
|
|
|
+ element.removeClass().addClass('drop-percent').addClass(cssClass).text(dropPercent.toFixed(1) + '% ⤵');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }, 'json');
|
|
|
@endif
|
|
|
|
|
|
ClausesTree.load();
|