diff --git a/.eslintrc.js b/.eslintrc.js index deda33df6..d5a05ca9e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -292,6 +292,7 @@ module.exports = { '@angular-eslint/template/no-positive-tabindex': 'error', '@angular-eslint/template/accessibility-table-scope': 'error', '@angular-eslint/template/accessibility-valid-aria': 'error', + '@angular-eslint/template/no-duplicate-attributes': 'error', }, }, { diff --git a/src/addons/badges/lang.json b/src/addons/badges/lang.json index 6c8a2b856..26c4f835c 100644 --- a/src/addons/badges/lang.json +++ b/src/addons/badges/lang.json @@ -20,10 +20,10 @@ "issuerurl": "Issuer URL", "language": "Language", "noalignment": "This badge does not have any external skills or standards specified.", - "nobadges": "There are no badges available.", + "nobadges": "There are currently no badges available for users to earn.", "norelated": "This badge does not have any related badges.", "recipientdetails": "Recipient details", "relatedbages": "Related badges", "version": "Version", "warnexpired": "(This badge has expired!)" -} \ No newline at end of file +} diff --git a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html index 86f4ba3b1..a567deefd 100644 --- a/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html +++ b/src/addons/block/myoverview/components/myoverview/addon-block-myoverview.html @@ -5,7 +5,7 @@
- diff --git a/src/addons/block/timeline/components/events/addon-block-timeline-events.html b/src/addons/block/timeline/components/events/addon-block-timeline-events.html index 4bb4161f4..f1764e5f8 100644 --- a/src/addons/block/timeline/components/events/addon-block-timeline-events.html +++ b/src/addons/block/timeline/components/events/addon-block-timeline-events.html @@ -53,7 +53,7 @@ - + {{event.action.name}} {{event.action.itemcount}} diff --git a/src/addons/calendar/pages/edit-event/edit-event.html b/src/addons/calendar/pages/edit-event/edit-event.html index b02c1cf05..57b4eb6f4 100644 --- a/src/addons/calendar/pages/edit-event/edit-event.html +++ b/src/addons/calendar/pages/edit-event/edit-event.html @@ -118,7 +118,7 @@

{{ 'addon.calendar.reminders' | translate }}

- diff --git a/src/addons/calendar/pages/event/event.html b/src/addons/calendar/pages/event/event.html index 39364fbc8..0b21ac1f4 100644 --- a/src/addons/calendar/pages/event/event.html +++ b/src/addons/calendar/pages/event/event.html @@ -120,7 +120,7 @@ - + {{ 'addon.calendar.gotoactivity' | translate }} @@ -148,7 +148,7 @@ - + {{ 'addon.calendar.setnewreminder' | translate }} diff --git a/src/addons/messages/pages/discussion/discussion.html b/src/addons/messages/pages/discussion/discussion.html index cc9770632..b3de76af9 100644 --- a/src/addons/messages/pages/discussion/discussion.html +++ b/src/addons/messages/pages/discussion/discussion.html @@ -28,18 +28,19 @@ - + + - + @@ -157,7 +158,7 @@ {{ 'addon.messages.acceptandaddcontact' | translate }} - + {{ 'addon.messages.decline' | translate }}
diff --git a/src/addons/messages/pages/group-conversations/group-conversations.html b/src/addons/messages/pages/group-conversations/group-conversations.html index e6165166a..71f57c29d 100644 --- a/src/addons/messages/pages/group-conversations/group-conversations.html +++ b/src/addons/messages/pages/group-conversations/group-conversations.html @@ -146,9 +146,11 @@ + (click)="gotoConversation(conversation.id, conversation.userid)" + [attr.aria-current]="((conversation.id && + conversation.id == selectedConversationId) || (conversation.userid && conversation.userid == selectedUserId)) ? 'page': 'false'" + id="addon-message-conversation-{{ conversation.id ? conversation.id : 'user-' + conversation.userid }}" + [attr.aria-label]="conversation.name"> + [courseId]="courseId" [hasDataToSync]="hasOffline" (completionChanged)="onCompletionChange()"> @@ -127,6 +127,5 @@ - + diff --git a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html index c2e5b2ad1..d0efe3655 100644 --- a/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html +++ b/src/addons/mod/assign/components/submission/addon-mod-assign-submission.html @@ -103,27 +103,26 @@
- + {{ 'addon.mod_assign.editsubmission' | translate }} - + {{ 'addon.mod_assign.addsubmission' | translate }} - + {{ 'addon.mod_assign.addnewattemptfromprevious' | translate }} - + {{ 'addon.mod_assign.addnewattempt' | translate }} - {{ 'addon.mod_assign.editsubmission' | translate }} diff --git a/src/addons/mod/assign/feedback/comments/component/addon-mod-assign-feedback-comments.html b/src/addons/mod/assign/feedback/comments/component/addon-mod-assign-feedback-comments.html index 4a125adc0..d622f39aa 100644 --- a/src/addons/mod/assign/feedback/comments/component/addon-mod-assign-feedback-comments.html +++ b/src/addons/mod/assign/feedback/comments/component/addon-mod-assign-feedback-comments.html @@ -10,7 +10,7 @@
- +
diff --git a/src/addons/mod/bigbluebuttonbn/components/index/index.html b/src/addons/mod/bigbluebuttonbn/components/index/index.html index fc7415313..f3047f77a 100644 --- a/src/addons/mod/bigbluebuttonbn/components/index/index.html +++ b/src/addons/mod/bigbluebuttonbn/components/index/index.html @@ -10,7 +10,7 @@ + [courseId]="courseId" (completionChanged)="onCompletionChange()"> @@ -114,7 +114,7 @@
- +
diff --git a/src/addons/mod/bigbluebuttonbn/lang.json b/src/addons/mod/bigbluebuttonbn/lang.json index dba17cf44..959a678e0 100644 --- a/src/addons/mod/bigbluebuttonbn/lang.json +++ b/src/addons/mod/bigbluebuttonbn/lang.json @@ -1,15 +1,15 @@ { - "end_session_confirm": "Are you sure you want to end the virtual classroom session?", + "end_session_confirm": "Are you sure you want to end the session?", "end_session_confirm_title": "Really end session?", - "mod_form_field_closingtime": "Join closed", - "mod_form_field_openingtime": "Join open", - "userlimitreached": "The number of users allowed in a meeting has been reached.", + "mod_form_field_closingtime": "Close", + "mod_form_field_openingtime": "Open", + "userlimitreached": "The number of users allowed in a session has been reached.", "view_conference_action_end": "End session", "view_conference_action_join": "Join session", - "view_error_unable_join_student": "Unable to connect to the BigBlueButton server. Please contact your Teacher or the Administrator.", - "view_groups_selection_warning": "There is a conference room for each group and you have access to more than one. Be sure to select the correct one.", - "view_message_conference_in_progress": "This conference is in progress.", - "view_message_conference_room_ready": "This conference room is ready. You can join the session now.", + "view_error_unable_join_student": "Unable to connect to the BigBlueButton server.", + "view_groups_selection_warning": "There is a room for each group and you have access to more than one. Be sure to select the correct one.", + "view_message_conference_in_progress": "The session is in progress.", + "view_message_conference_room_ready": "This room is ready. You can join the session now.", "view_message_moderator": "moderator", "view_message_moderators": "moderators", "view_message_session_started_at": "This session started at", diff --git a/src/addons/mod/book/components/index/addon-mod-book-index.html b/src/addons/mod/book/components/index/addon-mod-book-index.html index 3a1b9b960..8018382c7 100644 --- a/src/addons/mod/book/components/index/addon-mod-book-index.html +++ b/src/addons/mod/book/components/index/addon-mod-book-index.html @@ -10,7 +10,7 @@ + [courseId]="courseId" (completionChanged)="onCompletionChange()"> @@ -41,7 +41,7 @@
- + diff --git a/src/addons/mod/chat/components/index/addon-mod-chat-index.html b/src/addons/mod/chat/components/index/addon-mod-chat-index.html index c55d7e8c7..e9c2590d3 100644 --- a/src/addons/mod/chat/components/index/addon-mod-chat-index.html +++ b/src/addons/mod/chat/components/index/addon-mod-chat-index.html @@ -10,7 +10,7 @@ + [courseId]="courseId" (completionChanged)="onCompletionChange()"> @@ -26,12 +26,12 @@
- + {{ 'addon.mod_chat.enterchat' | translate }}
- +
diff --git a/src/addons/mod/choice/components/index/addon-mod-choice-index.html b/src/addons/mod/choice/components/index/addon-mod-choice-index.html index dbbb13b50..2dcdcf85c 100644 --- a/src/addons/mod/choice/components/index/addon-mod-choice-index.html +++ b/src/addons/mod/choice/components/index/addon-mod-choice-index.html @@ -10,7 +10,7 @@
+ [courseId]="courseId" [hasDataToSync]="hasOffline" (completionChanged)="onCompletionChange()"> @@ -146,7 +146,7 @@
- + diff --git a/src/addons/mod/data/components/action/addon-mod-data-action.html b/src/addons/mod/data/components/action/addon-mod-data-action.html index ee307cfd9..09676dcea 100644 --- a/src/addons/mod/data/components/action/addon-mod-data-action.html +++ b/src/addons/mod/data/components/action/addon-mod-data-action.html @@ -1,24 +1,27 @@ - + - + - + - + - + - diff --git a/src/addons/mod/data/components/index/addon-mod-data-index.html b/src/addons/mod/data/components/index/addon-mod-data-index.html index 3289a134c..12860af6f 100644 --- a/src/addons/mod/data/components/index/addon-mod-data-index.html +++ b/src/addons/mod/data/components/index/addon-mod-data-index.html @@ -22,7 +22,7 @@ + [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings" (completionChanged)="onCompletionChange()"> @@ -72,8 +72,8 @@ - - + + {{ 'addon.mod_data.resetsettings' | translate}} @@ -120,8 +120,7 @@ - + diff --git a/src/addons/mod/data/pages/entry/entry.html b/src/addons/mod/data/pages/entry/entry.html index 3b4c9b000..a4a1fccdb 100644 --- a/src/addons/mod/data/pages/entry/entry.html +++ b/src/addons/mod/data/pages/entry/entry.html @@ -64,7 +64,7 @@
- @@ -72,7 +72,7 @@ - diff --git a/src/addons/mod/feedback/components/index/addon-mod-feedback-index.html b/src/addons/mod/feedback/components/index/addon-mod-feedback-index.html index f74b6c412..38fab03e8 100644 --- a/src/addons/mod/feedback/components/index/addon-mod-feedback-index.html +++ b/src/addons/mod/feedback/components/index/addon-mod-feedback-index.html @@ -10,7 +10,7 @@ + [courseId]="courseId" [hasDataToSync]="hasOffline" (completionChanged)="onCompletionChange()"> @@ -52,7 +52,7 @@
- + diff --git a/src/addons/mod/folder/components/index/addon-mod-folder-index.html b/src/addons/mod/folder/components/index/addon-mod-folder-index.html index e4c02d9d6..9b5ac6cad 100644 --- a/src/addons/mod/folder/components/index/addon-mod-folder-index.html +++ b/src/addons/mod/folder/components/index/addon-mod-folder-index.html @@ -32,6 +32,6 @@ - diff --git a/src/addons/mod/forum/components/index/index.html b/src/addons/mod/forum/components/index/index.html index e49167d13..1dbc553e9 100644 --- a/src/addons/mod/forum/components/index/index.html +++ b/src/addons/mod/forum/components/index/index.html @@ -14,7 +14,8 @@ + [componentId]="componentId" [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings" + (completionChanged)="onCompletionChange()"> {{descriptionNote}} @@ -56,7 +57,7 @@ [courseId]="courseId">

- @@ -114,8 +115,7 @@
- + diff --git a/src/addons/mod/forum/components/post/post.html b/src/addons/mod/forum/components/post/post.html index a5e99970d..9812ff26f 100644 --- a/src/addons/mod/forum/components/post/post.html +++ b/src/addons/mod/forum/components/post/post.html @@ -19,8 +19,8 @@ [attr.aria-label]="'addon.mod_forum.unread' | translate"> - + @@ -47,8 +47,8 @@ [attr.aria-label]="'addon.mod_forum.unread' | translate"> - + diff --git a/src/addons/mod/glossary/components/index/addon-mod-glossary-index.html b/src/addons/mod/glossary/components/index/addon-mod-glossary-index.html index d391f6172..b32270973 100644 --- a/src/addons/mod/glossary/components/index/addon-mod-glossary-index.html +++ b/src/addons/mod/glossary/components/index/addon-mod-glossary-index.html @@ -27,7 +27,8 @@ + [componentId]="componentId" [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings" + (completionChanged)="onCompletionChange()"> @@ -72,8 +73,7 @@ - + diff --git a/src/addons/mod/h5pactivity/components/index/addon-mod-h5pactivity-index.html b/src/addons/mod/h5pactivity/components/index/addon-mod-h5pactivity-index.html index 0ef0f7b2d..f12d47baf 100644 --- a/src/addons/mod/h5pactivity/components/index/addon-mod-h5pactivity-index.html +++ b/src/addons/mod/h5pactivity/components/index/addon-mod-h5pactivity-index.html @@ -20,7 +20,7 @@ + [courseId]="courseId" [hasDataToSync]="hasOffline" (completionChanged)="onCompletionChange()"> @@ -68,6 +68,5 @@ - + diff --git a/src/addons/mod/imscp/components/index/addon-mod-imscp-index.html b/src/addons/mod/imscp/components/index/addon-mod-imscp-index.html index 9d025fe8d..c8916bc9b 100644 --- a/src/addons/mod/imscp/components/index/addon-mod-imscp-index.html +++ b/src/addons/mod/imscp/components/index/addon-mod-imscp-index.html @@ -10,7 +10,7 @@ + [courseId]="courseId" (completionChanged)="onCompletionChange()"> @@ -38,7 +38,7 @@ - + diff --git a/src/addons/mod/lesson/components/index/addon-mod-lesson-index.html b/src/addons/mod/lesson/components/index/addon-mod-lesson-index.html index c3ca38e97..ea987e830 100644 --- a/src/addons/mod/lesson/components/index/addon-mod-lesson-index.html +++ b/src/addons/mod/lesson/components/index/addon-mod-lesson-index.html @@ -14,7 +14,7 @@ + [courseId]="courseId" [hasDataToSync]="hasOffline" (completionChanged)="onCompletionChange()"> @@ -214,7 +214,7 @@ - + diff --git a/src/addons/mod/lti/components/index/addon-mod-lti-index.html b/src/addons/mod/lti/components/index/addon-mod-lti-index.html index 1ab132e1e..1a9fb4164 100644 --- a/src/addons/mod/lti/components/index/addon-mod-lti-index.html +++ b/src/addons/mod/lti/components/index/addon-mod-lti-index.html @@ -10,7 +10,7 @@ + [componentId]="componentId" [courseId]="courseId" (completionChanged)="onCompletionChange()">
@@ -21,7 +21,7 @@
- + diff --git a/src/addons/mod/page/components/index/addon-mod-page-index.html b/src/addons/mod/page/components/index/addon-mod-page-index.html index a080af3e6..0e92db006 100644 --- a/src/addons/mod/page/components/index/addon-mod-page-index.html +++ b/src/addons/mod/page/components/index/addon-mod-page-index.html @@ -10,7 +10,7 @@ + [componentId]="componentId" [courseId]="courseId" (completionChanged)="onCompletionChange()"> @@ -32,6 +32,5 @@ - + diff --git a/src/addons/mod/quiz/components/index/addon-mod-quiz-index.html b/src/addons/mod/quiz/components/index/addon-mod-quiz-index.html index 897861bcd..a8b1b7988 100644 --- a/src/addons/mod/quiz/components/index/addon-mod-quiz-index.html +++ b/src/addons/mod/quiz/components/index/addon-mod-quiz-index.html @@ -10,7 +10,7 @@ + [courseId]="courseId" [hasDataToSync]="buttonText && hasOffline" (completionChanged)="onCompletionChange()"> @@ -213,7 +213,7 @@
- + diff --git a/src/addons/mod/quiz/pages/review/review.html b/src/addons/mod/quiz/pages/review/review.html index a7aa60562..5399c89a1 100644 --- a/src/addons/mod/quiz/pages/review/review.html +++ b/src/addons/mod/quiz/pages/review/review.html @@ -116,7 +116,7 @@
- @@ -129,7 +129,7 @@ - diff --git a/src/addons/mod/resource/components/index/addon-mod-resource-index.html b/src/addons/mod/resource/components/index/addon-mod-resource-index.html index bcac791b8..9ce2df420 100644 --- a/src/addons/mod/resource/components/index/addon-mod-resource-index.html +++ b/src/addons/mod/resource/components/index/addon-mod-resource-index.html @@ -10,7 +10,7 @@ + [component]="component" [componentId]="componentId" (completionChanged)="onCompletionChange()"> @@ -98,7 +98,7 @@ {{ 'core.openwith' | translate }}
- + diff --git a/src/addons/mod/scorm/components/index/addon-mod-scorm-index.html b/src/addons/mod/scorm/components/index/addon-mod-scorm-index.html index fb33799bb..5d3f06b43 100644 --- a/src/addons/mod/scorm/components/index/addon-mod-scorm-index.html +++ b/src/addons/mod/scorm/components/index/addon-mod-scorm-index.html @@ -10,7 +10,7 @@ + [courseId]="courseId" [hasDataToSync]="!errorMessage && hasOffline" (completionChanged)="onCompletionChange()"> @@ -221,7 +221,7 @@
- + diff --git a/src/addons/mod/survey/components/index/addon-mod-survey-index.html b/src/addons/mod/survey/components/index/addon-mod-survey-index.html index 8c20281fe..b4370e1f6 100644 --- a/src/addons/mod/survey/components/index/addon-mod-survey-index.html +++ b/src/addons/mod/survey/components/index/addon-mod-survey-index.html @@ -10,7 +10,8 @@ + [component]="component" [componentId]="componentId" [courseId]="courseId" [hasDataToSync]="hasOffline" + (completionChanged)="onCompletionChange()"> @@ -130,7 +131,7 @@
- + diff --git a/src/addons/mod/url/components/index/addon-mod-url-index.html b/src/addons/mod/url/components/index/addon-mod-url-index.html index 0b115989f..085321c3f 100644 --- a/src/addons/mod/url/components/index/addon-mod-url-index.html +++ b/src/addons/mod/url/components/index/addon-mod-url-index.html @@ -10,7 +10,7 @@ + [componentId]="componentId" [courseId]="courseId" (completionChanged)="onCompletionChange()">
@@ -44,7 +44,7 @@ {{ 'addon.mod_url.accessurl' | translate }}
- + diff --git a/src/addons/mod/wiki/components/index/addon-mod-wiki-index.html b/src/addons/mod/wiki/components/index/addon-mod-wiki-index.html index 2b9a9d2e0..cfe144af2 100644 --- a/src/addons/mod/wiki/components/index/addon-mod-wiki-index.html +++ b/src/addons/mod/wiki/components/index/addon-mod-wiki-index.html @@ -31,7 +31,7 @@ + [courseId]="courseId" (completionChanged)="onCompletionChange()">
@@ -71,8 +71,7 @@
- + diff --git a/src/addons/mod/workshop/assessment/accumulative/component/addon-mod-workshop-assessment-strategy-accumulative.html b/src/addons/mod/workshop/assessment/accumulative/component/addon-mod-workshop-assessment-strategy-accumulative.html index 16790ec5e..d3d3ed85d 100644 --- a/src/addons/mod/workshop/assessment/accumulative/component/addon-mod-workshop-assessment-strategy-accumulative.html +++ b/src/addons/mod/workshop/assessment/accumulative/component/addon-mod-workshop-assessment-strategy-accumulative.html @@ -13,8 +13,8 @@ {{ 'addon.mod_workshop_assessment_accumulative.dimensiongradefor' | translate : {'$a': field.dimtitle } }} - + {{grade.label}} diff --git a/src/addons/mod/workshop/components/index/addon-mod-workshop-index.html b/src/addons/mod/workshop/components/index/addon-mod-workshop-index.html index 15e6f16dd..e36cc1c0f 100644 --- a/src/addons/mod/workshop/components/index/addon-mod-workshop-index.html +++ b/src/addons/mod/workshop/components/index/addon-mod-workshop-index.html @@ -9,7 +9,7 @@ - + @@ -235,7 +235,7 @@
- + diff --git a/src/addons/mod/workshop/pages/edit-submission/edit-submission.html b/src/addons/mod/workshop/pages/edit-submission/edit-submission.html index e7c928aad..044e1ca5d 100644 --- a/src/addons/mod/workshop/pages/edit-submission/edit-submission.html +++ b/src/addons/mod/workshop/pages/edit-submission/edit-submission.html @@ -34,9 +34,9 @@ + [placeholder]="'addon.mod_workshop.submissioncontent' | translate" [component]="component" [componentId]="componentId" + [autoSave]="true" contextLevel="module" [contextInstanceId]="module.id" elementId="content_editor" + [draftExtraParams]="editorExtraParams"> {{ 'addon.storagemanager.totaldownloads' | translate }}

{{ totalSize | coreBytesToSize }} - + @@ -48,7 +48,7 @@

- + diff --git a/src/addons/storagemanager/pages/courses-storage/courses-storage.html b/src/addons/storagemanager/pages/courses-storage/courses-storage.html index 93aa52341..4c4f3217f 100644 --- a/src/addons/storagemanager/pages/courses-storage/courses-storage.html +++ b/src/addons/storagemanager/pages/courses-storage/courses-storage.html @@ -21,7 +21,7 @@ + [attr.aria-label]="'addon.storagemanager.deleteallsitedata' | translate"> @@ -37,7 +37,7 @@ {{ totalSize | coreBytesToSize }} + [disabled]="completelyDownloadedCourses.length === 0" color="danger" fill="clear"> diff --git a/src/core/components/download-refresh/core-download-refresh.html b/src/core/components/download-refresh/core-download-refresh.html index 21d380920..d30ef77b9 100644 --- a/src/core/components/download-refresh/core-download-refresh.html +++ b/src/core/components/download-refresh/core-download-refresh.html @@ -1,14 +1,13 @@ - + (click)="download($event, true)" @coreShowHideAnimation [attr.aria-label]="(statusTranslatable || 'core.refresh') | translate"> diff --git a/src/core/components/file/core-file.html b/src/core/components/file/core-file.html index ff3e41e9b..396b05120 100644 --- a/src/core/components/file/core-file.html +++ b/src/core/components/file/core-file.html @@ -12,8 +12,7 @@ (action)="download()"> - + diff --git a/src/core/components/horizontal-scroll-controls/core-horizontal-scroll-controls.html b/src/core/components/horizontal-scroll-controls/core-horizontal-scroll-controls.html index e7d55fa25..787cea97b 100644 --- a/src/core/components/horizontal-scroll-controls/core-horizontal-scroll-controls.html +++ b/src/core/components/horizontal-scroll-controls/core-horizontal-scroll-controls.html @@ -1,9 +1,9 @@ - + - + diff --git a/src/core/components/iframe/core-iframe.html b/src/core/components/iframe/core-iframe.html index 78c405420..e9664f6d3 100644 --- a/src/core/components/iframe/core-iframe.html +++ b/src/core/components/iframe/core-iframe.html @@ -13,8 +13,8 @@ [src]="safeUrl" [attr.allowfullscreen]="allowFullscreen ? 'allowfullscreen' : null"> - + {{ 'core.iframehelp' | translate }} diff --git a/src/core/components/local-file/core-local-file.html b/src/core/components/local-file/core-local-file.html index 52a52eb4e..7c5ede969 100644 --- a/src/core/components/local-file/core-local-file.html +++ b/src/core/components/local-file/core-local-file.html @@ -24,7 +24,7 @@ + [attr.aria-label]="'core.edit' | translate"> diff --git a/src/core/components/navigation-bar/core-navigation-bar.html b/src/core/components/navigation-bar/core-navigation-bar.html index 087ffbdf9..1005bfcd5 100644 --- a/src/core/components/navigation-bar/core-navigation-bar.html +++ b/src/core/components/navigation-bar/core-navigation-bar.html @@ -1,7 +1,6 @@ - + @@ -10,7 +9,7 @@ - + diff --git a/src/core/components/send-message-form/core-send-message-form.html b/src/core/components/send-message-form/core-send-message-form.html index 44691f99e..dec9430f5 100644 --- a/src/core/components/send-message-form/core-send-message-form.html +++ b/src/core/components/send-message-form/core-send-message-form.html @@ -7,6 +7,6 @@ - + diff --git a/src/core/features/course/components/course-format/course-format.html b/src/core/features/course/components/course-format/course-format.html index 8c350f930..b457038b7 100644 --- a/src/core/features/course/components/course-format/course-format.html +++ b/src/core/features/course/components/course-format/course-format.html @@ -27,13 +27,13 @@ - - @@ -49,7 +49,7 @@ - + {{'core.course.courseindex' | translate }} diff --git a/src/core/features/course/components/course-index/course-index.scss b/src/core/features/course/components/course-index/course-index.scss index 854d9c3a3..130cdf756 100644 --- a/src/core/features/course/components/course-index/course-index.scss +++ b/src/core/features/course/components/course-index/course-index.scss @@ -30,8 +30,7 @@ ion-item.core-course-index-all::part(native) { } ion-item.item.item-current { - --background: var(--primary); - --color: var(--primary-contrast); + --background: var(--primary-tint); border: 0; } diff --git a/src/core/features/course/components/module-info/core-course-module-info.html b/src/core/features/course/components/module-info/core-course-module-info.html index a4e77744e..6078a0650 100644 --- a/src/core/features/course/components/module-info/core-course-module-info.html +++ b/src/core/features/course/components/module-info/core-course-module-info.html @@ -23,10 +23,12 @@ - + + [showCompletionConditions]="true" [showManualCompletion]="showManualCompletion && module.uservisible" + (completionChanged)="completionChanged.emit($event)"> diff --git a/src/core/features/course/components/module-info/module-info.ts b/src/core/features/course/components/module-info/module-info.ts index bd1fe0780..e66bc55e1 100644 --- a/src/core/features/course/components/module-info/module-info.ts +++ b/src/core/features/course/components/module-info/module-info.ts @@ -12,9 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { Component, Input, OnInit } from '@angular/core'; +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { CoreCourse } from '@features/course/services/course'; -import { CoreCourseModuleData } from '@features/course/services/course-helper'; +import { CoreCourseModuleCompletionData, CoreCourseModuleData } from '@features/course/services/course-helper'; import { CoreCourseModuleDelegate } from '@features/course/services/module-delegate'; import { CoreSites } from '@services/sites'; @@ -48,6 +48,9 @@ export class CoreCourseModuleInfoComponent implements OnInit { @Input() hasDataToSync = false; // If the activity has any data to be synced. + @Input() showManualCompletion = true; // Whether to show manual completion, true by default. + @Output() completionChanged = new EventEmitter(); // Notify when completion changes. + modicon = ''; showCompletion = false; // Whether to show completion. moduleNameTranslated = ''; diff --git a/src/core/features/course/components/module-manual-completion/core-course-module-manual-completion.html b/src/core/features/course/components/module-manual-completion/core-course-module-manual-completion.html index 7da05d7ee..798e97f8d 100644 --- a/src/core/features/course/components/module-manual-completion/core-course-module-manual-completion.html +++ b/src/core/features/course/components/module-manual-completion/core-course-module-manual-completion.html @@ -7,8 +7,8 @@ - + {{ 'core.course.completion_manual:markdone' | translate }} @@ -16,7 +16,7 @@ - + {{ 'core.course.completion_manual:markdone' | translate }} diff --git a/src/core/features/course/components/module-navigation/core-course-module-navigation.html b/src/core/features/course/components/module-navigation/core-course-module-navigation.html index 3beaf4af2..6b092bfb8 100644 --- a/src/core/features/course/components/module-navigation/core-course-module-navigation.html +++ b/src/core/features/course/components/module-navigation/core-course-module-navigation.html @@ -6,13 +6,6 @@ - - - - - diff --git a/src/core/features/course/components/module-navigation/module-navigation.ts b/src/core/features/course/components/module-navigation/module-navigation.ts index af20ac47e..132e8c27a 100644 --- a/src/core/features/course/components/module-navigation/module-navigation.ts +++ b/src/core/features/course/components/module-navigation/module-navigation.ts @@ -12,9 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core'; +import { Component, Input, OnDestroy, OnInit } from '@angular/core'; import { CoreCourse, CoreCourseProvider, CoreCourseWSSection } from '@features/course/services/course'; -import { CoreCourseModuleCompletionData, CoreCourseModuleData } from '@features/course/services/course-helper'; +import { CoreCourseModuleData } from '@features/course/services/course-helper'; import { CoreCourseModuleDelegate } from '@features/course/services/module-delegate'; import { IonContent } from '@ionic/angular'; import { CoreNavigationOptions, CoreNavigator } from '@services/navigator'; @@ -27,7 +27,7 @@ import { CoreEventObserver, CoreEvents } from '@singletons/events'; * Component to show a button to go to the next resource/activity. * * Example usage: - * + * */ @Component({ selector: 'core-course-module-navigation', @@ -37,21 +37,17 @@ import { CoreEventObserver, CoreEvents } from '@singletons/events'; export class CoreCourseModuleNavigationComponent implements OnInit, OnDestroy { @Input() courseId!: number; // Course ID. - @Input() currentModule!: CoreCourseModuleData; // Current module. - @Input() showManualCompletion = true; // Whether to show manual completion, true by default. - - @Output() completionChanged = new EventEmitter(); // Notify when completion changes. + @Input() currentModuleId!: number; // Current module Id. nextModule?: CoreCourseModuleData; previousModule?: CoreCourseModuleData; nextModuleSection?: CoreCourseWSSection; previousModuleSection?: CoreCourseWSSection; loaded = false; - showCompletion = false; // Whether to show completion. protected completionObserver: CoreEventObserver; - constructor(el: ElementRef, protected ionContent: IonContent) { + constructor(protected ionContent: IonContent) { const siteId = CoreSites.getCurrentSiteId(); this.completionObserver = CoreEvents.on(CoreEvents.COMPLETION_MODULE_VIEWED, async (data) => { @@ -70,8 +66,6 @@ export class CoreCourseModuleNavigationComponent implements OnInit, OnDestroy { * @inheritdoc */ async ngOnInit(): Promise { - this.showCompletion = CoreSites.getRequiredCurrentSite().isVersionGreaterEqualThan('3.11'); - try { await this.setNextAndPreviousModules(CoreSitesReadingStrategy.PREFER_CACHE); } finally { @@ -104,7 +98,6 @@ export class CoreCourseModuleNavigationComponent implements OnInit, OnDestroy { } const preSets = CoreSites.getReadingStrategyPreSets(readingStrategy); - const currentModuleId = this.currentModule.id; const sections = await CoreCourse.getSections(this.courseId, false, true, preSets); @@ -117,7 +110,7 @@ export class CoreCourseModuleNavigationComponent implements OnInit, OnDestroy { return false; } - currentModuleIndex = section.modules.findIndex((module: CoreCourseModuleData) => module.id == currentModuleId); + currentModuleIndex = section.modules.findIndex((module: CoreCourseModuleData) => module.id == this.currentModuleId); return currentModuleIndex >= 0; }); diff --git a/src/core/features/course/components/module-summary/module-summary.html b/src/core/features/course/components/module-summary/module-summary.html index 09a0e3354..f60653532 100644 --- a/src/core/features/course/components/module-summary/module-summary.html +++ b/src/core/features/course/components/module-summary/module-summary.html @@ -25,7 +25,7 @@ + [attr.aria-label]="'core.openinbrowser' | translate" slot="end"> @@ -80,7 +80,7 @@ + (click)="prefetch()" [disabled]="prefetchDisabled"> @@ -197,14 +197,14 @@ - + {{ 'core.refresh' | translate }} - + {{ 'core.settings.synchronizenow' | translate }} diff --git a/src/core/features/course/components/module/core-course-module.html b/src/core/features/course/components/module/core-course-module.html index 86afecafe..17e53f4e1 100644 --- a/src/core/features/course/components/module/core-course-module.html +++ b/src/core/features/course/components/module/core-course-module.html @@ -53,7 +53,7 @@
- diff --git a/src/core/features/course/pages/course-summary/course-summary.html b/src/core/features/course/pages/course-summary/course-summary.html index 46926639f..88300031a 100644 --- a/src/core/features/course/pages/course-summary/course-summary.html +++ b/src/core/features/course/pages/course-summary/course-summary.html @@ -36,7 +36,7 @@ - + {{ 'core.courses.aria:coursecategory' | translate }} @@ -61,7 +61,7 @@

- @@ -143,7 +143,7 @@ - {{item.data.title | translate }} diff --git a/src/core/features/course/pages/module-preview/module-preview.html b/src/core/features/course/pages/module-preview/module-preview.html index ee720ffd2..11cfb10da 100644 --- a/src/core/features/course/pages/module-preview/module-preview.html +++ b/src/core/features/course/pages/module-preview/module-preview.html @@ -12,7 +12,7 @@ + [showBrowserWarning]="false" [attr.aria-label]="'core.openinbrowser' | translate"> @@ -24,7 +24,8 @@ + [componentId]="module.id" [expandDescription]="true" [showAvailabilityInfo]="true" (completionChanged)="onCompletionChange()" + [showManualCompletion]="showManualCompletion">
@@ -44,6 +45,6 @@ - + + diff --git a/src/core/features/courses/components/course-list-item/core-courses-course-list-item.html b/src/core/features/courses/components/course-list-item/core-courses-course-list-item.html index fd2a803bc..e8d9a2749 100644 --- a/src/core/features/courses/components/course-list-item/core-courses-course-list-item.html +++ b/src/core/features/courses/components/course-list-item/core-courses-course-list-item.html @@ -17,7 +17,7 @@
- @@ -66,7 +66,7 @@ color="success" role="status" [attr.aria-label]="'core.downloaded' | translate">

- {{ 'core.courses.aria:coursecategory' | translate }} diff --git a/src/core/features/courses/components/course-progress/core-courses-course-progress.html b/src/core/features/courses/components/course-progress/core-courses-course-progress.html index 9a5976b70..4d529d350 100644 --- a/src/core/features/courses/components/course-progress/core-courses-course-progress.html +++ b/src/core/features/courses/components/course-progress/core-courses-course-progress.html @@ -47,7 +47,7 @@ name="fam-cloud-done" color="success" role="status" [attr.aria-label]="'core.downloaded' | translate"> - diff --git a/src/core/features/courses/pages/my/my.html b/src/core/features/courses/pages/my/my.html index 0d1d12031..c01f49f85 100644 --- a/src/core/features/courses/pages/my/my.html +++ b/src/core/features/courses/pages/my/my.html @@ -31,7 +31,7 @@
-
diff --git a/src/core/features/mainmenu/pages/menu/menu.scss b/src/core/features/mainmenu/pages/menu/menu.scss index e6e0b7fea..4f0ebd805 100644 --- a/src/core/features/mainmenu/pages/menu/menu.scss +++ b/src/core/features/mainmenu/pages/menu/menu.scss @@ -1,161 +1,178 @@ @import "~theme/globals"; -:host{ - --menutabbar-size: var(--bottom-tabs-size); - - ion-tab-bar { - height: var(--menutabbar-size); - } - - @if ($core-always-show-main-menu) { - ion-tabs.placement-bottom ion-tab-bar { - height: var(--menutabbar-size) !important; - visibility: visible !important; - transform: translateY(0) !important; - } - } @else { - ion-tabs.tabshidden.placement-bottom ion-tab-bar { - pointer-events: none; - - ion-tab-button { - height: auto; - } - } - - } - - ion-tab-button ion-icon.core-tab-icon { - text-overflow: unset; - overflow: visible; - text-align: center; - } - - ion-tab-button.ios ion-icon.core-tab-icon { - font-size: 25px; - } - - ion-tab-button.md ion-badge.core-tab-badge { - font-size: 12px; - font-weight: bold; - border-radius: 10px; - padding-left: 6px; - padding-right: 6px; - line-height: 14px; - } - - ion-tab-button.tab-selected { - background: var(--background-selected); - } - - ion-icon.core-tab-badge { - color: var(--core-bottom-tabs-badge-color); - padding: 3px 6px 2px; - @include position(8px, null, null, calc(50% + 6px)); - min-width: 12px; - font-size: 8px; - font-weight: normal; - box-sizing: border-box; - position: absolute; - z-index: 1; - } - - ion-badge.core-tab-badge { - --background: var(--core-bottom-tabs-badge-color); - --color: var(--core-bottom-tabs-badge-text-color); - } - - ion-tabs.placement-bottom ion-tab-button { - ion-icon.core-tab-icon { - transition: margin 500ms ease-in-out, transform 300ms ease-in-out; - } - ion-icon.core-tab-badge, - ion-badge.core-tab-badge { - top: 8px; - } +:host { + ion-tabs { + --menutabbar-size: var(--bottom-tabs-size); } ion-tabs.placement-side { - flex-direction: row; - ion-tab-bar { - order: -1; - width: var(--menutabbar-size); - height: calc(100% - var(--ion-safe-area-top) - var(--ion-safe-area-bottom)); - flex-direction: column; - @include border-end(var(--border)); - border-top: 0; - justify-content: flex-start; - - @include padding(var(--ion-safe-area-top), 0px, var(--ion-safe-area-bottom), var(--ion-safe-area-left)); - - ion-tab-button, core-user-menu-button { - width: 100%; - min-height: var(--menutabbar-size); - flex: 0; - - ion-icon.core-tab-badge, - ion-badge.core-tab-badge { - top: calc(50% - 20px); - } - } - } + --menutabbar-size: var(--side-tabs-size); } + --network-margin-bottom: 0px; + --network-message-background: transparent; + --network-message-offline: none; + --network-message-online: none; + --network-message-height: 16px; +} + +:host-context(.core-online), +:host-context(.core-offline) { + .core-network-message { + visibility: visible; + height: var(--network-message-height); + padding-bottom: calc(var(--ion-safe-area-bottom, 0px) + var(--network-message-height)); + } +} + +:host-context(.core-online) { + --network-margin-bottom: 8px; + + --network-message-background: var(--success); + --network-message-online: block; +} + +:host-context(.core-offline) { + --network-margin-bottom: 8px; + + --network-message-background: var(--danger); + --network-message-offline: block; +} + +ion-tab-bar { + height: var(--menutabbar-size); + core-user-menu-button { align-items: center; display: flex; justify-content: center; } - .core-network-message { - --network-message-height: 16px; - position: absolute; - bottom: 0; - left: 0; - right: 0; - padding-left: 10px; - padding-right: 10px; - text-align: center; - color: white; - visibility: hidden; - height: 0; - transition: all 500ms ease-in-out; - opacity: .8; - z-index: 12; - } + ion-tab-button { + &.tab-selected { + background: var(--background-selected); + } - .core-online-message, - .core-offline-message { - display: none; + ion-icon.core-tab-icon { + text-overflow: unset; + overflow: visible; + text-align: center; + font-size: 24px; + } + + ion-badge.core-tab-badge { + font-size: 12px; + font-weight: bold; + border-radius: 10px; + padding-left: 6px; + padding-right: 6px; + line-height: 14px; + --background: var(--core-bottom-tabs-badge-color); + --color: var(--core-bottom-tabs-badge-text-color); + } + + ion-icon.core-tab-badge { + color: var(--core-bottom-tabs-badge-color); + padding: 3px 6px 2px; + @include position(8px, null, null, calc(50% + 6px)); + min-width: 12px; + font-size: 8px; + font-weight: normal; + box-sizing: border-box; + position: absolute; + z-index: 1; + } } } -:host-context(.core-online), -:host-context(.core-offline) { - ion-tabs.placement-bottom ion-tab-button ion-icon.core-tab-icon { - margin-bottom: 8px; +ion-tabs.placement-bottom { + ion-tab-button { + ion-icon.core-tab-icon { + margin-bottom: var(--network-margin-bottom); + transition: margin 500ms ease-in-out, transform 300ms ease-in-out; + } + + ion-icon.core-tab-badge, + ion-badge.core-tab-badge { + top: 8px; + } } - ion-tabs.placement-bottom ion-tab-button.ios ion-icon.core-tab-icon { - margin-bottom: 14px; - } + @if ($core-always-show-main-menu) { + ion-tab-bar { + height: var(--menutabbar-size) !important; + visibility: visible !important; + transform: translateY(0) !important; + } + } @else { + &.tabshidden ion-tab-bar { + pointer-events: none; - .core-network-message { - visibility: visible; - height: var(--network-message-height); - padding-bottom: calc(var(--ion-safe-area-bottom, 0px) + var(--network-message-height)); - pointer-events: none; + ion-tab-button { + height: auto; + } + } } } -:host-context(.core-offline) .core-offline-message, -:host-context(.core-online) .core-online-message { - display: block; +ion-tabs.placement-side { + flex-direction: row; + + ion-tab-bar { + order: -1; + width: var(--menutabbar-size); + height: calc(100% - var(--ion-safe-area-top) - var(--ion-safe-area-bottom)); + flex-direction: column; + @include border-end(var(--border)); + border-top: 0; + justify-content: flex-start; + + @include padding(var(--ion-safe-area-top), 0px, var(--ion-safe-area-bottom), var(--ion-safe-area-left)); + + ion-tab-button { + --padding-start: 0; + --padding-end: 0; + ion-badge.core-tab-badge { + @include position(null, 1px, null, auto); + } + } + + + ion-tab-button, core-user-menu-button { + width: 100%; + min-height: var(--menutabbar-size); + flex: 0; + + ion-icon.core-tab-badge, + ion-badge.core-tab-badge { + top: calc(50% - 20px); + } + } + } } -:host-context(.core-online) .core-network-message { - background: var(--success); -} +.core-network-message { + background: var(--network-message-background); + pointer-events: none; + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding-left: 10px; + padding-right: 10px; + text-align: center; + color: white; + visibility: hidden; + height: 0; + transition: all 500ms ease-in-out; + opacity: .8; + z-index: 12; -:host-context(.core-offline) .core-network-message { - background: var(--danger); + .core-online { + display: var(--network-message-online); + } + + .core-offline { + display: var(--network-message-offline); + } } diff --git a/src/core/features/siteplugins/components/module-index/core-siteplugins-module-index.html b/src/core/features/siteplugins/components/module-index/core-siteplugins-module-index.html index b47edea6c..287220e84 100644 --- a/src/core/features/siteplugins/components/module-index/core-siteplugins-module-index.html +++ b/src/core/features/siteplugins/components/module-index/core-siteplugins-module-index.html @@ -14,5 +14,5 @@ (onLoadingContent)="contentLoading()"> - + diff --git a/src/core/features/siteplugins/components/only-title-block/core-siteplugins-only-title-block.html b/src/core/features/siteplugins/components/only-title-block/core-siteplugins-only-title-block.html index 04564f703..c80615fda 100644 --- a/src/core/features/siteplugins/components/only-title-block/core-siteplugins-only-title-block.html +++ b/src/core/features/siteplugins/components/only-title-block/core-siteplugins-only-title-block.html @@ -1,4 +1,4 @@ - +

{{ title | translate }}

diff --git a/src/core/features/user/pages/about/about.html b/src/core/features/user/pages/about/about.html index 295192bbe..62028bf62 100644 --- a/src/core/features/user/pages/about/about.html +++ b/src/core/features/user/pages/about/about.html @@ -17,7 +17,7 @@
- +