diff --git a/app/views/issues/_action_menu.html.erb b/app/views/issues/_action_menu.html.erb index 94f1c6556..ff498f100 100644 --- a/app/views/issues/_action_menu.html.erb +++ b/app/views/issues/_action_menu.html.erb @@ -4,5 +4,5 @@ <%= link_to l(:button_delete), issue_path(@issue.id), :data => {:confirm => issues_destroy_confirmation_message(@issue)}, :method => :delete, :class => 'talk_edit fr' if User.current.allowed_to?(:delete_issues, @project) %> - <%= link_to l(:button_edit), edit_issue_path(@issue), :onclick => 'showAndScrollTo("all_attributes", "issue_notes"); return false;', :class => 'talk_edit fr', :accesskey => accesskey(:edit) if @issue.editable? && User.current.allowed_to?(:edit_issues, @project) %> + <%= link_to l(:button_edit), edit_issue_path(@issue), :onclick => 'showAndScrollTo("all_attributes"); return false;', :class => 'talk_edit fr', :accesskey => accesskey(:edit) if @issue.editable? && User.current.allowed_to?(:edit_issues, @project) %> <%= link_to l(:label_user_newfeedback), edit_issue_path(@issue), :onclick => 'showAndScrollTo("update", "issue_notes"); return false;', :class => 'talk_edit fr', :accesskey => accesskey(:edit) if @issue.editable? && User.current.allowed_to?(:add_issue_notes, @project) %> diff --git a/app/views/issues/_form.html.erb b/app/views/issues/_form.html.erb index f0e28a975..4cd370adc 100644 --- a/app/views/issues/_form.html.erb +++ b/app/views/issues/_form.html.erb @@ -17,6 +17,7 @@ <% if @issue.safe_attribute? 'is_private' %> <%= f.check_box :is_private, :no_label => true, :class => "ml30" %> + <% end %>
diff --git a/app/views/layouts/_join_exit_project.html.erb b/app/views/layouts/_join_exit_project.html.erb index 1d302babf..9cd376c60 100644 --- a/app/views/layouts/_join_exit_project.html.erb +++ b/app/views/layouts/_join_exit_project.html.erb @@ -1,19 +1,24 @@<%if @repository.type.to_s=="Repository::Git"%> - <%= @repos_url%> - <%else %> - <%=h @repository.url %> +
+ <% if @repository.type.to_s=="Repository::Git" %> + <%= @repos_url %> + <% else %> + <%= h @repository.url %> <% end %>
-- (<%= l(:label_all_revisions) %><%= @repositories.sort.collect {|repo| + +
+ (<%= l(:label_all_revisions) %><%= @repositories.sort.collect { |repo| link_to h(repo.name), {:controller => 'repositories', :action => 'show', :id => @project, :repository_id => repo.identifier_param, :rev => nil, :path => nil}, - :class => 'repository' + (repo == @repository ? ' selected' : '') , - :class => "mb10 word_break c_orange"}.join(' | ').html_safe %>) + :class => 'repository' + (repo == @repository ? ' selected' : ''), + :class => "mb10 break_word c_orange" }.join(' | ').html_safe %>)
-项目代码请设置好正确的编码方式(utf-8),否则中文会出现乱码
-建立版本库文件夹,打开命令行执行如下:
-git init
-git add *
-git commit -m "first commit"
-git remote add origin - http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git -
-git config http.postBuffer 524288000 #设置本地post缓存为500MB
-git push -u origin master:master
-已经有本地库,还没有配置远程地址,打开命令行执行如下:
-git remote add origin http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
-git add .
-git commit -m "first commit"
-git config http.postBuffer 524288000 #设置本地post缓存为500MB
-git push -u origin master:master
-已有远程地址,创建一个远程分支,并切换到该分支,打开命令行执行如下:
-git clone http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
-git push
-git checkout -b branch_name
-git push origin branch_name
-从网上获取别人的开源版本库,转交到trustie网站上,打开命令行执行如下:
-git remote add trustie - http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git -
-git add .
-git commit -m "first commit"
-git config http.postBuffer 524288000 #设置本地post缓存为500MB
-git push -u trustie master:master
-李海提供
+项目代码请设置好正确的编码方式(utf-8),否则中文会出现乱码
-<% if !@entries.nil? && authorize_for('repositories', 'browse') %> - <%= render :partial => 'dir_list' %> -<% end %> +建立版本库文件夹,打开命令行执行如下:
+git init
+ +git add *
+ +git commit -m "first commit"
+ +git remote add origin + http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git +
+ +git config http.postBuffer 524288000 #设置本地post缓存为500MB
+ +git push -u origin master:master
+已经有本地库,还没有配置远程地址,打开命令行执行如下:
+git remote add origin http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
+ +git add .
+ +git commit -m "first commit"
-<%= render_properties(@properties) %> -<% if authorize_for('repositories', 'revisions') %> - <% if @changesets && !@changesets.empty? %> -git config http.postBuffer 524288000 #设置本地post缓存为500MB
+ +git push -u origin master:master
+已有远程地址,创建一个远程分支,并切换到该分支,打开命令行执行如下:
+git clone http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git
+ +git push
+ +git checkout -b branch_name
+ +git push origin branch_name
+从网上获取别人的开源版本库,转交到trustie网站上,打开命令行执行如下:
+git remote add trustie + http://xianbo_trustie2@repository.trustie.net/xianbo/trustie2.git +
+ +git add .
+ +git commit -m "first commit"
+ +git config http.postBuffer 524288000 #设置本地post缓存为500MB
+ +git push -u trustie master:master
+ +李海提供
+- <% has_branches = (!@repository.branches.nil? && @repository.branches.length > 0) - sep = '' %> - <% if @repository.supports_all_revisions? && @path.blank? %> - <%= link_to l(:label_view_all_revisions), {:action => 'revisions', :id => @project, - :repository_id => @repository.identifier_param}, - :class => "orange_u_btn" %> - <% sep = '|' %> + + <%= render_properties(@properties) %> + <% if authorize_for('repositories', 'revisions') %> + <% if @changesets && !@changesets.empty? %> +
+ <% has_branches = (!@repository.branches.nil? && @repository.branches.length > 0) + sep = '' %> + <% if @repository.supports_all_revisions? && @path.blank? %> + <%= link_to l(:label_view_all_revisions), {:action => 'revisions', :id => @project, + :repository_id => @repository.identifier_param}, + :class => "orange_u_btn" %> + <% sep = '|' %> + <% end %> + <% if @repository.supports_directory_revisions? && (has_branches || !@path.blank? || !@rev.blank?) %> + <%= sep %> + <%= link_to l(:label_view_revisions), + {:action => 'changes', + :path => to_path_param(@path), + :id => @project, + :repository_id => @repository.identifier_param, + :rev => @rev}, + :class => "orange_u_btn" %> + <% end %> +
+ <% if @repository.supports_all_revisions? %> + <% content_for :header_tags do %> + <%= auto_discovery_link_tag( + :atom, params.merge( + {:format => 'atom', :action => 'revisions', + :id => @project, :page => nil, :key => User.current.rss_key})) %> + <% end %> <% end %> - - <% if @repository.supports_all_revisions? %> - <% content_for :header_tags do %> - <%= auto_discovery_link_tag( - :atom, params.merge( - {:format => 'atom', :action => 'revisions', - :id => @project, :page => nil, :key => User.current.rss_key})) %> - <% end %> <% end %> -<% end %> - -查看如何提交代码: - <%= link_to(l(:label_how_commit_code_chinese), ch_usage_path, :class => "c_blue") %> - <%= link_to('English', en_usage_path, :class => "c_blue") %> -
+ +查看如何提交代码: + <%= link_to(l(:label_how_commit_code_chinese), ch_usage_path, :class => "c_blue") %> + <%= link_to('English', en_usage_path, :class => "c_blue") %> + +
<% content_for :header_tags do %> - <%= stylesheet_link_tag "scm" %> + <%= stylesheet_link_tag "scm" %> <% end %> <% html_title(l(:label_repository)) -%> diff --git a/config/locales/projects/zh.yml b/config/locales/projects/zh.yml index 49fe0e19a..3b125181e 100644 --- a/config/locales/projects/zh.yml +++ b/config/locales/projects/zh.yml @@ -188,6 +188,7 @@ zh: field_priority: 优先级 field_done_ratio: "% 完成" field_is_private: 私有 + field_is_private_tips: (设置为“私有”后本问题将仅对项目成员可见) field_watcher: 跟踪者 label_relates_to: 关联到 label_duplicates: 重复 diff --git a/public/assets/kindeditor/kindeditor.js b/public/assets/kindeditor/kindeditor.js index ea6a5b1c7..a31284adf 100644 --- a/public/assets/kindeditor/kindeditor.js +++ b/public/assets/kindeditor/kindeditor.js @@ -260,7 +260,7 @@ K.options = { items : [ 'emoticons', 'source','plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist', '|', 'formatblock', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', - 'italic', 'underline', 'removeformat', '|','imagedirectupload','table', 'link' + 'italic', 'underline', 'removeformat', '|','imagedirectupload','table', 'link', 'fullscreen',"more" ], noDisableItems : ['source', 'fullscreen'], colorTable : [ @@ -3909,10 +3909,15 @@ _extend(KToolbar, KWidget, { }); }, get : function(name) { - if (this._itemMap[name]) { - return this._itemMap[name]; - } - return (this._itemMap[name] = K('span.ke-icon-' + name, this.div).parent()); +// if (this._itemMap[name]) { +// return this._itemMap[name]; +// } + if($("#define").css('display') == 'block'){ + pdiv = $("#define") + }else if($("#full").css('display') == 'block'){ + pdiv = $("#full") + } + return (this._itemMap[name] = K('span.ke-icon-' + name, pdiv).parent()); }, select : function(name) { _selectToolbar.call(this, name, function(knode) { @@ -4915,6 +4920,7 @@ KEditor.prototype = { self.srcElement.before(container); } var toolbarDiv = K('.toolbar', container), + toolBarDivFull = K('.toolbar', container), editDiv = K('.edit', container), statusbar = self.statusbar = K('.statusbar', container); container.removeClass('container') @@ -4959,9 +4965,36 @@ KEditor.prototype = { htmlList.push(''); } }); + htmlList.unshift('') + htmlList.push('') + var htmlListFull = []; + var fullItems = [ + 'emoticons', + 'source','plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist', '|', + 'formatblock', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', + 'italic', 'underline', 'removeformat', '|','imagedirectupload','table', 'link', 'fullscreen',"less", + '/', + 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'plainpaste', + 'justifyfull', 'insertunorderedlist', 'indent', 'outdent', 'subscript', + 'superscript', 'clearhtml', 'quickformat', 'selectall', 'fontname', + 'strikethrough', 'lineheight', '|', 'imagedirectupload', 'hr', 'pagebreak', + 'anchor', 'unlink' + ] + K.each(fullItems, function(i, name) { + if (name == '|') { + htmlListFull.push(''); + } else if (name == '/') { + htmlListFull.push(''); + } else { + htmlListFull.push(''); + htmlListFull.push(''); + } + }); + htmlListFull.unshift('') + htmlListFull.push('') var toolbar = self.toolbar = _toolbar({ src : toolbarDiv, - html : htmlList.join(''), + html : htmlList.join('')+htmlListFull.join(''), noDisableItems : self.noDisableItems, click : function(e, name) { e.stop(); @@ -4975,6 +5008,7 @@ KEditor.prototype = { self.clickToolbar(name); } }); + var editHeight = _removeUnit(height) - toolbar.div.height(); var edit = self.edit = _edit({ height : editHeight > 0 && _removeUnit(height) > self.minHeight ? editHeight : self.minHeight, @@ -5306,8 +5340,9 @@ KEditor.prototype = { createMenu : function(options) { var self = this, name = options.name, - knode = self.toolbar.get(name), + knode = self.toolbar.get(name), pos = knode.pos(); + options.x = pos.x; options.y = pos.y + knode.height(); options.z = self.options.zIndex; @@ -5992,4 +6027,5 @@ _plugin('core', function(K) { }); }); }); + })(window); diff --git a/public/assets/kindeditor/lang/zh_CN.js b/public/assets/kindeditor/lang/zh_CN.js index f2b474351..3889ce5c1 100644 --- a/public/assets/kindeditor/lang/zh_CN.js +++ b/public/assets/kindeditor/lang/zh_CN.js @@ -9,6 +9,8 @@ KindEditor.lang({ imagedirectupload:'本地图片', + more: '切换到更多功能', + less: '切换到简单功能', source : 'HTML代码', preview : '预览', undo : '后退(Ctrl+Z)', diff --git a/public/assets/kindeditor/plugins/less/less.js b/public/assets/kindeditor/plugins/less/less.js new file mode 100644 index 000000000..b24d31723 --- /dev/null +++ b/public/assets/kindeditor/plugins/less/less.js @@ -0,0 +1,15 @@ +KindEditor.plugin('less', function(K) { + var self = this, name = 'less'; + self.plugin.less = { + click : function(){ + if($("#define").css('display') == 'block'){ + $("#define").css('display','none') + $("#full").css('display','block') + }else if($("#full").css('display') == 'block'){ + $("#full").css('display','none') + $("#define").css('display','block') + } + } + } + self.clickToolbar(name,self.plugin.less.click) +}); \ No newline at end of file diff --git a/public/assets/kindeditor/plugins/more/more.js b/public/assets/kindeditor/plugins/more/more.js new file mode 100644 index 000000000..31eb8567f --- /dev/null +++ b/public/assets/kindeditor/plugins/more/more.js @@ -0,0 +1,15 @@ +KindEditor.plugin('more', function(K) { + var self = this, name = 'more'; + self.plugin.more = { + click : function(){ + if($("#define").css('display') == 'block'){ + $("#define").css('display','none') + $("#full").css('display','block') + }else if($("#full").css('display') == 'block'){ + $("#full").css('display','none') + $("#define").css('display','block') + } + } + } + self.clickToolbar(name,self.plugin.more.click) +}); \ No newline at end of file diff --git a/public/assets/kindeditor/themes/default/default.css b/public/assets/kindeditor/themes/default/default.css index fcadd4fa6..5de213f37 100644 --- a/public/assets/kindeditor/themes/default/default.css +++ b/public/assets/kindeditor/themes/default/default.css @@ -243,6 +243,11 @@ width: 16px; height: 16px; } +.ke-icon-more { + background-position: 0px -672px; + width: 16px; + height: 16px; +} .ke-icon-plainpaste { background-position: 0px -704px; width: 16px; @@ -328,6 +333,11 @@ width: 16px; height: 16px; } +.ke-icon-less { + background-position: 0px -976px; + width: 16px; + height: 16px; +} .ke-icon-baidumap { background-position: 0px -976px; width: 16px; diff --git a/public/javascripts/project.js b/public/javascripts/project.js index 0aef464f8..795a56dd4 100644 --- a/public/javascripts/project.js +++ b/public/javascripts/project.js @@ -59,6 +59,29 @@ function show_more_msg() { } } + +//项目版本库git帮助文档显示 +function showhelpAndScrollTo(id, focus) { + var information = $("#showgithelp"); + var val = information.attr("value"); + if (val == "show_help") { + $("#showgithelp").text("收起Git操作指南"); + information.attr("value", "hide_help"); + $('#' + id).show(); + if (focus !== null) { + $('#' + focus).focus(); + } + $('html, body').animate({scrollTop: $('#' + id).offset().top}, 400); + } + else { + $("#showgithelp").text("显示Git操作指南"); + information.attr("value", "show_help"); + $('#' + id).hide(); + } +} + + + /////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////项目讨论区 function regexSubject() { @@ -191,27 +214,22 @@ function project_setting(n) { } //配置-验证项目名称 -function regex_project_name() -{ +function regex_project_name() { var name = $.trim($("#project_name").val()); - if(name.length == 0) - { + if (name.length == 0) { $("#project_name_notice").show(); return false; } - else - { + else { $("#project_name_notice").hide(); return true; } } //配置-信息提交 -function submit_edit_project(id) -{ - if(regex_project_name()) - { - $("#edit_project_"+id).submit(); +function submit_edit_project(id) { + if (regex_project_name()) { + $("#edit_project_" + id).submit(); } } @@ -233,12 +251,13 @@ $(document).ready(function () { //issue_project_id }); -function showAndScrollTo(id, focus) { - $('#' + id).show(); - if (focus !== null) { + function showAndScrollTo(id, focus) { + $('#' + id).show(); + if (focus !== null) { $('#' + focus).focus(); + } + $('html, body').animate({scrollTop: $('#' + id).offset().top}, 400); } - $('html, body').animate({scrollTop: $('#' + id).offset().top}, 400); /*缺陷完成度决定缺陷状态*/ @@ -287,7 +306,4 @@ function showAndScrollTo(id, focus) { $("pre").addClass("break_word"); } - }); - - -} \ No newline at end of file + }); \ No newline at end of file diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css index 6894e3382..a62bd0389 100644 --- a/public/stylesheets/project.css +++ b/public/stylesheets/project.css @@ -177,7 +177,9 @@ a:hover.upload_btn_grey{background:#8a8a8a;} a.link_file{ background:url(../images/pic_file.png) 0 2px no-repeat; padding-left:20px; color:#64bdd9; } a:hover.link_file{ background:url(../images/pic_file.png) 0 -25px no-repeat; color:#3ca5c6;} .r_txt_tit{width:510px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;color:#15bccf; float:left; color:#09658c; font-size:14px;} - +/* 版本库展示Git操作文档 */ +.repos_more{height:23px; width:100%; border:1px solid #CCC; background:#F6F6F6; text-align:center; font-size:12px; padding-top:2px;} +.lh23{line-height: 23px;} /* 弹框 新样式还没设计出来,暂时用的课程那边的样式 */ .alert .close{width:26px;height:26px;overflow:hidden;position:absolute;top:-10px;right:-502px;background:url(images/close.png) no-repeat;cursor:pointer;}