1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Kintoneでコメントをデフォルト非表示にする方法

Last updated at Posted at 2020-10-08

Kintoneでのコメント機能

kintoneでは詳細画面にコメント機能があるが、詳細画面を開いた時にデフォルトでコメントタブが開いてるのがたまにうざい時があるので、これをデフォルトで非表示にしたい。
kintoneが標準でコメントを無効にする機能を提供しているけど、これを使うとコメント機能自体使えなくなってしまうからね。コメント使いたいけどデフォルトでは表示したくない時にムカついてしまう。

やり方がどこにもまとまっていなかったので、残します。

スクリーンショット 2020-10-08 17.55.05.png

方法

まずは実際のコード。

tab_none.js
(function($) {
  'use strict';

  kintone.events.on('app.record.detail.show', function(event) {
    var hashParam = location.hash.substr(1).split('&');
    var paramList = {};
    
    hashParam.forEach( (value, index) => {
      var paramSplit = value.split('=');
      paramList[paramSplit[0]] = paramSplit[1];
    });

    if (paramList.tab == 'comments') {
      paramList.tab = 'none';
      location.hash = $.param(paramList);
    }
    
  });
})(jQuery);

解説すると、ここで、urlのハッシュのパラメータを取得して、パラメータごとに配列に格納している。

    var hashParam = location.hash.substr(1).split('&');

オブジェクトを生成して、そこにsplitで分けたパラメータ名と値で追加している


    var paramList = {};

    hashParam.forEach( (value, index) => {
      var paramSplit = value.split('=');
      paramList[paramSplit[0]] = paramSplit[1];
    });

tabcommentsになっているときにコメントタブが開くので、この条件でtabnoneにしてurlパラメータを更新している

    if (paramList.tab == 'comments') {
      paramList.tab = 'none';
      location.hash = $.param(paramList);
    }

注意点

この状態でコメント機能を使いたい時はコメントのタブをクリックすれば開くけど、リロードした時にはapp.record.detail.showのイベントが発火してまたコメントが閉じちゃうので注意が必要。

感想

kintoneではjQueryやvue.jsを使うことができるのでそれらをちょいちょい使っているのですが、jQueryにはオブジェクトをパラメータの文字列に変換できる$.param(object)がいるんですね。初めて知って感動した。

みんなも使おう。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?