From e21f3734541d60b5624352d8931af12cb7b13c43 Mon Sep 17 00:00:00 2001
From: Philippe PITTOLI
Date: Sat, 7 Dec 2019 05:11:47 +0100
Subject: [PATCH] Adding, removing, modifying columns: ok
---
client/project-creation-modal.ls | 40 ++++++++++++++++++------
client/project.ls | 4 ++-
client/task-creation-modal.ls | 52 ++++++++++++++++----------------
3 files changed, 60 insertions(+), 36 deletions(-)
diff --git a/client/project-creation-modal.ls b/client/project-creation-modal.ls
index 175d002..6d8a237 100644
--- a/client/project-creation-modal.ls
+++ b/client/project-creation-modal.ls
@@ -5,17 +5,31 @@ UUID = require "uuid/v4"
bulma = require "./bulma.ls"
ProjectCreationModal = (project, todod-ws) ->
+
+ # work on a copy of the columns
+ # in case of cancelled modifications, only the copies are changed
+ columns-copy = []
+ for col in project.extra_properties.columns
+ new-col = {}
+ for k,v of col
+ console.log "element : ", k, "value: ", v
+ new-col[k] = v
+ columns-copy ++= [ new-col ]
+
self = {
title: project.title || ""
+ # TODO XXX FIXME
new-user: "Coucou 2 le retour"
+ new-column-input: {
+ title: "New column !"
+ }
+
extra_properties:
- columns: project.extra_properties.columns || []
+ columns: columns-copy
}
modal = Modal {
+visible
- new-column-input: "New column !"
-
content-render: (self) ->
h \div.form [
h \input.input {
@@ -50,7 +64,9 @@ ProjectCreationModal = (project, todod-ws) ->
h \ul.menu-list self.extra_properties.columns.map (column) ->
- h \li [
+ h \li {
+ key: column.id
+ } [
h \input.input {
key: column.id
value: column.title
@@ -61,21 +77,27 @@ ProjectCreationModal = (project, todod-ws) ->
h \div.button {
onclick: ->
# TODO: create a new entry in self.extra_properties.columns
- self.extra_properties.columns = self.extra_properties.select((.id != column.id))
+ 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 \input.input {
- value: self.new-column-input
+ value: self.new-column-input.title
oninput: (e) ->
- self.new-column-input := e.target.value
+ self.new-column-input.title := e.target.value
} [ ]
h \div.button {
onclick: ->
# TODO: create a new entry in self.extra_properties.columns
- self.extra_properties.columns ++= [ self.new-column-input ]
- self.new-column-input := "New column !"
+ new-col = {
+ id: UUID!
+ title: self.new-column-input.title
+ }
+ self.extra_properties.columns ++= [ new-col ]
+ self.new-column-input.title := "New column !"
} [ "+" ]
]
]
diff --git a/client/project.ls b/client/project.ls
index 0590ffb..1006299 100644
--- a/client/project.ls
+++ b/client/project.ls
@@ -18,7 +18,9 @@ Project = (self, todod-ws) ->
task.extra_properties && task.extra_properties.column && task.extra_properties.column == column.id
|| ((! task.extra_properties || ! task.extra_properties.column) && first)
- h \div.column [
+ h \div.column {
+ key: column.id
+ } [
h \div.card { key: self.id } [
h \div.cart-head [
h \p.title.is-4 [ column.titleĀ ]
diff --git a/client/task-creation-modal.ls b/client/task-creation-modal.ls
index bb20b3d..c5b826f 100644
--- a/client/task-creation-modal.ls
+++ b/client/task-creation-modal.ls
@@ -14,35 +14,35 @@ TaskCreationModal = (project, todod-ws, task) ->
modal = Modal {
+visible
- content: h \div.form [
- h \input.input {
- value: self.title
- oninput: (e) ->
- self.title := e.target.value
- }
+ content-render: (self) ->
+ h \div.form [
+ h \input.input {
+ value: self.title
+ oninput: (e) ->
+ self.title := e.target.value
+ }
- h \textarea {
- value: self.description
- oninput: (e) ->
- self.description := e.target.value
- }
+ h \textarea {
+ value: self.description
+ oninput: (e) ->
+ self.description := e.target.value
+ }
- h \aside.menu [
- 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
- }
- onclick: ->
- self.column := column.id
- } [ column.title ]
- ]
+ h \aside.menu [
+ 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
+ }
+ onclick: ->
+ self.column := column.id
+ } [ column.title ]
+ ]
+ ]
]
- ]
on-validation: ->
if task.id
todod-ws.edit-task task.id, {
@@ -59,7 +59,7 @@ TaskCreationModal = (project, todod-ws, task) ->
column: self.column || ""
}
}
- }
+ }, self
self.render = ->
modal.render!