From 84ca28f32257672569c6a079ab106ed5682e447e Mon Sep 17 00:00:00 2001 From: Luka Vandervelden Date: Mon, 8 Jul 2019 06:31:13 +0200 Subject: [PATCH] Task cards now have a color. --- client/index.ls | 27 ++++++++++++++++++++++++++- client/style.sass | 7 +++++++ src/main.cr | 4 ++++ src/requests.cr | 3 ++- src/task.cr | 7 ++++++- 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/client/index.ls b/client/index.ls index 801ff4f..7f845e6 100644 --- a/client/index.ls +++ b/client/index.ls @@ -49,7 +49,7 @@ Task = (self, project) -> is-selected = model.selected == self.id - h \div.card { + h (\div.card.is- + (self.color || "dark")), { key: self.id classes: { "is-selected": is-selected @@ -175,6 +175,31 @@ Task = (self, project) -> } [ "Assign" ] ] + if is-selected + h \div.card-footer {key: "color"} [ + if model.editing == self.id + ".color" + h \div.card-footer-item { + key: "color.clicked" + } [ + h \input.input { + onchange: (e) -> + model.editing := undefined + socket.send JSON.stringify { + type: "edit-task" + project: project.id + task: self.id + color: e.target.value + } + } + ] + else + h \div.card-footer-item { + key: "assign" + onclick: -> + model.editing := self.id + ".color" + } [ "Change Color" ] + ] + if is-selected h \div.card-footer {key: "move"} [ h \div.card-footer-item { diff --git a/client/style.sass b/client/style.sass index 0bd170b..5c50be7 100644 --- a/client/style.sass +++ b/client/style.sass @@ -25,3 +25,10 @@ .project margin-top: 12px +@each $name, $pair in $colors + $color: nth($pair, 1) + $color-invert: nth($pair, 2) + + .card.is-#{$name} + background-color: darken($color, 30) + diff --git a/src/main.cr b/src/main.cr index ac97d05..5ad4706 100644 --- a/src/main.cr +++ b/src/main.cr @@ -184,6 +184,10 @@ ws "/socket" do |socket| task.description = description end + if color = request.color + task.color = color + end + # FIXME: Check it’s a valid UID. if assigned_to = request.assigned_to # FIXME: Probably not the best way to handle this corner-case. diff --git a/src/requests.cr b/src/requests.cr index 354c042..b255748 100644 --- a/src/requests.cr +++ b/src/requests.cr @@ -57,7 +57,8 @@ class Requests::EditTask column: String?, title: String?, description: String?, - assigned_to: Int32? + assigned_to: Int32?, + color: String? }) end diff --git a/src/task.cr b/src/task.cr index 2031c48..0f667f9 100644 --- a/src/task.cr +++ b/src/task.cr @@ -7,11 +7,16 @@ class Task title: String, description: String, column: String, - assigned_to: Int32? + assigned_to: Int32?, + color: { + type: String, + default: "dark" + } }) def initialize(@title, @author, @description, @column) @id = UUID.random.to_s + @color = "dark" end end