[ACS-4538] Make folder-rules secondary entry point of aca-content (#3181)

* [ACS-4538] Make folder-rules secondary entry point of aca-content

* [ACA-4538] Fix folder rules imports

* [ACS-4538] Fix folder-rules unit tests

* [ACS-4538] Fix package.json after folder rules transition

* [ACS-4538] Remove duplicated peerDependency

* [ACS-4538] Import fix
This commit is contained in:
MichalKinas 2023-06-16 14:55:04 +02:00 committed by GitHub
parent 9916ecb98b
commit e0a74d7fb9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
122 changed files with 111 additions and 296 deletions

View File

@ -12,7 +12,6 @@ fi
export PROJECTS=(
'aca-content'
'aca-folder-rules'
'aca-preview'
'aca-shared'
'aca-viewer'

View File

@ -11,7 +11,6 @@ fi
export PROJECTS=(
'aca-content'
'aca-folder-rules'
'aca-preview'
'aca-shared'
'aca-viewer'

View File

@ -96,7 +96,6 @@ jobs:
unit-tests:
- name: "aca-content"
- name: "aca-shared"
- name: "aca-folder-rules"
- name: "aca-preview"
steps:
- name: Checkout

View File

@ -79,13 +79,13 @@
},
{
"glob": "folder-rules.plugin.json",
"input": "projects/aca-folder-rules/assets",
"input": "projects/aca-content/folder-rules/assets",
"output": "./assets/plugins"
},
{
"glob": "**/*",
"input": "projects/aca-folder-rules/assets",
"output": "./assets/aca-folder-rules"
"input": "projects/aca-content/folder-rules/assets",
"output": "./assets/folder-rules"
},
{
"glob": "**/*",
@ -253,7 +253,11 @@
"assets": [
"app/src/assets",
"app/src/favicon-96x96.png",
"projects/aca-content/assets",
{
"glob": "**/*",
"input": "projects/aca-content/assets",
"output": "/assets"
},
{
"input": "app/.tmp",
"output": "/",

View File

@ -23,9 +23,9 @@
*/
import { NgModule } from '@angular/core';
import { AcaFolderRulesModule } from '@alfresco/aca-content/folder-rules';
import { AosExtensionModule } from '@alfresco/aca-content/ms-office';
import { AcaAboutModule, DEV_MODE_TOKEN, PACKAGE_JSON } from '@alfresco/aca-content/about';
import { AcaFolderRulesModule } from '@alfresco/aca-folder-rules';
import { environment } from '../environments/environment';
import packageJson from 'package.json';

View File

@ -1,5 +1,5 @@
{
"$schema": "../../../extension.schema.json",
"$schema": "../../../../extension.schema.json",
"$id": "0455ca6c-cc7a-43ae-bbf7-35795413d2dd",
"$name": "Folder Rules Plugin",
"$version": "0.0.1",

View File

@ -0,0 +1,5 @@
{
"lib": {
"entryFile": "src/public-api.ts"
}
}

View File

@ -82,7 +82,7 @@ const routes: Routes = [
})
export class AcaFolderRulesModule {
constructor(translation: TranslationService, extensions: ExtensionService) {
translation.addTranslationFolder('aca-folder-rules', 'assets/aca-folder-rules');
translation.addTranslationFolder('folder-rules', 'assets/folder-rules');
extensions.setEvaluators({
'rules.canManageFolderRules': rules.canManageFolderRules

View File

@ -34,7 +34,7 @@
&__container {
display: grid;
grid-template-columns: minmax(250px,1fr) 3fr;
grid-template-columns: minmax(250px, 1fr) 3fr;
padding: 20px;
gap: 12px;
overflow-y: auto;

View File

@ -23,7 +23,8 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AcaFolderRulesModule, ManageRulesSmartComponent } from '@alfresco/aca-folder-rules';
import { AcaFolderRulesModule } from '../folder-rules.module';
import { ManageRulesSmartComponent } from './manage-rules.smart-component';
import { DebugElement, Predicate } from '@angular/core';
import { CoreTestingModule } from '@alfresco/adf-core';
import { FolderRulesService } from '../services/folder-rules.service';
@ -37,7 +38,7 @@ import {
ruleSetWithLinkMock
} from '../mock/rule-sets.mock';
import { By } from '@angular/platform-browser';
import { owningFolderIdMock, owningFolderMock } from '../mock/node.mock';
import { getOwningFolderEntryMock, owningFolderIdMock, owningFolderMock } from '../mock/node.mock';
import { MatDialog } from '@angular/material/dialog';
import { ActionsService } from '../services/actions.service';
import { FolderRuleSetsService } from '../services/folder-rule-sets.service';
@ -53,6 +54,7 @@ describe('ManageRulesSmartComponent', () => {
let folderRuleSetsService: FolderRuleSetsService;
let folderRulesService: FolderRulesService;
let actionsService: ActionsService;
let callApiSpy: jasmine.Spy;
beforeEach(() => {
TestBed.configureTestingModule({
@ -81,6 +83,19 @@ describe('ManageRulesSmartComponent', () => {
actionsService = TestBed.inject(ActionsService);
spyOn(actionsService, 'loadActionDefinitions').and.stub();
spyOn(folderRulesService, 'getRuleSettings').and.returnValue(Promise.resolve(ruleSettingsMock));
callApiSpy = spyOn<any>(folderRuleSetsService, 'callApi');
callApiSpy
.withArgs(`/nodes/${owningFolderIdMock}/rule-sets?include=isLinkedTo,owningFolder,linkedToBy&skipCount=0&maxItems=100`, 'GET')
.and.returnValue(Promise.resolve(ownedRuleSetMock))
.withArgs(`/nodes/${owningFolderIdMock}/rule-sets/-default-?include=isLinkedTo,owningFolder,linkedToBy`, 'GET')
.and.returnValue(Promise.resolve(ownedRuleSetMock))
.withArgs(`/nodes/${owningFolderIdMock}?include=path%2Cproperties%2CallowableOperations%2Cpermissions`, 'GET')
.and.returnValue(Promise.resolve(getOwningFolderEntryMock));
});
afterEach(() => {
fixture.destroy();
});
it('should show a list of rule sets and rules', () => {

View File

@ -22,5 +22,5 @@
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
*/
export * from './lib/folder-rules.module';
export { ManageRulesSmartComponent } from './lib/manage-rules/manage-rules.smart-component';
export * from './folder-rules.module';
export { ManageRulesSmartComponent } from './manage-rules/manage-rules.smart-component';

View File

@ -36,7 +36,7 @@
display: flex;
align-items: center;
justify-content: center;
margin: 20px 0
margin: 20px 0;
}
}

View File

@ -24,7 +24,8 @@
align-items: baseline;
gap: 8px;
& > label, & > .label {
& > label,
& > .label {
font-weight: bold;
width: 20%;
min-width: 100px;
@ -75,12 +76,15 @@
}
}
&.read-only, .mat-form-field-disabled {
.mat-form-field-underline, .mat-select-arrow-wrapper {
&.read-only,
.mat-form-field-disabled {
.mat-form-field-underline,
.mat-select-arrow-wrapper {
display: none;
}
*:disabled, .mat-select-disabled .mat-select-value {
*:disabled,
.mat-select-disabled .mat-select-value {
color: inherit;
}
}

View File

@ -28,7 +28,7 @@ import { ruleListGroupingItemsMock, rulesMock } from '../../mock/rules.mock';
import { DebugElement } from '@angular/core';
import { By } from '@angular/platform-browser';
import { CoreTestingModule } from '@alfresco/adf-core';
import { AcaFolderRulesModule } from '@alfresco/aca-folder-rules';
import { AcaFolderRulesModule } from '../../folder-rules.module';
describe('RuleListGroupingUiComponent', () => {
let component: RuleListGroupingUiComponent;

View File

@ -25,11 +25,12 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { RuleSetPickerOptions, RuleSetPickerSmartComponent } from './rule-set-picker.smart-component';
import { CoreTestingModule } from '@alfresco/adf-core';
import { folderToLinkMock } from '../mock/node.mock';
import { folderToLinkMock, otherFolderMock } from '../mock/node.mock';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { FolderRuleSetsService } from '../services/folder-rule-sets.service';
import { of } from 'rxjs';
import { ruleSetWithLinkMock, ruleSetWithNoRulesToLinkMock, ruleSetWithOwnedRulesToLinkMock } from '../mock/rule-sets.mock';
import { ownedRuleSetMock, ruleSetWithLinkMock, ruleSetWithNoRulesToLinkMock, ruleSetWithOwnedRulesToLinkMock } from '../mock/rule-sets.mock';
import { ContentApiService } from '@alfresco/aca-shared';
import { By } from '@angular/platform-browser';
describe('RuleSetPickerSmartComponent', () => {
@ -38,6 +39,7 @@ describe('RuleSetPickerSmartComponent', () => {
let folderRuleSetsService: FolderRuleSetsService;
let loadRuleSetsSpy: jasmine.Spy;
let callApiSpy: jasmine.Spy;
const dialogRef = {
close: jasmine.createSpy('close'),
@ -54,7 +56,18 @@ describe('RuleSetPickerSmartComponent', () => {
imports: [CoreTestingModule],
providers: [
{ provide: MatDialogRef, useValue: dialogRef },
{ provide: MAT_DIALOG_DATA, useValue: dialogOptions }
{ provide: MAT_DIALOG_DATA, useValue: dialogOptions },
{
provide: ContentApiService,
useValue: {
getNode: () => {
return of({ entry: folderToLinkMock });
},
getNodeInfo: () => {
return of(otherFolderMock);
}
}
}
]
});
@ -63,7 +76,19 @@ describe('RuleSetPickerSmartComponent', () => {
component = fixture.componentInstance;
component['folderRuleSetsService'] = folderRuleSetsService;
loadRuleSetsSpy = spyOn(folderRuleSetsService, 'loadRuleSets');
loadRuleSetsSpy = spyOn(folderRuleSetsService, 'loadRuleSets').and.callThrough();
callApiSpy = spyOn<any>(folderRuleSetsService, 'callApi');
callApiSpy
.withArgs(`/nodes/${dialogOptions.nodeId}/rule-sets?include=isLinkedTo,owningFolder,linkedToBy&skipCount=0&maxItems=100`, 'GET')
.and.returnValue(Promise.resolve(ownedRuleSetMock))
.withArgs(`/nodes/${dialogOptions.nodeId}/rule-sets/-default-?include=isLinkedTo,owningFolder,linkedToBy`, 'GET')
.and.returnValue(Promise.resolve(ownedRuleSetMock))
.withArgs(`/nodes/${folderToLinkMock.id}?include=path%2Cproperties%2CallowableOperations%2Cpermissions`, 'GET')
.and.returnValue(Promise.resolve({ entry: folderToLinkMock }));
});
afterEach(() => {
fixture.destroy();
});
it('should load the rule sets of a node once it has been selected', () => {

Some files were not shown because too many files have changed in this diff Show More