From b89a54a3e7c549b07a198abe5406fab710d7d2b7 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Tue, 21 Apr 2020 11:52:03 +0300 Subject: [PATCH] docs: add Confirmation-Service.md --- docs/en/UI/Angular/Confirmation-Service.md | 168 +++++++++++++++++++++ docs/en/UI/Angular/images/confirmation.png | Bin 0 -> 26919 bytes 2 files changed, 168 insertions(+) create mode 100644 docs/en/UI/Angular/Confirmation-Service.md create mode 100644 docs/en/UI/Angular/images/confirmation.png diff --git a/docs/en/UI/Angular/Confirmation-Service.md b/docs/en/UI/Angular/Confirmation-Service.md new file mode 100644 index 0000000000..1164dd9de6 --- /dev/null +++ b/docs/en/UI/Angular/Confirmation-Service.md @@ -0,0 +1,168 @@ +# ConfirmationService + +You can use the `ConfirmationService` in @abp/ng.theme.shared package to place a confirmation popup at the root level. + + +## Getting Started + +You do not have to provide the `ConfirmationService` at module or component level, because it is already **provided in root**. You can inject and start using it immediately in your components, directives, or services. + + +```js +import { ConfirmationService } from '@abp/ng.theme.shared'; + +@Component({ + /* class metadata here */ +}) +class DemoComponent { + constructor(private confirmation: ConfirmationService) {} +} +``` + +## Usage + +You can use the `success`, `warn`, `error`, and `info` methods of `ConfirmationService` to display a confirmation popup at the root level in your project. + +### How to Display a Confirmation Popup + +```js +const confirmationStatus$ = this.confirmation.success('Message', 'Title') +``` + +- The `ConfirmationService` methods accept three parameters that are `message`, `title`, and `options`. +- `success`, `warn`, `error`, and `info` methods return an [RxJS Subject](https://rxjs-dev.firebaseapp.com/guide/subject) to listen to confirmation popup closing event. The type of event value is [`Confirmation.Status`](https://github.com/abpframework/abp/blob/master/npm/ng-packs/packages/theme-shared/src/lib/models/confirmation.ts#L24) that is an enum. + +### How to Listen Closing Event + +You can subscribe the confirmation closing event like below: + +```js +import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared'; + +constructor(private confirmation: ConfirmationService) {} + +this.confirmation + .warn('::WillBeDeleted', { key: '::AreYouSure', defaultValue: 'Are you sure?' }) + .subscribe((status: Confirmation.Status) => { + switch (status) { + case Confirmation.Status.confirm: + // confirmed, the popup was closed by clicking the confirm button + break; + case Confirmation.Status.reject: + // rejected, the popup was closed by clicking the cancel button + break; + case Confirmation.Status.dismiss: + // dismissed, the popup was closed by pressing the escape + break; + } + }); +``` + +- The `message` and `title` parameters accept a string, localization key or localization object. See the [localization document](./Localization.md) + +If the status is not important for you, you may not listen the closing event: + +```js +this.confirmation.error('You are not authorized.', 'Error'); +``` + +### How to Display a Confirmation Popup With Given Options + +Options can be passed as the third parameter to `success`, `warn`, `error`, and `info` methods: + +```js +const options: Partial = { + hideCancelBtn: false, + hideYesBtn: false, + cancelText: 'Close', + yesText: 'Confirm', + messageLocalizationParams: ['Demo'], + titleLocalizationParams: [], +}; + +this.confirmation.warn( + 'AbpIdentity::RoleDeletionConfirmationMessage', + 'Are you sure?', + options, +); +``` + +- `hideCancelBtn` option is the boolean value that allows the cancel button to be displayed or hidden. Default value is `false` +- `hideYesBtn` option is the boolean value that allows the confirm button to be displayed or hidden. Default value is `false` +- `cancelText` is the text of the cancel button. A localization key or localization object can be passed. Default value is `AbpUi::Cancel` +- `yesText` is the text of the confirm button. A localization key or localization object can be passed. Default value is `AbpUi::Yes` +- `messageLocalizationParams` is the interpolation parameters of the message localization. +- `titleLocalizationParams` is the interpolation parameters of the title localization. + +With the above options, the confirmation popup looks like this: + +![confirmation](./images/confirmation.png) + +### How to Remove a Confirmation Popup + +The open confirmation popup can be removed manually via the `clear` method: + +```js +this.confirmation.clear(); +``` + +## API + +### success + +```js +success( + message: Config.LocalizationParam, + title: Config.LocalizationParam, + options?: Partial, +): Observable +``` + +> See the [`Config.LocalizationParam` type](https://github.com/abpframework/abp/blob/master/npm/ng-packs/packages/core/src/lib/models/config.ts#L46) and [`Confirmation` namespace](https://github.com/abpframework/abp/blob/master/npm/ng-packs/packages/theme-shared/src/lib/models/confirmation.ts) + + +### warn + +```js +warn( + message: Config.LocalizationParam, + title: Config.LocalizationParam, + options?: Partial, +): Observable +``` + +### error + +```js +error( + message: Config.LocalizationParam, + title: Config.LocalizationParam, + options?: Partial, +): Observable +``` + +### info + +```js +info( + message: Config.LocalizationParam, + title: Config.LocalizationParam, + options?: Partial, +): Observable +``` + +### clear + +```js +clear( + status: Confirmation.Status = Confirmation.Status.dismiss +): void +``` + +- `status` parameter is the value of the confirmation closing event. + + +## What's Next? + +- ToasterService + \ No newline at end of file diff --git a/docs/en/UI/Angular/images/confirmation.png b/docs/en/UI/Angular/images/confirmation.png new file mode 100644 index 0000000000000000000000000000000000000000..efe4c98ea779b3798d21208966566711ec535629 GIT binary patch literal 26919 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