特定のビューのみでガントチャートを表示させたい

ガントチャートプラグイン(https://developer.cybozu.io/hc/ja/articles/203716110 )を使用しています。

現状、作成したすべてのビューでガントチャートが表示されるのですが、ガントチャート確認専用ビューだけで表示されるようにしたいです。

desktop-ganttchart.js内にビューイベントを設定できる箇所があるのでしょうか?

kintone.events.on(‘app.record.index.show’, function(event) {
if (event.viewId !== 専用ビューID) {
return;
}

初心者ですので、まったくの的外れかもしれません。

アドバイスをよろしくお願いいたします。

ご質問内容に関して、1つ確認です。

 

こちらのzipファイルをプラグインとして読み込んで利用されているという理解であってますか?
https://developer.cybozu.io/hc/ja/articles/203716110#step4

もしそうだとすると、上記のzipファイルの中身はこちらの記事の内容に準拠したものとなっているはずです。

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

 

この記事にあるコードではビューの区別をしてないみたいです。

方針としては、https://github.com/kintone/plugin-examples/tree/master/examples/ganttchart の JavaScript を修正してビューIDを判定する処理を入れ、プラグインをご自身でパッケージングする、という流れで対応可能と思われます。もし、特定のアプリでのみ利用する場合は、プラグインにせず JavaScript のカスタマイズとして適用する方法もありだと思います。

早速のアドバイスありがとうございます。

> こちらのzipファイルをプラグインとして読み込んで利用されているという理解であってますか?
>https://developer.cybozu.io/hc/ja/articles/203716110#step4

はい、そのとおりです。

JavaScriptを修正してみます。

ちなみにdesktop-ganttchart.js内の↓のあたりにビュー判定する処理を入れようとJavaScriptを勉強しながら試行錯誤しています。

完全な的外れであればご教示いただきたいです。

data: [],
init: function() {
var self = this;
kintone.events.on(‘app.record.index.show’, function(event) {
if (!self.settings.config) {
return;
}
if (typeof self.settings.config.settingColors === ‘string’) {
self.initSetting();
}
var ganttBox = self.uiCreateGanttBox();
self.data = [];
self.getRecordsData(event.records, ganttBox, function() {
// Put to jquery gantt and render
self.gantt(ganttBox);
});
});

 

解決しました!

勉強になりました。ありがとうございました!

返信が遅くなりました。

無事解決したようで良かったです!

この案件に関しての質問です

解決したとありましたが、結局のところ具体的にdesktop-ganttchart.jsのどこにどのようなことをしたらそれができたのかを知りたいです

まだ全くの初心者です

表題中の

kintone.events.on(‘app.record.index.show’, function(event) {
if (event.viewId !== 専用ビューID) {
return;
}

をどこかに追加するものだと思っていますが、その認識であっていますでしょうか?

「専用ビューID」は全角日本語を書いても大丈夫でしょうか?

専用ビューが複数ある場合はどのように表現したらよいでしょうか?

どなたかあたたかいアドバイスよろしくお願いいたします

Miyawakiさん

いまだ初心者のままの質問者です。

desktop-ganttchart.js内に

kintone.events.on(‘app.record.index.show’, function(event) 

の記載箇所がありますので、そこに

if (event.viewId !== 専用ビューID) {
return;
}

を追記して、プラグインを再パッケージしました。

ただ、私の場合、安藤様アドバイスの方法(下記)のが適していたのかなとは思います。

> もし、特定のアプリでのみ利用する場合は、プラグインにせず JavaScript のカスタマイズとして適用する方法もありだと思います。

ビューID(viewId)は日本語ではないです。一覧表示しているときのURLで確認できます。

日本語ということは、viewNameではないでしょうか?

こちらの記事が参考になると思います。https://developer.cybozu.io/hc/ja/articles/202905604

当時、この記事を見つけられていたらいろいろと解決できていたような気がします。

私に回答できることはこの程度になってしまいます。

(他の方の回答もあるといいのですが、、)

Chimeeさん
コメントありがとうございます。

私も超初心者です。非常に助かります。ありがとうございます。

専用ビューIDの件了解しました。フィールドコードを書くのと勘違いしてました。

確認ですが、 !==専用ビューID と書いてあるので指定した専用ビューID以外で表示させる書き方ですよね?

複数ビューID以外のみで表示させたいときは !==専用ビューAのID,専用ビューBのIDという風に書いたらなりますか?

 

 

あとプラグイン再パッケージはできそうですが、安藤様のアドバイスの JavaScript のカスタマイズとして適用する方法は

JSEdit for kintoneで何かJavaScript を書いてアップロードするとなると思いますが、どのようにされましたか?

JavaScriptの基本文法については、本筋と離れてしまいますので勉強するしかないです。(私もですが)

"javascript if and条件"とかjavascript 複数条件"で検索すればわかりますが、&&を使います。

また、再パッケージで解決しましたので、kintone JavaScript カスタマイズは試していません。

https://developer.cybozu.io/hc/ja/articles/360000387883(kintone JavaScript カスタマイズ)

Chimeeさん

お手数をお掛けしましたが、ありがとうございました。

私の方も再パッケージで特定の1件の表示にのみ適用が確認できました

本当にたすかりました。感謝。感謝です!

複数部分の条件に付きましてはこちらで何とか勉強して対応してみます

解決されたようで良かったです!

実は最近3年ぶりにkintoneを再勉強し始めたばかりです。

(本コメント自体に気づけて良かったです。)

お互いにがんばりましょう!!