233 lines
5.7 KiB
Plaintext
233 lines
5.7 KiB
Plaintext
#
|
|
# Tasks, previous version of todos
|
|
#
|
|
|
|
h = require 'maquette' .h
|
|
bulma = require "./bulma.ls"
|
|
nmd = require "nano-markdown"
|
|
|
|
#
|
|
# generic functions
|
|
#
|
|
|
|
get-previous = (collection, element) ->
|
|
var previous
|
|
|
|
for item in collection
|
|
if item == element
|
|
return previous
|
|
|
|
previous = item
|
|
|
|
get-next = (collection, element) ->
|
|
var found-element
|
|
|
|
for item in collection
|
|
if found-element
|
|
return item
|
|
|
|
if item == element
|
|
found-element := true
|
|
|
|
|
|
Task = (self, project, model) ->
|
|
self.render = ->
|
|
h \div [ "coucou" ]
|
|
|
|
# self.render-old = ->
|
|
# author = model.users[self.author]
|
|
# if typeof(author) != "object" and author != "request sent"
|
|
# model.users[self.author] = "request sent"
|
|
# # FIXME: This should go directly to authd.
|
|
# model.todod-ws.get-user self.author
|
|
|
|
# assigned_to = model.users[self.assigned_to]
|
|
# if self.assigned_to and typeof(assigned_to) != "object" and assigned_to != "request sent"
|
|
# model.users[self.assigned_to] = "request sent"
|
|
# # FIXME: This should go directly to authd.
|
|
# model.todod-ws.get-user self.assigned_to
|
|
|
|
# is-selected = model.selected == self.id
|
|
|
|
# h (\div.card.is- + (self.color || "dark")), {
|
|
# key: self.id
|
|
# classes: {
|
|
# "is-selected": is-selected
|
|
# }
|
|
# onclick: ->
|
|
# model.selected := self.id
|
|
# } [
|
|
# h \div.card-content [
|
|
# h \div.media [
|
|
# h \div.media-left [
|
|
# h \img.image.is-48x48.avatar {
|
|
# alt: "user image"
|
|
# src: if typeof(assigned_to) == "object"
|
|
# assigned_to.avatar
|
|
# else
|
|
# "https://bulma.io/images/placeholders/96x96.png"
|
|
# }
|
|
# ]
|
|
# h \div.media-content [
|
|
# if model.editing == self.id + ".title"
|
|
# h \input.input {
|
|
# value: self.title
|
|
# onchange: (e) ->
|
|
# model.editing := undefined
|
|
# model.todod-ws.edit-task project.id, self.id, {
|
|
# title: e.target.value
|
|
# }
|
|
# } [ self.title ]
|
|
# else
|
|
# h \a [
|
|
# bulma.title 4 self.title
|
|
# ]
|
|
|
|
# if typeof(model.users[self.assigned_to]) == "object"
|
|
# user = model.users[self.assigned_to]
|
|
|
|
# h \div.subtitle.is-6 [
|
|
# "@" + (user.full_name || user.login)
|
|
# ]
|
|
# ]
|
|
# if ! is-selected && self.description != ""
|
|
# h \div.media-right {key: "description-icon"} [
|
|
# h \span.icon.is-size-1 [ "🗎" ]
|
|
# ]
|
|
|
|
# if is-selected
|
|
# h \div.media-right {key: "edit"} [
|
|
# h \a.small {
|
|
# onclick: ->
|
|
# if model.editing == self.id + ".title"
|
|
# model.editing := undefined
|
|
# else
|
|
# model.editing := self.id + ".title"
|
|
# } [
|
|
# "Edit"
|
|
# ]
|
|
# ]
|
|
|
|
# if is-selected
|
|
# h \div.media-right {key: "delete"} [
|
|
# h \a.small {
|
|
# onclick: ->
|
|
# model.editing := self.id + ".delete"
|
|
# } [
|
|
# "Delete"
|
|
# ]
|
|
# ]
|
|
# ]
|
|
|
|
# if is-selected
|
|
# h \div.content {
|
|
# key: self.description
|
|
# after-create: (dom) ->
|
|
# dom.innerHTML = nmd self.description
|
|
# } [
|
|
# if model.editing == self.id + ".description"
|
|
# h \form.form [
|
|
# h \textarea.textarea {
|
|
# value: model.editing-data
|
|
# oninput: (e) ->
|
|
# model.editing-data := e.target.value
|
|
# }
|
|
# h \div.button.is-fullwidth {
|
|
# onclick: ->
|
|
# model.todod-ws.edit-task project.id, self.id, {
|
|
# description: model.editing-data
|
|
# }
|
|
# model.editing-data := undefined
|
|
# model.editing := undefined
|
|
# } [ "Update" ]
|
|
# ]
|
|
# ]
|
|
|
|
# if is-selected
|
|
# h \span.button.is-small {
|
|
# onclick: ->
|
|
# model.editing-data := self.description
|
|
# model.editing := self.id + ".description"
|
|
# } [
|
|
# "edit"
|
|
# ]
|
|
# ]
|
|
|
|
# if is-selected
|
|
# h \div.card-footer {key: "assign"} [
|
|
# if model.editing == self.id + ".assigned_to"
|
|
# h \div.card-footer-item {
|
|
# key: "assign.clicked"
|
|
# } [
|
|
# h \input.input {
|
|
# onchange: (e) ->
|
|
# model.editing := undefined
|
|
# model.todod-ws.edit-task project.id, self.id, {
|
|
# assigned_to: Number e.target.value
|
|
# }
|
|
# }
|
|
# ]
|
|
# else
|
|
# h \a.card-footer-item {
|
|
# key: "assign"
|
|
# onclick: ->
|
|
# model.editing := self.id + ".assigned_to"
|
|
# } [ "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
|
|
# model.todod-ws.edit-task project.id, self.id, {
|
|
# color: e.target.value
|
|
# }
|
|
# }
|
|
# ]
|
|
# else
|
|
# h \a.card-footer-item {
|
|
# key: "assign"
|
|
# onclick: ->
|
|
# model.editing := self.id + ".color"
|
|
# } [ "Change Color" ]
|
|
# ]
|
|
|
|
# if is-selected
|
|
# h \div.card-footer {key: "move"} [
|
|
# h \a.card-footer-item {
|
|
# key: "⇐"
|
|
# onclick: ->
|
|
# model.todod-ws.edit-task project.id, self.id, {
|
|
# column: get-previous project.columns.map((.id)), self.column
|
|
# }
|
|
# } [ "⇐" ]
|
|
|
|
# if model.editing == self.id + ".delete"
|
|
# h \a.card-footer-item {
|
|
# key: "delete"
|
|
# } [
|
|
# h \div.button.is-danger {
|
|
# onclick: ->
|
|
# model.todod-ws.delete-task project.id, self.id
|
|
# } [ "Delete! For real!" ]
|
|
# ]
|
|
|
|
# h \a.card-footer-item {
|
|
# key: "⇒"
|
|
# onclick: ->
|
|
# model.todod-ws.edit-task project.id, self.id, {
|
|
# column: get-next project.columns.map((.id)), self.column
|
|
# }
|
|
# } [ "⇒" ]
|
|
# ]
|
|
# ]
|
|
|
|
self
|
|
|
|
module.exports = Task
|