Skip to content

Commit

Permalink
Merge pull request #4 from cjsewell/master
Browse files Browse the repository at this point in the history
Wrap fields in beforeUpdateCMSFields
  • Loading branch information
michelsteege committed Dec 6, 2019
2 parents 7798f63 + 44ef831 commit 4a7af8d
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 43 deletions.
38 changes: 19 additions & 19 deletions src/Model/Menu.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,25 +35,25 @@ class Menu extends DataObject implements TemplateGlobalProvider {
*/
public function getCMSFields()
{
$fields = parent::getCMSFields();

if($this->IsProtected()){
$this->beforeUpdateCMSFields(function($fields) {
if($this->IsProtected()){
$fields->dataFieldByName('Slug')->setReadonly(true);
}

$fields->removeByName('SubsiteID');
if(class_exists('SilverStripe\Subsites\Model\Subsite')){
$fields->push(new HiddenField('SubsiteID','SubsiteID', \SilverStripe\Subsites\State\SubsiteState::singleton()->getSubsiteId()));
}

$fields->removeByName('Items');
if($this->exists()){
$gridConfig = new GridFieldConfig_RecordEditor();
$gridConfig->addComponent(GridFieldOrderableRows::create());
$fields->addFieldToTab('Root.Main', GridField::create('Items', 'Items', $this->Items(), $gridConfig));
}

return $fields;
}

$fields->removeByName('SubsiteID');
if(class_exists('SilverStripe\Subsites\Model\Subsite')){
$fields->push(new HiddenField('SubsiteID','SubsiteID', \SilverStripe\Subsites\State\SubsiteState::singleton()->getSubsiteId()));
}

$fields->removeByName('Items');
if($this->exists()){
$gridConfig = new GridFieldConfig_RecordEditor();
$gridConfig->addComponent(GridFieldOrderableRows::create());
$fields->addFieldToTab('Root.Main', GridField::create('Items', 'Items', $this->Items(), $gridConfig));
}
});

return parent::getCMSFields();
}

/**
Expand Down Expand Up @@ -143,7 +143,7 @@ public function canDelete($member = null)
if (Permission::checkMember($member, 'CMS_ACCESS_TheWebmen\Menustructure\Admin\MenusAdmin')) {
return true;
}

return parent::canDelete($member);
}

Expand Down
48 changes: 24 additions & 24 deletions src/Model/MenuItem.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,30 +56,30 @@ class MenuItem extends DataObject {
*/
public function getCMSFields()
{
$fields = parent::getCMSFields();

$fields->removeByName('Sort');
$fields->removeByName('ParentItemID');
$fields->removeByName('MenuID');

$fields->replaceField('LinkType', DropdownField::create('LinkType', $this->fieldLabel('LinkType'), self::$link_types));
$fields->replaceField('LinkedPageID', $linkedPageWrapper = Wrapper::create(TreeDropdownField::create('LinkedPageID', $this->fieldLabel('LinkedPage'), SiteTree::class)));

$linkedPageWrapper->displayIf('LinkType')->isEqualTo('page');
$fields->dataFieldByName('Url')->displayIf('LinkType')->isEqualTo('url');
$fields->dataFieldByName('OpenInNewWindow')->hideIf('LinkType')->isEqualTo('no-link');

$fields->addFieldToTab('Root.Main', $fields->dataFieldByName('OpenInNewWindow'));
$fields->addFieldToTab('Root.Main', $fields->dataFieldByName('Image')->setFolderName('Menus')->setDescription('Optional image, can be used in some templates.'));

$fields->removeByName('Items');
if($this->exists()){
$gridConfig = new GridFieldConfig_RecordEditor();
$gridConfig->addComponent(GridFieldOrderableRows::create());
$fields->addFieldToTab('Root.Main', GridField::create('Items', 'Items', $this->Items(), $gridConfig));
}

return $fields;
$this->beforeUpdateCMSFields(function($fields) {
$fields->removeByName('Sort');
$fields->removeByName('ParentItemID');
$fields->removeByName('MenuID');

$fields->replaceField('LinkType', DropdownField::create('LinkType', $this->fieldLabel('LinkType'), self::$link_types));
$fields->replaceField('LinkedPageID', $linkedPageWrapper = Wrapper::create(TreeDropdownField::create('LinkedPageID', $this->fieldLabel('LinkedPage'), SiteTree::class)));

$linkedPageWrapper->displayIf('LinkType')->isEqualTo('page');
$fields->dataFieldByName('Url')->displayIf('LinkType')->isEqualTo('url');
$fields->dataFieldByName('OpenInNewWindow')->hideIf('LinkType')->isEqualTo('no-link');

$fields->addFieldToTab('Root.Main', $fields->dataFieldByName('OpenInNewWindow'));
$fields->addFieldToTab('Root.Main', $fields->dataFieldByName('Image')->setFolderName('Menus')->setDescription('Optional image, can be used in some templates.'));

$fields->removeByName('Items');
if($this->exists()){
$gridConfig = new GridFieldConfig_RecordEditor();
$gridConfig->addComponent(GridFieldOrderableRows::create());
$fields->addFieldToTab('Root.Main', GridField::create('Items', 'Items', $this->Items(), $gridConfig));
}
});

return parent::getCMSFields();
}

/**
Expand Down

0 comments on commit 4a7af8d

Please sign in to comment.