Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions src/actions/sponsor-pages-actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ import {
createAction,
getRequest,
postRequest,
putRequest,
deleteRequest,
startLoading,
stopLoading
} from "openstack-uicore-foundation/lib/utils/actions";
Expand All @@ -32,6 +34,9 @@ import { snackbarErrorHandler, snackbarSuccessHandler } from "./base-actions";
export const REQUEST_SPONSOR_PAGES = "REQUEST_SPONSOR_PAGES";
export const RECEIVE_SPONSOR_PAGES = "RECEIVE_SPONSOR_PAGES";

export const SPONSOR_PAGE_ARCHIVED = "SPONSOR_PAGE_ARCHIVED";
export const SPONSOR_PAGE_UNARCHIVED = "SPONSOR_PAGE_UNARCHIVED";

export const GLOBAL_PAGE_CLONED = "GLOBAL_PAGE_CLONED";

export const getSponsorPages =
Expand Down Expand Up @@ -133,3 +138,59 @@ export const cloneGlobalPage =
})
.finally(() => dispatch(stopLoading()));
};

export const archiveSponsorPage = (pageId) => async (dispatch, getState) => {
const { currentSummitState } = getState();
const { currentSummit } = currentSummitState;
const accessToken = await getAccessTokenSafely();
const params = { access_token: accessToken };

dispatch(startLoading());

return putRequest(
null,
createAction(SPONSOR_PAGE_ARCHIVED)({ pageId }),
`${window.SPONSOR_PAGES_API_URL}/api/v1/summits/${currentSummit.id}/show-pages/${pageId}/archive`,
null,
snackbarErrorHandler
)(params)(dispatch)
.then(() => {
dispatch(
snackbarSuccessHandler({
title: T.translate("general.success"),
html: T.translate("sponsor_pages.archived")
})
);
})
.finally(() => {
dispatch(stopLoading());
});
};

export const unarchiveSponsorPage = (pageId) => async (dispatch, getState) => {
const { currentSummitState } = getState();
const { currentSummit } = currentSummitState;
const accessToken = await getAccessTokenSafely();
const params = { access_token: accessToken };

dispatch(startLoading());

return deleteRequest(
null,
createAction(SPONSOR_PAGE_UNARCHIVED)({ pageId }),
`${window.SPONSOR_PAGES_API_URL}/api/v1/summits/${currentSummit.id}/show-pages/${pageId}/archive`,
null,
snackbarErrorHandler
)(params)(dispatch)
.then(() => {
dispatch(
snackbarSuccessHandler({
title: T.translate("general.success"),
html: T.translate("sponsor_pages.unarchived")
})
);
})
.finally(() => {
dispatch(stopLoading());
});
};
18 changes: 13 additions & 5 deletions src/pages/sponsors/sponsor-pages-list-page/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,11 @@ import {
Grid2
} from "@mui/material";
import AddIcon from "@mui/icons-material/Add";
import { getSponsorPages } from "../../../actions/sponsor-pages-actions";
import {
getSponsorPages,
archiveSponsorPage,
unarchiveSponsorPage
} from "../../../actions/sponsor-pages-actions";
import { getSponsorForm } from "../../../actions/sponsor-forms-actions";
import CustomAlert from "../../../components/mui/custom-alert";
import MuiTable from "../../../components/mui/table/mui-table";
Expand All @@ -39,6 +43,8 @@ const SponsorPagesListPage = ({
hideArchived,
totalCount,
getSponsorPages,
archiveSponsorPage,
unarchiveSponsorPage,
getSponsorForm
}) => {
const [openPopup, setOpenPopup] = useState(null);
Expand Down Expand Up @@ -77,10 +83,10 @@ const SponsorPagesListPage = ({
// deleteSponsorForm(itemId);
};

const handleArchiveItem = (item) => console.log("archive ITEM...", item);
// item.is_archived
// ? unarchiveSponsorForm(item.id)
// : archiveSponsorForm(item.id);
const handleArchiveItem = (item) =>
item.is_archived
? unarchiveSponsorPage(item.id)
: archiveSponsorPage(item.id);

const handleHideArchivedForms = (ev) => {
getSponsorPages(
Expand Down Expand Up @@ -230,5 +236,7 @@ const mapStateToProps = ({ sponsorPagesListState }) => ({

export default connect(mapStateToProps, {
getSponsorPages,
archiveSponsorPage,
unarchiveSponsorPage,
getSponsorForm
})(SponsorPagesListPage);
24 changes: 23 additions & 1 deletion src/reducers/sponsors/sponsor-pages-list-reducer.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@
import { LOGOUT_USER } from "openstack-uicore-foundation/lib/security/actions";
import {
RECEIVE_SPONSOR_PAGES,
REQUEST_SPONSOR_PAGES
REQUEST_SPONSOR_PAGES,
SPONSOR_PAGE_ARCHIVED,
SPONSOR_PAGE_UNARCHIVED
} from "../../actions/sponsor-pages-actions";
import { SET_CURRENT_SUMMIT } from "../../actions/summit-actions";
import { PAGES_MODULE_KINDS } from "../../utils/constants";
Expand Down Expand Up @@ -82,6 +84,26 @@ const sponsorPagesListReducer = (state = DEFAULT_STATE, action) => {
lastPage
};
}
case SPONSOR_PAGE_ARCHIVED: {
const { pageId } = payload;
const pages = state.sponsorPages.map((page) =>
page.id === pageId ? { ...page, is_archived: true } : page
);
return {
...state,
sponsorPages: [...pages]
};
}
case SPONSOR_PAGE_UNARCHIVED: {
const { pageId } = payload;
const pages = state.sponsorPages.map((page) =>
page.id === pageId ? { ...page, is_archived: false } : page
);
return {
...state,
sponsorPages: [...pages]
};
}
default:
return state;
}
Expand Down