src/cm/media/js/lib/yui/yui3-3.15.0/build/console/console.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('console', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Console creates a visualization for messages logged through calls to a YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 * instance's <code>Y.log( message, category, source )</code> method.  The
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * debug versions of YUI modules will include logging statements to offer some
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * insight into the steps executed during that module's operation.  Including
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 * log statements in your code will cause those messages to also appear in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
 * Console.  Use Console to aid in developing your page or application.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
 * Entry categories &quot;info&quot;, &quot;warn&quot;, and &quot;error&quot;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
 * are also referred to as the log level, and entries are filtered against the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 * configured logLevel.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * @module console
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
var getCN = Y.ClassNameManager.getClassName,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
    CHECKED        = 'checked',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
    CLEAR          = 'clear',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
    CLICK          = 'click',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    COLLAPSED      = 'collapsed',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    CONSOLE        = 'console',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
    CONTENT_BOX    = 'contentBox',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    DISABLED       = 'disabled',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
    ENTRY          = 'entry',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
    ERROR          = 'error',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
    HEIGHT         = 'height',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    INFO           = 'info',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
    LAST_TIME      = 'lastTime',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
    PAUSE          = 'pause',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
    PAUSED         = 'paused',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
    RESET          = 'reset',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
    START_TIME     = 'startTime',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
    TITLE          = 'title',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
    WARN           = 'warn',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    DOT = '.',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    C_BUTTON           = getCN(CONSOLE,'button'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    C_CHECKBOX         = getCN(CONSOLE,'checkbox'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
    C_CLEAR            = getCN(CONSOLE,CLEAR),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
    C_COLLAPSE         = getCN(CONSOLE,'collapse'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    C_COLLAPSED        = getCN(CONSOLE,COLLAPSED),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
    C_CONSOLE_CONTROLS = getCN(CONSOLE,'controls'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
    C_CONSOLE_HD       = getCN(CONSOLE,'hd'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
    C_CONSOLE_BD       = getCN(CONSOLE,'bd'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
    C_CONSOLE_FT       = getCN(CONSOLE,'ft'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
    C_CONSOLE_TITLE    = getCN(CONSOLE,TITLE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
    C_ENTRY            = getCN(CONSOLE,ENTRY),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
    C_ENTRY_CAT        = getCN(CONSOLE,ENTRY,'cat'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
    C_ENTRY_CONTENT    = getCN(CONSOLE,ENTRY,'content'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
    C_ENTRY_META       = getCN(CONSOLE,ENTRY,'meta'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    C_ENTRY_SRC        = getCN(CONSOLE,ENTRY,'src'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
    C_ENTRY_TIME       = getCN(CONSOLE,ENTRY,'time'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
    C_PAUSE            = getCN(CONSOLE,PAUSE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
    C_PAUSE_LABEL      = getCN(CONSOLE,PAUSE,'label'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
    RE_INLINE_SOURCE = /^(\S+)\s/,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
    RE_AMP = /&(?!#?[a-z0-9]+;)/g,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
    RE_GT  = />/g,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
    RE_LT  = /</g,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
    ESC_AMP = '&#38;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
    ESC_GT  = '&#62;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
    ESC_LT  = '&#60;',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
    ENTRY_TEMPLATE_STR =
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
        '<div class="{entry_class} {cat_class} {src_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
            '<p class="{entry_meta_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
                '<span class="{entry_src_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
                    '{sourceAndDetail}'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
                '</span>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
                '<span class="{entry_cat_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
                    '{category}</span>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
                '<span class="{entry_time_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
                    ' {totalTime}ms (+{elapsedTime}) {localTime}'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
                '</span>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
            '</p>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
            '<pre class="{entry_content_class}">{message}</pre>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
        '</div>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
    L = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
    create     = Y.Node.create,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
    isNumber   = L.isNumber,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
    isString   = L.isString,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
    merge      = Y.merge,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
    substitute = Y.Lang.sub;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
A basic console that displays messages logged throughout your application.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
@class Console
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
@constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
@extends Widget
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
@param [config] {Object} Object literal specifying widget configuration properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
function Console() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
    Console.superclass.constructor.apply(this,arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
Y.Console = Y.extend(Console, Y.Widget,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
// Y.Console prototype
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
     * Category to prefix all event subscriptions to allow for ease of detach
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
     * during destroy.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
     * @property _evtCat
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
     * @type string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
    _evtCat : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
     * Reference to the Node instance containing the header contents.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
     * @property _head
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
     * @type Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
     * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
    _head    : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
     * Reference to the Node instance that will house the console messages.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
     * @property _body
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
     * @type Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
     * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
    _body    : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
     * Reference to the Node instance containing the footer contents.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
     * @property _foot
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
     * @type Node
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
     * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
    _foot    : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
     * Holds the object API returned from <code>Y.later</code> for the print
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
     * loop interval.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
     * @property _printLoop
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
     * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
    _printLoop : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
     * Array of normalized message objects awaiting printing.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
     * @property buffer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
     * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
     * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
    buffer   : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
     * Wrapper for <code>Y.log</code>.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
     * @method log
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
     * @param arg* {MIXED} (all arguments passed through to <code>Y.log</code>)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
     * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
    log : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
        Y.log.apply(Y,arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
     * Clear the console of messages and flush the buffer of pending messages.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
     * @method clearConsole
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
     * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
    clearConsole : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
        // TODO: clear event listeners from console contents
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
        this._body.empty();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
        this._cancelPrintLoop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
        this.buffer = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
     * Clears the console and resets internal timers.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
     * @method reset
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
     * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
    reset : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
        this.fire(RESET);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
     * Collapses the body and footer.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
     * @method collapse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
     * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
    collapse : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
        this.set(COLLAPSED, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
     * Expands the body and footer if collapsed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
     * @method expand
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
     * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
    expand : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
        this.set(COLLAPSED, false);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
     * Outputs buffered messages to the console UI.  This is typically called
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
     * from a scheduled interval until the buffer is empty (referred to as the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
     * print loop).  The number of buffered messages output to the Console is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
     * limited to the number provided as an argument.  If no limit is passed,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
     * all buffered messages are rendered.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
     * @method printBuffer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
     * @param limit {Number} (optional) max number of buffered entries to write
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
     * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
    printBuffer: function (limit) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
        var messages    = this.buffer,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
            debug       = Y.config.debug,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
            entries     = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
            consoleLimit= this.get('consoleLimit'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
            newestOnTop = this.get('newestOnTop'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
            anchor      = newestOnTop ? this._body.get('firstChild') : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
            i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
        if (messages.length > consoleLimit) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
            messages.splice(0, messages.length - consoleLimit);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
        limit = Math.min(messages.length, (limit || messages.length));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
        // turn off logging system
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
        Y.config.debug = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
        if (!this.get(PAUSED) && this.get('rendered')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
            for (i = 0; i < limit && messages.length; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
                entries[i] = this._createEntryHTML(messages.shift());
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
            if (!messages.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
                this._cancelPrintLoop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
            if (entries.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
                if (newestOnTop) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
                    entries.reverse();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
                this._body.insertBefore(create(entries.join('')), anchor);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
                if (this.get('scrollIntoView')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
                    this.scrollToLatest();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
                this._trimOldEntries();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
        // restore logging system
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
        Y.config.debug = debug;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
     * Constructor code.  Set up the buffer and entry template, publish
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
     * internal events, and subscribe to the configured logEvent.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
     * @method initializer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
    initializer : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
        this._evtCat = Y.stamp(this) + '|';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
        this.buffer = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
        this.get('logSource').on(this._evtCat +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
            this.get('logEvent'),Y.bind("_onLogEvent",this));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
         * Transfers a received message to the print loop buffer.  Default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
         * behavior defined in _defEntryFn.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
         * @event entry
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
         * @param event {EventFacade} An Event Facade object with the following attribute specific properties added:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
         *  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
         *      <dt>message</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
         *          <dd>The message data normalized into an object literal (see _normalizeMessage)</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
         *  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
         * @preventable _defEntryFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
        this.publish(ENTRY, { defaultFn: this._defEntryFn });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
         * Triggers the reset behavior via the default logic in _defResetFn.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
         * @event reset
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
         * @param event {EventFacade} Event Facade object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
         * @preventable _defResetFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
        this.publish(RESET, { defaultFn: this._defResetFn });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
        this.after('rendered', this._schedulePrint);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
     * Tears down the instance, flushing event subscriptions and purging the UI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
     * @method destructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   338
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   339
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   340
    destructor : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   341
        var bb = this.get('boundingBox');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   342
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   343
        this._cancelPrintLoop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   344
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   345
        this.get('logSource').detach(this._evtCat + '*');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   346
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   347
        bb.purge(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   348
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   349
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   350
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   351
     * Generate the Console UI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   352
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   353
     * @method renderUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   354
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   355
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   356
    renderUI : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   357
        this._initHead();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   358
        this._initBody();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   359
        this._initFoot();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   360
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   361
        // Apply positioning to the bounding box if appropriate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   362
        var style = this.get('style');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   363
        if (style !== 'block') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   364
            this.get('boundingBox').addClass(this.getClassName(style));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   365
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   366
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   367
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   368
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   369
     * Sync the UI state to the current attribute state.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   370
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   371
     * @method syncUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   372
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   373
    syncUI : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   374
        this._uiUpdatePaused(this.get(PAUSED));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   375
        this._uiUpdateCollapsed(this.get(COLLAPSED));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   376
        this._uiSetHeight(this.get(HEIGHT));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   377
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   378
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   379
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   380
     * Set up event listeners to wire up the UI to the internal state.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   381
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   382
     * @method bindUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   383
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   384
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   385
    bindUI : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   386
        this.get(CONTENT_BOX).one('button.'+C_COLLAPSE).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   387
            on(CLICK,this._onCollapseClick,this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   388
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   389
        this.get(CONTENT_BOX).one('input[type=checkbox].'+C_PAUSE).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   390
            on(CLICK,this._onPauseClick,this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   391
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   392
        this.get(CONTENT_BOX).one('button.'+C_CLEAR).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   393
            on(CLICK,this._onClearClick,this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   394
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   395
        // Attribute changes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   396
        this.after(this._evtCat + 'stringsChange',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   397
            this._afterStringsChange);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   398
        this.after(this._evtCat + 'pausedChange',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   399
            this._afterPausedChange);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   400
        this.after(this._evtCat + 'consoleLimitChange',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   401
            this._afterConsoleLimitChange);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   402
        this.after(this._evtCat + 'collapsedChange',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   403
            this._afterCollapsedChange);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   404
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   405
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   406
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   407
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   408
     * Create the DOM structure for the header elements.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   409
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   410
     * @method _initHead
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   411
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   412
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   413
    _initHead : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   414
        var cb   = this.get(CONTENT_BOX),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   415
            info = merge(Console.CHROME_CLASSES, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   416
                        str_collapse : this.get('strings.collapse'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   417
                        str_title : this.get('strings.title')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   418
                    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   419
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   420
        this._head = create(substitute(Console.HEADER_TEMPLATE,info));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   421
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   422
        cb.insertBefore(this._head,cb.get('firstChild'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   423
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   424
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   425
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   426
     * Create the DOM structure for the console body&#8212;where messages are
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   427
     * rendered.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   428
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   429
     * @method _initBody
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   430
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   431
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   432
    _initBody : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   433
        this._body = create(substitute(
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   434
                            Console.BODY_TEMPLATE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   435
                            Console.CHROME_CLASSES));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   436
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   437
        this.get(CONTENT_BOX).appendChild(this._body);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   438
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   439
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   440
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   441
     * Create the DOM structure for the footer elements.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   442
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   443
     * @method _initFoot
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   444
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   445
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   446
    _initFoot : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   447
        var info = merge(Console.CHROME_CLASSES, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   448
                id_guid   : Y.guid(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   449
                str_pause : this.get('strings.pause'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   450
                str_clear : this.get('strings.clear')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   451
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   452
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   453
        this._foot = create(substitute(Console.FOOTER_TEMPLATE,info));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   454
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   455
        this.get(CONTENT_BOX).appendChild(this._foot);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   456
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   457
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   458
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   459
     * Determine if incoming log messages are within the configured logLevel
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   460
     * to be buffered for printing.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   461
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   462
     * @method _isInLogLevel
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   463
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   464
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   465
    _isInLogLevel : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   466
        var cat = e.cat, lvl = this.get('logLevel');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   467
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   468
        if (lvl !== INFO) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   469
            cat = cat || INFO;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   470
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   471
            if (isString(cat)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   472
                cat = cat.toLowerCase();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   473
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   474
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   475
            if ((cat === WARN && lvl === ERROR) ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   476
                (cat === INFO && lvl !== INFO)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   477
                return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   478
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   479
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   480
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   481
        return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   482
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   483
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   484
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   485
     * Create a log entry message from the inputs including the following keys:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   486
     * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   487
     *     <li>time - this moment</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   488
     *     <li>message - leg message</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   489
     *     <li>category - logLevel or custom category for the message</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   490
     *     <li>source - when provided, the widget or util calling Y.log</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   491
     *     <li>sourceAndDetail - same as source but can include instance info</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   492
     *     <li>localTime - readable version of time</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   493
     *     <li>elapsedTime - ms since last entry</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   494
     *     <li>totalTime - ms since Console was instantiated or reset</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   495
     * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   496
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   497
     * @method _normalizeMessage
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   498
     * @param e {Event} custom event containing the log message
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   499
     * @return Object the message object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   500
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   501
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   502
    _normalizeMessage : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   503
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   504
        var msg = e.msg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   505
            cat = e.cat,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   506
            src = e.src,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   507
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   508
            m = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   509
                time            : new Date(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   510
                message         : msg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   511
                category        : cat || this.get('defaultCategory'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   512
                sourceAndDetail : src || this.get('defaultSource'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   513
                source          : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   514
                localTime       : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   515
                elapsedTime     : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   516
                totalTime       : null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   517
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   518
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   519
        // Extract m.source "Foo" from m.sourceAndDetail "Foo bar baz"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   520
        m.source          = RE_INLINE_SOURCE.test(m.sourceAndDetail) ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   521
                                RegExp.$1 : m.sourceAndDetail;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   522
        m.localTime       = m.time.toLocaleTimeString ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   523
                            m.time.toLocaleTimeString() : (m.time + '');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   524
        m.elapsedTime     = m.time - this.get(LAST_TIME);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   525
        m.totalTime       = m.time - this.get(START_TIME);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   526
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   527
        this._set(LAST_TIME,m.time);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   528
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   529
        return m;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   530
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   531
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   532
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   533
     * Sets an interval for buffered messages to be output to the console.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   534
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   535
     * @method _schedulePrint
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   536
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   537
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   538
    _schedulePrint : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   539
        if (!this._printLoop && !this.get(PAUSED) && this.get('rendered')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   540
            this._printLoop = Y.later(
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   541
                                this.get('printTimeout'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   542
                                this, this.printBuffer,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   543
                                this.get('printLimit'), true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   544
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   545
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   546
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   547
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   548
     * Translates message meta into the markup for a console entry.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   549
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   550
     * @method _createEntryHTML
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   551
     * @param m {Object} object literal containing normalized message metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   552
     * @return String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   553
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   554
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   555
    _createEntryHTML : function (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   556
        m = merge(
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   557
                this._htmlEscapeMessage(m),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   558
                Console.ENTRY_CLASSES,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   559
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   560
                    cat_class : this.getClassName(ENTRY,m.category),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   561
                    src_class : this.getClassName(ENTRY,m.source)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   562
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   563
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   564
        return this.get('entryTemplate').replace(/\{(\w+)\}/g,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   565
            function (_,token) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   566
                return token in m ? m[token] : '';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   567
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   568
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   569
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   570
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   571
     * Scrolls to the most recent entry
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   572
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   573
     * @method scrollToLatest
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   574
     * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   575
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   576
    scrollToLatest : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   577
        var scrollTop = this.get('newestOnTop') ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   578
                            0 :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   579
                            this._body.get('scrollHeight');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   580
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   581
        this._body.set('scrollTop', scrollTop);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   582
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   583
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   584
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   585
     * Performs HTML escaping on strings in the message object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   586
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   587
     * @method _htmlEscapeMessage
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   588
     * @param m {Object} the normalized message object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   589
     * @return Object the message object with proper escapement
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   590
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   591
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   592
    _htmlEscapeMessage : function (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   593
        m.message         = this._encodeHTML(m.message);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   594
        m.source          = this._encodeHTML(m.source);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   595
        m.sourceAndDetail = this._encodeHTML(m.sourceAndDetail);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   596
        m.category        = this._encodeHTML(m.category);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   597
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   598
        return m;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   599
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   600
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   601
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   602
     * Removes the oldest message entries from the UI to maintain the limit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   603
     * specified in the consoleLimit configuration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   604
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   605
     * @method _trimOldEntries
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   606
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   607
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   608
    _trimOldEntries : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   609
        // Turn off the logging system for the duration of this operation
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   610
        // to prevent an infinite loop
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   611
        Y.config.debug = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   612
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   613
        var bd = this._body,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   614
            limit = this.get('consoleLimit'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   615
            debug = Y.config.debug,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   616
            entries,e,i,l;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   617
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   618
        if (bd) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   619
            entries = bd.all(DOT+C_ENTRY);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   620
            l = entries.size() - limit;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   621
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   622
            if (l > 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   623
                if (this.get('newestOnTop')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   624
                    i = limit;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   625
                    l = entries.size();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   626
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   627
                    i = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   628
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   629
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   630
                this._body.setStyle('display','none');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   631
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   632
                for (;i < l; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   633
                    e = entries.item(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   634
                    if (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   635
                        e.remove();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   636
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   637
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   638
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   639
                this._body.setStyle('display','');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   640
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   641
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   642
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   643
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   644
        Y.config.debug = debug;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   645
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   646
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   647
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   648
     * Returns the input string with ampersands (&amp;), &lt, and &gt; encoded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   649
     * as HTML entities.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   650
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   651
     * @method _encodeHTML
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   652
     * @param s {String} the raw string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   653
     * @return String the encoded string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   654
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   655
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   656
    _encodeHTML : function (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   657
        return isString(s) ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   658
            s.replace(RE_AMP,ESC_AMP).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   659
              replace(RE_LT, ESC_LT).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   660
              replace(RE_GT, ESC_GT) :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   661
            s;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   662
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   663
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   664
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   665
     * Clears the timeout for printing buffered messages.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   666
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   667
     * @method _cancelPrintLoop
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   668
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   669
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   670
    _cancelPrintLoop : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   671
        if (this._printLoop) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   672
            this._printLoop.cancel();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   673
            this._printLoop = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   674
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   675
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   676
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   677
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   678
     * Validates input value for style attribute.  Accepts only values 'inline',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   679
     * 'block', and 'separate'.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   680
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   681
     * @method _validateStyle
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   682
     * @param style {String} the proposed value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   683
     * @return {Boolean} pass/fail
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   684
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   685
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   686
    _validateStyle : function (style) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   687
        return style === 'inline' || style === 'block' || style === 'separate';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   688
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   689
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   690
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   691
     * Event handler for clicking on the Pause checkbox to update the paused
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   692
     * attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   693
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   694
     * @method _onPauseClick
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   695
     * @param e {Event} DOM event facade for the click event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   696
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   697
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   698
    _onPauseClick : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   699
        this.set(PAUSED,e.target.get(CHECKED));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   700
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   701
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   702
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   703
     * Event handler for clicking on the Clear button.  Pass-through to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   704
     * <code>this.clearConsole()</code>.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   705
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   706
     * @method _onClearClick
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   707
     * @param e {Event} DOM event facade for the click event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   708
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   709
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   710
    _onClearClick : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   711
        this.clearConsole();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   712
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   713
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   714
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   715
     * Event handler for clicking on the Collapse/Expand button. Sets the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   716
     * &quot;collapsed&quot; attribute accordingly.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   717
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   718
     * @method _onCollapseClick
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   719
     * @param e {Event} DOM event facade for the click event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   720
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   721
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   722
    _onCollapseClick : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   723
        this.set(COLLAPSED, !this.get(COLLAPSED));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   724
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   725
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   726
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   727
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   728
     * Validator for logSource attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   729
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   730
     * @method _validateLogSource
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   731
     * @param v {Object} the desired logSource
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   732
     * @return {Boolean} true if the input is an object with an <code>on</code>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   733
     *                   method
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   734
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   735
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   736
    _validateLogSource: function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   737
        return v && Y.Lang.isFunction(v.on);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   738
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   739
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   740
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   741
     * Setter method for logLevel attribute.  Acceptable values are
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   742
     * &quot;error&quot, &quot;warn&quot, and &quot;info&quot (case
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   743
     * insensitive).  Other values are treated as &quot;info&quot;.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   744
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   745
     * @method _setLogLevel
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   746
     * @param v {String} the desired log level
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   747
     * @return String One of Console.LOG_LEVEL_INFO, _WARN, or _ERROR
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   748
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   749
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   750
    _setLogLevel : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   751
        if (isString(v)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   752
            v = v.toLowerCase();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   753
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   754
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   755
        return (v === WARN || v === ERROR) ? v : INFO;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   756
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   757
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   758
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   759
     * Getter method for useBrowserConsole attribute.  Just a pass through to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   760
     * the YUI instance configuration setting.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   761
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   762
     * @method _getUseBrowserConsole
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   763
     * @return {Boolean} or null if logSource is not a YUI instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   764
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   765
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   766
    _getUseBrowserConsole: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   767
        var logSource = this.get('logSource');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   768
        return logSource instanceof YUI ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   769
            logSource.config.useBrowserConsole : null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   770
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   771
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   772
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   773
     * Setter method for useBrowserConsole attributes.  Only functional if the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   774
     * logSource attribute points to a YUI instance.  Passes the value down to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   775
     * the YUI instance.  NOTE: multiple Console instances cannot maintain
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   776
     * independent useBrowserConsole values, since it is just a pass through to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   777
     * the YUI instance configuration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   778
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   779
     * @method _setUseBrowserConsole
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   780
     * @param v {Boolean} false to disable browser console printing (default)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   781
     * @return {Boolean} true|false if logSource is a YUI instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   782
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   783
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   784
    _setUseBrowserConsole: function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   785
        var logSource = this.get('logSource');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   786
        if (logSource instanceof YUI) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   787
            v = !!v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   788
            logSource.config.useBrowserConsole = v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   789
            return v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   790
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   791
            return Y.Attribute.INVALID_VALUE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   792
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   793
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   794
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   795
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   796
     * Set the height of the Console container.  Set the body height to the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   797
     * difference between the configured height and the calculated heights of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   798
     * the header and footer.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   799
     * Overrides Widget.prototype._uiSetHeight.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   800
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   801
     * @method _uiSetHeight
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   802
     * @param v {String|Number} the new height
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   803
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   804
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   805
    _uiSetHeight : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   806
        Console.superclass._uiSetHeight.apply(this,arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   807
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   808
        if (this._head && this._foot) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   809
            var h = this.get('boundingBox').get('offsetHeight') -
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   810
                    this._head.get('offsetHeight') -
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   811
                    this._foot.get('offsetHeight');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   812
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   813
            this._body.setStyle(HEIGHT,h+'px');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   814
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   815
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   816
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   817
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   818
     * Over-ride default content box sizing to do nothing, since we're sizing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   819
     * the body section to fill out height ourselves.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   820
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   821
     * @method _uiSizeCB
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   822
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   823
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   824
    _uiSizeCB : function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   825
        // Do Nothing. Ideally want to move to Widget-StdMod, which accounts for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   826
        // _uiSizeCB
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   827
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   828
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   829
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   830
     * Updates the UI if changes are made to any of the strings in the strings
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   831
     * attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   832
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   833
     * @method _afterStringsChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   834
     * @param e {Event} Custom event for the attribute change
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   835
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   836
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   837
    _afterStringsChange : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   838
        var prop   = e.subAttrName ? e.subAttrName.split(DOT)[1] : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   839
            cb     = this.get(CONTENT_BOX),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   840
            before = e.prevVal,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   841
            after  = e.newVal;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   842
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   843
        if ((!prop || prop === TITLE) && before.title !== after.title) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   844
            cb.all(DOT+C_CONSOLE_TITLE).setHTML(after.title);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   845
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   846
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   847
        if ((!prop || prop === PAUSE) && before.pause !== after.pause) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   848
            cb.all(DOT+C_PAUSE_LABEL).setHTML(after.pause);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   849
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   850
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   851
        if ((!prop || prop === CLEAR) && before.clear !== after.clear) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   852
            cb.all(DOT+C_CLEAR).set('value',after.clear);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   853
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   854
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   855
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   856
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   857
     * Updates the UI and schedules or cancels the print loop.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   858
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   859
     * @method _afterPausedChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   860
     * @param e {Event} Custom event for the attribute change
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   861
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   862
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   863
    _afterPausedChange : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   864
        var paused = e.newVal;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   865
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   866
        if (e.src !== Y.Widget.SRC_UI) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   867
            this._uiUpdatePaused(paused);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   868
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   869
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   870
        if (!paused) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   871
            this._schedulePrint();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   872
        } else if (this._printLoop) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   873
            this._cancelPrintLoop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   874
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   875
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   876
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   877
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   878
     * Checks or unchecks the paused checkbox
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   879
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   880
     * @method _uiUpdatePaused
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   881
     * @param on {Boolean} the new checked state
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   882
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   883
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   884
    _uiUpdatePaused : function (on) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   885
        var node = this._foot.all('input[type=checkbox].'+C_PAUSE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   886
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   887
        if (node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   888
            node.set(CHECKED,on);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   889
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   890
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   891
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   892
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   893
     * Calls this._trimOldEntries() in response to changes in the configured
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   894
     * consoleLimit attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   895
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   896
     * @method _afterConsoleLimitChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   897
     * @param e {Event} Custom event for the attribute change
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   898
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   899
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   900
    _afterConsoleLimitChange : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   901
        this._trimOldEntries();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   902
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   903
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   904
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   905
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   906
     * Updates the className of the contentBox, which should trigger CSS to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   907
     * hide or show the body and footer sections depending on the new value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   908
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   909
     * @method _afterCollapsedChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   910
     * @param e {Event} Custom event for the attribute change
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   911
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   912
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   913
    _afterCollapsedChange : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   914
        this._uiUpdateCollapsed(e.newVal);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   915
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   916
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   917
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   918
     * Updates the UI to reflect the new Collapsed state
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   919
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   920
     * @method _uiUpdateCollapsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   921
     * @param v {Boolean} true for collapsed, false for expanded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   922
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   923
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   924
    _uiUpdateCollapsed : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   925
        var bb     = this.get('boundingBox'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   926
            button = bb.all('button.'+C_COLLAPSE),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   927
            method = v ? 'addClass' : 'removeClass',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   928
            str    = this.get('strings.'+(v ? 'expand' : 'collapse'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   929
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   930
        bb[method](C_COLLAPSED);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   931
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   932
        if (button) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   933
            button.setHTML(str);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   934
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   935
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   936
        this._uiSetHeight(v ? this._head.get('offsetHeight'): this.get(HEIGHT));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   937
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   938
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   939
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   940
     * Makes adjustments to the UI if needed when the Console is hidden or shown
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   941
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   942
     * @method _afterVisibleChange
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   943
     * @param e {Event} the visibleChange event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   944
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   945
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   946
    _afterVisibleChange : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   947
        Console.superclass._afterVisibleChange.apply(this,arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   948
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   949
        this._uiUpdateFromHideShow(e.newVal);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   950
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   951
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   952
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   953
     * Recalculates dimensions and updates appropriately when shown
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   954
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   955
     * @method _uiUpdateFromHideShow
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   956
     * @param v {Boolean} true for visible, false for hidden
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   957
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   958
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   959
    _uiUpdateFromHideShow : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   960
        if (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   961
            this._uiSetHeight(this.get(HEIGHT));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   962
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   963
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   964
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   965
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   966
     * Responds to log events by normalizing qualifying messages and passing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   967
     * them along through the entry event for buffering etc.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   968
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   969
     * @method _onLogEvent
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   970
     * @param msg {String} the log message
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   971
     * @param cat {String} OPTIONAL the category or logLevel of the message
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   972
     * @param src {String} OPTIONAL the source of the message (e.g. widget name)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   973
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   974
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   975
    _onLogEvent : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   976
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   977
        if (!this.get(DISABLED) && this._isInLogLevel(e)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   978
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   979
            var debug = Y.config.debug;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   980
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   981
            /* TODO: needed? */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   982
            Y.config.debug = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   983
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   984
            this.fire(ENTRY, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   985
                message : this._normalizeMessage(e)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   986
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   987
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   988
            Y.config.debug = debug;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   989
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   990
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   991
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   992
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   993
     * Clears the console, resets the startTime attribute, enables and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   994
     * unpauses the widget.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   995
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   996
     * @method _defResetFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   997
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   998
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   999
    _defResetFn : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1000
        this.clearConsole();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1001
        this.set(START_TIME,new Date());
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1002
        this.set(DISABLED,false);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1003
        this.set(PAUSED,false);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1004
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1005
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1006
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1007
     * Buffers incoming message objects and schedules the printing.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1008
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1009
     * @method _defEntryFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1010
     * @param e {Event} The Custom event carrying the message in its payload
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1011
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1012
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1013
    _defEntryFn : function (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1014
        if (e.message) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1015
            this.buffer.push(e.message);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1016
            this._schedulePrint();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1017
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1018
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1019
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1020
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1021
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1022
// Y.Console static properties
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1023
{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1024
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1025
     * The identity of the widget.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1026
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1027
     * @property NAME
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1028
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1029
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1030
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1031
    NAME : CONSOLE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1032
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1033
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1034
     * Static identifier for logLevel configuration setting to allow all
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1035
     * incoming messages to generate Console entries.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1036
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1037
     * @property LOG_LEVEL_INFO
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1038
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1039
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1040
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1041
    LOG_LEVEL_INFO  : INFO,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1042
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1043
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1044
     * Static identifier for logLevel configuration setting to allow only
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1045
     * incoming messages of logLevel &quot;warn&quot; or &quot;error&quot;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1046
     * to generate Console entries.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1047
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1048
     * @property LOG_LEVEL_WARN
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1049
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1050
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1051
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1052
    LOG_LEVEL_WARN  : WARN,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1053
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1054
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1055
     * Static identifier for logLevel configuration setting to allow only
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1056
     * incoming messages of logLevel &quot;error&quot; to generate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1057
     * Console entries.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1058
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1059
     * @property LOG_LEVEL_ERROR
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1060
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1061
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1062
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1063
    LOG_LEVEL_ERROR : ERROR,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1064
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1065
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1066
     * Map (object) of classNames used to populate the placeholders in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1067
     * Console.ENTRY_TEMPLATE markup when rendering a new Console entry.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1068
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1069
     * <p>By default, the keys contained in the object are:</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1070
     * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1071
     *    <li>entry_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1072
     *    <li>entry_meta_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1073
     *    <li>entry_cat_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1074
     *    <li>entry_src_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1075
     *    <li>entry_time_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1076
     *    <li>entry_content_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1077
     * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1078
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1079
     * @property ENTRY_CLASSES
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1080
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1081
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1082
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1083
    ENTRY_CLASSES   : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1084
        entry_class         : C_ENTRY,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1085
        entry_meta_class    : C_ENTRY_META,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1086
        entry_cat_class     : C_ENTRY_CAT,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1087
        entry_src_class     : C_ENTRY_SRC,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1088
        entry_time_class    : C_ENTRY_TIME,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1089
        entry_content_class : C_ENTRY_CONTENT
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1090
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1091
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1092
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1093
     * Map (object) of classNames used to populate the placeholders in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1094
     * Console.HEADER_TEMPLATE, Console.BODY_TEMPLATE, and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1095
     * Console.FOOTER_TEMPLATE markup when rendering the Console UI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1096
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1097
     * <p>By default, the keys contained in the object are:</p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1098
     * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1099
     *   <li>console_hd_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1100
     *   <li>console_bd_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1101
     *   <li>console_ft_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1102
     *   <li>console_controls_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1103
     *   <li>console_checkbox_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1104
     *   <li>console_pause_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1105
     *   <li>console_pause_label_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1106
     *   <li>console_button_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1107
     *   <li>console_clear_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1108
     *   <li>console_collapse_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1109
     *   <li>console_title_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1110
     * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1111
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1112
     * @property CHROME_CLASSES
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1113
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1114
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1115
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1116
    CHROME_CLASSES  : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1117
        console_hd_class       : C_CONSOLE_HD,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1118
        console_bd_class       : C_CONSOLE_BD,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1119
        console_ft_class       : C_CONSOLE_FT,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1120
        console_controls_class : C_CONSOLE_CONTROLS,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1121
        console_checkbox_class : C_CHECKBOX,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1122
        console_pause_class    : C_PAUSE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1123
        console_pause_label_class : C_PAUSE_LABEL,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1124
        console_button_class   : C_BUTTON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1125
        console_clear_class    : C_CLEAR,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1126
        console_collapse_class : C_COLLAPSE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1127
        console_title_class    : C_CONSOLE_TITLE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1128
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1129
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1130
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1131
     * Markup template used to generate the DOM structure for the header
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1132
     * section of the Console when it is rendered.  The template includes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1133
     * these {placeholder}s:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1134
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1135
     * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1136
     *   <li>console_button_class - contributed by Console.CHROME_CLASSES</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1137
     *   <li>console_collapse_class - contributed by Console.CHROME_CLASSES</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1138
     *   <li>console_hd_class - contributed by Console.CHROME_CLASSES</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1139
     *   <li>console_title_class - contributed by Console.CHROME_CLASSES</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1140
     *   <li>str_collapse - pulled from attribute strings.collapse</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1141
     *   <li>str_title - pulled from attribute strings.title</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1142
     * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1143
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1144
     * @property HEADER_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1145
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1146
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1147
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1148
    HEADER_TEMPLATE :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1149
        '<div class="{console_hd_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1150
            '<h4 class="{console_title_class}">{str_title}</h4>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1151
            '<button type="button" class="'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1152
                '{console_button_class} {console_collapse_class}">{str_collapse}'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1153
            '</button>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1154
        '</div>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1155
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1156
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1157
     * Markup template used to generate the DOM structure for the Console body
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1158
     * (where the messages are inserted) when it is rendered.  The template
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1159
     * includes only the {placeholder} &quot;console_bd_class&quot;, which is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1160
     * constributed by Console.CHROME_CLASSES.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1161
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1162
     * @property BODY_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1163
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1164
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1165
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1166
    BODY_TEMPLATE : '<div class="{console_bd_class}"></div>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1167
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1168
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1169
     * Markup template used to generate the DOM structure for the footer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1170
     * section of the Console when it is rendered.  The template includes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1171
     * many of the {placeholder}s from Console.CHROME_CLASSES as well as:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1172
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1173
     * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1174
     *   <li>id_guid - generated unique id, relates the label and checkbox</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1175
     *   <li>str_pause - pulled from attribute strings.pause</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1176
     *   <li>str_clear - pulled from attribute strings.clear</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1177
     * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1178
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1179
     * @property FOOTER_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1180
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1181
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1182
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1183
    FOOTER_TEMPLATE :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1184
        '<div class="{console_ft_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1185
            '<div class="{console_controls_class}">'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1186
                '<label class="{console_pause_label_class}"><input type="checkbox" class="{console_checkbox_class} {console_pause_class}" value="1" id="{id_guid}"> {str_pause}</label>' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1187
                '<button type="button" class="'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1188
                    '{console_button_class} {console_clear_class}">{str_clear}'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1189
                '</button>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1190
            '</div>'+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1191
        '</div>',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1192
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1193
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1194
     * Default markup template used to create the DOM structure for Console
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1195
     * entries. The markup contains {placeholder}s for content and classes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1196
     * that are replaced via Y.Lang.sub.  The default template contains
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1197
     * the {placeholder}s identified in Console.ENTRY_CLASSES as well as the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1198
     * following placeholders that will be populated by the log entry data:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1199
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1200
     * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1201
     *   <li>cat_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1202
     *   <li>src_class</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1203
     *   <li>totalTime</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1204
     *   <li>elapsedTime</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1205
     *   <li>localTime</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1206
     *   <li>sourceAndDetail</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1207
     *   <li>message</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1208
     * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1209
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1210
     * @property ENTRY_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1211
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1212
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1213
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1214
    ENTRY_TEMPLATE : ENTRY_TEMPLATE_STR,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1215
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1216
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1217
     * Static property used to define the default attribute configuration of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1218
     * the Widget.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1219
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1220
     * @property ATTRS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1221
     * @Type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1222
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1223
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1224
    ATTRS : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1225
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1226
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1227
         * Name of the custom event that will communicate log messages.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1228
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1229
         * @attribute logEvent
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1230
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1231
         * @default "yui:log"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1232
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1233
        logEvent : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1234
            value : 'yui:log',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1235
            writeOnce : true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1236
            validator : isString
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1237
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1238
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1239
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1240
         * Object that will emit the log events.  By default the YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1241
         * To have a single Console capture events from all YUI instances, set
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1242
         * this to the Y.Global object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1243
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1244
         * @attribute logSource
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1245
         * @type EventTarget
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1246
         * @default Y
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1247
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1248
        logSource : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1249
            value : Y,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1250
            writeOnce : true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1251
            validator : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1252
                return this._validateLogSource(v);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1253
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1254
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1255
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1256
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1257
         * Collection of strings used to label elements in the Console UI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1258
         * Default collection contains the following name:value pairs:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1259
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1260
         * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1261
         *   <li>title : &quot;Log Console&quot;</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1262
         *   <li>pause : &quot;Pause&quot;</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1263
         *   <li>clear : &quot;Clear&quot;</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1264
         *   <li>collapse : &quot;Collapse&quot;</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1265
         *   <li>expand : &quot;Expand&quot;</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1266
         * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1267
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1268
         * @attribute strings
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1269
         * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1270
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1271
        strings : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1272
            valueFn: function() { return Y.Intl.get("console"); }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1273
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1274
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1275
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1276
         * Boolean to pause the outputting of new messages to the console.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1277
         * When paused, messages will accumulate in the buffer.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1278
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1279
         * @attribute paused
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1280
         * @type boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1281
         * @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1282
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1283
        paused : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1284
            value : false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1285
            validator : L.isBoolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1286
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1287
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1288
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1289
         * If a category is not specified in the Y.log(..) statement, this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1290
         * category will be used. Categories &quot;info&quot;,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1291
         * &quot;warn&quot;, and &quot;error&quot; are also called log level.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1292
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1293
         * @attribute defaultCategory
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1294
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1295
         * @default "info"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1296
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1297
        defaultCategory : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1298
            value : INFO,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1299
            validator : isString
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1300
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1301
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1302
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1303
         * If a source is not specified in the Y.log(..) statement, this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1304
         * source will be used.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1305
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1306
         * @attribute defaultSource
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1307
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1308
         * @default "global"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1309
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1310
        defaultSource   : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1311
            value : 'global',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1312
            validator : isString
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1313
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1314
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1315
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1316
         * Markup template used to create the DOM structure for Console entries.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1317
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1318
         * @attribute entryTemplate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1319
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1320
         * @default Console.ENTRY_TEMPLATE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1321
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1322
        entryTemplate : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1323
            value : ENTRY_TEMPLATE_STR,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1324
            validator : isString
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1325
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1326
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1327
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1328
         * Minimum entry log level to render into the Console.  The initial
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1329
         * logLevel value for all Console instances defaults from the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1330
         * Y.config.logLevel YUI configuration, or Console.LOG_LEVEL_INFO if
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1331
         * that configuration is not set.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1332
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1333
         * Possible values are &quot;info&quot;, &quot;warn&quot;,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1334
         * &quot;error&quot; (case insensitive), or their corresponding statics
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1335
         * Console.LOG_LEVEL_INFO and so on.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1336
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1337
         * @attribute logLevel
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1338
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1339
         * @default Y.config.logLevel or Console.LOG_LEVEL_INFO
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1340
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1341
        logLevel : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1342
            value : Y.config.logLevel || INFO,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1343
            setter : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1344
                return this._setLogLevel(v);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1345
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1346
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1347
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1348
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1349
         * Millisecond timeout between iterations of the print loop, moving
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1350
         * entries from the buffer to the UI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1351
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1352
         * @attribute printTimeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1353
         * @type Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1354
         * @default 100
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1355
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1356
        printTimeout : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1357
            value : 100,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1358
            validator : isNumber
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1359
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1360
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1361
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1362
         * Maximum number of entries printed in each iteration of the print
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1363
         * loop. This is used to prevent excessive logging locking the page UI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1364
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1365
         * @attribute printLimit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1366
         * @type Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1367
         * @default 50
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1368
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1369
        printLimit : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1370
            value : 50,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1371
            validator : isNumber
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1372
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1373
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1374
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1375
         * Maximum number of Console entries allowed in the Console body at one
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1376
         * time.  This is used to keep acquired messages from exploding the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1377
         * DOM tree and impacting page performance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1378
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1379
         * @attribute consoleLimit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1380
         * @type Number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1381
         * @default 300
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1382
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1383
        consoleLimit : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1384
            value : 300,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1385
            validator : isNumber
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1386
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1387
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1388
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1389
         * New entries should display at the top of the Console or the bottom?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1390
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1391
         * @attribute newestOnTop
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1392
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1393
         * @default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1394
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1395
        newestOnTop : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1396
            value : true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1397
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1398
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1399
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1400
         * When new entries are added to the Console UI, should they be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1401
         * scrolled into view?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1402
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1403
         * @attribute scrollIntoView
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1404
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1405
         * @default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1406
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1407
        scrollIntoView : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1408
            value : true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1409
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1410
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1411
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1412
         * The baseline time for this Console instance, used to measure elapsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1413
         * time from the moment the console module is <code>use</code>d to the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1414
         * moment each new entry is logged (not rendered).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1415
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1416
         * This value is reset by the instance method myConsole.reset().
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1417
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1418
         * @attribute startTime
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1419
         * @type Date
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1420
         * @default The moment the console module is <code>use</code>d
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1421
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1422
        startTime : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1423
            value : new Date()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1424
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1425
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1426
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1427
         * The precise time the last entry was logged.  Used to measure elapsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1428
         * time between log messages.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1429
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1430
         * @attribute lastTime
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1431
         * @type Date
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1432
         * @default The moment the console module is <code>use</code>d
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1433
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1434
        lastTime : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1435
            value : new Date(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1436
            readOnly: true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1437
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1438
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1439
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1440
         * Controls the collapsed state of the Console
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1441
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1442
         * @attribute collapsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1443
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1444
         * @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1445
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1446
        collapsed : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1447
            value : false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1448
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1449
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1450
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1451
        * String with units, or number, representing the height of the Console,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1452
        * inclusive of header and footer. If a number is provided, the default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1453
        * unit, defined by Widget's DEF_UNIT, property is used.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1454
        *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1455
        * @attribute height
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1456
        * @default "300px"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1457
        * @type {String | Number}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1458
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1459
        height: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1460
            value: "300px"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1461
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1462
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1463
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1464
        * String with units, or number, representing the width of the Console.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1465
        * If a number is provided, the default unit, defined by Widget's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1466
        * DEF_UNIT, property is used.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1467
        *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1468
        * @attribute width
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1469
        * @default "300px"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1470
        * @type {String | Number}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1471
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1472
        width: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1473
            value: "300px"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1474
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1475
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1476
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1477
         * Pass through to the YUI instance useBrowserConsole configuration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1478
         * By default this is set to false, which will disable logging to the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1479
         * browser console when a Console instance is created.  If the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1480
         * logSource is not a YUI instance, this has no effect.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1481
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1482
         * @attribute useBrowserConsole
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1483
         * @type {Boolean}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1484
         * @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1485
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1486
         useBrowserConsole : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1487
            lazyAdd: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1488
            value: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1489
            getter : function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1490
                return this._getUseBrowserConsole();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1491
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1492
            setter : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1493
                return this._setUseBrowserConsole(v);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1494
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1495
         },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1496
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1497
         /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1498
          * Allows the Console to flow in the document.  Available values are
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1499
          * 'inline', 'block', and 'separate' (the default).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1500
          *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1501
          * @attribute style
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1502
          * @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1503
          * @default 'separate'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1504
          */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1505
         style : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1506
            value : 'separate',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1507
            writeOnce : true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1508
            validator : function (v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1509
                return this._validateStyle(v);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1510
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1511
         }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1512
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1513
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1514
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1515
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1516
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1517
}, '@VERSION@', {"requires": ["yui-log", "widget"], "skinnable": true, "lang": ["en", "es", "hu", "it", "ja"]});