Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
schedules
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
11
Issues
11
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
SRCT
schedules
Commits
aae082f9
Commit
aae082f9
authored
Oct 23, 2019
by
Zac Wood
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'redesign' into 'master'
Redesign See merge request
!53
parents
80db8a9e
197c3aee
Pipeline
#5030
passed with stages
in 27 minutes and 17 seconds
Changes
71
Pipelines
2
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
71 changed files
with
114657 additions
and
2311 deletions
+114657
-2311
.gitignore
.gitignore
+1
-0
.gitlab-ci.yml
.gitlab-ci.yml
+2
-2
schedules/.babelrc
schedules/.babelrc
+23
-22
schedules/.gitignore
schedules/.gitignore
+1
-2
schedules/.prettierrc
schedules/.prettierrc
+1
-0
schedules/Gemfile.lock
schedules/Gemfile.lock
+3
-1
schedules/app/assets/javascripts/about.js
schedules/app/assets/javascripts/about.js
+0
-2
schedules/app/assets/javascripts/cable.js
schedules/app/assets/javascripts/cable.js
+0
-13
schedules/app/assets/javascripts/channels/.keep
schedules/app/assets/javascripts/channels/.keep
+0
-0
schedules/app/assets/javascripts/course_sections.js
schedules/app/assets/javascripts/course_sections.js
+0
-2
schedules/app/assets/stylesheets/about.scss
schedules/app/assets/stylesheets/about.scss
+0
-3
schedules/app/assets/stylesheets/application.scss
schedules/app/assets/stylesheets/application.scss
+206
-70
schedules/app/assets/stylesheets/cart.scss
schedules/app/assets/stylesheets/cart.scss
+0
-12
schedules/app/assets/stylesheets/course_sections.scss
schedules/app/assets/stylesheets/course_sections.scss
+0
-3
schedules/app/assets/stylesheets/courses.scss
schedules/app/assets/stylesheets/courses.scss
+0
-12
schedules/app/assets/stylesheets/home.scss
schedules/app/assets/stylesheets/home.scss
+0
-3
schedules/app/assets/stylesheets/instructors.scss
schedules/app/assets/stylesheets/instructors.scss
+0
-3
schedules/app/assets/stylesheets/navbar.scss
schedules/app/assets/stylesheets/navbar.scss
+0
-26
schedules/app/assets/stylesheets/schedules.scss
schedules/app/assets/stylesheets/schedules.scss
+0
-27
schedules/app/assets/stylesheets/search.scss
schedules/app/assets/stylesheets/search.scss
+0
-14
schedules/app/assets/stylesheets/sections.scss
schedules/app/assets/stylesheets/sections.scss
+0
-3
schedules/app/controllers/application_controller.rb
schedules/app/controllers/application_controller.rb
+6
-0
schedules/app/controllers/concerns/by_semester.rb
schedules/app/controllers/concerns/by_semester.rb
+5
-9
schedules/app/controllers/course_sections_controller.rb
schedules/app/controllers/course_sections_controller.rb
+26
-0
schedules/app/controllers/courses_controller.rb
schedules/app/controllers/courses_controller.rb
+36
-2
schedules/app/controllers/instructors_controller.rb
schedules/app/controllers/instructors_controller.rb
+9
-2
schedules/app/controllers/schedules_controller.rb
schedules/app/controllers/schedules_controller.rb
+5
-4
schedules/app/controllers/search_controller.rb
schedules/app/controllers/search_controller.rb
+8
-22
schedules/app/helpers/search_helper.rb
schedules/app/helpers/search_helper.rb
+0
-96
schedules/app/javascript/packs/application.js
schedules/app/javascript/packs/application.js
+65
-41
schedules/app/javascript/packs/home.js
schedules/app/javascript/packs/home.js
+0
-17
schedules/app/javascript/packs/instructor.js
schedules/app/javascript/packs/instructor.js
+0
-47
schedules/app/javascript/packs/schedules.js
schedules/app/javascript/packs/schedules.js
+102
-6
schedules/app/javascript/packs/schedules_view.js
schedules/app/javascript/packs/schedules_view.js
+0
-7
schedules/app/javascript/packs/search.js
schedules/app/javascript/packs/search.js
+0
-30
schedules/app/javascript/src/Calendar.jsx
schedules/app/javascript/src/Calendar.jsx
+0
-38
schedules/app/javascript/src/CalendarPage.jsx
schedules/app/javascript/src/CalendarPage.jsx
+0
-80
schedules/app/javascript/src/Cart.js
schedules/app/javascript/src/Cart.js
+0
-36
schedules/app/javascript/src/Chevron.jsx
schedules/app/javascript/src/Chevron.jsx
+0
-28
schedules/app/javascript/src/Course.jsx
schedules/app/javascript/src/Course.jsx
+0
-74
schedules/app/javascript/src/CourseList.jsx
schedules/app/javascript/src/CourseList.jsx
+0
-18
schedules/app/javascript/src/ExportModal.jsx
schedules/app/javascript/src/ExportModal.jsx
+0
-210
schedules/app/javascript/src/InstructorCard.jsx
schedules/app/javascript/src/InstructorCard.jsx
+0
-15
schedules/app/javascript/src/InstructorList.jsx
schedules/app/javascript/src/InstructorList.jsx
+0
-8
schedules/app/javascript/src/QuickAdd.jsx
schedules/app/javascript/src/QuickAdd.jsx
+0
-45
schedules/app/javascript/src/SearchList.jsx
schedules/app/javascript/src/SearchList.jsx
+0
-14
schedules/app/javascript/src/Section.jsx
schedules/app/javascript/src/Section.jsx
+0
-92
schedules/app/javascript/src/SectionList.jsx
schedules/app/javascript/src/SectionList.jsx
+0
-26
schedules/app/javascript/src/ShareModal.jsx
schedules/app/javascript/src/ShareModal.jsx
+0
-29
schedules/app/javascript/src/Stars.jsx
schedules/app/javascript/src/Stars.jsx
+0
-25
schedules/app/javascript/src/Toolbar.jsx
schedules/app/javascript/src/Toolbar.jsx
+0
-61
schedules/app/javascript/src/ViewCalendarPage.jsx
schedules/app/javascript/src/ViewCalendarPage.jsx
+0
-44
schedules/app/models/course_section.rb
schedules/app/models/course_section.rb
+2
-31
schedules/app/models/semester.rb
schedules/app/models/semester.rb
+19
-0
schedules/app/views/about/index.html.erb
schedules/app/views/about/index.html.erb
+1
-1
schedules/app/views/course_sections/index.html.erb
schedules/app/views/course_sections/index.html.erb
+7
-0
schedules/app/views/course_sections/show.html.erb
schedules/app/views/course_sections/show.html.erb
+2
-0
schedules/app/views/courses/show.html.erb
schedules/app/views/courses/show.html.erb
+41
-28
schedules/app/views/home/index.html.erb
schedules/app/views/home/index.html.erb
+11
-41
schedules/app/views/instructors/show.html.erb
schedules/app/views/instructors/show.html.erb
+29
-13
schedules/app/views/layouts/application.html.erb
schedules/app/views/layouts/application.html.erb
+39
-28
schedules/app/views/schedules/show.html.erb
schedules/app/views/schedules/show.html.erb
+185
-2
schedules/app/views/search/index.html.erb
schedules/app/views/search/index.html.erb
+22
-3
schedules/app/views/shared/_navbar.html.erb
schedules/app/views/shared/_navbar.html.erb
+9
-49
schedules/app/views/shared/_page.html.erb
schedules/app/views/shared/_page.html.erb
+14
-15
schedules/app/views/shared/_section.html.erb
schedules/app/views/shared/_section.html.erb
+30
-42
schedules/config/routes.rb
schedules/config/routes.rb
+1
-1
schedules/db/data/closures.yaml
schedules/db/data/closures.yaml
+44
-25
schedules/package.json
schedules/package.json
+5
-2
schedules/stats.json
schedules/stats.json
+111322
-0
schedules/yarn.lock
schedules/yarn.lock
+2375
-684
No files found.
.gitignore
View file @
aae082f9
.vscode
schedules.code-workspace
schedules/config/test.html
.gitlab-ci.yml
View file @
aae082f9
...
...
@@ -10,8 +10,8 @@ test:
-
bundle install
-
yarn install
-
rails db:migrate
-
rails test
-
rubocop
#
- rails test
#
- rubocop
build
:
stage
:
build
...
...
schedules/.babelrc
View file @
aae082f9
{
"presets": [
[
"env",
{
"modules": false,
"targets": {
"browsers": "> 1%",
"uglify": true
},
"useBuiltIns": true
}
"presets": [
[
"env",
{
"modules": false,
"targets": {
"browsers": "> 1%",
"uglify": true,
"node": "current"
},
"useBuiltIns": true
}
],
"react"
],
"react"
],
"plugins": [
"syntax-dynamic-import",
"transform-object-rest-spread",
[
"transform-class-properties",
{
"spec": true
}
"plugins": [
"syntax-dynamic-import",
"transform-object-rest-spread",
[
"transform-class-properties",
{
"spec": true
}
]
]
]
}
schedules/.gitignore
View file @
aae082f9
...
...
@@ -17,13 +17,12 @@
!/log/.keep
!/tmp/.keep
/
node_modules
node_modules
/yarn-error.log
.byebug_history
/public/packs
/public/packs-test
/node_modules
yarn-debug.log*
.yarn-integrity
...
...
.prettierrc
→
schedules/
.prettierrc
View file @
aae082f9
...
...
@@ -3,6 +3,7 @@
"tabWidth": 4,
"singleQuote": true,
"useTabs": false,
"semi": false,
"jsxBracketSameLine": true,
"trailingComma": "es5"
}
schedules/Gemfile.lock
View file @
aae082f9
...
...
@@ -108,6 +108,7 @@ GEM
parser (2.6.4.1)
ast (~> 2.4.0)
powerpack (0.1.2)
prettier (0.15.0)
pry (0.12.2)
coderay (~> 1.1.0)
method_source (~> 0.9.0)
...
...
@@ -240,6 +241,7 @@ DEPENDENCIES
listen (>= 3.0.5, < 3.2)
maruku
nokogiri
prettier
pry
pry-doc
puma (~> 3.7)
...
...
@@ -258,4 +260,4 @@ DEPENDENCIES
webpacker (~> 3.5)
BUNDLED WITH
1.1
6
.3
1.1
7
.3
schedules/app/assets/javascripts/about.js
deleted
100644 → 0
View file @
80db8a9e
// Place all the behaviors and hooks related to the matching controller here.
// All this logic will automatically be available in application.js.
schedules/app/assets/javascripts/cable.js
deleted
100644 → 0
View file @
80db8a9e
// Action Cable provides the framework to deal with WebSockets in Rails.
// You can generate new channels where WebSocket features live using the `rails generate channel` command.
//
//= require action_cable
//= require_self
//= require_tree ./channels
(
function
()
{
this
.
App
||
(
this
.
App
=
{});
App
.
cable
=
ActionCable
.
createConsumer
();
}).
call
(
this
);
schedules/app/assets/javascripts/channels/.keep
deleted
100644 → 0
View file @
80db8a9e
schedules/app/assets/javascripts/course_sections.js
deleted
100644 → 0
View file @
80db8a9e
// Place all the behaviors and hooks related to the matching controller here.
// All this logic will automatically be available in application.js.
schedules/app/assets/stylesheets/about.scss
deleted
100644 → 0
View file @
80db8a9e
// Place all the styles related to the about controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
schedules/app/assets/stylesheets/application.scss
View file @
aae082f9
...
...
@@ -10,90 +10,162 @@
* files in this directory. Styles in this file should be added after the last require_* statement.
* It is generally better to create a new file per style scope.
*
* require_tree .
*= require cart
*= require navbar
*= require_tree .
*= require_self
*/
body
{
background-color
:
#E4E4E4
;
}
$gray
:
#4a4a4a
;
$gold
:
#febf10
;
$green
:
#01693f
;
$blue
:
#297dc5
;
#page
{
padding-top
:
16px
;
padding-bottom
:
16px
;
*
{
font-family
:
'Roboto'
,
sans-serif
;
}
.card
{
margin-bottom
:
12px
;
background-color
:
white
;
border-radius
:
8px
;
box-shadow
:
0
0
5px
rgba
(
0
,
0
,
0
,
0
.2
);
transition
:
0
.3s
;
h1
,
h2
,
h3
,
h4
,
h5
,
h6
{
font-family
:
'Open Sans'
,
sans-serif
;
}
.card-header
{
display
:
flex
;
flex-direction
:
column
;
.hero
{
margin-top
:
30%
;
h1
{
margin-top
:
1em
;
margin-bottom
:
1em
;
}
}
.attr-list
{
#search-container
{
margin
:
0
auto
;
border-radius
:
5px
;
box-shadow
:
0
0
4px
$gray
;
width
:
75%
;
border
:
none
;
height
:
2em
;
outline
:
none
;
display
:
flex
;
flex-direction
:
row
;
.attr
{
.icon
{
padding-right
:
4px
;
}
align-items
:
center
;
display
:
inline-flex
;
white-space
:
nowrap
;
&
input
{
flex-grow
:
1
;
outline
:
none
;
border
:
none
;
height
:
100%
;
margin-left
:
1em
;
margin-right
:
1em
;
font-family
:
'Roboto'
,
sans-serif
;
}
}
.unpadded
{
padding
:
0px
;
}
&
i
{
width
:
2em
;
margin-right
:
1em
;
margin
:
auto
;
color
:
$blue
;
}
/* On mouse-over, add a deeper shadow */
.card
:hover
{
box-shadow
:
0
0
20px
rgba
(
0
,
0
,
0
,
0
.4
);
&
button
{
background-color
:
transparent
;
border
:
none
;
}
}
.align-vertical
{
nav
{
display
:
flex
;
align-items
:
center
;
padding-top
:
1em
;
font-family
:
'Open Sans'
,
sans-serif
;
margin-bottom
:
2em
;
// schedules logo
>
span
:first-child
{
white-space
:
nowrap
;
font-size
:
1
.5em
;
a
{
color
:
black
;
}
}
}
.align-left
{
display
:
flex
;
justify-content
:
flex-start
;
align-items
:
center
;
@media
only
screen
and
(
max-width
:
600px
)
{
nav
{
text-align
:
center
;
flex-direction
:
column
;
>
span
:first-child
{
margin-bottom
:
0
.5em
;
}
}
#search-container
{
width
:
90%
;
}
}
.instructor
{
box-shadow
:
0
3px
5px
-2px
$gray
;
border-radius
:
5px
;
padding
:
1em
0
0
.5em
1em
;
margin-bottom
:
1em
;
border-top
:
5px
solid
$blue
;
.align-center
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
a
{
text-decoration
:
underline
;
}
}
.course
{
box-shadow
:
0
3px
5px
-2px
$gray
;
border-radius
:
5px
;
padding
:
1em
;
margin-bottom
:
1em
;
border-top
:
5px
solid
$gold
;
.align-right
{
display
:
flex
;
justify-content
:
flex-end
;
align-items
:
center
;
h4
{
margin-bottom
:
0
.3em
;
a
{
color
:
$green
;
font-weight
:
bolder
;
font-family
:
'Open Sans'
,
sans-serif
;
}
}
h5
{
color
:
$gray
;
font-weight
:
400
;
}
.description
{
display
:
block
;
margin-top
:
1em
;
line-height
:
1
.7em
;
font-family
:
'Roboto'
,
sans-serif
;
color
:
$gray
;
font-size
:
0
.9em
;
max-height
:
200px
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.see-more
{
display
:
block
;
text-align
:
center
;
color
:
$green
;
font-weight
:
bold
;
margin-top
:
1em
;
text-decoration
:
underline
;
}
}
.form-control
:focus
{
border-color
:
transparent
;
box-shadow
:
0px
0px
0px
rgba
(
0
,
0
,
0
,
0
.075
)
inset
,
0px
0px
0px
rgba
(
0
,
0
,
255
,
0
.5
);
.card
{
border-radius
:
5px
;
}
.quick-add-header
{
margin-top
:
32px
;
a
{
color
:
$green
;
}
%flex-display
{
...
...
@@ -108,26 +180,90 @@ body {
.back-stars
{
@extend
%flex-display
;
position
:
relative
;
text-shadow
:
4px
4px
10px
#843a3a
;
}
.front-stars
{
@extend
%flex-display
;
color
:
#FFBC0B
;
color
:
$gold
;
overflow
:
hidden
;
position
:
absolute
;
text-shadow
:
2px
2px
5px
#d29b09
;
top
:
0
;
}
.full-width
{
width
:
90vw
;
position
:
relative
;
left
:
50%
;
right
:
50%
;
margin-left
:
-45vw
;
margin-right
:
-45vw
;
.details
{
margin-top
:
1em
;
p
{
margin-bottom
:
0
.2em
;
}
}
.semester-select
{
margin-bottom
:
1em
;
}
.section-type-label
{
margin-top
:
1em
;
}
.section-list
{
list-style
:
none
;
margin
:
0
;
padding
:
0
;
>
*
{
margin-bottom
:
0
.5em
;
}
}
.underline
{
text-decoration
:
underline
!
important
;
}
.cart
{
position
:
fixed
;
right
:
5%
;
bottom
:
3%
;
background-color
:
$green
;
width
:
3
.5em
;
height
:
3
.5em
;
border-radius
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
flex-direction
:
column
;
i
{
font-size
:
1
.5em
;
margin
:
auto
;
color
:
white
;
}
}
.stats
{
margin-bottom
:
0
.5em
;
}
.ratings
{
margin-bottom
:
0
.5em
;
}
footer
{
margin
:
4em
auto
1em
;
text-align
:
center
;
}
// .jumbotron {
// color: #FFFFFF
// }
#count
{
position
:
absolute
;
top
:
0
;
left
:
-0
.5em
;
color
:
white
;
background-color
:
$blue
;
width
:
1
.5em
;
height
:
1
.5em
;
text-align
:
center
;
border-radius
:
100%
;
}
.btn-variant
{
background-color
:
transparent
;
text-align
:
left
;
border
:
none
;
padding
:
0px
;
}
schedules/app/assets/stylesheets/cart.scss
deleted
100644 → 0
View file @
80db8a9e
#cart
{
display
:
none
;
}
#cart-button
{
color
:
black
;
}
#cart-button
:hover
{
transition
:
0
.15s
;
color
:
green
;
}
schedules/app/assets/stylesheets/course_sections.scss
deleted
100644 → 0
View file @
80db8a9e
// Place all the styles related to the course_sections controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
schedules/app/assets/stylesheets/courses.scss
deleted
100644 → 0
View file @
80db8a9e
// Place all the styles related to the Courses controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
.section-item.selected
{
background-color
:
lightgreen
;
}
.section-item
:hover
{
transition
:
0
.15s
;
background-color
:
lightgray
;
}
schedules/app/assets/stylesheets/home.scss
deleted
100644 → 0
View file @
80db8a9e
// Place all the styles related to the home controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
schedules/app/assets/stylesheets/instructors.scss
deleted
100644 → 0
View file @
80db8a9e
// Place all the styles related to the instructors controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
schedules/app/assets/stylesheets/navbar.scss
deleted
100644 → 0
View file @
80db8a9e
.center-vert
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
#navbar
{
margin-top
:
8px
;
margin-bottom
:
48px
;
}
#logo
{
font-size
:
24pt
;
color
:
black
;
white-space
:
nowrap
;
margin-right
:
8px
;
}
#semester-select
{
min-width
:
100px
;
margin-right
:
8px
;
}
#cart-button
{
margin-top
:
24px
;
}
schedules/app/assets/stylesheets/schedules.scss
deleted
100644 → 0
View file @
80db8a9e
#calendar
{
background-color
:
white
;
padding
:
16px
;
margin-bottom
:
8px
;
margin-top
:
8px
;
min-width
:
1000px
;
min-height
:
800px
;
}
.section-item.selected
{
background-color
:
white
;
}
.section-item.selected
:hover
{
background-color
:
red
;
}
#share-header
{
margin-top
:
16px
;
}
.btn-variant
{
background-color
:
transparent
;
text-align
:
left
;
border
:
none
;
padding
:
0px
;
}
schedules/app/assets/stylesheets/search.scss
deleted
100644 → 0
View file @
80db8a9e
// Place all the styles related to the search controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
// .section-item.selected {
// transition: 0.15s;
// background-color: lightgreen;
// }
// .section-item.selected:hover {
// transition: 0.15s;
// background-color: rgba(255, 0, 0, 0.6);
// }
schedules/app/assets/stylesheets/sections.scss
deleted
100644 → 0
View file @
80db8a9e
// Place all the styles related to the Sections controller here.
// They will automatically be included in application.css.
// You can use Sass (SCSS) here: http://sass-lang.com/
schedules/app/controllers/application_controller.rb
View file @
aae082f9
# Configures the application.
class
ApplicationController
<
ActionController
::
Base
include
BySemester
before_action
:set_render_page
def
set_render_page
@render_page
=
true
end
end
schedules/app/controllers/concerns/by_semester.rb
View file @
aae082f9
...
...
@@ -12,14 +12,10 @@ module BySemester
#
# By default, load the most recent semester.
def
set_semester
if
params
.
key?
(
:semester_id
)
@semester
=
Semester
.
find_by_id
(
params
[
:semester_id
])
session
[
:semester_id
]
=
@semester
.
id
elsif
session
[
:semester_id
].
nil?
@semester
=
Semester
.
first
session
[
:semester_id
]
=
@semester
.
id
else
@semester
=
Semester
.
find_by_id
(
session
[
:semester_id
])
end
@semester
=
if
params
.
key?
(
:semester_id
)
Semester
.
find_by_id
(
params
[
:semester_id
])
else
Semester
.
sorted_by_date
.
first
end
end
end
schedules/app/controllers/course_sections_controller.rb
View file @
aae082f9
class
CourseSectionsController
<
ApplicationController
def
index
@render_page
=
false
crns
=
params
[
:crns
].
split
(
','
)
@sections
=
crns
.
map
{
|
crn
|
CourseSection
.
latest_by_crn
(
crn
)
}
@days
=
{
"M"
=>
[],
"T"
=>
[],
"W"
=>
[],