MOBILE-3014 block: Add Calendar block feature
parent
9a5f567387
commit
2ad5daec1c
|
@ -27,6 +27,7 @@
|
|||
"addon.badges.version": "badges",
|
||||
"addon.badges.warnexpired": "badges",
|
||||
"addon.block_activitymodules.pluginname": "block_activity_modules",
|
||||
"addon.block_calendarmonth.pluginname": "block_calendar_month",
|
||||
"addon.block_myoverview.all": "block_myoverview",
|
||||
"addon.block_myoverview.favourites": "block_myoverview",
|
||||
"addon.block_myoverview.future": "block_myoverview",
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
// (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 { CoreBlockDelegate } from '@core/block/providers/delegate';
|
||||
import { AddonBlockCalendarMonthHandler } from './providers/block-handler';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
],
|
||||
imports: [
|
||||
IonicModule,
|
||||
TranslateModule.forChild()
|
||||
],
|
||||
exports: [
|
||||
],
|
||||
providers: [
|
||||
AddonBlockCalendarMonthHandler
|
||||
]
|
||||
})
|
||||
export class AddonBlockCalendarMonthModule {
|
||||
constructor(blockDelegate: CoreBlockDelegate, blockHandler: AddonBlockCalendarMonthHandler) {
|
||||
blockDelegate.registerHandler(blockHandler);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"pluginname": "Calendar"
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
// (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 { CoreBlockOnlyTitleComponent } from '@core/block/components/only-title-block/only-title-block';
|
||||
import { CoreBlockBaseHandler } from '@core/block/classes/base-block-handler';
|
||||
|
||||
/**
|
||||
* Block handler.
|
||||
*/
|
||||
@Injectable()
|
||||
export class AddonBlockCalendarMonthHandler extends CoreBlockBaseHandler {
|
||||
name = 'AddonBlockCalendarMonth';
|
||||
blockName = 'calendar_month';
|
||||
|
||||
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_calendarmonth.pluginname',
|
||||
class: 'addon-block-calendar-month',
|
||||
component: CoreBlockOnlyTitleComponent,
|
||||
link: 'AddonCalendarListPage',
|
||||
linkParams: contextLevel == 'course' ? { courseId: instanceId } : null
|
||||
};
|
||||
}
|
||||
}
|
|
@ -53,6 +53,7 @@ export class AddonCalendarListPage implements OnDestroy {
|
|||
protected siteHomeId: number;
|
||||
protected obsDefaultTimeChange: any;
|
||||
protected eventId: number;
|
||||
protected preSelectedCourseId: number;
|
||||
|
||||
courses: any[];
|
||||
eventsLoaded = false;
|
||||
|
@ -81,6 +82,7 @@ export class AddonCalendarListPage implements OnDestroy {
|
|||
}
|
||||
|
||||
this.eventId = navParams.get('eventId') || false;
|
||||
this.preSelectedCourseId = navParams.get('courseId') || null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -118,6 +120,12 @@ export class AddonCalendarListPage implements OnDestroy {
|
|||
courses.unshift(this.allCourses);
|
||||
this.courses = courses;
|
||||
|
||||
if (this.preSelectedCourseId) {
|
||||
this.filter.course = courses.find((course) => {
|
||||
return course.id == this.preSelectedCourseId;
|
||||
});
|
||||
}
|
||||
|
||||
return this.fetchEvents(refresh);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -91,6 +91,7 @@ import { AddonCourseCompletionModule } from '@addon/coursecompletion/coursecompl
|
|||
import { AddonUserProfileFieldModule } from '@addon/userprofilefield/userprofilefield.module';
|
||||
import { AddonFilesModule } from '@addon/files/files.module';
|
||||
import { AddonBlockActivityModulesModule } from '@addon/block/activitymodules/activitymodules.module';
|
||||
import { AddonBlockCalendarMonthModule } from '@addon/block/calendarmonth/calendarmonth.module';
|
||||
import { AddonBlockMyOverviewModule } from '@addon/block/myoverview/myoverview.module';
|
||||
import { AddonBlockSiteMainMenuModule } from '@addon/block/sitemainmenu/sitemainmenu.module';
|
||||
import { AddonBlockTimelineModule } from '@addon/block/timeline/timeline.module';
|
||||
|
@ -213,6 +214,7 @@ export const CORE_PROVIDERS: any[] = [
|
|||
AddonUserProfileFieldModule,
|
||||
AddonFilesModule,
|
||||
AddonBlockActivityModulesModule,
|
||||
AddonBlockCalendarMonthModule,
|
||||
AddonBlockMyOverviewModule,
|
||||
AddonBlockSiteMainMenuModule,
|
||||
AddonBlockTimelineModule,
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
"addon.badges.version": "Version",
|
||||
"addon.badges.warnexpired": "(This badge has expired!)",
|
||||
"addon.block_activitymodules.pluginname": "Activities",
|
||||
"addon.block_calendarmonth.pluginname": "Calendar",
|
||||
"addon.block_myoverview.all": "All",
|
||||
"addon.block_myoverview.favourites": "Starred",
|
||||
"addon.block_myoverview.future": "Future",
|
||||
|
|
Loading…
Reference in New Issue