summaryrefslogtreecommitdiff
path: root/CHANGES.md
blob: ab82918811c10f47191b6bc1e76603a15b64b237 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
Past and Upcoming Changes
=========================

v1.0.0 release plan
-------------------
- [x] consider renaming, relicensing
  - [x] License
    - [x] GPLv3+ and enter copyright info
    - [ ] Maybe the translation/documentation can be made available under a
          different license
    - [ ] may relicense this under the AGPL.
  - [x] Rename
    - [x] JWebmail
- [x] make github ready
  - [x] remove sensitive files (gitignore)
  - [x] add git vcs
  - [x] remove part of the english translation
- [ ] check legal requirements
- [x] BUG: home not displaying
- [x] show new messages per folder
- [x] BUG: empty folder not displaying correctly
- [x] better documentation
  - [x] document i18n snippets
  - [x] cleanup comments
  - [x] list functionality for ReadMails#communicate
  - [x] OMail 
  - [x] OMail::Helper
  - [x] OMail::Controller::All
  - [x] OMail::Plugin::I18N
  - [x] OMail::Plugin::INIConfig
  - [x] OMail::Plugin::ServerSideSessionData
  - [x] OMail::Model::WriteMails
  - [x] OMail::Model::ReadMails
  - [x] OMail::Model::Driver::QMailAuthuser
  - [x] OMail::Model::Driver::QMailAuthuser::Extract
- [x] better pagination
  - [x] BUG: pagination forward -> backward is shifting by 1
        (page start needs to be decremented)
  - [x] move out to helper
  - [x] more generic names
- [x] advance ini config plugin
  - [x] set global section to global scope 
  - [x] introduce arrays
  - [x] make nesting sections more explicit
- [x] write more tests
  - [x] test pagination
  - [x] test mail_line
  - [x] test for ini parser
  - [x] basic test for application
- [x] improve i18n
  - [x] german translation
  - [x] look into i18n configuration
  - [x] remove TXT alias
- [x] more configuration (for model)
  - [x] disable cram
  - [x] select mock read model
  - [x] lazy init for mock model
  - [x] add switch disabling message send
  - [x] Extract: user to switch to
  - [x] Extract: adjustable maildir directory
- [x] read secret from config file
- [x] Extract: configurable perl lib
- [x] Extract: encoding issues
- [x] improve session data security
  - [x] use a server side cookie implementation
  - [x] use a one time pad
  - [x] resolve server/client session duration issues
  - [x] use cryptographically secure random data
  - [x] hide password length
- [x] handle empty folders
- [x] logging support for Extract.pm
- [x] true perl 5.16 support
- [x] cpan build and deploy script
- [x] remove prefs
- [x] file upload for attachment
  - [x] file type detection
  - [x] move WriteMails from Email::Simple to Email::MIME
- [x] configuration as plugin (Mojo::Plugin::Config)
- [x] model as helpers, initialized in startup
- [x] send
  - [x] multiple mails for cc etc.
  - [ ] content-transfer encoding, research (currently 8bit)
- [x] better design for send and read
  - [x] send 
  - [x] read
- [x] sandbox html mails
- [x] i18n as ini files
- [x] rework mail folders
- [x] rewrite about
- [x] search in subject

Current v1.1.0
--------------
- [ ] From v1.0.0
  - [ ] Maybe the translation/documentation can be made available under a
        different license
  - [ ] may relicense this under the AGPL.
  - [ ] research content-transfer encoding for sending (currently 8bit)
  - [ ] check legal requirements (cookies and DSGVO)
- [x] separate development and production configuration
- [x] better back buttons
  - [x] writemail
  - [x] read mail
- [x] improve server side session cleanup process coordination
- [x] consider using Crypt::URandom instead of Crypt::Random
- [x] factor out date format function
- [x] add a delete session function for s3d, maybe
  - [x] simply remove key from cookie
- [x] add actions script
- [ ] repurpose status field in displayheader
  - [x] currently just renamed
- [x] advance ini config plugin
  - [x] allow non-leaf nodes to be arrays
  - [ ] allow quotes
  - [ ] allow continuation over multiple lines
  - [ ] warn about overrides
  - [ ] add template support, maybe
- [ ] improve i18n
  - [ ] add localization of dates and time
  - [x] refactor I18N plugin to allow independent translate provider
- [ ] fix tests
- [x] consider using more mojo functions
  - [x] use Mojolicious::Types to replace File::Type
  - [x] Helper
  - [ ] QMailAuthuser
- [ ] moving mails to other folders
  - [ ] creating new folders
  - [ ] backend
- [ ] specify protocol for backend interaction
  - [ ] choose tool for validation
- [ ] cleanup README
- [ ] improve performance of backend, consider alternatives to Mail::Box::Manager
  - [ ] based on Maildir::Light
  - [x] reimplementation in Rust
- [x] refactor ReadMails into a role
- [x] made languages in about clickable
- [ ] cache mail reads
  - is unlikely to work as mails can be moved freely 
- [ ] make loading auth data from session easier
- [ ] merge read and raw (with content type)
  - how does one extract the body functionality?
- [ ] add exception types
  - [x] added exception for QMailAuthuser
- [ ] extract version for Makefile.PL from Application

Future
------
- [ ] INV: wrong subject being shown
- [ ] INV: new mails are not highlighted
- [ ] INV: displayheaders table does not fill outer container
- [ ] consider using more mojo functions
  - [ ] base64
  - [ ] encoding
  - [ ] json
  - [ ] filepaths
  - [ ] dump
  - [ ] mail?
- [ ] create base configuration
- [ ] improve performance
  - [ ] async read for extract
    - [x] async version of driver
    - [x] async version of model
    - [ ] async version of controller
  - [ ] async wait for send
  - [ ] add wait_for_child to event loop
- [ ] add more mime types to read
  - [ ] jpeg
  - [ ] png
  - [ ] gif
- [ ] better pagination
  - [ ] merge with partial templates, maybe
- [ ] add config validation
- [ ] click on sender to answer
- [ ] mobile optimize
- [ ] download mail and attachments
- [ ] cleanup css
- [ ] allow multiple attachments
- [ ] add mails to Sent folder
- [ ] smtp send model, maybe
- [ ] pop read model, maybe
- [ ] add icons for navigation
- [ ] allow changing password
- [ ] think about forgot password feature
- [ ] address book support
  - [ ] add links on email addresses in header : click = add into addressbook