diff --git a/client/project-creation-modal.ls b/client/project-creation-modal.ls index cbe0da0..31a0371 100644 --- a/client/project-creation-modal.ls +++ b/client/project-creation-modal.ls @@ -4,6 +4,39 @@ Modal = require './modal.ls' UUID = require "uuid/v4" bulma = require "./bulma.ls" +col-to-lines = (column, self) -> + h \div.field.has-addons { + key: "field" + column.id + } [ + h \p.control [ + h \input.input { + key: "input" + column.id + value: column.title + oninput: (e) -> + self.extra_properties.columns.find((.id == column.id)).title := e.target.value + } [ ] + ] + + h \div.control.button.is-primary { + key: "button" + column.id + onclick: -> + # console.log "BEFORE REMOVING THE COLUMN: ", self.extra_properties.columns + self.extra_properties.columns := self.extra_properties.columns.filter((.id != column.id)) + # console.log "AFTER REMOVING THE COLUMN: ", self.extra_properties.columns + } [ "DELETE" ] + ] + +#
+#

+# +#

+#

+# +# @gmail.com +# +#

+#
+ ProjectCreationModal = (project, todod-ws) -> # work on a copy of the columns @@ -32,11 +65,20 @@ ProjectCreationModal = (project, todod-ws) -> +visible content-render: (self) -> h \div.form [ - h \input.input { - value: self.title - oninput: (e) -> - self.title := e.target.value - } + + bulma.field [ + # console.log "NEW USER NAME: " + self.new-user + # bulma.label "Valeur actuelle : " + self.new-user + bulma.label "Project title" + + h \input.input { + value: self.title + oninput: (e) -> + self.title := e.target.value + } + ] + + h \hr [] bulma.field [ # console.log "NEW USER NAME: " + self.new-user @@ -52,11 +94,7 @@ ProjectCreationModal = (project, todod-ws) -> } ] - h \input.input { - value: self.title - oninput: (e) -> - self.title := e.target.value - } + h \hr [] h \aside.menu [ h \p.menu-label [ "Permissions" ] @@ -70,47 +108,31 @@ ProjectCreationModal = (project, todod-ws) -> ] ] - h \aside.menu [ - h \p.menu-label [ "Choose the columns" ] + h \hr [] - h \ul.menu-list self.extra_properties.columns.map (column) -> + h \p [ "Choose the columns" ] - h \li { - key: column.id - } [ - h \input.input { - key: column.id - value: column.title - oninput: (e) -> - self.extra_properties.columns.find((.id == column.id)).title := e.target.value - } [ ] + for dom in (self.extra_properties.columns.map (column) -> col-to-lines column, self) + dom - h \div.button { - onclick: -> - # TODO: create a new entry in self.extra_properties.columns - self.extra_properties.columns := self.extra_properties.columns.filter((.id != column.id)) - # self.todod-ws.edit-list - # todod-ws.edit-list project.id, self - } [ "X" ] - ] + h \hr [] - h \input.input { - value: self.new-column-input.title - oninput: (e) -> - self.new-column-input.title := e.target.value - } [ ] + h \input.input { + value: self.new-column-input.title + oninput: (e) -> + self.new-column-input.title := e.target.value + } [ ] - h \div.button { - onclick: -> - # TODO: create a new entry in self.extra_properties.columns - new-col = { - id: UUID! - title: self.new-column-input.title - } - self.extra_properties.columns ++= [ new-col ] - self.new-column-input.title := "New column !" - } [ "+" ] - ] + h \div.button { + onclick: -> + # TODO: create a new entry in self.extra_properties.columns + new-col = { + id: UUID! + title: self.new-column-input.title + } + self.extra_properties.columns ++= [ new-col ] + self.new-column-input.title := "New column !" + } [ "+" ] ] on-validation: -> diff --git a/client/project.ls b/client/project.ls index 1006299..e52be38 100644 --- a/client/project.ls +++ b/client/project.ls @@ -6,6 +6,19 @@ Modal = require './modal.ls' TaskCreationModal = require './task-creation-modal.ls' ProjectCreationModal = require "./project-creation-modal.ls" +is-right-column = (task, column-id) -> + task.extra_properties && task.extra_properties.column && task.extra_properties.column == column-id + +has-column = (task) -> + task.extra_properties && task.extra_properties.column + +# configured column, but inexistant (maybe removed since) +inexistant-column = (task, columns) -> + columns.filter((.id == task.extra_properties.column)).length == 0 + +orphan-tasks = (tasks, columns) -> + tasks.filter (task) -> (! has-column) || inexistant-column task, columns + Project = (self, todod-ws) -> self.todod-ws = todod-ws self.tasks = [] @@ -14,9 +27,14 @@ Project = (self, todod-ws) -> self.render-column = (column, first) -> - tasks-to-display = self.tasks.filter (task) -> - task.extra_properties && task.extra_properties.column && task.extra_properties.column == column.id - || ((! task.extra_properties || ! task.extra_properties.column) && first) + console.log "tasks: ", self.tasks + + tasks-to-display = self.tasks.filter (task) -> is-right-column task, column.id + + if first + tasks-to-display ++= orphan-tasks self.tasks, self.extra_properties.columns + + console.log "column: #{column.id}: ", tasks-to-display h \div.column { key: column.id diff --git a/client/task-creation-modal.ls b/client/task-creation-modal.ls index c5b826f..55870c4 100644 --- a/client/task-creation-modal.ls +++ b/client/task-creation-modal.ls @@ -8,8 +8,9 @@ TaskCreationModal = (project, todod-ws, task) -> self = { title: task.title || "" description: task.description || "" - columns: [] - column: void + extra_properties: { + column: task.list || "" + } } modal = Modal { @@ -32,33 +33,24 @@ TaskCreationModal = (project, todod-ws, task) -> h \p.menu-label [ "Choose the column" ] h \ul.menu-list project.extra_properties.columns.map (column) -> - h \li [ - h \a { - classes: { - is-active: self.extra_properties && self.extra_properties.column == column.id - } + h \li { + classes: { + is-active: self.extra_properties && self.extra_properties.column == column.id + } + } [ + h \a { onclick: -> - self.column := column.id + self.extra_properties.column := column.id } [ column.title ] ] ] ] + on-validation: -> if task.id - todod-ws.edit-task task.id, { - title: self.title - description: self.description - extra_properties: { - column: self.column || "" - } - } + todod-ws.edit-task task.id, self else - todod-ws.add-task project.id, self.title, { - description: self.description - extra_properties: { - column: self.column || "" - } - } + todod-ws.add-task project.id, self.title, self }, self self.render = ->