From 23abce6d6c46c3eac7f816a44e5fea52c33f7b98 Mon Sep 17 00:00:00 2001
From: Philippe PITTOLI
Date: Fri, 6 Dec 2019 04:07:19 +0100
Subject: [PATCH] task removal
---
Makefile | 8 +++++++-
client/index.ls | 10 ++++++++++
client/modal.ls | 20 ++++++++++----------
client/task.ls | 30 +++++++++++++++++++++++-------
4 files changed, 50 insertions(+), 18 deletions(-)
diff --git a/Makefile b/Makefile
index c4da9c7..37c5b3b 100644
--- a/Makefile
+++ b/Makefile
@@ -37,7 +37,7 @@ main.js: main.bundle.js
$(Q)npx babel --minified main.bundle.js -o main.js
-main.bundle.js: client/index.ls client/authd.ls client/bulma.ls client/modal.ls client/project.ls client/TaskCreationModal.ls client/task.ls client/todowebsocket.ls client/validation-modal.ls
+main.bundle.js: client/index.ls client/authd.ls client/bulma.ls client/card.ls client/modal.ls client/project.ls client/TaskCreationModal.ls client/task.ls client/task-removal-modal.ls client/todowebsocket.ls client/validation-modal.ls
@echo '[01;32m BUN > [01;37mmain.bundle.js[00m'
$(Q)npx browserify -t browserify-livescript client/index.ls -o main.bundle.js
@@ -118,10 +118,12 @@ $(PACKAGE)-$(VERSION).tar.gz: distdir
$(PACKAGE)-$(VERSION)/client/style.sass \
$(PACKAGE)-$(VERSION)/client/authd.ls \
$(PACKAGE)-$(VERSION)/client/bulma.ls \
+ $(PACKAGE)-$(VERSION)/client/card.ls \
$(PACKAGE)-$(VERSION)/client/modal.ls \
$(PACKAGE)-$(VERSION)/client/project.ls \
$(PACKAGE)-$(VERSION)/client/TaskCreationModal.ls \
$(PACKAGE)-$(VERSION)/client/task.ls \
+ $(PACKAGE)-$(VERSION)/client/task-removal-modal.ls \
$(PACKAGE)-$(VERSION)/client/todowebsocket.ls \
$(PACKAGE)-$(VERSION)/client/validation-modal.ls
@@ -134,10 +136,12 @@ $(PACKAGE)-$(VERSION).tar.xz: distdir
$(PACKAGE)-$(VERSION)/client/style.sass \
$(PACKAGE)-$(VERSION)/client/authd.ls \
$(PACKAGE)-$(VERSION)/client/bulma.ls \
+ $(PACKAGE)-$(VERSION)/client/card.ls \
$(PACKAGE)-$(VERSION)/client/modal.ls \
$(PACKAGE)-$(VERSION)/client/project.ls \
$(PACKAGE)-$(VERSION)/client/TaskCreationModal.ls \
$(PACKAGE)-$(VERSION)/client/task.ls \
+ $(PACKAGE)-$(VERSION)/client/task-removal-modal.ls \
$(PACKAGE)-$(VERSION)/client/todowebsocket.ls \
$(PACKAGE)-$(VERSION)/client/validation-modal.ls
@@ -150,10 +154,12 @@ $(PACKAGE)-$(VERSION).tar.bz2: distdir
$(PACKAGE)-$(VERSION)/client/style.sass \
$(PACKAGE)-$(VERSION)/client/authd.ls \
$(PACKAGE)-$(VERSION)/client/bulma.ls \
+ $(PACKAGE)-$(VERSION)/client/card.ls \
$(PACKAGE)-$(VERSION)/client/modal.ls \
$(PACKAGE)-$(VERSION)/client/project.ls \
$(PACKAGE)-$(VERSION)/client/TaskCreationModal.ls \
$(PACKAGE)-$(VERSION)/client/task.ls \
+ $(PACKAGE)-$(VERSION)/client/task-removal-modal.ls \
$(PACKAGE)-$(VERSION)/client/todowebsocket.ls \
$(PACKAGE)-$(VERSION)/client/validation-modal.ls
diff --git a/client/index.ls b/client/index.ls
index 8755496..04ff201 100644
--- a/client/index.ls
+++ b/client/index.ls
@@ -217,6 +217,16 @@ model.todod-ws.add-event-listener \task-updated, (message) ->
e
projector.schedule-render!
+model.todod-ws.add-event-listener \task-removed, (message) ->
+ console.log "A task has been removed", message
+
+ task = message.task
+ for project in model.project-list
+ if project.tasks.find((.id == task))
+ project.tasks := project.tasks.filter((.id != task))
+ projector.schedule-render!
+
+
render-navbar = ->
h \div.navbar [
h \div.navbar-start [
diff --git a/client/modal.ls b/client/modal.ls
index ee047ae..bed07f2 100644
--- a/client/modal.ls
+++ b/client/modal.ls
@@ -6,16 +6,16 @@ h = require 'maquette' .h
# confirmation de suppression de listes, de tâches, de colonnes
Modal = (args) ->
- self = {}
-
- self.modal-args = args.modal-args || {}
- self.visible = args.visible || false
- self.content = args.content || []
- self.background-args = args.background-args || []
- self.on-validation = args.on-validation || ->
- self.on-cancellation = args.on-cancellation || ->
- self.validation-label = args.validation-label || "Ok"
- self.cancellation-label = args.cancellation-label || "Cancel"
+ self = {
+ modal-args: args.modal-args || {}
+ visible: args.visible || false
+ content: args.content || []
+ background-args: args.background-args || []
+ on-validation: args.on-validation || ->
+ on-cancellation: args.on-cancellation || ->
+ validation-label: args.validation-label || "Ok"
+ cancellation-label: args.cancellation-label || "Cancel"
+ }
self.render = ->
console.log "Rendering a modal: ", self, self.content
diff --git a/client/task.ls b/client/task.ls
index 58392ce..7175fa7 100644
--- a/client/task.ls
+++ b/client/task.ls
@@ -6,6 +6,7 @@ h = require 'maquette' .h
bulma = require "./bulma.ls"
nmd = require "nano-markdown"
TaskCreationModal = require './TaskCreationModal.ls'
+TaskRemovalModal = require './task-removal-modal.ls'
#
# generic functions
@@ -35,13 +36,28 @@ Task = (self, project, todod-ws) ->
modal = void
self.render = ->
- h \div { key: self.id } [
- self.title
- h \div.button {
- onclick: ->
- modal := TaskCreationModal project.id, todod-ws, self
- } [ "Edit" ]
-
+ h \div.card { key: self.id } [
+ h \div.card-content [
+ h \div.media [
+ h \div.media-left [
+ "LEFT"
+ ]
+ h \div.media-content [
+ self.title
+ ]
+ h \div.button {
+ onclick: ->
+ modal := TaskCreationModal project.id, todod-ws, self
+ } [ "Edit" ]
+ h \div.button {
+ onclick: ->
+ modal := TaskRemovalModal project.id, todod-ws, self
+ } [ "X" ]
+ ]
+ h \div.content [
+ self.description
+ ]
+ ]
if modal
modal.render!
]