commit
1b944f0bdc
|
@ -316,7 +316,7 @@ function save_key($key, $value, $path) {
|
|||
$file = file_get_contents($filePath);
|
||||
$file = (array) json_decode($file);
|
||||
$value = html_entity_decode($value);
|
||||
if ($file[$key] != $value) {
|
||||
if (!isset($file[$key]) || $file[$key] != $value) {
|
||||
$file[$key] = $value;
|
||||
ksort($file);
|
||||
file_put_contents($filePath, str_replace('\/', '/', json_encode($file, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)));
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
.addon-block-online-users core-block-pre-rendered .core-block-content {
|
||||
max-height: 200px;
|
||||
overflow-y: auto;
|
||||
.item-inner,
|
||||
.input-wrapper {
|
||||
overflow-y: visible;
|
||||
align-self: start;
|
||||
}
|
||||
|
||||
.list {
|
||||
@include margin-horizontal(0);
|
||||
-webkit-padding-start: 0;
|
||||
|
|
|
@ -70,6 +70,15 @@ ion-app.app-root.md {
|
|||
padding-top: 0;
|
||||
margin-top: $action-sheet-md-title-padding-top;
|
||||
}
|
||||
|
||||
@media (min-height: 500px) {
|
||||
.action-sheet-wrapper {
|
||||
bottom: 0;
|
||||
top: initial;
|
||||
max-height: 50%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -609,15 +609,6 @@ ion-app.app-root {
|
|||
}
|
||||
}
|
||||
|
||||
@media (min-height: 500px) {
|
||||
.action-sheet-wrapper {
|
||||
bottom: 0;
|
||||
top: initial;
|
||||
max-height: 50%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.alert-message {
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
|
|
@ -29,6 +29,17 @@ ion-app.app-root core-block-course-blocks {
|
|||
min-width: $core-side-blocks-min-width;
|
||||
@include border-start(1px, solid, $list-md-border-color);
|
||||
}
|
||||
|
||||
.core-course-blocks-content,
|
||||
div.core-course-blocks-side {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
|
||||
.core-loading-center,
|
||||
core-loading.core-loading-loaded {
|
||||
position: initial;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include media-breakpoint-down(sm) {
|
||||
|
|
|
@ -50,6 +50,8 @@ export class CoreExternalContentDirective implements AfterViewInit, OnChanges {
|
|||
protected logger;
|
||||
protected initialized = false;
|
||||
|
||||
invalid = false;
|
||||
|
||||
constructor(element: ElementRef, logger: CoreLoggerProvider, private filepoolProvider: CoreFilepoolProvider,
|
||||
private platform: Platform, private sitesProvider: CoreSitesProvider, private domUtils: CoreDomUtilsProvider,
|
||||
private urlUtils: CoreUrlUtilsProvider, private appProvider: CoreAppProvider, private utils: CoreUtilsProvider) {
|
||||
|
@ -142,6 +144,15 @@ export class CoreExternalContentDirective implements AfterViewInit, OnChanges {
|
|||
}
|
||||
|
||||
} else {
|
||||
this.invalid = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Avoid handling data url's.
|
||||
if (url.indexOf('data:') === 0) {
|
||||
this.invalid = true;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -409,7 +409,12 @@ export class CoreFormatTextDirective implements OnChanges {
|
|||
// Walk through the content to find images, and add our directive.
|
||||
images.forEach((img: HTMLElement) => {
|
||||
this.addMediaAdaptClass(img);
|
||||
externalImages.push(this.addExternalContent(img));
|
||||
|
||||
const externalImage = this.addExternalContent(img);
|
||||
if (!externalImage.invalid) {
|
||||
externalImages.push(externalImage);
|
||||
}
|
||||
|
||||
if (this.utils.isTrueOrOne(this.adaptImg) && !img.classList.contains('icon')) {
|
||||
this.adaptImage(img);
|
||||
}
|
||||
|
@ -480,7 +485,9 @@ export class CoreFormatTextDirective implements OnChanges {
|
|||
promise = Promise.resolve();
|
||||
}
|
||||
|
||||
return promise.then(() => {
|
||||
return promise.catch(() => {
|
||||
// Ignore errors. So content gets always shown.
|
||||
}).then(() => {
|
||||
return div;
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue