class EcsController < ApplicationController
  before_filter :require_login
  before_filter :find_school, :except => [:get_navigation_url]
  before_filter :school_manager, :except => [:department, :get_navigation_url]
  layout 'base_ec'

  def department
    @template_major = EcMajorSchool.where(:template_major => true).first
    @school_managers = @school.users
    @is_school_manager = User.current.admin? || @school.users.where(:id => User.current.id).count > 0  # 学校管理员

    @major_schools = @school.ec_major_schools.where(:template_major => false)
    unless @is_school_manager
      ec_major_school_ids = EcMajorSchoolUser.where(:user_id => User.current.id).pluck(:ec_major_school_id)
      ec_course_major_ids = EcYear.where(:id => EcCourse.where(:id => EcCourseUser.where(:user_id => User.current.id).pluck(:ec_course_id)).pluck(:ec_year_id)).pluck(:ec_major_school_id)
      @major_schools = @major_schools.where(:id => (ec_major_school_ids + ec_course_major_ids).uniq)
    end

    @major_count = @major_schools.count

    if @major_count == 0
      render_403
    else
      if params[:search].present?
        major_ids = EcMajor.where("name like '%#{params[:search]}%' or code like '%#{params[:search]}%'").pluck(:id)
        @major_schools = @major_schools.where(:ec_major_id => major_ids)
      end

      @obj_count = @major_schools.count
      @limit = 10
      @is_remote = true
      @obj_pages = Paginator.new @obj_count, @limit, params['page'] || 1
      @offset ||= @obj_pages.offset
      @major_schools = paginateHelper @major_schools, @limit
      respond_to do |format|
        format.js
        format.html
      end
    end
  end

  # 搜索专业
  def search_major
    @major_ids = @school.ec_majors.pluck(:id)
    # 去除已经添加的专业
    @majors = EcMajor.where("(concat(name, code) like '%#{params[:search]}%')").limit(10)
  end

  # 添加专业
  def add_major
    major_ids = params[:major_ids]
    major_ids.each do |id|
      EcMajorSchool.create(ec_major_id: id, school_id: params[:school_id])
    end
    render :json => {status: 1}
  end

  # 获取工程认证头部url
  # GET: /ecs/get_navigation_url
  def get_navigation_url
    ec_user = EcSchoolUser.where(:user_id => User.current.id).first
    ec_url = "#{department_ecs_path(:school_id => ec_user.school_id)}" if ec_user
    render :json => {ec_url: ec_url}
  end


  private
  def find_school
    @school = School.find(params[:school_id])
  end

  def school_manager
    unless User.current.admin? || @school.users.where(:id => User.current.id).count > 0
      render_403
    end
  end
end