mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
[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:
parent
9916ecb98b
commit
e0a74d7fb9
1
.github/actions/publish-libs/npm-publish.sh
vendored
1
.github/actions/publish-libs/npm-publish.sh
vendored
@ -12,7 +12,6 @@ fi
|
||||
|
||||
export PROJECTS=(
|
||||
'aca-content'
|
||||
'aca-folder-rules'
|
||||
'aca-preview'
|
||||
'aca-shared'
|
||||
'aca-viewer'
|
||||
|
@ -11,7 +11,6 @@ fi
|
||||
|
||||
export PROJECTS=(
|
||||
'aca-content'
|
||||
'aca-folder-rules'
|
||||
'aca-preview'
|
||||
'aca-shared'
|
||||
'aca-viewer'
|
||||
|
1
.github/workflows/pull-request.yml
vendored
1
.github/workflows/pull-request.yml
vendored
@ -96,7 +96,6 @@ jobs:
|
||||
unit-tests:
|
||||
- name: "aca-content"
|
||||
- name: "aca-shared"
|
||||
- name: "aca-folder-rules"
|
||||
- name: "aca-preview"
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
@ -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": "/",
|
||||
|
@ -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';
|
||||
|
||||
|
@ -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",
|
5
projects/aca-content/folder-rules/ng-package.json
Normal file
5
projects/aca-content/folder-rules/ng-package.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"lib": {
|
||||
"entryFile": "src/public-api.ts"
|
||||
}
|
||||
}
|
@ -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
|
@ -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;
|
@ -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', () => {
|
@ -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';
|
@ -36,7 +36,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin: 20px 0
|
||||
margin: 20px 0;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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;
|
@ -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
Loading…
x
Reference in New Issue
Block a user