From f1ea69bea4b363a37132ff6ff24f7f1d47a2465e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sun, 18 Feb 2018 11:36:43 +0100 Subject: [PATCH] notifications - :lipstick: --- .../notifications/notificationCommands.ts | 56 +++++++++++++- .../common/notificationService.ts | 75 ------------------- 2 files changed, 53 insertions(+), 78 deletions(-) diff --git a/src/vs/workbench/browser/parts/notifications/notificationCommands.ts b/src/vs/workbench/browser/parts/notifications/notificationCommands.ts index cb693791ae7..1e8117dc23d 100644 --- a/src/vs/workbench/browser/parts/notifications/notificationCommands.ts +++ b/src/vs/workbench/browser/parts/notifications/notificationCommands.ts @@ -14,6 +14,8 @@ import { INotificationViewItem, isNotificationViewItem } from 'vs/workbench/comm import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; import { localize } from 'vs/nls'; import { IListService, WorkbenchList } from 'vs/platform/list/browser/listService'; +import { Action } from 'vs/base/common/actions'; +import { Severity } from 'vs/platform/message/common/message'; // Center export const SHOW_NOTIFICATIONS_CENTER_COMMAND_ID = 'notifications.showList'; @@ -199,14 +201,62 @@ export function registerNotificationCommands(center: INotificationsCenterControl // TODO@notifications remove me CommandsRegistry.registerCommand('notifications.showInfo', accessor => { - accessor.get(INotificationService).info('This is an information message!' + Date.now()); + let handle = accessor.get(INotificationService).notify({ + severity: Severity.Info, + message: 'Installing additional dependencies...', + actions: { + primary: [ + new Action('id.cancel', 'Cancel', null, true, () => { console.log('OK'); return void 0; }), + ] + } + }); + handle.progress.total(100); + setTimeout(() => { + handle.updateMessage('Installing: admdefine...'); + handle.progress.worked(20); + setTimeout(() => { + handle.updateMessage('Installing: binary-search...'); + handle.progress.worked(40); + setTimeout(() => { + handle.updateMessage('Installing: cookie...'); + handle.progress.worked(60); + setTimeout(() => { + handle.updateMessage('Installing: editorconfig...'); + handle.progress.worked(80); + setTimeout(() => { + handle.updateMessage('Installing: error-ex...'); + handle.progress.worked(100); + setTimeout(() => { + handle.updateMessage('Installation complete'); + handle.progress.done(); + handle.updateActions(); + }, 3000); + }, 3000); + }, 3000); + }, 3000); + }, 3000); + }, 1000); }); CommandsRegistry.registerCommand('notifications.showWarning', accessor => { - accessor.get(INotificationService).warn('This is a warning message!' + Date.now()); + accessor.get(INotificationService).warn('This is a warning message!'); }); CommandsRegistry.registerCommand('notifications.showError', accessor => { - accessor.get(INotificationService).error('This is an error message!' + Date.now()); + accessor.get(INotificationService).notify({ + severity: Severity.Info, + message: 'This is a info message with a [link](https://code.visualstudio.com).', + actions: { + primary: [ + new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }), + new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; }) + ], + secondary: [ + new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }), + new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; }) + ] + } + }); }); + } \ No newline at end of file diff --git a/src/vs/workbench/services/notification/common/notificationService.ts b/src/vs/workbench/services/notification/common/notificationService.ts index ca59345bd65..15abc7e7219 100644 --- a/src/vs/workbench/services/notification/common/notificationService.ts +++ b/src/vs/workbench/services/notification/common/notificationService.ts @@ -7,7 +7,6 @@ import { INotificationService, INotification, INotificationHandle } from 'vs/platform/notification/common/notification'; import { Severity } from 'vs/platform/message/common/message'; -import { Action } from 'vs/base/common/actions'; import { INotificationsModel, NotificationsModel } from 'vs/workbench/common/notifications'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; @@ -26,86 +25,12 @@ export class NotificationService implements INotificationService { const model = new NotificationsModel(); this.toDispose.push(model); this._model = model; - - // TODO@notification remove me - this.showFakeNotifications(); } public get model(): INotificationsModel { return this._model; } - private showFakeNotifications(): void { - setTimeout(() => { - this.notify({ - severity: Severity.Info, - message: 'This is a info message with a [link](https://code.visualstudio.com). This is a info message with a [link](https://code.visualstudio.com). This is a info message with a [link](https://code.visualstudio.com). This is a info message with a [link](https://code.visualstudio.com).', - source: 'GitLens Extension' - }); - let handle = this.notify({ - severity: Severity.Warning, - message: 'This is a warning message with a [link](https://code.visualstudio.com).', - actions: { - primary: [ - new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }), - new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; }) - ], - secondary: [ - new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }), - new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; }) - ] - } - }); - handle.progress.total(100); - setTimeout(() => { - handle.updateMessage('First 20% done...'); - handle.progress.worked(20); - setTimeout(() => { - handle.updateMessage('First 40% done...'); - handle.progress.worked(40); - setTimeout(() => { - handle.updateMessage('First 60% done...'); - handle.progress.worked(60); - setTimeout(() => { - handle.updateMessage('First 80% done...'); - handle.progress.worked(80); - setTimeout(() => { - handle.updateMessage('First 100% done...'); - handle.progress.worked(100); - setTimeout(() => { - handle.updateMessage('Finished!'); - handle.progress.done(); - }, 3000); - }, 3000); - }, 3000); - }, 3000); - }, 3000); - }, 1000); - - let handle2 = this.notify({ - severity: Severity.Error, - message: 'Short message' - }); - setTimeout(() => { - handle2.progress.infinite(); - handle2.updateActions({ - primary: [ - new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }), - new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; }) - ], - secondary: [ - new Action('id.reload', 'Yes OK', null, true, () => { console.log('OK'); return void 0; }), - new Action('id.cancel', 'No, not OK!', null, true, () => { console.log('NOT OK'); return void 0; }) - ] - }); - setTimeout(() => { - handle2.updateMessage('This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com).This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com). This is a error message with a [link](https://code.visualstudio.com).'); - handle2.progress.done(); - }, 1500); - }, 500); - }, 500); - } - public info(message: string): INotificationHandle { return this.model.notify({ severity: Severity.Info, message }); } -- GitLab