@@ -41,6 +41,14 @@ function formawesome_form_system_theme_settings_alter(&$form, &$form_state) {
41
41
'title' => t('Enhance selectables'),
42
42
'description' => t('Wrap checkboxes and radio buttons to be easier styleable.'),
43
43
),
44
+ 'enhance_selectboxes' => array(
45
+ 'title' => t('Enhance select boxes'),
46
+ 'description' => t('Use jQuery Select2 for all select boxes.'),
47
+ ),
48
+ 'enhance_filefields' => array(
49
+ 'title' => t('Enhance file fields'),
50
+ 'description' => t('CSS styleable file fields.'),
51
+ ),
44
52
);
45
53
46
54
$form['formawesome'] = array(
@@ -50,6 +58,7 @@ function formawesome_form_system_theme_settings_alter(&$form, &$form_state) {
50
58
'#title' => 'Formawesome',
51
59
'#description' => t('Toggle form enhancements for this theme.'),
52
60
);
61
+
53
62
foreach ($features as $key => $feature) {
54
63
$setting = 'formawesome_' . $key;
55
64
$form['formawesome'][$setting] = array(
@@ -84,6 +93,7 @@ function formawesome_field_widget_form_alter(&$element, &$form_state, $context)
84
93
if (in_array($widget_type, $formawesome_autocomplete_multiple)) {
85
94
$element['#attributes']['data-max-values'] = $context['field']['cardinality'];
86
95
}
96
+
87
97
if (in_array($context['instance']['widget']['type'], $formawesome_autocomplete_unknown)) {
88
98
$element['#attributes']['data-allow-unknown'] = 'true';
89
99
}
@@ -132,6 +142,9 @@ function formawesome_library() {
132
142
$select2 . '/select2.js' => array(),
133
143
$module . '/js/formawesome.select2.js' => array(),
134
144
),
145
+ 'css' => array(
146
+ $select2 . '/select2.css',
147
+ ),
135
148
'dependencies' => array(
136
149
array('formawesome', 'formawesome.base'),
137
150
),
@@ -213,14 +226,16 @@ function formawesome_form_element_process(&$element, &$form_state, &$complete_fo
213
226
$element['#enhance'] = FALSE;
214
227
}
215
228
216
- if ($element['#type'] == 'select' && $element['#enhance']) {
229
+ if ($element['#type'] == 'select' && ( $element['#enhance'] || formawesome_feature_enabled('enhance_selectboxes')) ) {
217
230
$element['#attached']['library'][] = array('formawesome', 'formawesome.select2');
218
231
$element['#attached']['library'][] = array('formawesome', 'formawesome.base');
232
+ $element['#attributes']['class'][] = 'formawesome-enhanced';
219
233
}
220
234
221
- if ($element['#type'] == 'file' && $element['#enhance']) {
235
+ if ($element['#type'] == 'file' && ( $element['#enhance'] || formawesome_feature_enabled('enhance_filefields')) ) {
222
236
$element['#attached']['js'][] = drupal_get_path('module', 'formawesome') . '/js/formawesome.file.js';
223
237
$element['#attached']['library'][] = array('formawesome', 'formawesome.base');
238
+ $element['#attributes']['class'][] = 'formawesome-enhanced';
224
239
}
225
240
226
241
return $element;
0 commit comments