Add keyword field to favorites

This commit is contained in:
2020-06-09 19:30:16 +02:00
parent af88064af9
commit ba2e90386f
18 changed files with 82 additions and 5 deletions
@@ -27,6 +27,7 @@ class Crawlers::CoursesCrawlerController < Crawlers::TissCrawlerController
end
@personal_annotation = get_stored_annotation FavoriteCourse, {number: params[:number]}
@personal_keyword = get_stored_keyword FavoriteCourse, {number: params[:number]}
puts params
@@ -88,4 +89,7 @@ class Crawlers::CoursesCrawlerController < Crawlers::TissCrawlerController
store_annotation FavoriteCourse, 'Course', {number: params[:id]}
end
def add_keyword
store_keyword FavoriteCourse, 'Course', {number: params[:id]}
end
end
@@ -23,6 +23,7 @@ class Crawlers::PeopleCrawlerController < Crawlers::TissCrawlerController
params[:tiss_id] = params[:tiss_id]
@personal_annotation = get_stored_annotation FavoritePerson, {tiss_id: params[:tiss_id]}
@personal_keyword = get_stored_keyword FavoritePerson, {tiss_id: params[:tiss_id]}
puts params
# TissCrawler fetches the person's detail information
@@ -56,4 +57,7 @@ class Crawlers::PeopleCrawlerController < Crawlers::TissCrawlerController
store_annotation FavoritePerson, 'Person', {tiss_id: params[:id]}
end
def add_keyword
store_keyword FavoritePerson, 'Person', {tiss_id: params[:id]}
end
end
@@ -22,6 +22,7 @@ class Crawlers::ProjectsCrawlerController < Crawlers::TissCrawlerController
@id = params[:id]
@personal_annotation = get_stored_annotation FavoriteProject, {id: @id}
@personal_keyword = get_stored_keyword FavoriteProject, {id: @id}
puts params
# TissCrawler fetches the project's detail information
@@ -52,4 +53,8 @@ class Crawlers::ProjectsCrawlerController < Crawlers::TissCrawlerController
def add_annotation
store_annotation FavoriteProject, 'Project', {id: params[:id]}
end
def add_keyword
store_keyword FavoriteProject, 'Project', {id: params[:id]}
end
end
@@ -22,6 +22,7 @@ class Crawlers::ThesesCrawlerController < Crawlers::TissCrawlerController
@id = params[:id]
@personal_annotation = get_stored_annotation FavoriteThesis, {id: @id}
@personal_keyword = get_stored_keyword FavoriteThesis, {id: @id}
puts params
# TissCrawler fetches the thesis' detail information
@@ -52,4 +53,8 @@ class Crawlers::ThesesCrawlerController < Crawlers::TissCrawlerController
def add_annotation
store_annotation FavoriteThesis, 'Thesis', {id: params[:id]}
end
def add_keyword
store_keyword FavoriteThesis, 'Thesis', {id: params[:id]}
end
end
@@ -38,6 +38,10 @@ class Crawlers::TissCrawlerController < ApplicationController
end
def add_keyword
end
private
def get_stored_annotation(object, id_hash)
id_hash['user_id'] = current_user
@@ -61,4 +65,26 @@ class Crawlers::TissCrawlerController < ApplicationController
redirect_back(fallback_location: crawlers_tiss_crawler_search_path)
end
def get_stored_keyword(object, id_hash)
id_hash['user_id'] = current_user
if object.exists?(id_hash)
object.where(id_hash)[0]['personal_keyword']
else
""
end
end
def store_keyword(object, object_name, id_hash)
id_hash['user_id'] = current_user
# Allow storing empty strings as a way of "clearing" the stored val
if object.exists?(id_hash)
object.where(id_hash)[0].update(:personal_keyword => params[:body])
flash[:alert] = 'Keyword stored!'
else
flash[:alert] = object_name + ' has to be favorited first!'
end
redirect_back(fallback_location: crawlers_tiss_crawler_search_path)
end
end