g_modal - クライアント
g_modal API を使用すると、モーダルウィンドウを表示してアプリケーションの機能を拡張できます。
この API を使用して、ワークスペースにモーダルを表示します。
- モーダルウィンドウに入力タイプフィールドを表示します。
- UI ページや外部リンクなどのフレームに何かを表示します。
- ユーザーの確認時にアクションを実行します。
- コンポーネントをロードします。
- HTML を使用してモーダルのコンテンツを入力します。
g_modal:alert(文字列タイトル、文字列メッセージ、関数コールバック、スタイルオブジェクト)
UI アクションに関連するアラートメッセージを表示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| title | 文字列 | オプション。モーダルのヘッダーに表示するタイトル。 デフォルト:アラート |
| メッセージ | 文字列 | モーダル本文に表示するメッセージ。 注:
パラメーターを 1 つだけ渡すと、メソッドはそれを message パラメーターとして扱います。 |
| コールバック | 関数 | オプション。フォームが送信され、サーバーで処理された後に呼び出す関数。 コールバック関数の形式 callbackFunction(文字列 action_verb, 文字列 sys_id, 文字列 table, 文字列 displayValue) は、次のとおりです。
Default (デフォルト): |
| style | オブジェクト | オプション。モーダルに表示する確認ボタンのスタイル。 |
| style.buttonTitle | 文字列 | オプション。確認ボタンに表示するテキスト。 デフォルト:OK |
| style.buttonType | 文字列 | オプション。表示する確認ボタンのタイプ。 デフォルト:デフォルト |
| タイプ | 説明 |
|---|---|
| Promise | callbackパラメーターが渡された場合、成功した場合はpromiseを返し、それ以外の場合はエラーを返します。 |
次のコード例は、このメソッドを呼び出して、「担当者のみがこのアクションを終了できます」という警告メッセージを表示する方法を示しています。
function onClick(g_form) {
if (g_user.userID != g_form.getValue('assigned_to')) {
g_modal.alert('Only the assigned to can end this action.');
return;
}
var msg = getMessage("Are you sure you want to take this action?");
g_modal.confirm(getMessage("Confirmation"), msg, function (confirmed) {
if (confirmed) {
g_form.setValue('state', 'closed_complete');
g_form.save();
}
});
return false;
}
g_modal - confirm(文字列タイトル, 文字列メッセージ, 関数コールバック, スタイルオブジェクト)
UI アクションに関連する確認メッセージを表示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| title | 文字列 | オプション。モーダルのヘッダーに表示するタイトル。 デフォルト:確認 |
| メッセージ | 文字列 | モーダル本文に表示するメッセージ。 注:
パラメーターを 1 つだけ渡すと、メソッドはそれを message パラメーターとして扱います。 |
| コールバック | 関数 | オプション。フォームが送信され、サーバーで処理された後に呼び出す関数。 コールバック関数の形式 callbackFunction(文字列 action_verb, 文字列 sys_id, 文字列 table, 文字列 displayValue) は、次のとおりです。
Default (デフォルト): |
| style | オブジェクト | オプション。モーダルに表示する [確認] ボタンと [キャンセル] ボタンのスタイル。 |
| style.cancelTitle | 文字列 | オプション。キャンセルボタンに表示するテキスト。 デフォルト:キャンセル |
| style.cancelType | 文字列 | オプション。表示するキャンセルボタンのタイプ。 デフォルト:confirm |
| style.confirmTitle | 文字列 | オプション。[確認] ボタンに表示するテキスト。 デフォルト:OK |
| style.confirmType | 文字列 | オプション。表示する確認ボタンのタイプ。 デフォルト:デフォルト |
| タイプ | 説明 |
|---|---|
| Promise | callbackパラメーターが渡された場合、成功した場合はpromiseを返し、それ以外の場合はエラーを返します。 |
次のコード例は、このメソッドを呼び出して「このアクションを実行してもよろしいですか?」という確認メッセージを表示する方法を示しています。
function onClick(g_form) {
if (g_user.userID != g_form.getValue('assigned_to')) {
g_modal.alert('Only the assigned to can end this action.');
return;
}
var msg = getMessage("Are you sure you want to take this action?");
g_modal.confirm(getMessage("Confirmation"), msg, function (confirmed) {
if (confirmed) {
g_form.setValue('state', 'closed_complete');
g_form.save();
}
});
return false;
}
出力:
g_modal - confirmDestroy(文字列タイトル, 文字列メッセージ, 関数コールバック, スタイルオブジェクト)
UI アクションに関連する確認メッセージを表示します。確認ボタンは 破棄スタイル) として表示されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| title | 文字列 | オプション。モーダルのヘッダーに表示するタイトル。 デフォルト:確認 |
| メッセージ | 文字列 | モーダル本文に表示するメッセージ。 注:
パラメーターを 1 つだけ渡すと、メソッドはそれを message パラメーターとして扱います。 |
| コールバック | 関数 | オプション。フォームが送信され、サーバーで処理された後に呼び出す関数。 コールバック関数の形式 callbackFunction(文字列 action_verb, 文字列 sys_id, 文字列 table, 文字列 displayValue) は、次のとおりです。
Default (デフォルト): |
| style | オブジェクト | オプション。モーダルに表示する [確認] ボタンと [キャンセル] ボタンのスタイル。 |
| style.cancelTitle | 文字列 | オプション。キャンセルボタンに表示するテキスト。 デフォルト:キャンセル |
| style.cancelType | 文字列 | オプション。表示するキャンセルボタンのタイプ。 デフォルト:confirm |
| style.confirmTitle | 文字列 | オプション。[確認] ボタンに表示するテキスト。 デフォルト:OK |
| style.confirmType | 文字列 | オプション。表示する確認ボタンのタイプ。 デフォルト:destructive |
| タイプ | 説明 |
|---|---|
| Promise | callbackパラメーターが渡された場合、成功した場合はpromiseを返し、それ以外の場合はエラーを返します。 |
この 例では、...
g_modal - richText(文字列 title, 文字列 richContent, 関数コールバック, 文字列サイズ, 文字列 cancelTitle, 文字列 confirmTitle, 文字列 cancelType, 文字列 confirmType)
渡された HTML を使用してモーダル内のコンテンツを生成するモーダルを表示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| title | 文字列 | オプション。モーダルのヘッダーに表示するタイトル。 デフォルト:空欄 |
| リッチテキスト | 文字列 | モーダルに表示する HTML コンテンツ。 注:
このメソッドは、 <![CDATA[<script>]]> タグ、インライン JavaScript、およびセキュリティの悪用をもたらす可能性のあるその他の要素を削除します。 |
| コールバック | 関数 | オプション。フォームが送信され、サーバーで処理された後に呼び出す関数。 コールバック関数の形式 callbackFunction(文字列 action_verb, 文字列 sys_id, 文字列 table, 文字列 displayValue) は、次のとおりです。
Default (デフォルト): |
| タイトルをキャンセル | 文字列 | オプション。キャンセルボタンに表示するテキスト。 デフォルト:キャンセル |
| 確認タイトル | 文字列 | オプション。[確認] ボタンに表示するテキスト。 デフォルト:OK |
| cancelType | 文字列 | オプション。表示するキャンセルボタンのタイプ。 デフォルト:confirm |
| confirmType | 文字列 | オプション。表示する確認ボタンのタイプ。 デフォルト:デフォルト |
| タイプ | 説明 |
|---|---|
| Promise | callbackパラメーターが渡された場合、成功した場合はpromiseを返し、それ以外の場合はエラーを返します。 |
g_modal - showFields(文字列タイトル, 配列フィールド, 文字列命令, 関数コールバック)
指定したフィールドを含むモーダルウィンドウを表示します。デフォルトでは、[OK] ボタンと [キャンセル] ボタンが表示されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| コールバック | 関数 | オプション。フォームが送信され、サーバーで処理された後に呼び出す関数。 コールバック関数の形式 callbackFunction(文字列 action_verb, 文字列 sys_id, 文字列 table, 文字列 displayValue) は、次のとおりです。
Default (デフォルト): |
| タイトルをキャンセル | 文字列 | オプション。キャンセルボタンのラベル。 デフォルト:キャンセル |
| cancelType | 文字列 | オプション。キャンセル ボタンのタイプ。 デフォルト: default |
| 確認タイトル | 文字列 | オプション。[確認] ボタンのラベル。 デフォルト:OK |
| confirmType | 文字列 | オプション。[確認] ボタンのタイプ 。 デフォルト: confirm |
| フィールド | オブジェクトのアレイ | モーダルに表示するフィールドのリスト 。 各フィールドは、個別のオブジェクトで定義されます。渡す fields パラメーターは、指定したフィールドのタイプ (fields.type) によって異なります。 |
| fields.選択肢 | オブジェクトのアレイ | fields.typeパラメーターが choice に設定されている場合は必須です。関連するリストフィールドに表示するオプションのリスト。例: |
| fields.label | 文字列 | モーダルでこのフィールドのラベルとして表示するテキスト。 |
| fields.mandatory | ブール | オプション。フィールドが必須かどうかを示すフラグ。 有効な値:
デフォルト値:false |
| fields.name | 文字列 | フィールドの内部名。fields.typeパラメーターが参照に設定されている場合は、現在のレコードの参照フィールドが検索に使用されます。 |
| fields.reference | 文字列 | fields.typeパラメーターが参照に設定されている場合は必須です。参照するテーブルの名前。例: |
| fields.referringTable | 文字列 | fields.typeパラメーターが参照に設定されている場合は必須です。参照元のテーブルの名前。例: |
| fields.referringRecordId | 文字列 | fields.typeパラメーターが参照に設定されている場合は必須です。UI アクションフォームで呼び出すレコードのSys_id。 |
| fields.type | 文字列 | モーダルに表示するフィールドのタイプ。 有効な値:
各フィールドタイプには fields.<> 渡すことができる一連のオプションがあります。 |
| fields.value | 文字列 | オプション。フィールドに表示する値。 たとえば、選択肢フィールドに対して、ユーザープロンプトを表示できます。
または、参照フィールドの場合は、関連するフォームにフィールドの値を表示できます。
デフォルト:空欄 |
| 命令 | 文字列 | オプション。モーダルに表示する指示。 |
| サイズ | 文字列 | モーダルのサイズ。 可能なモーダル CSS クラス:
|
| title | 文字列 | オプション。モーダルのヘッダーに表示するタイトル。 デフォルト:空欄 |
| タイプ | 説明 |
|---|---|
| Promise | 成功した場合は promise を返し、それ以外の場合はエラーを返します。 |
次の例は、モーダルウィンドウを使用してユーザーに理由の入力を求め、それをレコードの作業メモフィールドに戻す方法を示しています。then() メソッドは、モーダルが返すものを返す promise を返します。この場合は fieldValues です。クライアント側の作業メモフィールドとフィールド値は、 updatedFields アレイにあります。返されるフィールドは 1 つだけであるため、この例ではインデックス位置を 0 と想定しています。
function onClick(g_form) {
g_modal.showFields({
title: "Enter your reason",
fields: [{
type: 'textarea',
name: 'work_notes',
label: getMessage('Reason'),
mandatory: true
}],
size: 'lg'
}).then(function(fieldValues) {
g_form.setValue('work_notes', fieldValues.updatedFields[0].value);
g_form.save();
});
}
出力:
次の例では、上記の例を拡張して、選択肢フィールドと参照フィールドを追加します。
function onClick(g_form) {
var fields = [{
type: 'textarea',
name: 'work_notes',
label: getMessage('Reason'),
mandatory: true
},
{
type: 'choice',
name: 'reason_code',
label: getMessage('Reason code'),
value: getMessage(' -- Select -- '),
choices: [
{
displayValue: 'Duplicate',
value: 'duplicate'
},
{
displayValue: 'Canceled',
value: 'canceled'
}
],
mandatory: true
},
{
type: 'reference',
name: 'caller_id',
label: getMessage('What is your name?'),
mandatory: true,
reference: 'sys_user',
referringTable: 'incident',
referringRecordId: g_form.getUniqueValue(),
value: g_form.getValue('caller_id'),
displayValue: g_form.getDisplayValue('caller_id')
}
];
g_modal.showFields({
title: "Enter your reason",
fields: fields,
size: 'lg'
}).then(function(fieldValues) {
g_form.setValue('work_notes', fieldValues.updatedFields[0].value);
g_form.setValue('caller_id', fieldValues.updatedFields[2].value);
g_form.save();
});
}
出力:
g_modal - showFrame(文字列タイトル、文字列URL、関数コールバック、文字列サイズ、文字列の高さ、文字列autoCloseOn)
コンテンツに外部 URL または UI ページへのリンクを使用するモーダルを表示します。
| 名前 | タイプ | 説明 |
|---|---|---|
| title | 文字列 | オプション。モーダルのヘッダーに表示するタイトル。 デフォルト:空欄 |
| url | 文字列 | IFrame にロードする情報の URL。 注:
引数が 1 つだけ渡された場合は、 url パラメーターとして扱われます。 |
| コールバック | 関数 | オプション。フォームが送信され、サーバーで処理された後に呼び出す関数。 コールバック関数の形式 callbackFunction(文字列 action_verb, 文字列 sys_id, 文字列 table, 文字列 displayValue) は、次のとおりです。
Default (デフォルト): |
| サイズ | 文字列 | モーダルのサイズ。 可能なモーダル CSS クラス:
|
| 高さ | [Number (番号)] | モーダルの高さ 。 単位:ピクセル |
| autoCloseOn | 文字列 | オプション。モーダルを自動的に閉じる条件 (「URL_CHANGED」など)。デフォルト:モーダルを自動的に閉じません。 |
| タイプ | 説明 |
|---|---|
| Promise | 成功した場合は promise を返し、それ以外の場合はエラーを返します。この約束は、IFrame モーダルがクローズされると解決されます。 |
次の例は、KB 記事レコードのsys_idとベース URL を使用して、モデルに KB 記事を表示する方法を示しています。
function onClick(g_form) {
var kbId = '24d9243187032100deddb882a2e3ec33'; //sysId of KB article
g_modal.showFrame({
url: '/kb_view.do?sys_kb_id=' + kbId,
title: 'Test Knowledge Article',
size: 'lg',
height: 500
});
}
出力:
この例では、モーダルを作成するときに埋め込み UI ページを使用する方法を示します。g_form API が iFrame にある場合は UI ページでアクセスできないため、UI ページで window.parent.postMessage() を使用して iFrame からワークスペースにデータを渡します。
function onClick(g_form) {
function proposeMIC(data) {
var workNotes = data.msg + "\n" + data.workNotes;
var notes = g_form.getValue('work_notes') + ' ' + workNotes;
var bi = g_form.getValue('business_impact') + ' ' + data.businessImpact;
g_form.setValue('work_notes', notes.trim());
g_form.setValue('business_impact', bi.trim());
g_form.submit('sysverb_mim_propose');
}
function openPopup() {
if(!g_form.getControl('work_notes')) {
getMessage('Cannot propose major incident as "Worknotes" is not visible', function(msg) {
g_form.addErrorMessage(msg);
});
return false;
}
var url = "/sn_major_inc_mgmt_mim_propose.do?sysparm_stack=no&sysparm_workspace=" + true;
g_modal.showFrame({
title: getMessage("Propose Major Incident"),
url: url,
size: 'lg',
autoCloseOn: 'URL_CHANGED',
callback: function (ret, data) {
if (ret)
proposeMIC(data);
}
});
}
openPopup();
}
出力: