Releases: BKWLD/decoy
More initial install fixes
Initial install fixes
- Disabling default image Elements examples, see #12
Open sourcing fixes
- Many docs changes
- Fixing searching for empty fields
- Removing requirement on Input facade
- Changing version constraint on Bukwild php library
Open sourced!
We've open sourced Decoy after 2,700 commits and 4 years of development, Bukwild is releasing it's Laravel model based CMS, Decoy!
This specific release contains fixes related to this like:
- Removing dependencies on internal, private repos and un-published forks of other projects
- Shipping with compiled js and css so no integration with project asset build tools is required
- Fixing some higher priority bugs
Pre-open source
- Fixes for image field
- Don't SEO index
- Fixes for video encodes
- Create admins from CLI
- PHP 7 improvements
- Fixing pagination
- Starting on documentation site
Laravel 5 support
New features
- Works with Laravel 5 (but not 4)
- JS and SASS are compiled with Webpack (for Camo 3 compatibility)
- New images system featuring a built in polymorphic Image model, new uploader UI, and new API for accessing images
- Models now return
Bkwld\Decoy\Collections\Base
collections which have methods that help with serialization. - Child models can now be edited from the parent form. This feature backs the new image system.
- Logins attempts are throttled, for increased security
- Docs from readme moved to the Wiki
New APIs
Models\Base->enforceVisibility()
- Throws anAccessDeniedHttpException
if the model isn't public and the user isn't an admin.- New images API: docs
- New
Bkwld\Decoy\Collections\Base
API: docs
Breaking changes
Visibility
- The visibility toggle has changes from a
$t->boolean('visible')->nullable()
migration to be a "public" boolean, non-nullable column:$t->boolean('public')
. - Scopes that had "visible" in the name have be renamed to use "public". For instance:
Article::ordered->visible()
becomesArticle::ordered()->public()
- The visibility UI tells admins that "private" records will be hidden from the public completely. The
public()
scope and thefindBySlugOrFail()
method will handle this automatically. Otherwise, you should callenforceVisibility()
on models to trigger an exception if the user shouldn't have permission to view them.
Misc
- Fragments have been removed fully
- Removed some unnecessary methods on
Former::listing
andFormer::image
- Replaced
Element->format()
withElement->value()
- Croppa helper methods on the base model removed in favor of new images feature
Admins can duplicate models
There is a new button in the actions bar on an edit page:
This uses the new Cloner package to duplicate the model you're viewing, including all child models, reforming many to many relations, and all files. After duplication, the success notification is a little different and "copy" gets automatically added to the title:
There is minimal work required of the developer to support this added functionality, read the docs for more info.
Elements
- Fix for boolean Elements
- Fix for Element ids after saving, useful when using model callbacks
- Updating Element collection values after save, useful when using model callbacks
Misc
- The
post_login_redirect
config can befalse
to go to first item in nav. Or it can be a callable. - Improving the removing and removed event arguments so they are the same as the attached and attaching events.
- Fix for Encoding progress check ajax calls
- Radios can be used in many to many checklists
- Prevent Redactor from using Decoy styles for headers, bold
Customizable permisssions
This feature was dev-ed for CID. Admins with the grant
permission can now customize the permissions defined in existing roles from the admin edit screen.
You can change the permission options shown in that UI by overriding the getPermissionOptions()
method from the base controller. This is how the Admins controller, for instance, presents the "Grant" option in place of "Publish." Elements are handled a little different where the user is presented with a list of all Element pages and they can control which pages other admins have access to. A user with access to an Element page can read and write to it.