Skip to content
Snippets Groups Projects
Commit a95eb4be authored by Isaac Evavold's avatar Isaac Evavold
Browse files

ROENROLL-1460 disables all course drag-and-drop on mobile

parent 36df001c
No related branches found
No related tags found
No related merge requests found
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<div <div
class="course-wrapper" class="course-wrapper"
cdkDrag cdkDrag
[cdkDragDisabled]="mobileView.matches"
[cdkDragData]="course" [cdkDragData]="course"
*ngFor="let course of queriedCourses" *ngFor="let course of queriedCourses"
> >
......
...@@ -18,6 +18,7 @@ import { MatSnackBar } from '@angular/material'; ...@@ -18,6 +18,7 @@ import { MatSnackBar } from '@angular/material';
// Data modles // Data modles
import { Course, SubjectMapping } from '@app/core/models/course'; import { Course, SubjectMapping } from '@app/core/models/course';
import { TermCode } from '@app/core/models/termcode'; import { TermCode } from '@app/core/models/termcode';
import { MediaMatcher } from '@angular/cdk/layout';
@Component({ @Component({
selector: 'cse-course-search', selector: 'cse-course-search',
...@@ -46,13 +47,17 @@ export class CourseSearchComponent implements OnInit, OnDestroy { ...@@ -46,13 +47,17 @@ export class CourseSearchComponent implements OnInit, OnDestroy {
public termSubscription: Subscription; public termSubscription: Subscription;
public searchOpenSubscribe: Subscription; public searchOpenSubscribe: Subscription;
public mobileView: MediaQueryList;
constructor( constructor(
private store: Store<GlobalState>, private store: Store<GlobalState>,
private fb: FormBuilder, private fb: FormBuilder,
private api: DegreePlannerApiService, private api: DegreePlannerApiService,
private snackBar: MatSnackBar, private snackBar: MatSnackBar,
) {} mediaMatcher: MediaMatcher,
) {
this.mobileView = mediaMatcher.matchMedia('(max-width: 900px)');
}
public ngOnInit(): void { public ngOnInit(): void {
// Internal values used to manage loading state // Internal values used to manage loading state
......
...@@ -6,7 +6,12 @@ ...@@ -6,7 +6,12 @@
[cdkDropListData]="courses$ | async" [cdkDropListData]="courses$ | async"
[cdkDropListConnectedTo]="dropZoneIds$ | async" [cdkDropListConnectedTo]="dropZoneIds$ | async"
(cdkDropListDropped)="drop($event)"> (cdkDropListDropped)="drop($event)">
<div class="course-wrapper" *ngFor="let course of courses$ | async" cdkDrag [cdkDragData]="course"> <div
class="course-wrapper"
*ngFor="let course of courses$ | async"
cdkDrag
[cdkDragDisabled]="mobileView.matches"
[cdkDragData]="course">
<div class="course-wrapper-inner"> <div class="course-wrapper-inner">
<cse-course-item [course]="course" type="saved" class="course-favorite"></cse-course-item> <cse-course-item [course]="course" type="saved" class="course-favorite"></cse-course-item>
</div> </div>
......
...@@ -15,6 +15,7 @@ import { ...@@ -15,6 +15,7 @@ import {
import * as selectors from '@app/degree-planner/store/selectors'; import * as selectors from '@app/degree-planner/store/selectors';
import { distinctUntilChanged } from 'rxjs/operators'; import { distinctUntilChanged } from 'rxjs/operators';
import { TermCode } from '@app/core/models/termcode'; import { TermCode } from '@app/core/models/termcode';
import { MediaMatcher } from '@angular/cdk/layout';
@Component({ @Component({
selector: 'cse-saved-for-later-container', selector: 'cse-saved-for-later-container',
...@@ -24,8 +25,14 @@ import { TermCode } from '@app/core/models/termcode'; ...@@ -24,8 +25,14 @@ import { TermCode } from '@app/core/models/termcode';
export class SavedForLaterContainerComponent implements OnInit { export class SavedForLaterContainerComponent implements OnInit {
public courses$: Observable<SavedForLaterCourse[]>; public courses$: Observable<SavedForLaterCourse[]>;
public dropZoneIds$: Observable<string[]>; public dropZoneIds$: Observable<string[]>;
public mobileView: MediaQueryList;
constructor(private store: Store<{ degreePlanner: DegreePlannerState }>) {} constructor(
private store: Store<{ degreePlanner: DegreePlannerState }>,
mediaMatcher: MediaMatcher,
) {
this.mobileView = mediaMatcher.matchMedia('(max-width: 900px)');
}
public ngOnInit() { public ngOnInit() {
this.dropZoneIds$ = this.store.pipe( this.dropZoneIds$ = this.store.pipe(
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
<div <div
cdkDrag cdkDrag
[cdkDragData]="course" [cdkDragData]="course"
[cdkDragDisabled]="mobileView.matches"
class="course-wrapper" class="course-wrapper"
*ngFor="let course of plannedCourses" *ngFor="let course of plannedCourses"
> >
......
...@@ -28,6 +28,7 @@ import { TermCode } from '@app/core/models/termcode'; ...@@ -28,6 +28,7 @@ import { TermCode } from '@app/core/models/termcode';
import { ConfirmDialogComponent } from '@app/shared/dialogs/confirm-dialog/confirm-dialog.component'; import { ConfirmDialogComponent } from '@app/shared/dialogs/confirm-dialog/confirm-dialog.component';
import { maybeQueueResolutionOfComponentResources } from '@angular/core/src/metadata/resource_loading'; import { maybeQueueResolutionOfComponentResources } from '@angular/core/src/metadata/resource_loading';
import { WeekDay } from '@angular/common'; import { WeekDay } from '@angular/common';
import { MediaMatcher } from '@angular/cdk/layout';
const isntUndefined = <T>(thing: T | undefined): thing is T => { const isntUndefined = <T>(thing: T | undefined): thing is T => {
return thing !== undefined; return thing !== undefined;
}; };
...@@ -55,10 +56,15 @@ export class TermContainerComponent implements OnInit, OnDestroy { ...@@ -55,10 +56,15 @@ export class TermContainerComponent implements OnInit, OnDestroy {
public enrolledCredits: number; public enrolledCredits: number;
public visibleCredits: 'enrolled' | 'planned'; public visibleCredits: 'enrolled' | 'planned';
public courseNotOfferedInTerm: Course[]; public courseNotOfferedInTerm: Course[];
public mobileView: MediaQueryList;
constructor( constructor(
public dialog: MatDialog, public dialog: MatDialog,
private store: Store<{ degreePlanner: DegreePlannerState }>, private store: Store<{ degreePlanner: DegreePlannerState }>,
) {} mediaMatcher: MediaMatcher,
) {
this.mobileView = mediaMatcher.matchMedia('(max-width: 900px)');
}
public ngOnInit() { public ngOnInit() {
this.hasItemDraggedOver = false; this.hasItemDraggedOver = false;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment