Added projects. Part 3
This commit is contained in:
30
app.rb
30
app.rb
@@ -211,6 +211,10 @@ post "/recips/:rcp_id" do
|
||||
session[:rcpcreate_error] = @error_data
|
||||
redirect url("/recips/#{rcp_id}")
|
||||
else
|
||||
session[:rcp_old_filepath] = nil
|
||||
session[:rcp_old_description] = nil
|
||||
session[:rcp_old_codedata] = nil
|
||||
session[:rcp_old_gitlst] = nil
|
||||
redirect "/recips"
|
||||
end
|
||||
end
|
||||
@@ -265,6 +269,10 @@ post "/rcpcreate" do
|
||||
session[:rcpcreate_error] = @error_data
|
||||
redirect "/rcpcreate"
|
||||
else
|
||||
session[:rcp_old_filepath] = nil
|
||||
session[:rcp_old_description] = nil
|
||||
session[:rcp_old_codedata] = nil
|
||||
session[:rcp_old_gitlst] = nil
|
||||
redirect "/recips"
|
||||
end
|
||||
end
|
||||
@@ -316,6 +324,28 @@ get "/prjcreate" do
|
||||
erb :prjcrt
|
||||
end
|
||||
|
||||
post "/prjcreate" do
|
||||
session[:prj_old_name] = params["projname"]
|
||||
session[:prj_old_description] = params["description"]
|
||||
session[:prj_old_list] = params["conflist"]
|
||||
if params["projname"].nil? || params["description"].nil? || params["projname"].strip == "" || params["description"].strip == "" || params["conflist"].nil? || params["conflist"].strip == ""
|
||||
session[:rcpcreate_error] = "Имя проекта, описание и окружение сборки не должны быть пустыми"
|
||||
redirect "/prjcreate"
|
||||
else
|
||||
prj = ProjectsActions.new(cfg.get_projects_path, db)
|
||||
result = prj.create_project(params["projname"], params["description"], params["conflist"])
|
||||
if result != 0
|
||||
session[:prjcreate_error] = prj.error
|
||||
redirect "/prjcreate"
|
||||
else
|
||||
session[:prj_old_name] = nil
|
||||
session[:prj_old_description] = nil
|
||||
session[:prj_old_list] = nil
|
||||
redirect "/projs"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
not_found do
|
||||
status 404
|
||||
@page_name = "Кто-то потерялся"
|
||||
|
||||
@@ -121,9 +121,9 @@ class DBase
|
||||
|
||||
def proj_create(proj_name, proj_descr)
|
||||
@error = nil
|
||||
data = Projects.where(projname: project_name).first
|
||||
data = Projects.where(projname: proj_name).first
|
||||
if data.nil?
|
||||
id = Projects.insert(projname: project_name, descr: description, public: 1)
|
||||
id = Projects.insert(projname: proj_name, descr: proj_descr, public: 1)
|
||||
@last_id = id
|
||||
else
|
||||
@error = "Данный проект уже существует"
|
||||
|
||||
@@ -48,22 +48,27 @@ class ProjectsActions
|
||||
@error = "Проект с таким именем уже существует: #{project_name}"
|
||||
ret_val = 1
|
||||
else
|
||||
Dir.mkdir(fname)
|
||||
created = false
|
||||
PROJECTS_STRUCTURE.each_pair do |key, value|
|
||||
new_path = File.join(fname, value)
|
||||
Dir.mkdir(new_path)
|
||||
end
|
||||
if File.exist?(configuration)
|
||||
conf_path = File.join(@path, PROJECTS_STRUCTURE[:CONFIGS], project_name)
|
||||
FileUtils.cp(configuration, conf_path)
|
||||
@error = @db.proj_create(project_name, description)
|
||||
if @error.nil?
|
||||
created = true
|
||||
begin
|
||||
Dir.mkdir(fname)
|
||||
PROJECTS_STRUCTURE.each_pair do |key, value|
|
||||
new_path = File.join(fname, value)
|
||||
Dir.mkdir(new_path)
|
||||
end
|
||||
else
|
||||
if File.exist?(configuration)
|
||||
conf_path = File.join(fname, PROJECTS_STRUCTURE[:CONFIGS], "#{project_name}.cfg")
|
||||
FileUtils.cp(configuration, conf_path)
|
||||
@error = @db.proj_create(project_name, description)
|
||||
if @error.nil?
|
||||
created = true
|
||||
end
|
||||
else
|
||||
ret_val = 1
|
||||
@error = "Конфигурация #{configuration} не существует"
|
||||
end
|
||||
rescue => e
|
||||
ret_val = 1
|
||||
@error = "Конфигурация #{configuration} не существует"
|
||||
@error = e.message
|
||||
end
|
||||
unless created
|
||||
FileUtils.rm_rf(fname, secure: true)
|
||||
|
||||
@@ -14,6 +14,7 @@ Sequel.migration do
|
||||
primary_key :id
|
||||
String :projname
|
||||
String :descr, text: true
|
||||
Integer :public
|
||||
Datetime :create_at, default: Sequel.lit("CURRENT_TIMESTAMP")
|
||||
end
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<script src="/js/jquery.dropdown.min.js"></script>
|
||||
<% unless @error_data.nil? %>
|
||||
<div class="container">
|
||||
<div class="alert alert-warning alert-dismissible fade show" role="alert"><span><%= @error_data %></span><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Закрыть"></button></div>
|
||||
<div class="alert alert-warning alert-dismissible fade show" role="alert"><span><%= @error_data.to_s.force_encoding("UTF-8") %></span><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Закрыть"></button></div>
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="container">
|
||||
|
||||
Reference in New Issue
Block a user