Просмотр исходного кода

Merge pull request #2505 from weseek/imprv/validate-is-integer

Imprv/validate is integer
Ryuichi Paul E. Egoshi 5 лет назад
Родитель
Сommit
affc1a8763

+ 2 - 1
resource/locales/en_US/translation.json

@@ -211,7 +211,8 @@
     "enter_desc": "Enter description",
     "Unlimited": "unlimited",
     "Issue": "Issue",
-    "share_settings" :"Share settings"
+    "share_settings" :"Share settings",
+    "Invalid_Number_of_Date" : "You entered invalid value"
   },
   "API Settings": "API settings",
   "API Token Settings": "API token settings",

+ 2 - 1
resource/locales/ja_JP/translation.json

@@ -213,7 +213,8 @@
     "enter_desc": "概要を入力",
     "Unlimited": "無期限",
     "Issue": "発行",
-    "share_settings" :"共有設定"
+    "share_settings" :"共有設定",
+    "Invalid_Number_of_Date" : "有効期限の日数には整数を入力してください"
   },
   "API Settings": "API設定",
   "API Token Settings": "API Token設定",

+ 2 - 1
resource/locales/zh_CN/translation.json

@@ -425,7 +425,8 @@
     "enter_desc": "Enter description",
     "Unlimited": "unlimited",
     "Issue": "Issue",
-    "share_settings" :"Share settings"
+    "share_settings" :"Share settings",
+    "Invalid_Number_of_Date" : "You entered invalid value"
   },
 	"security_setting": {
 		"Security settings": "安全设置",

+ 5 - 0
src/client/js/components/ShareLinkForm.jsx

@@ -5,6 +5,7 @@ import { withTranslation } from 'react-i18next';
 import dateFnsFormat from 'date-fns/format';
 import parse from 'date-fns/parse';
 
+import { isInteger } from 'core-js/fn/number';
 import { withUnstatedContainers } from './UnstatedUtils';
 
 import { toastSuccess, toastError } from '../util/apiNotification';
@@ -74,6 +75,7 @@ class ShareLinkForm extends React.Component {
    * Generate expiredAt by expirationType
    */
   generateExpired() {
+    const { t } = this.props;
     const { expirationType } = this.state;
     let expiredAt;
 
@@ -82,6 +84,9 @@ class ShareLinkForm extends React.Component {
     }
 
     if (expirationType === 'numberOfDays') {
+      if (!isInteger(Number(this.state.numberOfDays))) {
+        throw new Error(t('share_links.Invalid_Number_of_Date'));
+      }
       const date = new Date();
       date.setDate(date.getDate() + Number(this.state.numberOfDays));
       expiredAt = date;