annotate rhodecode/public/js/yui/logger/logger.js @ 677:469108c210f6 beta

Upgrade of Yui2, added selector rollup.
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 11 Nov 2010 01:40:59 +0000
parents 1e757ac98988
children 289ff43cc190
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1 /*
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2 Copyright (c) 2009, Yahoo! Inc. All rights reserved.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
3 Code licensed under the BSD License:
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
4 http://developer.yahoo.net/yui/license.txt
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
5 version: 2.8.0r4
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
6 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
7 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
8 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
9 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
10
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
11 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
12 * The LogMsg class defines a single log message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
13 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
14 * @class LogMsg
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
15 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
16 * @param oConfigs {Object} Object literal of configuration params.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
17 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
18 YAHOO.widget.LogMsg = function(oConfigs) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
19 // Parse configs
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
20 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
21 * Log message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
22 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
23 * @property msg
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
24 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
25 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
26 this.msg =
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
27 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
28 * Log timestamp.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
29 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
30 * @property time
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
31 * @type Date
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
32 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
33 this.time =
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
34
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
35 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
36 * Log category.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
37 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
38 * @property category
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
39 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
40 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
41 this.category =
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
42
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
43 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
44 * Log source. The first word passed in as the source argument.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
45 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
46 * @property source
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
47 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
48 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
49 this.source =
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
50
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
51 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
52 * Log source detail. The remainder of the string passed in as the source argument, not
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
53 * including the first word (if any).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
54 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
55 * @property sourceDetail
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
56 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
57 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
58 this.sourceDetail = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
59
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
60 if (oConfigs && (oConfigs.constructor == Object)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
61 for(var param in oConfigs) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
62 if (oConfigs.hasOwnProperty(param)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
63 this[param] = oConfigs[param];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
64 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
65 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
66 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
67 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
68 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
69 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
70 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
71
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
72 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
73 * The LogWriter class provides a mechanism to log messages through
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
74 * YAHOO.widget.Logger from a named source.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
75 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
76 * @class LogWriter
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
77 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
78 * @param sSource {String} Source of LogWriter instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
79 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
80 YAHOO.widget.LogWriter = function(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
81 if(!sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
82 YAHOO.log("Could not instantiate LogWriter due to invalid source.",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
83 "error", "LogWriter");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
84 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
85 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
86 this._source = sSource;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
87 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
88
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
89 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
90 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
91 // Public methods
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
92 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
93 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
94
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
95 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
96 * Public accessor to the unique name of the LogWriter instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
97 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
98 * @method toString
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
99 * @return {String} Unique name of the LogWriter instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
100 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
101 YAHOO.widget.LogWriter.prototype.toString = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
102 return "LogWriter " + this._sSource;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
103 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
104
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
105 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
106 * Logs a message attached to the source of the LogWriter.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
107 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
108 * @method log
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
109 * @param sMsg {String} The log message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
110 * @param sCategory {String} Category name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
111 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
112 YAHOO.widget.LogWriter.prototype.log = function(sMsg, sCategory) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
113 YAHOO.widget.Logger.log(sMsg, sCategory, this._source);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
114 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
115
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
116 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
117 * Public accessor to get the source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
118 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
119 * @method getSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
120 * @return {String} The LogWriter source.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
121 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
122 YAHOO.widget.LogWriter.prototype.getSource = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
123 return this._source;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
124 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
125
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
126 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
127 * Public accessor to set the source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
128 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
129 * @method setSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
130 * @param sSource {String} Source of LogWriter instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
131 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
132 YAHOO.widget.LogWriter.prototype.setSource = function(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
133 if(!sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
134 YAHOO.log("Could not set source due to invalid source.", "error", this.toString());
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
135 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
136 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
137 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
138 this._source = sSource;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
139 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
140 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
141
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
142 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
143 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
144 // Private member variables
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
145 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
146 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
147
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
148 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
149 * Source of the LogWriter instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
150 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
151 * @property _source
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
152 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
153 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
154 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
155 YAHOO.widget.LogWriter.prototype._source = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
156
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
157
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
158
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
159 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
160 * The Logger widget provides a simple way to read or write log messages in
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
161 * JavaScript code. Integration with the YUI Library's debug builds allow
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
162 * implementers to access under-the-hood events, errors, and debugging messages.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
163 * Output may be read through a LogReader console and/or output to a browser
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
164 * console.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
165 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
166 * @module logger
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
167 * @requires yahoo, event, dom
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
168 * @optional dragdrop
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
169 * @namespace YAHOO.widget
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
170 * @title Logger Widget
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
171 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
172
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
173 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
174 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
175 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
176
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
177 // Define once
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
178 if(!YAHOO.widget.Logger) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
179 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
180 * The singleton Logger class provides core log management functionality. Saves
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
181 * logs written through the global YAHOO.log function or written by a LogWriter
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
182 * instance. Provides access to logs for reading by a LogReader instance or
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
183 * native browser console such as the Firebug extension to Firefox or Safari's
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
184 * JavaScript console through integration with the console.log() method.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
185 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
186 * @class Logger
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
187 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
188 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
189 YAHOO.widget.Logger = {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
190 // Initialize properties
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
191 loggerEnabled: true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
192 _browserConsoleEnabled: false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
193 categories: ["info","warn","error","time","window"],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
194 sources: ["global"],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
195 _stack: [], // holds all log msgs
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
196 maxStackEntries: 2500,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
197 _startTime: new Date().getTime(), // static start timestamp
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
198 _lastTime: null, // timestamp of last logged message
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
199 _windowErrorsHandled: false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
200 _origOnWindowError: null
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
201 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
202
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
203 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
204 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
205 // Public properties
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
206 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
207 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
208 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
209 * True if Logger is enabled, false otherwise.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
210 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
211 * @property loggerEnabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
212 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
213 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
214 * @default true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
215 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
216
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
217 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
218 * Array of categories.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
219 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
220 * @property categories
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
221 * @type String[]
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
222 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
223 * @default ["info","warn","error","time","window"]
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
224 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
225
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
226 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
227 * Array of sources.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
228 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
229 * @property sources
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
230 * @type String[]
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
231 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
232 * @default ["global"]
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
233 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
234
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
235 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
236 * Upper limit on size of internal stack.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
237 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
238 * @property maxStackEntries
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
239 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
240 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
241 * @default 2500
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
242 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
243
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
244 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
245 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
246 // Private properties
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
247 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
248 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
249 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
250 * Internal property to track whether output to browser console is enabled.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
251 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
252 * @property _browserConsoleEnabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
253 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
254 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
255 * @default false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
256 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
257 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
258
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
259 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
260 * Array to hold all log messages.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
261 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
262 * @property _stack
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
263 * @type Array
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
264 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
265 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
266 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
267 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
268 * Static timestamp of Logger initialization.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
269 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
270 * @property _startTime
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
271 * @type Date
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
272 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
273 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
274 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
275 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
276 * Timestamp of last logged message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
277 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
278 * @property _lastTime
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
279 * @type Date
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
280 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
281 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
282 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
283 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
284 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
285 // Public methods
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
286 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
287 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
288 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
289 * Saves a log message to the stack and fires newLogEvent. If the log message is
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
290 * assigned to an unknown category, creates a new category. If the log message is
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
291 * from an unknown source, creates a new source. If browser console is enabled,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
292 * outputs the log message to browser console.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
293 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
294 * @method log
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
295 * @param sMsg {String} The log message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
296 * @param sCategory {String} Category of log message, or null.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
297 * @param sSource {String} Source of LogWriter, or null if global.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
298 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
299 YAHOO.widget.Logger.log = function(sMsg, sCategory, sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
300 if(this.loggerEnabled) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
301 if(!sCategory) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
302 sCategory = "info"; // default category
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
303 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
304 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
305 sCategory = sCategory.toLocaleLowerCase();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
306 if(this._isNewCategory(sCategory)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
307 this._createNewCategory(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
308 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
309 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
310 var sClass = "global"; // default source
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
311 var sDetail = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
312 if(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
313 var spaceIndex = sSource.indexOf(" ");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
314 if(spaceIndex > 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
315 // Substring until first space
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
316 sClass = sSource.substring(0,spaceIndex);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
317 // The rest of the source
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
318 sDetail = sSource.substring(spaceIndex,sSource.length);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
319 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
320 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
321 sClass = sSource;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
322 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
323 if(this._isNewSource(sClass)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
324 this._createNewSource(sClass);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
325 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
326 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
327
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
328 var timestamp = new Date();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
329 var logEntry = new YAHOO.widget.LogMsg({
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
330 msg: sMsg,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
331 time: timestamp,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
332 category: sCategory,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
333 source: sClass,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
334 sourceDetail: sDetail
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
335 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
336
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
337 var stack = this._stack;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
338 var maxStackEntries = this.maxStackEntries;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
339 if(maxStackEntries && !isNaN(maxStackEntries) &&
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
340 (stack.length >= maxStackEntries)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
341 stack.shift();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
342 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
343 stack.push(logEntry);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
344 this.newLogEvent.fire(logEntry);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
345
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
346 if(this._browserConsoleEnabled) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
347 this._printToBrowserConsole(logEntry);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
348 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
349 return true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
350 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
351 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
352 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
353 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
354 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
355
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
356 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
357 * Resets internal stack and startTime, enables Logger, and fires logResetEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
358 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
359 * @method reset
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
360 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
361 YAHOO.widget.Logger.reset = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
362 this._stack = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
363 this._startTime = new Date().getTime();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
364 this.loggerEnabled = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
365 this.log("Logger reset");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
366 this.logResetEvent.fire();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
367 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
368
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
369 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
370 * Public accessor to internal stack of log message objects.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
371 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
372 * @method getStack
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
373 * @return {Object[]} Array of log message objects.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
374 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
375 YAHOO.widget.Logger.getStack = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
376 return this._stack;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
377 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
378
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
379 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
380 * Public accessor to internal start time.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
381 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
382 * @method getStartTime
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
383 * @return {Date} Internal date of when Logger singleton was initialized.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
384 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
385 YAHOO.widget.Logger.getStartTime = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
386 return this._startTime;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
387 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
388
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
389 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
390 * Disables output to the browser's global console.log() function, which is used
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
391 * by the Firebug extension to Firefox as well as Safari.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
392 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
393 * @method disableBrowserConsole
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
394 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
395 YAHOO.widget.Logger.disableBrowserConsole = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
396 YAHOO.log("Logger output to the function console.log() has been disabled.");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
397 this._browserConsoleEnabled = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
398 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
399
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
400 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
401 * Enables output to the browser's global console.log() function, which is used
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
402 * by the Firebug extension to Firefox as well as Safari.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
403 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
404 * @method enableBrowserConsole
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
405 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
406 YAHOO.widget.Logger.enableBrowserConsole = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
407 this._browserConsoleEnabled = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
408 YAHOO.log("Logger output to the function console.log() has been enabled.");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
409 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
410
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
411 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
412 * Surpresses native JavaScript errors and outputs to console. By default,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
413 * Logger does not handle JavaScript window error events.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
414 * NB: Not all browsers support the window.onerror event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
415 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
416 * @method handleWindowErrors
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
417 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
418 YAHOO.widget.Logger.handleWindowErrors = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
419 if(!YAHOO.widget.Logger._windowErrorsHandled) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
420 // Save any previously defined handler to call
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
421 if(window.error) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
422 YAHOO.widget.Logger._origOnWindowError = window.onerror;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
423 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
424 window.onerror = YAHOO.widget.Logger._onWindowError;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
425 YAHOO.widget.Logger._windowErrorsHandled = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
426 YAHOO.log("Logger handling of window.onerror has been enabled.");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
427 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
428 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
429 YAHOO.log("Logger handling of window.onerror had already been enabled.");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
430 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
431 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
432
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
433 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
434 * Unsurpresses native JavaScript errors. By default,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
435 * Logger does not handle JavaScript window error events.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
436 * NB: Not all browsers support the window.onerror event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
437 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
438 * @method unhandleWindowErrors
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
439 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
440 YAHOO.widget.Logger.unhandleWindowErrors = function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
441 if(YAHOO.widget.Logger._windowErrorsHandled) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
442 // Revert to any previously defined handler to call
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
443 if(YAHOO.widget.Logger._origOnWindowError) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
444 window.onerror = YAHOO.widget.Logger._origOnWindowError;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
445 YAHOO.widget.Logger._origOnWindowError = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
446 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
447 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
448 window.onerror = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
449 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
450 YAHOO.widget.Logger._windowErrorsHandled = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
451 YAHOO.log("Logger handling of window.onerror has been disabled.");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
452 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
453 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
454 YAHOO.log("Logger handling of window.onerror had already been disabled.");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
455 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
456 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
457
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
458 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
459 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
460 // Public events
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
461 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
462 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
463
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
464 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
465 * Fired when a new category has been created.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
466 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
467 * @event categoryCreateEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
468 * @param sCategory {String} Category name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
469 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
470 YAHOO.widget.Logger.categoryCreateEvent =
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
471 new YAHOO.util.CustomEvent("categoryCreate", this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
472
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
473 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
474 * Fired when a new source has been named.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
475 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
476 * @event sourceCreateEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
477 * @param sSource {String} Source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
478 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
479 YAHOO.widget.Logger.sourceCreateEvent =
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
480 new YAHOO.util.CustomEvent("sourceCreate", this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
481
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
482 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
483 * Fired when a new log message has been created.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
484 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
485 * @event newLogEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
486 * @param sMsg {String} Log message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
487 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
488 YAHOO.widget.Logger.newLogEvent = new YAHOO.util.CustomEvent("newLog", this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
489
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
490 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
491 * Fired when the Logger has been reset has been created.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
492 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
493 * @event logResetEvent
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
494 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
495 YAHOO.widget.Logger.logResetEvent = new YAHOO.util.CustomEvent("logReset", this, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
496
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
497 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
498 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
499 // Private methods
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
500 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
501 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
502
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
503 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
504 * Creates a new category of log messages and fires categoryCreateEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
505 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
506 * @method _createNewCategory
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
507 * @param sCategory {String} Category name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
508 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
509 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
510 YAHOO.widget.Logger._createNewCategory = function(sCategory) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
511 this.categories.push(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
512 this.categoryCreateEvent.fire(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
513 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
514
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
515 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
516 * Checks to see if a category has already been created.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
517 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
518 * @method _isNewCategory
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
519 * @param sCategory {String} Category name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
520 * @return {Boolean} Returns true if category is unknown, else returns false.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
521 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
522 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
523 YAHOO.widget.Logger._isNewCategory = function(sCategory) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
524 for(var i=0; i < this.categories.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
525 if(sCategory == this.categories[i]) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
526 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
527 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
528 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
529 return true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
530 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
531
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
532 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
533 * Creates a new source of log messages and fires sourceCreateEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
534 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
535 * @method _createNewSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
536 * @param sSource {String} Source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
537 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
538 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
539 YAHOO.widget.Logger._createNewSource = function(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
540 this.sources.push(sSource);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
541 this.sourceCreateEvent.fire(sSource);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
542 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
543
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
544 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
545 * Checks to see if a source already exists.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
546 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
547 * @method _isNewSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
548 * @param sSource {String} Source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
549 * @return {Boolean} Returns true if source is unknown, else returns false.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
550 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
551 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
552 YAHOO.widget.Logger._isNewSource = function(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
553 if(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
554 for(var i=0; i < this.sources.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
555 if(sSource == this.sources[i]) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
556 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
557 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
558 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
559 return true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
560 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
561 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
562
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
563 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
564 * Outputs a log message to global console.log() function.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
565 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
566 * @method _printToBrowserConsole
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
567 * @param oEntry {Object} Log entry object.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
568 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
569 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
570 YAHOO.widget.Logger._printToBrowserConsole = function(oEntry) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
571 if(window.console && console.log) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
572 var category = oEntry.category;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
573 var label = oEntry.category.substring(0,4).toUpperCase();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
574
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
575 var time = oEntry.time;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
576 var localTime;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
577 if (time.toLocaleTimeString) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
578 localTime = time.toLocaleTimeString();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
579 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
580 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
581 localTime = time.toString();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
582 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
583
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
584 var msecs = time.getTime();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
585 var elapsedTime = (YAHOO.widget.Logger._lastTime) ?
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
586 (msecs - YAHOO.widget.Logger._lastTime) : 0;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
587 YAHOO.widget.Logger._lastTime = msecs;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
588
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
589 var output =
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
590 localTime + " (" +
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
591 elapsedTime + "ms): " +
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
592 oEntry.source + ": ";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
593
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
594 // for bug 1987607
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
595 if (YAHOO.env.ua.webkit) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
596 output += oEntry.msg;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
597 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
598
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
599 console.log(output, oEntry.msg);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
600 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
601 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
602
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
603 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
604 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
605 // Private event handlers
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
606 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
607 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
608
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
609 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
610 * Handles logging of messages due to window error events.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
611 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
612 * @method _onWindowError
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
613 * @param sMsg {String} The error message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
614 * @param sUrl {String} URL of the error.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
615 * @param sLine {String} Line number of the error.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
616 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
617 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
618 YAHOO.widget.Logger._onWindowError = function(sMsg,sUrl,sLine) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
619 // Logger is not in scope of this event handler
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
620 try {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
621 YAHOO.widget.Logger.log(sMsg+' ('+sUrl+', line '+sLine+')', "window");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
622 if(YAHOO.widget.Logger._origOnWindowError) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
623 YAHOO.widget.Logger._origOnWindowError();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
624 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
625 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
626 catch(e) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
627 return false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
628 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
629 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
630
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
631 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
632 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
633 // First log
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
634 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
635 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
636
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
637 YAHOO.widget.Logger.log("Logger initialized");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
638 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
639
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
640 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
641 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
642 /****************************************************************************/
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
643 (function () {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
644 var Logger = YAHOO.widget.Logger,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
645 u = YAHOO.util,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
646 Dom = u.Dom,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
647 Event = u.Event,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
648 d = document;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
649
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
650 function make(el,props) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
651 el = d.createElement(el);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
652 if (props) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
653 for (var p in props) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
654 if (props.hasOwnProperty(p)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
655 el[p] = props[p];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
656 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
657 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
658 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
659 return el;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
660 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
661
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
662 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
663 * The LogReader class provides UI to read messages logged to YAHOO.widget.Logger.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
664 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
665 * @class LogReader
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
666 * @constructor
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
667 * @param elContainer {HTMLElement} (optional) DOM element reference of an existing DIV.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
668 * @param elContainer {String} (optional) String ID of an existing DIV.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
669 * @param oConfigs {Object} (optional) Object literal of configuration params.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
670 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
671 function LogReader(elContainer, oConfigs) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
672 this._sName = LogReader._index;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
673 LogReader._index++;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
674
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
675 this._init.apply(this,arguments);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
676
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
677 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
678 * Render the LogReader immediately upon instantiation. If set to false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
679 * you must call myLogReader.render() to generate the UI.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
680 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
681 * @property autoRender
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
682 * @type {Boolean}
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
683 * @default true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
684 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
685 if (this.autoRender !== false) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
686 this.render();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
687 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
688 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
689
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
690 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
691 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
692 // Static member variables
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
693 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
694 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
695 YAHOO.lang.augmentObject(LogReader, {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
696 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
697 * Internal class member to index multiple LogReader instances.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
698 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
699 * @property _memberName
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
700 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
701 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
702 * @default 0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
703 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
704 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
705 _index : 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
706
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
707 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
708 * Node template for the log entries
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
709 * @property ENTRY_TEMPLATE
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
710 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
711 * @type {HTMLElement}
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
712 * @default <code>pre</code> element with class yui-log-entry
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
713 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
714 ENTRY_TEMPLATE : (function () {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
715 return make('pre',{ className: 'yui-log-entry' });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
716 })(),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
717
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
718 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
719 * Template used for innerHTML of verbose entry output.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
720 * @property VERBOSE_TEMPLATE
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
721 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
722 * @default "&lt;p>&lt;span class='{category}'>{label}&lt;/span>{totalTime}ms (+{elapsedTime}) {localTime}:&lt;/p>&lt;p>{sourceAndDetail}&lt;/p>&lt;p>{message}&lt;/p>"
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
723 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
724 VERBOSE_TEMPLATE : "<p><span class='{category}'>{label}</span> {totalTime}ms (+{elapsedTime}) {localTime}:</p><p>{sourceAndDetail}</p><p>{message}</p>",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
725
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
726 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
727 * Template used for innerHTML of compact entry output.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
728 * @property BASIC_TEMPLATE
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
729 * @static
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
730 * @default "&lt;p>&lt;span class='{category}'>{label}&lt;/span>{totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}&lt;/p>"
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
731 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
732 BASIC_TEMPLATE : "<p><span class='{category}'>{label}</span> {totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}</p>"
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
733 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
734
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
735 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
736 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
737 // Public member variables
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
738 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
739 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
740
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
741 LogReader.prototype = {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
742 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
743 * Whether or not LogReader is enabled to output log messages.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
744 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
745 * @property logReaderEnabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
746 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
747 * @default true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
748 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
749 logReaderEnabled : true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
750
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
751 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
752 * Public member to access CSS width of the LogReader container.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
753 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
754 * @property width
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
755 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
756 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
757 width : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
758
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
759 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
760 * Public member to access CSS height of the LogReader container.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
761 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
762 * @property height
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
763 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
764 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
765 height : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
766
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
767 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
768 * Public member to access CSS top position of the LogReader container.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
769 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
770 * @property top
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
771 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
772 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
773 top : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
774
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
775 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
776 * Public member to access CSS left position of the LogReader container.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
777 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
778 * @property left
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
779 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
780 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
781 left : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
782
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
783 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
784 * Public member to access CSS right position of the LogReader container.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
785 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
786 * @property right
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
787 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
788 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
789 right : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
790
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
791 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
792 * Public member to access CSS bottom position of the LogReader container.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
793 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
794 * @property bottom
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
795 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
796 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
797 bottom : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
798
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
799 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
800 * Public member to access CSS font size of the LogReader container.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
801 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
802 * @property fontSize
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
803 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
804 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
805 fontSize : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
806
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
807 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
808 * Whether or not the footer UI is enabled for the LogReader.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
809 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
810 * @property footerEnabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
811 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
812 * @default true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
813 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
814 footerEnabled : true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
815
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
816 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
817 * Whether or not output is verbose (more readable). Setting to true will make
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
818 * output more compact (less readable).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
819 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
820 * @property verboseOutput
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
821 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
822 * @default true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
823 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
824 verboseOutput : true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
825
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
826 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
827 * Custom output format for log messages. Defaults to null, which falls
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
828 * back to verboseOutput param deciding between LogReader.VERBOSE_TEMPLATE
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
829 * and LogReader.BASIC_TEMPLATE. Use bracketed place holders to mark where
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
830 * message info should go. Available place holder names include:
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
831 * <ul>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
832 * <li>category</li>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
833 * <li>label</li>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
834 * <li>sourceAndDetail</li>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
835 * <li>message</li>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
836 * <li>localTime</li>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
837 * <li>elapsedTime</li>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
838 * <li>totalTime</li>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
839 * </ul>
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
840 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
841 * @property entryFormat
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
842 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
843 * @default null
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
844 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
845 entryFormat : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
846
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
847 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
848 * Whether or not newest message is printed on top.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
849 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
850 * @property newestOnTop
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
851 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
852 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
853 newestOnTop : true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
854
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
855 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
856 * Output timeout buffer in milliseconds.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
857 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
858 * @property outputBuffer
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
859 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
860 * @default 100
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
861 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
862 outputBuffer : 100,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
863
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
864 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
865 * Maximum number of messages a LogReader console will display.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
866 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
867 * @property thresholdMax
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
868 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
869 * @default 500
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
870 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
871 thresholdMax : 500,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
872
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
873 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
874 * When a LogReader console reaches its thresholdMax, it will clear out messages
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
875 * and print out the latest thresholdMin number of messages.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
876 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
877 * @property thresholdMin
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
878 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
879 * @default 100
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
880 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
881 thresholdMin : 100,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
882
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
883 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
884 * True when LogReader is in a collapsed state, false otherwise.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
885 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
886 * @property isCollapsed
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
887 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
888 * @default false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
889 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
890 isCollapsed : false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
891
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
892 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
893 * True when LogReader is in a paused state, false otherwise.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
894 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
895 * @property isPaused
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
896 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
897 * @default false
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
898 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
899 isPaused : false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
900
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
901 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
902 * Enables draggable LogReader if DragDrop Utility is present.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
903 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
904 * @property draggable
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
905 * @type Boolean
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
906 * @default true
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
907 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
908 draggable : true,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
909
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
910 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
911 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
912 // Public methods
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
913 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
914 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
915
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
916 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
917 * Public accessor to the unique name of the LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
918 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
919 * @method toString
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
920 * @return {String} Unique name of the LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
921 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
922 toString : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
923 return "LogReader instance" + this._sName;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
924 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
925 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
926 * Pauses output of log messages. While paused, log messages are not lost, but
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
927 * get saved to a buffer and then output upon resume of LogReader.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
928 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
929 * @method pause
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
930 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
931 pause : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
932 this.isPaused = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
933 this._timeout = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
934 this.logReaderEnabled = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
935 if (this._btnPause) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
936 this._btnPause.value = "Resume";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
937 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
938 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
939
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
940 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
941 * Resumes output of log messages, including outputting any log messages that
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
942 * have been saved to buffer while paused.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
943 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
944 * @method resume
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
945 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
946 resume : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
947 this.isPaused = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
948 this.logReaderEnabled = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
949 this._printBuffer();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
950 if (this._btnPause) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
951 this._btnPause.value = "Pause";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
952 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
953 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
954
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
955 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
956 * Adds the UI to the DOM, attaches event listeners, and bootstraps initial
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
957 * UI state.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
958 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
959 * @method render
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
960 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
961 render : function () {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
962 if (this.rendered) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
963 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
964 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
965
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
966 this._initContainerEl();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
967
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
968 this._initHeaderEl();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
969 this._initConsoleEl();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
970 this._initFooterEl();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
971
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
972 this._initCategories();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
973 this._initSources();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
974
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
975 this._initDragDrop();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
976
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
977 // Subscribe to Logger custom events
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
978 Logger.newLogEvent.subscribe(this._onNewLog, this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
979 Logger.logResetEvent.subscribe(this._onReset, this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
980
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
981 Logger.categoryCreateEvent.subscribe(this._onCategoryCreate, this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
982 Logger.sourceCreateEvent.subscribe(this._onSourceCreate, this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
983
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
984 this.rendered = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
985
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
986 this._filterLogs();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
987 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
988
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
989 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
990 * Removes the UI from the DOM entirely and detaches all event listeners.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
991 * Implementers should note that Logger will still accumulate messages.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
992 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
993 * @method destroy
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
994 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
995 destroy : function () {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
996 Event.purgeElement(this._elContainer,true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
997 this._elContainer.innerHTML = '';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
998 this._elContainer.parentNode.removeChild(this._elContainer);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
999
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1000 this.rendered = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1001 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1002
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1003 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1004 * Hides UI of LogReader. Logging functionality is not disrupted.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1005 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1006 * @method hide
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1007 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1008 hide : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1009 this._elContainer.style.display = "none";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1010 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1011
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1012 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1013 * Shows UI of LogReader. Logging functionality is not disrupted.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1014 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1015 * @method show
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1016 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1017 show : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1018 this._elContainer.style.display = "block";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1019 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1020
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1021 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1022 * Collapses UI of LogReader. Logging functionality is not disrupted.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1023 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1024 * @method collapse
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1025 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1026 collapse : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1027 this._elConsole.style.display = "none";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1028 if(this._elFt) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1029 this._elFt.style.display = "none";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1030 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1031 this._btnCollapse.value = "Expand";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1032 this.isCollapsed = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1033 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1034
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1035 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1036 * Expands UI of LogReader. Logging functionality is not disrupted.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1037 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1038 * @method expand
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1039 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1040 expand : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1041 this._elConsole.style.display = "block";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1042 if(this._elFt) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1043 this._elFt.style.display = "block";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1044 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1045 this._btnCollapse.value = "Collapse";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1046 this.isCollapsed = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1047 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1048
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1049 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1050 * Returns related checkbox element for given filter (i.e., category or source).
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1051 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1052 * @method getCheckbox
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1053 * @param {String} Category or source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1054 * @return {Array} Array of all filter checkboxes.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1055 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1056 getCheckbox : function(filter) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1057 return this._filterCheckboxes[filter];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1058 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1059
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1060 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1061 * Returns array of enabled categories.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1062 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1063 * @method getCategories
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1064 * @return {String[]} Array of enabled categories.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1065 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1066 getCategories : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1067 return this._categoryFilters;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1068 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1069
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1070 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1071 * Shows log messages associated with given category.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1072 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1073 * @method showCategory
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1074 * @param {String} Category name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1075 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1076 showCategory : function(sCategory) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1077 var filtersArray = this._categoryFilters;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1078 // Don't do anything if category is already enabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1079 // Use Array.indexOf if available...
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1080 if(filtersArray.indexOf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1081 if(filtersArray.indexOf(sCategory) > -1) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1082 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1083 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1084 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1085 // ...or do it the old-fashioned way
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1086 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1087 for(var i=0; i<filtersArray.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1088 if(filtersArray[i] === sCategory){
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1089 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1090 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1091 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1092 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1093
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1094 this._categoryFilters.push(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1095 this._filterLogs();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1096 var elCheckbox = this.getCheckbox(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1097 if(elCheckbox) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1098 elCheckbox.checked = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1099 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1100 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1101
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1102 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1103 * Hides log messages associated with given category.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1104 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1105 * @method hideCategory
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1106 * @param {String} Category name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1107 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1108 hideCategory : function(sCategory) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1109 var filtersArray = this._categoryFilters;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1110 for(var i=0; i<filtersArray.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1111 if(sCategory == filtersArray[i]) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1112 filtersArray.splice(i, 1);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1113 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1114 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1115 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1116 this._filterLogs();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1117 var elCheckbox = this.getCheckbox(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1118 if(elCheckbox) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1119 elCheckbox.checked = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1120 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1121 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1122
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1123 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1124 * Returns array of enabled sources.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1125 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1126 * @method getSources
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1127 * @return {Array} Array of enabled sources.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1128 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1129 getSources : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1130 return this._sourceFilters;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1131 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1132
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1133 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1134 * Shows log messages associated with given source.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1135 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1136 * @method showSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1137 * @param {String} Source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1138 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1139 showSource : function(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1140 var filtersArray = this._sourceFilters;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1141 // Don't do anything if category is already enabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1142 // Use Array.indexOf if available...
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1143 if(filtersArray.indexOf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1144 if(filtersArray.indexOf(sSource) > -1) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1145 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1146 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1147 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1148 // ...or do it the old-fashioned way
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1149 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1150 for(var i=0; i<filtersArray.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1151 if(sSource == filtersArray[i]){
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1152 return;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1153 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1154 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1155 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1156 filtersArray.push(sSource);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1157 this._filterLogs();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1158 var elCheckbox = this.getCheckbox(sSource);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1159 if(elCheckbox) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1160 elCheckbox.checked = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1161 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1162 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1163
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1164 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1165 * Hides log messages associated with given source.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1166 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1167 * @method hideSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1168 * @param {String} Source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1169 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1170 hideSource : function(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1171 var filtersArray = this._sourceFilters;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1172 for(var i=0; i<filtersArray.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1173 if(sSource == filtersArray[i]) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1174 filtersArray.splice(i, 1);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1175 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1176 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1177 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1178 this._filterLogs();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1179 var elCheckbox = this.getCheckbox(sSource);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1180 if(elCheckbox) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1181 elCheckbox.checked = false;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1182 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1183 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1184
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1185 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1186 * Does not delete any log messages, but clears all printed log messages from
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1187 * the console. Log messages will be printed out again if user re-filters. The
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1188 * static method YAHOO.widget.Logger.reset() should be called in order to
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1189 * actually delete log messages.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1190 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1191 * @method clearConsole
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1192 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1193 clearConsole : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1194 // Clear the buffer of any pending messages
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1195 this._timeout = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1196 this._buffer = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1197 this._consoleMsgCount = 0;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1198
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1199 var elConsole = this._elConsole;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1200 elConsole.innerHTML = '';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1201 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1202
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1203 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1204 * Updates title to given string.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1205 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1206 * @method setTitle
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1207 * @param sTitle {String} New title.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1208 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1209 setTitle : function(sTitle) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1210 this._title.innerHTML = this.html2Text(sTitle);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1211 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1212
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1213 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1214 * Gets timestamp of the last log.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1215 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1216 * @method getLastTime
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1217 * @return {Date} Timestamp of the last log.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1218 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1219 getLastTime : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1220 return this._lastTime;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1221 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1222
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1223 formatMsg : function (entry) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1224 var entryFormat = this.entryFormat || (this.verboseOutput ?
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1225 LogReader.VERBOSE_TEMPLATE : LogReader.BASIC_TEMPLATE),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1226 info = {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1227 category : entry.category,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1228
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1229 // Label for color-coded display
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1230 label : entry.category.substring(0,4).toUpperCase(),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1231
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1232 sourceAndDetail : entry.sourceDetail ?
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1233 entry.source + " " + entry.sourceDetail :
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1234 entry.source,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1235
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1236 // Escape HTML entities in the log message itself for output
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1237 // to console
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1238 message : this.html2Text(entry.msg || entry.message || '')
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1239 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1240
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1241 // Add time info
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1242 if (entry.time && entry.time.getTime) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1243 info.localTime = entry.time.toLocaleTimeString ?
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1244 entry.time.toLocaleTimeString() :
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1245 entry.time.toString();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1246
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1247 // Calculate the elapsed time to be from the last item that
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1248 // passed through the filter, not the absolute previous item
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1249 // in the stack
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1250 info.elapsedTime = entry.time.getTime() - this.getLastTime();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1251
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1252 info.totalTime = entry.time.getTime() - Logger.getStartTime();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1253 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1254
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1255 var msg = LogReader.ENTRY_TEMPLATE.cloneNode(true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1256 if (this.verboseOutput) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1257 msg.className += ' yui-log-verbose';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1258 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1259
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1260 // Bug 2061169: Workaround for YAHOO.lang.substitute()
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1261 msg.innerHTML = entryFormat.replace(/\{(\w+)\}/g,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1262 function (x, placeholder) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1263 return (placeholder in info) ? info[placeholder] : '';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1264 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1265
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1266 return msg;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1267 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1268
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1269 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1270 * Converts input chars "<", ">", and "&" to HTML entities.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1271 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1272 * @method html2Text
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1273 * @param sHtml {String} String to convert.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1274 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1275 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1276 html2Text : function(sHtml) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1277 if(sHtml) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1278 sHtml += "";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1279 return sHtml.replace(/&/g, "&#38;").
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1280 replace(/</g, "&#60;").
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1281 replace(/>/g, "&#62;");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1282 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1283 return "";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1284 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1285
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1286 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1287 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1288 // Private member variables
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1289 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1290 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1291
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1292 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1293 * Name of LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1294 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1295 * @property _sName
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1296 * @type String
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1297 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1298 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1299 _sName : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1300
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1301 //TODO: remove
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1302 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1303 * A class member shared by all LogReaders if a container needs to be
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1304 * created during instantiation. Will be null if a container element never needs to
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1305 * be created on the fly, such as when the implementer passes in their own element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1306 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1307 * @property _elDefaultContainer
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1308 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1309 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1310 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1311 //YAHOO.widget.LogReader._elDefaultContainer = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1312
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1313 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1314 * Buffer of log message objects for batch output.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1315 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1316 * @property _buffer
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1317 * @type Object[]
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1318 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1319 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1320 _buffer : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1321
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1322 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1323 * Number of log messages output to console.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1324 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1325 * @property _consoleMsgCount
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1326 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1327 * @default 0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1328 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1329 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1330 _consoleMsgCount : 0,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1331
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1332 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1333 * Date of last output log message.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1334 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1335 * @property _lastTime
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1336 * @type Date
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1337 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1338 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1339 _lastTime : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1340
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1341 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1342 * Batched output timeout ID.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1343 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1344 * @property _timeout
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1345 * @type Number
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1346 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1347 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1348 _timeout : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1349
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1350 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1351 * Hash of filters and their related checkbox elements.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1352 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1353 * @property _filterCheckboxes
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1354 * @type Object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1355 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1356 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1357 _filterCheckboxes : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1358
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1359 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1360 * Array of filters for log message categories.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1361 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1362 * @property _categoryFilters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1363 * @type String[]
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1364 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1365 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1366 _categoryFilters : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1367
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1368 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1369 * Array of filters for log message sources.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1370 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1371 * @property _sourceFilters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1372 * @type String[]
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1373 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1374 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1375 _sourceFilters : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1376
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1377 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1378 * LogReader container element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1379 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1380 * @property _elContainer
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1381 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1382 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1383 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1384 _elContainer : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1385
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1386 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1387 * LogReader header element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1388 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1389 * @property _elHd
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1390 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1391 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1392 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1393 _elHd : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1394
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1395 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1396 * LogReader collapse element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1397 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1398 * @property _elCollapse
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1399 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1400 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1401 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1402 _elCollapse : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1403
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1404 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1405 * LogReader collapse button element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1406 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1407 * @property _btnCollapse
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1408 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1409 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1410 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1411 _btnCollapse : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1412
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1413 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1414 * LogReader title header element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1415 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1416 * @property _title
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1417 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1418 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1419 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1420 _title : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1421
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1422 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1423 * LogReader console element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1424 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1425 * @property _elConsole
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1426 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1427 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1428 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1429 _elConsole : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1430
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1431 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1432 * LogReader footer element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1433 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1434 * @property _elFt
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1435 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1436 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1437 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1438 _elFt : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1439
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1440 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1441 * LogReader buttons container element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1442 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1443 * @property _elBtns
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1444 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1445 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1446 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1447 _elBtns : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1448
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1449 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1450 * Container element for LogReader category filter checkboxes.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1451 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1452 * @property _elCategoryFilters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1453 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1454 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1455 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1456 _elCategoryFilters : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1457
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1458 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1459 * Container element for LogReader source filter checkboxes.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1460 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1461 * @property _elSourceFilters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1462 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1463 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1464 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1465 _elSourceFilters : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1466
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1467 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1468 * LogReader pause button element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1469 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1470 * @property _btnPause
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1471 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1472 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1473 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1474 _btnPause : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1475
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1476 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1477 * Clear button element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1478 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1479 * @property _btnClear
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1480 * @type HTMLElement
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1481 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1482 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1483 _btnClear : null,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1484
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1485 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1486 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1487 // Private methods
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1488 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1489 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1490
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1491 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1492 * Initializes the instance's message buffer, start time, etc
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1493 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1494 * @method _init
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1495 * @param container {String|HTMLElement} (optional) the render target
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1496 * @param config {Object} (optional) instance configuration
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1497 * @protected
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1498 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1499 _init : function (container, config) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1500 // Internal vars
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1501 this._buffer = []; // output buffer
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1502 this._filterCheckboxes = {}; // pointers to checkboxes
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1503 this._lastTime = Logger.getStartTime(); // timestamp of last log message to console
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1504
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1505 // Parse config vars here
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1506 if (config && (config.constructor == Object)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1507 for(var param in config) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1508 if (config.hasOwnProperty(param)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1509 this[param] = config[param];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1510 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1511 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1512 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1513
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1514 this._elContainer = Dom.get(container);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1515
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1516 YAHOO.log("LogReader initialized", null, this.toString());
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1517 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1518
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1519 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1520 * Initializes the primary container element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1521 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1522 * @method _initContainerEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1523 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1524 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1525 _initContainerEl : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1526
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1527 // Default the container if unset or not a div
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1528 if(!this._elContainer || !/div$/i.test(this._elContainer.tagName)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1529 this._elContainer = d.body.insertBefore(make("div"),d.body.firstChild);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1530 // Only position absolutely if an in-DOM element is not supplied
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1531 Dom.addClass(this._elContainer,"yui-log-container");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1532 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1533
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1534 Dom.addClass(this._elContainer,"yui-log");
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1535
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1536 // If implementer has provided container values, trust and set those
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1537 var style = this._elContainer.style,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1538 styleProps = ['width','right','top','fontSize'],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1539 prop,i;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1540
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1541 for (i = styleProps.length - 1; i >= 0; --i) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1542 prop = styleProps[i];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1543 if (this[prop]){
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1544 style[prop] = this[prop];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1545 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1546 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1547
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1548 if(this.left) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1549 style.left = this.left;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1550 style.right = "auto";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1551 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1552 if(this.bottom) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1553 style.bottom = this.bottom;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1554 style.top = "auto";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1555 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1556
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1557 // Opera needs a little prodding to reflow sometimes
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1558 if (YAHOO.env.ua.opera) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1559 d.body.style += '';
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1560 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1561
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1562 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1563
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1564 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1565 * Initializes the header element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1566 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1567 * @method _initHeaderEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1568 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1569 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1570 _initHeaderEl : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1571 // Destroy header if present
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1572 if(this._elHd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1573 // Unhook DOM events
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1574 Event.purgeElement(this._elHd, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1575
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1576 // Remove DOM elements
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1577 this._elHd.innerHTML = "";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1578 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1579
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1580 // Create header
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1581 // TODO: refactor this into an innerHTML
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1582 this._elHd = make("div",{
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1583 id: 'yui-log-hd' + this._sName,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1584 className: "yui-log-hd"
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1585 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1586
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1587 this._elCollapse = make("div",{ className: 'yui-log-btns' });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1588
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1589 this._btnCollapse = make("input",{
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1590 type: 'button',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1591 className: 'yui-log-button',
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1592 value: 'Collapse'
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1593 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1594 Event.on(this._btnCollapse,'click',this._onClickCollapseBtn,this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1595
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1596
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1597 this._title = make("h4",{ innerHTML : "Logger Console" });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1598
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1599 this._elCollapse.appendChild(this._btnCollapse);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1600 this._elHd.appendChild(this._elCollapse);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1601 this._elHd.appendChild(this._title);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1602 this._elContainer.appendChild(this._elHd);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1603 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1604
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1605 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1606 * Initializes the console element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1607 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1608 * @method _initConsoleEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1609 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1610 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1611 _initConsoleEl : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1612 // Destroy console
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1613 if(this._elConsole) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1614 // Unhook DOM events
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1615 Event.purgeElement(this._elConsole, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1616
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1617 // Remove DOM elements
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1618 this._elConsole.innerHTML = "";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1619 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1620
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1621 // Ceate console
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1622 this._elConsole = make("div", { className: "yui-log-bd" });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1623
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1624 // If implementer has provided console, trust and set those
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1625 if(this.height) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1626 this._elConsole.style.height = this.height;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1627 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1628
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1629 this._elContainer.appendChild(this._elConsole);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1630 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1631
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1632 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1633 * Initializes the footer element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1634 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1635 * @method _initFooterEl
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1636 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1637 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1638 _initFooterEl : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1639 // Don't create footer elements if footer is disabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1640 if(this.footerEnabled) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1641 // Destroy console
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1642 if(this._elFt) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1643 // Unhook DOM events
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1644 Event.purgeElement(this._elFt, true);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1645
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1646 // Remove DOM elements
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1647 this._elFt.innerHTML = "";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1648 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1649
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1650 // TODO: use innerHTML
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1651 this._elFt = make("div",{ className: "yui-log-ft" });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1652 this._elBtns = make("div", { className: "yui-log-btns" });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1653 this._btnPause = make("input", {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1654 type: "button",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1655 className: "yui-log-button",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1656 value: "Pause"
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1657 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1658
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1659 Event.on(this._btnPause,'click',this._onClickPauseBtn,this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1660
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1661 this._btnClear = make("input", {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1662 type: "button",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1663 className: "yui-log-button",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1664 value: "Clear"
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1665 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1666
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1667 Event.on(this._btnClear,'click',this._onClickClearBtn,this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1668
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1669 this._elCategoryFilters = make("div", { className: "yui-log-categoryfilters" });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1670 this._elSourceFilters = make("div", { className: "yui-log-sourcefilters" });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1671
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1672 this._elBtns.appendChild(this._btnPause);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1673 this._elBtns.appendChild(this._btnClear);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1674 this._elFt.appendChild(this._elBtns);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1675 this._elFt.appendChild(this._elCategoryFilters);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1676 this._elFt.appendChild(this._elSourceFilters);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1677 this._elContainer.appendChild(this._elFt);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1678 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1679 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1680
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1681 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1682 * Initializes Drag and Drop on the header element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1683 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1684 * @method _initDragDrop
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1685 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1686 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1687 _initDragDrop : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1688 // If Drag and Drop utility is available...
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1689 // ...and draggable is true...
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1690 // ...then make the header draggable
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1691 if(u.DD && this.draggable && this._elHd) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1692 var ylog_dd = new u.DD(this._elContainer);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1693 ylog_dd.setHandleElId(this._elHd.id);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1694 //TODO: use class name
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1695 this._elHd.style.cursor = "move";
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1696 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1697 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1698
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1699 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1700 * Initializes category filters.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1701 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1702 * @method _initCategories
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1703 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1704 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1705 _initCategories : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1706 // Initialize category filters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1707 this._categoryFilters = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1708 var aInitialCategories = Logger.categories;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1709
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1710 for(var j=0; j < aInitialCategories.length; j++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1711 var sCategory = aInitialCategories[j];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1712
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1713 // Add category to the internal array of filters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1714 this._categoryFilters.push(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1715
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1716 // Add checkbox element if UI is enabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1717 if(this._elCategoryFilters) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1718 this._createCategoryCheckbox(sCategory);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1719 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1720 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1721 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1722
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1723 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1724 * Initializes source filters.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1725 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1726 * @method _initSources
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1727 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1728 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1729 _initSources : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1730 // Initialize source filters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1731 this._sourceFilters = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1732 var aInitialSources = Logger.sources;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1733
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1734 for(var j=0; j < aInitialSources.length; j++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1735 var sSource = aInitialSources[j];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1736
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1737 // Add source to the internal array of filters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1738 this._sourceFilters.push(sSource);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1739
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1740 // Add checkbox element if UI is enabled
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1741 if(this._elSourceFilters) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1742 this._createSourceCheckbox(sSource);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1743 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1744 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1745 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1746
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1747 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1748 * Creates the UI for a category filter in the LogReader footer element.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1749 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1750 * @method _createCategoryCheckbox
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1751 * @param sCategory {String} Category name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1752 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1753 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1754 _createCategoryCheckbox : function(sCategory) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1755 if(this._elFt) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1756 var filter = make("span",{ className: "yui-log-filtergrp" }),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1757 check = make("input", {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1758 id: "yui-log-filter-" + sCategory + this._sName,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1759 className: "yui-log-filter-" + sCategory,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1760 type: "checkbox",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1761 category: sCategory
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1762 }),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1763 label = make("label", {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1764 htmlFor: check.id,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1765 className: sCategory,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1766 innerHTML: sCategory
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1767 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1768
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1769
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1770 // Subscribe to the click event
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1771 Event.on(check,'click',this._onCheckCategory,this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1772
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1773 this._filterCheckboxes[sCategory] = check;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1774
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1775 // Append el at the end so IE 5.5 can set "type" attribute
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1776 // and THEN set checked property
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1777 filter.appendChild(check);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1778 filter.appendChild(label);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1779 this._elCategoryFilters.appendChild(filter);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1780 check.checked = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1781 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1782 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1783
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1784 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1785 * Creates a checkbox in the LogReader footer element to filter by source.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1786 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1787 * @method _createSourceCheckbox
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1788 * @param sSource {String} Source name.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1789 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1790 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1791 _createSourceCheckbox : function(sSource) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1792 if(this._elFt) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1793 var filter = make("span",{ className: "yui-log-filtergrp" }),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1794 check = make("input", {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1795 id: "yui-log-filter-" + sSource + this._sName,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1796 className: "yui-log-filter-" + sSource,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1797 type: "checkbox",
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1798 source: sSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1799 }),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1800 label = make("label", {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1801 htmlFor: check.id,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1802 className: sSource,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1803 innerHTML: sSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1804 });
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1805
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1806
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1807 // Subscribe to the click event
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1808 Event.on(check,'click',this._onCheckSource,this);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1809
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1810 this._filterCheckboxes[sSource] = check;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1811
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1812 // Append el at the end so IE 5.5 can set "type" attribute
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1813 // and THEN set checked property
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1814 filter.appendChild(check);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1815 filter.appendChild(label);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1816 this._elSourceFilters.appendChild(filter);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1817 check.checked = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1818 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1819 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1820
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1821 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1822 * Reprints all log messages in the stack through filters.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1823 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1824 * @method _filterLogs
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1825 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1826 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1827 _filterLogs : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1828 // Reprint stack with new filters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1829 if (this._elConsole !== null) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1830 this.clearConsole();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1831 this._printToConsole(Logger.getStack());
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1832 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1833 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1834
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1835 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1836 * Sends buffer of log messages to output and clears buffer.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1837 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1838 * @method _printBuffer
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1839 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1840 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1841 _printBuffer : function() {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1842 this._timeout = null;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1843
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1844 if(this._elConsole !== null) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1845 var thresholdMax = this.thresholdMax;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1846 thresholdMax = (thresholdMax && !isNaN(thresholdMax)) ? thresholdMax : 500;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1847 if(this._consoleMsgCount < thresholdMax) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1848 var entries = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1849 for (var i=0; i<this._buffer.length; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1850 entries[i] = this._buffer[i];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1851 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1852 this._buffer = [];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1853 this._printToConsole(entries);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1854 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1855 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1856 this._filterLogs();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1857 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1858
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1859 if(!this.newestOnTop) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1860 this._elConsole.scrollTop = this._elConsole.scrollHeight;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1861 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1862 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1863 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1864
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1865 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1866 * Cycles through an array of log messages, and outputs each one to the console
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1867 * if its category has not been filtered out.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1868 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1869 * @method _printToConsole
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1870 * @param aEntries {Object[]} Array of LogMsg objects to output to console.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1871 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1872 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1873 _printToConsole : function(aEntries) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1874 // Manage the number of messages displayed in the console
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1875 var entriesLen = aEntries.length,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1876 df = d.createDocumentFragment(),
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1877 msgHTML = [],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1878 thresholdMin = this.thresholdMin,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1879 sourceFiltersLen = this._sourceFilters.length,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1880 categoryFiltersLen = this._categoryFilters.length,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1881 entriesStartIndex,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1882 i, j, msg, before;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1883
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1884 if(isNaN(thresholdMin) || (thresholdMin > this.thresholdMax)) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1885 thresholdMin = 0;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1886 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1887 entriesStartIndex = (entriesLen > thresholdMin) ? (entriesLen - thresholdMin) : 0;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1888
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1889 // Iterate through all log entries
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1890 for(i=entriesStartIndex; i<entriesLen; i++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1891 // Print only the ones that filter through
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1892 var okToPrint = false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1893 okToFilterCats = false,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1894 entry = aEntries[i],
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1895 source = entry.source,
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1896 category = entry.category;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1897
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1898 for(j=0; j<sourceFiltersLen; j++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1899 if(source == this._sourceFilters[j]) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1900 okToFilterCats = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1901 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1902 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1903 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1904 if(okToFilterCats) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1905 for(j=0; j<categoryFiltersLen; j++) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1906 if(category == this._categoryFilters[j]) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1907 okToPrint = true;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1908 break;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1909 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1910 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1911 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1912 if(okToPrint) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1913 // Start from 0ms elapsed time
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1914 if (this._consoleMsgCount === 0) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1915 this._lastTime = entry.time.getTime();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1916 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1917
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1918 msg = this.formatMsg(entry);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1919 if (typeof msg === 'string') {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1920 msgHTML[msgHTML.length] = msg;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1921 } else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1922 df.insertBefore(msg, this.newestOnTop ?
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1923 df.firstChild || null : null);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1924 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1925 this._consoleMsgCount++;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1926 this._lastTime = entry.time.getTime();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1927 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1928 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1929
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1930 if (msgHTML.length) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1931 msgHTML.splice(0,0,this._elConsole.innerHTML);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1932 this._elConsole.innerHTML = this.newestOnTop ?
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1933 msgHTML.reverse().join('') :
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1934 msgHTML.join('');
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1935 } else if (df.firstChild) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1936 this._elConsole.insertBefore(df, this.newestOnTop ?
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1937 this._elConsole.firstChild || null : null);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1938 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1939 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1940
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1941 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1942 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1943 // Private event handlers
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1944 //
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1945 /////////////////////////////////////////////////////////////////////////////
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1946
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1947 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1948 * Handles Logger's categoryCreateEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1949 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1950 * @method _onCategoryCreate
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1951 * @param sType {String} The event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1952 * @param aArgs {Object[]} Data passed from event firer.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1953 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1954 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1955 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1956 _onCategoryCreate : function(sType, aArgs, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1957 var category = aArgs[0];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1958
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1959 // Add category to the internal array of filters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1960 oSelf._categoryFilters.push(category);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1961
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1962 if(oSelf._elFt) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1963 oSelf._createCategoryCheckbox(category);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1964 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1965 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1966
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1967 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1968 * Handles Logger's sourceCreateEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1969 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1970 * @method _onSourceCreate
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1971 * @param sType {String} The event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1972 * @param aArgs {Object[]} Data passed from event firer.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1973 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1974 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1975 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1976 _onSourceCreate : function(sType, aArgs, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1977 var source = aArgs[0];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1978
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1979 // Add source to the internal array of filters
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1980 oSelf._sourceFilters.push(source);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1981
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1982 if(oSelf._elFt) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1983 oSelf._createSourceCheckbox(source);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1984 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1985 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1986
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1987 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1988 * Handles check events on the category filter checkboxes.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1989 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1990 * @method _onCheckCategory
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1991 * @param v {HTMLEvent} The click event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1992 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1993 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1994 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1995 _onCheckCategory : function(v, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1996 var category = this.category;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1997 if(!this.checked) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1998 oSelf.hideCategory(category);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1999 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2000 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2001 oSelf.showCategory(category);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2002 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2003 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2004
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2005 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2006 * Handles check events on the category filter checkboxes.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2007 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2008 * @method _onCheckSource
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2009 * @param v {HTMLEvent} The click event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2010 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2011 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2012 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2013 _onCheckSource : function(v, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2014 var source = this.source;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2015 if(!this.checked) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2016 oSelf.hideSource(source);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2017 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2018 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2019 oSelf.showSource(source);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2020 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2021 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2022
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2023 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2024 * Handles click events on the collapse button.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2025 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2026 * @method _onClickCollapseBtn
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2027 * @param v {HTMLEvent} The click event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2028 * @param oSelf {Object} The LogReader instance
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2029 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2030 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2031 _onClickCollapseBtn : function(v, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2032 if(!oSelf.isCollapsed) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2033 oSelf.collapse();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2034 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2035 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2036 oSelf.expand();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2037 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2038 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2039
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2040 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2041 * Handles click events on the pause button.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2042 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2043 * @method _onClickPauseBtn
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2044 * @param v {HTMLEvent} The click event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2045 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2046 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2047 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2048 _onClickPauseBtn : function(v, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2049 if(!oSelf.isPaused) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2050 oSelf.pause();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2051 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2052 else {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2053 oSelf.resume();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2054 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2055 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2056
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2057 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2058 * Handles click events on the clear button.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2059 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2060 * @method _onClickClearBtn
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2061 * @param v {HTMLEvent} The click event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2062 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2063 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2064 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2065 _onClickClearBtn : function(v, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2066 oSelf.clearConsole();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2067 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2068
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2069 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2070 * Handles Logger's newLogEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2071 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2072 * @method _onNewLog
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2073 * @param sType {String} The event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2074 * @param aArgs {Object[]} Data passed from event firer.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2075 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2076 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2077 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2078 _onNewLog : function(sType, aArgs, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2079 var logEntry = aArgs[0];
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2080 oSelf._buffer.push(logEntry);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2081
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2082 if (oSelf.logReaderEnabled === true && oSelf._timeout === null) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2083 oSelf._timeout = setTimeout(function(){oSelf._printBuffer();}, oSelf.outputBuffer);
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2084 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2085 },
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2086
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2087 /**
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2088 * Handles Logger's resetEvent.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2089 *
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2090 * @method _onReset
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2091 * @param sType {String} The event.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2092 * @param aArgs {Object[]} Data passed from event firer.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2093 * @param oSelf {Object} The LogReader instance.
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2094 * @private
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2095 */
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2096 _onReset : function(sType, aArgs, oSelf) {
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2097 oSelf._filterLogs();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2098 }
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2099 };
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2100
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2101 YAHOO.widget.LogReader = LogReader;
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2102
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2103 })();
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2104 YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.8.0r4", build: "2449"});