Removing COllection + workspace usage

This commit is contained in:
Romaric Mourgues
2023-04-20 14:43:50 +02:00
parent 34fcb0ce11
commit 47e67f72cc
8 changed files with 4 additions and 200 deletions
@@ -3,7 +3,7 @@ import './parameters.scss';
export default (props: { label: string; description: string; children: ReactNode }) => {
return (
<div className={'parameters_attribute open'}>
<div className={'parameters_attribute open block'}>
<div className="label">
<div className="label">{props.label}</div>
<div className="description">{props.description}</div>
@@ -47,7 +47,6 @@
& > .value {
font-size: 14px;
max-height: 0;
transition: max-height 0.2s, opacity 0.2s;
overflow: hidden;
opacity: 0;
@@ -39,36 +39,7 @@ class Workspaces extends Observable {
}
updateCurrentWorkspaceId(workspaceId, notify = false) {
if (this.currentWorkspaceId !== workspaceId && workspaceId) {
const workspace = DepreciatedCollections.get('workspaces').find(workspaceId);
if (!workspace) {
return;
}
this.currentWorkspaceId = workspaceId;
this.currentWorkspaceIdByGroup[workspace.company_id] = workspaceId;
if (!this.getting_details[workspaceId]) {
this.getting_details[workspaceId] = true;
WorkspaceAPIClient.get(workspace.company_id, workspaceId)
.then(workspace => {
if (!workspace) {
this.removeFromUser(workspaceId);
}
DepreciatedCollections.get('workspaces').updateObject(workspace);
notify && this.notify();
// FIXME: What is this???
setTimeout(() => {
this.getting_details[workspaceId] = false;
}, 10000);
})
.catch(() => {
this.removeFromUser(workspaceId);
});
}
}
}
updateCurrentCompanyId(companyId, notify = false) {
@@ -224,10 +195,7 @@ class Workspaces extends Observable {
name,
});
this.logger.debug('Workspace updated', result);
DepreciatedCollections.get('workspaces').updateObject({
id: this.currentWorkspaceId,
name,
});
} catch (err) {
this.logger.error('Can not update the workspace', err);
}
@@ -272,7 +240,6 @@ class Workspaces extends Observable {
that.notify();
} else {
var update = resp.data;
DepreciatedCollections.get('workspaces').updateObject(update);
ws.publish('workspace/' + update.id, { workspace: update });
that.notify();
}
@@ -296,10 +263,6 @@ class Workspaces extends Observable {
}
window.location.reload();
}
getCurrentWorkspace() {
return DepreciatedCollections.get('workspaces').find(this.currentWorkspaceId) || {};
}
}
export default new Workspaces();
@@ -19,7 +19,6 @@ export const onChangeCompanyApplications = (companyId: string, _applications: Ap
(applications || []).forEach(a => {
if (!_.isEqual(a, companyApplicationMap.get(a.id))) {
companyApplicationMap.set(a.id, a);
Collections.get('applications').updateObject(a);
}
});
};
@@ -21,7 +21,6 @@ export const CompaniesState = atomFamily<CompanyType | null, string>({
onSet(company => {
if (company?.id) {
companies[company.id] = company;
Collections.get('groups').updateObject(_.cloneDeep(company));
}
});
},
@@ -54,35 +54,13 @@ class WorkspacesUsers extends Observable {
(Globals.window as any).workspaceUserService = this;
}
getAdminLevel(idWorkspace = workspaceService.currentWorkspaceId) {
const levels = Collections.get('workspaces').find(idWorkspace).levels;
if (levels) {
for (let i = 0; i < levels.length; i++) {
if (levels[i].admin) {
return levels[i];
}
}
}
return false;
}
getDefaultLevel(idWorkspace = workspaceService.currentWorkspaceId) {
const levels = Collections.get('workspaces').find(idWorkspace).levels;
if (levels) {
for (let i = 0; i < levels.length; i++) {
if (levels[i].default) {
return levels[i];
}
}
}
return false;
}
isGroupManager() {}
getLevel(idLevel: string) {
const levels = Collections.get('workspaces').find(workspaceService.currentWorkspaceId).levels;
for (let i = 0; i < levels.length; i++) {
if (idLevel === levels[i].id) {
return levels[i];
}
}
return false;
}
@@ -94,109 +72,7 @@ class WorkspacesUsers extends Observable {
ws.unsubscribe('workspace_users/' + workspace_id, null, null);
}
load(workspace_id: string, reset_offset: string, options: any) {
if (!options) {
options = {};
}
const that = this;
const workspace = Collections.get('workspaces').find(workspace_id);
if (!workspace) {
return;
}
const group_id = workspace?.group?.id || workspace.company_id;
if (!this.users_by_group[group_id]) {
this.users_by_group[group_id] = {};
}
if (!this.users_by_workspace[workspace_id]) {
this.users_by_workspace[workspace_id] = {};
}
if (!this.offset_by_workspace_id[workspace_id] || reset_offset) {
this.offset_by_workspace_id[workspace_id] = [0, false];
}
if (!this.offset_by_group_id[group_id] || reset_offset) {
this.offset_by_group_id[group_id] = [0, false];
}
const loadMembers = (data: any) => {
if (!data) {
return;
}
if (typeof data.members === 'object' && data.members.members) {
data = data.members;
}
if (data.members) {
(data.members || []).forEach((item: any) => {
if (
!that.offset_by_workspace_id[workspace_id][1] ||
Numbers.compareTimeuuid(item.user.id, that.offset_by_workspace_id[workspace_id][1]) > 0
) {
that.offset_by_workspace_id[workspace_id][1] = item.user.id;
}
that.offset_by_workspace_id[workspace_id][0]++;
Collections.get('users').completeObject(item.user, item.user.front_id);
that.users_by_group[group_id][item.user.id] = item;
that.users_by_workspace[workspace_id][item.user.id] = item;
});
that.notify();
}
if (data.mails) {
that.membersPending = data.mails || [];
that.notify();
}
if (data.stats.total_members > 1 && WorkspaceUserRights.hasWorkspacePrivilege()) {
CurrentUser.updateTutorialStatus('did_invite_collaborators');
}
};
const data = {
workspaceId: workspace_id,
max: this.offset_by_workspace_id[workspace_id][0] === 0 ? 100 : 40,
};
if (options.members) {
loadMembers(options.members || []);
} else {
Api.post('/ajax/workspace/members/list', data, (res: any) => {
if (res.data) {
loadMembers({ members: res.data });
}
});
Api.post('/ajax/workspace/members/pending', data, (res: any) => {
if (res.data) {
loadMembers({ mails: res.data });
}
});
loadMembers(options.members || []);
}
const loadGroupUsers = (data: any) => {
data.users.forEach((item: any) => {
if (
!that.offset_by_group_id[group_id][1] ||
Numbers.compareTimeuuid(item.user.id, that.offset_by_group_id[group_id][1]) > 0
) {
that.offset_by_group_id[group_id][1] = item.user.id;
}
that.offset_by_group_id[group_id][0]++;
Collections.get('users').completeObject(item.user, item.user.front_id);
that.users_by_group[group_id][item.user.id] = item;
});
that.notify();
};
if (options.group_users) {
loadMembers(options.group_users);
}
}
load(workspace_id: string, reset_offset: string, options: any) {}
canShowUserInWorkspaceList(member: any) {
// if user is interne or wexterne => no restriction
if (!WorkspaceUserRights.isInvite()) {
@@ -206,28 +82,6 @@ class WorkspacesUsers extends Observable {
// if other user is interne or wexterne
return true;
}
// check in all channel if 2 chavite are in the same channel
const channelsInWorkspace = Collections.get('channels').findBy({
direct: false,
application: false,
original_workspace: workspaceService.currentWorkspaceId,
});
for (let i = 0; i < channelsInWorkspace.length; i++) {
// check in all channel if 2 chavite are in the same channel
if (channelsInWorkspace[i].ext_members) {
let bothAreInChannel = 0; // if 1 : one of 2 users searched is in channel as chavite, 2 : both are in channel as chavite
const extMembers = channelsInWorkspace[i].ext_members;
for (let j = 0; j < extMembers.length; j++) {
if (extMembers[j] === member || extMembers[j] === CurrentUser.get().id) {
bothAreInChannel++;
if (bothAreInChannel >= 2) {
return true;
}
}
}
}
}
}
return false;
}
@@ -44,13 +44,6 @@ export const useWorkspacesCommons = (companyId = '') => {
);
}
//Retro compatibility
workspaces?.forEach(w => {
Collections.get('workspaces').updateObject(_.cloneDeep(w));
AccessRightsService.updateLevel(w.id, w.role as RightsOrNone);
});
//End
return { workspaces, loading, refresh };
};
@@ -22,9 +22,6 @@ export const WorkspaceListStateFamily = atomFamily<WorkspaceType[], string>({
({ onSet }) => {
onSet(workspaces => {
workspacesCompanyMap[companyId] = workspaces;
workspaces.map(w => {
Collections.get('workspaces').updateObject(_.cloneDeep(w));
});
});
},
],