mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-09-09 18:02:54 +00:00
[ACS-11417] lint enable angular eslint prefer inject rule default in ng20 for alfresco apps (#5111)
* [ACS-11417] Enable inject prefer eslint rule * [ACS-11417] Added eslint rule for prefer readonly * [ACS-11417] Fixed unit tests * [ACS-11417] Addressed copilot comments
This commit is contained in:
@@ -76,6 +76,14 @@ import { MatToolbar } from '@angular/material/toolbar';
|
||||
host: { class: 'aca-manage-rules' }
|
||||
})
|
||||
export class ManageRulesSmartComponent implements OnInit {
|
||||
private readonly location = inject(Location);
|
||||
private readonly folderRulesService = inject(FolderRulesService);
|
||||
private readonly route = inject(ActivatedRoute);
|
||||
private readonly matDialogService = inject(MatDialog);
|
||||
private readonly notificationService = inject(NotificationService);
|
||||
private readonly actionsService = inject(ActionsService);
|
||||
private readonly folderRuleSetsService = inject(FolderRuleSetsService);
|
||||
|
||||
nodeId = '';
|
||||
isInheritanceEnabled = true;
|
||||
isInheritanceToggleDisabled = false;
|
||||
@@ -98,16 +106,6 @@ export class ManageRulesSmartComponent implements OnInit {
|
||||
|
||||
private readonly destroyRef = inject(DestroyRef);
|
||||
|
||||
constructor(
|
||||
private location: Location,
|
||||
private folderRulesService: FolderRulesService,
|
||||
private route: ActivatedRoute,
|
||||
private matDialogService: MatDialog,
|
||||
private notificationService: NotificationService,
|
||||
private actionsService: ActionsService,
|
||||
private folderRuleSetsService: FolderRuleSetsService
|
||||
) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.mainRuleSet$ = this.folderRuleSetsService.mainRuleSet$;
|
||||
this.inheritedRuleSets$ = this.folderRuleSetsService.inheritedRuleSets$;
|
||||
|
||||
+7
-9
@@ -73,6 +73,13 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
]
|
||||
})
|
||||
export class RuleActionUiComponent implements ControlValueAccessor, OnInit, OnChanges {
|
||||
private readonly cardViewUpdateService = inject(CardViewUpdateService);
|
||||
private readonly dialog = inject(MatDialog);
|
||||
private readonly translate = inject(TranslateService);
|
||||
private readonly tagService = inject(TagService);
|
||||
private readonly categoryService = inject(CategoryService);
|
||||
private readonly securityControlsService = inject(SecurityControlsService);
|
||||
|
||||
@Input()
|
||||
nodeId = '';
|
||||
|
||||
@@ -121,15 +128,6 @@ export class RuleActionUiComponent implements ControlValueAccessor, OnInit, OnCh
|
||||
|
||||
private readonly destroyRef = inject(DestroyRef);
|
||||
|
||||
constructor(
|
||||
private cardViewUpdateService: CardViewUpdateService,
|
||||
private dialog: MatDialog,
|
||||
private translate: TranslateService,
|
||||
private tagService: TagService,
|
||||
private categoryService: CategoryService,
|
||||
private securityControlsService: SecurityControlsService
|
||||
) {}
|
||||
|
||||
writeValue(action: RuleAction) {
|
||||
this.form.setValue({
|
||||
actionDefinitionId: action.actionDefinitionId
|
||||
|
||||
+3
-3
@@ -75,9 +75,9 @@ const AUTOCOMPLETE_OPTIONS_DEBOUNCE_TIME = 500;
|
||||
]
|
||||
})
|
||||
export class RuleSimpleConditionUiComponent implements OnInit, ControlValueAccessor, OnChanges {
|
||||
private appSettings = inject(AppSettingsService);
|
||||
private categoryService = inject(CategoryService);
|
||||
private tagService = inject(TagService);
|
||||
private readonly appSettings = inject(AppSettingsService);
|
||||
private readonly categoryService = inject(CategoryService);
|
||||
private readonly tagService = inject(TagService);
|
||||
|
||||
form = new FormGroup({
|
||||
field: new FormControl('cm:name'),
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Component, EventEmitter, Inject, Output, ViewEncapsulation } from '@angular/core';
|
||||
import { Component, EventEmitter, Output, ViewEncapsulation, inject } from '@angular/core';
|
||||
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
||||
import { Rule } from '../model/rule.model';
|
||||
import { Observable } from 'rxjs';
|
||||
@@ -50,6 +50,8 @@ export interface EditRuleDialogOptions {
|
||||
host: { class: 'aca-edit-rule-dialog' }
|
||||
})
|
||||
export class EditRuleDialogUiComponent {
|
||||
data = inject<EditRuleDialogOptions>(MAT_DIALOG_DATA);
|
||||
|
||||
formValid = false;
|
||||
model: Partial<Rule>;
|
||||
nodeId = '';
|
||||
@@ -60,7 +62,7 @@ export class EditRuleDialogUiComponent {
|
||||
formValue: Partial<Rule>;
|
||||
@Output() submitted = new EventEmitter<Partial<Rule>>();
|
||||
|
||||
constructor(@Inject(MAT_DIALOG_DATA) public data: EditRuleDialogOptions) {
|
||||
constructor() {
|
||||
this.model = this.data?.model || {};
|
||||
this.nodeId = this.data?.nodeId;
|
||||
this.actionDefinitions$ = this.data?.actionDefinitions$;
|
||||
|
||||
@@ -61,6 +61,8 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
host: { class: 'aca-rule-details' }
|
||||
})
|
||||
export class RuleDetailsUiComponent implements OnInit {
|
||||
private readonly categoryService = inject(CategoryService);
|
||||
|
||||
@Input()
|
||||
readOnly: boolean;
|
||||
|
||||
@@ -138,8 +140,6 @@ export class RuleDetailsUiComponent implements OnInit {
|
||||
|
||||
private readonly destroyRef = inject(DestroyRef);
|
||||
|
||||
constructor(private categoryService: CategoryService) {}
|
||||
|
||||
ngOnInit() {
|
||||
const disabledCategory = !this.categoryService.areCategoriesEnabled();
|
||||
this.actionDefinitions = this.actionDefinitions.filter((action) => !(disabledCategory && action.id === 'link-category'));
|
||||
|
||||
+1
-1
@@ -72,7 +72,7 @@ export class RuleSetPickerSmartComponent implements OnInit {
|
||||
hasOwnedRules = false;
|
||||
|
||||
private selectedNodeId = '';
|
||||
private folderLoading$ = new BehaviorSubject<boolean>(true);
|
||||
private readonly folderLoading$ = new BehaviorSubject<boolean>(true);
|
||||
|
||||
public readonly data: RuleSetPickerOptions = inject(MAT_DIALOG_DATA);
|
||||
public readonly folderRuleSetsService = inject(FolderRuleSetsService);
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
import { ActionDefinition, ActionDefinitionEntry, ActionDefinitionList, ActionsApi } from '@alfresco/js-api';
|
||||
import { AlfrescoApiService } from '@alfresco/adf-content-services';
|
||||
import { BehaviorSubject, forkJoin, from, Observable, of } from 'rxjs';
|
||||
@@ -32,11 +32,13 @@ import { ActionParameterConstraint, ConstraintValue } from '../model/action-para
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class ActionsService {
|
||||
private actionDefinitionsListingSource = new BehaviorSubject<ActionDefinitionTransformed[]>([]);
|
||||
private readonly apiService = inject(AlfrescoApiService);
|
||||
|
||||
private readonly actionDefinitionsListingSource = new BehaviorSubject<ActionDefinitionTransformed[]>([]);
|
||||
actionDefinitionsListing$ = this.actionDefinitionsListingSource.asObservable();
|
||||
private loadingSource = new BehaviorSubject<boolean>(false);
|
||||
private readonly loadingSource = new BehaviorSubject<boolean>(false);
|
||||
loading$ = this.loadingSource.asObservable();
|
||||
private parameterConstraintsSource = new BehaviorSubject<ActionParameterConstraint[]>([]);
|
||||
private readonly parameterConstraintsSource = new BehaviorSubject<ActionParameterConstraint[]>([]);
|
||||
parameterConstraints$: Observable<ActionParameterConstraint[]> = this.parameterConstraintsSource.asObservable();
|
||||
|
||||
private _actionsApi: ActionsApi;
|
||||
@@ -47,8 +49,6 @@ export class ActionsService {
|
||||
return this._actionsApi;
|
||||
}
|
||||
|
||||
constructor(private apiService: AlfrescoApiService) {}
|
||||
|
||||
loadActionDefinitions() {
|
||||
this.loadingSource.next(true);
|
||||
from(this.actionsApi.listActions())
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
import { AlfrescoApiService } from '@alfresco/adf-content-services';
|
||||
import { BehaviorSubject, combineLatest, from, Observable, of, startWith } from 'rxjs';
|
||||
import { NodeInfo } from '@alfresco/aca-shared/store';
|
||||
@@ -37,6 +37,10 @@ import { Rule } from '../model/rule.model';
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class FolderRuleSetsService {
|
||||
private readonly apiService = inject(AlfrescoApiService);
|
||||
private readonly contentApi = inject(ContentApiService);
|
||||
private readonly folderRulesService = inject(FolderRulesService);
|
||||
|
||||
public static readonly MAX_RULE_SETS_PER_GET = 100;
|
||||
|
||||
static isOwnedRuleSet(ruleSet: RuleSet, nodeId: string): boolean {
|
||||
@@ -57,11 +61,11 @@ export class FolderRuleSetsService {
|
||||
private inheritedRuleSets: RuleSet[] = [];
|
||||
private hasMoreRuleSets = true;
|
||||
|
||||
private mainRuleSetSource = new BehaviorSubject<RuleSet>(null);
|
||||
private inheritedRuleSetsSource = new BehaviorSubject<RuleSet[]>([]);
|
||||
private hasMoreRuleSetsSource = new BehaviorSubject<boolean>(true);
|
||||
private folderInfoSource = new BehaviorSubject<NodeInfo>(null);
|
||||
private isLoadingSource = new BehaviorSubject<boolean>(false);
|
||||
private readonly mainRuleSetSource = new BehaviorSubject<RuleSet>(null);
|
||||
private readonly inheritedRuleSetsSource = new BehaviorSubject<RuleSet[]>([]);
|
||||
private readonly hasMoreRuleSetsSource = new BehaviorSubject<boolean>(true);
|
||||
private readonly folderInfoSource = new BehaviorSubject<NodeInfo>(null);
|
||||
private readonly isLoadingSource = new BehaviorSubject<boolean>(false);
|
||||
|
||||
mainRuleSet$: Observable<RuleSet> = this.mainRuleSetSource.asObservable();
|
||||
inheritedRuleSets$: Observable<RuleSet[]> = this.inheritedRuleSetsSource.asObservable();
|
||||
@@ -70,11 +74,7 @@ export class FolderRuleSetsService {
|
||||
isLoading$: Observable<boolean> = this.isLoadingSource.asObservable();
|
||||
selectedRuleSet$: Observable<RuleSet>;
|
||||
|
||||
constructor(
|
||||
private readonly apiService: AlfrescoApiService,
|
||||
private readonly contentApi: ContentApiService,
|
||||
private readonly folderRulesService: FolderRulesService
|
||||
) {
|
||||
constructor() {
|
||||
this.selectedRuleSet$ = this.folderRulesService.selectedRule$.pipe(
|
||||
startWith(null),
|
||||
map((rule: Rule) => {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { Injectable } from '@angular/core';
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
import { AlfrescoApiService } from '@alfresco/adf-content-services';
|
||||
import { BehaviorSubject, from, Observable } from 'rxjs';
|
||||
import { finalize, map } from 'rxjs/operators';
|
||||
@@ -41,6 +41,9 @@ interface GetRulesResult {
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class FolderRulesService {
|
||||
private readonly apiService = inject(AlfrescoApiService);
|
||||
private readonly notificationService = inject(NotificationService);
|
||||
|
||||
public static readonly MAX_RULES_PER_GET = 100;
|
||||
|
||||
public static get emptyCompositeCondition(): RuleCompositeCondition {
|
||||
@@ -85,17 +88,12 @@ export class FolderRulesService {
|
||||
return value;
|
||||
}
|
||||
|
||||
private selectedRuleSource = new BehaviorSubject<Rule>(null);
|
||||
private deletedRuleIdSource = new BehaviorSubject<string>(null);
|
||||
private readonly selectedRuleSource = new BehaviorSubject<Rule>(null);
|
||||
private readonly deletedRuleIdSource = new BehaviorSubject<string>(null);
|
||||
|
||||
selectedRule$ = this.selectedRuleSource.asObservable();
|
||||
deletedRuleId$: Observable<string> = this.deletedRuleIdSource.asObservable();
|
||||
|
||||
constructor(
|
||||
private readonly apiService: AlfrescoApiService,
|
||||
private readonly notificationService: NotificationService
|
||||
) {}
|
||||
|
||||
private callApi(path: string, httpMethod: string, body: object = {}): Promise<any> {
|
||||
// APIs used by this service are still private and not yet available for public use
|
||||
const params = [{}, {}, {}, {}, body, ['application/json'], ['application/json']];
|
||||
|
||||
Reference in New Issue
Block a user