26 lines
700 B
JavaScript
26 lines
700 B
JavaScript
|
import axios from './axios_utils';
|
||
|
import { normalizeHeaders, parseIntPagination } from './common_utils';
|
||
|
|
||
|
// This is used in the select2 config to replace jQuery.ajax with axios
|
||
|
export const select2AxiosTransport = (params) => {
|
||
|
axios({
|
||
|
method: params.type?.toLowerCase() || 'get',
|
||
|
url: params.url,
|
||
|
params: params.data,
|
||
|
})
|
||
|
.then((res) => {
|
||
|
const results = res.data || [];
|
||
|
const headers = normalizeHeaders(res.headers);
|
||
|
const pagination = parseIntPagination(headers);
|
||
|
const more = pagination.nextPage > pagination.page;
|
||
|
|
||
|
params.success({
|
||
|
results,
|
||
|
pagination: {
|
||
|
more,
|
||
|
},
|
||
|
});
|
||
|
})
|
||
|
.catch(params.error);
|
||
|
};
|