Revision history for Mojolicious application Slovo
2021.11.22
* Fixed wrong separator for sharer urls in _footer_right.html.ep
* Simplified logic for caching pages.
* Improved cannonical url generation.
2021.11.20
* Fixed: Image filenames for files generated from base64 data were not
really unique.
* Added several simple sharing buttons - No JS.
* Improved footer CSS.
* Added author's name, 'created' and 'updated' dates at the bottom of some
celini templates.
* Happy birthday to my muse!
2021.11.12
* Fixed wrong Mojolicious version in Makefile.PL to 9.22.
2021.11.11
* Fixed og attributes for article.
* Upgraded to Mojo::SQLite 3.007, Cpanel::JSON::XS 4.27,
Minion::Backend::SQLite 5.05, Mojolicious::Plugin::PODViewer 0.007,
Mojolicious::Plugin::Authentication 1.37, Mojolicious::Plugin::OpenAPI 5.00,
Mojolicious::Plugin::RoutesConfig 0.07, Net::SMTP 3.13 Role::Tiny 2.002004,
Mojolicious 9.23.
* Replaced login form with a new one. Switching to theme Malka.
* Added new layout for control panel layouts/uprava.html.ep.
* Slightly improved documentation of Slovo::Themes::Malka.
2021.06.16
* Fixed failing tests with Mojolicious::Plugin::OpenAPI 4.04.
* Upgraded to Mojolicious::Plugin::OpenAPI 4.04.
2021.06.06
* Updated progress in the documentation.
* Allow commands from the Mojolicious::Command::Author::generate namespace
to be listed and executed by Slovo on the command-line. Added tests.
* Added README.pod to the distribution.
* Fixed missing hidden field for permissions when creating a page.
2021.05.21
* Fix canonical URL when it can contain a double slash.
2021.05.15
* Added initial OpenGraph support.
* Optimised _around_execute in Slovo::Controller::Role::Stranica to do as
little as possible when serving cached content.
2021.02.20
* Renamed configuration section `plugins` to `load_plugins` so it does not
clash with the same feature in Mojolicious 9.0. Kept the feature as Slovo's
one is more flexible. Slovo is compatible with Mojolicious 9.0.
* Added `mojo` subfolder to the mod_rewrite rule for public/ in the
.htaccess file template so we can put static files like jquery/jquery.js
there and they will be served directly by Apache.
* Made scrollbar-width wider in Slovo::Themes::Malka.
* Upgraded to Mojolicious 9.02.
2021.02.01
* We now require minimum version of Perl 5.26 to remove from our code
`no warnings "experimental::lexical_subs";`. Respectively we explicitly
require at least ExtUtils::MakeMaker 7.24.
* Since Perl 5.26 "the lexical_subs feature has no effect; all Perl code
can use lexical (private) subroutines, regardless of what feature
declarations are in scope." So we replaced `use feature qw(lexical_subs
unicode_strings);` with `use feature ':5.26';`. We just use the whole
feature bundle now.
* Changed behavior of Slovo::Command::Author::inflate and improved its
documentation. The different types of files are now prefixed with
`templates/` and `public/` only if they are inflated into the
$app->home directory.
* Improved lib/Slovo.pm's POD.
* Database migration is not automatic any more. From now on one must run
`bin/slovo eval 'app->dbx->migrations->migrate'`.
* Added new `BEFORE UPDATE` SQL triggers that check if pid!=id and if the
parent record is a directory, and throw an SQL statement error.
* Added meta tags for 'author', 'description' and 'keywords' in
partials/_head.html.ep with default content from the respective row in
table celini.
2021.01.11
* Happy new year!
* Fixed a bug in Slovo::Controller::Role::Stranica::page_id_options(...)
which caused unpleasant recursion in site menu when the root page is
edited and saved. Root page was being set with pid=id, but it should
always have pid=0.
* Moved templates from themes/malka to lib/Slovo/Themes/Malka.pm.
* Deleted existing default templates for the "site" part of the templates.
Now Slovo::Themes::Malka is the default theme for the site.
* Implemented Slovo::Command::Author::inflate.
2020.12.22
* Added new lightweight theme, named "malka". Using
https://github.com/necolas/normalize.css and
https://github.com/jenil/chota.
Work in progress!!
* MUI CSS is deprecated and may be removed soon.
The new theme will be the default.
* Now lib/Slovo/resources/templates comes after $app->home/templates in
@{$app->static->paths} and lib/Slovo/resources/public comes after
$app->home/public in @{$app->renderer->paths}.
* Added new column 'templates' to table 'domove'. This way every domain can
switch easily the theme without moving files around - just by pointing to
the theme directory where the templates reside.
* Implemented Slovo::Cache to support mutiple domains theming by storing
compiled templates with different key prefix per domain.
* Moved .perlcriticrc to the root directory of the project.
* In the control panel the pages now are sorted only by 'sorting'.
* Mojo deprecated the default behavior of writing to log/$mode.log and we
implemented by default writing to log/$moniker.log if possible.
* Refactored and improved Slovo::Controller::Role::Stranica and the
corresponding Controller and Model classes, tests and templates.
* Many bugs were fixed along the way.
2020.12.12
* Improved messages and documentation of commands a2htaccess and novy_dom.
* Now default permissions for folders created by novy_dom are 0755. This
allows Apache to read static files.
* Page-form now shows site_name for hidden field 'dom_id' - better for
sites with unicode names.
* We do not use any more environment variable REWRITE_ENGINE_ON from
.htaccess to tell slovo.cgi to remove SCRIPT_NAME from URL. This is done
via config option for Slovo plugin CGI 'mod_rewrite', which defaults to
1 meaning enabled.
* Improved /celini/create functionality - better handling of missing
parameters.
* Deprecated route /manage/celini in favour of /manage/stranici/:page_id/celini.
2020.12.01
* Fixed bug - 'page_type', 'box' and 'data_type' columns' values in
database were not changed while translating identifiers. Now this is
done. See migrations.sql
* Translated the above mentioned remaining values from Bulgarian(Cyrillic)
to English(Latin).
* Added parameters descriptions for 'box'and 'page_type' in api-v1.0.json.
* Added possible value for data_type - 'chapter' in api-v1.0.json.
* Added 'boxes','data_formats' and 'page_types' to $app->defaults and used
them accross the application as "single source of truth".
* Slightly improved documentation.
* We do not allow any more pages to be moved across domains.
* We do not allow any more a page with page_type 'root' to be created.
Every domain has only one such page and it is created with command 'slovo
generate novy-dom'.
* We do not list page titles with the rest of celini records. They can be
edited as part of a page.
* Now using Veleka2 font.
2020.11.22
* Fixed a bug - The adaptor class (Mojo::SQLite/mysql/Pg) reinstantiated
each time $app->dbx was invoked. Now this is done only on the first
invocation.
* Removed deprecation warning about MojoDBx 'helper' setting. Now the
helper is always "dbx".
* Default configuration from slovo.conf was moved to MojoDBx. If you use
slovo.$mode.conf your instance should not be affected as your file
will be preferred.
* Now more properties(columns) of the $stranici object are fetched from the
database. See '/paths/~1stranici/get/parameters/4/default' in
lib/Slovo/resources/api-v1.0.json
* Implemented new hook "around_action", where we set some common
variables, used in templates ($l - current language and $user - current user).
* Fixed bugs:
- page_id was not properly set in the $celina object, which is used for
title of the page.
- Stash variables for use in templates were not properly set when there
was a validation error.
- Moving a $celina to another page is disabled (until we implement proper
select field).
- Some fields required validation filter "not_empty" - otherwise they were
validated as "required".
* Setting stash defaults now happens only in lib/Slovo.pm
* Now fieldsets are collapsed only if there are no validation errors.
* Moved fieldset "Съдържанѥ на страницата" to the top of the page form.
2020.11.11
Get back to Slovo after getting my master degree in programme "Medieval
Bulgarian Studies" – Sofia University "St. Kliment Ochridski".
* Switched to codename U+2C14 GLAGOLITIC CAPITAL LETTER SLOVO (Ⱄ). With
this we mark the renewal of the project.
* Changed double quotes to single quotes for values
in lib/Slovo/resources/data/migrations.sql as "suddenly" they started to
be treated as columns. This happens as of DBD::SQLite 1.63_05 2019-07-12.
Fixed #28.
* Minor fixes in lib/Slovo/resources/api-v1.0.json. "maxLength" value needs
to be an integer.
* Changed all identifiers for data types in table celini from
Bulgarian(Cyrillic) to English(Latin) to increase understanding by
potential nonslavic contributors. Here they are: въпросъ => question;
книга => book; писанѥ => writing; белѣжка => note; заглавѥ => title.
* Upgraded to Mojolicious 8.65, Mojo::SQLite 3.004, Cpanel::JSON::XS 4.25
Minion::Backend::SQLite 5.0.3, Role::Tiny 2.001004, EV 4.33,
Mojolicious::Plugin::OpenAPI 3.40, Mojolicious::Plugin::RoutesConfig 0.06
Test::PerlTidy 20200930, Perl::Critic 1.38.
* Changed most css and route identifiers from Bulgarian(Cyrillic) to
English(Latin) too. Fixed #16.
* Preferring data/slovo.$mode.sqlite if found upon startup over
lib/Slovo/resourcesdata/slovo.$mode.sqlite.
2019.09.19
A very late release!
* Now using markdown editor Editor.md v1.5.0
(https://github.com/pandao/editor.md) and Marked v0.3.3 (https://marked.js.org/)
* Replaced most of cyrillic variable names in templates with latin variable names.
2019.08.18
* Updated Trumbowyg to version 2.18.
* Fixed a bug in helper 'language'. It was returning an arbitrary language
abbreviation.
* Added helper 'languages'.
* Added a 'cach all route', displaying 'Page Not Found!'.
* Upgraded to Mojolicious 8.23, Mojo::SQLite 3.002,
Minion::Backend::SQLite 4.005, Cpanel::JSON::XS 4.12, Role::Tiny 2.000008,
Mojolicious::Plugin::OpenAPI 2.16.
2019.07.11
* Added new options --skip and --refresh to command novy_dom to easily
update domain specific templates after upgrading Slovo.
* Improved command a2htaccess and Slovo::Plugin::CGI by adding environment
variable REWRITE_ENGINE_ON so the url_base is changed accordingly to
.htaccess file.
2019.07.07
* Fixed wrong url in sidedrawer menu.
* Fixed bug in language menu.
* Slightly improved .htacces.
* More logging for successful and unsuccesful authentication.
* Less debug messages.
2019.06.23
* Working .htacces file for Apache/CGI
* End to end Author tests - 012_cgi_hosting.t
2019.06.09
- Changes
* Changed CODENAME to U+2C13 GLAGOLITIC CAPITAL LETTER RITSI (Ⱃ)
This is a major release.
* reenabled '-utf8' switch for Perl::Tidy. Works well with newest
edition and Test::PerlTidy.
* Using also 'local/' folder for locally installed dependencies.
* Minor fixes for making Perl::Critic happy.
* Not using Test::CheckManifest anymore.
- Features
* Apache/CGI support with the following prerequisites. This is work in progress.
* Slovo::Command::Author::generate::cgi_script.
* Slovo::Command::Author::generate::a2htaccess.
* Slovo::Command::Author::generate::novy_dom.
* $app->home detects the common root folder where SLovo is installed, not
just where lib/Slovo.pm is.
2019.02.20
- Features
* User can chose parent page and parent celina for new and existing
celina.
2019.02.02
- Changes
* More tidy code.
* Optimised script/slovo.
* Upgraded to Mojolicious 8.12
* Fixed failing test on MSwin32 due to unicode filenames. Now produced
files have sha1_sum as name.
* Fixed bug in sidedrawer.
TODO: Investigate why 'url_for' does not recognise some route names.
2019.01.29
- Changes
* Added t/perltidy.t to impose the rules in our .perltidyrc to
contributors. Ran `make perltidy` and t/perltidy.t. Set
ENV{TEST_AUTHOR} to run this test.
2019.01.21
- Changes
* Improved form for 'stranici' a lot.
* Improved form for 'celini' a lot.
2019.01.01
- Changes
* Happy New Year 2019!
* Listing pages as expandable tree under route 'under_management' with
* breadcrumb above.
* Added new tag helper 'checkboxes'.
* Only admin users can add a user to a group.
* Slightly improved pages and users forms.
2018.12.24
- Changes
* Removed development dependencies, added by mistake.
* Sligntly improved and updated documentation.
* Added option in slovo.conf to enable HTTP response compression -
still experimental in Mojolicious.
* Changed shebang line in script/slovo to use the Perl at time of
installation instead of the Perl at time of execution.
* Changed CODENAME to U+2C12 GLAGOLITIC CAPITAL LETTER POKOJI (Ⱂ)
It's time for Рождество Христово.
2018.12.22
- Changes
* S::C::Auth::signout now redirects to S::C::Auth::authform.
* Fixed t/007_domove.t. Only admins can edit domains.
* Improved "Sign In" form.
* Improved users' form and celini's show.html.ep.
- Features
* Added functionality to send email with one time login token in case
of forgotten password.
2018.12.09
- Changes
* Fixed mistake in path generation for config file.
2018.12.08
- Changes
* Now Slovo looks for configuration file in the following order:
1. $ENV{MOJO_CONFIG};
2. $app->home->child("$moniker.$mode.conf")
3. $app->home->child("$moniker.conf")
4. $app->resources->child("etc/$moniker.$mode.conf").
Default: $app->resources->child("etc/$moniker.conf")
* Improved Slovo.pm POD.
* Improved the generated token for first login.
2018.11.30
- Features
* Implemented experimental onboarding workflow. A user can create
account for other users and invite them to sign in for the first
time. An email with first-time login token is sent to the new user
via SMTP. See Slovo::Task::SendOnboardingEmail.
* We have Bootstrap CSS 4 for free. Comming together with Minion.
* Minion admin UI (Mojolicious::Plugin::Minion::Admin) is available for
members of the admin group at /Ꙋправленѥ/minion. Note: Links in UI do
not work. TODO: fix.
- Changes
* Slovo now depends on Minion and Minion::Backend::SQLite which will be
used for asynchronous execution of various time consuming tasks.
* The configuration parameters for a plugin loaded via slovo.conf can
be returned via a closure which is executed just before the plugin is
loaded. Very convenient for using already generated routes and other
already available functionality by plugins which are loaded later.
* Added .travis.yml. Now every push will be built on
https://travis-ci.org/kberov/Slovo
* Added Several other dependencies both for authors and for production.
See Makefile.PL.
2018.11.15
- Features
* A user can be member of more than one group.
* Only admins can change other's accounts and manage groups.
- Changes
* Listing of цѣлини and страници in /Ꙋправленѥ/ are now restricted
only to the current domain.
* Added dependency Mojolicious::Plugin::PODViewer because
Mojolicious::Plugin::PODRenderer will be removed from Mojolicious.
* Upgraded to Mojolicious 8.06.
* Worked around a bug in Perl::Critic by adding extra semicolumn after
* the closing brace of a lexical sub.
* Better validation when creating/editing users.
* Started work on experimental onboarding process for users.
* Enhanced adminstration area UI a little bit.
2018.11.11
- Features
* Ownership and the group (list of contributors) of a цѣлина and
страница can be changed.
- Changes
* A celini item cannot be deleted anymore by mistake. "Remove" button
was removed.
* "Permissions", "published" and change of user_id and group_id were
moved into separate fieldset "Разрешения и обнародване".
2018.10.31
- Changes
* Fixed a bug where only pages(stranici) which are directories can list
their articles(celini) on the home page and caused Status 500 for
calls to /api/страници.
* Cleaned up Slovo::Model::Stranici::all_for_home.
* Made article boxes on home page adaptive for small screens between
270 and 450 px width.
2018.10.29
- Changes
* Upgraded to Mojolicious 8.04.
* Fixed Slovo::Validator. It was failing with the above version.
* Removed alias 'can' for check 'is' from Slovo::Validator.
2018.10.16
- Features
* Implemented browser caching for both signed and not signed in
visitors to reduce the bandwith for content and pages.
* Added new configuration keys 'cache_pages'=1/0 to enable and disable
caching of content on disk and 'cache_control' to allow setting the
'Cache-Control' header for fine grained browser cache management.
- Changes
* Fix: 'tstamp' value was not set during 'stranici' and 'celini' update.
* Fix: Now only canonical urls are cached to disk. Avoided duplication
of cached content on disk.
2018.10.12
- Features
* (Hopefully temporarily) added new media types for woff and woff2 font
file formats.
2018.10.11
- Changes
* Replaced 'Menaion Unicode TT' with 'Bukyvede' as the latter has the
full set of old Bulgarian glyphs.
* Added FreeSerif as fallback for Veleka as it has the full set of old
Bulgarian glyphs.
* Added pipe as separator between items in _header.html.ep.
* Fixed cached_pages value in slovo.conf
2018.10.10
- Changes
* Fix: Handle unlikely error - responding to request to a host which is
not found in the database.
* Fix: Page was not loading proper заглавѥ for edit.
* Fixed documentation for Slovo::Plugin::MojoDBx. Deprecated config
option 'helper'.
* Loading PODRenderer and not caching pages in development mode only
now by default.
* Cannonical link in <head> now is not url_escape-d, nor domain name is
punycode_encode-d - Experimental.
2018.10.08
- Features
* Implemented automatic redirect from old to new URLs for pages and
celini.
* Implemented new helper 'html_substr' in Slovo::Plugin::TagHelpers.
* Added a subset of GNU FreeFont (Sans and Mono), whole 'Menaion
Unicode 2.0' and Veleka to ensure proper display of old Bulgarian
texts (Azbuka and Glagolitza) characters. See
lib/Slovo/resources/public/fonts/README.
* Added 'favicon' – The "Slovo" letter from the Glagolitic alphabet.
* Added cannonical url for the current page in the <head>.
- Changes
* Changed CODENAME to U+2C10 GLAGOLITIC CAPITAL LETTER NASHI (Ⱀ)
This is a major release. We can upload pictures, We have a WYSIWIG
and simple text editor, fine-grained permissions for pages and
content, example systemd script and apache 2.4 config, new home page
template, automatic redirects to changed URLs (No "Page Not found"
due to this), embedded fonts for Азбука and Глаголица…
* Upgrades: Cpanel::JSON::XS 4.06, Mojolicious 8.02,
Mojolicious::Plugin::OpenAPI 2.0.
* Showing langauge dropdown only if the page or article are translated
into other languages.
* Unified layout of teasers for articles in home page and categories'
pages. We strip any html from celini titles before rendering in
templates.
* Reduced unneeded login tests.
* Updated systemctl service description.
* Fix: Use page id to denote parent page for children celini.
* Selectively ignore some resources in domove/
* Now the <html> tag has a `lang` attribute - the current $ѩꙁыкъ.
* KABANOID fixed some typos in documentation. Thanks!
2018.09.28
- Changes
* Upgraded Mojolicious to version 8.01.
* Slight performance improvement in 'before_dispatch' hook.
* Better positioning of the main content on large screens.
* Fix: Now in stranici/templates/dom.html we remove HTML before showing
articles on home-page.
2018.09.22
- Features
* New home page template showing the last several articles in each
category page -- the direct children of the home page.
- Changes
* Added mui-colors.min.css to slovo.min.css.
* Added all_for_home() in Slovo::Model::Stranici. It is used in
stranici/templates/dom.html.
* Added meta name="generator" in _head.html.ep.
* Now both '/' and /index.html reslove to the default page and language.
* Fixed bug - Cached pages were shown to logged in users too.
* Fixed bug - Заглавѥ was not showing only its children, but the other
page's celini.
2018.09.15
- Features
Added example configuration file for Apache mod_proxy.
Added example configuration file for systemd.
Added configuration section for hypnotoad to slovo.conf.
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).