@memtensor/memos-local-openclaw-plugin 1.0.4-beta.11 → 1.0.4-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/connector.d.ts +4 -0
- package/dist/client/connector.d.ts.map +1 -1
- package/dist/client/connector.js +49 -11
- package/dist/client/connector.js.map +1 -1
- package/dist/hub/server.d.ts.map +1 -1
- package/dist/hub/server.js +21 -4
- package/dist/hub/server.js.map +1 -1
- package/dist/ingest/chunker.d.ts +2 -1
- package/dist/ingest/chunker.d.ts.map +1 -1
- package/dist/ingest/chunker.js +14 -10
- package/dist/ingest/chunker.js.map +1 -1
- package/dist/recall/engine.d.ts.map +1 -1
- package/dist/recall/engine.js +5 -2
- package/dist/recall/engine.js.map +1 -1
- package/dist/storage/sqlite.d.ts +13 -0
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +64 -7
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/viewer/html.d.ts.map +1 -1
- package/dist/viewer/html.js +77 -28
- package/dist/viewer/html.js.map +1 -1
- package/dist/viewer/server.d.ts +1 -0
- package/dist/viewer/server.d.ts.map +1 -1
- package/dist/viewer/server.js +30 -8
- package/dist/viewer/server.js.map +1 -1
- package/index.ts +22 -20
- package/package.json +1 -1
- package/src/client/connector.ts +48 -11
- package/src/hub/server.ts +19 -4
- package/src/ingest/chunker.ts +19 -13
- package/src/recall/engine.ts +5 -2
- package/src/storage/sqlite.ts +69 -7
- package/src/viewer/html.ts +77 -28
- package/src/viewer/server.ts +29 -9
package/dist/viewer/html.js
CHANGED
|
@@ -979,8 +979,6 @@ input,textarea,select{font-family:inherit;font-size:inherit}
|
|
|
979
979
|
.team-guide-steps li::marker{color:var(--pri);font-weight:700;font-size:11px}
|
|
980
980
|
.team-guide-opt .btn-guide{font-size:11px;padding:5px 14px;border-radius:6px;font-weight:600;border:1px solid rgba(99,102,241,.25);background:rgba(99,102,241,.08);color:var(--pri);cursor:pointer;transition:background .15s,border-color .15s}
|
|
981
981
|
.team-guide-opt .btn-guide:hover{background:rgba(99,102,241,.14);border-color:var(--pri)}
|
|
982
|
-
.team-guide-dismiss{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--text-muted);font-size:15px;cursor:pointer;padding:4px;line-height:1;opacity:.5;transition:opacity .15s}
|
|
983
|
-
.team-guide-dismiss:hover{opacity:1}
|
|
984
982
|
[data-theme="light"] .team-guide{background:linear-gradient(135deg,rgba(6,182,212,.03),rgba(79,70,229,.02));border-color:rgba(6,182,212,.15)}
|
|
985
983
|
[data-theme="light"] .team-guide-opt{box-shadow:0 1px 3px rgba(0,0,0,.03)}
|
|
986
984
|
[data-theme="light"] .team-guide-opt:hover{box-shadow:0 4px 16px rgba(0,0,0,.04)}
|
|
@@ -1644,9 +1642,8 @@ input,textarea,select{font-family:inherit;font-size:inherit}
|
|
|
1644
1642
|
</div>
|
|
1645
1643
|
</div>
|
|
1646
1644
|
<div class="settings-card-body">
|
|
1647
|
-
<!-- team setup guide (inside Hub card) -->
|
|
1645
|
+
<!-- team setup guide (inside Hub card) — always visible when sharing is not configured -->
|
|
1648
1646
|
<div class="team-guide" id="teamSetupGuide">
|
|
1649
|
-
<button class="team-guide-dismiss" onclick="dismissTeamGuide()" title="Dismiss">×</button>
|
|
1650
1647
|
<div class="team-guide-title">\u{1F680} <span data-i18n="guide.title">Get Started with Team Collaboration</span></div>
|
|
1651
1648
|
<div class="team-guide-subtitle" data-i18n="guide.subtitle">MemOS supports team memory sharing. Choose one of the following options to enable collaboration, or continue using local-only mode.</div>
|
|
1652
1649
|
<div class="team-guide-options">
|
|
@@ -2129,6 +2126,8 @@ const I18N={
|
|
|
2129
2126
|
'notif.userJoin':'New user requests to join the team',
|
|
2130
2127
|
'notif.userOnline':'User came online',
|
|
2131
2128
|
'notif.userOffline':'User went offline',
|
|
2129
|
+
'notif.membershipApproved':'Your team join request has been approved',
|
|
2130
|
+
'notif.membershipRejected':'Your team join request has been declined',
|
|
2132
2131
|
'notif.clearAll':'Clear all',
|
|
2133
2132
|
'notif.timeAgo.just':'just now',
|
|
2134
2133
|
'notif.timeAgo.min':'{n}m ago',
|
|
@@ -2451,6 +2450,9 @@ const I18N={
|
|
|
2451
2450
|
'sharing.pendingApproval.hint':'Your join request has been submitted. Please wait for the team admin to approve.',
|
|
2452
2451
|
'sharing.rejected.hint':'Your join request was rejected by the team admin. Please contact the admin or retry.',
|
|
2453
2452
|
'sharing.removed.hint':'You have been removed from the team by the admin. You can re-apply to join.',
|
|
2453
|
+
'sharing.joinTeam':'Join Team',
|
|
2454
|
+
'sharing.joinSent.pending':'Join request sent! Waiting for admin approval.',
|
|
2455
|
+
'sharing.joinSent.active':'Successfully joined the team!',
|
|
2454
2456
|
'sharing.retryJoin':'Retry Join',
|
|
2455
2457
|
'sharing.retryJoin.hint':'Clears local data and re-submits the join request',
|
|
2456
2458
|
'sharing.retryJoin.confirm':'This will clear your current connection and re-submit a join request. Continue?',
|
|
@@ -2843,6 +2845,8 @@ const I18N={
|
|
|
2843
2845
|
'notif.userJoin':'有新用户申请加入团队',
|
|
2844
2846
|
'notif.userOnline':'用户上线了',
|
|
2845
2847
|
'notif.userOffline':'用户下线了',
|
|
2848
|
+
'notif.membershipApproved':'你的团队加入申请已通过',
|
|
2849
|
+
'notif.membershipRejected':'你的团队加入申请已被拒绝',
|
|
2846
2850
|
'notif.clearAll':'清除全部',
|
|
2847
2851
|
'notif.timeAgo.just':'刚刚',
|
|
2848
2852
|
'notif.timeAgo.min':'{n}分钟前',
|
|
@@ -3165,6 +3169,9 @@ const I18N={
|
|
|
3165
3169
|
'sharing.pendingApproval.hint':'加入申请已提交,请等待团队管理员审核通过。',
|
|
3166
3170
|
'sharing.rejected.hint':'您的加入申请已被团队管理员拒绝,请联系管理员或重新申请。',
|
|
3167
3171
|
'sharing.removed.hint':'您已被管理员从团队中移除,可以重新申请加入。',
|
|
3172
|
+
'sharing.joinTeam':'加入团队',
|
|
3173
|
+
'sharing.joinSent.pending':'加入申请已发送,等待管理员审批。',
|
|
3174
|
+
'sharing.joinSent.active':'成功加入团队!',
|
|
3168
3175
|
'sharing.retryJoin':'重新申请',
|
|
3169
3176
|
'sharing.retryJoin.hint':'清除本地连接数据并重新提交加入申请',
|
|
3170
3177
|
'sharing.retryJoin.confirm':'这将清除当前连接数据并重新提交加入申请,是否继续?',
|
|
@@ -3609,6 +3616,9 @@ function selectSharingRole(role){
|
|
|
3609
3616
|
var tn=document.getElementById('cfgHubTeamName');
|
|
3610
3617
|
if(!tn.value.trim()) tn.value='My Team';
|
|
3611
3618
|
}
|
|
3619
|
+
var card=document.getElementById('settingsSharingConfig');
|
|
3620
|
+
var saveBtn=card&&card.querySelector('.settings-actions .btn-primary');
|
|
3621
|
+
if(saveBtn&&typeof _hubSaveBtnLabel==='function') saveBtn.textContent=_hubSaveBtnLabel();
|
|
3612
3622
|
}
|
|
3613
3623
|
var _cachedLocalIP='';
|
|
3614
3624
|
function updateHubShareInfo(){
|
|
@@ -3699,9 +3709,15 @@ function switchView(view){
|
|
|
3699
3709
|
else if(view==='skills') loadSkills();
|
|
3700
3710
|
else if(view==='analytics') loadMetrics();
|
|
3701
3711
|
else if(view==='logs') loadLogs();
|
|
3702
|
-
else if(view==='settings'){loadConfig()
|
|
3712
|
+
else if(view==='settings'){loadConfig().then(function(){
|
|
3713
|
+
var sharingOn=document.getElementById('cfgSharingEnabled');
|
|
3714
|
+
var sharingNotEnabled=!sharingOn||!sharingOn.checked;
|
|
3715
|
+
if(sharingNotEnabled){
|
|
3716
|
+
switchSettingsTab('hub',document.querySelector('.settings-tab-btn[data-tab="hub"]'));
|
|
3717
|
+
}
|
|
3718
|
+
});loadModelHealth();}
|
|
3703
3719
|
else if(view==='import'){if(!window._migrateRunning) migrateScan(false);}
|
|
3704
|
-
else if(view==='admin'){loadAdminData();}
|
|
3720
|
+
else if(view==='admin'){_lastAdminFingerprint='';loadAdminData();}
|
|
3705
3721
|
}
|
|
3706
3722
|
|
|
3707
3723
|
function onMemoryScopeChange(){
|
|
@@ -3739,6 +3755,13 @@ function onTaskScopeChange(){
|
|
|
3739
3755
|
|
|
3740
3756
|
var _clientPendingPollTimer=null;
|
|
3741
3757
|
var _lastSharingConnStatus='';
|
|
3758
|
+
function _updateScopeSelectorsVisibility(hubAvailable){
|
|
3759
|
+
var ids=['memorySearchScope','taskSearchScope','skillSearchScope'];
|
|
3760
|
+
for(var i=0;i<ids.length;i++){
|
|
3761
|
+
var el=document.getElementById(ids[i]);
|
|
3762
|
+
if(el) el.style.display=hubAvailable?'':'none';
|
|
3763
|
+
}
|
|
3764
|
+
}
|
|
3742
3765
|
async function loadSharingStatus(forcePending){
|
|
3743
3766
|
try{
|
|
3744
3767
|
const r=await fetch('/api/sharing/status');
|
|
@@ -3751,19 +3774,26 @@ async function loadSharingStatus(forcePending){
|
|
|
3751
3774
|
if(!d||!d.enabled){
|
|
3752
3775
|
if(_clientPendingPollTimer){clearInterval(_clientPendingPollTimer);_clientPendingPollTimer=null;}
|
|
3753
3776
|
_lastSharingConnStatus='';
|
|
3777
|
+
_updateScopeSelectorsVisibility(false);
|
|
3754
3778
|
return;
|
|
3755
3779
|
}
|
|
3756
3780
|
var conn=d.connection||{};
|
|
3757
3781
|
var curStatus=conn.rejected?'rejected':conn.pendingApproval?'pending':conn.connected?'connected':'none';
|
|
3782
|
+
var hubActive=d.role==='hub'||curStatus==='connected';
|
|
3783
|
+
_updateScopeSelectorsVisibility(hubActive);
|
|
3758
3784
|
if(_lastSharingConnStatus==='pending'&&curStatus==='rejected'){
|
|
3759
3785
|
toast(t('sharing.rejected.toast'),'error');
|
|
3760
3786
|
}
|
|
3761
3787
|
if(_lastSharingConnStatus==='pending'&&curStatus==='connected'){
|
|
3762
3788
|
toast(t('sharing.approved.toast'),'success');
|
|
3789
|
+
loadMemories();loadTasks();loadSkills();
|
|
3790
|
+
if(_notifSSE){_notifSSE.close();_notifSSE=null;_notifSSEConnected=false;}
|
|
3791
|
+
connectNotifSSE();
|
|
3792
|
+
loadNotifications();
|
|
3763
3793
|
}
|
|
3764
3794
|
_lastSharingConnStatus=curStatus;
|
|
3765
3795
|
if(curStatus==='pending'&&!_clientPendingPollTimer){
|
|
3766
|
-
_clientPendingPollTimer=setInterval(function(){loadSharingStatus(false);},
|
|
3796
|
+
_clientPendingPollTimer=setInterval(function(){loadSharingStatus(false);},5000);
|
|
3767
3797
|
}
|
|
3768
3798
|
if(curStatus!=='pending'&&_clientPendingPollTimer){
|
|
3769
3799
|
clearInterval(_clientPendingPollTimer);
|
|
@@ -3773,6 +3803,7 @@ async function loadSharingStatus(forcePending){
|
|
|
3773
3803
|
renderSharingSidebar(null);
|
|
3774
3804
|
renderSharingSettings(null);
|
|
3775
3805
|
updateTeamGuide(null);
|
|
3806
|
+
_updateScopeSelectorsVisibility(false);
|
|
3776
3807
|
}
|
|
3777
3808
|
}
|
|
3778
3809
|
|
|
@@ -4043,7 +4074,7 @@ async function approveSharingUser(userId,username){
|
|
|
4043
4074
|
try{
|
|
4044
4075
|
const r=await fetch('/api/sharing/approve-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,username:username})});
|
|
4045
4076
|
const d=await r.json();
|
|
4046
|
-
if(d.ok){toast(t('toast.userApproved'),'success');loadSharingPendingUsers();loadSharingStatus(true);} else {toast(d.error||t('toast.approveFail'),'error');}
|
|
4077
|
+
if(d.ok){toast(t('toast.userApproved'),'success');loadSharingPendingUsers();loadSharingStatus(true);_lastAdminFingerprint='';loadAdminData();} else {toast(d.error||t('toast.approveFail'),'error');}
|
|
4047
4078
|
}catch(e){toast(t('toast.approveFail')+': '+e.message,'error');}
|
|
4048
4079
|
}
|
|
4049
4080
|
|
|
@@ -4051,24 +4082,17 @@ async function rejectSharingUser(userId,username){
|
|
|
4051
4082
|
try{
|
|
4052
4083
|
const r=await fetch('/api/sharing/reject-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,username:username})});
|
|
4053
4084
|
const d=await r.json();
|
|
4054
|
-
if(d.ok){toast(t('toast.userRejected'),'success');loadSharingPendingUsers();} else {toast(d.error||t('toast.rejectFail'),'error');}
|
|
4085
|
+
if(d.ok){toast(t('toast.userRejected'),'success');loadSharingPendingUsers();_lastAdminFingerprint='';loadAdminData();} else {toast(d.error||t('toast.rejectFail'),'error');}
|
|
4055
4086
|
}catch(e){toast(t('toast.rejectFail')+': '+e.message,'error');}
|
|
4056
4087
|
}
|
|
4057
4088
|
|
|
4058
4089
|
/* ─── Team Setup Guide ─── */
|
|
4059
|
-
var TEAM_GUIDE_DISMISSED_KEY='memos-team-guide-dismissed';
|
|
4060
4090
|
function updateTeamGuide(sharingData){
|
|
4061
4091
|
var el=document.getElementById('teamSetupGuide');
|
|
4062
4092
|
if(!el) return;
|
|
4063
|
-
if(localStorage.getItem(TEAM_GUIDE_DISMISSED_KEY)==='1'){el.style.display='none';return;}
|
|
4064
4093
|
var isConfigured=sharingData&&sharingData.enabled;
|
|
4065
4094
|
el.style.display=isConfigured?'none':'block';
|
|
4066
4095
|
}
|
|
4067
|
-
function dismissTeamGuide(){
|
|
4068
|
-
localStorage.setItem(TEAM_GUIDE_DISMISSED_KEY,'1');
|
|
4069
|
-
var el=document.getElementById('teamSetupGuide');
|
|
4070
|
-
if(el) el.style.display='none';
|
|
4071
|
-
}
|
|
4072
4096
|
function guideGoToHub(role){
|
|
4073
4097
|
switchSettingsTab('hub',document.querySelector('.settings-tab-btn[data-tab="hub"]'));
|
|
4074
4098
|
var chk=document.getElementById('cfgSharingEnabled');
|
|
@@ -4184,7 +4208,7 @@ async function loadAdminData(){
|
|
|
4184
4208
|
var _newMemories=Array.isArray(memoriesR.memories)?memoriesR.memories:[];
|
|
4185
4209
|
var pending=isAdmin?(Array.isArray(pendingR.users)?pendingR.users:[]):[];
|
|
4186
4210
|
var _fp=_newUsers.length+':'+_newTasks.length+':'+_newSkills.length+':'+_newMemories.length+':'+pending.length
|
|
4187
|
-
+':'+_newUsers.map(function(u){return u.id+'|'+(u.isOnline?1:0)+'|'+(u.role||'')+'|'+(u.username||'')+'|'+(u.memoryCount||0)+'|'+(u.taskCount||0)+'|'+(u.skillCount||0)}).join(',')
|
|
4211
|
+
+':'+_newUsers.map(function(u){return u.id+'|'+(u.isOnline?1:0)+'|'+(u.role||'')+'|'+(u.status||'')+'|'+(u.username||'')+'|'+(u.memoryCount||0)+'|'+(u.taskCount||0)+'|'+(u.skillCount||0)}).join(',')
|
|
4188
4212
|
+':'+_newMemories.map(function(m){return m.id}).join(',')
|
|
4189
4213
|
+':'+_newTasks.map(function(t){return t.id+'|'+(t.status||'')}).join(',')
|
|
4190
4214
|
+':'+_newSkills.map(function(s){return s.id+'|'+(s.status||'')}).join(',')
|
|
@@ -4380,7 +4404,7 @@ async function adminApproveUser(userId,username){
|
|
|
4380
4404
|
try{
|
|
4381
4405
|
var r=await fetch('/api/sharing/approve-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,username:username})});
|
|
4382
4406
|
var d=await r.json();
|
|
4383
|
-
if(d.ok){toast(t('toast.userApproved'),'success');loadAdminData();}else{toast(d.error||t('toast.approveFail'),'error');}
|
|
4407
|
+
if(d.ok){toast(t('toast.userApproved'),'success');_lastAdminFingerprint='';loadAdminData();}else{toast(d.error||t('toast.approveFail'),'error');}
|
|
4384
4408
|
}catch(e){toast(t('toast.approveFail')+': '+e.message,'error');}
|
|
4385
4409
|
}
|
|
4386
4410
|
async function adminRejectUser(userId){
|
|
@@ -4388,7 +4412,7 @@ async function adminRejectUser(userId){
|
|
|
4388
4412
|
try{
|
|
4389
4413
|
var r=await fetch('/api/sharing/reject-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId})});
|
|
4390
4414
|
var d=await r.json();
|
|
4391
|
-
if(d.ok){toast(t('toast.userRejected'),'success');loadAdminData();}else{toast(d.error||t('toast.rejectFail'),'error');}
|
|
4415
|
+
if(d.ok){toast(t('toast.userRejected'),'success');_lastAdminFingerprint='';loadAdminData();}else{toast(d.error||t('toast.rejectFail'),'error');}
|
|
4392
4416
|
}catch(e){toast(t('toast.rejectFail')+': '+e.message,'error');}
|
|
4393
4417
|
}
|
|
4394
4418
|
async function adminToggleRole(userId,newRole){
|
|
@@ -4397,7 +4421,7 @@ async function adminToggleRole(userId,newRole){
|
|
|
4397
4421
|
try{
|
|
4398
4422
|
var r=await fetch('/api/sharing/change-role',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,role:newRole})});
|
|
4399
4423
|
var d=await r.json();
|
|
4400
|
-
if(d.ok){toast(t('toast.roleChanged'),'success');loadAdminData();}
|
|
4424
|
+
if(d.ok){toast(t('toast.roleChanged'),'success');_lastAdminFingerprint='';loadAdminData();}
|
|
4401
4425
|
else if(d.error==='cannot_demote_owner'){toast(t('admin.ownerHint'),'error');}
|
|
4402
4426
|
else{toast(d.error||t('toast.roleChangeFail'),'error');}
|
|
4403
4427
|
}catch(e){toast(t('toast.roleChangeFail')+': '+e.message,'error');}
|
|
@@ -4449,7 +4473,7 @@ async function adminRemoveUser(userId,username){
|
|
|
4449
4473
|
try{
|
|
4450
4474
|
var r=await fetch('/api/sharing/remove-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,cleanResources:clean})});
|
|
4451
4475
|
var d=await r.json();
|
|
4452
|
-
if(d.ok){toast(t('toast.userRemoved'),'success');loadAdminData();}
|
|
4476
|
+
if(d.ok){toast(t('toast.userRemoved'),'success');_lastAdminFingerprint='';loadAdminData();}
|
|
4453
4477
|
else if(d.error==='cannot_remove_owner'){toast(t('admin.ownerHint'),'error');}
|
|
4454
4478
|
else{toast(d.error||t('toast.removeFail'),'error');}
|
|
4455
4479
|
}catch(e){toast(t('toast.removeFail')+': '+e.message,'error');}
|
|
@@ -6581,16 +6605,16 @@ async function doSaveConfig(cfg, btnEl, savedId){
|
|
|
6581
6605
|
function done(){btnEl.disabled=false;btnEl.textContent=t('settings.save');}
|
|
6582
6606
|
try{
|
|
6583
6607
|
const r=await fetch('/api/config',{method:'PUT',headers:{'Content-Type':'application/json'},body:JSON.stringify(cfg)});
|
|
6584
|
-
if(r.status===401){done();toast(t('settings.session.expired'),'error');return
|
|
6608
|
+
if(r.status===401){done();toast(t('settings.session.expired'),'error');return null;}
|
|
6585
6609
|
if(!r.ok) throw new Error(await r.text());
|
|
6610
|
+
var data=await r.json().catch(function(){return {ok:true};});
|
|
6586
6611
|
flashSaved(savedId);
|
|
6587
|
-
toast(t('settings.saved'),'success');
|
|
6588
6612
|
done();
|
|
6589
|
-
return
|
|
6613
|
+
return data;
|
|
6590
6614
|
}catch(e){
|
|
6591
6615
|
toast(t('settings.save.fail')+': '+e.message,'error');
|
|
6592
6616
|
done();
|
|
6593
|
-
return
|
|
6617
|
+
return null;
|
|
6594
6618
|
}
|
|
6595
6619
|
}
|
|
6596
6620
|
|
|
@@ -6685,11 +6709,19 @@ async function saveModelsConfig(){
|
|
|
6685
6709
|
await doSaveConfig(cfg, saveBtn, 'modelsSaved');
|
|
6686
6710
|
}
|
|
6687
6711
|
|
|
6712
|
+
function _hubSaveBtnLabel(){
|
|
6713
|
+
var on=document.getElementById('cfgSharingEnabled');
|
|
6714
|
+
if(on&&on.checked&&_sharingRole==='client'){
|
|
6715
|
+
var prevClient=sharingStatusCache&&sharingStatusCache.enabled&&sharingStatusCache.role==='client';
|
|
6716
|
+
return prevClient?t('settings.save'):t('sharing.joinTeam');
|
|
6717
|
+
}
|
|
6718
|
+
return t('settings.save');
|
|
6719
|
+
}
|
|
6688
6720
|
async function saveHubConfig(){
|
|
6689
6721
|
var card=document.getElementById('settingsSharingConfig');
|
|
6690
6722
|
var saveBtn=card.querySelector('.settings-actions .btn-primary');
|
|
6691
6723
|
saveBtn.disabled=true;saveBtn.textContent=t('settings.test.loading');
|
|
6692
|
-
function done(){saveBtn.disabled=false;saveBtn.textContent=
|
|
6724
|
+
function done(){saveBtn.disabled=false;saveBtn.textContent=_hubSaveBtnLabel();}
|
|
6693
6725
|
|
|
6694
6726
|
const cfg={};
|
|
6695
6727
|
var sharingEnabled=document.getElementById('cfgSharingEnabled').checked;
|
|
@@ -6756,14 +6788,25 @@ async function saveHubConfig(){
|
|
|
6756
6788
|
if(!(await confirmModal(switchMsg,{danger:true}))){done();return;}
|
|
6757
6789
|
}
|
|
6758
6790
|
|
|
6759
|
-
var
|
|
6760
|
-
if(
|
|
6791
|
+
var result=await doSaveConfig(cfg, saveBtn, 'hubSaved');
|
|
6792
|
+
if(result){
|
|
6761
6793
|
if(sharingEnabled&&_sharingRole==='hub'){
|
|
6762
6794
|
var adminNameEl=document.getElementById('cfgHubAdminName');
|
|
6763
6795
|
if(adminNameEl&&adminNameEl.value.trim()){
|
|
6764
6796
|
try{await fetch('/api/sharing/update-username',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({username:adminNameEl.value.trim()})});}catch(e){}
|
|
6765
6797
|
}
|
|
6766
6798
|
}
|
|
6799
|
+
if(sharingEnabled&&_sharingRole==='client'&&result.joinStatus){
|
|
6800
|
+
if(result.joinStatus==='pending'){
|
|
6801
|
+
toast(t('sharing.joinSent.pending'),'success');
|
|
6802
|
+
}else if(result.joinStatus==='active'){
|
|
6803
|
+
toast(t('sharing.joinSent.active'),'success');
|
|
6804
|
+
}else{
|
|
6805
|
+
toast(t('settings.saved'),'success');
|
|
6806
|
+
}
|
|
6807
|
+
}else{
|
|
6808
|
+
toast(t('settings.saved'),'success');
|
|
6809
|
+
}
|
|
6767
6810
|
_lastSidebarFingerprint='';
|
|
6768
6811
|
_lastSettingsFingerprint='';
|
|
6769
6812
|
_lastSharingConnStatus='';
|
|
@@ -7338,6 +7381,12 @@ function notifTypeText(n){
|
|
|
7338
7381
|
if(n.type==='user_offline'){
|
|
7339
7382
|
return t('notif.userOffline');
|
|
7340
7383
|
}
|
|
7384
|
+
if(n.type==='membership_approved'){
|
|
7385
|
+
return t('notif.membershipApproved');
|
|
7386
|
+
}
|
|
7387
|
+
if(n.type==='membership_rejected'){
|
|
7388
|
+
return t('notif.membershipRejected');
|
|
7389
|
+
}
|
|
7341
7390
|
return n.message||n.type;
|
|
7342
7391
|
}
|
|
7343
7392
|
|
package/dist/viewer/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/viewer/html.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/viewer/html.ts"],"names":[],"mappings":";;AAAA,gCAuqRC;AAvqRD,SAAgB,UAAU,CAAC,aAAsB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,gCAAgC,aAAa,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qKAwqC8J,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4/OnK,CAAC;AACT,CAAC"}
|
package/dist/viewer/server.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/viewer/server.ts"],"names":[],"mappings":"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"}
|
package/dist/viewer/server.js
CHANGED
|
@@ -1357,7 +1357,7 @@ class ViewerServer {
|
|
|
1357
1357
|
});
|
|
1358
1358
|
if (!isLocalShared)
|
|
1359
1359
|
this.store.markMemorySharedLocally(chunkId);
|
|
1360
|
-
if (hubClient.userId) {
|
|
1360
|
+
if (hubClient.userId && this.ctx?.config?.sharing?.role === "hub") {
|
|
1361
1361
|
const existing = this.store.getHubMemoryBySource(hubClient.userId, chunkId);
|
|
1362
1362
|
this.store.upsertHubMemory({
|
|
1363
1363
|
id: response?.memoryId ?? existing?.id ?? node_crypto_1.default.randomUUID(),
|
|
@@ -2250,14 +2250,13 @@ class ViewerServer {
|
|
|
2250
2250
|
},
|
|
2251
2251
|
}),
|
|
2252
2252
|
});
|
|
2253
|
-
|
|
2254
|
-
if (hubUserId) {
|
|
2253
|
+
if (hubClient.userId && this.ctx?.config?.sharing?.role === "hub") {
|
|
2255
2254
|
const now = Date.now();
|
|
2256
|
-
const existing = this.store.getHubMemoryBySource(
|
|
2255
|
+
const existing = this.store.getHubMemoryBySource(hubClient.userId, chunk.id);
|
|
2257
2256
|
this.store.upsertHubMemory({
|
|
2258
2257
|
id: response?.memoryId ?? existing?.id ?? node_crypto_1.default.randomUUID(),
|
|
2259
2258
|
sourceChunkId: chunk.id,
|
|
2260
|
-
sourceUserId:
|
|
2259
|
+
sourceUserId: hubClient.userId,
|
|
2261
2260
|
role: chunk.role,
|
|
2262
2261
|
content: chunk.content,
|
|
2263
2262
|
summary: chunk.summary ?? "",
|
|
@@ -2645,6 +2644,8 @@ class ViewerServer {
|
|
|
2645
2644
|
this.notifSSEClients.push(res);
|
|
2646
2645
|
if (!this.notifPollTimer)
|
|
2647
2646
|
this.startNotifPoll();
|
|
2647
|
+
else
|
|
2648
|
+
this.notifPollImmediate();
|
|
2648
2649
|
req.on("close", () => {
|
|
2649
2650
|
this.notifSSEClients = this.notifSSEClients.filter((c) => c !== res);
|
|
2650
2651
|
if (this.notifSSEClients.length === 0)
|
|
@@ -2688,6 +2689,20 @@ class ViewerServer {
|
|
|
2688
2689
|
this.notifPollTimer = undefined;
|
|
2689
2690
|
}
|
|
2690
2691
|
}
|
|
2692
|
+
notifPollImmediate() {
|
|
2693
|
+
const hub = this.resolveHubConnection();
|
|
2694
|
+
if (!hub)
|
|
2695
|
+
return;
|
|
2696
|
+
(0, hub_1.hubRequestJson)(hub.hubUrl, hub.userToken, "/api/v1/hub/notifications?unread=1")
|
|
2697
|
+
.then((data) => {
|
|
2698
|
+
const count = data?.unreadCount ?? 0;
|
|
2699
|
+
if (count !== this.lastKnownNotifCount) {
|
|
2700
|
+
this.lastKnownNotifCount = count;
|
|
2701
|
+
this.broadcastNotifSSE({ type: "update", unreadCount: count });
|
|
2702
|
+
}
|
|
2703
|
+
})
|
|
2704
|
+
.catch(() => { });
|
|
2705
|
+
}
|
|
2691
2706
|
startHubHeartbeat() {
|
|
2692
2707
|
this.stopHubHeartbeat();
|
|
2693
2708
|
const sendHeartbeat = async () => {
|
|
@@ -2875,10 +2890,16 @@ class ViewerServer {
|
|
|
2875
2890
|
const finalSharing = config.sharing;
|
|
2876
2891
|
const nowClient = Boolean(finalSharing?.enabled) && finalSharing?.role === "client";
|
|
2877
2892
|
const previouslyClient = oldSharingEnabled && oldSharingRole === "client";
|
|
2893
|
+
let joinStatus;
|
|
2878
2894
|
if (nowClient && !previouslyClient) {
|
|
2879
|
-
|
|
2895
|
+
try {
|
|
2896
|
+
joinStatus = await this.autoJoinOnSave(finalSharing);
|
|
2897
|
+
}
|
|
2898
|
+
catch (e) {
|
|
2899
|
+
this.log.warn(`Auto-join on save failed: ${e}`);
|
|
2900
|
+
}
|
|
2880
2901
|
}
|
|
2881
|
-
this.jsonResponse(res, { ok: true });
|
|
2902
|
+
this.jsonResponse(res, { ok: true, joinStatus });
|
|
2882
2903
|
}
|
|
2883
2904
|
catch (e) {
|
|
2884
2905
|
this.log.warn(`handleSaveConfig error: ${e}`);
|
|
@@ -2892,7 +2913,7 @@ class ViewerServer {
|
|
|
2892
2913
|
const hubAddress = String(clientCfg?.hubAddress || "");
|
|
2893
2914
|
const teamToken = String(clientCfg?.teamToken || "");
|
|
2894
2915
|
if (!hubAddress || !teamToken)
|
|
2895
|
-
return;
|
|
2916
|
+
return undefined;
|
|
2896
2917
|
const hubUrl = (0, hub_1.normalizeHubUrl)(hubAddress);
|
|
2897
2918
|
const os = await Promise.resolve().then(() => __importStar(require("os")));
|
|
2898
2919
|
const nickname = String(clientCfg?.nickname || "");
|
|
@@ -2919,6 +2940,7 @@ class ViewerServer {
|
|
|
2919
2940
|
if (result.userToken) {
|
|
2920
2941
|
this.startHubHeartbeat();
|
|
2921
2942
|
}
|
|
2943
|
+
return result.status;
|
|
2922
2944
|
}
|
|
2923
2945
|
async notifyHubLeave() {
|
|
2924
2946
|
try {
|