iNotes宛先選択の表示順選択肢のCustomize (続)
「iNotes宛先選択の表示順選択肢のCustomize」の記事で、Address Pickerの表示順のView選択のCustomizeを行いましたが、Forms9_x.nsfでのCustomizeを前提にしていたため、表示順の選択肢の先頭に「DJX組織別階層」が表示できていませんでした。
これも、少し不便かも知れないと思い、Forms9.nsf自体をCustomizeして対応する方法を考えてみたいと思います。
DJXのName Pickerの選択用のViewについては、s_NamePickerDJXViewList、s_NamePickerDJXViewListExtに定義されているのですが、両方とも同じCodeが記載されています。
Codeの内容を見る限り、Forms9_x.nsfの x_NamePickerViewList と同じFormatで参照Viewの定義が行われ、NamePick.BTM.pushというFunctionでName PickerのListに追加しているように見えます。
if(haiku.bEnableDJX){NamePick.BTM.push({sViewTitle : <dwa:string id="L_DJX_DIRECTORY_TITLE"/>, DcS : '($DJXPeopleiNotesHier)', sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$64;JobTitle', nViewType : 1, aDefaultColumnWidths : [10], aDBPaths : ['*'], fnDisplayName : function (sTmp, Yc, CXb, Cwx){if(!Cwx.sViewInfo) return sTmp;var GoU=Cwx.sViewInfo.split(';')[5];if(Yc && Yc.getAttribute('name') == GoU && !CXb.jN()){var nPos=sTmp.indexOf('|');if(nPos != -1) sTmp=sTmp.substring(sTmp.indexOf('|')+1);} return sTmp;}} );NamePick.BTM.push({sViewTitle : <dwa:string id="L_DJX_DIRECTORY_TITLE_JOBTITLE"/>, DcS : '($DJXPeopleiNotesTitle)', sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$64;JobTitle', nViewType : 1, aDefaultColumnWidths : [10], aDBPaths : ['*'], fnDisplayName : function (sTmp, Yc, CXb, Cwx){if(!Cwx.sViewInfo) return sTmp;var GoU=Cwx.sViewInfo.split(';')[5];if(Yc && Yc.getAttribute('name') == GoU && !CXb.jN()){var nPos=sTmp.indexOf('|');if(nPos != -1) sTmp=sTmp.substring(sTmp.indexOf('|')+1);} return sTmp;}} );NamePick.BTM.push({sViewTitle : <dwa:string id="L_DJX_DIRECTORY_TITLE_PHONETIC"/>, DcS : '($DJXPeopleiNotesFlat)', sViewInfo : '$39;MAMailAddress;NPName;Type;AltFullName;', nViewType : 1, aDefaultColumnWidths : [10], aDBPaths : ['*']} );}
L_DJX_DIRECTORY_TITLE_JOBTITLE=DJX\u5f79\u8077\u9806
L_DJX_DIRECTORY_TITLE_PHONETIC=DJX\u3088\u307f\u304c\u306a\u9806
NamePick.Br = <dwa:string id="D_NAMEPICK_WINDOW_HEIGHT" quotes="none"/>;
NamePick.nViewListWidth = 300;
NamePick.BTM = [
// for Contacts
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '($PeopleGroupsFlat)',
// SPR# YJSI8FJ9DR: due to a change in the $PeopleGroupsFlat view in mail85.ntf, "Form" column is now "Type" column to stay in-sync with pubnames.ntf
// keep "Form", just in case "Type" fails
sViewInfo : '$39;MAMailAddress;NPName;Type|Form;AltFullName',
nViewType : 2,
aDBPaths : []
},
// for Catalog
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '($PeopleGroupsFlat)',
sViewInfo : '$39;MAMailAddress;NPName;$40;AltFullName',
nViewType : 3,
aDBPaths : ['*']
},
// for LDAP
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '',
sViewInfo : 'SummaryName;MailAddress;FullName;Type;AltFullName;AltFullNameLanguage;PreferredMailFormat',
nViewType : 4
},
// for normal directory
];
Serverを再起動すると以下のように表示されます。
2022/08/16 07:48:17AM Uncaught TypeError: Cannot read properties of undefined (reading 'oInfo')
2022/08/16 07:48:17AM http://domsrv4.acme.com/iNotes/Forms9.nsf/iNotes/Proxy/?OpenDocument&Form=l_CommonNamePickerCode&l=ja&gz&CR&MX&TS=20220815T093427,55Z&TSX=20220815T094909,72Z&EFF=%2FiNotes%2FForms9_x&charset=UTF-8: 4
iNotes宛先選択の表示順選択肢のCustomize
iNotesをDJX環境で利用しているUserもある程度はいらっしゃるのではないでしょうか?
標準のまま、iNotesをDJX環境で利用すると、以下のように、標準の表示順選択、DJXの表示順選択が表示され、非常に煩雑な状態になります。
この表示順の選択肢は、過去の記事にも書きましたが、標準の表示順選択肢、DJX特有の表示順選択肢の順で表示されます。
みなさんご存知のように、標準の表示順選択肢については、Forms9_x.nsfのSubformのx_NamePickerViewListを使ってCustomizeすることができます。
しかしながら、DJX特有の表示順選択肢については、Forms9_x.nsfのSubformのx_NamePickerViewListでCustomizeすることはできません。
というのは、DJXは組織Code/役職Codeから並び順を制御してアドレス選択リスト上の表示順を制御するようになっており、これが、Forms9.nsf本体で制御されているからです。
しかし、上記のような表示順選択表示では、少しUserにとっては不親切です。DJXかどうかなんて、Userは知ったことではありません。
では、少しだけ、見た目を変えて、シンプルな表示にしてみましょう。
通常必要なのは、以下の4種類ではないでしょうか?
・ 名前順(標準)
・ 部署階層(DJX)
・ 役職順(DJX)
・ よみがな順(DJX)
では、先ずは、DJX関係の表示名を変更してみましょう。全て先頭のDJXの文字を外すことにします。
みなさん、ご存知だと思いますが、iNotesの表示文字は、Forms9.nsfのResourceのFileに定義されているdwa_ja.properties内に記載されています。
以下の部分がDJX特有のものです。以下がAddress Picker Dialogで表示される表示順選択肢の文字となっています。
全て先頭に"DJX"が付いていることが分かります。
L_DJX_DIRECTORY_TITLE=DJX\u90e8\u7f72\u5225\u968e\u5c64
L_DJX_DIRECTORY_TITLE_JOBTITLE=DJX\u5f79\u8077\u9806
L_DJX_DIRECTORY_TITLE_PHONETIC=DJX\u3088\u307f\u304c\u306a\u9806
先頭に記載された"DJX"の文字を削除して保存し、ServerのForms9.nsfを置き換えます。
Serverを起動して確認すると、以下のように、"DJX"の文字が無くなったことが確認できます。
次に、標準で提供されている、「Notes名の階層」、「組織の階層」、「言語別」を消します。
「Notes名の階層」は殆どのUserがO(組織)のみでOU(組織単位)を使っていない場合が多く、全く無意味だと思いますし、「言語別」はDJX環境を使われている場合、全員日本語になっていて無意味です。
また、「組織の階層」はDJXの部署別階層で代替することができ、標準の「組織の階層」は組織Code順に並ばないので、並び順を重視する日本人には受けが悪いです(そのために、組織名の前に組織Codeを付加して組織名としているUserもいます)。
さて、標準のビューを消すために、まず、HCL iNotes Extention Forms(11)(forms9_x.ntf)を使い、ServerのiNotesフォルダにForms9_x.nsfを作成します。
Subformのx_NamePickerViewListを開き、「for normal directory」部分の以下の部分(「名前順」)以外を削除して保存します。
// for normal directory
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '($PeopleGroupsFlat)',
sViewInfo : '$39;MAMailAddress;NPName;Type;AltFullName',
nViewType : 1,
aDBPaths : ['*']
}
Serverを再起動すると、以下のように、シンプルな表示になります。
これで、分かりやすい表示になったのではないかと思います。
尚、最初に書きましたが、Viewの表示は、標準の表示順選択肢、DJX特有の表示順選択肢の順を崩すことはできません。
つまり、「部署の階層」を標準として先頭に表示することはできないのです。
どうしても「部署の階層」を先頭に表示したい場合は、DJXの選択肢を表示させないようにして、標準のViewの表示順序を変更するしかありません。
但し、その場合は、部署Code順に並べたり、役職Code順に並べたりすることはできなくなります。
皆さんも、是非試してみてください。
尚、Forms9.nsfのCustomizeはメーカーがサポートするものではありませんので、ご自身のリスクでお願いします。
iNotesの会議招集の会議室/リソース選択Dialogの高さ不足
iNotesをEdge(Chrome)/Firefoxで利用した際、V11.0.1FP5/V12.0.1FP1のiNotesのCalendarの会議招集作成画面で、会議室/リソースの検索画面で選択ダイアログの高さが足りず、会議室/リソース選択域とボタンが重なった状態で表示されるという障害があります。
この障害はEdge(Chrome)/Firefoxの両方で発生します。具体的には以下の部分ですが、Firefoxの場合は重なりが少なく軽傷です。
ボタンと選択域が完全に重なっている訳ではありませんので、操作上は支障はなく、単に見た目の問題です。
この障害は、iNotesのUI表示を行っているForms9の設計を修正することにより、回避することが可能です。
発生Version:V11.0.1FP5/V12.0.1FP1
発生Browser:Edge(Chrome)/Firefox
変更対象:Forms9.nsf
設計要素:Subform
【Edge(Chrome)】
設計名称: l_AppointmentEditCode_Safari
変更部分:function HZa(sId) 内の com_ibm_dwa_ui_dialog_height
変更前:com_ibm_dwa_ui_dialog_height="475px"
変更後:com_ibm_dwa_ui_dialog_height="495px"
【Firefox】
設計名称: l_AppointmentEditCode_Gecko
変更部分:function HZa(sId) 内の com_ibm_dwa_ui_dialog_height
変更前:com_ibm_dwa_ui_dialog_height="475px"
変更後:com_ibm_dwa_ui_dialog_height="490px"
変更すると、以下のように正常に表示されるようになります。
尚、Forms9.nsfの設計はシステムDBのため、Server稼働中に設計置換を行うことはできません。
Server停止してForms9.nsfを置き換えることになりますので、ご注意ください。
また、Forms9.nsfのCustomizeはメーカーがサポートするものではありませんので、ご自身のリスクでお願いします。