]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/shared/shared-search/advanced-search.model.ts
Update angular
[github/Chocobozzz/PeerTube.git] / client / src / app / shared / shared-search / advanced-search.model.ts
index ea9baa27f31fd011f01c899c00c31cfd41f42172..29fe3e8dc9e7ed3b348cf48d6c23c1f8fb50af68 100644 (file)
@@ -1,4 +1,4 @@
-import { intoArray } from '@app/helpers'
+import { splitIntoArray } from '@app/helpers'
 import {
   BooleanBothQuery,
   BooleanQuery,
@@ -40,6 +40,8 @@ export class AdvancedSearch {
   searchTarget: SearchTargetType
   resultType: AdvancedSearchResultType
 
+  excludeAlreadyWatched?: boolean
+
   constructor (options?: {
     startDate?: string
     endDate?: string
@@ -62,6 +64,8 @@ export class AdvancedSearch {
     sort?: string
     searchTarget?: SearchTargetType
     resultType?: AdvancedSearchResultType
+
+    excludeAlreadyWatched?: boolean
   }) {
     if (!options) return
 
@@ -76,8 +80,8 @@ export class AdvancedSearch {
     this.categoryOneOf = options.categoryOneOf || undefined
     this.licenceOneOf = options.licenceOneOf || undefined
     this.languageOneOf = options.languageOneOf || undefined
-    this.tagsOneOf = intoArray(options.tagsOneOf)
-    this.tagsAllOf = intoArray(options.tagsAllOf)
+    this.tagsOneOf = splitIntoArray(options.tagsOneOf)
+    this.tagsAllOf = splitIntoArray(options.tagsAllOf)
     this.durationMin = options.durationMin ? parseInt(options.durationMin, 10) : undefined
     this.durationMax = options.durationMax ? parseInt(options.durationMax, 10) : undefined
 
@@ -87,6 +91,8 @@ export class AdvancedSearch {
 
     this.resultType = options.resultType || undefined
 
+    this.excludeAlreadyWatched = options.excludeAlreadyWatched || undefined
+
     if (!this.resultType && this.hasVideoFilter()) {
       this.resultType = 'videos'
     }
@@ -138,7 +144,8 @@ export class AdvancedSearch {
       host: this.host,
       sort: this.sort,
       searchTarget: this.searchTarget,
-      resultType: this.resultType
+      resultType: this.resultType,
+      excludeAlreadyWatched: this.excludeAlreadyWatched
     }
   }
 
@@ -152,9 +159,9 @@ export class AdvancedSearch {
       originallyPublishedStartDate: this.originallyPublishedStartDate,
       originallyPublishedEndDate: this.originallyPublishedEndDate,
       nsfw: this.nsfw,
-      categoryOneOf: intoArray(this.categoryOneOf),
-      licenceOneOf: intoArray(this.licenceOneOf),
-      languageOneOf: intoArray(this.languageOneOf),
+      categoryOneOf: splitIntoArray(this.categoryOneOf),
+      licenceOneOf: splitIntoArray(this.licenceOneOf),
+      languageOneOf: splitIntoArray(this.languageOneOf),
       tagsOneOf: this.tagsOneOf,
       tagsAllOf: this.tagsAllOf,
       durationMin: this.durationMin,
@@ -162,7 +169,8 @@ export class AdvancedSearch {
       host: this.host,
       isLive,
       sort: this.sort,
-      searchTarget: this.searchTarget
+      searchTarget: this.searchTarget,
+      excludeAlreadyWatched: this.excludeAlreadyWatched
     }
   }