新規投稿
フォローする

kviewerの簡易認証の項目の利用について

kviewerで簡易認証で設定した「名前」、「ユーザー名」を利用することは可能でしょうか。

例えば、kViewer→フォームブリッジの連携時に、フォームブリッジの項目にある「登録者」に「名前」または「ユーザー名」を表示するなど。

ご教示を頂ければ幸いです。どうぞ、よろしくお願いいたします。

0

2件のコメント

Avatar
友利優希

お世話になっています。

cstapの友利と申します。

以下のコードをkviewerとform-bridgeに読み込ませることで可能です。

kviewerに読み込ませるコード

(function() {

"use strict";
kv.events.view.detail.mounted.push(function (state) {
const type = location.pathname.indexOf('/public') === 0 ? 'public' : 'private';
const recordCode = state.recordCode;
const userName = viewUser.username;
const xhr = new XMLHttpRequest();
xhr.open("POST", `/${type}/api/create/token/${code}/${recordCode}/${userName}`);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onload = () => {
const token = JSON.parse(xhr.response).token
const fb = state.view.detailView.formBridgeUrl.split('#')[0];
const url = fb+'?__kViewerViewCode__='+code+'&__kViewerRecordCode__='+state.recordCode+'&kViewerOneTimeToken='+encodeURI(token) +'&name='+viewUser.name+'&userName='+viewUser.username;

document.querySelector('.kv-fb-content').outerHTML=`
<a href=${url} data-v-21142546="" class="ui icon button kv-fb-content circular red huge" style="display: inline-block;"><i class="ui icon pencil"></i></a>`
};
xhr.send(JSON.stringify({csrfToken:csrfToken}));
});
})();

 

form-bridgeに読み込ませるコード

(function() {

"use strict";
const name = 'name'; //kviewer側の名前の項目を入れるフィールドのフィールドコード
const username = 'username'; //kviewer側のユーザー名の項目を入れるフィールドのフィールドコード

fb.events.form.created.push(function(state) {
const kvName = getParam('name');
const kvUserName = getParam('userName');
state.record[name].value = kvName || '';
state.record[username].value = kvUserName || '';
return state;
});

const getParam= (name) => {
const url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return'';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
})();
0
Avatar
田中正義

cstap 友利様

ご回答いただき、ありがとうございます!

ちなみにフォームブリッジ側のフィールドコード「ユーザー名」に「名前」を設定したい場合は

どのような記載を追加すればよろしいでしょうか。

お手数をお掛けし、誠に恐縮ですが、よろしくお願いいたします。

0
ログインしてコメントを残してください。