H-43: fix WEB Captain takeover E2E flow (#8)
* test(shangwutong): cover CID rename reliability * H-43: fix WEB Captain takeover flow * H-48: preserve compatible provider model * H-49: make Captain takeover atomic * H-50: prevent duplicate widget initialization --------- Co-authored-by: Rogee <rogee@ipao.vip>
This commit is contained in:
+12
-14
@@ -49,6 +49,7 @@
|
||||
(function() {
|
||||
var params = new URLSearchParams(window.location.search);
|
||||
var websiteToken = params.get('website_token');
|
||||
var widgetToken = params.get('cw_conversation') || localStorage.getItem('cw_conversation');
|
||||
if (!websiteToken) return;
|
||||
window.chatwootWebChannel = {
|
||||
websiteToken: websiteToken,
|
||||
@@ -75,22 +76,20 @@
|
||||
if (xhr.status === 200) {
|
||||
try {
|
||||
var config = JSON.parse(xhr.responseText);
|
||||
if (config.widgetColor) window.chatwootWebChannel.widgetColor = config.widgetColor;
|
||||
if (config.enabledLanguages) window.chatwootWebChannel.enabledLanguages = config.enabledLanguages;
|
||||
if (config.workingHours) window.chatwootWebChannel.workingHours = config.workingHours;
|
||||
if (config.workingHoursEnabled !== undefined) window.chatwootWebChannel.workingHoursEnabled = config.workingHoursEnabled;
|
||||
if (config.replyTime) window.chatwootWebChannel.replyTime = config.replyTime;
|
||||
if (config.preChatFormEnabled !== undefined) window.chatwootWebChannel.preChatFormEnabled = config.preChatFormEnabled;
|
||||
if (config.businessHoursEnabled !== undefined) window.chatwootWebChannel.businessHoursEnabled = config.businessHoursEnabled;
|
||||
if (config.offlineMessageEnabled !== undefined) window.chatwootWebChannel.offlineMessageEnabled = config.offlineMessageEnabled;
|
||||
if (config.portal) window.chatwootWebChannel.portal = config.portal;
|
||||
if (config.enabledFeatures) window.chatwootWebChannel.enabledFeatures = config.enabledFeatures;
|
||||
if (config.allowMessageAfterResolved !== undefined) window.chatwootWebChannel.allowMessageAfterResolved = config.allowMessageAfterResolved;
|
||||
if (config.hmacEnabled !== undefined) window.chatwootWebChannel.hmacEnabled = config.hmacEnabled;
|
||||
var channel = config.website_channel_config || {};
|
||||
window.authToken = channel.auth_token;
|
||||
localStorage.setItem('cw_conversation', window.authToken);
|
||||
window.chatwootPubsubToken = config.contact && config.contact.pubsub_token;
|
||||
channel.widgetColor = channel.widget_color || window.chatwootWebChannel.widgetColor;
|
||||
channel.websiteName = channel.website_name;
|
||||
channel.welcomeTitle = channel.welcome_title;
|
||||
channel.welcomeTagline = channel.welcome_tagline;
|
||||
window.chatwootWebChannel = Object.assign(window.chatwootWebChannel, channel);
|
||||
import('/app/javascript/entrypoints/widget.js');
|
||||
} catch(e) {}
|
||||
}
|
||||
};
|
||||
xhr.send('{"website_token":"' + websiteToken + '"}');
|
||||
xhr.send(JSON.stringify({ website_token: websiteToken, widget_token: widgetToken }));
|
||||
})();
|
||||
})();
|
||||
</script>
|
||||
@@ -98,6 +97,5 @@
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<noscript id="noscript">This app works best with JavaScript enabled.</noscript>
|
||||
<script type="module" src="/app/javascript/entrypoints/widget.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user