docs/Changes
ShinyCMS Changes
================
This file vaguely documents the revision history for ShinyCMS. Newest items
are at the top.
2019-09-03 (v19.9)
- No breaking changes this month (I hope!) :)
- Restored get_posts() method in Blog controller (used by some live sites
to embed a list of blog posts in sidebars or CMS Pages)
- Finished implementing the Paid List feature
- Added recent blog posts and recent news items to sitemap
- Refactored get_tags() methods to do more work in database and less in Perl
- Refactored build_url() and search() in Discussion to remove duplication
- Update Forums code to use DBIC pager instead of hand-rolled pagination
- Refactored some recurring redirect patterns into methods
- Updated the search() methods in various controllers to be more consistent
with each other
- Changes and additions to demo data to exercise more code branches when
running the test suite
- More tests - all the controllers now have at least 80% test coverage!
- It's my birthday today :)
2019-08-21 (v19.8)
- Test coverage is now over 80% for the whole project.
- Test coverage for each of the Admin area controllers is also 80% at
minimum now, with 6 of the 13 having 100% test coverage.
2019-07-10 (v19.7)
- BREAKING CHANGES:
- Refactored code for updating mailing list subscriptions.
- No database changes, but HTML, TT, and Controller all changed.
- If you haven't edited root/newsletters/lists.tt for your site
then you just need to replace it with the new one at the same
time as you replace lib/ShinyCMS/Controllers/Newsletters.pm. If
you have edited the template then then you need to port your HTML
changes into the new template, or port the new TT code into your
modified template, before updating the controller.
- There is some new CSS to support the default/demo site templates
for the subscriptions page.
- Refactored blog and news controllers and templates to use built-in
DBIC pager rather than the previous hand-rolled approach
- You will need to update your templates to incorporate the new TT
code, or vice versa, at the same time as updating the controllers
- There are a few other CSS changes for pages other than the
mailing list subscriptions page.
- The main.css file has also been re-ordered, so it may be hard to pick
out the changes in this release - sorry! Hopefully the new order will
make this easier in future though.
- The config variable name for how many items to display on a page on
the main site has been changed (from a few different variable names,
but mostly posts_per_page or items_per_page) to be page_size
everywhere - this is now consistent with the controllers and config
for the admin area. A new top-level config item has been added for
setting the default, which can then be overridden on a per-controller
basis as desired. Your config file will very probably need updating
if/when you update any of the main site controllers.
- In general, various new config options have been added in the last
few months. The config file has also been re-organised so it will
unfortunately be hard to get a useful diff against your existing
config. Make a fresh copy of the default file and edit your site's
config back into it to make sure you get all the new stuff!
- ALSO IMPORTANT
- If you are using the CCBill access subscription payment handler,
please test it thoroughly after updating it, as it did get refactored
to support more thorough testing (coverage is now 100%!). I'm fairly
sure that there were no changes to existing functionality (other than
returning more useful errors in a few places) but obviously your
income stream is worth triple-checking.
- This handler now attempts to fall back to matching on user email
address if CCBill don't round-trip the shinycms_username properly
- Other stuff
- The main focus since the 19.6 release last month has continued to be
extending test coverage - particularly for the Admin controllers. The
coverage on roughly half of these is now 100%, along with two of the
simpler non-admin controllers, the Access payment handler as mentioned
above, and all of the DBIx::Class model and schema result files.
- There has been some refactoring to support easier/better/more thorough
testing, but most of it should have no impact on functionality.
Replacing the admin area in one hit rather than piecemeal is probably
sensible though - as mentioned previously there's a utility script
which may help you with that process: bin/dev-tools/replace-admin-area
- All tests should now 'tidy up' after themselves, so that each set of
tests, and the test suite as a whole, can be re-run without resetting
the database in-between test runs (as long as the tests don't die
before finishing).
2019-06-09 (v19.6)
- POTENTIALLY BREAKING CHANGES:
- Moved admin controller minimum authorisation checks into base methods
- This means e.g. Page Admins must _also_ have Page Editor role now
- Added two new roles:
- Fileserver Admin
- Shared Content Admin
- Added top-level page_size setting for admin area to
config/shinycms.conf
- Added an install.sh script that can be used for one-liner installs
- Added poll admin area
- Added delete feature to shared content area
- Lots of work on tests
- Added test coverage analysis via Devel::Cover
- Added test_requires section in Makefile.PL
- Fixed CircleCI config to use caching properly
- Updated CircleCI config to report coverage data to codecov
- Updated Travis CI config to report coverage data to codecov
- Doubled test coverage - from just under 30%, to almost 60%
- Changed the scripts that insert the demo site data so that they can
be re-run without duplicating (or triplicating, etc) the demo data
- Added more demo data for News section and for Fileserver features
- Various utility scripts for running tests
- Added test database config, invoked with SHINYCMS_TEST=1 env var
- Added CircleCI, Travis CI, and Codecov badges to README
- Created helper libs for tests and utility scripts, to make sure they're
all using the right config and connecting to the right database etc
- Rearranged code in controllers to be more consistent, moving
private/utility methods to the end of the file
- Started updating admin controller URLs to be a bit more consistent;
in particular, various '/edit-[thing]-do' URLs have become '/thing/save'
- Moved static resources for admin area into one sub-folder, for easier
updating (and added a utility script to update the admin area)
- Stopped explicitly setting wrapper in main site templates
(select-wrapper.tt sets it for both admin and main site now)
- Removed PHP examples from CKEditor code, to stop GitHub mentioning PHP
- Lots of whitespace changes; sorry about that :)
2019-05-04 (v19.5)
- Version number bumped to use the 'Ubuntu' style (19.5 for May 2019)
- Rather large gap since this file was last updated :)
- Over the last month the admin area and the default/demo site have
both been re-styled, using modern HTML5 templates provided by
open-source projects (thank you, CoreUI and html5up!)
- License changed to 'the same terms as Perl itself', i.e. your
choice of GPL v2 or The Artistic License. Both licenses have
been added to the docs folder, and the AGPL has been removed.
[ ... ]
2013-02-01
- Update copyright notices and email addresses from 2012->2013
- Update deprecated config key
2012-10-25
- Fix title bug
2012-10-11
- Change redirect after adding shop categories to be consistent with other
admin features
- Move insert-schema script into dev-tools folder and schema.sql into docs
folder, to stop people who don't read the docs trying to use them during
install
- Add related_url field to news posts (for linking PDF press releases etc)
2012-09-14
- Force URI-encoding of tags in URLs
2012-07-05
- Fixes to ordering of tagged posts view
2012-06-25
- Added teaser_image() method for use when displaying blog post summaries
2012-04-04
- Fix bug triggered by deleting forum posts
2012-03-21
- Allow templates to specify sort order when fetching recent items
2012-02-09
- Moved developer utility scripts into dev-tools folder
- Unique names for all database keys for Postgres compatibility
2012-02-08
- Added sample config for nginx [Paul Webster]
2012-02-07
- Update (c) dates and email address for 2012
2012-02-06
- Updated docs
- Added 'no content yet' warning page for fresh installs
2012-01-28
- Fix incorrect new expiry date when renewing existing/expired subscriptions
2012-01-22
- Fix bug with deleting 'liked' comments
2012-01-22
- Fix bug adding elements to shop item types
2011-12-23
- Update deprecated DBIC search syntax (-nest)
- Add more dependencies to Makefile.PL
2011-12-20
- Fix bug in paging of tag view
2011-12-19
- Add payment handler for subscriptions via CCBill
- More efficient element handling for shop (complex pages much faster now)
2011-12-13
- Add affiliate ID tracking
2011-12-10
- Use X-Sendfile to send files from authenticated fileserver
2011-12-06
- New authorisation-checking code [from Tomas Doran]
2011-12-01
- Separate out access control from roles
- Add expiry dates to user access privs
2011-11-23
- Allow comments/discussions on user profiles - aka 'wall'
2011-11-22
- Change datetime fields to timestamp fields for postgres compatibility
2011-11-18
- Add ability to hide shop items
- DB modules all changed, due to upstream changes affecting autogenerated code
2011-11-13
- Allow shop admins to add one-off elements to shop items
2011-11-02
- Make shop recent items feed sort by date updated then date added
2011-10-28
- Allow fetching of full tag list for shop items
- Sort tags alphabetically (rather than asciibetically)
2011-08-29
- Repopulate form fields when form submission/validation fails
2011-08-28
- Move database schema deploy script to work via DBIC
- Add 'likes' feature to shop items
2011-08-27
- Change pages and events demo data scripts to use DBIC
2011-08-26
- Add shop results to search feature
2011-08-22
- Started adding support for product types in shop
2011-08-19
- Add config option for whether comments are enabled by default in blog
2011-08-18
- Add comments feature to shop items
2011-08-06
- Add 'shared content' feature, for storing stuff you want to re-use
across the whole front-end site (e.g. contact details in footer, etc).
2011-08-05
- Add 'restricted content' feature, for members-only file-serving
2011-08-03
- Tags on shop items
- Tags on forum posts
2011-08-02
- Pagination in shop (recent items and category pages) now working
2011-07-26
- Split shop demo data out into its own insert script
- Add 'recent items' page to shop
- Add back-end support for paging to shop category view
2011-07-25
- Add browser detection
2011-07-24
- Rework CSS overrides to be additions rather than substitutions
- Cut-down (and rename) font-size CSS example files appropriately
2011-07-20
- Split shop admin features out into separate controller and templates
2011-07-15
- List of recent forum posts to user profile page
2011-06-19
- Add session timeout to configuration file
2011-06-13
- Order forum threads by recent comment activity
2011-06-04
- Add edit-post function for forum admins
- Add sticky threads in forums.
2011-05-28
- Add HTML filtering for use on forum posts and comments
- Display most popular forum comment on homepage
2011-05-20
- Allow template admins to delete elements from templates
2011-05-18
- 'Like' feature for comments
2011-05-17
- Canonical URLs for forum threads
2011-05-15
- Fix for long-standing bug of unrequested menu_position changes
2011-05-12
- Add demo data for forums feature
- Add progress-indicator output to database build scripts
2011-05-10
- Add hide option for comments
- Handle cascade deletion of comment threads
2011-05-09
- Improved user profile-pic upload process
- Added style-switcher
2011-05-09
- Display most recent forum comment on homepage
2011-04-19
- Add forums
2011-02-22
- Password retrieval feature
2011-02-15
- Split out admin features and templates for Pages section
2011-02-08
- Add feed importer feature
2011-02-03
- Add 'send test' feature for newsletters
2011-01-19
Add menu position to add/edit section
2010-12-27
- Split out news section admin features into separate controller/templates
- Start adding post-dating feature for news items (same as for blog posts)
2010-12-16
- Add teaser method for news items
2010-11-23
- Added user registration feature
2010-11-22
- Improved UI in admin area (drop-down menus) [Helen Lambert]
2010-11-18
- Belated and arbitrary version number bump in honour of newsletters
- Use FindBin in bin/* and tasks/* where possible
2010-11-16
- Split user controller and templates out into admin and non-admin
2010-11-14
- Improved appearance for admin 'list' pages for all sections
2010-11-13
- Various improvements to newsletter section
- Added 'tasks' folder for scripts which will be scheduled tasks (via cron)
- Added tasks script to send newsletter mailshots
2010-11-10
- Change default page selection when editing sections from text-entry to
drop-down menu
2010-11-08
- Add CSV upload feature for updating mailing list recipients
2010-11-07
- Split newsletter controller and templates out into admin and non-admin
- Add A/U/D for newsletters, templates, and mailing lists
- Add 'view newletters' section on site
2010-11-04
- Display default page for a section if no page is specified in URL
2010-11-03
- Add newsletters section (for HTML mailshots)
2010-11-02
- Add Markdown to suggested modules
- Add commented-out markdown use to sample template
- Fix default type for page elements in schema
- Hide preview button until after pages are created
2010-10-23
- Added admin UI for CMS sections (add/edit/delete)
- Changed database utility scripts to pull connection details from conf file
- Added 'getting started' documentation
2010-10-18
- Started reorganising and expanding demo data
2010-10-17
- Improved authorisation-checking code [Aaron Trevena]
- Database-driven sessions [Aaron Trevena]
- Version number bumped in honour of the above
- Move database config into config file
- Make site root (/) display default CMS page without redirecting
2010-10-06
- Fixes to Makefile.PL [reported by spacebat]
- Fixes to tests [reported by spacebat]
- Added POD where missing
2010-10-05
- Form-handling
- Contact form
2010-10-02
- Events archive (monthly view, with prev/next links)
2010-10-01
- Added year summary view to blog section
2010-09-25
- Deleting users, events and news items now works
2010-09-21
- Added contact email field to events
2010-09-20
- Added teaser() method for blog posts, to return first N paragraphs
2010-09-19
- Auto-generate shop item code if user doesn't input one when adding item
2010-09-15
- Add image-selection drop-down to shop edit item page
2010-09-14
- Move shop images to cms-uploads area
2010-09-13
- Various minor tidying and bugfixes in shop area
2010-09-06
- Added reCaptcha for anonymous and pseudonymous users posting comments
- Added 'view posts by author' functionality to blog section
- Make CMS page menu_position auto-adjust, so saving a low position
bumps the rest up 1
2010-09-04
- Proper handling of recent comments feed on user profiles
- Hide future-dated content from tag details page
2010-09-01
- Updated version number in honour of recent bug-killing and feature-polishing
2010-08-31
- Don't display future-dated blog posts on front-end site
- This enables users to 'queue up' posts to automatically appear at
a specified time and date, simply by dating them appropriately
- Add location and map link to user profiles
2010-08-29
- Styling tweaks for back-end menus [Helen Lambert]
- Hugely improved admin footer bar [Helen Lambert]
2010-08-28
- Added events to site-wide search
- Separated back-end menus out into separate templates (for easier rearranging)
2010-08-26
- Moved main wrapper for front-end site to root templates folder
- Fix bugs in chaining in User controller
2010-08-23
- Added in a load of stuff from HTML5 Boilerplate
2010-08-22
- Use TT's html and url filters throughout templates
- Add jQuery datepicker to blog post editing page, to allow back-dating
- Verify email addresses when adding/editing users
- Save and restore details of pseudonymous commenters
2010-08-21
- Atom feed for blog posts
- Added 'website' to optional user details
- Changed meta.custom_wrapper to meta.wrapper throughout templates
2010-08-20
- Search results from news and blog sections
- Site-wide tag-search results (only from blogs, so far)
2010-08-19
- Delete comments
2010-08-18
- Display tags on view post page
- Display posts by tag
- Delete blog posts
2010-08-17
- Added tag feature - database and admin UI, blogs only
2010-08-16
- Paginated blog posts
- Renamed database to match project name
2010-08-15
- View blog posts posted in a specified month
- View events starting in a specified month
- Add file uploads outside of CKEditor
2010-08-14
- Move user profile page from admin area to content site
- Display recent post and recent comments info on user profile page
- Add 'valid XHTML and CSS' buttons and links to site footer
- Display blog-post comment-count on homepage and recent posts page
2010-08-13
- Events: create, edit, list, view details
- Added jQuery to back-end (for date-picker on event admin pages)
- Display events feed on homepage
2010-08-11
- Added events feature - display only
- Changed all displayed times to not display seconds
2010-08-10
- Added 'post comment' feature
2010-08-05
- Blog section replaced with one based on News section
- Updated homepage template to show recent blog posts
- Updated README and $VERSION now that we have a usable feature-set
2010-08-04
- Fix adding elements to templates
- Moosification of Result classes (autogeneration changed)
- Added new example homepage template, showing news items on CMS page
2010-07-29
- Minor cosmetic fixes [Helen Lambert]
2010-06-04
- Added 'user notes' (can only be set/read by user admins)
2010-03-22
- Fixes to TT whitespace handling, for tider XHTML output.
- Added status and error message divs to front-end wrapper + css.
2010-03-21
- Added basic poll features
2010-03-15
- Improved menu layout on default example site
2010-03-08
- Added support for 'quick upload' feature of CKEditor
2010-03-07
- Added CKEditor-compatible File Manager
- Moved CMS-controlled images from cms-images to cms-uploads/images
- Separate menus out from main back-end wrapper template into their own
templates directory
2010-03-03
- Fix remaining XHTML validation problem - now valid XHTML 1.0 Strict
- Added confirm-delete javascript for pages
2010-03-01
- Add/edit news items
- XHTML validation fixes
- User administration (add/edit users and their roles)
2010-02-28
- Added preview feature to CMS page editing
2010-02-27
- Fleshed out news section, basic features now in place
- Improved 404 template
2010-02-25
- Moved menus into Root controller for easier use across sites
2010-02-24
- Added build_menu method to Root controller
- Created News controller
2010-02-23
- Fixed bug in shop nested category templates, caused by DBIC/TT changes
2010-02-22
- Added 404 handler
- Fixed post-login redirects
2010-02-21
- Added search to site root, pulling from per-controller search methods.
2010-02-20
- Added search to CMS area
- Changed 'list-pages' to display using sitemap structure
- Fixed bug in page edit code for 'CMS Page Editor' role
- Tweaked wrapper template to display edit link for page editors
2010-02-19
- Added basic sitemap generator
2010-02-18
- CMS sections
- CMS menus
- Fixed various bugs in blog area - bad generated links, etc.
- Updated user login function to redirect more helpfully when successful
2010-02-15
- Added cms_template_elements so that new pages can be created with the
correct set of elements, ready to be edited by a non-admin
- Improved favicon [Helen Lambert]
2010-02-11
- Added WYSIWYG HTML editor widget (CKeditor)
2009-12-11
- Changed project license to GNU Affero GPL
2009-10-08
- Nested categories / sub-categories
2009-10-06
- Finished applying new form styles to all existing admin pages
- Set / to forward to CMS-controlled site at /page
- Added /admin and /login shortcuts to access admin area
2009-10-05
- Add/Update/Delete/List templates
- More admin-side styling
2009-10-04
- Massively improved visual appearance [Helen Lambert]
2009-10-03
- Added Delete Page feature to CMS
- Added 'list all pages' feature for CMS admins/editors
- Added Add/Update/Delete categories feature to shop
2009-10-02
- Added Delete Item feature to shop
2009-10-01
- Added Add Page feature to CMS
- Edit Page improved
- Added Add Item feature to shop
- Edit Item improved
- Added 'list all items' feature for shop admins
2009-09-20
- Changed project name from Reactant to ShinyCMS
- Fixed blog b0rkedness
- Auth on CMS and shop edit pages
- Shop category pages
2009-09-19
- Basic PayPal checkout integration
2009-09-18
- Beginnings of online shop functionality
- Display/edit item
2009-09-10
- Basic CMS functionality
- Display/edit page
2009-06-11
- Nested comment display
- Only on blogs for now - aim to enable on other content later
2009-05-28
- Basic user functionality
- Authentication
- View details
- Edit details
- Partial blog functionality
- Display/edit post
- List recent posts per-user/per-site
- Use subdomains to specify author