Project: AJAX Name Picker (Managed by Steve McDonagh)


"A JavaScript API that allows the developer to add NAB Name Picker Functionality to their forms "の提供を目標として、2007年11月のV1.0.0から2008年8月のV1.2.6まで改良・強化が続いたものです。



a Lotus Notes 開発者 ブログ-OpenNtfNPick

<動作>

1.2. 3文字以上の入力で次へ

3. リクエストURLに、?ReadViewEntriesでなく、?OpenAgentを使用しているのが特徴。ユーザ入力を引数に追加


 url = NP_url+"/NP_getNameLS?openagent&type=S&name="+fieldobj.value+"&pabs=";

 例NP_getNameLS?openagent&type=S&name="tes"&pabs="names.nsf"


4. URLがYahooのJavaScriptライブラリAjax処理に渡され実行


 var request=YAHOO.util.Connect.asyncRequest('GET', url, NP_callBack)


5.6. NP_getNameLSエージェントはHTTPリクエストのUL引数Query_String_DeCoded(0)またはPOSTの内容Request_Content(0)、を使い、LotusScript のGetAllDocumentsByKey処理によりNABの"($users)"ビューを検索


6.8. 結果をJavascriptコード(結果を追加するコードと結果データ)に整形


9.10. コールバック関数NP_callBackが戻りをevalして、配列NP_namesにpushしリスト表示



<DBへの適用>

 ノーツの標準テンプレートをもとに文書ライブラリDBを作成し、そのレビュー担当者が選択入力できるようにDBに適用してみました。



実行環境: Domino8.5、IE8、FireFox3.0.15 


適用手順:

(1) JavaScriptライブラリ5個、CSSファイル1個をdomino\htmlフォルダ以下に配置

(2) 入力フォーム(Document)のHTML HEADERで、それがロードされるように指定

(3) 入力フォームの onLoad に NP_createPopup();を追加

(4) 入力フォームの名前フィールド(ReviewerList)の onFocusに、次のコードを追加  

  NP_openPopup(this.id,"",this.name,'S',"");blur(); 

  (複数選択フィールドですが、まず’一人選択の'S'で確認

(5) NP_getNameLSエージェント、イメージファイル2個を移行先DBにコピー配置



a Lotus Notes 開発者 ブログ-文書ライブラリ


結果:

FireFox3.0.15 では、候補リストの下部が、リッチテキストフィールドの裏に隠れる問題が発生しました。

リッチテキストフィールドのプロパティ WEBアクセス時の表示を、デフォルトの「OSに合う位置を使用」から「JavaScriptコントロールを使用」に変えてみたら、裏に隠れる問題は回避されましたが、

さてこれを標準のNamePickerとして多数のDBに展開できるか、続けて見ていきたいと思います。