kintoneをカスタマイズしたい!からJavaScript勉強中の初心者です。
先日上記の内容で質問し、色々いじったらうまく動作するようになりました。
そこから、設置したフィールドに自分のID番号が出るということで
せっかくなら”○○さんが編集中”という表示ができたらと思っております。
文字列フィールドの中にIF(編集中=1,"佐藤さんが編集中”,“編集OK”)のような計算式を入れるなどで行こうと思いましたが、数人ならOKなのですがIFS関数が使えないため20人ほど入れるのは難しいな…というところで止まっています。
計算式が無理ならカスタマイズをと思いましたが、うまく見つけることができませんでした。
1なら佐藤さん、2なら鈴木さん・・・を実現するためのヒントをいただけませんでしょうか。
よろしくお願いいたします。
【追記】
調べていたらswich文がよさそうです
コードの一番下に追記してみたのですが、うまくいきません。。
なにがおかしいのか教えていただけますと幸いです。
編集中というフィールドにIDが生まれるので、そこが1ならどう、2ならどう…をしていき
誰というフィールドにその状況を表示させたいです。
(編集中フィールドを置き換えるのでもいいです)
現状は、編集していないときはIDが0になるのですが、2でも0でも佐藤さんが編集中!のままになってしまいます。
あと、再読み込みを毎回させられます(これは追記なしでもありましたが毎回ではなかったような気がします)
(function() {"use strict";var revisionCheck=function(event) {return kintone.api(kintone.api.url('/k/v1/record',true),'GET', {
app:kintone.app.getId(),
id:kintone.app.record.getId(),
}).then(function(response) {return event.record.$revision.value===response.record.$revision.value;
});
};var changeState=function(editing) {return kintone.api(kintone.api.url('/k/v1/record',true),'PUT', {
app:kintone.app.getId(),
id:kintone.app.record.getId(),
record:{
編集中:{
value:editing?kintone.getLoginUser().id:0}
}
});
};kintone.events.on(['app.record.detail.show',
],function(event) {revisionCheck(event).then(function(revisionMatch) {if(!revisionMatch)location.reload();
});
});kintone.events.on(['app.record.edit.show',
],function(event) {revisionCheck(event).then(function(revisionMatch) {if(!revisionMatch) {location.reload();return;
}if(Number(event.record.編集中.value)) {if(event.record.編集中.value!==kintone.getLoginUser().id) {alert('ほかのユーザーが編集中ですよ!');history.back();return;
}document.getElementsByClassName('gaia-ui-actionmenu-cancel')[0].addEventListener('click',function() {changeState(false).then(function() {location.reload();
})
});window.addEventListener('beforeunload',function(e) {changeState(false);
});window.addEventListener('unload',function(e) {changeState(false);
});
}else{changeState(true).then(function() {location.reload();
});
}
});
});kintone.events.on(['app.record.edit.submit.success',
],function(event) {changeState(false);
});
kintone.events.on(['app.record.detail.show',
],function(event) {revisionCheck(event).then(function(revisionMatch) {if(!revisionMatch)location.reload();
});
switch (record['編集中'].value) {
case '2':
record['誰'].value = '佐藤さんが編集中!';
break;
case '3':
record['誰'].value = '鈴木さんが編集中!';
break;
case '4':
record['誰'].value = '高橋さんが編集中!';
break;
case '5':
record['誰'].value = '小林さんが編集中!';
break;
case '6':
record['誰'].value = '田中さんが編集中!';
break;
default:
record['誰'].value = '編集OK!';
break;
}
});kintone.events.on(['app.record.edit.submit.success',
],function(event) {changeState(false);
});
return event;
})();