MOBILE-3624 core: Fix migration linting problems
parent
497c164626
commit
8e3da0a108
|
@ -41,5 +41,5 @@ gulp.task('push', (done) => {
|
|||
gulp.task('default', gulp.parallel('lang'));
|
||||
|
||||
gulp.task('watch', () => {
|
||||
gulp.watch(langsPaths, { interval: 500 }, gulp.parallel('lang'));
|
||||
gulp.watch(paths.lang, { interval: 500 }, gulp.parallel('lang'));
|
||||
});
|
||||
|
|
|
@ -231,7 +231,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
|
|||
protected async fetchContent(): Promise<void> {
|
||||
const config = this.block.configsRecord || {};
|
||||
|
||||
const showCategories = config && config.displaycategories && config.displaycategories.value == '1';
|
||||
const showCategories = config?.displaycategories?.value == '1';
|
||||
|
||||
const courses = await CoreCoursesHelper.instance.getUserCoursesWithOptions(this.sort, undefined, undefined, showCategories);
|
||||
|
||||
|
@ -257,26 +257,26 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
|
|||
this.showFilter = false;
|
||||
|
||||
this.showFilters.all = this.getShowFilterValue(
|
||||
!config || config.displaygroupingall.value == '1',
|
||||
!config || config.displaygroupingall?.value == '1',
|
||||
this.courses.all.length === 0,
|
||||
);
|
||||
// Do not show allincludinghiddenif config it's not present (before 3.8).
|
||||
this.showFilters.allincludinghidden =
|
||||
this.getShowFilterValue(
|
||||
config.displaygroupingallincludinghidden.value == '1',
|
||||
config?.displaygroupingallincludinghidden?.value == '1',
|
||||
this.courses.allincludinghidden.length === 0,
|
||||
);
|
||||
|
||||
this.showFilters.inprogress = this.getShowFilterValue(
|
||||
!config || config.displaygroupinginprogress.value == '1',
|
||||
!config || config.displaygroupinginprogress?.value == '1',
|
||||
this.courses.inprogress.length === 0,
|
||||
);
|
||||
this.showFilters.past = this.getShowFilterValue(
|
||||
!config || config.displaygroupingpast.value == '1',
|
||||
!config || config.displaygroupingpast?.value == '1',
|
||||
this.courses.past.length === 0,
|
||||
);
|
||||
this.showFilters.future = this.getShowFilterValue(
|
||||
!config || config.displaygroupingfuture.value == '1',
|
||||
!config || config.displaygroupingfuture?.value == '1',
|
||||
this.courses.future.length === 0,
|
||||
);
|
||||
|
||||
|
@ -285,24 +285,22 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
|
|||
|
||||
this.showFilters.hidden = this.getShowFilterValue(
|
||||
this.showSelectorFilter && typeof courses[0].hidden != 'undefined' &&
|
||||
(!config || config.displaygroupinghidden.value == '1'),
|
||||
(!config || config.displaygroupinghidden?.value == '1'),
|
||||
this.courses.hidden.length === 0,
|
||||
);
|
||||
|
||||
this.showFilters.favourite = this.getShowFilterValue(
|
||||
this.showSelectorFilter && typeof courses[0].isfavourite != 'undefined' &&
|
||||
(!config || (config.displaygroupingstarred && config.displaygroupingstarred.value == '1') ||
|
||||
(config.displaygroupingfavourites && config.displaygroupingfavourites.value == '1')),
|
||||
(!config || config.displaygroupingstarred?.value == '1' || config.displaygroupingfavourites?.value == '1'),
|
||||
this.courses.favourite.length === 0,
|
||||
);
|
||||
|
||||
this.showFilters.custom = this.getShowFilterValue(
|
||||
this.showSelectorFilter && config?.displaygroupingcustomfield.value == '1' &&
|
||||
!!config?.customfieldsexport && !!config?.customfieldsexport.value,
|
||||
this.showSelectorFilter && config?.displaygroupingcustomfield?.value == '1' && !!config?.customfieldsexport?.value,
|
||||
false,
|
||||
);
|
||||
if (this.showFilters.custom == 'show') {
|
||||
this.customFilter = CoreTextUtils.instance.parseJSON(config.customfieldsexport.value, []);
|
||||
this.customFilter = CoreTextUtils.instance.parseJSON(config?.customfieldsexport?.value, []);
|
||||
} else {
|
||||
this.customFilter = [];
|
||||
}
|
||||
|
|
|
@ -6,7 +6,10 @@
|
|||
<core-loading [hideUntil]="loaded" class="core-loading-center">
|
||||
<ng-container *ngIf="mainMenuBlock">
|
||||
<ion-item class="ion-text-wrap" *ngIf="mainMenuBlock.summary">
|
||||
<core-format-text [text]="mainMenuBlock.summary" [component]="component" [componentId]="siteHomeId" contextLevel="course" [contextInstanceId]="siteHomeId"></core-format-text>
|
||||
<ion-label>
|
||||
<core-format-text [text]="mainMenuBlock.summary" [component]="component" [componentId]="siteHomeId"
|
||||
contextLevel="course" [contextInstanceId]="siteHomeId"></core-format-text>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
|
||||
<!--<core-course-module *ngFor="let module of mainMenuBlock.modules" [module]="module" [courseId]="siteHomeId" [downloadEnabled]="downloadEnabled" [section]="mainMenuBlock"></core-course-module>-->
|
||||
|
|
|
@ -103,7 +103,7 @@ export class AddonCourseCompletionProvider {
|
|||
userId = userId || site.getUserId();
|
||||
this.logger.debug('Get completion for course ' + courseId + ' and user ' + userId);
|
||||
|
||||
const data: CoreCompletionGetCourseCompletionStatusWSParams = {
|
||||
const data: AddonCourseCompletionGetCourseCompletionStatusWSParams = {
|
||||
courseid: courseId,
|
||||
userid: userId,
|
||||
};
|
||||
|
@ -112,7 +112,7 @@ export class AddonCourseCompletionProvider {
|
|||
preSets.updateFrequency = preSets.updateFrequency || CoreSite.FREQUENCY_SOMETIMES;
|
||||
preSets.cacheErrors = ['notenroled'];
|
||||
|
||||
const result: CoreCompletionGetCourseCompletionStatusWSResponse =
|
||||
const result: AddonCourseCompletionGetCourseCompletionStatusWSResponse =
|
||||
await site.read('core_completion_get_course_completion_status', data, preSets);
|
||||
if (result.completionstatus) {
|
||||
return result.completionstatus;
|
||||
|
@ -253,7 +253,7 @@ export class AddonCourseCompletionProvider {
|
|||
async markCourseAsSelfCompleted(courseId: number, siteId?: string): Promise<void> {
|
||||
const site = await CoreSites.instance.getSite(siteId);
|
||||
|
||||
const params: CoreCompletionMarkCourseSelfCompletedWSParams = {
|
||||
const params: AddonCourseCompletionMarkCourseSelfCompletedWSParams = {
|
||||
courseid: courseId,
|
||||
};
|
||||
|
||||
|
@ -292,7 +292,7 @@ export type AddonCourseCompletionCourseCompletionStatus = {
|
|||
/**
|
||||
* Params of core_completion_get_course_completion_status WS.
|
||||
*/
|
||||
export type CoreCompletionGetCourseCompletionStatusWSParams = {
|
||||
export type AddonCourseCompletionGetCourseCompletionStatusWSParams = {
|
||||
courseid: number; // Course ID.
|
||||
userid: number; // User ID.
|
||||
};
|
||||
|
@ -300,7 +300,7 @@ export type CoreCompletionGetCourseCompletionStatusWSParams = {
|
|||
/**
|
||||
* Data returned by core_completion_get_course_completion_status WS.
|
||||
*/
|
||||
export type CoreCompletionGetCourseCompletionStatusWSResponse = {
|
||||
export type AddonCourseCompletionGetCourseCompletionStatusWSResponse = {
|
||||
completionstatus: AddonCourseCompletionCourseCompletionStatus; // Course status.
|
||||
warnings?: CoreWSExternalWarning[];
|
||||
};
|
||||
|
@ -308,6 +308,6 @@ export type CoreCompletionGetCourseCompletionStatusWSResponse = {
|
|||
/**
|
||||
* Params of core_completion_mark_course_self_completed WS.
|
||||
*/
|
||||
export type CoreCompletionMarkCourseSelfCompletedWSParams = {
|
||||
export type AddonCourseCompletionMarkCourseSelfCompletedWSParams = {
|
||||
courseid: number; // Course ID.
|
||||
};
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
<ion-list [id]="uniqueId" role="menu">
|
||||
<ion-list-header *ngIf="title">{{title}}</ion-list-header>
|
||||
<ion-list-header *ngIf="title">
|
||||
<ion-label>{{title}}</ion-label>
|
||||
</ion-list-header>
|
||||
<ion-item class="ion-text-wrap" *ngFor="let item of items" core-link [capture]="item.captureLink" [autoLogin]="item.autoLogin"
|
||||
[href]="item.href" (click)="itemClicked($event, item)" [attr.aria-label]="item.ariaAction" [hidden]="item.hidden"
|
||||
[detail]="(item.href && !item.iconAction) || null" role="menuitem">
|
||||
<ion-icon *ngIf="item.iconDescription" [name]="item.iconDescription" [attr.aria-label]="item.ariaDescription" slot="start">
|
||||
</ion-icon>
|
||||
<core-format-text [clean]="true" [text]="item.content" [filter]="false"></core-format-text>
|
||||
<ion-label><core-format-text [clean]="true" [text]="item.content" [filter]="false"></core-format-text></ion-label>
|
||||
<ion-icon *ngIf="(item.href || item.action) && item.iconAction && item.iconAction != 'spinner'" [name]="item.iconAction"
|
||||
[class.icon-slash]="item.iconSlash" slot="end">
|
||||
</ion-icon>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
padding: 0 calc(var(--padding-start) / 2);
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: calc(var(--padding-bottom) / 2);
|
||||
bottom: 8px;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
z-index: 3;
|
||||
|
|
|
@ -10,8 +10,10 @@
|
|||
<core-loading [hideUntil]="loaded">
|
||||
<ion-list>
|
||||
<ion-item class="ion-text-wrap">
|
||||
<p class="item-heading">{{ 'core.contentlinks.chooseaccounttoopenlink' | translate }}</p>
|
||||
<p>{{ url }}</p>
|
||||
<ion-label>
|
||||
<p class="item-heading">{{ 'core.contentlinks.chooseaccounttoopenlink' | translate }}</p>
|
||||
<p>{{ url }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item *ngFor="let site of sites" (click)="siteClicked(site.id)" detail="false">
|
||||
<ion-avatar slot="start">
|
||||
|
@ -19,12 +21,16 @@
|
|||
alt="{{ 'core.pictureof' | translate:{$a: site.fullName} }}" role="presentation"
|
||||
onError="this.src='assets/img/user-avatar.png'">
|
||||
</ion-avatar>
|
||||
<h2>{{site.fullName}}</h2>
|
||||
<p><core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text></p>
|
||||
<p>{{site.siteUrl}}</p>
|
||||
<ion-label>
|
||||
<h2>{{site.fullName}}</h2>
|
||||
<p><core-format-text [text]="site.siteName" clean="true" [siteId]="site.id"></core-format-text></p>
|
||||
<p>{{site.siteUrl}}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item>
|
||||
<ion-button expand="block" (click)="cancel()">{{ 'core.login.cancel' | translate }}</ion-button>
|
||||
<ion-label>
|
||||
<ion-button expand="block" (click)="cancel()">{{ 'core.login.cancel' | translate }}</ion-button>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</core-loading>
|
||||
|
|
|
@ -213,7 +213,7 @@ export class CoreCoursesCourseProgressComponent implements OnInit, OnDestroy {
|
|||
},
|
||||
event: e,
|
||||
});
|
||||
popover.present();
|
||||
await popover.present();
|
||||
|
||||
const action = await popover.onDidDismiss<string>();
|
||||
|
||||
|
|
|
@ -15,17 +15,19 @@
|
|||
<ion-content class="ion-padding">
|
||||
<form (ngSubmit)="submitPassword($event)" #enrolPasswordForm>
|
||||
<ion-item>
|
||||
<core-show-password [name]="'password'">
|
||||
<ion-input
|
||||
class="ion-text-wrap core-ioninput-password"
|
||||
name="password"
|
||||
type="password"
|
||||
placeholder="{{ 'core.courses.password' | translate }}"
|
||||
[(ngModel)]="password"
|
||||
[core-auto-focus]
|
||||
[clearOnEdit]="false">
|
||||
</ion-input>
|
||||
</core-show-password>
|
||||
<ion-label>
|
||||
<core-show-password [name]="'password'">
|
||||
<ion-input
|
||||
class="ion-text-wrap core-ioninput-password"
|
||||
name="password"
|
||||
type="password"
|
||||
placeholder="{{ 'core.courses.password' | translate }}"
|
||||
[(ngModel)]="password"
|
||||
[core-auto-focus]
|
||||
[clearOnEdit]="false">
|
||||
</ion-input>
|
||||
</core-show-password>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<div class="ion-padding">
|
||||
<ion-button expand="block" [disabled]="!password" type="submit">{{ 'core.courses.enrolme' | translate }}</ion-button>
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
<h2>{{contact.fullname}}</h2>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item-divider></ion-item-divider>
|
||||
<ion-item-divider><ion-label></ion-label></ion-item-divider>
|
||||
</ng-container>
|
||||
|
||||
<ion-item class="ion-text-wrap" *ngIf="course.customfields">
|
||||
|
|
|
@ -107,7 +107,7 @@ export class CoreEmulatorCaptureHelperProvider {
|
|||
componentProps: params,
|
||||
});
|
||||
|
||||
modal.present();
|
||||
await modal.present();
|
||||
|
||||
const result = await modal.onDidDismiss();
|
||||
|
||||
|
|
|
@ -420,7 +420,7 @@ export class CoreFileUploaderHelperProvider {
|
|||
header: title ? title : Translate.instance.instant('core.fileuploader.' + (upload ? 'uploadafile' : 'selectafile')),
|
||||
buttons: buttons,
|
||||
});
|
||||
this.actionSheet.present();
|
||||
await this.actionSheet.present();
|
||||
|
||||
// Call afterRender for each button.
|
||||
setTimeout(() => {
|
||||
|
|
|
@ -130,7 +130,7 @@ export class CoreFileUploaderProvider {
|
|||
backdropDismiss: false,
|
||||
});
|
||||
|
||||
modal.present();
|
||||
await modal.present();
|
||||
|
||||
const result = await modal.onWillDismiss();
|
||||
|
||||
|
|
|
@ -31,17 +31,21 @@
|
|||
|
||||
<form ion-list [formGroup]="credForm" (ngSubmit)="login($event)" class="core-login-form" #credentialsForm>
|
||||
<ion-item *ngIf="siteChecked && !isBrowserSSO">
|
||||
<ion-input type="text" name="username" placeholder="{{ 'core.login.username' | translate }}"
|
||||
formControlName="username" autocapitalize="none" autocorrect="off" autocomplete="username" enterkeyhint="next"
|
||||
required="true"></ion-input>
|
||||
<ion-label>
|
||||
<ion-input type="text" name="username" placeholder="{{ 'core.login.username' | translate }}"
|
||||
formControlName="username" autocapitalize="none" autocorrect="off" autocomplete="username" enterkeyhint="next"
|
||||
required="true"></ion-input>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item *ngIf="siteChecked && !isBrowserSSO" class="ion-margin-bottom">
|
||||
<core-show-password [name]="'password'">
|
||||
<ion-input name="password" type="password" placeholder="{{ 'core.login.password' | translate }}"
|
||||
formControlName="password" [clearOnEdit]="false" autocomplete="current-password" enterkeyhint="go"
|
||||
required="true">
|
||||
</ion-input>
|
||||
</core-show-password>
|
||||
<ion-label>
|
||||
<core-show-password [name]="'password'">
|
||||
<ion-input name="password" type="password" placeholder="{{ 'core.login.password' | translate }}"
|
||||
formControlName="password" [clearOnEdit]="false" autocomplete="current-password" enterkeyhint="go"
|
||||
required="true">
|
||||
</ion-input>
|
||||
</core-show-password>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-button expand="block" type="submit" [disabled]="siteChecked && !isBrowserSSO && !credForm.valid"
|
||||
class="ion-margin core-login-login-button">
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
<ion-content>
|
||||
<ion-list lines="none">
|
||||
<ion-item class="ion-text-wrap">
|
||||
{{ 'core.login.passwordforgotteninstructions2' | translate }}
|
||||
<ion-label>{{ 'core.login.passwordforgotteninstructions2' | translate }}</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
<ion-card>
|
||||
<form ion-list [formGroup]="myForm" (ngSubmit)="resetPassword($event)" #resetPasswordForm>
|
||||
<ion-item-divider class="ion-text-wrap">
|
||||
{{ 'core.login.searchby' | translate }}
|
||||
<ion-label>{{ 'core.login.searchby' | translate }}</ion-label>
|
||||
</ion-item-divider>
|
||||
<ion-radio-group formControlName="field">
|
||||
<ion-item>
|
||||
|
@ -29,9 +29,11 @@
|
|||
</ion-item>
|
||||
</ion-radio-group>
|
||||
<ion-item>
|
||||
<ion-input type="text" name="value" placeholder="{{ 'core.login.usernameoremail' | translate }}"
|
||||
formControlName="value" autocapitalize="none" autocorrect="off" [core-auto-focus]="autoFocus">
|
||||
</ion-input>
|
||||
<ion-label>
|
||||
<ion-input type="text" name="value" placeholder="{{ 'core.login.usernameoremail' | translate }}"
|
||||
formControlName="value" autocapitalize="none" autocorrect="off" [core-auto-focus]="autoFocus">
|
||||
</ion-input>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-button type="submit" class="ion-margin" expand="block" [disabled]="!myForm.valid">
|
||||
{{ 'core.courses.search' | translate }}
|
||||
|
|
|
@ -39,12 +39,14 @@
|
|||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-margin-bottom">
|
||||
<core-show-password [name]="'password'">
|
||||
<ion-input class="core-ioninput-password" name="password" type="password"
|
||||
placeholder="{{ 'core.login.password' | translate }}" formControlName="password" [clearOnEdit]="false"
|
||||
autocomplete="current-password" enterkeyhint="go" required="true">
|
||||
</ion-input>
|
||||
</core-show-password>
|
||||
<ion-label>
|
||||
<core-show-password [name]="'password'">
|
||||
<ion-input class="core-ioninput-password" name="password" type="password"
|
||||
placeholder="{{ 'core.login.password' | translate }}" formControlName="password" [clearOnEdit]="false"
|
||||
autocomplete="current-password" enterkeyhint="go" required="true">
|
||||
</ion-input>
|
||||
</core-show-password>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-grid class="ion-padding">
|
||||
<ion-row>
|
||||
|
|
|
@ -74,7 +74,11 @@
|
|||
</ng-container>
|
||||
|
||||
<ion-item *ngIf="siteSelector == 'url'" lines="none">
|
||||
<ion-button expand="block" [disabled]="!siteForm.valid" text-wrap>{{ 'core.login.connect' | translate }}</ion-button>
|
||||
<ion-label>
|
||||
<ion-button expand="block" [disabled]="!siteForm.valid" text-wrap>
|
||||
{{ 'core.login.connect' | translate }}
|
||||
</ion-button>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</form>
|
||||
|
||||
|
|
|
@ -20,9 +20,9 @@
|
|||
<p>{{ siteUrl }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item-divider></ion-item-divider>
|
||||
<ion-item-divider><ion-label></ion-label></ion-item-divider>
|
||||
<ion-item class="ion-text-center" *ngIf="(!handlers || !handlers.length) && !handlersLoaded">
|
||||
<ion-spinner></ion-spinner>
|
||||
<ion-label><ion-spinner></ion-spinner></ion-label>
|
||||
</ion-item>
|
||||
<ion-item button *ngFor="let handler of handlers" [ngClass]="['core-moremenu-handler', handler.class || '']"
|
||||
(click)="openHandler(handler)" title="{{ handler.title | translate }}" detail="true" detail>
|
||||
|
@ -83,7 +83,7 @@
|
|||
<h2>{{ logoutLabel | translate }}</h2>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item-divider></ion-item-divider>
|
||||
<ion-item-divider><ion-label></ion-label></ion-item-divider>
|
||||
<ion-item button router-direction="forward" routerLink="settings"
|
||||
title="{{ 'core.settings.appsettings' | translate }}" detail>
|
||||
<ion-icon name="fas-cogs" slot="start"></ion-icon>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
(click)="historyClicked($event, item.searchedtext)" tabindex="1" detail>
|
||||
<ion-icon name="fas-history" slot="start">
|
||||
</ion-icon>
|
||||
{{item.searchedtext}}
|
||||
<ion-label>{{item.searchedtext}}</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
</form>
|
||||
|
|
|
@ -24,9 +24,11 @@
|
|||
<ion-segment [(ngModel)]="selectedFontSize" (ionChange)="fontSizeChanged()" color="primary" item-content>
|
||||
<ion-segment-button *ngFor="let fontSize of fontSizes" [value]="fontSize.size"
|
||||
[ngStyle]="{'font-size.px': fontSize.style}">
|
||||
{{ 'core.settings.fontsizecharacter' | translate }}
|
||||
<!-- Empty element styled with the largest font size, so all buttons share a common baseline. -->
|
||||
<span [ngStyle]="{'font-size.px': fontSizes[fontSizes.length - 1].style}"></span>
|
||||
<ion-label>
|
||||
{{ 'core.settings.fontsizecharacter' | translate }}
|
||||
<!-- Empty element styled with the largest font size, so all buttons share a common baseline. -->
|
||||
<span [ngStyle]="{'font-size.px': fontSizes[fontSizes.length - 1].style}"></span>
|
||||
</ion-label>
|
||||
</ion-segment-button>
|
||||
</ion-segment>
|
||||
</ion-item>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<p>{{ siteUrl }}</p>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item-divider></ion-item-divider>
|
||||
<ion-item-divider><ion-label></ion-label></ion-item-divider>
|
||||
<ion-item *ngIf="isIOS"
|
||||
(click)="openHandler('CoreSharedFilesListPage', {manage: true, siteId: siteId, hideSitePicker: true})"
|
||||
[title]="'core.sharedfiles.sharedfiles' | translate"
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<core-loading [hideUntil]="userLoaded">
|
||||
<ion-list *ngIf="user">
|
||||
<ion-item-group *ngIf="hasContact">
|
||||
<ion-item-divider>{{ 'core.user.contact' | translate}}</ion-item-divider>
|
||||
<ion-item-divider><ion-label>{{ 'core.user.contact' | translate}}</ion-label></ion-item-divider>
|
||||
<ion-item class="ion-text-wrap" *ngIf="user.email">
|
||||
<ion-label>
|
||||
<h2>{{ 'core.user.email' | translate }}</h2>
|
||||
|
@ -60,7 +60,7 @@
|
|||
</ion-item>
|
||||
</ion-item-group>
|
||||
<ion-item-group *ngIf="hasDetails">
|
||||
<ion-item-divider>{{ 'core.userdetails' | translate}}</ion-item-divider>
|
||||
<ion-item-divider><ion-label>{{ 'core.userdetails' | translate}}</ion-label></ion-item-divider>
|
||||
<ion-item class="ion-text-wrap" *ngIf="user.url">
|
||||
<ion-label>
|
||||
<h2>{{ 'core.user.webpage' | translate}}</h2>
|
||||
|
@ -80,7 +80,7 @@
|
|||
</core-user-profile-field>
|
||||
</ion-item-group>
|
||||
<ion-item-group *ngIf="user.description">
|
||||
<ion-item-divider>{{ 'core.user.description' | translate}}</ion-item-divider>
|
||||
<ion-item-divider><ion-label>{{ 'core.user.description' | translate}}</ion-label></ion-item-divider>
|
||||
<ion-item class="ion-text-wrap">
|
||||
<ion-label>
|
||||
<p><core-format-text [text]="user.description" contextLevel="user" [contextInstanceId]="user.id">
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
<ion-row class="ion-no-padding justify-content-between"
|
||||
*ngIf="communicationHandlers && communicationHandlers.length">
|
||||
<ion-col *ngFor="let handler of communicationHandlers" class="ion-align-self-center ion-text-center">
|
||||
<a (click)="handlerClicked($event, handler)" [ngClass]="['core-user-profile-handler', handler.class]"
|
||||
<a (click)="handlerClicked($event, handler)" [ngClass]="['core-user-profile-handler', handler.class || '']"
|
||||
title="{{handler.title | translate}}">
|
||||
<ion-icon [name]="handler.icon" slot="start"></ion-icon>
|
||||
<p>{{handler.title | translate}}</p>
|
||||
|
@ -56,11 +56,11 @@
|
|||
</ion-label>
|
||||
</ion-item>
|
||||
<ion-item class="ion-text-center core-loading-handlers" *ngIf="isLoadingHandlers">
|
||||
<ion-spinner></ion-spinner>
|
||||
<ion-label><ion-spinner></ion-spinner></ion-label>
|
||||
</ion-item>
|
||||
|
||||
<ion-item button *ngFor="let handler of newPageHandlers" class="ion-text-wrap" (click)="handlerClicked($event, handler)"
|
||||
[ngClass]="['core-user-profile-handler', handler.class]" [hidden]="handler.hidden"
|
||||
[ngClass]="['core-user-profile-handler', handler.class || '']" [hidden]="handler.hidden"
|
||||
title="{{ handler.title | translate }}" detail>
|
||||
<ion-icon *ngIf="handler.icon" [name]="handler.icon" slot="start"></ion-icon>
|
||||
<ion-label>
|
||||
|
@ -69,15 +69,17 @@
|
|||
</ion-item>
|
||||
|
||||
<ion-item *ngIf="actionHandlers && actionHandlers.length">
|
||||
<ion-button *ngFor="let handler of actionHandlers" expand="block" fill="outline"
|
||||
[ngClass]="['core-user-profile-handler', handler.class]" (click)="handlerClicked($event, handler)"
|
||||
[hidden]="handler.hidden" title="{{ handler.title | translate }}" [disabled]="handler.spinner">
|
||||
<ion-icon *ngIf="handler.icon" [name]="handler.icon" slot="start"></ion-icon>
|
||||
<ion-label>
|
||||
<span>{{ handler.title | translate }}</span>
|
||||
</ion-label>
|
||||
<ion-spinner *ngIf="handler.spinner"></ion-spinner>
|
||||
</ion-button>
|
||||
<ion-label>
|
||||
<ion-button *ngFor="let handler of actionHandlers" expand="block" fill="outline"
|
||||
[ngClass]="['core-user-profile-handler', handler.class || '']" (click)="handlerClicked($event, handler)"
|
||||
[hidden]="handler.hidden" title="{{ handler.title | translate }}" [disabled]="handler.spinner">
|
||||
<ion-icon *ngIf="handler.icon" [name]="handler.icon" slot="start"></ion-icon>
|
||||
<ion-label>
|
||||
<span>{{ handler.title | translate }}</span>
|
||||
</ion-label>
|
||||
<ion-spinner *ngIf="handler.spinner"></ion-spinner>
|
||||
</ion-button>
|
||||
</ion-label>
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
|
|
|
@ -1574,7 +1574,7 @@ export class CoreDomUtilsProvider {
|
|||
cssClass: cssClass,
|
||||
});
|
||||
|
||||
loader.present();
|
||||
await loader.present();
|
||||
|
||||
return loader;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue