NB. action_to_POST_method_jconsole.ijs
NB. core_structure_web_form_application
NB. 

NB. action_to_POST_method_part1_jconsole start (encoding_code: UTF-8, 2023_09_14)

NB. クライアントからのフォーム入力送信による POST method に応答するHTTPレスポンスメッセージを用意する

NB. クライアントからのフォーム送信データに対する処理は大きく３つからなる 

NB. （１）最初にクライアントからの送信データを抽出する
NB. （２）そのデータを使って所望の J console 関数を実行し結果を得る
NB. （３）その結果をクライアントへ送信するための応答 HTTP メッセージを作成する

NB. この時、GET method に応答して送信したものと同じ HTMLフォームを含めて作成し
NB. クライントが継続して同じフォームを利用出来るようにする
NB. フォーム部品の初期値は、受信したクライアントの値に設定しなおす。
NB. 計算結果をフォーム部品に反映させる場合もある。

NB. ====================================================================================================
NB. 受信したメッセージからフォーム部品の値を抽出する関数
extract_POSTed_values =: 3 : 0
NB. この関数はserver_core_jconsole.ijsの中で呼ばれるので関数名を変更しないこと

NB.print 'フォーム部品から抽出した部品IDとその値の一覧'
print 'List of Child Form Control and its posted value'

NB. 全てのアプリケーションに共通のサーバー継続・停止リクエスト用ラジオボタン radio99
NB. が設置されており、それぞれのVALUEを抽出する

NB. extract_entryID_value_and_display 関数は support_tools_jconsole.ijsで定義されている

NB. action_to_POST_method_part_1_jconsole end

NB. action_to_POST_method_part_2_jconsole start (encoding_code: UTF-8, 2023_09_14)

RADIO_99_VALUE    =: extract_entryID_value_and_display 'radio99'

NB. print 'フォーム部品から抽出した部品IDと値の一覧の終わり'
print 'End of Child Form Control and its posted value'

)

NB. ====================================================================================================
NB. 抽出した VALUE を使って所望の jconsole 関数を実行する
execute_your_job =: 3 : 0

initialize_response_image_bmp 0  NB. response_image.bmp must be initialized as 03x03_Orange.bmp
NB. in YOUR_JOB function user can revise response_image.bmp according to its result...

NB.print '設計ファイルで定義された YOUR_JOB を実行して戻り値ストリングを設定します。'
print 'execute YOUR_JOB defined in app plan file and assign return string'
RETURN_MSG =: YOUR_JOB 0 
1
NB. end of POSTed data processing
)

NB. ====================================================================================================
NB. 結果をクライアントへ返す HTTP レスポンスメッセージを作成する
prepare_http_response_message_to_POST_method =: 3 : 0

http_response_status_and_header_field =. prepare_http_response_status_and_header_field 0

NB. HTTPのボディをhtml form documentとして用意する

NB. MSG_FROM_SERVERには実行結果終了時に定義された RETURN_MSGを代入する。

MSG_FROM_SERVER =: RETURN_MSG

define_html_code_for_controls_based_on_plan_ijs 0

html_form_doc =. make_html_form_doc 0

NB. 完成した html_docのバイト数を数える
byteCount =. $ html_form_doc

NB. クライントへ送信するレスポンスhttpメッセージを完成させる
NB. HTTPプロトコル上、html_docの前に空行が必要
http_response_status_and_header_field, (":byteCount), CRLF, CRLF, html_form_doc
)

NB. End of file

NB. action_to_POST_method_part_2_jconsole end
monitor_entry_ID_values =: 3 : 0
a_collection =. 'form control values submitted from client is as follows', CRLF
a_collection
)
