Show:

<p>Provides Plugin.ConsoleFilters plugin class.</p>

<p>This plugin adds the ability to control which Console entries display by filtering on category and source. Two groups of checkboxes are added to the Console footer, one for categories and the other for sources. Only those messages that match a checked category or source are displayed.</p>

Methods

_afterCacheLimitChange

(
  • e
)
protected

Trims the cache of entries to the appropriate new length.

Parameters:

  • e Event

    the attribute change event object

_afterCategoryChange

(
  • e
)
protected

Triggers the Console to update if a known category filter changes value (e.g. visible => hidden). Updates the appropriate checkbox's checked state if necessary.

Parameters:

  • e Event

    the attribute change event object

_afterClearConsole

() protected

Flushes the cached entries after a call to the Console's clearConsole().

_afterSourceChange

(
  • e
)
protected

Triggers the Console to update if a known source filter changes value (e.g. visible => hidden). Updates the appropriate checkbox's checked state if necessary.

Parameters:

  • e Event

    the attribute change event object

_createCheckbox

(
  • container
  • name
)
protected

Creates a checkbox and label from the ConsoleFilters.FILTER_TEMPLATE for the provided type and name. The checkbox and label are appended to the container node passes as the first arg.

Parameters:

  • container Node

    the parentNode of the new checkbox and label

  • name String

    the identifier of the filter

_filterBuffer

() protected

Flushes the Console's print buffer of any entries that have a category or source that is currently being excluded.

_onCategoryCheckboxClick

(
  • e
)
protected

Passes checkbox clicks on to the category attribute.

Parameters:

_onEntry

(
  • e
)
protected

Ensures a filter is set up for any new categories or sources and collects the messages in _entries. If the message is stamped with a category or source that is currently being filtered out, the message will not pass to the Console's print buffer.

Parameters:

  • e Event

    the custom event object

_onSourceCheckboxClick

(
  • e
)
protected

Passes checkbox clicks on to the source attribute.

Parameters:

_setCacheLimit

(
  • v
)
Number protected

Setter method for cacheLimit attribute. Basically a validator to ensure numeric input.

Parameters:

  • v Number

    Maximum number of entries

Returns:

_uiSetCheckbox

(
  • type
  • item
  • checked
)
protected

Updates the checked property of a filter checkbox of the specified type. If no checkbox is found for the input params, one is created.

Parameters:

  • type String

    'category' or 'source'

  • item String

    the name of the filter (e.g. 'info', 'event')

  • checked Boolean

    value to set the checkbox's checked property

_validateCategory

(
  • cat
  • v
)
protected

Validates category updates are objects and the subattribute is not too deep.

Parameters:

  • cat String

    the new category:visibility map

  • v String

    the subattribute path updated

Returns:

Boolean

_validateSource

(
  • cat
  • v
)
protected

Validates source updates are objects and the subattribute is not too deep.

Parameters:

  • cat String

    the new source:visibility map

  • v String

    the subattribute path updated

Returns:

Boolean

bindUI

() protected

Binds to checkbox click events and internal attribute change events to maintain the UI state.

destructor

() protected

Removes the plugin UI and unwires events.

hideCategory

(
  • cat
)

Hides any number of categories from the UI. Convenience method for myConsole.filter.set('category.foo', false); set('category.bar', false); and so on.

Parameters:

  • cat String multiple

    1..n categories to filter out of the UI

hideSource

(
  • src
)

Hides any number of sources from the UI. Convenience method for myConsole.filter.set('source.foo', false); set('source.bar', false); and so on.

Parameters:

  • src String multiple

    1..n sources to filter out of the UI

initializer

() protected

Initialize entries collection and attach listeners to host events and methods.

refreshConsole

()

Repopulates the Console with entries appropriate to the current filter settings.

renderUI

() protected

Adds the category and source filter sections to the Console footer.

showCategory

(
  • cat
)

Shows any number of categories in the UI. Convenience method for myConsole.filter.set('category.foo', true); set('category.bar', true); and so on.

Parameters:

  • cat String multiple

    1..n categories to allow to display in the UI

showSource

(
  • src
)

Shows any number of sources in the UI. Convenience method for myConsole.filter.set('source.foo', true); set('source.bar', true); and so on.

Parameters:

  • src String multiple

    1..n sources to allow to display in the UI

syncUI

()

Updates the UI to be in accordance with the current state of the plugin.

Properties

_cacheLimit

Number protected

Maximum number of entries to store in the message cache.

Default: Infinity

_categories

Node protected

The container node created to house the category filters.

_entries

Array protected

Collection of all log messages passed through since the plugin's instantiation. This holds all messages regardless of filter status. Used as a single source of truth for repopulating the Console body when filters are changed.

_sources

Node protected

The container node created to house the source filters.

CATEGORIES_TEMPLATE

String static

Markup template used to create the container for the category filters.

CHROME_CLASSES

Object protected static

Classnames used by the templates when creating nodes.

FILTER_TEMPLATE

String static

Markup template used to create the category and source filter checkboxes.

NAME

String static

Plugin name.

Default: 'consoleFilters'

NS

String static

The namespace hung off the host object that this plugin will inhabit.

Default: 'filter'

SOURCES_TEMPLATE

String static

Markup template used to create the container for the source filters.

Attributes

cacheLimit

Number

Maximum number of entries to store in the message cache. Use this to limit the memory footprint in environments with heavy log usage. By default, there is no limit (Number.POSITIVE_INFINITY).

Default: Number.POSITIVE_INFINITY

category

Object

<p>Map of entry categories to their visibility status. Update a particular category's visibility by setting the subattribute to true (visible) or false (hidden).</p>

<p>For example, yconsole.filter.set('category.info', false) to hide log entries with the category/logLevel of 'info'.</p>

<p>Similarly, yconsole.filter.get('category.warn') will return a boolean indicating whether that category is currently being included in the UI.</p>

<p>Unlike the YUI instance configuration's logInclude and logExclude properties, filtered entries are only hidden from the UI, but can be made visible again.</p>

defaultVisibility

Boolean

Default visibility applied to new categories and sources.

Default: true

source

Object

<p>Map of entry sources to their visibility status. Update a particular sources's visibility by setting the subattribute to true (visible) or false (hidden).</p>

<p>For example, yconsole.filter.set('sources.slider', false) to hide log entries originating from Y.Slider.</p>