Class: TabStudentsController

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

Instance Method Summary collapse

Constructor Details

#initialize(view) ⇒ TabStudentsController

Returns a new instance of TabStudentsController.



14
15
16
17
18
19
20
# File 'lib/source/controllers/tab_students_controller.rb', line 14

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

Instance Method Details

#delete_selected(current_page, per_page, selected_row) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/source/controllers/tab_students_controller.rb', line 50

def delete_selected(current_page, per_page, selected_row)
  begin
    LoggerHolder.instance.debug('TabStudentsController: 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_rep.remove_student(student_id)
  rescue Mysql2::Error::ConnectionError => e
    on_db_conn_error(e)
  end
end

#on_view_createdObject



22
23
24
25
26
27
28
29
# File 'lib/source/controllers/tab_students_controller.rb', line 22

def on_view_created
  begin
    @student_rep = StudentRepository.new(DBSourceAdapter.new)
    LoggerHolder.instance.debug('TabStudentsController: created student repository')
  rescue Mysql2::Error::ConnectionError => e
     on_db_conn_error(e)
  end
end

#refresh_data(page, per_page) ⇒ Object



62
63
64
65
66
67
68
69
70
# File 'lib/source/controllers/tab_students_controller.rb', line 62

def refresh_data(page, per_page)
  begin
    LoggerHolder.instance.debug('TabStudentsController: refreshing data...')
    @data_list = @student_rep.paginated_short_students(page, per_page, @data_list)
    @view.update_student_count(@student_rep.student_count)
  rescue Mysql2::Error::ConnectionError => e
    on_db_conn_error(e)
  end
end

#show_modal_addObject



31
32
33
34
35
36
37
# File 'lib/source/controllers/tab_students_controller.rb', line 31

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

#show_modal_edit(current_page, per_page, selected_row) ⇒ Object



39
40
41
42
43
44
45
46
47
48
# File 'lib/source/controllers/tab_students_controller.rb', line 39

def show_modal_edit(current_page, per_page, selected_row)
  LoggerHolder.instance.debug('TabStudentsController: 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 = StudentInputFormControllerEdit.new(self, student_id)
  view = StudentInputForm.new(controller)
  controller.set_view(view)
  view.create.show
end