Move files into PSR-4 compatible locations

This commit is contained in:
Robbie Averill 2017-08-09 11:47:47 +12:00
parent 016a0bf2e4
commit 2e809de2ea
68 changed files with 411 additions and 404 deletions

365
code/Model/UserDefinedForm.php Executable file
View File

@ -0,0 +1,365 @@
<?php
/**
* @package userforms
*/
class UserDefinedForm extends Page
{
/**
* @var string
*/
private static $icon = 'userforms/images/sitetree_icon.png';
/**
* @var string
*/
private static $description = 'Adds a customizable form.';
/**
* @var string Required Identifier
*/
private static $required_identifier = null;
/**
* @var string
*/
private static $email_template_directory = 'userforms/templates/email/';
/**
* Should this module automatically upgrade on dev/build?
*
* @config
* @var bool
*/
private static $upgrade_on_build = true;
/**
* Set this to true to disable automatic inclusion of CSS files
* @config
* @var bool
*/
private static $block_default_userforms_css = false;
/**
* Set this to true to disable automatic inclusion of JavaScript files
* @config
* @var bool
*/
private static $block_default_userforms_js = false;
/**
* Built in extensions required by this page
* @config
* @var array
*/
private static $extensions = array(
'UserFormFieldEditorExtension'
);
/**
* @var array Fields on the user defined form page.
*/
private static $db = array(
"SubmitButtonText" => "Varchar",
"ClearButtonText" => "Varchar",
"OnCompleteMessage" => "HTMLText",
"ShowClearButton" => "Boolean",
'DisableSaveSubmissions' => 'Boolean',
'EnableLiveValidation' => 'Boolean',
'DisplayErrorMessagesAtTop' => 'Boolean',
'DisableAuthenicatedFinishAction' => 'Boolean',
'DisableCsrfSecurityToken' => 'Boolean'
);
/**
* @var array Default values of variables when this page is created
*/
private static $defaults = array(
'Content' => '$UserDefinedForm',
'DisableSaveSubmissions' => 0,
'OnCompleteMessage' => '<p>Thanks, we\'ve received your submission.</p>'
);
/**
* @var array
*/
private static $has_many = array(
"Submissions" => "SubmittedForm",
"EmailRecipients" => "UserDefinedForm_EmailRecipient"
);
/**
* @var array
* @config
*/
private static $casting = array(
'ErrorContainerID' => 'Text'
);
/**
* Error container selector which matches the element for grouped messages
*
* @var string
* @config
*/
private static $error_container_id = 'error-container';
/**
* The configuration used to determine whether a confirmation message is to
* appear when navigating away from a partially completed form.
*
* @var boolean
* @config
*/
private static $enable_are_you_sure = true;
/**
* @var bool
* @config
*/
private static $recipients_warning_enabled = false;
/**
* Temporary storage of field ids when the form is duplicated.
* Example layout: array('EditableCheckbox3' => 'EditableCheckbox14')
* @var array
*/
protected $fieldsFromTo = array();
/**
* @return FieldList
*/
public function getCMSFields()
{
Requirements::css(USERFORMS_DIR . '/css/UserForm_cms.css');
$self = $this;
$this->beforeUpdateCMSFields(function ($fields) use ($self) {
// define tabs
$fields->findOrMakeTab('Root.FormOptions', _t('UserDefinedForm.CONFIGURATION', 'Configuration'));
$fields->findOrMakeTab('Root.Recipients', _t('UserDefinedForm.RECIPIENTS', 'Recipients'));
$fields->findOrMakeTab('Root.Submissions', _t('UserDefinedForm.SUBMISSIONS', 'Submissions'));
// text to show on complete
$onCompleteFieldSet = new CompositeField(
$label = new LabelField('OnCompleteMessageLabel', _t('UserDefinedForm.ONCOMPLETELABEL', 'Show on completion')),
$editor = new HtmlEditorField('OnCompleteMessage', '', _t('UserDefinedForm.ONCOMPLETEMESSAGE', $self->OnCompleteMessage))
);
$onCompleteFieldSet->addExtraClass('field');
$editor->setRows(3);
$label->addExtraClass('left');
// Define config for email recipients
$emailRecipientsConfig = GridFieldConfig_RecordEditor::create(10);
$emailRecipientsConfig->getComponentByType('GridFieldAddNewButton')
->setButtonName(
_t('UserDefinedForm.ADDEMAILRECIPIENT', 'Add Email Recipient')
);
// who do we email on submission
$emailRecipients = new GridField(
'EmailRecipients',
_t('UserDefinedForm.EMAILRECIPIENTS', 'Email Recipients'),
$self->EmailRecipients(),
$emailRecipientsConfig
);
$emailRecipients
->getConfig()
->getComponentByType('GridFieldDetailForm')
->setItemRequestClass('UserFormRecipientItemRequest');
$fields->addFieldsToTab('Root.FormOptions', $onCompleteFieldSet);
$fields->addFieldToTab('Root.Recipients', $emailRecipients);
$fields->addFieldsToTab('Root.FormOptions', $self->getFormOptions());
// view the submissions
// make sure a numeric not a empty string is checked against this int column for SQL server
$parentID = (!empty($self->ID)) ? (int) $self->ID : 0;
// get a list of all field names and values used for print and export CSV views of the GridField below.
$columnSQL = <<<SQL
SELECT "SubmittedFormField"."Name" as "Name", COALESCE("EditableFormField"."Title", "SubmittedFormField"."Title") as "Title", COALESCE("EditableFormField"."Sort", 999) AS "Sort"
FROM "SubmittedFormField"
LEFT JOIN "SubmittedForm" ON "SubmittedForm"."ID" = "SubmittedFormField"."ParentID"
LEFT JOIN "EditableFormField" ON "EditableFormField"."Name" = "SubmittedFormField"."Name" AND "EditableFormField"."ParentID" = '$parentID'
WHERE "SubmittedForm"."ParentID" = '$parentID'
ORDER BY "Sort", "Title"
SQL;
// Sanitise periods in title
$columns = array();
foreach (DB::query($columnSQL)->map() as $name => $title) {
$columns[$name] = trim(strtr($title, '.', ' '));
}
$config = new GridFieldConfig();
$config->addComponent(new GridFieldToolbarHeader());
$config->addComponent($sort = new GridFieldSortableHeader());
$config->addComponent($filter = new UserFormsGridFieldFilterHeader());
$config->addComponent(new GridFieldDataColumns());
$config->addComponent(new GridFieldEditButton());
$config->addComponent(new GridFieldDeleteAction());
$config->addComponent(new GridFieldPageCount('toolbar-header-right'));
$config->addComponent($pagination = new GridFieldPaginator(25));
$config->addComponent(new GridFieldDetailForm());
$config->addComponent(new GridFieldButtonRow('after'));
$config->addComponent($export = new GridFieldExportButton('buttons-after-left'));
$config->addComponent($print = new GridFieldPrintButton('buttons-after-left'));
// show user form items in the summary tab
$summaryarray = array(
'ID' => 'ID',
'Created' => 'Created',
'LastEdited' => 'Last Edited'
);
foreach(EditableFormField::get()->filter(array("ParentID" => $parentID)) as $eff) {
if($eff->ShowInSummary) {
$summaryarray[$eff->Name] = $eff->Title ?: $eff->Name;
}
}
$config->getComponentByType('GridFieldDataColumns')->setDisplayFields($summaryarray);
/**
* Support for {@link https://github.com/colymba/GridFieldBulkEditingTools}
*/
if (class_exists('GridFieldBulkManager')) {
$config->addComponent(new GridFieldBulkManager());
}
$sort->setThrowExceptionOnBadDataType(false);
$filter->setThrowExceptionOnBadDataType(false);
$pagination->setThrowExceptionOnBadDataType(false);
// attach every column to the print view form
$columns['Created'] = 'Created';
$columns['SubmittedBy.Email'] = 'Submitter';
$filter->setColumns($columns);
// print configuration
$print->setPrintHasHeader(true);
$print->setPrintColumns($columns);
// export configuration
$export->setCsvHasHeader(true);
$export->setExportColumns($columns);
$submissions = GridField::create(
'Submissions',
_t('UserDefinedForm.SUBMISSIONS', 'Submissions'),
$self->Submissions()->sort('Created', 'DESC'),
$config
);
$fields->addFieldToTab('Root.Submissions', $submissions);
$fields->addFieldToTab(
'Root.FormOptions',
CheckboxField::create(
'DisableSaveSubmissions',
_t('UserDefinedForm.SAVESUBMISSIONS', 'Disable Saving Submissions to Server')
)
);
});
$fields = parent::getCMSFields();
if ($this->EmailRecipients()->Count() == 0 && static::config()->recipients_warning_enabled) {
$fields->addFieldToTab("Root.Main", new LiteralField("EmailRecipientsWarning",
"<p class=\"message warning\">" . _t("UserDefinedForm.NORECIPIENTS",
"Warning: You have not configured any recipients. Form submissions may be missed.")
. "</p>"), "Title");
}
return $fields;
}
/**
* Allow overriding the EmailRecipients on a {@link DataExtension}
* so you can customise who receives an email.
* Converts the RelationList to an ArrayList so that manipulation
* of the original source data isn't possible.
*
* @return ArrayList
*/
public function FilteredEmailRecipients($data = null, $form = null)
{
$recipients = new ArrayList($this->EmailRecipients()->toArray());
// Filter by rules
$recipients = $recipients->filterByCallback(function ($recipient) use ($data, $form) {
/** @var UserDefinedForm_EmailRecipient $recipient */
return $recipient->canSend($data, $form);
});
$this->extend('updateFilteredEmailRecipients', $recipients, $data, $form);
return $recipients;
}
/**
* Custom options for the form. You can extend the built in options by
* using {@link updateFormOptions()}
*
* @return FieldList
*/
public function getFormOptions()
{
$submit = ($this->SubmitButtonText) ? $this->SubmitButtonText : _t('UserDefinedForm.SUBMITBUTTON', 'Submit');
$clear = ($this->ClearButtonText) ? $this->ClearButtonText : _t('UserDefinedForm.CLEARBUTTON', 'Clear');
$options = new FieldList(
new TextField("SubmitButtonText", _t('UserDefinedForm.TEXTONSUBMIT', 'Text on submit button:'), $submit),
new TextField("ClearButtonText", _t('UserDefinedForm.TEXTONCLEAR', 'Text on clear button:'), $clear),
new CheckboxField("ShowClearButton", _t('UserDefinedForm.SHOWCLEARFORM', 'Show Clear Form Button'), $this->ShowClearButton),
new CheckboxField("EnableLiveValidation", _t('UserDefinedForm.ENABLELIVEVALIDATION', 'Enable live validation')),
new CheckboxField("DisplayErrorMessagesAtTop", _t('UserDefinedForm.DISPLAYERRORMESSAGESATTOP', 'Display error messages above the form?')),
new CheckboxField('DisableCsrfSecurityToken', _t('UserDefinedForm.DISABLECSRFSECURITYTOKEN', 'Disable CSRF Token')),
new CheckboxField('DisableAuthenicatedFinishAction', _t('UserDefinedForm.DISABLEAUTHENICATEDFINISHACTION', 'Disable Authentication on finish action'))
);
$this->extend('updateFormOptions', $options);
return $options;
}
/**
* Get the HTML id of the error container displayed above the form.
*
* @return string
*/
public function getErrorContainerID()
{
return $this->config()->error_container_id;
}
public function requireDefaultRecords()
{
parent::requireDefaultRecords();
if (!$this->config()->upgrade_on_build) {
return;
}
// Perform migrations
Injector::inst()
->create('UserFormsUpgradeService')
->setQuiet(true)
->run();
DB::alteration_message('Migrated userforms', 'changed');
}
/**
* Validate formfields
*/
public function getCMSValidator()
{
return new UserFormValidator();
}
}

View File

@ -1,376 +1,12 @@
<?php <?php
/**
* @package userforms
*/
class UserDefinedForm extends Page
{
/**
* @var string
*/
private static $icon = 'userforms/images/sitetree_icon.png';
/**
* @var string
*/
private static $description = 'Adds a customizable form.';
/**
* @var string Required Identifier
*/
private static $required_identifier = null;
/**
* @var string
*/
private static $email_template_directory = 'userforms/templates/email/';
/**
* Should this module automatically upgrade on dev/build?
*
* @config
* @var bool
*/
private static $upgrade_on_build = true;
/**
* Set this to true to disable automatic inclusion of CSS files
* @config
* @var bool
*/
private static $block_default_userforms_css = false;
/**
* Set this to true to disable automatic inclusion of JavaScript files
* @config
* @var bool
*/
private static $block_default_userforms_js = false;
/**
* Built in extensions required by this page
* @config
* @var array
*/
private static $extensions = array(
'UserFormFieldEditorExtension'
);
/**
* @var array Fields on the user defined form page.
*/
private static $db = array(
"SubmitButtonText" => "Varchar",
"ClearButtonText" => "Varchar",
"OnCompleteMessage" => "HTMLText",
"ShowClearButton" => "Boolean",
'DisableSaveSubmissions' => 'Boolean',
'EnableLiveValidation' => 'Boolean',
'DisplayErrorMessagesAtTop' => 'Boolean',
'DisableAuthenicatedFinishAction' => 'Boolean',
'DisableCsrfSecurityToken' => 'Boolean'
);
/**
* @var array Default values of variables when this page is created
*/
private static $defaults = array(
'Content' => '$UserDefinedForm',
'DisableSaveSubmissions' => 0,
'OnCompleteMessage' => '<p>Thanks, we\'ve received your submission.</p>'
);
/**
* @var array
*/
private static $has_many = array(
"Submissions" => "SubmittedForm",
"EmailRecipients" => "UserDefinedForm_EmailRecipient"
);
/**
* @var array
* @config
*/
private static $casting = array(
'ErrorContainerID' => 'Text'
);
/**
* Error container selector which matches the element for grouped messages
*
* @var string
* @config
*/
private static $error_container_id = 'error-container';
/**
* The configuration used to determine whether a confirmation message is to
* appear when navigating away from a partially completed form.
*
* @var boolean
* @config
*/
private static $enable_are_you_sure = true;
/**
* @var bool
* @config
*/
private static $recipients_warning_enabled = false;
/**
* Temporary storage of field ids when the form is duplicated.
* Example layout: array('EditableCheckbox3' => 'EditableCheckbox14')
* @var array
*/
protected $fieldsFromTo = array();
/**
* @return FieldList
*/
public function getCMSFields()
{
Requirements::css(USERFORMS_DIR . '/css/UserForm_cms.css');
$self = $this;
$this->beforeUpdateCMSFields(function ($fields) use ($self) {
// define tabs
$fields->findOrMakeTab('Root.FormOptions', _t('UserDefinedForm.CONFIGURATION', 'Configuration'));
$fields->findOrMakeTab('Root.Recipients', _t('UserDefinedForm.RECIPIENTS', 'Recipients'));
$fields->findOrMakeTab('Root.Submissions', _t('UserDefinedForm.SUBMISSIONS', 'Submissions'));
// text to show on complete
$onCompleteFieldSet = new CompositeField(
$label = new LabelField('OnCompleteMessageLabel', _t('UserDefinedForm.ONCOMPLETELABEL', 'Show on completion')),
$editor = new HtmlEditorField('OnCompleteMessage', '', _t('UserDefinedForm.ONCOMPLETEMESSAGE', $self->OnCompleteMessage))
);
$onCompleteFieldSet->addExtraClass('field');
$editor->setRows(3);
$label->addExtraClass('left');
// Define config for email recipients
$emailRecipientsConfig = GridFieldConfig_RecordEditor::create(10);
$emailRecipientsConfig->getComponentByType('GridFieldAddNewButton')
->setButtonName(
_t('UserDefinedForm.ADDEMAILRECIPIENT', 'Add Email Recipient')
);
// who do we email on submission
$emailRecipients = new GridField(
'EmailRecipients',
_t('UserDefinedForm.EMAILRECIPIENTS', 'Email Recipients'),
$self->EmailRecipients(),
$emailRecipientsConfig
);
$emailRecipients
->getConfig()
->getComponentByType('GridFieldDetailForm')
->setItemRequestClass('UserFormRecipientItemRequest');
$fields->addFieldsToTab('Root.FormOptions', $onCompleteFieldSet);
$fields->addFieldToTab('Root.Recipients', $emailRecipients);
$fields->addFieldsToTab('Root.FormOptions', $self->getFormOptions());
// view the submissions
// make sure a numeric not a empty string is checked against this int column for SQL server
$parentID = (!empty($self->ID)) ? (int) $self->ID : 0;
// get a list of all field names and values used for print and export CSV views of the GridField below.
$columnSQL = <<<SQL
SELECT "SubmittedFormField"."Name" as "Name", COALESCE("EditableFormField"."Title", "SubmittedFormField"."Title") as "Title", COALESCE("EditableFormField"."Sort", 999) AS "Sort"
FROM "SubmittedFormField"
LEFT JOIN "SubmittedForm" ON "SubmittedForm"."ID" = "SubmittedFormField"."ParentID"
LEFT JOIN "EditableFormField" ON "EditableFormField"."Name" = "SubmittedFormField"."Name" AND "EditableFormField"."ParentID" = '$parentID'
WHERE "SubmittedForm"."ParentID" = '$parentID'
ORDER BY "Sort", "Title"
SQL;
// Sanitise periods in title
$columns = array();
foreach (DB::query($columnSQL)->map() as $name => $title) {
$columns[$name] = trim(strtr($title, '.', ' '));
}
$config = new GridFieldConfig();
$config->addComponent(new GridFieldToolbarHeader());
$config->addComponent($sort = new GridFieldSortableHeader());
$config->addComponent($filter = new UserFormsGridFieldFilterHeader());
$config->addComponent(new GridFieldDataColumns());
$config->addComponent(new GridFieldEditButton());
$config->addComponent(new GridFieldDeleteAction());
$config->addComponent(new GridFieldPageCount('toolbar-header-right'));
$config->addComponent($pagination = new GridFieldPaginator(25));
$config->addComponent(new GridFieldDetailForm());
$config->addComponent(new GridFieldButtonRow('after'));
$config->addComponent($export = new GridFieldExportButton('buttons-after-left'));
$config->addComponent($print = new GridFieldPrintButton('buttons-after-left'));
// show user form items in the summary tab
$summaryarray = array(
'ID' => 'ID',
'Created' => 'Created',
'LastEdited' => 'Last Edited'
);
foreach(EditableFormField::get()->filter(array("ParentID" => $parentID)) as $eff) {
if($eff->ShowInSummary) {
$summaryarray[$eff->Name] = $eff->Title ?: $eff->Name;
}
}
$config->getComponentByType('GridFieldDataColumns')->setDisplayFields($summaryarray);
/**
* Support for {@link https://github.com/colymba/GridFieldBulkEditingTools}
*/
if (class_exists('GridFieldBulkManager')) {
$config->addComponent(new GridFieldBulkManager());
}
$sort->setThrowExceptionOnBadDataType(false);
$filter->setThrowExceptionOnBadDataType(false);
$pagination->setThrowExceptionOnBadDataType(false);
// attach every column to the print view form
$columns['Created'] = 'Created';
$columns['SubmittedBy.Email'] = 'Submitter';
$filter->setColumns($columns);
// print configuration
$print->setPrintHasHeader(true);
$print->setPrintColumns($columns);
// export configuration
$export->setCsvHasHeader(true);
$export->setExportColumns($columns);
$submissions = GridField::create(
'Submissions',
_t('UserDefinedForm.SUBMISSIONS', 'Submissions'),
$self->Submissions()->sort('Created', 'DESC'),
$config
);
$fields->addFieldToTab('Root.Submissions', $submissions);
$fields->addFieldToTab(
'Root.FormOptions',
CheckboxField::create(
'DisableSaveSubmissions',
_t('UserDefinedForm.SAVESUBMISSIONS', 'Disable Saving Submissions to Server')
)
);
});
$fields = parent::getCMSFields();
if ($this->EmailRecipients()->Count() == 0 && static::config()->recipients_warning_enabled) {
$fields->addFieldToTab("Root.Main", new LiteralField("EmailRecipientsWarning",
"<p class=\"message warning\">" . _t("UserDefinedForm.NORECIPIENTS",
"Warning: You have not configured any recipients. Form submissions may be missed.")
. "</p>"), "Title");
}
return $fields;
}
/**
* Allow overriding the EmailRecipients on a {@link DataExtension}
* so you can customise who receives an email.
* Converts the RelationList to an ArrayList so that manipulation
* of the original source data isn't possible.
*
* @return ArrayList
*/
public function FilteredEmailRecipients($data = null, $form = null)
{
$recipients = new ArrayList($this->EmailRecipients()->toArray());
// Filter by rules
$recipients = $recipients->filterByCallback(function ($recipient) use ($data, $form) {
/** @var UserDefinedForm_EmailRecipient $recipient */
return $recipient->canSend($data, $form);
});
$this->extend('updateFilteredEmailRecipients', $recipients, $data, $form);
return $recipients;
}
/**
* Custom options for the form. You can extend the built in options by
* using {@link updateFormOptions()}
*
* @return FieldList
*/
public function getFormOptions()
{
$submit = ($this->SubmitButtonText) ? $this->SubmitButtonText : _t('UserDefinedForm.SUBMITBUTTON', 'Submit');
$clear = ($this->ClearButtonText) ? $this->ClearButtonText : _t('UserDefinedForm.CLEARBUTTON', 'Clear');
$options = new FieldList(
new TextField("SubmitButtonText", _t('UserDefinedForm.TEXTONSUBMIT', 'Text on submit button:'), $submit),
new TextField("ClearButtonText", _t('UserDefinedForm.TEXTONCLEAR', 'Text on clear button:'), $clear),
new CheckboxField("ShowClearButton", _t('UserDefinedForm.SHOWCLEARFORM', 'Show Clear Form Button'), $this->ShowClearButton),
new CheckboxField("EnableLiveValidation", _t('UserDefinedForm.ENABLELIVEVALIDATION', 'Enable live validation')),
new CheckboxField("DisplayErrorMessagesAtTop", _t('UserDefinedForm.DISPLAYERRORMESSAGESATTOP', 'Display error messages above the form?')),
new CheckboxField('DisableCsrfSecurityToken', _t('UserDefinedForm.DISABLECSRFSECURITYTOKEN', 'Disable CSRF Token')),
new CheckboxField('DisableAuthenicatedFinishAction', _t('UserDefinedForm.DISABLEAUTHENICATEDFINISHACTION', 'Disable Authentication on finish action'))
);
$this->extend('updateFormOptions', $options);
return $options;
}
/**
* Get the HTML id of the error container displayed above the form.
*
* @return string
*/
public function getErrorContainerID()
{
return $this->config()->error_container_id;
}
public function requireDefaultRecords()
{
parent::requireDefaultRecords();
if (!$this->config()->upgrade_on_build) {
return;
}
// Perform migrations
Injector::inst()
->create('UserFormsUpgradeService')
->setQuiet(true)
->run();
DB::alteration_message('Migrated userforms', 'changed');
}
/**
* Validate formfields
*/
public function getCMSValidator()
{
return new UserFormValidator();
}
}
/** /**
* Controller for the {@link UserDefinedForm} page type. * Controller for the {@link UserDefinedForm} page type.
* *
* @package userforms * @package userforms
*/ */
class UserDefinedForm_Controller extends Page_Controller class UserDefinedFormController extends PageController
{ {
private static $finished_anchor = '#uff'; private static $finished_anchor = '#uff';

View File

@ -30,10 +30,14 @@
} }
], ],
"require": { "require": {
"silverstripe/framework": "~3.2", "silverstripe/framework": "^4@dev",
"silverstripe/cms": "~3.2", "silverstripe/cms": "^4@dev",
"symbiote/silverstripe-gridfieldextensions": "~1.4", "symbiote/silverstripe-gridfieldextensions": "^3@dev",
"silverstripe/segment-field": "^1.0" "silverstripe/segment-field": "^2@dev"
},
"require-dev": {
"phpunit/phpunit": "^5.7",
"squizlabs/php_codesniffer": "*"
}, },
"suggest": { "suggest": {
"colymba/gridfield-bulk-editing-tools": "Allows for bulk management of form submissions", "colymba/gridfield-bulk-editing-tools": "Allows for bulk management of form submissions",
@ -44,5 +48,7 @@
"branch-alias": { "branch-alias": {
"dev-master": "5.0.x-dev" "dev-master": "5.0.x-dev"
} }
} },
"prefer-stable": true,
"minimum-stability": "dev"
} }

View File

@ -50,8 +50,8 @@ class UserDefinedFormTest extends FunctionalTest
$this->assertTrue($fields->dataFieldByName('OnCompleteMessage') != null); $this->assertTrue($fields->dataFieldByName('OnCompleteMessage') != null);
} }
public function testGetCMSFieldsShowInSummary() public function testGetCMSFieldsShowInSummary()
{ {
$this->logInWithPermission('ADMIN'); $this->logInWithPermission('ADMIN');
$form = $this->objFromFixture('UserDefinedForm', 'summary-rules-form'); $form = $this->objFromFixture('UserDefinedForm', 'summary-rules-form');
@ -69,7 +69,7 @@ class UserDefinedFormTest extends FunctionalTest
$this->assertNotContains('SummaryHide', array_keys($summaryFields), 'Summary field showing displayed field'); $this->assertNotContains('SummaryHide', array_keys($summaryFields), 'Summary field showing displayed field');
} }
public function testEmailRecipientPopup() public function testEmailRecipientPopup()
{ {
$this->logInWithPermission('ADMIN'); $this->logInWithPermission('ADMIN');

View File

@ -20,7 +20,7 @@ EditableOption:
option-1: option-1:
Name: Option1 Name: Option1
Title: Option 1 Title: Option 1
option-2: option-2:
Name: Option2 Name: Option2
Title: Option 2 Title: Option 2
@ -60,44 +60,44 @@ EditableOption:
option-9: option-9:
Name: Option9 Name: Option9
Title: Green Title: Green
EditableTextField: EditableTextField:
basic-text: basic-text:
Name: basic-text-name Name: basic-text-name
Title: Basic Text Field Title: Basic Text Field
basic-text-2: basic-text-2:
Name: basic-text-name Name: basic-text-name
Title: Basic Text Field Title: Basic Text Field
your-name-field: your-name-field:
Name: your-name Name: your-name
Title: Name Title: Name
address-field: address-field:
Name: address Name: address
Title: Address Title: Address
street-field: street-field:
Name: street Name: street
Title: Street Title: Street
city-field: city-field:
Name: city Name: city
Title: City Title: City
required-text: required-text:
Name: required-text-field Name: required-text-field
Title: Required Text Field Title: Required Text Field
CustomErrorMessage: Custom Error Message CustomErrorMessage: Custom Error Message
Required: true Required: true
field-1: field-1:
Name: Field1 Name: Field1
field-2: field-2:
Name: Field2 Name: Field2
some-field: some-field:
Name: SomeField Name: SomeField
@ -106,12 +106,12 @@ EditableTextField:
Title: Required Text Field Title: Required Text Field
Required: true Required: true
CustomErrorMessage: 'This field is required' CustomErrorMessage: 'This field is required'
summary-show: summary-show:
Name: SummaryShow Name: SummaryShow
Title: Summary Text Field Title: Summary Text Field
ShowInSummary: true ShowInSummary: true
summary-hide: summary-hide:
Name: SummaryHide Name: SummaryHide
Title: Summary Text Field Title: Summary Text Field
@ -122,21 +122,21 @@ EditableDropdown:
Name: basic-dropdown Name: basic-dropdown
Title: Basic Dropdown Field Title: Basic Dropdown Field
Options: =>EditableOption.option-1, =>EditableOption.option-2 Options: =>EditableOption.option-1, =>EditableOption.option-2
department-dropdown: department-dropdown:
Name: department Name: department
Title: Department Title: Department
Options: =>EditableOption.department-1, =>EditableOption.department-2 Options: =>EditableOption.department-1, =>EditableOption.department-2
EditableCheckbox: EditableCheckbox:
checkbox-1: checkbox-1:
Name: checkbox-1 Name: checkbox-1
Title: Checkbox 1 Title: Checkbox 1
checkbox-2: checkbox-2:
Name: checkbox-1 Name: checkbox-1
Title: Checkbox 1 Title: Checkbox 1
EditableCheckboxGroupField: EditableCheckboxGroupField:
checkbox-group: checkbox-group:
Name: check-box-group Name: check-box-group
@ -163,11 +163,11 @@ EditableRadioField:
Name: radio-option Name: radio-option
Title: Radio Option Title: Radio Option
Options: =>EditableOption.option-5, =>EditableOption.option-6 Options: =>EditableOption.option-5, =>EditableOption.option-6
EditableFieldGroupEnd: EditableFieldGroupEnd:
group1end: group1end:
Name: group1end Name: group1end
EditableFieldGroup: EditableFieldGroup:
group1start: group1start:
Name: group1start Name: group1start
@ -205,31 +205,31 @@ UserDefinedForm_EmailRecipient:
EmailAddress: test@example.com EmailAddress: test@example.com
EmailSubject: Email Subject EmailSubject: Email Subject
EmailFrom: no-reply@example.com EmailFrom: no-reply@example.com
no-html: no-html:
EmailAddress: nohtml@example.com EmailAddress: nohtml@example.com
EmailSubject: Email Subject EmailSubject: Email Subject
EmailFrom: no-reply@example.com EmailFrom: no-reply@example.com
SendPlain: true SendPlain: true
no-data: no-data:
EmailAddress: nodata@example.com EmailAddress: nodata@example.com
EmailSubject: Email Subject EmailSubject: Email Subject
EmailFrom: no-reply@example.com EmailFrom: no-reply@example.com
HideFormData: true HideFormData: true
unfiltered-recipient-1: unfiltered-recipient-1:
EmailAddress: unfiltered@example.com EmailAddress: unfiltered@example.com
EmailSubject: Email Subject EmailSubject: Email Subject
EmailFrom: no-reply@example.com EmailFrom: no-reply@example.com
filtered-recipient-1: filtered-recipient-1:
EmailAddress: filtered1@example.com EmailAddress: filtered1@example.com
EmailSubject: Email Subject EmailSubject: Email Subject
EmailFrom: no-reply@example.com EmailFrom: no-reply@example.com
CustomRules: =>UserDefinedForm_EmailRecipientCondition.blank-rule, =>UserDefinedForm_EmailRecipientCondition.not-blank-rule, =>UserDefinedForm_EmailRecipientCondition.equals-rule, =>UserDefinedForm_EmailRecipientCondition.not-equals-rule CustomRules: =>UserDefinedForm_EmailRecipientCondition.blank-rule, =>UserDefinedForm_EmailRecipientCondition.not-blank-rule, =>UserDefinedForm_EmailRecipientCondition.equals-rule, =>UserDefinedForm_EmailRecipientCondition.not-equals-rule
CustomRulesCondition: 'And' CustomRulesCondition: 'And'
filtered-recipient-2: filtered-recipient-2:
EmailAddress: filtered2@example.com EmailAddress: filtered2@example.com
EmailSubject: Email Subject EmailSubject: Email Subject
@ -253,29 +253,29 @@ UserDefinedForm:
Title: User Defined Form Title: User Defined Form
Fields: =>EditableFormStep.form1step1,=>EditableTextField.basic-text Fields: =>EditableFormStep.form1step1,=>EditableTextField.basic-text
EmailRecipients: =>UserDefinedForm_EmailRecipient.recipient-1, =>UserDefinedForm_EmailRecipient.no-html, =>UserDefinedForm_EmailRecipient.no-data EmailRecipients: =>UserDefinedForm_EmailRecipient.recipient-1, =>UserDefinedForm_EmailRecipient.no-html, =>UserDefinedForm_EmailRecipient.no-data
page-with-group: page-with-group:
Content: 'Page with group' Content: 'Page with group'
Title: 'page with group' Title: 'page with group'
Fields: =>EditableFormStep.form7step1, =>EditableFieldGroup.group1start, =>EditableTextField.some-field, =>EditableFieldGroupEnd.group1end Fields: =>EditableFormStep.form7step1, =>EditableFieldGroup.group1start, =>EditableTextField.some-field, =>EditableFieldGroupEnd.group1end
form-with-reset-and-custom-action: form-with-reset-and-custom-action:
Title: Form with Reset Action Title: Form with Reset Action
SubmitButtonText: Custom Button SubmitButtonText: Custom Button
ShowClearButton: true ShowClearButton: true
validation-form: validation-form:
Title: Validation Form Title: Validation Form
Fields: =>EditableFormStep.form3step1,=>EditableTextField.required-text Fields: =>EditableFormStep.form3step1,=>EditableTextField.required-text
custom-rules-form: custom-rules-form:
Title: Custom Rules Form Title: Custom Rules Form
Fields: =>EditableCheckbox.checkbox-2, =>EditableTextField.basic-text-2 Fields: =>EditableCheckbox.checkbox-2, =>EditableTextField.basic-text-2
summary-rules-form: summary-rules-form:
Title: Summary Fields Form Title: Summary Fields Form
Fields: =>EditableTextField.summary-show, =>EditableTextField.summary-hide Fields: =>EditableTextField.summary-show, =>EditableTextField.summary-hide
empty-form: empty-form:
Title: Empty Form Title: Empty Form

View File

@ -1,7 +1,7 @@
<?php <?php
class UserFormsVersionedTest extends SapphireTest class UserFormsVersionedTaskTest extends SapphireTest
{ {
protected static $fixture_file = 'UserDefinedFormTest.yml'; protected static $fixture_file = 'UserDefinedFormTest.yml';