diff --git a/package-lock.json b/package-lock.json
index cc3a7d7..96c12d7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "@firestitch/activity",
- "version": "18.0.3",
+ "version": "18.0.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@firestitch/activity",
- "version": "18.0.3",
+ "version": "18.0.4",
"license": "MIT",
"devDependencies": {
"@angular-devkit/build-angular": "^18.2.7",
diff --git a/package.json b/package.json
index aeee19c..f12b9a1 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@firestitch/activity",
"title": "Activity",
- "version": "18.0.4",
+ "version": "18.0.5",
"repository": {
"type": "git",
"url": "https://github.com/Firestitch/ngx-activity"
diff --git a/playground/app/components/activities/activities.component.html b/playground/app/components/activities/activities.component.html
index bf153a3..3c5cf93 100644
--- a/playground/app/components/activities/activities.component.html
+++ b/playground/app/components/activities/activities.component.html
@@ -1,14 +1,16 @@
- {{ object.name }}
+ !{{ data.name }}!
- {{ data.value }}
+ {{ data | json }}
\ No newline at end of file
diff --git a/playground/app/playground.module.ts b/playground/app/playground.module.ts
index 10386a8..8b0f4dc 100644
--- a/playground/app/playground.module.ts
+++ b/playground/app/playground.module.ts
@@ -4,7 +4,7 @@ import { BrowserModule } from '@angular/platform-browser';
import { RouterModule, Routes } from '@angular/router';
-import { FsActivitiesComponent, FsActivityDataDirective, FsActivityObjectDirective } from '@firestitch/activity';
+import { FsActivitiesComponent, FsActivityPreviewDirective } from '@firestitch/activity';
import { FS_API_REQUEST_INTERCEPTOR } from '@firestitch/api';
import { FsExampleModule } from '@firestitch/example';
import { FsHtmlEditorModule } from '@firestitch/html-editor';
@@ -38,8 +38,7 @@ const routes: Routes = [
activationKey: '2J1B10dD7F6F5A3F3I3cWHNGGDTCWHId1Eb1Oc1Yh1b2Ld1POkE3D3F3C9A4E5A3G3B2G2==',
}),
FsActivitiesComponent,
- FsActivityObjectDirective,
- FsActivityDataDirective,
+ FsActivityPreviewDirective,
],
declarations: [
AppComponent,
diff --git a/playground/assets/activities.json b/playground/assets/activities.json
index 52102a4..1a22e81 100644
--- a/playground/assets/activities.json
+++ b/playground/assets/activities.json
@@ -443,12 +443,12 @@
"subjectObjectClass": null,
"color": null,
"icon": "playlist_add_check",
- "type": "crmLeadStatus" } ,
+ "type": "crmLeadDate" } ,
"concreteActivityObject": {
"id": 88605,
"parentAttributeId": null,
"name": "Something else",
- "class": "crmLeadStatus",
+ "class": "crmLeadDate",
"backgroundColor": "#1E78D9",
"guid": "l08699e62982b351ac573bfc39390b497",
"imageTime": null,
diff --git a/src/app/components/activities/activities.component.html b/src/app/components/activities/activities.component.html
index 6a62f39..4a76552 100644
--- a/src/app/components/activities/activities.component.html
+++ b/src/app/components/activities/activities.component.html
@@ -46,7 +46,7 @@
+ [ngTemplateOutletContext]="{ activity: activity, data: activity.concretePreviousActivityObject }">
east
@@ -56,7 +56,7 @@
+ [ngTemplateOutletContext]="{ activity: activity, data: activity.concreteActivityObject }">
@@ -80,9 +80,9 @@
#dataPreview
let-activity="activity"
let-data="data">
- @if (this.activityData) {
+ @if (this.activityPreviews) {
} @else {
@@ -92,14 +92,14 @@
- @if (this.activityObject) {
+ let-data="data">
+ @if (this.activityPreviews[activity.activityType.type]) {
+ [ngTemplateOutlet]="this.activityPreviews[activity.activityType.type].templateRef"
+ [ngTemplateOutletContext]="{ activity: activity, data: data }">
} @else {
- {{ object.name }}
+ {{ data?.name }}
}
diff --git a/src/app/components/activities/activities.component.ts b/src/app/components/activities/activities.component.ts
index 1333b18..93d2040 100644
--- a/src/app/components/activities/activities.component.ts
+++ b/src/app/components/activities/activities.component.ts
@@ -3,11 +3,11 @@ import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
- ContentChild,
+ ContentChildren,
inject,
Input,
OnInit,
- TemplateRef,
+ QueryList,
} from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
@@ -21,7 +21,7 @@ import { FsPrompt } from '@firestitch/prompt';
import { switchMap } from 'rxjs/operators';
-import { FsActivityDataDirective, FsActivityObjectDirective } from '../../directives';
+import { FsActivityPreviewDirective } from '../../directives';
import { FsActivityObjectTypeComponent } from '../activity-object-type';
@@ -45,18 +45,23 @@ import { FsActivityObjectTypeComponent } from '../activity-object-type';
})
export class FsActivitiesComponent implements OnInit {
- @Input() public apiPath: string = '';
+ @Input() public apiPath: string = 'activities';
- @ContentChild(FsActivityObjectDirective, { read: TemplateRef })
- public activityObject: TemplateRef;
+ @ContentChildren(FsActivityPreviewDirective)
+ public set setActivityObjects(templates: QueryList) {
+ this.activityPreviews = templates.toArray()
+ .reduce((acc, template) => {
+ acc[template.activityType] = template;
- @ContentChild(FsActivityDataDirective, { read: TemplateRef })
- public activityData: TemplateRef;
+ return acc;
+ }, {});
+ }
public filterConfig: FilterConfig;
public activities = [];
public actions;
public maxActivityId;
+ public activityPreviews: { [key: string]: FsActivityPreviewDirective } = {};
private _api = inject(FsApi);
private _prompt = inject(FsPrompt);
@@ -83,7 +88,7 @@ export class FsActivitiesComponent implements OnInit {
})
.pipe(
switchMap(() => this._api.delete(
- `${this.apiPath}activities/${activity.id}`,
+ `${this.apiPath}/${activity.id}`,
)),
)
.subscribe(() => {
@@ -96,7 +101,7 @@ export class FsActivitiesComponent implements OnInit {
private _load(): void {
this._api
- .get(`${this.apiPath}activities`, {
+ .get(`${this.apiPath}`, {
activityTypes: true,
creatorObjects: true,
concreteObjects: true,
diff --git a/src/app/directives/activity-data.directive.ts b/src/app/directives/activity-data.directive.ts
deleted file mode 100644
index 07c3a71..0000000
--- a/src/app/directives/activity-data.directive.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Directive } from '@angular/core';
-
-
-@Directive({
- selector: '[fsActivityData]',
- standalone: true,
-})
-export class FsActivityDataDirective {
-
- public static ngTemplateContextGuard(
- directive: FsActivityDataDirective,
- context: unknown,
- ): context is {
- data: any,
- activity: any
- } {
- return true;
- }
-
-}
diff --git a/src/app/directives/activity-object.directive.ts b/src/app/directives/activity-object.directive.ts
deleted file mode 100644
index 72f3887..0000000
--- a/src/app/directives/activity-object.directive.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Directive } from '@angular/core';
-
-
-@Directive({
- selector: '[fsActivityObject]',
- standalone: true,
-})
-export class FsActivityObjectDirective {
-
- public static ngTemplateContextGuard(
- directive: FsActivityObjectDirective,
- context: unknown,
- ): context is {
- object: any,
- activity: any
- } {
- return true;
- }
-
-}
diff --git a/src/app/directives/activity-preview.directive.ts b/src/app/directives/activity-preview.directive.ts
new file mode 100644
index 0000000..7f6703e
--- /dev/null
+++ b/src/app/directives/activity-preview.directive.ts
@@ -0,0 +1,24 @@
+import { Directive, inject, Input, TemplateRef } from '@angular/core';
+
+
+@Directive({
+ selector: '[fsActivityPreview]',
+ standalone: true,
+})
+export class FsActivityPreviewDirective {
+
+ @Input() public activityType: any;
+
+ public templateRef = inject(TemplateRef);
+
+ public static ngTemplateContextGuard(
+ directive: FsActivityPreviewDirective,
+ context: any,
+ ): context is {
+ data: any,
+ activity: any
+ } {
+ return true;
+ }
+
+}
diff --git a/src/app/directives/index.ts b/src/app/directives/index.ts
index 56cdddf..e80a959 100644
--- a/src/app/directives/index.ts
+++ b/src/app/directives/index.ts
@@ -1,2 +1,2 @@
-export * from './activity-data.directive';
-export * from './activity-object.directive';
+export * from './activity-preview.directive';
+
diff --git a/src/public_api.ts b/src/public_api.ts
index 0763b04..0ec0941 100644
--- a/src/public_api.ts
+++ b/src/public_api.ts
@@ -1,5 +1,4 @@
export { FsActivitiesComponent } from './app/components/activities/activities.component';
export { FsActivityObjectTypeComponent } from './app/components/activity-object-type/activity-object-type.component';
-export { FsActivityDataDirective } from './app/directives/activity-data.directive';
-export { FsActivityObjectDirective } from './app/directives/activity-object.directive';
+export { FsActivityPreviewDirective } from './app/directives/activity-preview.directive';