From c9ab69a3802a4f1904d2650dcbf72e8e0a5b2da3 Mon Sep 17 00:00:00 2001 From: Alexa Snyder Date: Thu, 13 Aug 2020 16:54:14 -0500 Subject: [PATCH 1/5] fix toggling back and forth on asset types --- .../asset-list/asset-list.component.ts | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/projects/lib/src/admin/components/asset-list/asset-list.component.ts b/projects/lib/src/admin/components/asset-list/asset-list.component.ts index 3baea9d..b128a04 100644 --- a/projects/lib/src/admin/components/asset-list/asset-list.component.ts +++ b/projects/lib/src/admin/components/asset-list/asset-list.component.ts @@ -56,6 +56,7 @@ export class AssetListComponent implements OnInit { async ngOnInit(): Promise { if (this.resourceID && this.resourceType) { this.assets = await this.listAssetsPerResource() + .then((assets) => assets.filter(a => a.Type === this.selectedTab)) .catch((ex) => ex) .finally(() => { this.loading = false; @@ -66,24 +67,34 @@ export class AssetListComponent implements OnInit { } } - listAssets(assetType: AssetType, searchTerm: string) { - this.spinner.show(); - let options: ListArgs = { - filters: { Type: assetType }, - }; - if (searchTerm) { - options = { ...options, search: searchTerm, searchOn: ['Title'] }; - } - this.loading = true; - this.spinner.show(); - return HeadStartSDK.Assets.List(options) - .then((assets) => { - this.assets = assets.Items; - }) + async listAssets(assetType: AssetType, searchTerm: string) { + if (this.resourceID && this.resourceType) { + this.assets = await this.listAssetsPerResource() + .then((assets) => assets.filter(a => a.Type === this.selectedTab)) + .catch((ex) => ex) .finally(() => { this.loading = false; this.spinner.hide(); }); + } else { + this.spinner.show(); + let options: ListArgs = { + filters: { Type: assetType }, + }; + if (searchTerm) { + options = { ...options, search: searchTerm, searchOn: ['Title'] }; + } + this.loading = true; + this.spinner.show(); + return HeadStartSDK.Assets.List(options) + .then((assets) => { + this.assets = assets.Items; + }) + .finally(() => { + this.loading = false; + this.spinner.hide(); + }); + } } async listAssetsPerResource(): Promise> { From b7951d794653cb79ed26ce27361e619b1b894dc2 Mon Sep 17 00:00:00 2001 From: Alexa Snyder Date: Fri, 14 Aug 2020 11:56:09 -0500 Subject: [PATCH 2/5] refactor asset list to only list assets per resource --- .../asset-list/asset-list.component.ts | 48 +++++++------------ .../lib/src/stories/asset-list.stories.ts | 2 +- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/projects/lib/src/admin/components/asset-list/asset-list.component.ts b/projects/lib/src/admin/components/asset-list/asset-list.component.ts index b128a04..cdb9d6b 100644 --- a/projects/lib/src/admin/components/asset-list/asset-list.component.ts +++ b/projects/lib/src/admin/components/asset-list/asset-list.component.ts @@ -54,47 +54,31 @@ export class AssetListComponent implements OnInit { ) {} async ngOnInit(): Promise { - if (this.resourceID && this.resourceType) { - this.assets = await this.listAssetsPerResource() - .then((assets) => assets.filter(a => a.Type === this.selectedTab)) - .catch((ex) => ex) - .finally(() => { - this.loading = false; - this.spinner.hide(); - }) - } else { - this.listAssets(this.assetTypes[0], null); + if (!this.resourceType || !this.resourceID) { + throw new Error( + 'cms-asset-list is missing required props resourceType or resourceID' + ); } + await this.listAssets(this.selectedTab, null); } async listAssets(assetType: AssetType, searchTerm: string) { - if (this.resourceID && this.resourceType) { - this.assets = await this.listAssetsPerResource() - .then((assets) => assets.filter(a => a.Type === this.selectedTab)) + console.log('this is hit'); + this.spinner.show(); + // TODO: options are not used yet - either handle searchTerm client side or wait for Oliver's updated endpoints + let options: ListArgs = { + filters: { Type: assetType } + } + if (searchTerm) { + options = { ...options, search: searchTerm, searchOn: ['Title'] }; + } + this.assets = await this.listAssetsPerResource() + .then((assets) => assets.filter(a => a.Type === assetType)) .catch((ex) => ex) .finally(() => { this.loading = false; this.spinner.hide(); }); - } else { - this.spinner.show(); - let options: ListArgs = { - filters: { Type: assetType }, - }; - if (searchTerm) { - options = { ...options, search: searchTerm, searchOn: ['Title'] }; - } - this.loading = true; - this.spinner.show(); - return HeadStartSDK.Assets.List(options) - .then((assets) => { - this.assets = assets.Items; - }) - .finally(() => { - this.loading = false; - this.spinner.hide(); - }); - } } async listAssetsPerResource(): Promise> { diff --git a/projects/lib/src/stories/asset-list.stories.ts b/projects/lib/src/stories/asset-list.stories.ts index d365079..7a0f84b 100644 --- a/projects/lib/src/stories/asset-list.stories.ts +++ b/projects/lib/src/stories/asset-list.stories.ts @@ -25,6 +25,6 @@ export default { export const FullExample = () => ({ component: AssetListComponent, - template: ``, + template: ``, props: {}, }); From 2a7934c68b346f4f0ed7d2c7d47e86b8625ef2a3 Mon Sep 17 00:00:00 2001 From: Alexa Snyder Date: Fri, 14 Aug 2020 12:03:00 -0500 Subject: [PATCH 3/5] refactor asset update to assign asset to resource type/id --- .../asset-list/asset-list.component.html | 4 +++ .../asset-list/asset-list.component.ts | 18 +++++------ .../asset-update/asset-update.component.ts | 32 +++++++++++++------ .../asset-upload/asset-upload.component.html | 4 ++- .../asset-upload/asset-upload.component.ts | 4 ++- 5 files changed, 41 insertions(+), 21 deletions(-) diff --git a/projects/lib/src/admin/components/asset-list/asset-list.component.html b/projects/lib/src/admin/components/asset-list/asset-list.component.html index 5f89b3a..49c95c4 100644 --- a/projects/lib/src/admin/components/asset-list/asset-list.component.html +++ b/projects/lib/src/admin/components/asset-list/asset-list.component.html @@ -30,6 +30,8 @@

Assets

Assets { - this.isNew = false; - this.onSubmit.emit({ - action: 'UploadAsset', - asset: updatedAsset - }); + return HeadStartSDK.Upload.UploadAsset(updatedAsset).then((response) => { + const assignment: AssetAssignment = { + ResourceType: this.resourceType, + ResourceID: this.resourceID, + AssetID: response.ID + } + return HeadStartSDK.Assets.SaveAssetAssignment(assignment).then(() => { + this.isNew = false; + this.onSubmit.emit({ + action: 'UploadAsset', + asset: response + }); + }) }) } else { return HeadStartSDK.Assets.Update(updatedAsset.ID, updatedAsset).then(() => { diff --git a/projects/lib/src/admin/components/asset-upload/asset-upload.component.html b/projects/lib/src/admin/components/asset-upload/asset-upload.component.html index b9869de..967d0dd 100644 --- a/projects/lib/src/admin/components/asset-upload/asset-upload.component.html +++ b/projects/lib/src/admin/components/asset-upload/asset-upload.component.html @@ -1,7 +1,9 @@