This file documents the changes made between version 2.2 and 2.3 of of the Leantime™ project.
- New canvas:
- SWOT Analysis
- Environment Analysis
- Risk Analysis
- Empathy Map
- Observe / Learn - Insights
- Strategy Brief
- Lightweight Business Model, Osterwalder's Business Model, and Detailed Business Model
- Porter's Strategy Questions
- Competitive Positioning Canvas
- Strategy Messaging
- Note: Due to copyright restrictions, the Value Proposition Canvas cannot be included: https://strategyzer.uservoice.com/knowledgebase/articles/506842-can-i-use-the-business-model-canvas-or-value-propo
- Revised canvas:
- Lean Canvas (full version only)
- Retrospective (called
retroscanvas
)
- Generate PDF files from any canvas
- Support for easily configurable multi-layer menu structure (support for project-specific menu structures can be enabled via configuration)
- Refactored generic canvas code in
src/domain/canvas
allowing to create a new canvas by simply extending/including code - Engine to translate language string using AI/machine learning from https://www.deepl.com (registration needed, 500'000 characters per month are free)
- Customization support for languages, templates, and class repositories
- XML import and export of canvas
- Re-organized the directory structure to support
themes
andplugins
- The UX/UI design is key for software user buy-in. A poor layout will never make up for great content!
- The definition and layout of canvases is part of the configuration of the system and not part of the day-to-day activity of using the system
- A well-defined and supported process is preferred over an overwhelming choice of options
Numbering shown is used to didentify specifc commits on github (diderich/leantime, branch dts)
- Refactored canvas code into a generic library of extendable classes and includable templates. Generic code is in
src/domain/canvas
(with a template for a new canvas insrc/domain/canvas/NEWcanvas
) - Canvas details are defined in
domain/repository/XXcanvas
, rather than in templates (allowing specification to be used for screen layout and PDF generation) - Added optional second drop-down called
relates
allowing to relate an element/box to a specific concept (e.g., relating a strength in a SWOT analysis to the firms' Capabilities) - Added separate access to comments from element/box (without the full dialogue)
- Added option to clone/copy existing canvas
- Added option to merge an existing canvas into the current canvas, allowing to consolidate work from multiple users
- Added selectors that allow to show sub-sets of elements/boxes in a canvas, based on drop-down values (e.g., only showing elements/boxes that have been validated)
- Added icons and colour (both are optional) to elements and removed option to change titles by the user
- Added system independent XML import and export functionality
The following changes have been applied to the Ideas Kanban to make the user experience similar to that of canvas:
- Menu naming for creating new/editing idea Kanbans. Moving the delete menu next to create
- Number of comments per element is shown in the same way as in canvas (but cannot be clicked to add/edit comments)
- Added
yetiforce/yetiforcepdf
library in composer for rendering PDF files (available via MIT License) - Added print-ready
Roboto
andRobotoCondensed
from (https://fonts.google.com/specimen/Roboto) (available via Apache2 license) - Added functionality to generate PDF reports from templates (visual canvas report containing summary information and detailed list report)
- Menu structure has been separated from menu rending/layout. Menu structure is defined in
domain/repositories/menu
- Menu structure supports two layers, second layer can be shown/hidden by the user
- Support for project specific menu structures added. It can be enabled through configuration (
$config->enableMenuType
)
- Added script in
tools/mltranslate
to translate messages using DeepL.com AI algorithm - DeeplL is preferred over Google Translate because of the translation quality
- Use requires a (free) API key.
- Only not yet translated text strings are translated
The system, up to now, allowed custoization at two layers
- Through the user interface:
Company Setting
- Through editing the configuration file:
config/configuration.php
Any other change to the system is potentially overwritten when installing a new release. Sometimes, it may be sound to
configure the level at a deeper layer. Therefore, the possibility to customize languages, templates, and classes in the
src
directory has been added. The system will first look under custom
, if it can find the respective files, before
loading them from the original location. When updating the system, no files in the subdirectories of custom
will be
overwritten, allowing to retain customizations made (subject to the disclaimer below.
Although it is highly disrecommended to customize Leantime using this new options, there exist some scenarios where such a customization may b sound:
- An organization may use different wordings, e.g., deliverables instead of milestone, activity item instead of
to-do, engagement instead of project, etc. By copying the original language file
xx-XX.ini
into the directorycustom/language
and editing it there, the system will honor any changes made. - An organization wants to have a specific menu structure (e.g. only showing a subset of canvas or using a different
ordering or adding an additional menu structure). Ths can be achieved by copying the file
src/domain/menu/repositories/class.menu.php
tocustom//domain/menu/repositories/
and making the appropriate changes. - An organization may want to use different layouts of the canvas, e.g., have Customers to the right in the
Lightweight Business Model, consistent with the Original Business Model Canvas. Copying the file
src/domain/templates/showCanvas.tpl.php
into the directorycustom/domain/templates/
and editing it there, allows the system to honor any changes made. - Ad organization may want to disable some of the status/relates to items or add new ones is specific templaces. Again,
copying the file
src/domain/XXXcanvas/repositories/class.XXXcanvas.php
tocustom/domain/XXXcanvas/repositories/
and making the change there allows the system to honor any chages made.
DISCLAIMER: NEW RELEASES MAY (AND PROBABLY WILL) BREAK CUSTOMIZATIONS. THE USER IS THERFORE RESPONSIBLE FOR BACK-PORTING ANY CHANGE MADE IN THE OFFICIAL DISTRIBUTION TO THE CUSTOMIZED FILES.
- Added
Makefile
to minify/compilejs
andcss
files on a need to do basis - Added this file
CHANGELOG-2.3.0H.md
- Added
ISSUES.md
listing major open issues - Adjusted
createReleasePackage.sh
to remove AI translation engine
- New: Documented changes in
CHANGELOG_DTS_BRANCH.md
(commits are numbered with version) - New: Added
Makefile
to only compile/minifyjs
andcss
files when changed - New: Added
yetiforce/yetiforcepdf
library in composer - New: Added print-ready
Roboto
andRobotoCondensed
fonts inpublic/fonts/roboto/
from (https://fonts.google.com/specimen/Roboto)
- New: Added column
type MEDIUMTEXT
to tablezp_projects
. Column allows storing which process is associated with a given project. Supported values areNULL
(Generic),lean
(Lean), anddts
(DTS). - New: Added functionality to associated a process type to a project when creating a new or modifying an existing project. Currently Generic, Lean Startup, and Design Thinking for Strategy are supported.
- Update: Update menu structure, adding new canvas and boards
- New: Library for extendable classes and includable templates for
canvas
andpdf
assrc/library
- New: Engine to generate PDF files from templates (
public.pdf
) - New: Repositoriy
dts
for creating default templates and milestones recommended by DTS process (section 5.1.)
- Update: Prepared
api
andhelper
files for new templates - New: Added Strategy Brief canvas and pdf functionality
- New: Added Business Model Canvas canvas and pdf functionality
- New: Added Porter's Five Strategic Questions and Strategy Message canvas and pdf functionality
- Update: Make use of project type configurable (
$config->enableProjectType
) - New: Added
relates
field to database tablezp_canvas_items
to allow relating an element - New: Added
relatesLabels
to canvas repository class - Updated: Moved library of extendable classes from
src/library
tosrc/domain/canvas
and sib-directories - Updated: Made canvas and label definition variables in canvas repository class ony accessible through functions
- Added: Template to be used for creating new canvas as
src/domain/canvas/NEwcanvas/...
- Update: Only the Strategy Brief canvas has been updated for the new structure
- New: Added configurable menu structure in
repositories/menu
based on menu type selectable on a project by project basis
- Updated: Added sub-menus to menu structure and allow them be toggled. Added access control to menu structure.
- Bug: Corrected modal related bug in
xxCanvasController
- Check: Checked
canvas
code using PHPMD and removed unused variables - Add: Minor adjustments for adding additional templates
- Add: Observe / Learn - Insights canvas added
- Add: Risk Analysis canvas added
- Add: Make submenus open/close persistent
- Add: Empathy Map
- Add: SWOT Analysis
- Update: Make create/edit/delete board menu option in
insights
consistent withcanvas
boards (but missingclone
andprint
)
- Add: Environmental Analysis canvas
- Add: Lightweight Business Model canvas from Design Thinking for Strategy
- Update: Minor improvements of genric
domain/canvas
- Add: Original Business Model canvas from Osterwalder
- Add: Detailed Business Model canvas from Design Thinking for Strategy
- Add: Competitive Positioning Canvas from Design Thinking for Strategy
- Update: Remove dropdown icon from status and relates if the user has read-only access
- Add: Added new composer module
deeplcom/deepl-php
to translate messages (removed from production version) - Add: New script
resources/languages/mltranslate/mltranslate.php
which uses machine learning from DeepL.com to tanslate messages - Update: Lean Canvas and added data migration
- Add: Porter's Strategy Questions canvas from Design Thinking for Strategy
- Add: Strategy Message canvas from Design Thinking for Strategy
- Add: Value Proposition Canvas from Osterwalder
- Update: Show number of comments consistent with canvas in ideas Kanban
- Update: Re-implemented Retrospectives and added data migration under new name
retrocanvas
- Update: Updated database update to reflect change of Refletion canvas name from
reflection
toreflectscanvas
(this new name is required to allow using the genericcanvas
engine) - Update: Moved PDF rendering from canvas specific PDF class to generic PDF class
domain/canvas/pdf/class.pdf.php
- Update: Use colors when generating PDF file only when user has configured them
- Update: Updated
grunt.js
by adding targets that allow minifying selectively - Update: Added rules to
Makefile
to selectively minify js/css libraries - Update: Added rules to automatically translate files
- Add: Machine learning driven translation of stored as
resources/languages/mltranstlate/*.tra
for the languages de, es, fr, it, ja, nl, pt-BR, pt-PT, ru, tr, and zh-CH - Update: Reviewed french translations and installed them as
fr-FR.ini
- Update: Made API controller of canvas classes extended/generic
- Update: Removed tabs in files
- Update: Allow
pdf.php
to handle non-canvas boards (through passing itstype
when calling the URL - Add: Put confidential disclaimers on all PDFs by default
- Add: Add the option to customize/override any language file, template, or class by putting it into
config/language
,config/domain/*/template
, orconfig/domain/*/*
respectively [see note on customization]
- Update: Added telemetry data
- Update: Changed icon from
caret-down
toangle-down
in current project menu. Convention: Useangle
for items that toggle open/clode and usecaret
for items that pop-up. Changed direction ofcaret
for current project menu pop-up pointing to where it appears. - Bug: Corrected icon used next to New menu in To-Dos.
- Update: Move PDF generation from standalone function
/pdf.php
into controller function.
- Add: Added functionality to import and export canvas as XML files
- Update/Add: Allow stylesheet and JavaScript configuration by including
public/config/custom.css
andpublic/config/custom.js
if they exist. These files will not be overwritten by a new installation
- Add: Added
slimselect
JavaScript library to style selectors and make them searchable. Replace default selector to select canvas/kanban (https://github.com/brianvoe/slim-select) MIT License
- Update: Show status and relates icon on
canvasDialog
screen usinginnerHTML
option from SlimSelect (Note: Status and relates could even be colord as on theshowCanvas
page, but that does not look good).
- Add: Add support for US Legal paper size (see
vendor/yetiforce/yetiforcepdf/lib/Page.php
for supported page sizes)
- Add: Added option to merge an selected canvas into an existing one, allowing to consolidate work from multiple users
- Bug: Applied upstream change to correctly handle URLs associates with
download.php
(template::convertRelativePaths
) inelements.inc.php
andclass.pdf.php
- Bug: Return error image in
download.php
, if user is not authenticated (/images/leantime-no-access.jpg
)
- Add: Added skeleton for handling themes (functionality required to implement new directory structure)
- Update: Updated directory structure for handling themes
- Updated: Changed code to always use default theme for login in either the default language or the language of the browser
- Update: Languages are now cached theme specific, as each theme can overwrite language strings
- Update: Re-enabled option to use previous theme/language for login screen (can be set in configuration: $keepTheme) using cookies
- Bug: Set cookie to path in which the application is installed, rather than the root path (to avoid conflicts with other applications installed on the same server)
- Update: Removed explicit
require()
path from all canvas templates and replaced them with calles to the functiontemplate:getTemplatPath()
, preparing for a potential change in how templates are references, and adding the functionality to customize include files (e.g., now it is possible to customize the element design in a canvas by re-implementing/custom/domain/canvas/template/element.inc.php
).
- Add: Added support for theme specific colors and logo. Settings are read from the database as
companysettings.$theme.logoPath
,companysettings.$theme.primarycolor
, andcompanysettings.$theme.secondarycolor
of these entries exist. In addition, if not theme specific logo is set in the database, the system looks if there is a theme specific logo configures with the theme intheme.ini
(callingtheme::getLogoUrl()
). The implementation of a UI to set the theme specific settings in the database does not (yet) exist.