diff --git a/package-lock.json b/package-lock.json
index 749693153..0f749a72c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -38,7 +38,7 @@
"@awesome-cordova-plugins/sqlite": "^6.6.0",
"@awesome-cordova-plugins/status-bar": "^6.6.0",
"@awesome-cordova-plugins/web-intent": "^6.6.0",
- "@ionic/angular": "^7.7.4",
+ "@ionic/angular": "^7.8.6",
"@ionic/cordova-builders": "^11.0.0",
"@moodlehq/cordova-plugin-advanced-http": "3.3.1-moodle.1",
"@moodlehq/cordova-plugin-camera": "7.0.0-moodle.1",
diff --git a/package.json b/package.json
index d7be2c677..6df39ce0e 100644
--- a/package.json
+++ b/package.json
@@ -72,7 +72,7 @@
"@awesome-cordova-plugins/sqlite": "^6.6.0",
"@awesome-cordova-plugins/status-bar": "^6.6.0",
"@awesome-cordova-plugins/web-intent": "^6.6.0",
- "@ionic/angular": "^7.7.4",
+ "@ionic/angular": "^7.8.6",
"@ionic/cordova-builders": "^11.0.0",
"@moodlehq/cordova-plugin-advanced-http": "3.3.1-moodle.1",
"@moodlehq/cordova-plugin-camera": "7.0.0-moodle.1",
diff --git a/src/addons/blog/pages/edit-entry/edit-entry.html b/src/addons/blog/pages/edit-entry/edit-entry.html
index 5ab20704f..92be35280 100644
--- a/src/addons/blog/pages/edit-entry/edit-entry.html
+++ b/src/addons/blog/pages/edit-entry/edit-entry.html
@@ -52,7 +52,7 @@
@if (associationsExpanded) {
-
+
@if (associatedModule) {
@if (showMyEntriesToggle) {
-
+
{{ 'addon.blog.showonlyyourentries' | translate }}
diff --git a/src/addons/calendar/components/filter/filter.html b/src/addons/calendar/components/filter/filter.html
index b2a1e326c..a5732aebd 100644
--- a/src/addons/calendar/components/filter/filter.html
+++ b/src/addons/calendar/components/filter/filter.html
@@ -9,7 +9,7 @@
-
+
{{ 'addon.calendar.' + type + 'events' | translate}}
diff --git a/src/addons/messages/pages/settings/settings.html b/src/addons/messages/pages/settings/settings.html
index bbf72e6f4..606842fa1 100644
--- a/src/addons/messages/pages/settings/settings.html
+++ b/src/addons/messages/pages/settings/settings.html
@@ -21,7 +21,7 @@
{{ 'core.settings.general' | translate }}
-
+
{{ 'addon.messages.useentertosend' | translate }}
@@ -31,7 +31,7 @@
-
+
{{ 'addon.messages.blocknoncontacts' | translate }}
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 9879b3565..0cf93f8f1 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
@@ -345,7 +345,7 @@
-
+
{{ 'addon.mod_assign.groupsubmissionsettings' | translate }}
{{ 'addon.mod_assign.applytoteam' | translate }}
@@ -371,7 +371,7 @@
-
+
{{ 'addon.mod_assign.addattempt' | translate }}
diff --git a/src/addons/mod/chat/pages/sessions/sessions.html b/src/addons/mod/chat/pages/sessions/sessions.html
index 499ee182a..28df7d798 100644
--- a/src/addons/mod/chat/pages/sessions/sessions.html
+++ b/src/addons/mod/chat/pages/sessions/sessions.html
@@ -16,7 +16,7 @@
-
+
{{ 'addon.mod_chat.showincompletesessions' | translate }}
diff --git a/src/addons/mod/feedback/pages/form/form.html b/src/addons/mod/feedback/pages/form/form.html
index ba9d50ffc..b15eb0446 100644
--- a/src/addons/mod/feedback/pages/form/form.html
+++ b/src/addons/mod/feedback/pages/form/form.html
@@ -69,7 +69,7 @@
-
+
@@ -80,7 +80,7 @@
+ value="option.value">
diff --git a/src/addons/mod/forum/components/components.module.ts b/src/addons/mod/forum/components/components.module.ts
index d57add762..9fd976bba 100644
--- a/src/addons/mod/forum/components/components.module.ts
+++ b/src/addons/mod/forum/components/components.module.ts
@@ -24,7 +24,6 @@ import { AddonModForumDiscussionOptionsMenuComponent } from './discussion-option
import { AddonModForumIndexComponent } from './index/index';
import { AddonModForumPostComponent } from './post/post';
import { AddonModForumPostOptionsMenuComponent } from './post-options-menu/post-options-menu';
-import { AddonModForumSortOrderSelectorComponent } from './sort-order-selector/sort-order-selector';
@NgModule({
declarations: [
@@ -32,7 +31,6 @@ import { AddonModForumSortOrderSelectorComponent } from './sort-order-selector/s
AddonModForumIndexComponent,
AddonModForumPostComponent,
AddonModForumPostOptionsMenuComponent,
- AddonModForumSortOrderSelectorComponent,
],
imports: [
CoreSharedModule,
diff --git a/src/addons/mod/forum/components/index/index.html b/src/addons/mod/forum/components/index/index.html
index 20bfbdbec..ed1795069 100644
--- a/src/addons/mod/forum/components/index/index.html
+++ b/src/addons/mod/forum/components/index/index.html
@@ -60,9 +60,11 @@
-
+
+
+ {{ order.label | translate }}
+
+
{
- if (this.discussions && sortOrder.value != this.discussions.getSource().selectedSortOrder?.value) {
+ async setSortOrder(sortOrderValue: number): Promise {
+ const sortOrder = this.sortOrders.find(sortOrder => sortOrder.value === sortOrderValue);
+
+ if (this.discussions && sortOrder && sortOrder.value != this.discussions.getSource().selectedSortOrder?.value) {
this.discussions.getSource().selectedSortOrder = sortOrder;
this.discussions.getSource().setDirty(true);
- if (this.sortOrderSelectorModalOptions.componentProps) {
- this.sortOrderSelectorModalOptions.componentProps.selected = sortOrder.value;
- }
-
try {
await CoreUser.setUserPreference(AddonModForumProvider.PREFERENCE_SORTORDER, sortOrder.value.toFixed(0));
await this.showLoadingAndFetch();
@@ -625,17 +610,6 @@ export class AddonModForumIndexComponent extends CoreCourseModuleMainActivityCom
}
}
- /**
- * Display the sort order selector modal.
- */
- async showSortOrderSelector(): Promise {
- const modalData = await CoreDomUtils.openModal(this.sortOrderSelectorModalOptions);
-
- if (modalData) {
- this.setSortOrder(modalData);
- }
- }
-
/**
* Show the context menu.
*
diff --git a/src/addons/mod/forum/components/sort-order-selector/sort-order-selector.html b/src/addons/mod/forum/components/sort-order-selector/sort-order-selector.html
deleted file mode 100644
index 77c0309ad..000000000
--- a/src/addons/mod/forum/components/sort-order-selector/sort-order-selector.html
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
- {{ 'core.sort' | translate }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ sortOrder.label | translate }}
-
-
-
-
-
diff --git a/src/addons/mod/forum/components/sort-order-selector/sort-order-selector.ts b/src/addons/mod/forum/components/sort-order-selector/sort-order-selector.ts
deleted file mode 100644
index 6de83877c..000000000
--- a/src/addons/mod/forum/components/sort-order-selector/sort-order-selector.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-// (C) Copyright 2015 Moodle Pty Ltd.
-//
-// 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.
-
-import { Component, Input } from '@angular/core';
-import { AddonModForumSortOrder } from '@addons/mod/forum/services/forum';
-import { ModalController } from '@singletons';
-
-/**
- * Page that displays the sort selector.
- */
-@Component({
- selector: 'page-addon-mod-forum-sort-order-selector',
- templateUrl: 'sort-order-selector.html',
-})
-export class AddonModForumSortOrderSelectorComponent {
-
- @Input() sortOrders!: AddonModForumSortOrder[];
- @Input() selected!: number;
-
- /**
- * Close the modal.
- */
- closeModal(): void {
- ModalController.dismiss();
- }
-
- /**
- * Select a sort order.
- *
- * @param sortOrder Selected sort order.
- */
- selectSortOrder(sortOrder: AddonModForumSortOrder): void {
- ModalController.dismiss(sortOrder);
- }
-
-}
diff --git a/src/addons/mod/forum/pages/new-discussion/new-discussion.html b/src/addons/mod/forum/pages/new-discussion/new-discussion.html
index 38fbec675..6bbd95db5 100644
--- a/src/addons/mod/forum/pages/new-discussion/new-discussion.html
+++ b/src/addons/mod/forum/pages/new-discussion/new-discussion.html
@@ -36,7 +36,7 @@
-
1 && accessInfo.cancanposttomygroups" class="ion-text-wrap" lines="none">
+ 1 && accessInfo.cancanposttomygroups" class="ion-text-wrap">
{{ 'addon.mod_forum.posttomygroups' | translate }}
@@ -52,12 +52,12 @@
-
+
{{ 'addon.mod_forum.discussionsubscription' | translate }}
-
+
{{ 'addon.mod_forum.discussionpinned' | translate }}
diff --git a/src/addons/mod/forum/tests/behat/snapshots/test-basic-usage-of-forum-activity-in-app-reply-a-post_9.png b/src/addons/mod/forum/tests/behat/snapshots/test-basic-usage-of-forum-activity-in-app-reply-a-post_9.png
index d56626909..50c71edb8 100644
Binary files a/src/addons/mod/forum/tests/behat/snapshots/test-basic-usage-of-forum-activity-in-app-reply-a-post_9.png and b/src/addons/mod/forum/tests/behat/snapshots/test-basic-usage-of-forum-activity-in-app-reply-a-post_9.png differ
diff --git a/src/addons/mod/glossary/pages/edit/edit.html b/src/addons/mod/glossary/pages/edit/edit.html
index 07706c91e..f681e51ab 100644
--- a/src/addons/mod/glossary/pages/edit/edit.html
+++ b/src/addons/mod/glossary/pages/edit/edit.html
@@ -51,17 +51,17 @@
{{ 'addon.mod_glossary.linking' | translate }}
-
+
{{ 'addon.mod_glossary.entryusedynalink' | translate }}
-
+
{{ 'addon.mod_glossary.casesensitive' | translate }}
-
+
{{ 'addon.mod_glossary.fullmatch' | translate }}
diff --git a/src/addons/mod/workshop/pages/submission/submission.html b/src/addons/mod/workshop/pages/submission/submission.html
index a683805f3..2d0193a32 100644
--- a/src/addons/mod/workshop/pages/submission/submission.html
+++ b/src/addons/mod/workshop/pages/submission/submission.html
@@ -99,7 +99,7 @@
{{ 'addon.mod_workshop.feedbackauthor' | translate }}
-
+
{{ 'addon.mod_workshop.publishsubmission' | translate }}
{{ 'addon.mod_workshop.publishsubmission_help' | translate }}
diff --git a/src/addons/notifications/pages/settings/settings.html b/src/addons/notifications/pages/settings/settings.html
index 2df95dc01..46804c15a 100644
--- a/src/addons/notifications/pages/settings/settings.html
+++ b/src/addons/notifications/pages/settings/settings.html
@@ -21,12 +21,12 @@
-
+
{{ 'addon.notifications.allownotifications' | translate }}
-
+
{{ 'addon.notifications.playsound' | translate }}
@@ -34,7 +34,7 @@
-
+
{{ 'addon.notifications.typeofnotification' | translate }}
diff --git a/src/addons/qtype/calculated/component/addon-qtype-calculated.html b/src/addons/qtype/calculated/component/addon-qtype-calculated.html
index d8910df93..9767e13cc 100644
--- a/src/addons/qtype/calculated/component/addon-qtype-calculated.html
+++ b/src/addons/qtype/calculated/component/addon-qtype-calculated.html
@@ -55,7 +55,7 @@
-
+
{{ option.text }}
diff --git a/src/addons/qtype/multichoice/component/addon-qtype-multichoice.html b/src/addons/qtype/multichoice/component/addon-qtype-multichoice.html
index ec262e32c..bd1b653ad 100644
--- a/src/addons/qtype/multichoice/component/addon-qtype-multichoice.html
+++ b/src/addons/qtype/multichoice/component/addon-qtype-multichoice.html
@@ -41,7 +41,7 @@
-
+
diff --git a/src/core/components/combobox/combobox.scss b/src/core/components/combobox/combobox.scss
index 5889ee710..320805a35 100644
--- a/src/core/components/combobox/combobox.scss
+++ b/src/core/components/combobox/combobox.scss
@@ -15,6 +15,10 @@
display: none;
}
+ &::part(container) {
+ margin: 0px;
+ }
+
&::part(label) {
position: static;
}
@@ -88,9 +92,16 @@
margin-inline: 0px;
}
+ &::part(container) {
+ white-space: normal;
+ @include margin-horizontal(null, 24px);
+ font: var(--mdl-typography-label-font-lg);
+ }
+
&::part(icon) {
margin: var(--icon-margin);
- opacity: 1;
+ position: absolute;
+ @include position(null, 8px, null, null);
--highlight-color: currentColor;
}
@@ -115,21 +126,16 @@
--color-focused: currentcolor;
--color-hover: currentcolor;
- border-radius: var(--core-combobox-radius);
- margin: 4px 8px;
-
- flex: 1;
-
- &::part(native) {
- font: var(--mdl-typography-label-font-lg);
- border-radius: var(--core-combobox-radius);
- }
+ --border-radius: var(--core-combobox-radius);
.select-text {
@include margin-horizontal(null, auto);
+ white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
+ font: var(--mdl-typography-label-font-lg);
}
+
.sr-only {
@include sr-only();
}
@@ -141,6 +147,10 @@
ion-icon {
margin: var(--icon-margin);
}
+
+ .select-icon {
+ color: var(--ion-color-step-500, gray);
+ }
}
}
diff --git a/src/core/components/combobox/core-combobox.html b/src/core/components/combobox/core-combobox.html
index 5cee5e9e6..0ce11bc9a 100644
--- a/src/core/components/combobox/core-combobox.html
+++ b/src/core/components/combobox/core-combobox.html
@@ -1,5 +1,6 @@
+ interface="popover" [disabled]="disabled" [class.combobox-icon-only]="icon"
+ [interfaceOptions]="{alignment: 'start', arrow: false, cssClass: 'core-combobox-select'}">
{{ label }}
@@ -11,11 +12,13 @@
+
{{ label }},
{{selection}}
-
+
+
diff --git a/src/core/features/login/pages/site/site.scss b/src/core/features/login/pages/site/site.scss
index 7c784402d..24facb27f 100644
--- a/src/core/features/login/pages/site/site.scss
+++ b/src/core/features/login/pages/site/site.scss
@@ -4,10 +4,6 @@
--list-item-max-width: 600px;
}
-.item-input:last-child {
- margin-bottom: 20px;
-}
-
.core-login-site-connect {
margin-top: 1.4rem;
}
diff --git a/src/core/features/rating/components/rate/core-rating-rate.html b/src/core/features/rating/components/rate/core-rating-rate.html
index e7f05ebe9..f335ad756 100644
--- a/src/core/features/rating/components/rate/core-rating-rate.html
+++ b/src/core/features/rating/components/rate/core-rating-rate.html
@@ -1,4 +1,4 @@
-
+
diff --git a/src/core/features/settings/pages/dev/dev.html b/src/core/features/settings/pages/dev/dev.html
index 8968e297d..37484811f 100644
--- a/src/core/features/settings/pages/dev/dev.html
+++ b/src/core/features/settings/pages/dev/dev.html
@@ -17,13 +17,13 @@
-
+
Change text direction
{{ direction }}
-
+
Force safe area margins
@@ -34,13 +34,13 @@
-
+
Enable remote styles {{remoteStylesCount}}
-
+
Enable site plugin styles {{pluginStylesCount}}
diff --git a/src/core/features/settings/pages/general/general.html b/src/core/features/settings/pages/general/general.html
index b9e388bea..337c74cf0 100644
--- a/src/core/features/settings/pages/general/general.html
+++ b/src/core/features/settings/pages/general/general.html
@@ -11,7 +11,7 @@
-
+
{{ 'core.settings.language' | translate }}
@@ -33,7 +33,7 @@
- 0" lines="none">
+ 0">
@@ -50,7 +50,7 @@
{{ 'core.settings.colorscheme-system-notice' | translate }}
-
+
{{ 'core.settings.enablerichtexteditor' | translate }}
{{ 'core.settings.enablerichtexteditordescription' | translate }}
@@ -65,13 +65,13 @@
-
+
{{ 'core.settings.debugdisplay' | translate }}
{{ 'core.settings.debugdisplaydescription' | translate }}
-
+
{{ 'core.settings.enableanalytics' | translate }}
{{ 'core.settings.enableanalyticsdescription' | translate }}
diff --git a/src/core/features/settings/pages/synchronization/synchronization.html b/src/core/features/settings/pages/synchronization/synchronization.html
index b83e6cde3..44b02e537 100644
--- a/src/core/features/settings/pages/synchronization/synchronization.html
+++ b/src/core/features/settings/pages/synchronization/synchronization.html
@@ -23,7 +23,7 @@
{{ 'core.settings.syncsettings' | translate }}
-
+
{{ 'core.settings.syncdatasaver' | translate }}
diff --git a/src/theme/components/ion-button.scss b/src/theme/components/ion-button.scss
index 6a6f7ab71..3588db15b 100644
--- a/src/theme/components/ion-button.scss
+++ b/src/theme/components/ion-button.scss
@@ -1,6 +1,22 @@
ion-button {
- margin: 4px 8px;
+ margin: var(--mdl-spacing-1) var(--mdl-spacing-2);
+ white-space: normal;
+ line-height: 120%;
+
+ core-format-text {
+ white-space: normal;
+ display: contents;
+ line-height: 120%;
+ }
+
+ & > * {
+ white-space: normal;
+ }
+
+ ion-spinner {
+ --color: inherit !important;
+ }
ion-spinner[slot=start],
img[slot=start] {
@@ -36,36 +52,6 @@ ion-button {
--box-shadow: none;
}
- core-format-text {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- display: block;
- line-height: 1.2;
- }
-
- > * {
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
-
- &.ion-text-wrap {
- white-space: normal;
- core-format-text {
- white-space: normal;
- display: contents;
- }
-
- & > * {
- white-space: normal;
- }
- }
-
- ion-spinner {
- --color: inherit !important;
- }
-
&.button-has-icon-only {
margin: 2px;
}
diff --git a/src/theme/components/ion-item.scss b/src/theme/components/ion-item.scss
index 8e3ca0b5e..86eb2ec81 100644
--- a/src/theme/components/ion-item.scss
+++ b/src/theme/components/ion-item.scss
@@ -12,17 +12,17 @@ ion-item.item {
color: var(--ion-item-icon-color);
}
- &.item-lines-default {
- /** Remove lines by default */
+ &.item-lines-default,
+ &.item-has-interactive-control {
+ /** Remove lines by default and interactive control (toggles, radios, checkbox and selects) */
--inner-border-width: 0px;
--border-width: 0px;
}
&.ion-valid,
- &.ion-invalid,
- &.item-has-interactive-control {
- &.item-lines-default {
- --border-width: 0 0 1px 0;
+ &.ion-invalid {
+ &.item-lines-default:not(.item-has-interactive-control) {
+ --inner-border-width: 0 0 1px 0;
}
&.ion-touched {
@@ -44,11 +44,6 @@ ion-item.item {
--detail-icon-opacity: 0;
}
- &:not(.item-input) {
- --show-full-highlight: 0;
- --show-inset-highlight: 0;
- }
-
&.item-has-interactive-control:focus-within {
@include core-focus-outline();
}
@@ -319,13 +314,3 @@ ion-item.item-multiple-inputs.only-links {
cursor: pointer;
}
}
-
-// Case with ion-input + ion-select inside.
-ion-item.item-input.item-multiple-inputs {
- .flex-row {
- width: 100%;
- ion-select {
- position: relative;
- }
- }
-}
diff --git a/src/theme/components/ion-popover.scss b/src/theme/components/ion-popover.scss
index 8f4b4651e..67426340e 100644
--- a/src/theme/components/ion-popover.scss
+++ b/src/theme/components/ion-popover.scss
@@ -16,4 +16,13 @@ ion-popover {
&.ios {
--min-width: 250px;
}
+
+ &.core-combobox-select {
+ --width: auto;
+ --max-width: 80%;
+
+ ion-radio::part(label) {
+ white-space: normal;
+ }
+ }
}
diff --git a/src/theme/components/ion-radio.scss b/src/theme/components/ion-radio.scss
index 80a361faa..d29c8a9f1 100644
--- a/src/theme/components/ion-radio.scss
+++ b/src/theme/components/ion-radio.scss
@@ -35,7 +35,7 @@ input[type=radio],
}
&::part(mark) {
- border-radius: var(--inner-border-radius);
+ border-radius: 50%;
width: calc(50% + var(--outer-border-width));
height: calc(50% + var(--outer-border-width));
transform: scale3d(0, 0, 0);
diff --git a/src/theme/components/ion-select.scss b/src/theme/components/ion-select.scss
index 597e47f11..d36e6ff4c 100644
--- a/src/theme/components/ion-select.scss
+++ b/src/theme/components/ion-select.scss
@@ -31,16 +31,6 @@ ion-select-popover {
}
}
-// Case with ion-input + ion-select inside.
-ion-item.item-input.item-multiple-inputs {
- .flex-row {
- width: 100%;
- ion-select {
- position: relative;
- }
- }
-}
-
.select-alert.ios {
.alert-checkbox-icon {
border-radius: 2px;
@@ -63,7 +53,7 @@ ion-item.item-input.item-multiple-inputs {
top: auto;
left: auto;
position: static;
- border-radius: var(--inner-border-radius);
+ border-radius: 50%;
width: calc(50% + var(--outer-border-width));
height: calc(50% + var(--outer-border-width));
transform: scale3d(0, 0, 0);