やりたいこと:
一覧表示したときに、ログインユーザーが既読ユーザーにセットされていない場合、未読フィールドに値をセットしたい(まだ作成していないので、文字列でもチェックボックスでも可)
掲示板アプリを作っています。
既読プラグインを使って、詳細画面を開いた時に既読ユーザー(ユーザー選択フィールド)に、ログインユーザーがセットされるようになっています。
色々参考にさせてもらいながら、「未読なら色を変える」カスタマイズは出来ました。
が、モバイルでは色が変更されない為、「そもそもフィールドで未読って付けば分かるな」と思い、同じif文の条件内でフィールドに未読(値)をセットしたいと思っておりますが、中々うまくいきません。
上記内容はフィールドに値をセットすることでモバイルでも見れるようにと考えた内容なので、他の方法でモバイルでも未読/既読チェックをしやすい方法があれば、そちらも知りたいなと思います。
/*
* 条件書式の文字装飾のサンプルプログラム
* Copyright (c) 2013 Cybozu
*
* Licensed under the MIT License
*/
(function() {
"use strict";
//レコード一覧の表示時にフィールド値の条件に応じて、文字色、フィールドの背景色を変更する
kintone.events.on('app.record.index.show', function(event) {
var bgColor = '#fff8dc';
var elStatus = kintone.app.getFieldElements('ステータス');
for (var i = 0; i < elStatus.length; i++) {
var record = event.records[i];
if (record['ステータス']['value']==="下書き(未処理)") {
elStatus[i].style.color = '#ff0000';
elStatus[i].style.backgroundColor = bgColor;
}
// ログインユーザ情報
var user = kintone.getLoginUser().code;
var readUser = record.readUser.value;
var LOGIN_COLOR = '#e5f0ff'; // ログインユーザのフィールド色
//見た人にユーザーが登録されていなければ背景色変更=未読
if(readUser.length !== 0){
if(readUser[0].code === user){
record.noreadCheck.value = ["未読"];
elStatus[i].style.backgroundColor = LOGIN_COLOR;
elStatus[i].style.fontWeight = 'bold';
}else{
record.noreadCheck.value = [];
}
}
}
return event;
});
})();
現在のコードです。やってることは、①未処理なら色を付ける②未読なら色をつけるの2つです。
if(readUser[0].code === user){
record.noreadCheck.value = ["未読"];
このあたりの書き方が悪いのかな・・・と思っております・・・よろしくお願いいたします。