juridon様
コメントありがとうございます!
【1】の追加するCSSについて教えていただけますでしょうか。
ほぼそのまま転用させて頂いている参考記事の説明に沿って、
このカスタマイズを加えているアプリに読み込ませているCSSはこちらなのですが
この中にwhite-space: pre-lineを書き加えることになるのでしょうか?
【2】str.replaceあたりのコード
str.replaceあたりのコードについては、参考元のコードから手を加えていないので
そこでエラーが出ること自体、なぜ?という感じです…。
質問しておいて大変申し訳ないのですが、質問時のエラーが出たバージョンのコードを上書きしてしまっており
今また再現用にユーザー選択フィールドを書き足したJS作ったのですが、
それをアプリに適用すると、質問時とはまた違うエラーメッセージ
Uncaught SyntaxError: missing ) after argument list download.do:97
が出て、スペースフィールドに何も表示されない(見た目の結果は質問時と同じ)ようになりました。
このエラーはこのカスタマイズとは別のコード内で起きている?のかと思いますが、さっぱり分かりません。。
全文貼らせていただきますので、解決策がありそうでしたらご教示いただけますと幸いです。
「サイト情報」アプリのレコードのsite_loc(フィールドコード)と
「商談報告」アプリのレコードのsite_loc(フィールドコード)が一致するとき
「商談報告」のレコードから商談日、商談相手、目的、商談内容・所感、報告者を関連レコード一覧のような感じで
「サイト情報」のレコードのスペースフィールドに表示する。
・・・ようにしたいけど、報告者(ユーザー選択フィールド)を入れるとうまく動かない、というコードです。
/*
* N:N(複数対複数)の関連レコード一覧を自作する
* Copyright (c) 2018 Cybozu
*
* Licensed under the MIT License
*
*
*/
(function() {
'use strict';
kintone.events.on(['app.record.detail.show', 'app.record.edit.show'], function(event) {
var record = event.record;
// 増殖バグ回避
if (document.getElementById('syoudan') !== null) {
return event;
}
// To HTML escape
function escapeHtml(str) {
return str
.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
}
// スペースを取得
var subtableSpace = kintone.app.record.getSpaceElement('syoudan');
// Rest API
var params = {
'app': '7',
'query': 'site_loc in ("' + record.site_loc.value + '") order by syoudan_no asc limit 500',
'fields': ['$id', '商談日', '商談相手', '目的', '商談内容・所感', '報告者ユーザー選択']
};
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params).then(function(resp) {
// success:生徒一覧を表示する
var tableRecords = resp.records;
var studentTable = '<table class="kintoneplugin-table">';
studentTable += '<thead>';
studentTable += '<tr>';
studentTable += '<th class="kintoneplugin-table-th" style="width: 210px;">';
studentTable += '<span class="title">';
studentTable += '商談日';
studentTable += '</span>';
studentTable += '</th>';
studentTable += '<th class="kintoneplugin-table-th" style="width: 300px;">';
studentTable += '<span class="title">';
studentTable += '商談相手';
studentTable += '</span>';
studentTable += '</th>';
studentTable += '<th class="kintoneplugin-table-th" style="width: 300px;">';
studentTable += '<span class="title">';
studentTable += '目的';
studentTable += '</span>';
studentTable += '</th>';
studentTable += '<th class="kintoneplugin-table-th" style="width: 800px;">';
studentTable += '<span class="title">';
studentTable += '商談内容・所感';
studentTable += '</span>';
studentTable += '</th>';
studentTable += '<th class="kintoneplugin-table-th" style="width: 250px;">';
studentTable += '<span class="title">';
studentTable += '報告者';
studentTable += '</span>';
studentTable += '</th>';
studentTable += '</tr>';
studentTable += '</thead>';
studentTable += '<tbody>';
for (var i = 0; i < tableRecords.length; i++) {
studentTable += '<tr>';
studentTable += '<td>';
studentTable += '<div class="kintoneplugin-table-td-control">';
studentTable += '<a href="/k/7/show#record=' + escapeHtml(tableRecords[i].$id.value);
studentTable += '" target="_blank">';
studentTable += escapeHtml(tableRecords[i].商談日.value);
studentTable += '</a>';
studentTable += '</div>';
studentTable += '</td>';
studentTable += '<td>';
studentTable += '<div class="kintoneplugin-table-td-control">';
studentTable += escapeHtml(tableRecords[i].商談相手.value);
studentTable += '</div>';
studentTable += '</td>';
studentTable += '<td>';
studentTable += '<div class="kintoneplugin-table-td-control">';
studentTable += escapeHtml(tableRecords[i].目的.value);
studentTable += '</div>';
studentTable += '</td>';
studentTable += '<td>';
studentTable += '<div class="kintoneplugin-table-td-control">';
studentTable += escapeHtml(tableRecords[i].商談内容・所感.value);
studentTable += '</div>';
studentTable += '</td>';
studentTable += '<td>';
studentTable += '<div class="kintoneplugin-table-td-control">';
studentTable += escapeHtml(tableRecords[i].報告者ユーザー選択.value);
studentTable += '</div>';
studentTable += '</td>';
studentTable += '</tr>';
}
studentTable += '</tbody>';
studentTable += '</table>';
subtableSpace.innerHTML = studentTable;
}, function(error) {
// error:エラーの場合はメッセージを表示する
var errmsg = 'レコード取得時にエラーが発生しました。';
// レスポンスにエラーメッセージが含まれる場合はメッセージを表示する
if (typeof error.message !== 'undefined') {
errmsg += '' + error.message;
}
subtableSpace.appendChild(document.createTextNode(errmsg));
});
return event;
});
})();