#そのレコード誰が読んだのかわからない;;
おひさしぶりですうぇるです。
先日、「投稿したレコードを誰が読んだか確認したい!」と上司から司令をいただきました。
アプリID:717
フィールド名 | フィールドの種類 | フィールドコード |
---|---|---|
文字列 (1行) | 文字列(1行) | 文字列__1行_ |
読んだ人 | ユーザー選択 | 既読 |
#JavaScriptでカスタマイズ
イベントハンドラは一回変数に
const event1 = ['app.record.create.show','app.record.edit.show'];
const detail = 'app.record.detail.show';
const index = 'app.record.index.show';
読んだ人フィールドは編集できないように
kintone.events.on(event1, function(event){
//読んだ人フィールドは入力不可
const r = event.record;
r['既読'].disabled = true;
return event;
});
①自分のユーザ名が既読に入っているかチェック
②入っていたら処理をやめる
②’入っていなかったら今入っている人をユーザ選択フィールドに合わせてobjに格納
③自分のユーザ名をobjに追加
④apiでPUT
kintone.events.on(detail, function(event){
//既読の仕組みはここ
const r = event.record;
const User = kintone.getLoginUser();
for(var num = 0; num < r['既読']['value'].length; num++){
if(r['既読']['value'][num]['code'] === User.code){
return ;
}
}
//オブジェクト作っておく
var obj = {};
obj['app'] = 717;
obj['id'] = r['レコード番号'].value;
obj['record'] = {};
obj['record']['既読'] = {};
obj['record']['既読']['value'] = [];
//今入っている人を数えて一緒に入れる
for (var i = 0; i < r['既読']['value'].length; i++) {
obj['record']['既読']['value'][i] = {};
obj['record']['既読']['value'][i]['code'] = {};
obj['record']['既読']['value'][i]['code'] = r['既読']['value'][i]['code'];
}
//ログインユーザを読んだ人フィールドに追加
obj['record']['既読']['value'][r['既読']['value'].length] = {};
obj['record']['既読']['value'][r['既読']['value'].length]['code'] = {};
obj['record']['既読']['value'][r['既読']['value'].length]['code'] = User.code;
kintone.api('/k/v1/record', 'PUT', obj, function(resp){
console.log(obj);
});
});
ちょっとベタベタなコードになってしまいましたが、
取り急ぎは上司の要望は答えられました!!