74b7c00 webui: extract header and action logic from facet to separate mixins

Authored and Committed by pvoborni 3 years ago
    webui: extract header and action logic from facet to separate mixins
    
    Into:
    * ActionMixin
    * HeaderMixin
    
    It is supposed to be used as a mixin classes to facet.Facets. In long
    term it should replace/serve as a base class for facet.facet.
    
    e.g:
    var SomeFacet = declare([Facet, ActionMixin, HeaderMixin], {
    	foo: function() {}
    });
    
    Then following spec can be used:
    
    some_facet_spec = {
        name: 'some',
        label: 'Some Facet',
        tab_label: 'Some Facet',
        facet_groups: [foo.bar_facet_group],
        facet_group: 'search',
        actions: ['refresh'],
        control_buttons: [
            {
                name: 'refresh',
                label: '@i18n:buttons.refresh',
                icon: 'fa-refresh'
            }
        ],
    	header_actions: [refresh]
    };
    
    reg.facet.register({
        type: 'some',
        ctor: SomeFacet,
        spec: some_facet_spec
    });
    
    prerequisite for: https://fedorahosted.org/freeipa/ticket/4286
    
    Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>