Skip to content

Commit 45e4040

Browse files
author
github-actions
committed
tidy
1 parent 602f23d commit 45e4040

20 files changed

+1660
-621
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Logicbrush\UserFormsUtils\FormFields;
4+
5+
use Logicbrush\UserFormsUtils\FormFields\Impl\HTML5DateField;
6+
use SilverStripe\Forms\DateField;
7+
use SilverStripe\UserForms\Model\EditableFormField;
8+
9+
/**
10+
* An HTML5 date field.
11+
*
12+
* @package userform-utils
13+
*/
14+
class EditableHTML5DateField extends EditableFormField {
15+
16+
private static $singular_name = 'HTML5 Date Field';
17+
private static $plural_name = 'HTML5 Date Fields';
18+
private static $table_name = 'EditableHTML5DateField';
19+
20+
public function getFormField() {
21+
$field = HTML5DateField::create($this->Name, $this->Title ?: false)
22+
->setFieldHolderTemplate(EditableFormField::class . '_holder')
23+
;
24+
$this->doUpdateFormField($field);
25+
return $field;
26+
}
27+
28+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<?php
2+
3+
namespace Logicbrush\UserFormsUtils\FormFields;
4+
5+
use Logicbrush\UserFormsUtils\FormFields\Submission\ImageSubmittedFormField;
6+
use SilverStripe\Forms\HiddenField;
7+
use SilverStripe\Forms\TextField;
8+
use SilverStripe\UserForms\Model\EditableFormField;
9+
use SilverStripe\UserForms\Model\Submission\SubmittedFormField;
10+
11+
class EditableSignatureField extends EditableFormField {
12+
13+
private static $singular_name = 'Signature Field';
14+
private static $plural_name = 'Signature Fields';
15+
private static $table_name = 'EditableSignatureField';
16+
17+
public function getFormField() {
18+
$field = TextField::create($this->Name, $this->Title ?: false)
19+
->setFieldHolderTemplate(EditableFormField::class . '_holder')
20+
->setTemplate(EditableSignatureField::class)
21+
;
22+
$this->doUpdateFormField($field);
23+
return $field;
24+
}
25+
26+
/**
27+
* Returns an image field, so the signature can be viewed in the CMS and in
28+
* reports.
29+
*/
30+
public function getSubmittedFormField() : SubmittedFormField
31+
{
32+
return ImageSubmittedFormField::create();
33+
}
34+
35+
36+
}
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<?php
2+
3+
namespace Logicbrush\UserFormsUtils\FormFields;
4+
5+
use SilverStripe\Core\Manifest\ModuleLoader;
6+
use SilverStripe\Forms\CheckboxField;
7+
use SilverStripe\Forms\DropdownField;
8+
use SilverStripe\Forms\FieldList;
9+
use SilverStripe\Forms\TextField;
10+
use SilverStripe\i18n\i18n;
11+
use SilverStripe\UserForms\Model\EditableCustomRule;
12+
use SilverStripe\UserForms\Model\EditableFormField;
13+
use SilverStripe\UserForms\Model\EditableFormField\EditableDropdown;
14+
15+
/**
16+
* A dropdown field which allows the user to select a US State
17+
*
18+
* @package userform-utils
19+
* @property bool $UseEmptyString
20+
* @property string $EmptyString
21+
*/
22+
class EditableUSStateDropdownField extends EditableFormField {
23+
24+
private static $singular_name = 'US State Dropdown';
25+
private static $plural_name = 'US State Dropdowns';
26+
27+
private static $db = array(
28+
'UseEmptyString' => 'Boolean',
29+
'EmptyString' => 'Varchar(255)',
30+
);
31+
32+
private static $table_name = 'EditableUSStateDropdownField';
33+
34+
private static array $list_of_states = [
35+
'AL' => "Alabama",
36+
'AK' => "Alaska",
37+
'AZ' => "Arizona",
38+
'AR' => "Arkansas",
39+
'CA' => "California",
40+
'CO' => "Colorado",
41+
'CT' => "Connecticut",
42+
'DE' => "Delaware",
43+
'DC' => "District Of Columbia",
44+
'FL' => "Florida",
45+
'GA' => "Georgia",
46+
'HI' => "Hawaii",
47+
'ID' => "Idaho",
48+
'IL' => "Illinois",
49+
'IN' => "Indiana",
50+
'IA' => "Iowa",
51+
'KS' => "Kansas",
52+
'KY' => "Kentucky",
53+
'LA' => "Louisiana",
54+
'ME' => "Maine",
55+
'MD' => "Maryland",
56+
'MA' => "Massachusetts",
57+
'MI' => "Michigan",
58+
'MN' => "Minnesota",
59+
'MS' => "Mississippi",
60+
'MO' => "Missouri",
61+
'MT' => "Montana",
62+
'NE' => "Nebraska",
63+
'NV' => "Nevada",
64+
'NH' => "New Hampshire",
65+
'NJ' => "New Jersey",
66+
'NM' => "New Mexico",
67+
'NY' => "New York",
68+
'NC' => "North Carolina",
69+
'ND' => "North Dakota",
70+
'OH' => "Ohio",
71+
'OK' => "Oklahoma",
72+
'OR' => "Oregon",
73+
'PA' => "Pennsylvania",
74+
'RI' => "Rhode Island",
75+
'SC' => "South Carolina",
76+
'SD' => "South Dakota",
77+
'TN' => "Tennessee",
78+
'TX' => "Texas",
79+
'UT' => "Utah",
80+
'VT' => "Vermont",
81+
'VA' => "Virginia",
82+
'WA' => "Washington",
83+
'WV' => "West Virginia",
84+
'WI' => "Wisconsin",
85+
'WY' => "Wyoming",
86+
];
87+
88+
/**
89+
* @return \SilverStripe\Forms\FieldList
90+
*/
91+
public function getCMSFields() {
92+
$this->beforeUpdateCMSFields(function (FieldList $fields) {
93+
$fields->removeByName('Default');
94+
$fields->addFieldToTab(
95+
'Root.Main',
96+
DropdownField::create('Default', _t(__CLASS__ . '.DEFAULT', 'Default value'))
97+
->setSource(self::$list_of_states)
98+
->setHasEmptyDefault(true)
99+
->setEmptyString('---')
100+
);
101+
102+
$fields->addFieldToTab(
103+
'Root.Main',
104+
CheckboxField::create('UseEmptyString', _t(__CLASS__ . '.USE_EMPTY_STRING', 'Set default empty string'))
105+
);
106+
107+
$fields->addFieldToTab(
108+
'Root.Main',
109+
TextField::create('EmptyString', _t(__CLASS__ . '.EMPTY_STRING', 'Empty String'))
110+
);
111+
});
112+
113+
return parent::getCMSFields();
114+
}
115+
116+
public function getFormField() {
117+
$field = DropdownField::create($this->Name, $this->Title ?: false)
118+
->setFieldHolderTemplate(EditableFormField::class . '_holder')
119+
->setTemplate(EditableDropdown::class)
120+
->setSource(self::$list_of_states)
121+
;
122+
123+
// Empty string
124+
if ($this->UseEmptyString) {
125+
$field->setEmptyString($this->EmptyString ?: '');
126+
}
127+
128+
// Set default
129+
if ($this->Default) {
130+
$field->setValue($this->Default);
131+
}
132+
133+
$this->doUpdateFormField($field);
134+
135+
return $field;
136+
}
137+
138+
public function getValueFromData($data) {
139+
if (!empty($data[$this->Name])) {
140+
$source = $this->getFormField()->getSource();
141+
return $source[$data[$this->Name]];
142+
}
143+
}
144+
145+
public function getIcon() {
146+
$resource = ModuleLoader::getModule('silverstripe/userforms')->getResource('images/editabledropdown.png');
147+
148+
if (!$resource->exists()) {
149+
return '';
150+
}
151+
152+
return $resource->getURL();
153+
}
154+
155+
public function getSelectorField(EditableCustomRule $rule, $forOnLoad = false) {
156+
return "$(\"select[name='{$this->Name}']\")";
157+
}
158+
}
Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
<?php
2+
/**
3+
* src/FormFields/EditableHTML5DateField.php
4+
*
5+
* @package default
6+
*/
7+
28

39
namespace Logicbrush\UserFormsUtils\FormFields;
410

@@ -13,16 +19,21 @@
1319
*/
1420
class EditableHTML5DateField extends EditableFormField {
1521

16-
private static $singular_name = 'HTML5 Date Field';
17-
private static $plural_name = 'HTML5 Date Fields';
18-
private static $table_name = 'EditableHTML5DateField';
19-
20-
public function getFormField() {
21-
$field = HTML5DateField::create($this->Name, $this->Title ?: false)
22-
->setFieldHolderTemplate(EditableFormField::class . '_holder')
23-
;
24-
$this->doUpdateFormField($field);
25-
return $field;
26-
}
22+
private static $singular_name = 'HTML5 Date Field';
23+
private static $plural_name = 'HTML5 Date Fields';
24+
private static $table_name = 'EditableHTML5DateField';
25+
26+
/**
27+
*
28+
* @return unknown
29+
*/
30+
public function getFormField() {
31+
$field = HTML5DateField::create($this->Name, $this->Title ?: false)
32+
->setFieldHolderTemplate(EditableFormField::class . '_holder')
33+
;
34+
$this->doUpdateFormField($field);
35+
return $field;
36+
}
37+
2738

2839
}
Lines changed: 34 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
<?php
2+
/**
3+
* src/FormFields/EditableSignatureField.php
4+
*
5+
* @package default
6+
*/
7+
28

39
namespace Logicbrush\UserFormsUtils\FormFields;
410

@@ -10,27 +16,34 @@
1016

1117
class EditableSignatureField extends EditableFormField {
1218

13-
private static $singular_name = 'Signature Field';
14-
private static $plural_name = 'Signature Fields';
15-
private static $table_name = 'EditableSignatureField';
16-
17-
public function getFormField() {
18-
$field = TextField::create($this->Name, $this->Title ?: false)
19-
->setFieldHolderTemplate(EditableFormField::class . '_holder')
20-
->setTemplate(EditableSignatureField::class)
21-
;
22-
$this->doUpdateFormField($field);
23-
return $field;
24-
}
25-
26-
/**
27-
* Returns an image field, so the signature can be viewed in the CMS and in
28-
* reports.
29-
*/
30-
public function getSubmittedFormField() : SubmittedFormField
31-
{
32-
return ImageSubmittedFormField::create();
33-
}
19+
private static $singular_name = 'Signature Field';
20+
private static $plural_name = 'Signature Fields';
21+
private static $table_name = 'EditableSignatureField';
22+
23+
/**
24+
*
25+
* @return unknown
26+
*/
27+
public function getFormField() {
28+
$field = TextField::create($this->Name, $this->Title ?: false)
29+
->setFieldHolderTemplate(EditableFormField::class . '_holder')
30+
->setTemplate(EditableSignatureField::class)
31+
;
32+
$this->doUpdateFormField($field);
33+
return $field;
34+
}
35+
36+
37+
/**
38+
* Returns an image field, so the signature can be viewed in the CMS and in
39+
* reports.
40+
*
41+
* @return unknown
42+
*/
43+
public function getSubmittedFormField() : SubmittedFormField
44+
{
45+
return ImageSubmittedFormField::create();
46+
}
3447

3548

3649
}

0 commit comments

Comments
 (0)