@memtensor/memos-local-openclaw-plugin 1.0.4-beta.12 → 1.0.4-beta.14
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.map +1 -1
- package/dist/client/connector.js +48 -11
- package/dist/client/connector.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/hub/server.d.ts.map +1 -1
- package/dist/hub/server.js +1 -0
- package/dist/hub/server.js.map +1 -1
- package/dist/viewer/html.d.ts.map +1 -1
- package/dist/viewer/html.js +96 -32
- 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 +26 -3
- package/dist/viewer/server.js.map +1 -1
- package/package.json +1 -1
- package/src/client/connector.ts +46 -11
- package/src/config.ts +2 -1
- package/src/hub/server.ts +1 -0
- package/src/viewer/html.ts +96 -32
- package/src/viewer/server.ts +25 -4
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':'这将清除当前连接数据并重新提交加入申请,是否继续?',
|
|
@@ -3595,20 +3602,25 @@ function selectSharingRole(role){
|
|
|
3595
3602
|
var tp=document.getElementById('sharingTeamPanel');
|
|
3596
3603
|
var ap=document.getElementById('sharingAdminPanel');
|
|
3597
3604
|
if(role==='client'){
|
|
3598
|
-
if(sp) sp.style.display='none';
|
|
3605
|
+
if(sp) { sp.style.display='none'; sp.innerHTML=''; }
|
|
3599
3606
|
if(tp) tp.style.display='none';
|
|
3600
3607
|
if(ap) ap.style.display='none';
|
|
3601
3608
|
}else{
|
|
3602
|
-
if(sp) sp.style.display='';
|
|
3609
|
+
if(sp) { sp.style.display='none'; sp.innerHTML=''; }
|
|
3603
3610
|
if(tp) tp.style.display='';
|
|
3604
|
-
if(ap)
|
|
3611
|
+
if(ap) tp.style.display='';
|
|
3605
3612
|
}
|
|
3613
|
+
_lastSettingsFingerprint='';
|
|
3614
|
+
setTimeout(function(){ loadSharingStatus(true); },200);
|
|
3606
3615
|
if(role==='hub'){
|
|
3607
3616
|
var tk=document.getElementById('cfgHubTeamToken');
|
|
3608
3617
|
if(!tk.value.trim()) tk.value=_genToken(18);
|
|
3609
3618
|
var tn=document.getElementById('cfgHubTeamName');
|
|
3610
3619
|
if(!tn.value.trim()) tn.value='My Team';
|
|
3611
3620
|
}
|
|
3621
|
+
var card=document.getElementById('settingsSharingConfig');
|
|
3622
|
+
var saveBtn=card&&card.querySelector('.settings-actions .btn-primary');
|
|
3623
|
+
if(saveBtn&&typeof _hubSaveBtnLabel==='function') saveBtn.textContent=_hubSaveBtnLabel();
|
|
3612
3624
|
}
|
|
3613
3625
|
var _cachedLocalIP='';
|
|
3614
3626
|
function updateHubShareInfo(){
|
|
@@ -3700,19 +3712,19 @@ function switchView(view){
|
|
|
3700
3712
|
else if(view==='analytics') loadMetrics();
|
|
3701
3713
|
else if(view==='logs') loadLogs();
|
|
3702
3714
|
else if(view==='settings'){loadConfig().then(function(){
|
|
3703
|
-
var notDismissed=localStorage.getItem('memos-team-guide-dismissed')!=='1';
|
|
3704
3715
|
var sharingOn=document.getElementById('cfgSharingEnabled');
|
|
3705
3716
|
var sharingNotEnabled=!sharingOn||!sharingOn.checked;
|
|
3706
|
-
if(
|
|
3717
|
+
if(sharingNotEnabled){
|
|
3707
3718
|
switchSettingsTab('hub',document.querySelector('.settings-tab-btn[data-tab="hub"]'));
|
|
3708
3719
|
}
|
|
3709
3720
|
});loadModelHealth();}
|
|
3710
3721
|
else if(view==='import'){if(!window._migrateRunning) migrateScan(false);}
|
|
3711
|
-
else if(view==='admin'){loadAdminData();}
|
|
3722
|
+
else if(view==='admin'){_lastAdminFingerprint='';loadAdminData();}
|
|
3712
3723
|
}
|
|
3713
3724
|
|
|
3714
3725
|
function onMemoryScopeChange(){
|
|
3715
3726
|
memorySearchScope=document.getElementById('memorySearchScope')?.value||'local';
|
|
3727
|
+
try{localStorage.setItem('memos_memorySearchScope',memorySearchScope);}catch(e){}
|
|
3716
3728
|
currentPage=1;
|
|
3717
3729
|
activeSession=null;activeRole='';
|
|
3718
3730
|
_lastMemoriesFingerprint='';
|
|
@@ -3778,10 +3790,13 @@ async function loadSharingStatus(forcePending){
|
|
|
3778
3790
|
if(_lastSharingConnStatus==='pending'&&curStatus==='connected'){
|
|
3779
3791
|
toast(t('sharing.approved.toast'),'success');
|
|
3780
3792
|
loadMemories();loadTasks();loadSkills();
|
|
3793
|
+
if(_notifSSE){_notifSSE.close();_notifSSE=null;_notifSSEConnected=false;}
|
|
3794
|
+
connectNotifSSE();
|
|
3795
|
+
loadNotifications();
|
|
3781
3796
|
}
|
|
3782
3797
|
_lastSharingConnStatus=curStatus;
|
|
3783
3798
|
if(curStatus==='pending'&&!_clientPendingPollTimer){
|
|
3784
|
-
_clientPendingPollTimer=setInterval(function(){loadSharingStatus(false);},
|
|
3799
|
+
_clientPendingPollTimer=setInterval(function(){loadSharingStatus(false);},5000);
|
|
3785
3800
|
}
|
|
3786
3801
|
if(curStatus!=='pending'&&_clientPendingPollTimer){
|
|
3787
3802
|
clearInterval(_clientPendingPollTimer);
|
|
@@ -3835,6 +3850,7 @@ function renderSharingSidebar(data){
|
|
|
3835
3850
|
html+='<span class="label">'+t('sharing.sidebar.identity')+'</span><span class="value">'+esc(conn.user.username||'-')+'</span>';
|
|
3836
3851
|
if(conn.teamName) html+='<span class="label">'+t('sharing.team')+'</span><span class="value">'+esc(conn.teamName)+'</span>';
|
|
3837
3852
|
html+='</div>';
|
|
3853
|
+
html+='<div style="margin-top:8px"><button class="btn btn-sm btn-primary" onclick="retryHubJoin()" style="font-size:11px">'+t('sharing.retryJoin')+'</button></div>';
|
|
3838
3854
|
statusEl.innerHTML=html;
|
|
3839
3855
|
hintEl.textContent=t('sharing.rejected.hint');
|
|
3840
3856
|
}else if(conn.removed&&conn.user){
|
|
@@ -3843,6 +3859,7 @@ function renderSharingSidebar(data){
|
|
|
3843
3859
|
html+='<span class="label">'+t('sharing.sidebar.identity')+'</span><span class="value">'+esc(conn.user.username||'-')+'</span>';
|
|
3844
3860
|
if(conn.teamName) html+='<span class="label">'+t('sharing.team')+'</span><span class="value">'+esc(conn.teamName)+'</span>';
|
|
3845
3861
|
html+='</div>';
|
|
3862
|
+
html+='<div style="margin-top:8px"><button class="btn btn-sm btn-primary" onclick="retryHubJoin()" style="font-size:11px">'+t('sharing.retryJoin')+'</button></div>';
|
|
3846
3863
|
statusEl.innerHTML=html;
|
|
3847
3864
|
hintEl.textContent=t('sharing.removed.hint');
|
|
3848
3865
|
}else if(conn.connected&&conn.user){
|
|
@@ -3879,6 +3896,9 @@ function renderSharingSettings(data){
|
|
|
3879
3896
|
if(!data||!data.enabled){
|
|
3880
3897
|
statusEl.innerHTML='';teamEl.innerHTML='';adminEl.innerHTML='';
|
|
3881
3898
|
if(panelsWrap) panelsWrap.style.display='none';
|
|
3899
|
+
var adminNavTab0=document.querySelector('.tab[data-view="admin"]');
|
|
3900
|
+
if(adminNavTab0) adminNavTab0.style.display='none';
|
|
3901
|
+
if(_activeView==='admin') switchView('memories');
|
|
3882
3902
|
return;
|
|
3883
3903
|
}
|
|
3884
3904
|
if(panelsWrap) panelsWrap.style.display='';
|
|
@@ -3886,9 +3906,20 @@ function renderSharingSettings(data){
|
|
|
3886
3906
|
var user=conn.user||{};
|
|
3887
3907
|
var actualRole=data.role||_sharingRole||'client';
|
|
3888
3908
|
if(data.role) _sharingRole=data.role;
|
|
3909
|
+
var prevIsAdmin=!!window._isHubAdmin;
|
|
3889
3910
|
var isAdmin=(data.admin&&data.admin.canManageUsers)||(conn.connected&&user.role==='admin')||(actualRole==='hub');
|
|
3890
3911
|
window._isHubAdmin=isAdmin;
|
|
3891
3912
|
if(isAdmin) startAdminPoll();
|
|
3913
|
+
var adminNavTab=document.querySelector('.tab[data-view="admin"]');
|
|
3914
|
+
if(adminNavTab){
|
|
3915
|
+
var showTab=(actualRole==='hub')||(conn.connected);
|
|
3916
|
+
adminNavTab.style.display=showTab?'':'none';
|
|
3917
|
+
if(!showTab&&_activeView==='admin') switchView('memories');
|
|
3918
|
+
}
|
|
3919
|
+
if(prevIsAdmin&&!isAdmin&&_activeView==='admin'){
|
|
3920
|
+
_lastAdminFingerprint='';
|
|
3921
|
+
loadAdminData();
|
|
3922
|
+
}
|
|
3892
3923
|
var hubAdminBtn=document.getElementById('hubAdminEntryBtn');
|
|
3893
3924
|
|
|
3894
3925
|
if(actualRole==='hub'){
|
|
@@ -4062,7 +4093,7 @@ async function approveSharingUser(userId,username){
|
|
|
4062
4093
|
try{
|
|
4063
4094
|
const r=await fetch('/api/sharing/approve-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,username:username})});
|
|
4064
4095
|
const d=await r.json();
|
|
4065
|
-
if(d.ok){toast(t('toast.userApproved'),'success');loadSharingPendingUsers();loadSharingStatus(true);} else {toast(d.error||t('toast.approveFail'),'error');}
|
|
4096
|
+
if(d.ok){toast(t('toast.userApproved'),'success');loadSharingPendingUsers();loadSharingStatus(true);_lastAdminFingerprint='';loadAdminData();} else {toast(d.error||t('toast.approveFail'),'error');}
|
|
4066
4097
|
}catch(e){toast(t('toast.approveFail')+': '+e.message,'error');}
|
|
4067
4098
|
}
|
|
4068
4099
|
|
|
@@ -4070,24 +4101,17 @@ async function rejectSharingUser(userId,username){
|
|
|
4070
4101
|
try{
|
|
4071
4102
|
const r=await fetch('/api/sharing/reject-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,username:username})});
|
|
4072
4103
|
const d=await r.json();
|
|
4073
|
-
if(d.ok){toast(t('toast.userRejected'),'success');loadSharingPendingUsers();} else {toast(d.error||t('toast.rejectFail'),'error');}
|
|
4104
|
+
if(d.ok){toast(t('toast.userRejected'),'success');loadSharingPendingUsers();_lastAdminFingerprint='';loadAdminData();} else {toast(d.error||t('toast.rejectFail'),'error');}
|
|
4074
4105
|
}catch(e){toast(t('toast.rejectFail')+': '+e.message,'error');}
|
|
4075
4106
|
}
|
|
4076
4107
|
|
|
4077
4108
|
/* ─── Team Setup Guide ─── */
|
|
4078
|
-
var TEAM_GUIDE_DISMISSED_KEY='memos-team-guide-dismissed';
|
|
4079
4109
|
function updateTeamGuide(sharingData){
|
|
4080
4110
|
var el=document.getElementById('teamSetupGuide');
|
|
4081
4111
|
if(!el) return;
|
|
4082
|
-
if(localStorage.getItem(TEAM_GUIDE_DISMISSED_KEY)==='1'){el.style.display='none';return;}
|
|
4083
4112
|
var isConfigured=sharingData&&sharingData.enabled;
|
|
4084
4113
|
el.style.display=isConfigured?'none':'block';
|
|
4085
4114
|
}
|
|
4086
|
-
function dismissTeamGuide(){
|
|
4087
|
-
localStorage.setItem(TEAM_GUIDE_DISMISSED_KEY,'1');
|
|
4088
|
-
var el=document.getElementById('teamSetupGuide');
|
|
4089
|
-
if(el) el.style.display='none';
|
|
4090
|
-
}
|
|
4091
4115
|
function guideGoToHub(role){
|
|
4092
4116
|
switchSettingsTab('hub',document.querySelector('.settings-tab-btn[data-tab="hub"]'));
|
|
4093
4117
|
var chk=document.getElementById('cfgSharingEnabled');
|
|
@@ -4203,7 +4227,7 @@ async function loadAdminData(){
|
|
|
4203
4227
|
var _newMemories=Array.isArray(memoriesR.memories)?memoriesR.memories:[];
|
|
4204
4228
|
var pending=isAdmin?(Array.isArray(pendingR.users)?pendingR.users:[]):[];
|
|
4205
4229
|
var _fp=_newUsers.length+':'+_newTasks.length+':'+_newSkills.length+':'+_newMemories.length+':'+pending.length
|
|
4206
|
-
+':'+_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(',')
|
|
4230
|
+
+':'+_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(',')
|
|
4207
4231
|
+':'+_newMemories.map(function(m){return m.id}).join(',')
|
|
4208
4232
|
+':'+_newTasks.map(function(t){return t.id+'|'+(t.status||'')}).join(',')
|
|
4209
4233
|
+':'+_newSkills.map(function(s){return s.id+'|'+(s.status||'')}).join(',')
|
|
@@ -4399,7 +4423,7 @@ async function adminApproveUser(userId,username){
|
|
|
4399
4423
|
try{
|
|
4400
4424
|
var r=await fetch('/api/sharing/approve-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,username:username})});
|
|
4401
4425
|
var d=await r.json();
|
|
4402
|
-
if(d.ok){toast(t('toast.userApproved'),'success');loadAdminData();}else{toast(d.error||t('toast.approveFail'),'error');}
|
|
4426
|
+
if(d.ok){toast(t('toast.userApproved'),'success');_lastAdminFingerprint='';loadAdminData();}else{toast(d.error||t('toast.approveFail'),'error');}
|
|
4403
4427
|
}catch(e){toast(t('toast.approveFail')+': '+e.message,'error');}
|
|
4404
4428
|
}
|
|
4405
4429
|
async function adminRejectUser(userId){
|
|
@@ -4407,7 +4431,7 @@ async function adminRejectUser(userId){
|
|
|
4407
4431
|
try{
|
|
4408
4432
|
var r=await fetch('/api/sharing/reject-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId})});
|
|
4409
4433
|
var d=await r.json();
|
|
4410
|
-
if(d.ok){toast(t('toast.userRejected'),'success');loadAdminData();}else{toast(d.error||t('toast.rejectFail'),'error');}
|
|
4434
|
+
if(d.ok){toast(t('toast.userRejected'),'success');_lastAdminFingerprint='';loadAdminData();}else{toast(d.error||t('toast.rejectFail'),'error');}
|
|
4411
4435
|
}catch(e){toast(t('toast.rejectFail')+': '+e.message,'error');}
|
|
4412
4436
|
}
|
|
4413
4437
|
async function adminToggleRole(userId,newRole){
|
|
@@ -4416,7 +4440,14 @@ async function adminToggleRole(userId,newRole){
|
|
|
4416
4440
|
try{
|
|
4417
4441
|
var r=await fetch('/api/sharing/change-role',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,role:newRole})});
|
|
4418
4442
|
var d=await r.json();
|
|
4419
|
-
if(d.ok){
|
|
4443
|
+
if(d.ok){
|
|
4444
|
+
toast(t('toast.roleChanged'),'success');
|
|
4445
|
+
_lastAdminFingerprint='';
|
|
4446
|
+
_lastSettingsFingerprint='';
|
|
4447
|
+
_lastSidebarFingerprint='';
|
|
4448
|
+
await loadSharingStatus(false);
|
|
4449
|
+
loadAdminData();
|
|
4450
|
+
}
|
|
4420
4451
|
else if(d.error==='cannot_demote_owner'){toast(t('admin.ownerHint'),'error');}
|
|
4421
4452
|
else{toast(d.error||t('toast.roleChangeFail'),'error');}
|
|
4422
4453
|
}catch(e){toast(t('toast.roleChangeFail')+': '+e.message,'error');}
|
|
@@ -4468,7 +4499,7 @@ async function adminRemoveUser(userId,username){
|
|
|
4468
4499
|
try{
|
|
4469
4500
|
var r=await fetch('/api/sharing/remove-user',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({userId:userId,cleanResources:clean})});
|
|
4470
4501
|
var d=await r.json();
|
|
4471
|
-
if(d.ok){toast(t('toast.userRemoved'),'success');loadAdminData();}
|
|
4502
|
+
if(d.ok){toast(t('toast.userRemoved'),'success');_lastAdminFingerprint='';loadAdminData();}
|
|
4472
4503
|
else if(d.error==='cannot_remove_owner'){toast(t('admin.ownerHint'),'error');}
|
|
4473
4504
|
else{toast(d.error||t('toast.removeFail'),'error');}
|
|
4474
4505
|
}catch(e){toast(t('toast.removeFail')+': '+e.message,'error');}
|
|
@@ -6600,16 +6631,16 @@ async function doSaveConfig(cfg, btnEl, savedId){
|
|
|
6600
6631
|
function done(){btnEl.disabled=false;btnEl.textContent=t('settings.save');}
|
|
6601
6632
|
try{
|
|
6602
6633
|
const r=await fetch('/api/config',{method:'PUT',headers:{'Content-Type':'application/json'},body:JSON.stringify(cfg)});
|
|
6603
|
-
if(r.status===401){done();toast(t('settings.session.expired'),'error');return
|
|
6634
|
+
if(r.status===401){done();toast(t('settings.session.expired'),'error');return null;}
|
|
6604
6635
|
if(!r.ok) throw new Error(await r.text());
|
|
6636
|
+
var data=await r.json().catch(function(){return {ok:true};});
|
|
6605
6637
|
flashSaved(savedId);
|
|
6606
|
-
toast(t('settings.saved'),'success');
|
|
6607
6638
|
done();
|
|
6608
|
-
return
|
|
6639
|
+
return data;
|
|
6609
6640
|
}catch(e){
|
|
6610
6641
|
toast(t('settings.save.fail')+': '+e.message,'error');
|
|
6611
6642
|
done();
|
|
6612
|
-
return
|
|
6643
|
+
return null;
|
|
6613
6644
|
}
|
|
6614
6645
|
}
|
|
6615
6646
|
|
|
@@ -6704,11 +6735,19 @@ async function saveModelsConfig(){
|
|
|
6704
6735
|
await doSaveConfig(cfg, saveBtn, 'modelsSaved');
|
|
6705
6736
|
}
|
|
6706
6737
|
|
|
6738
|
+
function _hubSaveBtnLabel(){
|
|
6739
|
+
var on=document.getElementById('cfgSharingEnabled');
|
|
6740
|
+
if(on&&on.checked&&_sharingRole==='client'){
|
|
6741
|
+
var prevClient=sharingStatusCache&&sharingStatusCache.enabled&&sharingStatusCache.role==='client';
|
|
6742
|
+
return prevClient?t('settings.save'):t('sharing.joinTeam');
|
|
6743
|
+
}
|
|
6744
|
+
return t('settings.save');
|
|
6745
|
+
}
|
|
6707
6746
|
async function saveHubConfig(){
|
|
6708
6747
|
var card=document.getElementById('settingsSharingConfig');
|
|
6709
6748
|
var saveBtn=card.querySelector('.settings-actions .btn-primary');
|
|
6710
6749
|
saveBtn.disabled=true;saveBtn.textContent=t('settings.test.loading');
|
|
6711
|
-
function done(){saveBtn.disabled=false;saveBtn.textContent=
|
|
6750
|
+
function done(){saveBtn.disabled=false;saveBtn.textContent=_hubSaveBtnLabel();}
|
|
6712
6751
|
|
|
6713
6752
|
const cfg={};
|
|
6714
6753
|
var sharingEnabled=document.getElementById('cfgSharingEnabled').checked;
|
|
@@ -6775,14 +6814,25 @@ async function saveHubConfig(){
|
|
|
6775
6814
|
if(!(await confirmModal(switchMsg,{danger:true}))){done();return;}
|
|
6776
6815
|
}
|
|
6777
6816
|
|
|
6778
|
-
var
|
|
6779
|
-
if(
|
|
6817
|
+
var result=await doSaveConfig(cfg, saveBtn, 'hubSaved');
|
|
6818
|
+
if(result){
|
|
6780
6819
|
if(sharingEnabled&&_sharingRole==='hub'){
|
|
6781
6820
|
var adminNameEl=document.getElementById('cfgHubAdminName');
|
|
6782
6821
|
if(adminNameEl&&adminNameEl.value.trim()){
|
|
6783
6822
|
try{await fetch('/api/sharing/update-username',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({username:adminNameEl.value.trim()})});}catch(e){}
|
|
6784
6823
|
}
|
|
6785
6824
|
}
|
|
6825
|
+
if(sharingEnabled&&_sharingRole==='client'&&result.joinStatus){
|
|
6826
|
+
if(result.joinStatus==='pending'){
|
|
6827
|
+
toast(t('sharing.joinSent.pending'),'success');
|
|
6828
|
+
}else if(result.joinStatus==='active'){
|
|
6829
|
+
toast(t('sharing.joinSent.active'),'success');
|
|
6830
|
+
}else{
|
|
6831
|
+
toast(t('settings.saved'),'success');
|
|
6832
|
+
}
|
|
6833
|
+
}else{
|
|
6834
|
+
toast(t('settings.saved'),'success');
|
|
6835
|
+
}
|
|
6786
6836
|
_lastSidebarFingerprint='';
|
|
6787
6837
|
_lastSettingsFingerprint='';
|
|
6788
6838
|
_lastSharingConnStatus='';
|
|
@@ -7357,6 +7407,12 @@ function notifTypeText(n){
|
|
|
7357
7407
|
if(n.type==='user_offline'){
|
|
7358
7408
|
return t('notif.userOffline');
|
|
7359
7409
|
}
|
|
7410
|
+
if(n.type==='membership_approved'){
|
|
7411
|
+
return t('notif.membershipApproved');
|
|
7412
|
+
}
|
|
7413
|
+
if(n.type==='membership_rejected'){
|
|
7414
|
+
return t('notif.membershipRejected');
|
|
7415
|
+
}
|
|
7360
7416
|
return n.message||n.type;
|
|
7361
7417
|
}
|
|
7362
7418
|
|
|
@@ -8813,6 +8869,14 @@ async function checkForUpdate(){
|
|
|
8813
8869
|
}
|
|
8814
8870
|
|
|
8815
8871
|
/* ─── Init ─── */
|
|
8872
|
+
try{
|
|
8873
|
+
var savedScope=localStorage.getItem('memos_memorySearchScope');
|
|
8874
|
+
if(savedScope&&(savedScope==='local'||savedScope==='allLocal'||savedScope==='hub')){
|
|
8875
|
+
memorySearchScope=savedScope;
|
|
8876
|
+
var scopeEl=document.getElementById('memorySearchScope');
|
|
8877
|
+
if(scopeEl) scopeEl.value=savedScope;
|
|
8878
|
+
}
|
|
8879
|
+
}catch(e){}
|
|
8816
8880
|
document.getElementById('modalOverlay').addEventListener('click',e=>{if(e.target.id==='modalOverlay')closeModal()});
|
|
8817
8881
|
document.getElementById('searchInput').addEventListener('keydown',e=>{if(e.key==='Escape'){e.target.value='';currentPage=1;if(memorySearchScope==='hub')loadHubMemories();else loadMemories();}});
|
|
8818
8882
|
applyI18n();
|
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,gCAysRC;AAzsRD,SAAgB,UAAU,CAAC,aAAsB;IACjD,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,gCAAgC,aAAa,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qKAwqC8J,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8hPnK,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
|
@@ -2644,6 +2644,8 @@ class ViewerServer {
|
|
|
2644
2644
|
this.notifSSEClients.push(res);
|
|
2645
2645
|
if (!this.notifPollTimer)
|
|
2646
2646
|
this.startNotifPoll();
|
|
2647
|
+
else
|
|
2648
|
+
this.notifPollImmediate();
|
|
2647
2649
|
req.on("close", () => {
|
|
2648
2650
|
this.notifSSEClients = this.notifSSEClients.filter((c) => c !== res);
|
|
2649
2651
|
if (this.notifSSEClients.length === 0)
|
|
@@ -2687,6 +2689,20 @@ class ViewerServer {
|
|
|
2687
2689
|
this.notifPollTimer = undefined;
|
|
2688
2690
|
}
|
|
2689
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
|
+
}
|
|
2690
2706
|
startHubHeartbeat() {
|
|
2691
2707
|
this.stopHubHeartbeat();
|
|
2692
2708
|
const sendHeartbeat = async () => {
|
|
@@ -2874,10 +2890,16 @@ class ViewerServer {
|
|
|
2874
2890
|
const finalSharing = config.sharing;
|
|
2875
2891
|
const nowClient = Boolean(finalSharing?.enabled) && finalSharing?.role === "client";
|
|
2876
2892
|
const previouslyClient = oldSharingEnabled && oldSharingRole === "client";
|
|
2893
|
+
let joinStatus;
|
|
2877
2894
|
if (nowClient && !previouslyClient) {
|
|
2878
|
-
|
|
2895
|
+
try {
|
|
2896
|
+
joinStatus = await this.autoJoinOnSave(finalSharing);
|
|
2897
|
+
}
|
|
2898
|
+
catch (e) {
|
|
2899
|
+
this.log.warn(`Auto-join on save failed: ${e}`);
|
|
2900
|
+
}
|
|
2879
2901
|
}
|
|
2880
|
-
this.jsonResponse(res, { ok: true });
|
|
2902
|
+
this.jsonResponse(res, { ok: true, joinStatus });
|
|
2881
2903
|
}
|
|
2882
2904
|
catch (e) {
|
|
2883
2905
|
this.log.warn(`handleSaveConfig error: ${e}`);
|
|
@@ -2891,7 +2913,7 @@ class ViewerServer {
|
|
|
2891
2913
|
const hubAddress = String(clientCfg?.hubAddress || "");
|
|
2892
2914
|
const teamToken = String(clientCfg?.teamToken || "");
|
|
2893
2915
|
if (!hubAddress || !teamToken)
|
|
2894
|
-
return;
|
|
2916
|
+
return undefined;
|
|
2895
2917
|
const hubUrl = (0, hub_1.normalizeHubUrl)(hubAddress);
|
|
2896
2918
|
const os = await Promise.resolve().then(() => __importStar(require("os")));
|
|
2897
2919
|
const nickname = String(clientCfg?.nickname || "");
|
|
@@ -2918,6 +2940,7 @@ class ViewerServer {
|
|
|
2918
2940
|
if (result.userToken) {
|
|
2919
2941
|
this.startHubHeartbeat();
|
|
2920
2942
|
}
|
|
2943
|
+
return result.status;
|
|
2921
2944
|
}
|
|
2922
2945
|
async notifyHubLeave() {
|
|
2923
2946
|
try {
|