From bcc8abdee9e514878f91a2f6b56b34e7963457a5 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 09:27:13 +0800 Subject: [PATCH 01/13] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E7=9B=B8=E5=85=B3=E6=95=B0=E6=8D=AE=E8=A1=A8=202?= =?UTF-8?q?=E3=80=81=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=BB=87=E5=92=8C=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=9A=84=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/organization.rb | 5 +++++ app/models/project.rb | 4 +++- db/migrate/20150305011023_create_organizations.rb | 10 ++++++++++ .../20150305011359_add_organization_to_project.rb | 9 +++++++++ db/schema.rb | 10 +++++++++- spec/models/organization_spec.rb | 5 +++++ 6 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 app/models/organization.rb create mode 100644 db/migrate/20150305011023_create_organizations.rb create mode 100644 db/migrate/20150305011359_add_organization_to_project.rb create mode 100644 spec/models/organization_spec.rb diff --git a/app/models/organization.rb b/app/models/organization.rb new file mode 100644 index 000000000..5f52dee98 --- /dev/null +++ b/app/models/organization.rb @@ -0,0 +1,5 @@ +class Organization < ActiveRecord::Base + attr_accessible :logo_link, :name + + has_many :projects +end diff --git a/app/models/project.rb b/app/models/project.rb index df403bb5c..3ac29249f 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -90,7 +90,9 @@ class Project < ActiveRecord::Base :association_foreign_key => 'custom_field_id' has_many :tags, :through => :project_tags, :class_name => 'Tag' - has_many :project_tags, :class_name => 'ProjectTags' + has_many :project_tags, :class_name => 'ProjectTags' + + belongs_to :organization # has_many :journals diff --git a/db/migrate/20150305011023_create_organizations.rb b/db/migrate/20150305011023_create_organizations.rb new file mode 100644 index 000000000..798c526c5 --- /dev/null +++ b/db/migrate/20150305011023_create_organizations.rb @@ -0,0 +1,10 @@ +class CreateOrganizations < ActiveRecord::Migration + def change + create_table :organizations do |t| + t.string :name + t.string :logo_link + + t.timestamps + end + end +end diff --git a/db/migrate/20150305011359_add_organization_to_project.rb b/db/migrate/20150305011359_add_organization_to_project.rb new file mode 100644 index 000000000..4bf8c4c88 --- /dev/null +++ b/db/migrate/20150305011359_add_organization_to_project.rb @@ -0,0 +1,9 @@ +class AddOrganizationToProject < ActiveRecord::Migration + def up + add_column :projects, :organization_id, :integer + end + + def down + remove_column :projects, :organization_id + end +end diff --git a/db/schema.rb b/db/schema.rb index d7a1b18bc..d0bee8db6 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 => 20150128032421) do +ActiveRecord::Schema.define(:version => 20150305011359) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -802,6 +802,13 @@ ActiveRecord::Schema.define(:version => 20150128032421) do t.integer "project_id" end + create_table "organizations", :force => true do |t| + t.string "name" + t.string "logo_link" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "poll_answers", :force => true do |t| t.integer "poll_question_id" t.text "answer_text" @@ -926,6 +933,7 @@ ActiveRecord::Schema.define(:version => 20150128032421) do t.integer "user_id" t.integer "dts_test", :default => 0 t.string "enterprise_name" + t.integer "organization_id" end add_index "projects", ["lft"], :name => "index_projects_on_lft" diff --git a/spec/models/organization_spec.rb b/spec/models/organization_spec.rb new file mode 100644 index 000000000..6f6f99fb4 --- /dev/null +++ b/spec/models/organization_spec.rb @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe Organization do + pending "add some examples to (or delete) #{__FILE__}" +end From d1edd86e11108629c6b4cbfaccea4c0614b6e95b Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 10:40:10 +0800 Subject: [PATCH 02/13] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E9=A6=96=E9=A1=B5=E9=A1=B9=E7=9B=AE=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=202=E3=80=81=E4=BF=AE=E6=94=B9=E6=AD=A4=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E9=A1=B9=E7=9B=AE=E6=97=B6=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/welcome_controller.rb | 36 ++++++++-------- app/views/welcome/_hot_projects_list.html.erb | 4 +- app/views/welcome/index.html.erb | 41 +++++++++---------- 3 files changed, 42 insertions(+), 39 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index db2f287eb..4ee5ddbf1 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -27,28 +27,31 @@ class WelcomeController < ApplicationController def index # 企业版定制: params[:project]为传过来的参数 unless params[:organization].nil? - @cur_projects = Project.find(params[:organization]) - @organization = @cur_projects.enterprise_name - @organization_projects = (current_user.admin? || User.current.member_of?(@cur_projects)) ? Project.where("enterprise_name =? ", @organization) : Project.all_public.where("enterprise_name =? ", @organization) - @e_count = @organization_projects.count - @part_projects = [] - # 取十个 - @organization_projects.each do |obj| - break if(@organization_projects[10] == obj) - @part_projects << Project.visible.find_by_id("#{obj.id}") unless obj.id.nil? - end - # 不够十个的用最火项目替代 - @e_count < 9 ? @part_projects = find_miracle_project( 9 - @e_count, 3,"score desc") : @part_projects - # 配置文件首页定制 + @organization = Organization.find params[:organization] + @organization_projects = Project.visible.joins(:project_status).joins("LEFT JOIN project_scores ON projects.id = project_scores.project_id").where("projects.organization_id = ?", 1).order("score DESC").limit(10).all + @part_projects = @organization_projects.count < 9 ? find_miracle_project( 9 - @organization_projects.count, 3,"score desc") : [] + # @cur_projects = Project.find(params[:organization]) + # @organization = @cur_projects.enterprise_name + # @organization_projects = (current_user.admin? || User.current.member_of?(@cur_projects)) ? Project.where("enterprise_name =? ", @organization) : Project.all_public.where("enterprise_name =? ", @organization) + # @e_count = @organization_projects.count + # @part_projects = [] + # # 取十个 + # @organization_projects.each do |obj| + # break if(@organization_projects[10] == obj) + # @part_projects << Project.visible.find_by_id("#{obj.id}") unless obj.id.nil? + # end + # # 不够十个的用最火项目替代 + # @e_count < 9 ? @part_projects = find_miracle_project( 9 - @e_count, 3,"score desc") : @part_projects + # # 配置文件首页定制 @enterprise_page = FirstPage.find_by_page_type('enterprise') if @enterprise_page.nil? @enterprise_page = FirstPage.new @enterprise_page.page_type = 'enterprise' end - # 主页配置部分结束 - + # 主页配置部分结束 end # end 企业版定制结束 + if @first_page.nil? || @first_page.sort_type.nil? @projects = find_miracle_project(10, 3,"score desc") else @@ -74,7 +77,8 @@ class WelcomeController < ApplicationController @projects = @projects_all.order("score desc") end end - + rescue Exception => e + render_404 end def robots diff --git a/app/views/welcome/_hot_projects_list.html.erb b/app/views/welcome/_hot_projects_list.html.erb index 92e1469cd..d14a6901b 100644 --- a/app/views/welcome/_hot_projects_list.html.erb +++ b/app/views/welcome/_hot_projects_list.html.erb @@ -5,7 +5,9 @@
<% unless project.is_public %> - <%= l(:label_private) %> + + <%= l(:label_private) %> + <% end %> <%= link_to( project.name, project_path(project.id), :class => "d-g-blue d-p-project-name",:title => "#{project.name}" )%> (<%= link_to l(:label_project_member_amount, :count=>projectCount(project)), project_member_path(project) ,:course =>'0' %>) diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 3e0a50ceb..76ca25743 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -35,7 +35,7 @@ <% if get_avatar?(@first_page) %> <%= image_tag(url_to_avatar(@first_page), width:@first_page.image_width,height: @first_page.image_height) %> <% else %> - <%= image_tag '/images/transparent.png', width:@first_page.image_width,height: @first_page.image_height %> + <%= image_tag @organization.logo_link, width:@first_page.image_width,height: @first_page.image_height %> <% end %> <% else %> <%= image_tag(url_to_avatar(@enterprise_page), width:@first_page.image_width,height: @first_page.image_height) %> @@ -47,9 +47,9 @@ <%= @first_page.description.html_safe %> <% end %> <% else %> - - <%= @organization %> - + + <%= @organization.name %> +
<%= @enterprise_page.title %> @@ -86,24 +86,21 @@ <% end; reset_cycle %> <% else %> - <% if @e_count == 0 %> -
<%= l(:label_enterprise_tips) %>
- <% @projects.map do |project| %> - <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> - <% end %> - <% elsif @e_count < 10 %> - <% @organization_projects.map do |project| %> - <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> - <% end %> -
<%= l(:label_part_enterprise_tips) %>
- <% @part_projects.map do |project| %> - <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> - <% end %> - <% else %> - <% @part_projects.map do |project| %> - <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> - <% end %> - <% end %> + <% if @part_projects.empty? %> + <% @projects.map do |project| %> + <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> + <% end %> + <% else %> + <% @organization_projects.map do |project| %> + <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> + <% end %> +
+ <%= l(:label_part_enterprise_tips) %> +
+ <% @part_projects.map do |project| %> + <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> + <% end %> + <% end %> <% end %>
From dead08a0d6a220ed96516d880de481109ed0f2d7 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 11:53:28 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A1=B9=E7=9B=AE=E5=A2=9E=E5=8A=A0=E6=89=80=E5=B1=9E?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E7=9A=84=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 2 ++ app/helpers/projects_helper.rb | 11 +++++++ app/views/projects/_form.html.erb | 45 ++++++++++++++++++++------ app/views/projects/new.html.erb | 4 ++- config/locales/zh.yml | 2 +- 5 files changed, 53 insertions(+), 11 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 41ec5fbf4..dea9c21ec 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -179,6 +179,7 @@ class ProjectsController < ApplicationController @trackers = Tracker.sorted.all @project = Project.new @project.safe_attributes = params[:project] + @project.organization_id = params[:organization_id] if validate_parent_id && @project.save @project.set_allowed_parent!(params[:project]['parent_id']) if params[:project].has_key?('parent_id') # Add current user as a project member if he is not admin @@ -404,6 +405,7 @@ class ProjectsController < ApplicationController def update @project.safe_attributes = params[:project] + @project.organization_id = params[:organization_id] #@project.dts_test = params[:project][:dts_test] if validate_parent_id && @project.save @course = Course.find_by_extra(@project.identifier) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index fe6714186..ccc750462 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -371,4 +371,15 @@ module ProjectsHelper return projects end + + def project_organizations_id_option + type = [] + Organization.all.each do |org| + option = [] + option << org.name + option << org.id + type << option + end + type + end end diff --git a/app/views/projects/_form.html.erb b/app/views/projects/_form.html.erb index 636aadf43..d0544cadb 100644 --- a/app/views/projects/_form.html.erb +++ b/app/views/projects/_form.html.erb @@ -1,35 +1,62 @@ <%= error_messages_for 'project' %> <% unless @project.new_record? %> -

<%= render :partial=>"avatar/avatar_form",:locals=> {source:@project} %>

+

+ <%= render :partial=>"avatar/avatar_form",:locals=> {source:@project} %> +

<% end %> -

<%= f.text_field :name, :required => true, :size => 60, :style => "width:490px;" %>

+

+ <%= f.text_field :name, :required => true, :size => 60, :style => "width:490px;" %> +

<%= f.text_area :description, :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;margin-left:10px;" %>

-

<%= f.text_field :enterprise_name, :size => 60, :style => "width:490px;" %>

-

<%= f.text_field :identifier, :required => true, :size => 60, :style => "width:488px;", :disabled => @project.identifier_frozen?, :maxlength => Project::IDENTIFIER_MAX_LENGTH, +

+ <%#= f.text_field :enterprise_name, :size => 60, :style => "width:490px;" %> + + <%= select_tag :organization_id,options_for_select(project_organizations_id_option,@project.organization_id),{} %> +

+

+ <%= f.text_field :identifier, :required => true, :size => 60, :style => "width:488px;", :disabled => @project.identifier_frozen?, :maxlength => Project::IDENTIFIER_MAX_LENGTH, value:"#{User.current.id.to_s + '_' +Time.now.to_s.gsub(' ','_').gsub(':','').gsub('+','')}" %> <% unless @project.identifier_frozen? %> - <%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %> + + <%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> + <%= l(:text_project_identifier_info).html_safe %> + <% end %>

-

<%= f.check_box :is_public, :style => "margin-left:10px;" %>

-

<%= f.check_box :hidden_repo, :style => "margin-left:10px;" %>

+

+ + <%= f.check_box :is_public, :style => "margin-left:10px;" %> + +

+

+ + <%= f.check_box :hidden_repo, :style => "margin-left:10px;" %> + +

-

<%= f.text_field :project_type, :value => 0 %>

+

+ <%= f.text_field :project_type, :value => 0 %> +

<%= wikitoolbar_for 'project_description' %> <% @project.custom_field_values.each do |value| %> -

<%= custom_field_tag_with_label :project, value %>

+

+ <%= custom_field_tag_with_label :project, value %> +

<% end %> <%= call_hook(:view_projects_form, :project => @project, :form => f) %> diff --git a/app/views/projects/new.html.erb b/app/views/projects/new.html.erb index b68fcb5bc..57afc6c08 100644 --- a/app/views/projects/new.html.erb +++ b/app/views/projects/new.html.erb @@ -4,7 +4,9 @@ <%= labelled_form_for @project do |f| %>

<%=l(:label_project_new)%>

-

<%=raw l(:label_project_new_description)%>

+

+ <%=raw l(:label_project_new_description)%> +

<%= render :partial => 'form', :locals => { :f => f } %> <%= submit_tag l(:button_create), :class => "enterprise"%> diff --git a/config/locales/zh.yml b/config/locales/zh.yml index aa153cda6..e9efa7fba 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -247,7 +247,7 @@ zh: label_course_closed_tips: "确定要%{desc}课程?" # end field_name: 名称 - field_enterprise_name: 组织名称 + field_enterprise_name: 组织 label_week_mail: 一周动态 label_day_mail: 一日动态 From 3b4bf8b99d26cb870ce2e7edb0c5aa7c96471a46 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 14:15:07 +0800 Subject: [PATCH 04/13] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E7=9A=84index=E7=95=8C=E9=9D=A2=EF=BC=8C=E4=BB=A5=E5=8F=8Ainde?= =?UTF-8?q?x=E7=95=8C=E9=9D=A2=E5=88=B0=E7=BB=84=E7=BB=87=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E7=9A=84=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/organization_controller.rb | 10 +++++++ app/controllers/organizations_controller.rb | 6 ---- app/views/organization/index.html.erb | 31 +++++++++++++++++++++ app/views/organizations/index.html.erb | 23 --------------- config/routes.rb | 8 +++--- 5 files changed, 45 insertions(+), 33 deletions(-) create mode 100644 app/controllers/organization_controller.rb delete mode 100644 app/controllers/organizations_controller.rb create mode 100644 app/views/organization/index.html.erb delete mode 100644 app/views/organizations/index.html.erb diff --git a/app/controllers/organization_controller.rb b/app/controllers/organization_controller.rb new file mode 100644 index 000000000..ef0919ced --- /dev/null +++ b/app/controllers/organization_controller.rb @@ -0,0 +1,10 @@ +class OrganizationController < ApplicationController + layout 'project_base' + def index + #@projects = Project.find_by_sql("SELECT * FROM projects WHERE id IN (select MAX(id) from projects GROUP BY enterprise_name)") + @organizations = Organization.all + respond_to do |format| + format.html + end + end +end diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb deleted file mode 100644 index c9cce5752..000000000 --- a/app/controllers/organizations_controller.rb +++ /dev/null @@ -1,6 +0,0 @@ -class OrganizationsController < ApplicationController - layout 'project_base' - def index - @projects = Project.find_by_sql("SELECT * FROM projects WHERE id IN (select MAX(id) from projects GROUP BY enterprise_name)") - end -end diff --git a/app/views/organization/index.html.erb b/app/views/organization/index.html.erb new file mode 100644 index 000000000..2f657831a --- /dev/null +++ b/app/views/organization/index.html.erb @@ -0,0 +1,31 @@ + + <%= l(:label_all_enterprises) %> + +
+
+ <%= l(:label_all_enterprises) %> +
+
+ <% if @organizations.empty? %> +

+ <%= l(:label_enterprise_nil) %> +

+ <% else %> + <% @organizations.each do |organization| %> + <% unless organization.name.blank? %> +
    +
  • + #{project.enterprise_name} + <%= link_to organization.name, home_path(:organization => organization.id) %> +
  • +
+ <% end %> + <% end %> + <% end %> +
+
+
+
+
    +
    +<% html_title(l(:label_enterprise_all)) -%> diff --git a/app/views/organizations/index.html.erb b/app/views/organizations/index.html.erb deleted file mode 100644 index 45813ced5..000000000 --- a/app/views/organizations/index.html.erb +++ /dev/null @@ -1,23 +0,0 @@ -<%= l(:label_all_enterprises) %> -
    -
    <%= l(:label_all_enterprises) %>
    -
    - <% if @projects.count == 0 %> -

    <%= l(:label_enterprise_nil) %>

    - <% else %> - <% @projects.each do |organization| %> - <% unless organization.enterprise_name.blank? %> -
      -
    • #{project.enterprise_name} - <%= link_to organization.enterprise_name, home_path(:organization => organization) %>
    • -
    - <% end %> - <% end %> - <% end %> -
    -
    -
    -
    -
      -
      -<% html_title(l(:label_enterprise_all)) -%> diff --git a/config/routes.rb b/config/routes.rb index bf0b73e8d..6756a713d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -26,9 +26,6 @@ # Example: :via => :get ====> :via => :get RedmineApp::Application.routes.draw do - get "organizations/index" - - #match '/contests/:id/contestnotifications', :controller => 'contestnotifications', :action => 'index' mount Mobile::API => '/api' @@ -39,6 +36,10 @@ RedmineApp::Application.routes.draw do resources :apply_project_masters delete 'apply_project_masters', :to => 'apply_project_masters#delete' + resources :organization, :only => [:index] do + + end + resources :homework_attach do collection do get 'get_homework_member_list' @@ -390,7 +391,6 @@ RedmineApp::Application.routes.draw do match '/statistics', :to => 'projects#statistics', :as => 'statistics', :via => :get # match '/investor', :controller => 'projects', :action => 'investor', :as => 'investor', :via => :get match '/homework', :to => 'projects#homework', :as => 'homework', :via => :get - match 'organizations', :to => 'organizations#index', :as => 'index', :via => :get # match '/activity', :controller => 'activities', :action => 'index', :as => 'activity', :via => :get # match '/repository', :controller => 'repositories', :action => 'show', :repository_id => nil, :path => nil, :rev => nil, :as => 'repository', :via => :get From 45fe622f26a933ed3a6c1208a94cd22d31c1c1b8 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 14:42:46 +0800 Subject: [PATCH 05/13] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E7=B3=BB=E7=BB=9F=E9=A6=96=E9=A1=B5=E6=8A=A5=E9=94=99?= =?UTF-8?q?=202=E3=80=81=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=BB=87=E7=9A=84?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organization/index.html.erb | 2 +- app/views/welcome/index.html.erb | 4 ++-- public/images/avatars/Organization/0 | Bin 0 -> 56368 bytes 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 public/images/avatars/Organization/0 diff --git a/app/views/organization/index.html.erb b/app/views/organization/index.html.erb index 2f657831a..f1c50d6ab 100644 --- a/app/views/organization/index.html.erb +++ b/app/views/organization/index.html.erb @@ -15,7 +15,7 @@ <% unless organization.name.blank? %> diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 76ca25743..eca3e4c1d 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -35,10 +35,10 @@ <% if get_avatar?(@first_page) %> <%= image_tag(url_to_avatar(@first_page), width:@first_page.image_width,height: @first_page.image_height) %> <% else %> - <%= image_tag @organization.logo_link, width:@first_page.image_width,height: @first_page.image_height %> + <%= image_tag '/images/transparent.png', width:@first_page.image_width,height: @first_page.image_height %> <% end %> <% else %> - <%= image_tag(url_to_avatar(@enterprise_page), width:@first_page.image_width,height: @first_page.image_height) %> + <%= image_tag(url_to_avatar(@organization), width:@first_page.image_width,height: @first_page.image_height) %> <% end %>
      diff --git a/public/images/avatars/Organization/0 b/public/images/avatars/Organization/0 new file mode 100644 index 0000000000000000000000000000000000000000..2ae1d749446d88f0516c7c1807e93a426f85264a GIT binary patch literal 56368 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 literal 0 HcmV?d00001 From 5f8595d874a4186aba2dc1be77ccd5334f481ff2 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 15:27:22 +0800 Subject: [PATCH 06/13] =?UTF-8?q?admin=E9=A1=B5=E9=9D=A2=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin_controller.rb | 7 +++++++ app/views/admin/organization.html.erb | 1 + config/locales/zh.yml | 1 + config/routes.rb | 1 + lib/redmine.rb | 1 + 5 files changed, 11 insertions(+) create mode 100644 app/views/admin/organization.html.erb diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index aab9d7b69..1efbb665f 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -322,4 +322,11 @@ class AdminController < ApplicationController end end + #组织 + def organization + @organizations = Organization.all + respond_to do |format| + format.html + end + end end diff --git a/app/views/admin/organization.html.erb b/app/views/admin/organization.html.erb new file mode 100644 index 000000000..9d07aa0df --- /dev/null +++ b/app/views/admin/organization.html.erb @@ -0,0 +1 @@ +111 \ No newline at end of file diff --git a/config/locales/zh.yml b/config/locales/zh.yml index e9efa7fba..362838800 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -538,6 +538,7 @@ zh: label_project: 项目 label_activity_project: '项目: ' #added by bai + label_organization_list: 组织列表 label_project_plural: 项目列表 label_first_page_made: 首页定制 label_project_first_page: 项目托管平台首页 diff --git a/config/routes.rb b/config/routes.rb index 6756a713d..fb4e40e49 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -646,6 +646,7 @@ RedmineApp::Application.routes.draw do match 'admin/info', :via => :get match 'admin/test_email', :via => :get match 'admin/default_configuration', :via => :post + get 'admin/organization' resources :auth_sources do member do diff --git a/lib/redmine.rb b/lib/redmine.rb index cd855e01a..5cfd8bae8 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -360,6 +360,7 @@ Redmine::MenuManager.map :homework_menu do |menu| end ########end Redmine::MenuManager.map :admin_menu do |menu| + menu.push :organization, {:controller => 'admin', :action => 'organization'}, :caption => :label_organization_list menu.push :projects, {:controller => 'admin', :action => 'projects'}, :caption => :label_project_plural menu.push :users, {:controller => 'admin', :action => 'users'}, :caption => :label_user_plural menu.push :first_page_made, {:controller => 'admin',:action => 'first_page_made'},:caption => :label_first_page_made From 3c4b502e970e4950191bd164d958daa2658fad03 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 17:03:44 +0800 Subject: [PATCH 07/13] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E7=BB=84=E7=BB=87=E4=B8=BB=E9=A1=B5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=202=E3=80=81admin=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=BB=87=E5=88=97=E8=A1=A8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/welcome_controller.rb | 2 +- app/views/admin/organization.html.erb | 44 ++++++++++++++++++++++- app/views/admin/projects.html.erb | 51 +++++++++++++++++++-------- config/locales/zh.yml | 2 ++ config/routes.rb | 2 +- 5 files changed, 84 insertions(+), 17 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 4ee5ddbf1..290af0068 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -28,7 +28,7 @@ class WelcomeController < ApplicationController # 企业版定制: params[:project]为传过来的参数 unless params[:organization].nil? @organization = Organization.find params[:organization] - @organization_projects = Project.visible.joins(:project_status).joins("LEFT JOIN project_scores ON projects.id = project_scores.project_id").where("projects.organization_id = ?", 1).order("score DESC").limit(10).all + @organization_projects = Project.visible.joins(:project_status).joins("LEFT JOIN project_scores ON projects.id = project_scores.project_id").where("projects.organization_id = ?", @organization.id).order("score DESC").limit(10).all @part_projects = @organization_projects.count < 9 ? find_miracle_project( 9 - @organization_projects.count, 3,"score desc") : [] # @cur_projects = Project.find(params[:organization]) # @organization = @cur_projects.enterprise_name diff --git a/app/views/admin/organization.html.erb b/app/views/admin/organization.html.erb index 9d07aa0df..582b8b44a 100644 --- a/app/views/admin/organization.html.erb +++ b/app/views/admin/organization.html.erb @@ -1 +1,43 @@ -111 \ No newline at end of file +
      + <%= link_to l(:label_organization_new), new_organization_path, :class => 'icon icon-add' %> +
      + +

      + <%=l(:label_organization_list)%> +

      + +
      + + + + + + + + + + <% @organizations.each do |org|%> + "> + + + + + <% end%> + +
      + <%=l(:label_organization)%> + + <%=l(:field_created_on)%> +
      + + <%= link_to org.name,home_path(:organization => org.id) %> + + + <%= format_date(org.created_at) %> + + <%= link_to(l(:button_change), edit_organization_path(org.id), :class => 'icon icon-copy') %> + <%= link_to(l(:button_delete), organization_path(org.id), :method => :delete,:confirm => l(:text_are_you_sure), :class => 'icon icon-del') %> +
      +
      + +<% html_title(l(:label_project_plural)) -%> diff --git a/app/views/admin/projects.html.erb b/app/views/admin/projects.html.erb index 762ceae9e..4c9479a6d 100644 --- a/app/views/admin/projects.html.erb +++ b/app/views/admin/projects.html.erb @@ -2,16 +2,25 @@ <%= link_to l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add' %>
      -

      <%=l(:label_project_plural)%>

      +

      + <%=l(:label_project_plural)%> +

      <%= form_tag({}, :method => :get) do %> -
      <%= l(:label_filter_plural) %> - -<%= select_tag 'status', project_status_options_for_select(@status), :class => "small", :onchange => "this.form.submit(); return false;" %> - -<%= text_field_tag 'name', params[:name], :size => 30 %> -<%= submit_tag l(:button_apply), :class => "small", :name => nil %> -<%= link_to l(:button_clear), {:controller => 'admin', :action => 'projects'}, :class => 'icon icon-reload' %> +
      + + <%= l(:label_filter_plural) %> + + + <%= select_tag 'status', project_status_options_for_select(@status), :class => "small", :onchange => "this.form.submit(); return false;" %> + + <%= text_field_tag 'name', params[:name], :size => 30 %> + <%= submit_tag l(:button_apply), :class => "small", :name => nil %> + <%= link_to l(:button_clear), {:controller => 'admin', :action => 'projects'}, :class => 'icon icon-reload' %>
      <% end %>   @@ -19,17 +28,31 @@
      - - - + + + <% project_tree(@projects) do |project, level| %> <%= project.css_classes %> <%= level > 0 ? "idnt idnt-#{level}" : nil %>"> - - - + + +
      <%=l(:label_project)%><%=l(:field_is_public)%><%=l(:field_created_on)%> + <%=l(:label_project)%> + + <%=l(:field_is_public)%> + + <%=l(:field_created_on)%> +
      <%= link_to_project_settings(project, {}) %><%= checked_image project.is_public? %><%= format_date(project.created_on) %> + + <%= link_to_project_settings(project, {}) %> + + + <%= checked_image project.is_public? %> + + <%= format_date(project.created_on) %> + <%= link_to(l(:button_archive), { :controller => 'projects', :action => 'archive', :id => project, :status => params[:status] }, :data => {:confirm => l(:text_are_you_sure)}, :method => :post, :class => 'icon icon-lock') unless project.archived? %> <%= link_to(l(:button_unarchive), { :controller => 'projects', :action => 'unarchive', :id => project, :status => params[:status] }, :method => :post, :class => 'icon icon-unlock') if project.archived? && (project.parent.nil? || !project.parent.archived?) %> diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 362838800..231339a8e 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -538,7 +538,9 @@ zh: label_project: 项目 label_activity_project: '项目: ' #added by bai + label_organization: 组织 label_organization_list: 组织列表 + label_organization_new: 新建组织 label_project_plural: 项目列表 label_first_page_made: 首页定制 label_project_first_page: 项目托管平台首页 diff --git a/config/routes.rb b/config/routes.rb index fb4e40e49..53f6f6a4b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -36,7 +36,7 @@ RedmineApp::Application.routes.draw do resources :apply_project_masters delete 'apply_project_masters', :to => 'apply_project_masters#delete' - resources :organization, :only => [:index] do + resources :organization, :except => [:show] do end From e2307366f63e00961bcc1f8942044194976f743f Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Thu, 5 Mar 2015 17:42:31 +0800 Subject: [PATCH 08/13] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E7=9A=84=E5=A2=9E=E3=80=81=E5=88=A0=E3=80=81=E6=94=B9=E3=80=81?= =?UTF-8?q?=E6=9F=A5=E5=8A=9F=E8=83=BD=E5=8F=8A=E7=9B=B8=E5=85=B3=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/organization_controller.rb | 45 ++++++++++++++++++++++ app/views/organization/_form.html.erb | 21 ++++++++++ app/views/organization/edit.html.erb | 25 ++++++++++++ app/views/organization/new.html.erb | 18 +++++++++ config/locales/zh.yml | 2 + 5 files changed, 111 insertions(+) create mode 100644 app/views/organization/_form.html.erb create mode 100644 app/views/organization/edit.html.erb create mode 100644 app/views/organization/new.html.erb diff --git a/app/controllers/organization_controller.rb b/app/controllers/organization_controller.rb index ef0919ced..db8295e44 100644 --- a/app/controllers/organization_controller.rb +++ b/app/controllers/organization_controller.rb @@ -1,5 +1,7 @@ class OrganizationController < ApplicationController layout 'project_base' + before_filter :require_admin, :except => [:index] + def index #@projects = Project.find_by_sql("SELECT * FROM projects WHERE id IN (select MAX(id) from projects GROUP BY enterprise_name)") @organizations = Organization.all @@ -7,4 +9,47 @@ class OrganizationController < ApplicationController format.html end end + + def new + @organizations = Organization.new + respond_to do |format| + format.html + end + end + + def create + @organizations = Organization.new + @organizations.name = params[:organization][:name] + if @organizations.save + redirect_to admin_organization_url + end + end + + def edit + @organization = Organization.find params[:id] + respond_to do |format| + format.html + end + rescue Exception => e + render_404 + end + + def update + @organization = Organization.find params[:id] + @organization.name = params[:organization][:name] + if @organization.save + redirect_to admin_organization_url + end + rescue Exception => e + render_404 + end + + def destroy + @organization = Organization.find params[:id] + if @organization.destroy + redirect_to admin_organization_url + end + rescue Exception => e + render_404 + end end diff --git a/app/views/organization/_form.html.erb b/app/views/organization/_form.html.erb new file mode 100644 index 000000000..80cc76850 --- /dev/null +++ b/app/views/organization/_form.html.erb @@ -0,0 +1,21 @@ +<%= error_messages_for 'project' %> + +<% unless @organizations.new_record? %> +

      + <%= render :partial=>"avatar/avatar_form",:locals=> {source:@organizations} %> +

      +<% end %> +

      + + <%= f.text_field :name, :required => true, :size => 60, :style => "width:290px;" %> +

      + + + <%#= l(:field_description)%> + + + + diff --git a/app/views/organization/edit.html.erb b/app/views/organization/edit.html.erb new file mode 100644 index 000000000..60b7c06a0 --- /dev/null +++ b/app/views/organization/edit.html.erb @@ -0,0 +1,25 @@ +<%= form_for(@organization) do |f|%> +

      + <%=l(:label_organization_edit)%> +

      +
      + <%= error_messages_for 'project' %> +

      + <%= render :partial=>"avatar/avatar_form",:locals=> {source:@organization} %> +

      +

      + + <%= f.text_field :name, :required => true, :size => 60, :style => "width:290px;" %> +

      + + <%= submit_tag l(:button_create), :class => "enterprise"%> + +
      + <%#= submit_tag l(:button_create_and_continue), :name => 'continue' %> + <%= javascript_tag "$('#project_name').focus();" %> +<% end %> + +<% html_title(l(:label_organization_edit)) -%> \ No newline at end of file diff --git a/app/views/organization/new.html.erb b/app/views/organization/new.html.erb new file mode 100644 index 000000000..163f4a5f5 --- /dev/null +++ b/app/views/organization/new.html.erb @@ -0,0 +1,18 @@ +<%= form_for(@organizations, :method => :post, + :name => 'new_form', + :url => {:controller => 'organization', + :action => 'create'}) do |f|%> +

      + <%=l(:label_organization_new)%> +

      +
      + <%= render :partial => 'form', :locals => { :f => f } %> + + <%= submit_tag l(:button_create), :class => "enterprise"%> + +
      + <%#= submit_tag l(:button_create_and_continue), :name => 'continue' %> + <%= javascript_tag "$('#project_name').focus();" %> +<% end %> + +<% html_title(l(:label_organization_new)) -%> \ No newline at end of file diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 231339a8e..72634bd2b 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -539,8 +539,10 @@ zh: label_activity_project: '项目: ' #added by bai label_organization: 组织 + label_organization_name: 组织名称 label_organization_list: 组织列表 label_organization_new: 新建组织 + label_organization_edit: 修改组织 label_project_plural: 项目列表 label_first_page_made: 首页定制 label_project_first_page: 项目托管平台首页 From 26081c61205d549ffadb52195bd1ddb5f7d87a2e Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 6 Mar 2015 09:27:43 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=97=B6=E5=A2=9E=E5=8A=A0=E4=B8=8D=E9=80=89=E6=8B=A9=E6=89=80?= =?UTF-8?q?=E5=B1=9E=E7=BB=84=E7=BB=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/projects_helper.rb | 4 ++++ config/locales/zh.yml | 1 + db/schema.rb | 30 ++++++++++++++---------------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index ccc750462..3c1663fcb 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -374,6 +374,10 @@ module ProjectsHelper def project_organizations_id_option type = [] + option1 = [] + option1 << l(:label_organization_choose) + option1 << 0 + type << option1 Organization.all.each do |org| option = [] option << org.name diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 72634bd2b..edfea2cb7 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -539,6 +539,7 @@ zh: label_activity_project: '项目: ' #added by bai label_organization: 组织 + label_organization_choose: --请选择组织-- label_organization_name: 组织名称 label_organization_list: 组织列表 label_organization_new: 新建组织 diff --git a/db/schema.rb b/db/schema.rb index 4a3b14edc..b863dbaed 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 => 20150302091345) do +ActiveRecord::Schema.define(:version => 20150305011359) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -631,16 +631,6 @@ ActiveRecord::Schema.define(:version => 20150302091345) do add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" - create_table "journal_details_copy", :force => true do |t| - t.integer "journal_id", :default => 0, :null => false - t.string "property", :limit => 30, :default => "", :null => false - t.string "prop_key", :limit => 30, :default => "", :null => false - t.text "old_value" - t.text "value" - end - - add_index "journal_details_copy", ["journal_id"], :name => "journal_details_journal_id" - create_table "journal_replies", :id => false, :force => true do |t| t.integer "journal_id" t.integer "user_id" @@ -825,6 +815,13 @@ ActiveRecord::Schema.define(:version => 20150302091345) do t.integer "project_id" end + create_table "organizations", :force => true do |t| + t.string "name" + t.string "logo_link" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "poll_answers", :force => true do |t| t.integer "poll_question_id" t.text "answer_text" @@ -949,6 +946,7 @@ ActiveRecord::Schema.define(:version => 20150302091345) do t.integer "user_id" t.integer "dts_test", :default => 0 t.string "enterprise_name" + t.integer "organization_id" end add_index "projects", ["lft"], :name => "index_projects_on_lft" @@ -1036,12 +1034,12 @@ ActiveRecord::Schema.define(:version => 20150302091345) do end create_table "roles", :force => true do |t| - t.string "name", :limit => 90 - t.integer "position" - t.boolean "assignable" - t.integer "builtin" + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "assignable", :default => true + t.integer "builtin", :default => 0, :null => false t.text "permissions" - t.string "issues_visibility", :limit => 90 + t.string "issues_visibility", :limit => 30, :default => "default", :null => false end create_table "schools", :force => true do |t| From 3c1f1d8baddb12647d6a99ec5baa8e13ac078898 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 6 Mar 2015 09:45:38 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E4=B8=8B=E5=8F=91=E5=B8=83=E9=97=AE?= =?UTF-8?q?=E5=8D=B7=E3=80=81=E5=8F=96=E6=B6=88=E5=8F=91=E5=B8=83=E9=97=AE?= =?UTF-8?q?=E5=8D=B7=E6=A0=B7=E5=BC=8F=E6=98=BE=E7=A4=BA=E4=B8=8D=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/poll/publish_poll.js.erb | 2 +- app/views/poll/republish_poll.js.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/poll/publish_poll.js.erb b/app/views/poll/publish_poll.js.erb index 6074df6c6..2e8dab181 100644 --- a/app/views/poll/publish_poll.js.erb +++ b/app/views/poll/publish_poll.js.erb @@ -1,6 +1,6 @@ $("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>"); $('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_memo_create_succ)}) %>"); -showModal('ajax-modal', '180px'); +showModal('ajax-modal', '250px'); $('#ajax-modal').css('height','111px'); $('#ajax-modal').siblings().remove(); $('#ajax-modal').before("" + diff --git a/app/views/poll/republish_poll.js.erb b/app/views/poll/republish_poll.js.erb index 94369678d..f2fcee96a 100644 --- a/app/views/poll/republish_poll.js.erb +++ b/app/views/poll/republish_poll.js.erb @@ -1,6 +1,6 @@ $("#polls_<%= @poll.id %>").html("<%= escape_javascript(render :partial => 'poll',:locals => {:poll => @poll}) %>"); $('#ajax-modal').html("<%= escape_javascript(render :partial => 'alert', locals: { :message => l(:label_poll_republish_success)}) %>"); -showModal('ajax-modal', '180px'); +showModal('ajax-modal', '250px'); $('#ajax-modal').css('height','80px'); $('#ajax-modal').siblings().remove(); $('#ajax-modal').before("" + From 5692cbf2020a74ecb552028136e157dabbfcd459 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 6 Mar 2015 09:50:17 +0800 Subject: [PATCH 11/13] =?UTF-8?q?#1965=20=E5=85=AC=E5=85=B1=E8=B4=B4?= =?UTF-8?q?=E5=90=A7=E5=8F=96=E6=B6=88=E8=BD=AF=E4=BB=B6=E5=88=9B=E5=AE=A2?= =?UTF-8?q?=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5579fe79b..1ac0a5bbf 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1841,7 +1841,7 @@ module ApplicationHelper # 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} # courses_link = link_to l(:label_course_practice), {:controller => 'courses', :action => 'index'} - users_link = link_to l(:label_software_user), {:controller => 'users', :action => 'index', :host => Setting.user_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 => 'contests', :action => 'index'} bids_link = link_to l(:label_requirement_enterprise), {:controller => 'bids', :action => 'index'} forum_link = link_to l(:label_forum_all), {:controller => "forums", :action => "index"} @@ -1860,7 +1860,7 @@ module ApplicationHelper 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 + #nav_list.push(users_link) if @nav_dispaly_user_label # nav_list.push(contest_link) if @nav_dispaly_contest_label && @show_contest == 1 nav_list.push(bids_link) if @nav_dispaly_bid_label nav_list.push(forum_link) if @nav_dispaly_forum_label From e32693402761a8ae09bd3698b346644553a5c514 Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 6 Mar 2015 10:58:12 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=BC=BA=E5=B0=91=E9=A1=B9=E7=9B=AE=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E6=98=BE=E7=A4=BA=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/welcome/index.html.erb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index a2fb9657a..b1a699afa 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -94,9 +94,13 @@ <% @organization_projects.map do |project| %> <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> <% end %> -
      - <%= l(:label_part_enterprise_tips) %> -
      +
    • +

      +
      + <%= l(:label_part_enterprise_tips) %> +
      +

      +
    • <% @part_projects.map do |project| %> <%= render :partial => 'hot_projects_list', :locals => {:project => project} %> <% end %> From e58f5d4af591132600dfeaecdb9650a54b011e0a Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Fri, 6 Mar 2015 14:56:27 +0800 Subject: [PATCH 13/13] =?UTF-8?q?#1941=20=E9=97=AE=E5=8D=B7=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=EF=BC=8C=E5=BD=93=E7=BC=96=E8=BE=91=E6=97=B6=E6=9C=89?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E7=A9=BA=E6=A0=BC=E8=A1=8C=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E7=A1=AE=E5=AE=9Ajs=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E5=88=B7=E6=96=B0=EF=BC=8C=E8=80=8C=E4=B8=94=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E5=AF=B9=E5=89=AA=E8=BE=91=E7=9A=84=E6=A0=BC=E5=BC=8F=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/poll/_edit_head.html.erb | 9 +++++++-- app/views/poll/_poll_form.html.erb | 5 +++++ app/views/poll/_show_head.html.erb | 4 +--- app/views/poll/show.html.erb | 2 +- app/views/poll/update.js.erb | 6 ++---- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/app/views/poll/_edit_head.html.erb b/app/views/poll/_edit_head.html.erb index dfa5b5cfc..c74453f6d 100644 --- a/app/views/poll/_edit_head.html.erb +++ b/app/views/poll/_edit_head.html.erb @@ -4,9 +4,14 @@
      - +
      + <%= @poll.polls_description.nil? ? "" : @poll.polls_description.html_safe%> +
      +
      -