概要
这次将为大家介绍:如何在应用里用JavaScript自定义来一键创建来宾空间。
这个只有当在应用中统一管理需要创建的空间,并使用统一模板来创建的时候有效。
每次手动作成空间,在空间里配置应用,这些麻烦的事情,现在只要按一下配置在记录详情页面的按钮就可以轻松解决了。
那就快点来看看吧。
代码
(function() { "use strict"; // 模板来宾空间ID var SP_TEMPLATE_ID = 2; function createRequestBody() { // 获取记录信息 var record = kintone.app.record.get().record; // 获取用户选择字段 var users = record["用户选择"].value; // 设定空间成员 var members = (function() { var array = []; for (var i in users) { if (!users.hasOwnProperty(i)) { continue; } var member = { 'entity': { 'type': 'USER', 'code': users[i].code }, 'isAdmin': true // 管理员标记 }; array.push(member); } return array; })(record); return { 'id': SP_TEMPLATE_ID, 'name': record["来宾空间名"].value, 'isGuest': true, // 来宾空间 'members': members }; } function createGuestSpace() { // 请求作成 var params = createRequestBody(); // 运行生成空间API var url = kintone.api.url('/k/v1/template/space', true); return kintone.api(url, 'POST', params).then(function(resp) { alert("成功生成空间"); }).catch(function(e) { alert("生成空间时发生了错误"); }); } kintone.events.on("app.record.detail.show", function(event) { if (document.getElementById("menuButton") !== null) { return; } var menuButton = document.createElement("button"); menuButton.id = "menuButton"; menuButton.innerHTML = "生成来宾空间"; menuButton.onclick = function() { createGuestSpace(); }; kintone.app.record.getHeaderMenuSpaceElement().appendChild(menuButton); }); })();
处理详细
首先,显示记录详情页面上的空间作成按钮。
kintone.events.on("app.record.detail.show", function(event) { // 增值bug对策 if (document.getElementById("menuButton") !== null) { return; } var menuButton = document.createElement("button"); menuButton.id = "menuButton"; menuButton.innerHTML = "生成来宾空间"; menuButton.onclick = function() { createGuestSpace(); }; kintone.app.record.getHeaderMenuSpaceElement().appendChild(menuButton); });
接下来编写点击按钮时的处理。
生成空间API 有各种各样的设定。这次就设定最低限度的4个参数。
生成空间的参数
id:作为基准的空间模板的ID
name:将要作成的空间的名字
isGuest:非来宾空间的情形false、来宾空间的情形true
members:空间里包含着的正式用户 (至少需要设定1个人以上)
详细请参考这个(暂无中文)
function createRequestBody() { // 获取打开着的记录信息 var record = kintone.app.record.get().record; // 获取用户选择字段 var users = record["用户选择"].value; // 设定空间成员 var members = (function() { var array = []; for (var i in users) { if (!users.hasOwnProperty(i)) { continue; } var member = { 'entity': { 'type': 'USER', 'code': users[i].code }, 'isAdmin': true // 管理员标记 }; array.push(member); } return array; })(record); return { 'id': 'SP_TEMPLATE_ID', 'name': record["来宾空间名"].value, 'isGuest': true, // 来宾空间标记 'members': members }; }
最后使用空间API提交请求。
// 运行生成空间API var url = kintone.api.url('/k/v1/template/space', true); return kintone.api(url, 'POST', params).then(function(resp) { alert("成功生成空间"); }).catch(function(e) { alert("生成空间时发生了错误"); });
这个Tips是在确认了2016年10月版基础上做的。