Merge branch 'develop' of 10.0.47.245:/home/trustie2 into develop

This commit is contained in:
fanqiang 2013-08-11 21:27:39 +08:00
commit e5a374cf33
13 changed files with 161 additions and 90 deletions

View File

@ -19,34 +19,51 @@ require 'SVG/Graph/Bar'
require 'SVG/Graph/BarHorizontal'
require 'digest/sha1'
require 'redmine/scm/adapters/abstract_adapter'
require 'tempfile'
class ChangesetNotFound < Exception; end
class InvalidRevisionParam < Exception; end
class RepositoriesController < ApplicationController
layout 'base_projects'
menu_item :repository
menu_item :settings, :only => [:new, :create, :edit, :update, :destroy, :committers]
default_search_scope :changesets
before_filter :find_project_by_project_id, :only => [:new, :create]
before_filter :find_project_by_project_id, :only => [:new, :create, :newrepo]
before_filter :find_repository, :only => [:edit, :update, :destroy, :committers]
before_filter :find_project_repository, :except => [:new, :create, :edit, :update, :destroy, :committers]
before_filter :find_project_repository, :except => [:new, :create, :newcreate, :edit, :update, :destroy, :committers, :newrepo]
before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue]
before_filter :authorize
before_filter :authorize , :except => [:newrepo,:newcreate]
accept_rss_auth :revisions
rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed
def new
scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
@repository = Repository.factory(scm)
@repository.is_default = @project.repository.nil?
@repository.project = @project
end
def newrepo
scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
@repository = Repository.factory(scm)
@repository.is_default = @project.repository.nil?
@repository.project = @project
end
def create
attrs = pickup_extra_info
if(params[:repository]["upassword"])
params[:repository]["password"]=params[:repository]["upassword"]
if(params[:repository_scm]=="Subversion")
params[:repository]["url"]='svn://10.0.47.245/'+params[:repository]["identifier"]
end
if(params[:repository_scm]=="Git")
params[:repository]["url"]=params[:repository]["identifier"]+'@10.0.47.245://'+params[:repository]["identifier"]
end
end
@repository = Repository.factory(params[:repository_scm])
@repository.safe_attributes = params[:repository]
if attrs[:attrs_extra].keys.any?
@ -54,12 +71,29 @@ class RepositoriesController < ApplicationController
end
@repository.project = @project
if request.post? && @repository.save
if(params[:repository]["upassword"]&&params[:repository_scm]=="Git")
system "htpasswd -mb /home/pdl/redmine-2.3.2-0/apache2/trustie2.passwd #{params[:repository]["identifier"]} #{params[:repository]["upassword"]}"
system "git init --bare /home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git"
system "mv /home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git/hooks/post-update{.sample,}"
system "./home/pdl/redmine-2.3.2-0/apache2/htdocs/#{params[:repository]["identifier"]}.git/hooks/post-update"
}
#system "C:/Users/ta/Desktop/modify.bat #{params[:repository]["identifier"]} #{params[:repository]["upassword"]}"
# system("mkdir c:/test/svn123")
# system("git init --bare c:/test/svn123/#{params[:repository]["identifier"]}")
end
if(params[:repository]["upassword"]&&params[:repository_scm]=="Subversion")
system("svnadmin create c:/test/#{@project}/#{params[:repository]["identifier"]}")
end
redirect_to settings_project_path(@project, :tab => 'repositories')
else
render :action => 'new'
else if(params[:repository]["upassword"])
render :action => 'newrepo'
else
render :action => 'new'
end
end
end
def edit
end
@ -370,7 +404,7 @@ class RepositoriesController < ApplicationController
graph = SVG::Graph::Bar.new(
:height => 300,
:width => 650,
:width => 800,
:fields => fields.reverse,
:stack => :side,
:scale_integers => true,
@ -413,7 +447,7 @@ class RepositoriesController < ApplicationController
graph = SVG::Graph::BarHorizontal.new(
:height => 400,
:width => 650,
:width => 800,
:fields => fields,
:stack => :side,
:scale_integers => true,

View File

@ -403,7 +403,8 @@ class UsersController < ApplicationController
def user_watchlist
end
###add by huang
def user_fanslist
def user_fanslist
end
private

View File

@ -17,7 +17,6 @@
class WelcomeController < ApplicationController
caches_action :robots
def index
@news = News.latest User.current

View File

@ -126,7 +126,15 @@ module RepositoriesHelper
send(method, form, repository)
end
end
# by xianbo
def repository_field_tags_new(form, repository)
method = repository.class.name.demodulize.underscore + "_field_tags_new"
if repository.is_a?(Repository) &&
respond_to?(method) && method != 'repository_field_tags_new'
send(method, form, repository)
end
end
def scm_select_tag(repository)
scm_options = [["--- #{l(:actionview_instancetag_blank_option)} ---", '']]
Redmine::Scm::Base.all.each do |scm|
@ -154,37 +162,40 @@ module RepositoriesHelper
:disabled => !repository.safe_attribute?('url')) +
'<br />'.html_safe +
'(file:///, http://, https://, svn://, svn+[tunnelscheme]://)') +
content_tag('p', form.text_field(:login, :size => 30)) +
content_tag('p', form.text_field(:login, :size => 30))+
content_tag('p', form.password_field(
:password, :size => 30, :name => 'ignore',
:value => ((repository.new_record? || repository.password.blank?) ? '' : ('x'*15)),
:onfocus => "this.value=''; this.name='repository[password]';",
:onchange => "this.name='repository[password]';"))
end
# by xianbo
def subversion_field_tags_new(form, repository)
def darcs_field_tags(form, repository)
content_tag('p', form.text_field(
:url, :label => l(:field_path_to_repository),
:size => 60, :required => true,
:disabled => !repository.safe_attribute?('url'))) +
content_tag('p', form.select(
:log_encoding, [nil] + Setting::ENCODINGS,
:label => l(:field_commit_logs_encoding), :required => true))
end
# def darcs_field_tags(form, repository)
# content_tag('p', form.text_field(
# :url, :label => l(:field_path_to_repository),
# :size => 60, :required => true,
# :disabled => !repository.safe_attribute?('url'))) +
# content_tag('p', form.select(
# :log_encoding, [nil] + Setting::ENCODINGS,
# :label => l(:field_commit_logs_encoding), :required => true))
# end
def mercurial_field_tags(form, repository)
content_tag('p', form.text_field(
:url, :label => l(:field_path_to_repository),
:size => 60, :required => true,
:disabled => !repository.safe_attribute?('url')
) +
'<br />'.html_safe + l(:text_mercurial_repository_note)) +
content_tag('p', form.select(
:path_encoding, [nil] + Setting::ENCODINGS,
:label => l(:field_scm_path_encoding)
) +
'<br />'.html_safe + l(:text_scm_path_encoding_note))
end
# def mercurial_field_tags(form, repository)
# content_tag('p', form.text_field(
# :url, :label => l(:field_path_to_repository),
# :size => 60, :required => true,
# :disabled => !repository.safe_attribute?('url')
# ) +
# '<br />'.html_safe + l(:text_mercurial_repository_note)) +
# content_tag('p', form.select(
# :path_encoding, [nil] + Setting::ENCODINGS,
# :label => l(:field_scm_path_encoding)
# ) +
# '<br />'.html_safe + l(:text_scm_path_encoding_note))
# end
def git_field_tags(form, repository)
content_tag('p', form.text_field(
@ -204,37 +215,43 @@ module RepositoriesHelper
:label => l(:label_git_report_last_commit)
))
end
def cvs_field_tags(form, repository)
content_tag('p', form.text_field(
:root_url,
:label => l(:field_cvsroot),
:size => 60, :required => true,
:disabled => !repository.safe_attribute?('root_url'))) +
content_tag('p', form.text_field(
:url,
:label => l(:field_cvs_module),
:size => 30, :required => true,
:disabled => !repository.safe_attribute?('url'))) +
content_tag('p', form.select(
:log_encoding, [nil] + Setting::ENCODINGS,
:label => l(:field_commit_logs_encoding), :required => true)) +
content_tag('p', form.select(
:path_encoding, [nil] + Setting::ENCODINGS,
:label => l(:field_scm_path_encoding)
) +
'<br />'.html_safe + l(:text_scm_path_encoding_note))
# by xianbo
def git_field_tags_new(form, repository)
content_tag('p', form.check_box(
:extra_report_last_commit,
:label => l(:label_git_report_last_commit)
))
end
# def cvs_field_tags(form, repository)
# content_tag('p', form.text_field(
# :root_url,
# :label => l(:field_cvsroot),
# :size => 60, :required => true,
# :disabled => !repository.safe_attribute?('root_url'))) +
# content_tag('p', form.text_field(
# :url,
# :label => l(:field_cvs_module),
# :size => 30, :required => true,
# :disabled => !repository.safe_attribute?('url'))) +
# content_tag('p', form.select(
# :log_encoding, [nil] + Setting::ENCODINGS,
# :label => l(:field_commit_logs_encoding), :required => true)) +
# content_tag('p', form.select(
# :path_encoding, [nil] + Setting::ENCODINGS,
# :label => l(:field_scm_path_encoding)
# ) +
# '<br />'.html_safe + l(:text_scm_path_encoding_note))
# end
def bazaar_field_tags(form, repository)
content_tag('p', form.text_field(
:url, :label => l(:field_path_to_repository),
:size => 60, :required => true,
:disabled => !repository.safe_attribute?('url'))) +
content_tag('p', form.select(
:log_encoding, [nil] + Setting::ENCODINGS,
:label => l(:field_commit_logs_encoding), :required => true))
end
# def bazaar_field_tags(form, repository)
# content_tag('p', form.text_field(
# :url, :label => l(:field_path_to_repository),
# :size => 60, :required => true,
# :disabled => !repository.safe_attribute?('url'))) +
# content_tag('p', form.select(
# :log_encoding, [nil] + Setting::ENCODINGS,
# :label => l(:field_commit_logs_encoding), :required => true))
# end
def filesystem_field_tags(form, repository)
content_tag('p', form.text_field(
@ -276,7 +293,7 @@ module RepositoriesHelper
space ||= index_head(0, commits.first, commits_by_scmid)
return commits_by_scmid, space
end
def index_head(space, commit, commits_by_scmid)
stack = [[space, commits_by_scmid[commit.scmid]]]
max_space = space
@ -295,3 +312,5 @@ module RepositoriesHelper
max_space
end
end

View File

@ -62,9 +62,9 @@
<td class="font_index"><%= @project.issues.count %></td>
<td class="font_index"><%= @project.attachments.count %></td>
<tr>
<td align="center" width="80px"><strong> <%= link_to(l(:label_member), project_member_path(@project), :class => 'project_infor_tag') %></strong></td>
<td align="center" width="80px"><strong> <%= link_to(l(:label_project_defects), project_issues_path(@project), :class => 'project_infor_tag') %></strong></td>
<td align="center" width="80px"><strong> <%= link_to(l(:label_attachment), project_files_path(@project), :class => 'project_infor_tag') %></strong></td>
<td align="center" width="80px"><strong style="font-size:13px"> <%= link_to(l(:label_member), project_member_path(@project), :class => 'project_infor_tag') %></strong></td>
<td align="center" width="80px"><strong style="font-size:13px"> <%= link_to(l(:label_project_defects), project_issues_path(@project), :class => 'project_infor_tag') %></strong></td>
<td align="center" width="80px"><strong style="font-size:13px"> <%= link_to(l(:label_attachment), project_files_path(@project), :class => 'project_infor_tag') %></strong></td>
</tr>
</table>
<div class="user_underline"></div>
@ -75,7 +75,7 @@
<div class="font_title_left">
<%= l(:label_project_overview) %>
</div>
<div class="user_underline2"></div>
<div style="padding-bottom: 8px">
<div class="font_lighter_sidebar">
<%= textilizable @project.description %>
@ -92,24 +92,24 @@
<div class="font_title_left">
<%= l(:label_project_tool)%>
</div>
<div class="user_underline2"></div>
<table class="font_tool">
<tr>
<td align="left" width="60px" valign="center"><img src="/images/sidebar/tool_tag2.png" width="15" height="15"/>
<td align="left" width="60px" valign="center"><%=image_tag("/images/sidebar/tool_tag2.png", weight:"15px", height:"15px") %>
<%= link_to l(:project_module_documents),project_documents_path(@project) %></td>
<td align="left" width="60px" valign="center"><img src="/images/sidebar/tool_tag2.png" width="15" height="15"/>
<td align="left" width="60px" valign="center"><%=image_tag("/images/sidebar/tool_tag2.png", weight:"15px", height:"15px") %>
<%= link_to l(:project_module_wiki),project_wiki_path(@project) %></td>
</tr>
<tr>
<td align="left" width="190px" valign="left"><img src="/images/sidebar/tool_tag2.png" width="15" height="15"/>
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag2.png", weight:"15px", height:"15px") %>
<%= link_to l(:project_module_calendar),project_calendar_path(@project) %>
</td>
<td align="left" width="190px" valign="left"><img src="/images/sidebar/tool_tag2.png" width="15" height="15"/>
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag2.png", weight:"15px", height:"15px") %>
<%= link_to l(:project_module_gantt) ,project_gantt_path(@project) %>
</td>
</tr>
<tr>
<td align="left" width="190px" valign="left"><img src="/images/sidebar/tool_tag2.png" width="15" height="15"/>
<td align="left" width="190px" valign="left"><%=image_tag("/images/sidebar/tool_tag2.png", weight:"15px", height:"15px") %>
<%= link_to l(:project_module_boards) ,project_boards_path(@project) %>
</td>
</tr>

View File

@ -29,11 +29,12 @@
<div class="inf_user_image">
<table>
<tr>
<td align="left" valign="middle" ><%= link_to image_tag(url_to_avatar(@user), :class => 'avatar'), :class => "avatar" %></td>
<td align="left" valign="middle" ><%= link_to image_tag(url_to_avatar(@user), :class => 'avatar2'), :class => "avatar" %></td>
<td>
<table>
<tr>
<td class="info_font" align="center"><%= h @user.name%> <img src="/images/sidebar/male.png" width="11" height="11"/></td>
<td class="info_font" align="center"><%= h @user.name%> <%=image_tag("/images/sidebar/male.png", weight:"11px", height:"11px") %>
</td>
</tr>
<tr>
<td align="center"> <% unless User.current == @user %>
@ -43,12 +44,15 @@
</tr>
</table></td>
</tr>
<tr><td>
<span id="praise_tread" style="float:left;"> <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @user,:show_flag => false,:user_id =>User.current.id}%> </span>
</td></tr>
</table>
<div>
<%= l(:label_user_watcher) %> (<strong class="font_small_watch"><%=link_to User.watched_by(@user.id).count %></strong>) &nbsp;
<%= l(:label_user_watcher) %> (<strong class="font_small_watch"><%=link_to User.watched_by(@user.id).count ,:controller=>"users", :action=>"user_watchlist"%></strong>) &nbsp;
<%= render :partial => "watchers/fans_num",:locals => {:fans_num => get_fans_num(@user) }%>
<span id="praise_tread" style="float:right;"> <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @user,:show_flag => false,:user_id =>User.current.id}%> </span>
</div>
</div>

View File

@ -39,3 +39,8 @@
<% if User.current.allowed_to?(:manage_repository, @project) %>
<p><%= link_to l(:label_repository_new), new_project_repository_path(@project), :class => 'icon icon-add' %></p>
<% end %>
<!-- no repository new by xianbo-->
<% if User.current.allowed_to?(:manage_repository, @project) %>
<p><%= l(:label_repository_no) %>
<%= link_to l(:label_repository_new_repos), newrepo_project_repository_path(@project), :class => 'icon icon-add' %></p>
<% end %>

View File

@ -36,5 +36,7 @@
<%= l(:label_project_un) %>
<% else %><%= l(:label_project_unadd) %><%= link_to"新建",:controller=>'projects',:action=>'new'%>
<% end %>
<% end %>
<%= call_hook :view_account_left_bottom, :user => @user %></div>
<%= call_hook :view_account_left_bottom, :user => @user %>
</div>

View File

@ -1,3 +1,3 @@
<span id="fans_num">
<%= l(:label_user_fans) %>(<strong class="font_small_watch"><%= fans_num %></strong>)
<%= l(:label_user_fans) %>(<strong class="font_small_watch"><%=link_to fans_num %></strong>)
</span>

View File

@ -139,10 +139,10 @@
<!--add by huang-->
<div style="height:200px;">
<div style="height:220px;">
<div class="welcone_left">
<table width="350px">
<tr><td><span class="font_welcome_trustie">Trustieforge</span>
<tr><td><span class="font_welcome_trustie">Trustie</span>
<span class="font_welcome_Cdescription">是一个社交化的项目管理、软件开发和众包平台。</span></td></tr>
<tr><td class="font_welcome_Edescription">Trustieforge is a socialized collaboration platform for project management,
software development and software crowdsourcing.</td></tr>
@ -269,7 +269,7 @@
<td>在这里您可以可以看见任何一个版本的工程!</td>
</tr>
</table>
</div></div>
</div>
<div style="padding-top: 40px">
</div>

View File

@ -1055,7 +1055,9 @@ zh:
zero: 0 问题
one: 1 问题
other: "%{count} 问题"
label_repository_new: 新建版本库
label_repository_new: 配置版本库
label_repository_no: 还没有版本库?
label_repository_new_repos: 新建版本库
field_repository_is_default: 主版本库
label_copy_attachments: 复制附件
label_item_position: "%{position}/%{count}"
@ -1229,4 +1231,4 @@ zh:
label_in_issues: 在问题:
label_in_bids: 在需求:
label_in_users: 在用户:
label_have_respond: 进行了反馈
label_have_respond: 进行了反馈

View File

@ -204,7 +204,12 @@ RedmineApp::Application.routes.draw do
match 'committers', :via => [:get, :post]
end
end
resources :repositories, :except => [:index, :show] do
member do
get 'newrepo', :via => [:get, :post]
# get 'create', :via=>[:get, :post]
end
end
match 'wiki/index', :controller => 'wiki', :action => 'index', :via => :get
resources :wiki, :except => [:index, :new, :create], :as => 'wiki_page' do
member do

View File

@ -63,7 +63,7 @@ ul.tool li{list-style-type:none;
color:#7e7e7e;
}
.content_frame{
padding-top: 0px;
padding-bottom: 30px;
float: left;
}