Class: StudentListController

Inherits:
Object
  • Object
show all
Defined in:
lib/source/student_list_controller.rb

Instance Method Summary collapse

Constructor Details

#initialize(view) ⇒ StudentListController

Returns a new instance of StudentListController.



16
17
18
19
20
21
22
# File 'lib/source/student_list_controller.rb', line 16

def initialize(view)
  LoggerHolder.instance.debug('StudentListController: init start')
  @view = view
  @data_list = DataListStudentShort.new
  @data_list.add_listener(@view)
  LoggerHolder.instance.debug('StudentListController: init done')
end

Instance Method Details

#delete_selected(current_page, per_page, selected_row) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/source/student_list_controller.rb', line 33

def delete_selected(current_page, per_page, selected_row)
  begin
    LoggerHolder.instance.debug('StudentListController: deleting selected student')
    student_num = (current_page - 1) * per_page + selected_row
    @data_list.select_element(student_num)
    student_id = @data_list.selected_id
    @student_list.remove_student(student_id)
  rescue => e
    on_db_conn_error(e)
  end
end

#on_view_createdObject



24
25
26
27
28
29
30
31
# File 'lib/source/student_list_controller.rb', line 24

def on_view_created
  begin
    @student_list = StudentListAdv.new(StudentsListDBAdapter.new(StudentListDB.instance))
    LoggerHolder.instance.debug('StudentListController: created student repository')
  rescue Mysql2::Error::ConnectionError=>e
    on_db_conn_error(e)
  end
end

#refresh_data(page, per_page) ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/source/student_list_controller.rb', line 64

def refresh_data(page, per_page)
  begin
    @data_list = @student_list.get_students_pag(page, per_page, @data_list)
    @view.update_student_count(@student_list.count)
  rescue => e
    on_db_conn_error(e)
  end
end

#show_modal_addObject



45
46
47
48
49
50
51
# File 'lib/source/student_list_controller.rb', line 45

def show_modal_add
  LoggerHolder.instance.debug('StudentListController: showing modal (add)')
  controller = StudentInputFormController.new(self)
  view = StudentInputForm.new(controller)
  controller.set_view(view)
  view.create.show
end

#show_modal_edit(current_page, per_page, selected_row) ⇒ Object



53
54
55
56
57
58
59
60
61
62
# File 'lib/source/student_list_controller.rb', line 53

def show_modal_edit(current_page, per_page, selected_row)
  LoggerHolder.instance.debug('StudentListController: showing modal (edit)')
  student_num = (current_page - 1) * per_page + selected_row
  @data_list.select_element(student_num)
  student_id = @data_list.selected_id
  controller = StudentEditFormController.new(self, student_id)
  view = StudentInputForm.new(controller)
  controller.set_view(view)
  view.create.show
end