Receipt create. Part 2
This commit is contained in:
122
app.rb
122
app.rb
@@ -14,6 +14,7 @@ require_relative "classes/config"
|
||||
require_relative "classes/gitinfo"
|
||||
require_relative "classes/db"
|
||||
require_relative "classes/systeminfo"
|
||||
require_relative "classes/utilities"
|
||||
|
||||
def print_error_page(error_status, error_meaasge)
|
||||
@page_name = "Ошибка выполнения"
|
||||
@@ -22,14 +23,6 @@ def print_error_page(error_status, error_meaasge)
|
||||
halt erb(:page5xx)
|
||||
end
|
||||
|
||||
def sanitize_filename(filename)
|
||||
filename = filename.strip
|
||||
sanitized = filename.gsub(/[^a-zA-Z0-9_]/, "_")
|
||||
sanitized.gsub!(/_+/, "_")
|
||||
sanitized.gsub!(/^_+|_+$/, "")
|
||||
sanitized
|
||||
end
|
||||
|
||||
cfg = IniConfig.new()
|
||||
db = DBase.new()
|
||||
|
||||
@@ -155,11 +148,118 @@ get "/recips" do
|
||||
erb :receips
|
||||
end
|
||||
|
||||
get "/recips/:rcp_id" do
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
@repo_data = repo.getrepos
|
||||
@rcp_id = params["rcp_id"]
|
||||
info = db.get_rcp_info_by_id(@rcp_id)
|
||||
@page_name = info[:filepath]
|
||||
@rcp_name = info[:filepath]
|
||||
if session[:rcp_old_description].nil?
|
||||
@old_filepath = info[:filepath]
|
||||
else
|
||||
@old_filepath = session[:rcp_old_filepath]
|
||||
end
|
||||
if session[:rcp_old_description].nil?
|
||||
@old_description = info[:descr]
|
||||
else
|
||||
@old_description = session[:rcp_old_description]
|
||||
end
|
||||
if session[:rcp_old_codedata].nil?
|
||||
@old_codedata = info[:content]
|
||||
else
|
||||
@old_codedata = session[:rcp_old_codedata]
|
||||
end
|
||||
if session[:rcp_old_gitlst].nil?
|
||||
@old_gitlst = info[:repos_list]
|
||||
else
|
||||
@old_gitlst = session[:rcp_old_gitlst]
|
||||
end
|
||||
@error_data = session[:rcpcreate_error]
|
||||
session[:rcpcreate_error] = nil
|
||||
session[:rcp_old_filepath] = nil
|
||||
session[:rcp_old_description] = nil
|
||||
session[:rcp_old_codedata] = nil
|
||||
session[:rcp_old_gitlst] = nil
|
||||
erb :rcpedit
|
||||
end
|
||||
end
|
||||
|
||||
post "/recips/:rcp_id" do
|
||||
rcp_id = params["rcp_id"]
|
||||
session[:rcp_old_filepath] = params["filepath"]
|
||||
session[:rcp_old_description] = params["description"]
|
||||
session[:rcp_old_codedata] = params["codedata"]
|
||||
session[:rcp_old_gitlst] = params["gitlst"]
|
||||
if params["filepath"].nil? || params["description"].nil? || params["filepath"].strip == "" || params["description"].strip == ""
|
||||
session[:rcpcreate_error] = "Имя рецепта и описание не должны быть пустыми"
|
||||
redirect url("/recips/#{rcp_id}")
|
||||
else
|
||||
@error_data = db.updaterecip(rcp_id, params["filepath"], params["description"], params["codedata"], params["gitlst"])
|
||||
unless @error_data.nil?
|
||||
session[:rcpcreate_error] = @error_data
|
||||
redirect url("/recips/#{rcp_id}")
|
||||
else
|
||||
redirect "/recips"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
post "/rcpdelete/:rcp_id" do
|
||||
input_name = params["rcpnamedup"]
|
||||
rcp_id = params["rcp_id"]
|
||||
info = db.get_rcp_info_by_id(rcp_id)
|
||||
if info.nil?
|
||||
print_error_page(404, "Рецепта не существует")
|
||||
else
|
||||
if info[:filepath] == input_name
|
||||
db.delete_rcp(rcp_id)
|
||||
end
|
||||
redirect "/recips"
|
||||
end
|
||||
end
|
||||
|
||||
post "/rcpdelete" do
|
||||
redirect "/recips"
|
||||
end
|
||||
|
||||
get "/rcpcreate" do
|
||||
@page_name = "Создать новый рецепт"
|
||||
@error_data = session[:rcpcreate_error]
|
||||
session[:gitcreate_error] = nil
|
||||
erb :rcpcrt
|
||||
@old_filepath = session[:rcp_old_filepath]
|
||||
@old_description = session[:rcp_old_description]
|
||||
@old_codedata = session[:rcp_old_codedata]
|
||||
@old_gitlst = session[:rcp_old_gitlst]
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
@repo_data = repo.getrepos
|
||||
@error_data = session[:rcpcreate_error]
|
||||
session[:rcpcreate_error] = nil
|
||||
erb :rcpcrt
|
||||
end
|
||||
end
|
||||
|
||||
post "/rcpcreate" do
|
||||
session[:rcp_old_filepath] = params["filepath"]
|
||||
session[:rcp_old_description] = params["description"]
|
||||
session[:rcp_old_codedata] = params["codedata"]
|
||||
session[:rcp_old_gitlst] = params["gitlst"]
|
||||
if params["filepath"].nil? || params["description"].nil? || params["filepath"].strip == "" || params["description"].strip == ""
|
||||
session[:rcpcreate_error] = "Имя рецепта и описание не должны быть пустыми"
|
||||
redirect "/rcpcreate"
|
||||
else
|
||||
@error_data = db.createrecip(params["filepath"], params["description"], params["codedata"], params["gitlst"])
|
||||
unless @error_data.nil?
|
||||
session[:rcpcreate_error] = @error_data
|
||||
redirect "/rcpcreate"
|
||||
else
|
||||
redirect "/recips"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
not_found do
|
||||
|
||||
Reference in New Issue
Block a user