Added snapshot

This commit is contained in:
Alexey Berezhok
2025-12-24 23:01:50 +03:00
parent bacea404e2
commit 8b4410eee7
6 changed files with 254 additions and 0 deletions

128
app.rb
View File

@@ -1577,6 +1577,134 @@ get "/prjsignview/:id/*" do
end
end
get "/prjshot/:id" do
prj = ProjectsActions.new(cfg.get_projects_path, db)
if prj.path.nil?
print_error_page(503, "Путь к проектам не существует")
else
prj_info = prj.get_project(params["id"])
@page_name = prj_info[:projname]
@proj_name = prj_info[:projname]
@proj_descr = prj_info[:descr]
@proj_id = prj_info[:id]
filepath = ""
proj_path = prj.get_project_repo(params["id"])
f_path = File.join(proj_path, filepath)
if File.exist?(f_path)
@snap_list = prj.get_snap_list(prj_info[:id])
@rpms_list = [ "Снимок не выбран" ]
erb :prjshot1
else
print_error_page(503, "Репозиторий не существует")
end
end
end
get "/prjsnap_add/:id" do
prj = ProjectsActions.new(cfg.get_projects_path, db)
if prj.path.nil?
print_error_page(503, "Путь к проектам не существует")
else
prj_info = prj.get_project(params["id"])
@page_name = prj_info[:projname]
@proj_name = prj_info[:projname]
@proj_descr = prj_info[:descr]
@proj_id = prj_info[:id]
filepath = ""
proj_path = prj.get_project_repo(params["id"])
f_path = File.join(proj_path, filepath)
if File.exist?(f_path)
erb :prjshot_add
else
print_error_page(503, "Репозиторий не существует")
end
end
end
post "/prjsnap_add/:id" do
prj = ProjectsActions.new(cfg.get_projects_path, db)
if prj.path.nil?
print_error_page(503, "Путь к проектам не существует")
else
prj_info = prj.get_project(params["id"])
if prj_info.nil?
print_error_page(503, "Путь к проектам не существует")
else
if params["cancel"].nil? && params["create"] == "create" && !params["yes"].nil?
prj.create_snapshot(prj_info[:id])
end
redirect "/prjshot/#{params["id"]}"
end
end
end
get "/prjsnap_delete/:id" do
prj = ProjectsActions.new(cfg.get_projects_path, db)
if prj.path.nil?
print_error_page(503, "Путь к проектам не существует")
else
prj_info = prj.get_project(params["id"])
@page_name = prj_info[:projname]
@proj_name = prj_info[:projname]
@proj_descr = prj_info[:descr]
@proj_id = prj_info[:id]
@snap_name = params["snap"]
if @snap_name.nil?
print_error_page(503, "Не указано имя снимка")
else
filepath = ""
proj_path = prj.get_project_snap(params["id"], params["snap"])
f_path = File.join(proj_path, filepath)
if File.exist?(f_path)
erb :prjshot_delete
else
print_error_page(503, "Снимок не существует")
end
end
end
end
post "/prjsnap_delete/:id" do
prj = ProjectsActions.new(cfg.get_projects_path, db)
if prj.path.nil?
print_error_page(503, "Путь к проектам не существует")
else
prj_info = prj.get_project(params["id"])
@page_name = prj_info[:projname]
@proj_name = prj_info[:projname]
@proj_descr = prj_info[:descr]
@proj_id = prj_info[:id]
@snap_name = params["snap"]
if @snap_name.nil?
print_error_page(503, "Не указано имя снимка")
else
filepath = ""
proj_path = prj.get_project_snap(params["id"], params["snap"])
f_path = File.join(proj_path, filepath)
if File.exist?(f_path)
if params["cancel"].nil? && params["delete"] == "delete" && !params["yes"].nil?
prj.delete_snapshot(prj_info[:id], @snap_name)
end
redirect "/prjshot/#{params["id"]}"
else
print_error_page(503, "Снимок не существует")
end
end
end
prj = ProjectsActions.new(cfg.get_projects_path, db)
if prj.path.nil?
print_error_page(503, "Путь к проектам не существует")
else
prj_info = prj.get_project(params["id"])
if prj_info.nil?
print_error_page(503, "Путь к проектам не существует")
else
end
end
end
get "/sanitize" do
#Подчистим гит проекты, которые есть в базе, но нет в файловой системе
all_gits = db.get_gits