diff --git a/src/addon/block/blogtags/blogtags.scss b/src/addon/block/blogtags/blogtags.scss
index 859b876da..a974b45cb 100644
--- a/src/addon/block/blogtags/blogtags.scss
+++ b/src/addon/block/blogtags/blogtags.scss
@@ -6,77 +6,83 @@
-webkit-padding-start: 0;
li {
- padding: 0 .2em;
- display: inline;
+ padding: .2em;
+ display: inline-block;
+
+ a {
+ @extend ion-badge;
+ @extend .badge-md;
+ text-decoration: none;
+ }
+ .s20 {
+ font-size: 1.5em;
+ font-weight: bold;
+ }
+
+ .s19 {
+ font-size: 1.5em;
+ }
+
+ .s18 {
+ font-size: 1.4em;
+ font-weight: bold;
+ }
+
+ .s17 {
+ font-size: 1.4em;
+ }
+
+ .s16 {
+ font-size: 1.3em;
+ font-weight: bold;
+ }
+
+ .s15 {
+ font-size: 1.3em;
+ }
+
+ .s14 {
+ font-size: 1.2em;
+ font-weight: bold;
+ }
+
+ .s13 {
+ font-size: 1.2em;
+ }
+
+ .s12,
+ .s11 {
+ font-size: 1.1em;
+ font-weight: bold;
+ }
+
+ .s10,
+ .s9 {
+ font-size: 1.1em;
+ }
+
+ .s8,
+ .s7 {
+ font-size: 1em;
+ font-weight: bold;
+ }
+
+ .s6,
+ .s5 {
+ font-size: 1em;
+ }
+
+ .s4,
+ .s3 {
+ font-size: 0.9em;
+ font-weight: bold;
+ }
+
+ .s2,
+ .s1 {
+ font-size: 0.9em;
+ }
}
}
- .s20 {
- font-size: 1.5em;
- font-weight: bold;
- }
-
- .s19 {
- font-size: 1.5em;
- }
-
- .s18 {
- font-size: 1.4em;
- font-weight: bold;
- }
-
- .s17 {
- font-size: 1.4em;
- }
-
- .s16 {
- font-size: 1.3em;
- font-weight: bold;
- }
-
- .s15 {
- font-size: 1.3em;
- }
-
- .s14 {
- font-size: 1.2em;
- font-weight: bold;
- }
-
- .s13 {
- font-size: 1.2em;
- }
-
- .s12,
- .s11 {
- font-size: 1.1em;
- font-weight: bold;
- }
-
- .s10,
- .s9 {
- font-size: 1.1em;
- }
-
- .s8,
- .s7 {
- font-size: 1em;
- font-weight: bold;
- }
-
- .s6,
- .s5 {
- font-size: 1em;
- }
-
- .s4,
- .s3 {
- font-size: 0.9em;
- font-weight: bold;
- }
-
- .s2,
- .s1 {
- font-size: 0.9em;
- }
}
}
\ No newline at end of file
diff --git a/src/addon/block/comments/providers/block-handler.ts b/src/addon/block/comments/providers/block-handler.ts
index 81e5b2c15..ada6e1654 100644
--- a/src/addon/block/comments/providers/block-handler.ts
+++ b/src/addon/block/comments/providers/block-handler.ts
@@ -47,7 +47,7 @@ export class AddonBlockCommentsHandler extends CoreBlockBaseHandler {
component: CoreBlockOnlyTitleComponent,
link: 'CoreCommentsViewerPage',
linkParams: { contextLevel: contextLevel, instanceId: instanceId,
- component: 'block_comments', area: 'page_comments', itemId: 0 }
+ componentName: 'block_comments', area: 'page_comments', itemId: 0 }
};
}
}
diff --git a/src/addon/block/tags/tags.scss b/src/addon/block/tags/tags.scss
index cd3df32eb..f4c54d167 100644
--- a/src/addon/block/tags/tags.scss
+++ b/src/addon/block/tags/tags.scss
@@ -8,93 +8,99 @@
-webkit-padding-start: 0;
li {
- padding: 0 .2em;
- display: inline;
+ padding: .2em;
+ display: inline-block;
+
+ a {
+ @extend ion-badge;
+ @extend .badge-md;
+ text-decoration: none;
+ }
+ .s20 {
+ font-size: 2.7em;
+ }
+
+ .s19 {
+ font-size: 2.6em;
+ }
+
+ .s18 {
+ font-size: 2.5em;
+ }
+
+ .s17 {
+ font-size: 2.4em;
+ }
+
+ .s16 {
+ font-size: 2.3em;
+ }
+
+ .s15 {
+ font-size: 2.2em;
+ }
+
+ .s14 {
+ font-size: 2.1em;
+ }
+
+ .s13 {
+ font-size: 2em;
+ }
+
+ .s12 {
+ font-size: 1.9em;
+ }
+
+ .s11 {
+ font-size: 1.8em;
+ }
+
+ .s10 {
+ font-size: 1.7em;
+ }
+
+ .s9 {
+ font-size: 1.6em;
+ }
+
+ .s8 {
+ font-size: 1.5em;
+ }
+
+ .s7 {
+ font-size: 1.4em;
+ }
+
+ .s6 {
+ font-size: 1.3em;
+ }
+
+ .s5 {
+ font-size: 1.2em;
+ }
+
+ .s4 {
+ font-size: 1.1em;
+ }
+
+ .s3 {
+ font-size: 1em;
+ }
+
+ .s2 {
+ font-size: 0.9em;
+ }
+
+ .s1 {
+ font-size: 0.8em;
+ }
+
+ .s0 {
+ font-size: 0.7em;
+ }
}
}
}
- .tag_cloud .s20 {
- font-size: 2.7em;
- }
-
- .tag_cloud .s19 {
- font-size: 2.6em;
- }
-
- .tag_cloud .s18 {
- font-size: 2.5em;
- }
-
- .tag_cloud .s17 {
- font-size: 2.4em;
- }
-
- .tag_cloud .s16 {
- font-size: 2.3em;
- }
-
- .tag_cloud .s15 {
- font-size: 2.2em;
- }
-
- .tag_cloud .s14 {
- font-size: 2.1em;
- }
-
- .tag_cloud .s13 {
- font-size: 2em;
- }
-
- .tag_cloud .s12 {
- font-size: 1.9em;
- }
-
- .tag_cloud .s11 {
- font-size: 1.8em;
- }
-
- .tag_cloud .s10 {
- font-size: 1.7em;
- }
-
- .tag_cloud .s9 {
- font-size: 1.6em;
- }
-
- .tag_cloud .s8 {
- font-size: 1.5em;
- }
-
- .tag_cloud .s7 {
- font-size: 1.4em;
- }
-
- .tag_cloud .s6 {
- font-size: 1.3em;
- }
-
- .tag_cloud .s5 {
- font-size: 1.2em;
- }
-
- .tag_cloud .s4 {
- font-size: 1.1em;
- }
-
- .tag_cloud .s3 {
- font-size: 1em;
- }
-
- .tag_cloud .s2 {
- font-size: 0.9em;
- }
-
- .tag_cloud .s1 {
- font-size: 0.8em;
- }
-
- .tag_cloud .s0 {
- font-size: 0.7em;
- }
}
}
\ No newline at end of file
diff --git a/src/addon/mod/glossary/providers/edit-link-handler.ts b/src/addon/mod/glossary/providers/edit-link-handler.ts
index c2f34305c..c86557aee 100644
--- a/src/addon/mod/glossary/providers/edit-link-handler.ts
+++ b/src/addon/mod/glossary/providers/edit-link-handler.ts
@@ -18,6 +18,7 @@ import { CoreContentLinksAction } from '@core/contentlinks/providers/delegate';
import { CoreContentLinksHelperProvider } from '@core/contentlinks/providers/helper';
import { CoreCourseProvider } from '@core/course/providers/course';
import { CoreDomUtilsProvider } from '@providers/utils/dom';
+import { AddonModGlossaryProvider } from './glossary';
/**
* Content links handler for glossary new entry.
@@ -31,7 +32,7 @@ export class AddonModGlossaryEditLinkHandler extends CoreContentLinksHandlerBase
pattern = /\/mod\/glossary\/edit\.php.*([\?\&](cmid)=\d+)/;
constructor(private linkHelper: CoreContentLinksHelperProvider, private courseProvider: CoreCourseProvider,
- private domUtils: CoreDomUtilsProvider) {
+ private domUtils: CoreDomUtilsProvider, private glossaryProvider: AddonModGlossaryProvider) {
super();
}
@@ -53,14 +54,16 @@ export class AddonModGlossaryEditLinkHandler extends CoreContentLinksHandlerBase
cmId = parseInt(params.cmid, 10);
this.courseProvider.getModuleBasicInfo(cmId, siteId).then((module) => {
- const pageParams = {
- courseId: module.course,
- module: module,
- glossary: module.module,
- entry: null // It does not support entry editing.
- };
+ return this.glossaryProvider.getGlossary(module.course, module.id).then((glossary) => {
+ const pageParams = {
+ courseId: module.course,
+ module: module,
+ glossary: glossary,
+ entry: null // It does not support entry editing.
+ };
- return this.linkHelper.goInSite(navCtrl, 'AddonModGlossaryEditPage', pageParams, siteId);
+ this.linkHelper.goInSite(navCtrl, 'AddonModGlossaryEditPage', pageParams, siteId);
+ });
}).finally(() => {
// Just in case. In fact we need to dismiss the modal before showing a toast or error message.
modal.dismiss();
diff --git a/src/addon/mod/glossary/providers/entry-link-handler.ts b/src/addon/mod/glossary/providers/entry-link-handler.ts
index 953aeb41a..99acce7b7 100644
--- a/src/addon/mod/glossary/providers/entry-link-handler.ts
+++ b/src/addon/mod/glossary/providers/entry-link-handler.ts
@@ -27,7 +27,7 @@ import { AddonModGlossaryProvider } from './glossary';
export class AddonModGlossaryEntryLinkHandler extends CoreContentLinksHandlerBase {
name = 'AddonModGlossaryEntryLinkHandler';
featureName = 'CoreCourseModuleDelegate_AddonModGlossary';
- pattern = /\/mod\/glossary\/showentry\.php.*([\&\?]eid=\d+)/;
+ pattern = /\/mod\/glossary\/(showentry|view)\.php.*([\&\?](eid|g|mode|hook)=\d+)/;
constructor(
private domUtils: CoreDomUtilsProvider,
@@ -51,7 +51,13 @@ export class AddonModGlossaryEntryLinkHandler extends CoreContentLinksHandlerBas
return [{
action: (siteId, navCtrl?): void => {
const modal = this.domUtils.showModalLoading();
- const entryId = parseInt(params.eid, 10);
+ let entryId;
+ if (params.mode == 'entry') {
+ entryId = parseInt(params.hook, 10);
+ } else {
+ entryId = parseInt(params.eid, 10);
+ }
+
let promise;
if (courseId) {
diff --git a/src/app/app.scss b/src/app/app.scss
index 8bbc87959..f2e7d5892 100644
--- a/src/app/app.scss
+++ b/src/app/app.scss
@@ -226,6 +226,7 @@ ion-app.app-root {
user-select: text;
word-break: break-word;
word-wrap: break-word;
+ white-space: normal;
&[maxHeight],
&[ng-reflect-max-height] {
diff --git a/src/components/rich-text-editor/rich-text-editor.ts b/src/components/rich-text-editor/rich-text-editor.ts
index b0261ba75..08bf278b3 100644
--- a/src/components/rich-text-editor/rich-text-editor.ts
+++ b/src/components/rich-text-editor/rich-text-editor.ts
@@ -103,7 +103,7 @@ export class CoreRichTextEditorComponent implements AfterContentInit, OnDestroy
}
/**
- * Init editor
+ * Init editor.
*/
ngAfterContentInit(): void {
this.domUtils.isRichTextEditorEnabled().then((enabled) => {
diff --git a/src/components/tabs/tab.ts b/src/components/tabs/tab.ts
index 48b8a3dcb..9006b3011 100644
--- a/src/components/tabs/tab.ts
+++ b/src/components/tabs/tab.ts
@@ -121,18 +121,14 @@ export class CoreTabComponent implements OnInit, OnDestroy {
this.showHideNavBarButtons(true);
// Setup tab scrolling.
- setTimeout(() => {
- // Workaround to solve undefined this.scroll on tab change.
- const scroll: HTMLElement = this.content ? this.content.getScrollElement() :
- this.element.querySelector('ion-content > .scroll-content');
+ this.domUtils.waitElementToExist(() => this.content ? this.content.getScrollElement() :
+ this.element.querySelector('ion-content > .scroll-content')).then((scroll) => {
+ scroll.addEventListener('scroll', (e): void => {
+ this.tabs.showHideTabs(e.target);
+ });
- if (scroll) {
- scroll.onscroll = (e): void => {
- this.tabs.showHideTabs(e.target);
- };
- this.tabs.showHideTabs(scroll);
- }
- }, 1);
+ this.tabs.showHideTabs(scroll);
+ });
}
/**
diff --git a/src/core/block/components/block/block.scss b/src/core/block/components/block/block.scss
index 765a266a8..4029d7ffa 100644
--- a/src/core/block/components/block/block.scss
+++ b/src/core/block/components/block/block.scss
@@ -1,5 +1,6 @@
ion-app.app-root core-block {
position: relative;
+ display: block;
core-loading.core-loading-center {
display: block;
diff --git a/src/core/block/components/course-blocks/core-block-course-blocks.html b/src/core/block/components/course-blocks/core-block-course-blocks.html
index be7bb0c1d..ee6af5a26 100644
--- a/src/core/block/components/course-blocks/core-block-course-blocks.html
+++ b/src/core/block/components/course-blocks/core-block-course-blocks.html
@@ -2,13 +2,15 @@