From fb57a9b278079adc8468dd296be001f3f76b7149 Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Sun, 5 Jul 2020 20:09:50 +0530 Subject: [PATCH 01/45] Migrated PracticeTabComponent --- ...ctive.html => practice-tab.component.html} | 10 ++- .../practice-tab/practice-tab.component.ts | 78 +++++++++++++++++ .../practice-tab/practice-tab.directive.ts | 83 ------------------- .../topic-viewer-page.component.html | 4 +- .../topic-viewer-page.module.ts | 7 +- 5 files changed, 91 insertions(+), 91 deletions(-) rename core/templates/pages/topic-viewer-page/practice-tab/{practice-tab.directive.html => practice-tab.component.html} (81%) create mode 100644 core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts delete mode 100644 core/templates/pages/topic-viewer-page/practice-tab/practice-tab.directive.ts diff --git a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.directive.html b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.html similarity index 81% rename from core/templates/pages/topic-viewer-page/practice-tab/practice-tab.directive.html rename to core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.html index c3dc10892543..b180a7e37cb6 100644 --- a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.directive.html +++ b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.html @@ -1,16 +1,18 @@

+

+ - - <[subtopic.getTitle()]> + + {{ subtopic.getTitle() }} - diff --git a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts new file mode 100644 index 000000000000..1ee0e9e71b33 --- /dev/null +++ b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts @@ -0,0 +1,78 @@ +// Copyright 2018 The Oppia Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Component for the stories list. + */ + +import { Component, Input, OnInit } from '@angular/core'; +import { downgradeComponent } from '@angular/upgrade/static'; + +import { Subtopic } from 'domain/topic/SubtopicObjectFactory'; +import { UrlInterpolationService } from + 'domain/utilities/url-interpolation.service'; +import { PracticeSessionPageConstants} from + 'pages/practice-session-page/practice-session-page.constants.ts'; + +@Component({ + selector: 'practice-tab', + templateUrl: './practice-tab.component.html', + styleUrls: [] +}) +export class PracticeTabComponent implements OnInit { + selectedSubtopics: Array = []; + availableSubtopics: Array = []; + selectedSubtopicIndices: Array = []; + @Input() topicName: string; + @Input() subtopicsList: Array; + constructor( + private urlInterpolationService: UrlInterpolationService + ) {} + ngOnInit(): void { + this.selectedSubtopics = []; + this.availableSubtopics = this.subtopicsList.filter( + (subtopic: Subtopic) => { + return subtopic.getSkillSummaries().length > 0; + } + ); + this.selectedSubtopicIndices = Array( + this.availableSubtopics.length).fill(false); + } + isStartButtonDisabled(): boolean { + for (var idx in this.selectedSubtopicIndices) { + if (this.selectedSubtopicIndices[idx]) { + return false; + } + } + return true; + } + openNewPracticeSession(): void { + var selectedSubtopicIds = []; + for (var idx in this.selectedSubtopicIndices) { + if (this.selectedSubtopicIndices[idx]) { + selectedSubtopicIds.push( + this.availableSubtopics[idx].getId()); + } + } + var practiceSessionsUrl = this.urlInterpolationService.interpolateUrl( + PracticeSessionPageConstants.PRACTICE_SESSIONS_URL, { + topic_name: this.topicName, + comma_separated_subtopic_ids: selectedSubtopicIds.join(',') + }); + window.location.href = practiceSessionsUrl; + } +} +angular.module('oppia').directive( + 'practiceTab', downgradeComponent( + {component: PracticeTabComponent})); diff --git a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.directive.ts b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.directive.ts deleted file mode 100644 index 2d88f3d81924..000000000000 --- a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.directive.ts +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2018 The Oppia Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Directive for the stories list. - */ - -require('pages/practice-session-page/practice-session-page.constants.ajs.ts'); -require('domain/utilities/url-interpolation.service.ts'); -require('services/contextual/window-dimensions.service.ts'); - -angular.module('oppia').directive('practiceTab', [ - '$window', 'UrlInterpolationService', - 'PRACTICE_SESSIONS_URL', - function( - $window, UrlInterpolationService, - PRACTICE_SESSIONS_URL) { - return { - restrict: 'E', - scope: {}, - bindToController: { - getTopicName: '&topicName', - getSubtopicsList: '&subtopicsList' - }, - templateUrl: UrlInterpolationService.getDirectiveTemplateUrl( - '/pages/topic-viewer-page/practice-tab/practice-tab.directive.html'), - controllerAs: '$ctrl', - controller: [ - '$scope', - function( - $scope) { - var ctrl = this; - - ctrl.openNewPracticeSession = function() { - var selectedSubtopicIds = []; - for (var idx in ctrl.selectedSubtopicIndices) { - if (ctrl.selectedSubtopicIndices[idx]) { - selectedSubtopicIds.push( - ctrl.availableSubtopics[idx].getId()); - } - } - var practiceSessionsUrl = UrlInterpolationService.interpolateUrl( - PRACTICE_SESSIONS_URL, { - topic_name: ctrl.getTopicName(), - comma_separated_subtopic_ids: selectedSubtopicIds.join(',') - }); - $window.location.href = practiceSessionsUrl; - }; - - ctrl.isStartButtonDisabled = function() { - for (var idx in ctrl.selectedSubtopicIndices) { - if (ctrl.selectedSubtopicIndices[idx]) { - return false; - } - } - return true; - }; - - ctrl.$onInit = function() { - ctrl.selectedSubtopics = []; - ctrl.availableSubtopics = ctrl.getSubtopicsList().filter( - function(subtopic) { - return subtopic.getSkillSummaries().length > 0; - } - ); - ctrl.selectedSubtopicIndices = Array( - ctrl.availableSubtopics.length).fill(false); - }; - } - ] - }; - }]); diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html index 41292213a26c..5eceb982e746 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html @@ -51,8 +51,8 @@
- +
diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts index d8280bb6055f..836ab92472fe 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts @@ -44,6 +44,9 @@ import { ObjectsDomainConstants } from import { TopicViewerDomainConstants } from 'domain/topic_viewer/topic-viewer-domain.constants'; +import { PracticeTabComponent } from './practice-tab/practice-tab.component'; + + @NgModule({ imports: [ BrowserModule, @@ -51,10 +54,10 @@ import { TopicViewerDomainConstants } from SharedComponentsModule ], declarations: [ - OppiaAngularRootComponent + OppiaAngularRootComponent, PracticeTabComponent ], entryComponents: [ - OppiaAngularRootComponent + OppiaAngularRootComponent, PracticeTabComponent ], providers: [ AppConstants, From 7a0c88cfcc607c57bbcdb56cbe98a2931d15d28d Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Sun, 5 Jul 2020 20:17:26 +0530 Subject: [PATCH 02/45] Fixed references --- .../pages/topic-viewer-page/topic-viewer-page.component.ts | 2 +- scripts/check_frontend_coverage.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts index 0483bbea2251..f285b3910f31 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts @@ -26,7 +26,7 @@ require( 'pages/topic-viewer-page/stories-list/' + 'topic-viewer-stories-list.directive.ts'); require('pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts'); -require('pages/topic-viewer-page/practice-tab/practice-tab.directive.ts'); +require('pages/topic-viewer-page/practice-tab/practice-tab.component.ts'); require('domain/topic_viewer/topic-viewer-backend-api.service.ts'); require('services/alerts.service.ts'); require('services/page-title.service.ts'); diff --git a/scripts/check_frontend_coverage.py b/scripts/check_frontend_coverage.py index c1cb515f5bf0..14067807e3fe 100644 --- a/scripts/check_frontend_coverage.py +++ b/scripts/check_frontend_coverage.py @@ -309,7 +309,7 @@ 'playthrough-issues.directive.ts', 'Polyfills.ts', 'post-publish-modal.controller.ts', - 'practice-tab.directive.ts', + 'practice-tab.component.ts', 'pretest-question-backend-api.service.ts', 'preview-tab.directive.ts', 'profile-link-image.directive.ts', From 316e7cbbc5538522661da99288e33dafd7acec42 Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Sun, 5 Jul 2020 21:00:52 +0530 Subject: [PATCH 03/45] Migrated TopicViewerNavbarBreadcrumb --- ...ic-viewer-navbar-breadcrumb.directive.html | 6 --- ...opic-viewer-navbar-breadcrumb.directive.ts | 50 ------------------- .../topic-viewer-page.module.ts | 8 ++- .../topic-viewer-page.scripts.ts | 2 +- scripts/check_frontend_coverage.py | 2 +- 5 files changed, 8 insertions(+), 60 deletions(-) delete mode 100644 core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.html delete mode 100644 core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.ts diff --git a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.html b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.html deleted file mode 100644 index d89036436edb..000000000000 --- a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.html +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.ts b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.ts deleted file mode 100644 index 924665bce504..000000000000 --- a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.directive.ts +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2018 The Oppia Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Directive for the navbar breadcrumb of the topic viewer. - */ - -require('domain/utilities/url-interpolation.service.ts'); -require('services/contextual/url.service.ts'); - -angular.module('oppia').directive('topicViewerNavbarBreadcrumb', [ - 'UrlInterpolationService', function(UrlInterpolationService) { - return { - restrict: 'E', - scope: {}, - templateUrl: UrlInterpolationService.getDirectiveTemplateUrl( - '/pages/topic-viewer-page/navbar-breadcrumb/' + - 'topic-viewer-navbar-breadcrumb.directive.html'), - controller: [ - '$scope', '$rootScope', 'TopicViewerBackendApiService', - 'UrlService', - function( - $scope, $rootScope, TopicViewerBackendApiService, - UrlService) { - var ctrl = this; - ctrl.$onInit = function() { - TopicViewerBackendApiService.fetchTopicData( - UrlService.getTopicNameFromLearnerUrl()).then( - function(readOnlyTopic) { - $scope.topicName = readOnlyTopic.getTopicName(); - // TODO(#8521): Remove the use of $rootScope.$apply() - // once the controller is migrated to angular. - $rootScope.$apply(); - }); - }; - } - ] - }; - }]); diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts index 836ab92472fe..3c229cdd5cbf 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts @@ -44,6 +44,8 @@ import { ObjectsDomainConstants } from import { TopicViewerDomainConstants } from 'domain/topic_viewer/topic-viewer-domain.constants'; +import { TopicViewerNavbarBreadcrumbComponent } from + './navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component'; import { PracticeTabComponent } from './practice-tab/practice-tab.component'; @@ -54,10 +56,12 @@ import { PracticeTabComponent } from './practice-tab/practice-tab.component'; SharedComponentsModule ], declarations: [ - OppiaAngularRootComponent, PracticeTabComponent + OppiaAngularRootComponent, PracticeTabComponent, + TopicViewerNavbarBreadcrumbComponent ], entryComponents: [ - OppiaAngularRootComponent, PracticeTabComponent + OppiaAngularRootComponent, PracticeTabComponent, + TopicViewerNavbarBreadcrumbComponent ], providers: [ AppConstants, diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.scripts.ts b/core/templates/pages/topic-viewer-page/topic-viewer-page.scripts.ts index 7ffad1b72ff3..2668af143f57 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.scripts.ts +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.scripts.ts @@ -24,5 +24,5 @@ require('base-components/oppia-root.directive.ts'); require( 'pages/topic-viewer-page/navbar-breadcrumb/' + - 'topic-viewer-navbar-breadcrumb.directive.ts'); + 'topic-viewer-navbar-breadcrumb.component.ts'); require('pages/topic-viewer-page/topic-viewer-page.component.ts'); diff --git a/scripts/check_frontend_coverage.py b/scripts/check_frontend_coverage.py index 14067807e3fe..c943766f7684 100644 --- a/scripts/check_frontend_coverage.py +++ b/scripts/check_frontend_coverage.py @@ -457,7 +457,7 @@ 'topic-questions-tab.directive.ts', 'topic-selector.directive.ts', 'topic-summary-tile.directive.ts', - 'topic-viewer-navbar-breadcrumb.directive.ts', + 'topic-viewer-navbar-breadcrumb.component.ts', 'topic-viewer-stories-list.directive.ts', 'TopicObjectFactory.ts', 'topics-and-skills-dashboard-backend-api.service.ts', From 91d7b6b4b46cfb8e9ef04498409d329a1c694088 Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Sun, 5 Jul 2020 21:01:13 +0530 Subject: [PATCH 04/45] Added untracked files --- ...ic-viewer-navbar-breadcrumb.component.html | 6 +++ ...opic-viewer-navbar-breadcrumb.component.ts | 49 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.html create mode 100644 core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts diff --git a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.html b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.html new file mode 100644 index 000000000000..68c9fe31ca61 --- /dev/null +++ b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.html @@ -0,0 +1,6 @@ + diff --git a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts new file mode 100644 index 000000000000..15439bf9fdfb --- /dev/null +++ b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts @@ -0,0 +1,49 @@ +// Copyright 2018 The Oppia Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Directive for the navbar breadcrumb of the topic viewer. + */ + +import { Component, Input, OnInit } from '@angular/core'; +import { downgradeComponent } from '@angular/upgrade/static'; + +import { TopicViewerBackendApiService } from + 'domain/topic_viewer/topic-viewer-backend-api.service'; +import { UrlService } from 'services/contextual/url.service'; +import { ReadOnlyTopic } from + 'domain/topic_viewer/read-only-topic-object.factory'; + +@Component({ + selector: 'topic-viewer-navbar-breadcrumb', + templateUrl: './topic-viewer-navbar-breadcrumb.component.html', + styleUrls: [] +}) +export class TopicViewerNavbarBreadcrumbComponent implements OnInit { + topicName: string = ''; + constructor( + private topicViewerBackendApiService: TopicViewerBackendApiService, + private urlService: UrlService + ) {} + ngOnInit(): void { + this.topicViewerBackendApiService.fetchTopicData( + this.urlService.getTopicNameFromLearnerUrl()).then( + (readOnlyTopic: ReadOnlyTopic) => { + this.topicName = readOnlyTopic.getTopicName(); + }); + } +} +angular.module('oppia').directive( + 'topicViewerNavbarBreadcrumb', downgradeComponent( + {component: TopicViewerNavbarBreadcrumbComponent})); From 410d43b0677809079cb8879796ccf11506b0a5f1 Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Sun, 5 Jul 2020 22:32:08 +0530 Subject: [PATCH 05/45] Migrates StoriesListComponent --- ... topic-viewer-stories-list.component.html} | 3 +- .../topic-viewer-stories-list.component.ts | 35 ++++++++++++++++++ .../topic-viewer-stories-list.directive.ts | 37 ------------------- .../topic-viewer-page.component.html | 2 +- .../topic-viewer-page.component.ts | 2 +- scripts/check_frontend_coverage.py | 2 +- 6 files changed, 40 insertions(+), 41 deletions(-) rename core/templates/pages/topic-viewer-page/stories-list/{topic-viewer-stories-list.directive.html => topic-viewer-stories-list.component.html} (66%) create mode 100644 core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.ts delete mode 100644 core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.directive.ts diff --git a/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.directive.html b/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.html similarity index 66% rename from core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.directive.html rename to core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.html index c79b93c57445..b9218f19e816 100644 --- a/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.directive.html +++ b/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.html @@ -1,7 +1,8 @@
+

-
- +
Date: Sun, 5 Jul 2020 22:38:15 +0530 Subject: [PATCH 06/45] Fixed frontend coverage --- scripts/check_frontend_coverage.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/check_frontend_coverage.py b/scripts/check_frontend_coverage.py index 90f7b265de28..9da8eb3e42ee 100644 --- a/scripts/check_frontend_coverage.py +++ b/scripts/check_frontend_coverage.py @@ -458,7 +458,6 @@ 'topic-selector.directive.ts', 'topic-summary-tile.directive.ts', 'topic-viewer-navbar-breadcrumb.component.ts', - 'topic-viewer-stories-list.component.ts', 'TopicObjectFactory.ts', 'topics-and-skills-dashboard-backend-api.service.ts', 'topics-and-skills-dashboard-navbar-breadcrumb.directive.ts', From 8706628706102b5760659ca3633a57b0f8618f9d Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Mon, 6 Jul 2020 01:29:53 +0530 Subject: [PATCH 07/45] Styling changes + component addition --- .../topic-viewer-navbar-breadcrumb.component.ts | 4 ++-- .../practice-tab/practice-tab.component.ts | 9 +++++---- .../topic-viewer-stories-list.component.ts | 2 +- .../topic-viewer-page/topic-viewer-page.module.ts | 13 +++++++++---- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts index 15439bf9fdfb..91ea7efb7446 100644 --- a/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts +++ b/core/templates/pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component.ts @@ -19,11 +19,11 @@ import { Component, Input, OnInit } from '@angular/core'; import { downgradeComponent } from '@angular/upgrade/static'; +import { ReadOnlyTopic } from + 'domain/topic_viewer/read-only-topic-object.factory'; import { TopicViewerBackendApiService } from 'domain/topic_viewer/topic-viewer-backend-api.service'; import { UrlService } from 'services/contextual/url.service'; -import { ReadOnlyTopic } from - 'domain/topic_viewer/read-only-topic-object.factory'; @Component({ selector: 'topic-viewer-navbar-breadcrumb', diff --git a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts index 1ee0e9e71b33..330ccde348ce 100644 --- a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts +++ b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.ts @@ -31,11 +31,11 @@ import { PracticeSessionPageConstants} from styleUrls: [] }) export class PracticeTabComponent implements OnInit { + @Input() topicName: string; + @Input() subtopicsList: Array; selectedSubtopics: Array = []; availableSubtopics: Array = []; selectedSubtopicIndices: Array = []; - @Input() topicName: string; - @Input() subtopicsList: Array; constructor( private urlInterpolationService: UrlInterpolationService ) {} @@ -58,8 +58,8 @@ export class PracticeTabComponent implements OnInit { return true; } openNewPracticeSession(): void { - var selectedSubtopicIds = []; - for (var idx in this.selectedSubtopicIndices) { + const selectedSubtopicIds = []; + for (let idx in this.selectedSubtopicIndices) { if (this.selectedSubtopicIndices[idx]) { selectedSubtopicIds.push( this.availableSubtopics[idx].getId()); @@ -73,6 +73,7 @@ export class PracticeTabComponent implements OnInit { window.location.href = practiceSessionsUrl; } } + angular.module('oppia').directive( 'practiceTab', downgradeComponent( {component: PracticeTabComponent})); diff --git a/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.ts b/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.ts index 50c1d8c25870..7e02e7f35c25 100644 --- a/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.ts +++ b/core/templates/pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component.ts @@ -13,7 +13,7 @@ // limitations under the License. /** - * @fileoverview Component for the stories list. + * @fileoverview Component for the topic viewer stories list. */ import { Component, Input } from '@angular/core'; diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts index 3c229cdd5cbf..6d8fed4ad4c8 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts @@ -44,9 +44,14 @@ import { ObjectsDomainConstants } from import { TopicViewerDomainConstants } from 'domain/topic_viewer/topic-viewer-domain.constants'; + +import { PracticeTabComponent } from + 'pages/topic-viewer-page/practice-tab/practice-tab.component'; +import { StoriesListComponent } from + 'pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component'; import { TopicViewerNavbarBreadcrumbComponent } from - './navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component'; -import { PracticeTabComponent } from './practice-tab/practice-tab.component'; + // eslint-disable-next-line max-len + 'pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component'; @NgModule({ @@ -57,11 +62,11 @@ import { PracticeTabComponent } from './practice-tab/practice-tab.component'; ], declarations: [ OppiaAngularRootComponent, PracticeTabComponent, - TopicViewerNavbarBreadcrumbComponent + TopicViewerNavbarBreadcrumbComponent, StoriesListComponent ], entryComponents: [ OppiaAngularRootComponent, PracticeTabComponent, - TopicViewerNavbarBreadcrumbComponent + TopicViewerNavbarBreadcrumbComponent, StoriesListComponent ], providers: [ AppConstants, From 5488cbac03281d0203d5d488557324c4fd796d15 Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Mon, 6 Jul 2020 04:03:51 +0530 Subject: [PATCH 08/45] Migrates subtopics list component --- .../subtopic-editor-tab.component.ts | 2 +- .../subtopic-preview-tab.component.ts | 2 +- ...ive.html => subtopics-list.component.html} | 8 ++-- .../subtopics-list.component.ts | 38 ++++++++++++++++++ .../subtopics-list.directive.ts | 39 ------------------- .../topic-viewer-page.component.html | 6 +-- .../topic-viewer-page.component.ts | 2 +- .../topic-viewer-page.module.ts | 9 +++-- scripts/check_frontend_coverage.py | 2 +- 9 files changed, 56 insertions(+), 52 deletions(-) rename core/templates/pages/topic-viewer-page/subtopics-list/{subtopics-list.directive.html => subtopics-list.component.html} (84%) create mode 100644 core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.component.ts delete mode 100644 core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts diff --git a/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-editor-tab.component.ts b/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-editor-tab.component.ts index e2e0180ee3bb..3c9a4e57ebce 100644 --- a/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-editor-tab.component.ts +++ b/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-editor-tab.component.ts @@ -32,7 +32,7 @@ require('domain/utilities/url-interpolation.service.ts'); require('services/contextual/url.service.ts'); require('pages/topic-editor-page/services/topic-editor-state.service.ts'); require('pages/topic-editor-page/services/entity-creation.service.ts'); -require('pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts'); +require('pages/topic-viewer-page/subtopics-list/subtopics-list.component.ts'); angular.module('oppia').component('subtopicEditorTab', { template: require('./subtopic-editor-tab.component.html'), diff --git a/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-preview-tab.component.ts b/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-preview-tab.component.ts index d9f8067c3e37..7e59fb4cf787 100644 --- a/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-preview-tab.component.ts +++ b/core/templates/pages/topic-editor-page/subtopic-editor/subtopic-preview-tab.component.ts @@ -30,7 +30,7 @@ require('domain/utilities/url-interpolation.service.ts'); require('services/contextual/url.service.ts'); require('pages/topic-editor-page/services/topic-editor-state.service.ts'); require('pages/topic-editor-page/services/topic-editor-routing.service.ts'); -require('pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts'); +require('pages/topic-viewer-page/subtopics-list/subtopics-list.component.ts'); angular.module('oppia').component('subtopicPreviewTab', { template: require('./subtopic-preview-tab.component.html'), diff --git a/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.directive.html b/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.component.html similarity index 84% rename from core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.directive.html rename to core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.component.html index a3325e5ae2b1..83134cad85ef 100644 --- a/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.directive.html +++ b/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.component.html @@ -1,16 +1,18 @@

+

+
- + topic-id="topicId" + topic-name="topicName">
diff --git a/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.component.ts b/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.component.ts new file mode 100644 index 000000000000..d5ebdac9257a --- /dev/null +++ b/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.component.ts @@ -0,0 +1,38 @@ +// Copyright 2018 The Oppia Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @fileoverview Component for topic-viewer subtopics list. + */ + +import { Component, Input } from '@angular/core'; +import { downgradeComponent } from '@angular/upgrade/static'; + +import { Subtopic } from 'domain/topic/SubtopicObjectFactory'; + +@Component({ + selector: 'subtopics-list', + templateUrl: './subtopics-list.component.html', + styleUrls: [] +}) +export class SubtopicsListComponent { + @Input() subtopicsList: Array; + @Input() topicId: string; + @Input() topicName: string; + constructor() {} +} + +angular.module('oppia').directive( + 'subtopicsList', downgradeComponent( + {component: SubtopicsListComponent})); diff --git a/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts b/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts deleted file mode 100644 index 974331a338c1..000000000000 --- a/core/templates/pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2018 The Oppia Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Directive for the subtopics list. - */ - -require('components/summary-tile/subtopic-summary-tile.directive.ts'); - -require('domain/utilities/url-interpolation.service.ts'); - -angular.module('oppia').directive('subtopicsList', [ - 'UrlInterpolationService', function(UrlInterpolationService) { - return { - restrict: 'E', - scope: {}, - bindToController: { - getSubtopics: '&subtopicsList', - getTopicId: '&topicId', - getTopicName: '&topicName' - }, - templateUrl: UrlInterpolationService.getDirectiveTemplateUrl( - '/pages/topic-viewer-page/subtopics-list/' + - 'subtopics-list.directive.html'), - controllerAs: '$ctrl', - controller: [function() {}] - }; - }]); diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html index a161355a8500..a13767066851 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.html @@ -56,9 +56,9 @@
- +
diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts index 05dd928a7fe3..4df373ec8a5e 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.component.ts @@ -25,7 +25,7 @@ require('pages/topic-viewer-page/info-tab/topic-info-tab.directive.ts'); require( 'pages/topic-viewer-page/stories-list/' + 'topic-viewer-stories-list.component.ts'); -require('pages/topic-viewer-page/subtopics-list/subtopics-list.directive.ts'); +require('pages/topic-viewer-page/subtopics-list/subtopics-list.component.ts'); require('pages/topic-viewer-page/practice-tab/practice-tab.component.ts'); require('domain/topic_viewer/topic-viewer-backend-api.service.ts'); require('services/alerts.service.ts'); diff --git a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts index 6d8fed4ad4c8..45a84ca1f627 100644 --- a/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts +++ b/core/templates/pages/topic-viewer-page/topic-viewer-page.module.ts @@ -49,11 +49,12 @@ import { PracticeTabComponent } from 'pages/topic-viewer-page/practice-tab/practice-tab.component'; import { StoriesListComponent } from 'pages/topic-viewer-page/stories-list/topic-viewer-stories-list.component'; +import { SubtopicsListComponent } from + 'pages/topic-viewer-page/subtopics-list/subtopics-list.component'; import { TopicViewerNavbarBreadcrumbComponent } from // eslint-disable-next-line max-len 'pages/topic-viewer-page/navbar-breadcrumb/topic-viewer-navbar-breadcrumb.component'; - @NgModule({ imports: [ BrowserModule, @@ -62,11 +63,13 @@ import { TopicViewerNavbarBreadcrumbComponent } from ], declarations: [ OppiaAngularRootComponent, PracticeTabComponent, - TopicViewerNavbarBreadcrumbComponent, StoriesListComponent + TopicViewerNavbarBreadcrumbComponent, StoriesListComponent, + SubtopicsListComponent ], entryComponents: [ OppiaAngularRootComponent, PracticeTabComponent, - TopicViewerNavbarBreadcrumbComponent, StoriesListComponent + TopicViewerNavbarBreadcrumbComponent, StoriesListComponent, + SubtopicsListComponent ], providers: [ AppConstants, diff --git a/scripts/check_frontend_coverage.py b/scripts/check_frontend_coverage.py index 9da8eb3e42ee..15e33730cc73 100644 --- a/scripts/check_frontend_coverage.py +++ b/scripts/check_frontend_coverage.py @@ -433,7 +433,7 @@ 'subtopic-viewer-navbar-breadcrumb.directive.ts', 'SubtopicObjectFactory.ts', 'SubtopicPageObjectFactory.ts', - 'subtopics-list.directive.ts', + 'subtopics-list.component.ts', 'suggestion-improvement-task.directive.ts', 'suggestion-modal-for-exploration-editor.service.ts', 'suggestion-modal-for-exploration-player.service.ts', From cc7c69037dd9a882814ab160cbf790a90dab3486 Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Mon, 6 Jul 2020 04:10:20 +0530 Subject: [PATCH 09/45] Fixed frontend coverage --- scripts/check_frontend_coverage.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/check_frontend_coverage.py b/scripts/check_frontend_coverage.py index 15e33730cc73..8f213b37dce4 100644 --- a/scripts/check_frontend_coverage.py +++ b/scripts/check_frontend_coverage.py @@ -433,7 +433,6 @@ 'subtopic-viewer-navbar-breadcrumb.directive.ts', 'SubtopicObjectFactory.ts', 'SubtopicPageObjectFactory.ts', - 'subtopics-list.component.ts', 'suggestion-improvement-task.directive.ts', 'suggestion-modal-for-exploration-editor.service.ts', 'suggestion-modal-for-exploration-player.service.ts', From 5f0ac4c5aff1e33642b233a2755540667ae79d90 Mon Sep 17 00:00:00 2001 From: Madhav Sainanee Date: Mon, 6 Jul 2020 21:46:22 +0530 Subject: [PATCH 10/45] Fixed ngfor --- .../topic-viewer-page/practice-tab/practice-tab.component.html | 2 +- .../stories-list/topic-viewer-stories-list.component.html | 2 +- .../subtopics-list/subtopics-list.component.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.html b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.html index b180a7e37cb6..ebfab900dfe6 100644 --- a/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.html +++ b/core/templates/pages/topic-viewer-page/practice-tab/practice-tab.component.html @@ -8,7 +8,7 @@

- + {{ subtopic.getTitle() }}

-