Unique save filter name configuration

Hi,

Is it possible when i save filter name configuration it must not allow duplicate name which is already present.

filtername

Hi Adnan,

Thank you for pointing out the problem.
Created issue: Prevent from creating filter configurations with the same name · Issue #1514 · jmix-framework/jmix · GitHub

As a workaround, you could override FilterSaveAsAction action in your project: create a subclass, annotate with @ActionType(FilterSaveAsAction.ID) and override applyDefaultInputDialogOkAction() method.

Hi,

I tried workaround solution but overridden code is not getting call, default method written in FilterSaveAsAction class is getting call.

below Subclass is created

@ActionType(FilterSaveAsAction.ID)
public class ConfigurationFilter extends FilterSaveAsAction{
    public static final String ID = "filter_saveAs";

protected void applyDefaultInputDialogOkAction(InputDialog.InputDialogCloseEvent inputDialogCloseEvent) {
        String id = inputDialogCloseEvent.getValue("idField");
        if (id != null) {
            Filter.Configuration configuration = filter.getCurrentConfiguration();
            Filter.Configuration copy = copyConfiguration(id, configuration);
            copy.setName(inputDialogCloseEvent.getValue("nameField"));
            saveNewConfigurationModel(copy);
        }
    }
}

below class which was overridden

@StudioAction(
        target = "io.jmix.ui.component.Filter",
        description = "Saves current filter configuration under a new id and name")
@ActionType(FilterSaveAsAction.ID)
public class FilterSaveAsAction extends FilterAction {

  public static final String ID = "filter_saveAs";
 protected void applyDefaultInputDialogOkAction(InputDialog.InputDialogCloseEvent inputDialogCloseEvent) {
        String id = inputDialogCloseEvent.getValue("idField");
        if (id != null) {
            Filter.Configuration configuration = filter.getCurrentConfiguration();
            Filter.Configuration copy = copyConfiguration(id, configuration);
            copy.setName(inputDialogCloseEvent.getValue("nameField"));
            saveNewConfigurationModel(copy);
        }
    }
}

Hi Adnan,

It turned out that some actions cannot be overridden in the application.
Created issue: Actions created by class cannot be overridden · Issue #1529 · jmix-framework/jmix