Added delete of items.Part 1
This commit is contained in:
252
app.rb
252
app.rb
@@ -721,12 +721,14 @@ post "/prjaddrepo/:id" do
|
|||||||
else
|
else
|
||||||
if params["disableLinks"].nil?
|
if params["disableLinks"].nil?
|
||||||
list_id = params["prjlst"]
|
list_id = params["prjlst"]
|
||||||
|
unless list_id.nil?
|
||||||
current_list = prj.get_related_projects_list(params["id"])
|
current_list = prj.get_related_projects_list(params["id"])
|
||||||
current_list_id = current_list.map { |item| item[:proj_id_repository] }
|
current_list_id = current_list.map { |item| item[:proj_id_repository] }
|
||||||
new_ids = list_id - current_list_id
|
new_ids = list_id - current_list_id
|
||||||
removed_ids = current_list_id - list_id
|
removed_ids = current_list_id - list_id
|
||||||
prj.save_linked_projects(params["id"], new_ids, removed_ids)
|
prj.save_linked_projects(params["id"], new_ids, removed_ids)
|
||||||
prj.regenerate_linked_repos(params["id"])
|
prj.regenerate_linked_repos(params["id"])
|
||||||
|
end
|
||||||
redirect "/prjedit/#{params["id"]}"
|
redirect "/prjedit/#{params["id"]}"
|
||||||
else
|
else
|
||||||
prj.delete_linked_projects(params["id"])
|
prj.delete_linked_projects(params["id"])
|
||||||
@@ -800,11 +802,7 @@ get "/buildinforaw/:build_id" do
|
|||||||
info = db.get_build_task_process_log(build_id)
|
info = db.get_build_task_process_log(build_id)
|
||||||
unless info.nil?
|
unless info.nil?
|
||||||
if File.exist?(info[:errlogpath])
|
if File.exist?(info[:errlogpath])
|
||||||
output = ""
|
send_file info[:errlogpath]
|
||||||
File.readlines(info[:errlogpath]).each do |line|
|
|
||||||
output << line
|
|
||||||
end
|
|
||||||
output
|
|
||||||
else
|
else
|
||||||
"Файла для чтения сборки уже не существует #{info[:errlogpath]}"
|
"Файла для чтения сборки уже не существует #{info[:errlogpath]}"
|
||||||
end
|
end
|
||||||
@@ -943,6 +941,250 @@ get "/buildinfof/:build_id" do
|
|||||||
end
|
end
|
||||||
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
|
not_found do
|
||||||
status 404
|
status 404
|
||||||
@page_name = "Кто-то потерялся"
|
@page_name = "Кто-то потерялся"
|
||||||
|
|||||||
@@ -326,4 +326,21 @@ class DBase
|
|||||||
def get_rpms()
|
def get_rpms()
|
||||||
Rpms.order(:id).all
|
Rpms.order(:id).all
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_builds_for_project(prj_id)
|
||||||
|
$DDB["select t1.id as buildid, t1.create_at as createat, t1.result as state, t2.reponame as reponame, t2.id as gitid, t3.id as projid, t3.projname as prjname, count(*) as pkgcnt from buildtask as t1 join repos as t2 on t1.repo_id = t2.id join projects as t3 on t1.proj_id = t3.id join build_rpm as t4 on t4.build_id = t1.id where t1.proj_id = ? group by buildid, createat, state, reponame, projid, prjname, gitid order by t1.id", prj_id.to_i].all
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_builds_for_project_git(prj_id, git_id)
|
||||||
|
$DDB["select t1.id as buildid, t1.create_at as createat, t1.result as state, t2.reponame as reponame, t2.id as gitid, t3.id as projid, t3.projname as prjname, count(*) as pkgcnt from buildtask as t1 join repos as t2 on t1.repo_id = t2.id join projects as t3 on t1.proj_id = t3.id join build_rpm as t4 on t4.build_id = t1.id where t1.proj_id = ? and t1.repo_id = ? group by buildid, createat, state, reponame, projid, prjname, gitid order by t1.id", prj_id.to_i, git_id.to_i].all
|
||||||
|
end
|
||||||
|
|
||||||
|
def get_builds_for_project_git_rpm(prj_id, git_id)
|
||||||
|
$DDB["select t3.savepath, t3.signpath, t3.sign from buildtask as t1 join build_rpm as t2 on t2.build_id = t1.id join rpms as t3 on t3.id = t2.rpm_id where t1.proj_id = ? and t1.repo_id = ?", prj_id.to_i, git_id.to_i].all
|
||||||
|
end
|
||||||
|
|
||||||
|
def delete_git_from_project(prj_id, git_id)
|
||||||
|
ReposProjects.where(proj_id: prj_id.to_i, repo_id: git_id.to_i).delete
|
||||||
|
ProjectsReposSpec.where(proj_id: prj_id.to_i, repo_id: git_id.to_i).delete
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -211,12 +211,12 @@ class MockManager
|
|||||||
FileUtils.cp_r(item[:src], item[:dst], verbose: true, remove_destination: true)
|
FileUtils.cp_r(item[:src], item[:dst], verbose: true, remove_destination: true)
|
||||||
@db.save_rpm(@build_id, item[:dst], item[:name], @git_id)
|
@db.save_rpm(@build_id, item[:dst], item[:name], @git_id)
|
||||||
@log.info("Копируется пакет #{item[:src]} в репозиторий #{item[:dst]}")
|
@log.info("Копируется пакет #{item[:src]} в репозиторий #{item[:dst]}")
|
||||||
end
|
|
||||||
repo.create_repo
|
repo.create_repo
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def save_prg_log()
|
def save_prg_log()
|
||||||
FileUtils.mkdir_p(File.join(@resultpath, "#{@build_id}"))
|
FileUtils.mkdir_p(File.join(@resultpath, "#{@build_id}"))
|
||||||
|
|||||||
@@ -65,6 +65,11 @@ class ProjectsActions
|
|||||||
fname
|
fname
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_project_repo(id)
|
||||||
|
proj_path = get_project_path(id)
|
||||||
|
File.join(proj_path, PROJECTS_STRUCTURE[:REPO])
|
||||||
|
end
|
||||||
|
|
||||||
def get_project_path_git(id, gitname)
|
def get_project_path_git(id, gitname)
|
||||||
proj_path = get_project_path(id)
|
proj_path = get_project_path(id)
|
||||||
File.join(proj_path, PROJECTS_STRUCTURE[:SRC], gitname)
|
File.join(proj_path, PROJECTS_STRUCTURE[:SRC], gitname)
|
||||||
@@ -314,4 +319,25 @@ class ProjectsActions
|
|||||||
end
|
end
|
||||||
bld_id
|
bld_id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def delete_git_from_project(prj_id, git_id)
|
||||||
|
@error = nil
|
||||||
|
builds_lst = db.get_builds_for_project_git(prj_id, git_id)
|
||||||
|
active_build = false
|
||||||
|
builds_lst.each do |item|
|
||||||
|
if item[:state] == 0
|
||||||
|
active_build = true
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if active_build
|
||||||
|
@error = "Нельзя удалить git репозиторий с незавершенными сборками"
|
||||||
|
else
|
||||||
|
git_name = @db.get_repo_info_by_id(git_id)
|
||||||
|
git_source = File.join(proj_path, PROJECTS_STRUCTURE[:SRC], git_name[:reponame])
|
||||||
|
FileUtils.rm_rf(git_source, secure: true)
|
||||||
|
@db.delete_git_from_project(prj_id, git_id)
|
||||||
|
end
|
||||||
|
@error
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-8">
|
<div class="col-8">
|
||||||
<div class="hstack gap-3">
|
<div class="hstack gap-3">
|
||||||
<div class="p-2">Содержимое отчета <%= @file_disp %> <a href="/buildinfofraw/?file=<%= ERB::Util.url_encode(@file_disp_raw) %>"><i class="bi bi-filetype-raw"></i></a></div>
|
<div class="p-2">Содержимое отчета <%= @file_disp %> <a href="/buildinfofraw?file=<%= ERB::Util.url_encode(@file_disp_raw) %>"><i class="bi bi-filetype-raw"></i></a></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="border rounded-3 p-2 overflow-x-scroll">
|
<div class="border rounded-3 p-2 overflow-x-scroll">
|
||||||
<% @file_content.each do |item| %>
|
<% @file_content.each do |item| %>
|
||||||
|
|||||||
18
views/deletegitprj.erb
Normal file
18
views/deletegitprj.erb
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
<%= erb :header %>
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="text-center">Удаление git проекта <%= @git_name %> из <%= @proj_name %></h2>
|
||||||
|
<form action="/prjdgit/<%= ERB::Util.url_encode(@proj_id) %>/<%= ERB::Util.url_encode(@git_id) %>" method="post">
|
||||||
|
<div class="form-check form-switch text-center pb-3">
|
||||||
|
<input class="form-check-input" type="checkbox" role="switch" id="isdelete" name="isdelete">
|
||||||
|
<label class="form-check-label" for="isdelete">
|
||||||
|
Вы уверены, что хотите удалить данный git репозиторий?<br />
|
||||||
|
Все rpm пакеты собранные из данного репозитория будут удалены
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="mb-3 text-center">
|
||||||
|
<button type="submit" class="btn btn-primary" name="cancel" value="cancel">Отменить</button>
|
||||||
|
<button type="submit" class="btn btn-danger" name="delete" value="delete">Удалить</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<%= erb :footer %>
|
||||||
64
views/prjbuildslist.erb
Normal file
64
views/prjbuildslist.erb
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<%= erb :header %>
|
||||||
|
<div class="container">
|
||||||
|
<h2><a href="/prjedit/<%= ERB::Util.url_encode(@prj[:id]) %>"><%= @prj[:projname] %></a></h2>
|
||||||
|
<table class="table table-striped table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">Номер сборки</th>
|
||||||
|
<th scope="col" class="text-center">Проект</th>
|
||||||
|
<th scope="col" class="text-center">git репозиторий</th>
|
||||||
|
<th scope="col" class="text-center">Дата сборки</th>
|
||||||
|
<th scope="col" class="text-center">Число собранных пакетов</th>
|
||||||
|
<th scope="col" class="text-center">Состояние</th>
|
||||||
|
<th scope="col" class="text-center">Перейти к сборке</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @builds_list.each do |item| %>
|
||||||
|
<%
|
||||||
|
case item[:state]
|
||||||
|
when 0
|
||||||
|
st = "Идет сборка"
|
||||||
|
cl = "text-bg-secondary"
|
||||||
|
when 1
|
||||||
|
st = "Ошибка сборки"
|
||||||
|
cl = "text-bg-danger"
|
||||||
|
when 2
|
||||||
|
st = "Сборка успешно завершена"
|
||||||
|
cl = "text-bg-success"
|
||||||
|
else
|
||||||
|
st = "Неизвестно"
|
||||||
|
cl = "text-bg-light"
|
||||||
|
end
|
||||||
|
%>
|
||||||
|
<tr>
|
||||||
|
<td scope="row"><%= item[:buildid] %></td>
|
||||||
|
<td class="text-center"><a href="/prjedit/<%= ERB::Util.url_encode(item[:projid]) %>"><%= item[:prjname] %></a></td>
|
||||||
|
<td class="text-center"><a href="/prjgitf/<%= ERB::Util.url_encode(item[:projid]) %>/<%= ERB::Util.url_encode(item[:gitid]) %>"><%= item[:reponame] %></a></td>
|
||||||
|
<td class="text-center"><%= item[:createat] %></td>
|
||||||
|
<td class="text-center"><%= item[:pkgcnt] %></td>
|
||||||
|
<td class="text-center <%= cl %>">
|
||||||
|
<%= st %>
|
||||||
|
</td>
|
||||||
|
<td class="text-center"><a href="/buildinfof/<%= ERB::Util.url_encode(item[:buildid]) %>">Детальнее</a></td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<nav aria-label="Навигация по доступным сборкам">
|
||||||
|
<ul class="pagination pagination-sm justify-content-center">
|
||||||
|
<% @max_pages.times.each do |item| %>
|
||||||
|
<% if (item+1) == @page %>
|
||||||
|
<li class="page-item active" aria-current="page">
|
||||||
|
<span class="page-link"><%= item+1 %></span>
|
||||||
|
</li>
|
||||||
|
<% else %>
|
||||||
|
<li class="page-item"><a class="page-link" href="/gitpackages/<%= ERB::Util.url_encode(@git_id) %>/?p=<%= item+1 %>"><%= item+1 %></a></li>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
<%= erb :footer %>
|
||||||
64
views/prjbuildslistgit.erb
Normal file
64
views/prjbuildslistgit.erb
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
<%= erb :header %>
|
||||||
|
<div class="container">
|
||||||
|
<h3>Проект <a href="/prjedit/<%= ERB::Util.url_encode(@prj[:id]) %>"><%= @prj[:projname] %></a> для git репозитория <%= @git_data[:reponame] %> </h3>
|
||||||
|
<table class="table table-striped table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">Номер сборки</th>
|
||||||
|
<th scope="col" class="text-center">Проект</th>
|
||||||
|
<th scope="col" class="text-center">git репозиторий</th>
|
||||||
|
<th scope="col" class="text-center">Дата сборки</th>
|
||||||
|
<th scope="col" class="text-center">Число собранных пакетов</th>
|
||||||
|
<th scope="col" class="text-center">Состояние</th>
|
||||||
|
<th scope="col" class="text-center">Перейти к сборке</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<% @builds_list.each do |item| %>
|
||||||
|
<%
|
||||||
|
case item[:state]
|
||||||
|
when 0
|
||||||
|
st = "Идет сборка"
|
||||||
|
cl = "text-bg-secondary"
|
||||||
|
when 1
|
||||||
|
st = "Ошибка сборки"
|
||||||
|
cl = "text-bg-danger"
|
||||||
|
when 2
|
||||||
|
st = "Сборка успешно завершена"
|
||||||
|
cl = "text-bg-success"
|
||||||
|
else
|
||||||
|
st = "Неизвестно"
|
||||||
|
cl = "text-bg-light"
|
||||||
|
end
|
||||||
|
%>
|
||||||
|
<tr>
|
||||||
|
<td scope="row"><%= item[:buildid] %></td>
|
||||||
|
<td class="text-center"><a href="/prjedit/<%= ERB::Util.url_encode(item[:projid]) %>"><%= item[:prjname] %></a></td>
|
||||||
|
<td class="text-center"><a href="/prjgitf/<%= ERB::Util.url_encode(item[:projid]) %>/<%= ERB::Util.url_encode(item[:gitid]) %>"><%= item[:reponame] %></a></td>
|
||||||
|
<td class="text-center"><%= item[:createat] %></td>
|
||||||
|
<td class="text-center"><%= item[:pkgcnt] %></td>
|
||||||
|
<td class="text-center <%= cl %>">
|
||||||
|
<%= st %>
|
||||||
|
</td>
|
||||||
|
<td class="text-center"><a href="/buildinfof/<%= ERB::Util.url_encode(item[:buildid]) %>">Детальнее</a></td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<nav aria-label="Навигация по доступным сборкам">
|
||||||
|
<ul class="pagination pagination-sm justify-content-center">
|
||||||
|
<% @max_pages.times.each do |item| %>
|
||||||
|
<% if (item+1) == @page %>
|
||||||
|
<li class="page-item active" aria-current="page">
|
||||||
|
<span class="page-link"><%= item+1 %></span>
|
||||||
|
</li>
|
||||||
|
<% else %>
|
||||||
|
<li class="page-item"><a class="page-link" href="/gitpackages/<%= ERB::Util.url_encode(@git_id) %>/?p=<%= item+1 %>"><%= item+1 %></a></li>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
<%= erb :footer %>
|
||||||
36
views/repoinfo.erb
Normal file
36
views/repoinfo.erb
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<%= erb :header %>
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-4">
|
||||||
|
<h3 class="bg-secondary-subtle text-center border-bottom border-primary-subtle rounded-1 pb-1 mb-2">
|
||||||
|
<a href="/prjedit/<%= ERB::Util.url_encode(@proj_info[:id]) %>"><%= @proj_info[:projname] %></a>
|
||||||
|
</h3>
|
||||||
|
<div class="list-group">
|
||||||
|
<% @files_list.each do |item| %>
|
||||||
|
<% if item[:isdir] %>
|
||||||
|
<% if item[:file] == ".." %>
|
||||||
|
<a href="/prjrpm/<%= ERB::Util.url_encode(@proj_info[:id]) %>?p=<%= ERB::Util.url_encode(item[:fname]) %>" class="list-group-item list-group-item-action list-group-item-success"><%= item[:file] %></a>
|
||||||
|
<% else %>
|
||||||
|
<a href="/prjrpm/<%= ERB::Util.url_encode(@proj_info[:id]) %>?p=<%= ERB::Util.url_encode(item[:file]) %>" class="list-group-item list-group-item-action list-group-item-success"><%= item[:file] %></a>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<a href="/prjrpm/<%= ERB::Util.url_encode(@proj_info[:id]) %>?p=<%= ERB::Util.url_encode(item[:file]) %>" class="list-group-item list-group-item-action list-group-item-light"><%= item[:file] %></a>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<div class="mb-2 p-2 bg-success-subtle rounded-2 text-sm-start"><%= @file_name %>
|
||||||
|
<% unless @raw.nil? %>
|
||||||
|
<a href="/buildinfofraw?file=<%= ERB::Util.url_encode(@raw) %>"><i class="bi bi-filetype-raw"></i></a>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<% @file_content.each do |data| %>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12"><%= data %></div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%= erb :footer %>
|
||||||
Reference in New Issue
Block a user