Task Detail View (#37)
This commit is contained in:
21
src/models/attachment.js
Normal file
21
src/models/attachment.js
Normal file
@ -0,0 +1,21 @@
|
||||
import AbstractModel from './abstractModel'
|
||||
import UserModel from './user'
|
||||
import FileModel from './file'
|
||||
|
||||
export default class AttachmentModel extends AbstractModel {
|
||||
constructor(data) {
|
||||
super(data)
|
||||
this.created_by = new UserModel(this.created_by)
|
||||
this.file = new FileModel(this.file)
|
||||
}
|
||||
|
||||
defaults() {
|
||||
return {
|
||||
id: 0,
|
||||
task_id: 0,
|
||||
file: FileModel,
|
||||
created_by: UserModel,
|
||||
created: 0,
|
||||
}
|
||||
}
|
||||
}
|
32
src/models/file.js
Normal file
32
src/models/file.js
Normal file
@ -0,0 +1,32 @@
|
||||
import AbstractModel from './abstractModel'
|
||||
|
||||
export default class FileModel extends AbstractModel {
|
||||
defaults() {
|
||||
return {
|
||||
id: 0,
|
||||
mime: '',
|
||||
name: '',
|
||||
size: '',
|
||||
created: 0,
|
||||
}
|
||||
}
|
||||
|
||||
getHumanSize() {
|
||||
const sizes = {
|
||||
0: 'B',
|
||||
1: 'KB',
|
||||
2: 'MB',
|
||||
3: 'GB',
|
||||
4: 'TB',
|
||||
}
|
||||
|
||||
let it = 0
|
||||
let size = this.size
|
||||
while (size > 1024) {
|
||||
size /= 1024
|
||||
it++
|
||||
}
|
||||
|
||||
return Number(Math.round(size+'e2')+'e-2') + ' ' + sizes[it]
|
||||
}
|
||||
}
|
@ -1,11 +1,15 @@
|
||||
import AbstractModel from './abstractModel';
|
||||
import UserModel from './user'
|
||||
import LabelModel from "./label";
|
||||
import LabelModel from './label'
|
||||
import AttachmentModel from './attachment'
|
||||
|
||||
export default class TaskModel extends AbstractModel {
|
||||
|
||||
constructor(data) {
|
||||
super(data)
|
||||
|
||||
this.id = Number(this.id)
|
||||
this.listID = Number(this.listID)
|
||||
|
||||
// Make date objects from timestamps
|
||||
this.dueDate = this.parseDateIfNessecary(this.dueDate)
|
||||
@ -44,6 +48,11 @@ export default class TaskModel extends AbstractModel {
|
||||
return new TaskModel(t)
|
||||
})
|
||||
})
|
||||
|
||||
// Make all attachments to attachment models
|
||||
this.attachments = this.attachments.map(a => {
|
||||
return new AttachmentModel(a)
|
||||
})
|
||||
}
|
||||
|
||||
defaults() {
|
||||
@ -65,6 +74,7 @@ export default class TaskModel extends AbstractModel {
|
||||
hexColor: '',
|
||||
percentDone: 0,
|
||||
related_tasks: {},
|
||||
attachments: [],
|
||||
|
||||
createdBy: UserModel,
|
||||
created: 0,
|
||||
|
11
src/models/taskAssignee.js
Normal file
11
src/models/taskAssignee.js
Normal file
@ -0,0 +1,11 @@
|
||||
import AbstractModel from './abstractModel'
|
||||
|
||||
export default class TaskAssigneeModel extends AbstractModel {
|
||||
defaults() {
|
||||
return {
|
||||
created: 0,
|
||||
user_id: 0,
|
||||
task_id: 0,
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user