diff --git a/.travis.yml b/.travis.yml index a0cd12911..ed465252f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,7 @@ cache: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ - $HOME/.android/build-cache + - $HOME/Library/Caches/Homebrew before_install: - nvm install @@ -34,8 +35,7 @@ script: jobs: include: - - stage: build - name: "Build Android" + - name: "Build Android" if: env(DEPLOY) = 1 OR (env(DEPLOY) = 2 AND tag IS NOT blank) language: android android: @@ -63,13 +63,14 @@ jobs: - libsecret-1-dev - php5-cli - php5-common - - stage: build - name: "Build iOS" + - name: "Build iOS" language: node_js if: env(BUILD_IOS) = 1 AND (env(DEPLOY) = 1 OR (env(DEPLOY) = 2 AND tag IS NOT blank)) os: osx - osx_image: xcode13.1 + osx_image: xcode14.2 addons: homebrew: packages: - jq + before_cache: + - brew cleanup diff --git a/local_moodleappbehat/tests/behat/behat_app.php b/local_moodleappbehat/tests/behat/behat_app.php index d14b2391d..6eb1d6b7e 100644 --- a/local_moodleappbehat/tests/behat/behat_app.php +++ b/local_moodleappbehat/tests/behat/behat_app.php @@ -764,7 +764,7 @@ class behat_app extends behat_app_helper { $result = $this->runtime_js("setField('$field', '$value')"); if ($result !== 'OK') { - throw new DriverException('Error setting field - ' . $result); + throw new DriverException('Error setting field "' . $field . '" - ' . $result); } return true; diff --git a/moodle.config.json b/moodle.config.json index 50aaf93a5..b521642cd 100644 --- a/moodle.config.json +++ b/moodle.config.json @@ -57,6 +57,7 @@ "sr-cr": "Српски", "sr-lt": "Srpski", "sv": "Svenska", + "szl": "Ślōnski", "tg": "Тоҷикӣ", "tr": "Türkçe", "uk": "Українська", diff --git a/scripts/langindex.json b/scripts/langindex.json index 4f883c941..65f618eaa 100644 --- a/scripts/langindex.json +++ b/scripts/langindex.json @@ -1692,20 +1692,20 @@ "core.downloading": "local_moodlemobileapp", "core.edit": "moodle", "core.editor.autosavesucceeded": "editor_atto", - "core.editor.bold": "atto_bold/pluginname", + "core.editor.bold": "editor", "core.editor.clear": "atto_clear/pluginname", "core.editor.h3": "atto_title", "core.editor.h4": "atto_title", "core.editor.h5": "atto_title", "core.editor.hidetoolbar": "local_moodlemobileapp", - "core.editor.italic": "atto_italic/pluginname", - "core.editor.orderedlist": "atto_orderedlist/pluginname", - "core.editor.p": "atto_title", - "core.editor.strike": "atto_strike/pluginname", + "core.editor.italic": "editor", + "core.editor.orderedlist": "editor", + "core.editor.p": "editor_tinymce/advanced:paragraph", + "core.editor.strikethrough": "editor", "core.editor.textrecovered": "editor_atto", "core.editor.toggle": "local_moodlemobileapp", - "core.editor.underline": "atto_underline/pluginname", - "core.editor.unorderedlist": "atto_unorderedlist/pluginname", + "core.editor.underline": "editor", + "core.editor.unorderedlist": "editor", "core.emptysplit": "local_moodlemobileapp", "core.endingtime": "local_moodlemobileapp", "core.endonesteptour": "tool_usertours", @@ -2268,7 +2268,7 @@ "core.reminders.atthetime": "local_moodlemobileapp", "core.reminders.custom": "local_moodlemobileapp", "core.reminders.customreminder": "local_moodlemobileapp", - "core.reminders.delete": "moodle", + "core.reminders.delete": "local_moodlemobileapp", "core.reminders.reminderset": "local_moodlemobileapp", "core.reminders.reminderunset": "local_moodlemobileapp", "core.reminders.setareminder": "local_moodlemobileapp", @@ -2310,7 +2310,7 @@ "core.selectagroup": "moodle", "core.send": "message", "core.sending": "chat", - "core.serverconnection": "error", + "core.serverconnection": "local_moodlemobileapp", "core.settings.about": "local_moodlemobileapp", "core.settings.accessstatement": "access", "core.settings.appsettings": "local_moodlemobileapp", diff --git a/src/addons/calendar/pages/event/event.html b/src/addons/calendar/pages/event/event.html index 2697b2c1a..f41b9804d 100644 --- a/src/addons/calendar/pages/event/event.html +++ b/src/addons/calendar/pages/event/event.html @@ -31,14 +31,6 @@ - - - - - {{ 'core.hasdatatosync' | translate:{$a: 'addon.calendar.calendarevent' | translate} }} - - - + + + + + {{ 'core.hasdatatosync' | translate:{$a: 'addon.calendar.calendarevent' | translate} }} + +

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

diff --git a/src/addons/messages/pages/discussion/discussion.html b/src/addons/messages/pages/discussion/discussion.html index 57ad7cd7d..2e9ec079a 100644 --- a/src/addons/messages/pages/discussion/discussion.html +++ b/src/addons/messages/pages/discussion/discussion.html @@ -103,7 +103,7 @@ - +

{{ 'addon.messages.unabletomessage' | translate }}

diff --git a/src/addons/messages/pages/discussion/discussion.scss b/src/addons/messages/pages/discussion/discussion.scss index f3a030dc3..0c82d4a87 100644 --- a/src/addons/messages/pages/discussion/discussion.scss +++ b/src/addons/messages/pages/discussion/discussion.scss @@ -44,6 +44,7 @@ text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; + display: block; } ion-icon { diff --git a/src/addons/mod/bigbluebuttonbn/lang.json b/src/addons/mod/bigbluebuttonbn/lang.json index abead21d5..8db55ba47 100644 --- a/src/addons/mod/bigbluebuttonbn/lang.json +++ b/src/addons/mod/bigbluebuttonbn/lang.json @@ -10,12 +10,12 @@ "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_moderator": "Moderator", + "view_message_moderators": "Moderators", "view_message_norecordings": "There are no recordings available.", - "view_message_session_started_at": "This session started at", - "view_message_viewer": "viewer", - "view_message_viewers": "viewers", + "view_message_session_started_at": "Session started at", + "view_message_viewer": "Viewer", + "view_message_viewers": "Viewers", "view_nojoin": "You do not have a role that is allowed to join this session.", "view_section_title_recordings": "Recordings" } diff --git a/src/addons/mod/bigbluebuttonbn/tests/behat/basic_usage.feature b/src/addons/mod/bigbluebuttonbn/tests/behat/basic_usage.feature index 1e2175676..856d5e698 100755 --- a/src/addons/mod/bigbluebuttonbn/tests/behat/basic_usage.feature +++ b/src/addons/mod/bigbluebuttonbn/tests/behat/basic_usage.feature @@ -53,8 +53,8 @@ Feature: Test basic usage of BBB activity in app Given I wait "10" seconds Then I should find "The session is in progress." in the app - And I should find "1" near "viewer" in the app - And I should find "0" near "moderator" in the app + And I should find "1" near "Viewer" in the app + And I should find "0" near "Moderator" in the app Scenario: Join meeting (moderator) Given the following "activities" exist: @@ -69,8 +69,8 @@ Feature: Test basic usage of BBB activity in app Given I wait "10" seconds Then I should find "The session is in progress." in the app - And I should find "1" near "moderator" in the app - And I should find "0" near "viewer" in the app + And I should find "1" near "Moderator" in the app + And I should find "0" near "Viewer" in the app Scenario: Wait for moderator Given the following "activities" exist: @@ -91,8 +91,8 @@ Feature: Test basic usage of BBB activity in app And I press "Close" in the app And I pull to refresh in the app Then I should find "The session is in progress." in the app - And I should find "1" near "moderator" in the app - And I should find "0" near "viewer" in the app + And I should find "1" near "Moderator" in the app + And I should find "0" near "Viewer" in the app And I should be able to press "Join session" in the app When I close all opened windows diff --git a/src/addons/mod/chat/pages/chat/chat.html b/src/addons/mod/chat/pages/chat/chat.html index a35f2d33a..4cbfff287 100644 --- a/src/addons/mod/chat/pages/chat/chat.html +++ b/src/addons/mod/chat/pages/chat/chat.html @@ -93,7 +93,7 @@
- +

{{ 'addon.mod_chat.mustbeonlinetosendmessages' | translate }}

diff --git a/src/addons/mod/data/components/actionsmenu/actionsmenu.html b/src/addons/mod/data/components/actionsmenu/actionsmenu.html index 177470dcd..242b68f1c 100644 --- a/src/addons/mod/data/components/actionsmenu/actionsmenu.html +++ b/src/addons/mod/data/components/actionsmenu/actionsmenu.html @@ -1,9 +1,12 @@ - - - -

{{ item.text | translate }}

-
- -
-
+ + + + +

{{ item.text | translate }}

+
+ +
+
+ +
diff --git a/src/addons/mod/data/lang.json b/src/addons/mod/data/lang.json index d15f18e32..3ffdfdbce 100644 --- a/src/addons/mod/data/lang.json +++ b/src/addons/mod/data/lang.json @@ -13,14 +13,14 @@ "disapprove": "Undo approval", "edittagsnotsupported": "Sorry, editing tags is not supported by the app.", "emptyaddform": "You did not fill out any fields!", - "entrieslefttoadd": "You must add {{$a.entriesleft}} more entry/entries in order to complete this activity", + "entrieslefttoadd": "You must add {{$a.entriesleft}} more entry/entries to complete this activity.", "entrieslefttoaddtoview": "You must add {{$a.entrieslefttoview}} more entry/entries before you can view other participants' entries.", "errorapproving": "Error approving or unapproving entry.", "errordeleting": "Error deleting entry.", "errormustsupplyvalue": "You must supply a value here.", "expired": "Sorry, this activity closed on {{$a}} and is no longer available", "fields": "Fields", - "foundrecords": "Found records: {{$a.num}}/{{$a.max}} (Reset filters)", + "foundrecords": "Found {{$a.num}} out of {{$a.max}} records. Clear all", "gettinglocation": "Getting location", "latlongboth": "Both latitude and longitude are required.", "locationnotenabled": "Location is not enabled", diff --git a/src/addons/mod/feedback/components/index/index.ts b/src/addons/mod/feedback/components/index/index.ts index 2f877c17a..e9e4defce 100644 --- a/src/addons/mod/feedback/components/index/index.ts +++ b/src/addons/mod/feedback/components/index/index.ts @@ -334,15 +334,16 @@ export class AddonModFeedbackIndexComponent extends CoreCourseModuleMainActivity return label; }); - item.chartData = parsedData.map((dataItem) => dataItem.answercount); + item.chartData = parsedData.map((dataItem) => Number(dataItem.answercount)); - if (item.typ == 'multichoicerated') { + if (item.typ === 'multichoicerated') { item.average = parsedData.reduce((prev, current) => prev + Number(current.avg), 0.0); } const subtype = item.presentation.charAt(0); - const single = subtype != 'c'; + // Display bar chart if there are no answers to avoid division by 0 error. + const single = subtype !== 'c' && item.chartData.some((count) => count > 0); item.chartType = single ? 'doughnut' : 'bar'; item.templateName = 'chart'; break; diff --git a/src/addons/mod/forum/components/discussion-options-menu/discussion-options-menu.html b/src/addons/mod/forum/components/discussion-options-menu/discussion-options-menu.html index b609ed6f5..4736dcd70 100644 --- a/src/addons/mod/forum/components/discussion-options-menu/discussion-options-menu.html +++ b/src/addons/mod/forum/components/discussion-options-menu/discussion-options-menu.html @@ -1,38 +1,42 @@ - - - -

{{ 'addon.mod_forum.lockdiscussion' | translate }}

-
-
- - - -

{{ 'addon.mod_forum.unlockdiscussion' | translate }}

-
-
- - - -

{{ 'addon.mod_forum.pindiscussion' | translate }}

-
-
- - - -

{{ 'addon.mod_forum.unpindiscussion' | translate }}

-
-
- - - -

{{ 'addon.mod_forum.addtofavourites' | translate }}

-
-
- - - -

{{ 'addon.mod_forum.removefromfavourites' | translate }}

-
-
+ + + + + +

{{ 'addon.mod_forum.lockdiscussion' | translate }}

+
+
+ + + +

{{ 'addon.mod_forum.unlockdiscussion' | translate }}

+
+
+ + + +

{{ 'addon.mod_forum.pindiscussion' | translate }}

+
+
+ + + +

{{ 'addon.mod_forum.unpindiscussion' | translate }}

+
+
+ + + +

{{ 'addon.mod_forum.addtofavourites' | translate }}

+
+
+ + + +

{{ 'addon.mod_forum.removefromfavourites' | translate }}

+
+
+
+
diff --git a/src/addons/mod/forum/components/post-options-menu/post-options-menu.html b/src/addons/mod/forum/components/post-options-menu/post-options-menu.html index ffef01cb8..c4362e55f 100644 --- a/src/addons/mod/forum/components/post-options-menu/post-options-menu.html +++ b/src/addons/mod/forum/components/post-options-menu/post-options-menu.html @@ -1,21 +1,26 @@ - - - - -

{{ 'addon.mod_forum.edit' | translate }}

-
-
- - - -

{{ 'addon.mod_forum.delete' | translate }}

-

{{ 'core.discard' | translate }}

-
-
- - - -

{{ 'core.openinbrowser' | translate }}

-
-
-
+ + + + + + +

{{ 'addon.mod_forum.edit' | translate }}

+
+
+ + + +

{{ 'addon.mod_forum.delete' | translate }}

+

{{ 'core.discard' | translate }}

+
+
+ + + +

{{ 'core.openinbrowser' | translate }}

+
+
+
+
+
diff --git a/src/addons/mod/forum/lang.json b/src/addons/mod/forum/lang.json index b3146a6a7..46277f2df 100644 --- a/src/addons/mod/forum/lang.json +++ b/src/addons/mod/forum/lang.json @@ -49,11 +49,11 @@ "pinupdated": "The pin option has been updated.", "postaddedsuccess": "Your post was successfully added.", "postingroup": "Posting in group \"{{groupname}}\".", - "postisprivatereply": "This is a private reply. It is only visible to you and anyone with the capability to view private replies, such as teachers or managers.", + "postisprivatereply": "This is a private reply. (Teachers and other users with the capability to view private replies can also see it.)", "posttoforum": "Post to forum", "posttomygroups": "Post a copy to all groups", "privatereply": "Reply privately", - "qandanotify": "This is a question and answer forum. In order to see other responses to these questions, you must first post your answer", + "qandanotify": "This is a question and answer forum. To see other replies, you must first post your reply.", "re": "Re:", "refreshposts": "Refresh posts", "removefromfavourites": "Unstar this discussion", diff --git a/src/addons/mod/glossary/components/mode-picker/addon-mod-glossary-mode-picker.html b/src/addons/mod/glossary/components/mode-picker/addon-mod-glossary-mode-picker.html index 747140252..881d44938 100644 --- a/src/addons/mod/glossary/components/mode-picker/addon-mod-glossary-mode-picker.html +++ b/src/addons/mod/glossary/components/mode-picker/addon-mod-glossary-mode-picker.html @@ -1,6 +1,8 @@ - - - {{ mode.langkey | translate }} - - - + + + + {{ mode.langkey | translate }} + + + + diff --git a/src/addons/mod/quiz/lang.json b/src/addons/mod/quiz/lang.json index a1db1a409..d62d1d3c0 100644 --- a/src/addons/mod/quiz/lang.json +++ b/src/addons/mod/quiz/lang.json @@ -10,7 +10,7 @@ "clearchoice": "Clear my choice", "comment": "Comment", "completedon": "Completed on", - "confirmclose": "Once you submit, you will no longer be able to change your answers for this attempt.", + "confirmclose": "Once you submit your answers, you won’t be able to change them.", "confirmcontinueoffline": "This attempt has not been synchronised since {{$a}}. If you have continued this attempt in another device since then, you may lose data.", "confirmleavequizonerror": "An error occurred while saving the answers. Are you sure you want to leave the quiz?", "confirmstart": "Your attempt will have a time limit of {{$a}}. When you start, the timer will begin to count down and cannot be paused. You must finish your attempt before it expires. Are you sure you wish to start now?", diff --git a/src/addons/mod/wiki/components/index/index.ts b/src/addons/mod/wiki/components/index/index.ts index 0f1553ac3..f3d82dc3e 100644 --- a/src/addons/mod/wiki/components/index/index.ts +++ b/src/addons/mod/wiki/components/index/index.ts @@ -888,7 +888,7 @@ export class AddonModWikiIndexComponent extends CoreCourseModuleMainActivityComp await Promise.all(this.loadedSubwikis.map(async (subwiki) => { let groupLabel = ''; - if (subwiki.groupid == 0 && subwiki.userid == 0) { + if (subwiki.groupid === 0 && subwiki.userid === 0) { // Add 'All participants' subwiki if needed at the start. if (!allParticipants) { subwikiList.unshift({ @@ -902,7 +902,7 @@ export class AddonModWikiIndexComponent extends CoreCourseModuleMainActivityComp allParticipants = true; } } else { - if (subwiki.groupid != 0 && userGroups.length > 0) { + if (subwiki.groupid !== 0 && userGroups.length > 0) { // Get groupLabel if it has groupId. const group = userGroups.find(group => group.id == subwiki.groupid); groupLabel = group?.name ?? ''; @@ -910,7 +910,7 @@ export class AddonModWikiIndexComponent extends CoreCourseModuleMainActivityComp groupLabel = Translate.instant('addon.mod_wiki.notingroup'); } - if (subwiki.userid != 0) { + if (subwiki.userid !== 0) { if (!multiLevelList && subwiki.groupid != 0) { multiLevelList = true; } @@ -956,8 +956,6 @@ export class AddonModWikiIndexComponent extends CoreCourseModuleMainActivityComp showMyGroupsLabel: boolean, multiLevelList: boolean, ): void { - subwikiList.sort((a, b) => a.groupid - b.groupid); - this.groupWiki = showMyGroupsLabel; this.subwikiData.count = subwikiList.length; @@ -1039,34 +1037,39 @@ export class AddonModWikiIndexComponent extends CoreCourseModuleMainActivityComp grouping.subwikis.push(subwiki); }); } else if (showMyGroupsLabel) { - const noGrouping: AddonModWikiSubwikiListGrouping = { label: '', subwikis: [] }; - const myGroupsGrouping: AddonModWikiSubwikiListGrouping = { label: Translate.instant('core.mygroups'), subwikis: [] }; - const otherGroupsGrouping: AddonModWikiSubwikiListGrouping = { - label: Translate.instant('core.othergroups'), - subwikis: [], - }; + const noGroupSubwikis: AddonModWikiSubwikiListSubwiki[] = []; + const myGroupsSubwikis: AddonModWikiSubwikiListSubwiki[] = []; + const otherGroupsSubwikis: AddonModWikiSubwikiListSubwiki[] = []; - // As we loop over each subwiki, add it to the current group + // As we loop over each subwiki, add it to the current group. subwikiList.forEach((subwiki) => { // Add the subwiki to the currently active grouping. - if (subwiki.canedit === undefined) { - noGrouping.subwikis.push(subwiki); + if (subwiki.groupid === 0 && subwiki.userid === 0) { + // All participants + noGroupSubwikis.push(subwiki); } else if (subwiki.canedit) { - myGroupsGrouping.subwikis.push(subwiki); + myGroupsSubwikis.push(subwiki); } else { - otherGroupsGrouping.subwikis.push(subwiki); + otherGroupsSubwikis.push(subwiki); } }); - // Add each grouping to the subwikis - if (noGrouping.subwikis.length > 0) { - this.subwikiData.subwikis.push(noGrouping); - } - if (myGroupsGrouping.subwikis.length > 0) { - this.subwikiData.subwikis.push(myGroupsGrouping); - } - if (otherGroupsGrouping.subwikis.length > 0) { - this.subwikiData.subwikis.push(otherGroupsGrouping); + if (myGroupsSubwikis.length > 0 && otherGroupsSubwikis.length > 0) { + // Add each grouping to the subwikis. + if (noGroupSubwikis.length > 0) { + this.subwikiData.subwikis.push({ label: '', subwikis: noGroupSubwikis }); + } + + if (myGroupsSubwikis.length > 0) { + this.subwikiData.subwikis.push({ label: Translate.instant('core.mygroups'), subwikis: myGroupsSubwikis }); + } + + if (otherGroupsSubwikis.length > 0) { + this.subwikiData.subwikis.push({ label: Translate.instant('core.othergroups'), subwikis: otherGroupsSubwikis }); + } + } else { + // Mix it again since it does not have groups and other groups. + this.subwikiData.subwikis.push({ label: '', subwikis: subwikiList }); } } else { this.subwikiData.subwikis.push({ label: '', subwikis: subwikiList }); diff --git a/src/addons/mod/wiki/components/subwiki-picker/addon-mod-wiki-subwiki-picker.html b/src/addons/mod/wiki/components/subwiki-picker/addon-mod-wiki-subwiki-picker.html index 7d7f5f0d0..4844903d8 100644 --- a/src/addons/mod/wiki/components/subwiki-picker/addon-mod-wiki-subwiki-picker.html +++ b/src/addons/mod/wiki/components/subwiki-picker/addon-mod-wiki-subwiki-picker.html @@ -1,19 +1,21 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/src/addons/mod/wiki/components/subwiki-picker/subwiki-picker.ts b/src/addons/mod/wiki/components/subwiki-picker/subwiki-picker.ts index fcef85719..ffbbb93e8 100644 --- a/src/addons/mod/wiki/components/subwiki-picker/subwiki-picker.ts +++ b/src/addons/mod/wiki/components/subwiki-picker/subwiki-picker.ts @@ -38,10 +38,10 @@ export class AddonModWikiSubwikiPickerComponent { isSubwikiSelected(subwiki: AddonModWikiSubwiki): boolean { if (subwiki.id > 0 && this.currentSubwiki.id > 0) { - return subwiki.id == this.currentSubwiki.id; + return subwiki.id === this.currentSubwiki.id; } - return subwiki.userid == this.currentSubwiki.userid && subwiki.groupid == this.currentSubwiki.groupid; + return subwiki.userid === this.currentSubwiki.userid && subwiki.groupid === this.currentSubwiki.groupid; } /** diff --git a/src/core/components/context-menu/core-context-menu-popover.html b/src/core/components/context-menu/core-context-menu-popover.html index c6cb35d5d..7ba6c7cd4 100644 --- a/src/core/components/context-menu/core-context-menu-popover.html +++ b/src/core/components/context-menu/core-context-menu-popover.html @@ -1,30 +1,33 @@ - - - {{title}} - - - -

- -

-
- - - - - - - - - {{item.badge}} - - {{ item.badgeA11yText | translate: {$a : item.badge } }} - - -
-
+ + + + {{title}} + + + +

+ +

+
+ + + + + + + + + {{item.badge}} + + {{ item.badgeA11yText | translate: {$a : item.badge } }} + + +
+
+
diff --git a/src/core/features/comments/pages/viewer/viewer.html b/src/core/features/comments/pages/viewer/viewer.html index 4dc735805..b941f87e2 100644 --- a/src/core/features/comments/pages/viewer/viewer.html +++ b/src/core/features/comments/pages/viewer/viewer.html @@ -64,7 +64,7 @@ - + diff --git a/src/core/features/courses/components/course-options-menu/core-courses-course-options-menu.html b/src/core/features/courses/components/course-options-menu/core-courses-course-options-menu.html index bcd038c96..17633d581 100644 --- a/src/core/features/courses/components/course-options-menu/core-courses-course-options-menu.html +++ b/src/core/features/courses/components/course-options-menu/core-courses-course-options-menu.html @@ -1,40 +1,42 @@ - - - - - -

{{ prefetch.statusTranslatable | translate }}

-
-
- - - -

{{ 'addon.storagemanager.deletedata' | translate }}

-
-
- - - -

{{ 'core.courses.hidecourse' | translate }}

-
-
- - - -

{{ 'core.courses.show' | translate }}

-
-
- - - -

{{ 'core.courses.addtofavourites' | translate }}

-
-
- - - -

{{ 'core.courses.removefromfavourites' | translate }}

-
-
-
+ + + + + + +

{{ prefetch.statusTranslatable | translate }}

+
+
+ + + +

{{ 'addon.storagemanager.deletedata' | translate }}

+
+
+ + + +

{{ 'core.courses.hidecourse' | translate }}

+
+
+ + + +

{{ 'core.courses.show' | translate }}

+
+
+ + + +

{{ 'core.courses.addtofavourites' | translate }}

+
+
+ + + +

{{ 'core.courses.removefromfavourites' | translate }}

+
+
+
+
diff --git a/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html b/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html index acddfb540..2d260dbd3 100644 --- a/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html +++ b/src/core/features/editor/components/rich-text-editor/core-editor-rich-text-editor.html @@ -45,7 +45,7 @@ -