mirror of
https://github.com/plankanban/planka.git
synced 2025-12-25 17:25:01 +03:00
ref: Remove board types, refactoring
This commit is contained in:
@@ -69,6 +69,31 @@ export const selectMembershipsForCurrentBoard = createSelector(
|
||||
},
|
||||
);
|
||||
|
||||
export const selectCurrentUserMembershipForCurrentBoard = createSelector(
|
||||
orm,
|
||||
(state) => selectPath(state).boardId,
|
||||
(state) => selectCurrentUserId(state),
|
||||
({ Board }, id, currentUserId) => {
|
||||
if (!id) {
|
||||
return id;
|
||||
}
|
||||
|
||||
const boardModel = Board.withId(id);
|
||||
|
||||
if (!boardModel) {
|
||||
return boardModel;
|
||||
}
|
||||
|
||||
const boardMembershipModel = boardModel.getMembershipModelForUser(currentUserId);
|
||||
|
||||
if (!boardMembershipModel) {
|
||||
return boardMembershipModel;
|
||||
}
|
||||
|
||||
return boardMembershipModel.ref;
|
||||
},
|
||||
);
|
||||
|
||||
export const selectLabelsForCurrentBoard = createSelector(
|
||||
orm,
|
||||
(state) => selectPath(state).boardId,
|
||||
@@ -147,31 +172,6 @@ export const selectFilterLabelsForCurrentBoard = createSelector(
|
||||
},
|
||||
);
|
||||
|
||||
export const selectCurrentUserMembershipForCurrentBoard = createSelector(
|
||||
orm,
|
||||
(state) => selectPath(state).boardId,
|
||||
(state) => selectCurrentUserId(state),
|
||||
({ Board }, id, currentUserId) => {
|
||||
if (!id) {
|
||||
return id;
|
||||
}
|
||||
|
||||
const boardModel = Board.withId(id);
|
||||
|
||||
if (!boardModel) {
|
||||
return boardModel;
|
||||
}
|
||||
|
||||
const boardMembershipModel = boardModel.getMembershipModel(currentUserId);
|
||||
|
||||
if (!boardMembershipModel) {
|
||||
return boardMembershipModel;
|
||||
}
|
||||
|
||||
return boardMembershipModel.ref;
|
||||
},
|
||||
);
|
||||
|
||||
export const selectIsBoardWithIdExists = createSelector(
|
||||
orm,
|
||||
(_, id) => id,
|
||||
@@ -183,10 +183,10 @@ export default {
|
||||
selectBoardById,
|
||||
selectCurrentBoard,
|
||||
selectMembershipsForCurrentBoard,
|
||||
selectCurrentUserMembershipForCurrentBoard,
|
||||
selectLabelsForCurrentBoard,
|
||||
selectListIdsForCurrentBoard,
|
||||
selectFilterUsersForCurrentBoard,
|
||||
selectFilterLabelsForCurrentBoard,
|
||||
selectCurrentUserMembershipForCurrentBoard,
|
||||
selectIsBoardWithIdExists,
|
||||
};
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import router from './router';
|
||||
import socket from './socket';
|
||||
import core from './core';
|
||||
import modals from './modals';
|
||||
import users from './users';
|
||||
@@ -13,6 +14,7 @@ import attachments from './attachments';
|
||||
|
||||
export default {
|
||||
...router,
|
||||
...socket,
|
||||
...core,
|
||||
...modals,
|
||||
...users,
|
||||
|
||||
@@ -67,10 +67,12 @@ export const selectBoardsForCurrentProject = createSelector(
|
||||
return projectModel;
|
||||
}
|
||||
|
||||
return projectModel.getOrderedAvailableBoardsModelArray(currentUserId).map((boardModel) => ({
|
||||
...boardModel.ref,
|
||||
isPersisted: !isLocalId(boardModel.id),
|
||||
}));
|
||||
return projectModel
|
||||
.getOrderedBoardsModelArrayAvailableForUser(currentUserId)
|
||||
.map((boardModel) => ({
|
||||
...boardModel.ref,
|
||||
isPersisted: !isLocalId(boardModel.id),
|
||||
}));
|
||||
},
|
||||
);
|
||||
|
||||
@@ -89,7 +91,7 @@ export const selectIsCurrentUserManagerForCurrentProject = createSelector(
|
||||
return false;
|
||||
}
|
||||
|
||||
return projectModel.hasManagerUser(currentUserId);
|
||||
return projectModel.hasManagerForUser(currentUserId);
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@@ -26,55 +26,35 @@ export const selectPath = createReduxOrmSelector(
|
||||
case Paths.PROJECTS: {
|
||||
const projectModel = Project.withId(pathsMatch.params.id);
|
||||
|
||||
if (!projectModel) {
|
||||
if (!projectModel || !projectModel.isAvailableForUser(currentUserId)) {
|
||||
return {
|
||||
projectId: null,
|
||||
};
|
||||
}
|
||||
|
||||
if (!projectModel.hasManagerUser(currentUserId)) {
|
||||
if (!projectModel.hasMemberUserForAnyBoard(currentUserId)) {
|
||||
return {
|
||||
projectId: null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
projectId: projectModel.id,
|
||||
};
|
||||
}
|
||||
case Paths.BOARDS: {
|
||||
const boardModel = Board.withId(pathsMatch.params.id);
|
||||
const projectModel = boardModel && boardModel.project;
|
||||
|
||||
if (!projectModel) {
|
||||
if (!boardModel || !boardModel.isAvailableForUser(currentUserId)) {
|
||||
return {
|
||||
boardId: null,
|
||||
projectId: null,
|
||||
};
|
||||
}
|
||||
|
||||
if (!projectModel.hasManagerUser(currentUserId)) {
|
||||
if (!boardModel.hasMemberUser(currentUserId)) {
|
||||
return {
|
||||
boardId: null,
|
||||
projectId: null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
boardId: boardModel.id,
|
||||
projectId: projectModel.id,
|
||||
projectId: boardModel.projectId,
|
||||
};
|
||||
}
|
||||
case Paths.CARDS: {
|
||||
const cardModel = Card.withId(pathsMatch.params.id);
|
||||
const boardModel = cardModel && cardModel.board;
|
||||
const projectModel = boardModel && boardModel.project;
|
||||
|
||||
if (!projectModel) {
|
||||
if (!cardModel || !cardModel.isAvailableForUser(currentUserId)) {
|
||||
return {
|
||||
cardId: null,
|
||||
boardId: null,
|
||||
@@ -82,20 +62,10 @@ export const selectPath = createReduxOrmSelector(
|
||||
};
|
||||
}
|
||||
|
||||
if (!projectModel.hasManagerUser(currentUserId)) {
|
||||
if (!boardModel.hasMemberUser(currentUserId)) {
|
||||
return {
|
||||
cardId: null,
|
||||
boardId: null,
|
||||
projectId: null,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
cardId: cardModel.id,
|
||||
boardId: boardModel.id,
|
||||
projectId: projectModel.id,
|
||||
boardId: cardModel.boardId,
|
||||
projectId: cardModel.board.projectId,
|
||||
};
|
||||
}
|
||||
default:
|
||||
|
||||
5
client/src/selectors/socket.js
Normal file
5
client/src/selectors/socket.js
Normal file
@@ -0,0 +1,5 @@
|
||||
export const selectIsSocketDisconnected = ({ socket: { isDisconnected } }) => isDisconnected;
|
||||
|
||||
export default {
|
||||
selectIsSocketDisconnected,
|
||||
};
|
||||
@@ -52,7 +52,7 @@ export const selectProjectsForCurrentUser = createSelector(
|
||||
}
|
||||
|
||||
return userModel.getOrderedAvailableProjectsModelArray().map((projectModel) => {
|
||||
const boardsModels = projectModel.getOrderedAvailableBoardsModelArray(userModel.id);
|
||||
const boardsModels = projectModel.getOrderedBoardsModelArrayAvailableForUser(userModel.id);
|
||||
|
||||
let notificationsTotal = 0;
|
||||
boardsModels.forEach((boardModel) => {
|
||||
@@ -86,7 +86,7 @@ export const selectProjectsToListsForCurrentUser = createSelector(
|
||||
|
||||
return userModel.getOrderedAvailableProjectsModelArray().map((projectModel) => ({
|
||||
...projectModel.ref,
|
||||
boards: projectModel.getOrderedMemberBoardsModelArray(id).map((boardModel) => ({
|
||||
boards: projectModel.getOrderedBoardsModelArrayForUser(id).map((boardModel) => ({
|
||||
...boardModel.ref,
|
||||
lists: boardModel.getOrderedListsQuerySet().toRefArray(),
|
||||
})),
|
||||
|
||||
Reference in New Issue
Block a user