#631: added #edit #update actions to platforms/repositories_controller, wrote migration, updated models
This commit is contained in:
parent
ec32cf7fa0
commit
f0f11cb9dc
|
@ -1,3 +1,4 @@
|
||||||
|
*~
|
||||||
.bundle
|
.bundle
|
||||||
.rvmrc
|
.rvmrc
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
|
@ -14,6 +14,23 @@ class Platforms::RepositoriesController < Platforms::BaseController
|
||||||
@projects = @projects.search(params[:query]).search_order if params[:query].present?
|
@projects = @projects.search(params[:query]).search_order if params[:query].present?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
if @repository.update_attributes(
|
||||||
|
:description => params[:repository][:description],
|
||||||
|
:publish_wtihout_qa => (params[:repository][:publish_wtihout_qa] || @repository.publish_wtihout_qa)
|
||||||
|
)
|
||||||
|
flash[:notice] = I18n.t("flash.repository.updated")
|
||||||
|
redirect_to platform_repository_path(@platform, @repository)
|
||||||
|
else
|
||||||
|
flash[:error] = I18n.t("flash.repository.update_error")
|
||||||
|
flash[:warning] = @repository.errors.full_messages.join('. ')
|
||||||
|
render :action => :edit
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@repository = Repository.new
|
@repository = Repository.new
|
||||||
@platform_id = params[:platform_id]
|
@platform_id = params[:platform_id]
|
||||||
|
|
|
@ -49,7 +49,7 @@ class Projects::BuildListsController < Projects::BaseController
|
||||||
@repository = @project.repositories.where(:id => @platform.repository_ids).first
|
@repository = @project.repositories.where(:id => @platform.repository_ids).first
|
||||||
|
|
||||||
params[:build_list][:save_to_repository_id] = @repository.id
|
params[:build_list][:save_to_repository_id] = @repository.id
|
||||||
params[:build_list][:auto_publish] = false if @platform.released
|
params[:build_list][:auto_publish] = false if @platform.released && !@repository.publish_wtihout_qa
|
||||||
|
|
||||||
Arch.where(:id => params[:arches]).each do |arch|
|
Arch.where(:id => params[:arches]).each do |arch|
|
||||||
Platform.main.where(:id => params[:build_for_platforms]).each do |build_for_platform|
|
Platform.main.where(:id => params[:build_for_platforms]).each do |build_for_platform|
|
||||||
|
|
|
@ -93,9 +93,9 @@ class Ability
|
||||||
can [:read, :projects_list], Repository, :platform => {:owner_type => 'User', :owner_id => user.id}
|
can [:read, :projects_list], Repository, :platform => {:owner_type => 'User', :owner_id => user.id}
|
||||||
can [:read, :projects_list], Repository, :platform => {:owner_type => 'Group', :owner_id => user.group_ids}
|
can [:read, :projects_list], Repository, :platform => {:owner_type => 'Group', :owner_id => user.group_ids}
|
||||||
can([:read, :projects_list], Repository, read_relations_for('repositories', 'platforms')) {|repository| local_reader? repository.platform}
|
can([:read, :projects_list], Repository, read_relations_for('repositories', 'platforms')) {|repository| local_reader? repository.platform}
|
||||||
can([:create, :update, :projects_list, :add_project, :remove_project], Repository) {|repository| local_admin? repository.platform}
|
can([:create, :edit, :update, :projects_list, :add_project, :remove_project], Repository) {|repository| local_admin? repository.platform}
|
||||||
can(:clear, Platform) {|platform| local_admin?(platform) && platform.personal?}
|
can(:clear, Platform) {|platform| local_admin?(platform) && platform.personal?}
|
||||||
can([:change_visibility, :settings, :destroy], Repository) {|repository| owner? repository.platform}
|
can([:change_visibility, :settings, :destroy, :edit, :update], Repository) {|repository| owner? repository.platform}
|
||||||
|
|
||||||
can([:create, :destroy], KeyPair) {|key_pair| owner?(key_pair.repository.platform) || local_admin?(key_pair.repository.platform)}
|
can([:create, :destroy], KeyPair) {|key_pair| owner?(key_pair.repository.platform) || local_admin?(key_pair.repository.platform)}
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ class Ability
|
||||||
|
|
||||||
# Shared cannot rights for all users (registered, admin)
|
# Shared cannot rights for all users (registered, admin)
|
||||||
cannot :destroy, Platform, :platform_type => 'personal'
|
cannot :destroy, Platform, :platform_type => 'personal'
|
||||||
cannot [:create, :destroy, :add_project, :remove_project], Repository, :platform => {:platform_type => 'personal'}
|
cannot [:create, :destroy, :edit, :update, :add_project, :remove_project], Repository, :platform => {:platform_type => 'personal'}
|
||||||
cannot :clear, Platform, :platform_type => 'main'
|
cannot :clear, Platform, :platform_type => 'main'
|
||||||
cannot :destroy, Issue
|
cannot :destroy, Issue
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ class Repository < ActiveRecord::Base
|
||||||
before_create :xml_rpc_create, :unless => lambda {Thread.current[:skip]}
|
before_create :xml_rpc_create, :unless => lambda {Thread.current[:skip]}
|
||||||
before_destroy :xml_rpc_destroy, :unless => lambda {Thread.current[:skip]}
|
before_destroy :xml_rpc_destroy, :unless => lambda {Thread.current[:skip]}
|
||||||
|
|
||||||
attr_accessible :name, :description
|
attr_accessible :name, :description, :publish_wtihout_qa
|
||||||
attr_readonly :name, :platform_id
|
attr_readonly :name, :platform_id
|
||||||
|
|
||||||
def base_clone(attrs = {})
|
def base_clone(attrs = {})
|
||||||
|
|
|
@ -1,9 +1,13 @@
|
||||||
|
- unless ['edit', 'update'].include? controller.action_name
|
||||||
.leftlist= f.label :name, t("activerecord.attributes.repository.name"), :class => :label
|
.leftlist= f.label :name, t("activerecord.attributes.repository.name"), :class => :label
|
||||||
.rightlist= f.text_field :name, :class => 'text_field'
|
.rightlist= f.text_field :name, :class => 'text_field'
|
||||||
|
|
||||||
.leftlist= f.label :description, t("activerecord.attributes.repository.description"), :class => :label
|
.leftlist= f.label :description, t("activerecord.attributes.repository.description"), :class => :label
|
||||||
.rightlist= f.text_field :description, :class => 'text_field'
|
.rightlist= f.text_field :description, :class => 'text_field'
|
||||||
|
|
||||||
|
.leftlist= f.label :publish_wtihout_qa, t("activerecord.attributes.repository.publish_wtihout_qa"), :class => :label
|
||||||
|
.rightlist= f.check_box :publish_wtihout_qa, :class => 'check_box'
|
||||||
|
|
||||||
.both
|
.both
|
||||||
|
|
||||||
.button_block
|
.button_block
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
-set_meta_tags :title => title_object(@repository)
|
||||||
|
= render 'submenu'
|
||||||
|
= render 'sidebar'
|
||||||
|
|
||||||
|
%h3.fix= "#{t("layout.repositories.about")}: #{@repository.name}"
|
||||||
|
|
||||||
|
= form_for @repository, :url => platform_repository_path(@platform, @repository), :html => { :class => :form } do |f|
|
||||||
|
= render "form", :f => f
|
|
@ -2,7 +2,12 @@
|
||||||
= render 'submenu'
|
= render 'submenu'
|
||||||
= render 'sidebar'
|
= render 'sidebar'
|
||||||
|
|
||||||
%h3.fix= "#{t("layout.repositories.about")}: #{@repository.name}"
|
%h3.fix
|
||||||
|
= "#{t("layout.repositories.about")}: "
|
||||||
|
- if can? :edit, @repository
|
||||||
|
= link_to @repository.name, edit_platform_repository_path(@platform, @repository)
|
||||||
|
- else
|
||||||
|
= @repository.name
|
||||||
|
|
||||||
%p= @repository.description
|
%p= @repository.description
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,9 @@ en:
|
||||||
flash:
|
flash:
|
||||||
repository:
|
repository:
|
||||||
saved: Repository added
|
saved: Repository added
|
||||||
|
updated: Repository updated
|
||||||
save_error: Unable to add repository
|
save_error: Unable to add repository
|
||||||
|
update_error: Unable to update repository
|
||||||
destroyed: Repository deleted
|
destroyed: Repository deleted
|
||||||
project_added: Project added to repository
|
project_added: Project added to repository
|
||||||
project_not_added: Project adding error. A project with such name already exists in this repository. Remove the old project first
|
project_not_added: Project adding error. A project with such name already exists in this repository. Remove the old project first
|
||||||
|
@ -44,6 +46,7 @@ en:
|
||||||
repository:
|
repository:
|
||||||
name: Name
|
name: Name
|
||||||
description: Description
|
description: Description
|
||||||
|
publish_wtihout_qa: Publication after release
|
||||||
platform_id: Platform
|
platform_id: Platform
|
||||||
platform: Platform
|
platform: Platform
|
||||||
created_at: Created
|
created_at: Created
|
||||||
|
|
|
@ -29,7 +29,9 @@ ru:
|
||||||
flash:
|
flash:
|
||||||
repository:
|
repository:
|
||||||
saved: Репозиторий успешно добавлен
|
saved: Репозиторий успешно добавлен
|
||||||
|
updated: Репозиторий успешно обновлен
|
||||||
save_error: Не удалось добавить репозиторий
|
save_error: Не удалось добавить репозиторий
|
||||||
|
update_error: Не удалось обновить репозиторий
|
||||||
destroyed: Репозиторий успешно удален
|
destroyed: Репозиторий успешно удален
|
||||||
project_added: Проект добавлен к репозиторию
|
project_added: Проект добавлен к репозиторию
|
||||||
project_not_added: Не удалось добавить проект. В этом репозитории уже есть проект с таким именем. Сначала нужно удалить старый проект
|
project_not_added: Не удалось добавить проект. В этом репозитории уже есть проект с таким именем. Сначала нужно удалить старый проект
|
||||||
|
@ -44,6 +46,7 @@ ru:
|
||||||
repository:
|
repository:
|
||||||
name: Название
|
name: Название
|
||||||
description: Описание
|
description: Описание
|
||||||
|
publish_wtihout_qa: Публикация после релиза
|
||||||
platform_id: Платформа
|
platform_id: Платформа
|
||||||
platform: Платформа
|
platform: Платформа
|
||||||
created_at: Создан
|
created_at: Создан
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddPublishWtihoutQaToRepositories < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_column :repositories, :publish_wtihout_qa, :boolean, :default => false
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue