]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/search/search-filters.component.ts
Add setting helper to client plugins
[github/Chocobozzz/PeerTube.git] / client / src / app / search / search-filters.component.ts
index 3fdc6df35c9d8cdab0e7aba2c5ddf4c9802d68b2..e13aa91bf09729ca497d7a86d2fe50336cd2af08 100644 (file)
@@ -25,6 +25,9 @@ export class SearchFiltersComponent implements OnInit {
   publishedDateRange: string
   durationRange: string
 
+  originallyPublishedStartYear: string
+  originallyPublishedEndYear: string
+
   constructor (
     private i18n: I18n,
     private serverService: ServerService
@@ -53,13 +56,13 @@ export class SearchFiltersComponent implements OnInit {
         id: 'short',
         label: this.i18n('Short (< 4 min)')
       },
-      {
-        id: 'long',
-        label: this.i18n('Long (> 10 min)')
-      },
       {
         id: 'medium',
         label: this.i18n('Medium (4-10 min)')
+      },
+      {
+        id: 'long',
+        label: this.i18n('Long (> 10 min)')
       }
     ]
 
@@ -86,15 +89,27 @@ export class SearchFiltersComponent implements OnInit {
 
     this.loadFromDurationRange()
     this.loadFromPublishedRange()
+    this.loadOriginallyPublishedAtYears()
   }
 
   formUpdated () {
     this.updateModelFromDurationRange()
     this.updateModelFromPublishedRange()
+    this.updateModelFromOriginallyPublishedAtYears()
 
     this.filtered.emit(this.advancedSearch)
   }
 
+  private loadOriginallyPublishedAtYears () {
+    this.originallyPublishedStartYear = this.advancedSearch.originallyPublishedStartDate
+      ? new Date(this.advancedSearch.originallyPublishedStartDate).getFullYear().toString()
+      : null
+
+    this.originallyPublishedEndYear = this.advancedSearch.originallyPublishedEndDate
+      ? new Date(this.advancedSearch.originallyPublishedEndDate).getFullYear().toString()
+      : null
+  }
+
   private loadFromDurationRange () {
     if (this.advancedSearch.durationMin || this.advancedSearch.durationMax) {
       const fourMinutes = 60 * 4
@@ -127,6 +142,32 @@ export class SearchFiltersComponent implements OnInit {
     }
   }
 
+  private updateModelFromOriginallyPublishedAtYears () {
+    const baseDate = new Date()
+    baseDate.setHours(0, 0, 0, 0)
+    baseDate.setMonth(0, 1)
+
+    if (this.originallyPublishedStartYear) {
+      const year = parseInt(this.originallyPublishedStartYear, 10)
+      const start = new Date(baseDate)
+      start.setFullYear(year)
+
+      this.advancedSearch.originallyPublishedStartDate = start.toISOString()
+    } else {
+      this.advancedSearch.originallyPublishedStartDate = null
+    }
+
+    if (this.originallyPublishedEndYear) {
+      const year = parseInt(this.originallyPublishedEndYear, 10)
+      const end = new Date(baseDate)
+      end.setFullYear(year)
+
+      this.advancedSearch.originallyPublishedEndDate = end.toISOString()
+    } else {
+      this.advancedSearch.originallyPublishedEndDate = null
+    }
+  }
+
   private updateModelFromDurationRange () {
     if (!this.durationRange) return
 
@@ -174,4 +215,5 @@ export class SearchFiltersComponent implements OnInit {
 
     this.advancedSearch.startDate = date.toISOString()
   }
+
 }