From ec77193e057ebc455133d3a8661d68c68ba88c15 Mon Sep 17 00:00:00 2001 From: prgzz Date: Wed, 7 Feb 2018 17:12:00 -0800 Subject: [PATCH 1/5] Staff teams set up --- src/app/app.module.ts | 5 ++ src/app/app.router.ts | 1 + src/app/home/home.component.css | 3 +- src/app/home/home.module.ts | 8 +- src/app/home/home.router.ts | 2 +- src/app/home/navbar/navbar.component.html | 2 +- src/app/staff/staff.component.css | 38 +++++++++ src/app/staff/staff.component.html | 6 +- src/app/staff/staff.module.ts | 21 +++++ src/app/staff/teams-card/team-item.ts | 36 +++++++++ .../teams-card/teams-card.component.html | 20 +++++ .../staff/teams-card/teams-card.component.ts | 32 ++++++++ src/app/staffdata.service.spec.ts | 15 ++++ src/app/staffdata.service.ts | 74 ++++++++++++++++++ src/assets/images/staff-placeholder.jpg | Bin 0 -> 13607 bytes 15 files changed, 252 insertions(+), 11 deletions(-) create mode 100644 src/app/staff/staff.module.ts create mode 100644 src/app/staff/teams-card/team-item.ts create mode 100644 src/app/staff/teams-card/teams-card.component.html create mode 100644 src/app/staff/teams-card/teams-card.component.ts create mode 100644 src/app/staffdata.service.spec.ts create mode 100644 src/app/staffdata.service.ts create mode 100644 src/assets/images/staff-placeholder.jpg diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 722c7b8..53d9e80 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -7,6 +7,9 @@ import { AppComponent } from './app.component'; import { routing } from './app.router'; import { HomeModule } from './home/home.module'; +import { StaffModule } from './staff/staff.module'; + +import { StaffDataService } from './staffdata.service'; @NgModule({ declarations: [ @@ -17,9 +20,11 @@ import { HomeModule } from './home/home.module'; FormsModule, HttpModule, HomeModule, + StaffModule, routing, ], providers: [ + StaffDataService ], bootstrap: [ AppComponent diff --git a/src/app/app.router.ts b/src/app/app.router.ts index a4a0f83..6478ead 100644 --- a/src/app/app.router.ts +++ b/src/app/app.router.ts @@ -1,6 +1,7 @@ import { RouterModule, Route } from '@angular/router'; import { ModuleWithProviders } from '@angular/core'; import { HomeModule } from './home/home.module'; +import { StaffModule } from './staff/staff.module'; const routes: Route[] = [ { diff --git a/src/app/home/home.component.css b/src/app/home/home.component.css index 11700ae..9500ceb 100644 --- a/src/app/home/home.component.css +++ b/src/app/home/home.component.css @@ -623,7 +623,7 @@ nav .nav-right { nav .nav-right a { padding: 17px 8px; - color: #f5f5f9; + /*color: #f5f5f9;*/ text-decoration: none; transition: 0.2s all ease; } @@ -823,3 +823,4 @@ section:not(:last-of-type):after { .viewport-width { max-width: 100vw; } + diff --git a/src/app/home/home.module.ts b/src/app/home/home.module.ts index 723055e..06e2523 100644 --- a/src/app/home/home.module.ts +++ b/src/app/home/home.module.ts @@ -27,8 +27,6 @@ import { routing } from './home.router'; import { EventsSectionService } from './events-section/events-section.service'; -import { StaffComponent } from '../staff/staff.component'; - @NgModule({ declarations: [ HomeComponent, @@ -38,8 +36,7 @@ import { StaffComponent } from '../staff/staff.component'; AboutSectionComponent, EventsSectionComponent, ContactSectionComponent, - FooterComponent, - StaffComponent + FooterComponent ], imports: [ CommonModule, @@ -52,7 +49,8 @@ import { StaffComponent } from '../staff/staff.component'; MatToolbarModule ], exports: [ - HomeComponent + HomeComponent, + NavbarComponent ], providers: [ EventsSectionService diff --git a/src/app/home/home.router.ts b/src/app/home/home.router.ts index 16b0d70..ac6643f 100644 --- a/src/app/home/home.router.ts +++ b/src/app/home/home.router.ts @@ -4,7 +4,7 @@ import { HomeComponent } from './home.component'; import { StaffComponent } from '../staff/staff.component'; const routes: Route[] = [ - { + { path: 'staff', pathMatch: 'full', component: StaffComponent diff --git a/src/app/home/navbar/navbar.component.html b/src/app/home/navbar/navbar.component.html index 4cedfb1..ce0b628 100644 --- a/src/app/home/navbar/navbar.component.html +++ b/src/app/home/navbar/navbar.component.html @@ -26,7 +26,7 @@ Events Board - Teams + Teams Contact CSES Logo diff --git a/src/app/staff/staff.component.css b/src/app/staff/staff.component.css index e69de29..4123973 100644 --- a/src/app/staff/staff.component.css +++ b/src/app/staff/staff.component.css @@ -0,0 +1,38 @@ +/* + Styling for teams-card-component + */ + +* { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} + +.nav-separator { + height: 96px; +} + +.card-division { + margin: 16px auto; + padding: 4px; +} + +.card { + margin: 0 16px; + width: 32rem; + background-color: #ecb213; + float: left; +} + +.card-specific-border { + margin: 4px 8px 0px 8px; +} + +.list-group { + margin-top: 4px; + margin-bottom: 0px; +} + +.card-img-top { + width: 100%; +} \ No newline at end of file diff --git a/src/app/staff/staff.component.html b/src/app/staff/staff.component.html index 4af796b..d461f51 100644 --- a/src/app/staff/staff.component.html +++ b/src/app/staff/staff.component.html @@ -1,3 +1,3 @@ -

- staff works! -

+ + + \ No newline at end of file diff --git a/src/app/staff/staff.module.ts b/src/app/staff/staff.module.ts new file mode 100644 index 0000000..e732df2 --- /dev/null +++ b/src/app/staff/staff.module.ts @@ -0,0 +1,21 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { StaffComponent } from './staff.component'; + +import { HomeModule } from '../home/home.module'; +import { TeamsCardComponent } from './teams-card/teams-card.component'; + +@NgModule({ + imports: [ + CommonModule, + HomeModule + ], + declarations: [ + StaffComponent, + TeamsCardComponent + ], + exports: [ + StaffComponent + ], +}) +export class StaffModule { } diff --git a/src/app/staff/teams-card/team-item.ts b/src/app/staff/teams-card/team-item.ts new file mode 100644 index 0000000..a63f24c --- /dev/null +++ b/src/app/staff/teams-card/team-item.ts @@ -0,0 +1,36 @@ +/** + * Contains team-specific data + */ +class TeamData { + title: string; + desc: string; + events: string[]; + members: string[]; + imgPath: string; +} + +/** + * Holds all the properties of a team - access methods and data. + */ +class TeamItem extends TeamData { + /** + * Simple constructor; allows you to initialize object from a parent object. + * @param {TeamsData} + */ + constructor(teamData?: TeamData) { + super(); + + if (teamData) { + this.title = teamData.title; + this.desc = teamData.desc; + this.events = teamData.events; + this.members = teamData.members; + this.imgPath = teamData.imgPath; + } + } + + buttonClicked() { + } +} + +export { TeamItem } diff --git a/src/app/staff/teams-card/teams-card.component.html b/src/app/staff/teams-card/teams-card.component.html new file mode 100644 index 0000000..f206036 --- /dev/null +++ b/src/app/staff/teams-card/teams-card.component.html @@ -0,0 +1,20 @@ +
+
+ Card image cap +
+

{{item.title}}

+

{{item.desc}}

+
+
    +
  • + {{event}} +
  • +
+
+ +
+
+
+
\ No newline at end of file diff --git a/src/app/staff/teams-card/teams-card.component.ts b/src/app/staff/teams-card/teams-card.component.ts new file mode 100644 index 0000000..c9f9864 --- /dev/null +++ b/src/app/staff/teams-card/teams-card.component.ts @@ -0,0 +1,32 @@ +import { Component, OnInit } from '@angular/core'; +import { TeamItem } from './team-item'; + +import { StaffDataService } from '../../staffdata.service'; + +@Component({ + selector: 'app-teams-card', + templateUrl: './teams-card.component.html', + styleUrls: ['../staff.component.css'] +}) +export class TeamsCardComponent implements OnInit { + + public teamList: Array>; + staffService: StaffDataService; + + constructor(staffService: StaffDataService) { + this.staffService = staffService; + } + + ngOnInit() { + console.log("hi"); + this.teamList = this.staffService.fetchTeamsFromJSON(); + } + + getTeams() { + return this.teamList; + } + + onBtnClick(item: TeamItem) { + item.buttonClicked(); + } +} diff --git a/src/app/staffdata.service.spec.ts b/src/app/staffdata.service.spec.ts new file mode 100644 index 0000000..7add56e --- /dev/null +++ b/src/app/staffdata.service.spec.ts @@ -0,0 +1,15 @@ +import { TestBed, inject } from '@angular/core/testing'; + +import { StaffDataService } from './staffdata.service'; + +describe('StaffdataService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [StaffDataService] + }); + }); + + it('should be created', inject([StaffDataService], (service: StaffDataService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/app/staffdata.service.ts b/src/app/staffdata.service.ts new file mode 100644 index 0000000..dfc8555 --- /dev/null +++ b/src/app/staffdata.service.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { Http } from '@angular/http'; +import { TeamItem } from './staff/teams-card/team-item'; + +@Injectable() +export class StaffDataService { + + teamBlocks:Array> = []; + teamList:Array = [ + new TeamItem({ + title: "Web and Projects", + desc: "Cool stuff", + events: ["hello", "hi", "world"], + members: ["max,yixin,david,alex,prg"], + imgPath: "../../assets/images/staff-placeholder.jpg" + }), + new TeamItem({ + title: "Web and Projects", + desc: "Cool stuff", + events: ["hello", "hi", "world"], + members: ["max,yixin,david,alex,prg"], + imgPath: "../../assets/images/staff-placeholder.jpg" + }), + new TeamItem({ + title: "Web and Projects", + desc: "Cool stuff", + events: ["hello", "hi", "world"], + members: ["max,yixin,david,alex,prg"], + imgPath: "../../assets/images/staff-placeholder.jpg" + }), + new TeamItem({ + title: "Web and Projects", + desc: "Cool stuff", + events: ["hello", "hi", "world"], + members: ["max,yixin,david,alex,prg"], + imgPath: "../../assets/images/staff-placeholder.jpg" + }), + new TeamItem({ + title: "Web and Projects", + desc: "Cool stuff", + events: ["hello", "hi", "world"], + members: ["max,yixin,david,alex,prg"], + imgPath: "../../assets/images/staff-placeholder.jpg" + }), + new TeamItem({ + title: "Web and Projects", + desc: "Cool stuff", + events: ["hello", "hi", "world"], + members: ["max,yixin,david,alex,prg"], + imgPath: "../../assets/images/staff-placeholder.jpg" + }) + ]; + constructor(private http: Http) { } + + /* + * Fetches team details from a Google spreadsheet. To be done. Currently, using + * hardcoded data. + */ + fetchTeamsFromJSON():Array> { + this.http.get('TODO - replace this with nodejs JSON API').subscribe(res => { + }); + + // Separates cards into div blocks for design effects. + var sum:number = 0; + var i:number = 1; + while(sum < this.teamList.length) { + sum += i; + i++; + this.teamBlocks.unshift(this.teamList.slice(sum, sum + i)); + } + + return this.teamBlocks; + } +} diff --git a/src/assets/images/staff-placeholder.jpg b/src/assets/images/staff-placeholder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..270f72bc333db8a97279dad8e26d47da9028f26c GIT binary patch literal 13607 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 LI1}O5=lTBv(pPu` literal 0 HcmV?d00001 From cd2c71d02c2f47ecbbd9426eb7c88b72f5c78b21 Mon Sep 17 00:00:00 2001 From: prgzz Date: Sat, 10 Feb 2018 22:49:18 -0800 Subject: [PATCH 2/5] team cards done --- src/app/staff/staff.component.css | 17 +++++++++----- src/app/staff/staff.component.html | 7 +++++- src/app/staff/staff.component.ts | 14 +++++++++++- src/app/staff/staff.module.ts | 4 +++- src/app/staff/teams-card/team-item.ts | 4 ++++ .../staff/teams-card/teams-card.component.ts | 14 +++++++++--- .../teams-jumbotron.component.html | 0 .../teams-jumbotron.component.ts | 22 +++++++++++++++++++ src/app/staffdata.service.ts | 5 ++--- 9 files changed, 73 insertions(+), 14 deletions(-) create mode 100644 src/app/staff/teams-jumbotron/teams-jumbotron.component.html create mode 100644 src/app/staff/teams-jumbotron/teams-jumbotron.component.ts diff --git a/src/app/staff/staff.component.css b/src/app/staff/staff.component.css index 4123973..a7d8559 100644 --- a/src/app/staff/staff.component.css +++ b/src/app/staff/staff.component.css @@ -1,13 +1,13 @@ -/* - Styling for teams-card-component - */ - * { -webkit-border-radius: 0 !important; -moz-border-radius: 0 !important; border-radius: 0 !important; } +/* + Styling for teams-card-component +--------------------------------------------------------------------*/ + .nav-separator { height: 96px; } @@ -35,4 +35,11 @@ .card-img-top { width: 100%; -} \ No newline at end of file +} + +/*---------------------------------------------------------------------*/ + +/* +Styling for teams-jumbotron +-----------------------------------------------------------------------*/ + diff --git a/src/app/staff/staff.component.html b/src/app/staff/staff.component.html index d461f51..7ded8ed 100644 --- a/src/app/staff/staff.component.html +++ b/src/app/staff/staff.component.html @@ -1,3 +1,8 @@ - \ No newline at end of file + + + + + + \ No newline at end of file diff --git a/src/app/staff/staff.component.ts b/src/app/staff/staff.component.ts index 74d76e9..314188b 100644 --- a/src/app/staff/staff.component.ts +++ b/src/app/staff/staff.component.ts @@ -1,4 +1,5 @@ import { Component, OnInit } from '@angular/core'; +import { TeamItem } from './teams-card/team-item'; @Component({ selector: 'app-staff', @@ -7,9 +8,20 @@ import { Component, OnInit } from '@angular/core'; }) export class StaffComponent implements OnInit { - constructor() { } + public tabMode:boolean = true; + public teamItem:TeamItem; + public teamList: Array; + + constructor() { + } ngOnInit() { } + tabModeChanger(tabDetails: [TeamItem, Array, boolean]) { + this.teamItem = tabDetails[0]; + this.teamList = tabDetails[1]; + this.tabMode = tabDetails[2]; + } + } diff --git a/src/app/staff/staff.module.ts b/src/app/staff/staff.module.ts index e732df2..c5d3668 100644 --- a/src/app/staff/staff.module.ts +++ b/src/app/staff/staff.module.ts @@ -4,6 +4,7 @@ import { StaffComponent } from './staff.component'; import { HomeModule } from '../home/home.module'; import { TeamsCardComponent } from './teams-card/teams-card.component'; +import { TeamsJumbotronComponent } from './teams-jumbotron/teams-jumbotron.component'; @NgModule({ imports: [ @@ -12,7 +13,8 @@ import { TeamsCardComponent } from './teams-card/teams-card.component'; ], declarations: [ StaffComponent, - TeamsCardComponent + TeamsCardComponent, + TeamsJumbotronComponent ], exports: [ StaffComponent diff --git a/src/app/staff/teams-card/team-item.ts b/src/app/staff/teams-card/team-item.ts index a63f24c..634cb8b 100644 --- a/src/app/staff/teams-card/team-item.ts +++ b/src/app/staff/teams-card/team-item.ts @@ -1,3 +1,6 @@ +import { StaffComponent } from '../../staff/staff.component'; + + /** * Contains team-specific data */ @@ -30,6 +33,7 @@ class TeamItem extends TeamData { } buttonClicked() { + } } diff --git a/src/app/staff/teams-card/teams-card.component.ts b/src/app/staff/teams-card/teams-card.component.ts index c9f9864..9aabe35 100644 --- a/src/app/staff/teams-card/teams-card.component.ts +++ b/src/app/staff/teams-card/teams-card.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, EventEmitter, Output, Input } from '@angular/core'; import { TeamItem } from './team-item'; import { StaffDataService } from '../../staffdata.service'; @@ -10,7 +10,12 @@ import { StaffDataService } from '../../staffdata.service'; }) export class TeamsCardComponent implements OnInit { + @Output() tabModeChanger:EventEmitter<[TeamItem, Array, boolean]> = + new EventEmitter<[TeamItem, Array, boolean]>(); + public teamList: Array>; + simpilfiedList: Array; + teamItem: TeamItem; staffService: StaffDataService; constructor(staffService: StaffDataService) { @@ -18,8 +23,9 @@ export class TeamsCardComponent implements OnInit { } ngOnInit() { - console.log("hi"); - this.teamList = this.staffService.fetchTeamsFromJSON(); + let result = this.staffService.fetchTeamsFromJSON(); + this.teamList = result[0]; + this.simpilfiedList = result[1]; } getTeams() { @@ -27,6 +33,8 @@ export class TeamsCardComponent implements OnInit { } onBtnClick(item: TeamItem) { + this.teamItem = item; + this.tabModeChanger.emit([item, this.simpilfiedList, false]); item.buttonClicked(); } } diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.html b/src/app/staff/teams-jumbotron/teams-jumbotron.component.html new file mode 100644 index 0000000..e69de29 diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.ts b/src/app/staff/teams-jumbotron/teams-jumbotron.component.ts new file mode 100644 index 0000000..4d2fda8 --- /dev/null +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit, Input } from '@angular/core'; +import {TeamItem} from '../teams-card/team-item'; + + +@Component({ + selector: 'app-teams-jumbotron', + templateUrl: './teams-jumbotron.component.html', + styleUrls: ['../staff.component.css'] +}) +export class TeamsJumbotronComponent implements OnInit { + + @Input() item:TeamItem; + @Input() teamList:Array; + + constructor() { } + + ngOnInit() { + console.log(this.item); + console.log(this.teamList); + } + +} diff --git a/src/app/staffdata.service.ts b/src/app/staffdata.service.ts index dfc8555..ac77cb1 100644 --- a/src/app/staffdata.service.ts +++ b/src/app/staffdata.service.ts @@ -56,7 +56,7 @@ export class StaffDataService { * Fetches team details from a Google spreadsheet. To be done. Currently, using * hardcoded data. */ - fetchTeamsFromJSON():Array> { + fetchTeamsFromJSON():[Array>, Array] { this.http.get('TODO - replace this with nodejs JSON API').subscribe(res => { }); @@ -68,7 +68,6 @@ export class StaffDataService { i++; this.teamBlocks.unshift(this.teamList.slice(sum, sum + i)); } - - return this.teamBlocks; + return [this.teamBlocks, this.teamList]; } } From 7018657d2d7dd55a95994b90276d462ee04e4424 Mon Sep 17 00:00:00 2001 From: Pushpak Raj Gautam Date: Mon, 26 Feb 2018 05:58:09 -0800 Subject: [PATCH 3/5] a bit of detail screen --- src/app/app.module.ts | 4 ++- src/app/resources/resources.component.css | 0 src/app/resources/resources.component.html | 3 +++ src/app/resources/resources.component.spec.ts | 25 ++++++++++++++++++ src/app/resources/resources.component.ts | 15 +++++++++++ src/app/staff/staff.component.css | 15 +++-------- src/app/staff/staff.component.ts | 2 +- .../teams-card/teams-card.component.html | 5 ++-- .../staff/teams-card/teams-card.component.ts | 9 +++---- .../teams-jumbotron.component.css | 24 +++++++++++++++++ .../teams-jumbotron.component.html | 16 +++++++++++ .../teams-jumbotron.component.ts | 2 +- src/app/staffdata.service.ts | 13 ++------- .../images/team-details-placeholder.jpeg | Bin 0 -> 57421 bytes 14 files changed, 99 insertions(+), 34 deletions(-) create mode 100644 src/app/resources/resources.component.css create mode 100644 src/app/resources/resources.component.html create mode 100644 src/app/resources/resources.component.spec.ts create mode 100644 src/app/resources/resources.component.ts create mode 100644 src/app/staff/teams-jumbotron/teams-jumbotron.component.css create mode 100644 src/assets/images/team-details-placeholder.jpeg diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 53d9e80..3fd7474 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -10,10 +10,12 @@ import { HomeModule } from './home/home.module'; import { StaffModule } from './staff/staff.module'; import { StaffDataService } from './staffdata.service'; +import { ResourcesComponent } from './resources/resources.component'; @NgModule({ declarations: [ - AppComponent + AppComponent, + ResourcesComponent ], imports: [ BrowserModule, diff --git a/src/app/resources/resources.component.css b/src/app/resources/resources.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/resources/resources.component.html b/src/app/resources/resources.component.html new file mode 100644 index 0000000..89e9a50 --- /dev/null +++ b/src/app/resources/resources.component.html @@ -0,0 +1,3 @@ +

+ resources works! +

diff --git a/src/app/resources/resources.component.spec.ts b/src/app/resources/resources.component.spec.ts new file mode 100644 index 0000000..8b3bbc7 --- /dev/null +++ b/src/app/resources/resources.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ResourcesComponent } from './resources.component'; + +describe('ResourcesComponent', () => { + let component: ResourcesComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ResourcesComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ResourcesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should be created', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/resources/resources.component.ts b/src/app/resources/resources.component.ts new file mode 100644 index 0000000..95eeefc --- /dev/null +++ b/src/app/resources/resources.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-resources', + templateUrl: './resources.component.html', + styleUrls: ['./resources.component.css'] +}) +export class ResourcesComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/staff/staff.component.css b/src/app/staff/staff.component.css index a7d8559..75e4e94 100644 --- a/src/app/staff/staff.component.css +++ b/src/app/staff/staff.component.css @@ -12,13 +12,13 @@ height: 96px; } -.card-division { - margin: 16px auto; - padding: 4px; +.card-cover { + width: 80%; + margin: 0 auto; } .card { - margin: 0 16px; + margin: 16px 16px; width: 32rem; background-color: #ecb213; float: left; @@ -36,10 +36,3 @@ .card-img-top { width: 100%; } - -/*---------------------------------------------------------------------*/ - -/* -Styling for teams-jumbotron ------------------------------------------------------------------------*/ - diff --git a/src/app/staff/staff.component.ts b/src/app/staff/staff.component.ts index 314188b..930f0ad 100644 --- a/src/app/staff/staff.component.ts +++ b/src/app/staff/staff.component.ts @@ -8,7 +8,7 @@ import { TeamItem } from './teams-card/team-item'; }) export class StaffComponent implements OnInit { - public tabMode:boolean = true; + public tabMode:boolean = false; public teamItem:TeamItem; public teamList: Array; diff --git a/src/app/staff/teams-card/teams-card.component.html b/src/app/staff/teams-card/teams-card.component.html index f206036..71e19de 100644 --- a/src/app/staff/teams-card/teams-card.component.html +++ b/src/app/staff/teams-card/teams-card.component.html @@ -1,5 +1,5 @@ -
-
+
+
Card image cap

{{item.title}}

@@ -16,5 +16,4 @@

{{item.title}}

-
\ No newline at end of file diff --git a/src/app/staff/teams-card/teams-card.component.ts b/src/app/staff/teams-card/teams-card.component.ts index 9aabe35..1c46783 100644 --- a/src/app/staff/teams-card/teams-card.component.ts +++ b/src/app/staff/teams-card/teams-card.component.ts @@ -13,8 +13,7 @@ export class TeamsCardComponent implements OnInit { @Output() tabModeChanger:EventEmitter<[TeamItem, Array, boolean]> = new EventEmitter<[TeamItem, Array, boolean]>(); - public teamList: Array>; - simpilfiedList: Array; + teamList: Array; teamItem: TeamItem; staffService: StaffDataService; @@ -23,9 +22,7 @@ export class TeamsCardComponent implements OnInit { } ngOnInit() { - let result = this.staffService.fetchTeamsFromJSON(); - this.teamList = result[0]; - this.simpilfiedList = result[1]; + this.teamList = this.staffService.fetchTeamsFromJSON(); } getTeams() { @@ -34,7 +31,7 @@ export class TeamsCardComponent implements OnInit { onBtnClick(item: TeamItem) { this.teamItem = item; - this.tabModeChanger.emit([item, this.simpilfiedList, false]); + this.tabModeChanger.emit([item, this.teamList, false]); item.buttonClicked(); } } diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.css b/src/app/staff/teams-jumbotron/teams-jumbotron.component.css new file mode 100644 index 0000000..dbd5b6b --- /dev/null +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.css @@ -0,0 +1,24 @@ +.card { + width: 60%; + margin: 0 auto; +} + +.d-header { + background: #FFC107; +} + +.floater-image { + float: left; + height: 100%; + margin-right: 4px; +} + +.clear { + clear: both; +} + +.header-text { + padding: 4px 4px 4px 0; + color: white; + font-weight: bold; +} \ No newline at end of file diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.html b/src/app/staff/teams-jumbotron/teams-jumbotron.component.html index e69de29..5043250 100644 --- a/src/app/staff/teams-jumbotron/teams-jumbotron.component.html +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.html @@ -0,0 +1,16 @@ +
+
+
+
+ ... +
+
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s. +
+
+
+ + Hello again! + +
+
\ No newline at end of file diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.ts b/src/app/staff/teams-jumbotron/teams-jumbotron.component.ts index 4d2fda8..d83aa7a 100644 --- a/src/app/staff/teams-jumbotron/teams-jumbotron.component.ts +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.ts @@ -5,7 +5,7 @@ import {TeamItem} from '../teams-card/team-item'; @Component({ selector: 'app-teams-jumbotron', templateUrl: './teams-jumbotron.component.html', - styleUrls: ['../staff.component.css'] + styleUrls: ['./teams-jumbotron.component.css'] }) export class TeamsJumbotronComponent implements OnInit { diff --git a/src/app/staffdata.service.ts b/src/app/staffdata.service.ts index ac77cb1..baca7ae 100644 --- a/src/app/staffdata.service.ts +++ b/src/app/staffdata.service.ts @@ -56,18 +56,9 @@ export class StaffDataService { * Fetches team details from a Google spreadsheet. To be done. Currently, using * hardcoded data. */ - fetchTeamsFromJSON():[Array>, Array] { + fetchTeamsFromJSON():Array { this.http.get('TODO - replace this with nodejs JSON API').subscribe(res => { }); - - // Separates cards into div blocks for design effects. - var sum:number = 0; - var i:number = 1; - while(sum < this.teamList.length) { - sum += i; - i++; - this.teamBlocks.unshift(this.teamList.slice(sum, sum + i)); - } - return [this.teamBlocks, this.teamList]; + return this.teamList; } } diff --git a/src/assets/images/team-details-placeholder.jpeg b/src/assets/images/team-details-placeholder.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7ea626514a39e407ee8c6b830ff912fdd435b88e GIT binary patch literal 57421 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ꝵkc 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 Date: Tue, 3 Apr 2018 10:16:02 -0700 Subject: [PATCH 4/5] team-specific-layout --- src/app/staff/staff.component.css | 2 +- src/app/staff/staff.component.ts | 2 +- .../teams-jumbotron.component.css | 70 +++++++++++++++---- .../teams-jumbotron.component.html | 69 ++++++++++++++---- 4 files changed, 112 insertions(+), 31 deletions(-) diff --git a/src/app/staff/staff.component.css b/src/app/staff/staff.component.css index 75e4e94..a7966e1 100644 --- a/src/app/staff/staff.component.css +++ b/src/app/staff/staff.component.css @@ -13,7 +13,7 @@ } .card-cover { - width: 80%; + width: 90%; margin: 0 auto; } diff --git a/src/app/staff/staff.component.ts b/src/app/staff/staff.component.ts index 930f0ad..883a110 100644 --- a/src/app/staff/staff.component.ts +++ b/src/app/staff/staff.component.ts @@ -18,7 +18,7 @@ export class StaffComponent implements OnInit { ngOnInit() { } - tabModeChanger(tabDetails: [TeamItem, Array, boolean]) { + tabModeChanger(tabDetails: [TeamItem, Array, boolean]) { this.teamItem = tabDetails[0]; this.teamList = tabDetails[1]; this.tabMode = tabDetails[2]; diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.css b/src/app/staff/teams-jumbotron/teams-jumbotron.component.css index dbd5b6b..4f4fe8b 100644 --- a/src/app/staff/teams-jumbotron/teams-jumbotron.component.css +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.css @@ -1,24 +1,66 @@ -.card { - width: 60%; - margin: 0 auto; +.wrapper { + height: 800px; + background: #FAFAFA; } -.d-header { - background: #FFC107; -} - -.floater-image { +#sidebar { + min-width: 250px; + max-width: 250px; float: left; height: 100%; - margin-right: 4px; + background: #178CB0; + color: white; + padding-left: 8px; +} + +#sidebar.active { + min-width: 80px; + max-width: 80px; + text-align: center; +} + +#sidebar .sidebar-header strong { + display: none; + margin: 0 32px; +} +#sidebar.active .sidebar-header h3 { + display: none; + margin: 0 32px; +} +#sidebar.active .sidebar-header strong { + display: block; + margin: 0 32px; } -.clear { - clear: both; +#sidebar ul li a { + text-align: left; + display: block; + color: white; + margin: 16px 0; } -.header-text { - padding: 4px 4px 4px 0; +#sidebar.active ul li a { + padding: 20px 10px; + text-align: center; + font-size: 0.85em; + display: block; color: white; - font-weight: bold; +} + +#sidebar.active ul li a i { + margin-right: 0; + display: block; + font-size: 1.8em; + margin-bottom: 5px; +} + +#sidebar.active ul ul a { + padding: 10px !important; +} + +#sidebar.active a[aria-expanded="false"]::before, #sidebar.active a[aria-expanded="true"]::before { + top: auto; + bottom: 5px; + right: 50%; + transform: translateX(50%); } \ No newline at end of file diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.html b/src/app/staff/teams-jumbotron/teams-jumbotron.component.html index 5043250..3a39b5c 100644 --- a/src/app/staff/teams-jumbotron/teams-jumbotron.component.html +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.html @@ -1,16 +1,55 @@ -
-
-
-
- ... -
-
- Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s. -
-
-
- - Hello again! - -
+
+ + + +
+ +
+
\ No newline at end of file From 57995a269043ac990e038d543f04eff429cf32bb Mon Sep 17 00:00:00 2001 From: pushpakrajgautam Date: Tue, 3 Apr 2018 10:29:57 -0700 Subject: [PATCH 5/5] mods --- src/app/staff/staff.component.ts | 2 +- .../teams-jumbotron.component.css | 60 +++++++++++++++++++ .../teams-jumbotron.component.html | 4 -- 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/src/app/staff/staff.component.ts b/src/app/staff/staff.component.ts index 883a110..c4cfe7f 100644 --- a/src/app/staff/staff.component.ts +++ b/src/app/staff/staff.component.ts @@ -8,7 +8,7 @@ import { TeamItem } from './teams-card/team-item'; }) export class StaffComponent implements OnInit { - public tabMode:boolean = false; + public tabMode:boolean = true; public teamItem:TeamItem; public teamList: Array; diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.css b/src/app/staff/teams-jumbotron/teams-jumbotron.component.css index 4f4fe8b..09e2e86 100644 --- a/src/app/staff/teams-jumbotron/teams-jumbotron.component.css +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.css @@ -63,4 +63,64 @@ bottom: 5px; right: 50%; transform: translateX(50%); +} + +@media (max-width: 768px) { + /* 80px and its content aligned to centre. Pushing it off the screen with the + negative left margin + */ + #sidebar.active { + min-width: 80px; + max-width: 80px; + text-align: center; + margin-left: -80px !important; + } + + + /* Reappearing the sidebar on toggle button click */ + #sidebar { + margin-left: 0; + } + + + /* Toggling the sidebar header content, + hide the big heading [h3] and showing the small heading [strong] and vice versa + */ + #sidebar .sidebar-header strong { + display: none; + } + #sidebar.active .sidebar-header h3 { + display: none; + } + #sidebar.active .sidebar-header strong { + display: block; + } + + /* Downsize the navigation links font size */ + #sidebar.active ul li a { + padding: 20px 10px; + font-size: 0.85em; + } + + #sidebar.active ul li a i { + margin-right: 0; + display: block; + font-size: 1.8em; + margin-bottom: 5px; + } + + /* Adjust the dropdown links padding*/ + #sidebar.active ul ul a { + padding: 10px !important; + } + + /* Changing the arrow position to bottom center position, + translateX(50%) works with right: 50% + to accurately center the arrow */ + #sidebar.active a[aria-expanded="false"]::before, #sidebar.active a[aria-expanded="true"]::before { + top: auto; + bottom: 5px; + right: 50%; + transform: translateX(50%); + } } \ No newline at end of file diff --git a/src/app/staff/teams-jumbotron/teams-jumbotron.component.html b/src/app/staff/teams-jumbotron/teams-jumbotron.component.html index 3a39b5c..d5e186b 100644 --- a/src/app/staff/teams-jumbotron/teams-jumbotron.component.html +++ b/src/app/staff/teams-jumbotron/teams-jumbotron.component.html @@ -46,10 +46,6 @@

Teams

-
\ No newline at end of file