Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix part of #19217: Develop footer component and add conversation skin to new lesson player #19875

Closed
wants to merge 93 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
0ff1690
Make routing changes for /lesson route
Vir-8 Jan 20, 2024
d6a3a3a
Make service changes to make explorations work under the '/lesson' route
Vir-8 Jan 20, 2024
80c8810
Replicate the exploration player under the '/lesson' route
Vir-8 Jan 20, 2024
24bf15f
Make lesson player header component
Vir-8 Jan 20, 2024
601a0d1
Make sidebar component and change layout accordingly
Vir-8 Jan 20, 2024
3c54a48
Make lesson player footer component
Vir-8 Jan 20, 2024
395961d
Make audio bar component
Vir-8 Jan 20, 2024
beaeea1
Make sidebar expandable and add shadow
Vir-8 Jan 20, 2024
9f2a5ff
Clean code and fix comments
Vir-8 Jan 20, 2024
7704aa2
Write tests for sidebar component
Vir-8 Jan 20, 2024
ad1e6dc
Gate the '/lesson' route behind the feature flag and make a README
Vir-8 Jan 20, 2024
1b8f9d9
Fix linting issues
Vir-8 Jan 20, 2024
b147b05
Fix linting issues
Vir-8 Jan 20, 2024
d5773fe
Merge remote-tracking branch 'upstream/develop' into lesson-player-re…
Vir-8 Jan 29, 2024
1b57ba4
Fix linting issues
Vir-8 Jan 29, 2024
b0cfbbe
Fix header test imports
Vir-8 Jan 29, 2024
e8e6ec0
Fix new lesson page guard test
Vir-8 Jan 29, 2024
df6abc3
Fix sidebar toggle testing
Vir-8 Jan 29, 2024
f3c6e8b
Fix sidebar and auth guard unit testing
Vir-8 Jan 30, 2024
e1b740f
Remove duplicate declarations
Vir-8 Jan 31, 2024
64bb424
Handle imports to access old player components in new player
Vir-8 Feb 1, 2024
960b00e
Fix header text colour
Vir-8 Feb 1, 2024
e75a0de
Add sidebar buttons with SVGs
Vir-8 Feb 1, 2024
3e5d29d
Add mobile menu button to layout
Vir-8 Feb 1, 2024
66f7542
Add player menu for mobile layouts
Vir-8 Feb 2, 2024
5c6701c
Fix responsiveness and add mobile menu options
Vir-8 Feb 2, 2024
28cc8b5
Fix layout responsiveness
Vir-8 Feb 2, 2024
a24818a
Stylize sidebar expansion toggle
Vir-8 Feb 3, 2024
138d7cd
Add lesson description to sidebar
Vir-8 Feb 3, 2024
e17e08a
Display lesson ratings in sidebar
Vir-8 Feb 3, 2024
2130bc5
Fix fetching ratings from backend
Vir-8 Feb 3, 2024
f654eaf
Improve mobile menu frontend
Vir-8 Feb 6, 2024
7b7288a
Merge remote-tracking branch 'upstream/develop' into new-player-sideb…
Vir-8 Feb 10, 2024
c0e2c64
Fix typos
Vir-8 Feb 10, 2024
24875c1
Write tests for mobile menu service
Vir-8 Feb 10, 2024
ba122cf
Fix linter errors and reuse current rating backend api service
Vir-8 Feb 10, 2024
7394720
Modify rating backend api service to access overall_ratings from the …
Vir-8 Feb 10, 2024
201a2e4
Fix linting errors
Vir-8 Feb 10, 2024
4b5bf95
Duplicate conversation-skin component to reuse it
Vir-8 Feb 11, 2024
15dc20b
Fix layout to integrate conversation
Vir-8 Feb 11, 2024
a8a4e5f
Merge remote-tracking branch 'upstream/develop' into new-player-sideb…
Vir-8 Feb 16, 2024
67c250e
Merge remote-tracking branch 'upstream/develop' into new-player-sideb…
Vir-8 Feb 17, 2024
586f18e
Fix typescript issues
Vir-8 Feb 17, 2024
1ca9e26
Make a new service for fetching ratings to not interfere with existin…
Vir-8 Feb 19, 2024
83d4e47
Update tests to account for handling redirects manually
Vir-8 Feb 19, 2024
5ec76f8
Fix sidebar to be in the context of an exploration
Vir-8 Feb 19, 2024
45dc088
Fix player sidebar unit tests
Vir-8 Feb 19, 2024
15d5443
Improve handling rating star SVGs in sidebar
Vir-8 Feb 20, 2024
c875543
Fix layout for smaller landscape screens
Vir-8 Feb 20, 2024
f00f958
Fix sidebar unit tests
Vir-8 Feb 21, 2024
c6341cb
Fix sidebar unit tests
Vir-8 Feb 22, 2024
944151d
Merge remote-tracking branch 'upstream/develop' into new-player-sideb…
Vir-8 Feb 22, 2024
5f7e925
Fix sidebar unit tests
Vir-8 Feb 22, 2024
cddf903
Fix sidebar and header unit test coverage issues
Vir-8 Feb 22, 2024
4798909
Switch from custom SVG icons to fontawesome icons
Vir-8 Feb 27, 2024
9c3fbbb
Remove ratings from sidebar component
Vir-8 Feb 27, 2024
e1ef437
Merge remote-tracking branch 'upstream/develop' into new-player-sideb…
Vir-8 Feb 27, 2024
4354c07
Fix linting issues
Vir-8 Feb 27, 2024
565f03f
Merge branch 'new-player-sidebar-and-responsiveness' into new-lesson-…
Vir-8 Feb 27, 2024
dea55c3
Improve phrasing for clarity and internationalize strings
Vir-8 Feb 28, 2024
dc18b1d
Merge remote-tracking branch 'upstream/develop' into new-player-sideb…
Vir-8 Feb 28, 2024
6e4c737
Merge branch 'new-player-sidebar-and-responsiveness' into new-lesson-…
Vir-8 Feb 28, 2024
c199976
Merge remote-tracking branch 'upstream/develop' into new-lesson-playe…
Vir-8 Mar 1, 2024
e134664
Merge remote-tracking branch 'upstream/develop' into new-lesson-playe…
Vir-8 Mar 1, 2024
891751d
Merge branch 'new-player-sidebar-and-responsiveness' into new-lesson-…
Vir-8 Mar 1, 2024
a91a42d
Add the 'previous' button to the footer
Vir-8 Mar 1, 2024
770d7c8
Add the 'continue' button to the footer
Vir-8 Mar 1, 2024
3dbf7a3
Fix lesson player desktop layout
Vir-8 Mar 2, 2024
946507c
Add placeholder progress bar and save button to footer
Vir-8 Mar 2, 2024
cff73ea
Duplicate progress nav component for navigation changes
Vir-8 Mar 2, 2024
b18d274
Make previous and continue buttons completely functional
Vir-8 Mar 2, 2024
c8102cd
Add background image to the player
Vir-8 Mar 2, 2024
56270cd
Make progress bar completely functional
Vir-8 Mar 3, 2024
8a74d3b
Add the current progress continuation modal to new lesson player
Vir-8 Mar 3, 2024
47ffb7c
Display save button only when conditions are met
Vir-8 Mar 3, 2024
381df5d
Create save progress modal and add save functionality
Vir-8 Mar 3, 2024
c7b7104
Fix styles
Vir-8 Mar 3, 2024
bcef105
Handle edge case for 'Continue' interaction
Vir-8 Mar 3, 2024
0e9257e
Display submit button on footer when appropriate
Vir-8 Mar 3, 2024
81f664a
Implement unit testing for the new lesson player footer
Vir-8 Mar 3, 2024
ed1babf
Fix typos
Vir-8 Mar 3, 2024
8355918
Merge remote-tracking branch 'upstream/develop' into new-lesson-playe…
Vir-8 Mar 3, 2024
ef3ea6d
Internationalize user-facing text content
Vir-8 Mar 3, 2024
ba1d67e
Fix linting issues
Vir-8 Mar 3, 2024
729b8c4
Fix typescript issues
Vir-8 Mar 3, 2024
8c0ddbb
Fix lesson player footer unit tests
Vir-8 Mar 4, 2024
00e5157
Merge remote-tracking branch 'upstream/develop' into new-lesson-playe…
Vir-8 Mar 4, 2024
ee626e0
Make footer component responsive
Vir-8 Mar 4, 2024
cbd6140
Add lesson player footer frontend tests
Vir-8 Mar 7, 2024
4d1efad
Move background image to display only in conversation skin
Vir-8 Mar 7, 2024
8b567bb
Merge remote-tracking branch 'upstream/develop' into new-lesson-playe…
Vir-8 Mar 7, 2024
a59a010
Remove redundant animation
Vir-8 Mar 7, 2024
17d51b8
Remove unused imports
Vir-8 Mar 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -1145,6 +1145,7 @@
"I18N_PLAYER_RETURN_TO_LIBRARY": "Return to Library",
"I18N_PLAYER_RETURN_TO_PARENT": "Return to Main Lesson",
"I18N_PLAYER_RETURN_TO_STORY": "Return to Story",
"I18N_PLAYER_SAVE_BUTTON": "Save",
"I18N_PLAYER_SHARE_EXPLORATION": "Enjoyed this exploration? Share it with your friends!",
"I18N_PLAYER_SHARE_THIS_COLLECTION": "Share this collection",
"I18N_PLAYER_SHARE_THIS_EXPLORATION": "Share this exploration",
Expand Down Expand Up @@ -1243,6 +1244,9 @@
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_2": "Already have an account? ",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_3": "Use the link below to save progress for 72 hours.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_5": "Write or copy the link below",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_NEW_1": "Your progress will be saved up to the last checkpoint you've reached.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_NEW_2": "Create an account and have your progress saved automatically:",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_NEW_3": "Or copy the link below to save progress for 72 hours:",
"I18N_SAVE_PROGRESS": "Log in or sign up to save your progress and play through the next lesson.",
"I18N_SAVE_PROGRESS_BUTTON_TEXT": "Copy",
"I18N_SAVE_PROGRESS_COPY_TOOLTIP": "Copied!",
Expand Down
6 changes: 5 additions & 1 deletion assets/i18n/qqq.json
Original file line number Diff line number Diff line change
Expand Up @@ -1145,6 +1145,7 @@
"I18N_PLAYER_RETURN_TO_LIBRARY": "Text displayed when the user has finished an exploration outside of a collection. - Text shown inside a button after the user finishes playing an exploration outside a collection. When the user clicks the button, the library page is loaded.",
"I18N_PLAYER_RETURN_TO_PARENT": "Text displayed when the user has finished a refresher exploration. - Text shown inside a button after the user finishes playing a refresher exploration. When the user clicks the button, the parent exploration is loaded.",
"I18N_PLAYER_RETURN_TO_STORY": "Text displayed when the user has finished an exploration of a story. - Text shown inside a button after the user finishes playing an exploration of a story. When the user clicks the button, the story viewer page is loaded.",
"I18N_PLAYER_SAVE_BUTTON": "Text displayed when the user is playing an exploration while logged out. - Text shown in a button. When the user clicks the button, the 'Save Progress' modal is opened.",
"I18N_PLAYER_SHARE_EXPLORATION": "Text displayed when the user is playing an exploration. - When the user has completed the exploration, this text is shown above the social media buttons used to share an exploration.",
"I18N_PLAYER_SHARE_THIS_COLLECTION": "Text displayed when the user is viewing a collection. - this text is shown in the lower right hand side of the screen next to social media buttons used to share the collection.",
"I18N_PLAYER_SHARE_THIS_EXPLORATION": "Text displayed when the user is playing an exploration. - At all times during an exploration, this text is shown in the lower right hand side of the screen next to social media buttons used to share an exploration.",
Expand Down Expand Up @@ -1242,7 +1243,10 @@
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_1": "Text displayed on the save progress menu of exploration lesson info modal telling users that their progress will be automatically saved if they sign in.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_2": "Text displayed on the save progress menu of exploration lesson info modal asking the users whether they already have an account.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_3": "Text displayed on the save progress menu of exploration lesson info modal telling the users to use the generated progress URL to save their exploration progress.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_5": "Text displayed on the save progress menu of exploration lesson info modal prompting the users to write or copy the genrated URL.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_5": "Text displayed on the save progress menu of exploration lesson info modal prompting the users to write or copy the generated URL.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_NEW_1": "Text displayed on the new save progress menu of new lesson player telling users that their progress will be saved upto the last checkpoint.",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

upto --> up to

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_NEW_2": "Text displayed on the new save progress menu of new lesson player telling users that their progress will be automatically saved if they sign in.",
"I18N_SAVE_EXPLORATION_PROGRESS_TEXT_NEW_3": "Text displayed on the new save progress menu of new lesson player prompting the users to write or copy the generated URL.",
"I18N_SAVE_PROGRESS": "Text displayed at the end of a chapter to prompt the user to login or signup to save chapter progress.",
"I18N_SAVE_PROGRESS_BUTTON_TEXT": "Text displayed on the button in the Save progress card for copying the unique URL of the progress.",
"I18N_SAVE_PROGRESS_COPY_TOOLTIP": "Text that will be display in a tooltip for a second when the user clicks the copy button.",
Expand Down
Binary file added assets/images/background/lessonPlayer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<oppia-player-sidebar></oppia-player-sidebar>
<div class="oppia-new-player-main-content">
<oppia-new-audio-bar></oppia-new-audio-bar>
<oppia-new-lesson-player-footer></oppia-new-lesson-player-footer>
<oppia-new-conversation-skin></oppia-new-conversation-skin>
</div>
</div>
<attribution-guide></attribution-guide>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ import { PlayerHeaderComponent } from './new-lesson-player-components/player-hea
import { PlayerSidebarComponent } from './new-lesson-player-components/player-sidebar.component';
import { PlayerFooterComponent } from './new-lesson-player-components/player-footer.component';
import { NewAudioBarComponent } from './new-lesson-player-components/new-audio-bar.component';
import { NewConversationSkinComponent } from './new-lesson-player-components/new-conversation-skin.component';
import { NewProgressNavComponent } from './new-lesson-player-components/new-progress-nav.component';
import { NewComponentOverviewComponent } from './new-lesson-player-components/new-copy-url.component';

@NgModule({
imports: [
Expand All @@ -63,6 +66,9 @@ import { NewAudioBarComponent } from './new-lesson-player-components/new-audio-b
PlayerSidebarComponent,
PlayerFooterComponent,
NewAudioBarComponent,
NewConversationSkinComponent,
NewProgressNavComponent,
NewComponentOverviewComponent,
],
entryComponents: [
NewLessonPlayerPageComponent,
Expand All @@ -71,6 +77,9 @@ import { NewAudioBarComponent } from './new-lesson-player-components/new-audio-b
PlayerSidebarComponent,
PlayerFooterComponent,
NewAudioBarComponent,
NewConversationSkinComponent,
NewProgressNavComponent,
NewComponentOverviewComponent,
],
providers: [
HintAndSolutionModalService,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
.oppia-new-audio-bar {
background-color: #fff;
height: 40px;
position: absolute;
position: relative;
width: 100%;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
/*
NOTE to developers: We generate RTL CSS from this file in the webpack
compilation, here are sme additional rules that can be added to the CSS files:
https://rtlcss.com/learn/usage-guide/control-directives .
*/

/* These styles must be embedded within the directive script tags, since
otherwise they will interfere with the iframed conversation skin directive. */

/* All classes below should start with .conversation-skin */
.conversation-skin-correctness-footer-container {
bottom: 40px;
left: 0;
padding: 0;
pointer-events: none;
position: fixed;
width: 100%;
z-index: 16;
}

oppia-conversation-skin .supplemental-card-parent-container {
min-width: 50%;
}

.conversation-skin-next-lesson-wrapper {
align-items: center;
background-color: white;
bottom: 0;
display: flex;
margin: 0 0 -68px 0;
padding: 10px;
position: absolute;
right: 0;
text-align: right;
vertical-align: middle;
}

.conversation-skin-next-lesson-text {
color: #0d48a1;
display: block;
font-size: 14px;
font-weight: 800;
height: 14px;
}

.conversation-skin-cards-container {
align-items: flex-start;
display: -webkit-flex;
display: flex;
height: calc(100vh - 204px);
justify-content: center;
margin: 0 auto;
max-width: 1650px;
overflow-y: auto;
padding: 56px 14px 0;
width: 100%;
}

.conversation-skin-cards-container::before {
background-image: url('/assets/images/background/lessonPlayer.png');
background-repeat: repeat;
bottom: 0;
content: "";
left: 0;
opacity: 0.2;
pointer-events: none;
position: absolute;
right: 0;
top: 0;
}

.conversation-skin-help-card-content {
padding: 12px;
}

.conversation-skin-tutor-card-container {
flex-shrink: 10000;
margin-bottom: 84px;
max-width: 650px;
/* NOTE TO DEVELOPERS: If min-width is changed, max-width in media query
below should be changed to match. */
min-width: 360px;
position: relative;
width: 42%;
z-index: 3;
}

/* Some mobile devices have CSS width below 360px, use a responsive min-width
when under 360px to prevent pushing things offscreen. */
@media(max-width: 360px) {
.conversation-skin-tutor-card-container {
min-width: 100vw;
}
}

.conversation-skin-supplemental-card-container {
background-color: white;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.24), 0 1px 3px rgba(0, 0, 0, 0.12);
flex-shrink: 1;
margin-bottom: 200px;
margin-left: 12px;
margin-top: 30px;
max-width: 650px;
position: relative;
width: 42%;
z-index: 2;
}

.conversation-skin-supplemental-nav-submit-button,
.conversation-skin-supplemental-nav-submit-button.mat-button {
margin-right: 10px;
position: absolute;
right: 8px;
top: -10px;
}

.conversation-skin-supplemental-nav-submit-button.oppia-learner-confirm-button {
left: auto;
right: 8px;
}

.conversation-skin-supplemental-nav {
background: white;
height: 32px;
position: relative;
}

.oppia-conversation-skin-animate-cards-container {
margin: 0 auto;
}

.oppia-conversation-skin-next-lesson-text-container {
cursor: default;
margin-left: 10px;
margin-right: 10px;
}

oppia-conversation-skin .oppia-button-raised.md-raised {
align-items: center;
background-color: #0d48a1;
display: flex;
height: 32px;
justify-content: center;
width: 32px;
}

oppia-conversation-skin .oppia-button-icon {
color: #fff;
}

.oppia-exploration-checkpoints-message .toast-container .checkpoints-toast-info {
cursor: default;
}

@media screen and (max-width: 959px) {
.conversation-skin-cards-container {
display: block;
padding: 66px 0;
position: relative;
width: 100%;
}

.conversation-skin-tutor-card-container {
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.14), 0 2px 4px rgba(0, 0, 0, 0.23);
left: 0;
margin: 0 auto;
right: 0;
top: 40px;
width: 100%;
z-index: 15;
}

.conversation-skin-tutor-card-alone {
position: relative;
top: 0;
}

.supplemental-card-parent-container {
position: unset;
}

.conversation-skin-supplemental-card-container {
left: 50%;
margin: 60px auto 0 auto;
min-width: 360px;
position: absolute;
transform: translateX(-50%);
width: 100%;
}

.conversation-skin-oppia-avatar.show-tutor-card {
border-radius: 50%;
box-shadow: 0 3px 3px grey, 0 5px 3px grey;
display: block;
height: 40px;
left: 100%;
position: absolute;
transform: translate(-100%, -100%);
width: 40px;
z-index: 16;
}

.conversation-skin-oppia-avatar.show-tutor-card:hover {
opacity: 0.8;
}
}

@media screen and (max-width: 574px) {
.conversation-skin-cards-container {
height: calc(100vh - 192px);
}
}
Loading
Loading