Added work with snapshots. Part 2

This commit is contained in:
Alexey Berezhok
2025-12-25 15:10:24 +03:00
parent 5dd481a81c
commit 40f8a546f5
5 changed files with 108 additions and 3 deletions

77
app.rb
View File

@@ -1590,9 +1590,16 @@ get "/prjshot/:id" do
filepath = ""
proj_path = prj.get_project_repo(params["id"])
f_path = File.join(proj_path, filepath)
@rpms_list = []
if File.exist?(f_path)
@snap_list = prj.get_snap_list(prj_info[:id])
@rpms_list = [ "Снимок не выбран" ]
unless params["snap"].nil?
snap_shot = prj.get_project_snap(@proj_id, params["snap"])
if File.exist?(snap_shot)
@rpms_list = get_rpms_list(snap_shot)
end
end
@rpms_list = [ "Снимок не выбран" ] if @rpms_list.length == 0
erb :prjshot1
else
print_error_page(503, "Репозиторий не существует")
@@ -1705,6 +1712,74 @@ post "/prjsnap_delete/:id" do
end
end
get "/prjsnap_restore/: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 :prjsnap_restore
else
print_error_page(503, "Снимок не существует")
end
end
end
end
post "/prjsnap_restore/: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["restore"] == "restore" && !params["yes"].nil?
prj.restore_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