mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-17 21:00:45 +00:00
CE-793 - cleanup pre-code-review; fix alerts; add disabled-state upon-button, etc.
This commit is contained in:
@ -72,7 +72,7 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
const [savedViews, setSavedViews] = useState([] as QRecord[]);
|
const [savedViews, setSavedViews] = useState([] as QRecord[]);
|
||||||
const [savedViewsMenu, setSavedViewsMenu] = useState(null);
|
const [savedViewsMenu, setSavedViewsMenu] = useState(null);
|
||||||
const [savedViewsHaveLoaded, setSavedViewsHaveLoaded] = useState(false);
|
const [savedViewsHaveLoaded, setSavedViewsHaveLoaded] = useState(false);
|
||||||
// const [viewIsModified, setViewIsModified] = useState(false);
|
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||||
|
|
||||||
const [saveFilterPopupOpen, setSaveFilterPopupOpen] = useState(false);
|
const [saveFilterPopupOpen, setSaveFilterPopupOpen] = useState(false);
|
||||||
const [isSaveFilterAs, setIsSaveFilterAs] = useState(false);
|
const [isSaveFilterAs, setIsSaveFilterAs] = useState(false);
|
||||||
@ -104,14 +104,6 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
.then(() =>
|
.then(() =>
|
||||||
{
|
{
|
||||||
setSavedViewsHaveLoaded(true);
|
setSavedViewsHaveLoaded(true);
|
||||||
/*
|
|
||||||
if (currentSavedView != null)
|
|
||||||
{
|
|
||||||
const isModified = JSON.stringify(view) !== currentSavedView.values.get("viewJson");
|
|
||||||
console.log(`Is view modified? ${isModified}\n${JSON.stringify(view)}\n${currentSavedView.values.get("viewJson")}`);
|
|
||||||
setViewIsModified(isModified);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
});
|
});
|
||||||
}, [location, tableMetaData, currentSavedView, view]) // todo#elimGrid does this monitoring work??
|
}, [location, tableMetaData, currentSavedView, view]) // todo#elimGrid does this monitoring work??
|
||||||
|
|
||||||
@ -396,8 +388,6 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
diffVisibilityFunction(activeView.queryColumns, savedView.queryColumns, "Turned off visibility for ");
|
diffVisibilityFunction(activeView.queryColumns, savedView.queryColumns, "Turned off visibility for ");
|
||||||
diffPinsFunction(savedView.queryColumns, activeView.queryColumns, "Changed pinned state for ");
|
diffPinsFunction(savedView.queryColumns, activeView.queryColumns, "Changed pinned state for ");
|
||||||
|
|
||||||
// console.log(`Saved: ${savedView.queryColumns.columns.map(c => c.name).join(",")}`);
|
|
||||||
// console.log(`Active: ${activeView.queryColumns.columns.map(c => c.name).join(",")}`);
|
|
||||||
if(savedView.queryColumns.columns.map(c => c.name).join(",") != activeView.queryColumns.columns.map(c => c.name).join(","))
|
if(savedView.queryColumns.columns.map(c => c.name).join(",") != activeView.queryColumns.columns.map(c => c.name).join(","))
|
||||||
{
|
{
|
||||||
viewDiffs.push("Changed the order of 1 or more columns.");
|
viewDiffs.push("Changed the order of 1 or more columns.");
|
||||||
@ -515,7 +505,7 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
const handleDropdownOptionClick = (optionName: string) =>
|
const handleDropdownOptionClick = (optionName: string) =>
|
||||||
{
|
{
|
||||||
setSaveOptionsOpen(false);
|
setSaveOptionsOpen(false);
|
||||||
setPopupAlertContent(null);
|
setPopupAlertContent("");
|
||||||
closeSavedViewsMenu();
|
closeSavedViewsMenu();
|
||||||
setSaveFilterPopupOpen(true);
|
setSaveFilterPopupOpen(true);
|
||||||
setIsSaveFilterAs(false);
|
setIsSaveFilterAs(false);
|
||||||
@ -556,11 +546,18 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
setPopupAlertContent("");
|
||||||
|
setIsSubmitting(true);
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
if (isDeleteFilter)
|
if (isDeleteFilter)
|
||||||
{
|
{
|
||||||
formData.append("id", currentSavedView.values.get("id"));
|
formData.append("id", currentSavedView.values.get("id"));
|
||||||
await makeSavedViewRequest("deleteSavedView", formData);
|
await makeSavedViewRequest("deleteSavedView", formData);
|
||||||
|
|
||||||
|
setSaveFilterPopupOpen(false);
|
||||||
|
setSaveOptionsOpen(false);
|
||||||
|
|
||||||
await(async() =>
|
await(async() =>
|
||||||
{
|
{
|
||||||
handleDropdownOptionClick(CLEAR_OPTION);
|
handleDropdownOptionClick(CLEAR_OPTION);
|
||||||
@ -603,10 +600,28 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setSaveFilterPopupOpen(false);
|
||||||
|
setSaveOptionsOpen(false);
|
||||||
}
|
}
|
||||||
catch (e: any)
|
catch (e: any)
|
||||||
{
|
{
|
||||||
setPopupAlertContent(JSON.stringify(e.message));
|
let message = JSON.stringify(e);
|
||||||
|
if(typeof e == "string")
|
||||||
|
{
|
||||||
|
message = e;
|
||||||
|
}
|
||||||
|
else if(typeof e == "object" && e.message)
|
||||||
|
{
|
||||||
|
message = e.message;
|
||||||
|
}
|
||||||
|
|
||||||
|
setPopupAlertContent(message);
|
||||||
|
console.log(`Setting error: ${message}`);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
setIsSubmitting(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -764,7 +779,7 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
<Tooltip {...menuTooltipAttribs} title="Create a new view of this table, resetting the filter, columns, and settings to their defaults.">
|
<Tooltip {...menuTooltipAttribs} title="Create a new view of this table, resetting the filters and columns to their defaults.">
|
||||||
<MenuItem onClick={() => handleDropdownOptionClick(CLEAR_OPTION)}>
|
<MenuItem onClick={() => handleDropdownOptionClick(CLEAR_OPTION)}>
|
||||||
<ListItemIcon><Icon>monitor</Icon></ListItemIcon>
|
<ListItemIcon><Icon>monitor</Icon></ListItemIcon>
|
||||||
New View
|
New View
|
||||||
@ -834,7 +849,11 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
aria-describedby="alert-dialog-description"
|
aria-describedby="alert-dialog-description"
|
||||||
onKeyPress={(e) =>
|
onKeyPress={(e) =>
|
||||||
{
|
{
|
||||||
if (e.key == "Enter")
|
////////////////////////////////////////////////////
|
||||||
|
// make user actually hit delete button //
|
||||||
|
// but for other modes, let Enter submit the form //
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
if (e.key == "Enter" && !isDeleteFilter)
|
||||||
{
|
{
|
||||||
handleFilterDialogButtonOnClick();
|
handleFilterDialogButtonOnClick();
|
||||||
}
|
}
|
||||||
@ -860,6 +879,11 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
<DialogContent sx={{width: "500px"}}>
|
<DialogContent sx={{width: "500px"}}>
|
||||||
|
{popupAlertContent ? (
|
||||||
|
<Box mb={1}>
|
||||||
|
<Alert severity="error" onClose={() => setPopupAlertContent("")}>{popupAlertContent}</Alert>
|
||||||
|
</Box>
|
||||||
|
) : ("")}
|
||||||
{
|
{
|
||||||
(! currentSavedView || isSaveFilterAs || isRenameFilter) && ! isDeleteFilter ? (
|
(! currentSavedView || isSaveFilterAs || isRenameFilter) && ! isDeleteFilter ? (
|
||||||
<Box>
|
<Box>
|
||||||
@ -893,19 +917,14 @@ function SavedViews({qController, metaData, tableMetaData, currentSavedView, vie
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
{popupAlertContent ? (
|
|
||||||
<Box m={1}>
|
|
||||||
<Alert severity="error">{popupAlertContent}</Alert>
|
|
||||||
</Box>
|
|
||||||
) : ("")}
|
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
<DialogActions>
|
<DialogActions>
|
||||||
<QCancelButton onClickHandler={handleSaveFilterPopupClose} disabled={false} />
|
<QCancelButton onClickHandler={handleSaveFilterPopupClose} disabled={false} />
|
||||||
{
|
{
|
||||||
isDeleteFilter ?
|
isDeleteFilter ?
|
||||||
<QDeleteButton onClickHandler={handleFilterDialogButtonOnClick} />
|
<QDeleteButton onClickHandler={handleFilterDialogButtonOnClick} disabled={isSubmitting} />
|
||||||
:
|
:
|
||||||
<QSaveButton label="Save" onClickHandler={handleFilterDialogButtonOnClick} disabled={(isSaveFilterAs || currentSavedView == null) && savedViewNameInputValue == null}/>
|
<QSaveButton label="Save" onClickHandler={handleFilterDialogButtonOnClick} disabled={isSubmitting || ((isSaveFilterAs || currentSavedView == null) && savedViewNameInputValue == null)}/>
|
||||||
}
|
}
|
||||||
</DialogActions>
|
</DialogActions>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
Reference in New Issue
Block a user