Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
SRCT
schedules
Commits
cc42e1da
Commit
cc42e1da
authored
May 11, 2019
by
Zac Wood
Browse files
Added basic favicons.
Should still add more for mobile devices + PWA support
parent
4d7d8564
Changes
84
Hide whitespace changes
Inline
Side-by-side
.prettierrc
0 → 100644
View file @
cc42e1da
{
"printWidth": 120,
"tabWidth": 4,
"singleQuote": true,
"useTabs": false,
"jsxBracketSameLine": true,
"trailingComma": "es5"
}
schedules/.babelrc
View file @
cc42e1da
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": "> 1%",
"uglify": true
},
"useBuiltIns": true
}]
[
"env",
{
"modules": false,
"targets": {
"browsers": "> 1%",
"uglify": true
},
"useBuiltIns": true
}
],
"react"
],
"plugins": [
"syntax-dynamic-import",
"transform-object-rest-spread",
["transform-class-properties", { "spec": true }]
[
"transform-class-properties",
{
"spec": true
}
]
]
}
schedules/Dockerfile
View file @
cc42e1da
...
...
@@ -14,3 +14,4 @@ RUN export SECRET_KEY_BASE=$(rails secret)
RUN
rails assets:precompile
RUN
rails db:migrate
RUN
rails db:seed
RUN
rails runner db/load_course_ratings.rb
schedules/Gemfile
View file @
cc42e1da
...
...
@@ -21,6 +21,9 @@ gem 'uglifier'
gem
'webpacker'
,
'~> 3.5'
# Access Ruby data from JavaScript
gem
'gon'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
...
...
@@ -74,7 +77,3 @@ gem 'apipie-rails'
# Markdown for API docs
gem
'maruku'
# gem 'jquery-rails'
# gem 'font-awesome-sass', '~> 5.3.1'
schedules/Gemfile.lock
View file @
cc42e1da
...
...
@@ -64,6 +64,10 @@ GEM
ffi (1.9.25)
globalid (0.4.1)
activesupport (>= 4.2.0)
gon (6.2.1)
actionpack (>= 3.0)
multi_json
request_store (>= 1.0)
httparty (0.16.3)
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
...
...
@@ -144,6 +148,8 @@ GEM
rb-fsevent (0.10.3)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
request_store (1.4.1)
rack (>= 1.4)
rubocop (0.58.2)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
...
...
@@ -216,6 +222,7 @@ DEPENDENCIES
apipie-rails
byebug
capybara (~> 2.13)
gon
httparty
icalendar
jbuilder (~> 2.5)
...
...
schedules/app/assets/images/favicon-32x32.png
0 → 100644
View file @
cc42e1da
685 Bytes
schedules/app/assets/images/favicon.ico
0 → 100644
View file @
cc42e1da
14.7 KB
schedules/app/assets/javascripts/about.js
0 → 100644
View file @
cc42e1da
// 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/course_sections.js
0 → 100644
View file @
cc42e1da
// 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
0 → 100644
View file @
cc42e1da
// 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 @
cc42e1da
...
...
@@ -20,6 +20,11 @@ body {
background-color
:
#E4E4E4
;
}
#page
{
padding-top
:
16px
;
padding-bottom
:
16px
;
}
.card
{
margin-bottom
:
12px
;
...
...
@@ -90,3 +95,39 @@ body {
.quick-add-header
{
margin-top
:
32px
;
}
%flex-display
{
display
:
inline-flex
;
}
.star-rating
{
@extend
%flex-display
;
align-items
:
center
;
font-size
:
1em
;
justify-content
:
flex-start
;
}
.back-stars
{
@extend
%flex-display
;
position
:
relative
;
text-shadow
:
4px
4px
10px
#843a3a
;
}
.front-stars
{
@extend
%flex-display
;
color
:
#FFBC0B
;
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
;
}
// .jumbotron {
// color: #FFFFFF
// }
schedules/app/assets/stylesheets/course_sections.scss
0 → 100644
View file @
cc42e1da
// 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/navbar.scss
View file @
cc42e1da
...
...
@@ -18,6 +18,7 @@
#semester-select
{
min-width
:
100px
;
margin-right
:
8px
;
}
#cart-button
{
...
...
schedules/app/controllers/about_controller.rb
0 → 100644
View file @
cc42e1da
class
AboutController
<
ApplicationController
def
index
;
end
end
schedules/app/controllers/api/course_sections_controller.rb
View file @
cc42e1da
...
...
@@ -28,7 +28,6 @@ class API::CourseSectionsController < ApplicationController
@sections
=
@sections
.
where
(
'UPPER(instructors.name) LIKE UPPER(?)'
,
"%
#{
params
[
:instructor
]
}
%"
)
end
# @sections = CourseSection.fetch(params).all
res
=
@sections
.
map
do
|
s
|
{
id:
s
.
id
,
...
...
@@ -38,6 +37,9 @@ class API::CourseSectionsController < ApplicationController
crn:
s
.
crn
,
title:
s
.
title
,
instructor_name:
s
.
instructor_name
,
instructor_url:
instructor_url
(
s
.
instructor
),
teaching_rating:
s
.
instructor
.
rating
,
course_rating:
s
.
course_rating
,
section_type:
s
.
section_type
,
start_date:
s
.
start_date
,
end_date:
s
.
end_date
,
...
...
schedules/app/controllers/application_controller.rb
View file @
cc42e1da
# Configures the application.
class
ApplicationController
<
ActionController
::
Base
protect_from_forgery
with: :null_session
# On each request, set the semester and cart.
before_action
:set_semester
,
:set_cart
# Every page needs to know what semester it should load data from.
# set_semester checks both the semester_id query parameter and the user's cookies
# to look for a semester id and loads whatever it finds into @semester.
#
# By default, load the most recent semester.
def
set_semester
if
params
.
key?
(
:semester_id
)
@semester
=
Semester
.
find_by_id
params
[
:semester_id
]
cookies
[
:semester_id
]
=
@semester
.
id
elsif
cookies
[
:semester_id
].
nil?
@semester
=
Semester
.
first
cookies
[
:semester_id
]
=
@semester
.
id
else
@semester
=
Semester
.
find_by_id
cookies
[
:semester_id
]
end
end
# The user's cart is stored as a JSON-encoded list of CRNs.
# set_cart sets the @cart variable, which is a list of the sections represented by the CRNs.
def
set_cart
# set the cart cookie to be empty if it doesn't already exist
cookies
.
permanent
[
:cart
]
=
"[]"
if
cookies
.
permanent
[
:cart
].
nil?
# decode the JSON list into an array
@cart
=
JSON
.
parse
(
cookies
.
permanent
[
:cart
])
# get rid of any invalid CRNs
@cart
=
@cart
.
reject
{
|
crn
|
CourseSection
.
find_by_crn
(
crn
).
nil?
}
# set the cookie to the JSON-encoded list of valid sections
cookies
.
permanent
[
:cart
]
=
@cart
.
to_json
end
include
BySemester
end
schedules/app/controllers/concerns/by_semester.rb
0 → 100644
View file @
cc42e1da
# BySemester contains logic for setting the current request's Semester.
module
BySemester
extend
ActiveSupport
::
Concern
included
do
before_action
:set_semester
end
# This page needs to know what semester it should load data from.
# set_semester checks both the semester_id query parameter and the current session
# to look for a semester id and loads whatever it finds into @semester.
#
# 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
end
end
schedules/app/controllers/course_sections_controller.rb
0 → 100644
View file @
cc42e1da
class
CourseSectionsController
<
ApplicationController
def
show
@section
=
CourseSection
.
find_by_id
(
params
[
:id
])
end
end
schedules/app/controllers/instructors_controller.rb
View file @
cc42e1da
...
...
@@ -7,14 +7,11 @@ class InstructorsController < ApplicationController
@instructor
=
Instructor
.
find_by_id
(
params
[
:id
])
# find the courses being taught this semester
sections
=
CourseSection
.
where
(
instructor:
@instructor
,
semester:
@semester
)
@courses
=
Course
.
build_set
(
sections
)
# build the list of courses the instructor has taught in the past
@past
=
[]
@instructor
.
course_sections
.
map
(
&
:course
).
each
do
|
c
|
@past
<<
c
unless
@past
.
select
{
|
past
|
past
.
full_name
==
c
.
full_name
}.
count
.
positive?
sections
=
CourseSection
.
where
(
instructor:
@instructor
)
@semesters
=
sections
.
group_by
do
|
s
|
s
.
semester
.
to_s
end
@past
.
sort_by!
(
&
:full_name
)
@rating
=
{
teaching:
@instructor
.
rating
,
respect:
@instructor
.
rating
(
6
)
}
end
end
schedules/app/controllers/schedules_controller.rb
View file @
cc42e1da
...
...
@@ -2,29 +2,32 @@
class
SchedulesController
<
ApplicationController
include
SchedulesHelper
def
show
valid_crns
=
@cart
.
reject
{
|
crn
|
s
=
CourseSection
.
find_by_crn
(
crn
)
s
.
nil?
}
def
show
;
end
@all
=
valid_crns
.
map
{
|
crn
|
def
view
@all
=
params
[
:crns
].
split
(
','
).
map
{
|
crn
|
CourseSection
.
latest_by_crn
(
crn
)
}
@all
.
reject!
(
&
:nil?
)
@without_online
=
@all
.
reject
{
|
s
|
s
.
start_time
==
"TBA"
||
s
.
end_time
==
"TBA"
}
@events
=
generate_fullcalender_events
(
@without_online
)
end
def
view
@
all
=
params
[
:crns
].
split
(
','
)
.
map
{
|
crn
|
CourseSection
.
latest_by_crn
(
crn
)
}
@all
.
reject!
(
&
:nil?
)
@without_online
=
@
all
.
reject
{
|
s
|
def
events
@
cart
=
params
[
:crns
].
split
(
','
)
.
map
{
|
crn
|
CourseSection
.
latest_by_crn
(
crn
)
}
.
reject
(
&
:nil?
)
@without_online
=
@
cart
.
reject
{
|
s
|
s
.
start_time
==
"TBA"
||
s
.
end_time
==
"TBA"
}
@events
=
generate_fullcalender_events
(
@without_online
)
sections
=
@cart
.
map
do
|
s
|
s
.
serializable_hash
.
merge
(
instructor_name:
s
.
instructor
.
name
,
instructor_url:
instructor_url
(
s
.
instructor
))
end
render
json:
{
events:
@events
,
sections:
sections
}
end
end
Prev
1
2
3
4
5
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment