Added delete of items.Part 1
This commit is contained in:
264
app.rb
264
app.rb
@@ -721,12 +721,14 @@ post "/prjaddrepo/:id" do
|
||||
else
|
||||
if params["disableLinks"].nil?
|
||||
list_id = params["prjlst"]
|
||||
current_list = prj.get_related_projects_list(params["id"])
|
||||
current_list_id = current_list.map { |item| item[:proj_id_repository] }
|
||||
new_ids = list_id - current_list_id
|
||||
removed_ids = current_list_id - list_id
|
||||
prj.save_linked_projects(params["id"], new_ids, removed_ids)
|
||||
prj.regenerate_linked_repos(params["id"])
|
||||
unless list_id.nil?
|
||||
current_list = prj.get_related_projects_list(params["id"])
|
||||
current_list_id = current_list.map { |item| item[:proj_id_repository] }
|
||||
new_ids = list_id - current_list_id
|
||||
removed_ids = current_list_id - list_id
|
||||
prj.save_linked_projects(params["id"], new_ids, removed_ids)
|
||||
prj.regenerate_linked_repos(params["id"])
|
||||
end
|
||||
redirect "/prjedit/#{params["id"]}"
|
||||
else
|
||||
prj.delete_linked_projects(params["id"])
|
||||
@@ -800,11 +802,7 @@ get "/buildinforaw/:build_id" do
|
||||
info = db.get_build_task_process_log(build_id)
|
||||
unless info.nil?
|
||||
if File.exist?(info[:errlogpath])
|
||||
output = ""
|
||||
File.readlines(info[:errlogpath]).each do |line|
|
||||
output << line
|
||||
end
|
||||
output
|
||||
send_file info[:errlogpath]
|
||||
else
|
||||
"Файла для чтения сборки уже не существует #{info[:errlogpath]}"
|
||||
end
|
||||
@@ -943,6 +941,250 @@ get "/buildinfof/:build_id" do
|
||||
end
|
||||
end
|
||||
|
||||
get "/buildinfofraw" do
|
||||
if params["file"].nil? || !File.exist?(params["file"])
|
||||
print_error_page(503, "Файл не найден")
|
||||
else
|
||||
if !File.binary?(params["file"]) && params["file"].start_with?(File.join(Dir.pwd(), cfg.get_projects_path))
|
||||
send_file params["file"]
|
||||
else
|
||||
print_error_page(503, "Файл не может быть скачан")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
get "/prjbuilds/: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"])
|
||||
@prj = prj_info
|
||||
@page_name = "Список всех сборок для проекта #{prj_info[:projname]}"
|
||||
builds_lst = db.get_builds_for_project(params["id"])
|
||||
if params["p"].nil?
|
||||
@page = 1
|
||||
else
|
||||
@page = params["p"].to_i
|
||||
if @page < 1
|
||||
@page = 1
|
||||
else
|
||||
@page = @page + 1
|
||||
end
|
||||
end
|
||||
if builds_lst.nil?
|
||||
builds_lst = []
|
||||
end
|
||||
items_per_page = cfg.get_items_per_page
|
||||
@builds_list = builds_lst[(@page - 1) * items_per_page, items_per_page]
|
||||
@max_pages = builds_lst.length / items_per_page
|
||||
if (@max_pages * items_per_page) != builds_lst.length
|
||||
@max_pages = @max_pages + 1
|
||||
end
|
||||
erb :prjbuildslist
|
||||
end
|
||||
end
|
||||
|
||||
get "/prjrpm/:id" do
|
||||
@raw = nil
|
||||
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 params["p"].nil?
|
||||
filepath = ""
|
||||
else
|
||||
filepath = params["p"]
|
||||
end
|
||||
proj_path = prj.get_project_repo(params["id"])
|
||||
f_path = File.join(proj_path, filepath)
|
||||
if File.exist?(f_path)
|
||||
if File.directory?(f_path)
|
||||
@file_content = []
|
||||
@files_list = Dir[File.join(f_path, "*")].reject do |item|
|
||||
item =~ /repodata$/
|
||||
end.map do |item|
|
||||
if File.directory?(item)
|
||||
{ :file => item.delete_prefix(proj_path + "/"), :isdir => true }
|
||||
else
|
||||
{ :file => item.delete_prefix(proj_path + "/"), :isdir => false }
|
||||
end
|
||||
end
|
||||
else
|
||||
if File.binary?(f_path)
|
||||
if f_path =~ /\.rpm$/
|
||||
rpm_rd = RPMReader.new
|
||||
rpm_info = rpm_rd.get_rpm_info(f_path)
|
||||
if rpm_info[:error].nil?
|
||||
@raw = f_path
|
||||
rpm_info = rpm_info[:pkginfo]
|
||||
@file_content = []
|
||||
@file_content << "Имя пакета: #{rpm_info.name}"
|
||||
@file_content << "Версия пакета: #{rpm_info.version}"
|
||||
@file_content << ""
|
||||
@file_content << "Changelog:"
|
||||
rpm_info.changelog.first(10).each do |entry|
|
||||
@file_content << "#{entry.time} #{entry.name}"
|
||||
@file_content << "#{entry.text}"
|
||||
@file_content << "---------------"
|
||||
end
|
||||
@file_content << "---------------"
|
||||
@file_content << "Файлы:"
|
||||
rpm_info.files.each do |file|
|
||||
@file_content << "#{file.path} (#{file.size})"
|
||||
end
|
||||
@file_content << "---------------"
|
||||
@file_content << "Зависимости:"
|
||||
rpm_info.provides.each do |item|
|
||||
@file_content << "Provides: #{item.name}"
|
||||
end
|
||||
rpm_info.requires.each do |item|
|
||||
@file_content << "Requires: #{item.name}"
|
||||
end
|
||||
rpm_info.obsoletes.each do |item|
|
||||
@file_content << "Obsoletes: #{item.name}"
|
||||
end
|
||||
rpm_info.conflicts.each do |item|
|
||||
@file_content << "Conflicts: #{item.name}"
|
||||
end
|
||||
else
|
||||
@file_content = ["Двоичный файл"]
|
||||
end
|
||||
else
|
||||
@file_content = ["Двоичный файл"]
|
||||
end
|
||||
else
|
||||
@file_content = File.readlines(f_path)
|
||||
end
|
||||
@files_list = Dir[File.join(File.dirname(f_path), "*")].map do |item|
|
||||
if File.directory?(item)
|
||||
{ :file => item.delete_prefix(proj_path + "/"), :isdir => true }
|
||||
else
|
||||
{ :file => item.delete_prefix(proj_path + "/"), :isdir => false }
|
||||
end
|
||||
end
|
||||
end
|
||||
if filepath != ""
|
||||
if File.dirname(f_path) == proj_path
|
||||
fn = ""
|
||||
else
|
||||
if File.directory?(f_path)
|
||||
fn = File.dirname(f_path).delete_prefix(proj_path + "/")
|
||||
else
|
||||
f_path = File.dirname(f_path)
|
||||
if File.dirname(f_path) == proj_path
|
||||
fn = ""
|
||||
else
|
||||
fn = File.dirname(f_path).delete_prefix(proj_path + "/")
|
||||
end
|
||||
end
|
||||
end
|
||||
@files_list = [{ :file => "..", :isdir => true, :fname => fn }] + @files_list
|
||||
end
|
||||
@page_name = "Список пакетов для репозитория #{prj_info[:projname]}"
|
||||
@proj_info = prj_info
|
||||
@file_name = filepath
|
||||
erb :repoinfo
|
||||
else
|
||||
print_error_page(503, "Файл не существует")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
get "/prjdgit/:id/:git_id" do
|
||||
prj = ProjectsActions.new(cfg.get_projects_path, db)
|
||||
if prj.path.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
prj_info = prj.get_project(params["id"])
|
||||
if prj_info.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
git_info = repo.get_repo_short_info_by_id(params["git_id"].to_i)
|
||||
@page_name = "Удалить репозиторий #{git_info[:reponame]} из проекта #{prj_info[:projname]} "
|
||||
@proj_name = prj_info[:projname]
|
||||
@git_name = git_info[:reponame]
|
||||
@proj_id = params["id"]
|
||||
@git_id = params["git_id"]
|
||||
|
||||
erb :deletegitprj
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
post "/prjdgit/:id/:git_id" do
|
||||
prj = ProjectsActions.new(cfg.get_projects_path, db)
|
||||
if prj.path.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
prj_info = prj.get_project(params["id"])
|
||||
if prj_info.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
git_info = repo.get_repo_short_info_by_id(params["git_id"].to_i)
|
||||
if params["cancel"].nil? && params["delete"] == "delete" && !params["isdelete"].nil?
|
||||
err = prj.delete_git_from_project(params["id"], params["git_id"])
|
||||
unless err.nil?
|
||||
session[:prj_modal_info] = "Ошибка удаления git репозитория из проекта"
|
||||
session[:prj_modal_text] = err
|
||||
end
|
||||
end
|
||||
|
||||
redirect "/prjedit/#{params["id"]}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
get "/prjgitbld/:id/:git_id" do
|
||||
prj = ProjectsActions.new(cfg.get_projects_path, db)
|
||||
if prj.path.nil?
|
||||
print_error_page(503, "Путь к проектам не существует")
|
||||
else
|
||||
repo = GitRepo.new(cfg.get_repo, db)
|
||||
if repo.path.nil?
|
||||
print_error_page(503, "Путь к репозиториям не существует")
|
||||
else
|
||||
prj_info = prj.get_project(params["id"])
|
||||
git_info = repo.get_repo_short_info_by_id(params["git_id"].to_i)
|
||||
@git_data = git_info
|
||||
@prj = prj_info
|
||||
@page_name = "Список всех сборок для проекта #{prj_info[:projname]} и репозитория #{git_info[:reponame]}"
|
||||
builds_lst = db.get_builds_for_project_git(params["id"], params["git_id"])
|
||||
if params["p"].nil?
|
||||
@page = 1
|
||||
else
|
||||
@page = params["p"].to_i
|
||||
if @page < 1
|
||||
@page = 1
|
||||
else
|
||||
@page = @page + 1
|
||||
end
|
||||
end
|
||||
if builds_lst.nil?
|
||||
builds_lst = []
|
||||
end
|
||||
items_per_page = cfg.get_items_per_page
|
||||
@builds_list = builds_lst[(@page - 1) * items_per_page, items_per_page]
|
||||
@max_pages = builds_lst.length / items_per_page
|
||||
if (@max_pages * items_per_page) != builds_lst.length
|
||||
@max_pages = @max_pages + 1
|
||||
end
|
||||
erb :prjbuildslistgit
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
not_found do
|
||||
status 404
|
||||
@page_name = "Кто-то потерялся"
|
||||
|
||||
Reference in New Issue
Block a user