class CourseSecondCategoriesController < ApplicationController
before_action :require_login , :check_auth
before_action :set_category
before_action :teacher_or_admin_allowed
# 目录重命名
def rename_category
tip_exception ( " 毕设子目录不能重命名 " ) if @category . category_type == " graduation "
tip_exception ( " 名称不能为空 " ) if params [ :name ] . blank?
tip_exception ( " 已存在同名子目录 " ) if @course_module . course_second_categories . exists? ( name : params [ :name ] . strip )
@category . update_attributes! ( name : params [ :name ] . strip )
normal_status ( 0 , " 更新成功 " )
end
# 子目录的拖动
def move_category
tip_exception ( " 移动失败 " ) if params [ :position ] . blank?
unless params [ :position ] . to_i == @category . position
if params [ :position ] . to_i < @category . position
@course_module . course_second_categories . where ( " position < #{ @category . position } and position >= ? " , params [ :position ] ) . update_all ( " position = position + 1 " )
else
@course_module . course_second_categories . where ( " position > #{ @category . position } and position <= ? " , params [ :position ] ) . update_all ( " position = position - 1 " )
end
@category . update_attributes ( position : params [ :position ] )
normal_status ( 0 , " 移动成功 " )
else
normal_status ( - 1 , " 位置没有变化 " )
end
end
def destroy
tip_exception ( " 毕设子目录不能删除 " ) if @category . category_type == " graduation "
ActiveRecord :: Base . transaction do
begin
@course_module . course_second_categories . where ( " position > #{ @category . position } " ) . update_all ( " position = position - 1 " )
# 更新相应对象的子目录id
if @course_module . module_type == " shixun_homework "
@category . homework_commons . update_all ( course_second_category_id : 0 )
@right_url = " /courses/ #{ @course . id } /shixun_homeworks/ #{ @course_module . id } "
elsif @course_module . module_type == " attachment "
Attachment . where ( course_second_category_id : @category . id ) . update_all ( course_second_category_id : 0 )
@right_url = " /courses/ #{ @course . id } /files/ #{ @course_module . id } "
end
@category . destroy
rescue Exception = > e
uid_logger_error ( e . message )
tip_exception ( " 删除子目录失败 " )
end
end
end
private
def set_category
@category = CourseSecondCategory . find_by! ( id : params [ :id ] )
@course_module = @category . course_module
@course = @course_module . try ( :course )
end
end