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" ]
+ ]
+
+#
+
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 = ->