kviewerで簡易認証で設定した「名前」、「ユーザー名」を利用することは可能でしょうか。
例えば、kViewer→フォームブリッジの連携時に、フォームブリッジの項目にある「登録者」に「名前」または「ユーザー名」を表示するなど。
ご教示を頂ければ幸いです。どうぞ、よろしくお願いいたします。
kviewerで簡易認証で設定した「名前」、「ユーザー名」を利用することは可能でしょうか。
例えば、kViewer→フォームブリッジの連携時に、フォームブリッジの項目にある「登録者」に「名前」または「ユーザー名」を表示するなど。
ご教示を頂ければ幸いです。どうぞ、よろしくお願いいたします。
お世話になっています。
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, " "));
}
})();
cstap 友利様
ご回答いただき、ありがとうございます!
ちなみにフォームブリッジ側のフィールドコード「ユーザー名」に「名前」を設定したい場合は
どのような記載を追加すればよろしいでしょうか。
お手数をお掛けし、誠に恐縮ですが、よろしくお願いいたします。
cstap友利様
本日(2022.11.8)朝のメンテナンスの影響なのか定かではないのですが、今まで何ら問題なく使えていた本機能が、
本日より急に「resource not found」というエラーが出て使えなくなってしまいました。
既に本番運用中なので困っています。これだけの情報では調査できないかもしれませんが、何か思い当たるところが
ございましたら、ご教示頂けますと助かります。よろしくお願いいたします。
「resource not found」の件、関係筋の方から教えて頂きました。
kviewerに読み込ませるコードの最後で
xhr.send(JSON.stringify({csrfToken:csrfToken})); ⇒ xhr.send();
に変更したところ無事に動作しました。ありがとうございました。
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。