soiz1 commited on
Commit
9a0d40c
·
verified ·
1 Parent(s): 05dd5eb

Update src/Console/Console.js

Browse files
Files changed (1) hide show
  1. src/Console/Console.js +62 -21
src/Console/Console.js CHANGED
@@ -175,20 +175,57 @@ export default class Console extends Tool {
175
  _$filterText: $el.find(c('.filter-text')),
176
  })
177
  }
178
- _initLogger() {
179
- const cfg = this.config
180
- let maxLogNum = cfg.get('maxLogNum')
181
- maxLogNum = maxLogNum === 'infinite' ? 0 : +maxLogNum
182
-
183
- const $level = this._$control.find(c('.level'))
184
- const logger = new LunaConsole(this._$logs.get(0), {
185
- asyncRender: cfg.get('asyncRender'),
186
- maxNum: maxLogNum,
187
- showHeader: cfg.get('displayExtraInfo'),
188
- unenumerable: cfg.get('displayUnenumerable'),
189
- accessGetter: cfg.get('displayGetterVal'),
190
- lazyEvaluation: cfg.get('lazyEvaluation'),
191
- })
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
 
193
  logger.on('optionChange', (name, val) => {
194
  switch (name) {
@@ -233,13 +270,17 @@ export default class Console extends Tool {
233
 
234
  $control
235
  .on('click', c('.clear-console'), () => logger.clear(true))
236
- .on('click', c('.level'), function () {
237
- let level = $(this).data('level')
238
- if (level === 'all') {
239
- level = ['verbose', 'info', 'warning', 'error']
240
- }
241
- logger.setOption('level', level)
242
- })
 
 
 
 
243
  .on('click', c('.filter'), () => {
244
  LunaModal.prompt('Filter').then((filter) => {
245
  if (isNull(filter)) return
 
175
  _$filterText: $el.find(c('.filter-text')),
176
  })
177
  }
178
+ _initLogger() {
179
+ const cfg = this.config
180
+ let maxLogNum = cfg.get('maxLogNum')
181
+ maxLogNum = maxLogNum === 'infinite' ? 0 : +maxLogNum
182
+
183
+ const $level = this._$control.find(c('.level'))
184
+ const logger = new LunaConsole(this._$logs.get(0), {
185
+ asyncRender: cfg.get('asyncRender'),
186
+ maxNum: maxLogNum,
187
+ showHeader: cfg.get('displayExtraInfo'),
188
+ unenumerable: cfg.get('displayUnenumerable'),
189
+ accessGetter: cfg.get('displayGetterVal'),
190
+ lazyEvaluation: cfg.get('lazyEvaluation'),
191
+ })
192
+
193
+ // 初期状態を設定
194
+ this._updateLevelUI(['verbose', 'info', 'warning', 'error'])
195
+
196
+ logger.on('optionChange', (name, val) => {
197
+ switch (name) {
198
+ case 'level':
199
+ this._updateLevelUI(val)
200
+ break
201
+ }
202
+ })
203
+
204
+ if (cfg.get('overrideConsole')) this.overrideConsole()
205
+
206
+ this._logger = logger
207
+ }
208
+ _updateLevelUI(levels) {
209
+ const $level = this._$control.find(c('.level'))
210
+
211
+ $level.each(function() {
212
+ const $this = $(this)
213
+ const level = $this.data('level')
214
+ let isMatch = false
215
+
216
+ if (level === 'all') {
217
+ isMatch = Array.isArray(levels) &&
218
+ levels.includes('verbose') &&
219
+ levels.includes('info') &&
220
+ levels.includes('warning') &&
221
+ levels.includes('error')
222
+ } else {
223
+ isMatch = Array.isArray(levels) ? levels.includes(level) : level === levels
224
+ }
225
+
226
+ $this.toggleClass(c('active'), isMatch)
227
+ })
228
+ }
229
 
230
  logger.on('optionChange', (name, val) => {
231
  switch (name) {
 
270
 
271
  $control
272
  .on('click', c('.clear-console'), () => logger.clear(true))
273
+ .on('click', c('.level'), function() {
274
+ const $this = $(this)
275
+ let level = $this.data('level')
276
+
277
+ if (level === 'all') {
278
+ level = ['verbose', 'info', 'warning', 'error']
279
+ }
280
+
281
+ this._logger.setOption('level', level)
282
+ // UIの更新はoptionChangeイベントハンドラで行われるのでここでは不要
283
+ }.bind(this))
284
  .on('click', c('.filter'), () => {
285
  LunaModal.prompt('Filter').then((filter) => {
286
  if (isNull(filter)) return