======Munia Roadmap====== =====Version 1.0===== //Release scheduled in a not too far future.// ====Server==== * {{:check.png}} Document client->server commands * {{:check.png}} Document server->client commands * {{:check.png}} Generally rename ''task'' to ''node'' in code. * {{:check.png}} Add unit-test framework * {{:check.png}} Port existing, in-file/embedded unit-test to unit-test framework * {{:check.png}} Mark nodes as they are being dragged ([[attr:dragged]] attribute) * {{:check.png}} Add positional arguments to create and move command to make it possible to alter the order of the children in a node. * {{:check.png}} Fix subscribing to other nodes than 0. Subscription node now always has parent id -1. * {{:check.png}} Fix node create when a node is moved into a subscribed area. It is missing all its attributes. * {{:check.png}} Compile with c++11 instead of c++17 until it can actually compile with c++17! * {{:check.png}} Depend on libwebsockets 2.0 instead of 2.1. * {{:check.png}} Disable debug (hugin) output, if configure ''--without-debug''. * {{:check.png}} BUG: On ''create'' as consequence of ''move'', also create children recursively. * {{:check.png}} Find way to split messages so they don't exceed ''max_http_header_data''. * [[max_http_header_data]] * Use localStorage instead of cookies for collapse-state since the cookie section grew too big for lws to handle on the server-side (and wasn't even needed there, so cookies were the wrong storage choice to begin with) * {{:check.png}} Split messages if they get "long" (more than 512 bytes) at the first-coming message boundary. * {{:check.png}} BUG: Check if ''id'' is actually being subscribed to by client before unsubscribing. * {{:check.png}} BUG: Prevent creation of nodes with id's already in the tree. * {{:check.png}} Add error server command and use it wherever applicable. * {{:check.png}} Add password hash checks using [[https://github.com/P-H-C/phc-winner-argon2|Argon2]] as sub-module. * {{:uncheck.png}} Depend on libwebsockets 1.7 instead of 2.0 and make cli compile with both versions. * {{:uncheck.png}} BUG: On ''remove'' as consequence of ''move'', also remove children recursively? * {{:uncheck.png}} Don't send empty responses to clients. (see munia_proto.cc:163) * {{:uncheck.png}} Add tests for each of the commands: * {{:uncheck.png}} ''login'' * {{:uncheck.png}} ''logout'' * {{:uncheck.png}} ''subscribe'' * {{:uncheck.png}} ''unsubscribe'' * {{:uncheck.png}} ''create'' * {{:uncheck.png}} ''delete'' * {{:uncheck.png}} ''update'' * {{:uncheck.png}} ''move'' * {{:uncheck.png}} Windows support. ====Web Client==== * {{:check.png}} Add intra-node drag'n'drop for reordering. * {{:check.png}} Add node title edit with double-click. * {{:check.png}} Add attribute name/value URL-encoding of (in particular) double-quotes. * {{:check.png}} Add collapse buttons and store the states on cookies. * {{:check.png}} Add different background colors to better distinguish between group nodes and leaf nodes. * {{:check.png}} Show [[attr:state]] in nodes. * {{:check.png}} Show [[attr:description]] in nodes. * {{:check.png}} Modify [[attr:state]] with mouse. * {{:check.png}} Modify [[attr:description]] with mouse. * {{:check.png}} Position lineedit for editing titles at the top. * {{:check.png}} Make description editing use textarea instead of singleline-lineedit. * {{:check.png}} Make board root-node children background a different colour. * {{:check.png}} Add anchor tags as accepted, including src attribute. * {{:check.png}} Make lineedits selectable with the mouse. * {{:check.png}} Fix unsubscribe, not properly removing root node/board node. * {{:check.png}} Add markdown support in description fields. * https://github.com/markedjs/marked * {{:check.png}} Show errors as alert box. * {{:check.png}} Show password prompt with "remember me" checkbox for storing password in cookie and performing auto-login. * {{:check.png}} Add child indicator (to visualize the presence of children on collapsed nodes) * {{:check.png}} Add description indicator (to visualize the presence of description text on collapsed nodes) * {{:uncheck.png}} Figure out a way to disable html tag support in markdown. * {{:uncheck.png}} Visualise to others when a node title/description is being edited. * {{:uncheck.png}} Add save/discard buttons to edits and remove discard on focus loss. * {{:uncheck.png}} Use Roboto font. * {{:uncheck.png}} Deleting content of title and description doesn't work ====CLI Client==== =====Version 1.1===== //Release not yet scheduled.// ====Server==== ====Web Client==== ====CLI Client==== =====Backlog===== ====Server==== * {{:uncheck.png}} Add XML serializer/deserializer tests * {{:uncheck.png}} Use [[http://cgit.drumgizmo.org/getoptpp.git|getoptpp]] as submodule. * {{:uncheck.png}} Evaluate persistence strategy (when/how is data persisted) * {{:uncheck.png}} Change eXpat to pugixml in a submodule (consider using json instead?) * {{:uncheck.png}} Add support for alternative storage backends (postgresql, sqlite, ...?) * {{:uncheck.png}} Add [[attr:protected]] attribute. * {{:uncheck.png}} Consider storing users in a special parent node, with usernames, passwords hashes, etc as attributes. * {{:uncheck.png}} ACL on http requests to protect attachments, avatars, etc... * {{:uncheck.png}} Refactor entire code-base to modern C++. * {{:uncheck.png}} Add depth to subscribe command so for example ''subscribe 0 2'' will subscribe to the root node with depth 2 showing only the root node itself and its immediate children (could be projects list). * {{:uncheck.png}} Add attribute filter to subscriptions, so only changes matching the filter is being published (for example [[attr:assignee]] or [[attr:tags]]) * {{:uncheck.png}} Add ''ubsubscribe all'' command option. From TODO file (maybe still relevant?): * Client subscriber lists to set instead of lists. * Handling of invalid values in incoming messages (default values?) ====Web Client==== * {{:uncheck.png}} Add "initial command string", stored in cookie. * {{:uncheck.png}} Use "bounce move" for mouse drags. * {{:uncheck.png}} Make [[https://www.w3schools.com/js/js_htmldom_animate.asp|animation]] when a node changes/moves to make it easier to see in the UI for other users. * {{:uncheck.png}} Make [[https://www.w3schools.com/js/js_htmldom_animate.asp|animation]] for other UI components such as expand/collapse. ====CLI Client==== * {{:uncheck.png}} Make it work again. * {{:uncheck.png}} Use [[http://cgit.drumgizmo.org/getoptpp.git|getoptpp]] as submodule. * {{:uncheck.png}} Use [[https://github.com/AmokHuginnsson/replxx|Replxx]] as submodule.