orphan tasks
This commit is contained in:
parent
8612f0ab8b
commit
3b489f1669
@ -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" ]
|
||||
]
|
||||
|
||||
# <div class="field has-addons">
|
||||
# <p class="control">
|
||||
# <input class="input" type="text" placeholder="Your email">
|
||||
# </p>
|
||||
# <p class="control">
|
||||
# <a class="button is-static">
|
||||
# @gmail.com
|
||||
# </a>
|
||||
# </p>
|
||||
# </div>
|
||||
|
||||
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: ->
|
||||
|
@ -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
|
||||
|
@ -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 = ->
|
||||
|
Loading…
Reference in New Issue
Block a user