Compare commits
15 commits
Author | SHA1 | Date | |
---|---|---|---|
ac2209962b | |||
2fae0eb496 | |||
754ed0f898 | |||
48b4b6ce96 | |||
8cb708d8db | |||
1382806018 | |||
968ca355df | |||
96ddf06817 | |||
858eaee5a7 | |||
5dfea6c063 | |||
0f58b1dfa9 | |||
9dfa04fa01 | |||
53ee8a8faf | |||
f37667e1f5 | |||
e0d8391c2e |
7 changed files with 224 additions and 43 deletions
29
.drone.yml
Normal file
29
.drone.yml
Normal file
|
@ -0,0 +1,29 @@
|
|||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
steps:
|
||||
- name: Frontend
|
||||
image: node:18
|
||||
volumes:
|
||||
- name: cache
|
||||
path: /stupid
|
||||
commands:
|
||||
- pwd
|
||||
- make build-templates
|
||||
|
||||
- name: Backend
|
||||
image: golang:1.13
|
||||
volumes:
|
||||
- name: cache
|
||||
path: /stupid
|
||||
commands:
|
||||
- pwd
|
||||
- go get -v -t -d ./...
|
||||
- make build-binaries
|
||||
|
||||
volumes:
|
||||
- name: cache
|
||||
temp: {}
|
||||
#
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,6 +1,8 @@
|
|||
/node_modules
|
||||
/musala-mail
|
||||
/musala
|
||||
/bin
|
||||
/vendor
|
||||
/tmp
|
||||
/_*
|
||||
.env
|
||||
|
||||
|
|
63
README.md
63
README.md
|
@ -1,6 +1,6 @@
|
|||
# <img src="doc/logo-title-paths.svg" width="50%" style="display: block; margin: 0 auto;" alt="Musala" />
|
||||
|
||||
![Build](https://github.com/glenux/musala/workflows/build/badge.svg?branch=master)
|
||||
[![Build Status](https://cicd.apps.glenux.net/api/badges/glenux/musala/status.svg?ref=refs/heads/develop)](https://cicd.apps.glenux.net/glenux/musala)
|
||||
[![GitHub license](https://img.shields.io/github/license/glenux/musala.svg)](https://github.com/glenux/musala/blob/master/LICENSE.txt)
|
||||
[![Donate on patreon](https://img.shields.io/badge/patreon-donate-orange.svg)](https://patreon.com/glenux)
|
||||
|
||||
|
@ -10,33 +10,46 @@ Note: _musala_ means _work, occupation_ [in Lingala](https://dic.lingala.be/fr/m
|
|||
|
||||
## Roadmap
|
||||
|
||||
Task sources:
|
||||
Multiple task sources & destinations:
|
||||
|
||||
* :heavy_check_mark: __Trello__
|
||||
* :x: Nextcloud Deck (not yet) - [API Reference](https://github.com/nextcloud/deck/blob/master/docs/API.md)
|
||||
* :x: Wekan (not yet) - [API Reference](https://github.com/wekan/wekan/wiki/REST-API)
|
||||
* :x: Libreboard (not yet)
|
||||
* :x: Github Projects (not yet)
|
||||
* :x: Nextcloud Deck (not yet)
|
||||
/ Wekan (not yet)
|
||||
/ Gitea / Forgejo (not yet)
|
||||
/ Libreboard (not yet)
|
||||
/ Github Projects (not yet)
|
||||
|
||||
Source selection
|
||||
Board Data selection:
|
||||
|
||||
* :heavy_check_mark: __All of them__
|
||||
* :heavy_check_mark: __Favorited boards__
|
||||
* :heavy_check_mark: __Only selected ones__
|
||||
* :heavy_check_mark: __All boards__
|
||||
/ __Favorited boards__
|
||||
/ __Only selected ones__
|
||||
|
||||
Task actions:
|
||||
|
||||
* :heavy_check_mark: __List tasks__
|
||||
* :x: Create task
|
||||
/ Read task
|
||||
/ Update task
|
||||
/ Remove task
|
||||
|
||||
Delivery via:
|
||||
|
||||
* :heavy_check_mark: __E-mail__
|
||||
* :x: Telegram
|
||||
* :x: Slack
|
||||
* :x: SMS
|
||||
* :x: Whatsapp
|
||||
* :x: IRC
|
||||
* :heavy_check_mark: __E-mail__
|
||||
* :x: Terminal
|
||||
/ Webhook
|
||||
/ UnifiedPush
|
||||
/ Telegram
|
||||
/ Slack
|
||||
/ SMS
|
||||
/ Whatsapp
|
||||
/ IRC
|
||||
|
||||
User interface for account configuration
|
||||
UI for task management:
|
||||
|
||||
* :heavy_check_mark: Command line + environment variables
|
||||
* :x: Web app
|
||||
* :heavy_check_mark: Simple CLI + environment variables
|
||||
* :x: Composable CLI + environment variables
|
||||
/ Web UI
|
||||
|
||||
## Installation
|
||||
|
||||
|
@ -44,7 +57,11 @@ User interface for account configuration
|
|||
|
||||
Make sure you have Go installed, then type:
|
||||
|
||||
$ go install github.com/glenux/musala/...
|
||||
$ go install github.com/glenux/musala/...@master
|
||||
|
||||
or
|
||||
|
||||
$ go install code.apps.glenux.net/glenux/musala/...@master
|
||||
|
||||
It will install Musala Mail binary in `$GOPATH/bin`
|
||||
|
||||
|
@ -126,6 +143,9 @@ Then run the program:
|
|||
|
||||
Got questions? Need help? Tweet at [@glenux](https://twitter.com/glenux)
|
||||
|
||||
## Thanks
|
||||
|
||||
Thanks to Tamim & Stephanie for watching me updating this project.
|
||||
|
||||
## License
|
||||
|
||||
|
@ -136,4 +156,7 @@ Musala is Copyright © 2018-2021 Glenn ROLLAND. It is free software, and may be
|
|||
Following projects may also inspire you:
|
||||
|
||||
* [72nd/deck-cli](https://github.com/72nd/deck-cli): a command-line tool for interacting with Nextcloud's Deck Plugin by using it's API
|
||||
* [Nextcloud API Reference](https://github.com/nextcloud/deck/blob/master/docs/API.md)
|
||||
* [Wekan API Reference](https://github.com/wekan/wekan/wiki/REST-API)
|
||||
* [Gitea API Usage](https://docs.gitea.io/en-us/api-usage/) and [Gitea API Reference](https://try.gitea.io/api/swagger)
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
/home/warbrain/src/Contrib/contrib-trello
|
||||
../contrib-trello
|
51
doc/draft-composable-functions.md
Normal file
51
doc/draft-composable-functions.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
# Composable functions
|
||||
|
||||
## Example
|
||||
|
||||
### With pipes
|
||||
|
||||
musala-pull SOURCE \
|
||||
| musala-add TASK \
|
||||
| musala-remove --purge SOMETASK \
|
||||
| musala-push DEST
|
||||
|
||||
### With internal filters
|
||||
|
||||
Also writeable like
|
||||
|
||||
musala pull SOURCE % add TASK1 % remove --purge TASK2 % push DEST
|
||||
|
||||
|
||||
## Commands
|
||||
|
||||
### musala pull
|
||||
|
||||
Download all tasks from source
|
||||
|
||||
Get tasks from remote source
|
||||
|
||||
Writes tasks as JSON to stdout
|
||||
|
||||
### musala add
|
||||
|
||||
Add new task
|
||||
|
||||
Get tasks from stdin (json)
|
||||
|
||||
Add a new task
|
||||
|
||||
Writes tasks as JSON to stdout
|
||||
|
||||
### musala remove
|
||||
|
||||
* Get tasks from stdin (json)
|
||||
* Mark a task as removed
|
||||
* Remove tasks marked as remove (if --purge enabled)
|
||||
* Writes tasks as JSON to stdout
|
||||
|
||||
### musala push
|
||||
|
||||
* Get tasks from stdin (json)
|
||||
* Writes tasks to REMOTE DESTINATION
|
||||
|
||||
|
12
doc/nextcloud-auth.md
Normal file
12
doc/nextcloud-auth.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
|
||||
# Nextcloud API
|
||||
|
||||
Read https://docs.nextcloud.com/server/latest/developer_manual/client_apis/LoginFlow/index.html
|
||||
|
||||
Step 1
|
||||
|
||||
$ curl -X POST https://cloud.apps.glenux.net/index.php/login/v2
|
||||
|
||||
Step 2
|
||||
|
||||
|
|
@ -1,11 +1,12 @@
|
|||
<mjml>
|
||||
<mj-head>
|
||||
<mj-style inline="inline">
|
||||
.footer-link { color: white !important; font-weight: bold; text-decoration: underline !important; }
|
||||
</mj-style>
|
||||
<mj-style inline="inline">
|
||||
.footer-link { color: white !important; font-weight: bold; text-decoration: underline !important; }
|
||||
</mj-style>
|
||||
</mj-head>
|
||||
|
||||
<mj-body>
|
||||
<!-- section 1 -->
|
||||
<mj-section>
|
||||
<mj-group>
|
||||
<mj-column>
|
||||
|
@ -15,41 +16,104 @@
|
|||
<mj-text font-size="20px" color="#F45E43" font-family="helvetica" align="center">
|
||||
Mardi 28 aout 2020
|
||||
</mj-text>
|
||||
<mj-button href="#" font-family="Helvetica" background-color="#f45e43" color="white">Visit Board
|
||||
<mj-button href="#" font-family="Helvetica" background-color="#f45e43" color="white">Visit Musala
|
||||
</mj-button>
|
||||
</mj-column>
|
||||
</mj-group>
|
||||
</mj-section>
|
||||
|
||||
<!-- Title section -->
|
||||
<mj-section>
|
||||
<mj-column>
|
||||
<mj-divider border-color="#F45E43"></mj-divider>
|
||||
<mj-text font-size="20px" color="#F45E43" font-family="helvetica" align="center">
|
||||
Your daily task list for
|
||||
</mj-text>
|
||||
<mj-text font-size="24px" font-weight="bold" color="#F45E43" font-family="helvetica" align="center">
|
||||
BC.Business.Operational
|
||||
<mj-text font-size="24px" color="#F45E43" font-family="helvetica" align="center">
|
||||
Your daily task list
|
||||
</mj-text>
|
||||
<mj-divider border-color="#F45E43"></mj-divider>
|
||||
</mj-column>
|
||||
</mj-section>
|
||||
<mj-section>
|
||||
<mj-column>
|
||||
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">Topic ABC
|
||||
|
||||
<!-- Chapter -->
|
||||
<mj-section>
|
||||
<mj-column>
|
||||
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">Late
|
||||
</mj-button>
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" font-weight="bold" align="left">
|
||||
Topic dsfsdfs
|
||||
</mj-text>
|
||||
<mj-text font-size="16px" color="#666" font-family="helvetica" align="left">
|
||||
Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a>
|
||||
</mj-text>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left" line-height="1.25">
|
||||
<p style="margin: 0 0 4px 0;"><b>Super task number one</b></p>
|
||||
<p style="margin: 0 0 4px 0; color: #bbb; font-size: 14px;"><b>Draft</b> on <b>cloud.boldcode.io</b> – Due for 2001-10-10</p>
|
||||
<p style="margin: 0 0 4px 0; ">Lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla ▪ <a href="#rezrez" style="color: #f45e43;">read more</a></p>
|
||||
</mj-text>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left" line-height="1.25">
|
||||
<p style="margin: 0 0 4px 0;"><b>Super task number one</b></p>
|
||||
<p style="margin: 0 0 4px 0; color: #bbb; font-size: 14px;"><b>Draft</b> on <b>cloud.boldcode.io</b> – Due for 2001-10-10</p>
|
||||
<p style="margin: 0 0 4px 0; ">Lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla, lorem ipsum dolor sit amet, blablablabla ▪ <a href="#rezrez" style="color: #f45e43;">read more</a></p>
|
||||
</mj-text>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left" line-height="1.25">
|
||||
<p><b>Super task number one</b><br/></p>
|
||||
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||
</mj-text>
|
||||
</mj-column>
|
||||
</mj-section>
|
||||
|
||||
|
||||
<!-- Chapter -->
|
||||
<mj-section>
|
||||
<mj-column>
|
||||
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">Today
|
||||
</mj-button>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||
<p><b>Super task number one</b></p>
|
||||
<p font-size="14px">Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||
</mj-text>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||
<p><b>Super task number one</b><br/></p>
|
||||
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||
</mj-text>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||
<p><b>Super task number one</b><br/></p>
|
||||
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||
</mj-text>
|
||||
</mj-column>
|
||||
</mj-section>
|
||||
|
||||
<!-- Chapter -->
|
||||
<mj-section>
|
||||
<mj-column>
|
||||
<mj-button font-size="20px" font-family="Helvetica" font-weight="bold" background-color="#f45e43" align="left" color="white">This week
|
||||
</mj-button>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||
<p><b>Super task number one</b></p>
|
||||
<p font-size="14px">Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||
</mj-text>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||
<p><b>Super task number one</b><br/></p>
|
||||
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||
</mj-text>
|
||||
|
||||
<mj-text font-size="16px" color="#666" padding-bottom="0" font-family="helvetica" align="left">
|
||||
<p><b>Super task number one</b><br/></p>
|
||||
<p>Lorem ipsum dolor sit amet, blablablabla <a href="rezrez">>> see more</a></p>
|
||||
</mj-text>
|
||||
</mj-column>
|
||||
</mj-section>
|
||||
|
||||
|
||||
<!-- footer -->
|
||||
<mj-section>
|
||||
<mj-column background-color="white" inner-background-color="#f45e43" padding-right="20px" padding-left="20px">
|
||||
<mj-text font-size="16px" color="#ffffff" font-family="helvetica" align="left" >
|
||||
To stop receiving these emails, you can change your <a href="#" class="footer-link">notification preferences</a> in <a href="#" class="footer-link">Musala</a>.
|
||||
</mj-text>
|
||||
<mj-text font-size="16px" color="#ffffff" font-family="helvetica" align="left">
|
||||
To stop receiving these emails, you can change your <a href="#" class="footer-link">notification preferences</a> in <a href="#" class="footer-link">Musala</a>.
|
||||
</mj-text>
|
||||
</mj-column>
|
||||
</mj-section>
|
||||
|
||||
</mj-body>
|
||||
</mjml>
|
||||
|
|
Loading…
Reference in a new issue