Class: PublisherListController
- Inherits:
-
Object
- Object
- PublisherListController
- Defined in:
- lib/publisher/controllers/publisher_list_controller.rb
Instance Attribute Summary collapse
-
#state_notifier ⇒ Object
readonly
Returns the value of attribute state_notifier.
Instance Method Summary collapse
- #delete_selected(current_page, per_page, selected_row) ⇒ Object
- #filter_email(page, per_page, filter_index) ⇒ Object
-
#initialize(view) ⇒ PublisherListController
constructor
A new instance of PublisherListController.
- #on_view_created ⇒ Object
- #refresh_data(page, per_page) ⇒ Object
- #show_modal_add ⇒ Object
- #show_modal_edit(current_page, per_page, selected_row) ⇒ Object
- #show_view ⇒ Object
- #sort(page, per_page, sort_index) ⇒ Object
Constructor Details
#initialize(view) ⇒ PublisherListController
Returns a new instance of PublisherListController.
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 13 def initialize(view) @view = view @state_notifier = ListStateNotifier.new @state_notifier.add_listener(@view) @publisher_rep = PublisherDBDataSource.new @sort_columns = %w[PublisherID Name Email] @sort_by = @sort_columns.first @email_filter_columns = [nil, true, false] @email_filter = @email_filter_columns.first end |
Instance Attribute Details
#state_notifier ⇒ Object (readonly)
Returns the value of attribute state_notifier.
12 13 14 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 12 def state_notifier @state_notifier end |
Instance Method Details
#delete_selected(current_page, per_page, selected_row) ⇒ Object
58 59 60 61 62 63 64 65 66 67 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 58 def delete_selected(current_page, per_page, selected_row) begin item = @state_notifier.get(selected_row) @publisher_rep.delete(item.publisher_id) @state_notifier.delete(item) rescue api = Win32API.new('user32', 'MessageBox', ['L', 'P', 'P', 'L'], 'I') api.call(0, "You cannot delete the author because he is associated with some book", "Error", 0) end end |
#filter_email(page, per_page, filter_index) ⇒ Object
86 87 88 89 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 86 def filter_email(page, per_page, filter_index) @email_filter = @email_filter_columns[filter_index] refresh_data(page, per_page) end |
#on_view_created ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 28 def on_view_created # begin # @student_rep = StudentRepository.new(DBSourceAdapter.new) # rescue Mysql2::Error::ConnectionError # on_db_conn_error # end end |
#refresh_data(page, per_page) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 69 def refresh_data(page, per_page) # begin # @data_list = @student_rep.paginated_short_students(page, per_page, @data_list) # @view.update_student_count(@student_rep.student_count) # rescue # on_db_conn_error # end items = @publisher_rep.get_list(per_page, page, @sort_by, 'ASC', @email_filter) @state_notifier.set_all(items) @view.update_student_count(@publisher_rep.count) end |
#show_modal_add ⇒ Object
40 41 42 43 44 45 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 40 def show_modal_add controller = PublisherInputFormControllerCreate.new(self) view = PublisherInputForm.new(controller) controller.set_view(view) view.create.show end |
#show_modal_edit(current_page, per_page, selected_row) ⇒ Object
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 47 def show_modal_edit(current_page, per_page, selected_row) # item_num = (current_page - 1) * per_page + selected_row item = @state_notifier.get(selected_row) controller = PublisherInputFormControllerEdit.new(self, item) view = PublisherInputForm.new(controller) controller.set_view(view) view.create.show end |
#show_view ⇒ Object
36 37 38 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 36 def show_view @view.create.show end |
#sort(page, per_page, sort_index) ⇒ Object
81 82 83 84 |
# File 'lib/publisher/controllers/publisher_list_controller.rb', line 81 def sort(page, per_page, sort_index) @sort_by = @sort_columns[sort_index] refresh_data(page, per_page) end |