Created
October 24, 2018 09:43
-
-
Save janakprajapati2112/bacc22b1fd010accb41bad2493f30248 to your computer and use it in GitHub Desktop.
report.component.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!--<input type="text" ngxDaterangepickerMd | |
[locale]="{applyLabel: 'ok', format: 'DD-MM-YYYY'}" | |
startKey="start" | |
endKey="end" | |
[(ngModel)]="selected" [ranges]="ranges"/> --> | |
<div class="row text-right" style="margin-top: 10px;"> | |
<div class="col-md-6"></div> | |
<div class="col-md-6 text-right" style="padding-right: 0px;"> | |
<input type="hidden" | |
ngxDaterangepickerMd | |
[(ngModel)]="selectedDate" | |
[showCustomRangeLabel]="true" | |
[alwaysShowCalendars]="true" | |
[ranges]="ranges" | |
[linkedCalendars]="false" | |
[isInvalidDate] = "isInvalidDate" | |
placeholder="Select please..." | |
[keepCalendarOpeningWithRange]="keepCalendarOpeningWithRange" | |
[showRangeLabelOnInput]="showRangeLabelOnInput" | |
(rangeClicked)="datesUpdated($event)" | |
(datesUpdated)="datesUpdated($event)"/> | |
<a href="javascript:;" class="ngx-daterangepicker-action waves-effect waves-light btn btn-sm btn-primary text-right" (click)="openDatePicker($event)" style="font-size: 14px;"> | |
{{ selectedDate.startDate | date:'dd/MM/yyyy'}} to {{ selectedDate.endDate | date:'dd/MM/yyyy'}}<i class="fa fa-calendar" style=" | |
margin: 10px 7px; | |
"></i> </a> | |
</div> | |
</div> | |
<div class="snippet" *ngIf="reportLoading === true"> | |
<div class="stage"> | |
<div class="dot-typing"></div> | |
</div> | |
</div> | |
<div class="row filter-row" style="border-bottom: 1px solid #ccc; margin-top: 20px;"> | |
<div class="general-selected-filters"> | |
Filter by: | |
<div class="filter-item" *ngFor="let filter of sFilters"> | |
<div class="clause" *ngIf="filter.values.length > 0"> | |
<span class="attribute" (click)="getFilterValues(filter,$event)">{{ filter.label }} :</span> | |
<span class="value" *ngIf="filter.values.length < 3" (click)="getFilterValues(filter,$event)">{{ arrToString(filter.values) | |
}}</span> | |
<span class="value" *ngIf="filter.values.length >= 3" (click)="getFilterValues(filter,$event)">{{ filter.values | slice:0:2 }} +{{ filter.values.length-2 }}</span> | |
<span class="remove-icon" ><i class="fa fa-times-circle" (click)="updateFilters(filter,'d')"></i></span> | |
</div> | |
</div> | |
</div> | |
<div class="addfilter btn btn-sm" (click)="openFilterSelection($event)" style="margin: -2px 0px; | |
text-align: right; | |
right: 10px; | |
position: absolute;"> | |
<i class="fa fa-plus"></i> | |
</div> | |
</div> | |
<div class="row split-row"> | |
<div class="general-selected-filters"> | |
Split by: | |
<div class="filter-item" *ngFor="let filter of splitOpt"> | |
<div class="clause"> | |
<span class="attribute">{{ filter.text }}</span> | |
<span class="remove-icon"><i class="fa fa-times-circle" (click)="updateFilters(filter,'s')"></i></span> | |
</div> | |
</div> | |
</div> | |
<div class="addfilter btn btn-sm" (click)="openSplitSelection($event)" style="margin: 1px 0px; | |
text-align: right; | |
right: 10px; | |
position: absolute;"> | |
<i class="fa fa-plus"></i> | |
</div> | |
</div> | |
<div class="popover-overlay-container" *ngIf="filterSelection || splitSelection " > | |
<div class="popover-overlay" (click)="hidePopup()"></div> | |
<div></div> | |
</div> | |
<div class="add-filter-menu" *ngIf="filterSelection" [ngStyle]="{'top': posY, 'left': posX}" > | |
<div class="add-filter-menu-results-container" > | |
<div class="attribute-selector" *ngIf="dimentionSelection"> | |
<div class="clearable-input" placeholder="Search"> | |
<input placeholder="Search" type="text" [(ngModel)]="query"> | |
<div class="delete-button"></div> | |
</div> | |
<ul class="menu-options attribute-choices" > | |
<li *ngFor="let dimention of filterDimentions | searchfilter: query" class="" (click)="getFilterValues(dimention)">{{ dimention.text }}</li> | |
</ul> | |
</div> | |
<div class="value-selector" *ngIf="dValueSelection"> | |
<div class="clearable-input" > | |
<input placeholder="Search" type="text" name="searchText" [(ngModel)]="q" (input)="onSearchChange()"> | |
<div class="delete-button" ></div> | |
</div> | |
<div class="list-cont"> | |
<div class="dvalue-loading" *ngIf="appLoading==true"> | |
<div class="m-loader m-loader--primary" style="width: 30px; display: inline-block;"></div> | |
</div> | |
<ul class="menu-options attribute-values" > | |
<li *ngFor="let dimention of filterDimentionsValues" class="" (click)="selectFilters(dimention);"> | |
<label class="m-checkbox app-checkbox" *ngIf="currentSelectedDimension !== '__time'"> | |
<input type="checkbox" (click)="selectFilters(dimention)" [checked]="((-1 !== checkIfDimvalueExists(dimention)) ? 'checked' : '')"/> | |
{{ dimention[currentSelectedDimension]}} | |
<span></span> | |
</label> | |
<label class="m-checkbox app-checkbox" *ngIf="currentSelectedDimension === '__time'"> | |
<input type="checkbox" (click)="selectFilters(dimention)" [checked]="((-1 !== checkIfDimvalueExists(dimention)) ? 'checked' : '')"/> | |
{{ dimention[currentSelectedDimension] | date:'dd-MM-yyyy HH:mm:ss Z'}} | |
<span></span> | |
</label> | |
</li> | |
</ul> | |
<!-- <div class="no-results">No results</div> --> | |
</div> | |
<div class="bottom-bar text-right" > | |
<button class="apply-button btn btn-sm btn-danger " (click)="goBackToDimensions()" style="position: absolute; | |
top: 6px; | |
right: 77px; | |
height: 28px; | |
font-size: 13px;">Back</button> | |
<button class="apply-button btn btn-sm btn-primary" (click)="getReport()">Apply</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="add-filter-menu" *ngIf="splitSelection" [ngStyle]="{'top': posY, 'left': posX}" > | |
<div class="add-filter-menu-results-container" > | |
<div class="attribute-selector" *ngIf="dimentionSelection"> | |
<div class="clearable-input" placeholder="Search"> | |
<input placeholder="Search" type="text" [(ngModel)]="query"> | |
<div class="delete-button"></div> | |
</div> | |
<ul class="menu-options attribute-choices" > | |
<li *ngFor="let dimention of filterDimentions | searchfilter: query" class="" (click)="selectSplitDimention(dimention)" >{{ dimention.text }}</li> | |
</ul> | |
</div> | |
</div> | |
</div> | |
<div class="chart-container" > | |
<div class="report-nav" style="margin-top: 30px; margin-bottom: 30px;"> | |
<ul class="nav nav-pills nav-justified"> | |
<li class="reporting_nav"><a href="javascript:void(0)" class="plotgraph" data-label="Clicks" data-yparam="totalClicks">3.88M<span>Clicks</span></a></li> | |
<li class="reporting_nav active"><a href="javascript:void(0)" class="plotgraph" data-label="Conversions" data-yparam="totalConversions">742<span>Conversions</span></a></li> | |
<li class="reporting_nav"><a href="javascript:void(0)" class="plotgraph" data-label="Revenue" data-yparam="totalRevenueOg">$ 1.16k <span>Revenue</span></a></li> | |
<li class="reporting_nav"><a href="javascript:void(0)" class="plotgraph" data-label="Payout" data-yparam="totalRevenue">$ 823.43 <span>Payout</span></a></li> | |
<li class="reporting_nav"><a href="javascript:void(0)" class="plotgraph" data-label="CR" data-yparam="conversionRatio">0.02%<span>CR</span></a></li> | |
<li class="reporting_nav"><a href="javascript:void(0)" class="plotgraph" data-label="RPM" data-yparam="epc">$ 0.30<span>RPM</span></a></li> | |
<li class="reporting_nav" style="border-right:1px solid #eaeaea;"><a href="javascript:void(0)" class="plotgraph" data-label="Profit" data-yparam="profit">$ 341.15<span>Profit</span></a></li> | |
</ul> | |
</div> | |
<highcharts-chart | |
[Highcharts]="Highcharts" | |
[constructorType]="chartConstructor" | |
[options]="chartOptions" | |
[callbackFunction]="chartCallback" | |
[(update)]="updateFlag" | |
[oneToOne]="oneToOneFlag" | |
[runOutsideAngular]="runOutsideAngularFlag" | |
style="width: 100%; height: 350px; display: block;" | |
></highcharts-chart> | |
</div> | |
<div class="report-table-header" style="margin-top: 30px;" *ngIf="reportData.length > 0"> | |
<div class="row report-row-header" > | |
<div class="col-4" style="padding-left: 5px;">#</div> | |
<div class="col-2">Impressions</div> | |
<div class="col-2">Conversion</div> | |
<div class="col-1">Bids</div> | |
<div class="col-1">Wins</div> | |
<div class="col-1">Cost</div> | |
<div class="col-1">Rev Payout</div> | |
</div> | |
</div> | |
<div class="report-table-container" > | |
<ng-container *ngFor="let rData of reportData; let i = index; last as isLast" > | |
<div class="row report-row" > | |
<div class="col-4" style="padding-left: 5px;"> | |
<button | |
class="btn btn-sm" | |
*ngIf="checkIfHaveMoreSplits(this.splitOpt[0].id) !== 0 && rData.isCollapsed == true" | |
(click)="splitData(rowWiseFilterObj(rData,this.splitOpt[0].id),this.splitOpt[0].id,sFilters,splitOpt,i,rData,selectedDate)" | |
row="rData">+</button> | |
<button | |
class="btn btn-sm" | |
*ngIf="checkIfHaveMoreSplits(this.splitOpt[0].id) !== 0 && rData.isCollapsed == false" | |
(click)="removeDynamicComponent(rData,i)" | |
>-</button> | |
<span *ngIf="this.splitOpt[0].id !== '__time'">{{rData[this.splitOpt[0].id]}}</span> | |
<span *ngIf="this.splitOpt[0].id === '__time'">{{ rData[this.splitOpt[0].id] | date:'dd-MM-yyyy HH:mm:ss Z'}}</span> | |
</div> | |
<div class="col-2">{{convertToDecimals(rData.impressions,2)}}</div> | |
<div class="col-2">{{convertToDecimals(rData.conversions,2)}}</div> | |
<div class="col-1">{{convertToDecimals(rData.bids,2)}}</div> | |
<div class="col-1" >{{convertToDecimals(rData.wins,2)}}</div> | |
<div class="col-1">{{convertToDecimals(rData.cost,2)}}</div> | |
<div class="col-1">{{convertToDecimals(rData.rev_payout,2)}}</div> | |
</div> | |
<div *ngIf="isLast">{{altrows("#ffffff","#f5f5f5")}}</div> | |
<ng-template #dynamic ></ng-template> | |
</ng-container> | |
</div> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment