only when logged in
This commit is contained in:
parent
57f6e1254b
commit
b41b5418d1
8 changed files with 41 additions and 35 deletions
|
@ -180,7 +180,6 @@ export class CallsComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
setPage(p: PageEvent, force?: boolean) {
|
setPage(p: PageEvent, force?: boolean) {
|
||||||
console.log("setpage")
|
|
||||||
this.selection.clear();
|
this.selection.clear();
|
||||||
this.curPage = p;
|
this.curPage = p;
|
||||||
if (p && p!.pageSize != this.perPage) {
|
if (p && p!.pageSize != this.perPage) {
|
||||||
|
@ -196,19 +195,16 @@ export class CallsComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
getCalls(p: PageEvent, force?: boolean) {
|
getCalls(p: PageEvent, force?: boolean) {
|
||||||
console.log("getcalls")
|
|
||||||
const pageStart = p.pageIndex * p.pageSize;
|
const pageStart = p.pageIndex * p.pageSize;
|
||||||
const serverPage = Math.floor(pageStart / reqPageSize) + 1;
|
const serverPage = Math.floor(pageStart / reqPageSize) + 1;
|
||||||
this.pageWindow = pageStart % reqPageSize;
|
this.pageWindow = pageStart % reqPageSize;
|
||||||
if (serverPage == this.currentServerPage && !force && this.currentSet) {
|
if (serverPage == this.currentServerPage && !force && this.currentSet) {
|
||||||
console.log("currentset");
|
|
||||||
this.callsResult.next(
|
this.callsResult.next(
|
||||||
this.callsResult
|
this.callsResult
|
||||||
? this.currentSet.slice(this.pageWindow, this.pageWindow + p.pageSize)
|
? this.currentSet.slice(this.pageWindow, this.pageWindow + p.pageSize)
|
||||||
: [],
|
: [],
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
console.log("not currentset");
|
|
||||||
this.currentServerPage = serverPage;
|
this.currentServerPage = serverPage;
|
||||||
this.fetchCalls.next(this.buildParams(p, serverPage));
|
this.fetchCalls.next(this.buildParams(p, serverPage));
|
||||||
}
|
}
|
||||||
|
@ -248,7 +244,6 @@ export class CallsComponent {
|
||||||
.pipe(
|
.pipe(
|
||||||
debounceTime(500),
|
debounceTime(500),
|
||||||
switchMap((params) => {
|
switchMap((params) => {
|
||||||
console.log("gc switchmap");
|
|
||||||
return this.callsSvc.getCalls(params);
|
return this.callsSvc.getCalls(params);
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
|
@ -131,7 +131,6 @@ export class SafePipe implements PipeTransform {
|
||||||
return this._sanitizer.bypassSecurityTrustUrl(value);
|
return this._sanitizer.bypassSecurityTrustUrl(value);
|
||||||
case 'resourceUrl':
|
case 'resourceUrl':
|
||||||
let res = this._sanitizer.bypassSecurityTrustResourceUrl(value);
|
let res = this._sanitizer.bypassSecurityTrustResourceUrl(value);
|
||||||
console.log(res);
|
|
||||||
return res;
|
return res;
|
||||||
default:
|
default:
|
||||||
return this._sanitizer.bypassSecurityTrustHtml(value);
|
return this._sanitizer.bypassSecurityTrustHtml(value);
|
||||||
|
|
|
@ -7,18 +7,22 @@
|
||||||
><mat-icon>playlist_play</mat-icon></a
|
><mat-icon>playlist_play</mat-icon></a
|
||||||
>
|
>
|
||||||
</h1>
|
</h1>
|
||||||
@if (share == null) {
|
@if (share == null) {
|
||||||
<button mat-icon-button (click)="editIncident(incID)">
|
<button mat-icon-button (click)="editIncident(incID)">
|
||||||
<mat-icon>edit</mat-icon>
|
<mat-icon>edit</mat-icon>
|
||||||
</button>
|
|
||||||
<button mat-icon-button [matMenuTriggerFor]="moreMenu">
|
|
||||||
<mat-icon>more_vert</mat-icon>
|
|
||||||
</button>
|
|
||||||
<mat-menu #moreMenu="matMenu">
|
|
||||||
<button class="deleteItem" mat-menu-item (click)="deleteIncident(incID)">
|
|
||||||
Delete
|
|
||||||
</button>
|
</button>
|
||||||
</mat-menu>
|
<button mat-icon-button [matMenuTriggerFor]="moreMenu">
|
||||||
|
<mat-icon>more_vert</mat-icon>
|
||||||
|
</button>
|
||||||
|
<mat-menu #moreMenu="matMenu">
|
||||||
|
<button
|
||||||
|
class="deleteItem"
|
||||||
|
mat-menu-item
|
||||||
|
(click)="deleteIncident(incID)"
|
||||||
|
>
|
||||||
|
Delete
|
||||||
|
</button>
|
||||||
|
</mat-menu>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="inc-heading">
|
<div class="inc-heading">
|
||||||
|
|
|
@ -10,10 +10,14 @@ import { ActivatedRoute, Router } from '@angular/router';
|
||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
})
|
})
|
||||||
export class ShareService {
|
export class ShareService {
|
||||||
constructor(private http: HttpClient, private router: Router, private route: ActivatedRoute) {}
|
constructor(
|
||||||
|
private http: HttpClient,
|
||||||
|
private router: Router,
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
) {}
|
||||||
|
|
||||||
inShare(): string|null {
|
inShare(): string | null {
|
||||||
if(this.router.url.startsWith('/s/')) {
|
if (this.router.url.startsWith('/s/')) {
|
||||||
return this.route.snapshot.paramMap.get('id');
|
return this.route.snapshot.paramMap.get('id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,8 @@ describe('SharesComponent', () => {
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await TestBed.configureTestingModule({
|
await TestBed.configureTestingModule({
|
||||||
imports: [SharesComponent]
|
imports: [SharesComponent],
|
||||||
})
|
}).compileComponents();
|
||||||
.compileComponents();
|
|
||||||
|
|
||||||
fixture = TestBed.createComponent(SharesComponent);
|
fixture = TestBed.createComponent(SharesComponent);
|
||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
|
|
@ -4,8 +4,6 @@ import { Component } from '@angular/core';
|
||||||
selector: 'app-shares',
|
selector: 'app-shares',
|
||||||
imports: [],
|
imports: [],
|
||||||
templateUrl: './shares.component.html',
|
templateUrl: './shares.component.html',
|
||||||
styleUrl: './shares.component.scss'
|
styleUrl: './shares.component.scss',
|
||||||
})
|
})
|
||||||
export class SharesComponent {
|
export class SharesComponent {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -158,7 +158,6 @@ export class TalkgroupRecordComponent {
|
||||||
.getTalkgroup(Number(this.tgid.sys), Number(this.tgid.tg))
|
.getTalkgroup(Number(this.tgid.sys), Number(this.tgid.tg))
|
||||||
.pipe(
|
.pipe(
|
||||||
tap((tg) => {
|
tap((tg) => {
|
||||||
console.log('tap run');
|
|
||||||
tg.alert_rules = tg.alert_rules
|
tg.alert_rules = tg.alert_rules
|
||||||
? tg.alert_rules.map((x) => Object.assign(new AlertRule(), x))
|
? tg.alert_rules.map((x) => Object.assign(new AlertRule(), x))
|
||||||
: [];
|
: [];
|
||||||
|
|
|
@ -12,6 +12,7 @@ import {
|
||||||
import { Talkgroup, TalkgroupUpdate, TGID } from '../talkgroup';
|
import { Talkgroup, TalkgroupUpdate, TGID } from '../talkgroup';
|
||||||
import { Share } from '../shares';
|
import { Share } from '../shares';
|
||||||
import { ShareService } from '../share/share.service';
|
import { ShareService } from '../share/share.service';
|
||||||
|
import { AuthService } from '../login/auth.service';
|
||||||
|
|
||||||
export interface Pagination {
|
export interface Pagination {
|
||||||
page: number;
|
page: number;
|
||||||
|
@ -31,9 +32,13 @@ export class TalkgroupService {
|
||||||
private readonly _getTalkgroup = new Map<string, ReplaySubject<Talkgroup>>();
|
private readonly _getTalkgroup = new Map<string, ReplaySubject<Talkgroup>>();
|
||||||
private tgs$: Observable<Talkgroup[]>;
|
private tgs$: Observable<Talkgroup[]>;
|
||||||
private tags$!: Observable<string[]>;
|
private tags$!: Observable<string[]>;
|
||||||
private fetchAll = new Subject<Share|null>();
|
private fetchAll = new ReplaySubject<Share | null>();
|
||||||
private subscriptions = new Subscription();
|
private subscriptions = new Subscription();
|
||||||
constructor(private http: HttpClient, private shareSvc: ShareService) {
|
constructor(
|
||||||
|
private http: HttpClient,
|
||||||
|
private shareSvc: ShareService,
|
||||||
|
private authSvc: AuthService,
|
||||||
|
) {
|
||||||
this.tgs$ = this.fetchAll.pipe(
|
this.tgs$ = this.fetchAll.pipe(
|
||||||
switchMap((share) => this.getTalkgroups(share)),
|
switchMap((share) => this.getTalkgroups(share)),
|
||||||
shareReplay(),
|
shareReplay(),
|
||||||
|
@ -43,16 +48,17 @@ export class TalkgroupService {
|
||||||
shareReplay(),
|
shareReplay(),
|
||||||
);
|
);
|
||||||
let sh = this.shareSvc.inShare();
|
let sh = this.shareSvc.inShare();
|
||||||
console.log(sh);
|
|
||||||
if (sh) {
|
if (sh) {
|
||||||
this.shareSvc.getShare(sh).subscribe(this.fetchAll);
|
this.shareSvc.getShare(sh).subscribe(this.fetchAll);
|
||||||
} else {
|
} else {
|
||||||
this.fetchAll.next(null);
|
if (this.authSvc.loggedIn) {
|
||||||
|
this.fetchAll.next(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.fillTgMap();
|
this.fillTgMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
setShare(share: Share|null) {
|
setShare(share: Share | null) {
|
||||||
this.fetchAll.next(share);
|
this.fetchAll.next(share);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,8 +70,10 @@ export class TalkgroupService {
|
||||||
return this.http.get<string[]>('/api/talkgroup/tags');
|
return this.http.get<string[]>('/api/talkgroup/tags');
|
||||||
}
|
}
|
||||||
|
|
||||||
getTalkgroups(share: Share|null): Observable<Talkgroup[]> {
|
getTalkgroups(share: Share | null): Observable<Talkgroup[]> {
|
||||||
return this.http.get<Talkgroup[]>(share ? `/share/${share.id}/talkgroups` : '/api/talkgroup/');
|
return this.http.get<Talkgroup[]>(
|
||||||
|
share ? `/share/${share.id}/talkgroups` : '/api/talkgroup/',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getTalkgroup(
|
getTalkgroup(
|
||||||
|
|
Loading…
Add table
Reference in a new issue