import { Component, OnInit } from '@angular/core'
-import { Router } from '@angular/router'
+import { Router, NavigationEnd } from '@angular/router'
import { getParameterByName } from '../shared/misc/utils'
@Component({
constructor (private router: Router) {}
ngOnInit () {
- const searchQuery = getParameterByName('search', window.location.href)
- if (searchQuery) this.searchValue = searchQuery
+ this.router.events
+ .filter(e => e instanceof NavigationEnd)
+ .map(() => getParameterByName('search', window.location.href))
+ .filter(searchQuery => !!searchQuery)
+ .subscribe(searchQuery => this.searchValue = searchQuery)
}
doSearch () {
</div>
<div class="video-info-by">
- By {{ video.by }}
- <img [src]="getAvatarPath()" alt="Account avatar" />
+ <a [routerLink]="[ '/videos', 'search' ]" [queryParams]="{ search: video.account.name }" title="Search videos of this account">
+ By {{ video.by }}
+ <img [src]="getAvatarPath()" alt="Account avatar" />
+ </a>
+
<my-video-feed [syndicationItems]="syndicationItems"></my-video-feed>
</div>
</div>
align-items: center;
font-size: 13px;
+ a {
+ color: black;
+ display: inline-block;
+ }
+
img {
@include avatar(18px);
import { AuthService } from '../../core/auth'
import { AbstractVideoList } from '../../shared/video/abstract-video-list'
import { VideoService } from '../../shared/video/video.service'
-import { FeedFormat } from '../../../../../shared/models/feeds/feed-format.enum'
@Component({
selector: 'my-videos-search',
}
generateSyndicationList () {
- throw new Error('Method not implemented.')
+ throw new Error('Search does not support syndication.')
}
}
"safe-buffer": "^5.0.1",
"scripty": "^1.5.0",
"sequelize": "4.37.6",
- "sequelize-typescript": "^0.6.1",
+ "sequelize-typescript": "0.6.4-beta.0",
"sharp": "^0.20.0",
"uuid": "^3.1.0",
"validator": "^9.0.0",
}
async function searchVideos (req: express.Request, res: express.Response, next: express.NextFunction) {
- const resultList = await VideoModel.searchAndPopulateAccountAndServerAndTags(
+ const resultList = await VideoModel.searchAndPopulateAccountAndServer(
req.query.search,
req.query.start,
req.query.count,
})
}
- static async searchAndPopulateAccountAndServerAndTags (value: string, start: number, count: number, sort: string) {
+ static async searchAndPopulateAccountAndServer (value: string, start: number, count: number, sort: string) {
const query: IFindOptions<VideoModel> = {
offset: start,
limit: count,
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-pfeed@^1.1.2:
+pfeed@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/pfeed/-/pfeed-1.1.5.tgz#6d0ab54209c60b45de03a15efaab7be867a3f71a"
dependencies:
range-parser "~1.2.0"
statuses "~1.4.0"
-sequelize-typescript@^0.6.1:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-0.6.3.tgz#567ef7d12193c16aac7ee85e5d321e8980fb817d"
+sequelize-typescript@0.6.4-beta.0:
+ version "0.6.4-beta.0"
+ resolved "https://registry.yarnpkg.com/sequelize-typescript/-/sequelize-typescript-0.6.4-beta.0.tgz#c36e4bfc030dd59b1211967ecace243601b2242e"
dependencies:
"@types/bluebird" "3.5.18"
"@types/node" "6.0.41"