commit
6ce2990c1f
|
@ -24,6 +24,8 @@
|
||||||
"addon.block_myoverview.title": "block_myoverview",
|
"addon.block_myoverview.title": "block_myoverview",
|
||||||
"addon.block_recentlyaccessedcourses.nocourses": "block_recentlyaccessedcourses",
|
"addon.block_recentlyaccessedcourses.nocourses": "block_recentlyaccessedcourses",
|
||||||
"addon.block_recentlyaccessedcourses.pluginname": "block_recentlyaccessedcourses",
|
"addon.block_recentlyaccessedcourses.pluginname": "block_recentlyaccessedcourses",
|
||||||
|
"addon.block_recentlyaccesseditems.noitems": "block_recentlyaccesseditems",
|
||||||
|
"addon.block_recentlyaccesseditems.pluginname": "block_recentlyaccesseditems",
|
||||||
"addon.block_sitemainmenu.pluginname": "block_site_main_menu",
|
"addon.block_sitemainmenu.pluginname": "block_site_main_menu",
|
||||||
"addon.block_timeline.duedate": "block_timeline",
|
"addon.block_timeline.duedate": "block_timeline",
|
||||||
"addon.block_timeline.next30days": "block_timeline",
|
"addon.block_timeline.next30days": "block_timeline",
|
||||||
|
@ -102,24 +104,24 @@
|
||||||
"addon.competency.xcompetenciesproficientoutofyincourse": "tool_lp",
|
"addon.competency.xcompetenciesproficientoutofyincourse": "tool_lp",
|
||||||
"addon.coursecompletion.complete": "local_moodlemobileapp",
|
"addon.coursecompletion.complete": "local_moodlemobileapp",
|
||||||
"addon.coursecompletion.completecourse": "block_selfcompletion",
|
"addon.coursecompletion.completecourse": "block_selfcompletion",
|
||||||
"addon.coursecompletion.completed": "local_moodlemobileapp",
|
"addon.coursecompletion.completed": "completion",
|
||||||
"addon.coursecompletion.completiondate": "local_moodlemobileapp",
|
"addon.coursecompletion.completiondate": "report_completion",
|
||||||
"addon.coursecompletion.completionmenuitem": "completion",
|
"addon.coursecompletion.completionmenuitem": "completion",
|
||||||
"addon.coursecompletion.couldnotloadreport": "local_moodlemobileapp",
|
"addon.coursecompletion.couldnotloadreport": "local_moodlemobileapp",
|
||||||
"addon.coursecompletion.coursecompletion": "local_moodlemobileapp",
|
"addon.coursecompletion.coursecompletion": "completion",
|
||||||
"addon.coursecompletion.criteria": "local_moodlemobileapp",
|
"addon.coursecompletion.criteria": "completion",
|
||||||
"addon.coursecompletion.criteriagroup": "local_moodlemobileapp",
|
"addon.coursecompletion.criteriagroup": "completion",
|
||||||
"addon.coursecompletion.criteriarequiredall": "local_moodlemobileapp",
|
"addon.coursecompletion.criteriarequiredall": "completion",
|
||||||
"addon.coursecompletion.criteriarequiredany": "local_moodlemobileapp",
|
"addon.coursecompletion.criteriarequiredany": "completion",
|
||||||
"addon.coursecompletion.inprogress": "local_moodlemobileapp",
|
"addon.coursecompletion.inprogress": "completion",
|
||||||
"addon.coursecompletion.manualselfcompletion": "local_moodlemobileapp",
|
"addon.coursecompletion.manualselfcompletion": "completion",
|
||||||
"addon.coursecompletion.notyetstarted": "local_moodlemobileapp",
|
"addon.coursecompletion.notyetstarted": "completion",
|
||||||
"addon.coursecompletion.pending": "local_moodlemobileapp",
|
"addon.coursecompletion.pending": "completion",
|
||||||
"addon.coursecompletion.required": "local_moodlemobileapp",
|
"addon.coursecompletion.required": "local_moodlemobileapp",
|
||||||
"addon.coursecompletion.requiredcriteria": "local_moodlemobileapp",
|
"addon.coursecompletion.requiredcriteria": "completion",
|
||||||
"addon.coursecompletion.requirement": "local_moodlemobileapp",
|
"addon.coursecompletion.requirement": "block_completionstatus",
|
||||||
"addon.coursecompletion.status": "local_moodlemobileapp",
|
"addon.coursecompletion.status": "local_moodlemobileapp",
|
||||||
"addon.coursecompletion.viewcoursereport": "local_moodlemobileapp",
|
"addon.coursecompletion.viewcoursereport": "completion",
|
||||||
"addon.files.couldnotloadfiles": "local_moodlemobileapp",
|
"addon.files.couldnotloadfiles": "local_moodlemobileapp",
|
||||||
"addon.files.emptyfilelist": "local_moodlemobileapp",
|
"addon.files.emptyfilelist": "local_moodlemobileapp",
|
||||||
"addon.files.erroruploadnotworking": "local_moodlemobileapp",
|
"addon.files.erroruploadnotworking": "local_moodlemobileapp",
|
||||||
|
@ -1323,7 +1325,7 @@
|
||||||
"core.login.createaccount": "moodle",
|
"core.login.createaccount": "moodle",
|
||||||
"core.login.createuserandpass": "moodle",
|
"core.login.createuserandpass": "moodle",
|
||||||
"core.login.credentialsdescription": "local_moodlemobileapp",
|
"core.login.credentialsdescription": "local_moodlemobileapp",
|
||||||
"core.login.emailconfirmsent": "local_moodlemobileapp",
|
"core.login.emailconfirmsent": "moodle",
|
||||||
"core.login.emailnotmatch": "local_moodlemobileapp",
|
"core.login.emailnotmatch": "local_moodlemobileapp",
|
||||||
"core.login.enterthewordsabove": "auth",
|
"core.login.enterthewordsabove": "auth",
|
||||||
"core.login.erroraccesscontrolalloworigin": "local_moodlemobileapp",
|
"core.login.erroraccesscontrolalloworigin": "local_moodlemobileapp",
|
||||||
|
@ -1336,7 +1338,7 @@
|
||||||
"core.login.helpmelogin": "local_moodlemobileapp",
|
"core.login.helpmelogin": "local_moodlemobileapp",
|
||||||
"core.login.instructions": "auth",
|
"core.login.instructions": "auth",
|
||||||
"core.login.invalidaccount": "local_moodlemobileapp",
|
"core.login.invalidaccount": "local_moodlemobileapp",
|
||||||
"core.login.invaliddate": "local_moodlemobileapp",
|
"core.login.invaliddate": "calendar/errorinvaliddate",
|
||||||
"core.login.invalidemail": "moodle",
|
"core.login.invalidemail": "moodle",
|
||||||
"core.login.invalidmoodleversion": "local_moodlemobileapp",
|
"core.login.invalidmoodleversion": "local_moodlemobileapp",
|
||||||
"core.login.invalidsite": "local_moodlemobileapp",
|
"core.login.invalidsite": "local_moodlemobileapp",
|
||||||
|
@ -1402,8 +1404,6 @@
|
||||||
"core.mainmenu.changesite": "local_moodlemobileapp",
|
"core.mainmenu.changesite": "local_moodlemobileapp",
|
||||||
"core.mainmenu.help": "moodle",
|
"core.mainmenu.help": "moodle",
|
||||||
"core.mainmenu.logout": "moodle",
|
"core.mainmenu.logout": "moodle",
|
||||||
"core.mainmenu.mycourses": "moodle",
|
|
||||||
"core.mainmenu.togglemenu": "local_moodlemobileapp",
|
|
||||||
"core.mainmenu.website": "local_moodlemobileapp",
|
"core.mainmenu.website": "local_moodlemobileapp",
|
||||||
"core.maxsizeandattachments": "moodle",
|
"core.maxsizeandattachments": "moodle",
|
||||||
"core.min": "moodle",
|
"core.min": "moodle",
|
||||||
|
@ -1609,14 +1609,14 @@
|
||||||
"core.user.description": "moodle",
|
"core.user.description": "moodle",
|
||||||
"core.user.details": "report_security",
|
"core.user.details": "report_security",
|
||||||
"core.user.detailsnotavailable": "local_moodlemobileapp",
|
"core.user.detailsnotavailable": "local_moodlemobileapp",
|
||||||
"core.user.editingteacher": "local_moodlemobileapp",
|
"core.user.editingteacher": "moodle/defaultcourseteacher",
|
||||||
"core.user.email": "moodle",
|
"core.user.email": "moodle",
|
||||||
"core.user.emailagain": "moodle",
|
"core.user.emailagain": "moodle",
|
||||||
"core.user.errorloaduser": "local_moodlemobileapp",
|
"core.user.errorloaduser": "local_moodlemobileapp",
|
||||||
"core.user.firstname": "moodle",
|
"core.user.firstname": "moodle",
|
||||||
"core.user.interests": "moodle",
|
"core.user.interests": "moodle",
|
||||||
"core.user.lastname": "moodle",
|
"core.user.lastname": "moodle",
|
||||||
"core.user.manager": "local_moodlemobileapp",
|
"core.user.manager": "role",
|
||||||
"core.user.newpicture": "moodle",
|
"core.user.newpicture": "moodle",
|
||||||
"core.user.noparticipants": "error",
|
"core.user.noparticipants": "error",
|
||||||
"core.user.participants": "moodle",
|
"core.user.participants": "moodle",
|
||||||
|
@ -1624,8 +1624,8 @@
|
||||||
"core.user.phone2": "moodle",
|
"core.user.phone2": "moodle",
|
||||||
"core.user.roles": "moodle",
|
"core.user.roles": "moodle",
|
||||||
"core.user.sendemail": "local_moodlemobileapp",
|
"core.user.sendemail": "local_moodlemobileapp",
|
||||||
"core.user.student": "local_moodlemobileapp",
|
"core.user.student": "moodle/defaultcoursestudent",
|
||||||
"core.user.teacher": "local_moodlemobileapp",
|
"core.user.teacher": "moodle/noneditingteacher",
|
||||||
"core.user.webpage": "moodle",
|
"core.user.webpage": "moodle",
|
||||||
"core.userdeleted": "moodle",
|
"core.userdeleted": "moodle",
|
||||||
"core.userdetails": "moodle",
|
"core.userdetails": "moodle",
|
||||||
|
|
|
@ -8,6 +8,6 @@
|
||||||
"morecourses": "More courses",
|
"morecourses": "More courses",
|
||||||
"nocourses": "No courses",
|
"nocourses": "No courses",
|
||||||
"past": "Past",
|
"past": "Past",
|
||||||
"pluginname": "Course Overview",
|
"pluginname": "Course overview",
|
||||||
"title": "Title"
|
"title": "Title"
|
||||||
}
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
// (C) Copyright 2015 Martin Dougiamas
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { CommonModule } from '@angular/common';
|
||||||
|
import { IonicModule } from 'ionic-angular';
|
||||||
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
import { AddonBlockRecentlyAccessedItemsComponent } from './recentlyaccesseditems/recentlyaccesseditems';
|
||||||
|
import { CoreComponentsModule } from '@components/components.module';
|
||||||
|
import { CoreDirectivesModule } from '@directives/directives.module';
|
||||||
|
import { CoreCourseComponentsModule } from '@core/course/components/components.module';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [
|
||||||
|
AddonBlockRecentlyAccessedItemsComponent
|
||||||
|
],
|
||||||
|
imports: [
|
||||||
|
CommonModule,
|
||||||
|
IonicModule,
|
||||||
|
TranslateModule.forChild(),
|
||||||
|
CoreComponentsModule,
|
||||||
|
CoreDirectivesModule,
|
||||||
|
CoreCourseComponentsModule
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
AddonBlockRecentlyAccessedItemsComponent
|
||||||
|
],
|
||||||
|
entryComponents: [
|
||||||
|
AddonBlockRecentlyAccessedItemsComponent
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class AddonBlockRecentlyAccessedItemsComponentsModule {}
|
|
@ -0,0 +1,15 @@
|
||||||
|
<ion-item-divider color="light">
|
||||||
|
<h2>{{ 'addon.block_recentlyaccesseditems.pluginname' | translate }}</h2>
|
||||||
|
</ion-item-divider>
|
||||||
|
<core-loading [hideUntil]="loaded" class="core-loading-center">
|
||||||
|
<ng-container *ngFor="let item of items">
|
||||||
|
<a ion-item text-wrap detail-none class="core-course-module-handler item-media" (click)="action($event, item)" [title]="item.name">
|
||||||
|
<img item-start [src]="item.iconUrl" alt="" role="presentation" *ngIf="item.iconUrl" class="core-module-icon">
|
||||||
|
<h2><core-format-text [text]="item.name"></core-format-text></h2>
|
||||||
|
<p><core-format-text [text]="item.coursename"></core-format-text></p>
|
||||||
|
</a>
|
||||||
|
</ng-container>
|
||||||
|
|
||||||
|
<core-empty-box *ngIf="items.length <= 0" image="assets/img/icons/activities.svg" [message]="'addon.block_recentlyaccesseditems.noitems' | translate"></core-empty-box>
|
||||||
|
|
||||||
|
</core-loading>
|
|
@ -0,0 +1,90 @@
|
||||||
|
// (C) Copyright 2015 Martin Dougiamas
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { Component, OnInit, Injector, Optional } from '@angular/core';
|
||||||
|
import { NavController } from 'ionic-angular';
|
||||||
|
import { CoreSitesProvider } from '@providers/sites';
|
||||||
|
import { CoreBlockBaseComponent } from '@core/block/classes/base-block-component';
|
||||||
|
import { AddonBlockRecentlyAccessedItemsProvider } from '../../providers/recentlyaccesseditems';
|
||||||
|
import { CoreTextUtilsProvider } from '@providers/utils/text';
|
||||||
|
import { CoreContentLinksHelperProvider } from '@core/contentlinks/providers/helper';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component to render a recently accessed items block.
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'addon-block-recentlyaccesseditems',
|
||||||
|
templateUrl: 'addon-block-recentlyaccesseditems.html'
|
||||||
|
})
|
||||||
|
export class AddonBlockRecentlyAccessedItemsComponent extends CoreBlockBaseComponent implements OnInit {
|
||||||
|
items = [];
|
||||||
|
|
||||||
|
protected fetchContentDefaultError = 'Error getting recently accessed items data.';
|
||||||
|
|
||||||
|
constructor(injector: Injector, @Optional() private navCtrl: NavController,
|
||||||
|
private sitesProvider: CoreSitesProvider, private textUtils: CoreTextUtilsProvider,
|
||||||
|
private recentItemsProvider: AddonBlockRecentlyAccessedItemsProvider,
|
||||||
|
private contentLinksHelper: CoreContentLinksHelperProvider) {
|
||||||
|
|
||||||
|
super(injector, 'AddonBlockRecentlyAccessedItemsComponent');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component being initialized.
|
||||||
|
*/
|
||||||
|
ngOnInit(): void {
|
||||||
|
super.ngOnInit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the invalidate content function.
|
||||||
|
*
|
||||||
|
* @return {Promise<any>} Resolved when done.
|
||||||
|
*/
|
||||||
|
protected invalidateContent(): Promise<any> {
|
||||||
|
return this.recentItemsProvider.invalidateRecentItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch the data to render the block.
|
||||||
|
*
|
||||||
|
* @return {Promise<any>} Promise resolved when done.
|
||||||
|
*/
|
||||||
|
protected fetchContent(): Promise<any> {
|
||||||
|
return this.recentItemsProvider.getRecentItems().then((items) => {
|
||||||
|
this.items = items;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event clicked.
|
||||||
|
*
|
||||||
|
* @param {Event} e Click event.
|
||||||
|
* @param {any} item Activity item info.
|
||||||
|
*/
|
||||||
|
action(e: Event, item: any): void {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
|
const url = this.textUtils.decodeHTMLEntities(item.viewurl);
|
||||||
|
const modal = this.domUtils.showModalLoading();
|
||||||
|
this.contentLinksHelper.handleLink(url, undefined, this.navCtrl).then((treated) => {
|
||||||
|
if (!treated) {
|
||||||
|
return this.sitesProvider.getCurrentSite().openInBrowserWithAutoLoginIfSameSite(url);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
modal.dismiss();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"noitems": "No recent items",
|
||||||
|
"pluginname": "Recently accessed items"
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
// (C) Copyright 2015 Martin Dougiamas
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { Injectable, Injector } from '@angular/core';
|
||||||
|
import { CoreBlockHandlerData } from '@core/block/providers/delegate';
|
||||||
|
import { AddonBlockRecentlyAccessedItemsComponent } from '../components/recentlyaccesseditems/recentlyaccesseditems';
|
||||||
|
import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Block handler.
|
||||||
|
*/
|
||||||
|
@Injectable()
|
||||||
|
export class AddonBlockRecentlyAccessedItemsHandler extends CoreBlockBaseHandler {
|
||||||
|
name = 'AddonBlockRecentlyAccessedItems';
|
||||||
|
blockName = 'recentlyaccesseditems';
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the data needed to render the block.
|
||||||
|
*
|
||||||
|
* @param {Injector} injector Injector.
|
||||||
|
* @param {any} block The block to render.
|
||||||
|
* @param {string} contextLevel The context where the block will be used.
|
||||||
|
* @param {number} instanceId The instance ID associated with the context level.
|
||||||
|
* @return {CoreBlockHandlerData|Promise<CoreBlockHandlerData>} Data or promise resolved with the data.
|
||||||
|
*/
|
||||||
|
getDisplayData?(injector: Injector, block: any, contextLevel: string, instanceId: number)
|
||||||
|
: CoreBlockHandlerData | Promise<CoreBlockHandlerData> {
|
||||||
|
|
||||||
|
return {
|
||||||
|
title: 'addon.block_recentlyaccesseditems.pluginname',
|
||||||
|
class: 'addon-block-recentlyaccesseditems',
|
||||||
|
component: AddonBlockRecentlyAccessedItemsComponent
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,71 @@
|
||||||
|
// (C) Copyright 2015 Martin Dougiamas
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { CoreSitesProvider } from '@providers/sites';
|
||||||
|
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service that provides some features regarding recently accessed items.
|
||||||
|
*/
|
||||||
|
@Injectable()
|
||||||
|
export class AddonBlockRecentlyAccessedItemsProvider {
|
||||||
|
protected ROOT_CACHE_KEY = 'AddonBlockRecentlyAccessedItems:';
|
||||||
|
|
||||||
|
constructor(private sitesProvider: CoreSitesProvider, private courseProvider: CoreCourseProvider) { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get cache key for get last accessed items value WS call.
|
||||||
|
*
|
||||||
|
* @return {string} Cache key.
|
||||||
|
*/
|
||||||
|
protected getRecentItemsCacheKey(): string {
|
||||||
|
return this.ROOT_CACHE_KEY + ':recentitems';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get last accessed items.
|
||||||
|
*
|
||||||
|
* @param {string} [siteId] Site ID. If not defined, use current site.
|
||||||
|
* @return {Promise<any[]>} Promise resolved when the info is retrieved.
|
||||||
|
*/
|
||||||
|
getRecentItems(siteId?: string): Promise<any[]> {
|
||||||
|
|
||||||
|
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||||
|
const preSets = {
|
||||||
|
cacheKey: this.getRecentItemsCacheKey()
|
||||||
|
};
|
||||||
|
|
||||||
|
return site.read('block_recentlyaccesseditems_get_recent_items', undefined, preSets).then((items) => {
|
||||||
|
return items.map((item) => {
|
||||||
|
item.iconUrl = this.courseProvider.getModuleIconSrc(item.modname);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invalidates get last accessed items WS call.
|
||||||
|
*
|
||||||
|
* @param {string} [siteId] Site ID to invalidate. If not defined, use current site.
|
||||||
|
* @return {Promise<any>} Promise resolved when the data is invalidated.
|
||||||
|
*/
|
||||||
|
invalidateRecentItems(siteId?: string): Promise<any> {
|
||||||
|
return this.sitesProvider.getSite(siteId).then((site) => {
|
||||||
|
return site.invalidateWsCacheForKey(this.getRecentItemsCacheKey());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
// (C) Copyright 2015 Martin Dougiamas
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { IonicModule } from 'ionic-angular';
|
||||||
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
|
import { AddonBlockRecentlyAccessedItemsComponentsModule } from './components/components.module';
|
||||||
|
import { CoreBlockDelegate } from '@core/block/providers/delegate';
|
||||||
|
import { AddonBlockRecentlyAccessedItemsHandler } from './providers/block-handler';
|
||||||
|
import { AddonBlockRecentlyAccessedItemsProvider } from './providers/recentlyaccesseditems';
|
||||||
|
|
||||||
|
@NgModule({
|
||||||
|
declarations: [
|
||||||
|
],
|
||||||
|
imports: [
|
||||||
|
IonicModule,
|
||||||
|
AddonBlockRecentlyAccessedItemsComponentsModule,
|
||||||
|
TranslateModule.forChild()
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
AddonBlockRecentlyAccessedItemsHandler,
|
||||||
|
AddonBlockRecentlyAccessedItemsProvider
|
||||||
|
]
|
||||||
|
})
|
||||||
|
export class AddonBlockRecentlyAccessedItemsModule {
|
||||||
|
constructor(blockDelegate: CoreBlockDelegate, blockHandler: AddonBlockRecentlyAccessedItemsHandler) {
|
||||||
|
blockDelegate.registerHandler(blockHandler);
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,8 +8,8 @@
|
||||||
"coursecompletion": "Course completion",
|
"coursecompletion": "Course completion",
|
||||||
"criteria": "Criteria",
|
"criteria": "Criteria",
|
||||||
"criteriagroup": "Criteria group",
|
"criteriagroup": "Criteria group",
|
||||||
"criteriarequiredall": "All criteria below are required.",
|
"criteriarequiredall": "All criteria below are required",
|
||||||
"criteriarequiredany": "Any criteria below are required.",
|
"criteriarequiredany": "Any criteria below are required",
|
||||||
"inprogress": "In progress",
|
"inprogress": "In progress",
|
||||||
"manualselfcompletion": "Manual self completion",
|
"manualselfcompletion": "Manual self completion",
|
||||||
"notyetstarted": "Not yet started",
|
"notyetstarted": "Not yet started",
|
||||||
|
|
|
@ -89,6 +89,7 @@ import { AddonBlockMyOverviewModule } from '@addon/block/myoverview/myoverview.m
|
||||||
import { AddonBlockSiteMainMenuModule } from '@addon/block/sitemainmenu/sitemainmenu.module';
|
import { AddonBlockSiteMainMenuModule } from '@addon/block/sitemainmenu/sitemainmenu.module';
|
||||||
import { AddonBlockTimelineModule } from '@addon/block/timeline/timeline.module';
|
import { AddonBlockTimelineModule } from '@addon/block/timeline/timeline.module';
|
||||||
import { AddonBlockRecentlyAccessedCoursesModule } from '@addon/block/recentlyaccessedcourses/recentlyaccessedcourses.module';
|
import { AddonBlockRecentlyAccessedCoursesModule } from '@addon/block/recentlyaccessedcourses/recentlyaccessedcourses.module';
|
||||||
|
import { AddonBlockRecentlyAccessedItemsModule } from '@addon/block/recentlyaccesseditems/recentlyaccesseditems.module';
|
||||||
import { AddonModAssignModule } from '@addon/mod/assign/assign.module';
|
import { AddonModAssignModule } from '@addon/mod/assign/assign.module';
|
||||||
import { AddonModBookModule } from '@addon/mod/book/book.module';
|
import { AddonModBookModule } from '@addon/mod/book/book.module';
|
||||||
import { AddonModChatModule } from '@addon/mod/chat/chat.module';
|
import { AddonModChatModule } from '@addon/mod/chat/chat.module';
|
||||||
|
@ -204,6 +205,7 @@ export const CORE_PROVIDERS: any[] = [
|
||||||
AddonBlockSiteMainMenuModule,
|
AddonBlockSiteMainMenuModule,
|
||||||
AddonBlockTimelineModule,
|
AddonBlockTimelineModule,
|
||||||
AddonBlockRecentlyAccessedCoursesModule,
|
AddonBlockRecentlyAccessedCoursesModule,
|
||||||
|
AddonBlockRecentlyAccessedItemsModule,
|
||||||
AddonModAssignModule,
|
AddonModAssignModule,
|
||||||
AddonModBookModule,
|
AddonModBookModule,
|
||||||
AddonModChatModule,
|
AddonModChatModule,
|
||||||
|
|
|
@ -20,10 +20,12 @@
|
||||||
"addon.block_myoverview.morecourses": "More courses",
|
"addon.block_myoverview.morecourses": "More courses",
|
||||||
"addon.block_myoverview.nocourses": "No courses",
|
"addon.block_myoverview.nocourses": "No courses",
|
||||||
"addon.block_myoverview.past": "Past",
|
"addon.block_myoverview.past": "Past",
|
||||||
"addon.block_myoverview.pluginname": "Course Overview",
|
"addon.block_myoverview.pluginname": "Course overview",
|
||||||
"addon.block_myoverview.title": "Title",
|
"addon.block_myoverview.title": "Title",
|
||||||
"addon.block_recentlyaccessedcourses.nocourses": "No recent courses",
|
"addon.block_recentlyaccessedcourses.nocourses": "No recent courses",
|
||||||
"addon.block_recentlyaccessedcourses.pluginname": "Recently accessed courses",
|
"addon.block_recentlyaccessedcourses.pluginname": "Recently accessed courses",
|
||||||
|
"addon.block_recentlyaccesseditems.noitems": "No recent items",
|
||||||
|
"addon.block_recentlyaccesseditems.pluginname": "Recently accessed items",
|
||||||
"addon.block_sitemainmenu.pluginname": "Main menu",
|
"addon.block_sitemainmenu.pluginname": "Main menu",
|
||||||
"addon.block_timeline.duedate": "Due date",
|
"addon.block_timeline.duedate": "Due date",
|
||||||
"addon.block_timeline.next30days": "Next 30 days",
|
"addon.block_timeline.next30days": "Next 30 days",
|
||||||
|
@ -109,8 +111,8 @@
|
||||||
"addon.coursecompletion.coursecompletion": "Course completion",
|
"addon.coursecompletion.coursecompletion": "Course completion",
|
||||||
"addon.coursecompletion.criteria": "Criteria",
|
"addon.coursecompletion.criteria": "Criteria",
|
||||||
"addon.coursecompletion.criteriagroup": "Criteria group",
|
"addon.coursecompletion.criteriagroup": "Criteria group",
|
||||||
"addon.coursecompletion.criteriarequiredall": "All criteria below are required.",
|
"addon.coursecompletion.criteriarequiredall": "All criteria below are required",
|
||||||
"addon.coursecompletion.criteriarequiredany": "Any criteria below are required.",
|
"addon.coursecompletion.criteriarequiredany": "Any criteria below are required",
|
||||||
"addon.coursecompletion.inprogress": "In progress",
|
"addon.coursecompletion.inprogress": "In progress",
|
||||||
"addon.coursecompletion.manualselfcompletion": "Manual self completion",
|
"addon.coursecompletion.manualselfcompletion": "Manual self completion",
|
||||||
"addon.coursecompletion.notyetstarted": "Not yet started",
|
"addon.coursecompletion.notyetstarted": "Not yet started",
|
||||||
|
@ -1099,7 +1101,7 @@
|
||||||
"core.areyousure": "Are you sure?",
|
"core.areyousure": "Are you sure?",
|
||||||
"core.back": "Back",
|
"core.back": "Back",
|
||||||
"core.cancel": "Cancel",
|
"core.cancel": "Cancel",
|
||||||
"core.cannotconnect": "Cannot connect: verify that you have typed correctly the URL.",
|
"core.cannotconnect": "Cannot connect: Verify that you have correctly typed the URL.",
|
||||||
"core.cannotdownloadfiles": "File downloading is disabled. Please contact your site administrator.",
|
"core.cannotdownloadfiles": "File downloading is disabled. Please contact your site administrator.",
|
||||||
"core.captureaudio": "Record audio",
|
"core.captureaudio": "Record audio",
|
||||||
"core.capturedimage": "Taken picture.",
|
"core.capturedimage": "Taken picture.",
|
||||||
|
@ -1322,7 +1324,7 @@
|
||||||
"core.login.createaccount": "Create my new account",
|
"core.login.createaccount": "Create my new account",
|
||||||
"core.login.createuserandpass": "Choose your username and password",
|
"core.login.createuserandpass": "Choose your username and password",
|
||||||
"core.login.credentialsdescription": "Please provide your username and password to log in.",
|
"core.login.credentialsdescription": "Please provide your username and password to log in.",
|
||||||
"core.login.emailconfirmsent": "<p>An email should have been sent to your address at <b>{{$a}}</b></p><p>It contains easy instructions to complete your registration.</p><p>If you continue to have difficulty, contact the site administrator.</p>",
|
"core.login.emailconfirmsent": "<p>An email should have been sent to your address at <b>{{$a}}</b></p>\n <p>It contains easy instructions to complete your registration.</p>\n <p>If you continue to have difficulty, contact the site administrator.</p>",
|
||||||
"core.login.emailnotmatch": "Emails do not match",
|
"core.login.emailnotmatch": "Emails do not match",
|
||||||
"core.login.enterthewordsabove": "Enter the words above",
|
"core.login.enterthewordsabove": "Enter the words above",
|
||||||
"core.login.erroraccesscontrolalloworigin": "The cross-origin call you're trying to perform has been rejected. Please check https://docs.moodle.org/dev/Moodle_Mobile_development_using_Chrome_or_Chromium",
|
"core.login.erroraccesscontrolalloworigin": "The cross-origin call you're trying to perform has been rejected. Please check https://docs.moodle.org/dev/Moodle_Mobile_development_using_Chrome_or_Chromium",
|
||||||
|
@ -1402,8 +1404,6 @@
|
||||||
"core.mainmenu.changesite": "Change site",
|
"core.mainmenu.changesite": "Change site",
|
||||||
"core.mainmenu.help": "Help",
|
"core.mainmenu.help": "Help",
|
||||||
"core.mainmenu.logout": "Log out",
|
"core.mainmenu.logout": "Log out",
|
||||||
"core.mainmenu.mycourses": "My courses",
|
|
||||||
"core.mainmenu.togglemenu": "Toggle menu",
|
|
||||||
"core.mainmenu.website": "Website",
|
"core.mainmenu.website": "Website",
|
||||||
"core.maxsizeandattachments": "Maximum size for new files: {{$a.size}}, maximum attachments: {{$a.attachments}}",
|
"core.maxsizeandattachments": "Maximum size for new files: {{$a.size}}, maximum attachments: {{$a.attachments}}",
|
||||||
"core.min": "min",
|
"core.min": "min",
|
||||||
|
@ -1528,7 +1528,7 @@
|
||||||
"core.settings.disableall": "Disable notifications",
|
"core.settings.disableall": "Disable notifications",
|
||||||
"core.settings.disabled": "Disabled",
|
"core.settings.disabled": "Disabled",
|
||||||
"core.settings.displayformat": "Display format",
|
"core.settings.displayformat": "Display format",
|
||||||
"core.settings.enabledownloadsection": "Show download options",
|
"core.settings.enabledownloadsection": "Enable download sections",
|
||||||
"core.settings.enablerichtexteditor": "Enable text editor",
|
"core.settings.enablerichtexteditor": "Enable text editor",
|
||||||
"core.settings.enablerichtexteditordescription": "If enabled, a text editor will be available when entering content.",
|
"core.settings.enablerichtexteditordescription": "If enabled, a text editor will be available when entering content.",
|
||||||
"core.settings.enablesyncwifi": "Allow sync only when on Wi-Fi",
|
"core.settings.enablesyncwifi": "Allow sync only when on Wi-Fi",
|
||||||
|
@ -1647,4 +1647,4 @@
|
||||||
"core.year": "year",
|
"core.year": "year",
|
||||||
"core.years": "years",
|
"core.years": "years",
|
||||||
"core.yes": "Yes"
|
"core.yes": "Yes"
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,15 @@
|
||||||
"authenticating": "Authenticating",
|
"authenticating": "Authenticating",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"checksiteversion": "Check that your site uses Moodle 2.4 or later.",
|
"checksiteversion": "Check that your site uses Moodle 2.4 or later.",
|
||||||
"createaccount": "Create my new account",
|
|
||||||
"createuserandpass": "Choose your username and password",
|
|
||||||
"credentialsdescription": "Please provide your username and password to log in.",
|
|
||||||
"confirmdeletesite": "Are you sure you want to delete the site {{sitename}}?",
|
"confirmdeletesite": "Are you sure you want to delete the site {{sitename}}?",
|
||||||
"connect": "Connect!",
|
"connect": "Connect!",
|
||||||
"connecttomoodle": "Connect to Moodle",
|
"connecttomoodle": "Connect to Moodle",
|
||||||
"contactyouradministrator": "Contact your site administrator for further help.",
|
"contactyouradministrator": "Contact your site administrator for further help.",
|
||||||
"contactyouradministratorissue": "Please ask your site administrator to check the following issue: {{$a}}",
|
"contactyouradministratorissue": "Please ask your site administrator to check the following issue: {{$a}}",
|
||||||
"emailconfirmsent": "<p>An email should have been sent to your address at <b>{{$a}}</b></p><p>It contains easy instructions to complete your registration.</p><p>If you continue to have difficulty, contact the site administrator.</p>",
|
"createaccount": "Create my new account",
|
||||||
|
"createuserandpass": "Choose your username and password",
|
||||||
|
"credentialsdescription": "Please provide your username and password to log in.",
|
||||||
|
"emailconfirmsent": "<p>An email should have been sent to your address at <b>{{$a}}</b></p>\n <p>It contains easy instructions to complete your registration.</p>\n <p>If you continue to have difficulty, contact the site administrator.</p>",
|
||||||
"emailnotmatch": "Emails do not match",
|
"emailnotmatch": "Emails do not match",
|
||||||
"enterthewordsabove": "Enter the words above",
|
"enterthewordsabove": "Enter the words above",
|
||||||
"erroraccesscontrolalloworigin": "The cross-origin call you're trying to perform has been rejected. Please check https://docs.moodle.org/dev/Moodle_Mobile_development_using_Chrome_or_Chromium",
|
"erroraccesscontrolalloworigin": "The cross-origin call you're trying to perform has been rejected. Please check https://docs.moodle.org/dev/Moodle_Mobile_development_using_Chrome_or_Chromium",
|
||||||
|
@ -36,11 +36,11 @@
|
||||||
"legacymoodleversion": "You are trying to connect to an unsupported Moodle version. Please, download the Moodle Classic app to access this Moodle site.",
|
"legacymoodleversion": "You are trying to connect to an unsupported Moodle version. Please, download the Moodle Classic app to access this Moodle site.",
|
||||||
"legacymoodleversiondesktop": "You are trying to connect to <b>{{$a}}</b>.<br><br>This site is running an outdated unsupported version of Moodle which will not work with this Moodle Desktop App.<br><br>If this is your site please contact your local moodle partner to get assistance to update it.<br><br>See <a href=\"https://moodle.com/contact\">our contact page</a> to submit a request for assistance.",
|
"legacymoodleversiondesktop": "You are trying to connect to <b>{{$a}}</b>.<br><br>This site is running an outdated unsupported version of Moodle which will not work with this Moodle Desktop App.<br><br>If this is your site please contact your local moodle partner to get assistance to update it.<br><br>See <a href=\"https://moodle.com/contact\">our contact page</a> to submit a request for assistance.",
|
||||||
"localmobileunexpectedresponse": "Moodle Mobile Additional Features check returned an unexpected response. You will be authenticated using the standard mobile service.",
|
"localmobileunexpectedresponse": "Moodle Mobile Additional Features check returned an unexpected response. You will be authenticated using the standard mobile service.",
|
||||||
|
"loggedoutssodescription": "You have to authenticate again. You need to log in to the site in a browser window.",
|
||||||
"login": "Log in",
|
"login": "Log in",
|
||||||
"loginbutton": "Log in",
|
"loginbutton": "Log in",
|
||||||
"logininsiterequired": "You need to log in to the site in a browser window.",
|
"logininsiterequired": "You need to log in to the site in a browser window.",
|
||||||
"loginsteps": "For full access to this site, you first need to create an account.",
|
"loginsteps": "For full access to this site, you first need to create an account.",
|
||||||
"loggedoutssodescription": "You have to authenticate again. You need to log in to the site in a browser window.",
|
|
||||||
"missingemail": "Missing email address",
|
"missingemail": "Missing email address",
|
||||||
"missingfirstname": "Missing given name",
|
"missingfirstname": "Missing given name",
|
||||||
"missinglastname": "Missing surname",
|
"missinglastname": "Missing surname",
|
||||||
|
@ -56,10 +56,10 @@
|
||||||
"policyagree": "You must agree to this policy to continue using this site. Do you agree?",
|
"policyagree": "You must agree to this policy to continue using this site. Do you agree?",
|
||||||
"policyagreement": "Site policy agreement",
|
"policyagreement": "Site policy agreement",
|
||||||
"policyagreementclick": "Link to site policy agreement",
|
"policyagreementclick": "Link to site policy agreement",
|
||||||
|
"potentialidps": "Log in using your account on:",
|
||||||
"problemconnectingerror": "We're having trouble connecting to",
|
"problemconnectingerror": "We're having trouble connecting to",
|
||||||
"problemconnectingerrorcontinue": "Double check you've entered the address correctly and try again.",
|
"problemconnectingerrorcontinue": "Double check you've entered the address correctly and try again.",
|
||||||
"profileinvaliddata": "Invalid value",
|
"profileinvaliddata": "Invalid value",
|
||||||
"potentialidps": "Log in using your account on:",
|
|
||||||
"recaptchachallengeimage": "reCAPTCHA challenge image",
|
"recaptchachallengeimage": "reCAPTCHA challenge image",
|
||||||
"recaptchaexpired": "Verification expired. Answer the security question again.",
|
"recaptchaexpired": "Verification expired. Answer the security question again.",
|
||||||
"recaptchaincorrect": "The security question answer is incorrect.",
|
"recaptchaincorrect": "The security question answer is incorrect.",
|
||||||
|
|
|
@ -3,7 +3,5 @@
|
||||||
"changesite": "Change site",
|
"changesite": "Change site",
|
||||||
"help": "Help",
|
"help": "Help",
|
||||||
"logout": "Log out",
|
"logout": "Log out",
|
||||||
"mycourses": "My courses",
|
|
||||||
"togglemenu": "Toggle menu",
|
|
||||||
"website": "Website"
|
"website": "Website"
|
||||||
}
|
}
|
|
@ -20,7 +20,7 @@
|
||||||
"disableall": "Disable notifications",
|
"disableall": "Disable notifications",
|
||||||
"disabled": "Disabled",
|
"disabled": "Disabled",
|
||||||
"displayformat": "Display format",
|
"displayformat": "Display format",
|
||||||
"enabledownloadsection": "Show download options",
|
"enabledownloadsection": "Enable download sections",
|
||||||
"enablerichtexteditor": "Enable text editor",
|
"enablerichtexteditor": "Enable text editor",
|
||||||
"enablerichtexteditordescription": "If enabled, a text editor will be available when entering content.",
|
"enablerichtexteditordescription": "If enabled, a text editor will be available when entering content.",
|
||||||
"enablesyncwifi": "Allow sync only when on Wi-Fi",
|
"enablesyncwifi": "Allow sync only when on Wi-Fi",
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"accounts": "Accounts",
|
"accounts": "Accounts",
|
||||||
"add": "Add",
|
"add": "Add",
|
||||||
"all": "All",
|
|
||||||
"agelocationverification": "Age and location verification",
|
"agelocationverification": "Age and location verification",
|
||||||
|
"all": "All",
|
||||||
"allparticipants": "All participants",
|
"allparticipants": "All participants",
|
||||||
"android": "Android",
|
"android": "Android",
|
||||||
"answer": "Answer",
|
"answer": "Answer",
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
"areyousure": "Are you sure?",
|
"areyousure": "Are you sure?",
|
||||||
"back": "Back",
|
"back": "Back",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"cannotconnect": "Cannot connect: verify that you have typed correctly the URL.",
|
"cannotconnect": "Cannot connect: Verify that you have correctly typed the URL.",
|
||||||
"cannotdownloadfiles": "File downloading is disabled. Please contact your site administrator.",
|
"cannotdownloadfiles": "File downloading is disabled. Please contact your site administrator.",
|
||||||
"captureaudio": "Record audio",
|
"captureaudio": "Record audio",
|
||||||
"capturedimage": "Taken picture.",
|
"capturedimage": "Taken picture.",
|
||||||
|
@ -42,8 +42,8 @@
|
||||||
"confirmopeninbrowser": "Do you want to open it in a web browser?",
|
"confirmopeninbrowser": "Do you want to open it in a web browser?",
|
||||||
"considereddigitalminor": "You are considered to be a digital minor.",
|
"considereddigitalminor": "You are considered to be a digital minor.",
|
||||||
"content": "Content",
|
"content": "Content",
|
||||||
"continue": "Continue",
|
|
||||||
"contenteditingsynced": "The content you are editing has been synced.",
|
"contenteditingsynced": "The content you are editing has been synced.",
|
||||||
|
"continue": "Continue",
|
||||||
"copiedtoclipboard": "Text copied to clipboard",
|
"copiedtoclipboard": "Text copied to clipboard",
|
||||||
"course": "Course",
|
"course": "Course",
|
||||||
"coursedetails": "Course details",
|
"coursedetails": "Course details",
|
||||||
|
@ -58,9 +58,9 @@
|
||||||
"deletedoffline": "Deleted offline",
|
"deletedoffline": "Deleted offline",
|
||||||
"deleting": "Deleting",
|
"deleting": "Deleting",
|
||||||
"description": "Description",
|
"description": "Description",
|
||||||
"dffulldate": "dddd, D MMMM YYYY h[:]mm A",
|
|
||||||
"dfdaymonthyear": "MM-DD-YYYY",
|
"dfdaymonthyear": "MM-DD-YYYY",
|
||||||
"dfdayweekmonth": "ddd, D MMM",
|
"dfdayweekmonth": "ddd, D MMM",
|
||||||
|
"dffulldate": "dddd, D MMMM YYYY h[:]mm A",
|
||||||
"dflastweekdate": "ddd",
|
"dflastweekdate": "ddd",
|
||||||
"dfmediumdate": "LLL",
|
"dfmediumdate": "LLL",
|
||||||
"dftimedate": "h[:]mm A",
|
"dftimedate": "h[:]mm A",
|
||||||
|
@ -123,7 +123,6 @@
|
||||||
"maxsizeandattachments": "Maximum size for new files: {{$a.size}}, maximum attachments: {{$a.attachments}}",
|
"maxsizeandattachments": "Maximum size for new files: {{$a.size}}, maximum attachments: {{$a.attachments}}",
|
||||||
"min": "min",
|
"min": "min",
|
||||||
"mins": "mins",
|
"mins": "mins",
|
||||||
"moduleintro": "Description",
|
|
||||||
"mod_assign": "Assignment",
|
"mod_assign": "Assignment",
|
||||||
"mod_assignment": "Assignment 2.2 (Disabled)",
|
"mod_assignment": "Assignment 2.2 (Disabled)",
|
||||||
"mod_book": "Book",
|
"mod_book": "Book",
|
||||||
|
@ -150,16 +149,17 @@
|
||||||
"mod_url": "URL",
|
"mod_url": "URL",
|
||||||
"mod_wiki": "Wiki",
|
"mod_wiki": "Wiki",
|
||||||
"mod_workshop": "Workshop",
|
"mod_workshop": "Workshop",
|
||||||
|
"moduleintro": "Description",
|
||||||
"more": "more",
|
"more": "more",
|
||||||
"mygroups": "My groups",
|
"mygroups": "My groups",
|
||||||
"name": "Name",
|
"name": "Name",
|
||||||
"nograde": "No grade",
|
|
||||||
"networkerroriframemsg": "This content is not available offline. Please connect to the internet and try again.",
|
"networkerroriframemsg": "This content is not available offline. Please connect to the internet and try again.",
|
||||||
"networkerrormsg": "There was a problem connecting to the site. Please check your connection and try again.",
|
"networkerrormsg": "There was a problem connecting to the site. Please check your connection and try again.",
|
||||||
"never": "Never",
|
"never": "Never",
|
||||||
"next": "Next",
|
"next": "Next",
|
||||||
"no": "No",
|
"no": "No",
|
||||||
"nocomments": "No comments",
|
"nocomments": "No comments",
|
||||||
|
"nograde": "No grade",
|
||||||
"none": "None",
|
"none": "None",
|
||||||
"nopasswordchangeforced": "You cannot proceed without changing your password.",
|
"nopasswordchangeforced": "You cannot proceed without changing your password.",
|
||||||
"nopermissions": "Sorry, but you do not currently have permissions to do that ({{$a}})",
|
"nopermissions": "Sorry, but you do not currently have permissions to do that ({{$a}})",
|
||||||
|
@ -223,16 +223,16 @@
|
||||||
"time": "Time",
|
"time": "Time",
|
||||||
"timesup": "Time is up!",
|
"timesup": "Time is up!",
|
||||||
"today": "Today",
|
"today": "Today",
|
||||||
"twoparagraphs": "{{p1}}<br><br>{{p2}}",
|
|
||||||
"tryagain": "Try again",
|
"tryagain": "Try again",
|
||||||
|
"twoparagraphs": "{{p1}}<br><br>{{p2}}",
|
||||||
"uhoh": "Uh oh!",
|
"uhoh": "Uh oh!",
|
||||||
|
"unexpectederror": "Unexpected error. Please close and reopen the application then try again.",
|
||||||
"unicodenotsupported": "Some emojis are not supported on this site. Such characters will be removed when the message is sent.",
|
"unicodenotsupported": "Some emojis are not supported on this site. Such characters will be removed when the message is sent.",
|
||||||
"unicodenotsupportedcleanerror": "Empty text was found when cleaning Unicode chars.",
|
"unicodenotsupportedcleanerror": "Empty text was found when cleaning Unicode chars.",
|
||||||
"unknown": "Unknown",
|
"unknown": "Unknown",
|
||||||
"unlimited": "Unlimited",
|
"unlimited": "Unlimited",
|
||||||
"unzipping": "Unzipping",
|
"unzipping": "Unzipping",
|
||||||
"upgraderunning": "Site is being upgraded, please retry later.",
|
"upgraderunning": "Site is being upgraded, please retry later.",
|
||||||
"unexpectederror": "Unexpected error. Please close and reopen the application then try again.",
|
|
||||||
"userdeleted": "This user account has been deleted",
|
"userdeleted": "This user account has been deleted",
|
||||||
"userdetails": "User details",
|
"userdetails": "User details",
|
||||||
"usernotfullysetup": "User not fully set-up",
|
"usernotfullysetup": "User not fully set-up",
|
||||||
|
|
Loading…
Reference in New Issue