Skip to content
This repository was archived by the owner on May 25, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions web/src/app/app.component.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Component, Input } from '@angular/core';
import { NoticeService } from './services/notice.service';
import { v4 as uuid } from 'uuid';

@Component({
selector: 'app-root',
Expand All @@ -17,6 +18,7 @@ export class AppComponent {

ngOnInit () {
this.showingSidebar = true;
sessionStorage.setItem('userID', uuid());
}

public toggleSidebar (): void {
Expand Down
5 changes: 5 additions & 0 deletions web/src/app/header/component.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@
<li class="nav-item my-1">
<term-selector></term-selector>
</li>
<li class="nav-item -1">
<a class="nav-link" [routerLink]="['']">
<span class="theme-text theme-text-heavy">Login ;)</span>
</a>
</li>
</ul>
</div>
</div>
Expand Down
29 changes: 28 additions & 1 deletion web/src/app/header/component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { Listing } from 'yacs-api-client';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import qs from 'qs';

import 'rxjs/add/operator/switchMap';
import 'rxjs/add/operator/debounceTime';
Expand All @@ -19,11 +21,24 @@ export class HeaderComponent {
dropDownSelected: boolean = false;
navbarCollapsed: boolean = true;

constructor (private router: Router) { }
constructor (private router: Router, private http: HttpClient) { }

//keyup.enter generic search
search (term: string) {
if (this.isValidSearchTerm(term) && !this.dropDownSelected) {
//Sends the info about the user's search to the user system backend
this.http.post('https://api.yacs.maoyu.wang/userEvent', {
"uid": sessionStorage.getItem('userID'),
"eventID": "3",
"data": {
'Search' : term

},
"createdAt": Date.now()
}).subscribe(
data => {console.log(data)},
err => {console.log(err)}
);
this.router.navigate(['/courses'], { queryParams: { search: term } });
}
this.dropDownSelected = false;
Expand All @@ -50,6 +65,18 @@ export class HeaderComponent {

//function for on-click typeahead bar
selectedCourse ($event: any) {
this.http.post('https://api.yacs.maoyu.wang/userEvent', {
"uid": sessionStorage.getItem('userID'),
"eventID": "3",
"data": {
'Search' : $event.item
},
"createdAt": Date.now()
}).subscribe(
data => {console.log(data)},
err => {console.log(err)}
);

this.router.navigate(['/courses'],
{ queryParams: {
longname: $event.item
Expand Down
4 changes: 2 additions & 2 deletions web/src/app/header/term-selector/component.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<a class="nav-link">
<a (click)="previousTerm()"><i class="arrow left" [class.arrow_disabled]="isFirstTerm"></i></a>&nbsp;
<a style="display: none" (click)="previousTerm()"><i class="arrow left" [class.arrow_disabled]="isFirstTerm"></i></a>&nbsp;
<span class="theme-text theme-text-heavy">
{{ internalName }}
<img *ngIf="!isActiveTerm" src="assets/images/eye.svg" placement="bottom" ngbPopover="Term is currently is view-only mode." alt="View Only" />
</span>&nbsp;

<a (click)="nextTerm()"><i class="arrow right" [class.arrow_disabled]="isLastTerm"></i></a>
<a style="display: none" (click)="nextTerm()"><i class="arrow right" [class.arrow_disabled]="isLastTerm"></i></a>
</a>
51 changes: 50 additions & 1 deletion web/src/app/listing/component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { ScheduleEvent } from '../models/schedule-event.model';
import { SelectionService } from '../services/selection.service';
import { ConflictsService } from '../services/conflicts.service';
import { SidebarService } from '../services/sidebar.service';
import { HttpClient, HttpHeaders } from '@angular/common/http';

@Component({
selector: 'course',
Expand All @@ -21,7 +22,10 @@ export class ListingComponent implements OnInit{
constructor (
public selectionService : SelectionService,
public sidebarService : SidebarService,
private conflictsService: ConflictsService) { }
private conflictsService: ConflictsService,
private http: HttpClient
) { }


onKeydown(evt: KeyboardEvent) {
const keyCode = evt.which;
Expand Down Expand Up @@ -71,6 +75,31 @@ export class ListingComponent implements OnInit{
}

public clickCourse () {
let event: string;
if(this.isCourseSelected()){
event = "2";
}else{
event = "1";
}
let time: number = Date.now();

for(let sec of this.listing.sections){
if(event == "1" || this.isSectionSelected(sec)){
this.http.post('https://api.yacs.maoyu.wang/userEvent', {
"uid": sessionStorage.getItem('userID'),
"eventID": event,
"data": {
'Course CRN' : sec.crn

},
"createdAt": time
}).subscribe(
data => {console.log(data)},
err => {console.log(err)}
);
}
}

this.selectionService.toggleCourse(this.listing);
}

Expand All @@ -84,6 +113,26 @@ export class ListingComponent implements OnInit{

public clickSection (section: Section): void {
this.selectionService.toggleSection(section);

let event: string;
if(this.isSectionSelected(section)){
event = "1";
}else{
event = "2";
}
//Sends the info about the course to the user system backend
this.http.post('https://api.yacs.maoyu.wang/userEvent', {
"uid": sessionStorage.getItem('userID'),
"eventID": event,
"data": {
'Course CRN' : section.crn

},
"createdAt": Date.now()
}).subscribe(
data => {console.log(data)},
err => {console.log(err)}
);
}

public findProf (teacher: string): boolean{
Expand Down
44 changes: 43 additions & 1 deletion web/src/app/school-list/school/component.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Component, OnInit, Input } from '@angular/core';
import { Router } from '@angular/router';
import { School } from 'yacs-api-client';
import { HttpClient, HttpHeaders } from '@angular/common/http';

@Component({
selector: 'school',
Expand All @@ -10,16 +11,57 @@ import { School } from 'yacs-api-client';
export class SchoolComponent {
@Input() school: School;

constructor(private router:Router){}
constructor(private router:Router, private http: HttpClient){}

public changeRoute(id): void {
//gets the name of the department
let schoolName: string;
for(let sub of this.school.subjects){
if(sub.id == id){
schoolName = sub.longname;
}
}
//Sends the department the user clicked to the user system backend
this.http.post('https://api.yacs.maoyu.wang/userEvent', {
"uid": sessionStorage.getItem('userID'),
"eventID": "5",
"data": {
'Department Title' : schoolName

},
"createdAt": Date.now()
}).subscribe(
data => {console.log(data)},
err => {console.log(err)}
);

this.router.navigateByUrl('/courses?subject_id=' + id);
}

onKeydown(evt: KeyboardEvent, id) {
const keyCode = evt.which;
const enterKey = 13;
if(enterKey == keyCode){
//gets the name of the department
let schoolName: string;
for(let sub of this.school.subjects){
if(sub.id == id){
schoolName = sub.longname;
}
}
//Sends the department the user clicked to the user system backend
this.http.post('https://api.yacs.maoyu.wang/userEvent', {
"uid": sessionStorage.getItem('userID'),
"eventID": "5",
"data": {
'Department Title' : schoolName

},
"createdAt": Date.now()
}).subscribe(
data => {console.log(data)},
err => {console.log(err)}
);
this.router.navigateByUrl('/courses?subject_id=' + id);
}
}
Expand Down