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
|
session[:rcpcreate_error] = @error_data
|
||||||
redirect url("/recips/#{rcp_id}")
|
redirect url("/recips/#{rcp_id}")
|
||||||
else
|
else
|
||||||
|
session[:rcp_old_filepath] = nil
|
||||||
|
session[:rcp_old_description] = nil
|
||||||
|
session[:rcp_old_codedata] = nil
|
||||||
|
session[:rcp_old_gitlst] = nil
|
||||||
redirect "/recips"
|
redirect "/recips"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -265,6 +269,10 @@ post "/rcpcreate" do
|
|||||||
session[:rcpcreate_error] = @error_data
|
session[:rcpcreate_error] = @error_data
|
||||||
redirect "/rcpcreate"
|
redirect "/rcpcreate"
|
||||||
else
|
else
|
||||||
|
session[:rcp_old_filepath] = nil
|
||||||
|
session[:rcp_old_description] = nil
|
||||||
|
session[:rcp_old_codedata] = nil
|
||||||
|
session[:rcp_old_gitlst] = nil
|
||||||
redirect "/recips"
|
redirect "/recips"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -316,6 +324,28 @@ get "/prjcreate" do
|
|||||||
erb :prjcrt
|
erb :prjcrt
|
||||||
end
|
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
|
not_found do
|
||||||
status 404
|
status 404
|
||||||
@page_name = "Кто-то потерялся"
|
@page_name = "Кто-то потерялся"
|
||||||
|
|||||||
@@ -121,9 +121,9 @@ class DBase
|
|||||||
|
|
||||||
def proj_create(proj_name, proj_descr)
|
def proj_create(proj_name, proj_descr)
|
||||||
@error = nil
|
@error = nil
|
||||||
data = Projects.where(projname: project_name).first
|
data = Projects.where(projname: proj_name).first
|
||||||
if data.nil?
|
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
|
@last_id = id
|
||||||
else
|
else
|
||||||
@error = "Данный проект уже существует"
|
@error = "Данный проект уже существует"
|
||||||
|
|||||||
@@ -48,22 +48,27 @@ class ProjectsActions
|
|||||||
@error = "Проект с таким именем уже существует: #{project_name}"
|
@error = "Проект с таким именем уже существует: #{project_name}"
|
||||||
ret_val = 1
|
ret_val = 1
|
||||||
else
|
else
|
||||||
Dir.mkdir(fname)
|
|
||||||
created = false
|
created = false
|
||||||
PROJECTS_STRUCTURE.each_pair do |key, value|
|
begin
|
||||||
new_path = File.join(fname, value)
|
Dir.mkdir(fname)
|
||||||
Dir.mkdir(new_path)
|
PROJECTS_STRUCTURE.each_pair do |key, value|
|
||||||
end
|
new_path = File.join(fname, value)
|
||||||
if File.exist?(configuration)
|
Dir.mkdir(new_path)
|
||||||
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
|
|
||||||
end
|
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
|
ret_val = 1
|
||||||
@error = "Конфигурация #{configuration} не существует"
|
@error = e.message
|
||||||
end
|
end
|
||||||
unless created
|
unless created
|
||||||
FileUtils.rm_rf(fname, secure: true)
|
FileUtils.rm_rf(fname, secure: true)
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ Sequel.migration do
|
|||||||
primary_key :id
|
primary_key :id
|
||||||
String :projname
|
String :projname
|
||||||
String :descr, text: true
|
String :descr, text: true
|
||||||
|
Integer :public
|
||||||
Datetime :create_at, default: Sequel.lit("CURRENT_TIMESTAMP")
|
Datetime :create_at, default: Sequel.lit("CURRENT_TIMESTAMP")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<script src="/js/jquery.dropdown.min.js"></script>
|
<script src="/js/jquery.dropdown.min.js"></script>
|
||||||
<% unless @error_data.nil? %>
|
<% unless @error_data.nil? %>
|
||||||
<div class="container">
|
<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>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
|||||||
Reference in New Issue
Block a user