diff --git a/ReadMe接手必读.txt b/ReadMe接手必读.txt new file mode 100644 index 000000000..d7c1aa009 --- /dev/null +++ b/ReadMe接手必读.txt @@ -0,0 +1,11 @@ +app\models\setting.rb :165 + # fixed domain url in development. tantantan's bug + if Rails.env.development? + methods.map do |m| + define_singleton_method m do; nil; end if m.to_s =~ /([a-zA-Z]+_domain)$/ + end + end + 򲿷ƶsubdomainʹڶת + Ϊ˿㣬ʹ֮developmentģʽʧЧ + # => nyan +================================================================================ diff --git a/app/controllers/files_controller.rb b/app/controllers/files_controller.rb index 1e1934ecf..35e27a87f 100644 --- a/app/controllers/files_controller.rb +++ b/app/controllers/files_controller.rb @@ -26,14 +26,15 @@ class FilesController < ApplicationController include SortHelper def index - sort_init 'filename', 'asc' - sort_update 'filename' => "#{Attachment.table_name}.filename", - 'created_on' => "#{Attachment.table_name}.created_on", - 'size' => "#{Attachment.table_name}.filesize", - 'downloads' => "#{Attachment.table_name}.downloads" - - @containers = [ Project.includes(:attachments).reorder(sort_clause).find(@project.id)] - @containers += @project.versions.includes(:attachments).reorder(sort_clause).all.sort.reverse + #sort_init 'filename', 'asc' + sort_init 'created_on', 'desc' + sort_update 'created_on' => "#{Attachment.table_name}.created_on", + 'filename' => "#{Attachment.table_name}.filename", + 'size' => "#{Attachment.table_name}.filesize", + 'downloads' => "#{Attachment.table_name}.downloads" + + @containers = [ Project.includes(:attachments).reorder("attachments.created_on DESC").find(@project.id)] #modify by Long Jun + @containers += @project.versions.includes(:attachments).reorder("created_on DESC").all.sort if @project.project_type == 1 render :layout => 'base_courses' diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 581b9bb27..200810c4b 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -160,7 +160,8 @@ class IssuesController < ApplicationController respond_to do |format| format.html { render_attachment_warning_if_needed(@issue) - flash[:notice] = l(:notice_issue_successful_create, :id => view_context.link_to("##{@issue.id}", issue_path(@issue), :title => @issue.subject)) + flash[:notice] = l(:notice_issue_successful_create, :id => view_context.link_to("#{@issue.source_from}", issue_path(@issue), :title => @issue.subject)) + #flash[:notice] = l(:notice_issue_successful_create, :id => view_context.link_to("##{@issue.id}", issue_path(@issue), :title => @issue.subject)) if params[:continue] attrs = {:tracker_id => @issue.tracker, :parent_issue_id => @issue.parent_issue_id}.reject {|k,v| v.nil?} redirect_to new_project_issue_path(@issue.project, :issue => attrs) diff --git a/app/controllers/memos_controller.rb b/app/controllers/memos_controller.rb index 49e6c1764..a21086da3 100644 --- a/app/controllers/memos_controller.rb +++ b/app/controllers/memos_controller.rb @@ -87,6 +87,7 @@ class MemosController < ApplicationController respond_to do |format| format.html # show.html.erb format.json { render json: @memo } + format.xml { render xml: @memo } end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 81be8a91f..534f3f42f 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -28,7 +28,7 @@ class ProjectsController < ApplicationController # menu_item l(:label_homework), :only => :homework # menu_item l(:label_course_feedback), :only => :feedback - menu_item :homework, :only => :homework + menu_item :homework, :only => [:homework, :new_homework] menu_item :feedback, :only => :feedback menu_item l(:label_course_file), :only => :index menu_item l(:label_course_news), :only => :index @@ -296,10 +296,17 @@ class ProjectsController < ApplicationController #Ended by young def feedback + page = params[:page] + # Find the page of the requested reply @jours = @project.journals_for_messages.where('m_parent_id IS NULL').order('created_on DESC') @limit = 10 + if params[:r] && page.nil? + offset = @jours.count(:conditions => ["#{JournalsForMessage.table_name}.id > ?", params[:r].to_i]) + page = 1 + offset / @limit + end + @feedback_count = @jours.count - @feedback_pages = Paginator.new @feedback_count, @limit, params['page'] + @feedback_pages = Paginator.new @feedback_count, @limit, page @offset ||= @feedback_pages.offset @jour = @jours[@offset, @limit] @state = false @@ -632,7 +639,7 @@ class ProjectsController < ApplicationController ## 有角色参数的才是课程,没有的就是项目 @render_file = 'member_list' # 判断是否课程 - if @project.project_type == 1 + if @project.project_type == Project::ProjectType_course case params[:role] when '1' @subPage_title = l :label_teacher_list @@ -644,7 +651,7 @@ class ProjectsController < ApplicationController @subPage_title = '' @members = @project.member_principals.includes(:roles, :principal).all.sort end - else + else # @project.project_type == Project::ProjectType_project roles = Role.find_all_givable @subPage_title = l :label_member_list @members = @project.member_principals.includes(:roles, :principal).all @@ -656,7 +663,10 @@ class ProjectsController < ApplicationController def sort_project_members project, members #userGrade = UserGrade.where(:project_id => project.id) - users = UserGrade.where(:project_id => project.id).order('grade DESC').joins("LEFT JOIN users ON users.id = user_grades.id") + users = UserGrade.where(:project_id => project.id). + order('grade DESC'). + joins("LEFT JOIN users ON users.id = user_grades.id"). + select("DISTINCT user_grades.user_id") memberlist = [] users.each do |user| members.each do |member| @@ -840,7 +850,8 @@ class ProjectsController < ApplicationController def select_project_layout project = Project.find_by_id(params[:id]) project ||= @project - (project.project_type == Project::ProjectType_project) ? 'base_projects' : 'base_courses' + project ||= @course + (project.try(:project_type) == Project::ProjectType_project) ? 'base_projects' : 'base_courses' end # Validates parent_id param according to user's permissions diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index ac2a5236b..2c4dbecfe 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -20,6 +20,9 @@ class TagsController < ApplicationController # $selected_tags = Array.new # $related_tags = Array.new NUMBERS = Setting.tags_show_search_results + + # 预设几个可以添加的tag + @preTags = %w|预设A 预设B 预设C 预设D 预设E 预设F | # 接收参数解释: # params[:q]这是在其他页面点击tag,跳转到该页面后的结果显示 ;params[:selected_tags],这是在过滤页面增删tag进行过滤传过来的参数 diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 7ca9b9669..904920c5a 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -17,7 +17,7 @@ class WelcomeController < ApplicationController caches_action :robots - before_filter :entry_select, :only => [:index] + before_filter :entry_select_course, :entry_select_contest, :entry_select_user, :only => [:index] def index # @news = News.latest User.current @@ -79,12 +79,56 @@ class WelcomeController < ApplicationController @teacher = User.teacher @student = User.student end + + def contest + + end + + def search + search_condition = params[:q] + search_type = params[:search_type].to_sym unless search_condition.blank? + + respond_to do |format| + format.html{ + case search_type + when :projects + redirect_to projects_search_path(:name => search_condition, + :project_type => Project::ProjectType_project) + when :courses + redirect_to projects_search_path(:name => search_condition, + :project_type => Project::ProjectType_course) + when :users + redirect_to users_search_path(:name => search_condition) + when :users_teacher + redirect_to users_search_path(:name => search_condition, :role => :teacher) + when :users_student + redirect_to users_search_path(:name => search_condition, :role => :student) + else + redirect_to home_path, :alert => l(:label_sumbit_empty) + end + } + end + end private # 判断网站的入口,是课程 course 则跳过index去渲染 course 方法 - def entry_select + def entry_select_course (course() and render :course and return 0) if request.original_url.match(/course\.trustie\.net/) end + def entry_select_contest + if request.original_url.match(/contest\.trustie\.net/) + contest + render :contest, layout: false + return 0 + end + end + + def entry_select_user + if request.original_url.match(/user\.trustie\.net/) + redirect_to(:controller => "users", :action => "index") + return 0 + end + end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ab45d8e9a..fdb77098c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -36,13 +36,11 @@ module ApplicationHelper #Added by young #Define the course menu's link class + # 不是数组的转化成数组,然后判断当前menu_item是否在给定的列表 + # REVIEW: 目测menu的机制,貌似不是很需要转换,再说 def link_class(label) - if current_menu_item == label - @class = 'selected' - else - @class = '' - end - return @class + labels = label.is_a?(Array) ? label : ([] << label) + labels.include?(current_menu_item) ? 'selected' : '' end #Ended by young # Return true if user is authorized for controller/action, otherwise false @@ -65,7 +63,7 @@ module ApplicationHelper if user.is_a?(User) name = h(user.name(options[:format])) if user.active? || (User.current.admin? && user.logged?) - link_to name, {:controller=> 'users', :action => 'show', id: user.id, host: Setting.forge_domain}, :class => user.css_classes + link_to name, {:controller=> 'users', :action => 'show', id: user.id, host: Setting.user_domain}, :class => user.css_classes else name end @@ -1479,16 +1477,7 @@ module ApplicationHelper user.watcher_users.count end #end - #author : nyan - def stringCut240(str) - (str.length > 240) ? (str[0,240]<<"......") : str - end - #author : xianbo - def objCut12(obj) - for obj1 in obj[0..11] - obj2 = obj1 - end - end + def hadcommittedhomework(cur,curb) @attaches=HomeworkAttach.find_by_sql("select * from homework_attaches where(bid_id = #{curb})") @@ -1501,29 +1490,35 @@ module ApplicationHelper def render_dynamic_nav home_link = link_to l(:field_homepage), {:controller => 'welcome', :action => 'index'} - course_all_course_link = link_to l(:label_course_all), {:controller => 'projects', :action => 'course', :project_type => 1} - course_teacher_all_link = link_to l(:label_teacher_all), {:controller => 'users', :action => 'index', :role => 'teacher'} - courses_link = link_to l(:label_course_practice), {:controller => 'projects', :action => 'course', :project_type => 1} - projects_link = link_to l(:label_project_deposit), {:controller => 'projects', :action => 'index', :project_type => 0} - users_link = link_to l(:label_software_user), {:controller => 'users', :action => 'index'} - contest_link = link_to l(:label_contest_innovate), {:controller => 'bids', :action => 'contest', :project_type => 1 } + 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} + + course_all_course_link = link_to l(:label_course_all), {:controller => 'projects', :action => 'course', :project_type => 1, :host => Setting.course_domain} + course_teacher_all_link = link_to l(:label_teacher_all), {:controller => 'users', :action => 'index', :role => 'teacher', :host => Setting.course_domain} + courses_link = link_to l(:label_course_practice), {:controller => 'projects', :action => 'course', :project_type => 1, :host => Setting.course_domain} + projects_link = link_to l(:label_project_deposit), {:controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain} + users_link = link_to l(:label_software_user), {:controller => 'users', :action => 'index', :host => Setting.user_domain} + contest_link = link_to l(:label_contest_innovate), {:controller => 'bids', :action => 'contest', :project_type => 1 , :host => Setting.contest_domain} bids_link = link_to l(:label_requirement_enterprise), {:controller => 'bids', :action => 'index'} 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'} #@nav_dispaly_project_label nav_list = Array.new - nav_list.push(home_link) + nav_list.push(home_link) if !@nav_dispaly_home_path_label nav_list.push(course_all_course_link) if @nav_dispaly_course_all_label nav_list.push(course_teacher_all_link) if @nav_dispaly_teacher_all_label - + + nav_list.push(main_project_link) if @nav_dispaly_main_project_label + nav_list.push(main_course_link) if @nav_dispaly_main_course_label + nav_list.push(courses_link) if @nav_dispaly_course_label nav_list.push(projects_link) if @nav_dispaly_project_label nav_list.push(users_link) if @nav_dispaly_user_label nav_list.push(contest_link) if @nav_dispaly_contest_label nav_list.push(bids_link) if @nav_dispaly_bid_label nav_list.push(forum_link) if @nav_dispaly_forum_label - nav_list.push(stores_link) if !@nav_dispaly_course_all_label + nav_list.push(stores_link) if @nav_dispaly_store_all_label content_li = '' nav_list.collect do |nav_item| diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index 78e20c2a7..d474b5587 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -9,8 +9,13 @@ module CoursesHelper =end TeacherRoles = [3, 4, 7, 9] StudentRoles = [5, 10] - + AllPeople = StudentRoles+TeacherRoles ## return people count + + # 返回x项目成员数量,即roles表中定义的所有成员 + def projectCount project + searchCountByRoles project, AllPeople + end # 返回教师数量,即roles表中定义的Manager def teacherCount project diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb index f5847abbc..8da5d7c35 100644 --- a/app/helpers/issues_helper.rb +++ b/app/helpers/issues_helper.rb @@ -58,7 +58,8 @@ module IssuesHelper end def issue_heading(issue) - h("#{issue.tracker} ##{issue.id}") + #h("#{issue.tracker} ##{issue.id}") + h("#{issue.tracker} #{issue.source_from}") end def render_issue_subject_with_tree(issue) diff --git a/app/helpers/journals_helper.rb b/app/helpers/journals_helper.rb index 788bd0765..480524457 100644 --- a/app/helpers/journals_helper.rb +++ b/app/helpers/journals_helper.rb @@ -25,7 +25,7 @@ module JournalsHelper links = [] if !journal.notes.blank? links << link_to(l(:button_quote), - {:controller => 'journals', :action => 'new', :id => issue, :journal_id => journal}, + {:controller => 'journals', :action => 'new', :id => issue.id, :journal_id => journal}, :remote => true, :method => 'post', :title => l(:button_quote)) if options[:reply_links] diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 35314efcc..2d2934cc2 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -258,6 +258,22 @@ module ProjectsHelper end end + def rolesToLanguage rolesArray + rolesArray = ([] << rolesArray) unless rolesArray.is_a?(Array) + rolesArray.map{ |roleName| + case roleName.to_sym + when :Manager + l :default_role_manager + when :Developer + l :default_role_developer + when :Reporter + l :default_role_reporter + else + 'Unkown' + end + } + end + def sort_project_by_hot return sort_project_by_hot_rails @projects_status = ProjectStatus.visible.where("project_statuses.project_type <> ? or project_statuses.project_type is null", 1) @@ -285,6 +301,7 @@ module ProjectsHelper SELECT project_id,grade FROM project_statuses WHERE project_type = 0 ORDER BY grade DESC LIMIT #{limit} ) AS t ON p.id = t.project_id ") end + # 判断课程是否结束,快别用,这个定日子的方法有问题 def course_timeout? project diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index a446631d7..9d36f2bdf 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -39,6 +39,13 @@ module WelcomeHelper end end + def get_project_avatar project + if get_avatar?(project) + url_to_avatar(project) + else + '../images/avatars/Project/0' + end + end # 前略·天国の首页君/Earth has been unable stop to welcomePage's. # sum - 要搜索的项目数量 # max_rate - 新项目所占所有项目的比重,10分制 @@ -50,16 +57,33 @@ module WelcomeHelper # # Returns project&courses array def find_miracle_course(sum=10, max_rate=7) + Project.active.visible.course_entities. + joins(:course_extra). + joins(:memberships). + group('members.project_id'). + reorder("courses.time DESC, COUNT(members.project_id) DESC").take sum + # max = sum*(max_rate.to_f/10) + # c1 = find_new_course(sum).to_a.dup + # c2 = find_all_hot_course(sum).to_a.dup + # c2 = c2 - c1 + # (c1.take(max)+c2).take(sum) + end + + def find_miracle_project(sum, max_rate) max = sum*(max_rate.to_f/10) - c1 = find_new_course(sum).to_a.dup - c2 = find_all_hot_course(sum).to_a.dup - c2 = c2 - c1 - (c1.take(max)+c2).take(sum) + c1 = find_new_project(sum).to_a.dup + c2 = find_all_hot_project(sum).to_a.dup + (c2.take(sum-max)+c1.take(max)).take(sum) end - + def find_new_course limit=15 Project.visible.joins(:course_extra).where("#{Project.table_name}.project_type = ? ", 1).order("courses.time DESC, #{Project.table_name}.created_on DESC").limit(limit).all end + + def find_new_project limit=15 + Project.visible.where("#{Project.table_name}.project_type = ? ", 0).order("#{Project.table_name}.updated_on DESC, #{Project.table_name}.created_on DESC").limit(limit).all + end + def find_all_hot_project limit=15 sort_project_by_hot limit @@ -214,7 +238,7 @@ module WelcomeHelper "show_news" => true, "show_bids" => true } - activity.scope_select{|t| ['changesets', 'documents', 'memos', 'messages', 'journals_for_messages'].include?(t) ? nil : 'You may think you know what the following code does, may be. but why don"t you close this file and go play with something else, Now?' } + activity.scope_select{|t| ['changesets', 'documents', 'memos', 'messages', 'journals_for_messages', 'bids', 'news'].include?(t) ? nil : 'You may think you know what the following code does, may be. but why don"t you close this file and go play with something else, Now?' } activity.events_welcome(nil, nil, {:limit => limit, :types => 'welcome'}) end diff --git a/app/models/issue.rb b/app/models/issue.rb index cc321aad0..43bc6537d 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -56,8 +56,11 @@ class Issue < ActiveRecord::Base :include => [:project, :visible_journals], # sort by id so that limited eager loading doesn't break with postgresql :order_column => "#{table_name}.id" - acts_as_event :title => Proc.new {|o| "#{o.tracker.name} ##{o.id} (#{o.status}): #{o.subject}"}, - :url => Proc.new {|o| {:controller => 'issues', :action => 'show', :id => o.id}}, + acts_as_event :title => Proc.new {|o| + #"#{o.tracker.name} ##{o.id} (#{o.status}): #{o.subject}" + "#{o.tracker.name} #{o.source_from} (#{o.status}): #{o.subject}" + }, + :url => Proc.new {|o| {:controller => 'issues', :action => 'show', :id => o}}, :type => Proc.new {|o| 'issue' + (o.closed? ? ' closed' : '') } acts_as_activity_provider :find_options => {:include => [:project, :author, :tracker]}, @@ -212,9 +215,14 @@ class Issue < ActiveRecord::Base @workflow_rule_by_attribute = nil @assignable_versions = nil @relations = nil + @to_param = nil base_reload(*args) end + def to_param + @to_param ||= "#{id}_#{self.project.name}(#{self.project.issues.index(self).to_i+1}-#{self.project.issues.count})"#.parameterize + end + # Overrides Redmine::Acts::Customizable::InstanceMethods#available_custom_fields def available_custom_fields (project && tracker) ? (project.all_issue_custom_fields & tracker.custom_fields.all) : [] @@ -1139,6 +1147,12 @@ class Issue < ActiveRecord::Base Project.all(:conditions => Project.allowed_to_condition(user, :move_issues)) end + # back string obj which is belong to project. + def source_from + "" << self.project.name.to_s << + "#" << (self.project.issues.index(self).to_i + 1).to_s + end + private def after_project_change diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index 426d1b56b..2c4f10886 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -27,8 +27,10 @@ class JournalsForMessage < ActiveRecord::Base :datetime => Proc.new {|o| o.updated_on }, :author => Proc.new {|o| o.user }, :description => Proc.new{|o| o.notes }, - :type => Proc.new {|o| o.jour_type }#, - #:url => Proc.new {|o| ''}#{:controller => 'documents', :action => 'show', :id => o.id}} + :type => Proc.new {|o| o.jour_type }, + :url => Proc.new {|o| + (o.jour.kind_of? Project) ? {:controller => 'projects', :action => 'feedback', :id => o.jour, :r => o.id, :anchor => "word_li_#{o.id}"} : {} + }#{:controller => 'documents', :action => 'show', :id => o.id}} acts_as_activity_provider :author_key => :user_id, :timestamp => "#{self.table_name}.updated_on", :find_options => {:include => :project } diff --git a/app/models/project.rb b/app/models/project.rb index 3f91d8c2f..fd576b637 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -152,8 +152,8 @@ class Project < ActiveRecord::Base where("LOWER(identifier) LIKE :p OR LOWER(name) LIKE :p ", :p => pattern) end } - scope :project_entities, -> { where(project_type: 0) } - scope :course_entities, -> { where(project_type: 1) } + scope :project_entities, -> { where(project_type: ProjectType_project) } + scope :course_entities, -> { where(project_type: ProjectType_course) } def new_course self.where('project_type = ?', 1) diff --git a/app/views/files/index.html.erb b/app/views/files/index.html.erb index a6dcc32c1..e2bad8e91 100644 --- a/app/views/files/index.html.erb +++ b/app/views/files/index.html.erb @@ -215,6 +215,7 @@ div.pagination{
+ <% @preTags = %w|预设A 预设B 预设C 预设D 预设E 预设Z | %> <%= render :partial => 'tags/tag', :locals => {:obj => file, :object_flag => "6"}%>
diff --git a/app/views/issues/_list.html.erb b/app/views/issues/_list.html.erb index ed4407fa9..2b17b4fb1 100644 --- a/app/views/issues/_list.html.erb +++ b/app/views/issues/_list.html.erb @@ -30,7 +30,8 @@ <% end -%> diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index bd475a3a3..9b05e64d6 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -4,7 +4,7 @@ :html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }, :class => 'icon icon-add' %> <%= link_to l(:label_query), '#', :class => 'icon icon-help', - :onclick => '$("#custom_query").slideToggle(400); ' if User.current.logged? %> + :onclick => '$("#custom_query").slideToggle(400); ' if true || User.current.logged? %> diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 7166f306f..169f1a107 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -1,3 +1,6 @@ +<%# html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %> +<% html_title "#{@issue.tracker.name} #{@issue.source_from}: #{@issue.subject}" %> + <%= render :partial => 'action_menu' %>

<%= issue_heading(@issue) %>

@@ -9,14 +12,14 @@ <% end %> @@ -87,7 +90,7 @@ end %> <% if @issue.description? %>
- <%= link_to l(:button_quote), quoted_issue_path(@issue), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %> + <%= link_to l(:button_quote), quoted_issue_path(@issue.id), :remote => true, :method => 'post', :class => 'icon icon-comment' if authorize_for('issues', 'edit') %>

<%=l(:field_description)%>

@@ -152,7 +155,6 @@ end %> <%= f.link_to 'PDF' %> <% end %> -<% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %> <% content_for :sidebar do %> <%= render :partial => 'issues/sidebar' %> diff --git a/app/views/layouts/_base_header.html.erb b/app/views/layouts/_base_header.html.erb index 2cb5fafa0..8a066d4f8 100644 --- a/app/views/layouts/_base_header.html.erb +++ b/app/views/layouts/_base_header.html.erb @@ -1,6 +1,39 @@ +<% + request.headers['REQUEST_URI'] = "" if request.headers['REQUEST_URI'].nil? + realUrl = request.original_url + if (realUrl.match(/users/)) + @nav_dispaly_home_path_label = 1 + @nav_dispaly_main_course_label = 1 + @nav_dispaly_main_project_label = 1 + elsif (realUrl.match(/contest/)) + @nav_dispaly_contest_label = 1 + elsif (realUrl.match(/calls/)) + @nav_dispaly_home_path_label = 1 + @nav_dispaly_bid_label = 1 + elsif (realUrl.match(/forums/)) + @nav_dispaly_forum_label = 1 + elsif (realUrl.match(/forge\.trustie\.net\/*/)) + @nav_dispaly_project_label = 1 + @nav_dispaly_forum_label = 1 + elsif (realUrl.match(/course\.trustie\.net\/*/)) + @nav_dispaly_course_all_label = 1 + @nav_dispaly_forum_label = 1 + @nav_dispaly_store_all_label = 1 + elsif (realUrl.match(/user\.trustie\.net\/*/)) + @nav_dispaly_home_path_label = 1 + @nav_dispaly_main_course_label = 1 + @nav_dispaly_main_project_label = 1 + else + @nav_dispaly_course_all_label = 1 + @nav_dispaly_forum_label = 1 + @nav_dispaly_bid_label = 1 + @nav_dispaly_contest_label = 1 + @nav_dispaly_store_all_label = 1 + end +%>
<%= render_menu :account_menu -%> @@ -15,11 +48,11 @@
  • <%=link_to l(:label_my_course), {:controller => 'users', :action => 'user_courses', id: User.current.id, host: Setting.course_domain} %>
  • <% end -%>
  • <%=link_to l(:label_my_projects),{:controller => 'users', :action => 'user_projects', id: User.current.id, host: Setting.project_domain} %>
  • -
  • <%=link_to l(:label_user_edit), {:controller => 'my', :action=> 'account', host: Setting.forge_domain}%>
  • +
  • <%=link_to l(:label_user_edit), {:controller => 'my', :action=> 'account', host: Setting.user_domain}%>
  • - <%=link_to l(:label_my_message)+'('+User.current.count_new_jour.to_s+')', { :controller => 'users', :action => 'user_newfeedback', id: User.current.id, host: Setting.forge_domain }, {:class => 'my-message'} if User.current.logged?%> + <%=link_to l(:label_my_message)+'('+User.current.count_new_jour.to_s+')', { :controller => 'users', :action => 'user_newfeedback', id: User.current.id, host: Setting.user_domain }, {:class => 'my-message'} if User.current.logged?%>
  • diff --git a/app/views/layouts/base.html.erb b/app/views/layouts/base.html.erb index 421e76050..fe42d00e8 100644 --- a/app/views/layouts/base.html.erb +++ b/app/views/layouts/base.html.erb @@ -1,39 +1,3 @@ -<% - request.headers['REQUEST_URI'] = "" if request.headers['REQUEST_URI'].nil? - realUrl = request.original_url - if (realUrl.match(/project\/course/)) - @nav_dispaly_course_label = 1 - elsif (realUrl.match(/projects/)) - @nav_dispaly_project_label = 1 - elsif (realUrl.match(/users/)) - @nav_dispaly_user_label = 1 - elsif (realUrl.match(/contest/)) - @nav_dispaly_contest_label = 1 - elsif (realUrl.match(/calls/)) - @nav_dispaly_bid_label = 1 - elsif (realUrl.match(/forums/)) - @nav_dispaly_forum_label = 1 - elsif (realUrl.match(/[^projects]\/course[^\.]/)) - @nav_dispaly_course_label = 1 - @nav_dispaly_project_label = 1 - @nav_dispaly_contest_label = 1 - elsif (realUrl.match(/course\.trustie\.net/)) - @nav_dispaly_course_all_label = 1 - @nav_dispaly_teacher_all_label = 1 - @nav_dispaly_forum_label = 1 - elsif (realUrl.match(/forge\.trustie\.net/)) - @nav_dispaly_project_label = 1 - @nav_dispaly_user_label = 1 - @nav_dispaly_forum_label = 1 - else - @nav_dispaly_course_label = 1 - @nav_dispaly_project_label = 1 - @nav_dispaly_user_label = 1 - @nav_dispaly_contest_label = 1 - @nav_dispaly_bid_label = 1 - @nav_dispaly_forum_label = 1 - end -%> diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb index 956c608b3..91c58a0c6 100644 --- a/app/views/layouts/base_courses.html.erb +++ b/app/views/layouts/base_courses.html.erb @@ -218,13 +218,13 @@ <%= link_to l(:label_homework), homework_project_path(@project), :class => link_class(:homework) ,:project_type => 1 %>
  • - <%= link_to l(:label_course_news), {:controller => 'news', :action => 'index', :project_id => @project}, :class => link_class(:news) %> + <%= link_to l(:label_course_file), project_files_path(@project), :class => link_class(:files)%>
  • - <%= link_to l(:label_course_board), { :controller => 'boards', :action => 'index', :project_id => @project}, :class => link_class(:boards) %> + <%= link_to l(:label_course_news), {:controller => 'news', :action => 'index', :project_id => @project}, :class => link_class(:news) %>
  • - <%= link_to l(:label_course_file), project_files_path(@project), :class => link_class(:files)%> + <%= link_to l(:label_course_board), { :controller => 'boards', :action => 'index', :project_id => @project}, :class => link_class(:boards) %>
  • <%= link_to l(:label_course_feedback), project_feedback_path(@project), :class => link_class(:feedback)%> diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb index b95dc8ac8..dd2de21b7 100644 --- a/app/views/layouts/mailer.html.erb +++ b/app/views/layouts/mailer.html.erb @@ -19,8 +19,8 @@ hr { border: 0; } .footer { - font-size: 0.8em; - font-style: italic; + /*font-size: 0.8em;*/ + /*font-style: italic;*/ } diff --git a/app/views/projects/_member_list.html.erb b/app/views/projects/_member_list.html.erb index 0c3ee6b2b..ce5dfc694 100644 --- a/app/views/projects/_member_list.html.erb +++ b/app/views/projects/_member_list.html.erb @@ -21,8 +21,7 @@

  • <% else%> - - <%= content_tag "div", content_tag("p", member.roles.sort.collect(&:to_s).join(', ')), :class => "clear avatar_name" %> + <%= content_tag "div", content_tag("p", rolesToLanguage(member.roles.sort.collect(&:to_s)).join(', ')), :class => "clear avatar_name" %>

    <%= l(:label_user_for_project_grade) %>: <%= UserGrade.find_by_user_id_and_project_id(member[:user_id], @project.id).grade %> diff --git a/app/views/projects/new.html.erb b/app/views/projects/new.html.erb index a85ee280b..7044d69dd 100644 --- a/app/views/projects/new.html.erb +++ b/app/views/projects/new.html.erb @@ -3,12 +3,14 @@ <% if @course_tag == '1' %>

    <%=l(:label_course_new)%>

    +

    <%=raw l(:label_course_news_description)%>

    <%= render :partial => 'course_form', :locals => { :f => f } %> <%= 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"%> diff --git a/app/views/tags/_tag.html.erb b/app/views/tags/_tag.html.erb index 7eb360d53..0d9467025 100644 --- a/app/views/tags/_tag.html.erb +++ b/app/views/tags/_tag.html.erb @@ -48,6 +48,22 @@ <%= f.text_field :object_id,:value=> obj.id,:style=>"display:none"%> <%= f.text_field :object_flag,:value=> object_flag,:style=>"display:none"%> <%= f.submit l(:button_project_tags_add),:class => "small" %> + <%#= link_to_function l(:button_cancel), "$(\"#put-tag-form-#{obj.class}-#{obj.id}\").hide();"%> <% end %>
    diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index bf96cd3f5..6ce5e2095 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -113,7 +113,7 @@ <%= link_to(h(e.user), user_path(e.user_id)) %> <%= l(:label_new_activity) %> <%= link_to format_activity_title("#{act.board.name}: #{act.subject}"), {:controller => 'messages', :action => 'show', :board_id => act.board_id}.merge(act.parent_id.nil? ? {:id => act.id} : {:id => act.parent_id, :r => act.id, :anchor => "message-#{act.id}"}) %> <% end %> -

    <%= h stringCut240(act.content) %>

    +

    <%= h act.content.truncate(240, omission: '...') %>

    @@ -158,9 +158,9 @@ <% when 'Issue' %> <% if e.user == User.current%> - <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> <%= l(:label_i_new_activity) %> <%= link_to(l(:label_activity_project)+act.project.name, project_path(act.project.identifier))%> <%= link_to format_activity_title("#{act.tracker.name} ##{act.id} (#{act.status}): #{act.subject}"), {:controller => 'issues', :action => 'show', :id => act.id} %> + <%= link_to("#{l(:label_i)}", user_path(e.user_id)) %> <%= l(:label_i_new_activity) %> <%= link_to format_activity_title("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"), {:controller => 'issues', :action => 'show', :id => act.id} %> <% else %> - <%= link_to(h(e.user), user_path(e.user_id)) %> <%= l(:label_new_activity) %> <%= link_to(l(:label_activity_project)+act.project.name, project_path(act.project.identifier))%> <%= link_to format_activity_title("#{act.tracker.name} ##{act.id} (#{act.status}): #{act.subject}"), {:controller => 'issues', :action => 'show', :id => act.id} %> + <%= link_to(h(e.user), user_path(e.user_id)) %> <%= l(:label_new_activity) %> <%= link_to format_activity_title("#{act.source_from} (#{act.status}): #{act.tracker.name} #{act.subject}"), {:controller => 'issues', :action => 'show', :id => act.id} %> <% end %>

    <%= textilizable act.description %>

    @@ -253,6 +253,6 @@ <% end %> \ No newline at end of file diff --git a/app/views/users/user_activities.html.erb b/app/views/users/user_activities.html.erb index 44447d47c..faea90fd3 100644 --- a/app/views/users/user_activities.html.erb +++ b/app/views/users/user_activities.html.erb @@ -1,21 +1,21 @@ - +<%# end %> --> <% unless @events_by_day.empty? %> diff --git a/app/views/welcome/_search_project.html.erb b/app/views/welcome/_search_project.html.erb index a082a6dcf..fda9dae7c 100644 --- a/app/views/welcome/_search_project.html.erb +++ b/app/views/welcome/_search_project.html.erb @@ -1,7 +1,58 @@ -<%= form_tag(:controller => 'projects', :action => "search", :method => :get) do %> +<% + select_option = [] + (select_option << ['项目', 'projects']) if project_type == Project::ProjectType_project + (select_option << ['课程', 'courses']) if project_type == Project::ProjectType_course + select_option << ['用户', 'users'] + #select_option << ['教师', 'users_teacher'], + #select_option << ['学生', 'users_student'] +%> + +<%= form_tag({controller: :welcome, action: :search }, method: :get) do %> -<% end %> \ No newline at end of file +
    +<% end %> diff --git a/app/views/welcome/contest.html.erb b/app/views/welcome/contest.html.erb new file mode 100644 index 000000000..6a0a8413f --- /dev/null +++ b/app/views/welcome/contest.html.erb @@ -0,0 +1,9 @@ +
    +
    + 正在升级中。。。。。。。。。。。。 +
    +
    +
    + + + diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb index 517e81f30..db1c1ea81 100644 --- a/app/views/welcome/course.html.erb +++ b/app/views/welcome/course.html.erb @@ -1,3 +1,4 @@ +<%= stylesheet_link_tag 'welcome' %> @@ -92,10 +98,10 @@
    - <%= l(:label_welcome_trustie) %> , <%= l(:label_welcome_trustie_description) %> + <%= l(:label_welcome_trustie) %><%= l(:label_welcome_trustie_course) %> , <%= l(:label_welcome_trustie_course_description) %>
    @@ -104,30 +110,42 @@
    -<%= stylesheet_link_tag 'welcome' %>
    -

    新开课程

    - <%= link_to "更多>>", {:controller => 'projects', :action => 'course', :project_type => 1}, :target => "_blank" %> +

    新开课程

    + <%= link_to "更多>>", {:controller => 'projects', :action => 'course', :project_type => 1} %>
      <% find_miracle_course(10, 7).map do |project| %> -
    • -
      +
    • > +
      <%= image_tag(get_course_avatar(project), :class => "avatar-4") %>
      -
      - [<%= get_course_term project %>] - <%#= join_in_course(project, User.current) %> +
      + [<%= get_course_term project %>] <%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%> (<%= link_to "#{studentCount(project)}人", project_member_path(project, :role => 2) ,:course =>'1' %>) + <% files_count = (project.attachments.count.to_i+Version.joins(:project).where("projects.id=#{project.id}").count.to_i).to_s %> + (<%=link_to "#{files_count}份", project_files_path(project) %>资料)
      -
      - ><%=project.description.truncate(25, omission: '...')%> +
      + + <% course = Course.find_by_extra(project.identifier) %> + <%= course.teacher.user_extensions.occupation.try(:gsub, /(.+)$/, '\1:') %> + + + <%= link_to(course.try(:teacher).try(:name), user_path(course.teacher)) %> + <%#=course.try(:teacher).try(:name)%> +
      -
      + +
    • @@ -136,7 +154,7 @@
    -
    +