minor code cleanuo

pull/3982/head
Jamie Rees 4 years ago
parent 938e8439bc
commit 2ffec6b1e6

@ -1,9 +1,9 @@
<div class="card-spacing box" *ngIf="result" [style.display]="hide ? 'none' : 'block'"> <div class="card-spacing box" *ngIf="result" [style.display]="hide ? 'none' : 'block'">
<mat-card class="mat-elevation-z8 dark-card"> <mat-card class="mat-elevation-z8 dark-card" [routerLink]="result.type === RequestType.movie ? '/details/movie/' + result.id : '/details/tv/' + result.id">
<div class="ribbon {{getStatusClass()}} ribbon-top-right"><span> <div class="ribbon {{getStatusClass()}} ribbon-top-right"><span>
{{getAvailbilityStatus()}} {{getAvailbilityStatus()}}
</span></div> </span></div>
<a [routerLink]="result.type === RequestType.movie ? '/details/movie/' + result.id : '/details/tv/' + result.id"> <a>
<img id="cardImage" mat-card-image src="{{result.posterPath}}" class="card-poster" alt="{{result.title}}"> <img id="cardImage" mat-card-image src="{{result.posterPath}}" class="card-poster" alt="{{result.title}}">
</a> </a>
<mat-card-content (click)="openDetails(result);"> <mat-card-content (click)="openDetails(result);">

@ -9,7 +9,7 @@
</div> </div>
<div *ngIf="!discoverResults || discoverResults.length === 0"> <div *ngIf="!discoverResults || discoverResults.length === 0">
<div class="row justify-content-md-center top-spacing loading-spinner"> <div class="row justify-content-md-center top-spacing loading-spinner">
<h1>Sorry, nothing matches your search! <i class="fa fa-frown-o" aria-hidden="true"></i></h1> <h1> {{'Discovery.NoSearch' | translate}} <i class="fa fa-frown-o" aria-hidden="true"></i></h1>
</div> </div>
</div> </div>
</div> </div>

@ -85,44 +85,9 @@ export class DiscoverSearchResultsComponent implements OnInit {
available: false, available: false,
tvMovieDb: mediaType === RequestType.tvShow ? true : false tvMovieDb: mediaType === RequestType.tvShow ? true : false
}); });
// switch (mediaType) {
// case RequestType.movie:
// this.searchService.getFullMovieDetails(+m.id)
// .subscribe(x => {
// const index = this.discoverResults.findIndex((obj => obj.id === +m.id));
// this.discoverResults[index].available = x.available;
// this.discoverResults[index].requested = x.requested;
// this.discoverResults[index].requested = x.requested;
// this.discoverResults[index].requested = x.requested;
// this.discoverResults[index].requested = x.requested;
// this.discoverResults[index].requested = x.requested;
// });
// }
}); });
} }
// private createModel() {
// this.finishLoading();
// this.collection.collection.forEach(m => {
// this.discoverResults.push({
// available: m.available,
// posterPath: `https://image.tmdb.org/t/p/w300/${m.posterPath}`,
// requested: m.requested,
// title: m.title,
// type: RequestType.movie,
// id: m.id,
// url: `http://www.imdb.com/title/${m.imdbId}/`,
// rating: 0,
// overview: m.overview,
// approved: m.approved,
// imdbid: m.imdbId,
// denied:false,
// background: ""
// });
// });
// }
private loading() { private loading() {
this.loadingFlag = true; this.loadingFlag = true;
} }

@ -1,42 +1,5 @@
<!-- <input class="form-control quater-width search-bar" type="text" [(ngModel)]="selectedItem" placeholder="{{'NavigationBar.Search' | translate}}"
aria-label="Search" [ngbTypeahead]="searchModel" [resultFormatter]="formatter" [inputFormatter]="formatter" [resultTemplate]="template" (selectItem)="selected($event)">
<ng-template #template let-result="result">
</ng-template> -->
<form [formGroup]='searchForm'> <form [formGroup]='searchForm'>
<mat-form-field floatLabel="never" style="width: 100%;"> <mat-form-field floatLabel="never" style="width: 100%;">
<input id="nav-search" matInput placeholder="{{'NavigationBar.Search' | translate}}" [matAutocomplete]="auto" formControlName='input'> <input id="nav-search" matInput placeholder="{{'NavigationBar.Search' | translate}}" formControlName='input'>
</mat-form-field> </mat-form-field>
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="selected($event)" [displayWith]="displayFn">
<mat-option *ngIf="searching" color="warn">
<mat-spinner diameter="50"></mat-spinner>
</mat-option>
<ng-container *ngIf="!searching">
<mat-option class="option" *ngFor="let result of results" [value]="result">
<img *ngIf="result.poster" class="option-img" aria-hidden [src]="'https://image.tmdb.org/t/p/w300/'+result.poster" height="75">
<span *ngIf="result.mediaType === 'movie'">
<i *ngIf="!result.poster" class="fa fa-film"></i> &nbsp;
<span>{{result.title}}</span>
</span>
<span *ngIf="result.mediaType === 'tv'">
<i *ngIf="!result.poster" class="fa fa-tv"></i> &nbsp;
<span>{{result.title}}</span>
</span>
<span *ngIf="result.mediaType === 'Artist'">
<i *ngIf="!result.poster" class="fa fa-music"></i> &nbsp;
<span>{{result.title}}</span>
</span>
<span *ngIf="result.mediaType === 'person'">
<i *ngIf="!result.poster" class="fa fa-user"></i> &nbsp;
<span>{{result.title}}</span>
</span>
</mat-option>
</ng-container>
</mat-autocomplete>
</form> </form>

@ -1,4 +1,4 @@
import { Component, Input, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { import {
debounceTime, debounceTime,
switchMap, switchMap,
@ -7,12 +7,8 @@ import {
} from "rxjs/operators"; } from "rxjs/operators";
import { empty} from "rxjs"; import { empty} from "rxjs";
import { IMultiSearchResult } from "../interfaces";
import { Router } from "@angular/router"; import { Router } from "@angular/router";
import { FormGroup, FormBuilder } from "@angular/forms"; import { FormGroup, FormBuilder } from "@angular/forms";
import { MatAutocompleteSelectedEvent } from "@angular/material/autocomplete";
import { SearchFilter } from "./SearchFilter";
import { FilterService } from "../discover/services/filter-service";
@Component({ @Component({
selector: "app-nav-search", selector: "app-nav-search",
@ -20,9 +16,6 @@ import { FilterService } from "../discover/services/filter-service";
styleUrls: ["./nav-search.component.scss"], styleUrls: ["./nav-search.component.scss"],
}) })
export class NavSearchComponent implements OnInit { export class NavSearchComponent implements OnInit {
public selectedItem: string;
public results: IMultiSearchResult[];
public searching = false;
public searchForm: FormGroup; public searchForm: FormGroup;
@ -40,38 +33,13 @@ export class NavSearchComponent implements OnInit {
.get("input") .get("input")
.valueChanges.pipe( .valueChanges.pipe(
debounceTime(1300), debounceTime(1300),
tap(() => (this.searching = true)),
switchMap((value: string) => { switchMap((value: string) => {
if (value) { if (value) {
this.router.navigate([`discover`, value]); this.router.navigate([`discover`, value]);
// return this.searchService
// .multiSearch(value, this.filter)
// .pipe(finalize(() => (this.searching = false)));
} }
return empty().pipe(finalize(() => (this.searching = false))); return empty();;
}) })
) )
.subscribe((r) => (this.results = r)); .subscribe();
}
public selected(event: MatAutocompleteSelectedEvent) {
this.searchForm.controls.input.setValue(null);
const val = event.option.value as IMultiSearchResult;
if (val.mediaType == "movie") {
this.router.navigate([`details/movie/${val.id}`]);
return;
} else if (val.mediaType == "tv") {
this.router.navigate([`details/tv/${val.id}/true`]);
return;
} else if (val.mediaType == "person") {
this.router.navigate([`discover/actor/${val.id}`]);
return;
} else if (val.mediaType == "Artist") {
this.router.navigate([`details/artist/${val.id}`]);
return;
}
}
displayFn(result: IMultiSearchResult) {
if (result) { return result.title; }
} }
} }

@ -296,7 +296,8 @@
"FirstAired": "First Aired", "FirstAired": "First Aired",
"Writer": "Writer", "Writer": "Writer",
"ExecProducer": "Exec Producer" "ExecProducer": "Exec Producer"
} },
"NoSearch":"Sorry, nothing matches your search!"
}, },
"UserPreferences": { "UserPreferences": {
"Welcome": "Welcome {{username}}!", "Welcome": "Welcome {{username}}!",

Loading…
Cancel
Save