Yahoo! UI Library

console-filters  3.0.0

Yahoo! UI Library > console-filters > Plugin.ConsoleFilters
Search:
 
Filters

Class Plugin.ConsoleFilters

Provides Plugin.ConsoleFilters plugin class.

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.

Properties

_categories - protected Node

The container node created to house the category filters.

_entries - protected Array

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 - protected Node

The container node created to house the source filters.

ConsoleFilters.CATEGORIES_TEMPLATE - static String

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

ConsoleFilters.CHROME_CLASSES - protected static Object

Classnames used by the templates when creating nodes.

ConsoleFilters.FILTER_TEMPLATE - static String

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

ConsoleFilters.NAME - static String

Plugin name.
Default Value: 'consoleFilters'

ConsoleFilters.NS - static String

The namespace hung off the host object that this plugin will inhabit.
Default Value: 'filter'

ConsoleFilters.SOURCES_TEMPLATE - static String

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

Methods

_afterCacheLimitChange

protected void _afterCacheLimitChange ( e )
Trims the cache of entries to the appropriate new length.
Parameters:
e <Event> the attribute change event object

_afterCategoryChange

protected void _afterCategoryChange ( e )
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 void _afterClearConsole ( )
Flushes the cached entries after a call to the Console's clearConsole().

_afterSourceChange

protected void _afterSourceChange ( e )
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

protected void _createCheckbox ( container , name )
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 void _filterBuffer ( )
Flushes the Console's print buffer of any entries that have a category or source that is currently being excluded.

_onCategoryCheckboxClick

protected void _onCategoryCheckboxClick ( e )
Passes checkbox clicks on to the category attribute.
Parameters:
e <Event> the DOM event

_onEntry

protected void _onEntry ( e )
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

protected void _onSourceCheckboxClick ( e )
Passes checkbox clicks on to the source attribute.
Parameters:
e <Event> the DOM event

_uiSetCheckbox

protected void _uiSetCheckbox ( type , item , checked )
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

protected _validateCategory ( cat , v )
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

protected _validateSource ( cat , v )
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 void bindUI ( )
Binds to checkbox click events and internal attribute change events to maintain the UI state.

destructor

protected void destructor ( )
Removes the plugin UI and unwires events.

hideCategory

void 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> 1..n categories to filter out of the UI

hideSource

void 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> 1..n sources to filter out of the UI

initializer

protected void initializer ( )
Initialize entries collection and attach listeners to host events and methods.

refreshConsole

void refreshConsole ( )
Repopulates the Console with entries appropriate to the current filter settings.

renderUI

protected void renderUI ( )
Adds the category and source filter sections to the Console footer.

showCategory

void 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> 1..n categories to allow to display in the UI

showSource

void 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> 1..n sources to allow to display in the UI

syncUI

void syncUI ( )
Updates the UI to be in accordance with the current state of the plugin.

Events

cacheLimitChange

cacheLimitChange ( event )
Fires when the value for the configuration attribute 'cacheLimit' is changed. You can listen for the event using the on method if you wish to be notified before the attribute's value has changed, or using the after method if you wish to be notified after the attribute's value has changed.
Parameters:
event <Event.Facade> An Event Facade object with the following attribute specific properties added:
prevVal
The value of the attribute, prior to it being set
newVal
The value the attribute is to be set to
attrName
The name of the attribute being set
subAttrName
If setting a property within the attribute's value, the name of the sub-attribute property being set

categoryChange

categoryChange ( event )
Fires when the value for the configuration attribute 'category' is changed. You can listen for the event using the on method if you wish to be notified before the attribute's value has changed, or using the after method if you wish to be notified after the attribute's value has changed.
Parameters:
event <Event.Facade> An Event Facade object with the following attribute specific properties added:
prevVal
The value of the attribute, prior to it being set
newVal
The value the attribute is to be set to
attrName
The name of the attribute being set
subAttrName
If setting a property within the attribute's value, the name of the sub-attribute property being set

defaultVisibilityChange

defaultVisibilityChange ( event )
Fires when the value for the configuration attribute 'defaultVisibility' is changed. You can listen for the event using the on method if you wish to be notified before the attribute's value has changed, or using the after method if you wish to be notified after the attribute's value has changed.
Parameters:
event <Event.Facade> An Event Facade object with the following attribute specific properties added:
prevVal
The value of the attribute, prior to it being set
newVal
The value the attribute is to be set to
attrName
The name of the attribute being set
subAttrName
If setting a property within the attribute's value, the name of the sub-attribute property being set

sourceChange

sourceChange ( event )
Fires when the value for the configuration attribute 'source' is changed. You can listen for the event using the on method if you wish to be notified before the attribute's value has changed, or using the after method if you wish to be notified after the attribute's value has changed.
Parameters:
event <Event.Facade> An Event Facade object with the following attribute specific properties added:
prevVal
The value of the attribute, prior to it being set
newVal
The value the attribute is to be set to
attrName
The name of the attribute being set
subAttrName
If setting a property within the attribute's value, the name of the sub-attribute property being set

Configuration 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 Value: Number.POSITIVE_INFINITY

category - Object

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

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

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

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


defaultVisibility - {Boolean}

Default visibility applied to new categories and sources.
Default Value: true

source - Object

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

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



Copyright © 2009 Yahoo! Inc. All rights reserved.