Mercurial > hg > soundsoftware-site
diff app/controllers/sys_controller.rb @ 1338:25603efa57b5
Merge from live branch
author | Chris Cannam |
---|---|
date | Thu, 20 Jun 2013 13:14:14 +0100 |
parents | 9397280c138c |
children | 51364c0cd58f |
line wrap: on
line diff
--- a/app/controllers/sys_controller.rb Wed Jan 23 13:11:25 2013 +0000 +++ b/app/controllers/sys_controller.rb Thu Jun 20 13:14:14 2013 +0100 @@ -1,5 +1,5 @@ # Redmine - project management software -# Copyright (C) 2006-2011 Jean-Philippe Lang +# Copyright (C) 2006-2012 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -19,9 +19,16 @@ before_filter :check_enabled def projects - p = Project.active.has_module(:repository).find(:all, :include => :repository, :order => 'identifier') + p = Project.active.has_module(:repository).find( + :all, + :include => :repository, + :order => "#{Project.table_name}.identifier" + ) # extra_info attribute from repository breaks activeresource client - render :xml => p.to_xml(:only => [:id, :identifier, :name, :is_public, :status], :include => {:repository => {:only => [:id, :url, :is_external, :external_url]}}) + render :xml => p.to_xml( + :only => [:id, :identifier, :name, :is_public, :status], + :include => {:repository => {:only => [:id, :url, :is_external, :external_url]}} + ) end def create_project_repository @@ -30,9 +37,10 @@ render :nothing => true, :status => 409 else logger.info "Repository for #{project.name} was reported to be created by #{request.remote_ip}." - project.repository = Repository.factory(params[:vendor], params[:repository]) - if project.repository && project.repository.save - render :xml => project.repository.to_xml(:only => [:id, :url]), :status => 201 + repository = Repository.factory(params[:vendor], params[:repository]) + repository.project = project + if repository.save + render :xml => {repository.class.name.underscore.gsub('/', '-') => {:id => repository.id, :url => repository.url}}, :status => 201 else render :nothing => true, :status => 422 end @@ -41,14 +49,22 @@ def fetch_changesets projects = [] + scope = Project.active.has_module(:repository) if params[:id] - projects << Project.active.has_module(:repository).find(params[:id]) + project = nil + if params[:id].to_s =~ /^\d*$/ + project = scope.find(params[:id]) + else + project = scope.find_by_identifier(params[:id]) + end + raise ActiveRecord::RecordNotFound unless project + projects << project else - projects = Project.active.has_module(:repository).find(:all, :include => :repository) + projects = scope.all end projects.each do |project| - if project.repository - project.repository.fetch_changesets + project.repositories.each do |repository| + repository.fetch_changesets end end render :nothing => true, :status => 200 @@ -84,11 +100,11 @@ project = Project.find(params[:id]) mods = project.enabled_modules enable = (params[:enable] == "1") - if mods.detect {|m| m.name == "embedded"} + if mods.detect {|m| m.name == "redmine_embedded"} logger.info "Project #{project.name} currently has Embedded enabled" if !enable logger.info "Disabling Embedded" - modnames = mods.all(:select => :name).collect{|m| m.name}.reject{|n| n == "embedded"} + modnames = mods.all(:select => :name).collect{|m| m.name}.reject{|n| n == "redmine_embedded"} project.enabled_module_names = modnames end else @@ -96,7 +112,7 @@ if enable logger.info "Enabling Embedded" modnames = mods.all(:select => :name).collect{|m| m.name} - modnames << "embedded" + modnames << "redmine_embedded" project.enabled_module_names = modnames end end