diff --git a/src/components/mark-required/mark-required.html b/src/components/mark-required/mark-required.html
index b50d08d78..faaea1df8 100644
--- a/src/components/mark-required/mark-required.html
+++ b/src/components/mark-required/mark-required.html
@@ -1,2 +1,2 @@
-
+
diff --git a/src/components/mark-required/mark-required.ts b/src/components/mark-required/mark-required.ts
index f41614110..6d6cc7610 100644
--- a/src/components/mark-required/mark-required.ts
+++ b/src/components/mark-required/mark-required.ts
@@ -12,9 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-import { Component, Input, AfterViewInit, ElementRef } from '@angular/core';
+import { Component, Input, OnInit, AfterViewInit, ElementRef } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { CoreTextUtilsProvider } from '../../providers/utils/text';
+import { CoreUtilsProvider } from '../../providers/utils/utils';
/**
* Directive to add a red asterisk for required input fields.
@@ -30,16 +31,24 @@ import { CoreTextUtilsProvider } from '../../providers/utils/text';
selector: '[core-mark-required]',
templateUrl: 'mark-required.html'
})
-export class CoreMarkRequiredComponent implements AfterViewInit {
+export class CoreMarkRequiredComponent implements OnInit, AfterViewInit {
@Input('core-mark-required') coreMarkRequired: boolean|string = true;
protected element: HTMLElement;
requiredLabel: string;
- constructor(element: ElementRef, private translate: TranslateService, private textUtils: CoreTextUtilsProvider) {
+ constructor(element: ElementRef, private translate: TranslateService, private textUtils: CoreTextUtilsProvider,
+ private utils: CoreUtilsProvider) {
this.element = element.nativeElement;
this.requiredLabel = this.translate.instant('mm.core.required');
}
+ /**
+ * Component being initialized.
+ */
+ ngOnInit() {
+ this.coreMarkRequired = this.utils.isTrueOrOne(this.coreMarkRequired);
+ }
+
/**
* Called after the view is initialized.
*/
diff --git a/src/components/show-password/show-password.ts b/src/components/show-password/show-password.ts
index 0df6189fc..8d83e015c 100644
--- a/src/components/show-password/show-password.ts
+++ b/src/components/show-password/show-password.ts
@@ -13,6 +13,7 @@
// limitations under the License.
import { Component, OnInit, AfterViewInit, Input, ElementRef } from '@angular/core';
+import { CoreUtilsProvider } from '../../providers/utils/utils';
/**
* Component to allow showing and hiding a password. The affected input MUST have a name to identify it.
@@ -44,7 +45,7 @@ export class CoreShowPasswordComponent implements OnInit, AfterViewInit {
protected input: HTMLInputElement; // Input affected.
protected element: HTMLElement; // Current element.
- constructor(element: ElementRef) {
+ constructor(element: ElementRef, private utils: CoreUtilsProvider) {
this.element = element.nativeElement;
}
@@ -52,7 +53,7 @@ export class CoreShowPasswordComponent implements OnInit, AfterViewInit {
* Component being initialized.
*/
ngOnInit() {
- this.shown = this.initialShown && this.initialShown !== 'false';
+ this.shown = this.utils.isTrueOrOne(this.initialShown);
this.selector = 'input[name="' + this.name + '"]';
this.setData();
}
diff --git a/src/directives/auto-focus.ts b/src/directives/auto-focus.ts
index cc3745d6f..5cded27fa 100644
--- a/src/directives/auto-focus.ts
+++ b/src/directives/auto-focus.ts
@@ -14,6 +14,7 @@
import { Directive, Input, AfterViewInit, ElementRef } from '@angular/core';
import { CoreDomUtilsProvider } from '../providers/utils/dom';
+import { CoreUtilsProvider } from '../providers/utils/utils';
/**
* Directive to auto focus an element when a view is loaded.
@@ -28,7 +29,7 @@ export class CoreAutoFocusDirective implements AfterViewInit {
protected element: HTMLElement;
- constructor(element: ElementRef, private domUtils: CoreDomUtilsProvider) {
+ constructor(element: ElementRef, private domUtils: CoreDomUtilsProvider, private utils: CoreUtilsProvider) {
this.element = element.nativeElement || element;
}
@@ -36,13 +37,7 @@ export class CoreAutoFocusDirective implements AfterViewInit {
* Function after the view is initialized.
*/
ngAfterViewInit() {
- let autoFocus;
- if (typeof this.coreAutoFocus == 'string') {
- autoFocus = this.coreAutoFocus && this.coreAutoFocus !== 'false';
- } else {
- autoFocus = !!this.coreAutoFocus;
- }
-
+ const autoFocus = this.utils.isTrueOrOne(this.coreAutoFocus);
if (autoFocus) {
// If it's a ion-input or ion-textarea, search the right input to use.
let element = this.element;
diff --git a/src/directives/format-text.ts b/src/directives/format-text.ts
index bcedffd61..e6f9226ef 100644
--- a/src/directives/format-text.ts
+++ b/src/directives/format-text.ts
@@ -43,15 +43,15 @@ export class CoreFormatTextDirective implements OnInit {
@Input() siteId?: string; // Site ID to use.
@Input() component?: string; // Component for CoreExternalContentDirective.
@Input() componentId?: string|number; // Component ID to use in conjunction with the component.
- @Input() adaptImg?: boolean = true; // Whether to adapt images to screen width.
- @Input() clean?: boolean; // Whether all the HTML tags should be removed.
- @Input() singleLine?: boolean; // Whether new lines should be removed (all text in single line). Only valid if clean=true.
+ @Input() adaptImg?: boolean|string = true; // Whether to adapt images to screen width.
+ @Input() clean?: boolean|string; // Whether all the HTML tags should be removed.
+ @Input() singleLine?: boolean|string; // Whether new lines should be removed (all text in single line). Only valid if clean=true.
@Input() maxHeight?: number; // Max height in pixels to render the content box. It should be 50 at least to make sense.
// Using this parameter will force display: block to calculate height better. If you want to
// avoid this use class="inline" at the same time to use display: inline-block.
- @Input() fullOnClick?: boolean; // Whether it should open a new page with the full contents on click. Only if "max-height"
- // is set and the content has been collapsed.
- @Input() brOnFull?: boolean; // Whether new lines should be replaced by
on full view.
+ @Input() fullOnClick?: boolean|string; // Whether it should open a new page with the full contents on click. Only if
+ // "max-height" is set and the content has been collapsed.
+ @Input() brOnFull?: boolean|string; // Whether new lines should be replaced by
on full view.
@Input() fullTitle?: string; // Title to use in full view. Defaults to "Description".
@Output() afterRender?: EventEmitter; // Called when the data is rendered.
@@ -225,7 +225,7 @@ export class CoreFormatTextDirective implements OnInit {
site = siteInstance;
// Apply format text function.
- return this.textUtils.formatText(this.text, this.clean, this.singleLine);
+ return this.textUtils.formatText(this.text, this.utils.isTrueOrOne(this.clean), this.utils.isTrueOrOne(this.singleLine));
}).then((formatted) => {
let div = document.createElement('div'),
@@ -264,7 +264,7 @@ export class CoreFormatTextDirective implements OnInit {
images.forEach((img: HTMLElement) => {
this.addMediaAdaptClass(img);
this.addExternalContent(img);
- if (this.adaptImg) {
+ if (this.utils.isTrueOrOne(this.adaptImg)) {
// Create a container for the image and use it instead of the image.
let container = this.createMagnifyingGlassContainer(elWidth, img);
div.replaceChild(container, img);
diff --git a/src/directives/keep-keyboard.ts b/src/directives/keep-keyboard.ts
index e464ed15e..5de6883f2 100644
--- a/src/directives/keep-keyboard.ts
+++ b/src/directives/keep-keyboard.ts
@@ -14,6 +14,7 @@
import { Directive, AfterViewInit, Input, ElementRef, OnDestroy } from '@angular/core';
import { CoreDomUtilsProvider } from '../providers/utils/dom';
+import { CoreUtilsProvider } from '../providers/utils/utils';
/**
* Directive to keep the keyboard open when clicking a certain element (usually a button).
@@ -55,7 +56,7 @@ export class CoreKeepKeyboardDirective implements AfterViewInit, OnDestroy {
protected focusAgainListener : any; // Another listener for focusout, with the purpose to focus again.
protected stopFocusAgainTimeout: any; // Timeout to stop focus again listener.
- constructor(element: ElementRef, private domUtils: CoreDomUtilsProvider) {
+ constructor(element: ElementRef, private domUtils: CoreDomUtilsProvider, private utils: CoreUtilsProvider) {
this.element = element.nativeElement;
}
@@ -66,7 +67,7 @@ export class CoreKeepKeyboardDirective implements AfterViewInit, OnDestroy {
// Use a setTimeout because, if this directive is applied to a button, then the ion-input that it affects
// maybe it hasn't been treated yet.
setTimeout(() => {
- let inButton = this.inButton && this.inButton !== 'false',
+ let inButton = this.utils.isTrueOrOne(this.inButton),
candidateEls,
selectedEl;
diff --git a/src/directives/link.ts b/src/directives/link.ts
index 53dfd0840..f95aa2624 100644
--- a/src/directives/link.ts
+++ b/src/directives/link.ts
@@ -26,8 +26,8 @@ import { CoreConfigConstants } from '../configconstants';
selector: '[core-link]'
})
export class CoreLinkDirective implements OnInit {
- @Input() capture?: boolean; // If the link needs to be captured by the app.
- @Input() inApp?: boolean; // True to open in embedded browser, false to open in system browser.
+ @Input() capture?: boolean|string; // If the link needs to be captured by the app.
+ @Input() inApp?: boolean|string; // True to open in embedded browser, false to open in system browser.
@Input() autoLogin? = 'check'; // If the link should be open with auto-login. Accepts the following values:
// "yes" -> Always auto-login.
// "no" -> Never auto-login.
@@ -45,6 +45,8 @@ export class CoreLinkDirective implements OnInit {
* Function executed when the component is initialized.
*/
ngOnInit() {
+ this.inApp = this.utils.isTrueOrOne(this.inApp);
+
this.element.addEventListener('click', (event) => {
// If the event prevented default action, do nothing.
if (!event.defaultPrevented) {
@@ -53,7 +55,7 @@ export class CoreLinkDirective implements OnInit {
event.preventDefault();
event.stopPropagation();
- if (this.capture) {
+ if (this.utils.isTrueOrOne(this.capture)) {
// @todo: Handle link using content links helper.
// $mmContentLinksHelper.handleLink(href).then((treated) => {
// if (!treated) {