diff --git a/app/controllers/crawlers/courses_crawler_controller.rb b/app/controllers/crawlers/courses_crawler_controller.rb index 3fab5e6..7e644fb 100644 --- a/app/controllers/crawlers/courses_crawler_controller.rb +++ b/app/controllers/crawlers/courses_crawler_controller.rb @@ -12,10 +12,12 @@ class Crawlers::CoursesCrawlerController < Crawlers::TissCrawlerController def show_detail params[:api] = '/api/course/' - regex = params[:detail_url].match(/courseNr=(?\S{6})/) - params[:number] = regex[:number] - regex = params[:detail_url].match(/semester=(?\d{4}[SW])/) - params[:semester] = regex[:semester] + if (params[:number] || params[:semester]) == nil + regex = params[:detail_url].match(/courseNr=(?\S{6})/) + params[:number] = regex[:number] + regex = params[:detail_url].match(/semester=(?\d{4}[SW])/) + params[:semester] = regex[:semester] + end puts params diff --git a/app/controllers/favorites_controller.rb b/app/controllers/favorites_controller.rb index 54e4275..12ac057 100644 --- a/app/controllers/favorites_controller.rb +++ b/app/controllers/favorites_controller.rb @@ -13,7 +13,14 @@ class FavoritesController < ApplicationController end def courses + @favorite_courses = FavoriteCourse.where('user_id': current_user.id) + .order(sort_column + " " + sort_direction) + @host = 'https://tiss.tuwien.ac.at' + end + def delete_course + FavoriteCourse.find_by(number: params[:number], semester: params[:semester]).destroy + redirect_back(fallback_location: courses) end def theses @@ -27,10 +34,10 @@ class FavoritesController < ApplicationController private def sort_column - params[:sort] || 'first_name' + params[:sort] || '' end def sort_direction - params[:direction] || 'asc' + params[:direction] || '' end end diff --git a/app/views/favorites/courses.html.erb b/app/views/favorites/courses.html.erb index 8509c2d..bad85bf 100644 --- a/app/views/favorites/courses.html.erb +++ b/app/views/favorites/courses.html.erb @@ -1,3 +1,34 @@ -<%= render(:partial => "nav")%> +<%= render(:partial => "nav") %> -

Fav Courses

\ No newline at end of file +

Favorite Courses

+ +<% if !@favorite_courses[0].blank? %> +
+ + + + + + + + <% for course in @favorite_courses %> + + + + + + + <% end %> +
<%= sortable "Title", "title" %><%= sortable "Registration Date", "created_at" %>
+ <%= course['title'] %> + + <%= course['created_at'] %> + + <%= button_to 'Details', crawlers_courses_crawler_show_detail_url(:number => course['number'], :semester => course['semester']) %> + + <%= button_to 'Delete', {:action => "delete_course", :number => course['number'], :semester => course['semester']}, :method => 'delete' %> +
+
+<% else %> + No favorite courses added yet! +<% end %> diff --git a/config/routes.rb b/config/routes.rb index 81f9e4c..ad7b374 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -28,6 +28,7 @@ Rails.application.routes.draw do get 'people' delete 'delete_person' get 'courses' + delete 'delete_course' get 'theses' get 'projects' end