<span class="text-muted">{{ videoAbuse.reporterAccount.nameWithHost }}</span>
</div>
</a>
- <a [routerLink]="[ '/admin/moderation/video-abuses/list' ]" [queryParams]="{ 'search': 'reportee:"' + videoAbuse.reporterAccount.displayName + '"' }" class="ml-auto text-muted video-details-links" i18n>
+ <a [routerLink]="[ '/admin/moderation/video-abuses/list' ]" [queryParams]="{ 'search': 'reporter:"' + videoAbuse.reporterAccount.displayName + '"' }" class="ml-auto text-muted video-details-links" i18n>
{videoAbuse.countReportsForReporter, plural, =1 {1 report} other {{{ videoAbuse.countReportsForReporter }} reports}}<span class="ml-1Â glyphicon glyphicon-flag"></span>
</a>
</span>
<div *ngIf="!videoAbuse.video.deleted && !videoAbuse.video.blacklisted" [innerHTML]="videoAbuse.embedHtml"></div>
</div>
</div>
-</div>
\ No newline at end of file
+</div>
parseQueryStringFilter (q: string, prefixes: QueryStringFilterPrefixes): ParseQueryStringFilterResult {
if (!q) return {}
- // Tokenize the strings using spaces
- const tokens = q.split(' ').filter(token => !!token)
+ // Tokenize the strings using spaces that are not in quotes
+ const tokens = q.match(/(?:[^\s"]+|"[^"]*")+/g)
+ .filter(token => !!token)
// Build prefix array
const prefixeStrings = Object.values(prefixes)
const matchedTokens = tokens.filter(t => t.startsWith(prefix))
.map(t => t.slice(prefix.length)) // Keep the value filter
+ .map(t => t.replace(/^"|"$/g, ''))
.map(t => {
if (prefixObj.handler) return prefixObj.handler(t)