it('when subscribing twice', () => { var events = new Emitter(); var sub1Called = 0; function handler() { sub1Called += 1; } events.on('test', handler); events.on('test', handler); events.emit('test', null); expect(sub1Called).to.be(2); });
initEditMode() { if (!this.editModeInitiated) { this.editModeInitiated = true; this.events.emit('init-edit-mode', null); this.maxPanelsPerRowOptions = getFactors(GRID_COLUMN_COUNT); } }
getExtendedMenu() { const menu = []; if (!this.panel.fullscreen && this.dashboard.meta.canEdit) { menu.push({ text: 'Duplicate', click: 'ctrl.duplicate()', role: 'Editor', shortcut: 'p d', }); menu.push({ text: 'Copy', click: 'ctrl.copyPanel()', role: 'Editor', }); } menu.push({ text: 'Panel JSON', click: 'ctrl.editPanelJson(); dismiss();', }); this.events.emit('init-panel-actions', menu); return menu; }
render(payload?) { // ignore if other panel is in fullscreen mode if (this.otherPanelInFullscreenMode()) { return; } this.events.emit('render', payload); }
init() { this.calculatePanelHeight(); this.publishAppEvent('panel-initialized', {scope: this.$scope}); this.events.emit('panel-initialized'); this.refresh(); }
it('should notfiy subscribers', () => { var events = new Emitter(); var sub1Called = false; var sub2Called = false; events.on('test', () => { sub1Called = true; }); events.on('test', () => { sub2Called = true; }); events.emit('test', null); expect(sub1Called).to.be(true); expect(sub2Called).to.be(true); });
render(payload?) { // ignore if other panel is in fullscreen mode if (this.otherPanelInFullscreenMode()) { return; } this.calculatePanelHeight(); this.timing.renderStart = new Date().getTime(); this.events.emit('render', payload); }
refresh() { if (!this.isPanelVisible() && !this.dashboard.meta.soloMode && !this.dashboard.snapshot) { this.skippedLastRefresh = true; return; } this.skippedLastRefresh = false; this.events.emit('refresh', null); }
it('should handle errors', () => { var events = new Emitter(); var sub1Called = 0; var sub2Called = 0; events.on('test', () => { sub1Called++; throw {message: "hello"}; }); events.on('test', () => { sub2Called++; }); try { events.emit('test', null); } catch (_) { } try { events.emit('test', null); } catch (_) {} expect(sub1Called).to.be(2); expect(sub2Called).to.be(0); });
initEditMode() { this.editorTabs = []; this.addEditorTab('General', 'public/app/partials/panelgeneral.html'); this.editModeInitiated = true; this.events.emit('init-edit-mode', null); var urlTab = (this.$injector.get('$routeParams').tab || '').toLowerCase(); if (urlTab) { this.editorTabs.forEach((tab, i) => { if (tab.title.toLowerCase() === urlTab) { this.editorTabIndex = i; } }); } }