commit
5a2016cb67
|
@ -1515,7 +1515,6 @@
|
||||||
"core.course.confirmdownloadzerosize": "local_moodlemobileapp",
|
"core.course.confirmdownloadzerosize": "local_moodlemobileapp",
|
||||||
"core.course.confirmlimiteddownload": "local_moodlemobileapp",
|
"core.course.confirmlimiteddownload": "local_moodlemobileapp",
|
||||||
"core.course.confirmpartialdownloadsize": "local_moodlemobileapp",
|
"core.course.confirmpartialdownloadsize": "local_moodlemobileapp",
|
||||||
"core.course.contents": "local_moodlemobileapp",
|
|
||||||
"core.course.couldnotloadsectioncontent": "local_moodlemobileapp",
|
"core.course.couldnotloadsectioncontent": "local_moodlemobileapp",
|
||||||
"core.course.couldnotloadsections": "local_moodlemobileapp",
|
"core.course.couldnotloadsections": "local_moodlemobileapp",
|
||||||
"core.course.coursesummary": "moodle",
|
"core.course.coursesummary": "moodle",
|
||||||
|
@ -2274,7 +2273,6 @@
|
||||||
"core.updaterequireddesc": "local_moodlemobileapp",
|
"core.updaterequireddesc": "local_moodlemobileapp",
|
||||||
"core.upgraderunning": "error",
|
"core.upgraderunning": "error",
|
||||||
"core.user": "moodle",
|
"core.user": "moodle",
|
||||||
"core.user.account": "local_moodlemobileapp",
|
|
||||||
"core.user.address": "moodle",
|
"core.user.address": "moodle",
|
||||||
"core.user.city": "moodle",
|
"core.user.city": "moodle",
|
||||||
"core.user.contact": "local_moodlemobileapp",
|
"core.user.contact": "local_moodlemobileapp",
|
||||||
|
@ -2300,6 +2298,7 @@
|
||||||
"core.user.sendemail": "local_moodlemobileapp",
|
"core.user.sendemail": "local_moodlemobileapp",
|
||||||
"core.user.student": "moodle/defaultcoursestudent",
|
"core.user.student": "moodle/defaultcoursestudent",
|
||||||
"core.user.teacher": "moodle/noneditingteacher",
|
"core.user.teacher": "moodle/noneditingteacher",
|
||||||
|
"core.user.useraccount": "moodle",
|
||||||
"core.user.userwithid": "local_moodlemobileapp",
|
"core.user.userwithid": "local_moodlemobileapp",
|
||||||
"core.user.webpage": "moodle",
|
"core.user.webpage": "moodle",
|
||||||
"core.userdeleted": "moodle",
|
"core.userdeleted": "moodle",
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
"confirmdownloadzerosize": "You are about to start downloading.{{availableSpace}} Are you sure you want to continue?",
|
"confirmdownloadzerosize": "You are about to start downloading.{{availableSpace}} Are you sure you want to continue?",
|
||||||
"confirmpartialdownloadsize": "You are about to download <strong>at least</strong> {{size}}.{{availableSpace}} Are you sure you want to continue?",
|
"confirmpartialdownloadsize": "You are about to download <strong>at least</strong> {{size}}.{{availableSpace}} Are you sure you want to continue?",
|
||||||
"confirmlimiteddownload": "You are not currently connected to Wi-Fi. ",
|
"confirmlimiteddownload": "You are not currently connected to Wi-Fi. ",
|
||||||
"contents": "Contents",
|
|
||||||
"gotonextactivity": "Continue to next activity",
|
"gotonextactivity": "Continue to next activity",
|
||||||
"gotonextactivitynotfound": "Next activity not found. It's possible that it has been hidden or deleted.",
|
"gotonextactivitynotfound": "Next activity not found. It's possible that it has been hidden or deleted.",
|
||||||
"gotopreviousactivity": "Continue to previous activity",
|
"gotopreviousactivity": "Continue to previous activity",
|
||||||
|
|
|
@ -385,7 +385,7 @@ export class CoreCourseContentsPage implements OnInit, OnDestroy {
|
||||||
openCourseSummary(): void {
|
openCourseSummary(): void {
|
||||||
CoreNavigator.navigateToSitePath(
|
CoreNavigator.navigateToSitePath(
|
||||||
'/course/' + this.course.id + '/preview',
|
'/course/' + this.course.id + '/preview',
|
||||||
{ params: { course: this.course, avoidOpenCourse: true } },
|
{ params: { course: this.course } },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ export class CoreCourseIndexPage implements OnInit, OnDestroy {
|
||||||
protected isGuest?: boolean;
|
protected isGuest?: boolean;
|
||||||
protected contentsTab: CoreTabsOutletTab = {
|
protected contentsTab: CoreTabsOutletTab = {
|
||||||
page: CONTENTS_PAGE_NAME,
|
page: CONTENTS_PAGE_NAME,
|
||||||
title: 'core.course.contents',
|
title: 'core.course',
|
||||||
pageParams: {},
|
pageParams: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="core-course-thumb-parallax-content" *ngIf="course">
|
<div class="core-course-thumb-parallax-content" *ngIf="course">
|
||||||
<ion-item class="ion-text-wrap" (click)="openCourse()" [attr.aria-label]="course.fullname"
|
<ion-item class="ion-text-wrap" (click)="openCourse()" [attr.aria-label]="course.fullname" [detail]="canAccessCourse"
|
||||||
[detail]="!avoidOpenCourse && canAccessCourse" [button]="!avoidOpenCourse && canAccessCourse">
|
[button]="canAccessCourse">
|
||||||
<ion-icon name="fas-graduation-cap" fixed-width slot="start" aria-hidden="true"></ion-icon>
|
<ion-icon name="fas-graduation-cap" fixed-width slot="start" aria-hidden="true"></ion-icon>
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h2>
|
<h2>
|
||||||
|
@ -121,11 +121,10 @@
|
||||||
<h2 *ngIf="prefetchCourseData.status == statusDownloaded">{{ 'core.course.refreshcourse' | translate }}</h2>
|
<h2 *ngIf="prefetchCourseData.status == statusDownloaded">{{ 'core.course.refreshcourse' | translate }}</h2>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
<ion-item button (click)="openCourse()" [attr.aria-label]="course.fullname" *ngIf="!avoidOpenCourse && canAccessCourse"
|
<ion-item button (click)="openCourse()" [attr.aria-label]="course.fullname" *ngIf="canAccessCourse" detail="true">
|
||||||
detail="true">
|
|
||||||
<ion-icon name="fas-briefcase" slot="start" aria-hidden="true"></ion-icon>
|
<ion-icon name="fas-briefcase" slot="start" aria-hidden="true"></ion-icon>
|
||||||
<ion-label>
|
<ion-label>
|
||||||
<h2>{{ 'core.course.contents' | translate }}</h2>
|
<h2>{{ 'core.course' | translate }}</h2>
|
||||||
</ion-label>
|
</ion-label>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
<ion-item [href]="courseUrl" core-link [attr.aria-label]="course.fullname" button detail="false" [showBrowserWarning]="false">
|
<ion-item [href]="courseUrl" core-link [attr.aria-label]="course.fullname" button detail="false" [showBrowserWarning]="false">
|
||||||
|
|
|
@ -51,7 +51,6 @@ export class CoreCoursePreviewPage implements OnInit, OnDestroy {
|
||||||
selfEnrolInstances: CoreCourseEnrolmentMethod[] = [];
|
selfEnrolInstances: CoreCourseEnrolmentMethod[] = [];
|
||||||
paypalEnabled = false;
|
paypalEnabled = false;
|
||||||
dataLoaded = false;
|
dataLoaded = false;
|
||||||
avoidOpenCourse = false;
|
|
||||||
prefetchCourseData: CorePrefetchStatusInfo = {
|
prefetchCourseData: CorePrefetchStatusInfo = {
|
||||||
icon: '',
|
icon: '',
|
||||||
statusTranslatable: 'core.loading',
|
statusTranslatable: 'core.loading',
|
||||||
|
@ -97,7 +96,6 @@ export class CoreCoursePreviewPage implements OnInit, OnDestroy {
|
||||||
*/
|
*/
|
||||||
async ngOnInit(): Promise<void> {
|
async ngOnInit(): Promise<void> {
|
||||||
this.course = CoreNavigator.getRouteParam('course');
|
this.course = CoreNavigator.getRouteParam('course');
|
||||||
this.avoidOpenCourse = !!CoreNavigator.getRouteBooleanParam('avoidOpenCourse');
|
|
||||||
|
|
||||||
if (!this.course) {
|
if (!this.course) {
|
||||||
CoreNavigator.back();
|
CoreNavigator.back();
|
||||||
|
@ -238,8 +236,7 @@ export class CoreCoursePreviewPage implements OnInit, OnDestroy {
|
||||||
* Open the course.
|
* Open the course.
|
||||||
*/
|
*/
|
||||||
openCourse(): void {
|
openCourse(): void {
|
||||||
if (!this.canAccessCourse || this.avoidOpenCourse) {
|
if (!this.canAccessCourse) {
|
||||||
// Course cannot be opened or we are avoiding opening because we accessed from inside a course.
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
<ion-back-button [text]="'core.back' | translate"></ion-back-button>
|
<ion-back-button [text]="'core.back' | translate"></ion-back-button>
|
||||||
</ion-buttons>
|
</ion-buttons>
|
||||||
<ion-title>
|
<ion-title>
|
||||||
<h1>{{ 'core.courses.mycourses' | translate }}</h1>
|
<h1>
|
||||||
|
<core-format-text [text]="siteName" contextLevel="system" [contextInstanceId]="0"></core-format-text>
|
||||||
|
<img src="assets/img/top_logo.png" class="core-header-logo" [alt]="siteName">
|
||||||
|
</h1>
|
||||||
</ion-title>
|
</ion-title>
|
||||||
<ion-buttons slot="end">
|
<ion-buttons slot="end">
|
||||||
<ion-button *ngIf="searchEnabled" (click)="openSearch()" [attr.aria-label]="'core.courses.searchcourses' | translate">
|
<ion-button *ngIf="searchEnabled" (click)="openSearch()" [attr.aria-label]="'core.courses.searchcourses' | translate">
|
||||||
|
@ -30,6 +33,9 @@
|
||||||
<ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
|
<ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
|
||||||
</ion-refresher>
|
</ion-refresher>
|
||||||
<core-loading [hideUntil]="loaded">
|
<core-loading [hideUntil]="loaded">
|
||||||
|
<div class="ion-padding-horizontal">
|
||||||
|
<h2>{{ 'core.courses.mycourses' | translate }}</h2>
|
||||||
|
</div>
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<core-block *ngIf="loadedBlock?.visible" [block]="loadedBlock" contextLevel="user" [instanceId]="userId"
|
<core-block *ngIf="loadedBlock?.visible" [block]="loadedBlock" contextLevel="user" [instanceId]="userId"
|
||||||
[extraData]="{'downloadEnabled': true}"></core-block>
|
[extraData]="{'downloadEnabled': true}"></core-block>
|
||||||
|
|
|
@ -36,6 +36,7 @@ export class CoreCoursesMyCoursesPage implements OnInit, OnDestroy {
|
||||||
|
|
||||||
@ViewChild(CoreBlockComponent) block!: CoreBlockComponent;
|
@ViewChild(CoreBlockComponent) block!: CoreBlockComponent;
|
||||||
|
|
||||||
|
siteName = '';
|
||||||
searchEnabled = false;
|
searchEnabled = false;
|
||||||
downloadCoursesEnabled = false;
|
downloadCoursesEnabled = false;
|
||||||
userId: number;
|
userId: number;
|
||||||
|
@ -50,6 +51,8 @@ export class CoreCoursesMyCoursesPage implements OnInit, OnDestroy {
|
||||||
this.updateSiteObserver = CoreEvents.on(CoreEvents.SITE_UPDATED, () => {
|
this.updateSiteObserver = CoreEvents.on(CoreEvents.SITE_UPDATED, () => {
|
||||||
this.searchEnabled = !CoreCourses.isSearchCoursesDisabledInSite();
|
this.searchEnabled = !CoreCourses.isSearchCoursesDisabledInSite();
|
||||||
this.downloadCoursesEnabled = !CoreCourses.isDownloadCoursesDisabledInSite();
|
this.downloadCoursesEnabled = !CoreCourses.isDownloadCoursesDisabledInSite();
|
||||||
|
this.loadSiteName();
|
||||||
|
|
||||||
}, CoreSites.getCurrentSiteId());
|
}, CoreSites.getCurrentSiteId());
|
||||||
|
|
||||||
this.userId = CoreSites.getCurrentSiteUserId();
|
this.userId = CoreSites.getCurrentSiteUserId();
|
||||||
|
@ -62,8 +65,9 @@ export class CoreCoursesMyCoursesPage implements OnInit, OnDestroy {
|
||||||
this.searchEnabled = !CoreCourses.isSearchCoursesDisabledInSite();
|
this.searchEnabled = !CoreCourses.isSearchCoursesDisabledInSite();
|
||||||
this.downloadCoursesEnabled = !CoreCourses.isDownloadCoursesDisabledInSite();
|
this.downloadCoursesEnabled = !CoreCourses.isDownloadCoursesDisabledInSite();
|
||||||
|
|
||||||
this.loadContent();
|
this.loadSiteName();
|
||||||
|
|
||||||
|
this.loadContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -97,6 +101,13 @@ export class CoreCoursesMyCoursesPage implements OnInit, OnDestroy {
|
||||||
this.loaded = true;
|
this.loaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load the site name.
|
||||||
|
*/
|
||||||
|
protected loadSiteName(): void {
|
||||||
|
this.siteName = CoreSites.getRequiredCurrentSite().getSiteName() || '';
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load fallback blocks.
|
* Load fallback blocks.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
<core-user-avatar *ngIf="isMainScreen && siteInfo" [user]="siteInfo" class="core-bar-button-image clickable" [linkProfile]="false"
|
<core-user-avatar *ngIf="isMainScreen && siteInfo" [user]="siteInfo" class="core-bar-button-image clickable" [linkProfile]="false"
|
||||||
(ariaButtonClick)="openUserMenu($event)" role="button" tabindex="0" [attr.aria-label]="'core.user.account' | translate">
|
(ariaButtonClick)="openUserMenu($event)" role="button" tabindex="0" [attr.aria-label]="'core.user.useraccount' | translate">
|
||||||
</core-user-avatar>
|
</core-user-avatar>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<ion-toolbar>
|
<ion-toolbar>
|
||||||
<ion-title>
|
<ion-title>
|
||||||
<h2>
|
<h2>
|
||||||
{{'core.user.account' | translate}}
|
{{'core.user.useraccount' | translate}}
|
||||||
</h2>
|
</h2>
|
||||||
</ion-title>
|
</ion-title>
|
||||||
<ion-buttons slot="end">
|
<ion-buttons slot="end">
|
||||||
|
@ -17,6 +17,9 @@
|
||||||
<ion-item button class="core-usermenu-siteinfo ion-text-wrap" *ngIf="siteInfo" lines="full" detail="false" [href]="siteUrl"
|
<ion-item button class="core-usermenu-siteinfo ion-text-wrap" *ngIf="siteInfo" lines="full" detail="false" [href]="siteUrl"
|
||||||
core-link auto-login="yes">
|
core-link auto-login="yes">
|
||||||
<ion-label>
|
<ion-label>
|
||||||
|
<!-- Show site logo. -->
|
||||||
|
<img class="core-usermenu-site-logo" *ngIf="siteLogo && siteLogoLoaded" [src]="siteLogo" role="presentation" alt=""
|
||||||
|
onError="this.class='image-not-found'">
|
||||||
<p class="core-usermenu-sitename">
|
<p class="core-usermenu-sitename">
|
||||||
<core-format-text [text]="siteName" contextLevel="system" [contextInstanceId]="0" [wsNotFiltered]="true">
|
<core-format-text [text]="siteName" contextLevel="system" [contextInstanceId]="0" [wsNotFiltered]="true">
|
||||||
</core-format-text>
|
</core-format-text>
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-usermenu-siteinfo {
|
.core-usermenu-siteinfo {
|
||||||
|
text-align: center;
|
||||||
|
ion-label {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
--padding-top: 10px;
|
--padding-top: 10px;
|
||||||
--padding-bottom: 10px;
|
--padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
@ -19,9 +23,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.core-usermenu-sitename {
|
.core-usermenu-sitename {
|
||||||
font-size: 16px;
|
font-weight: bold;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
img.core-usermenu-site-logo {
|
||||||
|
margin-bottom: 8px;
|
||||||
|
max-height: var(--core-user-menu-site-logo-max-height);
|
||||||
|
}
|
||||||
|
|
||||||
|
img.image-not-found {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@if ($core-user-hide-sitename) {
|
@if ($core-user-hide-sitename) {
|
||||||
.core-usermenu-sitename {
|
.core-usermenu-sitename {
|
||||||
display: none;
|
display: none;
|
||||||
|
|
|
@ -12,8 +12,9 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { CoreConstants } from '@/core/constants';
|
||||||
import { Component, OnDestroy, OnInit } from '@angular/core';
|
import { Component, OnDestroy, OnInit } from '@angular/core';
|
||||||
import { CoreSiteInfo } from '@classes/site';
|
import { CoreSite, CoreSiteInfo } from '@classes/site';
|
||||||
import { CoreLoginSitesComponent } from '@features/login/components/sites/sites';
|
import { CoreLoginSitesComponent } from '@features/login/components/sites/sites';
|
||||||
import { CoreLoginHelper } from '@features/login/services/login-helper';
|
import { CoreLoginHelper } from '@features/login/services/login-helper';
|
||||||
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
|
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
|
||||||
|
@ -36,12 +37,13 @@ export class CoreMainMenuUserMenuComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
siteInfo?: CoreSiteInfo;
|
siteInfo?: CoreSiteInfo;
|
||||||
siteName?: string;
|
siteName?: string;
|
||||||
|
siteLogo?: string;
|
||||||
|
siteLogoLoaded = false;
|
||||||
siteUrl?: string;
|
siteUrl?: string;
|
||||||
handlers: CoreUserProfileHandlerData[] = [];
|
handlers: CoreUserProfileHandlerData[] = [];
|
||||||
handlersLoaded = false;
|
handlersLoaded = false;
|
||||||
loaded = false;
|
loaded = false;
|
||||||
user?: CoreUserProfile;
|
user?: CoreUserProfile;
|
||||||
moreSites = false;
|
|
||||||
|
|
||||||
protected subscription!: Subscription;
|
protected subscription!: Subscription;
|
||||||
|
|
||||||
|
@ -49,10 +51,6 @@ export class CoreMainMenuUserMenuComponent implements OnInit, OnDestroy {
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
async ngOnInit(): Promise<void> {
|
async ngOnInit(): Promise<void> {
|
||||||
// Check if there are more sites to switch.
|
|
||||||
const sites = await CoreSites.getSites();
|
|
||||||
this.moreSites = sites.length > 1;
|
|
||||||
|
|
||||||
const currentSite = CoreSites.getRequiredCurrentSite();
|
const currentSite = CoreSites.getRequiredCurrentSite();
|
||||||
this.siteInfo = currentSite.getInfo();
|
this.siteInfo = currentSite.getInfo();
|
||||||
this.siteName = currentSite.getSiteName();
|
this.siteName = currentSite.getSiteName();
|
||||||
|
@ -60,6 +58,8 @@ export class CoreMainMenuUserMenuComponent implements OnInit, OnDestroy {
|
||||||
|
|
||||||
this.loaded = true;
|
this.loaded = true;
|
||||||
|
|
||||||
|
this.loadSiteLogo(currentSite);
|
||||||
|
|
||||||
// Load the handlers.
|
// Load the handlers.
|
||||||
if (this.siteInfo) {
|
if (this.siteInfo) {
|
||||||
this.user = await CoreUser.getProfile(this.siteInfo.userid);
|
this.user = await CoreUser.getProfile(this.siteInfo.userid);
|
||||||
|
@ -82,6 +82,31 @@ export class CoreMainMenuUserMenuComponent implements OnInit, OnDestroy {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load site logo from current site public config.
|
||||||
|
*
|
||||||
|
* @param currentSite Current site object.
|
||||||
|
* @return Promise resolved when done.
|
||||||
|
*/
|
||||||
|
protected async loadSiteLogo(currentSite: CoreSite): Promise<void> {
|
||||||
|
if (CoreConstants.CONFIG.forceLoginLogo) {
|
||||||
|
this.siteLogo = 'assets/img/login_logo.png';
|
||||||
|
this.siteLogoLoaded = true;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const siteConfig = await currentSite.getPublicConfig();
|
||||||
|
|
||||||
|
this.siteLogo = CoreLoginHelper.getLogoUrl(siteConfig);
|
||||||
|
} catch {
|
||||||
|
// Ignore errors.
|
||||||
|
} finally {
|
||||||
|
this.siteLogoLoaded = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Opens User profile page.
|
* Opens User profile page.
|
||||||
*
|
*
|
||||||
|
|
|
@ -55,7 +55,7 @@ export class CoreMainMenuHomePage implements OnInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize the component.
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.route.queryParams.subscribe((params: Partial<CoreRedirectPayload> & { urlToOpen?: string }) => {
|
this.route.queryParams.subscribe((params: Partial<CoreRedirectPayload> & { urlToOpen?: string }) => {
|
||||||
|
@ -121,7 +121,7 @@ export class CoreMainMenuHomePage implements OnInit {
|
||||||
* Load the site name.
|
* Load the site name.
|
||||||
*/
|
*/
|
||||||
protected loadSiteName(): void {
|
protected loadSiteName(): void {
|
||||||
this.siteName = CoreSites.getCurrentSite()?.getSiteName() || '';
|
this.siteName = CoreSites.getRequiredCurrentSite().getSiteName() || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -13,12 +13,6 @@
|
||||||
|
|
||||||
<ion-content>
|
<ion-content>
|
||||||
<ion-list>
|
<ion-list>
|
||||||
<ion-item button class="ion-text-wrap" detail="false" (click)="openPage('deviceinfo')">
|
|
||||||
<ion-icon name="fas-mobile" slot="start" aria-hidden="true"></ion-icon>
|
|
||||||
<ion-label>
|
|
||||||
<h2>{{ appName }} {{ versionName }}</h2>
|
|
||||||
</ion-label>
|
|
||||||
</ion-item>
|
|
||||||
<ion-item button class="ion-text-wrap" (click)="openPage('licenses')" detail="true">
|
<ion-item button class="ion-text-wrap" (click)="openPage('licenses')" detail="true">
|
||||||
<ion-icon name="far-copyright" slot="start" aria-hidden="true"></ion-icon>
|
<ion-icon name="far-copyright" slot="start" aria-hidden="true"></ion-icon>
|
||||||
<ion-label>{{ 'core.settings.opensourcelicenses' | translate }}</ion-label>
|
<ion-label>{{ 'core.settings.opensourcelicenses' | translate }}</ion-label>
|
||||||
|
@ -40,3 +34,12 @@
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</ion-list>
|
</ion-list>
|
||||||
</ion-content>
|
</ion-content>
|
||||||
|
|
||||||
|
<ion-footer class="ion-no-border">
|
||||||
|
<ion-item button class="ion-text-wrap ion-text-center core-about-deviceinfo" detail="false" (click)="openPage('deviceinfo')"
|
||||||
|
lines="none">
|
||||||
|
<ion-label>
|
||||||
|
<h2>{{ appName }} {{ versionName }}</h2>
|
||||||
|
</ion-label>
|
||||||
|
</ion-item>
|
||||||
|
</ion-footer>
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
.core-about-deviceinfo {
|
||||||
|
--background: transparent;
|
||||||
|
}
|
|
@ -24,6 +24,7 @@ import { CoreNavigator } from '@services/navigator';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'page-core-app-settings-about',
|
selector: 'page-core-app-settings-about',
|
||||||
templateUrl: 'about.html',
|
templateUrl: 'about.html',
|
||||||
|
styleUrls: ['about.scss'],
|
||||||
})
|
})
|
||||||
export class CoreSettingsAboutPage {
|
export class CoreSettingsAboutPage {
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"address": "Address",
|
"address": "Address",
|
||||||
"account": "Account",
|
"useraccount": "User account",
|
||||||
"city": "City/town",
|
"city": "City/town",
|
||||||
"contact": "Contact",
|
"contact": "Contact",
|
||||||
"country": "Country",
|
"country": "Country",
|
||||||
|
|
|
@ -264,6 +264,8 @@
|
||||||
--core-course-module-navigation-max-height: 56px;
|
--core-course-module-navigation-max-height: 56px;
|
||||||
--core-course-module-navigation-background: var(--contrast-background);
|
--core-course-module-navigation-background: var(--contrast-background);
|
||||||
|
|
||||||
|
--core-user-menu-site-logo-max-height: 32px;
|
||||||
|
|
||||||
--addon-calendar-event-category-color: var(--purple);
|
--addon-calendar-event-category-color: var(--purple);
|
||||||
--addon-calendar-event-course-color: var(--red);
|
--addon-calendar-event-course-color: var(--red);
|
||||||
--addon-calendar-event-group-color: var(--yellow);
|
--addon-calendar-event-group-color: var(--yellow);
|
||||||
|
|
Loading…
Reference in New Issue