Merge pull request #2145 from dpalou/MOBILE-3187
MOBILE-3187 myoverview: Fix keyboard flicker on filter
This commit is contained in:
		
						commit
						fb5c9576b4
					
				@ -9,7 +9,7 @@
 | 
				
			|||||||
        <ion-spinner *ngIf="!prefetchCoursesData[selectedFilter].icon || prefetchCoursesData[selectedFilter].icon == 'spinner'"></ion-spinner>
 | 
					        <ion-spinner *ngIf="!prefetchCoursesData[selectedFilter].icon || prefetchCoursesData[selectedFilter].icon == 'spinner'"></ion-spinner>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <core-context-menu item-end>
 | 
					    <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 && showFilterSwitchButton()" [priority]="1000" [content]="'core.courses.filtermycourses' | translate" (action)="switchFilter()" iconAction="funnel" (onClosed)="switchFilterClosed()"></core-context-menu-item>
 | 
				
			||||||
        <core-context-menu-item *ngIf="loaded && showSortFilter" [priority]="900" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.title' | translate)}}" (action)="switchSort('fullname')" [iconAction]="sort == 'fullname' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
 | 
					        <core-context-menu-item *ngIf="loaded && showSortFilter" [priority]="900" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.title' | translate)}}" (action)="switchSort('fullname')" [iconAction]="sort == 'fullname' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
 | 
				
			||||||
        <core-context-menu-item *ngIf="loaded && showSortFilter" [priority]="800" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.lastaccessed' | translate)}}" (action)="switchSort('lastaccess')" [iconAction]="sort == 'lastaccess' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
 | 
					        <core-context-menu-item *ngIf="loaded && showSortFilter" [priority]="800" content="{{('core.sortby' | translate) + ' ' + ('addon.block_myoverview.lastaccessed' | translate)}}" (action)="switchSort('lastaccess')" [iconAction]="sort == 'lastaccess' ? 'radio-button-on' : 'radio-button-off'"></core-context-menu-item>
 | 
				
			||||||
    </core-context-menu>
 | 
					    </core-context-menu>
 | 
				
			||||||
 | 
				
			|||||||
@ -334,10 +334,16 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
 | 
				
			|||||||
        this.showFilter = !this.showFilter;
 | 
					        this.showFilter = !this.showFilter;
 | 
				
			||||||
        this.courses.filter = '';
 | 
					        this.courses.filter = '';
 | 
				
			||||||
        this.filteredCourses = this.courses[this.showFilter ? 'all' : this.selectedFilter];
 | 
					        this.filteredCourses = this.courses[this.showFilter ? 'all' : this.selectedFilter];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Popover closed after clicking switch filter.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    switchFilterClosed(): void {
 | 
				
			||||||
        if (this.showFilter) {
 | 
					        if (this.showFilter) {
 | 
				
			||||||
            setTimeout(() => {
 | 
					            setTimeout(() => {
 | 
				
			||||||
                this.searchbar.setFocus();
 | 
					                this.searchbar.setFocus();
 | 
				
			||||||
            }, 500);
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -51,12 +51,14 @@ export class CoreContextMenuItemComponent implements OnInit, OnDestroy, OnChange
 | 
				
			|||||||
    @Input() badgeClass?: number; // A class to set in the badge.
 | 
					    @Input() badgeClass?: number; // A class to set in the badge.
 | 
				
			||||||
    @Input() hidden?: boolean; // Whether the item should be hidden.
 | 
					    @Input() hidden?: boolean; // Whether the item should be hidden.
 | 
				
			||||||
    @Output() action?: EventEmitter<() => void>; // Will emit an event when the item clicked.
 | 
					    @Output() action?: EventEmitter<() => void>; // Will emit an event when the item clicked.
 | 
				
			||||||
 | 
					    @Output() onClosed?: EventEmitter<() => void>; // Will emit an event when the popover is closed because the item was clicked.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected hasAction = false;
 | 
					    protected hasAction = false;
 | 
				
			||||||
    protected destroyed = false;
 | 
					    protected destroyed = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    constructor(private ctxtMenu: CoreContextMenuComponent) {
 | 
					    constructor(private ctxtMenu: CoreContextMenuComponent) {
 | 
				
			||||||
        this.action = new EventEmitter();
 | 
					        this.action = new EventEmitter();
 | 
				
			||||||
 | 
					        this.onClosed = new EventEmitter();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -40,8 +40,8 @@ export class CoreContextMenuPopoverComponent {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Close the popover.
 | 
					     * Close the popover.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    closeMenu(): void {
 | 
					    closeMenu(item?: CoreContextMenuItemComponent): void {
 | 
				
			||||||
        this.viewCtrl.dismiss();
 | 
					        this.viewCtrl.dismiss(item);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
@ -61,12 +61,12 @@ export class CoreContextMenuPopoverComponent {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (item.closeOnClick) {
 | 
					            if (item.closeOnClick) {
 | 
				
			||||||
                this.closeMenu();
 | 
					                this.closeMenu(item);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            item.action.emit(this.closeMenu.bind(this));
 | 
					            item.action.emit(this.closeMenu.bind(this, item));
 | 
				
			||||||
        } else if (item.href && item.closeOnClick) {
 | 
					        } else if (item.closeOnClick && (item.href || item.onClosed.observers.length > 0)) {
 | 
				
			||||||
            this.closeMenu();
 | 
					            this.closeMenu(item);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
 | 
				
			|||||||
@ -180,8 +180,12 @@ export class CoreContextMenuComponent implements OnInit, OnDestroy {
 | 
				
			|||||||
            const popover = this.popoverCtrl.create(CoreContextMenuPopoverComponent,
 | 
					            const popover = this.popoverCtrl.create(CoreContextMenuPopoverComponent,
 | 
				
			||||||
                { title: this.title, items: this.items, id: this.uniqueId, showBackdrop: true });
 | 
					                { title: this.title, items: this.items, id: this.uniqueId, showBackdrop: true });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            popover.onDidDismiss(() => {
 | 
					            popover.onDidDismiss((item: CoreContextMenuItemComponent) => {
 | 
				
			||||||
                this.expanded = false;
 | 
					                this.expanded = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (item) {
 | 
				
			||||||
 | 
					                    item.onClosed.emit();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            popover.present({
 | 
					            popover.present({
 | 
				
			||||||
                ev: event
 | 
					                ev: event
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user