Skip to content
This repository has been archived by the owner on Nov 21, 2024. It is now read-only.

Commit

Permalink
fix: Move configs and models from entities folder to parent
Browse files Browse the repository at this point in the history
  • Loading branch information
EndyKaufman committed Mar 10, 2019
1 parent daf1b45 commit 688bb7a
Show file tree
Hide file tree
Showing 10 changed files with 80 additions and 19 deletions.
2 changes: 1 addition & 1 deletion libs/rucken/todo-core/src/i18n/ru.i18n.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export const RuI18n = {
Status: 'Статус',
'Open at': 'Дата открытия',
'Close at': 'Дата закрытия',
'Task time': 'Время задачи',
'Task time': 'Диапазон',
'Add new task': 'Создание новой задачи',
'Task #{{id}}': 'Задача #{{id}}',
'Update task #{{id}}': 'Изменить задачу #{{id}}',
Expand Down
16 changes: 8 additions & 8 deletions libs/rucken/todo-core/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
export * from './i18n/ru.i18n';
export * from './lib/entities/configs/index';
export * from './lib/entities/configs/projects.config';
export * from './lib/entities/configs/statuses.config';
export * from './lib/entities/configs/tasks.config';
export * from './lib/entities/models/project';
export * from './lib/entities/models/status-with-project';
export * from './lib/entities/models/status';
export * from './lib/entities/models/task';
export * from './lib/configs/index';
export * from './lib/configs/projects.config';
export * from './lib/configs/statuses.config';
export * from './lib/configs/tasks.config';
export * from './lib/models/project';
export * from './lib/models/status-with-project';
export * from './lib/models/status';
export * from './lib/models/task';
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { serializeModel, transformDateToString, transformStringToDate, translate, User } from '@rucken/core';
import { serializeModel, transformDateToString, transformStringToDate, transformStringToObject, translate, User } from '@rucken/core';
import { Transform, Type } from 'class-transformer';
import { IsNotEmpty, IsOptional } from 'class-validator';
import { IModel } from 'ngx-repository';
Expand All @@ -15,44 +15,69 @@ export class Project implements IModel {
statuses: translate('Statuses'),
tasks: translate('Tasks'),
users: translate('Users'),
completedTasksCount: translate('Completed tasks'),
tasksCount: translate('Tasks'),

createTitle: translate('Add new project'),
viewTitle: translate('Project #{{id}}'),
updateTitle: translate('Update project #{{id}}'),
deleteTitle: translate('Delete project #{{id}}'),
deleteMessage: translate('Do you really want to delete project?')
};

id: number = undefined;

completedTasksCount: number = undefined;

tasksCount: number = undefined;

@IsNotEmpty()
title: string = undefined;

description: string = undefined;

isPublic: boolean = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
createdAt: Date | string = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
updatedAt: Date | string = undefined;

@IsOptional()
@Type(serializeModel(Status))
statuses: Status[] = [];

@IsOptional()
@Type(serializeModel(User))
users: User[] = [];

@Type(serializeModel(User))
@Transform(transformStringToObject, { toPlainOnly: true })
createdUser: User = undefined;

@Type(serializeModel(User))
@Transform(transformStringToObject, { toPlainOnly: true })
updatedUser: User = undefined;

get isPublicAsString() {
if (this.isPublic) {
return translate('Yes');
} else {
return translate('No');
}
}

get usersAsString() {
return this.users.join(', ');
}

get statusesAsString() {
return this.statuses.join(', ');
}

toString() {
return this.title;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export class StatusWithProject extends Status {
...Status.strings,
project: translate('Project')
};

@Type(serializeModel(Project))
@Transform(transformStringToObject, { toPlainOnly: true })
project: Project = undefined;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,18 @@ export class Status implements IModel {
deleteTitle: translate('Delete status #{{id}}'),
deleteMessage: translate('Do you really want to delete status?')
};

id: number = undefined;

@IsNotEmpty()
name: string = undefined;

title: string = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
createdAt: Date | string = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
updatedAt: Date | string = undefined;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
import {
serializeModel,
transformDateToString,
transformStringToDate,
transformStringToObject,
translate
} from '@rucken/core';
import { serializeModel, transformDateToString, transformStringToDate, transformStringToObject, translate, User } from '@rucken/core';
import { Transform, Type } from 'class-transformer';
import { IsNotEmpty } from 'class-validator';
import { DateTime } from 'luxon';
Expand All @@ -24,46 +18,78 @@ export class Task implements IModel {
createdAt: translate('Created at'),
updatedAt: translate('Updated at'),
range: translate('Task time'),
createdUser: translate('Created user'),
updatedUser: translate('Updated user'),
assignedUser: translate('Assigned user'),

createTitle: translate('Add new task'),
viewTitle: translate('Task #{{id}}'),
updateTitle: translate('Update task #{{id}}'),
deleteTitle: translate('Delete task #{{id}}'),
deleteMessage: translate('Do you really want to delete task?')
};

id: number = undefined;

@IsNotEmpty()
@Type(serializeModel(Project))
@Transform(transformStringToObject, { toPlainOnly: true })
project: Project = undefined;

@IsNotEmpty()
title: string = undefined;

description: string = undefined;

@IsNotEmpty()
@Type(serializeModel(Status))
@Transform(transformStringToObject, { toPlainOnly: true })
status: Status = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
openAt: Date | string = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
closeAt: Date | string = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
createdAt: Date | string = undefined;

@Transform(transformStringToDate, { toClassOnly: true })
@Transform(transformDateToString, { toPlainOnly: true })
updatedAt: Date | string = undefined;

@Type(serializeModel(User))
@Transform(transformStringToObject, { toPlainOnly: true })
createdUser: User = undefined;

@Type(serializeModel(User))
@Transform(transformStringToObject, { toPlainOnly: true })
updatedUser: User = undefined;

@Type(serializeModel(User))
@Transform(transformStringToObject, { toPlainOnly: true })
assignedUser: User = undefined;

toString() {
return this.title;
}

get range() {
const arr: string[] = [];
if (this.openAt) {
if (!this.closeAt) {
arr.push(' >= ');
}
arr.push(DateTime.fromJSDate(this.openAt).toLocaleString());
arr.push(
(
typeof this.openAt === 'string' ?
DateTime.fromISO(String(this.openAt)) :
DateTime.fromJSDate(this.openAt as Date)
).toLocaleString());
}
if (this.openAt && this.closeAt) {
arr.push(' - ');
Expand All @@ -72,7 +98,11 @@ export class Task implements IModel {
if (!this.openAt) {
arr.push(' <= ');
}
arr.push(DateTime.fromJSDate(this.closeAt).toLocaleString());
arr.push((
typeof this.closeAt === 'string' ?
DateTime.fromISO(String(this.closeAt)) :
DateTime.fromJSDate(this.closeAt as Date)
).toLocaleString());
}
return arr.join('');
}
Expand Down

0 comments on commit 688bb7a

Please sign in to comment.