cybozu developer network

カテゴリー内の他の記事

To Do をガントチャートで表示する

Index

概要

To Doアプリのレコード一覧をガントチャート形式で表示するサンプルです。

  • レコード一覧画面で、表示するレコードがある場合にガントチャートを表示します。
  • 優先度フィールドの値に応じてガントチャートの色を変えています。
  • 年月日の表示は、ユーザーの言語設定に応じて変更します。

その他、詳細な仕様はプログラムでご確認ください。

完成形

事前準備

サンプルプログラム

サンプルプログラムでは、Cybozu CDN の利用、JavaScript と CSS のサンプルを紹介します。

ご注意事項

  • サンプルプログラムは、その動作を保証するものではありません
  • サンプルプログラムの技術的なサポート等は行っていません

PC用のJavaScriptファイル

詳細設定から「JavaScript / CSSによるカスタマイズ」を開き、Cybozu CDN から次のライブラリを指定します。

  • jQuery
    https://js.cybozu.com/jquery/2.1.1/jquery.min.js  (version 2.1.1を利用)
  • jQuery.Gantt
    https://js.cybozu.com/jquerygantt/20140623/jquery.fn.gantt.min.js (version 20140623を利用)

JavaScriptサンプル

  • 次のサンプルプログラムをエディターにコピーして、ファイル名を「sample-ganttchart.js」 、文字コードを「UTF-8」、「BOMなし」で保存します
    ※ファイル名は任意ですが、ファイルの拡張子は「js」にしてください

PC用のCSSファイル

詳細設定から「JavaScript / CSSによるカスタマイズ」を開き、Cybozu CDN から次のライブラリを指定します。

  • jQuery.Gantt
    https://js.cybozu.com/jquerygantt/20140623/css/style.css (version 20140623を利用)

CSSサンプル

バリエーションを持たせるために、自前で別の色を指定します。 省略しても動作します。

  • 次のサンプルプログラムをエディターにコピーして、ファイル名を「sample-addin.css」 、文字コードを「UTF-8」、「BOMなし」で保存します
    ※ファイル名は任意ですが、ファイルの拡張子は「css」にしてください

設定した画面

「JavaScript / CSSによるカスタマイズ」画面でそれぞれ設定した例を紹介します。

JavaScript / CSS ファイルの設定は以上です。
アプリのトップページへ移動し、サンプルデータを登録してカスタマイズした結果を確認してください。

使用したAPI

  1. イベントハンドラーを登録する
  2. フィールド要素を取得する
  3. デザインのバージョンの取得
  4. ログインユーザーの情報を取得する

デモ環境

https://dev-demo.cybozu.com/k/57/

※デモ環境についての説明はこちら

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
kobayashi

この通りにやってみたのですが、表示されません。
エディターに改行コードを指定する箇所があるのですが、そこに関係があるのでしょうか?
お教えくだされば幸いです。

Avatar
kobayashi

jqueryのバージョンは、Cybozu CDN には、2.1.4しかないのですが、
https://js.cybozu.com/jquery/2.1.4/jquery.min.js
を使うべきでしょうか? (変えてみましたがやはり表示されないです)

Avatar
saberin

こちのGanttライブラリいかがでしょうか。https://github.com/mbielanczuk/jQuery.Gantt
例 ⇒ http://mbielanczuk.com/upload/gantt-demo/index.htm
1.休日、祝日はチャットの図面の下部まで見れる
2.依存関係が線でわかる。

もう一点ですが、上記sample-ganttchart.jsでは
records[i]['From']['value']、records[i]['To']['value']の値をCHKしていないようです。私の検証では、もしFromの値を未定義のままで、このチャットのViewに入ると、ブラウザ(Firefox)が無反応になり、ブラウザを再起動することが必要。
if (records[i]['From']['value']==undefined) {return;}
   if (records[i]['To']['value']==undefined) {return;}
if (records[i]['Priority']['value']==undefined) {return;}
をLine70に追加すればどうでしょうか

Avatar
Mayumi Iwasa
java初心者です。 提示いただいた通りに実施し、ガントチャート表示ができたのですが Todo名の横に、担当者を表示できるようにしたいのですが scriptが解読できないため、どうしたらよいかお教えいただけますと幸いです。
Avatar
saberin

新しいガントチャートのプロジェクトを作成中です。興味がございましたら、ぜひ試してください。

http://tristan-lin.github.io/jQueryGantt/

Avatar
北島 清孝

キントーン初心者です、ガントチャートを使用したく、上記URLからダウンロードし設定を行っていますが、正常に表示されません。

何処に問合せを行えば回答を返していただけるかなど、サポートをしていただける情報を教えていただけないでしょうか。

よろしくお願い致します。

Avatar
Daisuke Iio

saberin様
http://tristan-lin.github.io/jQueryGantt/
からwikiの実装方法のページにある
Js20とCSS5を追加してみて
ガントチャートのボタン表示までは実行できたのですが、
ガントチャート画面に表示がされません。

この実装手順以外になにか実施する内容ありますか?
教えていただければ幸いです。

Avatar
saberin

diio様

以前動作するはずですが、最近触っていないので、もしかしてAPIの変更があるかもしれません。もしDev Consoleでエラーメッセージなどあれば、教えてください。近いうちに、検証環境を構築して試します。

Avatar
saberin

diio様 デモ環境作成しました。入れば、設定方法がすべてわかれると思います。テスト用のメールアドレスがあれば、招待いたします。

Avatar
Daisuke Iio

saberin様
メールアドレスどのように連絡すればいいでしょうか?

Avatar
Mo

sample-ganttchart.jsのサンプルコードをそのままコピペすると、エラーが発生するので、以下のようにLine96から、コードを修正するときちんとガントチャート表示されました。

【修正前】



【修正後】

Avatar
cybozu Development team

Mo様

コメントいただきありがとうございます。cybozu developer Network事務局です。
ご指摘いただきました sample-ganttchart.jsのサンプルコードについて、ソースに誤りがございましたので修正致しました。
今後ともcybozu developer Networkをよろしくお願い致します。

Avatar
takokichi

ガントチャートを実装しました。

進捗状況がみやすくとてもよいプラグインだと思います!

1点要望があります。

ガントチャート上で☆(ブックマーク)を表示すると添付のようにブックマークが隠れてしまいます。

修正していただくことはできませんでしょうか。

Avatar
cybozu Development team

takokichi様

お世話になっております。

現在ガントチャートプラグインはアップデート中のため、ご指摘いただいた点を反映する方向で検討いたします。

今回は暫定版として古いバージョンから修正を作成しました。以下からダウンロードできますので動作確認をお願いします。

<リンク削除済>

 

cybozu Development teamにより編集されました
Avatar
takokichi

cybozu Development team 様

回答ありがとうございます。

頂いたリンクですが、「お探しのページが表示されません」と表示されます。

こちらのオペレーションが誤っているのでしょうか。

 

Avatar
cybozu Development team

takokichi様

失礼いたしました。権限が必要なエリアに添付してしまっていたようです。

たびたびご面倒をおかけしますが、こちらのリンクをお試しいただけますでしょうか。

<リンク削除済>

cybozu Development teamにより編集されました
Avatar
takokichi

cybozu Development team 様

 

返答が遅くなり申し訳ありあmせん。

プラグイン取得できました。

ブックマークが表示されることも確認できました。対応ありがとうございました。

プラグインもデザインが改善されており使いやすくなりました。

ありがとうございました。

Avatar
takokichi

このガントチャートですが、アプリにあるすべての一覧で表示されていますが、

表示したくない一覧もあります。

一覧により表示、非表示を切替えることはできますか。

よろしくお願いします。

Avatar
cybozu Development team

takokichi様

ご質問の件ですが、現状のプログラムの仕様としては、一覧により表示非表示を制御することはできません。

もしプログラムを改修するとすれば、一例ですが、以下のような開発が考えられます。

  • 設定画面側でユーザーに表示したい一覧名を入力させる
  • JavaScript側で、一覧名に合致しなければ処理を続行しないなどの処理を追加する

プログラムはこちらで公開しております。プラグインの再パッケージ化の手順はこちらになります。

また、開発時のQAについてはコミュニティの方にご質問いただければと思います。

あまりお役に立てず申し訳ございませんが、よろしくお願いいたします。

Avatar
kyoden

フィールドの上のガントチャートの「TO DO名」の横に「担当者」を表示させたいのですが、

どのようにコードをいじればよいのでしょうか?

初心者であるためわかりません。

 

また、締め切り期限を過ぎたらアラートが表示されるようにしたいのですが、

それは難しいでしょうか?

 

どなたかお教えいただけると幸いです。

Avatar
cybozu Development team

kyoden様

コメントいただき、ありがとうございます。

jQuery.Ganttで2つの要素を表示したい、ということですね。

本記事のサンプルプログラムの場合、116行目の後に以下の一行を追記することで、大項目(nema)、中項目(desc)といったような表現ができるようになります。

desc: escapeHtml(records[i]['対象フィールドのフィールドコード']['value']),

詳しくはこちらのサイトをご確認ください。

http://taitems.github.io/jQuery.Gantt/

※サンプルアプリのように担当者をユーザー選択フィールドにしてる場合、オブジェクトで取得されますのでご注意ください。

各フィールドの形式はこちらでご確認いただけます。

 

コメント欄は記事に直接関係するコメントをお願いしており、恐れ入りますがアラートの件に関しましてはこちらではなく、コミュニティをご活用いただけますと幸いです。

なお、締め切り期限を過ぎた場合のアラート表示ですが、どのような形で表示するかによって実現方法が変わります。

例えば、「担当者に通知が欲しい」(標準機能で実現できます)や「ログインユーザーが担当者になっているタスクが期限を過ぎている場合にポップアップ画面を出す」など具体的に記載いただくと、求める回答が得やすくなると思います。

お手数ですが、よろしくお願いいたします。

Avatar
Okamoto

はじめまして。

・ガントチャートのタイトル、サブタイトルの表示文字数を増やしたい

・初期表示で、スケールを半日(12時間)単位としたい

以上のようにはできないものでしょうか?

ご教授いただけましたら幸いです。

よろしくお願い申し上げます。

 

 

 

 

Avatar
cybozu Development team

Okamoto様

ご質問の件です。

>・ガントチャートのタイトル、サブタイトルの表示文字数を増やしたい

CSSを変更することで可能です。

たとえば比較的簡単な方法としては、タイトルの文字サイズを小さくすることで実現できるかと思います。

class名は、開発者ツールの「Elements」タブで確認できます。

例: .fn-gantt .leftPanel .fn-label { font-size: 10px;}

 

>・初期表示で、スケールを半日(12時間)単位としたい

以下JavaScriptの132行目のコメントにも記載のとおり、jQuery.Ganttの仕様で、12時間単位はありません。

 scale: 'days', // days,weeks,months

なお、ガントチャートはサンプルプラグインもございますのでよろしければお試しください。

https://developer.cybozu.io/hc/ja/articles/203716110

 

こちらのコメント欄は、フィードバック欄として活用いただけます。

シナリオに沿っていない技術的なご質問は基本的に受けかねますので、今後はcybozu developer コミュニティをご活用ください。

Avatar
sunshine

kitone初心者です。ガンチャートのカレンダー部にTODO名ではなく、作業者を表示させたいのですが可能でしょうか?

Avatar
cybozu Development team

sunshine 様

お世話になっております。cybozu developer network 運営局です。

はい、作業者を表示させることは可能です。

それぞれ以下の行で escapeHtml(records[i]['To_Do']['value']) となっている部分を、作業者フィールドに設定されている値に変更すると表示されるかと思います。

  • マウスをあてたときに表示される詳細のタイトル:103行目
  • 日付部分に表示されるタイトル:121行目

作業者フィールドの形式については フィールド形式 をご参照ください。

 

なお、記事のコメント欄は、記事に対するフィードバックを受け付ける場所となっております。
機能追加・機能変更などのカスタマイズに関する質問は、恐れ入りますが、コミュニティにてお願いいたします。

Avatar
Yasuosa

すみません、読解不足かもしれませんが教えてください。

 

>次のサンプルプログラムをエディターにコピーして

どこにサンプルプログラムがあるかわからないため

場所を教えていただけませんでしょうか。

お手数ですが、よろしくお願いいたします。

Avatar
sunshine

Yasuosa様

恐らく仰っているのはこのページの上部にある、

JavaScriptサンプル

の下に書かれている文言のことだと思うのですが、背景が黒い部分にJavaScriptのコードが書かれています。

黒い背景の右上に「Copy」ボタンがありますので、そのボタンを押しWindowsに標準で入っているメモ帳にペーストして名前を付けて保存してくださいってことです。

Avatar
Yasuosa

sunshine

 

ご回答いただきまして有難うございました。

Copyボタンが表示されておらず、ブラウザのせいで表示されていないのかもしれません。

過去コメントにプラグインがあるとのことなので、一旦こちらで試させていただきます。

Avatar
cybozu Development team

泉 宏樹 様

お世話になっております。cybozu developer network 運営事務局でございます。

ガントチャートの描画は jQuery.Gantt で行っているため、jQuery.Gantt のコードを改修する必要があるかと思います。

こちらのコメント欄は記事内容のフィードバック目的となっており、
直接的に記事と関連がない、または技術的なご質問はcybozu developer コミュニティをご活用ください。
有志により回答が得られる場所となります。

よろしくお願い致します。

Avatar
泉 宏樹

すみません。

コミュニティーの方で投げてみます。

返答ありがとうございました。

尚、コメント画像に弊社情報も記載されていましたので、コメント削除しました。

サインインしてコメントを残してください。