From da63710bcd74870f98934fcb8a0e9e3b0451660b Mon Sep 17 00:00:00 2001 From: Venkat Kandagaddala Date: Tue, 30 Jul 2024 19:18:10 +0530 Subject: [PATCH 1/6] Karma programs V2 --- ...arma-programs-microsite-v1.component.html} | 0 ...arma-programs-microsite-v1.component.scss} | 0 ...ma-programs-microsite-v1.component.spec.ts | 25 ++ .../karma-programs-microsite-v1.component.ts} | 8 +- ...karma-programs-microsite-v2.component.html | 116 +++++++++ ...karma-programs-microsite-v2.component.scss | 104 ++++++++ ...ma-programs-microsite-v2.component.spec.ts | 25 ++ .../karma-programs-microsite-v2.component.ts | 188 ++++++++++++++ ...karma-programs-microsite.component.spec.ts | 25 -- .../karma-programs-routing.module.ts | 37 ++- .../karma-programs-v1.component.html} | 0 .../karma-programs-v1.component.scss} | 0 .../karma-programs-v1.component.spec.ts} | 13 +- .../karma-programs-v1.component.ts} | 8 +- .../karma-programs-v2.component.html | 85 +++++++ .../karma-programs-v2.component.scss | 177 +++++++++++++ .../karma-programs-v2.component.spec.ts | 24 ++ .../karma-programs-v2.component.ts | 238 ++++++++++++++++++ .../karma-programs/karma-programs.module.ts | 12 +- .../karma-programs-form-v1.service.spec.ts | 12 + ...e.ts => karma-programs-form-v1.service.ts} | 2 +- .../karma-programs-form-v2.service..ts | 46 ++++ .../karma-programs-form-v2.service.spec.ts | 11 + .../karma-programs-form.service.spec.ts | 12 - 24 files changed, 1106 insertions(+), 62 deletions(-) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs-microsite/karma-programs-microsite.component.html => karma-programs-microsite-v1/karma-programs-microsite-v1.component.html} (100%) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs-microsite/karma-programs-microsite.component.scss => karma-programs-microsite-v1/karma-programs-microsite-v1.component.scss} (100%) create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.spec.ts rename project/ws/app/src/lib/routes/karma-programs/{karma-programs-microsite/karma-programs-microsite.component.ts => karma-programs-microsite-v1/karma-programs-microsite-v1.component.ts} (96%) create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.scss create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.spec.ts create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.ts delete mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.spec.ts rename project/ws/app/src/lib/routes/karma-programs/{karma-programs/karma-programs.component.html => karma-programs-v1/karma-programs-v1.component.html} (100%) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs/karma-programs.component.scss => karma-programs-v1/karma-programs-v1.component.scss} (100%) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs/karma-programs.component.spec.ts => karma-programs-v1/karma-programs-v1.component.spec.ts} (51%) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs/karma-programs.component.ts => karma-programs-v1/karma-programs-v1.component.ts} (97%) create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.html create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.scss create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.spec.ts create mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.ts create mode 100644 project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v1.service.spec.ts rename project/ws/app/src/lib/routes/karma-programs/service/{karma-programs-form.service.ts => karma-programs-form-v1.service.ts} (96%) create mode 100644 project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service..ts create mode 100644 project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service.spec.ts delete mode 100644 project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form.service.spec.ts diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.html b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.html similarity index 100% rename from project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.html rename to project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.html diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.scss b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.scss similarity index 100% rename from project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.scss rename to project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.scss diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.spec.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.spec.ts new file mode 100644 index 000000000..4178f2f67 --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing' + +import { KarmaProgramsMicrositeV1Component } from './karma-programs-microsite-v1.component' + +describe('KarmaProgramsMicrositeV1Component', () => { + let component: KarmaProgramsMicrositeV1Component + let fixture: ComponentFixture + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [KarmaProgramsMicrositeV1Component], + }) + .compileComponents() + })) + + beforeEach(() => { + fixture = TestBed.createComponent(KarmaProgramsMicrositeV1Component) + component = fixture.componentInstance + fixture.detectChanges() + }) + + it('should create', () => { + expect(component).toBeTruthy() + }) +}) diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.ts similarity index 96% rename from project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.ts rename to project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.ts index eb2db80dd..8792a6c08 100644 --- a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.ts +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v1/karma-programs-microsite-v1.component.ts @@ -6,11 +6,11 @@ import { EventService, WsEvents, MultilingualTranslationsService, Configurations import { TranslateService } from '@ngx-translate/core' @Component({ - selector: 'ws-app-karma-programs-microsite', - templateUrl: './karma-programs-microsite.component.html', - styleUrls: ['./karma-programs-microsite.component.scss'], + selector: 'ws-app-karma-programs-microsite-v1', + templateUrl: './karma-programs-microsite-v1.component.html', + styleUrls: ['./karma-programs-microsite-v1.component.scss'], }) -export class KarmaProgramsMicrositeComponent implements OnInit { +export class KarmaProgramsMicrositeV1Component implements OnInit { programName = '' playListKey = '' orgId = '' diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html new file mode 100644 index 000000000..118c5eea8 --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html @@ -0,0 +1,116 @@ + + + +
+
+ + + +
+ +
+ + + + +
+
+
+
+
+
+
+
+ + + + +
+
+
+ +
+
+
+
+

{{data?.title}}

+

+ {{data?.description | slice:0:descriptionMaxLength}} + ... +

+ + +

+ {{ref?.label}} : {{'contentstripmultiple.clickHere' | translate}} +

+
+
+ +
+
+
+
+ + + + +
+
+
+ + + +
+
+ +
+
+ +
+
+
+ + +
+
+ No results +

{{'learnsearch.noResults' | translate}}

+
+
+
+
+
\ No newline at end of file diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.scss b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.scss new file mode 100644 index 000000000..877b6cebd --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.scss @@ -0,0 +1,104 @@ +@import 'ws-mixins'; +@import 'ws-common'; + +.container-balanced { + @extend %page-center; + } + + .container { + max-width: 1200px; + } + .infra-background { + background: #1B4CA1; + align-items: center; + justify-content: center; + display: flex; +} + + .banner-container{ + align-items: center; + background: #eee; + padding: 16px; + gap: 2.5rem; + justify-content: center; + } + + .logo-box { + vertical-align: middle; + max-width: 250px; + background: #f5fdf1; + padding: 8px; + border: 1px solid rgba(0,0,0,0.5); + } + .slider-box { + // max-width: 30%; +} + +.slider-background { + height: 160px; +} + +.slider-background1 { + height: 195px; +} + +.slider-background-2 { + position: relative; +} + +.info-slider{ + position: absolute; + top: -180px; + padding: 25px; +} + +::ng-deep .mat-form-search { + + .mat-form-field-infix { + border-top: 0.2em solid transparent !important; + } + + .mat-form-field-wrapper { + padding-bottom: 0 + } + + .mat-select-panel .mat-optgroup-label, + .mat-select-panel .mat-option { + font-size: inherit; + line-height: 3em; + height: 4em; + padding-top: 8px; + } + + // .mat-select-arrow { + // margin-top: 12px; + // } + } + + .comp-back-img { + position: absolute; + filter: brightness(100); + left: 0; + right: 0; + top: 178px; + margin-left: auto; + margin-right: auto; + width: 100%; + } + + .mob-comp-back-img { + background-image: url("/assets/icons/microsite/competency.svg"); + filter: brightness(100); + } + + .zindex { + z-index: 99 + } + + .ref-links { + font-weight: 700 !important; + text-decoration: underline !important; + color: #F3962F !important; + position: relative; + z-index: 999999; + } \ No newline at end of file diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.spec.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.spec.ts new file mode 100644 index 000000000..030a225e7 --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing' + +import { KarmaProgramsMicrositeV2Component } from './karma-programs-microsite-v2.component' + +describe('KarmaProgramsMicrositeV2Component', () => { + let component: KarmaProgramsMicrositeV2Component + let fixture: ComponentFixture + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [KarmaProgramsMicrositeV2Component], + }) + .compileComponents() + })) + + beforeEach(() => { + fixture = TestBed.createComponent(KarmaProgramsMicrositeV2Component) + component = fixture.componentInstance + fixture.detectChanges() + }) + + it('should create', () => { + expect(component).toBeTruthy() + }) +}) diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.ts new file mode 100644 index 000000000..0435108fe --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.ts @@ -0,0 +1,188 @@ +import { Component, OnInit } from '@angular/core' +import { ActivatedRoute } from '@angular/router' +import { CommonMethodsService } from '@sunbird-cb/consumption' +import { KarmaProgramsService } from '../service/karma-programs.service' +import { EventService, WsEvents, MultilingualTranslationsService, ConfigurationsService } from '@sunbird-cb/utils-v2' +import { TranslateService } from '@ngx-translate/core' + +@Component({ + selector: 'ws-app-karma-programs-microsite-v2', + templateUrl: './karma-programs-microsite-v2.component.html', + styleUrls: ['./karma-programs-microsite-v2.component.scss'], +}) +export class KarmaProgramsMicrositeV2Component implements OnInit { + programName = '' + playListKey = '' + orgId = '' + sectionList: any = [] + contentDataList: any = [] + originalContentlist: any = [] + seeAllPageConfig: any + titles = [ + { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false }, + { + title: `Karma Programs`, + url: `/app/learn/karma-programs/all-programs`, + icon: '', disableTranslate: true, + }, + ] + loadContentSearch = false + descriptionMaxLength = 750 + constructor(private route: ActivatedRoute, + public contentSvc: KarmaProgramsService, + private translate: TranslateService, + private langtranslations: MultilingualTranslationsService, + public eventSvc: EventService, + private configSvc: ConfigurationsService, + public commonSvc: CommonMethodsService) { + this.langtranslations.languageSelectedObservable.subscribe(() => { + if (localStorage.getItem('websiteLanguage')) { + this.translate.setDefaultLang('en') + const lang = localStorage.getItem('websiteLanguage')! + this.translate.use(lang) + } + }) + } + + ngOnInit() { + this.route.params.subscribe(params => { + this.programName = params['programName'] + this.playListKey = params['playListKey'] + this.orgId = params['orgId'] + this.titles.push({ + title: this.programName, icon: '', url: 'none', disableTranslate: true, + }) + }) + if (this.route.snapshot.data && this.route.snapshot.data.formData + && this.route.snapshot.data.formData.data + && this.route.snapshot.data.formData.data.result + && this.route.snapshot.data.formData.data.result.form + && this.route.snapshot.data.formData.data.result.form.data + && this.route.snapshot.data.formData.data.result.form.data.sectionList + ) { + this.sectionList = this.route.snapshot.data.formData.data.result.form.data.sectionList + + this.getDataFromSearch() + } + + } + + async getDataFromSearch(requestData?: any) { + const request = requestData || this.formRequest() + const sectionData = this.sectionList.filter((ele: any) => ele.key === 'contentSearch') + if (sectionData && sectionData.length) { + const strip: any = sectionData[0].column[0].data && sectionData[0].column[0].data.strips[0] || {} + this.seeAllPageConfig = strip + try { + this.loadContentSearch = true + const response = await this.fetchFromSearchV6(request) + if (response && response.results) { + if (response.results.result.content) { + let contentList = [] + if (this.configSvc && this.configSvc.unMappedUser && + this.configSvc.unMappedUser.profileDetails && + this.configSvc.unMappedUser.profileDetails.profileStatus && + this.configSvc.unMappedUser.profileDetails.profileStatus === 'VERIFIED') { + contentList = response.results.result.content + } else { + contentList = response.results.result.content.filter((ele: any) => { + if (ele.secureSettings) { + return ele.secureSettings && ele.secureSettings.isVerifiedKarmayogi === 'No' + } + return ele + }) + } + this.contentDataList = this.commonSvc.transformContentsToWidgets(contentList, strip) + this.originalContentlist = contentList + } + this.loadContentSearch = false + } + } catch (error) { + // Handle errors + // console.error('Error:', error); + } + } + } + + async fetchFromSearchV6(request: any) { + return new Promise((resolve, reject) => { + if (request && request) { + this.contentSvc.fetchPlaylistSearchData(this.playListKey, this.orgId).subscribe(results => { + resolve({ results }) + }, (error: any) => { + reject(error) + }, + ) + } + }) + } + // handleSearchQuery(e: any) { + // if (e.target.value) { + // const request = this.formRequest(e.target.value) + // this.getDataFromSearch(request) + // } + // } + + handleSearchQuery(e: any) { + if (e.target.value || e.target.value === '') { + this.contentDataList = this.commonSvc.transformSkeletonToWidgets(this.seeAllPageConfig) + // this.callApi(e.target.value) + this.filterContentList(e.target.value) + } + } + filterContentList(searchText: string) { + const data = [...this.originalContentlist] + const filterValue = searchText.toLowerCase() + const filteredData = data.filter((p: any) => p && p.name && p.name.toLowerCase().includes(filterValue)) + this.contentDataList = this.commonSvc.transformContentsToWidgets(filteredData, this.seeAllPageConfig) + } + + formRequest(queryText?: any, addFilter?: any) { + this.loadCardSkeletonLoader() + const request: any = { + 'request': { + 'query': queryText || '', + 'filters': { + 'contentType': 'Course', + ...addFilter, + 'status': [ + 'Live', + ], + }, + 'sort_by': { + 'lastUpdatedOn': 'desc', + }, + 'offset': 0, + 'fields': [ + ], + }, + } + return request + } + + loadCardSkeletonLoader() { + const sectionData = this.sectionList.filter((ele: any) => ele.key === 'contentSearch') + if (sectionData && sectionData.length) { + const strip: any = sectionData[0].column[0].data && sectionData[0].column[0].data.strips[0] + this.contentDataList = this.commonSvc.transformSkeletonToWidgets(strip) + } + } + + raiseTelemetryInteratEvent(event: any) { + this.eventSvc.raiseInteractTelemetry( + { + type: 'click', + subType: 'karma-programs', + id: `card-content`, + }, + { + id: event.identifier, + type: event.primaryCategory, + }, + { + module: WsEvents.EnumTelemetrymodules.LEARN, + } + ) + } + +} diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.spec.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.spec.ts deleted file mode 100644 index 1b7a943c7..000000000 --- a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite/karma-programs-microsite.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing' - -import { KarmaProgramsMicrositeComponent } from './karma-programs-microsite.component' - -describe('KarmaProgramsMicrositeComponent', () => { - let component: KarmaProgramsMicrositeComponent - let fixture: ComponentFixture - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [KarmaProgramsMicrositeComponent], - }) - .compileComponents() - })) - - beforeEach(() => { - fixture = TestBed.createComponent(KarmaProgramsMicrositeComponent) - component = fixture.componentInstance - fixture.detectChanges() - }) - - it('should create', () => { - expect(component).toBeTruthy() - }) -}) diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-routing.module.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-routing.module.ts index a4f49bc69..150fdec14 100644 --- a/project/ws/app/src/lib/routes/karma-programs/karma-programs-routing.module.ts +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-routing.module.ts @@ -1,9 +1,12 @@ import { NgModule } from '@angular/core' import { Routes, RouterModule } from '@angular/router' -import { KarmaProgramsFormService } from './service/karma-programs-form.service' -import { KarmaProgramsComponent } from './karma-programs/karma-programs.component' -import { KarmaProgramsMicrositeComponent } from './karma-programs-microsite/karma-programs-microsite.component' +import { KarmaProgramsFormV1Service } from './service/karma-programs-form-v1.service' +import { KarmaProgramsV1Component } from './karma-programs-v1/karma-programs-v1.component' +import { KarmaProgramsMicrositeV1Component } from './karma-programs-microsite-v1/karma-programs-microsite-v1.component' import { KarmaProgramDataService } from './service/karma-program-data.service' +import { KarmaProgramsV2Component } from './karma-programs-v2/karma-programs-v2.component' +import { KarmaProgramsMicrositeV2Component } from './karma-programs-microsite-v2/karma-programs-microsite-v2.component' +import { KarmaProgramsFormV2Service } from './service/karma-programs-form-v2.service.' const routes: Routes = [ { @@ -13,7 +16,7 @@ const routes: Routes = [ }, { path: 'all-programs', - component: KarmaProgramsComponent, + component: KarmaProgramsV1Component, data: { pageId: 'all-programs', module: 'Learn', @@ -24,13 +27,35 @@ const routes: Routes = [ }, { path: ':programName/:playListKey/:orgId/micro-sites', - component: KarmaProgramsMicrositeComponent, + component: KarmaProgramsMicrositeV1Component, data: { pageId: ':programName/:playListKey/:orgId/micro-sites', module: 'Learn', }, resolve: { - formData: KarmaProgramsFormService, + formData: KarmaProgramsFormV1Service, + }, + }, + { + path: 'all-programs/v2', + component: KarmaProgramsV2Component, + data: { + pageId: 'all-programs', + module: 'Learn', + }, + resolve: { + programData: KarmaProgramDataService, + }, + }, + { + path: ':programName/:playListKey/:orgId/micro-sites/v2', + component: KarmaProgramsMicrositeV2Component, + data: { + pageId: ':programName/:playListKey/:orgId/micro-sites', + module: 'Learn', + }, + resolve: { + formData: KarmaProgramsFormV2Service, }, }, ] diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.html b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.html similarity index 100% rename from project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.html rename to project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.html diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.scss b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.scss similarity index 100% rename from project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.scss rename to project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.scss diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.spec.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.spec.ts similarity index 51% rename from project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.spec.ts rename to project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.spec.ts index 82aed4075..6aef376a5 100644 --- a/project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.spec.ts +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.spec.ts @@ -1,20 +1,19 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing' +import { KarmaProgramsV1Component } from './karma-programs-v1.component' -import { KarmaProgramsComponent } from './karma-programs.component' - -describe('KarmaProgramsComponent', () => { - let component: KarmaProgramsComponent - let fixture: ComponentFixture +describe('KarmaProgramsV1Component', () => { + let component: KarmaProgramsV1Component + let fixture: ComponentFixture beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [KarmaProgramsComponent], + declarations: [KarmaProgramsV1Component], }) .compileComponents() })) beforeEach(() => { - fixture = TestBed.createComponent(KarmaProgramsComponent) + fixture = TestBed.createComponent(KarmaProgramsV1Component) component = fixture.componentInstance fixture.detectChanges() }) diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.ts similarity index 97% rename from project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.ts rename to project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.ts index b2946de2c..a51b9b3b5 100644 --- a/project/ws/app/src/lib/routes/karma-programs/karma-programs/karma-programs.component.ts +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.ts @@ -11,11 +11,11 @@ import _ from 'lodash' import { ActivatedRoute } from '@angular/router' @Component({ - selector: 'ws-app-karma-programs', - templateUrl: './karma-programs.component.html', - styleUrls: ['./karma-programs.component.scss'] + selector: 'ws-app-karma-programs-v1', + templateUrl: './karma-programs-v1.component.html', + styleUrls: ['./karma-programs-v1.component.scss'] }) -export class KarmaProgramsComponent implements OnInit { +export class KarmaProgramsV1Component implements OnInit { public displayLoader!: Observable provider = 'JPAL' diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.html b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.html new file mode 100644 index 000000000..26b34e305 --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.html @@ -0,0 +1,85 @@ + + +
+
+

{{ 'allChannelsComponent.allPrograms' | translate }} ({{allProviders?.length}})

+
+ +
+ +
+ + + + + +
+ + + +

+ {{ 'allChannelsComponent.noProgramsFound' | translate }} +

+
+
+
+
+ +
+
+
+
\ No newline at end of file diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.scss b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.scss new file mode 100644 index 000000000..5d5280dcd --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.scss @@ -0,0 +1,177 @@ +.container-balanced { + max-width: 1202px; + margin-left: auto!important; + margin-right: auto!important; + height: auto; + min-height: 400px; + + @media (max-width:1024px) { + margin-left: 8px!important; + margin-right: 8px!important; + } + +} + +.top_card_container { + margin-top: 30px; + .top_card_inner_box { + align-items: center; + // enable for flex box layout + // flex-direction: row; + // flex-wrap: wrap; + // justify-content:space-between; + + // enable for grid box layout + display: grid !important; + grid-gap: 32px; + grid-template-columns: repeat(auto-fill, 276px); + justify-content: flex-start; + + @media (max-width:768px) { + grid-gap: 16px; + } + } +} + +// all providers +.all_provider_box { + width: 100%; + margin-bottom: 150px; + padding: 30px 0; + + .all_provider_inner { + width: 100%; + } + + .top_search_box { + width: 100%; + overflow: hidden; + justify-content: space-between; + + + .search_box_inner { + max-width: 585px; + float: left; + + @media (max-width:768px) { + width: 75%; + max-width: 75%; + } + + .search_box_main { + width: 100%; + max-width: 585px; + + @media (max-width:768px) { + max-width: 100%; + } + + mat-form-field .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-infix{ + border-top-width: 8px !important; + padding: 12px 10px 12px 12px; + + } + + form { + width: 100%; + + .search_form { + width: 100%; + } + } + } + } + + .item_dropdown_box { + float: right; + // width: 210px; + box-sizing: border-box; + + @media (max-width:768px) { + width: 20%; + display: flex; + align-items: center; + margin-right: 8px; + } + .item { + background: white; + width: 100%; + padding: 0px 16px; + border-radius: 52px; + .mat-form-field { + // background-color: #f0f3f4; + // border:1px solid rgba(0, 0, 0, 0.08); + // padding: 0px 12px; + // border-radius: 4px 4px; + // box-sizing: border-box; + + @media (max-width:768px) { + width: 100%; + } + } + .theme-igot.day-mode .mat-form-field-appearance-legacy .mat-form-field-underline { + background-color:none; + } + + } + } + } + + .provider_card_box { + width:100%; + align-items: center; + // Enable if flex layout is needed + // flex-direction: row; + // flex-wrap: wrap; + // display: flex; + // justify-content: space-between; + + // disable if flex layout is needed and not grid + display: grid; + grid-gap: 27px; + grid-template-columns: repeat(auto-fill, 275px); + //justify-content: space-between; + + @media (max-width:1024px) { + // justify-content: center; + grid-template-columns: unset; + } + + } + + a.load_more_link { + margin:35px auto 0 auto; + text-align:center; + display: block; + } + +} + + +.sort-menu { +width: 100% !important; +} +.search-wrapper { + mat-icon { + top: 8px; + left: 20px; + } + .search-field { + width: 487px; + height: 40px; + padding: 12px 16px 12px 48px; + gap: 8px; + border-radius: 52px; + background: #FFFFFF; + border: 1px solid #00000014; + @media (max-width:768px) { + width: 284px; + } + } +} + + +input[type="search"]::-webkit-search-decoration:hover, +input[type="search"]::-webkit-search-cancel-button:hover { + cursor:pointer; +} \ No newline at end of file diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.spec.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.spec.ts new file mode 100644 index 000000000..ca4acedef --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing' +import { KarmaProgramsV2Component } from './karma-programs-v2.component' + +describe('KarmaProgramsV2Component', () => { + let component: KarmaProgramsV2Component + let fixture: ComponentFixture + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [KarmaProgramsV2Component], + }) + .compileComponents() + })) + + beforeEach(() => { + fixture = TestBed.createComponent(KarmaProgramsV2Component) + component = fixture.componentInstance + fixture.detectChanges() + }) + + it('should create', () => { + expect(component).toBeTruthy() + }) +}) diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.ts new file mode 100644 index 000000000..549e0b723 --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.ts @@ -0,0 +1,238 @@ +import { Component, OnInit } from '@angular/core' +import { FormControl, FormGroup } from '@angular/forms' +import { Observable, Subject } from 'rxjs' +import { BrowseProviderService } from '../../browse-by-provider/services/browse-provider.service' +import { LocalDataService } from '../../browse-by-competency/services/localService' +import { TranslateService } from '@ngx-translate/core' +import { EventService, WsEvents, MultilingualTranslationsService } from '@sunbird-cb/utils-v2' +import { debounceTime, switchMap, takeUntil } from 'rxjs/operators' +// tslint:disable +import _ from 'lodash' +import { ActivatedRoute } from '@angular/router' + +@Component({ + selector: 'ws-app-karma-programs-v2', + templateUrl: './karma-programs-v2.component.html', + styleUrls: ['./karma-programs-v2.component.scss'] +}) +export class KarmaProgramsV2Component implements OnInit { + + public displayLoader!: Observable + provider = 'JPAL' + page = 1 + defaultLimit = 20 + limit = 20 + searchForm: FormGroup | undefined + sortBy: any + searchQuery = '' + allProviders: any = [] + clonesProviders: any + disableLoadMore = false + totalCount = 0 + private unsubscribe = new Subject() + titles = [ + { title: 'Learn', url: '/page/learn', icon: 'school', disableTranslate: false }, + { title: 'Karma Programs', url: 'none', icon: '' }, + ] + getAllProvidersReq = { + request: { + filters: { + isCbp: true, + }, + sort_by: { + orgName: 'asc', + }, + query: '', + limit: this.limit, + offset: 0, + }, + } + constructor( + private browseProviderSvc: BrowseProviderService, + private localService: LocalDataService, + private translate: TranslateService, + private route: ActivatedRoute, + private langtranslations: MultilingualTranslationsService, + private events: EventService + ) { + this.langtranslations.languageSelectedObservable.subscribe(() => { + if (localStorage.getItem('websiteLanguage')) { + this.translate.setDefaultLang('en') + const lang = localStorage.getItem('websiteLanguage')! + this.translate.use(lang) + } + }) + if (this.route.snapshot.data && this.route.snapshot.data.programData + && this.route.snapshot.data.programData.data + && this.route.snapshot.data.programData.data.result + && this.route.snapshot.data.programData.data.result.data + && this.route.snapshot.data.programData.data.result.data.length + ) { + // this.allProviders = this.route.snapshot.data.programData.data.result.data + this.allProviders = [] + let programData: any = this.route.snapshot.data.programData.data.result.data + programData.forEach((prgData: any) => { + if(prgData.children && prgData.children.length) { + this.allProviders.push(prgData) + } + }) + // .data.result.form.data.sectionList + } + this.clonesProviders = this.allProviders + } + + ngOnInit() { + this.searchForm = new FormGroup({ + sortByControl: new FormControl(''), + searchKey: new FormControl(''), + }) + this.sortType('asc') + this.displayLoader = this.browseProviderSvc.isLoading() + this.searchForm.valueChanges + .pipe( + debounceTime(500), + switchMap(async (formValue: any) => { + this.sortBy = formValue.sortByControl + this.updateQuery(formValue.searchKey) + }), + takeUntil(this.unsubscribe) + ).subscribe() + // this.getAllProviders() + } + + getAllProviders(req?: any) { + this.allProviders = [] + const request = req || this.getAllProvidersReq + let data = this.localService.providers.getValue() + if (data && data.length === 0) { + this.browseProviderSvc.fetchAllProviders(request).subscribe(response => { + this.localService.initProviders(response) + // if (res && res.result && res.result.response && res.result.response.content) { + // this.allProviders = res.result.response.content + // this.totalCount = res.result.response.count + // if ((this.page * this.defaultLimit) >= this.totalCount) { + // this.disableLoadMore = true + // } else { + // this.disableLoadMore = false + // } + // } + if (response) { + const res = _.toArray(_.pickBy(response, v => v !== null && v !== undefined && !!v.title)) + const fData: any[] = [] + if (this.searchQuery) { + _.each(res, (d: any) => { + let found = false + found = _.includes(_.lowerCase(this.searchQuery), _.lowerCase(_.get(d, 'title'))) + || _.includes(_.lowerCase(_.get(d, 'title')), _.lowerCase(this.searchQuery)) + if (found) { + fData.push(d) + } + }) + this.allProviders = fData + } + if (this.sortBy) { + this.allProviders = _.orderBy(fData.length ? fData : res, ['title'], [this.sortBy]) + } else { + this.allProviders = fData.length ? fData : res + } + if (!this.searchQuery && !this.sortBy) { + this.allProviders = fData.length ? fData : res + } + this.totalCount = fData.length || res.length + if ((this.page * this.defaultLimit) >= this.totalCount) { + this.disableLoadMore = true + } else { + this.disableLoadMore = false + } + } + }) + } else { + const fData: any[] = [] + data = _.toArray(_.pickBy(data, v => v !== null && v !== undefined && !!v.title)) + if (this.searchQuery) { + _.each(data, (d: any) => { + let found = false + found = _.includes(_.lowerCase(this.searchQuery), _.lowerCase(_.get(d, 'title'))) + || _.includes(_.lowerCase(_.get(d, 'title')), _.lowerCase(this.searchQuery)) + if (found) { + fData.push(d) + } + }) + this.allProviders = fData + } + if (this.sortBy) { + this.allProviders = _.orderBy((fData.length ? fData : data), ['title'], [this.sortBy]) + } + if (!this.searchQuery && !this.sortBy) { + this.allProviders = fData.length ? fData : data + } + this.totalCount = data.length + if ((this.page * this.defaultLimit) >= this.totalCount) { + this.disableLoadMore = true + } else { + this.disableLoadMore = false + } + } + } + + updateQuery(key: string) { + this.searchQuery = key + this.getAllProvidersReq.request.query = this.searchQuery + this.getAllProvidersReq.request.offset = 0 + this.getAllProvidersReq.request.limit = this.defaultLimit + this.page = 1 + this.getAllProvidersReq.request.sort_by.orgName = this.sortBy + // this.getAllProviders() + this.filterChannles(key) + } + + filterChannles(value: string) { + if (value) { + const filterValue = value.toLowerCase() + this.clonesProviders = this.allProviders.filter((p: any) => p.title.toLowerCase().includes(filterValue)) + } + if (!value) { + this.clonesProviders = this.allProviders + } + } + + loadMore() { + this.page = this.page + 1 + // this.getAllProvidersReq.request.offset = this.page * this.limit + this.limit = (this.page * this.defaultLimit) || this.defaultLimit + this.getAllProvidersReq.request.limit = this.limit + this.getAllProviders() + if ((this.page * this.defaultLimit) >= this.totalCount) { + this.disableLoadMore = true + } else { + this.disableLoadMore = false + } + } + + sortType(sortType: any){ + if(this.searchForm && this.searchForm.get('sortByControl')){ + // tslint:disable-next-line: no-non-null-assertion + this.searchForm.get('sortByControl')!.setValue(sortType) + this.sortBy = sortType; + this.allProviders = _.orderBy(this.allProviders.length ? this.allProviders : this.allProviders, ['title'], [this.sortBy]) + } + } + + raiseTelemetryInteratEvent(event: any) { + this.events.raiseInteractTelemetry( + { + type: 'click', + subType: 'karma-programs', + id: 'card-content', + }, + { + id: event.title, + type: event.orgId, + }, + { + module: WsEvents.EnumTelemetrymodules.LEARN, + } + ) + } + +} diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs.module.ts b/project/ws/app/src/lib/routes/karma-programs/karma-programs.module.ts index 13e866104..aeda948cf 100644 --- a/project/ws/app/src/lib/routes/karma-programs/karma-programs.module.ts +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs.module.ts @@ -1,7 +1,6 @@ import { NgModule } from '@angular/core' import { CommonModule } from '@angular/common' -import { KarmaProgramsComponent } from './karma-programs/karma-programs.component' -import { KarmaProgramsMicrositeComponent } from './karma-programs-microsite/karma-programs-microsite.component' +import { KarmaProgramsMicrositeV1Component } from './karma-programs-microsite-v1/karma-programs-microsite-v1.component' import { KarmaProgramsRoutingModule } from './karma-programs-routing.module' import { CardsModule, CommonMethodsService, SlidersLibModule } from '@sunbird-cb/consumption' import { FormsModule, ReactiveFormsModule } from '@angular/forms' @@ -13,9 +12,16 @@ import { TranslateLoader, TranslateModule } from '@ngx-translate/core' import { HttpClient } from '@angular/common/http' import { HttpLoaderFactory } from 'src/app/app.module' import { KarmaProgramDataService } from './service/karma-program-data.service' +import { KarmaProgramsV1Component } from './karma-programs-v1/karma-programs-v1.component' +import { KarmaProgramsV2Component } from './karma-programs-v2/karma-programs-v2.component' +import { KarmaProgramsMicrositeV2Component } from './karma-programs-microsite-v2/karma-programs-microsite-v2.component' @NgModule({ - declarations: [KarmaProgramsComponent, KarmaProgramsMicrositeComponent], + declarations: [ + KarmaProgramsV1Component, + KarmaProgramsMicrositeV1Component, + KarmaProgramsV2Component, + KarmaProgramsMicrositeV2Component], imports: [ CommonModule, FormsModule, diff --git a/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v1.service.spec.ts b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v1.service.spec.ts new file mode 100644 index 000000000..e14767591 --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v1.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing' + +import { KarmaProgramsFormV1Service } from './karma-programs-form-v1.service' + +describe('KarmaProgramsFormV1Service', () => { + beforeEach(() => TestBed.configureTestingModule({})) + + it('should be created', () => { + const service: KarmaProgramsFormV1Service = TestBed.get(KarmaProgramsFormV1Service) + expect(service).toBeTruthy() + }) +}) diff --git a/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form.service.ts b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v1.service.ts similarity index 96% rename from project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form.service.ts rename to project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v1.service.ts index d5ea61727..842ffe755 100644 --- a/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form.service.ts +++ b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v1.service.ts @@ -8,7 +8,7 @@ import { FormExtService } from 'src/app/services/form-ext.service' @Injectable({ providedIn: 'root', }) -export class KarmaProgramsFormService implements +export class KarmaProgramsFormV1Service implements Resolve> | IResolveResponse> { constructor( private formSvc: FormExtService) {} diff --git a/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service..ts b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service..ts new file mode 100644 index 000000000..b13f55b50 --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service..ts @@ -0,0 +1,46 @@ +import { Injectable } from '@angular/core' +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router' +import { IResolveResponse } from '@sunbird-cb/utils-v2' +import { Observable, of } from 'rxjs' +import { catchError, map, tap } from 'rxjs/operators' +import { FormExtService } from 'src/app/services/form-ext.service' + +@Injectable({ + providedIn: 'root', +}) +export class KarmaProgramsFormV2Service implements +Resolve> | IResolveResponse> { +constructor( +private formSvc: FormExtService) {} + +resolve( + _route: ActivatedRouteSnapshot, + _state: RouterStateSnapshot, +): Observable> { + const orgId = _route.params && _route.params.orgId || '' + const requestData: any = { + 'request': { + 'type': 'karma-program', + 'subType': 'microsite-v2', + 'action': 'page-configuration', + 'component': 'portal', + 'rootOrgId': orgId, + }, + } + // 'request': { + // 'type': 'ATI-CTI', + // 'subType': 'microsite', + // 'action': 'page-configuration', + // 'component': 'portal', + // 'rootOrgId': orgId, + // }, + return this.formSvc.formReadData(requestData).pipe( + map((rData: any) => ({ data: rData, error: null })), + tap((resolveData: any) => { + const finalData = resolveData && resolveData.data.result.form + return of({ error: null, data: finalData }) + }), + catchError((error: any) => of({ error, data: null })), + ) + } +} diff --git a/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service.spec.ts b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service.spec.ts new file mode 100644 index 000000000..a6ec9f74e --- /dev/null +++ b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form-v2.service.spec.ts @@ -0,0 +1,11 @@ +import { TestBed } from '@angular/core/testing' +import { KarmaProgramsFormV2Service } from './karma-programs-form-v2.service.' + +describe('KarmaProgramsFormV2Service', () => { + beforeEach(() => TestBed.configureTestingModule({})) + + it('should be created', () => { + const service: KarmaProgramsFormV2Service = TestBed.get(KarmaProgramsFormV2Service) + expect(service).toBeTruthy() + }) +}) diff --git a/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form.service.spec.ts b/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form.service.spec.ts deleted file mode 100644 index 9a47438b5..000000000 --- a/project/ws/app/src/lib/routes/karma-programs/service/karma-programs-form.service.spec.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { TestBed } from '@angular/core/testing' - -import { KarmaProgramsFormService } from './karma-programs-form.service' - -describe('KarmaProgramsFormService', () => { - beforeEach(() => TestBed.configureTestingModule({})) - - it('should be created', () => { - const service: KarmaProgramsFormService = TestBed.get(KarmaProgramsFormService) - expect(service).toBeTruthy() - }) -}) From 4ffb1a71776b08bfb510c444397438d2bb541970 Mon Sep 17 00:00:00 2001 From: Venkat Kandagaddala Date: Wed, 31 Jul 2024 11:45:54 +0530 Subject: [PATCH 2/6] Changes in karma programs verioning --- ...karma-programs-microsite-v2.component.html | 97 +++---- ...karma-programs-microsite-v2.component.scss | 8 + .../karma-programs-routing.module.ts | 16 +- .../karma-programs-v1.component.ts | 238 ------------------ .../karma-programs-v2.component.html | 85 ------- .../karma-programs-v2.component.scss | 177 ------------- .../karma-programs-v2.component.spec.ts | 24 -- .../karma-programs/karma-programs.module.ts | 6 +- .../karma-programs.component.html} | 0 .../karma-programs.component.scss} | 0 .../karma-programs.component.spec.ts} | 12 +- .../karma-programs.component.ts} | 8 +- 12 files changed, 75 insertions(+), 596 deletions(-) delete mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v1/karma-programs-v1.component.ts delete mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.html delete mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.scss delete mode 100644 project/ws/app/src/lib/routes/karma-programs/karma-programs-v2/karma-programs-v2.component.spec.ts rename project/ws/app/src/lib/routes/karma-programs/{karma-programs-v1/karma-programs-v1.component.html => karma-programs/karma-programs.component.html} (100%) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs-v1/karma-programs-v1.component.scss => karma-programs/karma-programs.component.scss} (100%) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs-v1/karma-programs-v1.component.spec.ts => karma-programs/karma-programs.component.spec.ts} (51%) rename project/ws/app/src/lib/routes/karma-programs/{karma-programs-v2/karma-programs-v2.component.ts => karma-programs/karma-programs.component.ts} (97%) diff --git a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html index 118c5eea8..2eced1a95 100644 --- a/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html +++ b/project/ws/app/src/lib/routes/karma-programs/karma-programs-microsite-v2/karma-programs-microsite-v2.component.html @@ -26,62 +26,71 @@ -