24 jul update

This commit is contained in:
Pranav 2023-07-24 11:36:46 +00:00
parent 3a9e71fd0f
commit 81e5b8cf52
99 changed files with 1373 additions and 695 deletions

View file

@ -452,7 +452,6 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -158,7 +158,8 @@ logout(){
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}

View file

@ -1096,7 +1096,8 @@ openNav() {
this.router.navigateByUrl("device-report/ideal-report");
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){

View file

@ -95,7 +95,8 @@ export class AddDeviceModelComponent implements OnInit {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -313,7 +314,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
/* TOKEN GENERATION */

View file

@ -97,7 +97,8 @@ export class AddDriverComponent implements OnInit {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -337,7 +338,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
/* TOKEN GENERATION */
@ -541,7 +542,7 @@ else{
// return metadata;
// };
// onUploadFinished(file) {
// debugger;
//
// console.log(file);
// this.imageFile=file;
// console.log(this.imageFile.file.name);
@ -569,7 +570,7 @@ else{
// return metadata;
// };
// onUploadFinished1(file) {
// debugger;
//
// console.log(file);
// this.imageFile=file;
// console.log(this.imageFile.file.name);

View file

@ -116,7 +116,8 @@ export class AddEditVehicleTypeComponent implements OnInit {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -332,7 +333,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
/* TOKEN GENERATION */

View file

@ -342,7 +342,8 @@ export class AddComponent implements OnInit {
localStorage.setItem("dlrchk", dlrStatus)
this.router.navigateByUrl("const?_status=" + "OK");
this.router.navigateByUrl("const?_status=" + "OK");
// console.log('testing', this.useridd);
}
@ -399,7 +400,8 @@ export class AddComponent implements OnInit {
this.router.navigateByUrl("device-report/ideal-report");
}
soon() {
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
}
new() {
@ -442,7 +444,7 @@ export class AddComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -55,7 +55,7 @@ export class ResetPasswordComponent implements OnInit {
showBtn : boolean = true;
showBtn_1 : boolean = true;
show_hide_pass(id){
debugger;
console.log(id);
if(id == 0){
this.iType = 'text';

View file

@ -125,6 +125,9 @@
<a class="dropdown-item"
style="cursor: pointer;border-bottom: 1px solid;padding-top: 7px;padding-bottom: 7px;font-size: 14px;"
*ngIf="showIMEI" (click)="userFinder('admin')">{{'User Finder' | translate}}</a>
<!-- <a class="dropdown-item"
style="cursor: pointer;border-bottom: 1px solid;padding-top: 7px;padding-bottom: 7px;font-size: 14px;"
(click)="virtualDevice('admin')">{{'Virtual Device' | translate}}</a> -->
<a class="dropdown-item" style="cursor: pointer;border-bottom: 1px solid;padding-top: 7px;padding-bottom: 7px;font-size: 14px;" *ngIf="superAdmin" (click)="userMaster('admin')">{{'User Master' | translate}}</a>
<a class="dropdown-item" style="cursor: pointer;border-bottom: 1px solid;padding-top: 7px;padding-bottom: 7px;font-size: 14px;" *ngIf="superAdmin || custtype" (click)="VType('admin')">{{'Vehicle Type' | translate}}</a>

View file

@ -268,8 +268,10 @@ export class AllMenusComponent implements OnInit {
//2 menu dashboard
soon(id) {
this.menuFlag = this.contactService.menuReturnSet(id);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
}
// 3 menu
group(id) {
@ -369,6 +371,9 @@ export class AllMenusComponent implements OnInit {
this.router.navigateByUrl("vehicle/reminder_service");
}
virtualDevice(id) {
this.router.navigateByUrl("virtualDevice");
}
@ -657,7 +662,6 @@ fuel_report(id){
localStorage.removeItem('profilePic');
}
this.router.navigateByUrl("add");
// this.router.navigateByUrl("const?_status="+"OK");
}
}
@ -690,7 +694,7 @@ fuel_report(id){
}
this.router.navigateByUrl("dealerInfo");
// this.router.navigateByUrl("const?_status="+"OK");
}

View file

@ -284,6 +284,7 @@ import { IndexingReportComponent } from './indexingReport/index-report.component
import { IssueListKycComponent } from './kyc-approval/issue-list/issue-list.component';
import { IssueAddKycComponent } from './kyc-approval/issue-add/issue-add.component';
import { TripManagementReportComponent } from './report/report component/trip-management/trip-management-report.component';
import { VirtualDeviceComponent } from './virtual-device/virtual-device.component';
// import { DisatanceReportComponent } from './report/disatance-report/disatance-report.component';
// import { MainComponent } from './report/main/main.component';
// import { AcReportsComponent } from './report/ac-report/ac-report.component';
@ -476,6 +477,7 @@ export function createTranslateLoader(http: Http) {
ProductOverviewComponent,
PointShareComponent,
MessageUtilityComponent,
VirtualDeviceComponent,
TripLoadUnloadComponent,
BuyNowComponent,
BillingInfoComponent,

View file

@ -212,6 +212,7 @@ import { UserSettingComponent } from './user-setting/user-setting.component';
import { CurrentPositionReportComponent } from './report/report component/current-position/current-position.component';
import { IndexingReportComponent } from './indexingReport/index-report.component';
import { TripManagementReportComponent } from './report/report component/trip-management/trip-management-report.component';
import { VirtualDeviceComponent } from './virtual-device/virtual-device.component';
// import { DeviceFuelReportComponent } from './device-report/device-fuel-report/device-fuel-report.component';
// import { DeviceSOSreportComponent } from './device-report/device-sosreport/device-sosreport.component';
// import { TripByDeviceComponent } from './device-report/trip-by-device/trip-by-device.component';
@ -314,7 +315,7 @@ export const router: Routes =[
{path : 'PointShareComponent',component : PointShareComponent},
{path: 'messageUtility',component : MessageUtilityComponent},
{path: 'censor',component : CensorDisplayComponent},
// {path : 'live',component : LiveTrackingComponent},
{path : 'virtualDevice',component : VirtualDeviceComponent},
{path: 'fuelComp',component: SidemenuFuelComponent},
{path: 'vehicleRoute',component: VehicleRouteComponent},
{path: 'setRoute',component: RouteSetComponent},

View file

@ -621,7 +621,7 @@ export class ConstComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
logo: any;
@ -738,15 +738,13 @@ export class ConstComponent implements OnInit {
this.sidebarData(10);
});
// var retrievedData = localStorage.getItem("devices");
// var cord = JSON.parse(retrievedData);
// this.final = cord;
this.activatedRoute.queryParams.subscribe((params: Params) => {
// //console.log('p3');
if(params['redirect']) {
this.router.navigateByUrl("location?pageid=locationComponent");
}
})
this.timer = Observable.timer(100, 100);
this.subscription = this.timer.subscribe(t => {
var retrievedData = localStorage.getItem("devices");
@ -843,7 +841,7 @@ export class ConstComponent implements OnInit {
this.getuserObject();
this.getLanguage();
this.getNotificationCount()
this.getNotificationCount();
}
@ -1414,7 +1412,7 @@ selectedlanguage:any
// localStorage.setItem('Dealer',"OFF");
// localStorage.setItem('superadmin',"OFF")
//console.log('this.superAdmin',this.superAdmin);
// debugger;
//
if(this.superAdmin === true){
localStorage.setItem('supAdminAcessToCust', 'true' );
}
@ -1423,7 +1421,8 @@ selectedlanguage:any
localStorage.setItem("dlrchk", dlrStatus)
this.router.navigateByUrl("const?_status=" + "OK");
this.router.navigateByUrl("const?_status=" + "OK");
// //console.log('testing', this.useridd);
}
@ -1463,8 +1462,8 @@ selectedlanguage:any
// //console.log("Inside View Dev",dataStatus);
if (type == "Tracker") {
localStorage.setItem('last_speed',lastSpeed );
this.router.navigateByUrl("location?_dname=" + name + "_id=" + id);
window.localStorage['devDetail'] = JSON.stringify(dataStatus);
//this.router.navigateByUrl("location?_dname=" + name + "_id=" + id);
//window.localStorage['devDetail'] = JSON.stringify(dataStatus);
}
else {
localStorage.setItem('last_speed',lastSpeed );
@ -2247,7 +2246,7 @@ selectedlanguage:any
getfuel(device,ind){
// //console.log(ind);
// //console.log(device);
// debugger;
//
var show_val = '';
if(this.fuelflag == 'l'){
if((device.currentFuel == undefined)||(device.currentFuel == NaN)||(device.currentFuel == null)){
@ -2917,7 +2916,7 @@ selectedlanguage:any
getApiKey(){
// debugger;
//
var api_key = 'AIzaSyA_ycttLXPMfCSSNAfPOsaENPQ85i17lPU';
var apiIdentifier = localStorage.getItem('apiIdentifier');
if(apiIdentifier == null){
@ -3225,7 +3224,9 @@ selectedlanguage:any
else {
window.localStorage['checker'] = params['_status'];
}
if(params['redirect']) {
this.router.navigateByUrl("location?pageid=locationComponent");
}
});
this.latLongDetail()

View file

@ -1655,7 +1655,6 @@ getLanguages(payload){
getAddressByApi(latlng){
if(this.latLongAddress[latlng.long+'_'+latlng.lat]) {
console.log('get address for cache');
return Observable.of(this.latLongAddress[latlng.long+'_'+latlng.lat]);
} else {
return this.http.post(this.dev_url +'/googleAddress/getGoogleAddress',latlng)

View file

@ -210,7 +210,7 @@ export class AddNewDeviceComponent implements OnInit {
SMSPlan:[''],
city:[''],
deviceModel:[''],
trackingExp:new Date(this.expDate),
trackingExp:new Date(new Date().setFullYear(new Date().getFullYear() + 2)),
eSimExpiry:[''],
model:[''],
email:[""],
@ -234,15 +234,17 @@ export class AddNewDeviceComponent implements OnInit {
that.checkDeviceEMI(value);
for(var i=0;i<that.inventory.length;i++){
if(value==that.inventory[i].IMEI){
var date=new Date()
var exp
var exp:any = new Date();
if(that.inventory[i].eSIMValidaity=="One Year"){
exp= new Date(date.getFullYear() + 1, date.getMonth(), date.getDate()).toLocaleString();
exp.setFullYear(exp.getFullYear()+1);
}else if(that.inventory[i].eSIMValidaity=="Two Year"){
exp= new Date(date.getFullYear() + 2, date.getMonth(), date.getDate()).toLocaleString();
exp.setFullYear(exp.getFullYear()+2);
}else{
exp= new Date(date.getFullYear() + 1, date.getMonth(), date.getDate()).toLocaleString();
exp.setFullYear(exp.getFullYear()+1);
}
that.deviceForm.patchValue({
iccid:that.inventory[i].IccidNo,
sim1:that.inventory[i].Mob1,
@ -553,7 +555,7 @@ export class AddNewDeviceComponent implements OnInit {
var devicesupAdmin = dupObj.supAdmin;
var deviceDealer = dupObj.Dealer;
var devOwner = dupObj.user;
// debugger;
//
}
else {

View file

@ -904,7 +904,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
getdev(){

View file

@ -334,7 +334,7 @@ export class NewEditDeviceComponent implements OnInit {
expDate.setFullYear(expDate.getFullYear()+1);
var name=this.deviceForm.value.ownerName.split(' ')
var data={
// Dealer:this.reactiveForm.value.manager,
contactid:this.deviceData.user._id,
@ -348,12 +348,11 @@ export class NewEditDeviceComponent implements OnInit {
org_name: null,
password:this.generatePassword(6),
supAdmin:this.sup_admin,
Dealer:this.userId,
Dealer:this.deviceData.Dealer && this.deviceData.Dealer._id ? this.deviceData.Dealer._id :this.userId,
timezone: "Asia/Kolkata",
std_code: {countryCode: "in", dialcode: "91"},
}
if(this.deviceForm.value.pin){
data['pin']=this.deviceForm.value.pin
}
@ -529,7 +528,7 @@ export class NewEditDeviceComponent implements OnInit {
var devicesupAdmin = dupObj.supAdmin;
var deviceDealer = dupObj.Dealer;
var devOwner = dupObj.user;
debugger;
}
else {

View file

@ -176,16 +176,28 @@
</thead>
<tbody>
<tr *ngFor="let dealer of dealers_info">
<td class="cell100 column1" (click)="dealerSwitch(dealer)">
<td class="ftd-mp cell100 column1" (click)="dealerSwitch(dealer)">
<div class="row">
<div class="col-sm-5">
<p>{{dealer.first_name}} {{dealer.last_name}}</p>
<p title="{{dealer.first_name}} {{dealer.last_name}}" style="display: inline-block;
width: 180px;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis;">{{dealer.first_name}} {{dealer.last_name}}</p>
</div>
<div class="col-sm-5">
<p (click)="dealerSwitch(dealer)">{{dealer.email}}</p>
<p title="{{dealer.email}}" style="display: inline-block;
width: 180px;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis;" (click)="dealerSwitch(dealer)">{{dealer.email}}</p>
</div>
<div class="col-sm-2">
<p (click)="dealerSwitch(dealer)">{{dealerPhone(dealer)}}</p>
<p title="{{dealerPhone(dealer)}}" style="display: inline-block;
width: 180px;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis;" (click)="dealerSwitch(dealer)">{{dealerPhone(dealer)}}</p>
</div>
</div>
</td>

View file

@ -1,3 +1,8 @@
.ftd-mp {
padding-top: 14px;
padding-bottom: 12px;
}
// #body{
// overflow-x: hidden;
// overflow-y: hidden;

View file

@ -355,7 +355,8 @@ export class DealersInfoComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
this.router.navigateByUrl("const?_status=" + "OK");
this.router.navigateByUrl("const?_status=" + "OK");
}
});
}
@ -596,7 +597,7 @@ export class DealersInfoComponent implements OnInit {
//Add the header row.
var row = table.insertRow(-1);
debugger;
for (var i = 0; i < columnCount; i++) {
var headerCell = document.createElement("TH");
headerCell.innerHTML = customers[0][i]

View file

@ -769,7 +769,7 @@ export class DeviceRenewComponent implements OnInit {
const filtersimValue: any = simnum;
this.simNumberSelect = [];
this.simNumberSelect = this.deviceObj.filter(function (pptt) {
// debugger;
//
// console.log(pp);
var t = pptt.sim_Number.toLocaleLowerCase().indexOf(filtersimValue.toLocaleLowerCase());
return t > -1;

View file

@ -180,7 +180,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){
@ -226,7 +227,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -208,7 +208,7 @@ export class DeviceSOSreportComponent implements OnInit {
});
// $('#deviceTable tbody').on('click', 'button', function() {
// debugger;
//
// var data = that.tabelObj.row($(this).parents('tr')).data();
// console.log("button clicked");
// });

View file

@ -50,7 +50,8 @@ export class DeviceSpeedReportComponent implements OnInit {
// }
// soon() {
// this.router.navigateByUrl("const?_i=" + window.localStorage.token);
//
// this.router.navigateByUrl("const?_i=" + window.localStorage.token);
// }
@ -214,7 +215,7 @@ export class DeviceSpeedReportComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
_lineChartData: any;

View file

@ -196,7 +196,8 @@ firstcall:boolean=true;
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }
@ -253,7 +254,7 @@ firstcall:boolean=true;
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }

View file

@ -156,7 +156,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -223,7 +224,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -2,7 +2,7 @@
<div class="topDiv">
<div class="row" style="text-align: center; background: #426E86; padding-top: 10px; padding-bottom: 10px; color: white;box-shadow:3px 1px 5px 0px rgb(178, 176, 174)">
<div class="col-sm-12 col-md-12 col-lg-12">
<h4>{{'Geofencing Report' | translate}}</h4>
<h4>{{'Geofencing Report 1' | translate}}</h4>
</div>
</div>
<!-- <div class="row rowStyle" >

View file

@ -116,7 +116,7 @@ superAdmin:Boolean = false;
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }
@ -144,7 +144,8 @@ superAdmin:Boolean = false;
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }

View file

@ -127,7 +127,8 @@ this.contactService.getIdealData(neww.did,r).subscribe(
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -229,7 +230,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
report_speed(){

View file

@ -49,7 +49,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){
@ -202,7 +203,7 @@ creategraph(a){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
getdata(final){

View file

@ -221,7 +221,8 @@ export class IgnitionReportComponent implements OnInit {
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
//this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }
// new(){
@ -272,7 +273,7 @@ export class IgnitionReportComponent implements OnInit {
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }

View file

@ -50,6 +50,8 @@ sdfsd
</div>
</div>
</div>
<div *ngIf="componentIdentifier === 'poi_report'" class="row" style="margin: 0;padding-bottom: 10px;">
<div class="col-sm-3 col-md-3 col-lg-3" style="padding-left: 0;">
<p style="margin-bottom: 0; padding-top: 2px;font-size: 12px">{{'Select POI' | translate}} :</p>
@ -62,7 +64,25 @@ sdfsd
</div>
</div>
</div>
</div>
<div *ngIf="componentIdentifier === 'geofence_report'" class="row" style="margin: 0;padding-bottom: 10px;">
<div class="col-sm-3 col-md-3 col-lg-3" style="padding-left: 0;">
<p style="margin-bottom: 0; padding-top: 2px;font-size: 12px">{{'Devices' | translate}} :</p>
</div>
<div class="col-sm-9 col-md-9 col-lg-9" style="padding: 0;">
<div>
<select id="dbselectIMEI" multiple="multiple">
<option *ngFor="let udid of deviceArr_1" [value]="udid._id">{{ udid.Device_ID }}</option>
</select>
</div>
</div>
</div>
<div *ngIf="componentIdentifier === 'stoppage_report'" class="row" style="margin: 0;padding-bottom: 10px;">
<div class="col-sm-3 col-md-3 col-lg-3" style="padding-left: 0;">
<p style="margin-bottom: 0; padding-top: 2px;font-size: 12px">{{'Duration' | translate}} :</p>

View file

@ -275,7 +275,16 @@ export class ReportFilterComponent implements OnInit {
that.showLoader = false;
}, 100);
if(this.componentIdentifier === 'geofence_report') {
$('#dbselectIMEI').multipleSelect({
width: 250,
placeholder: "Devices",
filter: true,
single: true,
selectAll: false
})
}
if(this.componentIdentifier === 'billing_detail'){
setTimeout(() => {

View file

@ -219,7 +219,8 @@ export class SummaryReportComponent implements OnInit {
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }
// new(){
@ -286,7 +287,7 @@ export class SummaryReportComponent implements OnInit {
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }

View file

@ -838,7 +838,7 @@ export class DeviceComponent implements OnInit {
const filtersimValue: any = simnum;
this.simNumberSelect = [];
this.simNumberSelect = this.deviceObj.filter(function (pptt) {
// debugger;
//
// console.log(pp);
var t = pptt.sim_Number.toLocaleLowerCase().indexOf(filtersimValue.toLocaleLowerCase());
return t > -1;

View file

@ -265,7 +265,8 @@ export class DialogContentExampleDialogComponent implements OnInit {
}
soon() {
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
}
@ -506,7 +507,7 @@ export class DialogContentExampleDialogComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
/* TOKEN GENERATION */
@ -885,7 +886,7 @@ console.log("1");
var devicesupAdmin = dupObj.supAdmin;
var deviceDealer = dupObj.Dealer;
var devOwner = dupObj.user;
debugger;
if((this.useridd === devicesupAdmin)||(this.useridd === deviceDealer)||(this.useridd===devOwner)){
swal({
title: 'Duplicate Entry',

View file

@ -148,7 +148,7 @@ export class GeofenceAddComponent implements OnInit {
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
cond:Boolean = false;

View file

@ -35,7 +35,7 @@ export class GeofencingViewComponent implements OnInit {
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
myaccount(){
@ -92,7 +92,8 @@ export class GeofencingViewComponent implements OnInit {
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}

View file

@ -71,7 +71,8 @@ openNav() {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -316,7 +317,7 @@ var that=this
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
onChange(a,b,c,d){

View file

@ -182,7 +182,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){
@ -388,7 +389,8 @@ showVehiclesByGroup = function(group){
group.dataSource = "GROUPS";
this.contactService.setService(group);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
Ddetail(){

View file

@ -107,10 +107,12 @@ iphone:any;
// if( window.localStorage['Custumer'] == 'ON'){
// window.localStorage['token'] = window.localStorage['Dealer_token'];
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("const?_status="+"OK");
//
this.router.navigateByUrl("const?_status="+"OK");
// }
// else{
// this.router.navigateByUrl("const?_status="+"OK");
//
this.router.navigateByUrl("const?_status="+"OK");
// }
// }

View file

@ -1,65 +1,66 @@
<div class="card" style="height: 90vh;">
<div class="card-header">
<h4>Documents</h4>
</div>
<ng-container *ngIf="!data.isTag">
<div *ngIf="!hide" class="card-body" style="height: 80vh;
overflow-y: scroll;">
<div id="toast">
<div id="desc">{{ data_descip }}</div>
</div>
<div class="loading" *ngIf="Load">Loading&#8230;</div>
<table class="table table-striped">
<thead>
<tr>
<th>Image </th>
<th>Doc Number</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of imageDoc">
<td *ngIf="hasPdfFile(item.image); else pdfSection6">
<a target="_blank" [href]="'https://www.oneqlik.in'+item.image.substring(6)">
<i class="fas fa-file-pdf fa-3x pl-4"></i>
</a>
</td>
<ng-template #pdfSection6>
<td>
<img *ngIf="item.image ; else notAvaillableImg" style="width: 100px;" [src]="'https://www.oneqlik.in'+item.image.substring(6)" (click)="openModal(template,item)">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>{{item.phone}}</td>
<td>{{item.doctype}}</td>
</tr>
</tbody>
</table>
overflow-y: scroll;">
<div id="toast">
<div id="desc">{{ data_descip }}</div>
</div>
<div class="collapse" id="collapseExample">
<div class="card card-body" *ngIf="!show">
<table>
<tr>
<td>
Vahan Certificate
<div class="loading" *ngIf="Load">Loading&#8230;</div>
<table class="table table-striped">
<thead>
<tr>
<th>Image </th>
<th>Doc Number</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let item of imageDoc">
<td *ngIf="hasPdfFile(item.image); else pdfSection6">
<a target="_blank" [href]="'https://www.oneqlik.in'+item.image.substring(6)">
<i class="fas fa-file-pdf fa-3x pl-4"></i>
</a>
</td>
<td>
<input type="file" (change)="onFileChanged($event,'vahan')">
</td>
<!-- <td>
<ng-template #pdfSection6>
<td>
<img *ngIf="item.image ; else notAvaillableImg" style="width: 100px;"
[src]="'https://www.oneqlik.in'+item.image.substring(6)" (click)="openModal(template,item)">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>{{item.phone}}</td>
<td>{{item.doctype}}</td>
</tr>
</tbody>
</table>
</div>
</ng-container>
<div class="collapse" id="collapseExample">
<div class="card card-body" *ngIf="!show">
<table>
<tr>
<td>
Vahan Certificate
</td>
<td>
<input type="file" (change)="onFileChanged($event,'vahan')">
</td>
<!-- <td>
<input id="docdate" bsDatepicker [bsConfig]="bsConfig" name="docdate" style="background: grey;height: 30px"
placeholder="mm/dd/yyyy" [(ngModel)]="vaahan_certifcate_date" type="text" style="width: 40%">
</td> -->
<td>
<button class="btn btn-primary btn-sm" (click)="onUpload('vahan')"><i class="fas fa-upload"></i></button>
</td>
</tr>
<td>
<button class="btn btn-primary btn-sm" (click)="onUpload('vahan')"><i class="fas fa-upload"></i></button>
</td>
</tr>
<tr>
<td>
State RTO Certificate
@ -75,167 +76,179 @@
<button class="btn btn-primary btn-sm" (click)="onUpload('state')"><i class="fas fa-upload"></i></button>
</td>
</tr>
</table>
<div class="text-center">
<button class="btn btn-primary" (click)="submit()">Submit</button>
</div>
</table>
<div class="text-center">
<button class="btn btn-primary" (click)="submit()">Submit</button>
</div>
</div>
<div class="card card-body" *ngIf="show">
<table class="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Image</th>
<th>Date</th>
</tr>
</thead>
<div class="card card-body" *ngIf="show && !data.isTag">
<table class="table table-striped">
<thead>
<tr>
<td>State RTO Certificate</td>
<td *ngIf="hasPdfFile(statePic); else pdfSection7">
<a target="_blank" [href]="'https://www.oneqlik.in'+statePic.substring(6)">
<i class="fas fa-file-pdf fa-2x pl-4"></i>
</a>
</td>
<ng-template #pdfSection7>
<td>
<img *ngIf="statePic ; else notAvaillableImg" style="width: 100px;" [src]="'https://www.oneqlik.in'+statePic.substring(6)"
(click)="openModal1(template,statePic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>
{{state_certifcate_date |date:"medium"}}
</td>
<th>Name</th>
<th>Image</th>
<th>Date</th>
</tr>
<tr>
<td>Vahan Certificate</td>
</thead>
<tr>
<td>State RTO Certificate</td>
<td *ngIf="hasPdfFile(vahanPic); else pdfSection8">
<a target="_blank" [href]="'https://www.oneqlik.in'+vahanPic.substring(6)">
<i class="fas fa-file-pdf fa-2x pl-4"></i>
</a>
</td>
<ng-template #pdfSection8>
<td>
<img *ngIf="vahanPic ; else notAvaillableImg" style="width: 100px;" [src]="'https://www.oneqlik.in'+vahanPic.substring(6)"
(click)="openModal1(template,vahanPic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td *ngIf="hasPdfFile(statePic); else pdfSection7">
<a target="_blank" [href]="'https://www.oneqlik.in'+statePic.substring(6)">
<i class="fas fa-file-pdf fa-2x pl-4"></i>
</a>
</td>
<ng-template #pdfSection7>
<td>
{{vaahan_certifcate_date |date:"medium"}}
<img *ngIf="statePic ; else notAvaillableImg" style="width: 100px;"
[src]="'https://www.oneqlik.in'+statePic.substring(6)"
(click)="openModal1(template,statePic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</tr>
</ng-template>
<td>
{{state_certifcate_date |date:"medium"}}
</td>
</tr>
<tr>
<td>Vahan Certificate</td>
<td *ngIf="hasPdfFile(vahanPic); else pdfSection8">
<a target="_blank" [href]="'https://www.oneqlik.in'+vahanPic.substring(6)">
<i class="fas fa-file-pdf fa-2x pl-4"></i>
</a>
</td>
<ng-template #pdfSection8>
<td>
<img *ngIf="vahanPic ; else notAvaillableImg" style="width: 100px;"
[src]="'https://www.oneqlik.in'+vahanPic.substring(6)"
(click)="openModal1(template,vahanPic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>
{{vaahan_certifcate_date |date:"medium"}}
</td>
</tr>
</table>
</div>
</div>
<div *ngIf="hide && show" class="card-body">
<table class="table table-striped">
<thead>
<ng-container *ngIf="!data.isTag">
<div *ngIf="hide && show" class="card-body">
<table class="table table-striped">
<thead>
<tr>
<th>Name</th>
<th>Image</th>
<th>Date</th>
<th>Download</th>
</tr>
</thead>
<tr>
<th>Name</th>
<th>Image</th>
<th>Date</th>
<th>Download</th>
<td>State RTO Certificate </td>
<td *ngIf="hasPdfFile(statePic); else pdfSection1">
<a target="_blank" [href]="'https://www.oneqlik.in'+statePic.substring(6)">
<i class="fas fa-file-pdf fa-2x"></i>
</a>
</td>
<ng-template #pdfSection1>
<td>
<img *ngIf="statePic ; else notAvaillableImg" style="width: 40px;height: 35px;"
[src]="'https://www.oneqlik.in'+statePic.substring(6)"
(click)="openModal1(template,statePic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>
{{state_certifcate_date |date:"medium"}}
</td>
<td *ngIf="hasPdfFile(statePic); else pdfSection2">
<a target="_blank" [href]="'https://www.oneqlik.in'+statePic.substring(6)">
<i class="fas fa-download"></i>
</a>
</td>
<ng-template #pdfSection2>
<td>
<a (click)="downloadImage('https://www.oneqlik.in'+statePic.substring(6),'State_RTO_Certificate.jpg')"><i
class="fas fa-download"></i></a>
</td>
</ng-template>
<td>
</tr>
</thead>
<tr>
<td>State RTO Certificate </td>
<td *ngIf="hasPdfFile(statePic); else pdfSection1">
<a target="_blank" [href]="'https://www.oneqlik.in'+statePic.substring(6)">
<i class="fas fa-file-pdf fa-2x"></i>
</a>
</td>
<ng-template #pdfSection1>
<td>
<img *ngIf="statePic ; else notAvaillableImg" style="width: 40px;height: 35px;" [src]="'https://www.oneqlik.in'+statePic.substring(6)" (click)="openModal1(template,statePic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>
{{state_certifcate_date |date:"medium"}}
</td>
<td *ngIf="hasPdfFile(statePic); else pdfSection2">
<a target="_blank" [href]="'https://www.oneqlik.in'+statePic.substring(6)">
<i class="fas fa-download"></i>
</a>
</td>
<ng-template #pdfSection2>
<td>
<a (click)="downloadImage('https://www.oneqlik.in'+statePic.substring(6),'State_RTO_Certificate.jpg')" ><i class="fas fa-download"></i></a>
</td>
</ng-template>
<td>
</tr>
<tr>
<td>Vahan Certificate</td>
<td *ngIf="hasPdfFile(vahanPic); else pdfSection3">
<a target="_blank" [href]="'https://www.oneqlik.in'+vahanPic.substring(6)">
<i class="fas fa-file-pdf fa-2x "></i>
</a>
</td>
<ng-template #pdfSection3>
<td>
<img *ngIf="vahanPic ; else notAvaillableImg" style="width: 40px;height: 35px;" [src]="'https://www.oneqlik.in'+vahanPic.substring(6)" (click)="openModal1(template,vahanPic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>
{{vaahan_certifcate_date |date:"medium"}}
</td>
<td *ngIf="hasPdfFile(vahanPic); else pdfSection4">
<a target="_blank" [href]="'https://www.oneqlik.in'+vahanPic.substring(6)">
<i class="fas fa-download"></i>
</a>
</td>
<ng-template #pdfSection4>
<td>
<a (click)="downloadImage('https://www.oneqlik.in'+vahanPic.substring(6),'Vahan_Certificate.jpg')" ><i class="fas fa-download"></i></a>
</td>
</ng-template>
</tr>
</table>
</div>
<div *ngIf="hide && !show" class="text-center">
<h4>Documents Not Uploaded</h4>
</div>
<tr>
<td>Vahan Certificate</td>
<td *ngIf="hasPdfFile(vahanPic); else pdfSection3">
<a target="_blank" [href]="'https://www.oneqlik.in'+vahanPic.substring(6)">
<i class="fas fa-file-pdf fa-2x "></i>
</a>
</td>
<ng-template #pdfSection3>
<td>
<img *ngIf="vahanPic ; else notAvaillableImg" style="width: 40px;height: 35px;"
[src]="'https://www.oneqlik.in'+vahanPic.substring(6)"
(click)="openModal1(template,vahanPic.substring(6))">
<ng-template #notAvaillableImg>Not Available</ng-template>
</td>
</ng-template>
<td>
{{vaahan_certifcate_date |date:"medium"}}
</td>
<td *ngIf="hasPdfFile(vahanPic); else pdfSection4">
<a target="_blank" [href]="'https://www.oneqlik.in'+vahanPic.substring(6)">
<i class="fas fa-download"></i>
</a>
</td>
<ng-template #pdfSection4>
<td>
<a (click)="downloadImage('https://www.oneqlik.in'+vahanPic.substring(6),'Vahan_Certificate.jpg')"><i
class="fas fa-download"></i></a>
</td>
</ng-template>
</tr>
</table>
</div>
<div *ngIf="hide && !show" class="text-center">
<h4>Documents Not Uploaded</h4>
</div>
</ng-container>
<div class="card-footer float-right">
<button *ngIf="!hide" class="btn btn-primary" [disabled]='disabled' (click)="submit1('approved')">Approve</button>
<button *ngIf="!hide" class="btn btn-danger" [disabled]='disabled' (click)="submit1('reject')">Reject</button>
<ng-container *ngIf="!data.isTag">
<button *ngIf="!hide" class="btn btn-primary" [disabled]='disabled' (click)="submit1('approved')">Approve</button>
<button *ngIf="!hide" class="btn btn-danger" [disabled]='disabled' (click)="submit1('reject')">Reject</button>
</ng-container>
<button class="btn btn-warning" md-dialog-close>Cancel</button>
<button *ngIf="!hide" class="btn btn-primary" type="button" data-toggle="collapse" data-target="#collapseExample"
aria-expanded="false" aria-controls="collapseExample">
@ -259,31 +272,30 @@
</div>
<div class="col-md-6" style="padding: 64px;font-size: larger;">
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr >
<th *ngFor="let item of key;">
{{item}}
</th>
</tr>
</thead>
<tbody>
<tr >
<td *ngFor="let item of value;index as i">
{{value[i]}}
</td>
</tr>
</tbody>
<table class="table table-bordered">
<thead>
<tr>
<th *ngFor="let item of key;">
{{item}}
</th>
</tr>
</thead>
<tbody>
<tr>
<td *ngFor="let item of value;index as i">
{{value[i]}}
</td>
</tr>
</tbody>
</table>
</table>
</div>
<!-- <div class="col" *ngFor="let item of key; let i = index">
<b>{{ key[i]}}</b> : {{value[i]}}
</div> -->
</div>
</div>
</ng-template>
</ng-template>

View file

@ -161,6 +161,16 @@
<th>
{{ "RTO City" | translate }}
</th>
<th *ngIf="isTag">{{ "Ignition" | translate }}</th>
<th *ngIf="isTag">{{ "Power" | translate }}</th>
<th *ngIf="isTag">{{ "Last Update" | translate }}</th>
<th *ngIf="isTag">{{ "Address" | translate }}</th>
<th *ngIf="isTag">{{ "Speed" | translate }}</th>
<th *ngIf="isTag">{{ "GPS" | translate }}</th>
<th *ngIf="isTag">{{ "gsm" | translate }}</th>
<th *ngIf="isTag">{{ "Panic" | translate }}</th>
<th *ngIf="isTag">{{ "Followup Contact" | translate }}</th>
<th>
{{ "KYC Status" | translate }}
</th>
@ -170,7 +180,7 @@
<th>
{{ "View" | translate }}
</th>
<th>
<th *ngIf="!isTag">
{{ "Edit" | translate }}
</th>
</tr>
@ -302,6 +312,18 @@
cust_array.transportOfficeCity ? cust_array.transportOfficeCity : ""
}}
</td>
<td *ngIf="isTag">{{cust_array.last_ACC ? (cust_array.last_ACC == "1"? 'On':'Off') : ""}}</td>
<td *ngIf="isTag">{{cust_array.power ? (cust_array.power == "1"? 'On':'Off') : ""}}</td>
<td *ngIf="isTag">{{cust_array.last_ping_on ?( cust_array.last_ping_on | date: "medium" ): ""}}</td>
<td *ngIf="isTag">{{cust_array.lastAddress ? cust_array.lastAddress : ""}}</td>
<td *ngIf="isTag">{{cust_array.last_speed ? cust_array.last_speed : ""}}</td>
<td *ngIf="isTag">{{cust_array.gpsTracking ? (cust_array.gpsTracking == "1"? 'Fixed':'Unfixed') : ""}}</td>
<td *ngIf="isTag">{{cust_array.gsmSignal ? cust_array.gsmSignal : ""}}</td>
<td *ngIf="isTag">{{cust_array.sos ? cust_array.sos : ""}}</td>
<td *ngIf="isTag">{{cust_array.CID_No ? cust_array.CID_No : ""}}</td>
<td>
<button
class="btn btn-warning btn-sm"
@ -358,7 +380,7 @@
<td style="text-align: center; cursor: pointer">
<i class="fas fa-eye" (click)="viewDocuments(cust_array)"></i>
</td>
<td style="text-align: center; cursor: pointer">
<td *ngIf="!isTag" style="text-align: center; cursor: pointer">
<i id="edit" (click)="editDevice(cust_array)" title="Edit Vehicle" style="font-size:20px;color: green" class="fas fa-edit"></i>
</td>

View file

@ -67,6 +67,7 @@ modelChanged: Subject<string> = new Subject<string>();
before: any;
emmnerr: any;
Load: any
isTag:boolean = false;
$event: any;
Indianstate = [ "Andhra Pradesh",
"Arunachal Pradesh",
@ -291,6 +292,8 @@ searchFilter(text: string) {
this.dealer_Permission = JSON.parse(window.atob(window.localStorage.token.split('.')[1])).cust_add_permission;
this.organisation = JSON.parse(window.atob(window.localStorage.token.split(".")[1])).organisation;
// console.log(test);
let userRole = JSON.parse(atob(window.localStorage.token.split('.')[1])).customer_role;
this.isTag = userRole == 'tag' ? true :false;
this.custtype = JSON.parse(window.atob(window.localStorage.token.split('.')[1])).isDealer;
this.adbtn = localStorage.getItem("dlrchk");
localStorage.setItem("dlrchk", this.custtype);
@ -370,7 +373,9 @@ searchFilter(text: string) {
this.previewButton=false;
}
this.custumer = data;
this.custumer.forEach(cust=>{
this.getAddress(cust);
})
console.log("custDetail=>", this.custumer);
}, err => {
// console.log("errlog");
@ -479,6 +484,7 @@ tab:any;
//this.custumer[i].Dealer_full_name = (this.custumer[i].Dealer.first_name ? this.custumer[i].Dealer.first_name : '') + ' ' +(this.custumer[i].Dealer.last_name ? this.custumer[i].Dealer.last_name : '');
// this.custumer[i].email=this.custumer[i].user.email?this.custumer[i].user.email:''
this.custumer[i].user_id = this.custumer[i].user && this.custumer[i].user.user_id?this.custumer[i].user.user_id:''
this.custumer[i].pin = this.custumer[i].user && this.custumer[i].user.pin?this.custumer[i].user.pin:''
this.custumer[i].phone = this.custumer[i].user && this.custumer[i].user.phone?this.custumer[i].user.phone:'';
this.custumer[i].address = this.custumer[i].user && this.custumer[i].user.address ? this.custumer[i].user.address : ''
this.custumer[i].fullName = (this.custumer[i].user && this.custumer[i].user.first_name ? this.custumer[i].user.first_name : '') + " " + (lastName ? lastName :'');
@ -506,7 +512,7 @@ tab:any;
}
downloadFile(data) {
let arrHeader = ["Device_ID", "kycApprovalDateOnly", "vahanID", "device_Type_csv", "IccidNo", "sim_number", "sim_number2", 'sim_provider', 'License', 'Dealer_full_name', 'phone', 'DocName', 'adharNumber', "fullName", "ConcernPersonName", 'phone', 'manufacturingCompany', 'Model', 'ChassisNo', 'engineNo', 'fuelType', 'Device_Name', 'transportOfficeCity', 'transportOfficeState', 'pin', "transportOfficeState", 'rto', "stateServer", 'state_certifcate_date', 'DocName', 'adharNumber', 'address'];
let arrHeader = ["Device_ID", "kycApprovalDateOnly", "vahanID", "device_Type_csv", "IccidNo", "sim_number", "sim_number2", 'sim_provider', 'License', 'Dealer_full_name', 'CID_No', 'DocName', 'adharNumber', "fullName", "ConcernPersonName", 'phone', 'manufacturingCompany', 'Model', 'ChassisNo', 'engineNo', 'fuelType', 'Device_Name', 'transportOfficeCity', 'transportOfficeState', 'pin', "transportOfficeState", 'rto', "stateServer", 'state_certifcate_date', 'DocName', 'adharNumber', 'address'];
let arrHeaderOld = ["fullName", "email", "phone", "user_id","kycStatus","Device_Name","Device_ID","esim_validity","remark","RtoState","RtoCity"];
let csvData = this.ConvertToCSV(data, arrHeader);
let blob = new Blob(['\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });
@ -579,7 +585,7 @@ tab:any;
let dialogRef = this.dialog.open(DeviceDocComponent, {
width: '900px',
// height:'900px',
data: { dealer_payload: docs }
data: { dealer_payload: docs,isTag :(this.isTag ? this.isTag : false )}
});
@ -656,4 +662,21 @@ exportCertificate(data){
})
}
getAddress(data) {
data.lastAddress = '';
if(data.last_location) {
var latlng_1 = data.last_location
this.contactService.getAddressByApi(latlng_1).subscribe(res=>{
if(res.message == "Address not found in databse"){
data.lastAddress = 'NA'
}else{
data.lastAddress = res.address;
}
})
}
}
}

View file

@ -261,6 +261,7 @@ searchFilter(text: string) {
logo: any;
text: any;
superAdmin: Boolean = false;
ngOnInit() {
this.superAdmin = JSON.parse(window.atob(window.localStorage.token.split(".")[1])).isSuperAdmin;
@ -273,7 +274,7 @@ searchFilter(text: string) {
this.mb = JSON.parse(window.atob(window.localStorage.token.split('.')[1])).phn;
let test = JSON.parse(window.atob(window.localStorage.token.split('.')[1]));
this.dealer_Permission = JSON.parse(window.atob(window.localStorage.token.split('.')[1])).cust_add_permission;
// console.log(test);
this.custtype = JSON.parse(window.atob(window.localStorage.token.split('.')[1])).isDealer;
this.adbtn = localStorage.getItem("dlrchk");

View file

@ -25,7 +25,7 @@ export class CmdUIComponent implements OnInit {
ngOnInit() {
this.useridd = JSON.parse(window.atob(window.localStorage.token.split('.')[1]))._id;
var d_model = this.data.deviceObject.device_model;
this.contactService.getDeviceModelbyID(d_model).subscribe(res=>{
this.contactService.getDeviceModelbyID(d_model._id ?d_model._id : d_model ).subscribe(res=>{
console.log('deviceModel=>',res);
this.device_type = res[0].device_type;
})

View file

@ -29,7 +29,7 @@ export class CommandWindowComponent implements OnInit {
console.log(this.data);
this.DeviceName = this.data.deviceObject.Device_Name;
this.contactService.getDeviceModelbyID(d_model).subscribe(res=>{
this.contactService.getDeviceModelbyID(d_model._id ?d_model._id : d_model ).subscribe(res=>{
console.log('deviceModel=>',res);
this.device_type = res[0].device_type;

View file

@ -8,6 +8,7 @@
<div class="col-sm-4 col-md-4 col-lg-4" style="color: white;text-align: center; padding-top: 10px;">
</div>
<div class="col-sm-4 col-md-4 col-lg-4">
<!-- <a (click)="checkData()">asdkasbndka skd </a> -->
<p
style="margin: 0; padding-top: 5px;text-align: center; padding-bottom: 5px; font-size: 20px; font-weight: 500;color: white; ">
{{headingName | translate}}</p>
@ -108,7 +109,11 @@
</div>
</td>
<td (click)="updateLiveTracking(device,null)" style="cursor:pointer;">
{{device.Device_Name}}</td>
<div>
<span> {{device.Device_Name}}</span>
<p *ngIf="device.last_ping_on"><i class="fa fa-clock" [ngStyle]="{color : 'green'}"></i> {{device.last_ping_on ? (device.last_ping_on | date : 'medium') : ''}}</p>
</div>
</td>
<td (click)="updateLiveTracking(device,null)"
style="cursor:pointer;text-align: left;"> {{device.vehicleGroup?device.vehicleGroup.name:'N/A'}}</td>
<td (click)="updateLiveTracking(device,null)" style="cursor:pointer;text-align: center;">
@ -236,7 +241,7 @@
<div class="col-sm-12 col-md-12 col-lg-12" style="padding-left: 20px; padding-right: 20px;">
<div class="row" style="margin: 0;">
<div class="col-sm-6 col-md-6 col-lg-6" style="padding-left: 0;">
<p style="margin-bottom: 0; padding-top: 10px;font-size: 12px">{{'Vehicle' | translate}}</p>
<p (click)="checkData();" style="margin-bottom: 0; padding-top: 10px;font-size: 12px">{{'Vehicle' | translate}}</p>
</div>
<div class="col-sm-6 col-md-6 col-lg-6" style="padding-left: 25px; padding-right: 5px;">
<!-- linethickness option -->
@ -244,10 +249,10 @@
<div *ngIf="devReady === false" >
<img src="../../assets/image/loaderGif.gif" style="width: 156px;height:40px;">
</div>
<md-input-container *ngIf="devReady === true" style="width: 100%;height:40px;font-size: 12px;" [disabled]='disableSearch'>
<input mdInput placeholder="Search" [mdAutocomplete]="tdAuto" name="state" #state="ngModel"
<md-input-container *ngIf="devReady === true" style="width: 100%;height:40px;font-size: 12px;" >
<input mdInput placeholder="Search " [mdAutocomplete]="tdAuto" name="state" #state="ngModel"
[(ngModel)]="deviceName" (ngModelChange)="filterDevicesNew(deviceName)"
[disabled]='disableSearch'>
>
<md-autocomplete #tdAuto="mdAutocomplete">
<md-option *ngFor="let device of foods" [value]="device.viewValue" (click)="change(device)">
<span>{{device.viewValue}}</span>
@ -463,7 +468,7 @@
<!-- <i class="fal fa-octagon"></i> -->
</div>
</div>
<div class="col-sm-1 col-md-1 col-lg-1" (click)="removetracks('single',i)">
<div class="col-sm-1 col-md-1 col-lg-1" (click)="removetracks('single',i,historyArr.aIndex)">
<i class="fas fa-times animateClass_13" title="{{'Remove track' | translate}}"></i>
</div>
</div>
@ -505,8 +510,8 @@
<p style="text-align: center;font-size: 25px;font-weight: 600;color: #a2a2a2;">{{ImmErrMsg}}</p>
</div>
</div>
<div *ngIf="showHistory === false" id="map" style="width: 100%; height: 100%;"></div>
<div *ngIf="showHistory === true" id="map2" style="width: 100%; height: 100%;"></div>
<div id="map" style="width: 100%; height: 100%;"></div>
<!-- <div *ngIf="showHistory === true" id="map2" style="width: 100%; height: 100%;"></div> -->
<div id='buttons' style=" width: 100px; top: 110px; right: -7px; position: absolute; z-index: 1;">
<input type="range" min="0" max="22" value="5" class="slider" id="myRange"
style="transform: rotate(-90deg); height: 7px; box-shadow: 0px 0px 6px 5px lightg">

File diff suppressed because it is too large Load diff

View file

@ -250,7 +250,7 @@ passwordIcon:any = "visibility_off";
psd: this.password
}
this.showLoader = true;
// debugger;
//
this.dataService.log(newlog)
.subscribe(login => {
@ -292,6 +292,7 @@ passwordIcon:any = "visibility_off";
this.showLoader = true;
this.dataService.log(newlog)
.subscribe(login => {
debugger
this.showLoader = false;
this.logins.push(login);
// console.log(JSON.parse("TOKEN",login.token));
@ -303,7 +304,7 @@ passwordIcon:any = "visibility_off";
localStorage.setItem('currentuser',JSON.parse(atob(login.token.split('.')[1]))._id);
var userId = JSON.parse(atob(login.token.split('.')[1]))._id;
this.getLanguage(userId,isOperator,JSON.parse(atob(login.token.split('.')[1])).customer_role);
debugger
}, (err: any) => {
// console.log(err.status);
// console.log(err);
@ -343,7 +344,8 @@ this.dataService.log(newlog)
//this.router.navigateByUrl("const?_i="+login.token);
//
this.router.navigateByUrl("const?_i="+login.token);
} , (err: any) => {
// console.log(err.status);
@ -525,8 +527,10 @@ this.dataService.log(newlog)
window.localStorage['currentpwd'] = this.password
localStorage.setItem('currentuser',JSON.parse(atob(login.token.split('.')[1]))._id);
// if()
this.router.navigateByUrl("const?_status="+"OK");
// this.router.navigateByUrl("const?_i="+login.token);
this.router.navigateByUrl("const?_status="+"OK");
//
this.router.navigateByUrl("const?_i="+login.token);
} , (err: any) => { console.log(err.status);
// console.log(err);
@ -688,10 +692,12 @@ countdown( elementName, minutes, seconds )
if( window.localStorage['Custumer'] == 'ON'){
window.localStorage['token'] = window.localStorage['Dealer_token'];
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("const?_status="+"OK");
this.router.navigateByUrl("const?_status="+"OK");
}
else{
this.router.navigateByUrl("const?_status="+"OK");
this.router.navigateByUrl("const?_status="+"OK&&redirect=true");
}
}
@ -921,13 +927,14 @@ getLanguage(userid,isOperator,customer_role){
launch_toast();
}else{
if(customer_role=="kycApproval"){
if(customer_role=="kycApproval" || customer_role=="tag"){
this.router.navigateByUrl("KycApproval");
}else if(customer_role=="cc"){
}else if(customer_role=="cc" ){
this.router.navigateByUrl("reports/notification_master");
}else{
this.router.navigateByUrl("const?_status="+"OK");
this.router.navigateByUrl("const?_status="+"OK&&redirect=true");
}
}

View file

@ -71,7 +71,7 @@ export class NotificationComponent implements OnInit, OnDestroy {
return function(msg){
// console.log(msg);
// debugger; theft alert
// theft alert
if((outerThis.superAdmin=== true)&&(msg.item._type === "Ignition Alert" || msg.item._type==="Theft Alert" || msg.item._type=="Max Stoppage Alert" || msg.item._type=="Max Idling Alert")){
// console.log("msgmsgmsgmsgmsgmsgmsgmsgmsgmsg",msg);
}else{

View file

@ -39,7 +39,8 @@ export class PoiListComponent implements OnInit {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}

View file

@ -337,7 +337,7 @@ export class PoiMasterEditComponent implements OnInit {
"address" : outerthis.addressString_edit,
"radius" : outerthis.poiRadius
}
debugger;
if(outerthis.poitype != undefined){
editPOIobj['poi_type'] = outerthis.poitype;
}

View file

@ -147,7 +147,7 @@ export class POIdetailsComponent implements OnInit {
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
@ -190,7 +190,8 @@ export class POIdetailsComponent implements OnInit {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}

View file

@ -168,7 +168,8 @@ export class PointOfIntrestComponent implements OnInit {
}
soon() {
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
}
new() {
@ -314,7 +315,7 @@ export class PointOfIntrestComponent implements OnInit {
}
routePath: any = [];
// routeDetails(uId){
// debugger;
//
// console.log("routeDetails",uId);
// this.contactService.getRouteDetail(uId)
// .subscribe(res=>{

View file

@ -37,7 +37,7 @@ export class PointShareComponent implements OnInit {
this.superAdmin = JSON.parse(window.atob(window.localStorage.token.split(".")[1])).isSuperAdmin;
this.custtype = JSON.parse(window.atob(window.localStorage.token.split('.')[1])).isDealer;
console.log({'this.superAdmin':this.superAdmin,'this.custtype': this.custtype});
// debugger;
//
// if(this.superAdmin === true){
// this.pointId = this.useridd ;
// }

View file

@ -118,7 +118,9 @@
style="cursor: pointer;border-bottom: 1px solid;padding-top: 7px;padding-bottom: 7px;font-size: 14px;"
*ngIf="superAdmin || custtype" (click)="VType('admin')">{{'Vehicle Type' | translate}}</a>
<!-- <a class="dropdown-item"
style="cursor: pointer;border-bottom: 1px solid;padding-top: 7px;padding-bottom: 7px;font-size: 14px;"
(click)="virtualDevice('admin')">{{'Virtual Device' | translate}}</a> -->
<!-- <a class="dropdown-item" style="cursor: pointer;border-bottom: 1px solid;padding-top: 7px;padding-bottom: 7px;font-size: 14px;" *ngIf="superAdmin" (click)="censorDetail('admin')">{{'Sensor Details' | translate}}</a> -->

View file

@ -266,7 +266,8 @@ export class AllMenusComponent implements OnInit {
//2 menu dashboard
soon(id) {
this.menuFlag = this.contactService.menuReturnSet(id);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
}
// 3 menu
group(id) {
@ -362,7 +363,9 @@ export class AllMenusComponent implements OnInit {
this.router.navigateByUrl("vehicle/reminder_service");
}
virtualDevice(id) {
this.router.navigateByUrl("virtualDevice");
}
TrackingHistory(id){
@ -642,7 +645,7 @@ fuel_report(id){
localStorage.removeItem('profilePic');
}
this.router.navigateByUrl("add");
// this.router.navigateByUrl("const?_status="+"OK");
}
}
@ -675,7 +678,7 @@ fuel_report(id){
}
this.router.navigateByUrl("dealerInfo");
// this.router.navigateByUrl("const?_status="+"OK");
}
@ -723,6 +726,7 @@ fuel_report(id){
}
checkPassword(){
this.contactService.getImagePath(this.useridd).subscribe((res:any)=>{
if(localStorage.getItem('currentpwd') && localStorage.getItem('currentuser')){

View file

@ -218,7 +218,8 @@ export class HeaderComponent implements OnInit {
//2 menu dashboard
soon(id) {
this.menuFlag = this.contactService.menuReturnSet(id);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
}
// 3 menu
group(id) {
@ -594,7 +595,7 @@ fuel_report(id){
localStorage.removeItem('profilePic');
}
this.router.navigateByUrl("add");
// this.router.navigateByUrl("const?_status="+"OK");
}
}
@ -627,7 +628,7 @@ fuel_report(id){
}
this.router.navigateByUrl("dealerInfo");
// this.router.navigateByUrl("const?_status="+"OK");
}

View file

@ -56,7 +56,10 @@ export class MainComponent implements OnInit {
res => {
console.log(res);
// this.groups = res["group_details"];
if(res["group_details"]) {
localStorage.setItem("groupData",JSON.stringify(res["group_details"]))
}
// console.log(this.grpName);
})
}

View file

@ -69,7 +69,7 @@ export class NotificationComponent implements OnInit, OnDestroy {
var outerThis = this;
return function(msg){
// console.log("msg",msg);
// debugger; theft alert
// theft alert
if((outerThis.superAdmin=== true)&&outerThis.isCC&&(msg.item._type === "Ignition Alert" || msg.item._type==="Theft Alert" || msg.item._type=="Max Stoppage Alert" || msg.item._type=="Max Idling Alert")){
// console.log("msgmsgmsgmsgmsgmsgmsgmsgmsgmsg",msg);
}else{
@ -168,7 +168,7 @@ mb:any
if(this.mb.charAt(0)=="n"){
this.mb = ' '
}
if(cc=="cc"){
if(cc=="cc" ){
this.isCC=false;
}

View file

@ -180,7 +180,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){
@ -226,7 +227,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -2,7 +2,7 @@
<div class="topDiv">
<div class="row" style="text-align: center; background: #426E86; padding-top: 10px; padding-bottom: 10px; color: white;box-shadow:3px 1px 5px 0px rgb(178, 176, 174)">
<div class="col-sm-12 col-md-12 col-lg-12">
<h4>{{'Daywise Report' | translate}}</h4>
<h4>{{'Daywise Report 1' | translate}}</h4>
</div>
</div>
@ -32,6 +32,8 @@
<th style="text-align:left;width:100px">{{'Stoppage Time (hh:mm)' | translate}}</th>
<th style="text-align:left;">{{'Idle Time (hh:mm)' | translate}}</th>
<th style="text-align:left;">{{'Fuel Consumed' | translate}}</th>
<th style="text-align: left;" title="Avg Speed (kmph)">{{'Avg Speed' | translate}}</th>
<th style="text-align: left;" title="Max Speed">{{'Max Speed' | translate}}</th>
<th style="text-align:left;width:300px">{{"Start Location" | translate}}</th>
<th style="text-align:left;width:300px">{{'End Location' | translate}}</th>
<!-- <th style="text-align:left;width:300px">{{'Recalculate' | translate}}</th> -->

View file

@ -418,28 +418,28 @@ export class DayWiseReportComponent implements OnInit {
return hhmm;
}
},
{
"data": "Mileage",
"defaultContent": "_id",
"data": "fuel",
"defaultContent": "",
render: function (data, type, row) {
// return data ? parseFloat(data).toFixed(2) : 0.0;
if(data){
if(row['Distance(Kms)']){
var mileage=parseFloat(row['Distance(Kms)']) /parseFloat(data)
return mileage.toFixed(2)
}else{
return ''
}
}else{
return ''
}
// return hhmm;
return data?data.toFixed(2):'';
}
},
{
"data": "avgSpeed",
"defaultContent": "",
render: function (data, type, row) {
return data?data:'';
}
},
{
"data": "maxSpeed",
"defaultContent": "",
render: function (data, type, row) {
return data?data:'';
}
},
{
"data": "startAddress",
"defaultContent": "_id",
@ -805,6 +805,8 @@ var pageWidth = doc.internal.pageSize.width || doc.internal.pageSize.getWidth();
'Stoppage Time':'Stoppage Time (HH:MM)',
'Idle Time':'Idle Time (HH:MM)',
fuelConsumed: 'Fuel Consumed',
avgSpeed:'Avg Speed',
maxSpeed :'max Speed',
startAddress:'Start Location',
endAddress:'End Location',
}
@ -825,7 +827,9 @@ var pageWidth = doc.internal.pageSize.width || doc.internal.pageSize.getWidth();
'Moving Time':this.conversion(pdfBody[j]['Moving Time']),
'Stoppage Time':this.conversion(pdfBody[j]['Stoppage Time']),
"Idle Time":this.conversion(pdfBody[j]['Idle Time']),
fuelConsumed: this.fuleConvert((pdfBody[j]['Distance(Kms)']).toFixed(2), pdfBody[j]['Mileage']),
fuelConsumed: pdfBody[j].fuel ? pdfBody[j].fuel.toFixed(2) : '',
avgSpeed: pdfBody[j].avgSpeed ? pdfBody[j].avgSpeed : '',
maxSpeed: pdfBody[j].maxSpeed ? pdfBody[j].maxSpeed : '',
startAddress:pdfBody[j].startAddress,
endAddress:pdfBody[j].endAddress,
});

View file

@ -232,7 +232,7 @@ private finalise = new Subject<void>();
});
// $('#deviceTable tbody').on('click', 'button', function() {
// debugger;
//
// var data = that.tabelObj.row($(this).parents('tr')).data();
// console.log("button clicked");
// });

View file

@ -66,7 +66,8 @@ export class DeviceSpeedReportComponent implements OnInit {
// }
// soon() {
// this.router.navigateByUrl("const?_i=" + window.localStorage.token);
//
// this.router.navigateByUrl("const?_i=" + window.localStorage.token);
// }
@ -230,7 +231,7 @@ export class DeviceSpeedReportComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
_lineChartData: any;

View file

@ -156,7 +156,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -223,7 +224,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -138,7 +138,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){
@ -189,7 +190,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -150,7 +150,7 @@ export class GeofancingReportComponent implements OnInit {
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }
@ -178,7 +178,8 @@ export class GeofancingReportComponent implements OnInit {
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }
@ -409,7 +410,8 @@ export class GeofancingReportComponent implements OnInit {
that.contactService.postWithURL(suburl, {
"from_date": temp.from_date,
"to_date": temp.to_date,
"geoidlist": that.deviceArr.length ? that.deviceArr : []
"geoidlist": that.deviceArr.length ? that.deviceArr : [],
'device':that.deviceStrings
}).subscribe((resp: any) => {
// console.log(ignReport.length);
that.Load = false;
@ -541,7 +543,7 @@ export class GeofancingReportComponent implements OnInit {
user: user
}
var suburl = "";
suburl += "/notifs/GeoFencingReport?from_date=" + temp.from_date + '&to_date=' + temp.to_date + '&_u=' + temp.user;
suburl += "/notifs/GeoFencingReport?from_date=" + temp.from_date + '&to_date=' + temp.to_date + '&_u=' + temp.user +'&imeis='+that.imeisStrings;
that.finalArr = []
// console.log(this.deviceArr);
if (that.deviceArr.length != 0) {
@ -743,7 +745,8 @@ export class GeofancingReportComponent implements OnInit {
}
}
deviceStrings = '';
imeisStrings = '';
getReport(event) {
if (event == 'getExcel') {
if(this.isNormalView) {
@ -760,12 +763,19 @@ export class GeofancingReportComponent implements OnInit {
var that = this;
var fd = new Date(tpdata.fromDate);
var td = new Date(tpdata.toDate);
if (event.deviceArr.length == 0) {
deviceId = [];
} else {
deviceId = event.deviceArr;
}
if(event.device) {
this.deviceStrings = event.device
}
if(event.iemi) {
this.imeisStrings = event.iemi;
}
this.deviceArr = deviceId;
this.Fromdate = fd.toISOString();

View file

@ -127,7 +127,8 @@ this.contactService.getIdealData(neww.did,r).subscribe(
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
@ -229,7 +230,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
report_speed(){

View file

@ -49,7 +49,8 @@ devi(){
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){
@ -202,7 +203,7 @@ creategraph(a){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
getdata(final){

View file

@ -236,7 +236,8 @@ ngOnDestroy(){
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }
// new(){
@ -287,7 +288,7 @@ ngOnDestroy(){
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }

View file

@ -122,9 +122,9 @@ export class NewTravelPathReportComponent implements OnInit {
let result = [];
for (let i = 0; i < that.reportArr.length; i++) {
// char.speed !== last.speed
let char = that.reportArr[i];
if (char.speed !== last.speed) {
if (true) {
var cum_distance = parseFloat(that.reportArr[i].odo) - parseFloat(that.reportArr[0].odo);
char.cum_distance = Math.abs(parseFloat(cum_distance.toFixed(2)))
@ -238,8 +238,8 @@ export class NewTravelPathReportComponent implements OnInit {
{
"data": "distanceFromPrevious",
"render": function (data, type, row) {
// var res = that.get_distance(row.index)
return data;
var res = that.get_distance(row.index)
return data ?data : '0' ;
}
// return end_time;
},
@ -248,7 +248,7 @@ export class NewTravelPathReportComponent implements OnInit {
"data": "speed",
"render": function (data, type, row) {
return data;
return data? data : '0';
}
// return row.event_time;
},
@ -256,7 +256,7 @@ export class NewTravelPathReportComponent implements OnInit {
"data": "avgSpeed",
"render": function (data, type, row) {
// var res = that.getavgSpeed(row.index)
return data;
return data ? data : '0';;
}
},
{
@ -275,14 +275,14 @@ export class NewTravelPathReportComponent implements OnInit {
},
{
"data": "cum_distance",
"data": "cummulative",
"render": function (data, type, row) {
// var res=that.getcummulative_distance(row,row.index)
return data;
return data ? data.toFixed(2) : '0';
}
},
{
"data": "address",
"data": "latDecimal",
"render": function (data, type, row) {
var str = (row.latDecimal ? row.latDecimal : 0) + ' , ' + (row.longDecimal ? row.longDecimal : 0)
@ -750,12 +750,12 @@ export class NewTravelPathReportComponent implements OnInit {
imei: pdfBody[j].imei,
date: moment(pdfBody[j].date).format('lll'),
odo: pdfBody[j].odo ? (pdfBody[j].odo).toFixed(2) : 0,
distanceFromPrevious: pdfBody[j].distanceFromPrevious,
distanceFromPrevious: this.get_distanceNew(j,pdfBody),
speed: pdfBody[j].speed,
avgSpeed: pdfBody[j].avgSpeed,
externalBattery: pdfBody[j].external_Battery ? pdfBody[j].external_Battery : '0',
temperature: pdfBody[j].temp ? (parseFloat(pdfBody[j].temp) / 10).toFixed(2) : '0',
cumDistance: pdfBody[j].cum_distance,
cumDistance: pdfBody[j].cummulative ?pdfBody[j].cummulative.toFixed(2) :0 ,
location: (pdfBody[j].latDecimal ? pdfBody[j].latDecimal : 0) + ' , ' + (pdfBody[j].longDecimal ? pdfBody[j].longDecimal : 0),
address: pdfBody[j].address,
@ -788,7 +788,17 @@ export class NewTravelPathReportComponent implements OnInit {
if (index_1 == 0) {
return 0.00;
} else {
var cum_distance = parseFloat(this.reportArr1[index_1].odo) - parseFloat(this.reportArr1[index_1 - 1].odo);
var cum_distance = parseFloat(this.reportArr1[index_1].cummulative) - parseFloat(this.reportArr1[index_1 - 1].cummulative);
// console.log(cum_distance);
return Math.abs(parseFloat(cum_distance.toFixed(2)));
}
}
get_distanceNew(index_1,array) {
if (index_1 == 0) {
return 0.00;
} else {
var cum_distance = parseFloat(array[index_1].cummulative) - parseFloat(array[index_1 - 1].cummulative);
// console.log(cum_distance);
return Math.abs(parseFloat(cum_distance.toFixed(2)));
}

View file

@ -133,7 +133,7 @@ private finalise = new Subject<void>();
accListener(){
var outerThis = this;
return function(msg){
// debugger; theft alert
// theft alert
if((outerThis.superAdmin=== true || !outerThis.isCC)&&(msg.item._type === "Ignition Alert" || msg.item._type==="Theft Alert" || msg.item._type=="Max Stoppage Alert" || msg.item._type=="Max Idling Alert")){
// console.log("msgmsgmsgmsgmsgmsgmsgmsgmsgmsg",msg);
}else{
@ -289,7 +289,7 @@ document.getElementById("mdMenu").style.display="none"
var cc= JSON.parse(window.atob(window.localStorage.token.split('.')[1])).customer_role;
if(cc=="cc"){
if(cc=="cc" ){
this.isCC=false;
}
this.logo=window.localStorage['logo'];

View file

@ -219,7 +219,8 @@ option:any;
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }
// new(){
@ -265,7 +266,7 @@ option:any;
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }

View file

@ -187,7 +187,8 @@ ngOnDestroy(){
// }
// soon(){
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
//
// this.router.navigateByUrl("const?_i="+window.localStorage.token);
// }
// new(){
@ -233,7 +234,7 @@ ngOnDestroy(){
// if(window.localStorage['DataLoaded'] = 'True'){
// window.localStorage['Custumer'] = 'OFF'
// this.router.navigateByUrl("add")
// // this.router.navigateByUrl("const?_status="+"OK");
//
// }
// }

View file

@ -36,12 +36,14 @@
<th style="text-align: left;" title="Running Time (HH:MM)">{{'Running (HH:MM)' | translate}}</th>
<th style="text-align: left;" title="Stop Time (HH:MM)">{{'Stop (HH:MM)' | translate}}</th>
<!-- <th style="text-align: left;" title="Idle Time (HH:MM)">{{'Idle (HH:MM)' | translate}}</th> -->
<th style="text-align: left;" title="Avg Speed (kmph)">{{'Avg Speed' | translate}}</th>
<th style="text-align: left;" title="Max Speed">{{'Max Speed' | translate}}</th>
<th style="text-align: left;" title="Consumption">{{'Consumption' | translate}}</th>
<th style="text-align: left;">{{'Details' | translate}}</th>
<!-- <th style="text-align: left;" title="Out of reach Time (HH:MM)">{{'OFR (HH:MM)' | translate}}</th> -->
<!-- <th style="text-align: left;" title="Engine on time (HH:MM)">{{'Engine on time' | translate}}</th> -->
<!-- <th style="text-align: left;" title="No gps Time (HH:MM)">{{'No gps (HH:MM)' | translate}}</th> -->
<!-- <th style="text-align: left;" title="Overspeeding (HH:MM)">{{'Overspeeding' | translate}}</th>
<th style="text-align: left;" title="Max Speed (kmph)">{{'Max Speed (kmph)' | translate}}</th>
<th style="text-align: left;" title="Engine on time (HH:MM)">{{'Engine on time' | translate}}</th>
<th style="text-align: left;" title="Engine off time (kmph)">{{'Engine off time' | translate}}</th> -->

View file

@ -646,10 +646,30 @@ testTable() {
"data": "today_stopped",
"defaultContent": "",
render: function (data, type, row) {
console.log("today_stopped",data);
return data?that.millisecondConversion(data):0;
}
},
{
"data": "avgSpeed",
"defaultContent": "",
render: function (data, type, row) {
return data?data:'';
}
},
{
"data": "maxSpeed",
"defaultContent": "",
render: function (data, type, row) {
return data?data:'';
}
},
{
"data": "fuel",
"defaultContent": "",
render: function (data, type, row) {
return data?data.toFixed(2):'';
}
},
// {
@ -1157,6 +1177,9 @@ var pageWidth = doc.internal.pageSize.width || doc.internal.pageSize.getWidth();
total_odo:'Total Km',
today_running:'Running (HH:MM)',
today_stopped:'Stop (HH:MM)',
avgSpeed:'Avg Speed',
maxSpeed:'Max Speed',
fuel:'Consumption',
}
];
@ -1175,8 +1198,10 @@ var pageWidth = doc.internal.pageSize.width || doc.internal.pageSize.getWidth();
endAddress:pdfBody[j].endAddress?pdfBody[j].endAddress:'N/A',
total_odo:pdfBody[j].total_odo?(pdfBody[j].total_odo).toFixed(2):0,
today_running:this.millisecondConversion(pdfBody[j].today_running),
today_stopped:this.millisecondConversion(pdfBody[j].today_stopped)
});
today_stopped:this.millisecondConversion(pdfBody[j].today_stopped),
avgSpeed: pdfBody[j].avgSpeed ? pdfBody[j].avgSpeed : '',
maxSpeed: pdfBody[j].maxSpeed ? pdfBody[j].maxSpeed : '',
fuel: pdfBody[j].fuel ? pdfBody[j].fuel.toFixed(2) : ''});
}
return body;
}

View file

@ -138,6 +138,19 @@
</div>
</div>
</div>
<div *ngIf="componentIdentifier === 'geofence_report'" class="row" style="margin: 0;padding-bottom: 10px;">
<div class="col-sm-3 col-md-3 col-lg-3" style="padding-left: 0;">
<p style="margin-bottom: 0; padding-top: 2px;font-size: 12px">{{'Devices ' | translate}} :</p>
</div>
<div class="col-sm-6 col-md-6 col-lg-6" style="padding: 0;">
<div>
<select id="dbselectIMEI" multiple="multiple">
<option *ngFor="let udid of devicesss" [value]="udid.Device_ID">{{ udid.Device_Name }}</option>
</select>
</div>
</div>
</div>
<div
*ngIf="componentIdentifier === 'notification_master' || !isCC"
class="row"

View file

@ -345,7 +345,10 @@ export class ReportFilterComponent implements OnInit {
this.optionLabel = 'Vehicle';
// data => {
this.devicesss = JSON.parse(localStorage.getItem('vehicaleData'));
this.groups=JSON.parse(localStorage.getItem('groupData'))
let ax = localStorage.getItem('groupData');
if(ax) {
this.groups=JSON.parse(localStorage.getItem('groupData'));
}
console.log(this.devicesss);
this.finall = (this.devicesss);
@ -464,7 +467,13 @@ export class ReportFilterComponent implements OnInit {
that.showLoader = false;
}, 100);
if(this.componentIdentifier === 'geofence_report') {
$('#dbselectIMEI').multipleSelect({
width: 200,
placeholder: "Devices",
filter: true,
})
}
if(this.componentIdentifier === 'billing_detail'){
setTimeout(() => {
@ -831,8 +840,21 @@ export class ReportFilterComponent implements OnInit {
}
if(this.componentIdentifier=="geofence_report")
this.reportService.geofenceReport(filter)
if(this.componentIdentifier=="geofence_report") {
let dIEMI = $('#dbselectIMEI').multipleSelect('getSelects','value');
let deviceIds = [];
dIEMI.forEach(demi=>{
let fDevice = this.devicesss.find(d=>d.Device_ID == demi);
if(fDevice) {
deviceIds.push(fDevice._id);
}
})
filter['device'] = deviceIds.toString();
filter['iemi']=dIEMI.toString();
this.reportService.geofenceReport(filter)
}
if(this.componentIdentifier=="idle_report")
this.reportService.idleReport(filter)

View file

@ -149,7 +149,8 @@ export class RouteMapAddComponent implements OnInit {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){

View file

@ -102,7 +102,8 @@ export class RouteMappingComponent implements OnInit {
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
new(){

View file

@ -623,7 +623,7 @@ console.log(selectedVehicle,vehicle[0].substr(vehicle[0].indexOf(' ')+1), this.R
// this.wapointArray=[];
// // debugger;
// //
// console.log(this.waypoints);
// for(var z = 0 ; z<this.waypoints.length;z++){
// if(this.waypoints[z] != undefined){

View file

@ -253,7 +253,7 @@ getRoute(){
var outerThis=this;
this.source_address = document.getElementById('txtSource');
debugger;
console.log('this.fieldArr',this.fieldArr.length);
if(this.fieldArr.length == 1){
@ -475,7 +475,7 @@ saveRoute(){
this.wapointArray=[];
// debugger;
//
console.log(this.waypoints);
for(var z = 0 ; z<this.waypoints.length;z++){
if(this.waypoints[z] != undefined){

View file

@ -653,7 +653,7 @@ updateRoute(){
}
this.wapointArray=[];
// debugger;
//
console.log(this.waypoints);
for(var z = 0 ; z<this.waypoints.length;z++){
if(this.waypoints[z] != undefined){

View file

@ -2853,17 +2853,17 @@ export class ShowVehiclesComponent implements OnInit {
var fenway = { lat: m.position.lat(), lng: m.position.lng() };
// //console.log("latlnglitrals",m.position.lat(),m.position.lng());
//console.log(fenway);
var panorama = new google.maps.StreetViewPanorama(
document.getElementById("viewParanoma"),
{
position: fenway,
pov: {
heading: 34,
pitch: 10
}
}
);
map.setStreetView(panorama);
// var panorama = new google.maps.StreetViewPanorama(
// document.getElementById("viewParanoma"),
// {
// position: fenway,
// pov: {
// heading: 34,
// pitch: 10
// }
// }
// );
// map.setStreetView(panorama);
//console.log('111111111111111111111111111111111111111111111111111=>',this)
this['infowindow'].open(map, this);
});
@ -3552,7 +3552,7 @@ zoomSet(){
if (window.localStorage['DataLoaded'] = 'True') {
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
@ -4516,7 +4516,7 @@ zoomSet(){
}
// debugger;
//
console.log("initParking",stop_locations.length)
if (stop_locations.length > 0) {
// for(var l=0;l<stop_locations.length;l++){
@ -5341,7 +5341,7 @@ var seconds = num % 60;
// // this.checker = 'OK';
// window.localStorage['checker'] = 'Data'
// debugger;
//
// //console.log("this.fin=>",this.fin);
this.activatedRoute.queryParams.subscribe((params: Params) => {
this.getData = params['token'];

View file

@ -46,7 +46,7 @@ refresh()
this.total_final = this.final
console.log(this.final,"-------------------------------->")
if(this.final.length == 0 ||this.final == null || !this.final){
if(!this.final || this.final.length == 0 ||this.final == null || !this.final){
this.add_dev = false
console.log("Load1");
// this.Load=false;
@ -87,7 +87,7 @@ refresh()
console.log("7444444444444",this.final);
this.total_final = this.final
if(this.final.length == 0 ||this.final == null || !this.final){
if(!this.final ||this.final.length == 0 ||this.final == null || !this.final){
this.add_dev = false
console.log("Load3");
// this.Load=false;
@ -125,7 +125,7 @@ refresh()
var cord = JSON.parse(retrievedData);
this.final = cord
this.total_final = this.final
if(this.final.length == 0 ||this.final == null || !this.final){
if(!this.final ||this.final.length == 0 ||this.final == null || !this.final){
this.add_dev = false;
console.log("Load6");
// this.Load=false;
@ -148,9 +148,9 @@ refresh()
this.injectData.getData(this.emailid,this.useridd,this.groupId,this.skip,this.limit,this.search,this.supAdm,this.DealerID).subscribe(
(data)=> {
this.devicess = data
this.final = this.devicess.devices
this.final = this.devicess.devices ? this.devicess.devices : []
this.total_final = this.final;
if(this.final.length == 0 ||this.final == null || !this.final){
if(!this.final ||this.final.length == 0 ||this.final == null || !this.final){
this.add_dev = false
console.log("Load8");
// this.Load=false;
@ -263,7 +263,7 @@ refresh()
*/
}
else{
// debugger;
//
this.router.navigateByUrl("account?_did="+id+"."+name);
}
}
@ -405,7 +405,7 @@ $(window).resize(function() {
Ing_Status(){
this.ing_Arr = []
this.final = this.final && this.final.length? this.final : []
for(var y=0; y<this.final.length; y++){
// this.socket_Ing.emit('acc',this.final[y].Device_ID )
// this.socket_Ing.on(this.final[y].Device_ID+'acc', this.accListener(y,this.final[y]))
@ -482,7 +482,7 @@ getrequest(para){
// this.injectData.getGroupData(this.emailid,this.useridd).subscribe(resp=>{
// this.groupData = resp.map(function(d){
// d.vehicleDetails.map(function(d1){
// debugger;
//
// socket_Ing.emit('acc',d1.Device_ID )
// socket_Ing.on(d1.Device_ID+'acc',()=>{
// return function(ind,data){
@ -493,7 +493,7 @@ getrequest(para){
// socket_Ing.emit('stat',d1.Device_ID,d1.Device_Name,new Date().setHours(0,0,0,0),null)
// socket_Ing.on(d1.Device_ID+'stat',()=>{
// return function(ind,data){
// debugger;
//
// console.log("459",data);
// d1=data;
// }

View file

@ -63,7 +63,7 @@ export class AddsubadminComponent implements OnInit {
logo:any;
text:any;
userID:any;
role=[{name:'SubAdmin',value:'subadmin'},{name:"CC",value:'cc'}]
role=[{name:'SubAdmin',value:'subadmin'},{name:"CC",value:'cc'},{name:"tag",value:'tag'}]
role1=[{name:'SubAdmin',value:'subadmin'},{name:"KYC Approval",value:'kycApproval'},{name:"CC",value:'cc'}]
documentDetail:any;
imageURL:any;

View file

@ -174,7 +174,8 @@ export class SubAminComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
this.router.navigateByUrl("const?_status=" + "OK");
this.router.navigateByUrl("const?_status=" + "OK");
}
});
}

View file

@ -331,7 +331,7 @@ export class TechnicianComponent implements OnInit {
// localStorage.setItem('Dealer',"OFF");
// localStorage.setItem('superadmin',"OFF")
console.log('this.superAdmin',this.superAdmin);
debugger;
if(this.superAdmin === true){
localStorage.setItem('supAdminAcessToCust', 'true' );
}
@ -340,7 +340,8 @@ export class TechnicianComponent implements OnInit {
localStorage.setItem("dlrchk", dlrStatus)
this.router.navigateByUrl("const?_status=" + "OK");
this.router.navigateByUrl("const?_status=" + "OK");
// console.log('testing', this.useridd);
}
@ -395,7 +396,8 @@ export class TechnicianComponent implements OnInit {
this.router.navigateByUrl("device-report/ideal-report");
}
soon() {
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
this.router.navigateByUrl("const?_i=" + window.localStorage.token);
}
new() {
@ -438,7 +440,7 @@ export class TechnicianComponent implements OnInit {
if (window.localStorage['DataLoaded'] = 'True') {
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}

View file

@ -145,7 +145,8 @@ logout(){
this.router.navigateByUrl("login");
}
soon(){
this.router.navigateByUrl("const?_i="+window.localStorage.token);
this.router.navigateByUrl("const?_i="+window.localStorage.token);
}
addcus(){
@ -559,7 +560,7 @@ mydealer(){
if(window.localStorage['DataLoaded'] = 'True'){
window.localStorage['Custumer'] = 'OFF'
this.router.navigateByUrl("add")
// this.router.navigateByUrl("const?_status="+"OK");
}
}
getdev(){
@ -772,7 +773,7 @@ report_map(){
// // }
// // outerThis.deviceData[i].status = outerThis.status_toShow ;
// // debugger;
// //
// // if(outerThis.deviceData[i].last_location==undefined){
// // outerThis.lattitude = null;
// // outerThis.longitude = null;
@ -791,7 +792,7 @@ report_map(){
// // };
// // debugger;
// //
// // geocoder.geocode(request, function(data,status){
// // if(status == google.maps.GeocoderStatus.OK){
// // if(data[0]!=null){

View file

@ -0,0 +1,149 @@
<div class="limiter" style="height: 100vh;">
<div class="row rowStyle">
<div class="col-12">
<div class="row" style="background: grey;color: white;padding: 5px;">
<div class="col-12">
<label>{{'Virtual Device' | translate}}</label>
<div id="toast">
</div>
</div>
</div>
<div class="row" style="background: #efecec;;height: 87vh;padding: 1vh;" >
<div class="col-lg-6 col-md-12 col-sm-12" style="background: white;padding: 5px;">
<!-- <div class="row" style="margin-top: 10px;margin-bottom: 10px;">
<div class="col-4" >
<p> CUSTOMER :</p>
</div>
<div class="form-group col-8">
</div>
</div> -->
<div class="row" style="margin-top: 10px;margin-bottom: 10px;">
<div class="col-lg-4 col-md-12 col-sm-12" >
<p> {{'IMEI'| translate}}<span style="color:red">*</span> :</p>
</div>
<div class="col-lg-8 col-md-12 col-sm-12">
<input type="text" class="form-control" id="imei" [(ngModel)]="virtualDevice.imei" aria-describedby="point" placeholder="{{'IMEI' | translate}}" >
</div>
</div>
<div class="row" style="margin-top: 10px;margin-bottom: 10px;">
<div class="col-lg-4 col-md-12 col-sm-12" >
<p> {{'Host'| translate}}<span style="color:red">*</span> :</p>
</div>
<div class="col-lg-8 col-md-12 col-sm-12">
<input type="text" class="form-control" id="host" [(ngModel)]="virtualDevice.host" aria-describedby="point" placeholder="{{'Host' | translate}}" >
</div>
</div>
<div class="row" style="margin-top: 10px;margin-bottom: 10px;">
<div class="col-lg-4 col-md-12 col-sm-12" >
<p> {{'Port'| translate}}<span style="color:red">*</span> :</p>
</div>
<div class="col-lg-8 col-md-12 col-sm-12">
<input type="text" class="form-control" id="port" [(ngModel)]="virtualDevice.port" aria-describedby="point" placeholder="{{'Port' | translate}}" >
</div>
</div>
<div class="row" style="margin-top: 10px;margin-bottom: 10px;">
<div class="col-lg-4 col-md-12 col-sm-12" >
<p> {{'Model'| translate}}<span style="color:red">*</span> :</p>
</div>
<div class="col-lg-8 col-md-12 col-sm-12">
<div class="form-group">
<div class="input-group input-file" name="Fichier1">
<!-- <span class="input-group-btn">
<button class="btn btn-default btn-choose" type="button">Choose</button>
</span> -->
<select Placeholder="{{'Model' | translate}}" class="form-control" [(ngModel)]="virtualDevice.model">
<option value="">Select</option>
<option value="NVT-1920">NVT-1920</option>
<option value="NVT-1820-U">NVT-1820-U</option>
</select>
<!-- <span class="input-group-btn">
<button class="btn btn-warning btn-reset" type="button">Reset</button>
</span> -->
</div>
</div>
</div>
</div>
<div class="row" style="margin-top: 10px;margin-bottom: 10px;">
<div class="col-lg-4 col-md-12 col-sm-12" >
<p> {{'Upload Lat/long'| translate}}<span style="color:red">*</span> :</p>
</div>
<div class="col-lg-8 col-md-12 col-sm-12">
<div class="form-group">
<div class="input-group input-file" name="Fichier1">
<!-- <span class="input-group-btn">
<button class="btn btn-default btn-choose" type="button">Choose</button>
</span> -->
<input
type="file"
#fileInput
id="excelFile"
class="form-control"
(change)="onChange($event)"
placeholder="Choose a file..."
/>
<!-- <span class="input-group-btn">
<button class="btn btn-warning btn-reset" type="button">Reset</button>
</span> -->
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-4"></div>
<div *ngIf="errorMsg" class="col-8">
<p style="text-align: left; color: red">{{ errorMsg }}</p>
<!-- <button type="submit" class="btn btn-primary" style="margin-left: 154px; margin-bottom: 10px; width: 120px; margin-top: 10px; background: #d22020; border: none;" (click)="downloadFailedData()">Download</button> -->
</div>
<div *ngIf="successMesssage" class="col-8">
<p style="text-align: left; color: green">{{ successMesssage }}</p>
<!-- <button type="submit" class="btn btn-primary" style="margin-left: 154px; margin-bottom: 10px; width: 120px; margin-top: 10px; background: #d22020; border: none;" (click)="downloadFailedData()">Download</button> -->
</div>
</div>
<div class="row">
<div class="col-12">
<button md-raised-button style="float:right;background: #2C7873; color: white;font-size: 14px;margin-left: 10px;border-radius:0px;" (click)="onUpload()" > {{'Submit' | translate}} </button>
<button md-raised-button (click)="resetData()" style="float:right;background: #b11515;; color: white;font-size: 14px;border-radius:0px;" > {{'RESET' | translate}} </button>
</div>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12" style="background: white;border-right: 1px solid #2d4262;padding: 5px;">
<div class="table-responsive-sm">
<table class="table">
<thead>
<tr>
<th scope="col">Host </th>
<th scope="col">IMEI </th>
<th scope="col">Port </th>
<th scope="col">Model </th>
</tr>
</thead>
<tbody>
<tr *ngFor="let vdevice of submittedList; index as i">
<td>{{vdevice.host}}</td>
<td>{{vdevice.imei}}</td>
<td>{{vdevice.port}}</td>
<td>{{vdevice.model}}</td>
<td><button class="btn btn-primary btn-sm" (click)="submit(vdevice,false)">Submit</button></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,84 @@
.limiter{
width:100%;
height:100vh;
padding-top: 7vh;
}
.rowStyle{
width:100%;
margin: 0;
height:100vh;
}
.container {
padding: 2rem 0rem;
}
h4 {
margin: 2rem 0rem 1rem;
}
.table-image {
td, th {
vertical-align: middle;
}
}
.table-wrap {
height: 80px;
overflow-y: auto;
}
#toast {
visibility: hidden;
max-width: 250px;
height: 50px;
/*margin-left: -125px;*/
margin: auto;
background-color: #333;
color: #fff;
text-align: center;
border-radius: 2px;
position: fixed;
z-index: 1;
left: 60%;right:0;
bottom: 80%;
font-size: 13px;
white-space: nowrap;
}
#toast #img{
width: 250px;
height: 50px;
float: left;
padding-top: 16px;
padding-bottom: 16px;
box-sizing: border-box;
background-color: #111;
color: #fff;
}
#toast #desc{
color: #fff;
padding: 16px;
overflow: hidden;
white-space: nowrap;
}
#toast.show {
visibility: visible;
-webkit-animation: fadein 0.5s, expand 0.5s 0.5s,stay 3s 1s, shrink 0.5s 2s, fadeout 0.5s 2.5s;
animation: fadein 0.5s, expand 0.5s 0.5s,stay 3s 1s, shrink 0.5s 4s, fadeout 0.5s 4.5s;
}

View file

@ -0,0 +1,24 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { VirtualDeviceComponent } from './virtual-device.component';
describe('VirtualDeviceComponent', () => {
let component: VirtualDeviceComponent;
let fixture: ComponentFixture<VirtualDeviceComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ VirtualDeviceComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(VirtualDeviceComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should be created', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,156 @@
import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
import { ContactService } from '../contact.service';
import { Router } from '@angular/router';
import * as XLSX from 'xlsx';
declare var $:any;
@Component({
selector: 'app-virtual-device',
templateUrl: './virtual-device.component.html',
styleUrls: ['./virtual-device.component.scss']
})
export class VirtualDeviceComponent implements OnInit {
errorMsg='';
showError;
arrayBuffer:any;
file:File;
submittedList = [];
virtualDevice ={
"imei":"",
"port":'',
"host":"",
"model":"",
"route":[
]
}
tabelObj: any;
useridd: any;
superAdmin: any;
custtype: any;
orgChek: any;
supAdminDropDown = false;
distributerValue
dealerValue;
@ViewChild("fileInput")
// this InputVar is a reference to our input.
InputVar: ElementRef;
constructor(private contactService: ContactService,private router: Router) {
}
selectedItems=[];
resetData() {
this.InputVar.nativeElement.value = "";
this.errorMsg = '';
this.file = null;
this.virtualDevice = {
"imei":"",
"port":'',
"host":"",
"model":"",
"route":[
]
}
}
ngOnInit() {
if(this.orgChek === true){
this.supAdminDropDown = true;
}
// this.loadropdown();
var that = this;
}
onChange(event) {
this.file = event.target.files[0];
}
onUpload() {
this.showError = false;
if(this.file) {
this.realExcelData();
} else {
this.showError = true;
this.errorMsg = 'Please select file'
}
}
realExcelData() {
let fileReader = new FileReader();
fileReader.onload = (e) => {
this.arrayBuffer = fileReader.result;
var data = new Uint8Array(this.arrayBuffer);
var arr = new Array();
for(var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
var bstr = arr.join("");
var workbook = XLSX.read(bstr, {type:"binary"});
var first_sheet_name = workbook.SheetNames[0];
var worksheet = workbook.Sheets[first_sheet_name];
this.setDataToAPI(XLSX.utils.sheet_to_json(worksheet,{raw:true}))
}
fileReader.readAsArrayBuffer(this.file);
}
setDataToAPI(data) {
console.log(data)
let newData = [];
if(data.length) {
data = data.forEach(d => {
if(d.Lattitude && d.Longitude) {
newData.push( {
lat:d.Lattitude,
lng:d.Longitude
})
}
});
}
this.virtualDevice.route = newData;
this.submit(this.virtualDevice);
}
successMesssage = '';
submit(virtualDevice,isAdd =true){
this.successMesssage = '';
if(!virtualDevice.route.length) {
this.errorMsg = 'Please Upload Lat/long'
} else if(!virtualDevice.host) {
this.errorMsg = 'Please enter Host'
} else if(!virtualDevice.imei) {
this.errorMsg = 'Please enter IMEI'
} else if(!virtualDevice.port) {
this.errorMsg = 'Please enter port'
} else if(!virtualDevice.model) {
this.errorMsg = 'Please enter model'
} else {
let postObj = Object.assign({},virtualDevice);
if(isAdd) {
this.submittedList.unshift(postObj);
}
this.contactService.post('/virtualDevice',postObj,false).subscribe(resp => {
this.resetData();
this.successMesssage = 'Data uploaded successfully'
console.log(resp)
},err=>{
this.errorMsg = 'Request Failed'
})
}
}
}

View file

@ -1,7 +1,9 @@
export const environment = {
production: true,
hostUrl: "https://www.oneqlik.in",
hostUrl2: "https://www.oneqlik.in",
hostUrl: document.location.origin != 'http://localhost:4200'? document.location.origin : "https://www.oneqlik.in",
hostUrl2: document.location.origin != 'http://localhost:4200'? document.location.origin : "https://www.oneqlik.in",
//hostUrl:"https://www.oneqlik.in",
//hostUrl2:"https://www.oneqlik.in",
// hostUrl:"https://socket.oneqlik.in",
// hostUrl2:"https://socket.oneqlik.in",

View file

@ -5,12 +5,10 @@
export const environment = {
production: false,
// hostUrl: "http://localhost:3000",
// hostUrl2: "http://localhost:3000",
// hostUrl: "https://socket.oneqlik.in",
// hostUrl2: "https://socket.oneqlik.in",
hostUrl: "https://www.oneqlik.in",
hostUrl2: "https://www.oneqlik.in",
// hostUrl:"https://dev.oneqlik.in",
// hostUrl2:"https://dev.oneqlik.in",
hostUrl: document.location.origin != 'http://localhost:4200'? document.location.origin : "https://www.oneqlik.in",
hostUrl2: document.location.origin != 'http://localhost:4200'? document.location.origin : "https://www.oneqlik.in",
socket5000: "",
showLandingpageMenu: ["www.drsupergps.com", "www.vpngps.tech", "www.globaltechnohelp.com", "www.tracktive.in", "www.sohamshakti.in", "www.spygpstrack.com", "www.mtelematics.in", "www.dstrackingsolutions.com", "www.vctrack.in", "www.hltgps.in", "www.xcelgps.com"]

View file

@ -357,7 +357,7 @@
<script type="text/javascript" src="https://cdn.datatables.net/1.10.18/js/dataTables.foundation.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.1/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.flash.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.6.0/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.html5.min.js"></script>

View file

@ -5,7 +5,10 @@ body {
margin: 0;
font-family: Roboto, sans-serif;
}
.ftd-mp {
padding-top: 13px !important;
padding-bottom: 12.5px !important;
}
md-card {
max-width: 80%;
margin: 2em auto;