diff --git a/modules/backend/behaviors/ImportExportController.php b/modules/backend/behaviors/ImportExportController.php index 4cf14c3a1..9b1178ebf 100644 --- a/modules/backend/behaviors/ImportExportController.php +++ b/modules/backend/behaviors/ImportExportController.php @@ -721,8 +721,10 @@ class ImportExportController extends ControllerBehavior protected function getRedirectUrlForType($type) { - if ($redirect = $this->getConfig($type.'[redirect]')) { - return Backend::url($redirect); + $redirect = $this->getConfig($type.'[redirect]'); + + if ($redirect !== null) { + return $redirect ? Backend::url($redirect) : 'javascript:;'; } return $this->controller->actionUrl($type); diff --git a/modules/backend/classes/FormWidgetBase.php b/modules/backend/classes/FormWidgetBase.php index 3d73d9d6b..a7eb5636b 100644 --- a/modules/backend/classes/FormWidgetBase.php +++ b/modules/backend/classes/FormWidgetBase.php @@ -86,8 +86,8 @@ abstract class FormWidgetBase extends WidgetBase } /** - * Returns the HTML element field name this form widget when - * passing the value back when saving. + * Returns the HTML element field name for this widget, used for capturing + * user input, passed back to the getSaveValue method when saving. * @return string HTML element name */ public function getFieldName() diff --git a/modules/backend/formwidgets/CodeEditor.php b/modules/backend/formwidgets/CodeEditor.php index ecf8228ae..662c902aa 100644 --- a/modules/backend/formwidgets/CodeEditor.php +++ b/modules/backend/formwidgets/CodeEditor.php @@ -167,7 +167,6 @@ class CodeEditor extends FormWidgetBase $this->vars['margin'] = $this->margin; $this->vars['stretch'] = $this->formField->stretch; $this->vars['size'] = $this->formField->size; - $this->vars['name'] = $this->formField->getName(); $this->vars['readOnly'] = $this->readOnly; $this->vars['autocompletion'] = $this->autocompletion; $this->vars['enableSnippets'] = $this->enableSnippets; @@ -176,6 +175,7 @@ class CodeEditor extends FormWidgetBase // Double encode when escaping $this->vars['value'] = htmlentities($this->getLoadValue(), ENT_QUOTES, 'UTF-8', true); + $this->vars['name'] = $this->getFieldName(); } /** diff --git a/modules/backend/formwidgets/ColorPicker.php b/modules/backend/formwidgets/ColorPicker.php index 78c54cc67..9f9358460 100644 --- a/modules/backend/formwidgets/ColorPicker.php +++ b/modules/backend/formwidgets/ColorPicker.php @@ -64,7 +64,7 @@ class ColorPicker extends FormWidgetBase */ public function prepareVars() { - $this->vars['name'] = $this->formField->getName(); + $this->vars['name'] = $this->getFieldName(); $this->vars['value'] = $value = $this->getLoadValue(); $this->vars['availableColors'] = $this->availableColors; $this->vars['isCustomColor'] = !in_array($value, $this->availableColors); diff --git a/modules/backend/formwidgets/DatePicker.php b/modules/backend/formwidgets/DatePicker.php index 61d840528..01ce4d0df 100644 --- a/modules/backend/formwidgets/DatePicker.php +++ b/modules/backend/formwidgets/DatePicker.php @@ -98,7 +98,7 @@ class DatePicker extends FormWidgetBase $value = $value instanceof Carbon ? $value->toDateTimeString() : $value; } - $this->vars['name'] = $this->formField->getName(); + $this->vars['name'] = $this->getFieldName(); $this->vars['value'] = $value ?: ''; $this->vars['field'] = $this->formField; $this->vars['mode'] = $this->mode; diff --git a/modules/backend/formwidgets/MarkdownEditor.php b/modules/backend/formwidgets/MarkdownEditor.php index 4eb33d039..d307beafe 100644 --- a/modules/backend/formwidgets/MarkdownEditor.php +++ b/modules/backend/formwidgets/MarkdownEditor.php @@ -58,7 +58,7 @@ class MarkdownEditor extends FormWidgetBase $this->vars['mode'] = $this->mode; $this->vars['stretch'] = $this->formField->stretch; $this->vars['size'] = $this->formField->size; - $this->vars['name'] = $this->formField->getName(); + $this->vars['name'] = $this->getFieldName(); $this->vars['value'] = $this->getLoadValue(); } @@ -74,7 +74,7 @@ class MarkdownEditor extends FormWidgetBase public function onRefresh() { - $value = post($this->formField->getName()); + $value = post($this->getFieldName()); $previewHtml = Markdown::parse($value); return [ diff --git a/modules/backend/formwidgets/PermissionEditor.php b/modules/backend/formwidgets/PermissionEditor.php index a7bc8c805..ec94f8c28 100644 --- a/modules/backend/formwidgets/PermissionEditor.php +++ b/modules/backend/formwidgets/PermissionEditor.php @@ -38,16 +38,14 @@ class PermissionEditor extends FormWidgetBase */ public function prepareVars() { - $this->vars['checkboxMode'] = $this->getControlMode() === 'checkbox'; - - $this->vars['permissions'] = BackendAuth::listTabbedPermissions(); - $this->vars['baseFieldName'] = $this->formField->getName(); $permissionsData = $this->formField->getValueFromData($this->model); - if (!is_array($permissionsData)) { $permissionsData = []; } + $this->vars['checkboxMode'] = $this->getControlMode() === 'checkbox'; + $this->vars['permissions'] = BackendAuth::listTabbedPermissions(); + $this->vars['baseFieldName'] = $this->getFieldName(); $this->vars['permissionsData'] = $permissionsData; $this->vars['field'] = $this->formField; } diff --git a/modules/backend/formwidgets/RecordFinder.php b/modules/backend/formwidgets/RecordFinder.php index 6342971ca..a06ffc4e1 100644 --- a/modules/backend/formwidgets/RecordFinder.php +++ b/modules/backend/formwidgets/RecordFinder.php @@ -154,7 +154,7 @@ class RecordFinder extends FormWidgetBase public function onRefresh() { list($model, $attribute) = $this->resolveModelAttribute($this->valueFrom); - $model->{$attribute} = post($this->formField->getName()); + $model->{$attribute} = post($this->getFieldName()); $this->prepareVars(); return ['#'.$this->getId('container') => $this->makePartial('recordfinder')]; diff --git a/modules/backend/formwidgets/Repeater.php b/modules/backend/formwidgets/Repeater.php index 42cc754c5..7b7c28b75 100644 --- a/modules/backend/formwidgets/Repeater.php +++ b/modules/backend/formwidgets/Repeater.php @@ -135,7 +135,7 @@ class Repeater extends FormWidgetBase $config->model = $this->model; $config->data = array_get($loadValue, $index, []); $config->alias = $this->alias . 'Form'.$index; - $config->arrayName = $this->formField->getName().'['.$index.']'; + $config->arrayName = $this->getFieldName().'['.$index.']'; $config->isNested = true; $widget = $this->makeWidget('Backend\Widgets\Form', $config); diff --git a/modules/backend/formwidgets/RichEditor.php b/modules/backend/formwidgets/RichEditor.php index 753d004b1..620b90b71 100644 --- a/modules/backend/formwidgets/RichEditor.php +++ b/modules/backend/formwidgets/RichEditor.php @@ -70,7 +70,7 @@ class RichEditor extends FormWidgetBase $this->vars['fullPage'] = $this->fullPage; $this->vars['stretch'] = $this->formField->stretch; $this->vars['size'] = $this->formField->size; - $this->vars['name'] = $this->formField->getName(); + $this->vars['name'] = $this->getFieldName(); $this->vars['value'] = $this->getLoadValue(); $this->vars['toolbarButtons'] = $this->evalToolbarButtons();