1
0

Added colors to tasks

This commit is contained in:
kolaente
2019-04-30 22:18:06 +02:00
parent 84b20ef32b
commit cd4dc92a95
6 changed files with 80 additions and 8 deletions

View File

@ -29,6 +29,14 @@ export default class TaskModel extends AbstractModel {
this.labels = this.labels.map(l => {
return new LabelModel(l)
})
// Set the default color
if (this.hexColor === '') {
this.hexColor = '198CFF'
}
if (this.hexColor.substring(0, 1) !== '#') {
this.hexColor = '#' + this.hexColor
}
}
defaults() {
@ -48,7 +56,8 @@ export default class TaskModel extends AbstractModel {
reminderDates: [],
subtasks: [],
parentTaskID: 0,
hexColor: '',
createdBy: UserModel,
created: 0,
updated: 0,
@ -101,4 +110,23 @@ export default class TaskModel extends AbstractModel {
}
}
}
/**
* Checks if the hexColor of a task is dark.
* @returns {boolean}
*/
hasDarkColor() {
if (this.hexColor === '#') {
return true // Defaults to dark
}
let rgb = parseInt(this.hexColor.substring(1, 7), 16); // convert rrggbb to decimal
let r = (rgb >> 16) & 0xff; // extract red
let g = (rgb >> 8) & 0xff; // extract green
let b = (rgb >> 0) & 0xff; // extract blue
// luma will be a value 0..255 where 0 indicates the darkest, and 255 the brightest
let luma = 0.2126 * r + 0.7152 * g + 0.0722 * b; // per ITU-R BT.709
return luma > 128
}
}