bug550 ,bug 540 挿入する値の空白文字チェックの改修
This commit is contained in:
@@ -42,20 +42,19 @@ export class InsertValueAction implements IAction{
|
|||||||
* @param {string} inputValue - 挿入する値
|
* @param {string} inputValue - 挿入する値
|
||||||
* @return {boolean} -入力値が有効な日付形式の場合はtrueを返し、そうでない場合は例外を発生させる
|
* @return {boolean} -入力値が有効な日付形式の場合はtrueを返し、そうでない場合は例外を発生させる
|
||||||
*/
|
*/
|
||||||
checkInputValueBlank(fieldType :string | undefined,inputValueArray :any,fieldCode :string,fieldRequired :boolean | undefined,event :any): boolean{
|
checkInputValueBlank(fieldType :string | undefined,inputValue :string,fieldCode :string,fieldRequired :boolean | undefined,event :any): boolean{
|
||||||
|
|
||||||
let blankCheck;
|
let valueHasBlank;
|
||||||
//正規表現チェック
|
//正規表現チェック
|
||||||
for(let i =0;i<inputValueArray.length;i++){
|
valueHasBlank = inputValue.match(/(\s|\u3000)/);//半角スペース・タブ文字・改行・改ページ・全角スペースが1つ以上あるとマッチする
|
||||||
blankCheck = inputValueArray[i].match(/^(\s| )*$/);//空文字・半角スペース・タブ文字・改行・改ページ・全角スペース
|
|
||||||
}
|
|
||||||
|
|
||||||
if(blankCheck !== undefined){
|
//値に空白文字が入っている、nullのときは、エラーチェックする
|
||||||
|
if(valueHasBlank !== null || inputValue === null || inputValue === ''){
|
||||||
//空白文字を空白文字が非対応のフィールドに挿入しようとしている場合、例外を発生させる
|
//空白文字を空白文字が非対応のフィールドに挿入しようとしている場合、例外を発生させる
|
||||||
if(fieldType === "NUMBER" || fieldType === "DATE" || fieldType === "DATETIME" || fieldType === "TIME" || fieldType === "USER_SELECT"
|
if(fieldType === "NUMBER" || fieldType === "DATE" || fieldType === "DATETIME" || fieldType === "TIME" || fieldType === "USER_SELECT"
|
||||||
|| fieldType === "ORGANIZATION_SELECT" || fieldType === "GROUP_SELECT" || fieldType === "RADIO_BUTTON" || fieldType === "DROP_DOWN" || fieldType === "CHECK_BOX" || fieldType === "MULTI_SELECT"){
|
|| fieldType === "ORGANIZATION_SELECT" || fieldType === "GROUP_SELECT" || fieldType === "RADIO_BUTTON" || fieldType === "DROP_DOWN" || fieldType === "CHECK_BOX" || fieldType === "MULTI_SELECT"){
|
||||||
event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"フィールドには、空白文字は挿入できません。"; //レコードにエラーを表示
|
event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"に挿入しようとした、値に空白文字が含まれています。"; //レコードにエラーを表示
|
||||||
throw new Error("「"+fieldCode+"」"+"フィールドには、空白文字は挿入できません。「値を挿入する」コンポーネントの処理を中断しました。");
|
throw new Error("「"+fieldCode+"」"+"に挿入しようとした、値に空白文字が含まれています。「値を挿入する」コンポーネントの処理を中断しました。");
|
||||||
|
|
||||||
//空白文字を必須項目フィールドに挿入しようとしている場合、例外を発生させる
|
//空白文字を必須項目フィールドに挿入しようとしている場合、例外を発生させる
|
||||||
}else if(fieldRequired){
|
}else if(fieldRequired){
|
||||||
@@ -74,20 +73,25 @@ export class InsertValueAction implements IAction{
|
|||||||
*/
|
*/
|
||||||
checkVariableValueBlank(fieldType :string | undefined,inputValueArray :any,fieldCode :string,fieldRequired :boolean | undefined,event :any): boolean{
|
checkVariableValueBlank(fieldType :string | undefined,inputValueArray :any,fieldCode :string,fieldRequired :boolean | undefined,event :any): boolean{
|
||||||
|
|
||||||
let blankCheck;
|
let variableHasBlank;
|
||||||
if(inputValueArray === null && fieldType !== "SINGLE_LINE_TEXT" && fieldType !== "MULTI_LINE_TEXT" && fieldType !== "RICH_TEXT" && fieldType !== "LINK"){
|
let variableHasNull;
|
||||||
//正規表現チェック
|
//正規表現チェック
|
||||||
for(let i =0;i<inputValueArray.length;i++){
|
for(let i =0;i<inputValueArray.length;i++){
|
||||||
blankCheck = inputValueArray[i].match(/^(\s| )*$/);//空文字・半角スペース・タブ文字・改行・改ページ・全角スペース
|
//配列の要素にnullがないか、空白文字が値に含まれていないかチェックする
|
||||||
|
if (inputValueArray[i] !== null && inputValueArray[i] !== undefined && inputValueArray[i] !== ""){
|
||||||
|
variableHasBlank = inputValueArray[i].match(/(\s|\u3000)/);//半角スペース・タブ文字・改行・改ページ・全角スペースが1つ以上あるとマッチする
|
||||||
|
}else{
|
||||||
|
variableHasNull = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(blankCheck !== undefined){
|
//変数の値に空白文字が入っている、配列に要素がないときは、エラーチェックする
|
||||||
|
if(variableHasBlank !== null || variableHasNull || inputValueArray.length === 0){
|
||||||
//空白文字を空白文字が非対応のフィールドに挿入しようとしている場合、例外を発生させる
|
//空白文字を空白文字が非対応のフィールドに挿入しようとしている場合、例外を発生させる
|
||||||
if(fieldType === "NUMBER" || fieldType === "DATE" || fieldType === "DATETIME" || fieldType === "TIME" || fieldType === "USER_SELECT"
|
if(fieldType === "NUMBER" || fieldType === "DATE" || fieldType === "DATETIME" || fieldType === "TIME" || fieldType === "USER_SELECT"
|
||||||
|| fieldType === "ORGANIZATION_SELECT" || fieldType === "GROUP_SELECT" || fieldType === "RADIO_BUTTON" || fieldType === "DROP_DOWN" || fieldType === "CHECK_BOX" || fieldType === "MULTI_SELECT"){
|
|| fieldType === "ORGANIZATION_SELECT" || fieldType === "GROUP_SELECT" || fieldType === "RADIO_BUTTON" || fieldType === "DROP_DOWN" || fieldType === "CHECK_BOX" || fieldType === "MULTI_SELECT"){
|
||||||
event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"に挿入しようとした、変数の値が空白・空白文字です。"; //レコードにエラーを表示
|
event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"に挿入しようとした、変数の値に空白文字が含まれています。"; //レコードにエラーを表示
|
||||||
throw new Error("「"+fieldCode+"」"+"に挿入しようとした、変数の値が空白・空白文字です。「値を挿入する」コンポーネントの処理を中断しました。");
|
throw new Error("「"+fieldCode+"」"+"に挿入しようとした、変数の値に空白文字が含まれています。「値を挿入する」コンポーネントの処理を中断しました。");
|
||||||
|
|
||||||
//空白文字を必須項目フィールドに挿入しようとしている場合、例外を発生させる
|
//空白文字を必須項目フィールドに挿入しようとしている場合、例外を発生させる
|
||||||
}else if(fieldRequired){
|
}else if(fieldRequired){
|
||||||
@@ -107,7 +111,7 @@ export class InsertValueAction implements IAction{
|
|||||||
checkInputNumber(inputValue :string,fieldCode :string,event :any): boolean{
|
checkInputNumber(inputValue :string,fieldCode :string,event :any): boolean{
|
||||||
let inputNumberValue = Number(inputValue);//数値型に変換
|
let inputNumberValue = Number(inputValue);//数値型に変換
|
||||||
|
|
||||||
//有限数かどうか判定s
|
//有限数かどうか判定
|
||||||
if(!isFinite(inputNumberValue)){
|
if(!isFinite(inputNumberValue)){
|
||||||
event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な日付形式です。"; //レコードにエラーを表示
|
event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な日付形式です。"; //レコードにエラーを表示
|
||||||
throw new Error("「"+fieldCode+"」"+"フィールドに入れようとした値は、有効な数値ではありません。「値を挿入する」コンポーネントの処理を中断しました。");
|
throw new Error("「"+fieldCode+"」"+"フィールドに入れようとした値は、有効な数値ではありません。「値を挿入する」コンポーネントの処理を中断しました。");
|
||||||
@@ -442,11 +446,6 @@ export class InsertValueAction implements IAction{
|
|||||||
throw new Error("「値を挿入する」コンポーネントで、選択されたフィールドは、値を挿入するコンポーネントでは非対応のフィールドのため、処理を中断しました。");
|
throw new Error("「値を挿入する」コンポーネントで、選択されたフィールドは、値を挿入するコンポーネントでは非対応のフィールドのため、処理を中断しました。");
|
||||||
}
|
}
|
||||||
|
|
||||||
//プロパティの挿入する値が未入力の場合、例外を発生させる
|
|
||||||
if(value === ""){
|
|
||||||
throw new Error("「値を挿入する」コンポーネントで、フィールドに挿入する値が指定されていなかったため、処理が中断されました。");
|
|
||||||
}
|
|
||||||
|
|
||||||
//既定のプロパティのインターフェースへ変換する
|
//既定のプロパティのインターフェースへ変換する
|
||||||
this.props = actionNode.ActionValue as IInsertValueProps;
|
this.props = actionNode.ActionValue as IInsertValueProps;
|
||||||
|
|
||||||
@@ -487,7 +486,7 @@ export class InsertValueAction implements IAction{
|
|||||||
}
|
}
|
||||||
|
|
||||||
//文字列型のフィールド以外に、空白文字の変数の値を挿入する場合、エラーを出す
|
//文字列型のフィールド以外に、空白文字の変数の値を挿入する場合、エラーを出す
|
||||||
if(objectValue === "" ){
|
if(objectValue === "" || objectValue === null){
|
||||||
if(fieldType === "NUMBER" || fieldType === "DATE" || fieldType === "DATETIME" || fieldType === "TIME" || fieldType === "USER_SELECT"
|
if(fieldType === "NUMBER" || fieldType === "DATE" || fieldType === "DATETIME" || fieldType === "TIME" || fieldType === "USER_SELECT"
|
||||||
|| fieldType === "ORGANIZATION_SELECT" || fieldType === "GROUP_SELECT" || fieldType === "RADIO_BUTTON" || fieldType === "DROP_DOWN" || fieldType === "CHECK_BOX" || fieldType === "MULTI_SELECT"){
|
|| fieldType === "ORGANIZATION_SELECT" || fieldType === "GROUP_SELECT" || fieldType === "RADIO_BUTTON" || fieldType === "DROP_DOWN" || fieldType === "CHECK_BOX" || fieldType === "MULTI_SELECT"){
|
||||||
throw new Error("「"+fieldCode+"」"+"フィールドに挿入しようとした変数は、値がnullのため、処理を中断しました。");
|
throw new Error("「"+fieldCode+"」"+"フィールドに挿入しようとした変数は、値がnullのため、処理を中断しました。");
|
||||||
@@ -530,7 +529,7 @@ export class InsertValueAction implements IAction{
|
|||||||
}else{
|
}else{
|
||||||
fieldValueArray.push(fieldValue);
|
fieldValueArray.push(fieldValue);
|
||||||
//入力エラー(空白文字の混入)がないことをチェック
|
//入力エラー(空白文字の混入)がないことをチェック
|
||||||
notInputError=this.checkInputValueBlank(fieldType,fieldValueArray,fieldCode,fieldRequired,event);
|
notInputError=this.checkInputValueBlank(fieldType,fieldValue,fieldCode,fieldRequired,event);
|
||||||
}
|
}
|
||||||
|
|
||||||
//形式変換、型変換した値を格納する変数
|
//形式変換、型変換した値を格納する変数
|
||||||
@@ -626,11 +625,11 @@ export class InsertValueAction implements IAction{
|
|||||||
|
|
||||||
//条件式の結果がtrueかつ挿入する値が変換できた場合、フィールド(ラジオボタン・ドロップダウン・チェックボックス・複数選択・文字列一行・文字列複数行・リッチエディタ・数値・日付・日時・時刻)にセット
|
//条件式の結果がtrueかつ挿入する値が変換できた場合、フィールド(ラジオボタン・ドロップダウン・チェックボックス・複数選択・文字列一行・文字列複数行・リッチエディタ・数値・日付・日時・時刻)にセット
|
||||||
if(conditionResult){
|
if(conditionResult){
|
||||||
//条件式の結果がtureかつ、値を正しい形式に変換できた場合、フィールドに値をセットする
|
//値を正しい形式に変換できた場合、フィールドに値をセットする
|
||||||
if(correctFormattedValue !== undefined){
|
if(correctFormattedValue !== undefined){
|
||||||
event.record[fieldCode].value = correctFormattedValue;
|
event.record[fieldCode].value = correctFormattedValue;
|
||||||
//条件式の結果がtureかつ、値を正しい形式(配列)に変換できた場合、フィールドに値(配列)をセットする
|
//値を正しい形式(配列)に変換できた場合、フィールドに値(配列)をセットする
|
||||||
}else if(correctValues.length > 0 || correctValues !== undefined){
|
}else{
|
||||||
event.record[fieldCode].value = correctValues;
|
event.record[fieldCode].value = correctValues;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -654,11 +653,11 @@ export class InsertValueAction implements IAction{
|
|||||||
|
|
||||||
//条件式の結果がtrueかつ挿入する値が変換できた場合、フィールド(ラジオボタン・ドロップダウン・チェックボックス・複数選択・文字列一行・文字列複数行・リッチエディタ・数値・日付・日時・時刻)にセット
|
//条件式の結果がtrueかつ挿入する値が変換できた場合、フィールド(ラジオボタン・ドロップダウン・チェックボックス・複数選択・文字列一行・文字列複数行・リッチエディタ・数値・日付・日時・時刻)にセット
|
||||||
if(conditionResult){
|
if(conditionResult){
|
||||||
//条件式の結果がtureかつ、値を正しい形式に変換できた場合、フィールドに値をセットする
|
//値を正しい形式に変換できた場合、フィールドに値をセットする
|
||||||
if(correctFormattedValue !== undefined){
|
if(correctFormattedValue !== undefined){
|
||||||
event.record[fieldCode].value = correctFormattedValue;
|
event.record[fieldCode].value = correctFormattedValue;
|
||||||
//条件式の結果がtureかつ、値を正しい形式(配列)に変換できた場合、フィールドに値(配列)をセットする
|
//値を正しい形式(配列)に変換できた場合、フィールドに値(配列)をセットする
|
||||||
}else if(correctValues.length > 0 || correctValues !== undefined){
|
}else{
|
||||||
event.record[fieldCode].value = correctValues;
|
event.record[fieldCode].value = correctValues;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -666,8 +665,8 @@ export class InsertValueAction implements IAction{
|
|||||||
//kintone async/await による非同期処理(レコード更新)
|
//kintone async/await による非同期処理(レコード更新)
|
||||||
if(correctFormattedValue !== undefined){
|
if(correctFormattedValue !== undefined){
|
||||||
await updateRecord(fieldCode,event,correctFormattedValue);
|
await updateRecord(fieldCode,event,correctFormattedValue);
|
||||||
//条件式の結果がtureかつ、値を正しい形式(配列)に変換できた場合、フィールドに値(配列)をセットする
|
//値を正しい形式(配列)に変換できた場合、フィールドに値(配列)をセットする
|
||||||
}else if(correctValues.length > 0 || correctValues !== undefined){
|
}else{
|
||||||
await updateRecord(fieldCode,event,correctValues);
|
await updateRecord(fieldCode,event,correctValues);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user