All notable changes to this project will be documented in this file.
- added
VALID_SITE_TYPES
to atoms allowing to filter bycurrent_site
class
- changed
adaptive-title-font-size
tofont-size-adaptive
, added afs-adaptive
class name andadaptive_font_size_class_name
method toFolio::ApplicationComponent
- removed
folio/mixins/_adaptive_title_font_size.sass
- removed
Rails.application.config.folio_console_ability_lambda
. Useapp/overrides/models/folio/ability_override.rb
in your project instead. - removed obsolete
Rails.application.config.folio_site_validate_belongs_to_namespace
- changed how sites in tests work. Folio expects your project to have a
ApplicationName::Site
class andRails.application.folio_site_default_test_factory
set.
- added
Rails.application.config.folio_console_add_locale_to_preview_links
to be used when your app routes are scoped withscope "/:locale", locale: /#{I18n.available_locales.join('|')}/
- changed how leads work - set
Rails.application.config.folio_leads_from_component_class_name
to enable them - use"Folio::Leads::FormComponent"
or your own
- added aliased action
:do_anything
(same as:manage
), into Folio::Ability. - added
user.currently_allowed_actions_with(subject, ability_class = nil)
- added
Folio::TogglableFieldsComponent
- added
folio_nested_fields
usingFolio::NestedFieldsComponent
- use it instead ofcocoon
- removed
private_attachments
andprivate_attachments_fields
partials, useFolio::Console::PrivateAttachmentsFieldsComponent
instead!
- authorization to console is done through user login, not account.
- Folio::Account after merging into Folio::User (done in migration)
- changed
folio/lightbox
- now works via stimulus, usingstimulus_lightbox
andstimulus_lightbox_item
helpers
- ignore
Rails.application.config.folio_site_is_a_singleton
and handle one site application as multisite with one (and main) site
- Folio::Subscribable concern
- updated
folio-bootstrap-5
to 5.3 - make sure to update your_custom_bootstrap.sass
based on the one in folio dummy app - make sure to check your e-mail templates / mailer previews, styles may break
- atom and molecule generator now generates components by default - to use cells, pass the
-cell
option - renamed
cell_options
toatom_options
inrender_atoms
andrender_atoms_in_molecules
- added
render_view_component
toFolio::ApplicationCell
- added
Folio::Console::Ui::BooleanToggleComponent
- removed
Folio::Console::BooleanToggleCell
- replace yourfolio/console/boolean_toggle
cell calls withFolio::Console::Ui::BooleanToggleComponent
- version 4.0!
- renamed
new_url
tonew_path_name
in index header and new_button
- removed
react_picker
and addedfile_picker_for_*
- added
preview_token
functionality toFolio::Publishable
concern, addedpreview_token
param to pages - addpreview_token
column to your publishable models!
- renamed
Folio::Image
toFolio::File::Image
andFolio::Document
toFolio::File::Document
- removed legacy
Folio::ImageHelper
- added
Rails.application.config.folio_users_after_impersonate_path_proc
which usesfolio_users_after_impersonate_path
by default
- removed
folio/console/tagsinput
cell, useas: :tags
simple form input instead
- added
Folio::HasRoles
and used it forFolio::Account
- use cancancan
accessible_by
in console index actions
- moved s3 signer controller out of console
- moved javascript files around
folio/console/_flash -> folio/console/flash
folio/console/_api -> folio/api
folio/console/_s3-upload -> folio/s3_upload
folio/_message-bus -> folio/message_bus
- started to refactor
Folio::DropzoneCell
to work with direct s3 uploads - needs some styling still
- added
folio_users_non_get_referrer_rewrite_proc
config to enable rewriting post/patch referrer paths (such as/orders/confirm
) to relevant get paths (such as/orders/edit
)
- use
:terser
as the defaultjs_compressor
, removeFolio::SelectiveUglifier
force_correct_path
now ignores get params by default- dropped the obsolete
preview
actions from controllers and templates
- updated omniauth gems and switched to
omniauth-twitter2
- update your ENV accordingly
- changed
folio_pages_translations
config tofolio_pages_locales
and updated logic
- added overridable
acquire_orphan_records!
toFolio::User
. Use it to acquire relevant records based on the session id before it gets changed by Warden.
- added
Folio::FilePlacement::OgImage
to default file plcaement types, addFolio::HasAttachments
and update fallback og:image - added
copyright_info_source
toFolio::Site
- reinvite
Folio::User
when signing in using an e-mail of an user with a pending invitation
- added
splittable_by_attribute
to atoms - added
source_site
relation to users
- added
Folio::CacheMethods
- added console notifications when editing/updating the same path as a different account (using
console_path
onFolio::Account
)
- added
Folio::PerSiteSingleton
and update console to use the locale ofcurrent_site
- changed accounts to use
roles
array instead of arole
string - update abilities in projects if needed!
- added
default_gravity
toFolio::File
- refactored console site form - added tab configuration to
current_site.console_form_tabs
for easier extending inmain_app
- refactored simple form inputs - check your js/coffee code (especially console) for manual input functionality and update accordingly
- gem dependency changed to
s.add_dependency "acts-as-taggable-on", "~> 9.0"
(allowing usage of ActiveRecord 6.1.4 and above) - version bump to
0.2.0
- added
Rails.application.config.folio_users_after_impersonate_path
- added
folio:scaffold
generator
- added
Rails.application.config.folio_console_react_modal_types
- converted email templates generator to
folio:email_templates:idp_seed
rake task
- use
:invitable
instead of:registerable
for folio users - changed
Rails.application.config.folio_users_registerable
->Rails.application.config.folio_users_publicly_invitable
- updated photoswipe and
folio/lightbox
- removefolio/photoswipe
cell calls
- removed
data_for_search
column from atoms
- update
folio_console_sidebar_*
config syntax to use hashes with{ links: [] }
- added
Rails.application.config.folio_site_is_a_singleton
andFolio::Site
STI support
- added
Folio::ConsoleNote
model andFolio::HasConsoleNotes
concern
- added
self.default_atom_values
to atoms
- added
Rails.application.config.folio_console_ability_lambda
for easier console ability tweaks
- added sidekiq web to folio routes, hidden behind an
authenticate
lambda - remove it from application routes!
- added
through
support forfolio_console_controller_for
- changed the syntax of
FORM_LAYOUT
for atoms - use nested rows/columns hashes
- changed api files controllers to use direct s3 upload
- added
file_mime_type
forFolio::File
, whilst keepingmime_type
column so that there's not a 500 during deployment - create a per-project migration removing it
- changed console flash javascript - upgrade all your JS code using flash (grep
window.FolioConsole.flash
and replace via the new methods defined inapp/assets/javascripts/folio/console/_flash.es6
)
- changed
Folio::DragonflyFormatValidation
to not use dragonflyvalidates_property
as it tends to ping the image when not needed - make sure you assign mime_type attributes inbefore_validation
instead ofbefore_save
from now on!
- added
title
to content templates
- added
email_modal
option handler in state cell - see wiki for more information
- added
Folio::FriendlyIdForTraco
concern - added
Folio::HasAncestrySlugForTraco
concern
- added "collection_actions" to catalogue, See wiki for more information
- added easy CSV exports via
csv: true
onfolio_console_controller_for
. See CSV wiki for more information.
- added automatic sortable arrows to catalogue based on klass
sort_by_*
scopes
- added
private
thumbnails, addthumbnail_sizes
to session attachments
- added search generator and UI
- added
VALID_PLACEMENT_TYPES
to atoms, validate placement method
- added
phone
toFolio::User
- updated rails to 6.1.4
- added Folio::HasAncestrySlug concern
- added development s3 fetching via DRAGONFLY_PRODUCTION_S3_URL_BASE in ENV
- changed folio/thumbnails to update image-to-be-thumbnailed with
started_generating_at
to avoid creating duplicate generate jobs
- added Folio::HasSanitizedFields concern
- added header message to Site
- added UI generator, refactor dummy assets usage
- added assets generator
- added plenty of prepared_atom templates
- added
Folio::Mailchimp::Api
helper class - added subscribable associtation to newsletter subscriptions &
Folio::HasNewsletterSubscription
concern
- mark
Folio::Subscribable
as deprecated
- added
folio:console:catalogue
generator
- added
react_ordered_multiselect
for has_many through relations with positionable
- removed
Folio::Atom::Text
andFolio::Atom::Title
- added folio:prepared_atom generator
- started creating/updating
config/locales/atom.LOCALE.yml
for atom model names in generators
- added users and addresses
- added custom devise views for user
- added
url
type to atom structure
- added
redactor: :perex
andfolio_pages_perex_richtext
configuration
- added transportable functionality - download to yaml/override from yaml
- removed ahoy
- private attachments api controller
- private attachments single_dropzone cell
- private_attachment method to catalogue
- respect
:modal
option on AASM events
- updated
:date
and:datetime
atoms to store the value as a date/datettime instead of a string
- updated console cell styles import - add
@import '../../../../cells/folio/console/**/*'
toapp/assets/stylesheets/folio/console/_main_app.sass
- added
FORM_LAYOUT
to atoms
- updated lead form cell - changed from
folio/lead_form
tofolio/leads/form
and.folio-lead-form
to.folio-leads-form
- added session attachment model and views
- added ancestry support to catalogue via
ancestry: true
option
- removed
:page
pseudo relation from menu items and updated to_label accordingly - removed menu items STI
- updated bootstrap to 4.5.2
- changed rubocop and guard configuration, see
install_generator.rb
for proper gems and templates for guard/rubocop configs
- extended remote collection select input to accept a hash with scope names
remote: { scope: :my_scope, order_scope: :my_order_scope }
- added table style and config for
show_for
- removed
index_show_for
- added
catalogue
instead
- removed
turbo_mode
fromSite
- removed
non_turbo.js
- added
folio:pg_search_index_migration
generator - added
folio_unaccent
– immutable & indexable version of unaccent function
- added
Folio::DownloadsController
anddownload_path
- added
Folio::HasHashId
concern - added
hash_id
to folio files
- added
Folio::Console::Api::BaseController
- added
fast_jsonapi
gem
- removed
active_model_serializers
gem
- moved location controller to api namespace, update your decorators!
- updated image & document routes
- added
email_from
,system_email
andsystem_email_copy
toSite
Folio::Subscribable
concernFolio::Mailchimp::SubscribeJob
folio:export:newsletter
rake task
- added
public?
class method toPage
to disable access to homepage and such via pages controller
- added email richtext via
premailer-rails
Folio::Audited
version control concernfolio_pages_audited
to application config (enables version control forFolio::Page
)
- added
devise_invitable
forFolio::Account
- added
autosize: true
option to text inputs (uses JS to autosize the textarea)
- removed
current_admin
helper, usecurrent_account
instead
- image sitemap concern enabled by default for
Folio::Node
- automatic file metadata tagging with
exiftool
- Removed obsolete
console_tooltip
helper.
folio_by_scopes_for
toFolio::Filterable
- console index filters
- split
Folio::HasAtoms
toFolio::HasAtoms::Basic
for single-locale:atoms
andFolio::HasAtoms::Localized
for multiple locales (:cs_atoms
,:en_atoms
, ...)
Folio::PrivateAttachment
model andFolio::HasPrivateAttachments
concern
folio_console_sidebar_prepended_link_class_names
,folio_console_sidebar_appended_link_class_names
andfolio_console_sidebar_runner_up_link_class_names
to application config
- Translations are not enabled by default, set
Rails.application.config.folio_pages_translations = true
to enable. - Pages ancestry is not enabled by default, set
Rails.application.config.folio_pages_ancestry = true
to enable. - Renamed
folio_nodes
tofolio_pages
, change the STI default toFolio::Page
. - Page slugs now must be unique, no scoping.
- Removed
Folio::Node
,Folio::Category
andFolio::NodeTranslation
. - Removed
content
fromFolio::Page
. - Removed
nested_page_path
helper, useurl_for
instead.
- Changed simple_form bootstrap 4 config - check forms and add
$enable-validation-icons: false
to sass variables, removeflex-row
and usecol-auto
instead.
- Changed autocomplete syntax to simply
autocomplete: true
orautocomplete: ['a', 'b']
on string inputs.
- Removed default
by_query
scope fromFolio::Filterable
- use customPgSearch
instead!
- Changed atoms
STRUCTURE[:model]
to use class names (strings), not actual classes. - Changed redactor fields syntax - dont use redactor class, use
as: :redactor
instead.
- Added autocomplete input
f.input :field, as: :autocomplete, collection: ['foo', 'bar']
- Changed datetime fields to use date picker by default, removed
date_picker
input.
- Added
folio_console_dashboard_redirect
config
- Changed
folio/console/tagsinput
usage. See source. - Dropped rails-assets source from Gemfile, using bower for photoswipe.
- Lazyload functionality, better image helpers -
image_from
,lazy_image
andlazy_image_from
. - Redactor defined links plugin.
- Switched to
pagy
fromkaminari
- to update, modify custom controllers (views are shown automatically):
@results = Model.all.page(params[:page].to_i || 1)
# change to
@pagy, @results = pagy(Model.all)
- Changed
bootstrap/
tofolio-bootstrap-4/scss/
inapp/assets/stylesheets/_custom_bootstrap.sass
- Changed
filter
inFolio::Filterable
tofilter_by_params
- Changed
Node.translate
andNodeTranslation.translate
to returnnil
for missing locale (instead of the original).
- Added
date_picker
simple form input
- Added
folio_console_locale
config key, fixed missing translations
- Changed
FolioCell
toFolio::ApplicationCell
andFolio::ConsoleCell
- Changed
exceptions_app
workflow. Errors are no longer displayed by Folio. Projects should have their ownErrorsController
which includesFolio::ErrorsControllerBase
to run the error pages in themain_app
context.
- Added
app/assets/stylesheets/folio/console/_main_app.sass
.
- Changed
Lead
-skip_email_validation?
to public
- Added image
alt
and documenttitle
fields.
-
Changed
Atom
structure, seeapp/models/folio/atom/base.rb
- To migrate the models, you can use the following script. Note that you might have to update views as well!
for file in $( find app/models/**/atom/ -type f -name *.rb ); do sed -i 's|documents: :single|document: true|g' $file sed -i 's|documents: :multi|documents: true|g' $file sed -i 's|images: :single|cover: true|g' $file sed -i 's|images: :multi|images: true|g' $file sed -i 's|def cell_name|def self.cell_name|g' $file done
If there were
documents: :single
atoms (nowdocument: true
), runrake folio:upgrade:atom_document_placements
as well -
Changed console react helpers:
- Changed
react_image_select(f)
->react_picker(f, :cover_placement)
- Changed
react_images_select(f)
->react_picker(f, :image_placements)
- Changed
react_document_select(f, multi: false)
->react_picker(f, :document_placement, file_type: 'Folio::File::Document')
- Changed
react_document_select(f, multi: true)
->react_picker(f, :document_placements, file_type: 'Folio::File::Document')
- Changed
- Added proper
traco
support withRails.application.config.folio_using_traco
- Added
folio:traco
generator
- Added support for
traco
-translated atoms and nodes. - Added
with_flag
simple form wrapper.
- Added reCAPTCHA for leads enabled by setting
ENV['RECAPTCHA_SITE_KEY']
andENV['RECAPTCHA_SECRET_KEY']
- FilePlacement STI
- HasAttachments
has_one_document_placement
- cookie consent
- Page caching via
actionpack-page_caching
:file
dragonfly by default, addDEV_S3_DRAGONFLY
flag
- added
turbo_mode
toSite
- splitting JS files intoapplication.js
andnon_turbo.js
is advised - changed
resources
->resource
forSite
in console
- removed
Thumbnails
concern fromDocument
- forms utilize the
form_footer
helper Folio::Atom::Text
hascontent: :redactor
- removed
Site.current
and make it useFolio::Singleton
- removed
Site
relations fromNode
andVisit
- removed
Site.scheme
andSite.url
- added
required: true
tobelongs_to :placement
ofFolio::Atom::Base