Skip to content

Commit

Permalink
Don't duplicate fields for the model service #10557
Browse files Browse the repository at this point in the history
  • Loading branch information
PowerKiKi committed Oct 8, 2024
1 parent a59edbb commit 7b3e54b
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 51 deletions.
6 changes: 2 additions & 4 deletions client/app/admin/accounts/account/account.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ import {takeUntilDestroyed} from '@angular/core/rxjs-interop';
],
})
export class AccountComponent extends NaturalAbstractDetail<AccountService, NaturalSeoResolveData> implements OnInit {
public readonly accountService: AccountService;
public readonly userService = inject(UserService);

public nextCodeAvailable: number | null = null;
Expand All @@ -70,15 +69,14 @@ export class AccountComponent extends NaturalAbstractDetail<AccountService, Natu
const accountService = inject(AccountService);

super('account', accountService);
this.accountService = accountService;
}

public override ngOnInit(): void {
super.ngOnInit();

const parentId = this.route.snapshot.params.parent;
if (parentId) {
this.accountService.getOne(parentId).subscribe(parentAccount => {
this.service.getOne(parentId).subscribe(parentAccount => {
const parentField = this.form.get('parent');
if (parentAccount.id && parentField) {
parentField.setValue({
Expand All @@ -102,7 +100,7 @@ export class AccountComponent extends NaturalAbstractDetail<AccountService, Natu
switchMap(value => {
this.nextCodeAvailable = null; // Hide invalid code as soon as we can

return this.accountService.getNextCodeAvailable(value ? value.id : null);
return this.service.getNextCodeAvailable(value ? value.id : null);
}),
)
.subscribe(code => {
Expand Down
6 changes: 2 additions & 4 deletions client/app/admin/accounts/accounts/accounts.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ type AccountingExportDialogResult = {
],
})
export class AccountsComponent extends NaturalAbstractNavigableList<AccountService> implements OnInit {
private readonly accountService: AccountService;
private readonly dialog = inject(MatDialog);
public readonly permissionsService = inject(PermissionsService);
public readonly transactionLineService = inject(TransactionLineService);
Expand Down Expand Up @@ -117,7 +116,6 @@ export class AccountsComponent extends NaturalAbstractNavigableList<AccountServi
const accountService = inject(AccountService);

super(accountService);
this.accountService = accountService;

this.naturalSearchFacets = accounts();
}
Expand Down Expand Up @@ -145,7 +143,7 @@ export class AccountsComponent extends NaturalAbstractNavigableList<AccountServi
.subscribe(result => {
if (result) {
button.disabled = true;
this.accountService
this.service
.getReportExportLink(result.date, result.datePrevious, result.showBudget)
.pipe(finalize(() => (button.disabled = false)))
.subscribe(url => {
Expand All @@ -164,7 +162,7 @@ export class AccountsComponent extends NaturalAbstractNavigableList<AccountServi
.afterClosed()
.subscribe(date => {
if (date) {
this.accountService.closing(date).subscribe(transaction => {
this.service.closing(date).subscribe(transaction => {
if (transaction) {
this.router.navigate(['../transaction/', transaction.id], {relativeTo: this.route});
}
Expand Down
10 changes: 4 additions & 6 deletions client/app/admin/bookings/booking/booking.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ import {FormsModule, ReactiveFormsModule} from '@angular/forms';
],
})
export class BookingComponent extends NaturalAbstractDetail<BookingService, NaturalSeoResolveData> implements OnInit {
public readonly bookingService: BookingService;
public readonly bookableService = inject(BookableService);
public readonly userService = inject(UserService);

Expand Down Expand Up @@ -125,7 +124,6 @@ export class BookingComponent extends NaturalAbstractDetail<BookingService, Natu
const bookingService = inject(BookingService);

super('booking', bookingService);
this.bookingService = bookingService;
}

public override ngOnInit(): void {
Expand Down Expand Up @@ -155,7 +153,7 @@ export class BookingComponent extends NaturalAbstractDetail<BookingService, Natu
return;
}

this.bookingService.terminateBooking(this.data.model.id).subscribe(() => {
this.service.terminateBooking(this.data.model.id).subscribe(() => {
const endDate = this.form.get('endDate');
if (endDate) {
endDate.setValue(formatIsoDateTime(new Date()));
Expand All @@ -168,7 +166,7 @@ export class BookingComponent extends NaturalAbstractDetail<BookingService, Natu
return;
}

this.bookingService.updateNow({id: this.data.model.id, endDate: null}).subscribe(() => {
this.service.updateNow({id: this.data.model.id, endDate: null}).subscribe(() => {
this.form.controls.endDate.setValue(null);
});
}
Expand Down Expand Up @@ -232,14 +230,14 @@ export class BookingComponent extends NaturalAbstractDetail<BookingService, Natu

public doAssignBookable(bookable: UsageBookables['bookables']['items'][0]): void {
const partialBooking: BookingPartialInput = {status: BookingStatus.Booked};
this.bookingService.createWithBookable(bookable, this.data.model.owner, partialBooking).subscribe(booking => {
this.service.createWithBookable(bookable, this.data.model.owner, partialBooking).subscribe(booking => {
if (!this.isUpdatePage()) {
return;
}

this.newBooking = Object.assign(booking, {bookable: bookable});
this.alertService.info('La réservation a été créée avec succès');
this.bookingService.terminateBooking(this.data.model.id).subscribe(() => {
this.service.terminateBooking(this.data.model.id).subscribe(() => {
const endDate = this.form.get('endDate');
const status = this.form.get('status');
if (endDate) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
<mat-label>Secteur concerné</mat-label>
<mat-select formControlName="sector" (selectionChange)="update()">
<mat-option />
@for (option of expenseClaimService.getSectors(); track option) {
@for (option of service.getSectors(); track option) {
<mat-option [value]="option">
{{ option }}
</mat-option>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ export class ExpenseClaimComponent
extends NaturalAbstractDetail<ExpenseClaimService, NaturalSeoResolveData>
implements OnInit
{
public readonly expenseClaimService: ExpenseClaimService;
public readonly userService = inject(UserService);
public readonly transactionLineService = inject(TransactionLineService);
public readonly permissionsService = inject(PermissionsService);
Expand All @@ -75,7 +74,6 @@ export class ExpenseClaimComponent
const expenseClaimService = inject(ExpenseClaimService);

super('expenseClaim', expenseClaimService);
this.expenseClaimService = expenseClaimService;
}

public override ngOnInit(): void {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ export class TransactionComponent
>
implements OnInit
{
private readonly transactionService: TransactionService;
public readonly bookableService = inject(BookableService);
public readonly transactionLineService = inject(TransactionLineService);
public readonly userService = inject(UserService);
Expand All @@ -113,7 +112,6 @@ export class TransactionComponent
const transactionService = inject(TransactionService);

super('transaction', transactionService);
this.transactionService = transactionService;
}

public override ngOnInit(): void {
Expand Down Expand Up @@ -171,18 +169,15 @@ export class TransactionComponent

if (expenseClaim.owner?.account) {
if (expenseClaim.type === ExpenseClaimType.ExpenseClaim) {
const preset = this.transactionService.getExpenseClaimPreset(
expenseClaim.owner.account,
expenseClaim.amount,
);
const preset = this.service.getExpenseClaimPreset(expenseClaim.owner.account, expenseClaim.amount);
this.transactionLinesComponent.setItems(preset);
} else if (expenseClaim.type === ExpenseClaimType.Refund) {
const preset = this.transactionService.getRefundPreset(expenseClaim.owner.account, expenseClaim.amount);
const preset = this.service.getRefundPreset(expenseClaim.owner.account, expenseClaim.amount);
this.transactionLinesComponent.setItems(preset);
}
}
if (expenseClaim.type === ExpenseClaimType.Invoice) {
const preset = this.transactionService.getInvoicePreset(transactionName, expenseClaim.amount);
const preset = this.service.getInvoicePreset(transactionName, expenseClaim.amount);
this.transactionLinesComponent.setItems(preset);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ import {MatTableModule} from '@angular/material/table';
],
})
export class TransactionLinesComponent extends NaturalAbstractList<TransactionLineService> implements OnInit {
private readonly transactionLineService: TransactionLineService;
public readonly permissionsService = inject(PermissionsService);

public override availableColumns: AvailableColumn[] = [
Expand Down Expand Up @@ -86,22 +85,21 @@ export class TransactionLinesComponent extends NaturalAbstractList<TransactionLi
const transactionLineService = inject(TransactionLineService);

super(transactionLineService);
this.transactionLineService = transactionLineService;

this.naturalSearchFacets = transactionLines();
}

public download(): void {
const qvm = new NaturalQueryVariablesManager<ExportTransactionLinesVariables>(this.variablesManager);

this.transactionLineService.getExportLink(qvm).subscribe(url => {
this.service.getExportLink(qvm).subscribe(url => {
window.location.href = url;
});
}

public filterByAccount(account: MinimalAccount): void {
if (this.hideFab) {
const link = this.transactionLineService.linkToTransactionLinesForAccount(account);
const link = this.service.linkToTransactionLinesForAccount(account);
this.router.navigate(link);
} else {
const selection = TransactionLineService.getSelectionForAccount(account);
Expand All @@ -122,7 +120,7 @@ export class TransactionLinesComponent extends NaturalAbstractList<TransactionLi

public filterByTag(tag: TransactionTag['transactionTag']): void {
if (this.hideFab) {
const link = this.transactionLineService.linkToTransactionLinesForTag(tag);
const link = this.service.linkToTransactionLinesForTag(tag);
this.router.navigate(link);
} else {
const selection = TransactionLineService.getSelectionForTag(tag);
Expand All @@ -132,7 +130,7 @@ export class TransactionLinesComponent extends NaturalAbstractList<TransactionLi
}

public updateReconciled(e: MatCheckboxChange, transactionLine: TransactionLine['transactionLine']): void {
this.transactionLineService.updateIsReconciled(transactionLine.id, e.checked).subscribe(() => {
this.service.updateIsReconciled(transactionLine.id, e.checked).subscribe(() => {
this.alertService.info('Pointage mis à jour');
});
}
Expand Down
10 changes: 4 additions & 6 deletions client/app/admin/users/user/user.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ import {MoneyComponent} from '../../../shared/components/money/money.component';
],
})
export class UserComponent extends NaturalAbstractDetail<UserService, NaturalSeoResolveData> implements OnInit {
private readonly userService: UserService;
public readonly userTagService = inject(UserTagService);
public readonly licenseService = inject(LicenseService);
public readonly bookingService = inject(BookingService);
Expand All @@ -125,7 +124,6 @@ export class UserComponent extends NaturalAbstractDetail<UserService, NaturalSeo
const userService = inject(UserService);

super('user', userService);
this.userService = userService;
}

public override ngOnInit(): void {
Expand All @@ -137,7 +135,7 @@ export class UserComponent extends NaturalAbstractDetail<UserService, NaturalSeo
if (this.isUpdatePage()) {
const qvm = new NaturalQueryVariablesManager<UsersVariables>();
qvm.set('variables', UserService.getFamilyVariables(this.data.model));
this.userService.getAll(qvm).subscribe(family => {
this.service.getAll(qvm).subscribe(family => {
this.showFamilyTab = family.items.length > 1;
});

Expand All @@ -150,7 +148,7 @@ export class UserComponent extends NaturalAbstractDetail<UserService, NaturalSeo
protected override initForm(): void {
super.initForm();

this.userService.getUserRolesAvailable(this.data.model).subscribe(userRoles => {
this.service.getUserRolesAvailable(this.data.model).subscribe(userRoles => {
this.userRolesAvailable = userRoles;
});

Expand Down Expand Up @@ -203,7 +201,7 @@ export class UserComponent extends NaturalAbstractDetail<UserService, NaturalSeo
}

public canUpdateIban(): boolean {
return this.userService.canUpdateIban(this.viewer);
return this.service.canUpdateIban(this.viewer);
}

public updateIban(): void {
Expand All @@ -219,7 +217,7 @@ export class UserComponent extends NaturalAbstractDetail<UserService, NaturalSeo
this.updating = true;
this.ibanCtrl.enable();
const iban = this.ibanCtrl.value;
this.userService
this.service
.updateNow({id: this.data.model.id, iban: iban})
.pipe(
finalize(() => {
Expand Down
8 changes: 2 additions & 6 deletions client/app/admin/users/users/users.component.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import {Apollo} from 'apollo-angular';
import {Component, inject, OnInit} from '@angular/core';
import {
AvailableColumn,
Expand Down Expand Up @@ -55,9 +54,7 @@ import {MatTableModule} from '@angular/material/table';
],
})
export class UsersComponent extends NaturalAbstractList<UserService> implements OnInit {
private readonly userService: UserService;
public readonly permissionsService = inject(PermissionsService);
private readonly apollo = inject(Apollo);
private readonly dialog = inject(MatDialog);
private readonly copyContactDataButtonService =
inject<CopyContactDataButtonService<EmailAndPhoneUsersVariables>>(CopyContactDataButtonService);
Expand Down Expand Up @@ -91,14 +88,13 @@ export class UsersComponent extends NaturalAbstractList<UserService> implements
const userService = inject(UserService);

super(userService);
this.userService = userService;

this.naturalSearchFacets = users();
}

public flagWelcomeSessionDate(user: Users['users']['items'][0]): void {
this.welcoming.set(user, true);
this.userService
this.service
.flagWelcomeSessionDate(user.id)
.pipe(finalize(() => this.welcoming.delete(user)))
.subscribe();
Expand All @@ -110,7 +106,7 @@ export class UsersComponent extends NaturalAbstractList<UserService> implements
}

this.activating.set(user, true);
this.userService
this.service
.activate(user.id)
.pipe(finalize(() => this.activating.delete(user)))
.subscribe();
Expand Down
12 changes: 4 additions & 8 deletions client/app/profile/components/finances/finances.component.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import {Component, Input, OnChanges, OnInit, SimpleChanges, inject} from '@angular/core';
import {Component, inject, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';
import {CurrentUserForProfile, ExpenseClaims, ExpenseClaimType} from '../../../shared/generated-types';
import {UserService} from '../../../admin/users/services/user.service';
import {ExpenseClaimService} from '../../../admin/expenseClaim/services/expenseClaim.service';
import {MatDialog} from '@angular/material/dialog';
import {CreateRefundComponent} from '../create-refund/create-refund.component';
import {ifValid, NaturalAbstractList, NaturalEnumPipe, NaturalIconDirective} from '@ecodev/natural';
import {TransactionLineService} from '../../../admin/transactions/services/transactionLine.service';
import {finalize} from 'rxjs/operators';
import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms';
import {iban as ibanValidator} from '../../../shared/validators';
Expand Down Expand Up @@ -49,8 +48,6 @@ import {CommonModule} from '@angular/common';
})
export class FinancesComponent extends NaturalAbstractList<ExpenseClaimService> implements OnInit, OnChanges {
private readonly userService = inject(UserService);
private readonly expenseClaimService: ExpenseClaimService;
private readonly transactionLineService = inject(TransactionLineService);
private readonly dialog = inject(MatDialog);

@Input({required: true}) public viewer!: NonNullable<CurrentUserForProfile['viewer']>;
Expand All @@ -70,7 +67,6 @@ export class FinancesComponent extends NaturalAbstractList<ExpenseClaimService>
const expenseClaimService = inject(ExpenseClaimService);

super(expenseClaimService);
this.expenseClaimService = expenseClaimService;
}

public ngOnChanges(changes: SimpleChanges): void {
Expand Down Expand Up @@ -101,7 +97,7 @@ export class FinancesComponent extends NaturalAbstractList<ExpenseClaimService>
this.lockIbanIfDefined();
this.ibanLocked = !!this.viewer.iban;

this.variablesManager.set('forUser', this.expenseClaimService.getForUserVariables(this.viewer));
this.variablesManager.set('forUser', this.service.getForUserVariables(this.viewer));
}

public cancelExpenseClaim(expenseClaim: ExpenseClaims['expenseClaims']['items'][0]): void {
Expand All @@ -111,7 +107,7 @@ export class FinancesComponent extends NaturalAbstractList<ExpenseClaimService>
if (confirmed) {
this.deleting.add(expenseClaim.id);

this.expenseClaimService.delete([expenseClaim]).subscribe({
this.service.delete([expenseClaim]).subscribe({
next: () => {
this.alertService.info(`Supprimé`);
},
Expand All @@ -128,7 +124,7 @@ export class FinancesComponent extends NaturalAbstractList<ExpenseClaimService>
.subscribe(expense => {
if (expense) {
expense.type = ExpenseClaimType.Refund;
this.expenseClaimService.create(expense).subscribe(() => {
this.service.create(expense).subscribe(() => {
this.alertService.info('Ta demande de remboursement a été enregistrée');
});
}
Expand Down

0 comments on commit 7b3e54b

Please sign in to comment.