Hotfix: Correct user enable notification (#2487)

* show localized notification when user is enabled

* localize disable messages
This commit is contained in:
Mads Rasmussen
2024-10-28 11:48:32 +01:00
committed by Niels Lyngsø
parent a4e75f40d0
commit 6756ef0769
2 changed files with 32 additions and 2 deletions

View File

@@ -1,10 +1,14 @@
import { UmbUserRepositoryBase } from '../user-repository-base.js';
import { UmbUserItemRepository } from '../item/index.js';
import { UmbDisableUserServerDataSource } from './disable-user.server.data-source.js';
import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UserStateModel } from '@umbraco-cms/backoffice/external/backend-api';
export class UmbDisableUserRepository extends UmbUserRepositoryBase {
#disableSource: UmbDisableUserServerDataSource;
#localize = new UmbLocalizationController(this);
#userItemRepository = new UmbUserItemRepository(this);
constructor(host: UmbControllerHost) {
super(host);
@@ -18,11 +22,22 @@ export class UmbDisableUserRepository extends UmbUserRepositoryBase {
const { data, error } = await this.#disableSource.disable(ids);
if (!error) {
const { data: items } = await this.#userItemRepository.requestItems(ids);
if (!items) throw new Error('Could not load user item');
// TODO: get state from item when available
ids.forEach((id) => {
this.detailStore?.updateItem(id, { state: UserStateModel.DISABLED });
});
const notification = { data: { message: `User disabled` } };
let message = this.#localize.term('speechBubbles_disableUsersSuccess', items.length);
if (items.length === 1) {
const names = items?.map((item) => item.name).join(', ');
message = this.#localize.term('speechBubbles_disableUserSuccess', names);
}
const notification = { data: { message } };
this.notificationContext?.peek('positive', notification);
}

View File

@@ -1,10 +1,14 @@
import { UmbUserRepositoryBase } from '../user-repository-base.js';
import { UmbUserItemRepository } from '../item/index.js';
import { UmbEnableUserServerDataSource } from './enable-user.server.data-source.js';
import { UmbLocalizationController } from '@umbraco-cms/backoffice/localization-api';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import { UserStateModel } from '@umbraco-cms/backoffice/external/backend-api';
export class UmbEnableUserRepository extends UmbUserRepositoryBase {
#enableSource: UmbEnableUserServerDataSource;
#localize = new UmbLocalizationController(this);
#userItemRepository = new UmbUserItemRepository(this);
constructor(host: UmbControllerHost) {
super(host);
@@ -18,11 +22,22 @@ export class UmbEnableUserRepository extends UmbUserRepositoryBase {
const { data, error } = await this.#enableSource.enable(ids);
if (!error) {
const { data: items } = await this.#userItemRepository.requestItems(ids);
if (!items) throw new Error('Could not load user item');
// TODO: get state from item when available
ids.forEach((id) => {
this.detailStore?.updateItem(id, { state: UserStateModel.ACTIVE });
});
const notification = { data: { message: `User disabled` } };
let message = this.#localize.term('speechBubbles_enableUsersSuccess', items.length);
if (items.length === 1) {
const names = items?.map((item) => item.name).join(', ');
message = this.#localize.term('speechBubbles_enableUserSuccess', names);
}
const notification = { data: { message } };
this.notificationContext?.peek('positive', notification);
}