Merge pull request #1665 from crazyserver/MOBILE-2783

MOBILE-2783 dashboard: Reduce selectors on dashboard blocks
main
Juan Leyva 2018-12-14 16:29:57 +01:00 committed by GitHub
commit 80b0dcf1c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 33 additions and 38 deletions

View File

@ -10,28 +10,21 @@
</div>
<core-context-menu item-end>
<core-context-menu-item *ngIf="loaded && showFilterSwitchButton()" [priority]="1000" [content]="'core.courses.filtermycourses' | translate" (action)="switchFilter()" iconAction="funnel"></core-context-menu-item>
<core-context-menu-item *ngIf="loaded && showSortFilter && sort == 'lastaccess'" [priority]="900" content="{{('core.sortby' | translate) + ': ' + ('addon.block_myoverview.title' | translate)}}" (action)="switchSort('fullname')" iconAction="fa-sort"></core-context-menu-item>
<core-context-menu-item *ngIf="loaded && showSortFilter && sort == 'fullname'" [priority]="800" content="{{('core.sortby' | translate) + ': ' + ('addon.block_myoverview.lastaccessed' | translate)}}" (action)="switchSort('lastaccess')" iconAction="fa-sort"></core-context-menu-item>
</core-context-menu>
</ion-item-divider>
<core-loading [hideUntil]="loaded" class="core-loading-center">
<div padding ion-row justify-content-end [hidden]="showFilter" class="safe-padding-horizontal">
<div padding [hidden]="showFilter || !showSelectorFilter" class="safe-padding-horizontal">
<!-- "Time" selector. -->
<ion-col [hidden]="!showSelectorFilter">
<ion-select text-start [title]="'core.show' | translate" [(ngModel)]="selectedFilter" ion-col (ngModelChange)="selectedChanged()" interface="popover" class="core-button-select">
<ion-option value="all">{{ 'addon.block_myoverview.all' | translate }}</ion-option>
<ion-option value="inprogress">{{ 'addon.block_myoverview.inprogress' | translate }}</ion-option>
<ion-option value="future">{{ 'addon.block_myoverview.future' | translate }}</ion-option>
<ion-option value="past">{{ 'addon.block_myoverview.past' | translate }}</ion-option>
<ion-option value="favourite" *ngIf="showFavourite">{{ 'addon.block_myoverview.favourites' | translate }}</ion-option>
<ion-option value="hidden" *ngIf="showHidden">{{ 'addon.block_myoverview.hiddencourses' | translate }}</ion-option>
</ion-select>
</ion-col>
<!-- "Sort" selector. -->
<ion-col [hidden]="!showSortFilter">
<ion-select text-start [(ngModel)]="sort" (ngModelChange)="switchSort()" interface="popover" class="core-button-select">
<ion-option value="fullname">{{ 'addon.block_myoverview.title' | translate }}</ion-option>
<ion-option value="lastaccess">{{ 'addon.block_myoverview.lastaccessed' | translate }}</ion-option>
</ion-select>
</ion-col>
<ion-select text-start [title]="'core.show' | translate" [(ngModel)]="selectedFilter" ion-col (ngModelChange)="selectedChanged()" interface="popover" class="core-button-select">
<ion-option value="all">{{ 'addon.block_myoverview.all' | translate }}</ion-option>
<ion-option value="inprogress">{{ 'addon.block_myoverview.inprogress' | translate }}</ion-option>
<ion-option value="future">{{ 'addon.block_myoverview.future' | translate }}</ion-option>
<ion-option value="past">{{ 'addon.block_myoverview.past' | translate }}</ion-option>
<ion-option value="favourite" *ngIf="showFavourite">{{ 'addon.block_myoverview.favourites' | translate }}</ion-option>
<ion-option value="hidden" *ngIf="showHidden">{{ 'addon.block_myoverview.hiddencourses' | translate }}</ion-option>
</ion-select>
</div>
<core-empty-box *ngIf="courses[selectedFilter].length == 0" image="assets/img/icons/courses.svg" [message]="'addon.block_myoverview.nocourses' | translate"></core-empty-box>

View File

@ -279,8 +279,11 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
/**
* The selected courses sort filter have changed.
*
* @param {string} sort New sorting.
*/
switchSort(): void {
switchSort(sort: string): void {
this.sort = sort;
this.currentSite.setLocalSiteConfig('AddonBlockMyOverviewSort', this.sort);
const courses = this.courses.all.concat(this.courses.hidden);

View File

@ -1,25 +1,21 @@
<ion-item-divider color="light">
<h2>{{ 'addon.block_timeline.pluginname' | translate }}</h2>
<core-context-menu item-end>
<core-context-menu-item *ngIf="loaded && sort == 'sortbycourses'" [priority]="900" [content]="'addon.block_timeline.sortbydates' | translate" (action)="switchSort('sortbydates')" iconAction="fa-sort"></core-context-menu-item>
<core-context-menu-item *ngIf="loaded && sort == 'sortbydates'" [priority]="800" [content]="'addon.block_timeline.sortbycourses' | translate" (action)="switchSort('sortbycourses')" iconAction="fa-sort"></core-context-menu-item>
</core-context-menu>
</ion-item-divider>
<core-loading [hideUntil]="loaded" class="core-loading-center">
<div padding ion-row class="safe-padding-horizontal">
<ion-col>
<ion-select text-start [(ngModel)]="filter" (ngModelChange)="switchFilter()" interface="popover" class="core-button-select">
<ion-option value="all">{{ 'core.all' | translate }}</ion-option>
<ion-option value="overdue">{{ 'addon.block_timeline.overdue' | translate }}</ion-option>
<ion-option disabled value="disabled">{{ 'addon.block_timeline.duedate' | translate }}</ion-option>
<ion-option value="next7days">{{ 'addon.block_timeline.next7days' | translate }}</ion-option>
<ion-option value="next30days">{{ 'addon.block_timeline.next30days' | translate }}</ion-option>
<ion-option value="next3months">{{ 'addon.block_timeline.next3months' | translate }}</ion-option>
<ion-option value="next6months">{{ 'addon.block_timeline.next6months' | translate }}</ion-option>
</ion-select>
</ion-col>
<ion-col>
<ion-select text-start [(ngModel)]="sort" (ngModelChange)="switchSort()" interface="popover" class="core-button-select">
<ion-option value="sortbydates">{{ 'addon.block_timeline.sortbydates' | translate }}</ion-option>
<ion-option value="sortbycourses">{{ 'addon.block_timeline.sortbycourses' | translate }}</ion-option>
</ion-select>
</ion-col>
<div padding class="safe-padding-horizontal">
<ion-select text-start [(ngModel)]="filter" (ngModelChange)="switchFilter()" interface="popover" class="core-button-select">
<ion-option value="all">{{ 'core.all' | translate }}</ion-option>
<ion-option value="overdue">{{ 'addon.block_timeline.overdue' | translate }}</ion-option>
<ion-option disabled value="disabled">{{ 'addon.block_timeline.duedate' | translate }}</ion-option>
<ion-option value="next7days">{{ 'addon.block_timeline.next7days' | translate }}</ion-option>
<ion-option value="next30days">{{ 'addon.block_timeline.next30days' | translate }}</ion-option>
<ion-option value="next3months">{{ 'addon.block_timeline.next3months' | translate }}</ion-option>
<ion-option value="next6months">{{ 'addon.block_timeline.next6months' | translate }}</ion-option>
</ion-select>
</div>
<core-loading [hideUntil]="timeline.loaded" [hidden]="sort != 'sortbydates'" class="core-loading-center">
<addon-block-timeline-events [events]="timeline.events" showCourse="true" [canLoadMore]="timeline.canLoadMore" (loadMore)="loadMoreTimeline()" [from]="dataFrom" [to]="dataTo"></addon-block-timeline-events>

View File

@ -209,8 +209,11 @@ export class AddonBlockTimelineComponent extends CoreBlockBaseComponent implemen
/**
* Change timeline sort being viewed.
*
* @param {string} sort New sorting.
*/
switchSort(): void {
switchSort(sort: string): void {
this.sort = sort;
this.currentSite.setLocalSiteConfig('AddonBlockTimelineSort', this.sort);
if (!this.timeline.loaded && this.sort == 'sortbydates') {
this.fetchContent();