<ion-header> <ion-navbar core-back-button> <ion-title>{{ 'addon.calendar.calendarevents' | translate }}</ion-title> <ion-buttons end> <button *ngIf="courses && courses.length" ion-button icon-only (click)="openCourseFilter($event)" [attr.aria-label]="'core.courses.filter' | translate"> <ion-icon name="funnel"></ion-icon> </button> <core-context-menu> <core-context-menu-item [hidden]="!notificationsEnabled" [priority]="600" [content]="'core.settings.settings' | translate" (action)="openSettings()" [iconAction]="'cog'"></core-context-menu-item> </core-context-menu> </ion-buttons> </ion-navbar> </ion-header> <core-split-view> <ion-content> <ion-refresher [enabled]="eventsLoaded" (ionRefresh)="refreshEvents($event)"> <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content> </ion-refresher> <core-loading [hideUntil]="eventsLoaded"> <core-empty-box *ngIf="!filteredEvents || !filteredEvents.length" icon="calendar" [message]="'addon.calendar.noevents' | translate"> </core-empty-box> <ion-list *ngIf="filteredEvents && filteredEvents.length" no-margin> <ng-container *ngFor="let event of filteredEvents"> <ion-item-divider *ngIf="event.showDate"> {{ event.timestart * 1000 | coreFormatDate: "strftimedayshort" }} </ion-item-divider> <a ion-item text-wrap [title]="event.name" (click)="gotoEvent(event.id)" [class.core-split-item-selected]="event.id == eventId"> <img *ngIf="event.moduleIcon" src="{{event.moduleIcon}}" item-start class="core-module-icon"> <core-icon *ngIf="event.icon && !event.moduleIcon" [name]="event.icon" item-start></core-icon> <h2><core-format-text [text]="event.name"></core-format-text></h2> <p> {{ event.timestart * 1000 | coreFormatDate: "strftimetime" }} <span *ngIf="event.timeduration && event.endsSameDay"> - {{ (event.timestart + event.timeduration) * 1000 | coreFormatDate: "strftimetime" }}</span> <span *ngIf="event.timeduration && !event.endsSameDay"> - {{ (event.timestart + event.timeduration) * 1000 | coreFormatDate: "strftimedatetimeshort" }}</span> </p> </a> </ng-container> </ion-list> <core-infinite-loading [enabled]="canLoadMore" (action)="loadMoreEvents($event)" [error]="loadMoreError"></core-infinite-loading> </core-loading> </ion-content> </core-split-view>