Sha256: e3cfd05d9edac15c97c291b110d52a1fd9a732b657ee10a0c92566f9d76b305b

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

# frozen_string_literal: true

require 'sinatra'
require 'mvcStudentXD'

set :port, 8000

puts MvcStudentXD.constants

students_model = MvcStudentXD::StudentListAdv.new(
  MvcStudentXD::StudentsListDBAdapter.new(
    MvcStudentXD::StudentListDB.instance))

main_controller = StudentListController.new(students_model)
main_controller.on_view_created = lambda { }
main_controller.on_add_student_clicked = lambda { }
main_controller.on_edit_student_clicked = lambda { |id| }

main_controller.selected_page = 0

editing_id = nil

get "/" do
  send_file 'web/main.html'
end

post "/students" do
  main_controller.refresh_data()
  result = main_controller.data_list.map { |student|
    student.as_json
  }

  result.to_json
end

post "/next_page" do
  main_controller.next_page()
  main_controller.refresh_data()
end

post "/last_page" do
  main_controller.last_page()
  main_controller.update_table()
end

get "/get_page" do
  (main_controller.selected_page + 1).to_s
end

get "/get_pages_count" do
  main_controller.pages_count.to_s
end

post "/set_editing_id:id" do
  puts params[:id]
  editing_id = params[:id]
end

get "/get_editing_id" do
  editing_id.to_s
end

post "/delete:id" do
  main_controller.remove_student(params[:id])
end

post "/editing:id" do
  student = main_controller.get_student(params[:id])
  [student.as_json].to_json
end

get "/add" do
  if editing_id == 'null'
    main_controller.show_modal_add
  else
    main_controller.show_modal_edit(editing_id)
  end
  send_file 'web/add.html'
end

get "/edit:student" do
  student = Student.from_json(JSON.parse(params[:student]))
  main_controller.replace_student(student.id, student)
end

get "/insert:student" do
  student = Student.from_json(JSON.parse(params[:student]))
  main_controller.add_student(student)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mvcStudentXD-1.2.1 Lab2/Web/main.rb