Friday, September 5, 2014

Alfresco Community 5.0の検索BOXとIMEの相性が悪い

こんにちは。おおたにです。

Alfresco Community 5.0.aの検索BOX(画面右上の検索ツール)ですが、4.2系から若干仕様が変わり、日本語IMEとの相性が悪いようです。具体的には、日本語変換を確定させる時にEnterキーを押すと、そのまま検索が実行されてしまいます。検索文字列を追加入力できず、とても不便です。なお、この現象はChromeでは起きず、IE、Firefoxでのみ発生します(Safariでも起きるかもしれないです)。

原因は、検索BOXのキー入力イベントの拾い方にあるようです。Alfrescoのコードを見てみると、4.2系ではEnterキーのkeydownを拾って検索を行っているのですが、5.0.aではkeyupを拾うようになっています。IMEでの日本語変換確定時のイベント発火はブラウザによって異なりますが(詳しくはこちら)、この結果として一部のブラウザで日本語変換確定時に検索も実行されてしまうようです。

これを直すには、従来のようにEnterキーのkeydownで検索を行うようにすればよいので、当該箇所(SearchBox.jsの255目くらい)を以下のように修正します。また、このSearchBox.jsを圧縮したSearchBox-min.jsも新しく作り直します。オンラインのJavaScript圧縮サービスなどを利用してください。修正部分はクライアントサイドJavaScript(静的ファイル)なので、Alfrescoの再起動は必要ありません(ブラウザのキャッシュクリアくらいは必要かも…)。

<tomcat_dir>/webapps/share/js/alfresco/header/SearchBox.js
...
DomAttr.set(this._searchTextNode, "id", "HEADER_SEARCHBOX_FORM_FIELD");
DomAttr.set(this._searchTextNode, "placeholder", this.message("search.instruction"));
// on(this._searchTextNode, "keyup", lang.hitch(this, function(evt) {
on(this._searchTextNode, "keydown", lang.hitch(this, function(evt) {
   this.onSearchBoxKeyUp(evt);
}));
...

これでChrome以外のブラウザでも日本語変換確定時に検索が行われないようになりましたでしょうか。keyupをkeydownに変更することによる副作用はまだ詳しく調査していませんが、ひとまずはこの修正で様子を見てみようと思います。

Monday, September 1, 2014

第23回Alfresco勉強会が開催されました

こんにちは。てらしたです。ちょっと報告が遅くなってしまいましたが、先日8/24(水)に第23回Alfresco勉強会が開催されました。
今回は参加者の方がまだあまりAlfrescoを触っていないとのことだったので、用意していたWorkdeskの検索テンプレートの作り方の発表は再度保留にして、より入門的な内容の発表のみにしました。Workdeskについては次回、ある程度Alfrescoを使っていてカスタマイズ等にも興味がある参加者が多い場合にご紹介したいと思います。とはいえ今回のように初心者の方が多い可能性もあるため、入門っぽい内容のものも用意しておこうかなと考えています。

Alfresco Community 5.0をインストールする

発表資料はこちら

Community Editionの最新版である5.0.aのインストーラを配布し、実際に手元の環境にインストールして起動してみよう、という内容で弊社の大谷の発表でした。Windowsの場合にハマるポイントと解決方法の紹介があったり、最後に余談として5.0の新機能の紹介もあったり、Alfresco初心者の方への内容としては非常によかったのではないかと思います。

次回の勉強会は10月15日(水)に開催予定です。たくさんの方のご参加をお待ちしております。参加申し込みはこちらからお願いします。