Sen descrición

Andrej Hudec adc00621a5 Fixed list of available translations %!s(int64=12) %!d(string=hai) anos
Admin 984a6c32ff Fixed typos %!s(int64=12) %!d(string=hai) anos
Block c23e0ca311 Update Block/AdminListBlockService.php %!s(int64=13) %!d(string=hai) anos
Builder d0f8e2fda3 Distinct field building and adding action for ListBuilder. %!s(int64=13) %!d(string=hai) anos
Command 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
Controller 0ad1375f8b Fix unit test %!s(int64=12) %!d(string=hai) anos
Datagrid 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
DependencyInjection 4a3cec84f8 Fixed variable name %!s(int64=12) %!d(string=hai) anos
Exception 5b75b51303 Refactoring of NoValueException %!s(int64=13) %!d(string=hai) anos
Export 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
Filter fe11f07f77 fixed filtering on sub-entities for sf 2.1 %!s(int64=13) %!d(string=hai) anos
Form 29cae4cc88 Revert "Update FormProxy:add declaration" %!s(int64=12) %!d(string=hai) anos
Guesser 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
Model 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
Resources 4514bdf0c2 Fix check of route existence in top menu %!s(int64=12) %!d(string=hai) anos
Route bff64d2dff Fixed Symfony naming convetion break %!s(int64=12) %!d(string=hai) anos
Security 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
Show 83eb838e13 Add a safe option for template %!s(int64=12) %!d(string=hai) anos
Tests bff64d2dff Fixed Symfony naming convetion break %!s(int64=12) %!d(string=hai) anos
Translator 4c9bff8a46 Fix CS %!s(int64=13) %!d(string=hai) anos
Twig 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
Util 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
Validator 73d507571c some phpdoc fixes and improve code view %!s(int64=13) %!d(string=hai) anos
.gitignore 106e96a94d fixed merging bugs %!s(int64=13) %!d(string=hai) anos
.travis.yml 44006a5956 Update travis file %!s(int64=13) %!d(string=hai) anos
CHANGELOG.md 984a6c32ff Fixed typos %!s(int64=12) %!d(string=hai) anos
CREDITS 1f2459c1e8 restore famfam icon for legacy BC %!s(int64=12) %!d(string=hai) anos
LICENSE 1f2459c1e8 restore famfam icon for legacy BC %!s(int64=12) %!d(string=hai) anos
README.md adc00621a5 Fixed list of available translations %!s(int64=12) %!d(string=hai) anos
SonataAdminBundle.php 59285d5b29 Fix some CS %!s(int64=13) %!d(string=hai) anos
UPGRADE-2.1.md c8a1b417f2 revert back to KnpMenuBundle 1.1.* (ie. revert 33a7649afa51a009a8849de46e79cc600fc5dba3) %!s(int64=13) %!d(string=hai) anos
build.xml eab3965686 Update composer.json %!s(int64=12) %!d(string=hai) anos
composer.json 0513b90bba Add missing dependency %!s(int64=12) %!d(string=hai) anos
phpunit.xml.dist c30bd9426d Add build process for jenkins integration %!s(int64=13) %!d(string=hai) anos

README.md

SonataAdminBundle - The missing Symfony2 Admin Generator

Build Status

The online documentation of the bundle is in http://sonata-project.org/bundles/admin

The demo website can be found in http://demo.sonata-project.org/admin/dashboard (admin as user and password)

For contribution to the documentation you can find it on Resources/doc.

Warning: documentation files are not rendering correctly in Github (reStructuredText format) and some content might be broken or hidden, make sure to read raw files.

Warning: The bundle has been split into 4 bundles :

Google Groups: For questions and proposals you can post on this google groups

Quick example

Defining an Admin class is pretty easy: simply define configure[Show|Form|List|Datagrid]Fields methods

<?php
namespace Sonata\NewsBundle\Admin;

use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;

class PostAdmin extends Admin
{
    public function configureShowFields(ShowMapper $showMapper)
    {
        $showMapper
            ->add('author')
            ->add('enabled')
            ->add('title')
            ->add('abstract')
            ->add('content')
            ->add('tags')
        ;
    }

    public function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->with('General')
                ->add('enabled', null, array('required' => false))
                ->add('author', 'sonata_type_model', array(), array('edit' => 'list'))
                ->add('title')
                ->add('abstract')
                ->add('content')
            ->end()
            ->with('Tags')
                ->add('tags', 'sonata_type_model', array('expanded' => true))
            ->end()
            ->with('Options', array('collapsed' => true))
                ->add('commentsCloseAt')
                ->add('commentsEnabled', null, array('required' => false))
            ->end()
        ;
    }

    public function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('title')
            ->add('author')
            ->add('enabled')
            ->add('tags')
            ->add('commentsEnabled')
        ;
    }

    public function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
            ->add('title')
            ->add('enabled')
            ->add('tags', null, array('filter_field_options' => array('expanded' => true, 'multiple' => true)))
        ;
    }
}

Screenshots : http://www.dropbox.com/gallery/581816/2/BaseApplicationBundle/preview?h=59b2e8

Of course, power users will be happy as an Admin class is very flexible as all dependencies are injected by the DIC (dependency injection container).

Features

  • Dashboard

  • List

    • Automatic sort
    • Link to associated admin (Post => User)
    • Custom templates
    • Row Action : edit, view, ...
    • Batch Action
    • Clever row visualisation : boolean values are represented with 'check picture'
    • Filter
    • Pagination
  • Edit/Create

    • Inline edition
    • Association management (create related model with + icon)
    • Group fields
    • Sortable option
    • Modal window to select model (when the list can be important)
    • Dynamic form on [one|many]-to-many association (add new element)
  • Templating

    • base templates (field, list, filter) can be overwritten
    • layout templates can be defined into the Service Container
  • Others

    • Nested Admin, ie /news/post/5/comment/list : filter and create comments only for the post with id=5
    • Contextual Breadcrumb
    • persistent parameters across an Admin
    • side menu option
    • Translated into 22 languages : BG, CA, CS, DE, EN, ES, EU, FA, FR, HR, IT, JA, LB, NL, PL, PT, PT_BR, RU, SK, SL, UK and zh_CN.
    • Built to be extended
    • Explain command line utility

Usage examples

TODO

  • create the ODM version
  • save filter criteria
  • export list