Skip to content

Commit

Permalink
Merge pull request #3981 from dpalou/MOBILE-2768
Browse files Browse the repository at this point in the history
Mobile 2768
  • Loading branch information
crazyserver authored Mar 18, 2024
2 parents 704840c + 62a0423 commit d41fab4
Show file tree
Hide file tree
Showing 37 changed files with 2,486 additions and 310 deletions.
1 change: 1 addition & 0 deletions .github/workflows/acceptance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ jobs:
"@core_grades"
"@core_login"
"@core_mainmenu"
"@core_policy"
"@core_reminders"
"@core_reportbuilder"
"@core_search"
Expand Down
43 changes: 37 additions & 6 deletions scripts/langindex.json
Original file line number Diff line number Diff line change
Expand Up @@ -1553,6 +1553,7 @@
"core.connectionlost": "local_moodlemobileapp",
"core.considereddigitalminor": "moodle",
"core.contactsupport": "local_moodlemobileapp",
"core.contactverb": "local_moodlemobileapp",
"core.content": "moodle",
"core.contenteditingsynced": "local_moodlemobileapp",
"core.contentlinks.chooseaccount": "local_moodlemobileapp",
Expand Down Expand Up @@ -2155,11 +2156,6 @@
"core.login.passwordforgotten": "moodle",
"core.login.passwordforgotteninstructions2": "moodle",
"core.login.passwordrequired": "local_moodlemobileapp",
"core.login.policyaccept": "moodle",
"core.login.policyacceptmandatory": "local_moodlemobileapp",
"core.login.policyagree": "moodle",
"core.login.policyagreement": "moodle",
"core.login.policyagreementclick": "moodle",
"core.login.potentialidps": "auth",
"core.login.profileinvaliddata": "admin",
"core.login.recaptchachallengeimage": "local_moodlemobileapp",
Expand All @@ -2183,7 +2179,6 @@
"core.login.sitehasredirect": "local_moodlemobileapp",
"core.login.siteinmaintenance": "local_moodlemobileapp",
"core.login.sitenotallowed": "local_moodlemobileapp",
"core.login.sitepolicynotagreederror": "local_moodlemobileapp",
"core.login.siteurl": "local_moodlemobileapp",
"core.login.siteurlrequired": "local_moodlemobileapp",
"core.login.startsignup": "moodle",
Expand Down Expand Up @@ -2288,6 +2283,42 @@
"core.phone": "moodle",
"core.pictureof": "moodle",
"core.play": "local_moodlemobileapp",
"core.policy.acceptancenote": "tool_policy",
"core.policy.acceptancestatusaccepted": "tool_policy",
"core.policy.acceptancestatusacceptedbehalf": "tool_policy",
"core.policy.acceptancestatusdeclined": "tool_policy",
"core.policy.acceptancestatusdeclinedbehalf": "tool_policy",
"core.policy.acceptancestatuspending": "tool_policy",
"core.policy.agreepolicies": "tool_policy",
"core.policy.backtotop": "tool_policy",
"core.policy.consentpagetitle": "tool_policy",
"core.policy.contactdpo": "tool_policy",
"core.policy.havereadandagreepolicy": "local_moodlemobileapp",
"core.policy.idontagree": "tool_policy",
"core.policy.mustagreetocontinue": "tool_policy",
"core.policy.nopoliciesyet": "local_moodlemobileapp",
"core.policy.policiesagreements": "tool_policy",
"core.policy.policyacceptmandatory": "local_moodlemobileapp",
"core.policy.policyagree": "moodle",
"core.policy.policyagreement": "moodle",
"core.policy.policyagreementclick": "moodle",
"core.policy.policydocname": "tool_policy",
"core.policy.policydocoptionalyes": "tool_policy",
"core.policy.policydocrevision": "tool_policy",
"core.policy.refertofullpolicytext": "tool_policy",
"core.policy.response": "tool_policy",
"core.policy.responseby": "tool_policy",
"core.policy.responseon": "tool_policy",
"core.policy.sitepolicynotagreederror": "local_moodlemobileapp",
"core.policy.status1": "tool_policy",
"core.policy.steppolicies": "tool_policy",
"core.policy.useracceptanceactionaccept": "tool_policy",
"core.policy.useracceptanceactionacceptone": "tool_policy",
"core.policy.useracceptanceactiondecline": "tool_policy",
"core.policy.useracceptanceactiondeclineone": "tool_policy",
"core.policy.useracceptanceactionrevoke": "tool_policy",
"core.policy.useracceptanceactionrevokeone": "tool_policy",
"core.policy.viewpolicy": "local_moodlemobileapp",
"core.previous": "moodle",
"core.proceed": "moodle",
"core.publicprofile": "moodle",
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/core/classes/sites/authenticated-site.ts
Original file line number Diff line number Diff line change
Expand Up @@ -669,9 +669,9 @@ export class CoreAuthenticatedSite extends CoreUnauthenticatedSite {
} else if (error.errorcode === 'sitepolicynotagreed') {
// Site policy not agreed, trigger event.
this.triggerSiteEvent(CoreEvents.SITE_POLICY_NOT_AGREED, {});
error.message = Translate.instant('core.login.sitepolicynotagreederror');
error.message = Translate.instant('core.policy.sitepolicynotagreederror');

throw new CoreWSError(error);
throw new CoreSilentError(error);
} else if (error.errorcode === 'dmlwriteexception' && CoreTextUtils.hasUnicodeData(data)) {
if (!this.cleanUnicode) {
// Try again cleaning unicode.
Expand Down
3 changes: 3 additions & 0 deletions src/core/classes/sites/unauthenticated-site.ts
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,9 @@ export type CoreSiteInfoResponse = {
usercalendartype?: string; // Calendar typed used by the user.
userissiteadmin?: boolean; // Whether the user is a site admin or not.
theme?: string; // Current theme for the user.
limitconcurrentlogins?: number; // @since 4.0. Number of concurrent sessions allowed.
usersessionscount?: number; // @since 4.0. Number of active sessions for current user. Only if limitconcurrentlogins is used.
policyagreed?: number; // @since 4.4. Whether user accepted all the policies.
};

/**
Expand Down
5 changes: 4 additions & 1 deletion src/core/components/input-errors/core-input-errors.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@
<ng-container *ngFor="let error of errorKeys">
<div *ngIf="control.hasError(error)" class="core-input-error">
<ng-container *ngIf="error !== 'pattern'">
<span *ngIf="errorMessages && errorMessages[error]">{{ errorMessages[error] | translate }}</span>
<span *ngIf="errorMessages && errorMessages[error]">
<ion-icon *ngIf="error === 'required'" name="fas-circle-exclamation" aria-hidden="true" />
{{ errorMessages[error] | translate }}
</span>
<span *ngIf="(!errorMessages || !errorMessages[error]) && error === 'max' && control.errors?.max">
{{ 'core.login.invalidvaluemax' | translate:{$a: control.errors!.max.max} }}
</span>
Expand Down
2 changes: 2 additions & 0 deletions src/core/features/features.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import { CoreUserToursModule } from './usertours/user-tours.module';
import { CoreViewerModule } from './viewer/viewer.module';
import { CoreXAPIModule } from './xapi/xapi.module';
import { CoreReportBuilderModule } from './reportbuilder/reportbuilder.module';
import { CorePolicyModule } from './policy/policy.module';

@NgModule({
imports: [
Expand Down Expand Up @@ -80,6 +81,7 @@ import { CoreReportBuilderModule } from './reportbuilder/reportbuilder.module';
CoreViewerModule,
CoreXAPIModule,
CoreReportBuilderModule,
CorePolicyModule,

// Import last to allow overrides.
CoreEmulatorModule,
Expand Down
6 changes: 0 additions & 6 deletions src/core/features/login/lang.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,6 @@
"passwordforgotten": "Forgotten password",
"passwordforgotteninstructions2": "To reset your password, submit your username or your email address below. If we can find you in the database, an email will be sent to your email address, with instructions how to get access again.",
"passwordrequired": "Password required",
"policyaccept": "I understand and agree",
"policyacceptmandatory": "I understand and agree to the mandatory site policies",
"policyagree": "You must agree to this policy to continue using this site. Do you agree?",
"policyagreement": "Site policy agreement",
"policyagreementclick": "Link to site policy agreement",
"potentialidps": "Log in using your account on:",
"profileinvaliddata": "Invalid value",
"recaptchachallengeimage": "reCAPTCHA challenge image",
Expand All @@ -118,7 +113,6 @@
"sitehasredirect": "Your site contains at least one HTTP redirect. The app cannot follow redirects, this could be the issue that's preventing the app from connecting to your site.",
"siteinmaintenance": "Your site is in maintenance mode",
"sitenotallowed": "This site is no longer available.",
"sitepolicynotagreederror": "Site policy not agreed.",
"siteurl": "Site URL",
"siteurlrequired": "Site URL required i.e <i>https://campus.example.edu</i>",
"startsignup": "Create new account",
Expand Down
6 changes: 0 additions & 6 deletions src/core/features/login/login-lazy.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import { hasSitesGuard } from './guards/has-sites';
import { CoreLoginComponentsModule } from './components/components.module';
import { CoreLoginHelper } from './services/login-helper';
import { CoreLoginForgottenPasswordPage } from '@features/login/pages/forgotten-password/forgotten-password';
import { CoreLoginSitePolicyPage } from '@features/login/pages/site-policy/site-policy';
import { CoreUserComponentsModule } from '@features/user/components/components.module';
import { CoreLoginEmailSignupPage } from '@features/login/pages/email-signup/email-signup';
import { CoreLoginSitePage } from '@features/login/pages/site/site';
Expand Down Expand Up @@ -54,10 +53,6 @@ const routes: Routes = [
path: 'changepassword',
component: CoreLoginChangePasswordPage,
},
{
path: 'sitepolicy',
component: CoreLoginSitePolicyPage,
},
{
path: 'emailsignup',
component: CoreLoginEmailSignupPage,
Expand All @@ -77,7 +72,6 @@ const routes: Routes = [
],
declarations: [
CoreLoginForgottenPasswordPage,
CoreLoginSitePolicyPage,
CoreLoginSitePage,
CoreLoginSitesPage,
CoreLoginChangePasswordPage,
Expand Down
4 changes: 0 additions & 4 deletions src/core/features/login/login.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,6 @@ const appRoutes: Routes = [
CoreLoginHelper.passwordChangeForced(data.siteId);
});

CoreEvents.on(CoreEvents.SITE_POLICY_NOT_AGREED, (data) => {
CoreLoginHelper.sitePolicyNotAgreed(data.siteId);
});

await CoreLoginHelper.initialize();
},
},
Expand Down
6 changes: 3 additions & 3 deletions src/core/features/login/pages/email-signup/email-signup.html
Original file line number Diff line number Diff line change
Expand Up @@ -183,19 +183,19 @@ <h2 [core-mark-required]="true">{{ 'core.login.security_question' | translate }}
<ng-container *ngIf="settings.sitepolicy">
<ion-item-divider class="ion-text-wrap">
<ion-label>
<h2>{{ 'core.login.policyagreement' | translate }}</h2>
<h2>{{ 'core.policy.policyagreement' | translate }}</h2>
</ion-label>
</ion-item-divider>
<ion-item class="ion-text-wrap">
<ion-label>
<a [href]="settings.sitepolicy" core-link capture="false">
{{ 'core.login.policyagreementclick' | translate }}
{{ 'core.policy.policyagreementclick' | translate }}
</a>
</ion-label>
</ion-item>
<ion-item class="ion-text-wrap">
<ion-checkbox labelPlacement="start" justify="space-between" name="policyagreed" formControlName="policyagreed">
<p [core-mark-required]="true">{{ 'core.login.policyacceptmandatory' | translate }}</p>
<p [core-mark-required]="true">{{ 'core.policy.policyacceptmandatory' | translate }}</p>
</ion-checkbox>
<core-input-errors [control]="signupForm.controls.policyagreed" [errorMessages]="policyErrors" />
</ion-item>
Expand Down
8 changes: 2 additions & 6 deletions src/core/features/login/pages/email-signup/email-signup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ export class CoreLoginEmailSignupPage implements OnInit {
};
this.passwordErrors = { required: 'core.login.passwordrequired' };
this.emailErrors = { required: 'core.login.missingemail' };
this.policyErrors = { required: 'core.login.policyagree' };
this.policyErrors = { required: 'core.policy.policyagree' };
this.email2Errors = {
required: 'core.login.missingemail',
pattern: 'core.login.emailnotmatch',
Expand Down Expand Up @@ -215,11 +215,7 @@ export class CoreLoginEmailSignupPage implements OnInit {
* @returns Promise resolved when done.
*/
protected async getSignupSettings(): Promise<void> {
this.settings = await CoreWS.callAjax<AuthEmailSignupSettings>(
'auth_email_get_signup_settings',
{},
{ siteUrl: this.site.getURL() },
);
this.settings = await CoreLoginHelper.getEmailSignupSettings(this.site.getURL());

if (CoreUserProfileFieldDelegate.hasRequiredUnsupportedField(this.settings.profilefields)) {
this.allRequiredSupported = false;
Expand Down
38 changes: 0 additions & 38 deletions src/core/features/login/pages/site-policy/site-policy.html

This file was deleted.

20 changes: 0 additions & 20 deletions src/core/features/login/pages/site-policy/site-policy.scss

This file was deleted.

Loading

0 comments on commit d41fab4

Please sign in to comment.