More Related Content
More from Mitsuhiro Yamashita (20)
kintone Café 大阪 vol.12
- 2. 自己紹介
山下光洋
@yamamanx
Blog : www.yamamanx.com
・ソフトウェア開発会社で IBMさんのBP
・ナイトレジャー会社で情シス
・エネルギー会社で情シス
ヤマムギ開催
JAWS-UG OSAKA , JAWS-UG IoT関西支部 コアメンバー
kintoneCafe 運営メンバー
TwilioJP-UG,DevLOVE関西,RxTStudyなどに出没してます。
緑のLv15 Lv29
The八番街 Bass AppleMusic,LINE MUSIC,AmazonMusic,AWA,レコチョク,GooglePlayなどで配信中
- 37. レコード一覧イベント
(function() {
"use strict";
//レコード一覧画面表示後イベント
kintone.events.on('app.record.index.show', function(event) {
alert("画面表示後");
});
//レコード一覧画面のインライン編集開始時イベント
kintone.events.on('app.record.index.edit.show', function(event) {
alert("インライン編集開始時");
});
//レコード一覧画面のインライン編集の保存実行前イベント
kintone.events.on('app.record.index.edit.submit', function(event) {
alert("インライン編集の保存実行前");
});
//レコード一覧画面のインライン編集の保存成功後イベント
kintone.events.on('app.record.index.edit.submit.success', function(event) {
alert("インライン編集の保存成功後");
});
})();
01_record_index_event.js
- 44. レコード一覧画面の表示イベントのプロパティ
kintone.events.on('app.record.index.show', function(event) {
プロパティ名 型 説明
appId 数値 アプリID
viewType 文字列 一覧(ビュー)の種類 ‘list’ , ‘calendar’ , ‘custom’
viewId 数値 ビューID
viewName 文字列 ビュー名
records 配列またはオブジェクト viewTypeが listの場合はレコードオブジェクトの配列。
viewTypeがcalendarの場合はキーが日付文字列、値をレコードオブジェ
クトの配列としたオブジェクト。
offset 数値 一覧のオフセット数(viewTypeがcalendarの場合はnull)
size 数値 一覧のレコード数(viewTypeがcalendarの場合はnull)
date 文字列 カレンダービューの表示月。(viewTypeがcalendar以外はnull)
- 58. 一覧のインライン編集で勤続年月を計算する
jQuery.noConflict();
(function() {
"use strict";
~~ 中略 ~~
//レコード一覧画面表示後イベント
kintone.events.on('app.record.index.edit.change.entering_date, function(event) {
var record = event.record;
//入社日の値を取得
var entering_date = record['entering_date']['value'];
//入社日から今日までの年月を計算
var continued_month = getYearMonth(entering_date);
//勤続年月フィールドに計算結果を設定
record['continued_month']['value'] = continued_month;
return event;
});
})();
03_record_index_edit.js
- 72. 特定のプロセスアクション実行時に必須チェックする
(function() {
"use strict";
~ 中略~
//プロセス管理のアクション実行時のイベント
kintone.events.on('app.record.detail.process.proceed',function(event){
if (event.nextStatus['value'] == '処理中'){
var record = event.record;
if (record['entering_date']['value'] == null){
event.error = '処理中にする前に入社日を入力してください。'
return event;
}
}
});
})();
05_record_detail.js
- 102. 複数のイベントをまとめて定義する
jQuery.noConflict();
(function() {
"use strict";
~~ 中略 ~~
var change_events = [
'app.record.index.edit.change.entering_date',
'app.record.create.change.entering_date',
'app.record.edit.change.entering_date'
]
kintone.events.on(change_events, function(event) {
return entring_date_change(event);
});
})();
10_entering_date_edit.js
- 114. getLoginUserの返り値パラメータ
パラメータ 型 値と説明
id 文字列 ユーザーID。システムが自動採番。
code 文字列 ログイン名。ゲストユーザーは「Email」。
name 文字列 表示名。ゲストユーザーは「名前」。
email 文字列 E-mail。
url 文字列 URL。ゲストユーザーは空白。
employeeNumber 文字列 従業員ID。ゲストユーザーは空白。
phone 文字列 電話番号。
mobilePhone 文字列 携帯。ゲストユーザーは空白。
extensionNumber 文字列 内線。ゲストユーザーは空白。
timzone 文字列 タイムゾーン
isGuest 真偽値 true or false
language 文字列 言語とタイムゾーンで設定されたユーザーの言語。「webブラウザーの設定に従う」設定はブラウザの言語設定。ja -
日本語 , en - 英語 , zh - 中国語
- 115. レコード詳細情報取得関数
関数 返り値 または説明 引数
kintone.app.record.getId() レコードID , 利用できない画面ではnull なし
kintone.app.record.get() レコードデータのオブジェクト, 利用できない画面ではnull なし
kintone.app.record.getFieldElement() フィールド要素 フィールドコード
kintone.app.record.set() レコードに値をセットする レコードデータ(JSON)
kintone.app.record.getHeaderMenuSpaceElement() メニューの上側の空白部分の要素 なし
kinotne.app.record.getSpaceElement() 指定されたスペースフィールドの要素 要素ID
kintone.app.getRelatedRecordsTargetAppId() 関連レコード一覧の参照先アプリのID フィールドコード
kintone.app.getLookupTargetAppId() ルックアップフィールドの参照先アプリのID フィールドコード
- 116. レコード一覧情報取得関数
関数 返り値 または説明 引数
kintone.app.record.getQueryCondition() 一覧の絞り込み情報クエリ文字列 なし
kintone.app.getQuery() 一覧の絞り込み情報クエリ文字列(order by,limit,offset付) なし
kintone.app.getFieldElements() 指定したフィールド要素の配列 フィールドコード
kintone.app.getHeaderMenuSpaceElement() メニューの右側の空白部分の要素 なし
kintone.app.getHeaderSpaceElement() メニューの下側の空白部分の要素 なし
- 118. kintone REST APIをリクエスト
kintone REST APIをJavaScriptからリクエストする事ができます。
kintone.api(pathOrUrl, method, params, callback, opt_errback);
kintone.api('/v1/user/organizations',
'GET', {
code: user.code
},
function(resp) {
var record = kintone.app.record.get();
var organization = resp.organizationTitles[0].organization;
record['record']['create_section']['value'] = [{
"code": organization.code,
"name": organization.name
}];
kintone.app.record.set(record);
});
- 119. 新規レコード追加時にユーザー情報と組織情報を初期値登録する
(function() {
'use strict';
kintone.events.on('app.record.create.show', function(event) {
var user = kintone.getLoginUser();
var record = event.record;
record['create_user']['value'] = [{
"code": user.code,
"name": user.name
}];
kintone.api('/v1/user/organizations',
'GET', {
code: user.code
},
function(resp) {
var record = kintone.app.record.get();
var organization = resp.organizationTitles[0].organization;
record['record']['create_section']['value'] = [{
"code": organization.code,
"name": organization.name
}];
kintone.app.record.set(record);
});
return event;
});
})();
12_get_login_org.js
- 129. 外部APIをリクエスト
外部APIをJavaScriptからリクエストする事ができます。
kintone.proxy(url, method, headers , data, callback, opt_errback);
kintone.api('http://weather.livedoor.com/forecast/webservice/json/v1?city=' + city_code,
'GET', {},{},
function(resp) {
var resp_json = eval("(" + resp + ")");
console.log(resp_json);
var record = kintone.app.record.get();
record['record']['weather']['value'] = resp_json.description.text;
kintone.app.record.set(record);
});
※GET/DELETEの場合、dataは無視されるのでパラメータはURLにのせる必要があります。