Fix video channel description/support max length
authorChocobozzz <me@florianbigard.com>
Wed, 9 May 2018 11:32:44 +0000 (13:32 +0200)
committerChocobozzz <me@florianbigard.com>
Wed, 9 May 2018 11:32:44 +0000 (13:32 +0200)
client/src/app/shared/forms/form-validators/video-channel.ts
client/src/app/shared/forms/form-validators/video.ts
server/initializers/constants.ts
server/initializers/migrations/0215-video-support-length.ts [new file with mode: 0644]
server/models/video/video-channel.ts

index 6233d17f76ce33d9e85900ce223af392cb1d3798..2185cdaa9b81e57dd78b349a4c0fd3564c8f4edf 100644 (file)
@@ -15,20 +15,20 @@ export const VIDEO_CHANNEL_DISPLAY_NAME = {
 export const VIDEO_CHANNEL_DESCRIPTION = {
   VALIDATORS: [
     Validators.minLength(3),
-    Validators.maxLength(250)
+    Validators.maxLength(500)
   ],
   MESSAGES: {
     'minlength': 'Description must be at least 3 characters long.',
-    'maxlength': 'Description cannot be more than 250 characters long.'
+    'maxlength': 'Description cannot be more than 500 characters long.'
   }
 }
 export const VIDEO_CHANNEL_SUPPORT = {
   VALIDATORS: [
     Validators.minLength(3),
-    Validators.maxLength(300)
+    Validators.maxLength(500)
   ],
   MESSAGES: {
     'minlength': 'Support text must be at least 3 characters long.',
-    'maxlength': 'Support text cannot be more than 300 characters long.'
+    'maxlength': 'Support text cannot be more than 500 characters long.'
   }
 }
index 9ecbbbd6028c40e26f6bcea6574998eefca8dc71..a986243df76c5bd64b9d5395e0839af35109c043 100644 (file)
@@ -60,9 +60,9 @@ export const VIDEO_TAGS = {
 }
 
 export const VIDEO_SUPPORT = {
-  VALIDATORS: [ Validators.minLength(3), Validators.maxLength(300) ],
+  VALIDATORS: [ Validators.minLength(3), Validators.maxLength(500) ],
   MESSAGES: {
     'minlength': 'Video support must be at least 3 characters long.',
-    'maxlength': 'Video support cannot be more than 300 characters long.'
+    'maxlength': 'Video support cannot be more than 500 characters long.'
   }
 }
index 6556aa168b52e330c81c2ce34a339245d2f4be79..c52c27c78672d3549cc63748cc4e4ee10a95ee2a 100644 (file)
@@ -13,7 +13,7 @@ let config: IConfig = require('config')
 
 // ---------------------------------------------------------------------------
 
-const LAST_MIGRATION_VERSION = 210
+const LAST_MIGRATION_VERSION = 215
 
 // ---------------------------------------------------------------------------
 
@@ -192,8 +192,8 @@ const CONSTRAINTS_FIELDS = {
   },
   VIDEO_CHANNELS: {
     NAME: { min: 3, max: 120 }, // Length
-    DESCRIPTION: { min: 3, max: 250 }, // Length
-    SUPPORT: { min: 3, max: 300 }, // Length
+    DESCRIPTION: { min: 3, max: 500 }, // Length
+    SUPPORT: { min: 3, max: 500 }, // Length
     URL: { min: 3, max: 2000 } // Length
   },
   VIDEOS: {
@@ -201,7 +201,7 @@ const CONSTRAINTS_FIELDS = {
     LANGUAGE: { min: 1, max: 10 }, // Length
     TRUNCATED_DESCRIPTION: { min: 3, max: 250 }, // Length
     DESCRIPTION: { min: 3, max: 10000 }, // Length
-    SUPPORT: { min: 3, max: 300 }, // Length
+    SUPPORT: { min: 3, max: 500 }, // Length
     IMAGE: {
       EXTNAME: [ '.jpg', '.jpeg' ],
       FILE_SIZE: {
diff --git a/server/initializers/migrations/0215-video-support-length.ts b/server/initializers/migrations/0215-video-support-length.ts
new file mode 100644 (file)
index 0000000..994eda6
--- /dev/null
@@ -0,0 +1,44 @@
+import * as Sequelize from 'sequelize'
+import { CONSTRAINTS_FIELDS } from '../index'
+
+async function up (utils: {
+  transaction: Sequelize.Transaction,
+  queryInterface: Sequelize.QueryInterface,
+  sequelize: Sequelize.Sequelize
+}): Promise<void> {
+  {
+    const data = {
+      type: Sequelize.STRING(500),
+      allowNull: true,
+      defaultValue: null
+    }
+    await utils.queryInterface.changeColumn('video', 'support', data)
+  }
+
+  {
+    const data = {
+      type: Sequelize.STRING(500),
+      allowNull: true,
+      defaultValue: null
+    }
+    await utils.queryInterface.changeColumn('videoChannel', 'support', data)
+  }
+
+  {
+    const data = {
+      type: Sequelize.STRING(500),
+      allowNull: true,
+      defaultValue: null
+    }
+    await utils.queryInterface.changeColumn('videoChannel', 'description', data)
+  }
+}
+
+function down (options) {
+  throw new Error('Not implemented.')
+}
+
+export {
+  up,
+  down
+}
index 4a50af265fae906a65f0e060688ef7f1b70ffb7c..8498143fe33b7d5c4781532bbcb0fd68cfd8b326 100644 (file)
@@ -1,6 +1,6 @@
 import {
   AllowNull, BeforeDestroy, BelongsTo, Column, CreatedAt, DefaultScope, ForeignKey, HasMany, Is, Model, Scopes, Table,
-  UpdatedAt, Default
+  UpdatedAt, Default, DataType
 } from 'sequelize-typescript'
 import { ActivityPubActor } from '../../../shared/models/activitypub'
 import { VideoChannel } from '../../../shared/models/videos'
@@ -14,6 +14,7 @@ import { AccountModel } from '../account/account'
 import { ActorModel } from '../activitypub/actor'
 import { getSort, throwIfNotValid } from '../utils'
 import { VideoModel } from './video'
+import { CONSTRAINTS_FIELDS } from '../../initializers'
 
 enum ScopeNames {
   WITH_ACCOUNT = 'WITH_ACCOUNT',
@@ -73,13 +74,13 @@ export class VideoChannelModel extends Model<VideoChannelModel> {
   @AllowNull(true)
   @Default(null)
   @Is('VideoChannelDescription', value => throwIfNotValid(value, isVideoChannelDescriptionValid, 'description'))
-  @Column
+  @Column(DataType.STRING(CONSTRAINTS_FIELDS.VIDEO_CHANNELS.DESCRIPTION.max))
   description: string
 
   @AllowNull(true)
   @Default(null)
   @Is('VideoChannelSupport', value => throwIfNotValid(value, isVideoChannelSupportValid, 'support'))
-  @Column
+  @Column(DataType.STRING(CONSTRAINTS_FIELDS.VIDEO_CHANNELS.SUPPORT.max))
   support: string
 
   @CreatedAt