Merge pull request #1494 from crazyserver/MOBILE-2567

Mobile 2567
main
Juan Leyva 2018-08-30 09:49:18 +01:00 committed by GitHub
commit 955775f5fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 45 additions and 15 deletions

View File

@ -886,8 +886,14 @@ ion-alert.core-inapp-notification {
} }
} }
body.keyboard-is-open core-ion-tabs .tabbar { body.keyboard-is-open {
display: none; .scroll-content, .fixed-content {
margin-bottom: 0 !important;
}
core-ion-tabs .tabbar {
display: none;
}
} }
.item.item-radio, .item.item-checkbox { .item.item-radio, .item.item-checkbox {

View File

@ -5,6 +5,7 @@ core-rich-text-editor {
min-height: 40vh; min-height: 40vh;
width: 100%; width: 100%;
position: relative; position: relative;
display: block;
> div { > div {
position: absolute; position: absolute;

View File

@ -11,8 +11,7 @@ core-show-password {
background: transparent; background: transparent;
padding: 0 ($content-padding / 2); padding: 0 ($content-padding / 2);
position: absolute; position: absolute;
bottom: $content-padding / 2; @include position(null, 0, $content-padding / 2, null);
right: 0;
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
} }
@ -43,7 +42,6 @@ core-show-password {
bottom: 7px; bottom: 7px;
} }
core-show-password .button[icon-only] { core-show-password .button[icon-only] {
bottom: 12px; @include position(null, 5px, 12px, null);
right: 5px;
} }
} }

View File

@ -45,7 +45,7 @@ core-course-module {
} }
.core-module-buttons-more .spinner { .core-module-buttons-more .spinner {
right: 13px; @include position(null, 13px, null, null);
position: absolute; position: absolute;
} }
} }

View File

@ -37,7 +37,7 @@
<core-loading [hideUntil]="courses.loaded" class="core-loading-center"> <core-loading [hideUntil]="courses.loaded" class="core-loading-center">
<!-- "Time" selector. --> <!-- "Time" selector. -->
<div padding class="clearfix" [hidden]="showFilter" ion-row justify-content-between> <div padding class="clearfix" [hidden]="showFilter" ion-row justify-content-between>
<ion-select float-start [title]="'core.show' | translate" [(ngModel)]="courses.selected" ion-col (ngModelChange)="selectedChanged()" interface="popover"> <ion-select float-start [title]="'core.show' | translate" [(ngModel)]="courses.selected" ion-col (ngModelChange)="selectedChanged()" interface="popover">
<ion-option value="inprogress">{{ 'core.courses.inprogress' | translate }}</ion-option> <ion-option value="inprogress">{{ 'core.courses.inprogress' | translate }}</ion-option>
<ion-option value="future">{{ 'core.courses.future' | translate }}</ion-option> <ion-option value="future">{{ 'core.courses.future' | translate }}</ion-option>
<ion-option value="past">{{ 'core.courses.past' | translate }}</ion-option> <ion-option value="past">{{ 'core.courses.past' | translate }}</ion-option>

View File

@ -21,7 +21,7 @@
<ion-item *ngIf="siteChecked && !isBrowserSSO"> <ion-item *ngIf="siteChecked && !isBrowserSSO">
<ion-input type="text" name="username" placeholder="{{ 'core.login.username' | translate }}" formControlName="username" autocapitalize="none" autocorrect="off"></ion-input> <ion-input type="text" name="username" placeholder="{{ 'core.login.username' | translate }}" formControlName="username" autocapitalize="none" autocorrect="off"></ion-input>
</ion-item> </ion-item>
<ion-item *ngIf="siteChecked && !isBrowserSSO"> <ion-item *ngIf="siteChecked && !isBrowserSSO" margin-bottom>
<core-show-password item-content [name]="'password'"> <core-show-password item-content [name]="'password'">
<ion-input class="core-ioninput-password" name="password" type="password" placeholder="{{ 'core.login.password' | translate }}" formControlName="password" core-show-password [clearOnEdit]="false"></ion-input> <ion-input class="core-ioninput-password" name="password" type="password" placeholder="{{ 'core.login.password' | translate }}" formControlName="password" core-show-password [clearOnEdit]="false"></ion-input>
</core-show-password> </core-show-password>

View File

@ -87,7 +87,7 @@
</ion-item> </ion-item>
<ion-item text-wrap> <ion-item text-wrap>
<ion-label stacked core-mark-required="true">{{ 'core.user.emailagain' | translate }}</ion-label> <ion-label stacked core-mark-required="true">{{ 'core.user.emailagain' | translate }}</ion-label>
<ion-input type="email" name="email2" placeholder="{{ 'core.user.emailagain' | translate }}" formControlName="email2" autocapitalize="none" autocorrect="off" pattern="{{signupForm.controls.email.value}}"></ion-input> <ion-input type="email" name="email2" placeholder="{{ 'core.user.emailagain' | translate }}" formControlName="email2" autocapitalize="none" autocorrect="off" [pattern]="escapeMail(signupForm.controls.email.value)"></ion-input>
<core-input-errors item-content [control]="signupForm.controls.email2" [errorMessages]="email2Errors"></core-input-errors> <core-input-errors item-content [control]="signupForm.controls.email2" [errorMessages]="email2Errors"></core-input-errors>
</ion-item> </ion-item>
<ion-item *ngFor="let nameField of settings.namefields" text-wrap> <ion-item *ngFor="let nameField of settings.namefields" text-wrap>

View File

@ -283,6 +283,16 @@ export class CoreLoginEmailSignupPage {
} }
} }
/**
* Escape mail to avoid special characters to be treated as a RegExp.
*
* @param {string} text Initial mail.
* @return {string} Escaped mail.
*/
escapeMail(text: string): string {
return this.textUtils.escapeForRegex(text);
}
/** /**
* Show authentication instructions. * Show authentication instructions.
*/ */

View File

@ -31,7 +31,7 @@
<p>{{username}}</p> <p>{{username}}</p>
</ion-item> </ion-item>
<form [formGroup]="credForm" (ngSubmit)="login()"> <form [formGroup]="credForm" (ngSubmit)="login()">
<ion-item> <ion-item margin-bottom>
<core-show-password item-content [name]="'password'"> <core-show-password item-content [name]="'password'">
<ion-input class="core-ioninput-password" name="password" type="password" placeholder="{{ 'core.login.password' | translate }}" formControlName="password" [clearOnEdit]="false"></ion-input> <ion-input class="core-ioninput-password" name="password" type="password" placeholder="{{ 'core.login.password' | translate }}" formControlName="password" [clearOnEdit]="false"></ion-input>
</core-show-password> </core-show-password>

View File

@ -203,7 +203,7 @@ export class CoreLoginHelperProvider {
return this.requestPasswordReset(siteUrl).then(() => { return this.requestPasswordReset(siteUrl).then(() => {
return true; return true;
}).catch((error) => { }).catch((error) => {
return error.available == 1 || error.errorcode != 'invalidrecord'; return error.available == 1 || (error.errorcode != 'invalidrecord' && error.errorcode != '');
}); });
} }

View File

@ -3,6 +3,9 @@ page-core-mainmenu-more {
$core-more-background-ios: $list-ios-background-color !default; $core-more-background-ios: $list-ios-background-color !default;
$core-more-background-md: $list-md-background-color !default; $core-more-background-md: $list-md-background-color !default;
$core-more-background-wp: $item-wp-body-background-color !default; $core-more-background-wp: $item-wp-body-background-color !default;
$core-more-activated-background-ios: color-shade($core-more-background-ios) !default;
$core-more-activated-background-md: color-shade($core-more-background-md) !default;
$core-more-activated-background-wp: color-shade($core-more-background-wp) !default;
$core-more-divider-ios: $item-ios-divider-background !default; $core-more-divider-ios: $item-ios-divider-background !default;
$core-more-divider-md: $item-md-divider-background !default; $core-more-divider-md: $item-md-divider-background !default;
$core-more-divider-wp: $item-wp-divider-background !default; $core-more-divider-wp: $item-wp-divider-background !default;
@ -14,7 +17,7 @@ page-core-mainmenu-more {
$core-more-color-wp: $item-wp-body-text-color !default; $core-more-color-wp: $item-wp-body-text-color !default;
.item-block { .item-block {
&.item-ios, &.item-ios p { &.item-ios {
background-color: $core-more-background-ios; background-color: $core-more-background-ios;
color: $core-more-color-ios; color: $core-more-color-ios;
@ -22,7 +25,7 @@ page-core-mainmenu-more {
border-bottom: $hairlines-width solid $core-more-border-ios; border-bottom: $hairlines-width solid $core-more-border-ios;
} }
} }
&.item-md, &.item-md p { &.item-md {
background-color: $core-more-background-md; background-color: $core-more-background-md;
color: $core-more-color-md; color: $core-more-color-md;
@ -30,7 +33,7 @@ page-core-mainmenu-more {
border-bottom: 1px solid $core-more-border-md; border-bottom: 1px solid $core-more-border-md;
} }
} }
&.item-wp, &.item-wp p { &.item-wp {
background-color: $core-more-background-wp; background-color: $core-more-background-wp;
color: $core-more-color-wp; color: $core-more-color-wp;
@ -38,6 +41,18 @@ page-core-mainmenu-more {
border-bottom: 1px solid $core-more-border-wp; border-bottom: 1px solid $core-more-border-wp;
} }
} }
&.activated {
&.item-ios {
background-color: $core-more-activated-background-ios;
}
&.item-md {
background-color: $core-more-activated-background-md;
}
&.item-wp {
background-color: $core-more-activated-background-wp;
}
}
} }
ion-icon { ion-icon {