mirror of
https://github.com/silverstripe/silverstripe-userforms.git
synced 2024-10-22 15:05:42 +00:00
Merge branch '4.0' into 4.1
This commit is contained in:
commit
a5c8fac64f
@ -27,7 +27,9 @@ before_script:
|
||||
|
||||
script:
|
||||
- vendor/bin/phpunit --coverage-clover coverage.clover userforms/tests
|
||||
|
||||
after_script:
|
||||
- mv coverage.clover ~/build/$TRAVIS_REPO_SLUG/
|
||||
- cd ~/build/$TRAVIS_REPO_SLUG
|
||||
- wget https://scrutinizer-ci.com/ocular.phar
|
||||
- git remote rm origin
|
||||
- git remote add origin git@github.com:silverstripe/silverstripe-userforms.git
|
||||
- php ocular.phar code-coverage:upload --format=php-clover coverage.clover
|
||||
|
@ -142,18 +142,32 @@ class UserFormFieldEditorExtension extends DataExtension
|
||||
*/
|
||||
public function onAfterPublish($original)
|
||||
{
|
||||
// Remove fields on the live table which could have been orphaned.
|
||||
$live = Versioned::get_by_stage("EditableFormField", "Live")
|
||||
->filter('ParentID', $original->ID);
|
||||
|
||||
if ($live) {
|
||||
foreach ($live as $field) {
|
||||
$field->doDeleteFromStage('Live');
|
||||
}
|
||||
}
|
||||
// store IDs of fields we've published
|
||||
$seenIDs = array();
|
||||
|
||||
foreach ($this->owner->Fields() as $field) {
|
||||
// store any IDs of fields we publish so we don't unpublish them
|
||||
$seenIDs[] = $field->ID;
|
||||
$field->doPublish('Stage', 'Live');
|
||||
$field->destroy();
|
||||
}
|
||||
|
||||
// fetch any orphaned live records
|
||||
$live = Versioned::get_by_stage("EditableFormField", "Live")
|
||||
->filter(array(
|
||||
'ParentID' => $original->ID,
|
||||
));
|
||||
|
||||
if (!empty($seenIDs)) {
|
||||
$live = $live->exclude(array(
|
||||
'ID' => $seenIDs,
|
||||
));
|
||||
}
|
||||
|
||||
// delete orphaned records
|
||||
foreach ($live as $field) {
|
||||
$field->doDeleteFromStage('Live');
|
||||
$field->destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -83,14 +83,14 @@ class EditableFormField extends DataObject
|
||||
"CustomSettings" => "Text", // @deprecated from 2.0
|
||||
"Migrated" => "Boolean", // set to true when migrated
|
||||
|
||||
"ExtraClass" => "Text", // from CustomSettings
|
||||
"RightTitle" => "Varchar(255)", // from CustomSettings
|
||||
"ShowOnLoad" => "Boolean(1)", // from CustomSettings
|
||||
);
|
||||
|
||||
private static $defaults = array(
|
||||
'ShowOnLoad' => true,
|
||||
);
|
||||
"ExtraClass" => "Text", // from CustomSettings
|
||||
"RightTitle" => "Varchar(255)", // from CustomSettings
|
||||
"ShowOnLoad" => "Boolean(1)", // from CustomSettings
|
||||
);
|
||||
|
||||
private static $defaults = array(
|
||||
'ShowOnLoad' => true,
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
@ -380,8 +380,8 @@ class EditableFormField extends DataObject
|
||||
if ($parent && $parent->exists()) {
|
||||
return $parent->canEdit($member) && !$this->isReadonly();
|
||||
} elseif (!$this->exists() && Controller::has_curr()) {
|
||||
// This is for GridFieldOrderableRows support as it checks edit permissions on
|
||||
// singleton of the class. Allows editing of User Defined Form pages by
|
||||
// This is for GridFieldOrderableRows support as it checks edit permissions on
|
||||
// singleton of the class. Allows editing of User Defined Form pages by
|
||||
// 'Content Authors' and those with permission to edit the UDF page. (ie. CanEditType/EditorGroups)
|
||||
// This is to restore User Forms 2.x backwards compatibility.
|
||||
$controller = Controller::curr();
|
||||
@ -487,11 +487,27 @@ class EditableFormField extends DataObject
|
||||
{
|
||||
$this->publish($fromStage, $toStage, $createNewVersion);
|
||||
|
||||
// Don't forget to publish the related custom rules...
|
||||
foreach ($this->DisplayRules() as $rule) {
|
||||
$rule->doPublish($fromStage, $toStage, $createNewVersion);
|
||||
$seenIDs = array();
|
||||
|
||||
// Don't forget to publish the related custom rules...
|
||||
foreach ($this->DisplayRules() as $rule) {
|
||||
$seenIDs[] = $rule->ID;
|
||||
$rule->doPublish($fromStage, $toStage, $createNewVersion);
|
||||
$rule->destroy();
|
||||
}
|
||||
|
||||
// remove any orphans from the "fromStage"
|
||||
$rules = Versioned::get_by_stage('EditableCustomRule', $toStage)
|
||||
->filter('ParentID', $this->ID);
|
||||
|
||||
if (!empty($seenIDs)) {
|
||||
$rules = $rules->exclude('ID', $seenIDs);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($rules as $rule) {
|
||||
$rule->deleteFromStage($toStage);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete this field from a given stage
|
||||
|
@ -59,7 +59,8 @@ class EditableFormHeading extends EditableFormField
|
||||
|
||||
public function getFormField()
|
||||
{
|
||||
$labelField = new HeaderField($this->Name, $this->EscapedTitle, $this->Level);
|
||||
$labelField = HeaderField::create($this->EscapedTitle)
|
||||
->setHeadingLevel($this->Level);
|
||||
$labelField->addExtraClass('FormHeading');
|
||||
$labelField->setAttribute('data-id', $this->Name);
|
||||
$this->doUpdateFormField($labelField);
|
||||
|
Loading…
x
Reference in New Issue
Block a user