From 02c01341f4dae30ec6b81fcb644952393d73c4a8 Mon Sep 17 00:00:00 2001 From: Rigel Kent Date: Wed, 5 Aug 2020 00:50:07 +0200 Subject: [PATCH] add ng-select for templatable select options - create select-tags component to replace ngx-chips - create select-options to factorize option selection in forms - create select-channel to simplify channel selection - refactor tags validation --- client/package.json | 5 +- .../app/+search/search-filters.component.html | 14 +--- .../app/+search/search-filters.component.scss | 2 - .../app/+search/search-filters.component.ts | 6 -- client/src/app/+search/search.module.ts | 4 -- .../video-caption-add-modal.component.html | 10 +-- .../video-caption-add-modal.component.scss | 5 +- .../shared/video-edit.component.html | 59 ++++++---------- .../shared/video-edit.component.scss | 2 - .../shared/video-edit.component.ts | 38 +++++++--- .../+video-edit/shared/video-edit.module.ts | 3 - .../video-import-torrent.component.html | 16 ++--- .../video-import-url.component.html | 16 ++--- .../video-add-components/video-send.scss | 7 ++ .../video-add-components/video-send.ts | 4 +- .../video-upload.component.html | 17 ++--- .../+video-edit/video-update.component.ts | 2 +- .../+video-edit/video-update.resolver.ts | 7 +- client/src/app/helpers/utils.ts | 12 +++- .../video-validators.service.ts | 27 +++++++- .../select-channel.component.html | 16 +++++ .../shared-forms/select-channel.component.ts | 51 ++++++++++++++ .../select-options.component.html | 18 +++++ .../shared-forms/select-options.component.ts | 47 +++++++++++++ .../shared-forms/select-shared.component.scss | 20 ++++++ .../shared-forms/select-tags.component.html | 13 ++++ .../shared-forms/select-tags.component.scss | 3 + .../shared-forms/select-tags.component.ts | 38 ++++++++++ .../shared/shared-forms/shared-form.module.ts | 13 +++- .../shared/shared-main/shared-main.module.ts | 7 +- .../shared/shared-main/video/video.service.ts | 12 ++-- client/src/sass/application.scss | 1 + client/src/sass/include/_mixins.scss | 69 ------------------- client/src/sass/ng-select.scss | 29 ++++++++ client/yarn.lock | 22 ++---- shared/models/videos/video-constant.model.ts | 1 + 36 files changed, 399 insertions(+), 217 deletions(-) create mode 100644 client/src/app/shared/shared-forms/select-channel.component.html create mode 100644 client/src/app/shared/shared-forms/select-channel.component.ts create mode 100644 client/src/app/shared/shared-forms/select-options.component.html create mode 100644 client/src/app/shared/shared-forms/select-options.component.ts create mode 100644 client/src/app/shared/shared-forms/select-shared.component.scss create mode 100644 client/src/app/shared/shared-forms/select-tags.component.html create mode 100644 client/src/app/shared/shared-forms/select-tags.component.scss create mode 100644 client/src/app/shared/shared-forms/select-tags.component.ts create mode 100644 client/src/sass/ng-select.scss diff --git a/client/package.json b/client/package.json index 946cd109c..50b33d7c3 100644 --- a/client/package.json +++ b/client/package.json @@ -44,6 +44,7 @@ "@angularclass/hmr": "^2.1.3", "@neos21/bootstrap3-glyphicons": "^1.0.1", "@ng-bootstrap/ng-bootstrap": "^7.0.0", + "@ng-select/ng-select": "^5.0.0", "@ngx-i18nsupport/ngx-i18nsupport": "^1.1.6", "@ngx-i18nsupport/tooling": "^8.0.3", "@ngx-loading-bar/core": "^5.0.0", @@ -95,7 +96,6 @@ "linkifyjs": "^2.1.5", "lodash-es": "^4.17.4", "markdown-it": "^11.0.0", - "ngx-chips": "2.1.0", "ngx-pipes": "^2.6.0", "node-sass": "^4.9.3", "npm-font-source-sans-pro": "^1.0.2", @@ -133,6 +133,5 @@ "webtorrent": "^0.108.1", "whatwg-fetch": "^3.0.0", "zone.js": "~0.10.2" - }, - "dependencies": {} + } } diff --git a/client/src/app/+search/search-filters.component.html b/client/src/app/+search/search-filters.component.html index e20aef8fb..b36b1d2ae 100644 --- a/client/src/app/+search/search-filters.component.html +++ b/client/src/app/+search/search-filters.component.html @@ -144,12 +144,7 @@ - +
@@ -157,12 +152,7 @@ - +
diff --git a/client/src/app/+search/search-filters.component.scss b/client/src/app/+search/search-filters.component.scss index a88a1c0b0..68ac6d021 100644 --- a/client/src/app/+search/search-filters.component.scss +++ b/client/src/app/+search/search-filters.component.scss @@ -65,5 +65,3 @@ input[type=submit] { display: flex; white-space: nowrap; } - -@include ng2-tags; diff --git a/client/src/app/+search/search-filters.component.ts b/client/src/app/+search/search-filters.component.ts index fc1db3258..13ad61647 100644 --- a/client/src/app/+search/search-filters.component.ts +++ b/client/src/app/+search/search-filters.component.ts @@ -1,5 +1,4 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core' -import { ValidatorFn } from '@angular/forms' import { ServerService } from '@app/core' import { VideoValidatorsService } from '@app/shared/shared-forms' import { AdvancedSearch } from '@app/shared/shared-search' @@ -20,9 +19,6 @@ export class SearchFiltersComponent implements OnInit { videoLicences: VideoConstant[] = [] videoLanguages: VideoConstant[] = [] - tagValidators: ValidatorFn[] - tagValidatorsMessages: { [ name: string ]: string } - publishedDateRanges: { id: string, label: string }[] = [] sorts: { id: string, label: string }[] = [] durationRanges: { id: string, label: string }[] = [] @@ -40,8 +36,6 @@ export class SearchFiltersComponent implements OnInit { private videoValidatorsService: VideoValidatorsService, private serverService: ServerService ) { - this.tagValidators = this.videoValidatorsService.VIDEO_TAGS.VALIDATORS - this.tagValidatorsMessages = this.videoValidatorsService.VIDEO_TAGS.MESSAGES this.publishedDateRanges = [ { id: 'any_published_date', diff --git a/client/src/app/+search/search.module.ts b/client/src/app/+search/search.module.ts index ee4f07ad1..e85ae07d0 100644 --- a/client/src/app/+search/search.module.ts +++ b/client/src/app/+search/search.module.ts @@ -1,4 +1,3 @@ -import { TagInputModule } from 'ngx-chips' import { NgModule } from '@angular/core' import { SharedFormModule } from '@app/shared/shared-forms' import { SharedMainModule } from '@app/shared/shared-main' @@ -14,8 +13,6 @@ import { VideoLazyLoadResolver } from './video-lazy-load.resolver' @NgModule({ imports: [ - TagInputModule, - SearchRoutingModule, SharedMainModule, @@ -31,7 +28,6 @@ import { VideoLazyLoadResolver } from './video-lazy-load.resolver' ], exports: [ - TagInputModule, SearchComponent ], diff --git a/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.html b/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.html index 6a9e31b5a..6a07dafa7 100644 --- a/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.html +++ b/client/src/app/+videos/+video-edit/shared/video-caption-add-modal.component.html @@ -8,11 +8,11 @@