通知画面でのjsについて

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

通知の一覧画面でjsを利用することはできるのでしょうか?

ご教示頂ければ幸いです。

 

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

こんにちは。

下記記事のように、通知画面のカスタマイズはできます。

https://qiita.com/Naoto00/items/05da7e5ab26a4693de4f

ただ公式のapiがないため、DOM操作になってしまうので公式では非推奨となっています。

wenxit様

 

ご返信ありがとうございます。

アプリごとに条件によって非表示・非表示切り替えたり、編集不可等を利用してますが

通知から見てしまうとまったくもって台無しになってしまうので何とかしたいなと思っていました。

簡単ではなさそうですね。。。

通知画面(/k/#/ntf/mention)で通知を選択した際に画面が移行し、左側に通知が並び

右側にレコードを表示していますが、このページを表示させない。または通知画面で該当の通知を選択した際に

アプリのレコードへジャンプさせるなんてことはできないでしょうか?

 

 

 

青山昌司 様

>右側にレコードを表示していますが、このページを表示させない。または通知画面で該当の通知を選択した際に

>アプリのレコードへジャンプさせるなんてことはできないでしょうか?

やると思えばできると思いますが、dom操作になるので、

今後kintoneのアップデートによって動作しなくなる可能性があります。

 

一点気になることがありますが、

「通知から見てしまうとまったくもって台無しになってしまうので」というのは、

通知のどの部分で何が見えてしまうのか、もう少し具体的に教えて頂いてもよろしいでしょうか?

wenxit様

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

ポータルの通知ボタンまたは、通知を選択後、右上のマークが詳細表示になっているときです。

この場合、画面左に通知の列ができ、右側にレコードが表示されています。

この画面ではアプリにインストール済みのjs(表示・非表示の切替や編集不可)が機能していません。

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

青山昌司 様

お世話になっております。ご確認頂きありがとうございます。

>画面左に通知の列ができ、右側にレコードが表示されています。

右側に表示されているのは、レコード詳細画面かと思いますが、
レコード詳細画面のイベントは、「通知を開いて表示されるレコード詳細」も発火対象なので、
通知画面でも同じくjsが適用されると思いますが、レコード詳細画面ではないということでしょうか…?
https://developer.cybozu.io/hc/ja/articles/201941974

wenxit様

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

通知を開いて表示されるレコード詳細のことです。

この通知の詳細表示の画面で編集を開始した場合に利用できないという状況です。

説明がうまくできなくて申し訳ありません。

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

青山昌司 様

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

var events = [
‘app.record.detail.show’,
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.フィールドコード’,
‘app.record.edit.change.フィールドコード’];

上記イベントでjsを適用して、通知画面でレコードを編集するときの動作を試してみましたが、
フィールドの表示・非表示は適用されていました。こういった状況ではないでしょうか?

wenxit様

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

おっしゃる通りの内容で通知画面でのレコード詳細が正しく動いていなかったわけですが

理由がわかりました。

アプリの説明の部分を非表示にするコードを入れていましたが

通知画面ではアプリの説明がないようでエラーが出ていました。

通知画面でアプリの説明がない以上回避できないですよね。。。

回避する方法がありましたらご教示いただけますと幸いです。

 

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

 

(function() {
“use strict”;

var events = [
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.index.show’,
‘app.record.detail.show’
];

kintone.events.on(events, function (event) {

//console.log(document.getElementsByClassName(‘gaia-argoui-app-info-content’)[0]);

document.getElementsByClassName(‘gaia-argoui-app-info-content’)[0].style.display=“none”;

var elem = document.getElementsByClassName(‘gaia-argoui-app-info-icon’)[0];
elem.addEventListener(‘click’, function(click) {

if(document.getElementsByClassName(‘gaia-argoui-app-info-content’)[0].style.display === “none”) {
document.getElementsByClassName(‘gaia-argoui-app-info-content’)[0].style.display=“block”;
} else {
document.getElementsByClassName(‘gaia-argoui-app-info-content’)[0].style.display=“none”
}
}, true);
});
})();

 

 

 

青山昌司 様

なるほど、アプリの説明部分ですね…!!理解しました。

アプリの説明部分のDOM要素が存在するかをまずif文で確認して、
存在する場合のみ非表示コードを発火させれば、
エラーが解消されてその後の動作に影響しなくなると思いますが、
お試し頂いても良いでしょうか?(自分の環境ではエラーが解消されました)

kintone.events.on(events, function (event) {

if(document.getElementsByClassName('gaia-argoui-app-info-content').length){

  //アプリの説明部分を非表示にする部分のコード

})
});

wenxit様

 

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

できました!ご教示ありがとうございます。

複数のアプリで今回のコードが入っていたので、通知のレコード詳細の編集画面はそんなもんなんだと思っていました。

エラーを確認するべきですね。。。

また一つ勉強になりました。

今後ともよろしくお願いいたします。

 

青山昌司 様

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

無事に解決されてよかったです!
通知画面の場合、アプリの説明部分は表示されないこと、
自分も今回で気づきました。勉強になりましたm(_ _)m

今後ともよろしくお願いいたします。