|
|
class CourseModulesController < ApplicationController
|
|
|
before_action :require_login, :check_auth
|
|
|
before_action :set_module, except: [:unhidden_modules]
|
|
|
before_action :find_course, only: [:unhidden_modules]
|
|
|
before_action :teacher_allowed
|
|
|
|
|
|
# 模块置顶
|
|
|
def sticky_module
|
|
|
# position为1则不做处理,否则该模块的position置为1,position小于当前模块的position加1
|
|
|
unless @course_module.position == 1
|
|
|
@course.course_modules.where("position < #{@course_module.position}").update_all("position = position + 1")
|
|
|
@course_module.update_attributes(position: 1)
|
|
|
end
|
|
|
normal_status(0, "置顶成功")
|
|
|
end
|
|
|
|
|
|
# 模块隐藏
|
|
|
def hidden_module
|
|
|
@course_module.update_attributes(hidden: 1)
|
|
|
normal_status(0, "更新成功")
|
|
|
end
|
|
|
|
|
|
# 模块重命名
|
|
|
def rename_module
|
|
|
name = params[:name].strip
|
|
|
tip_exception("名称不能为空") if name.blank?
|
|
|
tip_exception("已存在同名模块") if @course.course_modules.exists?(module_name: name)
|
|
|
@course_module.update_attributes(module_name: name)
|
|
|
|
|
|
case @course_module.module_type
|
|
|
when 'board'
|
|
|
@course.course_board.update_columns(name: name)
|
|
|
end
|
|
|
normal_status(0, "更新成功")
|
|
|
end
|
|
|
|
|
|
# 模块的显示
|
|
|
def unhidden_modules
|
|
|
tip_exception("请选择要显示的模块") if params[:module_ids].blank?
|
|
|
@course.course_modules.where(id: params[:module_ids]).update_all(hidden: 0)
|
|
|
normal_status(0, "更新成功")
|
|
|
end
|
|
|
|
|
|
# 添加二级目录
|
|
|
def add_second_category
|
|
|
tip_exception("子目录名称不能为空") if params[:name].blank?
|
|
|
tip_exception("已存在同名子目录") if @course_module.course_second_categories.exists?(name: params[:name].strip)
|
|
|
ActiveRecord::Base.transaction do
|
|
|
begin
|
|
|
@course_module.course_second_categories.create!(name: params[:name].strip, category_type: @course_module.module_type,
|
|
|
course_id: @course.id, position: @course_module.course_second_categories.count + 1)
|
|
|
normal_status(0, "添加成功")
|
|
|
rescue Exception => e
|
|
|
uid_logger_error(e.message)
|
|
|
tip_exception("添加子目录失败")
|
|
|
end
|
|
|
end
|
|
|
end
|
|
|
|
|
|
private
|
|
|
|
|
|
def set_module
|
|
|
@course_module = CourseModule.find_by!(id: params[:id])
|
|
|
@course = @course_module.course
|
|
|
end
|
|
|
end
|