All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
3.35.2 - 2018-05-05
- Fixed route generation with parameter for on_top menu items
- Fixed custom group permission for menu items
3.35.1 - 2018-04-20
- Edit on list is fixed for choices not related to an entity
3.35.0 - 2018-04-16
- Admin can now have multiple parents
AbstractAdmin::addChild
now accepts 2nd parameter with parent name
3.34.2 - 2018-04-11
- Editing child admin that does not belong to a given parent
- Regression for child form type rendering
- Fixed a BC break where an overwritten
getTemplate()
method in anAdmin
was no longer called by Sonata. - Not working persist_filter option for legacy admin property.
3.34.1 - 2018-04-09
- Fix regression on #5051: It is possible again to know which button triggered the submit of the form.
3.34.0 - 2018-04-09
- Added some
Sonata\AdminBundle\Filter\Persister\FilterPersisterInterface
to externalise filter persistence to a dedicated class - Added some
Sonata\AdminBundle\Filter\Persister\SessionFilterPersister
to store filters to session (as done now) - Added
TemplateRegistry
,TemplateRegistryInterface
andMutableTemplateRegistryInterface
to handle all template registration related functionality from bothAbstractAdmin
andPool
. - Added
required
option to editable listchoice
- Added
search
option to enable/disable the search form in the sidebar
- Changed
Sonata\AdminBundle\Admin\AbstractAdmin::getFilterParameters
to use the configured filter persister component - Reordered bootstrap.js javascript dependency fixes problems with jQuery UI dialogs
side_bar_after_nav_content
block is now empty by default
- Deprecated
AbstractAdmin
methodsgetTemplate
andgetTemplates
. - Deprecated
AbstractAdmin
attribute$templates
. - Deprecated
Pool
methodsgetTemplate
,setTemplates
andgetTemplates
. - Deprecated
Pool
attribute$templates
. - Deprecated Twig function
get_pool_template
.
- if object is empty, don't try to create an edit route
- Fix edit choice with a relation field on admin list
- Added missing french translation for
Toggle Navigation
- Explain command compatible with sf4
- Fixed deprecation notice when Pool is injected in service through autowiring
ChoiceFieldMaskType
now works on inline table collections- Navbar positioning on mobile is no longer altered like in desktop
- Increase consistency on default page sizes (replaced 192 by 256)
- Disable form submit buttons when the form gets submitted
- form types FQCN are now used in filter. Improves compatibility with SF3/4
- Not working sidebar menu tree with AdminLTE v2.4
3.33.0 - 2018-03-12
- Replaced calls to Twig internal
Environment::loadTemplate()
method withEnvironment::load()
inSonataAdminExtension
.
- Deprecated
SonataAdminExtension::output()
. Now using the privaterender()
method. Please use therender*()
methods instead.
FieldDescription
null check missing inModelAutocompleteFilter
- Fatal error in strict mode
- Avoid calling protected/private methods when retrieving values from entities
getFieldValue
fromBaseFieldDescription
can now handle getting a value from null objects.base_list
template includes the configurablebutton_create
template rather than the defaultcreate_button.html.twig
.
3.32.0 - 2018-02-28
- Allow capturing of any link click inside of modal
- batch checkbox is hidden when using the mosaic view in modal
- whole mosaic item is now wrapped in a tag instead of just title
- Make search result page less heavy
ModelAutocompleteType
can now be used without a linked admin class- Compatibility with edit relation on list with PHPCR and MongoDB Sonata bundles
- fix behaviour of
AbstractAdmin::preValidate
by relying on form event listener - Admins without global search filters will no longer be shown in the global search.
- including wrong javascript code for associations modals
- Fixed PHP warnings when
ChoiceFieldMaskType
optionmap
is invalid or empty - Fixed javascript handling of
ChoiceFieldMaskType
when optionexpanded
istrue
- Templates that rely on the
admin
variable in Twig can now use theget_admin_template
function correctly.
3.31.1 - 2018-02-08
- Missing
getOwnerPermissions
toAdminObjectAclData
- Switch all templates references to Twig namespaced syntax
- Switch from templating service to sonata.templating
- Not found issues for some locales which are not present in frontend dependencies like
moment
orselect2
- Only do
$filter->apply
if the filter is "active" on the datagrid list - Only do
$filter->apply
if the filter has a value that is not empty string - Error if the field in filter list is named
children
- Use FQCN form types for ACL form creation
- Fixed missing translation for
Toggle navigation
3.31.0 - 2018-01-23
- Added new
safe_label
option to allow HTML pass-through on autocomplete form type - Added filter counter to admin lists
- template paths to adapt to the convention
- Replace twig paths with new naming conventions
request
attribute deprecation onknp_menu.voter
- Added path to cookies when hiding sidebar to avoid creating multiple cookies
- Nested arrays will show properly on show/list fields
- path to dashboard
- ModelHiddenType - default hidden attribute is now set to true
- Fix bug when we pass null as fieldName to BaseFieldDescriptor::getFieldValue
3.30.1 - 2018-01-02
- Make explicit dependency with
symfony/asset
- Admin and filter services are shared
3.30.0 - 2017-12-25
- Menu on the left side stays hidden while changing pages.
AbstractAdmin::addSubClass()
- Checking for fixed class on body before adjusting the position of the content div
- Fixed container compile error, if JMSDiExtraBundle is enabled.
- Fixed twig dependency for sonata.admin.controller.admin service
3.29.0 - 2017-12-16
- Added edit button functionality
- Added possibility to add and remove javascripts/stylesheets without adding all defaults again
- added missing Dutch translations
- Services tagged with
sonata.admin
andsonata.admin.filter.type
are now public - Improvements on
AbstractAdmin::getClass()
method
- Fixed calling route generator with boolean value
- Replace FQCN strings with
::class
constants - Add trans filter to form_group and form_tab description
- added Turkish translations
- don't display fields that are missing in child classes
- Patched collection form handling script to maintain File input state when new items are added to collections
- exporter-related error during cache:clear command.
- added missing italian translations
3.28.0 - 2017-11-30
- Added
CRUDController::redirectToList
method for all list redirections - added Russian translations
- Handle empty id list in
CRUDController::batchAction
- All services without a declared visibility are now public
- It is now allowed to install Symfony 4
- Updated
src/Resources/views/standard_layout.html.twig
template in order to remove whitespace rendering before HTML DOCTYPE declaration. - interference with other bundles
- using the
ChildrenVoter
class - using the
sonata.admin.menu.matcher.voter.children
service
- Fixed XSS vulnerability in autocomplete form type
3.27.0 - 2017-11-26
- Added some Japanese messages
- Added
CRUDController::renderWithExtraParams
as a replacement for therender
method
- Deprecated
CRUDController::render
- Problem with FormRenderer not having environment causing that inline collection was unusable on SF 3.4
- Deprecation warning for overriding
Controller::render
which is supposed to be final
3.26.0 - 2017-11-22
- Add html tag attributes support for sonata_type_model_autocomplete form type
- Added edit button that opens in dialog instead of add if there is object already in sonata type model list
- check if the field is used to sort the list
- Add a check for existing var associationadmin which is null for filter
- Fixed
AbstractAdmin::getSubject()
behavior whenid
parameter is not specified - Add alias on
ChoiceType
uses to avoid collisions on Form filter classes - BC-break in
CRUDController::render()
- Old usage of read_only var
3.25.1 - 2017-11-20
- Wrong configuration for
DateTimeType
andDateType
filters
3.25.0 - 2017-11-19
- Ability to configure sonata main admin and super admin roles under the
security
configuration key - Added
translation_domain
key toAdminStatsBlockService
to change or disable translation - Add support for
add
button insonata_type_model_autocomplete
- Changed internal folder structure to
src
,tests
anddocs
- a condition to check if the navbar is to be displayed
- subject assignment in embedded admins
- fixed choice_translation_domain for expanded choices in admin
- make false translation_domain working for the label if no translation is needed
- Removed overridden method
CRUDController::addFlash
which is final in SF 3.4. - Don't translate empty placeholder on form render
- Register commands as services to prevent deprecation notices on Symfony 3.4
AbstractAdmin::hasSubject
is now populatingAbstractAdmin::$subject
property- Deprecation about
Symfony\Component\DependencyInjection\DefinitionDecorator
- getRuntime now receives a non deprecated runtime
- Fix for getRuntime on Symfony older than 3.4
- displaying a title when there are no specific actions
3.24.0 - 2017-10-23
- Add support for unlimited nested child admins.
Sonata\AdminBundle\Admin\AdminInterface
was split into smaller interfaces.
AdminInterface::$baseCodeRoute
andAdminInterface::setBaseCodeRoute(...)
.
- Fixed missing space when form class is defined in label_attr
- Fix duplicate DB queries on empty results.
- Fixed sticky navbar when top navbar height changes
- Fix missing flash message translations
- naming conflict with
UrlGeneratorInterface
- Print of
sonata_help
for form subfields - Error class for
sonata_type_immutable_array
form group - Fixed the BaseFieldDescription class to also support 'has' prefixed getter methods for boolean properties on entities (besides the 'is' prefixed getters)
- Always apply "global_search.empty_boxes" setting to never searched admins
- Fixed a typo in CSS classes in
block_search_result.html.twig
- Fixed autocomplete for cases when admin code uses service id and service id is equal to FQCN ('AppBundle\Admin\CompanyAdmin')
- Bad result when
Pool::getAdminByAdminCode()
was called with an invalid child path.
- Support for old versions of PHP and Symfony.
3.23.0 - 2017-09-01
- Reference %sonata.admin.configuration.templates% when possible
- Added a
priority
option insonata_admin
extensions config
- Passing object id in edit form from CRUD controller instead of getting it in twig
- Fixed the setting of the
translation_domain
twig variable. The value must change depending if the item has on_top set to true or false. - Escaping of list headers.
- setting the column title
- Fixed deprecation when using checkbox in admin form type
- Fix knp menu extra configuration for domain translations in Group Menu
- Not declared variable trowing errors on some browsers
- Useless IE8 compatibility code
3.22.0 - 2017-08-19
- Added option to inverse background for boolean fields in list and show actions
- Run the Select2 code for autocomplete form type at onload event
- Fixed AbstractAdmin::getSubject on admins with parentFieldDescription
- Fixed deprecation when using hidden form type in model autocomplete
- Fixed the extra option being retrieved. The translation catalogue to be used is inside the label_catalogue option, not translation_domain.
- setting the column title
- Html tags do not appear in the meta title
3.21.0 - 2017-08-14
- Allow label icon on CRUD list table headers.
- Allow to disable label on CRUD list table heades.
- multidimensional arrays support in show array
- inline option in list array
- Added checkbox range selection with shift + click
- Added the persistence independent association templates
- Added Latvian translation of the bundle
- Check for
ChildDefinition
instance when possible instead ofDefinitionDecorator
which got deprecated on Symfony 3.3
ModelChoiceList
in favor ofModelChoiceLoader
- Fixes potentially wrong scheme in the sidebar urls by using relative urls
- Fixed choice field mask type javascript in the twig templates to works with immutable array form types
ServiceManipulator
now addspublic: true
to service declaration by default- Fixed deprecation for Sf 3. support
- Sidebar menu elements are active when the current route is a child admin.
- Take admin annotation id into account
3.20.1 - 2017-06-27
- Fixed undefined
view_group
variable in show template - Fixed compatibility with Symfony's IdentityTranslator when translator is disabled
3.20.0 - 2017-06-22
- Group and tabs translations
- Deprecation notices related to
addClassesToCompile
3.19.0 - 2017-06-12
- compatibility with immutable entities was improved
- Show icon for nav items when using
on_top
option - use generated route instead of plain route in nav items
- it is no longer possible to get core bundle versions incompatible with sf3
- Missing admin-lte image file
- forms with a required autocomplete ajax field can be submitted again
3.18.2 - 2017-05-15
- Selected values issue with Select2 v4 on model autocomplete type
3.18.1 - 2017-05-12
- Fixed select2 width calculation when using select2 v4
- Compatibility with Select2 v4 on model autocomplete type
3.18.0 - 2017-05-09
- Added new configuration parameter named
empty_boxes
with 3 variable: show, hide, fade
- Undefined admin action error on
ModelAutocompleteFilter
- added missing italian translations
- deprecations when using
sonata.admin.form.type.model_list
3.17.0 - 2017-04-25
- Added editable support for association fields from type choice in
ListMapper
- Added also new
class
option for field description - Translation can now be disabled on specific form fields
- Changed GroupMenuProvider::get to setDisplay(false) on menuItem if on_top used and no items could be displayed
- Fixed the bug that caused an error "The helper "dialog" is not defined." on Symfony3 with new
\Sensio\Bundle\GeneratorBundle\Command\Helper\QuestionHelper
when you run command "sonata:admin:generate-object-acl". - Fixed issue on getExtendedType of MopaCompatibilityTypeFieldExtension and ChoiceTypeExtension because the method requires to return the fully-qualified class name (FQCN) since symfony version 2.8
ModelType
have choices as values by default now on SF 2.7+.- Users without the
LIST
role can access the autocomplete items by configuring thetarget_admin_access_action
option - Non existent
isSuperior
key onFormView
error
- recently introduced checkbox-disabling feature, which was not stable enough
3.16.0 - 2017-03-31
- Added
onTop
parameter on@Admin
annotation - Added new
keep_open
option to keep menu group always open
field_description
comparison inbase_list_field.html.twig
3.15.1 - 2017-03-28
- Added Brazilian Portuguese translation of
title_show
- change show picto on list view to use the same than in edit view
- do not double
FieldDescription::Name
andproperty_path
inAdminType
3.15.0 - 2017-03-27
- Add polish translation of
title_show
- Added the ability to leave the label of a show field empty by passing
label => false
toShowMapper::add()
- Make sure Moment.js translations work for every locale
- The
sonata/exporter
constraint has been bumped to^1.7
- Sanitize masked fields in
ChoiceFieldMaskType
- Whitespaces are not taken into account when rendering blocks on
standard_layout
- fixed boolean handling for
xEditableType
3.14.0 - 2017-03-16
- Added
label
andtranslation_domain
fallback for batch actions - Config option to disable autoregistration of annotations with
JMSDiExtraBundle
- Added missing titles to the CRUD show page.
- Added
attributes
parameter forurl
field type - Added a missing variable placeholder to a translation unit.
- Missing title for nested admin
- Setting data form on update form field element by using
sonata_type_model
- deprecation notices that could not be avoided in the
CoreController
class - Fix #4292: don't overwrite
JMSDiExtraBundle
default configuration - Fixed markup on list on Admin with subclasses
- x-editable choices are now correctly translated
- Default translation of Base Breadcrumb
Dashboard
- Remove duplicated breadcrumb on admin list
- Breadcrumb without link are now displayed correctly
- Unified styles between admins with subclasses and admins without subclasses
- name of permission, use
VIEW
instead ofSHOW
- Handling of boolean types in
HelperController
- use
hasAccess
instead ofisGranted
- better readability of exception message when too many admins are registered
- Improve Catalan and Spanish translations
- Fixed inconsistent translation placeholder quoting.
- Batch action breaks when coming from list view with filter using
doctrine_orm_model_autocomplete
- Fixed non-existent variable
action
inbase_list_field.html.twig
- The export and list actions now integrate the sonata exporter bundle
- Changed
ActiveVoter
andChildrenVoter
to only work with menu items having theSonataAdminBundle
extra set. - Updated AdminLTE to 2.3.11
- Removed non FQCNs on form types on
AbstractAdmin
- When checking the delete checkbox of an inline child form of
CollectionType
the related fields are now disabled to avoid preventing submission of the form when one of those inputs is required. - Updated Luxembourgish translations
- Changed inconsistent translation unit name.
- Replaced
isGranted()
byhasAccess()
orcheckAccess()
- Exporter class and service : use equivalents from
sonata-project/exporter
instead. - auto registration of
JMSDiExtraBundle
annotations is now discouraged in favor of doing it manually
3.13.0 - 2017-02-03
- Added support for priority attribute in the Extension compiler pass
- Compatibility of ajax actions with Twig 2.0
3.12.0 - 2017-01-31
- Compatibility with Twig 2.0
--services
default-value to null inSonata\AdminBundle\Command\GenerateAdminCommand
ModelToArrayTransformer::$choiceList
propertyModelToArrayTransformer::$choiceList::__construct()
three-argument-signature is deprecated
- "Silent display of undefined block" Twig deprecation
- Twig deprecation notice when using template inheritance to get a macro
- The
request
parameter is passed to custom batch actions.
3.11.0 - 2017-01-17
- Extract admin group and label translations
- JQuery event trigger to Admin.setup_list_modal()
- Updated compiler pass to support parent definition when using abstract service for admin.
- Fixed behaviour of persistent parameters in list editables
- JMSDiExtraBundle is configured correctly to pick up Sonata annotations.
3.10.3 - 2016-12-22
- A bug with the side menu arrow position
- Display correct name of group uses default translation domain
- A Twig deprecation added in Twig 1.28.0
- A Sonata deprecation called by Sonata itself by adding a way to disable it when called internally
3.10.2 - 2016-12-15
- Filter form theme was used for create and edit forms too.
3.10.1 - 2016-12-13
- Fix compatibility with Symfony 3.2 form renderer.
- Fix permissions when setting role for the security handler
- Translation in twig templates uses the twig translation filter
3.10.0 - 2016-11-25
- Added new
roles
configuration field to configuration of menu item routes. - Improved class support for filter factory
- Add a length option to truncate columns on list view
- Update adminLTE dependency to 2.3.6
- Use block instead of macro to render show groups
- Fixed missing access check for menu route items.
- Fixed
trigger_error
calls -E_USER_DEPRECATED
was concatenated to the sentence, not passed as argument - Deep arrays can now be displayed without error, and recursively
- Fixed bug in revisions compare view
- Deprecated
base_show_macro.html.twig
3.9.0 - 2016-10-06
- Added
CRUDController::trans
method
- Translation in twig templates uses the twig translation filter
- Deprecated
AdminInterface::trans
method - Deprecated
AbstractAdmin::$translator
property - Deprecated
AbstractAdmin::trans
method - Deprecated
AbstractAdmin::transChoice
method - Deprecated
AbstractAdmin::getTranslator
method - Deprecated
AbstractAdmin::setTranslator
method
- Fixed missing default
translationDomain
- Fixed deprecated
BaseBlockService
usage
3.8.0 - 2016-09-20
- Added three new sub-blocks to standard_layouts javascript block
- Moved the raw references of buttons templates from
Admin\AbstractAdmin
to configuration options
3.7.1 - 2016-09-13
- The
ALL
role needs to be checked separately, otherwise theAuthorizationChecker
returnfalse
all the time. - Added
var
keyword to explicitly define the "showMaskChoiceEl" variable
3.7.0 - 2016-09-07
- Added additional
_ALL
role check toRolesecurityHandler
- Improve accessibility by adding
aria-hidden="true"
- Set
choices_as_values
totrue
on choice type based to be compatible with Symfony 3 - Use class name when referencing
Form Type
to be compatible with Symfony 2.8+ - Remove
Sonata\CoreBundle\Exporter\Exporter
from classes to compile to cache to avoid deprecation warning
- The admin no longer checks for the
translator
service before translating.
3.6.0 - 2016-09-01
- Added new methods to set default values for the list view
- Auto-detect type when adding
FormBuilderInterface
toFormMapper
- Type for
Filter
to be compatible with Symfony 2.8+ - Type for
Filter Operator
to be compatible with Symfony 2.8+
3.5.0 - 2016-08-29
- Export fields names are now translated
- Added PL translations
- Configuration to change the default route used to generate the link to the parent object inside a breadcrumb, when in a child admin
- Docs for this configuration
- Twig blocks to simplify the template override.
- Added test for
AdminBundle\Menu\Matcher\Voter\ChildrenVoter
- Added class name support for
AbstractAdmin::configureDatagridFilters
- Added
ShowMapper::removeGroup
method
- Changed css
margin-left: -20px
of checkbox. - Updated spanish batch confirmation message translation.
- Changed injection of
$container
to$adminPool
inTwig/GlobalVariables
- use
RuntimeException
instead of non existingRunTimeException
AbstractAdmin::setSubject
in order to check that given$subject
matches registered admin class entity.- Added the action name to title_batch_confirmation translation.
- Added the object name to message_delete_confirmation translation.
- Added the action name to title_batch_confirmation translation.
- Move actions buttons display logic from templates to
AbstractAdmin::configureActionButtons
- Moved translation of breadcrumbs to twig template
- Moved translation of batch action_label to twig template
- Move actions buttons display logic from templates to
AbstractAdmin::configureActionButtons
- Widget tests should extend
AbstractWidgetTestCase
- The
$container
property inTwig/GlobalVariables
- The "batch" checkbox at the top of the list would not work when iCheck is disabled.
- Not working
read_only
option on Twig with Symfony 3 - Fixed PT-BR translations
- XSS Vulnerability in breadcrumbs
- Handle Symfony BC for Datagrid hidden types
- Fixed duplicate translation for list filters
- Fixed visibility of block
sonata_top_nav_menu
contents - Fix how metadata information are retrieved when admin information are dumped
- Symfony 3 support in
AclMatrixType
- Symfony 3 type support in
AclMatrixType
- Fixed translation in browser titles breadcrumb
- Fixed translation of entities in breadcrumb
- Standardize the global form error
- Internal test classes are now excluded from the autoloader
- Removed unnecessary security checks in
standard_layout.html.twig
3.4.0 - 2016-07-05
- Support for select2 v4 (
select2.full.js
file is needed)
- The
Sonata\AdminBundle\Form\Type\ModelTypeList
is deprecated forModelListType
- Ignoring
translation_domain
in tab menu
- Removed useless
ModelAutocompleteType::getParent
override - Removed useless
read_only
option definition fromModelAutocompleteType
3.3.2 - 2016-06-23
- Reverted #3961 to fix a regression concerning child admins on edit route
3.3.1 - 2016-06-17
- Fixes broken extractor service
- Make CRUDController::editAction respect optional parameter
- Not aligned checkbox and radio on horizontal form
3.3.0 - 2016-06-13
- The
Select
button is always visible and has a primary check style insonata_type_model_list
popups
- The
$context
argument ofAdminInterface::createQuery
was deprecated
- Fix wrong view role check on
AbstractAdmin::getSearchResultLink
- Eternal deprecation warning because of old class on compilation
3.2.0 - 2016-06-04
- Added new field type
email
on the list - Added
AbstractAdmin::configureBatchActions
method - Extract the breadcrumbs building part of the
AbstractAdmin
to a separate class - Added
AbstractAdmin::getSearchResultLink
method - Add the
AbstractAdmin::showMosaicButton
method - Add the
show_mosaic_button
option to configuration
- Overriding
AbstractAdmin::configureBatchActions
is now deprecated AbstractAdmin::getBreadcrumbs
is deprecated in favor ofBreadcrumbsBuilder::getBreadcrumbs
AbstractAdmin::buildBreadcrumbs
is deprecatedAbstractAdmin::$breadcrumbs
is deprecated
- Fix support for composite primary key in
AbstractAdmin::getSubject
- Fixed wrong route in
list__select.html.twig
- Fixed wrong method call in
list__select.html.twig
- Fixed
Pool::getAdminsByGroup()
for the new admin groups values
3.1.0 - 2016-05-17
- Added
AbstractAdmin
class, replacingAdmin
one - Added
BaseMapper::keys
method
- Updated AdminLTE theme to version 2.3.3
RouteCollection::clearExcept
can now have a single string argument
- Deprecated
BaseFieldDescription::camelize
- Deprecated
AdminHelper::camelize
- Deprecated
Admin
class - Deprecated
AdminExtension
class - Deprecated default template loading on exception mechanism
- Fix detection of path when using nested properties with underscores in
AdminHelper:getElementAccessPath
method - Fixed bad rendering on datetime field with
single_text
widget for date and time - Fixed rendering of empty form groups
3.0.0 - 2016-05-08
- Add missing Route constructor parameters to
RouteCollection:add
method - Add the
hasRoute
method to the AdminInterface - Integration of KNPMenu for the admin menu. This integration is reset when the standard layout
standard_layout.html.twig
is overriden. The KNPMenu is available insonata_menu.html.twig
template. - Add
getFieldOption
,setFieldOption
methods to the FilterInterface - Add the
getFilterFieldDescription
method to the AdminInterface - Add the
getMaxPageLinks
,setMaxPageLinks
methods to the PagerInterface
- Admin LTE 2.0 used. Assets files changed.
- Move
sonata_wrapper
block onstandard_layout.html.twig
- CSS class
sonata-autocomplete-dropdown-item
is not automatically added to dropdown autocomplete item insonata_type_model_autocomplete
, use optiondropdown_item_css_class
to set the CSS class of dropdown item. - Text from
Admin::toString
method is escaped for html output before adding in flash message to prevent possible XSS vulnerability.
- Remove
btn-outline
from doctrine-orm-admin form actions buttons