diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 23f6b6994..4d8b53e3c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -32,7 +32,7 @@ module ApplicationHelper extend Forwardable def_delegators :wiki_helper, :wikitoolbar_for, :heads_for_wiki_formatter - + #Added by young #Define the course menu's link class # 不是数组的转化成数组,然后判断当前menu_item是否在给定的列表 @@ -53,10 +53,10 @@ module ApplicationHelper def authorize_for_course(controller, action) User.current.allowed_to?({:controller => controller, :action => action}, @course) end - + def authorize_for_contest(controller, action) User.current.allowed_to?({:controller => controller, :action => action}, @contest) - end + end # Display a link if user is authorized # @@ -309,7 +309,7 @@ module ApplicationHelper s << h(block_given? ? yield(project) : project.name) else end - + if project.try(:project_type) == Project::ProjectType_project unless User.current.member_of?(@project) s << "" @@ -382,7 +382,7 @@ module ApplicationHelper s << "\n" end end - classes = (ancestors.empty? ? 'root' : 'child') + classes = (ancestors.empty? ? 'root' : 'child') s << h(block_given? ? yield(project) : project.name) ancestors << project end @@ -545,11 +545,11 @@ module ApplicationHelper def authoring(created, author, options={}) l(options[:label] || :label_added_time_by, :author => link_to_user(author), :age => time_tag(created)).html_safe end - + def added_time(created) l(:label_added_time, :age => time_tag(created)).html_safe end - + def user_url_and_time(user_name, user_url, created) unless user_name.nil? || user_name == '' l(:label_added_time_by, :author => link_to(user_name, user_url), :age => time_tag(created)).html_safe @@ -679,15 +679,15 @@ module ApplicationHelper def textilizable(*args) options = args.last.is_a?(Hash) ? args.pop : {} case args.size - when 1 - obj = options[:object] - text = args.shift - when 2 - obj = args.shift - attr = args.shift - text = obj.send(attr).html_safe.to_s - else - raise ArgumentError, 'invalid arguments to textilizable' + when 1 + obj = options[:object] + text = args.shift + when 2 + obj = args.shift + attr = args.shift + text = obj.send(attr).to_s + else + raise ArgumentError, 'invalid arguments to textilizable' end return '' if text.blank? project = options[:project] || @project || (obj && obj.respond_to?(:project) ? obj.project : nil) @@ -727,7 +727,7 @@ module ApplicationHelper when 2 obj = args.shift attr = args.shift - text = obj.send(attr).html_safe.to_s + text = obj.send(attr).to_s else raise ArgumentError, 'invalid arguments to textilizable' end @@ -851,7 +851,7 @@ module ApplicationHelper else wiki_page_id = page.present? ? Wiki.titleize(page) : nil parent = wiki_page.nil? && obj.is_a?(WikiContent) && obj.page && project == link_project ? obj.page.title : nil - url_for(:only_path => only_path, :controller => 'wiki', :action => 'show', :project_id => link_project, + url_for(:only_path => only_path, :controller => 'wiki', :action => 'show', :project_id => link_project, :id => wiki_page_id, :version => nil, :anchor => anchor, :parent => parent) end end @@ -865,7 +865,7 @@ module ApplicationHelper end end end - + def select_option_helper option tmp = Hash.new tmp={"" => ""} @@ -1177,7 +1177,7 @@ module ApplicationHelper end def lang_options_for_select(blank=true) - { 'Chinese简体中文 '=> 'zh', :English => :en} + { 'Chinese简体中文 '=> 'zh', :English => :en} end def label_tag_for(name, option_tags = nil, options = {}) @@ -1240,7 +1240,7 @@ module ApplicationHelper end end html.html_safe - end + end def delete_link(url, options={}) options = { @@ -1254,8 +1254,8 @@ module ApplicationHelper def preview_link(url, form, target='preview', options={}) content_tag 'a', l(:label_preview), { - :href => "#", - :onclick => %|submitPreview("#{escape_javascript url_for(url)}", "#{escape_javascript form}", "#{escape_javascript target}"); return false;|, + :href => "#", + :onclick => %|submitPreview("#{escape_javascript url_for(url)}", "#{escape_javascript form}", "#{escape_javascript target}"); return false;|, :accesskey => accesskey(:preview) }.merge(options) end @@ -1343,12 +1343,12 @@ module ApplicationHelper tags = javascript_tag( "var datepickerOptions={dateFormat: 'yy-mm-dd',minDate: new Date(), firstDay: #{start_of_week}, " + - "showOn: 'button', buttonImageOnly: true, buttonImage: '" + + "showOn: 'button', buttonImageOnly: true, buttonImage: '" + path_to_image('/images/calendar.png') + "', showButtonPanel: true, showWeek: true, showOtherMonths: true, selectOtherMonths: true, onClose: function(dateText, inst) {TimeClose(dateText,inst);}, beforeShow : function(input){TimeBeforeShow(input);} };") jquery_locale = l('jquery.locale', :default => current_language.to_s) unless jquery_locale == 'en' - tags << javascript_include_tag("i18n/jquery.ui.datepicker-#{jquery_locale}.js") + tags << javascript_include_tag("i18n/jquery.ui.datepicker-#{jquery_locale}.js") end tags end @@ -1516,14 +1516,14 @@ module ApplicationHelper options end end - + # Add by Tao def url_to_avatar(source) source = nil if source.kind_of?(String) get_avatar(source) end # Endof Tao's code - + def date_format_local(time) date = time.strftime("%Y年%m月%d日") end @@ -1539,7 +1539,7 @@ module ApplicationHelper def link_to_content_update(text, url_params = {}, html_options = {}) link_to(text, url_params, html_options) end - + #added by nie # Display watcher picture def show_more_watchers?(obj) @@ -1549,7 +1549,7 @@ module ApplicationHelper return false end end - + def show_watcher_profile(obj) count = 0 html = '' @@ -1574,7 +1574,7 @@ module ApplicationHelper return false end end - + def show_bid_project(bid) html = '' if bid.projects.where('is_public = 1').count == 0 @@ -1586,15 +1586,15 @@ module ApplicationHelper end html.html_safe end - + def show_bid_fans_picture(obj) html = '' if obj.watcher_users.count == 0 html << (content_tag "span", l(:label_project_no_follow)) else - obj.watcher_users.take(12).each do |user| + obj.watcher_users.take(12).each do |user| html << (link_to image_tag(url_to_avatar(user), :class => "avatar"), user_path(user), :class => "avatar", :title => user.name) - end + end end html.html_safe end @@ -1615,7 +1615,7 @@ module ApplicationHelper return false end end - + def show_contest_project(bid) html = '' if contest.projects.where('is_public = 1').count == 0 @@ -1627,7 +1627,7 @@ module ApplicationHelper end html.html_safe end - + def show_contest_project(contest) html = '' if contest.projects.where('is_public = 1').count == 0 @@ -1639,7 +1639,7 @@ module ApplicationHelper end html.html_safe end - + def show_contest_softapplication(contest) html = '' if contest.softapplications.where('is_public = 1').count == 0 @@ -1651,19 +1651,19 @@ module ApplicationHelper end html.html_safe end - + def show_contest_fans_picture(obj) html = '' if obj.watcher_users.count == 0 html << (content_tag "span", l(:label_project_no_follow)) else - obj.watcher_users.take(12).each do |user| + obj.watcher_users.take(12).each do |user| html << (link_to image_tag(url_to_avatar(user), :class => "avatar"), user_path(user), :class => "avatar", :title => user.name) - end + end end html.html_safe - end - + end + #display fans picture def show_more_fans?(obj) if obj.watcher_users.count > 12 @@ -1672,20 +1672,20 @@ module ApplicationHelper return false end end - + def show_fans_picture(obj) html = '' if obj.watcher_users.count == 0 html << (content_tag "span", l(:label_no_current_fans)) else - obj.watcher_users.take(12).each do |user| + obj.watcher_users.take(12).each do |user| html << (link_to image_tag(url_to_avatar(user), :class => "avatar"), user_path(user), :class => "avatar", :title => user.name) - end + end end html.html_safe end - - # added by bai + + # added by bai def show_more_participate?(obj) if obj.join_in_contests.count > 12 return true @@ -1693,7 +1693,7 @@ module ApplicationHelper return false end end - + def show_participate_picture(obj) html = '' count = 0 @@ -1706,10 +1706,10 @@ module ApplicationHelper if count >= 12 break end - end + end html.html_safe - end - + end + #end # add by huang @@ -1724,7 +1724,7 @@ module ApplicationHelper end end html.html_safe - end + end # end #added by william @@ -1733,7 +1733,7 @@ module ApplicationHelper end #end - + def hadcommittedhomework(cur,curb) bid = Bid.find_by_id(curb) return true if bid.nil? @@ -1748,7 +1748,7 @@ module ApplicationHelper else true end - + end def render_dynamic_nav @@ -1759,10 +1759,10 @@ module ApplicationHelper end def bootstrap_render_dynamic_nav - + main_course_link = link_to l(:label_course_practice), {:controller => 'welcome', :action => 'index', :host => Setting.course_domain} main_project_link = link_to l(:label_project_deposit), {:controller => 'welcome', :action => 'index', :host => Setting.project_domain} - main_contest_link = link_to l(:label_contest_innovate), {:controller => 'welcome', :action => 'index', :host => Setting.contest_domain} + main_contest_link = link_to l(:label_contest_innovate), {:controller => 'welcome', :action => 'index', :host => Setting.contest_domain} course_all_course_link = link_to l(:label_course_all), {:controller => 'courses', :action => 'index'} course_teacher_all_link = link_to l(:label_teacher_all), {:controller => 'users', :action => 'index', :role => 'teacher', :host => Setting.course_domain} @@ -1774,20 +1774,20 @@ module ApplicationHelper forum_link = link_to l(:label_project_module_forums), {:controller => "forums", :action => "index"} stores_link = link_to l(:label_stores_index), {:controller => 'stores', :action=> 'index'} - + school_all_school_link = link_to l(:label_school_all), {:controller => 'school', :action => 'index'} - - + + #@nav_dispaly_project_label nav_list = Array.new nav_list.push(school_all_school_link) if @nav_dispaly_course_all_label && @show_course == 1 nav_list.push(course_all_course_link) if @nav_dispaly_course_all_label && @show_course == 1 nav_list.push(course_teacher_all_link) if @nav_dispaly_teacher_all_label && @show_course == 1 - + nav_list.push(main_project_link) if @nav_dispaly_main_project_label nav_list.push(main_course_link) if @nav_dispaly_main_course_label && @show_course == 1 nav_list.push(main_contest_link) if @nav_dispaly_main_contest_label && @show_contest == 1 - + nav_list.push(courses_link) if @nav_dispaly_course_label && @show_course == 1 nav_list.push(projects_link) if @nav_dispaly_project_label nav_list.push(users_link) if @nav_dispaly_user_label @@ -1797,7 +1797,7 @@ module ApplicationHelper nav_list.push(stores_link) if @nav_dispaly_store_all_label content_li = '' - nav_list.collect do |nav_item| + nav_list.collect do |nav_item| content_li << content_tag(:li, nav_item) end content_li.html_safe @@ -1806,12 +1806,12 @@ module ApplicationHelper def current_user User.current end - + # def hadcommittedforcontest(curu) # message = JournalsForMessage.find_by_sql("select * from journals_for_messages where jour_type = 'Softapplication' ") # message.each do |createmessage| - # if createmessage.user_id == curu - # return true + # if createmessage.user_id == curu + # return true # end # end # end @@ -1824,11 +1824,12 @@ module ApplicationHelper logos.push(link_to image_tag('/images/footer_logo/iscas.png', :alt=>"iscas"), "http://www.iscas.ac.cn" ) logos.push(link_to image_tag('/images/footer_logo/inforbus.png', :alt=>"inforbus"), "http://www.inforbus.com" ) - logos.collect! { |logo| + logos.collect! { |logo| content_tag(:li, logo.html_safe, :class => li_class.to_s) } content_tag(:ul, logos.join("").html_safe, :class => ul_class.to_s).html_safe end - + + end diff --git a/app/models/forum.rb b/app/models/forum.rb index cd9c210dd..24b5b15e0 100644 --- a/app/models/forum.rb +++ b/app/models/forum.rb @@ -11,7 +11,7 @@ class Forum < ActiveRecord::Base 'creator_id' validates_presence_of :name, :creator_id, :description validates_length_of :name, maximum: 50 - validates_length_of :description, maximum: 255 + #validates_length_of :description, maximum: 255 validates :name, :uniqueness => true acts_as_taggable diff --git a/app/models/issue_query.rb b/app/models/issue_query.rb index f428c5d81..7e70d55c7 100644 --- a/app/models/issue_query.rb +++ b/app/models/issue_query.rb @@ -132,7 +132,7 @@ class IssueQuery < Query :type => :list_optional, :values => group_values ) unless group_values.empty? - role_values = Role.givable.collect {|r| [r.name, r.id.to_s] } + role_values = Role.project_role.collect {|r| [r.name, r.id.to_s] } add_available_filter("assigned_to_role", :type => :list_optional, :values => role_values ) unless role_values.empty? diff --git a/app/models/memo.rb b/app/models/memo.rb index 5a909f782..2c0d3571f 100644 --- a/app/models/memo.rb +++ b/app/models/memo.rb @@ -8,7 +8,7 @@ class Memo < ActiveRecord::Base # 若是主题帖,则内容可以是空 #validates :content, presence: true, if: Proc.new{|o| !o.parent_id.nil? } validates_length_of :subject, maximum: 50 - validates_length_of :content, maximum: 3072 + #validates_length_of :content, maximum: 3072 validate :cannot_reply_to_locked_topic, :on => :create acts_as_tree :counter_cache => :replies_count, :order => "#{Memo.table_name}.created_at ASC" diff --git a/app/models/role.rb b/app/models/role.rb index cba219d0d..57fccd53c 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -67,6 +67,16 @@ class Role < ActiveRecord::Base :in => ISSUES_VISIBILITY_OPTIONS.collect(&:first), :if => lambda {|role| role.respond_to?(:issues_visibility)} + #获取项目相关角色 + def self.project_role + self.givable[0..2] + end + + #获取课程相关角色 + def self.course_role + self.givable[3..5] + end + # Copies attributes from another role, arg can be an id or a Role def copy_from(arg, options={}) return unless arg.present? diff --git a/app/views/bids/_history.html.erb b/app/views/bids/_history.html.erb index b0bc22479..0961e3cf8 100644 --- a/app/views/bids/_history.html.erb +++ b/app/views/bids/_history.html.erb @@ -5,7 +5,7 @@
<%= render :partial => 'new', :locals => {:bid => @bid, :sta => @state} %>
-<% label = ''; +<% label = '' case @bid.reward_type when 1 label = l(:label_respond_requirement) diff --git a/app/views/bids/_new.html.erb b/app/views/bids/_new.html.erb index cf9f8df30..7dd7492c0 100644 --- a/app/views/bids/_new.html.erb +++ b/app/views/bids/_new.html.erb @@ -41,7 +41,7 @@ + <%= submit_tag l(:button_clear_meassge), :name => nil, :onclick => "clearMessage('bid_message_message');", :type => 'button', :class => "bid_btn", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'" %>
<%= submit_tag l(:button_leave_meassge), :name => nil , :class => "bid_btn", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'"%> - <%= submit_tag l(:button_clear), :name => nil, :onclick => "clearMessage('bid_message_message');", :type => 'button', :class => "bid_btn", :onmouseout => "this.style.backgroundPosition = 'left top'", :onmouseover => "this.style.backgroundPosition = 'left -31px'" %>
diff --git a/app/views/bids/show.html.erb b/app/views/bids/show.html.erb index 96ed4ea75..3107d8bd6 100644 --- a/app/views/bids/show.html.erb +++ b/app/views/bids/show.html.erb @@ -4,11 +4,11 @@

<%= link_to(@bid.author.lastname+@bid.author.firstname, user_path(@bid.author))%>:<%= link_to(@bid.name,respond_path(@bid)) %>

<% if @bid.reward_type.nil? or @bid.reward_type == 1%> -

+

<%= l(:label_bids_reward_method) %><%= l(:label_call_bonus) %>  <%= l(:label_RMB_sign) %><%= @bid.budget %>

<% elsif @bid.reward_type == 2%> -

+

<%= l(:label_bids_reward_method) %><%= @bid.budget%>

<% else %> diff --git a/app/views/forums/new.html.erb b/app/views/forums/new.html.erb index 19c911c37..2e8924c90 100644 --- a/app/views/forums/new.html.erb +++ b/app/views/forums/new.html.erb @@ -4,7 +4,7 @@ @nav_dispaly_main_contest_label = 1 %> <% @nav_dispaly_forum_label = 1%> -

<%= l :label_forum_new %>

+

<%= l :label_forum_new %>

<%= render 'form' %> diff --git a/config/locales/zh.yml b/config/locales/zh.yml index d106ed3d2..1d66874ee 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1334,7 +1334,7 @@ zh: label_gantt_progress_line: Progress line setting_jsonp_enabled: Enable JSONP support field_inherit_members: Inherit members - field_closed_on: Closed + field_closed_on: 已关闭 setting_default_projects_tracker_ids: Default trackers for new projects label_total_time: 合计 label_create_time: 创建时间 #Customer added!Added by nie @@ -1415,6 +1415,7 @@ zh: #fq button_leave_meassge: 留言 + button_clear_meassge: 清除留言 label_leave_message_to: 给用户 %{name}留言 label_leave_message: 留言内容 label_message: 留言板 diff --git a/db/migrate/20140814062455_change_forum_description.rb b/db/migrate/20140814062455_change_forum_description.rb new file mode 100644 index 000000000..1bcd81d81 --- /dev/null +++ b/db/migrate/20140814062455_change_forum_description.rb @@ -0,0 +1,9 @@ +class ChangeForumDescription < ActiveRecord::Migration + def up + change_column :forums, :description, :text, default: nil + end + + def down + change_column :forums, :description, :string, default: '' + end +end diff --git a/db/schema.rb b/db/schema.rb index cdedc6a2c..525cfb745 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140812065417) do +ActiveRecord::Schema.define(:version => 20140814062455) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -441,21 +441,21 @@ ActiveRecord::Schema.define(:version => 20140812065417) do t.datetime "created_at", :null => false t.datetime "updated_at", :null => false t.integer "sort_type" - t.integer "image_width", :default => 107 - t.integer "image_height", :default => 63 t.integer "show_course", :default => 1 t.integer "show_contest", :default => 1 + t.integer "image_width", :default => 107 + t.integer "image_height", :default => 63 end create_table "forums", :force => true do |t| - t.string "name", :null => false - t.string "description", :default => "" + t.string "name", :null => false + t.text "description" t.integer "topic_count", :default => 0 t.integer "memo_count", :default => 0 t.integer "last_memo_id", :default => 0 - t.integer "creator_id", :null => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.integer "creator_id", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "groups_users", :id => false, :force => true do |t|