Revision history for Mojolicious application Slovo
2018.09.09
-Features:
* Initial handling of permissions for stranici and celini in
administration area.
* Added new check 'is' and alias for it 'can' to Slovo::Validator.
-Changes:
* when anew user is inserted a record for primary group in user_group
is inserted too.
* 'permissions' possible values are now added to the
'parameters' object of api-v1.0.json. From there the enum is used in
templates.
2018.08.28
-Features:
* Added and setup HTML wysiwyg editor Trumbowyg to the distribution.
It was chosen because of its small size and easiness to use and
extend.
* Added extension 'base64' for embedding images into the page as base64
data in the 'src' attribute of the img tag.
* Added post-processing of the 'body' property of a stranica and celina
just before save in case the data_format is 'html'. The base64 data
in the images is saved as files in the public/img folder of the
respective domain. This allows images to be shared among pages and
decreases the size of 'body'.
* Added switching of editors on change of the 'data_format' field.
Simple textarea for 'text' and Trumbowyg for 'html'. In the future
other editors will/may be added for 'pod', 'markdown' and asciitext.
-Changes
* Added documentation to Slovo::Controller::Role::Stranica.
* 'data_type' and 'data_format' possible values are now added to the
'parameters' object of api-v1.0.json. From there these enum
properties are used for bot filling in the select_box(es) and for
'in' checks during validation.
2018.08.19
-Features
* Implemented page caching on disk. Page is cached if published and
readable by 'others', and visited by a guest user. On the next visit
a guest user sees the cached page. Page load is 15 times faster.
* Full multi-domain support. Domains can have their own public and
template folders and be served from one running Slovo instance.
-Changes
* Startup script 'slovo' was improved. Slovo can be installed and ran
with all dependencies in it's on local folder. Previously it did not
detect properly it's own $Config{archname}.
* Added 'log' and 'domove/*/public/cached' to .gitignore
* Improved documentation. Mention all current features.
* Numerous small code optimisations in classes.
* Upgraded to Mojolicious 7.93, Cpanel::JSON::XS 4.05
* Changed CODENAME to U+2C0F GLAGOLITIC CAPITAL LETTER MYSLITE (Ⰿ).
This is a major release. We have full multi-domain support and
cacheable pages.
2018.08.12
-Features
* Added nice multi-language routes (/<страница:str>.<ѩꙁыкъ:lng>.html,
/<страница:str>/<цѣлина:cel>.<ѩꙁыкъ:lng>.html).
* Added more restrictive route-placeholders types (cel,str,lng).
* Added a set of languages to the forms for celini and stranici.
* Added a new language switching menu. The language is switched by the
page title - заглавѥ.
-Changes
* The $c->debug method is now a helper and can be used in templates
without $c.
* Fixed and optimised mapping of data_type to template name for
displaying a record from celini.
* Changed CODENAME to U+2C0E GLAGOLITIC CAPITAL LETTER LJUDIJE (Ⰾ).
This is a major release. We have multilanguage pages.
2018.08.08
-Features
* Implemented /<:страница>/<*цѣлина>.html - /page/article.html. This
allows pages to act as category pages for collections of articles for
example.
* Added partial templates for all data types from table celini and a
generic one for custom data types.
* Slovo::Plugin::DefaultHelpers – additional default helpers for Slovo.
* Implemented Slovo::Controller::Role::Stranica with wrapper around
execute() to share some common stash settings, preparations and
checks before the page is rendered and leave room for executing code
after the page is rendered.
-Changes
* Now the IDN is always shown decoded in the sidedrawer.
* Moved helpers 'language' and 'is_user_authenticated' from Slovo to
Slovo::Plugin::DefaultHelpers.
* DefaultHelpers and TagHelpers are loaded unconditionally after all
other mandatory for Slovo plugins.
* Improved action execute and its template in
Slovo::Contoller::Stranici. Added partial templates for almost all
celini data_types. Moved my $breadcrumb fom controler to
Slovo::Model::Stranici where it belongs.
2018.08.00
-Features
* Domains can have several aliases and pages can be found under
different aliases - Multidomain support.
* Made OpenAPI API specification allways available via helper
'openapi_spec'.
-Changes
* Changed CODENAME to U+2C0D GLAGOLITIC CAPITAL LETTER KAKO (Ⰽ).
* This is a magor release. We have a Minimal Viable Product.
2018.07.28
-Features
* Breadcrumb navigation up to the root page in the appbar.
* Added new column 'aliases' to table 'domove'. It will be used to
match a request to a specific domain from $c->req->headers->host.
-Changes
* Creating a page now redirects to the form for editing the newly
created page.
* Used some well known unicode symbols as icons.
* Fixed bugs in side-drawer.
* Upgraded to Mojo::SQLite 3.001 and Mojolicious 7.89.
* Improved domove/_form.html.ep to use prefilled params.
* Added missing license meta to Makefile.PL. Thanks, Mohammad S Anwar.
2018.07.20
- Features
* Sidebar shows a list of pages under the current page if the page is a
folder.
* Implemented 'select_box' in the new Slovo::Plugin::TagHelpers.
* Using OpenAPI (fka Swagger) to retreive items in directory
pages in the sidebar page menu.
- Changes
* Greatly improved code in _form.html.ep and other templates in the
administration interface for 'celini' and 'stranici'.
* Changed orthography for some celini semantic data_types:
'въпросъ', 'ѿговоръ', 'белѣжка'.
2018.07.16
- Changes
* Fixed (also future potentially) failing tests caused by missing
'use feature qw(lexical_subs unicode_strings);' on Perl 5.20-5.24.
2018.07.15
- Features
* (WIP) Using OpenAPI (fka Swagger) to retreive the sidebar page menu.
* (WIP) added helper 'language' which will be later provided by
Slovo::Plugin::L10N.
- Changes
* Improved/finished 'all_for_list' in Slovo::Model::Stranici. Added
columns 'title' and 'is_dir' to the resultset.
* Unified WHERE clause for executing/listing pages on the site by
moving it to '_where_with_permissions' in Slovo::Model::Stranici.
* Unified WHERE clause for executing/listing content in a page by
moving it to where_with_permissions in Slovo::Model::Celini.
* Improved 'login_ok' and added 'login' in Test::Mojo::Role::Slovo.
2018.07.10
- Features
* Link to /Ꙋправленѥ when user is signed in in the footer.
* (WIP) Using OpenAPI (fka Swagger) to retreive the sidebar page menu.
- Changes
* Updated Mojolicious::Plugin::OpenAPI to 1.30 and enabled it.
* removed api.json and added api-v1.0.json
* Fixed failing tests on Perl 5.20.
2018.06.25
- Features
* Implemented a site layout, based on a MUI CSS example. We are getting
closer to a MVP (Minimum Viable Product).
- Changes
* Avoided using varaiables and subroutine names written in azbouka due
to a missing feature in PPI which causes Perl::Critic to falsely
complain. See https://github.com/adamkennedy/PPI/issues/226
2018.06.22
- Changes
* User Guest is always loaded to have some default permissions for
every not logged in user.
* Replaced helper "is_user_authenticated" from
Mojolicious::Plugin::Authentication. Now it checks if the current
user is not Guest and returns true, false otherwise.
* Now the user is really authenticated.
* Removed unused methid "check" from Slovo::Controller::Auth.
* Improved documentation.
- Features
* Better and working "Sign in" without transmitting plain text password.
2018.06.06
- Changes
* On failed login the guest user is loaded to have always a user.
* We `use 5.020` in Slovo.pm to switch ON all Perl features available
up to this version.
* Loading of Model classes is postponed untill first use of the
corresponding helper.
-Features
* Added attribute `domain` to Slovo::Controller.
* Now UTF-8 characters are readable in dumped structures by $c->debug.
* Added multidomain support. Many domains can be served by one Slovo
applcation. Domains can be matched also by IPs from which they are
served. For example 'http://127.0.0.1/alias.стр.html' finds the page
'alias' in domain localhost.
* When a page cannot be found a "Not Found" page is displayed.
* When a page is displayed the `permissions` and `published` matter.
Secondary groups of a user are supported. In preview mode
(?прегледъ=1) published, hidden, deleted, start and stop are
disregarded.
2018.05.24
- Changes
* Честитъ праздникъ на бꙋквите – Ден на Българската Писменостъ.
* Many changes in progress towards displaying pages in the site.
- Features
* Implemented template and layout for rendering a regular page.
* Using MUICSS for default styles.
2018.05.19
- Changes
* Shared methods "all", "find", "save", "remove", "add" in Slovo::Model.
* Improved some templates and the index page.
* Improved pages(stranici) validation.
- Features
* New content (celini) can be added.
* Content (celini) can be edited and deleted.
2018.05.03
- Changes
* Improved the page form.
* Removed custom config method from Slovo::Controller.
* "page_type" can be (regular=>'обичайна',root=>'коренъ').
* From the next version upgrading from an older version (like this)
* will be possible.
- Features
* Pages with initial content can be edited
* Pages can be "removed" (deleted=1).
* Added initial set of pages with initial content in language
* bg-bg(Слово=>Home page,Писания=>Blog,Вести=>News,Относно=>About).
2018.04.30
- Changes
* Improved startup.
* Added some tests for creating and updating a user.
- Features
* Added Slovo::Validator with new filter - xml_escape.
* Creation of new page with initial content.
2018.04.15
Unstable: WIP!
- Changes
* Improved documentation.
* Switched $CODENAME to U+2C0C GLAGOLITIC CAPITAL LETTER DJERVI (Ⰼ)
- Features
* Implemented Slovo::Plugin::MojoDBx. Not using sqlite.conf
anymore. This plugin can be moved to Mojolicious namespace.
There is nothing specific to Slovo in it.
* WIP - Added tables 'domove', 'stranici' and 'celini'. Beginning
of a site.
* Generated MVC and OpenAPI from the tables using
Mojolicious::Command::generate::resources.
- Bugs
2018.04.09
- Христос воскресе
- Switched $CODENAME to U+2C0B GLAGOLITIC CAPITAL LETTER I (Ⰻ)
- Improved documentation.
- Added first migration file. Table definitions and initial data are taken
from Ado.
- Used Mojolicious::Command::generate::resources to generate code for
groups and users resources like this:
$ generate resources -D dbx -t "groups,users" -T \
lib/Slovo/resources/templates --api_dir lib/Slovo/resources
- Added sqlite.conf which can be switched with pg.conf or mysql.conf.
This way the database can be easily switched by adding specific
adapter configuration files.
- Added helper 'dbx' which will be instance of Mojo::SQLite, Mojo::Pg or
Mojo::mysql instead of corresponding 'sqlite', 'pg', or 'mysql'.
- Added Slovo::Cotroller.
- Improved a bit the generated code for models. Added parent class
Slovo::Model.
- Added dependency Mojolicious::Plugin::Authentication and implemented
Slovo::Controller::Auth.
- Added TODO section to the Slovo POD.
- Added Test::Mojo::Role::Slovo.
- Added tests for sign_in.
- Added tests for creating a users.
2018.03.25
- Improved documentation.
- Implemented loading of plugins specified in slovo.conf.
- Added dependency Mojolicious::Plugin::RoutesConfig.
2018.03.24
- Made the application installable as any perl module.
* added EXE_FILES to the installation
* Fixed unwanted installation of README.pod
* Added new target "readme" for "make" which is also part of the
"dist" target.
* Added new target perltidy which is also part of the "test" target.
- Made the application installable as a perl application.
2018.03.23
- Original version; created by ExtUtils::ModuleMaker 0.56
- Generated application using `mojo generate app Slovo`
- Modified Makefile.PL and whatever needed so most basic tests pass.
- Used $CODENAME from Ado to indicate that this project is continuation of
Ado (in a way).