forked from EVOgeek/Vmeda.Online
		
	
						commit
						6ce2990c1f
					
				| @ -24,6 +24,8 @@ | ||||
|   "addon.block_myoverview.title": "block_myoverview", | ||||
|   "addon.block_recentlyaccessedcourses.nocourses": "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_timeline.duedate": "block_timeline", | ||||
|   "addon.block_timeline.next30days": "block_timeline", | ||||
| @ -102,24 +104,24 @@ | ||||
|   "addon.competency.xcompetenciesproficientoutofyincourse": "tool_lp", | ||||
|   "addon.coursecompletion.complete": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.completecourse": "block_selfcompletion", | ||||
|   "addon.coursecompletion.completed": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.completiondate": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.completed": "completion", | ||||
|   "addon.coursecompletion.completiondate": "report_completion", | ||||
|   "addon.coursecompletion.completionmenuitem": "completion", | ||||
|   "addon.coursecompletion.couldnotloadreport": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.coursecompletion": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.criteria": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.criteriagroup": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.criteriarequiredall": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.criteriarequiredany": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.inprogress": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.manualselfcompletion": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.notyetstarted": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.pending": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.coursecompletion": "completion", | ||||
|   "addon.coursecompletion.criteria": "completion", | ||||
|   "addon.coursecompletion.criteriagroup": "completion", | ||||
|   "addon.coursecompletion.criteriarequiredall": "completion", | ||||
|   "addon.coursecompletion.criteriarequiredany": "completion", | ||||
|   "addon.coursecompletion.inprogress": "completion", | ||||
|   "addon.coursecompletion.manualselfcompletion": "completion", | ||||
|   "addon.coursecompletion.notyetstarted": "completion", | ||||
|   "addon.coursecompletion.pending": "completion", | ||||
|   "addon.coursecompletion.required": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.requiredcriteria": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.requirement": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.requiredcriteria": "completion", | ||||
|   "addon.coursecompletion.requirement": "block_completionstatus", | ||||
|   "addon.coursecompletion.status": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.viewcoursereport": "local_moodlemobileapp", | ||||
|   "addon.coursecompletion.viewcoursereport": "completion", | ||||
|   "addon.files.couldnotloadfiles": "local_moodlemobileapp", | ||||
|   "addon.files.emptyfilelist": "local_moodlemobileapp", | ||||
|   "addon.files.erroruploadnotworking": "local_moodlemobileapp", | ||||
| @ -1323,7 +1325,7 @@ | ||||
|   "core.login.createaccount": "moodle", | ||||
|   "core.login.createuserandpass": "moodle", | ||||
|   "core.login.credentialsdescription": "local_moodlemobileapp", | ||||
|   "core.login.emailconfirmsent": "local_moodlemobileapp", | ||||
|   "core.login.emailconfirmsent": "moodle", | ||||
|   "core.login.emailnotmatch": "local_moodlemobileapp", | ||||
|   "core.login.enterthewordsabove": "auth", | ||||
|   "core.login.erroraccesscontrolalloworigin": "local_moodlemobileapp", | ||||
| @ -1336,7 +1338,7 @@ | ||||
|   "core.login.helpmelogin": "local_moodlemobileapp", | ||||
|   "core.login.instructions": "auth", | ||||
|   "core.login.invalidaccount": "local_moodlemobileapp", | ||||
|   "core.login.invaliddate": "local_moodlemobileapp", | ||||
|   "core.login.invaliddate": "calendar/errorinvaliddate", | ||||
|   "core.login.invalidemail": "moodle", | ||||
|   "core.login.invalidmoodleversion": "local_moodlemobileapp", | ||||
|   "core.login.invalidsite": "local_moodlemobileapp", | ||||
| @ -1402,8 +1404,6 @@ | ||||
|   "core.mainmenu.changesite": "local_moodlemobileapp", | ||||
|   "core.mainmenu.help": "moodle", | ||||
|   "core.mainmenu.logout": "moodle", | ||||
|   "core.mainmenu.mycourses": "moodle", | ||||
|   "core.mainmenu.togglemenu": "local_moodlemobileapp", | ||||
|   "core.mainmenu.website": "local_moodlemobileapp", | ||||
|   "core.maxsizeandattachments": "moodle", | ||||
|   "core.min": "moodle", | ||||
| @ -1609,14 +1609,14 @@ | ||||
|   "core.user.description": "moodle", | ||||
|   "core.user.details": "report_security", | ||||
|   "core.user.detailsnotavailable": "local_moodlemobileapp", | ||||
|   "core.user.editingteacher": "local_moodlemobileapp", | ||||
|   "core.user.editingteacher": "moodle/defaultcourseteacher", | ||||
|   "core.user.email": "moodle", | ||||
|   "core.user.emailagain": "moodle", | ||||
|   "core.user.errorloaduser": "local_moodlemobileapp", | ||||
|   "core.user.firstname": "moodle", | ||||
|   "core.user.interests": "moodle", | ||||
|   "core.user.lastname": "moodle", | ||||
|   "core.user.manager": "local_moodlemobileapp", | ||||
|   "core.user.manager": "role", | ||||
|   "core.user.newpicture": "moodle", | ||||
|   "core.user.noparticipants": "error", | ||||
|   "core.user.participants": "moodle", | ||||
| @ -1624,8 +1624,8 @@ | ||||
|   "core.user.phone2": "moodle", | ||||
|   "core.user.roles": "moodle", | ||||
|   "core.user.sendemail": "local_moodlemobileapp", | ||||
|   "core.user.student": "local_moodlemobileapp", | ||||
|   "core.user.teacher": "local_moodlemobileapp", | ||||
|   "core.user.student": "moodle/defaultcoursestudent", | ||||
|   "core.user.teacher": "moodle/noneditingteacher", | ||||
|   "core.user.webpage": "moodle", | ||||
|   "core.userdeleted": "moodle", | ||||
|   "core.userdetails": "moodle", | ||||
|  | ||||
| @ -8,6 +8,6 @@ | ||||
|     "morecourses": "More courses", | ||||
|     "nocourses": "No courses", | ||||
|     "past": "Past", | ||||
|     "pluginname": "Course Overview", | ||||
|     "pluginname": "Course overview", | ||||
|     "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(); | ||||
|         }); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										4
									
								
								src/addon/block/recentlyaccesseditems/lang/en.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/addon/block/recentlyaccesseditems/lang/en.json
									
									
									
									
									
										Normal file
									
								
							| @ -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", | ||||
|     "criteria": "Criteria", | ||||
|     "criteriagroup": "Criteria group", | ||||
|     "criteriarequiredall": "All criteria below are required.", | ||||
|     "criteriarequiredany": "Any criteria below are required.", | ||||
|     "criteriarequiredall": "All criteria below are required", | ||||
|     "criteriarequiredany": "Any criteria below are required", | ||||
|     "inprogress": "In progress", | ||||
|     "manualselfcompletion": "Manual self completion", | ||||
|     "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 { AddonBlockTimelineModule } from '@addon/block/timeline/timeline.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 { AddonModBookModule } from '@addon/mod/book/book.module'; | ||||
| import { AddonModChatModule } from '@addon/mod/chat/chat.module'; | ||||
| @ -204,6 +205,7 @@ export const CORE_PROVIDERS: any[] = [ | ||||
|         AddonBlockSiteMainMenuModule, | ||||
|         AddonBlockTimelineModule, | ||||
|         AddonBlockRecentlyAccessedCoursesModule, | ||||
|         AddonBlockRecentlyAccessedItemsModule, | ||||
|         AddonModAssignModule, | ||||
|         AddonModBookModule, | ||||
|         AddonModChatModule, | ||||
|  | ||||
| @ -20,10 +20,12 @@ | ||||
|     "addon.block_myoverview.morecourses": "More courses", | ||||
|     "addon.block_myoverview.nocourses": "No courses", | ||||
|     "addon.block_myoverview.past": "Past", | ||||
|     "addon.block_myoverview.pluginname": "Course Overview", | ||||
|     "addon.block_myoverview.pluginname": "Course overview", | ||||
|     "addon.block_myoverview.title": "Title", | ||||
|     "addon.block_recentlyaccessedcourses.nocourses": "No recent 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_timeline.duedate": "Due date", | ||||
|     "addon.block_timeline.next30days": "Next 30 days", | ||||
| @ -109,8 +111,8 @@ | ||||
|     "addon.coursecompletion.coursecompletion": "Course completion", | ||||
|     "addon.coursecompletion.criteria": "Criteria", | ||||
|     "addon.coursecompletion.criteriagroup": "Criteria group", | ||||
|     "addon.coursecompletion.criteriarequiredall": "All criteria below are required.", | ||||
|     "addon.coursecompletion.criteriarequiredany": "Any criteria below are required.", | ||||
|     "addon.coursecompletion.criteriarequiredall": "All criteria below are required", | ||||
|     "addon.coursecompletion.criteriarequiredany": "Any criteria below are required", | ||||
|     "addon.coursecompletion.inprogress": "In progress", | ||||
|     "addon.coursecompletion.manualselfcompletion": "Manual self completion", | ||||
|     "addon.coursecompletion.notyetstarted": "Not yet started", | ||||
| @ -1099,7 +1101,7 @@ | ||||
|     "core.areyousure": "Are you sure?", | ||||
|     "core.back": "Back", | ||||
|     "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.captureaudio": "Record audio", | ||||
|     "core.capturedimage": "Taken picture.", | ||||
| @ -1322,7 +1324,7 @@ | ||||
|     "core.login.createaccount": "Create my new account", | ||||
|     "core.login.createuserandpass": "Choose your username and password", | ||||
|     "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.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", | ||||
| @ -1402,8 +1404,6 @@ | ||||
|     "core.mainmenu.changesite": "Change site", | ||||
|     "core.mainmenu.help": "Help", | ||||
|     "core.mainmenu.logout": "Log out", | ||||
|     "core.mainmenu.mycourses": "My courses", | ||||
|     "core.mainmenu.togglemenu": "Toggle menu", | ||||
|     "core.mainmenu.website": "Website", | ||||
|     "core.maxsizeandattachments": "Maximum size for new files: {{$a.size}}, maximum attachments: {{$a.attachments}}", | ||||
|     "core.min": "min", | ||||
| @ -1528,7 +1528,7 @@ | ||||
|     "core.settings.disableall": "Disable notifications", | ||||
|     "core.settings.disabled": "Disabled", | ||||
|     "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.enablerichtexteditordescription": "If enabled, a text editor will be available when entering content.", | ||||
|     "core.settings.enablesyncwifi": "Allow sync only when on Wi-Fi", | ||||
| @ -1647,4 +1647,4 @@ | ||||
|     "core.year": "year", | ||||
|     "core.years": "years", | ||||
|     "core.yes": "Yes" | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -3,15 +3,15 @@ | ||||
|     "authenticating": "Authenticating", | ||||
|     "cancel": "Cancel", | ||||
|     "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}}?", | ||||
|     "connect": "Connect!", | ||||
|     "connecttomoodle": "Connect to Moodle", | ||||
|     "contactyouradministrator": "Contact your site administrator for further help.", | ||||
|     "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", | ||||
|     "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", | ||||
| @ -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.", | ||||
|     "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.", | ||||
|     "loggedoutssodescription": "You have to authenticate again. You need to log in to the site in a browser window.", | ||||
|     "login": "Log in", | ||||
|     "loginbutton": "Log in", | ||||
|     "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.", | ||||
|     "loggedoutssodescription": "You have to authenticate again. You need to log in to the site in a browser window.", | ||||
|     "missingemail": "Missing email address", | ||||
|     "missingfirstname": "Missing given name", | ||||
|     "missinglastname": "Missing surname", | ||||
| @ -56,10 +56,10 @@ | ||||
|     "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:", | ||||
|     "problemconnectingerror": "We're having trouble connecting to", | ||||
|     "problemconnectingerrorcontinue": "Double check you've entered the address correctly and try again.", | ||||
|     "profileinvaliddata": "Invalid value", | ||||
|     "potentialidps": "Log in using your account on:", | ||||
|     "recaptchachallengeimage": "reCAPTCHA challenge image", | ||||
|     "recaptchaexpired": "Verification expired. Answer the security question again.", | ||||
|     "recaptchaincorrect": "The security question answer is incorrect.", | ||||
|  | ||||
| @ -3,7 +3,5 @@ | ||||
|     "changesite": "Change site", | ||||
|     "help": "Help", | ||||
|     "logout": "Log out", | ||||
|     "mycourses": "My courses", | ||||
|     "togglemenu": "Toggle menu", | ||||
|     "website": "Website" | ||||
| } | ||||
| @ -20,7 +20,7 @@ | ||||
|     "disableall": "Disable notifications", | ||||
|     "disabled": "Disabled", | ||||
|     "displayformat": "Display format", | ||||
|     "enabledownloadsection": "Show download options", | ||||
|     "enabledownloadsection": "Enable download sections", | ||||
|     "enablerichtexteditor": "Enable text editor", | ||||
|     "enablerichtexteditordescription": "If enabled, a text editor will be available when entering content.", | ||||
|     "enablesyncwifi": "Allow sync only when on Wi-Fi", | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| { | ||||
|     "accounts": "Accounts", | ||||
|     "add": "Add", | ||||
|     "all": "All", | ||||
|     "agelocationverification": "Age and location verification", | ||||
|     "all": "All", | ||||
|     "allparticipants": "All participants", | ||||
|     "android": "Android", | ||||
|     "answer": "Answer", | ||||
| @ -10,7 +10,7 @@ | ||||
|     "areyousure": "Are you sure?", | ||||
|     "back": "Back", | ||||
|     "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.", | ||||
|     "captureaudio": "Record audio", | ||||
|     "capturedimage": "Taken picture.", | ||||
| @ -42,8 +42,8 @@ | ||||
|     "confirmopeninbrowser": "Do you want to open it in a web browser?", | ||||
|     "considereddigitalminor": "You are considered to be a digital minor.", | ||||
|     "content": "Content", | ||||
|     "continue": "Continue", | ||||
|     "contenteditingsynced": "The content you are editing has been synced.", | ||||
|     "continue": "Continue", | ||||
|     "copiedtoclipboard": "Text copied to clipboard", | ||||
|     "course": "Course", | ||||
|     "coursedetails": "Course details", | ||||
| @ -58,9 +58,9 @@ | ||||
|     "deletedoffline": "Deleted offline", | ||||
|     "deleting": "Deleting", | ||||
|     "description": "Description", | ||||
|     "dffulldate": "dddd, D MMMM YYYY h[:]mm A", | ||||
|     "dfdaymonthyear": "MM-DD-YYYY", | ||||
|     "dfdayweekmonth": "ddd, D MMM", | ||||
|     "dffulldate": "dddd, D MMMM YYYY h[:]mm A", | ||||
|     "dflastweekdate": "ddd", | ||||
|     "dfmediumdate": "LLL", | ||||
|     "dftimedate": "h[:]mm A", | ||||
| @ -123,7 +123,6 @@ | ||||
|     "maxsizeandattachments": "Maximum size for new files: {{$a.size}}, maximum attachments: {{$a.attachments}}", | ||||
|     "min": "min", | ||||
|     "mins": "mins", | ||||
|     "moduleintro": "Description", | ||||
|     "mod_assign": "Assignment", | ||||
|     "mod_assignment": "Assignment 2.2 (Disabled)", | ||||
|     "mod_book": "Book", | ||||
| @ -150,16 +149,17 @@ | ||||
|     "mod_url": "URL", | ||||
|     "mod_wiki": "Wiki", | ||||
|     "mod_workshop": "Workshop", | ||||
|     "moduleintro": "Description", | ||||
|     "more": "more", | ||||
|     "mygroups": "My groups", | ||||
|     "name": "Name", | ||||
|     "nograde": "No grade", | ||||
|     "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.", | ||||
|     "never": "Never", | ||||
|     "next": "Next", | ||||
|     "no": "No", | ||||
|     "nocomments": "No comments", | ||||
|     "nograde": "No grade", | ||||
|     "none": "None", | ||||
|     "nopasswordchangeforced": "You cannot proceed without changing your password.", | ||||
|     "nopermissions": "Sorry, but you do not currently have permissions to do that ({{$a}})", | ||||
| @ -223,16 +223,16 @@ | ||||
|     "time": "Time", | ||||
|     "timesup": "Time is up!", | ||||
|     "today": "Today", | ||||
|     "twoparagraphs": "{{p1}}<br><br>{{p2}}", | ||||
|     "tryagain": "Try again", | ||||
|     "twoparagraphs": "{{p1}}<br><br>{{p2}}", | ||||
|     "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.", | ||||
|     "unicodenotsupportedcleanerror": "Empty text was found when cleaning Unicode chars.", | ||||
|     "unknown": "Unknown", | ||||
|     "unlimited": "Unlimited", | ||||
|     "unzipping": "Unzipping", | ||||
|     "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", | ||||
|     "userdetails": "User details", | ||||
|     "usernotfullysetup": "User not fully set-up", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user