新規投稿
フォローする

お知らせ、通知の表示位置について

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

 

kintoneのポータル画面で表示されるお知らせと通知の位置を変更することは可能でしょうか?

お知らせが長文であったり、添付した画像サイズによっては通知が下へスクロールしなければ見れない状態になってしまいます。

 

よろしくお願いします。

 

0

7件のコメント

Avatar
rex0220

Taiki Goto さん

kintone全体のカスタマイズ になります。

画面表示するまで待つ必要がありますので、300 ms は適当に調整してください。

ループ処理で、表示するまで待ってもいいです。

 

window.onload = function(){
// console.log('load', location.hash);
if (location.hash === '#/portal') {
console.log('load', location);
setTimeout(function() {
var ele1 = document.getElementsByClassName('ocean-portal-widget');
if (ele1.length > 0) {
ele1[0].parentNode.appendChild(ele1[0]);
}
}, 300)
}
}
0
Avatar
Taiki Goto

rex0220様

 

コードの提示までありがとうございます。

希望通りの画面が実現できました。

 

アプリのカスタマイズは経験済みですが、kintone全体のカスタマイズは経験が無く、非常に助かりました。

0
Avatar
rex0220

他のkintone画面から、ポータルに遷移した場合、onload が発生しないようです。

下記で試してみてください。

function potalChange() {
if (location.hash === '#/portal') {
console.log('load', location);
setTimeout(function() {
var ele1 = document.getElementsByClassName('ocean-portal-widget');
if (ele1.length > 0) {
ele1[0].parentNode.appendChild(ele1[0]);
}
}, 500)
}
}
window.onload = potalChange;
window.onhashchange = potalChange;
2
Avatar
Taiki Goto

rex0220様 

 

重ね重ねありがとうございます。

onloadでは再度ページを読み込みを行わないと動作しないということですね。

 

大変参考になりました。

0
Avatar
SiGeN

上記記事参考にさせて頂いております。

プログラムを使わせ頂いたところ、Kintoneの左上のロゴを押下して遷移した際に

potalChange()が2度実行されてしまい、表示が上手く行きません。

回避策はありませんでしょうか?

 

人様の記事で恐縮ではありますが、ご回答頂ければ幸いです。

0
Avatar
rex0220

内容をすっかり忘れています。

対策としては、2回実行させないようにするか、2回実行しても問題ないようにするかですね。

2回実行させないようにすると今度は抜けが出そうですので、2回実行しても問題ないようにしてはいかがですか?

通知の部分が先頭にあるか判定を入れればいいと思います。

1
Avatar
SiGeN

rex0220様

 

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

僭越ながらコードを修正させて頂きました。(やっつけコードで恥ずかしいですが・・・)

function potalChange() {
if (location.hash === '#/portal') {
console.log('load', location);
setTimeout(function() {
var ele1 = document.getElementsByClassName('ocean-portal-widget');
if (ele1.length > 0 && (ele1[0].children[0].className === 'ocean-portal-announcement')) {
ele1[0].parentNode.appendChild(ele1[0]);
}
}, 300)
}
}
window.onload = potalChange;
window.onhashchange = potalChange;

ご教授頂いた通り、ClassNameで通知かどうかを判断して実行するようにしました。

お力添えいただきありがとうございます。

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