mirror of
https://github.com/plankanban/planka.git
synced 2025-07-23 07:09:44 +02:00
ref: Remove board types, refactoring
This commit is contained in:
parent
d39da61295
commit
5cd025ffb7
182 changed files with 1573 additions and 1239 deletions
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk } from 'redux-orm';
|
||||
import { attr, fk } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Activity';
|
||||
|
||||
static fields = {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk } from 'redux-orm';
|
||||
import { attr, fk } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Attachment';
|
||||
|
||||
static fields = {
|
||||
|
|
6
client/src/models/BaseModel.js
Normal file
6
client/src/models/BaseModel.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
import { Model } from 'redux-orm';
|
||||
|
||||
export default class BaseModel extends Model {
|
||||
// eslint-disable-next-line no-underscore-dangle, class-methods-use-this
|
||||
_onDelete() {}
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
import { Model, attr, fk, many } from 'redux-orm';
|
||||
import { attr, fk, many } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Board';
|
||||
|
||||
static fields = {
|
||||
id: attr(),
|
||||
type: attr(),
|
||||
position: attr(),
|
||||
name: attr(),
|
||||
isFetching: attr({
|
||||
|
@ -179,7 +179,7 @@ export default class extends Model {
|
|||
return this.lists.orderBy('position');
|
||||
}
|
||||
|
||||
getMembershipModel(userId) {
|
||||
getMembershipModelForUser(userId) {
|
||||
return this.memberships
|
||||
.filter({
|
||||
userId,
|
||||
|
@ -187,7 +187,7 @@ export default class extends Model {
|
|||
.first();
|
||||
}
|
||||
|
||||
hasMemberUser(userId) {
|
||||
hasMembershipForUser(userId) {
|
||||
return this.memberships
|
||||
.filter({
|
||||
userId,
|
||||
|
@ -195,6 +195,12 @@ export default class extends Model {
|
|||
.exists();
|
||||
}
|
||||
|
||||
isAvailableForUser(userId) {
|
||||
return (
|
||||
this.project && (this.project.hasManagerForUser(userId) || this.hasMembershipForUser(userId))
|
||||
);
|
||||
}
|
||||
|
||||
deleteRelated(exceptMemberUserId) {
|
||||
this.memberships.toModelArray().forEach((boardMembershipModel) => {
|
||||
if (boardMembershipModel.userId !== exceptMemberUserId) {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk } from 'redux-orm';
|
||||
import { attr, fk } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'BoardMembership';
|
||||
|
||||
static fields = {
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
import { Model, attr, fk, many, oneToOne } from 'redux-orm';
|
||||
import { attr, fk, many, oneToOne } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
import Config from '../constants/Config';
|
||||
import { ActivityTypes } from '../constants/Enums';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Card';
|
||||
|
||||
static fields = {
|
||||
|
@ -74,7 +75,11 @@ export default class extends Model {
|
|||
|
||||
break;
|
||||
case ActionTypes.SOCKET_RECONNECT_HANDLE:
|
||||
Card.all().delete();
|
||||
Card.all()
|
||||
.toModelArray()
|
||||
.forEach((cardModel) => {
|
||||
cardModel.deleteWithClearable();
|
||||
});
|
||||
|
||||
if (payload.cards) {
|
||||
payload.cards.forEach((card) => {
|
||||
|
@ -176,7 +181,7 @@ export default class extends Model {
|
|||
|
||||
break;
|
||||
case ActionTypes.CARD_DELETE:
|
||||
Card.withId(payload.id).delete();
|
||||
Card.withId(payload.id).deleteWithRelated();
|
||||
|
||||
break;
|
||||
case ActionTypes.CARD_DELETE__SUCCESS:
|
||||
|
@ -220,15 +225,7 @@ export default class extends Model {
|
|||
isActivitiesDetailsFetching: false,
|
||||
});
|
||||
|
||||
cardModel.activities.toModelArray().forEach((activityModel) => {
|
||||
if (activityModel.notification) {
|
||||
activityModel.update({
|
||||
isInCard: false,
|
||||
});
|
||||
} else {
|
||||
activityModel.delete();
|
||||
}
|
||||
});
|
||||
cardModel.deleteActivities();
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -268,10 +265,37 @@ export default class extends Model {
|
|||
});
|
||||
}
|
||||
|
||||
isAvailableForUser(userId) {
|
||||
return this.board && this.board.isAvailableForUser(userId);
|
||||
}
|
||||
|
||||
deleteClearable() {
|
||||
this.users.clear();
|
||||
this.labels.clear();
|
||||
}
|
||||
|
||||
deleteActivities() {
|
||||
this.activities.toModelArray().forEach((activityModel) => {
|
||||
if (activityModel.notification) {
|
||||
activityModel.update({
|
||||
isInCard: false,
|
||||
});
|
||||
} else {
|
||||
activityModel.delete();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
deleteRelated() {
|
||||
this.deleteClearable();
|
||||
this.tasks.delete();
|
||||
this.attachments.delete();
|
||||
this.activities.delete();
|
||||
this.deleteActivities();
|
||||
}
|
||||
|
||||
deleteWithClearable() {
|
||||
this.deleteClearable();
|
||||
this.delete();
|
||||
}
|
||||
|
||||
deleteWithRelated() {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk } from 'redux-orm';
|
||||
import { attr, fk } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Label';
|
||||
|
||||
static fields = {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk } from 'redux-orm';
|
||||
import { attr, fk } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'List';
|
||||
|
||||
static fields = {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk, oneToOne } from 'redux-orm';
|
||||
import { attr, fk, oneToOne } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Notification';
|
||||
|
||||
static fields = {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import { Model, attr, many } from 'redux-orm';
|
||||
import { attr, many } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
import { ProjectBackgroundTypes } from '../constants/Enums';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Project';
|
||||
|
||||
static fields = {
|
||||
|
@ -143,21 +144,21 @@ export default class extends Model {
|
|||
return this.boards.orderBy('position');
|
||||
}
|
||||
|
||||
getOrderedMemberBoardsModelArray(userId) {
|
||||
getOrderedBoardsModelArrayForUser(userId) {
|
||||
return this.getOrderedBoardsQuerySet()
|
||||
.toModelArray()
|
||||
.filter((boardModel) => boardModel.hasMemberUser(userId));
|
||||
.filter((boardModel) => boardModel.hasMembershipForUser(userId));
|
||||
}
|
||||
|
||||
getOrderedAvailableBoardsModelArray(userId) {
|
||||
if (this.hasManagerUser(userId)) {
|
||||
getOrderedBoardsModelArrayAvailableForUser(userId) {
|
||||
if (this.hasManagerForUser(userId)) {
|
||||
return this.getOrderedBoardsQuerySet().toModelArray();
|
||||
}
|
||||
|
||||
return this.getOrderedMemberBoardsModelArray(userId);
|
||||
return this.getOrderedBoardsModelArrayForUser(userId);
|
||||
}
|
||||
|
||||
hasManagerUser(userId) {
|
||||
hasManagerForUser(userId) {
|
||||
return this.managers
|
||||
.filter({
|
||||
userId,
|
||||
|
@ -165,8 +166,12 @@ export default class extends Model {
|
|||
.exists();
|
||||
}
|
||||
|
||||
hasMemberUserForAnyBoard(userId) {
|
||||
return this.boards.toModelArray().some((boardModel) => boardModel.hasMemberUser(userId));
|
||||
hasMembershipInAnyBoardForUser(userId) {
|
||||
return this.boards.toModelArray().some((boardModel) => boardModel.hasMembershipForUser(userId));
|
||||
}
|
||||
|
||||
isAvailableForUser(userId) {
|
||||
return this.hasManagerForUser(userId) || this.hasMembershipInAnyBoardForUser(userId);
|
||||
}
|
||||
|
||||
deleteRelated() {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk } from 'redux-orm';
|
||||
import { attr, fk } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'ProjectManager';
|
||||
|
||||
static fields = {
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import { Model, attr, fk } from 'redux-orm';
|
||||
import { attr, fk } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'Task';
|
||||
|
||||
static fields = {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { Model, attr } from 'redux-orm';
|
||||
import { attr } from 'redux-orm';
|
||||
|
||||
import BaseModel from './BaseModel';
|
||||
import ActionTypes from '../constants/ActionTypes';
|
||||
|
||||
const DEFAULT_EMAIL_UPDATE_FORM = {
|
||||
|
@ -29,7 +30,7 @@ const DEFAULT_USERNAME_UPDATE_FORM = {
|
|||
error: null,
|
||||
};
|
||||
|
||||
export default class extends Model {
|
||||
export default class extends BaseModel {
|
||||
static modelName = 'User';
|
||||
|
||||
static fields = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue