1
0

Make sure to use date objects everywhere where dealing with dates

This commit is contained in:
kolaente
2020-02-08 14:16:06 +01:00
parent fc17518e8c
commit 161f853361
31 changed files with 203 additions and 62 deletions

View File

@ -7,7 +7,7 @@ export default class AttachmentModel extends AbstractModel {
super(data)
this.created_by = new UserModel(this.created_by)
this.file = new FileModel(this.file)
this.created = new Date(this.created * 1000)
this.created = new Date(this.created)
}
defaults() {
@ -16,7 +16,7 @@ export default class AttachmentModel extends AbstractModel {
task_id: 0,
file: FileModel,
created_by: UserModel,
created: 0,
created: null,
}
}
}

View File

@ -1,13 +1,18 @@
import AbstractModel from './abstractModel'
export default class FileModel extends AbstractModel {
constructor(data) {
super(data)
this.created = new Date(this.created)
}
defaults() {
return {
id: 0,
mime: '',
name: '',
size: '',
created: 0,
created: null,
}
}

View File

@ -13,6 +13,9 @@ export default class LabelModel extends AbstractModel {
}
this.textColor = this.hasDarkColor() ? '#4a4a4a' : '#e5e5e5'
this.created_by = new UserModel(this.created_by)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
defaults() {
@ -25,8 +28,8 @@ export default class LabelModel extends AbstractModel {
listID: 0,
textColor: '',
created: 0,
updated: 0
created: null,
updated: null,
}
}

View File

@ -8,6 +8,9 @@ export default class ListModel extends AbstractModel {
super(data)
this.shared_by = new UserModel(this.shared_by)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
// Default attributes that define the "empty" state.
@ -20,8 +23,8 @@ export default class ListModel extends AbstractModel {
sharing_type: 0,
listID: 0,
created: 0,
updated: 0,
created: null,
updated: null,
}
}
}

View File

@ -13,8 +13,11 @@ export default class ListModel extends AbstractModel {
})
this.owner = new UserModel(this.owner)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
// Default attributes that define the "empty" state.
defaults() {
return {
@ -24,9 +27,9 @@ export default class ListModel extends AbstractModel {
owner: UserModel,
tasks: [],
namespaceID: 0,
created: 0,
updated: 0,
created: null,
updated: null,
}
}
}

View File

@ -10,6 +10,9 @@ export default class NamespaceModel extends AbstractModel {
return new ListModel(l)
})
this.owner = new UserModel(this.owner)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
// Default attributes that define the 'empty' state.
@ -21,8 +24,8 @@ export default class NamespaceModel extends AbstractModel {
owner: UserModel,
lists: [],
created: 0,
updated: 0,
created: null,
updated: null,
}
}
}

View File

@ -12,12 +12,12 @@ export default class TaskModel extends AbstractModel {
this.listID = Number(this.listID)
// Make date objects from timestamps
this.dueDate = this.parseDateIfNessecary(this.dueDate)
this.startDate = this.parseDateIfNessecary(this.startDate)
this.endDate = this.parseDateIfNessecary(this.endDate)
this.dueDate = new Date(this.dueDate)
this.startDate = new Date(this.startDate)
this.endDate = new Date(this.endDate)
this.reminderDates = this.reminderDates.map(d => {
return this.parseDateIfNessecary(d)
return new Date(d)
})
this.reminderDates.push(null) // To trigger the datepicker
@ -53,6 +53,9 @@ export default class TaskModel extends AbstractModel {
this.attachments = this.attachments.map(a => {
return new AttachmentModel(a)
})
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
defaults() {
@ -77,8 +80,8 @@ export default class TaskModel extends AbstractModel {
attachments: [],
createdBy: UserModel,
created: 0,
updated: 0,
created: null,
updated: null,
listID: 0, // Meta, only used when creating a new task
}
@ -88,19 +91,6 @@ export default class TaskModel extends AbstractModel {
// Helper functions
///////////////
/**
* Makes a js date object from a unix timestamp (in seconds).
* @param unixTimestamp
* @returns {*}
*/
parseDateIfNessecary(unixTimestamp) {
let dateobj = new Date(unixTimestamp * 1000)
if (unixTimestamp === 0) {
return null
}
return dateobj
}
/**
* Parses the "repeat after x seconds" from the task into a usable js object inside the task.
* This function should only be called from the constructor.

View File

@ -1,9 +1,14 @@
import AbstractModel from './abstractModel'
export default class TaskAssigneeModel extends AbstractModel {
constructor(data) {
super(data)
this.created = new Date(this.created)
}
defaults() {
return {
created: 0,
created: null,
user_id: 0,
task_id: 0,
}

View File

@ -1,10 +1,11 @@
import AbstractModel from './abstractModel'
import UserModel from "./user";
import UserModel from './user'
export default class TaskRelationModel extends AbstractModel {
constructor(data) {
super(data)
this.created_by = new UserModel(this.created_by)
this.created = new Date(this.created)
}
defaults() {
@ -15,7 +16,7 @@ export default class TaskRelationModel extends AbstractModel {
relation_kind: '',
created_by: UserModel,
created: 0,
created: null,
}
}
}

View File

@ -11,6 +11,9 @@ export default class TeamModel extends AbstractModel {
return new TeamMemberModel(m)
})
this.createdBy = new UserModel(this.createdBy)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
defaults() {
@ -22,8 +25,8 @@ export default class TeamModel extends AbstractModel {
right: 0,
createdBy: {},
created: 0,
updated: 0
created: null,
updated: null,
}
}
}

View File

@ -1,5 +1,5 @@
import TeamShareBaseModel from './teamShareBase'
import {merge} from "lodash";
import {merge} from 'lodash'
export default class TeamListModel extends TeamShareBaseModel {
defaults() {

View File

@ -5,13 +5,19 @@ import AbstractModel from './abstractModel'
* It is extended in a way so it can be used for namespaces as well for lists.
*/
export default class TeamShareBaseModel extends AbstractModel {
constructor(data) {
super(data)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
defaults() {
return {
teamID: 0,
right: 0,
created: 0,
updated: 0
created: null,
updated: null
}
}
}

View File

@ -1,14 +1,20 @@
import AbstractModel from './abstractModel'
export default class UserModel extends AbstractModel {
constructor(data) {
super(data)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
defaults() {
return {
id: 0,
avatarUrl: '',
email: '',
username: '',
created: 0,
updated: 0
created: null,
updated: null,
}
}
}

View File

@ -1,13 +1,19 @@
import AbstractModel from './abstractModel'
export default class UserShareBaseModel extends AbstractModel {
constructor(data) {
super(data)
this.created = new Date(this.created)
this.updated = new Date(this.updated)
}
defaults() {
return {
userID: 0,
right: 0,
created: 0,
updated: 0,
created: null,
updated: null,
}
}
}