mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
MDL-71686 core_form: Move form serializer to shared function
This commit is contained in:
parent
2423c26749
commit
f075272e69
2
lib/form/amd/build/dynamicform.min.js
vendored
2
lib/form/amd/build/dynamicform.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
lib/form/amd/build/modalform.min.js
vendored
2
lib/form/amd/build/modalform.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -43,6 +43,7 @@ import Notification from 'core/notification';
|
||||
import Pending from 'core/pending';
|
||||
import Templates from 'core/templates';
|
||||
import {get_strings as getStrings} from 'core/str';
|
||||
import {serialize} from './util';
|
||||
|
||||
/**
|
||||
* @class core_form/dynamicform
|
||||
@ -136,12 +137,6 @@ export default class DynamicForm {
|
||||
* @public
|
||||
*/
|
||||
load(args = null) {
|
||||
const serialize = function(obj, prefix = '') {
|
||||
return [].concat(...Object.entries(obj).map(([idx, v]) => {
|
||||
const k = prefix ? prefix + "[" + idx + "]" : idx;
|
||||
return (typeof v === "object") ? serialize(v, k) : `${k}=${encodeURIComponent(v)}`;
|
||||
})).join("&");
|
||||
};
|
||||
const formData = serialize(args || {});
|
||||
const pendingPromise = new Pending('core_form/dynamicform:load');
|
||||
return this.getBody(formData)
|
||||
|
@ -43,6 +43,7 @@ import ModalEvents from 'core/modal_events';
|
||||
import ModalFactory from 'core/modal_factory';
|
||||
import Notification from 'core/notification';
|
||||
import Pending from 'core/pending';
|
||||
import {serialize} from './util';
|
||||
|
||||
export default class ModalForm {
|
||||
|
||||
@ -115,12 +116,6 @@ export default class ModalForm {
|
||||
*/
|
||||
show() {
|
||||
const pendingPromise = new Pending('core_form/modalform:init');
|
||||
const serialize = function(obj, prefix = '') {
|
||||
return [].concat(...Object.entries(obj).map(([idx, v]) => {
|
||||
const k = prefix ? prefix + "[" + idx + "]" : idx;
|
||||
return (typeof v === "object") ? serialize(v, k) : `${k}=${encodeURIComponent(v)}`;
|
||||
})).join("&");
|
||||
};
|
||||
|
||||
return ModalFactory.create(this.config.modalConfig)
|
||||
.then((modal) => {
|
||||
|
30
lib/form/amd/src/util.js
Normal file
30
lib/form/amd/src/util.js
Normal file
@ -0,0 +1,30 @@
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Serialize form values into a string.
|
||||
*
|
||||
* This must be used instead of URLSearchParams, which does not correctly encode nested values such as arrays.
|
||||
*
|
||||
* @param {Object} data The form values to serialize
|
||||
* @param {string} prefix The prefix to use for key names
|
||||
* @returns {string}
|
||||
*/
|
||||
export const serialize = (data, prefix = '') => [
|
||||
...Object.entries(data).map(([index, value]) => {
|
||||
const key = prefix ? `${prefix}[${index}]` : index;
|
||||
return (typeof value === "object") ? serialize(value, key) : `${key}=${encodeURIComponent(value)}`;
|
||||
})
|
||||
].join("&");
|
Loading…
x
Reference in New Issue
Block a user