警告
jQuery UIはv1.13をもってメンテナンスモードになりました。
この記事で紹介しているカスタマイズでは、ダイアログの表示にjQuery UIを利用しています。
SweetAlert
や
Micromodal
などのダイアログを表示するその他のライブラリを使うよう、コードの書き換えを検討してください。
はじめに
打合せなど予定に関するメールを受信したら、1クリックでスケジュールに登録できると便利ですよね。
今回は、メールの本文に日時が含まれているメールをGaroonメールで受信したら、Garoonスケジュールへ簡単に登録できるカスタマイズを紹介します。
このカスタマイズは、Cybozu Days 2019でも紹介したカスタマイズです。
注意事項
- クラウド版Garoonまたはパッケージ版Garoon 5以上の環境が必要です。
- カスタマイズでGaroonがサポートしないDOM操作しています。Garoonのアップデートにより、機能を利用できなくなる可能性があります。
完成イメージ
このカスタマイズは、メール画面の構成で 3ペイン(プレビュー表示) 設定のプレビュー画面のみに適用されます。
-
メールのプレビュー画面で、メールの内容に日時が含まれていた場合、リンクが設定されます。
リンクが設定される日時のフォーマットは「 リンクが設定される日時のフォーマット 」を参照してください。 -
リンクをクリックすると、予定を登録できるポップアップが表示されます。
ポップアップの初期値は次のとおりです。項目 設定される初期値 日付 リンクが設定された日付部分 参加者 ログインユーザー
他のユーザーを追加する場合は、登録後の予定を編集してください。タイトル メールのタイトル 時刻 リンクが設定された時刻の部分
終了時刻が本文にないとき:開始時刻+1時間後の値が設定されます。
時刻部分が本文にないとき:0:00 - 0:00が設定されます。メモ なし -
項目を入力し、[登録する]ボタンをクリックすると、Garoonスケジュールに予定が登録されます。
リンクが設定される日時のフォーマット
リンクが設定される日時のフォーマットは、次のとおりです。
日付部分 | 時刻部分 |
---|---|
|
|
日付
日付 時刻
(間にスペースが必要)では、リンクされますが、「時刻」のみはリンクされません。- 日付や時刻の数字は、0埋めなしでもリンクされます。
例:11月2日(水)9:00〜12:00
11/02 09:00〜12:00
- 曜日の括弧分は半角・全角どちらでもリンクされます。
カスタマイズの適用
このカスタマイズでは、次の外部ライブラリを利用しています。
- jQuery v3.4.1,
ドキュメント
- https://js.cybozu.com/jquery/3.3.1/jquery.min.js
- jQuery UI v1.12.1,
ドキュメント
- https://js.cybozu.com/jqueryui/1.12.1/jquery-ui.min.js
- Garoon html/css/image-Kit for Customize
ドキュメント Garoonデザインに調和するスタイルシートです。
手順
設定には、Garoon管理者権限が必要です。手順の詳細は「 Garoon全体のカスタマイズ 」を参照してください。
- Garoonシステム管理画面を開きます。
- [基本システムの管理]タブを選択し、[カスタマイズ]をクリックします。
- [JavaScript/CSSによるカスタマイズ]をクリックします。
- [カスタマイズグループを追加する]をクリックします。
- 以下の内容を入力します。入力が終わったら、[追加する]をクリックします。
項目名 設定値 カスタマイズ 「適用する」を選択します。 カスタマイズグループ名 任意の値を入力します。
この記事では「メール予定登録」とします。適用対象 カスタマイズを適用するユーザーやグループを選択します。 JavaScriptカスタマイズ 次の順で指定します。 - https://js.cybozu.com/jquery/3.4.1/jquery.min.js
- https://js.cybozu.com/jqueryui/1.12.1/jquery-ui.min.js
- カスタマイズファイル(mail_to_schedule.js)
カスタマイズファイルの入手方法
CSSカスタマイズ 次の順で指定します。 - grn_kit.css(Garoon html/css/image-Kit for Customize)
grn_kit.css(Garoon html/css/image-Kit for Customize)の入手方法 - カスタマイズファイル(grn_kit_icon.css)
カスタマイズファイルの入手方法 - カスタマイズファイル(mail_to_schedule.css)
カスタマイズファイルの入手方法
カスタマイズファイルの入手方法
カスタマイズファイル一式は、 mail_to_schedule.zip よりダウンロードしてください。内容は次のとおりです。
- mail_to_schedule.js
- 全体JSカスタマイズに適用します。記事執筆時点(2019年11月)でGaroonメールの要素を取得するAPIは存在しないため、DOM操作をしています。
- このカスタマイズでは、ES6以上の記法を利用しています。
- gr_kit_icon.css
- Garoonデザインに調和する、スケジュール登録のポップアップに表示しているアイコンです。
- mail_to_schedule.css
- スケジュール登録のポップアップのスタイルシートです。
grn_kit.css(Garoon html/css/image-Kit for Customize)の入手方法
- https://github.com/garoon/css-for-customize にアクセスします。
- [Clone or download]ボタンをクリックして、[Download ZIP]を選択します。
- ダウンロードしたzipファイルを解凍します。
- 解凍したファイルの「css」フォルダー以下の「grn_kit.css」を利用します。
ソースコードの解説
日時の抽出
メール本文の時刻は正規表現で抽出しています。パターンに一致する文字列があれば、スケジュール登録のポップアップを表示するリンクを設定します。
正規表現パターンを定義
|
|
メール本文からパターンを抽出
|
|
スケジュール登録のポップアップを表示するリンクを設定
|
|
Garoonスケジュールへ予定を登録
Garoonスケジュールへの予定登録は、 予定を登録する APIを実行しています。
|
|
|
|
動作確認
-
Garoonメールで受信できるメールアドレス宛に、日時を含む内容でメールを送信します。
例:1 2 3 4 5 6 7 8 9 10
山田様 打合せの候補日ですが、以下のご都合はいかがでしょうか? 12/9(月) 9:00〜 12/10(火) 13:00〜 12/10(火) 15:00〜 12/11(水) いつでも よろしくおねがいします。
-
Garoonメールでメールを受信します(参考: メールの受信 )
-
プレビュー画面で、予定を登録したい日付のリンクをクリックします。
-
表示されたポップアップに、予定の詳細を入力します。入力が終わったら、[登録する]ボタンをクリックします。
-
予定が登録されます。登録後は、登録した予定の詳細画面に自動で遷移します。
おわりに
他にもcybozu developer networkでは、さまざまな Garoonカスタマイズ を紹介しています。ぜひ参照してください。
このカスタマイズでは、次のAPIを利用しています。
- Garoon REST API
この記事の内容は、2019年11月版Garoonで動作を確認しています。