]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/search/advanced-search.model.ts
Properly scroll to anchors in links, especially in admin config
[github/Chocobozzz/PeerTube.git] / client / src / app / search / advanced-search.model.ts
index 033fa9bba86530ba58f7c75154e6dc2ef60ad562..50f00bc2713183449443d497abe421982751217b 100644 (file)
@@ -4,6 +4,9 @@ export class AdvancedSearch {
   startDate: string // ISO 8601
   endDate: string // ISO 8601
 
+  originallyPublishedStartDate: string // ISO 8601
+  originallyPublishedEndDate: string // ISO 8601
+
   nsfw: NSFWQuery
 
   categoryOneOf: string
@@ -23,6 +26,8 @@ export class AdvancedSearch {
   constructor (options?: {
     startDate?: string
     endDate?: string
+    originallyPublishedStartDate?: string
+    originallyPublishedEndDate?: string
     nsfw?: NSFWQuery
     categoryOneOf?: string
     licenceOneOf?: string
@@ -37,6 +42,9 @@ export class AdvancedSearch {
 
     this.startDate = options.startDate || undefined
     this.endDate = options.endDate || undefined
+    this.originallyPublishedStartDate = options.originallyPublishedStartDate || undefined
+    this.originallyPublishedEndDate = options.originallyPublishedEndDate || undefined
+
     this.nsfw = options.nsfw || undefined
     this.categoryOneOf = options.categoryOneOf || undefined
     this.licenceOneOf = options.licenceOneOf || undefined
@@ -57,7 +65,7 @@ export class AdvancedSearch {
     for (const k of Object.keys(obj)) {
       if (k === 'sort') continue // Exception
 
-      if (obj[k] !== undefined) return true
+      if (obj[k] !== undefined && obj[k] !== '') return true
     }
 
     return false
@@ -66,6 +74,8 @@ export class AdvancedSearch {
   reset () {
     this.startDate = undefined
     this.endDate = undefined
+    this.originallyPublishedStartDate = undefined
+    this.originallyPublishedEndDate = undefined
     this.nsfw = undefined
     this.categoryOneOf = undefined
     this.licenceOneOf = undefined
@@ -82,6 +92,8 @@ export class AdvancedSearch {
     return {
       startDate: this.startDate,
       endDate: this.endDate,
+      originallyPublishedStartDate: this.originallyPublishedStartDate,
+      originallyPublishedEndDate: this.originallyPublishedEndDate,
       nsfw: this.nsfw,
       categoryOneOf: this.categoryOneOf,
       licenceOneOf: this.licenceOneOf,
@@ -98,6 +110,8 @@ export class AdvancedSearch {
     return {
       startDate: this.startDate,
       endDate: this.endDate,
+      originallyPublishedStartDate: this.originallyPublishedStartDate,
+      originallyPublishedEndDate: this.originallyPublishedEndDate,
       nsfw: this.nsfw,
       categoryOneOf: this.intoArray(this.categoryOneOf),
       licenceOneOf: this.intoArray(this.licenceOneOf),
@@ -117,7 +131,7 @@ export class AdvancedSearch {
     for (const k of Object.keys(obj)) {
       if (k === 'sort') continue // Exception
 
-      if (obj[k] !== undefined) acc++
+      if (obj[k] !== undefined && obj[k] !== '') acc++
     }
 
     return acc
@@ -125,6 +139,7 @@ export class AdvancedSearch {
 
   private intoArray (value: any) {
     if (!value) return undefined
+    if (Array.isArray(value)) return value
 
     if (typeof value === 'string') return value.split(',')