下記投稿を参考に、詳細画面でkintone-ui-componentのCheckboxを使って、チェックされていない項目もされるようなプラグインを作成した処、kintone標準Checkboxの表示幅より広く表示され、画面レイアウトが崩れました。
さらに、kintone-ui-componentのバージョンが、下記記事の投稿時より新しくなって、cssファイルも提供されなくなったり、classNameプロパティが追加されるなど、仕様変更があったようですが、kintone-ui-componentのCheckboxの横幅をkintone標準CheckBoxの横幅に合わせるような方法が見当たりません。
つきましては、kintone-ui-componentのCheckboxを含む領域の幅を、kintone標準CheckBoxを含む領域の表示幅に合わせるよ方法を教示願います。
★詳細画面でチェックボックスを表示する – cybozu developer network
なお、参考にしたコードは最新のkintone環境とは不整合が生じ、四角い領域が表示されただけで誤動作していたので、kintone-ui-componentの最新版を使って動作するようにしたプラグインのコードは 下記に示します。
(function() {
"use strict";
kintone.events.on('app.record.detail.show', function(event){
kintone.api(kintone.api.url('/k/v1/app/form/fields', true), 'GET', {
app: kintone.app.getId()
}).then(function(response){
Object.keys(response.properties).filter(function(fieldCode){
return response.properties[fieldCode].type === 'CHECK\_BOX';
}).map(function(fieldCode){
return {
code: fieldCode,
options: Object.keys(response.properties[fieldCode].options).map(function(option){
return response.properties[fieldCode].options[option];
}).sort(function(a, b){
if(a.index \< b.index) return -1;
else return 1;
})
};
}).forEach(function(property){
var originElement = kintone.app.record.getFieldElement(property.code);
var checkboxEL1 = (new Kuc.Checkbox({
// label: property.code,
// requiredIcon: true,
items: property.options.map(function(option){
return {
value: option.label,
label: option.label
}
}),
value: event.record[property.code].value,
itemLayout: 'horizontal',
// error: 'Error occurred!',
className: 'input-checkbox-cybozu',
// id: 'options-id',
visible: true,
disabled: true,
borderVisible: false
}))
// originElement.innerHTML = checkboxEL1.getHTML();
originElement.parentNode.insertBefore(checkboxEL1,originElement);
originElement.parentNode.removeChild(originElement);
});
});
});
})();
画面表示結果は 下図に示します。
kintone-ui-componentのcheckbonを含む領域のDOMは、下図に示します。
このDOMを観ると、「 className: ‘input-checkbox-cybozu’,」のパラメタ指定は反映されていないようです。