Merge branch 'feature/loading-acceleration' of https://github.com/ONLYOFFICE/CommunityServer-AspNetCore into feature/loading-acceleration

This commit is contained in:
Nikita Gopienko 2020-10-06 19:33:57 +03:00
commit b8d2407530
3 changed files with 81 additions and 75 deletions

View File

@ -271,6 +271,7 @@ export const getPeopleList = createSelector(
userName,
activationStatus,
status,
groups,
} = user;
const statusType = getUserStatus(user);
const role = getUserRole(user);
@ -300,6 +301,7 @@ export const getPeopleList = createSelector(
userName,
mobilePhone,
options,
groups,
};
});
}

View File

@ -1,98 +1,102 @@
import { getUserByUserName } from '../people/selectors';
import { getUserByUserName } from "../people/selectors";
import { fetchPeople } from "../people/actions";
import { store, api } from 'asc-web-common';
import { store, api } from "asc-web-common";
const { setCurrentUser } = store.auth.actions;
const { isMe } = store.auth.selectors;
export const SET_PROFILE = 'SET_PROFILE';
export const CLEAN_PROFILE = 'CLEAN_PROFILE';
export const SET_PROFILE = "SET_PROFILE";
export const CLEAN_PROFILE = "CLEAN_PROFILE";
export function setProfile(targetUser) {
return {
type: SET_PROFILE,
targetUser
};
};
return {
type: SET_PROFILE,
targetUser,
};
}
export function resetProfile() {
return {
type: CLEAN_PROFILE
};
};
return {
type: CLEAN_PROFILE,
};
}
export function employeeWrapperToMemberModel(profile) {
const comment = profile.notes;
const department = profile.groups ? profile.groups.map(group => group.id) : [];
const worksFrom = profile.workFrom;
const comment = profile.notes;
const department = profile.groups
? profile.groups.map((group) => group.id)
: [];
const worksFrom = profile.workFrom;
return { ...profile, comment, department, worksFrom };
};
return { ...profile, comment, department, worksFrom };
}
export function fetchProfile(userName) {
return (dispatch, getState) => {
const { auth, people } = getState();
return (dispatch, getState) => {
const { auth } = getState();
if (isMe(auth.user, userName)) {
dispatch(setProfile(auth.user));
} else {
const user = getUserByUserName(people.users, userName);
if (!user) {
api.people.getUser(userName).then(user => {
dispatch(setProfile(user));
});
} else {
dispatch(setProfile(user));
}
}
};
};
if (isMe(auth.user, userName)) {
dispatch(setProfile(auth.user));
} else {
api.people.getUser(userName).then((user) => {
dispatch(setProfile(user));
});
}
};
}
export function createProfile(profile) {
return (dispatch, getState) => {
const { people } = getState();
const { filter } = people;
const member = employeeWrapperToMemberModel(profile);
let result;
return (dispatch, getState) => {
const { people } = getState();
const { filter } = people;
const member = employeeWrapperToMemberModel(profile);
let result;
return api.people.createUser(member).then(user => {
result = user;
return dispatch(setProfile(user));
}).then(() => {
return fetchPeople(filter, dispatch);
}).then(() => {
return Promise.resolve(result);
});
};
};
return api.people
.createUser(member)
.then((user) => {
result = user;
return dispatch(setProfile(user));
})
.then(() => {
return fetchPeople(filter, dispatch);
})
.then(() => {
return Promise.resolve(result);
});
};
}
export function updateProfile(profile) {
return (dispatch, getState) => {
const { people } = getState();
const { filter } = people;
const member = employeeWrapperToMemberModel(profile);
let result;
return (dispatch, getState) => {
const { people } = getState();
const { filter } = people;
const member = employeeWrapperToMemberModel(profile);
let result;
return api.people.updateUser(member).then(user => {
result = user;
return Promise.resolve(dispatch(setProfile(user)));
}).then(() => {
return fetchPeople(filter, dispatch);
}).then(() => {
return Promise.resolve(result);
});
};
};
return api.people
.updateUser(member)
.then((user) => {
result = user;
return Promise.resolve(dispatch(setProfile(user)));
})
.then(() => {
return fetchPeople(filter, dispatch);
})
.then(() => {
return Promise.resolve(result);
});
};
}
export function updateProfileCulture(id, culture) {
return (dispatch) => {
return api.people.updateUserCulture(id, culture).then(user => {
dispatch(setCurrentUser(user));
return dispatch(setProfile(user));
});
};
};
return (dispatch) => {
return api.people.updateUserCulture(id, culture).then((user) => {
dispatch(setCurrentUser(user));
return dispatch(setProfile(user));
});
};
}
export function getUserPhoto(id) {
return api.people.getUserPhoto(id);
};
return api.people.getUserPhoto(id);
}

View File

@ -74,7 +74,7 @@ class Filter {
filtervalue: (search ?? "").trim(),
groupId: group,
fields:
"id,status,isAdmin,isOwner,isVisitor,activationStatus,userName,email,mobilePhone,displayName,avatar,listAdminModules,birthday,title,location,isLDAP,isSSO"
"id,status,isAdmin,isOwner,isVisitor,activationStatus,userName,email,mobilePhone,displayName,avatar,listAdminModules,birthday,title,location,isLDAP,isSSO,groups"
};
switch (role) {