fixed a regression with the playback panel
This commit is contained in:
parent
cdf6fb7b7e
commit
83a0aa1109
@ -803,10 +803,243 @@
|
|||||||
</p-dialog>
|
</p-dialog>
|
||||||
|
|
||||||
|
|
||||||
<app-playback-panel #playbackPanel
|
<p-dialog #playbackSpr position="topleft" showEffect="fade" [(visible)]="playbackOn" header="" [resizable]="false" [closable]="false" [closeOnEscape]="false" [contentStyle]="{'overflow':'visible'}" [style]="{ 'width': '360px' }" [modal]="false" (onShow)="onPlayDlgShow()">
|
||||||
[job]="currentJob"
|
<div class="ui-g-12 ui-g-nopad">
|
||||||
[map]="map"
|
<p-toolbar>
|
||||||
[settings]="settings"
|
<div class="ui-toolbar-group-left toolbar-nopad">
|
||||||
[totalArea]="totalArea"
|
<div i18n-pTooltip="@@playAuto" pTooltip="Play Auto" class='button-ttip' tooltipPosition="bottom" [tooltipDisabled]="isMobile">
|
||||||
[totalAmount]="totalAmount">
|
<p-toggleButton [(ngModel)]="playAutoOn" [disabled]="!dataFiles.length" onIcon="ui-icon-play-arrow" offIcon="ui-icon-play-arrow" iconPos="left" onLabel="" offLabel="" (onChange)="togglePlay($event, PlayModes.Auto)">
|
||||||
</app-playback-panel>
|
</p-toggleButton>
|
||||||
|
</div>
|
||||||
|
<div i18n-pTooltip="@@playManual" pTooltip="Play Manual" class='button-ttip' tooltipPosition="bottom" [tooltipDisabled]="isMobile">
|
||||||
|
<p-toggleButton [(ngModel)]="playManualOn" [disabled]="!dataFiles.length" onIcon="ui-icon-play-circle-outline" offIcon="ui-icon-play-circle-outline" styleClass="round-button" onLabel="" offLabel="" (onChange)="togglePlay($event, PlayModes.Manual)">
|
||||||
|
</p-toggleButton>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div i18n-pTooltip="@@centerPlayPos" pTooltip="Center on Play position" class='button-ttip' tooltipPosition="bottom" [tooltipDisabled]="isMobile">
|
||||||
|
<p-toggleButton [(ngModel)]="centerPlayPos" onIcon="ui-icon-center-focus-strong" offIcon="ui-icon-center-focus-strong" styleClass="round-button" onLabel="" offLabel="">
|
||||||
|
</p-toggleButton>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</p-toolbar>
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-12">
|
||||||
|
<div *ngIf="!playManualOn else manCtl;" class="speed-slider">
|
||||||
|
<p-slider styleClass="my-slider" [(ngModel)]="playSpd" (onSlideEnd)="playSpdChange($event)"></p-slider>
|
||||||
|
</div>
|
||||||
|
<ng-template #manCtl>
|
||||||
|
<div class="manual-controls">
|
||||||
|
<button pButton icon="ui-icon-keyboard-arrow-left" type="button" (click)="playManualBwd()"></button>
|
||||||
|
<button pButton icon="ui-icon-keyboard-arrow-right" type="button" (click)="playManualFwd()"></button>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-12 ui-g-nopad data-detail-box" *ngIf="curPlayRec">
|
||||||
|
<p-tabView #tbvOutputs styleClass="slim-tabview" (onChange)="tbvChange($event)">
|
||||||
|
<p-tabPanel header="Files">
|
||||||
|
<p-orderList #dfilesList styleClass="my-orderlist" [value]="dataFiles" [(selection)]="selDataFiles" [style]="{'minHeight':'194px'}" controlsPosition="right" i18n-header="@@dataFiles" header="Data Files" [metaKeySelection]="true" (onReorder)="onReOrder($event)" (onSelectionChange)="dataFilesSelChange($event)">
|
||||||
|
<ng-template let-file pTemplate="item">
|
||||||
|
<div class="ui-helper-clearfix" [ngClass]="{'play-file':file.playing}">
|
||||||
|
{{ fileItem(file) }}
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</p-orderList>
|
||||||
|
</p-tabPanel>
|
||||||
|
<p-tabPanel i18n-header="@@gpsData" header="GPS Data">
|
||||||
|
<div class="ui-g ui-g-nopad output">
|
||||||
|
<div class="ui-g-4 data-field field-name">Counter</div>
|
||||||
|
<div class="ui-g-8 data-field">{{(playIdx + 1)}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name loc-time">TimeLocal</div>
|
||||||
|
<div class="ui-g-8 data-field loc-time-v">
|
||||||
|
<div>
|
||||||
|
{{curPlayRec.timeLocal || "00:00:00.0"}}
|
||||||
|
</div>
|
||||||
|
<div *ngIf="isPlayingAgNavFile">
|
||||||
|
<p-dropdown id="tzone" name="tzone" [style]="{'width':'50px'}" [(ngModel)]="localTz" [options]="timeZones" (onChange)="onTzChange($event)"></p-dropdown>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">TimeGPS</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.timeGPS?.toFixed(2)}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Latitude</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.lat | coordinate:'lat':'DM' }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Longitude</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.lon | coordinate:'lon':'DM' }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">UTM X</div>
|
||||||
|
<div class="ui-g-8 data-field">{{NumUtils.fixedTo(curPlayRec.utmX, 1, '0.0')}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">UTM Y</div>
|
||||||
|
<div class="ui-g-8 data-field">{{NumUtils.fixedTo(curPlayRec.utmY, 1, '0.0')}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Altitude</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.alt | length:isUS:0}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Speed</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.speed | speed:isUS:true}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AvgSXt/ Xt</div>
|
||||||
|
<div class="ui-g-8 data-field">{{playXt.avg | length:isUS:0 }} / {{curPlayRec.xt | xtract:isUS:0}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">TrckAngle</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.trckAngle}}</div>
|
||||||
|
<ng-container *ngIf="isPlayingAgNavFile">
|
||||||
|
<div class="ui-g-4 data-field field-name">LckedLine</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.lockedLine | lockline:curPlayLoc?.xTrack }}</div>
|
||||||
|
</ng-container>
|
||||||
|
<div class="ui-g-4 data-field field-name">HDOP</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.hdop}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Sat/Cor/ID</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.sats || 0}} / {{curPlayRec.corId || 0}}<span *ngIf="curPlayRec.waasId">/ {{curPlayRec.waasId}}</span></div>
|
||||||
|
<ng-container *ngIf="isDebug">
|
||||||
|
<div class="ui-g-4 data-field field-name">SprayStat </div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayLoc?.sprayStat}} (DEBUG)</div>
|
||||||
|
</ng-container>
|
||||||
|
</div>
|
||||||
|
</p-tabPanel>
|
||||||
|
<p-tabPanel i18n-header="@@applicInfo" header="Applic Info">
|
||||||
|
<div class="ui-g ui-g-nopad output">
|
||||||
|
<ng-container *ngIf="(playMatType === MatType.LIQUID) else DRYRATE">
|
||||||
|
<div class="ui-g-4 data-field field-name">Applic.RateAp</div>
|
||||||
|
<div class="ui-g-8 data-field">{{ curPlayRec.appRateAp | appRate:playMatType:isUS:null:false }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Applic.RateRq</div>
|
||||||
|
<ng-container *ngIf="isPlayingAgNavFile; else PARTNERATE">
|
||||||
|
<div class="ui-g-8 data-field">{{ curPlayRec.applicRate | number:'1.2-2':'en'}} {{ curPlayRec.applicRateUnit | rateUnit:2:false }}</div>
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #PARTNERATE>
|
||||||
|
<div class="ui-g-8 data-field">{{ curPlayRec.applicRate | appRate:playMatType:isUS:null:false }}</div>
|
||||||
|
</ng-template>
|
||||||
|
<div class="ui-g-4 data-field field-name">FlowRateAp
|
||||||
|
</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.flowRateAp || 0 | flowRate:isUS }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">FlowRateRq</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.flowRateRq || 0 | flowRate:isUS }}</div>
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #DRYRATE>
|
||||||
|
<div class="ui-g-4 data-field field-name">AvgRMP</div>
|
||||||
|
<div class="ui-g-8 data-field">{{(curPlayRec.avgRMP || 0) | number:'1.1-1':'en' }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AppRateAp</div>
|
||||||
|
<div class="ui-g-8 data-field">{{(curPlayRec.flowRateAp || 0) | appRate:playMatType:isUS }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AppRateRq</div>
|
||||||
|
<div class="ui-g-8 data-field">{{(curPlayRec.flowRateRq || 0) | appRate:playMatType:isUS }}</div>
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<div class="ui-g-4 data-field field-name">Flow Control</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.flowControl }}</div>
|
||||||
|
|
||||||
|
<ng-container *ngIf="isPlayingAgNavFile && (playMatType === MatType.LIQUID)">
|
||||||
|
<div class="ui-g-4 data-field field-name">Bm Pressure</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.bmPressure | number:'1.1-1':'en'}} psi</div>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<div class="ui-g-4 data-field field-name">Area</div>
|
||||||
|
<div class="ui-g-8 data-field">{{ curPlayRec.area | number:'1.1-1':'en'}} {{ currentJob.measureUnit | areaUnit:false }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AreaSprIn</div>
|
||||||
|
<div class="ui-g-8 data-field">{{ UnitUtils.toArea(areaSprIn.total, isUS) | number:'1.1-1':'en'}} {{ currentJob.measureUnit | areaUnit:false }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AreaSprTot</div>
|
||||||
|
<div class="ui-g-8 data-field">{{ UnitUtils.toArea(areaSprTot.total, isUS) | number:'1.1-1':'en'}} {{ currentJob.measureUnit | areaUnit:false }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Swath Width</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.swathWidth | length:isUS }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AvgSprSpd</div>
|
||||||
|
<div class="ui-g-8 data-field">{{sprSpd.avg | speed:isUS:true }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">{{playMatType === MatType.LIQUID ? 'RPM' : 'AppRPM' }} 1/2</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.rpm[0] || 0}} / {{curPlayRec.rpm[1] || 0}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">{{playMatType === MatType.LIQUID ? 'RPM 3/4' : 'TarRPM 1/2' }}</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.rpm[2] || 0}} / {{curPlayRec.rpm[3] || 0}}</div>
|
||||||
|
|
||||||
|
<ng-container *ngIf="playMatType === MatType.LIQUID else DRYRPM">
|
||||||
|
<div class="ui-g-4 data-field field-name">RPM 5/6</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.rpm[4] || 0}} / {{curPlayRec.rpm[5] || 0}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">RPM 7/8</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.rpm[6] || 0}} / {{curPlayRec.rpm[7] || 0}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">RPM 9/10</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.rpm[8] || 0}} / {{curPlayRec.rpm[9] || 0}}</div>
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #DRYRPM>
|
||||||
|
<div class="ui-g-4 data-field field-name">GFC VIn</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.rpm[4] | number:'1.1-1':'en'}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Revs/Lb</div>
|
||||||
|
<div class="ui-g-8 data-field">{{UnitUtils.revkgTolb(curPlayRec.rpm[6]) | number:'1.2-2':'en'}} / {{UnitUtils.revkgTolb(curPlayRec.rpm[7]) | number:'1.2-2':'en'}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Amp 1/2</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.rpm[8] | number:'1.1-1':'en'}} / {{curPlayRec.rpm[9] | number:'1.1-1':'en'}}</div>
|
||||||
|
</ng-template>
|
||||||
|
|
||||||
|
<div class="ui-g-4 data-field field-name">AutoSpr On/Off</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.sprOnLag | number:'1.2-2':'en' }} / {{curPlayRec.sprOffLag | number:'1.2-2':'en'}}</div>
|
||||||
|
<ng-container *ngIf="isPlayingAgNavFile">
|
||||||
|
<div class="ui-g-4 data-field field-name" *ngIf="playMatType === MatType.LIQUID">Pulses/Liter</div>
|
||||||
|
<div class="ui-g-8 data-field" *ngIf="playMatType === MatType.LIQUID">{{curPlayRec.pulsesPLiter | number:'1.0-0':'en'}}</div>
|
||||||
|
</ng-container>
|
||||||
|
</div>
|
||||||
|
</p-tabPanel>
|
||||||
|
<p-tabPanel i18n-header="@@met" header="MET">
|
||||||
|
<div class="ui-g ui-g-nopad output">
|
||||||
|
<div class="ui-g-4 data-field field-name">Counter</div>
|
||||||
|
<div class="ui-g-8 data-field">{{(playIdx + 1)}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">TimeLocal</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.timeLocal || "00:00:00.0"}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">TimeGPS</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.timeGPS}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name" field-name>Latitude</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.lat | coordinate:'lat':'DM' }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Longitude</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.lon | coordinate:'lon':'DM' }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">UTM X</div>
|
||||||
|
<div class="ui-g-8 data-field">{{NumUtils.fixedTo(curPlayRec.utmX, 1, '0.0')}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">UTM Y</div>
|
||||||
|
<div class="ui-g-8 data-field">{{NumUtils.fixedTo(curPlayRec.utmY, 1, '0.0')}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Speed</div>
|
||||||
|
<div class="ui-g-8 data-field">{{UnitUtils.mpsToKnot(curPlayRec.speed) | number:'1.1-1':'en'}} knots</div>
|
||||||
|
<ng-container *ngIf="isPlayingAgNavFile">
|
||||||
|
<div class="ui-g-4 data-field field-name">LckedLine</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.lockedLine | lockline}}</div>
|
||||||
|
</ng-container>
|
||||||
|
<div class="ui-g-4 data-field field-name">Wind Spd</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.windSpd | number:'1.1-1':'en' }} knots</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Wind Dir</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.windDir | number:'1.1-1':'en' }} °</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Temperature</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.temp | temperature:isUS }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Humidity</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.humid}} %</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Spr. Height</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.sprHeight | length:isUS:0 }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">DriftX</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.driftX | length:isUS:0 }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">DriftY</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.driftY | length:isUS:0 }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">DepositX</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.depositX | length:isUS:0 }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">DepositY</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.depositY | length:isUS:0 }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">GPS Alt</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.alt | length:isUS:0 }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Rad/Laser Alt</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.radAlt | length:isUS:0 }} / {{curPlayRec.laserAlt | length:isUS:0}}</div>
|
||||||
|
</div>
|
||||||
|
</p-tabPanel>
|
||||||
|
<p-tabPanel i18n-header="@@summary" header="Summary">
|
||||||
|
<div class="ui-g ui-g-nopad output">
|
||||||
|
<ng-container *ngIf="isPlayingAgNavFile">
|
||||||
|
<div class="ui-g-4 data-field field-name">AreaName</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.areaName}}</div>
|
||||||
|
</ng-container>
|
||||||
|
<div class="ui-g-4 data-field field-name">Mapped Area</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.mappedArea | number:'1.1-1':'en' }} {{ currentJob.measureUnit | areaUnit:false }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AreaSprTot</div>
|
||||||
|
<div class="ui-g-8 data-field">{{ UnitUtils.toArea(areaSprTot.total, isUS) | number:'1.1-1':'en'}} {{ currentJob.measureUnit | areaUnit:false }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">AvgSprSpd</div>
|
||||||
|
<div class="ui-g-8 data-field">{{sprSpd.avg | speed:isUS:true}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Pilot Name</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.pilotName}}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Applic.Rate</div>
|
||||||
|
<ng-container *ngIf="isPlayingAgNavFile; else PARTNERATE">
|
||||||
|
<div class="ui-g-8 data-field">{{ curPlayRec.applicRate | number:'1.2-2':'en'}} {{ curPlayRec.applicRateUnit | rateUnit:2:false }}</div>
|
||||||
|
</ng-container>
|
||||||
|
<ng-template #PARTNERATE>
|
||||||
|
<div class="ui-g-8 data-field">{{ curPlayRec.applicRate | appRate:playMatType:isUS:null:false }}</div>
|
||||||
|
</ng-template>
|
||||||
|
<div class="ui-g-4 data-field field-name">Mat Needed</div>
|
||||||
|
<div class="ui-g-8 data-field">{{( totalAmount?.value || 0) | number:'1.1-1':'en'}} {{ totalAmount?.appRateUnit | rateUnit:1:false }}</div>
|
||||||
|
<div class="ui-g-4 data-field field-name">Mat Sprayed</div>
|
||||||
|
<div class="ui-g-8 data-field">{{ matSprayed.total | appVolume:totalAmount?.appRateUnit }} </div>
|
||||||
|
<div class="ui-g-4 data-field field-name">OverSprayed</div>
|
||||||
|
<div class="ui-g-8 data-field">{{curPlayRec.overSprayed | number:'1.1-1':'en'}}%</div>
|
||||||
|
</div>
|
||||||
|
</p-tabPanel>
|
||||||
|
</p-tabView>
|
||||||
|
</div>
|
||||||
|
</p-dialog>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user