Mod - code review outputs + unit tests
This commit is contained in:
parent
6f5a960620
commit
fc57ae52f2
|
@ -1,5 +1,4 @@
|
|||
SiteTree:
|
||||
content_review_gridfield_threshold: 500
|
||||
extensions:
|
||||
- SiteTreeContentReview
|
||||
Group:
|
||||
|
@ -15,5 +14,6 @@ CMSPageSettingsController:
|
|||
extensions:
|
||||
- ContentReviewCMSExtension
|
||||
SiteConfig:
|
||||
content_review_gridfield_threshold: 2000
|
||||
extensions:
|
||||
- ContentReviewDefaultSettings
|
|
@ -51,6 +51,15 @@ class ContentReviewDefaultSettings extends DataExtension
|
|||
*/
|
||||
private static $content_review_template = 'ContentReviewEmail';
|
||||
|
||||
/**
|
||||
* The number of members in which the dropdown will morph into a gridfield
|
||||
*
|
||||
* @config
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
private static $content_review_gridfield_threshold = 500;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
|
@ -120,19 +129,18 @@ class ContentReviewDefaultSettings extends DataExtension
|
|||
$usersMap = $users->map('ID', 'Title')->toArray();
|
||||
asort($usersMap);
|
||||
|
||||
$userField = ListboxField::create('OwnerUsers', _t('ContentReview.PAGEOWNERUSERS', 'Users'), $usersMap)
|
||||
->setMultiple(true)
|
||||
->setAttribute('data-placeholder', _t('ContentReview.ADDUSERS', 'Add users'))
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
|
||||
|
||||
if(Member::get()->count() > Config::inst()->get('SiteTree', 'content_review_gridfield_threshold')) {
|
||||
$gridfieldconfig = GridFieldConfig_RelationEditor::create();
|
||||
$gridfieldconfig->removeComponentsByType(new GridFieldAddNewButton());
|
||||
$userField = GridField::create('OwnerUsers', _t("ContentReview.PAGEOWNERUSERS", "Users"),
|
||||
$this->OwnerUsers()->Sort('FirstName'), $gridfieldconfig)
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
}
|
||||
if(Member::get()->count() > Config::inst()->get('SiteConfig', 'content_review_gridfield_threshold')) {
|
||||
$gridfieldconfig = GridFieldConfig_RelationEditor::create();
|
||||
$gridfieldconfig->removeComponentsByType(new GridFieldAddNewButton());
|
||||
$userField = GridField::create('OwnerUsers', _t("ContentReview.PAGEOWNERUSERS", "Users"),
|
||||
$this->OwnerUsers()->Sort('FirstName'), $gridfieldconfig)
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
} else {
|
||||
$userField = ListboxField::create('OwnerUsers', _t('ContentReview.PAGEOWNERUSERS', 'Users'), $usersMap)
|
||||
->setMultiple(true)
|
||||
->setAttribute('data-placeholder', _t('ContentReview.ADDUSERS', 'Add users'))
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
}
|
||||
|
||||
$fields->addFieldToTab('Root.ContentReview', $userField);
|
||||
|
||||
|
|
|
@ -347,20 +347,21 @@ class SiteTreeContentReview extends DataExtension implements PermissionProvider
|
|||
$users = Permission::get_members_by_permission(array("CMS_ACCESS_CMSMain", "ADMIN"));
|
||||
$usersMap = $users->map("ID", "Title")->toArray();
|
||||
asort($usersMap);
|
||||
$userField = ListboxField::create("OwnerUsers", _t("ContentReview.PAGEOWNERUSERS", "Users"), $usersMap)
|
||||
->setMultiple(true)
|
||||
->addExtraClass('custom-setting')
|
||||
->setAttribute("data-placeholder", _t("ContentReview.ADDUSERS", "Add users"))
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
|
||||
if(Member::get()->count() > Config::inst()->get('SiteTree', 'content_review_gridfield_threshold')) {
|
||||
// grid field for large numbers of users
|
||||
$gridfieldconfig = GridFieldConfig_RelationEditor::create();
|
||||
$gridfieldconfig->removeComponentsByType(new GridFieldAddNewButton());
|
||||
$userField = GridField::create('OwnerUsers', _t("ContentReview.PAGEOWNERUSERS", "Users"),
|
||||
$this->OwnerUsers(), $gridfieldconfig)
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
}
|
||||
if(Member::get()->count() > Config::inst()->get('SiteConfig', 'content_review_gridfield_threshold')) {
|
||||
// grid field for large numbers of users
|
||||
$gridfieldconfig = GridFieldConfig_RelationEditor::create();
|
||||
$gridfieldconfig->removeComponentsByType(new GridFieldAddNewButton());
|
||||
$userField = GridField::create('OwnerUsers', _t("ContentReview.PAGEOWNERUSERS", "Users"),
|
||||
$this->OwnerUsers(), $gridfieldconfig)
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
} else {
|
||||
$userField = ListboxField::create("OwnerUsers", _t("ContentReview.PAGEOWNERUSERS", "Users"), $usersMap)
|
||||
->setMultiple(true)
|
||||
->addExtraClass('custom-setting')
|
||||
->setAttribute("data-placeholder", _t("ContentReview.ADDUSERS", "Add users"))
|
||||
->setDescription(_t('ContentReview.OWNERUSERSDESCRIPTION', 'Page owners that are responsible for reviews'));
|
||||
}
|
||||
|
||||
|
||||
$groupsMap = array();
|
||||
|
|
|
@ -334,4 +334,34 @@ class SiteTreeContentReviewTest extends ContentReviewBaseTest
|
|||
|
||||
SS_Datetime::clear_mock_now();
|
||||
}
|
||||
public function testSiteSettingsFieldsListBox()
|
||||
{
|
||||
$author = $this->objFromFixture("Member", "editor");
|
||||
|
||||
$this->logInAs($author);
|
||||
|
||||
/** @var Page|SiteTreeContentReview $page */
|
||||
$page = $this->objFromFixture("Page", "contact");
|
||||
|
||||
$fields = $page->getSettingsFields();
|
||||
|
||||
$this->assertTrue($fields->dataFieldByName('OwnerUsers') instanceof ListboxField);
|
||||
}
|
||||
|
||||
public function testSiteSettingsFieldsGridfield()
|
||||
{
|
||||
$author = $this->objFromFixture("Member", "editor");
|
||||
|
||||
$this->logInAs($author);
|
||||
|
||||
/** @var Page|SiteTreeContentReview $page */
|
||||
$page = $this->objFromFixture("Page", "contact");
|
||||
|
||||
// update the minimum threshhold to change to gridfield
|
||||
Config::inst()->update('SiteConfig', 'content_review_gridfield_threshold', 1);
|
||||
|
||||
$fields = $page->getSettingsFields();
|
||||
|
||||
$this->assertTrue($fields->dataFieldByName('OwnerUsers') instanceof GridField);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue