# 最新コメント投稿日が7日以内ならリストの一部を色づけ

**URL:** <https://community.cybozu.dev/t/topic/8285>\
**Category:** kintone 開発相談\
**Created:** [2023 年 10 月 31 日午前 7:03 UTC](https://community.cybozu.dev/t/topic/8285 "2023-10-31T07:03:04Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![futamu](https://avatars.discourse-cdn.com/v4/letter/f/919ad9/32.png) [@futamu](https://community.cybozu.dev/u/futamu)\
**Post date:** [2023 年 10 月 31 日午前 7:03 UTC](https://community.cybozu.dev/t/topic/8285/1 "2023-10-31T07:03:04Z")

</div>

### 何を実現したいのかを書きましょう

一覧表示時に各レコードのコメント最新投稿日が7日以内の時にリストの一部のフィールドコードの背景色を変更したいです

### 発生した問題やエラーメッセージを具体的に書きましょう

以下のプログラムでやりたいことが一応できました。  
しかし、キントーンもjavascriptも始めてから1か月程度で、このプログラムでほんとにいいのか、すごく不安のため添削をお願いしたいです。このコミュニティでこのようなお願いがいいのかわからないので、もしだめならご指摘ください。

### 実行したコードをコピー＆ペーストしましょう

```javascript
コードをここに入力または貼り付け
(() => {
  'use strict';
  // レコード一覧画面の表示後にフィールド値の条件に応じて、文字色、フィールドの背景色を変更する
  kintone.events.on('app.record.index.show', (event) => {
    const bgColor = '#fff8dc';
    const elnumber = kintone.app.getFieldElements('No');
    // 今日の日付を取得
    const today = new Date(); 
    console.log(today);

    for (let i = 0; i < elnumber.length; i++) {
      const record = event.records[i];
      const myUrl = "/k/v1/record/comments";
      const myParms = {
        "app" : kintone.app.getId(),
        "record" : record.$id.value,
        "order" : "desc"
      };
      kintone.api(myUrl, "GET", myParms).then(function(resp) {
        if(resp.comments.length !== 0){
          
          //最新コメント投稿日を取得
          const commentDate = new Date (resp.comments[0].createdAt);
          console.log(commentDate);
          //今日の日付とコメント投稿日時の差分を計算
          const diffTime = Math.abs(today - commentDate);
          const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
          //差分が7日以内かどうかを確認
          if (diffDays <= 7) {
            elnumber[i].style.backgroundColor = bgColor;
          }
        }
      }, function(error) {
        if (error.message !== undefined) {
          var errmsg = error.message;
        }
      });

    }
  });
})();

```

---

<div class="post-metadata">

**Author:** ![y\_minamitani9534](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/y_minamitani9534/32/462_2.png) [@y\_minamitani9534](https://community.cybozu.dev/u/y_minamitani9534)\
**Post date:** [2023 年 10 月 31 日午前 7:27 UTC](https://community.cybozu.dev/t/topic/8285/2 "2023-10-31T07:27:54Z")

</div>

@futamu さん

こんにちは、全体的に見てもインデントもきれいに整えられていて可読性もいいですし、変数の宣言も明示的に書き換える必要がないところを`const`でされていていますしいいんじゃないかなと思います ✌(偉そうに言ってしまって申し訳ないです 💦)

一つひねり出すとしたら、下記画像のことが起きる事があるみたいなので`return event;`してあげたほうがいいんじゃないかなと思います！

参考リンク:[kintone イベント処理の return 文について #JavaScript - Qiita](https://qiita.com/rex0220/items/7a73e46bf9ccf2cf8ce6)

 ![image](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/60535243094492478206a4bb01d832a48a1bb8e9.png)

---

<div class="post-metadata">

**Author:** ![futamu](https://avatars.discourse-cdn.com/v4/letter/f/919ad9/32.png) [@futamu](https://community.cybozu.dev/u/futamu)\
**Post date:** [2023 年 10 月 31 日午前 7:38 UTC](https://community.cybozu.dev/t/topic/8285/3 "2023-10-31T07:38:50Z")

</div>

ご返信ありがとうございます。  
return event;を追加しておきます。  
とりあえず動いたけど、予期せぬエラーが起きたら怖いなと思っていたので、ご意見いただけて安心しました。(社内には相談できる人がいなくて・・・)

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

---

<div class="post-metadata">

**Author:** ![aaa](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/aaa/32/277_2.png) [@aaa](https://community.cybozu.dev/u/aaa)\
**Post date:** [2023 年 11 月 1 日午前 6:19 UTC](https://community.cybozu.dev/t/topic/8285/4 "2023-11-01T06:19:54Z")

</div>

> [@futamu](#):
>
> ```javascript
> }, function(error) {
> if (error.message !== undefined) {
> var errmsg = error.message;
> }
> 
> ```

ここの意図がわかりませんでした。  
・undefinedと比較する意味があるのか？  
・varで宣言している理由  
・変数名 errmsg は最終どこへ行くのか？

全体的に最終コメントが7日以内という目的が  
よくわかっていないですが、  
コメントよりも関連レコードで、  
関連レコードよりも本体のアプリで、  
更新履歴の近さ？を管理した方が  
アプリを移動させるときに  
苦労しないように思いました。

---

<div class="post-metadata">

**Author:** ![futamu](https://avatars.discourse-cdn.com/v4/letter/f/919ad9/32.png) [@futamu](https://community.cybozu.dev/u/futamu)\
**Post date:** [2023 年 11 月 1 日午後 11:27 UTC](https://community.cybozu.dev/t/topic/8285/5 "2023-11-01T23:27:31Z")

</div>

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

そこの部分は参考にさせていただいたプログラムをそのまま参考にしています。私自身もerrmsgをどこで使うのかなと思いつつ、そのままにしてました。  
参考にしたのは、以下の記事です。  
[一覧のカスタマイズビューで「コメント一覧」を表示させたい - kintone カスタマイズ - cybozu developer community](https://community.cybozu.dev/t/topic/2540)

このアプリは業務進捗のアプリで、進捗状況をコメントに書き込んで使用してます。その中で、職制が最新コメントが書かれたレコードを見つけやすいように色付けしたいと考えてました。アプリの利用方法の説明が不十分でした。申し訳ございません。

---

<div class="post-metadata">

**Author:** ![aaa](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/aaa/32/277_2.png) [@aaa](https://community.cybozu.dev/u/aaa)\
**Post date:** [2023 年 11 月 1 日午後 11:58 UTC](https://community.cybozu.dev/t/topic/8285/6 "2023-11-01T23:58:13Z")

</div>

感想です。(質問ではありません)

詳細は利用者ごとに違うので  
わからないのですが、  
進捗状況をコメントに入れるというのは  
進捗状況ごとに並び替えができないなど  
不便なのでは？  
気にならないレベルなら問題ありません。

kintoneのコメント機能はあくまでkintoneのおまけで  
コメントで他人に通知する  
簡単なやりとりを備忘として残しておくぐらいのほうが  
よいと感じています。

---

<div class="post-metadata">

**Author:** ![futamu](https://avatars.discourse-cdn.com/v4/letter/f/919ad9/32.png) [@futamu](https://community.cybozu.dev/u/futamu)\
**Post date:** [2023 年 11 月 2 日午前 5:03 UTC](https://community.cybozu.dev/t/topic/8285/7 "2023-11-02T05:03:23Z")

</div>

確かにおっしゃる通りです。

テーブルにて進捗状況を追加していく方がいい気がしてきました。  
そうすれば、更新日時等で並び替えが容易ですし、一覧でいつから進捗滞ってるかもわかりますね。  
社内で検討してみます。

貴重なご意見ありがとうございます。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 11 月 5 日午前 5:03 UTC](https://community.cybozu.dev/t/topic/8285/8 "2023-11-05T05:03:41Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
