-
+ |
开发项目:
<% if homework.project != nil %>
+
<%= link_to homework.project.name,project_path(homework.project.id)%>
+
<% else %>
暂无
<% end %>
diff --git a/app/views/bids/show_courseEx.html.erb b/app/views/bids/show_courseEx.html.erb
index 039de6b7a..992abfd96 100644
--- a/app/views/bids/show_courseEx.html.erb
+++ b/app/views/bids/show_courseEx.html.erb
@@ -1,4 +1,4 @@
-<% if @bid.homework_type == Bid::HomeworkFile %>
+<% if @bid.homework_type %>
<%= render :partial => 'homework' %>
From bff1319c5efd13c89e637b2bf02df53eb3ed9a00 Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Tue, 15 Jul 2014 09:53:03 +0800
Subject: [PATCH 05/12] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E8=AF=BE=E7=A8=8B?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=85=BC=E5=AE=B9=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/models/course.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/models/course.rb b/app/models/course.rb
index 248f80e0b..4f090d7ed 100644
--- a/app/models/course.rb
+++ b/app/models/course.rb
@@ -300,7 +300,7 @@ class Course < ActiveRecord::Base
end
#项目与课程分离后,很多课程的名称等信息为空,这些数据信息存储在项目表中!!就是数据兼容的问题
- def name
- read_attribute('name') || Project.find_by_identifier(self.extra).try(:name)
- end
+ #def name
+ # read_attribute('name') || Project.find_by_identifier(self.extra).try(:name)
+ #end
end
From b142953a4b10f4209fcab71c0cfacca1439c7a46 Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Tue, 15 Jul 2014 10:28:49 +0800
Subject: [PATCH 06/12] =?UTF-8?q?1.=E5=88=9B=E5=BB=BA=E9=A1=B9=E7=9B=AE?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=9F=E8=83=BD=EF=BC=9A=E6=98=AF=E5=90=A6?=
=?UTF-8?q?=E5=90=AF=E5=8A=A8DTS=E6=B5=8B=E8=AF=95=EF=BC=8C=E9=BB=98?=
=?UTF-8?q?=E8=AE=A4=E4=B8=BA=E4=B8=8D=E5=90=AF=E7=94=A8=E3=80=82=E6=A0=B9?=
=?UTF-8?q?=E6=8D=AE=E7=94=A8=E6=88=B7=E9=80=89=E6=8B=A9=EF=BC=8C=E5=86=B3?=
=?UTF-8?q?=E5=AE=9A=E5=B7=A6=E4=BE=A7DTS=E6=B5=8B=E8=AF=95=E5=B7=A5?=
=?UTF-8?q?=E5=85=B7=E9=80=89=E9=A1=B9=E6=98=AF=E5=90=A6=E5=9C=A8=E8=AF=A5?=
=?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=86=85=E6=98=BE=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/projects_controller.rb | 2 ++
app/views/projects/_form.html.erb | 3 +++
app/views/projects/_tools_expand.html.erb | 4 +++-
app/views/projects/new.html.erb | 15 ++++++++++-----
config/locales/zh.yml | 1 +
db/migrate/20140715015540_dst_test.rb | 9 +++++++++
6 files changed, 28 insertions(+), 6 deletions(-)
create mode 100644 db/migrate/20140715015540_dst_test.rb
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 540f0a312..136703c68 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -513,6 +513,7 @@ class ProjectsController < ApplicationController
@trackers = Tracker.sorted.all
@project = Project.new
@project.user_id = User.current.id
+ @project.dts_test = params[:project][:dts_test]
@project.safe_attributes = params[:project]
if @course_tag == '1'
@project.identifier = @course.extra
@@ -845,6 +846,7 @@ class ProjectsController < ApplicationController
def update
@project.safe_attributes = params[:project]
+ @project.dts_test = params[:project][:dts_test]
if validate_parent_id && @project.save
@course = Course.find_by_extra(@project.identifier)
unless @course.nil?
diff --git a/app/views/projects/_form.html.erb b/app/views/projects/_form.html.erb
index 420cc5100..f5781b26a 100644
--- a/app/views/projects/_form.html.erb
+++ b/app/views/projects/_form.html.erb
@@ -15,6 +15,9 @@
<%= f.check_box :is_public, :style => "margin-left:10px;" %>
<%= f.check_box :hidden_repo, :style => "margin-left:10px;" %>
+
+ <%= f.check_box :dts_test, :style => "margin-left:10px;" %>
+
<%= f.text_field :project_type, :value => 0 %>
<%= wikitoolbar_for 'project_description' %>
diff --git a/app/views/projects/_tools_expand.html.erb b/app/views/projects/_tools_expand.html.erb
index d5aadc419..aec1ad7a2 100644
--- a/app/views/projects/_tools_expand.html.erb
+++ b/app/views/projects/_tools_expand.html.erb
@@ -14,7 +14,9 @@
<%= link_to l(:project_module_gantt) ,project_gantt_path(@project) %>
其他工具
- - <%= link_to l(:label_module_share) ,share_show_path(@project) %>
+ <% if @project.dts_test == 1 %>
+ - <%= link_to l(:label_module_share) ,share_show_path(@project) %>
+ <% end %>
- <%= link_to l(:project_module_documents), project_documents_path(@project) %>
diff --git a/app/views/projects/new.html.erb b/app/views/projects/new.html.erb
index aa03a1cc1..e1637e94b 100644
--- a/app/views/projects/new.html.erb
+++ b/app/views/projects/new.html.erb
@@ -5,17 +5,22 @@
<%= render :partial => 'course_form', :locals => { :f => f } %>
- <%= submit_tag l(:button_create), :class => "enterprise"%>
-
+
+ <%= submit_tag l(:button_create), :class => "enterprise"%>
+
+
+
<% else %>
<%=l(:label_project_new)%>
<%=raw l(:label_project_new_description)%>
<%= render :partial => 'form', :locals => { :f => f } %>
- <%= submit_tag l(:button_create), :class => "enterprise"%>
-
+
+ <%= submit_tag l(:button_create), :class => "enterprise"%>
+
+
+
<% end %>
<%= javascript_tag "$('#project_name').focus();" %>
-
<% end %>
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 276d09336..04b15bb63 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -1901,6 +1901,7 @@ zh:
field_teacher_name: 教 师
field_hidden_repo: 隐藏代码库
+ field_dts_test: DTS测试工具
label_newbie_faq: '新手指引 & 问答'
label_hot_project: '热门项目'
diff --git a/db/migrate/20140715015540_dst_test.rb b/db/migrate/20140715015540_dst_test.rb
new file mode 100644
index 000000000..46d592d58
--- /dev/null
+++ b/db/migrate/20140715015540_dst_test.rb
@@ -0,0 +1,9 @@
+class DstTest < ActiveRecord::Migration
+ def up
+ add_column :projects, :dts_test, :integer, :default => 0
+ end
+
+ def down
+ remove_column :projects, :dts_test
+ end
+end
From 121ffa0342cdab227a90e72664743de22a97344e Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Tue, 15 Jul 2014 15:09:52 +0800
Subject: [PATCH 07/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=BA=E9=99=B7?=
=?UTF-8?q?=E6=97=B6=E5=A2=9E=E5=8A=A0=E8=B7=9F=E8=B8=AA=E8=80=85=E7=9A=84?=
=?UTF-8?q?=E5=88=A0=E9=99=A4=E5=92=8C=E5=A2=9E=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/issues_controller.rb | 25 +++++++++++++++++++++++++
app/views/issues/_edit.html.erb | 15 +++++++++++++++
2 files changed, 40 insertions(+)
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 2f7d6e600..edff1888b 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -119,6 +119,7 @@ class IssuesController < ApplicationController
@time_entry = TimeEntry.new(:issue => @issue, :project => @issue.project)
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'#by young
+ @available_watchers = (@issue.project.users.sort + @issue.watcher_users).uniq
respond_to do |format|
format.html {
@@ -194,6 +195,30 @@ class IssuesController < ApplicationController
end
if saved
+
+ #修改界面增加跟踪者
+ watcherlist = @issue.watcher_users
+ select_users = []
+ if params[:issue]
+ if params[:issue][:watcher_user_ids]
+ params[:issue][:watcher_user_ids].each do |user_id|
+ select_users << User.find(user_id)
+ end
+ end
+ end
+ select_users.each do |user|
+ if watcherlist.include? user
+ else
+ @issue.add_watcher user
+ end
+ end
+ watcherlist.each do |user|
+ if select_users.include? user
+ else
+ @issue.remove_watcher user
+ end
+ end
+
render_attachment_warning_if_needed(@issue)
reply_id = params[:reference_user_id].to_i
if reply_id > 0
diff --git a/app/views/issues/_edit.html.erb b/app/views/issues/_edit.html.erb
index 4c379ae54..8037bee01 100644
--- a/app/views/issues/_edit.html.erb
+++ b/app/views/issues/_edit.html.erb
@@ -24,6 +24,21 @@
+
+
+
+
+
+ <%= watchers_checkboxes(@issue, @available_watchers) %>
+
+
+ <%= link_to l(:label_search_for_watchers),
+ {:controller => 'watchers', :action => 'new', :project_id => @issue.project},
+ :remote => true,
+ :method => 'get' %>
+
+
+
<%= f.hidden_field :lock_version %>
From e303009917fefa3714a62f029fdd20132f982975 Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Tue, 15 Jul 2014 17:49:28 +0800
Subject: [PATCH 08/12] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/ckeditor/ckeditor.js | 16527 +++++++++++++++-
.../assets/ckeditor/skins/moono/dialog.css | 688 +-
.../assets/ckeditor/skins/moono/dialog_ie.css | 712 +-
.../ckeditor/skins/moono/dialog_ie7.css | 744 +-
.../ckeditor/skins/moono/dialog_ie8.css | 716 +-
.../ckeditor/skins/moono/dialog_iequirks.css | 716 +-
.../ckeditor/skins/moono/dialog_opera.css | 701 +-
.../assets/ckeditor/skins/moono/editor.css | 1782 +-
.../ckeditor/skins/moono/editor_gecko.css | 1791 +-
.../assets/ckeditor/skins/moono/editor_ie.css | 1810 +-
.../ckeditor/skins/moono/editor_ie7.css | 1952 +-
.../ckeditor/skins/moono/editor_ie8.css | 1822 +-
.../ckeditor/skins/moono/editor_iequirks.css | 1847 +-
13 files changed, 30820 insertions(+), 988 deletions(-)
diff --git a/plugins/redmine_ckeditor/assets/ckeditor/ckeditor.js b/plugins/redmine_ckeditor/assets/ckeditor/ckeditor.js
index 39e27dc7a..48e4c510d 100644
--- a/plugins/redmine_ckeditor/assets/ckeditor/ckeditor.js
+++ b/plugins/redmine_ckeditor/assets/ckeditor/ckeditor.js
@@ -1,978 +1,15553 @@
/*
-Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;window.CKEDITOR||(window.CKEDITOR=function(){var a={timestamp:"E0LB",version:"4.3.2",revision:"ba625e6",rnd:Math.floor(900*Math.random())+100,_:{pending:[]},status:"unloaded",basePath:function(){var b=window.CKEDITOR_BASEPATH||"";if(!b)for(var d=document.getElementsByTagName("script"),a=0;a=0;o--)if(n[o].priority<=m){n.splice(o+1,0,j);return{removeListener:i}}n.unshift(j)}return{removeListener:i}},
-once:function(){var b=arguments[1];arguments[1]=function(d){d.removeListener();return b.apply(this,arguments)};return this.on.apply(this,arguments)},capture:function(){CKEDITOR.event.useCapture=1;var b=this.on.apply(this,arguments);CKEDITOR.event.useCapture=0;return b},fire:function(){var b=0,d=function(){b=1},a=0,h=function(){a=1};return function(m,j,i){var n=e(this)[m],m=b,r=a;b=a=0;if(n){var o=n.listeners;if(o.length)for(var o=o.slice(0),u,f=0;f=0&&a.listeners.splice(h,1)}},removeAllListeners:function(){var b=e(this),d;for(d in b)delete b[d]},hasListeners:function(b){return(b=e(this)[b])&&b.listeners.length>0}}}());
-CKEDITOR.editor||(CKEDITOR.editor=function(){CKEDITOR._.pending.push([this,arguments]);CKEDITOR.event.call(this)},CKEDITOR.editor.prototype.fire=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fire.call(this,a,e,this)},CKEDITOR.editor.prototype.fireOnce=function(a,e){a in{instanceReady:1,loaded:1}&&(this[a]=true);return CKEDITOR.event.prototype.fireOnce.call(this,a,e,this)},CKEDITOR.event.implementOn(CKEDITOR.editor.prototype));
-CKEDITOR.env||(CKEDITOR.env=function(){var a=navigator.userAgent.toLowerCase(),e=window.opera,b={ie:a.indexOf("trident/")>-1,opera:!!e&&e.version,webkit:a.indexOf(" applewebkit/")>-1,air:a.indexOf(" adobeair/")>-1,mac:a.indexOf("macintosh")>-1,quirks:document.compatMode=="BackCompat"&&(!document.documentMode||document.documentMode<10),mobile:a.indexOf("mobile")>-1,iOS:/(ipad|iphone|ipod)/.test(a),isCustomDomain:function(){if(!this.ie)return false;var d=document.domain,b=window.location.hostname;return d!=
-b&&d!="["+b+"]"},secure:location.protocol=="https:"};b.gecko=navigator.product=="Gecko"&&!b.webkit&&!b.opera&&!b.ie;if(b.webkit)a.indexOf("chrome")>-1?b.chrome=true:b.safari=true;var c=0;if(b.ie){c=b.quirks||!document.documentMode?parseFloat(a.match(/msie (\d+)/)[1]):document.documentMode;b.ie9Compat=c==9;b.ie8Compat=c==8;b.ie7Compat=c==7;b.ie6Compat=c<7||b.quirks}if(b.gecko){var d=a.match(/rv:([\d\.]+)/);if(d){d=d[1].split(".");c=d[0]*1E4+(d[1]||0)*100+(d[2]||0)*1}}b.opera&&(c=parseFloat(e.version()));
-b.air&&(c=parseFloat(a.match(/ adobeair\/(\d+)/)[1]));b.webkit&&(c=parseFloat(a.match(/ applewebkit\/(\d+)/)[1]));b.version=c;b.isCompatible=b.iOS&&c>=534||!b.mobile&&(b.ie&&c>6||b.gecko&&c>=10801||b.opera&&c>=9.5||b.air&&c>=1||b.webkit&&c>=522||false);b.hidpi=window.devicePixelRatio>=2;b.needsBrFiller=b.gecko||b.webkit||b.ie&&c>10;b.needsNbspFiller=b.ie&&c<11;b.cssClass="cke_browser_"+(b.ie?"ie":b.gecko?"gecko":b.opera?"opera":b.webkit?"webkit":"unknown");if(b.quirks)b.cssClass=b.cssClass+" cke_browser_quirks";
-if(b.ie){b.cssClass=b.cssClass+(" cke_browser_ie"+(b.quirks||b.version<7?"6":b.version));if(b.quirks)b.cssClass=b.cssClass+" cke_browser_iequirks"}if(b.gecko)if(c<10900)b.cssClass=b.cssClass+" cke_browser_gecko18";else if(c<=11E3)b.cssClass=b.cssClass+" cke_browser_gecko19";if(b.air)b.cssClass=b.cssClass+" cke_browser_air";if(b.iOS)b.cssClass=b.cssClass+" cke_browser_ios";if(b.hidpi)b.cssClass=b.cssClass+" cke_hidpi";return b}());
-"unloaded"==CKEDITOR.status&&function(){CKEDITOR.event.implementOn(CKEDITOR);CKEDITOR.loadFullCore=function(){if(CKEDITOR.status!="basic_ready")CKEDITOR.loadFullCore._load=1;else{delete CKEDITOR.loadFullCore;var a=document.createElement("script");a.type="text/javascript";a.src=CKEDITOR.basePath+"ckeditor.js";document.getElementsByTagName("head")[0].appendChild(a)}};CKEDITOR.loadFullCoreTimeout=0;CKEDITOR.add=function(a){(this._.pending||(this._.pending=[])).push(a)};(function(){CKEDITOR.domReady(function(){var a=
-CKEDITOR.loadFullCore,e=CKEDITOR.loadFullCoreTimeout;if(a){CKEDITOR.status="basic_ready";a&&a._load?a():e&&setTimeout(function(){CKEDITOR.loadFullCore&&CKEDITOR.loadFullCore()},e*1E3)}})})();CKEDITOR.status="basic_loaded"}();CKEDITOR.dom={};
-(function(){var a=[],e=CKEDITOR.env.gecko?"-moz-":CKEDITOR.env.webkit?"-webkit-":CKEDITOR.env.opera?"-o-":CKEDITOR.env.ie?"-ms-":"";CKEDITOR.on("reset",function(){a=[]});CKEDITOR.tools={arrayCompare:function(b,a){if(!b&&!a)return true;if(!b||!a||b.length!=a.length)return false;for(var d=0;d"+a+""):d.push('');return d.join("")},htmlEncode:function(b){return(""+b).replace(/&/g,"&").replace(/>/g,">").replace(//g,">")},htmlDecodeAttr:function(b){return b.replace(/"/g,'"').replace(/</g,"<").replace(/>/g,">")},getNextNumber:function(){var b=0;return function(){return++b}}(),getNextId:function(){return"cke_"+this.getNextNumber()},override:function(b,a){var d=a(b);d.prototype=b.prototype;return d},setTimeout:function(b,a,d,g,e){e||(e=window);d||(d=e);return e.setTimeout(function(){g?b.apply(d,[].concat(g)):
-b.apply(d)},a||0)},trim:function(){var b=/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g;return function(a){return a.replace(b,"")}}(),ltrim:function(){var b=/^[ \t\n\r]+/g;return function(a){return a.replace(b,"")}}(),rtrim:function(){var b=/[ \t\n\r]+$/g;return function(a){return a.replace(b,"")}}(),indexOf:function(b,a){if(typeof a=="function")for(var d=0,g=b.length;d=0?b[d]:null},bind:function(b,a){return function(){return b.apply(a,arguments)}},createClass:function(b){var a=b.$,d=b.base,g=b.privates||b._,e=b.proto,b=b.statics;!a&&(a=function(){d&&this.base.apply(this,arguments)});if(g)var m=a,a=function(){var d=this._||(this._={}),a;for(a in g){var b=g[a];d[a]=typeof b=="function"?CKEDITOR.tools.bind(b,this):b}m.apply(this,arguments)};if(d){a.prototype=this.prototypedCopy(d.prototype);a.prototype.constructor=a;a.base=
-d;a.baseProto=d.prototype;a.prototype.base=function(){this.base=d.prototype.base;d.apply(this,arguments);this.base=arguments.callee}}e&&this.extend(a.prototype,e,true);b&&this.extend(a,b,true);return a},addFunction:function(b,c){return a.push(function(){return b.apply(c||this,arguments)})-1},removeFunction:function(b){a[b]=null},callFunction:function(b){var c=a[b];return c&&c.apply(window,Array.prototype.slice.call(arguments,1))},cssLength:function(){var a=/^-?\d+\.?\d*px$/,c;return function(d){c=
-CKEDITOR.tools.trim(d+"")+"px";return a.test(c)?c:d||""}}(),convertToPx:function(){var a;return function(c){if(!a){a=CKEDITOR.dom.element.createFromHtml('',CKEDITOR.document);CKEDITOR.document.getBody().append(a)}if(!/%$/.test(c)){a.setStyle("width",c);return a.$.clientWidth}return c}}(),repeat:function(a,c){return Array(c+1).join(a)},tryThese:function(){for(var a,c=0,d=arguments.length;c8)&&e)a=e+":"+a;return new CKEDITOR.dom.nodeList(this.$.getElementsByTagName(a))},getHead:function(){var a=this.$.getElementsByTagName("head")[0];return a=
-a?new CKEDITOR.dom.element(a):this.getDocumentElement().append(new CKEDITOR.dom.element("head"),true)},getBody:function(){return new CKEDITOR.dom.element(this.$.body)},getDocumentElement:function(){return new CKEDITOR.dom.element(this.$.documentElement)},getWindow:function(){return new CKEDITOR.dom.window(this.$.parentWindow||this.$.defaultView)},write:function(a){this.$.open("text/html","replace");CKEDITOR.env.ie&&(a=a.replace(/(?:^\s*]*?>)|^/i,'$&\n |