diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index cf6c268..94b0f32 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -29,18 +29,22 @@ class RepositoriesController < ApplicationController # POST /repositories.json def create @project = Project.find(params[:project_id]) - @repository = @project.repositories.create(params[:repository].permit(:name, :type, :address, :configuration_id)) - redirect_to @project + #@repository = @project.repositories.create(params[:repository].permit(:name, :type, :address, :configuration_id)) - #respond_to do |format| - # if @repository.save - # format.html { redirect_to @repository, notice: 'Repository was successfully created.' } - # format.json { render action: 'show', status: :created, location: @repository } - #else - # format.html { render action: 'new' } - #format.json { render json: @repository.errors, status: :unprocessable_entity } - #end - #end + @repository = Repository.new + + @repository.project_id = @project.id + + + respond_to do |format| + if @repository.save + format.html { redirect_to @repository, notice: 'Repository was successfully created.' } + format.json { render action: 'show', status: :created, location: @repository } + else + format.html { render action: 'new' } + format.json { render json: @repository.errors, status: :unprocessable_entity } + end + end end # PATCH/PUT /repositories/1 diff --git a/app/controllers/repositories_controller.rb~ b/app/controllers/repositories_controller.rb~ index fb5b870..54bc2ed 100644 --- a/app/controllers/repositories_controller.rb~ +++ b/app/controllers/repositories_controller.rb~ @@ -5,7 +5,6 @@ class RepositoriesController < ApplicationController # GET /repositories.json def index @project = Project.find(params[:project_id]) - set_repository @repositories = Repository.repositories_of(params[:project_id]) end @@ -23,13 +22,19 @@ class RepositoriesController < ApplicationController # GET /repositories/1/edit def edit + @project = Project.find(params[:project_id]) end # POST /repositories # POST /repositories.json def create @project = Project.find(params[:project_id]) - @repository = @project.repositories.create(params[:repository].permit(:name, :type, :address, :configuration_id)) + #@repository = @project.repositories.create(params[:repository].permit(:name, :type, :address, :configuration_id)) + + @repository = Repository.new + + @repository.project_id = @project.id + redirect_to @project #respond_to do |format| diff --git a/app/models/project.rb b/app/models/project.rb index 1772986..8d2934e 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -6,6 +6,10 @@ class Project < KalibroEntities::Entities::Project attr_accessor :name validates :name, presence: true, kalibro_uniqueness: true + def repositories + KalibroEntities::Entities::Repository.repositories_of(self.id) + end + def self.latest(count = 1) all.sort { |a,b| b.id <=> a.id }.first(count) end diff --git a/app/models/project.rb~ b/app/models/project.rb~ new file mode 100644 index 0000000..eda2ce7 --- /dev/null +++ b/app/models/project.rb~ @@ -0,0 +1,13 @@ +require "validators/kalibro_uniqueness_validator.rb" + +class Project < KalibroEntities::Entities::Project + include KalibroRecord + + attr_accessor :name + validates :name, presence: true, kalibro_uniqueness: true + + + def self.latest(count = 1) + all.sort { |a,b| b.id <=> a.id }.first(count) + end +end diff --git a/app/views/repositories/_form.html.erb b/app/views/repositories/_form.html.erb index 114b8d1..fff06e1 100644 --- a/app/views/repositories/_form.html.erb +++ b/app/views/repositories/_form.html.erb @@ -1,4 +1,7 @@ -<%= form_for(@repository) do |f| %> +<%= form_for(@repository, :url => project_repositories_url(@project.id)) do |f| %> + + <%= render :partial => 'shared/form_errors', :locals => {:object => @repository} %> + <% if @repository.errors.any? %>

<%= pluralize(@repository.errors.count, "error") %> prohibited this repository from being saved:

diff --git a/app/views/repositories/_form.html.erb~ b/app/views/repositories/_form.html.erb~ index da38c73..d701317 100644 --- a/app/views/repositories/_form.html.erb~ +++ b/app/views/repositories/_form.html.erb~ @@ -1,4 +1,5 @@ -<%= form_for(@repository) do |f| %> +<%= form_for(@repository, :url => project_repositories_url(@project.id)) do |f| %> + <% if @repository.errors.any? %>

<%= pluralize(@repository.errors.count, "error") %> prohibited this repository from being saved:

@@ -28,7 +29,7 @@
<%= f.label :configuration %>
- <%= f.text_field :configuration %> + <%= f.text_field :configuration_id %>
<%= f.submit %> -- libgit2 0.21.2