mirror of
https://github.com/ansible/awx.git
synced 2026-03-28 22:35:08 -02:30
don't strip out non-namespaced params when encoding url search params
This commit is contained in:
@@ -85,7 +85,12 @@ class ListHeader extends React.Component {
|
|||||||
pushHistoryState(params) {
|
pushHistoryState(params) {
|
||||||
const { history, qsConfig } = this.props;
|
const { history, qsConfig } = this.props;
|
||||||
const { pathname } = history.location;
|
const { pathname } = history.location;
|
||||||
const encodedParams = encodeNonDefaultQueryString(qsConfig, params);
|
const nonNamespacedParams = parseQueryString({}, history.location.search);
|
||||||
|
const encodedParams = encodeNonDefaultQueryString(
|
||||||
|
qsConfig,
|
||||||
|
params,
|
||||||
|
nonNamespacedParams
|
||||||
|
);
|
||||||
history.push(encodedParams ? `${pathname}?${encodedParams}` : pathname);
|
history.push(encodedParams ? `${pathname}?${encodedParams}` : pathname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,8 +60,15 @@ function PaginatedDataList({
|
|||||||
pushHistoryState(replaceParams(oldParams, { page_size: pageSize, page }));
|
pushHistoryState(replaceParams(oldParams, { page_size: pageSize, page }));
|
||||||
};
|
};
|
||||||
|
|
||||||
const pushHistoryState = params => {
|
const pushHistoryState = (params) => {
|
||||||
const encodedParams = encodeNonDefaultQueryString(qsConfig, params);
|
const { history, qsConfig } = this.props;
|
||||||
|
const { pathname } = history.location;
|
||||||
|
const nonNamespacedParams = parseQueryString({}, history.location.search);
|
||||||
|
const encodedParams = encodeNonDefaultQueryString(
|
||||||
|
qsConfig,
|
||||||
|
params,
|
||||||
|
nonNamespacedParams
|
||||||
|
);
|
||||||
history.push(encodedParams ? `${pathname}?${encodedParams}` : pathname);
|
history.push(encodedParams ? `${pathname}?${encodedParams}` : pathname);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,12 @@ export default function HeaderRow({ qsConfig, children }) {
|
|||||||
order_by: order === 'asc' ? key : `-${key}`,
|
order_by: order === 'asc' ? key : `-${key}`,
|
||||||
page: null,
|
page: null,
|
||||||
});
|
});
|
||||||
const encodedParams = encodeNonDefaultQueryString(qsConfig, newParams);
|
const nonNamespacedParams = parseQueryString({}, history.location.search);
|
||||||
|
const encodedParams = encodeNonDefaultQueryString(
|
||||||
|
qsConfig,
|
||||||
|
newParams,
|
||||||
|
nonNamespacedParams
|
||||||
|
);
|
||||||
history.push(
|
history.push(
|
||||||
encodedParams
|
encodedParams
|
||||||
? `${location.pathname}?${encodedParams}`
|
? `${location.pathname}?${encodedParams}`
|
||||||
|
|||||||
@@ -40,8 +40,13 @@ function PaginatedTable({
|
|||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
|
||||||
const pushHistoryState = params => {
|
const pushHistoryState = params => {
|
||||||
const { pathname } = history.location;
|
const { pathname, search } = history.location;
|
||||||
const encodedParams = encodeNonDefaultQueryString(qsConfig, params);
|
const nonNamespacedParams = parseQueryString({}, search);
|
||||||
|
const encodedParams = encodeNonDefaultQueryString(
|
||||||
|
qsConfig,
|
||||||
|
params,
|
||||||
|
nonNamespacedParams
|
||||||
|
);
|
||||||
history.push(encodedParams ? `${pathname}?${encodedParams}` : pathname);
|
history.push(encodedParams ? `${pathname}?${encodedParams}` : pathname);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -118,15 +118,20 @@ function encodeValue(key, value) {
|
|||||||
* removing defaults. Used to put into url bar after ui route
|
* removing defaults. Used to put into url bar after ui route
|
||||||
* @param {object} qs config object for namespacing params, filtering defaults
|
* @param {object} qs config object for namespacing params, filtering defaults
|
||||||
* @param {object} query param object
|
* @param {object} query param object
|
||||||
|
* @param {object} any non-namespaced params to append
|
||||||
* @return {string} url query string
|
* @return {string} url query string
|
||||||
*/
|
*/
|
||||||
export const encodeNonDefaultQueryString = (config, params) => {
|
export const encodeNonDefaultQueryString = (
|
||||||
|
config,
|
||||||
|
params,
|
||||||
|
nonNamespacedParams = {}
|
||||||
|
) => {
|
||||||
if (!params) return '';
|
if (!params) return '';
|
||||||
|
|
||||||
const paramsWithoutDefaults = removeParams({}, params, config.defaultParams);
|
const paramsWithoutDefaults = removeParams({}, params, config.defaultParams);
|
||||||
return encodeQueryString(
|
return encodeQueryString({
|
||||||
namespaceParams(config.namespace, paramsWithoutDefaults)
|
...namespaceParams(config.namespace, paramsWithoutDefaults),
|
||||||
);
|
...nonNamespacedParams,
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user