mirror of
https://github.com/silverstripe/silverstripe-userforms.git
synced 2024-10-22 17:05:42 +02:00
missing 'not', add alert-warning for unsaved form
This commit is contained in:
parent
bc5c6221f0
commit
e2066a55b3
@ -31,11 +31,13 @@ use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\ORM\DB;
|
||||
use SilverStripe\ORM\FieldType\DBField;
|
||||
use SilverStripe\ORM\ValidationResult;
|
||||
use SilverStripe\Security\Member;
|
||||
use SilverStripe\UserForms\Model\EditableFormField;
|
||||
use SilverStripe\UserForms\Model\EditableFormField\EditableEmailField;
|
||||
use SilverStripe\UserForms\Model\EditableFormField\EditableMultipleOptionField;
|
||||
use SilverStripe\UserForms\Model\EditableFormField\EditableTextField;
|
||||
use SilverStripe\UserForms\Model\UserDefinedForm;
|
||||
use SilverStripe\UserForms\UserForm;
|
||||
use SilverStripe\View\Requirements;
|
||||
use Symbiote\GridFieldExtensions\GridFieldAddNewInlineButton;
|
||||
use Symbiote\GridFieldExtensions\GridFieldEditableColumns;
|
||||
@ -126,7 +128,7 @@ class EmailRecipient extends DataObject
|
||||
/**
|
||||
* Get instance of UserForm when editing in getCMSFields
|
||||
*
|
||||
* @return UserDefinedForm
|
||||
* @return UserDefinedForm|UserForm
|
||||
*/
|
||||
protected function getFormParent()
|
||||
{
|
||||
@ -197,6 +199,10 @@ class EmailRecipient extends DataObject
|
||||
// Build fieldlist
|
||||
$fields = FieldList::create(Tabset::create('Root')->addExtraClass('EmailRecipientForm'));
|
||||
|
||||
if (!$this->getFormParent()) {
|
||||
$fields->addFieldToTab('Root.EmailDetails', $this->getUnsavedFormLiteralField());
|
||||
}
|
||||
|
||||
// Configuration fields
|
||||
$fields->addFieldsToTab('Root.EmailDetails', [
|
||||
$this->getSubjectCMSFields(),
|
||||
@ -204,6 +210,7 @@ class EmailRecipient extends DataObject
|
||||
$this->getEmailFromCMSFields(),
|
||||
$this->getEmailReplyToCMSFields(),
|
||||
]);
|
||||
|
||||
$fields->fieldByName('Root.EmailDetails')->setTitle(_t(__CLASS__ . '.EMAILDETAILSTAB', 'Email Details'));
|
||||
|
||||
// Only show the preview link if the recipient has been saved.
|
||||
@ -227,7 +234,7 @@ class EmailRecipient extends DataObject
|
||||
);
|
||||
} else {
|
||||
$preview = sprintf(
|
||||
'<em>%s</em>',
|
||||
'<p class="alert alert-warning">%s</p>',
|
||||
_t(
|
||||
'SilverStripe\\UserForms\\Model\\UserDefinedForm.PREVIEW_EMAIL_UNAVAILABLE',
|
||||
'You can preview this email once you have saved the Recipient.'
|
||||
@ -285,8 +292,10 @@ class EmailRecipient extends DataObject
|
||||
);
|
||||
$grid->setDescription(_t(
|
||||
'SilverStripe\\UserForms\\Model\\UserDefinedForm.RulesDescription',
|
||||
'Emails will only be sent to the recipient if the custom rules are met. If no rules are defined, this receipient will receive notifications for every submission.'
|
||||
'Emails will only be sent to the recipient if the custom rules are met. If no rules are defined, '
|
||||
. 'this recipient will receive notifications for every submission.'
|
||||
));
|
||||
|
||||
$fields->addFieldsToTab('Root.CustomRules', [
|
||||
DropdownField::create(
|
||||
'CustomRulesCondition',
|
||||
@ -305,7 +314,7 @@ class EmailRecipient extends DataObject
|
||||
$grid
|
||||
]);
|
||||
|
||||
$fields->fieldByName('Root.CustomRules')->setTitle(_t(__CLASS__ . '.CUSTOMRULESTAB', 'Custom Rules'));
|
||||
$fields->fieldByName('Root.CustomRules')->setTitle(_t(__CLASS__ . '.CUSTOMRULESTAB', 'Custom Rules'));
|
||||
|
||||
$this->extend('updateCMSFields', $fields);
|
||||
return $fields;
|
||||
@ -688,7 +697,7 @@ class EmailRecipient extends DataObject
|
||||
*/
|
||||
protected function getValidEmailToFields()
|
||||
{
|
||||
if ($this->getFormParent()) {
|
||||
if (!$this->getFormParent()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -703,4 +712,18 @@ class EmailRecipient extends DataObject
|
||||
return $this->getMultiOptionFields();
|
||||
}
|
||||
}
|
||||
|
||||
protected function getUnsavedFormLiteralField()
|
||||
{
|
||||
return LiteralField::create(
|
||||
'UnsavedFormMessage',
|
||||
sprintf(
|
||||
'<p class="alert alert-warning">%s</p>',
|
||||
_t(
|
||||
'SilverStripe\\UserForms\\Model\\UserDefinedForm.EMAIL_RECIPIENT_UNSAVED_FORM',
|
||||
'You will be able to select from valid form fields after saving this record.'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -221,6 +221,7 @@ en:
|
||||
EMAILBODYHTML: Body
|
||||
EMAILFROM: From
|
||||
EMAILRECIPIENTS: 'Email Recipients'
|
||||
EMAIL_RECIPIENT_UNSAVED_FORM: 'You will be able to select from valid form fields after saving this record.'
|
||||
EMAILSUBJECT: 'Email subject'
|
||||
EMAILTEMPLATE: 'Email template'
|
||||
ENABLELIVEVALIDATION: 'Enable live validation'
|
||||
|
@ -130,7 +130,7 @@ class UserDefinedFormTest extends FunctionalTest
|
||||
$fields = $popup->getCMSFields();
|
||||
$this->assertThat($fields->dataFieldByName('SendEmailToFieldID'), $this->isInstanceOf(DropdownField::class));
|
||||
|
||||
// if the front end has checkboxs or dropdown they can select from that can also be used to send things
|
||||
// if the front end has checkboxes or dropdown they can select from that can also be used to send things
|
||||
$dropdown = $this->objFromFixture(EditableDropdown::class, 'department-dropdown');
|
||||
$form->Fields()->add($dropdown);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user