kintoneのアプリにて「複数行」のフィールドにテンプレート機能を作成したいと思い
下記サイトを参考にjsを導入してみたのですが上手く動きませんでした。
https://note.com/nagatsuma/n/n85270ba8a988
※スペースを追加したアプリにボタンが表示されない。
開発者ツールには「Failed to load resource: the server responded with a status of 520」と表示され、クリックすると下記のメッセージが表示されます。
{"code":"xxx","id":"xxxx","message":"認証に失敗しました。セッション認証には、「X-Requested-With」ヘッダーが必要です。"}
色々と調べてみたのですがjsやapiは最近始めたばかりでいまひとつわからずじまいです。
どなたかわかる方がいらっしゃいましたら糸口だけでもご教示いただけますでしょうか。
また最終的には「複数行」が複数あるアプリでも適応したいと考えております。
その点でもアドバイスをいただけると助かります。
追記コードは下記になります(14行目のアプリIDは併せてます。)
jQuery.noConflict();
(function($) { "use strict";varevents={show:['app.record.edit.show','mobile.app.record.edit.show','app.record.create.show','mobile.app.record.create.show']
};
kintone.events.on(events.show,function(event) {// app アプリID// query レコード抽出条件varparam = {"app":99,"query":"status in (\"有効\") order by tid asc"};
kintone.api(kintone.api.url('/k/v1/records',true),'GET', param,function(resp) {// 成功時の処理//console.log(resp);constrecords = resp.records;//Create and append select listvarselectList =document.createElement("select");
selectList.id ="mySelect";
kintone.app.record.getSpaceElement('space1').appendChild(selectList);//Create and append the optionsfor(vari =0; i < records.length; i++) {varoption =document.createElement("option");
option.value = i;
option.text = records[i].name.value;
selectList.appendChild(option);
}// 任意のスペースフィールドにボタンを設置varmySpaceFieldButton =document.createElement('button');
mySpaceFieldButton.id ='my\_space\_field\_button';
mySpaceFieldButton.innerText ='テンプレートを挿入';
mySpaceFieldButton.onclick =function () {//テキストエリアと挿入する文字列を取得varareas =document.getElementsByTagName('textarea');vararea = areas[0];varselected =document.getElementById("mySelect");varselectedValue = selected.value;vartext = records[selectedValue].text.value;//カーソルの位置を基準に前後を分割して、その間に文字列を挿入area.value = area.value.substr(0, area.selectionStart)
+ text
+ area.value.substr(area.selectionStart);
};
kintone.app.record.getSpaceElement('space1').appendChild(mySpaceFieldButton);
},function(error) {// エラー時の処理console.log(error);
});
});
})(jQuery);