2021-02-24 13:26:38 +00:00
|
|
|
<!-- Buttons to add to the header. -->
|
|
|
|
<core-navbar-buttons slot="end">
|
2022-02-17 12:58:10 +00:00
|
|
|
<ion-button fill="clear" (click)="openModuleSummary()" aria-haspopup="true" [attr.aria-label]="'core.info' | translate">
|
2022-02-17 14:55:10 +00:00
|
|
|
<ion-icon name="fas-info-circle" slot="icon-only" aria-hidden="true"></ion-icon>
|
|
|
|
</ion-button>
|
2021-02-24 13:26:38 +00:00
|
|
|
</core-navbar-buttons>
|
|
|
|
|
2021-02-16 10:18:12 +00:00
|
|
|
<!-- Content. -->
|
2021-02-23 09:02:37 +00:00
|
|
|
<core-split-view>
|
2022-02-23 13:47:38 +00:00
|
|
|
<ion-refresher slot="fixed" [disabled]="showLoading || (discussions && !discussions.loaded)" (ionRefresh)="doRefresh($event.target)">
|
2021-02-23 09:02:37 +00:00
|
|
|
<ion-refresher-content pullingText="{{ 'core.pulltorefresh' | translate }}"></ion-refresher-content>
|
|
|
|
</ion-refresher>
|
2021-02-16 10:18:12 +00:00
|
|
|
|
2022-02-23 13:47:38 +00:00
|
|
|
<core-loading [hideUntil]="!showLoading && discussions && discussions.loaded">
|
2021-05-07 08:09:31 +00:00
|
|
|
<!-- Activity info. -->
|
2022-01-19 14:22:10 +00:00
|
|
|
<core-course-module-info [module]="module" [description]="forum && forum.type != 'single' && description" [component]="component"
|
2022-03-02 12:40:07 +00:00
|
|
|
[componentId]="componentId" [courseId]="courseId" [hasDataToSync]="hasOffline || hasOfflineRatings"
|
|
|
|
(completionChanged)="onCompletionChange()">
|
2022-02-09 21:29:21 +00:00
|
|
|
<ion-item class="ion-text-wrap">
|
2021-11-16 11:58:46 +00:00
|
|
|
<ion-label>
|
|
|
|
{{descriptionNote}}
|
|
|
|
</ion-label>
|
|
|
|
</ion-item>
|
2021-05-07 08:09:31 +00:00
|
|
|
</core-course-module-info>
|
|
|
|
|
2021-02-23 09:02:37 +00:00
|
|
|
<!-- Cut-off date or due date message -->
|
|
|
|
<ion-card class="core-info-card" *ngIf="availabilityMessage">
|
|
|
|
<ion-item>
|
2021-04-27 11:14:31 +00:00
|
|
|
<ion-icon name="fas-info-circle" slot="start" aria-hidden="true"></ion-icon>
|
2021-02-23 09:02:37 +00:00
|
|
|
<ion-label>{{ availabilityMessage }}</ion-label>
|
|
|
|
</ion-item>
|
|
|
|
</ion-card>
|
2021-02-16 10:18:12 +00:00
|
|
|
|
2021-02-23 09:02:37 +00:00
|
|
|
<ng-container *ngIf="forum">
|
2021-12-01 12:59:19 +00:00
|
|
|
<core-empty-box *ngIf="!discussions || discussions.empty" icon="far-comments"
|
|
|
|
[message]="'addon.mod_forum.forumnodiscussionsyet' | translate">
|
2021-02-23 09:02:37 +00:00
|
|
|
</core-empty-box>
|
2021-02-16 10:18:12 +00:00
|
|
|
|
2021-12-01 12:59:19 +00:00
|
|
|
<div *ngIf="discussions && !discussions.empty && sortingAvailable && selectedSortOrder" class="ion-text-wrap">
|
2021-11-16 11:58:46 +00:00
|
|
|
<core-combobox [modalOptions]="sortOrderSelectorModalOptions" listboxId="addon-mod-forum-sort-selector"
|
|
|
|
[label]="('core.sort' | translate)" (onChange)="setSortOrder($event)" [selection]="selectedSortOrder.label | translate"
|
2021-05-06 09:06:17 +00:00
|
|
|
interface="modal">
|
|
|
|
</core-combobox>
|
2021-02-23 09:02:37 +00:00
|
|
|
</div>
|
2021-02-16 10:18:12 +00:00
|
|
|
|
2021-12-01 12:59:19 +00:00
|
|
|
<ion-item *ngFor="let discussion of discussionsItems" class="addon-mod-forum-discussion" detail="true"
|
2021-12-09 14:18:10 +00:00
|
|
|
[lines]="discussion.groupname && 'none'" [attr.aria-current]="discussions?.getItemAriaCurrent(discussion)"
|
|
|
|
(click)="discussions?.select(discussion)" button>
|
2021-02-23 09:02:37 +00:00
|
|
|
<ion-label>
|
|
|
|
<div class="addon-mod-forum-discussion-title">
|
2021-05-20 07:56:54 +00:00
|
|
|
<p class="ion-text-wrap item-heading">
|
2021-06-28 09:19:51 +00:00
|
|
|
<ion-icon name="fas-map-pin" *ngIf="discussion.pinned"
|
2021-04-27 11:14:31 +00:00
|
|
|
[attr.aria-label]="'addon.mod_forum.discussionpinned' | translate"></ion-icon>
|
2021-06-28 09:19:51 +00:00
|
|
|
<ion-icon name="fas-star" class="addon-forum-star" *ngIf="!discussion.pinned && discussion.starred"
|
2021-04-27 11:14:31 +00:00
|
|
|
[attr.aria-label]="'addon.mod_forum.favourites' | translate"></ion-icon>
|
2021-11-16 11:58:46 +00:00
|
|
|
<core-format-text [text]="discussion.subject" contextLevel="module" [contextInstanceId]="module && module.id"
|
|
|
|
[courseId]="courseId">
|
2021-03-01 13:47:47 +00:00
|
|
|
</core-format-text>
|
2022-04-11 10:15:47 +00:00
|
|
|
<ion-icon name="fas-lock" *ngIf="discussion.locked" class="addon-mod-forum-locked-icon"
|
|
|
|
[attr.aria-label]="'addon.mod_forum.discussionlocked' | translate"></ion-icon>
|
2021-05-20 07:56:54 +00:00
|
|
|
</p>
|
2022-03-02 15:24:44 +00:00
|
|
|
<ion-button *ngIf="canPin || discussion.canlock || discussion.canfavourite" fill="clear"
|
2021-11-16 11:58:46 +00:00
|
|
|
[attr.aria-label]="('core.displayoptions' | translate)" (click)="showOptionsMenu($event, discussion)">
|
2021-04-27 11:14:31 +00:00
|
|
|
<ion-icon name="ellipsis-vertical" slot="icon-only" aria-hidden="true">
|
2021-02-23 09:02:37 +00:00
|
|
|
</ion-icon>
|
|
|
|
</ion-button>
|
|
|
|
</div>
|
|
|
|
<div class="addon-mod-forum-discussion-info">
|
2021-03-01 13:47:47 +00:00
|
|
|
<core-user-avatar *ngIf="discussion.userfullname" [user]="discussion" slot="start" [courseId]="courseId">
|
|
|
|
</core-user-avatar>
|
2021-02-23 09:02:37 +00:00
|
|
|
<div class="addon-mod-forum-discussion-author">
|
2021-05-20 07:56:54 +00:00
|
|
|
<span *ngIf="discussion.userfullname">{{discussion.userfullname}}</span>
|
2022-02-22 10:42:36 +00:00
|
|
|
<p *ngIf="discussion.groupname" class="core-groupname">
|
2021-04-27 11:14:31 +00:00
|
|
|
<ion-icon name="fas-users" [attr.aria-label]="'addon.mod_forum.group' | translate">
|
|
|
|
</ion-icon> {{ discussion.groupname }}
|
|
|
|
</p>
|
2021-12-01 12:59:19 +00:00
|
|
|
<p *ngIf="isOnlineDiscussion(discussion)">
|
2021-03-01 13:47:47 +00:00
|
|
|
{{discussion.created * 1000 | coreFormatDate: "strftimerecentfull"}}
|
|
|
|
</p>
|
2021-12-01 12:59:19 +00:00
|
|
|
<p *ngIf="isOfflineDiscussion(discussion)">
|
2021-04-27 11:14:31 +00:00
|
|
|
<ion-icon name="fas-clock" aria-hidden="true"></ion-icon>
|
2021-03-01 13:47:47 +00:00
|
|
|
{{ 'core.notsent' | translate }}
|
|
|
|
</p>
|
2021-02-16 10:18:12 +00:00
|
|
|
</div>
|
2021-02-23 09:02:37 +00:00
|
|
|
</div>
|
2021-12-01 12:59:19 +00:00
|
|
|
<ion-row *ngIf="isOnlineDiscussion(discussion)" class="ion-text-center addon-mod-forum-discussion-more-info">
|
2021-02-23 09:02:37 +00:00
|
|
|
<ion-col class="ion-text-start">
|
|
|
|
<ion-note>
|
2021-04-27 11:14:31 +00:00
|
|
|
<ion-icon name="fas-clock" aria-hidden="true"></ion-icon> {{ 'addon.mod_forum.lastpost' | translate }}
|
2021-03-01 13:47:47 +00:00
|
|
|
<ng-container *ngIf="discussion.timemodified > discussion.created">
|
|
|
|
{{ discussion.timemodified | coreTimeAgo }}
|
|
|
|
</ng-container>
|
|
|
|
<ng-container *ngIf="discussion.timemodified <= discussion.created">
|
|
|
|
{{ discussion.created | coreTimeAgo }}
|
|
|
|
</ng-container>
|
2021-02-23 09:02:37 +00:00
|
|
|
</ion-note>
|
|
|
|
</ion-col>
|
|
|
|
<ion-col class="ion-text-end">
|
|
|
|
<ion-note>
|
2021-04-27 11:14:31 +00:00
|
|
|
<ion-icon name="fas-comments" aria-hidden="true"></ion-icon>
|
2021-03-01 13:47:47 +00:00
|
|
|
{{ 'addon.mod_forum.numreplies' | translate:{numreplies: discussion.numreplies} }}
|
2021-05-14 10:44:58 +00:00
|
|
|
<ion-badge *ngIf="discussion.numunread" class="ion-text-center">
|
|
|
|
<span aria-hidden="true">{{ discussion.numunread }}</span>
|
|
|
|
<span class="sr-only">
|
|
|
|
{{ 'addon.mod_forum.unreadpostsnumber' | translate:{ '$a' : discussion.numunread} }}
|
|
|
|
</span>
|
2021-02-23 09:02:37 +00:00
|
|
|
</ion-badge>
|
|
|
|
</ion-note>
|
|
|
|
</ion-col>
|
|
|
|
</ion-row>
|
|
|
|
</ion-label>
|
|
|
|
</ion-item>
|
2021-02-24 16:02:15 +00:00
|
|
|
|
2021-12-01 12:59:19 +00:00
|
|
|
<core-infinite-loading [enabled]="discussions && discussions.loaded && !discussions.completed" [error]="fetchFailed"
|
2021-03-01 13:47:47 +00:00
|
|
|
(action)="fetchMoreDiscussions($event)">
|
2021-02-24 16:02:15 +00:00
|
|
|
</core-infinite-loading>
|
2021-02-23 09:02:37 +00:00
|
|
|
</ng-container>
|
|
|
|
</core-loading>
|
2021-02-16 10:18:12 +00:00
|
|
|
|
2022-03-02 12:40:07 +00:00
|
|
|
<core-course-module-navigation collapsible-footer [hidden]="showLoading" [courseId]="courseId" [currentModuleId]="module.id">
|
2021-12-03 12:45:23 +00:00
|
|
|
</core-course-module-navigation>
|
|
|
|
|
2021-02-23 09:02:37 +00:00
|
|
|
<ion-fab slot="fixed" core-fab vertical="bottom" horizontal="end" *ngIf="forum && canAddDiscussion">
|
|
|
|
<ion-fab-button (click)="openNewDiscussion()" [attr.aria-label]="addDiscussionText">
|
2021-04-27 11:14:31 +00:00
|
|
|
<ion-icon name="fas-plus" aria-hidden="true"></ion-icon>
|
2021-06-23 10:34:01 +00:00
|
|
|
<span class="sr-only">{{ addDiscussionText }}</span>
|
2021-02-23 09:02:37 +00:00
|
|
|
</ion-fab-button>
|
|
|
|
</ion-fab>
|
|
|
|
</core-split-view>
|