filter

package
v1.9.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 18, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetStatusDisplayName

func GetStatusDisplayName(status string) string

GetStatusDisplayName returns a human-readable name for a status string

func GetStatusIcon

func GetStatusIcon(status string) string

GetStatusIcon returns an icon for a status string

Types

type BaseFilter

type BaseFilter struct {
	// contains filtered or unexported fields
}

BaseFilter provides common functionality for all filters

func NewBaseFilter

func NewBaseFilter(name, description string) *BaseFilter

NewBaseFilter creates a new base filter

func (*BaseFilter) Apply

func (bf *BaseFilter) Apply(items []interface{}) []interface{}

Apply is a default implementation that returns items unchanged

func (*BaseFilter) Description

func (bf *BaseFilter) Description() string

Description returns the filter description

func (*BaseFilter) GetConfig

func (bf *BaseFilter) GetConfig() FilterConfig

GetConfig returns the basic filter configuration

func (*BaseFilter) IsActive

func (bf *BaseFilter) IsActive() bool

IsActive returns whether the filter is active

func (*BaseFilter) Name

func (bf *BaseFilter) Name() string

Name returns the filter name

func (*BaseFilter) SetActive

func (bf *BaseFilter) SetActive(active bool)

SetActive sets the filter active state

func (*BaseFilter) SetConfig

func (bf *BaseFilter) SetConfig(config FilterConfig) error

SetConfig sets the basic filter configuration

type CategoryFilter

type CategoryFilter struct {
	*BaseFilter
	// contains filtered or unexported fields
}

CategoryFilter implements category-based filtering

func NewCategoryFilter

func NewCategoryFilter() *CategoryFilter

NewCategoryFilter creates a new category filter

func (*CategoryFilter) Apply

func (f *CategoryFilter) Apply(items []interface{}) []interface{}

Apply filters items based on category criteria

func (*CategoryFilter) ClearSelection

func (f *CategoryFilter) ClearSelection()

ClearSelection clears all category selections

func (*CategoryFilter) DeselectCategory

func (f *CategoryFilter) DeselectCategory(category string)

DeselectCategory deselects a category

func (*CategoryFilter) GetAvailableCategories

func (f *CategoryFilter) GetAvailableCategories() []string

GetAvailableCategories returns all available categories

func (*CategoryFilter) GetCategoryCount

func (f *CategoryFilter) GetCategoryCount(items []interface{}) map[string]int

GetCategoryCount returns the number of items in each category

func (*CategoryFilter) GetConfig

func (f *CategoryFilter) GetConfig() FilterConfig

GetConfig returns the filter configuration

func (*CategoryFilter) GetSelectedCategories

func (f *CategoryFilter) GetSelectedCategories() []string

GetSelectedCategories returns all selected categories

func (*CategoryFilter) IsCategorySelected

func (f *CategoryFilter) IsCategorySelected(category string) bool

IsCategorySelected returns whether a category is selected

func (*CategoryFilter) SelectAllCategories

func (f *CategoryFilter) SelectAllCategories()

SelectAllCategories selects all available categories

func (*CategoryFilter) SelectCategory

func (f *CategoryFilter) SelectCategory(category string)

SelectCategory selects a category

func (*CategoryFilter) SetAvailableCategories

func (f *CategoryFilter) SetAvailableCategories(categories []string)

SetAvailableCategories sets the list of available categories

func (*CategoryFilter) SetConfig

func (f *CategoryFilter) SetConfig(config FilterConfig) error

SetConfig sets the filter configuration

func (*CategoryFilter) ToggleCategory

func (f *CategoryFilter) ToggleCategory(category string)

ToggleCategory toggles selection of a category

type CategoryFilterConfig

type CategoryFilterConfig struct {
	SelectedCategories  map[string]bool `json:"selected_categories"`
	AvailableCategories []string        `json:"available_categories"`
}

CategoryFilterConfig holds configuration for category filter

type ExecutionStatus

type ExecutionStatus string

ExecutionStatus represents the status of command execution

const (
	StatusPending ExecutionStatus = "pending"
	StatusRunning ExecutionStatus = "running"
	StatusSuccess ExecutionStatus = "success"
	StatusFailed  ExecutionStatus = "failed"
	StatusSkipped ExecutionStatus = "skipped"
)

type FilePresetStorage

type FilePresetStorage struct {
	// contains filtered or unexported fields
}

FilePresetStorage implements preset storage using files

func NewFilePresetStorage

func NewFilePresetStorage(baseDir string) (*FilePresetStorage, error)

NewFilePresetStorage creates a file-based preset storage

func (*FilePresetStorage) Delete

func (fps *FilePresetStorage) Delete(id string) error

Delete deletes a preset file

func (*FilePresetStorage) Exists

func (fps *FilePresetStorage) Exists(id string) bool

Exists checks if a preset file exists

func (*FilePresetStorage) List

func (fps *FilePresetStorage) List() []string

List returns a list of all preset IDs

func (*FilePresetStorage) Load

func (fps *FilePresetStorage) Load(id string) (*FilterSet, error)

Load loads a preset from a file

func (*FilePresetStorage) LoadAll

func (fps *FilePresetStorage) LoadAll() ([]*FilterSet, error)

LoadAll loads all presets from files

func (*FilePresetStorage) Save

func (fps *FilePresetStorage) Save(preset *FilterSet) error

Save saves a preset to a file

type Filter

type Filter interface {
	Name() string
	Description() string
	Apply(items []interface{}) []interface{}
	IsActive() bool
	SetActive(bool)
	GetConfig() FilterConfig
	SetConfig(FilterConfig) error
}

Filter defines the interface for all filter types

type FilterConfig

type FilterConfig map[string]interface{}

FilterConfig holds configuration data for a filter

type FilterEvent

type FilterEvent struct {
	Type      FilterEventType `json:"type"`
	FilterID  string          `json:"filter_id"`
	Timestamp time.Time       `json:"timestamp"`
	Data      interface{}     `json:"data"`
}

FilterEvent represents events in the filter system

type FilterEventType

type FilterEventType string

FilterEventType defines types of filter events

const (
	EventFilterActivated   FilterEventType = "filter_activated"
	EventFilterDeactivated FilterEventType = "filter_deactivated"
	EventFilterConfigured  FilterEventType = "filter_configured"
	EventFilterApplied     FilterEventType = "filter_applied"
	EventPresetSaved       FilterEventType = "preset_saved"
	EventPresetLoaded      FilterEventType = "preset_loaded"
)

type FilterExport

type FilterExport struct {
	Name   string       `json:"name"`
	Active bool         `json:"active"`
	Config FilterConfig `json:"config"`
}

FilterExport represents exported filter configuration

type FilterPanel

type FilterPanel struct {
	*tview.Flex
	// contains filtered or unexported fields
}

FilterPanel represents the TUI component for filter management

func NewFilterPanel

func NewFilterPanel(fs *FilterSystem) *FilterPanel

NewFilterPanel creates a new filter panel

func (*FilterPanel) FocusSearch

func (fp *FilterPanel) FocusSearch()

func (*FilterPanel) GetActiveFilterCount

func (fp *FilterPanel) GetActiveFilterCount() int

func (*FilterPanel) GetFocusable

func (fp *FilterPanel) GetFocusable() []tview.Primitive

func (*FilterPanel) GetSearchTerm

func (fp *FilterPanel) GetSearchTerm() string

func (*FilterPanel) IsVisible

func (fp *FilterPanel) IsVisible() bool

func (*FilterPanel) SetOnUpdate

func (fp *FilterPanel) SetOnUpdate(callback func())

Public interface methods

func (*FilterPanel) SetSearchTerm

func (fp *FilterPanel) SetSearchTerm(term string)

func (*FilterPanel) SetVisible

func (fp *FilterPanel) SetVisible(visible bool)

type FilterSet

type FilterSet struct {
	ID      string         `json:"id"`
	Name    string         `json:"name"`
	Filters []FilterExport `json:"filters"`
	Created time.Time      `json:"created"`
}

FilterSet represents a collection of filter configurations

type FilterStatistics

type FilterStatistics struct {
	TotalItems     int            `json:"total_items"`
	FilteredItems  int            `json:"filtered_items"`
	CategoryCounts map[string]int `json:"category_counts"`
	StatusCounts   map[string]int `json:"status_counts"`
	LastUpdated    time.Time      `json:"last_updated"`
}

FilterStatistics holds detailed filter statistics

type FilterStats

type FilterStats struct {
	TotalItems     int           `json:"total_items"`
	FilteredItems  int           `json:"filtered_items"`
	FilterDuration time.Duration `json:"filter_duration"`
	LastUpdated    time.Time     `json:"last_updated"`
}

FilterStats holds statistics about filter performance

type FilterSystem

type FilterSystem struct {
	// contains filtered or unexported fields
}

FilterSystem manages a collection of filters and their application

func NewFilterSystem

func NewFilterSystem() *FilterSystem

NewFilterSystem creates a new filter system with default filters

func (*FilterSystem) AddFilter

func (fs *FilterSystem) AddFilter(filter Filter)

AddFilter adds a filter to the system

func (*FilterSystem) Apply

func (fs *FilterSystem) Apply(items []interface{}) []interface{}

Apply applies all active filters to the given items

func (*FilterSystem) ApplyFilters

func (fs *FilterSystem) ApplyFilters(items []interface{}) []interface{}

ApplyFilters is an alias for Apply for compatibility

func (*FilterSystem) ClearAllFilters

func (fs *FilterSystem) ClearAllFilters()

ClearAllFilters deactivates all filters

func (*FilterSystem) ExportConfig

func (fs *FilterSystem) ExportConfig() []FilterExport

ExportConfig exports current filter configuration

func (*FilterSystem) GetActiveFilters

func (fs *FilterSystem) GetActiveFilters() []Filter

GetActiveFilters returns all currently active filters

func (*FilterSystem) GetFilter

func (fs *FilterSystem) GetFilter(name string) Filter

GetFilter retrieves a filter by name

func (*FilterSystem) GetFilters

func (fs *FilterSystem) GetFilters() []Filter

GetFilters returns all filters in the system

func (*FilterSystem) GetStatistics

func (fs *FilterSystem) GetStatistics(items []interface{}) *FilterStatistics

GetStatistics returns detailed statistics including category and status counts

func (*FilterSystem) GetStats

func (fs *FilterSystem) GetStats(items []interface{}) *FilterStats

GetStats returns statistics about filter performance

func (*FilterSystem) ImportConfig

func (fs *FilterSystem) ImportConfig(exports []FilterExport) error

ImportConfig imports filter configuration

func (*FilterSystem) LoadConfig

func (fs *FilterSystem) LoadConfig(path string) error

LoadConfig loads filter configuration from a file

func (*FilterSystem) RemoveFilter

func (fs *FilterSystem) RemoveFilter(name string)

RemoveFilter removes a filter by name

func (*FilterSystem) SaveConfig

func (fs *FilterSystem) SaveConfig(path string) error

SaveConfig saves the current filter configuration to a file

func (*FilterSystem) SetCallback

func (fs *FilterSystem) SetCallback(callback func([]interface{}))

SetCallback sets the callback function for filter updates

type FilterableItem

type FilterableItem interface {
	GetCategory() string
	GetStatus() ExecutionStatus
	GetSearchableText() []string
}

FilterableItem defines what items can be filtered

type PresetManager

type PresetManager struct {
	// contains filtered or unexported fields
}

PresetManager manages filter presets

func NewPresetManager

func NewPresetManager(storage PresetStorage) *PresetManager

NewPresetManager creates a new preset manager

func (*PresetManager) ApplyPreset

func (pm *PresetManager) ApplyPreset(id string, fs *FilterSystem) error

ApplyPreset applies a preset to the filter system

func (*PresetManager) DeletePreset

func (pm *PresetManager) DeletePreset(id string) error

DeletePreset deletes a preset

func (*PresetManager) ExportPresets

func (pm *PresetManager) ExportPresets(filename string) error

ExportPresets exports all presets to a JSON file

func (*PresetManager) GetPreset

func (pm *PresetManager) GetPreset(id string) (*FilterSet, error)

GetPreset returns a preset by ID

func (*PresetManager) GetPresetNames

func (pm *PresetManager) GetPresetNames() []string

GetPresetNames returns names of all presets

func (*PresetManager) ImportPresets

func (pm *PresetManager) ImportPresets(filename string) error

ImportPresets imports presets from a JSON file

func (*PresetManager) ListPresets

func (pm *PresetManager) ListPresets() []*FilterSet

ListPresets returns all available presets

func (*PresetManager) RenamePreset

func (pm *PresetManager) RenamePreset(id, newName string) error

RenamePreset renames a preset

func (*PresetManager) SaveCurrentAsPreset

func (pm *PresetManager) SaveCurrentAsPreset(name string, fs *FilterSystem) error

SaveCurrentAsPreset saves the current filter state as a new preset

func (*PresetManager) UpdatePreset

func (pm *PresetManager) UpdatePreset(id string, fs *FilterSystem) error

UpdatePreset updates an existing preset

type PresetStorage

type PresetStorage interface {
	Save(preset *FilterSet) error
	Load(id string) (*FilterSet, error)
	LoadAll() ([]*FilterSet, error)
	List() []string
	Delete(id string) error
	Exists(id string) bool
}

PresetStorage defines the interface for preset storage

type StatusFilter

type StatusFilter struct {
	*BaseFilter
	// contains filtered or unexported fields
}

StatusFilter implements status-based filtering

func NewStatusFilter

func NewStatusFilter() *StatusFilter

NewStatusFilter creates a new status filter

func (*StatusFilter) AllowAllStatuses

func (f *StatusFilter) AllowAllStatuses()

AllowAllStatuses allows all statuses

func (*StatusFilter) AllowFailed

func (f *StatusFilter) AllowFailed()

AllowFailed allows only failed statuses

func (*StatusFilter) AllowOnlyStatus

func (f *StatusFilter) AllowOnlyStatus(status ExecutionStatus)

AllowOnlyStatus allows only the specified status

func (*StatusFilter) AllowSuccessful

func (f *StatusFilter) AllowSuccessful()

AllowSuccessful allows only successful statuses

func (*StatusFilter) Apply

func (f *StatusFilter) Apply(items []interface{}) []interface{}

Apply filters items based on status criteria

func (*StatusFilter) DisallowAllStatuses

func (f *StatusFilter) DisallowAllStatuses()

DisallowAllStatuses disallows all statuses (effectively disabling the filter)

func (*StatusFilter) GetAllStatuses

func (f *StatusFilter) GetAllStatuses() []ExecutionStatus

GetAllStatuses returns all possible statuses

func (*StatusFilter) GetAllowedStatuses

func (f *StatusFilter) GetAllowedStatuses() []ExecutionStatus

GetAllowedStatuses returns all allowed statuses

func (*StatusFilter) GetConfig

func (f *StatusFilter) GetConfig() FilterConfig

GetConfig returns the filter configuration

func (*StatusFilter) GetStatusCount

func (f *StatusFilter) GetStatusCount(items []interface{}) map[ExecutionStatus]int

GetStatusCount returns the number of items with each status

func (*StatusFilter) GetStatusDisplayName

func (f *StatusFilter) GetStatusDisplayName(status ExecutionStatus) string

GetStatusDisplayName returns a human-readable name for a status

func (*StatusFilter) GetStatusIcon

func (f *StatusFilter) GetStatusIcon(status ExecutionStatus) string

GetStatusIcon returns an icon for a status

func (*StatusFilter) IsStatusAllowed

func (f *StatusFilter) IsStatusAllowed(status ExecutionStatus) bool

IsStatusAllowed returns whether a status is allowed

func (*StatusFilter) SetConfig

func (f *StatusFilter) SetConfig(config FilterConfig) error

SetConfig sets the filter configuration

func (*StatusFilter) SetStatusAllowed

func (f *StatusFilter) SetStatusAllowed(status ExecutionStatus, allowed bool)

SetStatusAllowed sets whether a status is allowed

func (*StatusFilter) ToggleStatus

func (f *StatusFilter) ToggleStatus(status ExecutionStatus)

ToggleStatus toggles the allowed state of a status

type StatusFilterConfig

type StatusFilterConfig struct {
	AllowedStatuses map[ExecutionStatus]bool `json:"allowed_statuses"`
}

StatusFilterConfig holds configuration for status filter

type TextFilter

type TextFilter struct {
	*BaseFilter
	// contains filtered or unexported fields
}

TextFilter implements text-based filtering

func NewTextFilter

func NewTextFilter() *TextFilter

NewTextFilter creates a new text filter

func (*TextFilter) Apply

func (f *TextFilter) Apply(items []interface{}) []interface{}

Apply filters items based on text search criteria

func (*TextFilter) ClearSearch

func (f *TextFilter) ClearSearch()

ClearSearch clears the search term and deactivates the filter

func (*TextFilter) GetConfig

func (f *TextFilter) GetConfig() FilterConfig

GetConfig returns the filter configuration

func (*TextFilter) GetFields

func (f *TextFilter) GetFields() []string

GetFields returns the search fields

func (*TextFilter) GetSearchTerm

func (f *TextFilter) GetSearchTerm() string

GetSearchTerm returns the current search term

func (*TextFilter) IsCaseSensitive

func (f *TextFilter) IsCaseSensitive() bool

IsCaseSensitive returns whether search is case sensitive

func (*TextFilter) IsUsingRegex

func (f *TextFilter) IsUsingRegex() bool

IsUsingRegex returns whether regex is enabled

func (*TextFilter) SetCaseSensitive

func (f *TextFilter) SetCaseSensitive(sensitive bool)

SetCaseSensitive sets case sensitivity

func (*TextFilter) SetConfig

func (f *TextFilter) SetConfig(config FilterConfig) error

SetConfig sets the filter configuration

func (*TextFilter) SetFields

func (f *TextFilter) SetFields(fields []string)

SetFields sets the search fields

func (*TextFilter) SetSearchTerm

func (f *TextFilter) SetSearchTerm(term string)

SetSearchTerm sets the search term

func (*TextFilter) SetUseRegex

func (f *TextFilter) SetUseRegex(useRegex bool)

SetUseRegex sets whether to use regex

type TextSearchConfig

type TextSearchConfig struct {
	SearchTerm    string   `json:"search_term"`
	CaseSensitive bool     `json:"case_sensitive"`
	UseRegex      bool     `json:"use_regex"`
	Fields        []string `json:"fields"`
}

TextSearchConfig holds configuration for text search filter

type TextSearchFilter

type TextSearchFilter = TextFilter

TextSearchFilter is an alias for TextFilter for backward compatibility

func NewTextSearchFilter

func NewTextSearchFilter() *TextSearchFilter

NewTextSearchFilter creates a new text search filter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL