module Admin::StudentsHelper

  # Provides checkbox to make student searchable/unsearchable
  def admin_student_searchable_link(student)
    if student.active? && student.is_registration_completed?
      if student.searchable?
        link_to unmark_searchable_admin_student_path(student), method: :patch, remote: true, data: {confirm: "Do you want to revoke user - \"#{student.full_name}\" from search?"} do
          check_box_tag 'unsearchable', true, true
        end
      else
        link_to mark_searchable_admin_student_path(student), method: :patch, remote: true, data: {confirm: "Do you want to add user - \"#{student.name}\" in search?"} do
          check_box_tag 'searchable', true, false
        end
      end
    else
      '-'
    end
  end

  # Provides checkbox to activate/deactivate student
  def admin_user_activation_link(user)
    if user.active? && user.is_registration_completed?
      if user.active?
        link_to deactivate_admin_user_path(user), method: :patch, remote: true, data: {confirm: "Do you want to deactivate user - \"#{user.name}\"?"} do
          check_box_tag 'deactivate', true, true
        end
      else
        link_to activate_admin_user_path(user), method: :patch, remote: true, data: {confirm: "Do you want to activate user - \"#{user.name}\"."} do
          check_box_tag 'activate', true, false
        end
      end
    else
      '-'
    end
  end

  # Provides checkbox to student as admin/non-admin
  def admin_user_admin_link(user)
    if user.active? && user.is_registration_completed?
      if user.admin?
        link_to unmark_admin_admin_user_path(user), method: :patch, remote: true, data: {confirm: "Do you want to revoke admin privileges of user - \"#{user.full_name}\"?"} do
          check_box_tag 'unmark_admin', true, true
        end
      else
        link_to mark_admin_admin_user_path(user), method: :patch, remote: true, data: {confirm: "Do you want to add admin privileges for user - \"#{user.full_name}\"?"} do
          check_box_tag 'mark_admin', true, false
        end
      end
    else
      '-'
    end
  end

  # Provides checkbox to student as upgradable/non-upgradable
  def admin_user_can_upgrade_link(user)
    if user.active? && user.is_registration_completed?
      if user.can_upgrade?
        link_to cannot_upgrade_admin_user_path(user), method: :patch, remote: true, data: {confirm: "Do not want to revoke the representative privilage from user - \"#{user.full_name}\"?"} do
          check_box_tag 'cannot_upgrade', true, true
        end
      else
        link_to can_upgrade_admin_user_path(user), method: :patch, remote: true, data: {confirm: "Do you want to allow user - \"#{user.name}\" to become Representative ?"} do
          check_box_tag 'can_upgrade', true, false
        end
      end
    else
      '-'
    end
  end

  # Provides link to resend activation link to custoemr if it was not activated.
  def admin_student_status_link(student)
    if student.active?
      'Yes'
    else
       link = link_to 'Resend Activation!', resend_activation_admin_student_path(student), remote: true
      ('No - ' + link).html_safe
    end
  end

end
