<!-- Buttons to add to the header. -->
<core-navbar-buttons end>
    <core-context-menu>
        <core-context-menu-item *ngIf="externalUrl" [priority]="900" [content]="'core.openinbrowser' | translate" [href]="externalUrl" [iconAction]="'open'"></core-context-menu-item>
        <core-context-menu-item *ngIf="description" [priority]="800" [content]="'core.moduleintro' | translate" (action)="expandDescription()" [iconAction]="'arrow-forward'"></core-context-menu-item>
        <core-context-menu-item *ngIf="loaded && !hasOffline && isOnline" [priority]="700" [content]="'addon.mod_forum.refreshdiscussions' | translate" (action)="doRefresh(null, $event)" [iconAction]="refreshIcon" [closeOnClick]="false"></core-context-menu-item>
        <core-context-menu-item *ngIf="loaded && hasOffline && isOnline"  [priority]="600" [content]="'core.settings.synchronizenow' | translate" (action)="doRefresh(null, $event, true)" [iconAction]="syncIcon" [closeOnClick]="false"></core-context-menu-item>
        <core-context-menu-item *ngIf="prefetchStatusIcon" [priority]="500" [content]="prefetchText" (action)="prefetch()" [iconAction]="prefetchStatusIcon" [closeOnClick]="false"></core-context-menu-item>
        <core-context-menu-item *ngIf="size" [priority]="400" [content]="size" [iconDescription]="'cube'" (action)="removeFiles()" [iconAction]="'trash'"></core-context-menu-item>
    </core-context-menu>
</core-navbar-buttons>

<!-- Content. -->
<core-split-view>
    <ion-content [class.has-fab]="forum && forum.cancreatediscussions">
        <ion-refresher [enabled]="loaded" (ionRefresh)="doRefresh($event)">
            <ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
        </ion-refresher>
        <core-loading [hideUntil]="loaded" class="core-loading-center">
            <core-course-module-description [description]="description" [component]="component" [componentId]="componentId" [note]="descriptionNote"></core-course-module-description>

            <!-- Forum discussions found to be synchronized -->
            <ion-card class="core-warning-card" icon-start *ngIf="hasOffline">
                <ion-icon name="warning"></ion-icon> {{ 'core.hasdatatosync' | translate:{$a: moduleName} }}
            </ion-card>

            <ng-container *ngIf="forum && discussions.length > 0">
                <ion-card *ngFor="let discussion of offlineDiscussions" (click)="openNewDiscussion(discussion.timecreated)" [class.addon-forum-discussion-selected]="discussion.timecreated == -selectedDiscussion">
                    <ion-item text-wrap>
                        <ion-avatar item-start core-user-link [userId]="discussion.userid" [courseId]="courseId">
                            <img [src]="discussion.userpictureurl" onError="this.src='assets/img/user-avatar.png'" core-external-content [alt]="'core.pictureof' | translate:{$a: discussion.userfullname}" role="presentation">
                        </ion-avatar>
                        <h2><core-format-text [text]="discussion.subject"></core-format-text></h2>
                        <p *ngIf="discussion.userfullname">
                            <ion-note float-end padding-left><ion-icon name="time"></ion-icon> {{ 'core.notsent' | translate }}</ion-note>
                            {{discussion.userfullname}}
                        </p>
                    </ion-item>
                    <ion-card-content>
                        <ion-note text-end *ngIf="discussion.groupname">
                            <ion-icon name="people"></ion-icon> {{ discussion.groupname }}
                        </ion-note>
                        <p><core-format-text [maxHeight]="60" [component]="component" [componentId]="componentId" [text]="discussion.message"></core-format-text></p>
                    </ion-card-content>
                </ion-card>
                <ion-card *ngFor="let discussion of discussions" (click)="openDiscussion(discussion)" [class.addon-forum-discussion-selected]="discussion.discussion == selectedDiscussion">
                    <ion-item text-wrap>
                        <ion-avatar item-start core-user-link [userId]="discussion.userid" [courseId]="courseId">
                            <img [src]="discussion.userpictureurl" onError="this.src='assets/img/user-avatar.png'" core-external-content [alt]="'core.pictureof' | translate:{$a: discussion.userfullname}" role="presentation">
                        </ion-avatar>
                        <h2><ion-icon name="pin" *ngIf="discussion.pinned"></ion-icon> <core-format-text [text]="discussion.subject"></core-format-text></h2>
                        <p>
                            <ion-note float-end padding-left text-end>
                                {{discussion.created | coreDateDayOrTime}}
                                <div *ngIf="discussion.numunread"><core-icon name="fa-circle" color="primary"></core-icon> {{ 'addon.mod_forum.unreadpostsnumber' | translate:{ '$a' : discussion.numunread} }}</div>
                            </ion-note>
                            {{discussion.userfullname}}
                        </p>
                    </ion-item>
                    <ion-card-content>
                        <core-format-text [maxHeight]="60" [component]="component" [componentId]="componentId" [text]="discussion.message"></core-format-text>
                    </ion-card-content>
                    <ion-row text-center>
                        <ion-col *ngIf="discussion.groupname">
                            <ion-note>
                                <ion-icon name="people"></ion-icon> {{ discussion.groupname }}
                            </ion-note>
                        </ion-col>
                        <ion-col>
                            <ion-note>
                                <ion-icon name="chatboxes"></ion-icon> {{ 'addon.mod_forum.numreplies' | translate:{numreplies: discussion.numreplies} }}
                            </ion-note>
                        </ion-col>
                        <ion-col *ngIf="discussion.timemodified > discussion.created">
                            <ion-note>
                                <ion-icon name="time"></ion-icon> {{discussion.timemodified | coreTimeAgo}}
                            </ion-note>
                        </ion-col>
                    </ion-row>
                </ion-card>
            </ng-container>

            <core-empty-box *ngIf="forum && discussions.length == 0" icon="chatbubbles" [message]="'addon.mod_forum.forumnodiscussionsyet' | translate">
                <div padding *ngIf="forum.cancreatediscussions">
                    <button ion-button block (click)="openNewDiscussion()">
                        {{ 'addon.mod_forum.addanewdiscussion' | translate }}
                    </button>
                </div>
            </core-empty-box>

            <div *ngIf="canLoadMore" padding>
                <button ion-button block (click)="fetchMoreDiscussions()" color="light">{{'core.loadmore' | translate }}</button>
                <ion-infinite-scroll [enabled]="canLoadMore" (ionInfinite)="$event.waitFor(fetchMoreDiscussions())">
                    <ion-infinite-scroll-content></ion-infinite-scroll-content>
                </ion-infinite-scroll>
            </div>
        </core-loading>

        <ion-fab bottom end *ngIf="forum && forum.cancreatediscussions">
            <button ion-fab (click)="openNewDiscussion()" [attr.aria-label]="addDiscussionText">
                <ion-icon name="add"></ion-icon>
            </button>
        </ion-fab>
    </ion-content>
</core-split-view>