diff --git a/module/file/ui/export.html.php b/module/file/ui/export.html.php index a94960e9aa..398bb7f183 100644 --- a/module/file/ui/export.html.php +++ b/module/file/ui/export.html.php @@ -80,11 +80,12 @@ if($isCustomExport) ( set::title($lang->file->exportFields), setClass('w-full'), - select + control ( + set::type('picker'), set::name('exportFields[]'), set::items($exportFieldPairs), - set::value($selectedFields), + set::defaultValue($selectedFields), set::multiple(true), set::required(true), ), @@ -98,8 +99,8 @@ if($isCustomExport) setClass('input-group-addon'), checkbox(set::name('public'), set::value(1), $lang->public), ) : null, - btn(setClass('btn-link'), on::click('saveTemplate'), icon('save')), - btn(setClass('btn-link'), on::click('deleteTemplate'), icon('trash')) + btn(setClass('btn-link'), on::click('window.saveTemplate'), icon('save')), + btn(setClass('btn-link'), on::click('window.deleteTemplate'), icon('trash')) ) ) ) @@ -181,7 +182,7 @@ set::title($lang->file->exportData); h::js ( << -1) return true; @@ -202,7 +203,7 @@ function setDownloading(event) } /* If file type is CSV, then user can select encode type. */ -function onChangeFileType(event) +window.onChangeFileType = function(event) { var fileType = $(event.target).val(); var encode = $('#encode'); @@ -217,7 +218,7 @@ function onChangeFileType(event) encode.attr('disabled', 'disabled'); } -function onChangeFileName(event) +window.onChangeFileName = function(event) { var objFileName = $(event.target); @@ -265,7 +266,12 @@ window.setTemplate = function(obj) var template = $('#template' + templateID); var exportFields = template.length > 0 ? template.html() : '{$defaultExportFields}'; exportFields = exportFields.split(','); - $('#exportFields').val(exportFields); + + const fieldsPicker = zui.Picker.query('div.modal-body form .form-group .panel .panel-body div'); + if(fieldsPicker && fieldsPicker.ref && fieldsPicker.ref.current) + { + fieldsPicker.ref.current.setState({value:exportFields}); + } var customFieldsBox = $('.customFieldsBox'); customFieldsBox.find('input[name="public"]').prop('checked', template.data('public')); diff --git a/module/task/control.php b/module/task/control.php index 1346f5c803..049f478adb 100755 --- a/module/task/control.php +++ b/module/task/control.php @@ -1109,6 +1109,13 @@ class task extends control /* Create field lists. */ $sort = common::appendOrder($orderBy); $fields = $this->post->exportFields ? $this->post->exportFields : explode(',', $allExportFields); + + /* Compatible with the new UI widget. */ + if($this->post->exportFields && str_contains($fields[0], ',')) + { + $fields = explode(',', $fields[0]); + } + foreach($fields as $key => $fieldName) { $fieldName = trim($fieldName);