mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 10:00:01 -03:30
don't strip out non-namespaced params when encoding url search params
This commit is contained in:
parent
90edb3b551
commit
87a2039ded
@ -85,7 +85,12 @@ class ListHeader extends React.Component {
|
||||
pushHistoryState(params) {
|
||||
const { history, qsConfig } = this.props;
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@ -60,8 +60,15 @@ function PaginatedDataList({
|
||||
pushHistoryState(replaceParams(oldParams, { page_size: pageSize, page }));
|
||||
};
|
||||
|
||||
const pushHistoryState = params => {
|
||||
const encodedParams = encodeNonDefaultQueryString(qsConfig, params);
|
||||
const pushHistoryState = (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);
|
||||
};
|
||||
|
||||
|
||||
@ -23,7 +23,12 @@ export default function HeaderRow({ qsConfig, children }) {
|
||||
order_by: order === 'asc' ? key : `-${key}`,
|
||||
page: null,
|
||||
});
|
||||
const encodedParams = encodeNonDefaultQueryString(qsConfig, newParams);
|
||||
const nonNamespacedParams = parseQueryString({}, history.location.search);
|
||||
const encodedParams = encodeNonDefaultQueryString(
|
||||
qsConfig,
|
||||
newParams,
|
||||
nonNamespacedParams
|
||||
);
|
||||
history.push(
|
||||
encodedParams
|
||||
? `${location.pathname}?${encodedParams}`
|
||||
|
||||
@ -40,8 +40,13 @@ function PaginatedTable({
|
||||
const history = useHistory();
|
||||
|
||||
const pushHistoryState = params => {
|
||||
const { pathname } = history.location;
|
||||
const encodedParams = encodeNonDefaultQueryString(qsConfig, params);
|
||||
const { pathname, search } = history.location;
|
||||
const nonNamespacedParams = parseQueryString({}, search);
|
||||
const encodedParams = encodeNonDefaultQueryString(
|
||||
qsConfig,
|
||||
params,
|
||||
nonNamespacedParams
|
||||
);
|
||||
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
|
||||
* @param {object} qs config object for namespacing params, filtering defaults
|
||||
* @param {object} query param object
|
||||
* @param {object} any non-namespaced params to append
|
||||
* @return {string} url query string
|
||||
*/
|
||||
export const encodeNonDefaultQueryString = (config, params) => {
|
||||
export const encodeNonDefaultQueryString = (
|
||||
config,
|
||||
params,
|
||||
nonNamespacedParams = {}
|
||||
) => {
|
||||
if (!params) return '';
|
||||
|
||||
const paramsWithoutDefaults = removeParams({}, params, config.defaultParams);
|
||||
return encodeQueryString(
|
||||
namespaceParams(config.namespace, paramsWithoutDefaults)
|
||||
);
|
||||
return encodeQueryString({
|
||||
...namespaceParams(config.namespace, paramsWithoutDefaults),
|
||||
...nonNamespacedParams,
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user