Bug 40191: Handle resources without detail view in navigation options
Fixes an edge case where resources without a dedicated show/detail component (like Record Sources) would show invalid navigation options. - ResourceFormSave: Filter out "show" option when no_show is true - RecordSourcesResource: Set no_show flag to hide inappropriate options Ensures the split button menu only shows valid navigation targets. Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
parent
671ecb0731
commit
ce6367fede
|
|
@ -40,6 +40,7 @@ export default {
|
|||
newLabel: $__("New record source"),
|
||||
},
|
||||
props,
|
||||
navigationOnFormSave: "RecordSourcesList",
|
||||
resourceAttrs: [
|
||||
{
|
||||
name: "record_source_id",
|
||||
|
|
@ -96,7 +97,7 @@ export default {
|
|||
baseResource.setMessage(
|
||||
$__("Record source updated!")
|
||||
);
|
||||
return recordResource
|
||||
return recordResource;
|
||||
},
|
||||
error => {}
|
||||
);
|
||||
|
|
@ -104,7 +105,7 @@ export default {
|
|||
return baseResource.apiClient.create(recordSource).then(
|
||||
recordResource => {
|
||||
baseResource.setMessage($__("Record source created!"));
|
||||
return recordResource
|
||||
return recordResource;
|
||||
},
|
||||
error => {}
|
||||
);
|
||||
|
|
|
|||
|
|
@ -214,6 +214,7 @@ export default {
|
|||
callback: () => {
|
||||
saveOptionSelected.value = components.list;
|
||||
if (
|
||||
props.instancedResource.stickyToolbar &&
|
||||
props.instancedResource.stickyToolbar.includes(
|
||||
"Form"
|
||||
)
|
||||
|
|
@ -229,6 +230,7 @@ export default {
|
|||
callback: () => {
|
||||
saveOptionSelected.value = components.show;
|
||||
if (
|
||||
props.instancedResource.stickyToolbar &&
|
||||
props.instancedResource.stickyToolbar.includes(
|
||||
"Form"
|
||||
)
|
||||
|
|
@ -244,6 +246,7 @@ export default {
|
|||
callback: () => {
|
||||
saveOptionSelected.value = components.edit;
|
||||
if (
|
||||
props.instancedResource.stickyToolbar &&
|
||||
props.instancedResource.stickyToolbar.includes(
|
||||
"Form"
|
||||
)
|
||||
|
|
@ -254,6 +257,7 @@ export default {
|
|||
},
|
||||
};
|
||||
return Object.keys(buttonOptions).reduce((acc, key) => {
|
||||
if (!components[key]) return acc;
|
||||
if (key === "show" && !navigationOnFormSave) return acc;
|
||||
if (components[key] === navigationOnFormSave) return acc;
|
||||
return [buttonOptions[key], ...acc];
|
||||
|
|
|
|||
Loading…
Reference in New Issue