diff --git a/app/config/config.yml b/app/config/config.yml index be86ab5..5faad24 100755 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -118,6 +118,11 @@ services: tags: - { name: sonata.admin, manager_type: orm, group: protalk_media, label: Rating } arguments: [null, Protalk\MediaBundle\Entity\Rating, null] + protalk.media.admin.page: + class: Protalk\AdminBundle\Admin\PageAdmin + tags: + - { name: sonata.admin, manager_type: orm, group: protalk_media, label: Page } + arguments: [null, Protalk\PageBundle\Entity\Page, null] fos_user: db_driver: orm diff --git a/src/Protalk/AdminBundle/Admin/PageAdmin.php b/src/Protalk/AdminBundle/Admin/PageAdmin.php new file mode 100644 index 0000000..1a9f63c --- /dev/null +++ b/src/Protalk/AdminBundle/Admin/PageAdmin.php @@ -0,0 +1,47 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Protalk\AdminBundle\Admin; + +use Sonata\AdminBundle\Admin\Admin; +use Sonata\AdminBundle\Datagrid\ListMapper; +use Sonata\AdminBundle\Datagrid\DatagridMapper; +use Sonata\AdminBundle\Validator\ErrorElement; +use Sonata\AdminBundle\Form\FormMapper; + +class PageAdmin extends Admin +{ + protected function configureFormFields(FormMapper $formMapper) + { + $formMapper->add('url')->add('pageTitle')->add('title')->add('content'); + } + + protected function configureDatagridFilters(DatagridMapper $datagridMapper) + { + $datagridMapper->add('pageTitle'); + } + + protected function configureListFields(ListMapper $listMapper) + { + $listMapper->addIdentifier('title')->add('url'); + } + + public function validate(ErrorElement $errorElement, $object) + { + $errorElement + ->with('pageTitle') + ->assertMaxLength(array('limit' => 100)) + ->end() + ->with('url') + ->assertMaxLength(array('limit' => 100)) + ->end(); + } +} diff --git a/src/Protalk/AdminBundle/Admin/TagAdmin.php b/src/Protalk/AdminBundle/Admin/TagAdmin.php index 5c51b62..86e0a1b 100755 --- a/src/Protalk/AdminBundle/Admin/TagAdmin.php +++ b/src/Protalk/AdminBundle/Admin/TagAdmin.php @@ -21,21 +21,24 @@ class TagAdmin extends Admin { protected function configureFormFields(FormMapper $formMapper) { - $formMapper->add('name'); + $formMapper->add('name')->add('slug'); } protected function configureDatagridFilters(DatagridMapper $datagridMapper) { - $datagridMapper->add('name'); + $datagridMapper->add('name')->add('slug'); } protected function configureListFields(ListMapper $listMapper) { - $listMapper->addIdentifier('name'); + $listMapper->addIdentifier('name')->add('slug'); } public function validate(ErrorElement $errorElement, $object) { - $errorElement->with('name')->assertMaxLength(array('limit' => 50))->end(); + $errorElement + ->with('name') + ->assertMaxLength(array('limit' => 50)) + ->end(); } -} \ No newline at end of file +} diff --git a/src/Protalk/MediaBundle/Entity/Tag.php b/src/Protalk/MediaBundle/Entity/Tag.php index bfabca4..821daf6 100755 --- a/src/Protalk/MediaBundle/Entity/Tag.php +++ b/src/Protalk/MediaBundle/Entity/Tag.php @@ -136,12 +136,21 @@ public function setSlug($slug) $this->slug = $slug; } + /* + * Maps to getSlugFields() + * + * Exists because the backend makes a call to getSlug() + * when creating/updating tags. + */ + public function getSlug() { + return $this->getSlugFields(); + } + /* * Get slug fields * * @return string */ - public function getSlugFields() { return $this->getName(); } @@ -151,11 +160,10 @@ public function getSlugFields() { */ public function updateSlug() { - - $slugger = new Slugger(); + $slugger = new Slugger(' ', ','); $slug = $slugger->getSlug($this->getSlugFields()); return $this->setSlug($slug); } -} \ No newline at end of file +}