From 5d44dc5bba44aae4809ca534883581f492ab476b Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 27 Apr 2016 15:16:23 +0800 Subject: [PATCH 001/257] =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E6=A0=8Fjs=E6=95=88?= =?UTF-8?q?=E6=9E=9C=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_org2.html.erb | 534 +++++++++++++-------------- public/stylesheets/new_user.css | 2 +- public/stylesheets/org2.css | 5 +- 3 files changed, 269 insertions(+), 272 deletions(-) diff --git a/app/views/layouts/base_org2.html.erb b/app/views/layouts/base_org2.html.erb index 0e3ae2a4d..324f4988f 100644 --- a/app/views/layouts/base_org2.html.erb +++ b/app/views/layouts/base_org2.html.erb @@ -1,268 +1,266 @@ - - - - - <%= h html_title %> - - - <%= csrf_meta_tag %> - <%= favicon %> - <%= javascript_heads %> - <%= heads_for_theme %> - <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> - <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> - <%= javascript_include_tag 'attachments' %> - <%#= call_hook :view_layouts_base_html_head %> - - <%#= yield :header_tags -%> - - - - - - - - - - - - - - - - -
-
- <%= render :partial => 'organizations/org_logined_header' %> -
- -
- -
-
    - <% @subfield_content.each do |field| %> - <% if is_default_field?(field) %> - <% case field.name %> - <% when 'activity' %> - - <% when 'course' %> - - <% when 'project' %> - - <% end %> - <% else %> - <% if field.field_type == "Post" && field.hide == 0 %> - - <% elsif field.field_type == "Resource" && field.hide == 0 %> - - <% end %> - <% end %> - <% end %> - <% if User.current.admin_of_org?(@organization) %> - - <% end %> -
-
-
-
-<%# 更新访问数,刷新的时候更新访问次数 %> -<% update_visiti_count @organization %> -<%# over %> - -
-
- <% @subfield_content.each do |field| %> - <% if field.status.to_i == 1 %> - <%= render :partial => 'organizations/org_subfield_leftT', :locals => {:field => field} %> - <% elsif field.status.to_i == 2 %> - <%#= render :partial => 'organizations/org_subfield_leftM', :locals => {:field => field} %> -
-

业界动态更多

-
-
- -

北斗开放实验室迎湖南省省直机关领导调研参观

- 2016-04-08 -
-

2016年3月27日上午,湖南省经信委巡视员钟志慧,湖南省发改委副主任卓群、高技处处长何志明、就业处处长周建龙等领导代表在长沙中电软件园董事长何明、总经理夏利锋的陪同来北斗开放实验室长沙分实验室调研参观。北斗开放实验室办公室主任明德祥为参观的各位领导详细介绍了北斗开放实验室运行机制及各项共享资源。北斗开放实验室长沙分实验室是由导航仪器湖南省工程研究中心、湖南矩阵电子科技有限公司及中国仪器仪表学会空间仪器分会共同建设。为进一步推动北斗资源共享、创新北斗人才培养......

-
-
- <% elsif field.status.to_i == 3 %> - -
-
- <% elsif field.status.to_i == 4 %> - <%= render :partial => 'organizations/org_subfield_leftMD', :locals => {:field => field} %> - <% elsif field.status.to_i == 5 %> -
-

合作伙伴更多

-
-
    -
  • - - -
  • -
  • - - -
  • -
-
-
-
<
-
>
-
-
-
-
- <% end %> - <% end %> -
- -
- <% @subfield_content.each do |field| %> - <% if field.status.to_i == 6 %> - - <% elsif field.status.to_i == 7 %> - <%= render :partial => 'organizations/org_subfield_rightM', :locals => {:field => field} %> - <% elsif field.status.to_i == 8 %> - <%= render :partial => 'organizations/org_subfield_rightD', :locals => {:field => field} %> - <% end %> - <% end %> -
-
-
- - - - -<%#= call_hook :view_layouts_base_body_bottom %> - - - + + + + + <%= h html_title %> + + + <%= csrf_meta_tag %> + <%= favicon %> + <%= javascript_heads %> + <%= heads_for_theme %> + <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> + <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> + <%= javascript_include_tag 'attachments' %> + <%#= call_hook :view_layouts_base_html_head %> + + <%#= yield :header_tags -%> + + + + + + + + + + + + + + + + +
+
+ <%= render :partial => 'organizations/org_logined_header' %> +
+ +
+ +
+
    + <% @subfield_content.each do |field| %> + <% if is_default_field?(field) %> + <% case field.name %> + <% when 'activity' %> + + <% when 'course' %> + + <% when 'project' %> + + <% end %> + <% else %> + <% if field.field_type == "Post" && field.hide == 0 %> + + <% elsif field.field_type == "Resource" && field.hide == 0 %> + + <% end %> + <% end %> + <% end %> + <% if User.current.admin_of_org?(@organization) %> + + <% end %> +
+
+
+
+<%# 更新访问数,刷新的时候更新访问次数 %> +<% update_visiti_count @organization %> +<%# over %> + +
+
+ <% @subfield_content.each do |field| %> + <% if field.status.to_i == 1 %> + <%= render :partial => 'organizations/org_subfield_leftT', :locals => {:field => field} %> + <% elsif field.status.to_i == 2 %> + <%#= render :partial => 'organizations/org_subfield_leftM', :locals => {:field => field} %> +
+

业界动态更多

+
+
+ +

北斗开放实验室迎湖南省省直机关领导调研参观

+ 2016-04-08 +
+

2016年3月27日上午,湖南省经信委巡视员钟志慧,湖南省发改委副主任卓群、高技处处长何志明、就业处处长周建龙等领导代表在长沙中电软件园董事长何明、总经理夏利锋的陪同来北斗开放实验室长沙分实验室调研参观。北斗开放实验室办公室主任明德祥为参观的各位领导详细介绍了北斗开放实验室运行机制及各项共享资源。北斗开放实验室长沙分实验室是由导航仪器湖南省工程研究中心、湖南矩阵电子科技有限公司及中国仪器仪表学会空间仪器分会共同建设。为进一步推动北斗资源共享、创新北斗人才培养......

+
+
+ <% elsif field.status.to_i == 3 %> + +
+
+ <% elsif field.status.to_i == 4 %> + <%= render :partial => 'organizations/org_subfield_leftMD', :locals => {:field => field} %> + <% elsif field.status.to_i == 5 %> +
+

合作伙伴更多

+
+
    +
    +
  • +
  • +
  • +
  • +
    +
+
+
+
<
+
>
+
+
+
+
+ <% end %> + <% end %> +
+ +
+ <% @subfield_content.each do |field| %> + <% if field.status.to_i == 6 %> + + <% elsif field.status.to_i == 7 %> + <%= render :partial => 'organizations/org_subfield_rightM', :locals => {:field => field} %> + <% elsif field.status.to_i == 8 %> + <%= render :partial => 'organizations/org_subfield_rightD', :locals => {:field => field} %> + <% end %> + <% end %> +
+
+
+ + + + +<%#= call_hook :view_layouts_base_body_bottom %> + + + diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 4558437a2..9906b55fc 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -704,7 +704,7 @@ a.postOptionLink:hover {color:#ffffff; background-color:#269ac9;} .imageFuzzy {filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity:0.5;opacity: 0.5;} .homepagePostReplyDes {float:left; width:642px; margin-left:15px;} .homepagePostReplyPublisher {font-size:12px; color:#888888; margin-bottom:5px;} -.homepagePostReplyContent {font-size:12px; color:#484848; margin:3px 5px 12px 5px;font: 14px/1.5 "sans serif",tahoma,verdana,helvetica;font-family: 微软雅黑, 宋体;} +.homepagePostReplyContent {font-size:12px; color:#484848; margin:3px 5px 12px 5px;font: 14px/1.5 "sans serif",tahoma,verdana,helvetica;font-family: "微软雅黑", "宋体";} .table_maxWidth table {max-width: 642px;} .homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;} .homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;} diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 7c0b9f84a..695241c64 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -136,10 +136,9 @@ a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left: .resources-tagbox img {max-width: 100%;} a.more-btn{ display:block; width:185px; height:30px; text-align:center; background:#ccc; color:#666; line-height:30px;} /* index-partner */ -.sn-index-partnerbox{ padding:25px 30px; } -.sn-index-partnerbox{ width:775px;} +.sn-index-partnerbox{width:760px; padding:25px 30px;} .sn-index-partnerbox ul li{ height:55px;} -.sn-index-partnerbox ul li a.partnerimg{ display:block; margin:0 10px 10px 0; border:1px solid #ccc; width:370px; height:43px; float:left;} +.sn-index-partnerbox ul li a.partnerimg{ display:block; margin:0 10px 10px 0; border:1px solid #ccc; width:368px; height:43px; float:left;} .partner-btnbox{ width:90px; margin:0 auto;} .partner-btn{ width:35px; height:22px; background-color:#999; line-height:1.0; font-size:18px; color:#fff; text-align: center; margin-right:5px; cursor:pointer;} .partner-btn:hover{ background-color:#172b65;} From 9fbf713709818d3a90f3e28ab3a1c9dd9bd9e7d0 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 27 Apr 2016 17:02:44 +0800 Subject: [PATCH 002/257] =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/javascripts/sub_domains.js.coffee | 3 + app/assets/stylesheets/sub_domains.css.scss | 3 + app/controllers/sub_domains_controller.rb | 28 ++ app/helpers/sub_domains_helper.rb | 2 + app/models/org_subfield.rb | 1 + app/models/sub_domain.rb | 4 + app/views/organizations/setting.html.erb | 29 ++ app/views/sub_domains/show.html.erb | 0 config/routes.rb | 8 + .../20160427070237_create_sub_domains.rb | 14 + db/schema.rb | 435 +++++++++++++++++- .../sub_domains_controller_spec.rb | 5 + spec/factories/sub_domains.rb | 11 + spec/models/sub_domain_spec.rb | 5 + 14 files changed, 547 insertions(+), 1 deletion(-) create mode 100644 app/assets/javascripts/sub_domains.js.coffee create mode 100644 app/assets/stylesheets/sub_domains.css.scss create mode 100644 app/controllers/sub_domains_controller.rb create mode 100644 app/helpers/sub_domains_helper.rb create mode 100644 app/models/sub_domain.rb create mode 100644 app/views/sub_domains/show.html.erb create mode 100644 db/migrate/20160427070237_create_sub_domains.rb create mode 100644 spec/controllers/sub_domains_controller_spec.rb create mode 100644 spec/factories/sub_domains.rb create mode 100644 spec/models/sub_domain_spec.rb diff --git a/app/assets/javascripts/sub_domains.js.coffee b/app/assets/javascripts/sub_domains.js.coffee new file mode 100644 index 000000000..761567942 --- /dev/null +++ b/app/assets/javascripts/sub_domains.js.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ diff --git a/app/assets/stylesheets/sub_domains.css.scss b/app/assets/stylesheets/sub_domains.css.scss new file mode 100644 index 000000000..7a751c0d9 --- /dev/null +++ b/app/assets/stylesheets/sub_domains.css.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the sub_domains controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb new file mode 100644 index 000000000..4fbff45a2 --- /dev/null +++ b/app/controllers/sub_domains_controller.rb @@ -0,0 +1,28 @@ +class SubDomainsController < ApplicationController + layout 'base_org' + + def create + if SubDomain.where("org_subfield_id=#{params[:org_subfield_id]} and name=?",params[:name]).count == 0 + @res = true + # @organization = Organization.find(params[:organization_id]) + @subfield = OrgSubfield.find(params[:org_subfield_id]) + # @subfield = OrgSubfield.create(:name => params[:name], :organization_id => params[:organization_id],:priority => @organization.org_subfields.order("priority").last.priority + 1) + @subdomain = SubDomain.create(:name => params[:name], :org_subfield_id => params[:org_subfield_id],:priority => @subfield.sub_domains.blank? ? 1.1 : @subfield.sub_domains.order("priority").last.priority + 0.1) + # if !params[:sub_dir].blank? + # sql = "select subfield_subdomain_dirs.* from subfield_subdomain_dirs, org_subfields where subfield_subdomain_dirs.org_subfield_id = org_subfields.id "+ + # "and org_subfields.organization_id=#{@organization.id} and subfield_subdomain_dirs.name='#{params[:sub_dir]}'" + # if SubfieldSubdomainDir.find_by_sql(sql).count == 0 + # SubfieldSubdomainDir.create(:org_subfield_id => @subfield.id, :name => params[:sub_dir].downcase) + # end + # end + @subdomain.update_column(:field_type, params[:field_type]) + else + @res = false + end + end + + def show + @subdomain = SubDomain.find(params[:id]) + render layout: 'base' + end +end diff --git a/app/helpers/sub_domains_helper.rb b/app/helpers/sub_domains_helper.rb new file mode 100644 index 000000000..8f189a38d --- /dev/null +++ b/app/helpers/sub_domains_helper.rb @@ -0,0 +1,2 @@ +module SubDomainsHelper +end diff --git a/app/models/org_subfield.rb b/app/models/org_subfield.rb index 8cec49686..1151426e3 100644 --- a/app/models/org_subfield.rb +++ b/app/models/org_subfield.rb @@ -7,6 +7,7 @@ class OrgSubfield < ActiveRecord::Base has_many :messages, :through => :org_subfield_messages has_many :boards, :dependent => :destroy has_many :news, :dependent => :destroy + has_many :sub_domains, :dependent => :destroy acts_as_attachable after_create :create_board_sync after_destroy :update_priority diff --git a/app/models/sub_domain.rb b/app/models/sub_domain.rb new file mode 100644 index 000000000..d2ccec8a4 --- /dev/null +++ b/app/models/sub_domain.rb @@ -0,0 +1,4 @@ +class SubDomain < ActiveRecord::Base + attr_accessible :field_type, :hide, :name, :org_subfield_id, :priority, :status + belongs_to :org_subfield, :foreign_key => :org_subfield_id +end diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb index 39848d192..0d8fa6be8 100644 --- a/app/views/organizations/setting.html.erb +++ b/app/views/organizations/setting.html.erb @@ -128,6 +128,29 @@
+ +
+

+ <%= form_tag url_for(:controller => 'sub_domains', :action => 'create', :org_subfield_id => 458), :id=> 'add_subfield_form_subdomain',:remote => true do %> + +

    +
  • 栏目类型
  • +
  • + + +
  • +
  • + + +
  • +
  • +
+
+ 确定 + <% end %> +

+
+
<%= render :partial => 'organizations/subfield_list', :locals => {:subfields => @organization.org_subfields.order("priority")} %>
@@ -170,6 +193,12 @@ if ($("#subfield_name").val().trim() != "") $("#add_subfield_form").submit(); } + + function add_org_subfield_subdomain(){ + if ($("#subfield_name_subdomain").val().trim() != "") + alert("Test"); + $("#add_subfield_form_subdomain").submit(); + } var $is_exist = false; function apply_subdomain(id, domain){ var reg = new RegExp("^[a-zA-Z0-9_]{1,}$"); diff --git a/app/views/sub_domains/show.html.erb b/app/views/sub_domains/show.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/config/routes.rb b/config/routes.rb index ea89bb57e..9aac36026 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -117,6 +117,14 @@ RedmineApp::Application.routes.draw do match "quote_resource_show_org_subfield", :via => [:get] end end + + resources :sub_domains, :only => [:index, :new, :create, :show] do + collection do + end + member do + end + end + member do match 'update_sub_dir', :via => [:put] match 'update_priority', :via => [:put] diff --git a/db/migrate/20160427070237_create_sub_domains.rb b/db/migrate/20160427070237_create_sub_domains.rb new file mode 100644 index 000000000..ec37074cc --- /dev/null +++ b/db/migrate/20160427070237_create_sub_domains.rb @@ -0,0 +1,14 @@ +class CreateSubDomains < ActiveRecord::Migration + def change + create_table :sub_domains do |t| + t.integer :org_subfield_id + t.integer :priority, :default => false + t.string :name + t.string :field_type + t.integer :hide, :default => false + t.integer :status, :default => false + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 5bdd5b674..7dfa2f1e1 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 => 20160415030447) do +ActiveRecord::Schema.define(:version => 20160427070237) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -52,6 +52,28 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" + create_table "application_settings", :force => true do |t| + t.integer "default_projects_limit" + t.boolean "signup_enabled" + t.boolean "signin_enabled" + t.boolean "gravatar_enabled" + t.text "sign_in_text" + t.datetime "created_at" + t.datetime "updated_at" + t.string "home_page_url" + t.integer "default_branch_protection", :default => 2 + t.boolean "twitter_sharing_enabled", :default => true + t.text "restricted_visibility_levels" + t.boolean "version_check_enabled", :default => true + t.integer "max_attachment_size", :default => 10, :null => false + t.integer "default_project_visibility" + t.integer "default_snippet_visibility" + t.text "restricted_signup_domains" + t.boolean "user_oauth_applications", :default => true + t.string "after_sign_out_path" + t.integer "session_expire_delay", :default => 10080, :null => false + end + create_table "applied_projects", :force => true do |t| t.integer "project_id", :null => false t.integer "user_id", :null => false @@ -133,6 +155,20 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.string "typeName", :limit => 50 end + create_table "audit_events", :force => true do |t| + t.integer "author_id", :null => false + t.string "type", :null => false + t.integer "entity_id", :null => false + t.string "entity_type", :null => false + t.text "details" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id" + add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type" + add_index "audit_events", ["type"], :name => "index_audit_events_on_type" + create_table "auth_sources", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 60, :default => "", :null => false @@ -230,6 +266,17 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["project_id"], :name => "boards_project_id" + create_table "broadcast_messages", :force => true do |t| + t.text "message", :null => false + t.datetime "starts_at" + t.datetime "ends_at" + t.integer "alert_type" + t.datetime "created_at" + t.datetime "updated_at" + t.string "color" + t.string "font" + end + create_table "bug_to_osps", :force => true do |t| t.integer "osp_id" t.integer "relative_memo_id" @@ -516,6 +563,9 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.integer "visits", :default => 0 end + add_index "courses", ["id"], :name => "id", :unique => true + add_index "courses", ["visits"], :name => "visits" + create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -577,6 +627,15 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" + create_table "deploy_keys_projects", :force => true do |t| + t.integer "deploy_key_id", :null => false + t.integer "project_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id" + create_table "discuss_demos", :force => true do |t| t.string "title" t.text "body" @@ -626,6 +685,16 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "created_at" end + create_table "emails", :force => true do |t| + t.integer "user_id", :null => false + t.string "email", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true + add_index "emails", ["user_id"], :name => "index_emails_on_user_id" + create_table "enabled_modules", :force => true do |t| t.integer "project_id" t.string "name", :null => false @@ -648,6 +717,25 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" + create_table "events", :force => true do |t| + t.string "target_type" + t.integer "target_id" + t.string "title" + t.text "data" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "action" + t.integer "author_id" + end + + add_index "events", ["action"], :name => "index_events_on_action" + add_index "events", ["author_id"], :name => "index_events_on_author_id" + add_index "events", ["created_at"], :name => "index_events_on_created_at" + add_index "events", ["project_id"], :name => "index_events_on_project_id" + add_index "events", ["target_id"], :name => "index_events_on_target_id" + add_index "events", ["target_type"], :name => "index_events_on_target_type" + create_table "exercise_answers", :force => true do |t| t.integer "user_id" t.integer "exercise_question_id" @@ -750,6 +838,15 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" + create_table "forked_project_links", :force => true do |t| + t.integer "forked_to_project_id", :null => false + t.integer "forked_from_project_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true + create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -878,6 +975,17 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "updated_at", :null => false end + create_table "identities", :force => true do |t| + t.string "extern_uid" + t.string "provider" + t.integer "user_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id" + add_index "identities", ["user_id"], :name => "index_identities_on_user_id" + create_table "invite_lists", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1021,6 +1129,20 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.integer "private", :default => 0 end + create_table "keys", :force => true do |t| + t.integer "user_id" + t.datetime "created_at" + t.datetime "updated_at" + t.text "key" + t.string "title" + t.string "type" + t.string "fingerprint" + t.boolean "public", :default => false, :null => false + end + + add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id" + add_index "keys", ["user_id"], :name => "index_keys_on_user_id" + create_table "kindeditor_assets", :force => true do |t| t.string "asset" t.integer "file_size" @@ -1032,6 +1154,27 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.integer "owner_type", :default => 0 end + create_table "label_links", :force => true do |t| + t.integer "label_id" + t.integer "target_id" + t.string "target_type" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id" + add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type" + + create_table "labels", :force => true do |t| + t.string "title" + t.string "color" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "labels", ["project_id"], :name => "index_labels_on_project_id" + create_table "member_roles", :force => true do |t| t.integer "member_id", :null => false t.integer "role_id", :null => false @@ -1082,6 +1225,47 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.integer "viewed_count", :default => 0 end + create_table "merge_request_diffs", :force => true do |t| + t.string "state" + t.text "st_commits", :limit => 2147483647 + t.text "st_diffs", :limit => 2147483647 + t.integer "merge_request_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true + + create_table "merge_requests", :force => true do |t| + t.string "target_branch", :null => false + t.string "source_branch", :null => false + t.integer "source_project_id", :null => false + t.integer "author_id" + t.integer "assignee_id" + t.string "title" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "milestone_id" + t.string "state" + t.string "merge_status" + t.integer "target_project_id", :null => false + t.integer "iid" + t.text "description" + t.integer "position", :default => 0 + t.datetime "locked_at" + end + + add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id" + add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id" + add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id" + add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at" + add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id" + add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch" + add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id" + add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch" + add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true + add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title" + create_table "message_alls", :force => true do |t| t.integer "user_id" t.integer "message_id" @@ -1116,6 +1300,39 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" add_index "messages", ["parent_id"], :name => "messages_parent_id" + create_table "milestones", :force => true do |t| + t.string "title", :null => false + t.integer "project_id", :null => false + t.text "description" + t.date "due_date" + t.datetime "created_at" + t.datetime "updated_at" + t.string "state" + t.integer "iid" + end + + add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id" + add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date" + add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true + add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id" + + create_table "namespaces", :force => true do |t| + t.string "name", :null => false + t.string "path", :null => false + t.integer "owner_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "type" + t.string "description", :default => "", :null => false + t.string "avatar" + end + + add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id" + add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true + add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id" + add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true + add_index "namespaces", ["type"], :name => "index_namespaces_on_type" + create_table "news", :force => true do |t| t.integer "project_id" t.string "title", :limit => 60, :default => "", :null => false @@ -1141,6 +1358,31 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "updated_at", :null => false end + create_table "notes", :force => true do |t| + t.text "note" + t.string "noteable_type" + t.integer "author_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "project_id" + t.string "attachment" + t.string "line_code" + t.string "commit_id" + t.integer "noteable_id" + t.boolean "system", :default => false, :null => false + t.text "st_diff", :limit => 2147483647 + end + + add_index "notes", ["author_id"], :name => "index_notes_on_author_id" + add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id" + add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id" + add_index "notes", ["created_at"], :name => "index_notes_on_created_at" + add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type" + add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type" + add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type" + add_index "notes", ["project_id"], :name => "index_notes_on_project_id" + add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at" + create_table "notificationcomments", :force => true do |t| t.string "notificationcommented_type" t.integer "notificationcommented_id" @@ -1150,6 +1392,49 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "updated_at", :null => false end + create_table "oauth_access_grants", :force => true do |t| + t.integer "resource_owner_id", :null => false + t.integer "application_id", :null => false + t.string "token", :null => false + t.integer "expires_in", :null => false + t.text "redirect_uri", :null => false + t.datetime "created_at", :null => false + t.datetime "revoked_at" + t.string "scopes" + end + + add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true + + create_table "oauth_access_tokens", :force => true do |t| + t.integer "resource_owner_id" + t.integer "application_id" + t.string "token", :null => false + t.string "refresh_token" + t.integer "expires_in" + t.datetime "revoked_at" + t.datetime "created_at", :null => false + t.string "scopes" + end + + add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true + add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id" + add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true + + create_table "oauth_applications", :force => true do |t| + t.string "name", :null => false + t.string "uid", :null => false + t.string "secret", :null => false + t.text "redirect_uri", :null => false + t.string "scopes", :default => "", :null => false + t.datetime "created_at" + t.datetime "updated_at" + t.integer "owner_id" + t.string "owner_type" + end + + add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type" + add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true + create_table "onclick_times", :force => true do |t| t.integer "user_id" t.datetime "onclick_time" @@ -1305,6 +1590,23 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.integer "show_mode", :default => 0 end + create_table "permissions", :force => true do |t| + t.string "controller", :limit => 30, :default => "", :null => false + t.string "action", :limit => 30, :default => "", :null => false + t.string "description", :limit => 60, :default => "", :null => false + t.boolean "is_public", :default => false, :null => false + t.integer "sort", :default => 0, :null => false + t.boolean "mail_option", :default => false, :null => false + t.boolean "mail_enabled", :default => false, :null => false + end + + create_table "permissions_roles", :id => false, :force => true do |t| + t.integer "permission_id", :default => 0, :null => false + t.integer "role_id", :default => 0, :null => false + end + + add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" + create_table "phone_app_versions", :force => true do |t| t.string "version" t.text "description" @@ -1387,6 +1689,11 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "updated_at", :null => false end + create_table "project_import_data", :force => true do |t| + t.integer "project_id" + t.text "data" + end + create_table "project_infos", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1476,6 +1783,16 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" + create_table "protected_branches", :force => true do |t| + t.integer "project_id", :null => false + t.string "name", :null => false + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "developers_can_push", :default => false, :null => false + end + + add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id" + create_table "queries", :force => true do |t| t.integer "project_id" t.string "name", :default => "", :null => false @@ -1610,6 +1927,25 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.integer "is_teacher_score", :default => 0 end + create_table "services", :force => true do |t| + t.string "type" + t.string "title" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "active", :default => false, :null => false + t.text "properties" + t.boolean "template", :default => false + t.boolean "push_events", :default => true + t.boolean "issues_events", :default => true + t.boolean "merge_requests_events", :default => true + t.boolean "tag_push_events", :default => true + t.boolean "note_events", :default => true, :null => false + end + + add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id" + add_index "services", ["project_id"], :name => "index_services_on_project_id" + create_table "settings", :force => true do |t| t.string "name", :default => "", :null => false t.text "value" @@ -1639,6 +1975,26 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "updated_at", :null => false end + create_table "snippets", :force => true do |t| + t.string "title" + t.text "content", :limit => 2147483647 + t.integer "author_id", :null => false + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "file_name" + t.datetime "expires_at" + t.string "type" + t.integer "visibility_level", :default => 0, :null => false + end + + add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id" + add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id" + add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at" + add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at" + add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id" + add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level" + create_table "softapplications", :force => true do |t| t.string "name" t.text "description" @@ -1728,6 +2084,17 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "students_for_courses", ["course_id"], :name => "index_students_for_courses_on_course_id" add_index "students_for_courses", ["student_id"], :name => "index_students_for_courses_on_student_id" + create_table "sub_domains", :force => true do |t| + t.integer "org_subfield_id" + t.integer "priority" + t.string "name" + t.string "field_type" + t.integer "hide" + t.integer "status" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "subfield_subdomain_dirs", :force => true do |t| t.integer "org_subfield_id" t.string "name" @@ -1735,6 +2102,17 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "updated_at", :null => false end + create_table "subscriptions", :force => true do |t| + t.integer "user_id" + t.integer "subscribable_id" + t.string "subscribable_type" + t.boolean "subscribed" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true + create_table "system_messages", :force => true do |t| t.integer "user_id" t.string "content" @@ -1929,6 +2307,25 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" + create_table "user_wechats", :force => true do |t| + t.integer "subscribe" + t.string "openid" + t.string "nickname" + t.integer "sex" + t.string "language" + t.string "city" + t.string "province" + t.string "country" + t.string "headimgurl" + t.string "subscribe_time" + t.string "unionid" + t.string "remark" + t.integer "groupid" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "users", :force => true do |t| t.string "login", :default => "", :null => false t.string "hashed_password", :limit => 40, :default => "", :null => false @@ -1954,6 +2351,17 @@ ActiveRecord::Schema.define(:version => 20160415030447) do add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" add_index "users", ["type"], :name => "index_users_on_type" + create_table "users_star_projects", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id" + add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true + add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id" + create_table "versions", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "name", :default => "", :null => false @@ -2005,6 +2413,31 @@ ActiveRecord::Schema.define(:version => 20160415030447) do t.datetime "updated_at", :null => false end + create_table "web_hooks", :force => true do |t| + t.string "url" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "type", :default => "ProjectHook" + t.integer "service_id" + t.boolean "push_events", :default => true, :null => false + t.boolean "issues_events", :default => false, :null => false + t.boolean "merge_requests_events", :default => false, :null => false + t.boolean "tag_push_events", :default => false + t.boolean "note_events", :default => false, :null => false + end + + add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id" + add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id" + + create_table "wechat_logs", :force => true do |t| + t.string "openid", :null => false + t.text "request_raw" + t.text "response_raw" + t.text "session_raw" + t.datetime "created_at", :null => false + end + create_table "wiki_content_versions", :force => true do |t| t.integer "wiki_content_id", :null => false t.integer "page_id", :null => false diff --git a/spec/controllers/sub_domains_controller_spec.rb b/spec/controllers/sub_domains_controller_spec.rb new file mode 100644 index 000000000..99209ba27 --- /dev/null +++ b/spec/controllers/sub_domains_controller_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe SubDomainsController, :type => :controller do + +end diff --git a/spec/factories/sub_domains.rb b/spec/factories/sub_domains.rb new file mode 100644 index 000000000..d99bcdbff --- /dev/null +++ b/spec/factories/sub_domains.rb @@ -0,0 +1,11 @@ +FactoryGirl.define do + factory :sub_domain do + org_subfield_id 1 +priority 1 +name "MyString" +field_type "MyString" +hide 1 +status 1 + end + +end diff --git a/spec/models/sub_domain_spec.rb b/spec/models/sub_domain_spec.rb new file mode 100644 index 000000000..2e48b6518 --- /dev/null +++ b/spec/models/sub_domain_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe SubDomain, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end From 024667d035cf87006ee2132136eab890be7f3a65 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 28 Apr 2016 10:17:59 +0800 Subject: [PATCH 003/257] =?UTF-8?q?title=E5=A4=9A=E8=A1=8C=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=9C=81=E7=95=A5=E5=8F=B7=E6=95=88=E6=9E=9C=EF=BC=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E9=A1=B5=E9=9D=A2=E4=B8=8D=E5=AF=B9=E9=BD=90?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98=EF=BC=8C=E9=AB=98=E5=BA=A6?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=EF=BC=8C=E6=A0=87=E9=A2=98=E5=8D=95=E8=A1=8C?= =?UTF-8?q?=E7=9C=81=E7=95=A5=E6=98=BE=E7=A4=BA=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_org_subfield_leftM2.html.erb | 49 ++++++++++++------- .../_org_subfield_leftM2_default.html.erb | 36 +++++++++----- .../_org_subfield_leftMD.html.erb | 32 ++++++------ .../_org_subfield_leftMD_default.html.erb | 14 +++--- public/stylesheets/org2.css | 4 +- 5 files changed, 82 insertions(+), 53 deletions(-) diff --git a/app/views/organizations/_org_subfield_leftM2.html.erb b/app/views/organizations/_org_subfield_leftM2.html.erb index aec1a88fe..64e104745 100644 --- a/app/views/organizations/_org_subfield_leftM2.html.erb +++ b/app/views/organizations/_org_subfield_leftM2.html.erb @@ -16,7 +16,8 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> <% end %>

- <%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...
+

<%= format_date activity.updated_at %>
@@ -32,9 +33,9 @@ <% end %>

<% if activity.parent_id.nil? %> - <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...
<% else %> - <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...
<% end %>

<%= format_date activity.updated_on %> @@ -50,7 +51,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> <% end %>

- <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...

<%= format_date activity.created_on %>
@@ -69,9 +70,9 @@ <% end %>

<% if has_commit %> - <%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "h4-title fl mt10" %>...
<% else %> - <%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "h4-title fl mt10" %>...
<% end %>

<%= format_date activity.published_at %> @@ -96,7 +97,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> <% end %>

- <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...

<%= format_date activity.updated_on %>
@@ -112,9 +113,9 @@ <% end %>

<% if activity.parent_id.nil? %> - <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...
<% else %> - <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...
<% end %>

<%= format_date activity.updated_on %> @@ -130,7 +131,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> <% end %>

- <%= link_to activity.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to activity.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "h4-title fl mt10" %>...

<%= format_date activity.created_on %>
@@ -158,7 +159,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> <% end %>

- <%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "h4-title fl mt10" %>...

<%= format_date document.created_at %>
@@ -181,9 +182,9 @@ <% end %>

<% if message.parent_id.nil? %> - <%= link_to message.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to message.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "h4-title fl mt10" %>...
<% else %> - <%= link_to message.parent.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to message.parent.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "h4-title fl mt10" %>...
<% end %>

<%= format_date message.created_on %> @@ -198,9 +199,9 @@ <% end %>

<% if message.parent_id.nil? %> - <%= link_to message.subject.to_s.html_safe, board_message_path(message.board,message), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to message.subject.to_s.html_safe, board_message_path(message.board,message), :target => '_blank', :class => "h4-title fl mt10" %>...
<% else %> - <%= link_to message.parent.subject.to_s.html_safe, board_message_path(message.board,activity), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to message.parent.subject.to_s.html_safe, board_message_path(message.board,activity), :target => '_blank', :class => "h4-title fl mt10" %>...
<% end %>

<%= format_date message.created_on %> @@ -218,7 +219,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), news_path(news), :target => "_blank", :class =>"sn-news-smallimg fl" %> <% end %>

- <%= link_to news.title.to_s, news_path(news), :target => '_blank', :class => "h4-title fl mt10" %> +
<%= link_to news.title.to_s, news_path(news), :target => '_blank', :class => "h4-title fl mt10" %>...

<%= format_date news.created_on %>
@@ -230,4 +231,18 @@ <% end %> <% end %>
-
\ No newline at end of file + + + \ No newline at end of file diff --git a/app/views/organizations/_org_subfield_leftM2_default.html.erb b/app/views/organizations/_org_subfield_leftM2_default.html.erb index aaf98d7d6..49ededdd3 100644 --- a/app/views/organizations/_org_subfield_leftM2_default.html.erb +++ b/app/views/organizations/_org_subfield_leftM2_default.html.erb @@ -1,26 +1,38 @@ - + + \ No newline at end of file diff --git a/app/views/organizations/_org_subfield_leftMD.html.erb b/app/views/organizations/_org_subfield_leftMD.html.erb index 2db926776..5216ddcf2 100644 --- a/app/views/organizations/_org_subfield_leftMD.html.erb +++ b/app/views/organizations/_org_subfield_leftMD.html.erb @@ -18,7 +18,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> <% end %>

- <%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "resources-title sn-hidden" %>

<%= link_to activity.description.to_s.html_safe, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> @@ -36,9 +36,9 @@ <% end %>

<% if activity.parent_id.nil? %> - <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title sn-hidden" %> <% else %> - <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title sn-hidden" %> <% end %>

@@ -56,7 +56,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> <% end %>

- <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "resources-title sn-hidden" %>

<%= link_to activity.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> @@ -77,9 +77,9 @@ <% end %>

<% if has_commit %> - <%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "resources-title" %> + <%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "resources-title sn-hidden" %> <% else %> - <%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "resources-title" %> + <%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "resources-title sn-hidden" %> <% end %>

@@ -106,7 +106,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> <% end %>

- <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank', :class => "resources-title sn-hidden" %>

<%= link_to activity.description.to_s.html_safe, issue_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> @@ -124,9 +124,9 @@ <% end %>

<% if activity.parent_id.nil? %> - <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title sn-hidden" %> <% else %> - <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-title sn-hidden" %> <% end %>

@@ -144,7 +144,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> <% end %>

- <%= link_to activity.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-title" %> + <%= link_to activity.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-title sn-hidden" %>

<%= link_to activity.content.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> @@ -174,7 +174,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-resourcesimg" %> <% end %>

- <%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "resources-title" %> + <%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "resources-title sn-hidden" %>

<%= link_to document.content.to_s.html_safe, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "resources-tag" %> @@ -199,9 +199,9 @@ <% end %>

<% if message.parent_id.nil? %> - <%= link_to message.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "resources-title" %> + <%= link_to message.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "resources-title sn-hidden" %> <% else %> - <%= link_to message.parent.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "resources-title" %> + <%= link_to message.parent.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "resources-title sn-hidden" %> <% end %>

@@ -218,9 +218,9 @@ <% end %>

<% if message.parent_id.nil? %> - <%= link_to message.subject.to_s.html_safe, board_message_path(message.board,message), :target => '_blank', :class => "resources-title" %> + <%= link_to message.subject.to_s.html_safe, board_message_path(message.board,message), :target => '_blank', :class => "resources-title sn-hidden" %> <% else %> - <%= link_to message.parent.subject.to_s.html_safe, board_message_path(message.board,activity), :target => '_blank', :class => "resources-title" %> + <%= link_to message.parent.subject.to_s.html_safe, board_message_path(message.board,activity), :target => '_blank', :class => "resources-title sn-hidden" %> <% end %>

@@ -240,7 +240,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), news_path(news), :target => "_blank", :class =>"sn-resourcesimg" %> <% end %>

- <%= link_to news.title.to_s, news_path(news), :target => '_blank', :class => "resources-title" %> + <%= link_to news.title.to_s, news_path(news), :target => '_blank', :class => "resources-title sn-hidden" %>

<%= link_to news.description.to_s.html_safe, news_path(news), :target => '_blank', :class => "resources-tag" %> diff --git a/app/views/organizations/_org_subfield_leftMD_default.html.erb b/app/views/organizations/_org_subfield_leftMD_default.html.erb index 4268c7cc8..e20318476 100644 --- a/app/views/organizations/_org_subfield_leftMD_default.html.erb +++ b/app/views/organizations/_org_subfield_leftMD_default.html.erb @@ -1,11 +1,11 @@ \ No newline at end of file diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 695241c64..20fabf3cf 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -124,7 +124,9 @@ a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left: .txt-grey{ color:#999;} .sn-news-smallbox{padding:0px 18px 0px 26px; margin:18px 0 26px; width:350px; } .sn-news-smallbox .sn-news-smallimg{ width:85px; height:85px; margin-right:10px;} -.sn-news-smallbox a.h4-title{ font-size:14px; width:255px; float:left;} +.sn-title-wrap {width:250px; height:62px; line-height: 26px; font-size:14px; overflow:hidden; position: relative;} +.sn-news-smallbox a.h4-title{} +.title-ellipsis {width:15px; display:block; bottom:0; right:-4px; position:absolute;} /* index-resources */ .sn-index-resourcescon{ padding-top:12px;background:#f2f2f2;} .sn-index-resourcesbox{ padding:10px; background:#f2f2f2; width:185px; float:left;} From e48189ae97f7d9c51546da8dac4c67e6032eb442 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 28 Apr 2016 10:24:53 +0800 Subject: [PATCH 004/257] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_org2.html.erb | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/app/views/layouts/base_org2.html.erb b/app/views/layouts/base_org2.html.erb index 8f8c9b179..0de2894b0 100644 --- a/app/views/layouts/base_org2.html.erb +++ b/app/views/layouts/base_org2.html.erb @@ -139,33 +139,15 @@ <% elsif field.status.to_i == 2 %> <%#= render :partial => 'organizations/org_subfield_leftM', :locals => {:field => field} %>
- <%= render :partial => 'organizations/org_subfield_leftM1', :locals => {:field => field} %> - <% elsif field.status.to_i == 3 %> - <%= render :partial => 'organizations/org_subfield_leftM2', :locals => {:field => field} %> + <%= render :partial => 'organizations/org_subfield_leftM1', :locals => {:field => field} %> + <% elsif field.status.to_i == 3 %> + <%= render :partial => 'organizations/org_subfield_leftM2', :locals => {:field => field} %>
<% elsif field.status.to_i == 4 %> <%= render :partial => 'organizations/org_subfield_leftMD', :locals => {:field => field} %> <% elsif field.status.to_i == 5 %> -
-

合作伙伴更多

-
-
    -
    -
  • -
  • -
  • -
  • -
    -
-
-
-
<
-
>
-
-
-
-
+ <%= render :partial => 'organizations/org_subfield_leftD', :locals => {:field => field} %> <% end %> <% end %>
@@ -173,7 +155,7 @@
<% @subfield_content.each do |field| %> <% if field.status.to_i == 6 %> - <%= render :partial => 'organizations/org_subfield_rightT', :locals => {:field => field} %> + <%= render :partial => 'organizations/org_subfield_rightT', :locals => {:field => field} %> <% elsif field.status.to_i == 7 %> <%= render :partial => 'organizations/org_subfield_rightM', :locals => {:field => field} %> <% elsif field.status.to_i == 8 %> From b596c0d66fad8347cc3954a07dda84b662cdb289 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 28 Apr 2016 10:25:26 +0800 Subject: [PATCH 005/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E5=88=9B=E5=BB=BA=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_org_subfield_leftD.html.erb | 120 +++++++----------- .../_org_subfield_leftD_default.html.erb | 19 +++ .../_org_subfield_leftM1.html.erb | 2 +- public/images/default_blank/ad-default.jpg | Bin 22474 -> 0 bytes .../images/default_blank/banner-default.jpg | Bin 25898 -> 0 bytes public/images/default_blank/default-img2.jpg | Bin 21630 -> 0 bytes public/images/default_blank/files-default.jpg | Bin 15907 -> 0 bytes public/images/default_blank/inner-01.jpg | Bin 0 -> 21603 bytes public/images/default_blank/left-02.jpg | Bin 0 -> 16601 bytes public/images/default_blank/left-03.jpg | Bin 0 -> 13487 bytes public/images/default_blank/left-04.jpg | Bin 0 -> 19557 bytes public/images/default_blank/left-05.jpg | Bin 0 -> 16785 bytes public/images/default_blank/left-act.jpg | Bin 16187 -> 0 bytes public/images/default_blank/left-act2.jpg | Bin 13595 -> 0 bytes public/images/default_blank/left_01.jpg | Bin 0 -> 26184 bytes public/images/default_blank/right-01.jpg | Bin 0 -> 18874 bytes public/images/default_blank/right-02.jpg | Bin 0 -> 16541 bytes public/images/default_blank/right-03.jpg | Bin 0 -> 19123 bytes public/images/default_blank/right-top.jpg | Bin 17302 -> 0 bytes 19 files changed, 64 insertions(+), 77 deletions(-) create mode 100644 app/views/organizations/_org_subfield_leftD_default.html.erb delete mode 100644 public/images/default_blank/ad-default.jpg delete mode 100644 public/images/default_blank/banner-default.jpg delete mode 100644 public/images/default_blank/default-img2.jpg delete mode 100644 public/images/default_blank/files-default.jpg create mode 100644 public/images/default_blank/inner-01.jpg create mode 100644 public/images/default_blank/left-02.jpg create mode 100644 public/images/default_blank/left-03.jpg create mode 100644 public/images/default_blank/left-04.jpg create mode 100644 public/images/default_blank/left-05.jpg delete mode 100644 public/images/default_blank/left-act.jpg delete mode 100644 public/images/default_blank/left-act2.jpg create mode 100644 public/images/default_blank/left_01.jpg create mode 100644 public/images/default_blank/right-01.jpg create mode 100644 public/images/default_blank/right-02.jpg create mode 100644 public/images/default_blank/right-03.jpg delete mode 100644 public/images/default_blank/right-top.jpg diff --git a/app/views/organizations/_org_subfield_leftD.html.erb b/app/views/organizations/_org_subfield_leftD.html.erb index 60895ad81..017eec71f 100644 --- a/app/views/organizations/_org_subfield_leftD.html.erb +++ b/app/views/organizations/_org_subfield_leftD.html.erb @@ -1,28 +1,6 @@ -
-

合作伙伴更多

-
-
    -
  • - - -
  • -
  • - - -
  • -
-
-
-
<
-
>
-
-
-
-
- <% if is_default_field?(field) %> <% case field.name %> - <% when 'course' %> +<% when 'course' %>

暂无内容!

<% when 'project' %>

暂无内容!

@@ -31,65 +9,53 @@ <% if field.field_type == "Post" %> <%# 讨论类型 %> <% org_acts = get_subfield_acts field %> <% unless org_acts.blank? %> - <% org_acts.each do |activity| %> -
-

合作伙伴更多

-
- <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> - <% document = activity.org_act %> - <% org_subfield_id = params[:org_subfield_id] %> - <% flag = 2 %> - <% iamge_path = get_image_path_from_content(document.content) %> - <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "369", :height => "169"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank" %> - <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "369", :height => "169"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank" %> - <% end %> - <% elsif activity.container_type == 'OrgSubfield' %> - <% if activity.org_act_type == 'Message' and activity.org_act_id and Message.where("id=#{activity.org_act_id}").count > 0 %> - <% message = Message.find(activity.org_act_id) %> - <% if message.board.org_subfield_id %> - <% iamge_path = get_image_path_from_content(message.content) %> - <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "369", :height => "169"), board_message_url_in_org(message.board.id,message.id), :target => "_blank" %> +
+

合作伙伴更多

+
+
    +
    + <% org_acts.first.each do |activity| %> + <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> + <% document = activity.org_act %> + <% org_subfield_id = params[:org_subfield_id] %> + <% flag = 2 %> + <% iamge_path = get_image_path_from_content(document.content) %> + <% if iamge_path.nil? %> +
  • <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "partnerimg" %>
  • + <% else %> +
  • <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "partnerimg" %>
  • + <% end %> + <% elsif activity.container_type == 'OrgSubfield' %> + <% if activity.org_act_type == 'Message' and activity.org_act_id and Message.where("id=#{activity.org_act_id}").count > 0 %> + <% message = Message.find(activity.org_act_id) %> + <% if message.board.org_subfield_id %> + <% iamge_path = get_image_path_from_content(message.content) %> + <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "partnerimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "partnerimg" %> + <% end %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "369", :height => "169"), board_message_url_in_org(message.board.id,message.id), :target => "_blank" %> + <% iamge_path = get_image_path_from_content(message.content) %> + <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank", :class => "partnerimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank", :class => "partnerimg" %> + <% end %> <% end %> - <% else %> - <% iamge_path = get_image_path_from_content(message.content) %> + <% end %> + <% if activity.org_act_type == 'News' and News.where("id=?", activity.org_act_id).count > 0 %> + <% news = News.find(activity.org_act_id) %> + <% iamge_path = get_image_path_from_content(news.description) %> <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank" %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), news_path(news), :target => "_blank", :class => "partnerimg" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), news_path(news), :target => "_blank", :class => "partnerimg" %> <% end %> <% end %> <% end %> - <% if activity.org_act_type == 'News' and News.where("id=?", activity.org_act_id).count > 0 %> - <% news = News.find(activity.org_act_id) %> - <% iamge_path = get_image_path_from_content(news.description) %> - <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "369", :height => "169"), news_path(news), :target => "_blank" %> - <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "369", :height => "169"), news_path(news), :target => "_blank" %> - <% end %> - <% end %> <% end %>
    -
- <% end %> - <% else %> -
-

合作伙伴更多

-
-
    -
  • - - -
  • -
  • - - -
@@ -99,18 +65,20 @@
+ <% else %> + <%= render :partial => 'organizations/org_subfield_leftD_default', :locals => {:field => field} %> <% end %> <% elsif field.field_type == "Resource" %> <% org_attachs = get_attach_org2(field) %>
<% if !field.subfield_subdomain_dir.nil? %> <% if !request.local? and Secdomain.where("sub_type=2 and pid=?", @organization.id).count > 0 and Secdomain.where("sub_type=2 and pid=?", @organization.id).map(&:subname).include?(request.subdomain) %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "369", :height => "169"), show_subfield_without_id_path(:sub_dir_name => field.subfield_subdomain_dir.name), :target => "_blank" %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), show_subfield_without_id_path(:sub_dir_name => field.subfield_subdomain_dir.name), :target => "_blank" %> <% else %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "369", :height => "169"), show_org_subfield_organization_path(:id => @organization.id, :sub_dir_name => field.subfield_subdomain_dir.name), :target => "_blank" %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), show_org_subfield_organization_path(:id => @organization.id, :sub_dir_name => field.subfield_subdomain_dir.name), :target => "_blank" %> <% end %> <% else %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "369", :height => "169"), org_subfield_files_path(field), :class => "more-btn-center mt30", :target => "_blank" %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), org_subfield_files_path(field), :class => "more-btn-center mt30", :target => "_blank" %> <% end %>
<% end %> diff --git a/app/views/organizations/_org_subfield_leftD_default.html.erb b/app/views/organizations/_org_subfield_leftD_default.html.erb new file mode 100644 index 000000000..b284a8543 --- /dev/null +++ b/app/views/organizations/_org_subfield_leftD_default.html.erb @@ -0,0 +1,19 @@ +
+

示例:合作伙伴更多

+
+
    +
    +
  • +
  • +
  • +
  • +
    +
+
+
+
<
+
>
+
+
+
+
diff --git a/app/views/organizations/_org_subfield_leftM1.html.erb b/app/views/organizations/_org_subfield_leftM1.html.erb index 0069b4e49..35f20edf1 100644 --- a/app/views/organizations/_org_subfield_leftM1.html.erb +++ b/app/views/organizations/_org_subfield_leftM1.html.erb @@ -94,7 +94,7 @@ <% if @project_acts.blank? %> <%= render :partial => 'organizations/org_subfield_leftM1_default', :locals => {:field => field} %> <% else %> - <% @project_acts.first(4).each do |act| %> + <% @project_acts.first(1).each do |act| %> <% if act.org_act_type == "Issue" %> <% activity = Issue.find(act.org_act_id) %> <% iamge_path = get_image_path_from_content(activity.description) %> diff --git a/public/images/default_blank/ad-default.jpg b/public/images/default_blank/ad-default.jpg deleted file mode 100644 index 7707775d689fd752016a25fb45cdf839dbd7c305..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22474 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 GPyPo5W!)hF diff --git a/public/images/default_blank/banner-default.jpg b/public/images/default_blank/banner-default.jpg deleted file mode 100644 index 1debf41a820bdf9d70d6447fd99b3ff28614966d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25898 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 Dls*g( diff --git a/public/images/default_blank/default-img2.jpg b/public/images/default_blank/default-img2.jpg deleted file mode 100644 index 8d194d605ed72b16f34f9216b7eb4dd1e927d9da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21630 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

M?yePDmV^@A4r8sNdr>BaR?qw1t*d5u)qls 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 literal 0 HcmV?d00001 diff --git a/public/images/default_blank/left-02.jpg b/public/images/default_blank/left-02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aee126ad3b165a74d41c9e5f4a43eb3fb90352e3 GIT binary patch literal 16601 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 literal 0 HcmV?d00001 diff --git a/public/images/default_blank/left-03.jpg b/public/images/default_blank/left-03.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4ff9bfa05aee3ec122cac64160aff6ffe92bcf55 GIT binary patch literal 13487 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 Xxfu32-MYXnC+AByKH0vf_s;(SNyS&Z literal 0 HcmV?d00001 diff --git a/public/images/default_blank/left-04.jpg b/public/images/default_blank/left-04.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bdfcd485cf3eafc63a7066ca2a780ea48e313ab8 GIT binary patch literal 19557 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 F{||R)i+lh8 literal 0 HcmV?d00001 diff --git a/public/images/default_blank/left-05.jpg b/public/images/default_blank/left-05.jpg new file mode 100644 index 0000000000000000000000000000000000000000..240780a62b5d89d1c8e2bb6556952490b0eb2485 GIT binary patch literal 16785 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 literal 0 HcmV?d00001 diff --git a/public/images/default_blank/left-act.jpg b/public/images/default_blank/left-act.jpg deleted file mode 100644 index 19259035d8432c3050dbe4eeb783e0c7af9fd473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16187 zcmeHucU)6T)9|K1=p6*4getvv={+EVR0Rtm2@nVgB%vva1wpV-1VlkmM3AncVnd}^ z5ky5$u^>f2QLumoh4-9Lz4t!PbAQkKd%u6ayOKS#Gqba^v*ql}S*M>&zh*0Th$9CB z;N}L@000~SgAf8J2tq*r074S5v0wm#5KHIbFoeo14-(?h1yBxTpdTHf$AU#5I3tA& z(6e=mp=Ueb`neT=Wdd_g8zL=;g!KreF=>oYS|rxa%LuFDN2U^Ku?$t9r=x3Rrek2H zXMoi;Fw@mH(=`A9bri9n+fn44d_>|=)Eo>>KyAT^9f6wVWnbJ6gv>%e5Xy`Dfke#7 zKxiT7WuvJx;(#;sge)@ioPIL>9`LYwu))p^Af`V6K2`}3x59kW-5?3@aBy&Na`13+ z@(6NsaSMv_^YHMCiVF*i3JZ%1^03nEW2W%O9Kp-Y&CACtz{e*b!pFxa0%v?8GgSot zj)3XwK#&7CfTJjcJU|K}P=bi*7f>g;rkfE~kd|x+R)Q3U6AB=ZXf}2X2PYRdH2A+0 z5devrBMJZn8i7Khk!%=t4mK2zK138mq2+{h*=$zfh2^8R>9LDs9y@KTpeX9u5TtKF z-~PZ3qm<<}_WC1%VJKE~W{0x4cK07YUF5Y=Ir@5p5 z%ZYP09uJKB2FE1lmYl!Y`DVh{$uA@}21ptfi-CGd@!c381$OHJ(`RN;#Uqn2 z4f?aZ4jm>hm-zU-`qMOM%L$0O_{8V}{bAOjVZ|&LPpDpY7EbX5Btvz&{dbw3RrxQM zKKVSxrE=j_o9x@do~-RhrDUv@ z7w)q4rC&{%IQ!Fw_*CyX&QRmD<2>0S%HgziC=7UhZw-s;Eo>5buB)<72BlB0s;w%*;{r^sjR#kDP?$-{2-W@b{)6f)}Pc!1AENzBcp2RX;Ri2bIT%vbdjdTSxJ=Zyh~; zJmZY+VMZ|}m4e~yjWzwT>1yta)MUffXwr#mMH!=*&0da3)V+-acNxVefJJh{1H$;g@5OWY@RPz>q_ zDDmN!jqlsS*JtIc{%H&!jXd12yf~|{Na%m{n0`9_p0{LSpVZgV0VcLMH?$IK*$S}o zMH!1`#zJ&KIZTK5EdaP9>0~O?J(?LA&4h~Z#tu9fOs^msjl$x z5rT!D{H(fOGBx1j*ZBwKs&CX>6u~2c1R>_98K(Bi)0-2oRAi zR4&wb_tnIiU6m_xo<3L6mcpdY>cA5eO{Or(RF)8k&dK7ob6ev&)BoiV4j?t5Y@v@r zi~8su$t2UL42Zr2=Cq4sQs>kLc9bCce8Dq>;Wl5eqf_k`3RLDoVMP#yF;7_;!i11mMX#>AvfhQ4*CDNjUtZ6-Pk(He2)IZ^DDSzg( zr4zkCAkEP<5-2y|McUnmJ0Txd>`sUdUb zco%fi8Dnm87x#C%zXCG|6_%*o2348f`eop<2GHM=aJ3CrRg zXJMUzc5pC6p+GrwN`Vq$7IW<2p?QoR3-1r*b3BGD3_SB^F)W$ipfUiF08Ia7LJh&> zza&lnZ)hxAz@nkP0d`giJ`V!0$cAu{MbUvF=!`jg@?hcMegGiG+K}L70b3Z}oZ!A; zSR5P>G{4G`)=)#xZ&o6F?wqMJ(}E;iL_x=!S=+!x0G|pGiO`cRL@gAPmj^V#j8$30 z-?G_d3gcKcpqjs@MGW(Vg$)Q$qbcyt2%CUCh!#yHGXAjs2~1sx26qy`i)MaiLghcq zY+$>v0$6Hz&QEZbYU~UOnLuLrQdYoA6!BX-Y%Cgt7J_~lRsmA&?}umTD zuwZx!&#X_F1EABO3|<^Zp`QZ;_5iRg5W-V|IOGxi<1zi?G5zB){o^tHKk=AYyO$ia z4*}o<{SffB#1Cu$5zs&oAOS4!0HF}fgnkSb1Ra}z@PFXI0z2RZj9`H?`{2y!3j;Wy z2B5#`*SwvfOlG8+wl_EZaQv}cBD|U^F}(!YvW39!p3ldDN)|a5^El378em2L1N;uaS;?M!z|81 zo+aE2f?>3_JeI}647ZSHMWL{(-8`^%G&%`usHLw-(9zY!8X0Nn8W1tr1(3+mM z4)kZF35C`Sjm-3nv9n1YYK=||HuJQ1oNWs#S;)_JDmFG&D^_2NMi0@}H8nMbW$5W? zLL8cmcq$Vgr%7cf%t^2(F$i=r%LBv05+Uy*nrR^qX*$z|h{$=de`%{ljBalKo;4x@ zHULX3gXs_hwes%OnF@2&iG=yOk=%-sRRvvagDaB$GqF?BG~)iu%4GjcG|wbL;+cGNMkabW2L)wQP)qG8L;)g{7pP5)lq znS&>u^54lI63l{W^awmO8ORa%5R!ISBq>B5J3lIBth1CGjR=`me=#0sX9vX_g2@z! zz<_*pEY88sNY~WJNK;Qs7oOaZ4WOPmlNr!R#?LMnFH+PjL?L5YbI=S=fP)Vf@&tIy zNksWsH2JTr`5!GZBQh3pm;dcVm|+I>{ykviyIVXWIWtZw5Z*KWP0Q=fMA+ z*0aVWgyN|oBxv{4mWTVH4ev8EL!tf0QDV^+?MZX&&_)M?^E<5N+)nt<^B)WRV}XAx z@Q(%lvA{nT`2WZP3qBf&3LPzCArEZ2muEF}F5KYZ>F$VI;lOeyd7M{}sWc=M_>F+R z_rM3m)oc8*m^LWz%LzrEp%5>gz=(A7a)dvL0q78kg-??(ypSe3S@AOPNYmK^i(SC~ zEl7|MNryiCAUq&$eIn#-L2wcTQ(~EsFdmNAi3EkiFcOZ`iO?YhAy^!SLuOzN7S9Z9 z4a39;Diqp9!a7G1BZx5E48gl%qT!G)Y6S!*$B;>}5ZnR5ij?RGG6ch49z-HYcqj~w zhGT(>OcEg!f^{I6hwkkOeK|s#Lzhc7>p=&t(6WxQOrHf$-SQ&_AzYjTu7h z-U4o+<^qmZ1bv@?zVe_l7H~la0jS#vfcUcooZ?X^GLZzp`TL9dBL>fxMNT)FM9_i_ zI-mX{!#wA|1{Sra1-CcvQ;AOa+y8&nEFh4p317%T_YPz>D#xC3vn2CN4JC`c6n=pYs(fNdZd>;@Si z2OI*0pcs^aYH$YBfh(W^+ypJqO{>SC8}xty@D7ZD2`~wLY{MXU5yA)wge*b{p^nf) zm>?_>4u};9PsAETAR+`oMMNVK5IYdN5m|^sh+~K{#A(DuL<8au;sN3*;x%Fz@d@z* zi9+%qMUc`+Wu!LJ1ZjhGMS3IGAw!T+$c@M(7oeF%LLeIDJ6euRFF9z##D@v=#=sk51};n-HQg|Nl4C9~zSm9U*-yTSID zZGdfpot<5beHptkyEFS5_AvHM?0eV`v)8a+XMe!n$3Bk1U?ec=7z>O$29IH4k}(G{ zm6&UohnNA(Hx6zNSq?o8M-G1uD#vz?T#j;%s~itG2011<1vr&B%{bjTiJbAA>72!! zmpJcp4scF#334stvf%RO3ggP z&LhO5#$(5`mM5BLA5SUIb)Kg@pLuzCm3ggs{dt+Z`*_QEn|NRHe&ZA7)8fPN5&07N z^7+p5J>>hq&&jXEZ^OTye*g2IBjg6@J5 zf_ntZ1@8zB31Nhkg&c&4LPK6gG4-OfhUU{AFZpL^rB78a7rm4m2(>?lKWE@i5tAa@&;6)Ydf7^or?sGb1ym z*%`CZ<(kXGmzOUeGGAs+GA}movyivITO70KvBX*iS{}9Rv68dGTNPRLS}Rx+txK#2 zZB%W-Y$|O&*y`BQZO_?$wKKEZY&|S>uFjdxT{vkR0au0_b1`<=?9%MYZTwcY#%41djsyCjxo(Z0}yo9|rc$Iric-wlXdw2V&_(c0O`ttj( z^)2)L>Synl<=3-Xd-dkkEo&s#kk?%B$N2mDm-vqdI0WPb46HR=o4mGj-LiFY>+YS&(JIk9qhH5Z#^lF*i}j7IjT4Nc#@&lo zi%*Ro+~~OR#3uA6!luRqxrA*AuQ%IlKDGt1C1^`yqC#R);=op?ttYo}Z42Mlx?N{` z*7h$u{B~SQl1|#1)VI@VXGJn!GCjE~WqC^BF7z()uC`SD)Pt#0X~eXn%u2xF={z~&+y*4R>RhFZANY9?;GF0 z&~Dm(>4Eu!s}HRnHaxO_bh883(eilZ;|HBSolm;fcJ(|VJ{fvSdHV5L%(Kbvt zr@at(k^55WWzj3uS2aCGJ@v2cU*GHX>h10$^u6n6^#2@4dc*rBcTje)Y)EhD%CO^b z``duG1Mec=O^zhL7kppvLFL2QQR~rrW2?soKGHuwehf~={>1#u`=$Ep(v<7e^XUlaF3txaH+yf`8afL=SC$1(NYu<{ zCHQavCDv8q+50ko=Yd>EsQI+0B7AWcIZybzz;q*gmG}fA5ru&6-p*VlZU!~bi3f>- zh0o{;^7c2NLoo*lmB10^&YiXDN(01tscL2QPhn31uN=#rVM zz0k#8HcmbaEEfUaJQidJ(EZ|7!Wa)5=zgyN7QWuAXX_b6*B3n(czSzQkpkn<+2|ZG zqZm6c!u}@34i2FOomh>5jG0Tj2Do(V&uPW#s1`GxfcjFg|> zHdK~lSFIKKjfODR`V<_X{6rQlUgn%?En~fyiqaVtYSLnS0lWxXQC;{O4OK*|tl= z_Or!SkRp=mEC8Q>7m_jQhpVecj!a2qjZ07E-K`507&0PVadSV)i}w+QeZ|Ge2)*m8 zp*{2aV%%TBh&>D(Qo~CpMPSGA+xTqeVs{AQk80r3?mb}X7S-Mi&btzSlYr=T;5{g) zWWVC3KDX4vrLbrGHxoZJXE+c@=r%m~`O}J3fUe0e6ySUE;73Q)E-eq!&)cK;jZotE zO;$~)=hOD+S6=i<_X;S@9=vh)x(}c3;WHMSpZdS|IW@f9R>z`tPYC}oIMZ?c&U&Yk z($2)^?$wuutF{~sNYHew@+}l{lDcGCv~_(+lIJIloCmKs&4qRw7q1tobVI8wNnKg> zy7I|Q!&|RU$w~Jl@$1xnQM@n>WN~eN@8oRL<%mE;eaE+pi2}W*Z5y5L+xYBN43eTC zvMh@BKWN8xDvCsn%T0sUmTxHnQ@6jL<1bS&uWdLv`b%2Yq&2*7OWnYE`DNu(ox?JM z{zC%$PC151Oa>Ik-xXMAd+pog7k8~SHz`-sj|iuFd2x3*O#@@?UMagtg*PwP7hyjR zo9Ny@e)P=sh`#-C#VgvB-(A(rxaSa%?o;_r8)EJJksGlyw>&$0;Tr>+M+_Z{$$k+u8W*+!M~eW&5UOJ#E^Zs|< z?f1q*O5{1xWH*Wu!g98pN~=75Kz6Vi!&SO=?d_MQZQ|+EfVY2&`?l#&n0%Uwyq&+7 z|BpvAa}3FD1rlbb*diE#fbhSbRT>87Hdj5Ba&CM1OGFw|SG#qhfBW{s{H~`DMerv? zC4kB9ZGHU_mpA?tf4yt7bhvKc>&uy#E9Zh`Ju0tVYcMzycB>;7uU=EzoSN_6JGTC@ zQK(bIF8;lIhX?le+I+vhQB`w|rk`~6u`g2_Z%Y@knQs?hJ2^BJ2+xaC6*7lQY8rv^UsX5s_t>>nt$b^F`El!V z3>LiBToYVs{do=7G_VLvY?3F@Pen98Sy2YPut>AmvaC9P}#FT(r zby3f`d}#CA>pPlS_dMKtm{X9~4aeV`{U)%hKA!J`Vg+3+Iqtq8wUM82oPXzodiyYb zbm-}qJ8=~RHx7%dJSpdnF~(&Gso`yVMcOYrX;2JEOf!Kkg*ENx%4~kP3RMOUpR{(r z`M$KL2BiNDbaYbps!lojwMjNS_An+9 z;mzg))V4wwE}{QV1^5dHk*B+NiIs)8rx`!mzr#>c` z3BH%U)oHTZ5V_UH|Eul3_INwfN1goFH}|#I>1kd1b;z)W)3QwYTQUB<;7QrWUanJn zNvAa;kNzwZSLt&1=qjvD`*Kv$X}!`O*#P74+plsIvfR)9yj=0CuHe_f@IA`KQ#-UL zl}GQ@97tt;+*K8B)6(pt%*lT))1|OgD&Pe6F~vr4%NwKdrSwNOyDy&++4mrChLNTDyB7|6N3o*B66lKU*J9b+>J~ckZU}51wly z`PcLnD-Ct6DXJgB`dv>>abjGoRIcB>H2rAJ+27`84TX~k+?B2Id~eB^~P8A z)G>X6lGjjL2-11Z3N@1Yt%{?HwuUeE&??x!kMkG%h6%S<2RC_rT;p?c$CWl_VmbC!|DDwspRE2D z%jyO9kbmaLB!y)eWfBQv$)y>m#cGz+_Ocy#>BOl)@pXPdbd)Y1vQw4mHK~cwGdqmD zw_{2=3AjppHP(GuEPH_7RU=aSq>%Ooznw!NKKKwhs?$^DSenj5SB-tw)lMp6ueBE4?@F>5nlil@y)$ zrrPp3Ri;`ipo7y~K?F>ReA>6`%g=|=mJK&c51QYxyk@I-`ZP{HI?H&y!#WO9;HCyC z2a?Nf4zzDCrhsws4fFj_MuO{zWmCgPv*P1{Cu;@Xc+8wvvBT@Es=4;+kpsB)A8s7XtJN1;b8z2@ zRP#HEV=BIp9YgxayU}Z^HjnHx==YTy+wrO<@mTIXD=GJ)HPtJ3oBO{j?Y~`LzS-$% z4JWmr$obWNZ8=5vcl*3MvZE*Kj~|fij8cjo3AZj-ZfT!Do7Y~ zBh>!T+hoZN;)q*faXkilH`I>ck7p`+eNb~Y4~ysH4ya!*Z}<(p9k+7FI`pdX+wKpV z8d6e^p+$|Cp>DK)>J-0NE_*k^{Z!;9m-mYMZXABGd--Xz++edTT<=<6EsxH%;_uhk za&>tcgcjj%w>4!dj9UCUk|Gv*k6@mZdDvefLwci9`a1DgnFnvp75$uV`I{k?Xum=% zKHiJhD(!f-=|18?&V%Ig+YLF}M&!0()AQDkUpQtKc6yxs;ICAncM6;Rqm5Hy(S~efZ9duiL@4~sp zJxvdzN*S)m)#|7|)AHIY=b^wul|&Jqh^m&sB?pfiie&bGx*S}XEf|ny?z1PSuBj>P zrg4j_(5_E$hu%tt26K(}isu1??!2GDPdCMVJo`22>_^N-Ei2gz>J5psovkk_qds+= zV8|${O3|G(4!OM0y3)|N>gj6fij^9Lxs!>B_oqVdl771MEzfD`OSY7VG8y(ItR?td zI%LpwauOr6`pu`y71{%x%kFsTYHx7syM|M!ycc)g@T=B0S^KSm6X97Ttt`<(J?2=S)lt+%By3eev|RZsxDLrOCA`NjoH@RLs_;?Hs1<61=I7xS;oaa`~AL zJujS7^O`=Cjo{Y59BF;hSb5Pkud_l*wyb}vy-eWg8xITl4lA@za+#_VDk5rhzP@>L zPWwPNHKXyt^ZZT1N3LmBy}tbE;~m3_Q_4$a(Pugx(lqv7)~P(C&fFv8N&XaP(Q;n9 ze=z@^RKnP^3sdV>e^!ru@0z3Cv)9JUIQdz;+J#4ks#hFc9!eYweJ;f4JeqT2gVxXE zm(%MrEQPqfzkjhsDtpxd=LbP`V#}zhg~cbmPhHt+PAU7EylF|DT>Uf{Ch1(`q1w6aIN8(~%RsH$;TCXKqzV(%H z2b84Na|CnWb@OQ->XoYQZ5&8x-9D;ei18&a@+%76TjxY5%Itv8H1-juJ> zz^H8+JP%k!H;772+5UK~dE9s!?Ud5)Ah9gmi(PsbC5Ou%wSRtGpl=r}5qQuSCm)3Kly(x&aBb&rWh(4lIccerH&J1wflwu$5Dh5X5%k!xcCnGj~FMs0C{?gjJLT1Z= z>vz4|n$c~a14{OtczVguERaOupKI#tD# zHcC3(_!9YT*V2-8&XL}k&5<@zkxe{g5uN7UQmY&!llGbPSqmz#yl7sGM9pKJJN)l{ mPC3#0uiyp>Z?upSWY4?F?rQD1IfWeBT~u9=^5N0+)Bgb>V%R4D diff --git a/public/images/default_blank/left-act2.jpg b/public/images/default_blank/left-act2.jpg deleted file mode 100644 index 7f105cb1cfe041af7254e892d503d1814a4d3ab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13595 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 N9Ci6oH|W0o{{VP9c=G@N diff --git a/public/images/default_blank/left_01.jpg b/public/images/default_blank/left_01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bbb96afc4586839eccf2b055423ffe0b7e46aad GIT binary patch literal 26184 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 literal 0 HcmV?d00001 diff --git a/public/images/default_blank/right-01.jpg b/public/images/default_blank/right-01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b71c8ae4375c0711c2ee43cb99c6b03f0390f41 GIT binary patch literal 18874 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 literal 0 HcmV?d00001 diff --git a/public/images/default_blank/right-02.jpg b/public/images/default_blank/right-02.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a28f9a41d4d0be05d063feba2fe2b172cec931f6 GIT binary patch literal 16541 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 AApigX From 7aaa13ca1a2d1d1d2a8e4b10ff8437ce6bda5d58 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 28 Apr 2016 10:26:41 +0800 Subject: [PATCH 006/257] =?UTF-8?q?=E5=B7=A6=E4=B8=80=E5=8F=AA=E5=8F=96?= =?UTF-8?q?=E4=B8=80=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subfield_leftM1.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/organizations/_org_subfield_leftM1.html.erb b/app/views/organizations/_org_subfield_leftM1.html.erb index 35f20edf1..dc958cebc 100644 --- a/app/views/organizations/_org_subfield_leftM1.html.erb +++ b/app/views/organizations/_org_subfield_leftM1.html.erb @@ -160,7 +160,7 @@ <% if org_acts.blank? %> <%= render :partial => 'organizations/org_subfield_leftM1_default', :locals => {:field => field} %> <% else %> - <% org_acts.first(4).each do |activity| %> + <% org_acts.first(1).each do |activity| %> <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> <% document = activity.org_act %> <% org_subfield_id = params[:org_subfield_id] %> From b8f7a6a300aaae75257c03f1c6f402bc2a554a83 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 28 Apr 2016 10:43:42 +0800 Subject: [PATCH 007/257] =?UTF-8?q?500=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subfield_leftD.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/organizations/_org_subfield_leftD.html.erb b/app/views/organizations/_org_subfield_leftD.html.erb index 017eec71f..7663afc9b 100644 --- a/app/views/organizations/_org_subfield_leftD.html.erb +++ b/app/views/organizations/_org_subfield_leftD.html.erb @@ -14,7 +14,7 @@

    - <% org_acts.first.each do |activity| %> + <% org_acts.first(2).each do |activity| %> <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> <% document = activity.org_act %> <% org_subfield_id = params[:org_subfield_id] %> From 4635c0479812bc8051e4fb930d8a71e6c8380631 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 28 Apr 2016 10:57:45 +0800 Subject: [PATCH 008/257] =?UTF-8?q?=E5=85=B3=E6=B3=A8=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subfield_leftD.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/organizations/_org_subfield_leftD.html.erb b/app/views/organizations/_org_subfield_leftD.html.erb index 7663afc9b..1ce8b788b 100644 --- a/app/views/organizations/_org_subfield_leftD.html.erb +++ b/app/views/organizations/_org_subfield_leftD.html.erb @@ -14,7 +14,7 @@
      - <% org_acts.first(2).each do |activity| %> + <% org_acts.first(8).each do |activity| %> <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> <% document = activity.org_act %> <% org_subfield_id = params[:org_subfield_id] %> From 5c795b92ee8a4b2e3abbd9813dafdc266b3fe800 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 28 Apr 2016 11:12:44 +0800 Subject: [PATCH 009/257] =?UTF-8?q?=E5=9B=BE=E7=89=87=E7=99=BE=E5=88=86?= =?UTF-8?q?=E7=99=BE=E6=98=BE=E7=A4=BA=EF=BC=9B=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=A4=A7=E5=9B=BE=E5=B0=BA=E5=AF=B8=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_org_subfield_leftM1.html.erb | 44 +- .../_org_subfield_leftM1_default.html.erb | 2 +- db/schema.rb | 432 +----------------- public/stylesheets/org2.css | 3 +- 4 files changed, 30 insertions(+), 451 deletions(-) diff --git a/app/views/organizations/_org_subfield_leftM1.html.erb b/app/views/organizations/_org_subfield_leftM1.html.erb index dc958cebc..6aa22e58a 100644 --- a/app/views/organizations/_org_subfield_leftM1.html.erb +++ b/app/views/organizations/_org_subfield_leftM1.html.erb @@ -12,9 +12,9 @@ <% iamge_path = get_image_path_from_content(activity.description) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <%= link_to activity.name.to_s, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "h3-title" %> @@ -29,9 +29,9 @@ <% iamge_path = get_image_path_from_content(activity.content) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <% if activity.parent_id.nil? %> @@ -50,9 +50,9 @@ <% iamge_path = get_image_path_from_content(activity.description) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <%= link_to activity.title.to_s, news_url_in_org(activity.id), :target => '_blank', :class => "h3-title" %> @@ -70,9 +70,9 @@ <% if ( activity.polls_status==2) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <% if has_commit %> @@ -100,9 +100,9 @@ <% iamge_path = get_image_path_from_content(activity.description) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <%= link_to activity.subject.to_s, issue_url_in_org(activity.id), :target => '_blank', :class => "h3-title" %> @@ -117,9 +117,9 @@ <% iamge_path = get_image_path_from_content(activity.content) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <% if activity.parent_id.nil? %> @@ -138,9 +138,9 @@ <% iamge_path = get_image_path_from_content(activity.description) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <%= link_to activity.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "h3-title" %> @@ -168,9 +168,9 @@ <% iamge_path = get_image_path_from_content(document.content) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "h3-title" %> @@ -192,9 +192,9 @@ <% if message.board.org_subfield_id %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <% if message.parent_id.nil? %> @@ -211,9 +211,9 @@ <% else %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <% if message.parent_id.nil? %> @@ -234,9 +234,9 @@ <% iamge_path = get_image_path_from_content(news.description) %>
      <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), news_path(news), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "380", :height => "165"), news_path(news), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), news_path(news), :target => "_blank", :class =>"sn-news-bigimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), news_path(news), :target => "_blank", :class =>"sn-news-bigimg",:style=>"display:block;" %> <% end %>

      <%= link_to news.title.to_s, news_path(news), :target => '_blank', :class => "h3-title" %> diff --git a/app/views/organizations/_org_subfield_leftM1_default.html.erb b/app/views/organizations/_org_subfield_leftM1_default.html.erb index 8806fcc1b..efa0e8a0d 100644 --- a/app/views/organizations/_org_subfield_leftM1_default.html.erb +++ b/app/views/organizations/_org_subfield_leftM1_default.html.erb @@ -1,5 +1,5 @@
      - +

      diff --git a/db/schema.rb b/db/schema.rb index 7dfa2f1e1..831b2d4d4 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -52,28 +52,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" - create_table "application_settings", :force => true do |t| - t.integer "default_projects_limit" - t.boolean "signup_enabled" - t.boolean "signin_enabled" - t.boolean "gravatar_enabled" - t.text "sign_in_text" - t.datetime "created_at" - t.datetime "updated_at" - t.string "home_page_url" - t.integer "default_branch_protection", :default => 2 - t.boolean "twitter_sharing_enabled", :default => true - t.text "restricted_visibility_levels" - t.boolean "version_check_enabled", :default => true - t.integer "max_attachment_size", :default => 10, :null => false - t.integer "default_project_visibility" - t.integer "default_snippet_visibility" - t.text "restricted_signup_domains" - t.boolean "user_oauth_applications", :default => true - t.string "after_sign_out_path" - t.integer "session_expire_delay", :default => 10080, :null => false - end - create_table "applied_projects", :force => true do |t| t.integer "project_id", :null => false t.integer "user_id", :null => false @@ -155,20 +133,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.string "typeName", :limit => 50 end - create_table "audit_events", :force => true do |t| - t.integer "author_id", :null => false - t.string "type", :null => false - t.integer "entity_id", :null => false - t.string "entity_type", :null => false - t.text "details" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id" - add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type" - add_index "audit_events", ["type"], :name => "index_audit_events_on_type" - create_table "auth_sources", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 60, :default => "", :null => false @@ -266,17 +230,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["project_id"], :name => "boards_project_id" - create_table "broadcast_messages", :force => true do |t| - t.text "message", :null => false - t.datetime "starts_at" - t.datetime "ends_at" - t.integer "alert_type" - t.datetime "created_at" - t.datetime "updated_at" - t.string "color" - t.string "font" - end - create_table "bug_to_osps", :force => true do |t| t.integer "osp_id" t.integer "relative_memo_id" @@ -563,9 +516,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "visits", :default => 0 end - add_index "courses", ["id"], :name => "id", :unique => true - add_index "courses", ["visits"], :name => "visits" - create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -627,15 +577,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" - create_table "deploy_keys_projects", :force => true do |t| - t.integer "deploy_key_id", :null => false - t.integer "project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id" - create_table "discuss_demos", :force => true do |t| t.string "title" t.text "body" @@ -685,16 +626,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "created_at" end - create_table "emails", :force => true do |t| - t.integer "user_id", :null => false - t.string "email", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true - add_index "emails", ["user_id"], :name => "index_emails_on_user_id" - create_table "enabled_modules", :force => true do |t| t.integer "project_id" t.string "name", :null => false @@ -717,25 +648,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" - create_table "events", :force => true do |t| - t.string "target_type" - t.integer "target_id" - t.string "title" - t.text "data" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "action" - t.integer "author_id" - end - - add_index "events", ["action"], :name => "index_events_on_action" - add_index "events", ["author_id"], :name => "index_events_on_author_id" - add_index "events", ["created_at"], :name => "index_events_on_created_at" - add_index "events", ["project_id"], :name => "index_events_on_project_id" - add_index "events", ["target_id"], :name => "index_events_on_target_id" - add_index "events", ["target_type"], :name => "index_events_on_target_type" - create_table "exercise_answers", :force => true do |t| t.integer "user_id" t.integer "exercise_question_id" @@ -838,15 +750,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" - create_table "forked_project_links", :force => true do |t| - t.integer "forked_to_project_id", :null => false - t.integer "forked_from_project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true - create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -975,17 +878,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end - create_table "identities", :force => true do |t| - t.string "extern_uid" - t.string "provider" - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id" - add_index "identities", ["user_id"], :name => "index_identities_on_user_id" - create_table "invite_lists", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1129,20 +1021,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "private", :default => 0 end - create_table "keys", :force => true do |t| - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - t.text "key" - t.string "title" - t.string "type" - t.string "fingerprint" - t.boolean "public", :default => false, :null => false - end - - add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id" - add_index "keys", ["user_id"], :name => "index_keys_on_user_id" - create_table "kindeditor_assets", :force => true do |t| t.string "asset" t.integer "file_size" @@ -1154,27 +1032,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "owner_type", :default => 0 end - create_table "label_links", :force => true do |t| - t.integer "label_id" - t.integer "target_id" - t.string "target_type" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id" - add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type" - - create_table "labels", :force => true do |t| - t.string "title" - t.string "color" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "labels", ["project_id"], :name => "index_labels_on_project_id" - create_table "member_roles", :force => true do |t| t.integer "member_id", :null => false t.integer "role_id", :null => false @@ -1225,47 +1082,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "viewed_count", :default => 0 end - create_table "merge_request_diffs", :force => true do |t| - t.string "state" - t.text "st_commits", :limit => 2147483647 - t.text "st_diffs", :limit => 2147483647 - t.integer "merge_request_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true - - create_table "merge_requests", :force => true do |t| - t.string "target_branch", :null => false - t.string "source_branch", :null => false - t.integer "source_project_id", :null => false - t.integer "author_id" - t.integer "assignee_id" - t.string "title" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "milestone_id" - t.string "state" - t.string "merge_status" - t.integer "target_project_id", :null => false - t.integer "iid" - t.text "description" - t.integer "position", :default => 0 - t.datetime "locked_at" - end - - add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id" - add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id" - add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id" - add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at" - add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id" - add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch" - add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id" - add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch" - add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true - add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title" - create_table "message_alls", :force => true do |t| t.integer "user_id" t.integer "message_id" @@ -1300,39 +1116,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" add_index "messages", ["parent_id"], :name => "messages_parent_id" - create_table "milestones", :force => true do |t| - t.string "title", :null => false - t.integer "project_id", :null => false - t.text "description" - t.date "due_date" - t.datetime "created_at" - t.datetime "updated_at" - t.string "state" - t.integer "iid" - end - - add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id" - add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date" - add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true - add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id" - - create_table "namespaces", :force => true do |t| - t.string "name", :null => false - t.string "path", :null => false - t.integer "owner_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type" - t.string "description", :default => "", :null => false - t.string "avatar" - end - - add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id" - add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true - add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id" - add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true - add_index "namespaces", ["type"], :name => "index_namespaces_on_type" - create_table "news", :force => true do |t| t.integer "project_id" t.string "title", :limit => 60, :default => "", :null => false @@ -1358,31 +1141,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end - create_table "notes", :force => true do |t| - t.text "note" - t.string "noteable_type" - t.integer "author_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "project_id" - t.string "attachment" - t.string "line_code" - t.string "commit_id" - t.integer "noteable_id" - t.boolean "system", :default => false, :null => false - t.text "st_diff", :limit => 2147483647 - end - - add_index "notes", ["author_id"], :name => "index_notes_on_author_id" - add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id" - add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id" - add_index "notes", ["created_at"], :name => "index_notes_on_created_at" - add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type" - add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type" - add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type" - add_index "notes", ["project_id"], :name => "index_notes_on_project_id" - add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at" - create_table "notificationcomments", :force => true do |t| t.string "notificationcommented_type" t.integer "notificationcommented_id" @@ -1392,49 +1150,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end - create_table "oauth_access_grants", :force => true do |t| - t.integer "resource_owner_id", :null => false - t.integer "application_id", :null => false - t.string "token", :null => false - t.integer "expires_in", :null => false - t.text "redirect_uri", :null => false - t.datetime "created_at", :null => false - t.datetime "revoked_at" - t.string "scopes" - end - - add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true - - create_table "oauth_access_tokens", :force => true do |t| - t.integer "resource_owner_id" - t.integer "application_id" - t.string "token", :null => false - t.string "refresh_token" - t.integer "expires_in" - t.datetime "revoked_at" - t.datetime "created_at", :null => false - t.string "scopes" - end - - add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true - add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id" - add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true - - create_table "oauth_applications", :force => true do |t| - t.string "name", :null => false - t.string "uid", :null => false - t.string "secret", :null => false - t.text "redirect_uri", :null => false - t.string "scopes", :default => "", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.integer "owner_id" - t.string "owner_type" - end - - add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type" - add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true - create_table "onclick_times", :force => true do |t| t.integer "user_id" t.datetime "onclick_time" @@ -1590,23 +1305,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "show_mode", :default => 0 end - create_table "permissions", :force => true do |t| - t.string "controller", :limit => 30, :default => "", :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "description", :limit => 60, :default => "", :null => false - t.boolean "is_public", :default => false, :null => false - t.integer "sort", :default => 0, :null => false - t.boolean "mail_option", :default => false, :null => false - t.boolean "mail_enabled", :default => false, :null => false - end - - create_table "permissions_roles", :id => false, :force => true do |t| - t.integer "permission_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - end - - add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" - create_table "phone_app_versions", :force => true do |t| t.string "version" t.text "description" @@ -1689,11 +1387,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end - create_table "project_import_data", :force => true do |t| - t.integer "project_id" - t.text "data" - end - create_table "project_infos", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1783,16 +1476,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" - create_table "protected_branches", :force => true do |t| - t.integer "project_id", :null => false - t.string "name", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "developers_can_push", :default => false, :null => false - end - - add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id" - create_table "queries", :force => true do |t| t.integer "project_id" t.string "name", :default => "", :null => false @@ -1927,25 +1610,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "is_teacher_score", :default => 0 end - create_table "services", :force => true do |t| - t.string "type" - t.string "title" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "active", :default => false, :null => false - t.text "properties" - t.boolean "template", :default => false - t.boolean "push_events", :default => true - t.boolean "issues_events", :default => true - t.boolean "merge_requests_events", :default => true - t.boolean "tag_push_events", :default => true - t.boolean "note_events", :default => true, :null => false - end - - add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id" - add_index "services", ["project_id"], :name => "index_services_on_project_id" - create_table "settings", :force => true do |t| t.string "name", :default => "", :null => false t.text "value" @@ -1975,26 +1639,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end - create_table "snippets", :force => true do |t| - t.string "title" - t.text "content", :limit => 2147483647 - t.integer "author_id", :null => false - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "file_name" - t.datetime "expires_at" - t.string "type" - t.integer "visibility_level", :default => 0, :null => false - end - - add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id" - add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id" - add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at" - add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at" - add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id" - add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level" - create_table "softapplications", :force => true do |t| t.string "name" t.text "description" @@ -2086,13 +1730,13 @@ ActiveRecord::Schema.define(:version => 20160427070237) do create_table "sub_domains", :force => true do |t| t.integer "org_subfield_id" - t.integer "priority" + t.integer "priority", :default => 0 t.string "name" t.string "field_type" - t.integer "hide" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.integer "hide", :default => 0 + t.integer "status", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "subfield_subdomain_dirs", :force => true do |t| @@ -2102,17 +1746,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end - create_table "subscriptions", :force => true do |t| - t.integer "user_id" - t.integer "subscribable_id" - t.string "subscribable_type" - t.boolean "subscribed" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true - create_table "system_messages", :force => true do |t| t.integer "user_id" t.string "content" @@ -2307,25 +1940,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" - create_table "user_wechats", :force => true do |t| - t.integer "subscribe" - t.string "openid" - t.string "nickname" - t.integer "sex" - t.string "language" - t.string "city" - t.string "province" - t.string "country" - t.string "headimgurl" - t.string "subscribe_time" - t.string "unionid" - t.string "remark" - t.integer "groupid" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - create_table "users", :force => true do |t| t.string "login", :default => "", :null => false t.string "hashed_password", :limit => 40, :default => "", :null => false @@ -2351,17 +1965,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" add_index "users", ["type"], :name => "index_users_on_type" - create_table "users_star_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id" - add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true - add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id" - create_table "versions", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "name", :default => "", :null => false @@ -2413,31 +2016,6 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end - create_table "web_hooks", :force => true do |t| - t.string "url" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type", :default => "ProjectHook" - t.integer "service_id" - t.boolean "push_events", :default => true, :null => false - t.boolean "issues_events", :default => false, :null => false - t.boolean "merge_requests_events", :default => false, :null => false - t.boolean "tag_push_events", :default => false - t.boolean "note_events", :default => false, :null => false - end - - add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id" - add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id" - - create_table "wechat_logs", :force => true do |t| - t.string "openid", :null => false - t.text "request_raw" - t.text "response_raw" - t.text "session_raw" - t.datetime "created_at", :null => false - end - create_table "wiki_content_versions", :force => true do |t| t.integer "wiki_content_id", :null => false t.integer "page_id", :null => false diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 20fabf3cf..86a7745e1 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -119,7 +119,8 @@ a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left: .h2-title a:hover.more{ color:#24366e;} .sn-news-bigbox{ padding:0px 26px 0px 18px; margin:18px 0 26px; border-right:1px solid #ebebeb;} .sn-news-bigbox a.h3-title{ font-size:18px; width:380px; display:block;overflow:hidden;white-space:nowrap; text-overflow:ellipsis;} -.sn-news-bigbox .sn-news-txt{ width:380px; color:#666;} +.sn-news-bigbox .sn-news-txt{ width:380px; height:182px; color:#666; overflow:hidden;} +.sn-news-txt img {width:100%;} .sn-news-bigbox .sn-news-bigimg{ width:380px; height:165px;} .txt-grey{ color:#999;} .sn-news-smallbox{padding:0px 18px 0px 26px; margin:18px 0 26px; width:350px; } From 16854493812c30bdf3a02d78b98b347f6524806e Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 28 Apr 2016 17:36:29 +0800 Subject: [PATCH 010/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E6=A1=86=E6=9E=B6=E5=8F=8A=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sub_document_comments.js.coffee | 3 + .../sub_document_comments.css.scss | 3 + app/controllers/organizations_controller.rb | 36 +- .../sub_document_comments_controller.rb | 186 ++++++++ app/controllers/sub_domains_controller.rb | 15 +- app/helpers/sub_document_comments_helper.rb | 2 + app/models/sub_document_comment.rb | 10 + app/models/sub_domain.rb | 1 + app/views/layouts/base_sub_domain.html.erb | 173 +++++++ .../_attachment.html.erb | 79 +++ app/views/sub_document_comments/_new.html.erb | 70 +++ .../_show_sub_document.html.erb | 155 ++++++ app/views/sub_document_comments/edit.html.erb | 63 +++ .../sub_document_comments/index.html.erb | 15 + app/views/sub_document_comments/new.html.erb | 71 +++ app/views/sub_document_comments/show.html.erb | 178 +++++++ app/views/sub_domains/show.html.erb | 1 + config/routes.rb | 12 + ...0428065243_create_sub_document_comments.rb | 17 + db/schema.rb | 448 +++++++++++++++++- .../sub_document_comments_controller_spec.rb | 5 + spec/factories/sub_document_comments.rb | 14 + spec/models/sub_document_comment_spec.rb | 5 + 23 files changed, 1526 insertions(+), 36 deletions(-) create mode 100644 app/assets/javascripts/sub_document_comments.js.coffee create mode 100644 app/assets/stylesheets/sub_document_comments.css.scss create mode 100644 app/controllers/sub_document_comments_controller.rb create mode 100644 app/helpers/sub_document_comments_helper.rb create mode 100644 app/models/sub_document_comment.rb create mode 100644 app/views/layouts/base_sub_domain.html.erb create mode 100644 app/views/sub_document_comments/_attachment.html.erb create mode 100644 app/views/sub_document_comments/_new.html.erb create mode 100644 app/views/sub_document_comments/_show_sub_document.html.erb create mode 100644 app/views/sub_document_comments/edit.html.erb create mode 100644 app/views/sub_document_comments/index.html.erb create mode 100644 app/views/sub_document_comments/new.html.erb create mode 100644 app/views/sub_document_comments/show.html.erb create mode 100644 db/migrate/20160428065243_create_sub_document_comments.rb create mode 100644 spec/controllers/sub_document_comments_controller_spec.rb create mode 100644 spec/factories/sub_document_comments.rb create mode 100644 spec/models/sub_document_comment_spec.rb diff --git a/app/assets/javascripts/sub_document_comments.js.coffee b/app/assets/javascripts/sub_document_comments.js.coffee new file mode 100644 index 000000000..761567942 --- /dev/null +++ b/app/assets/javascripts/sub_document_comments.js.coffee @@ -0,0 +1,3 @@ +# Place all the behaviors and hooks related to the matching controller here. +# All this logic will automatically be available in application.js. +# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ diff --git a/app/assets/stylesheets/sub_document_comments.css.scss b/app/assets/stylesheets/sub_document_comments.css.scss new file mode 100644 index 000000000..c88f77750 --- /dev/null +++ b/app/assets/stylesheets/sub_document_comments.css.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the sub_document_comments controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index d8eb98559..b1bf93052 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -84,35 +84,13 @@ class OrganizationsController < ApplicationController @subfield_content = @organization.org_subfields.order("priority") @organization = Organization.find(params[:id]) - # @org_subfield = OrgSubfield.find(params[:org_subfield_id]) - # @org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0 - # @org_acts = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{@org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{@org_subfield.id})").order('updated_at desc').page(params[:page] || 1).per(10) - - shield_project_ids = ShieldActivity.where("container_type='Organization' and container_id=#{@organization.id} and shield_type='Project'").map(&:shield_id) - shield_course_ids = ShieldActivity.where("container_type='Organization' and container_id=#{@organization.id} and shield_type='Course'").map(&:shield_id) - project_ids = (@organization.projects.map(&:id)-shield_project_ids) << 0 - course_ids = (@organization.courses.map(&:id)-shield_course_ids) << 0 - course_types = "('Message','News','HomeworkCommon','Poll','Course')" - @project_acts = get_project_activities_org @organization, project_ids - @course_acts = get_course_activities_org @organization, course_ids - #@org_acts = OrgActivity.where("container_id =? and container_type =?",@organization.id, 'Organization').order('updated_at desc') - #@project_acts = OrgActivity.where("(container_id =? and container_type =?) " + - # "or (container_type ='Project' and org_act_type in ('Issue','Message') and container_id in (#{project_ids.join(',')})) ", - # @organization.id, 'Organization').order('updated_at desc').limit(8) - - #@course_acts = OrgActivity.where("(container_id =? and container_type =?) " + - # "or (container_type ='Course' and org_act_type in #{course_types} and container_id in (#{course_ids.join(',')}))", - # @organization.id, 'Organization').order('updated_at desc').limit(8) - - - - # 项目两种动态 - #@project_acts = get_project_activities_org @organization - - # 课程动态 - #@project_acts_issues = get_project_activities_org @organization - #@course_acts = get_course_activities_org @organization - + shield_project_ids = ShieldActivity.where("container_type='Organization' and container_id=#{@organization.id} and shield_type='Project'").map(&:shield_id) + shield_course_ids = ShieldActivity.where("container_type='Organization' and container_id=#{@organization.id} and shield_type='Course'").map(&:shield_id) + project_ids = (@organization.projects.map(&:id)-shield_project_ids) << 0 + course_ids = (@organization.courses.map(&:id)-shield_course_ids) << 0 + course_types = "('Message','News','HomeworkCommon','Poll','Course')" + @project_acts = get_project_activities_org @organization, project_ids + @course_acts = get_course_activities_org @organization, course_ids render :layout => 'base_org2' else render_403 diff --git a/app/controllers/sub_document_comments_controller.rb b/app/controllers/sub_document_comments_controller.rb new file mode 100644 index 000000000..2ff07a533 --- /dev/null +++ b/app/controllers/sub_document_comments_controller.rb @@ -0,0 +1,186 @@ +class SubDocumentCommentsController < ApplicationController + before_filter :find_subdomain_and_subfield, :only => [:new, :create, :show, :index] + before_filter :find_subfield_content, :only => [:show, :index] + helper :attachments,:organizations + layout 'base_sub_domain' + + def new + @sub_document_comment = SubDocumentComment.new + end + + + def create + @sub_document_comment = SubDocumentComment.new(:sub_domain_id => params[:sub_domain_id], :creator_id => User.current.id, :org_subfield_id => params[:org_subfield_id]) + @sub_document_comment.title = params[:sub_document_comment][:title] + @sub_document_comment.content = params[:sub_document_comment][:content] + # @sub_document_comment.save_attachments(params[:attachments]) + if params[:field_id] + @sub_document_comment.org_subfield_id = params[:field_id].to_i + end + if @sub_document_comment.save + flash.keep[:notice] = l(:notice_successful_create) + redirect_to org_subfield_sub_domain_sub_document_comments_path(:org_subfield_id => @org_subfield.id, :sub_domain_id => @subdomain.id) + # EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @sub_document_comment.id, :created_at => @sub_document_comment.updated_at) + # if params[:field_id] + # @org_subfield = OrgSubfield.find(params[:field_id]) + # if @org_subfield.subfield_subdomain_dir.nil? + # redirect_to organization_path(@organization, :org_subfield_id => params[:field_id]) + # else + # redirect_to show_org_subfield_organization_path(:id => @organization.id, :sub_dir_name => @org_subfield.subfield_subdomain_dir.name) + # end + # else + # redirect_to organization_org_document_comments_path(@organization) + # end + else + redirect_to new_org_document_comment_path(:organization_id => @organization.id) + end + end + + def show + @document = OrgDocumentComment.find(params[:id]) + end + + def index + if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) + @documents = @subdomain.sub_document_comments.where("parent_id is null").order("created_at desc") + respond_to do |format| + format.html {render :layout => 'base_org'} + end + else + render_403 + end + end + + def update + @org_document = OrgDocumentComment.find(params[:id]) + @org_document.update_attributes(:title => params[:org_document_comment][:title], :content => params[:org_document_comment][:content]) + Attachment.attach_files(@org_document, params[:attachments]) + # @org_document.save_attachments(params[:attachments]) + if @org_document.parent.nil? + act = OrgActivity.where("org_act_type='OrgDocumentComment' and org_act_id =?", @org_document.id).first + act.update_attributes(:updated_at => @org_document.updated_at) + EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @org_document.id, :created_at => Time.now) + end + respond_to do |format| + format.html { + if params[:flag].to_i == 0 + redirect_to organization_org_document_comments_path(:organization_id => @org_document.organization.id) + else + if params[:flag].to_i == 1 + redirect_to org_document_comment_path(@org_document.root.id, :organization_id => @org_document.organization.id) + else + redirect_to organization_path(@org_document.organization.id, :org_subfield_id => params[:org_subfield_id]) + end + end + } + end + end + + def edit + @org_document = OrgDocumentComment.find(params[:id]) + @flag = params[:flag] + @organization = Organization.find(params[:organization_id]) + end + + def add_reply + @document = OrgDocumentComment.find(params[:id]).root + @act = OrgActivity.find(params[:id]) + @comment = OrgDocumentComment.new(:organization_id => @document.organization_id, :creator_id => User.current.id, :reply_id => params[:id]) + @comment.content = params[:org_content] + @document.children << @comment + @document.save + end + + def add_reply_in_doc + @document = OrgDocumentComment.find(params[:id]).root + @comment = OrgDocumentComment.new(:organization_id => @document.organization_id, :creator_id => User.current.id, :reply_id => params[:id]) + @comment.content = params[:org_comment][:org_content] + @document.children << @comment + @document.save + respond_to do |format| + format.html {redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)} + end + end + + def destroy + @sub_document_comment = OrgDocumentComment.find(params[:id]) + org = @sub_document_comment.organization + if @sub_document_comment.id == org.home_id + org.update_attributes(:home_id => nil) + end + if @sub_document_comment.destroy + end + respond_to do |format| + format.js + end + end + + def delete_reply + @sub_document_comment = OrgDocumentComment.find(params[:id]) + @document = @sub_document_comment.root + org = @sub_document_comment.organization + @sub_document_comment.destroy + respond_to do |format| + format.html {redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)} + end + end + def quote + @org_comment = OrgDocumentComment.find(params[:id]) + @subject = @org_comment.content + @subject = "RE: #{@subject}" unless @subject.starts_with?('RE:') + + @content = "> #{ll(Setting.default_language, :text_user_wrote, User.find(@org_comment.creator_id).realname)}\n> " + @temp = OrgDocumentComment.new + #@course_id = params[:course_id] + @temp.content = "
      #{ll(Setting.default_language, :text_user_wrote, User.find(@org_comment.creator_id).realname)}
      #{@org_comment.content.html_safe}
      ".html_safe + respond_to do | format| + format.js + end + end + + def reply + @document = OrgDocumentComment.find(params[:id]).root + @quote = params[:quote][:quote] + @org_document = OrgDocumentComment.new(:creator_id => User.current.id, :reply_id => params[:id]) + + # params[:blog_comment][:sticky] = params[:blog_comment][:sticky] || 0 + # params[:blog_comment][:locked] = params[:blog_comment][:locked] || 0 + @org_document.title = params[:org_document_comment][:title] + @org_document.content = params[:org_document_comment][:content] + @org_document.content = @quote + @org_document.content + #@org_document.title = "RE: #{@article.title}" unless params[:blog_comment][:title] + @document.children << @org_document + # @user_activity_id = params[:user_activity_id] + # user_activity = UserActivity.where("act_type='BlogComment' and act_id =#{@article.id}").first + # if user_activity + # user_activity.updated_at = Time.now + # user_activity.save + # end + # attachments = Attachment.attach_files(@org_document, params[:attachments]) + # render_attachment_warning_if_needed(@org_document) + #@article.save + # redirect_to user_blogs_path(:user_id=>params[:user_id]) + respond_to do |format| + format.html { + # if params[:course_id] #如果呆了course_id过来了,那么这是要跳到课程大纲去的 + # redirect_to syllabus_course_path(:id=>params[:course_id]) + # else + redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id) + # end + + } + format.js + end + end + + private + def find_subdomain_and_subfield + @subdomain = SubDomain.find(params[:sub_domain_id]) + @org_subfield = OrgSubfield.find(params[:org_subfield_id]) + @organization = @org_subfield.organization + end + + def find_subfield_content + @subfield_content = @organization.org_subfields.order("priority") + end +end diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index 4fbff45a2..9e614cdde 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -1,5 +1,6 @@ class SubDomainsController < ApplicationController layout 'base_org' + before_filter :find_org_subfield_and_subdomain, :only => [:show, :index] def create if SubDomain.where("org_subfield_id=#{params[:org_subfield_id]} and name=?",params[:name]).count == 0 @@ -22,7 +23,19 @@ class SubDomainsController < ApplicationController end def show + @subfield_content = @organization.org_subfields.order("priority") @subdomain = SubDomain.find(params[:id]) - render layout: 'base' + render layout: 'base_sub_domain' + end + + def index + + end + + private + def find_org_subfield_and_subdomain + @subfield = OrgSubfield.find(params[:org_subfield_id]) + @subdomain = SubDomain.find(params[:id]) + @organization = @subfield.organization end end diff --git a/app/helpers/sub_document_comments_helper.rb b/app/helpers/sub_document_comments_helper.rb new file mode 100644 index 000000000..c1f2a4de1 --- /dev/null +++ b/app/helpers/sub_document_comments_helper.rb @@ -0,0 +1,2 @@ +module SubDocumentCommentsHelper +end diff --git a/app/models/sub_document_comment.rb b/app/models/sub_document_comment.rb new file mode 100644 index 000000000..a9f7bdbdc --- /dev/null +++ b/app/models/sub_document_comment.rb @@ -0,0 +1,10 @@ +class SubDocumentComment < ActiveRecord::Base + attr_accessible :content, :creator_id, :locked, :org_subfield_id, :parent_id, :reply_id, :sticky, :sub_domain_id, :title + + include Redmine::SafeAttributes + include ApplicationHelper + belongs_to :sub_domain + belongs_to :creator, :class_name => 'User', :foreign_key => 'creator_id' + acts_as_tree :order => "#{SubDocumentComment.table_name}.sticky asc, #{SubDocumentComment.table_name}.created_at desc" + acts_as_attachable +end diff --git a/app/models/sub_domain.rb b/app/models/sub_domain.rb index d2ccec8a4..831edf17d 100644 --- a/app/models/sub_domain.rb +++ b/app/models/sub_domain.rb @@ -1,4 +1,5 @@ class SubDomain < ActiveRecord::Base attr_accessible :field_type, :hide, :name, :org_subfield_id, :priority, :status belongs_to :org_subfield, :foreign_key => :org_subfield_id + has_many :sub_document_comments end diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb new file mode 100644 index 000000000..c0b98d0e3 --- /dev/null +++ b/app/views/layouts/base_sub_domain.html.erb @@ -0,0 +1,173 @@ + + + + + <%= h html_title %> + + + <%= csrf_meta_tag %> + <%= favicon %> + <%= javascript_heads %> + <%= heads_for_theme %> + <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> + <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> + <%= javascript_include_tag 'attachments' %> + <%#= call_hook :view_layouts_base_html_head %> + + <%#= yield :header_tags -%> + + + + + + + + + + + + + + + + +
      +
      + <%= render :partial => 'organizations/org_logined_header' %> + + +
      + +
      +
      +
      +<%# 更新访问数,刷新的时候更新访问次数 %> +<% update_visiti_count @organization %> +<%# over %> + +
      +
      + +
      + +
      + +
      +
      +
      + +<%= render_flash_messages %> +<%= yield %> +<%= call_hook :view_layouts_base_content %> +
      + +
      + +
      + +
      +
      + + +<%#= call_hook :view_layouts_base_body_bottom %> + + + diff --git a/app/views/sub_document_comments/_attachment.html.erb b/app/views/sub_document_comments/_attachment.html.erb new file mode 100644 index 000000000..9acdc2dc8 --- /dev/null +++ b/app/views/sub_document_comments/_attachment.html.erb @@ -0,0 +1,79 @@ + +
      + +<% if defined?(container) && container && container.saved_attachments %> + <% container.attachments.each_with_index do |attachment, i| %> + + <%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'upload_filename readonly', :readonly => 'readonly') %><%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 254, :placeholder => l(:label_optional_description), :class => 'description', :style => "display: inline-block;") %><%= l(:field_is_public) %>: + <%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public, attachment.is_public == 1 ? true : false, :class => 'is_public') %> + <%= if attachment.id.nil? + #待补充代码 + else + link_to(' '.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') + end + %> + <%#= render :partial => 'tags/tag', :locals => {:obj => attachment, :object_flag => "6"} %> + + <%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %> + +
      + <% end %> + <% container.saved_attachments.each_with_index do |attachment, i| %> + + <%= text_field_tag("attachments[p#{i}][filename]", attachment.filename, :class => 'filename readonly', :readonly => 'readonly') %> + <%= text_field_tag("attachments[p#{i}][description]", attachment.description, :maxlength => 254, :placeholder => l(:label_optional_description), :class => 'description', :style => "display: inline-block;") %> + <%= l(:field_is_public) %>: + <%= check_box_tag("attachments[p#{i}][is_public_checkbox]", attachment.is_public, attachment.is_public == 1 ? true : false, :class => 'is_public') %> + <%= if attachment.id.nil? + #待补充代码 + else + link_to(' '.html_safe, attachment_path(attachment, :attachment_id => "p#{i}", :format => 'js'), :method => 'delete', :remote => true, :class => 'remove-upload') + end + %> + <%#= render :partial => 'tags/tag', :locals => {:obj => attachment, :object_flag => "6"} %> + + <%= hidden_field_tag "attachments[p#{i}][token]", "#{attachment.token}" %> + +
      + <% end %> +<% end %> +
      +
      + + <%#= button_tag "浏览", :type=>"button", :onclick=>"CompatibleSend();" %> + + <%#= button_tag "文件浏览", :type=>"button", :onclick=>"$('#_file').click();",:onmouseover => 'this.focus()',:class => 'sub_btn' %> + 上传附件 + <%= file_field_tag 'attachments[dummy][file]', + :id => '_file', + :class => 'file_selector', + :multiple => true, + :onchange => 'addInputFiles(this);', + :style => ie8? ? '' : 'display:none', + :data => { + :max_file_size => Setting.attachment_max_size.to_i.kilobytes, + :max_file_size_message => l(:error_attachment_too_big, :max_size => number_to_human_size(Setting.attachment_max_size.to_i.kilobytes)), + :max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i, + :upload_path => uploads_path(:format => 'js'), + :description_placeholder => l(:label_optional_description), + :field_is_public => l(:field_is_public), + :are_you_sure => l(:text_are_you_sure), + :file_count => l(:label_file_count), + :lebel_file_uploding => l(:lebel_file_uploding), + :delete_all_files => l(:text_are_you_sure_all) + } %> + + <%= l(:label_no_file_uploaded) %> + + (<%= l(:label_max_size) %>: + <%= number_to_human_size(Setting.attachment_max_size.to_i.kilobytes) %>) + + + <% content_for :header_tags do %> + <%= javascript_include_tag 'attachments' %> + <% end %> +
      + diff --git a/app/views/sub_document_comments/_new.html.erb b/app/views/sub_document_comments/_new.html.erb new file mode 100644 index 000000000..c6cc13164 --- /dev/null +++ b/app/views/sub_document_comments/_new.html.erb @@ -0,0 +1,70 @@ +<%= content_for(:header_tags) do %> + <%= import_ke(enable_at: false, prettify: false, init_activity: false) %> + <%= javascript_include_tag "des_kindEditor" %> +<% end %> + + +
      + <%= form_tag org_subfield_sub_domain_sub_document_comments_path(:org_subfield_id => @org_subfield.id, :sub_domain_id => @subdomain.id), :id => 'new_sub_document_form' do |f| %> +
      + +
      +
      +
      + + <% end %> +
      diff --git a/app/views/sub_document_comments/_show_sub_document.html.erb b/app/views/sub_document_comments/_show_sub_document.html.erb new file mode 100644 index 000000000..ed1d3b230 --- /dev/null +++ b/app/views/sub_document_comments/_show_sub_document.html.erb @@ -0,0 +1,155 @@ +
      +
      +
      + <%= link_to image_tag(url_to_avatar(User.find(document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(document.creator_id) %> + <%= render :partial => 'users/show_detail_info', :locals => {:user => User.find(document.creator_id)} %> +
      +
      +
      + <%= link_to User.find(document.creator_id), user_url_in_org(document.creator.id), :class => "newsBlue mr15" %> + TO  <%= link_to document.sub_domain.name, organization_sub_domains_path(document.organization), :class => "newsBlue" %> + | + <%= document.org_subfield_id.nil? ? "组织文章" :"#{OrgSubfield.find(document.org_subfield_id).name}" %> + <% if document.organization.home_id == document.id %> + 已设为首页 + <% end %> +
      +
      <%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id) %>
      +
      + 发布时间:<%= format_activity_day(document.created_at) %> <%= format_time(document.created_at, false) %> +
      +
      + 更新时间:<%= format_time(OrgActivity.where("org_act_type='#{document.class}' and org_act_id =#{document.id}").first.updated_at) %> +
      +
      + <% unless document.content.blank? %> + <%=render :partial =>"users/intro_content", :locals=>{:user_activity_id =>document.id, :content=>document.content} %> + <% end %> +
      + + +
      +
      + <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => document} %> +
      + + <% if User.current.admin? || User.current.admin_of_org?(Organization.find(document.organization_id)) || User.current.id == document.creator_id %> +
      +
        +
      • +
          +
        • + <%= form_for('new_form', :url => {:controller => 'organizations', :action => 'set_homepage', :id => document.organization_id, :home_id => document.id, :show_homepage => 1}, :method => "put", :remote => true) do |f| %> + 设为首页 + <% end %> +
        • +
        • + <%= link_to "编辑文章", edit_org_document_comment_path(:id => document.id, :organization_id => document.organization_id, :flag => flag, :org_subfield_id => params[:org_subfield_id] ), :class => "postOptionLink" %> +
        • +
        • + <%= link_to "删除文章", org_document_comment_path(:id => document.id, :organization_id => document.organization_id), :method => 'delete', + :data => {:confirm => l(:text_are_you_sure)}, + :remote => true, :class => 'postOptionLink' %> +
        • +
        +
      • +
      +
      +
      + <% end %> +
      +
      + <% comments_for_doc = document.children.reorder("created_at desc") %> + <% count = document.children.count() %> + +
      +
      +
      回复 + <%= count>0 ? "(#{count})" : "" %> + + <% if document.creator_id.to_i == User.current.id.to_i %> + + <% else %> + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>document, :user_activity_id=>document.id,:type=>"activity"}%> + <% end %> + +
      + <% if count > 3 %> + + <% end %> +
      +
      +
        + <% reply_id = 0 %> + <% comments_for_doc.each do |comment| %> + <% reply_id += 1 %> +
      • +
        <%= link_to image_tag(url_to_avatar(User.find(comment.creator_id)), :width => 33, :height => 33, :alt => "用户头像"), user_url_in_org(comment.creator_id) %>
        +
        +
        + <%= link_to User.find(comment.creator_id), user_url_in_org(comment.creator_id), :class => "newsBlue mr10 f14" %> + <%= format_activity_day(comment.created_at) %> <%= format_time(comment.created_at, false) %> + + <% if comment.creator_id.to_i == User.current.id.to_i %> + + <% else %> + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> + <% end %> + +
        + <% unless comment.content.blank? %> +
        <%= comment.content.html_safe %>
        + <% end %> +
        +
        +
      • + <% end %> +
      +
      +
      +
      + <%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33", :alt => "用户头像"), user_url_in_org(User.current.id) %> +
      +
      +
      + <%= form_for('new_form', :url => add_reply_org_document_comment_path(:id => document.id, :act_id => act.id, :flag => flag), :method => "post", :remote => true) do |f| %> + +
      + + + +
      +

      + <% end %> +
      +
      +
      +
      +
      +
      +
      + + \ No newline at end of file diff --git a/app/views/sub_document_comments/edit.html.erb b/app/views/sub_document_comments/edit.html.erb new file mode 100644 index 000000000..70b79fcc8 --- /dev/null +++ b/app/views/sub_document_comments/edit.html.erb @@ -0,0 +1,63 @@ +<%= content_for(:header_tags) do %> + <%= import_ke(enable_at: false, prettify: false, init_activity: false) %> + <%= javascript_include_tag "des_kindEditor" %> +<% end %> + + +
      +
      编辑文章
      +
      +
      +
      +
      + <%= form_tag url_for(:controller => 'org_document_comments',:action => 'update', :id => @org_document.id, :flag => @flag, :org_subfield_id => params[:org_subfield_id]),:method => 'put', :id => 'new_org_document_form' do |f| %> +
      + +
      +
      +
      +
      +
      + + <%#= kindeditor_tag 'org_document_comment[content]','', :editor_id => 'org_document_description_editor', :height => "150px" %> +
      +
      + +

      +

      +

      +
      + +
      +
      + <%= render :partial => 'org_document_comments/attachment', :locals => {:container => @org_document} %> +
      +
      +
      +
      + 确定 + + 取消 +
      +
      +
      + <% end %> +
      +
      \ No newline at end of file diff --git a/app/views/sub_document_comments/index.html.erb b/app/views/sub_document_comments/index.html.erb new file mode 100644 index 000000000..342be8d7a --- /dev/null +++ b/app/views/sub_document_comments/index.html.erb @@ -0,0 +1,15 @@ +<%= content_for(:header_tags) do %> + <%= import_ke(enable_at: false, prettify: false, init_activity: true) %> +<% end %> + +<%= render :partial => 'new' %> +<% unless @documents.nil? %> + <% @documents.each do |document| %> + + + + + + <%= render :partial => 'organizations/show_org_document', :locals => {:document => document, :act => OrgActivity.where("org_act_type='OrgDocumentComment'and org_act_id=?", document.id).first, :flag => 0} %> + <% end %> +<% end %> \ No newline at end of file diff --git a/app/views/sub_document_comments/new.html.erb b/app/views/sub_document_comments/new.html.erb new file mode 100644 index 000000000..de8436f7c --- /dev/null +++ b/app/views/sub_document_comments/new.html.erb @@ -0,0 +1,71 @@ +<%= content_for(:header_tags) do %> + <%= import_ke(enable_at: false, prettify: false, init_activity: false) %> + <%= javascript_include_tag "des_kindEditor" %> +<% end %> + + +
      +
      <%= OrgSubfield.try(:find, params[:field_id]).try(:name) %>
      +
      +
      + <%= form_tag org_subfield_sub_domain_sub_document_comment_path(:org_subfield_id => @org_subfield.id, :sub_domain_id => @subdomain.id), :id => 'new_sub_document_form' do |f| %> +
      + +
      +
      +
      +
      +
      +
      + + <%#= kindeditor_tag 'org_document_comment[content]','', :editor_id => 'org_document_description_editor', :height => "150px" %> +
      +
      +

      +

      +

      +
      +
      +
      + <%#= render :partial => 'org_document_comments/attachment', :locals => {:container => nil} %> +
      +
      +
      + +
      + 确定 + + 取消 +
      +
      +
      + <% end %> +
      diff --git a/app/views/sub_document_comments/show.html.erb b/app/views/sub_document_comments/show.html.erb new file mode 100644 index 000000000..f1bae6e6a --- /dev/null +++ b/app/views/sub_document_comments/show.html.erb @@ -0,0 +1,178 @@ +<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg',"create_kindeditor",'blog' %> + +
      +
      +
      + <%= link_to image_tag(url_to_avatar(User.find(@document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(@document.creator_id) %> +
      +
      +
      + <%= link_to User.find(@document.creator_id), user_url_in_org(@document.creator_id), :class => "newsBlue mr15" %> + TO  <%= link_to @document.organization.name, organization_path(@document.organization), :class => "newsBlue" %> + | + <% if @document.organization.home_id == @document.id %> + 首页 + <% else %> + 组织文章 + <% end %> +
      +
      <%= link_to @document.title, org_document_comment_path(:id => @document.id, :organization_id => @document.organization.id) %>
      +
      + 发布时间:<%= format_activity_day(@document.created_at) %> <%= format_time(@document.created_at, false) %>
      + <% unless @document.content.blank? %> +
      + <%= @document.content.html_safe %> +
      + <% end %> +
      + <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => @document} %> + <%#= link_to_attachments_course @document, :author => false %> +
      + + <% if User.current.admin? || User.current.admin_of_org?(Organization.find(@document.organization_id) || User.current.id == @document.creator_id) %> +
      +
        +
      • +
          +
        • + <%= form_for('new_form', :url => {:controller => 'organizations', :action => 'set_homepage', :id => @document.organization_id, :home_id => @document.id}, :method => "put", :remote => true) do |f| %> + 设为首页 + <% end %> +
        • +
        • + <%= link_to "编辑文章", edit_org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :flag => 1), :class => "postOptionLink" %> +
        • +
        • + <%= link_to "删除文章", org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :detail_page => 1), :method => 'delete', + :data => {:confirm => l(:text_are_you_sure)}, + :remote => true, :class => 'postOptionLink' %> +
        • +
        +
      • +
      +
      +
      + <% end %> +
      +
      + <% comments_for_doc = @document.children.reorder("created_at desc") %> + <% count = @document.children.count() %> + +
      + <%# if count > 0 %> +
      +
      回复 + <%= count>0 ? "(#{count})" : "" %> + + <% if @document.creator_id.to_i == User.current.id.to_i %> + + <% else %> + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>@document, :user_activity_id=>@document.id,:type=>"activity"}%> + <% end %> + +
      +
      +
      + <% comments_for_doc.each_with_index do |reply,i| %> + + <% user = User.find(reply.creator_id) %> +
      +
      + <%= link_to image_tag(url_to_avatar(user), :width => 33,:height => 33), user_url_in_org(user.id) %> +
      +
      + <%= link_to User.find(reply.creator_id).realname, user_url_in_org(reply.creator_id), :class => "newsBlue mr10 f14" %> +
      + <%= reply.content.html_safe unless reply.content.nil? %> +
      +
      + <%= format_time(reply.created_at) %> + + <% if reply.creator_id.to_i == User.current.id.to_i %> + + <% else %> + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>reply, :user_activity_id=>reply.id,:type=>"reply"}%> + <% end %> + + +
      +

      +
      +
      +
      + <% end %> +
      +
      + <%# end %> + <% if User.current.logged?%> +
      + +
      +
      + <%= form_for :org_comment, :url => {:action => 'add_reply_in_doc',:controller => 'org_document_comments', :id => @document.id}, :html => {:multipart => true, :id => 'message_form'} do |f| %> + <%= f.kindeditor :org_content,:width=>'99%',:height => '100px;',:editor_id=>'message_content_editor' %> + <%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'message_content_editor.html("");', :class => " grey_btn fr c_white mt10 mr5" %> + <%= link_to l(:button_reply), "javascript:void(0)", :onclick => "message_content_editor.sync();$('#message_form').submit();", :class => "blue_btn fr c_white mt10 mb10", :style => "margin-right: 5px;" %> + <% end %> +
      +
      +
      + <% end %> +
      +
      + + \ No newline at end of file diff --git a/app/views/sub_domains/show.html.erb b/app/views/sub_domains/show.html.erb index e69de29bb..1435c13e5 100644 --- a/app/views/sub_domains/show.html.erb +++ b/app/views/sub_domains/show.html.erb @@ -0,0 +1 @@ +666666666666666 \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 9aac36026..5905abd89 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -119,6 +119,18 @@ RedmineApp::Application.routes.draw do end resources :sub_domains, :only => [:index, :new, :create, :show] do + resources :sub_document_comments, :only => [:index, :new, :create, :show] do + member do + post 'add_reply' + + post 'reply' + + end + collection do + + end + end + collection do end member do diff --git a/db/migrate/20160428065243_create_sub_document_comments.rb b/db/migrate/20160428065243_create_sub_document_comments.rb new file mode 100644 index 000000000..8dcd202f3 --- /dev/null +++ b/db/migrate/20160428065243_create_sub_document_comments.rb @@ -0,0 +1,17 @@ +class CreateSubDocumentComments < ActiveRecord::Migration + def change + create_table :sub_document_comments do |t| + t.text :content + t.text :title + t.integer :sub_domain_id + t.integer :creator_id + t.integer :parent_id + t.integer :reply_id + t.integer :locked + t.integer :sticky + t.integer :org_subfield_id + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 831b2d4d4..af6253243 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 => 20160427070237) do +ActiveRecord::Schema.define(:version => 20160428065243) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -52,6 +52,28 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" + create_table "application_settings", :force => true do |t| + t.integer "default_projects_limit" + t.boolean "signup_enabled" + t.boolean "signin_enabled" + t.boolean "gravatar_enabled" + t.text "sign_in_text" + t.datetime "created_at" + t.datetime "updated_at" + t.string "home_page_url" + t.integer "default_branch_protection", :default => 2 + t.boolean "twitter_sharing_enabled", :default => true + t.text "restricted_visibility_levels" + t.boolean "version_check_enabled", :default => true + t.integer "max_attachment_size", :default => 10, :null => false + t.integer "default_project_visibility" + t.integer "default_snippet_visibility" + t.text "restricted_signup_domains" + t.boolean "user_oauth_applications", :default => true + t.string "after_sign_out_path" + t.integer "session_expire_delay", :default => 10080, :null => false + end + create_table "applied_projects", :force => true do |t| t.integer "project_id", :null => false t.integer "user_id", :null => false @@ -133,6 +155,20 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.string "typeName", :limit => 50 end + create_table "audit_events", :force => true do |t| + t.integer "author_id", :null => false + t.string "type", :null => false + t.integer "entity_id", :null => false + t.string "entity_type", :null => false + t.text "details" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id" + add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type" + add_index "audit_events", ["type"], :name => "index_audit_events_on_type" + create_table "auth_sources", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 60, :default => "", :null => false @@ -230,6 +266,17 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["project_id"], :name => "boards_project_id" + create_table "broadcast_messages", :force => true do |t| + t.text "message", :null => false + t.datetime "starts_at" + t.datetime "ends_at" + t.integer "alert_type" + t.datetime "created_at" + t.datetime "updated_at" + t.string "color" + t.string "font" + end + create_table "bug_to_osps", :force => true do |t| t.integer "osp_id" t.integer "relative_memo_id" @@ -516,6 +563,9 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "visits", :default => 0 end + add_index "courses", ["id"], :name => "id", :unique => true + add_index "courses", ["visits"], :name => "visits" + create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -577,6 +627,15 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" + create_table "deploy_keys_projects", :force => true do |t| + t.integer "deploy_key_id", :null => false + t.integer "project_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id" + create_table "discuss_demos", :force => true do |t| t.string "title" t.text "body" @@ -626,6 +685,16 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "created_at" end + create_table "emails", :force => true do |t| + t.integer "user_id", :null => false + t.string "email", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true + add_index "emails", ["user_id"], :name => "index_emails_on_user_id" + create_table "enabled_modules", :force => true do |t| t.integer "project_id" t.string "name", :null => false @@ -648,6 +717,25 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" + create_table "events", :force => true do |t| + t.string "target_type" + t.integer "target_id" + t.string "title" + t.text "data" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "action" + t.integer "author_id" + end + + add_index "events", ["action"], :name => "index_events_on_action" + add_index "events", ["author_id"], :name => "index_events_on_author_id" + add_index "events", ["created_at"], :name => "index_events_on_created_at" + add_index "events", ["project_id"], :name => "index_events_on_project_id" + add_index "events", ["target_id"], :name => "index_events_on_target_id" + add_index "events", ["target_type"], :name => "index_events_on_target_type" + create_table "exercise_answers", :force => true do |t| t.integer "user_id" t.integer "exercise_question_id" @@ -750,6 +838,15 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" + create_table "forked_project_links", :force => true do |t| + t.integer "forked_to_project_id", :null => false + t.integer "forked_from_project_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true + create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -878,6 +975,17 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end + create_table "identities", :force => true do |t| + t.string "extern_uid" + t.string "provider" + t.integer "user_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id" + add_index "identities", ["user_id"], :name => "index_identities_on_user_id" + create_table "invite_lists", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1021,6 +1129,20 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "private", :default => 0 end + create_table "keys", :force => true do |t| + t.integer "user_id" + t.datetime "created_at" + t.datetime "updated_at" + t.text "key" + t.string "title" + t.string "type" + t.string "fingerprint" + t.boolean "public", :default => false, :null => false + end + + add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id" + add_index "keys", ["user_id"], :name => "index_keys_on_user_id" + create_table "kindeditor_assets", :force => true do |t| t.string "asset" t.integer "file_size" @@ -1032,6 +1154,27 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "owner_type", :default => 0 end + create_table "label_links", :force => true do |t| + t.integer "label_id" + t.integer "target_id" + t.string "target_type" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id" + add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type" + + create_table "labels", :force => true do |t| + t.string "title" + t.string "color" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "labels", ["project_id"], :name => "index_labels_on_project_id" + create_table "member_roles", :force => true do |t| t.integer "member_id", :null => false t.integer "role_id", :null => false @@ -1082,6 +1225,47 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "viewed_count", :default => 0 end + create_table "merge_request_diffs", :force => true do |t| + t.string "state" + t.text "st_commits", :limit => 2147483647 + t.text "st_diffs", :limit => 2147483647 + t.integer "merge_request_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true + + create_table "merge_requests", :force => true do |t| + t.string "target_branch", :null => false + t.string "source_branch", :null => false + t.integer "source_project_id", :null => false + t.integer "author_id" + t.integer "assignee_id" + t.string "title" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "milestone_id" + t.string "state" + t.string "merge_status" + t.integer "target_project_id", :null => false + t.integer "iid" + t.text "description" + t.integer "position", :default => 0 + t.datetime "locked_at" + end + + add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id" + add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id" + add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id" + add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at" + add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id" + add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch" + add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id" + add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch" + add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true + add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title" + create_table "message_alls", :force => true do |t| t.integer "user_id" t.integer "message_id" @@ -1116,6 +1300,39 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" add_index "messages", ["parent_id"], :name => "messages_parent_id" + create_table "milestones", :force => true do |t| + t.string "title", :null => false + t.integer "project_id", :null => false + t.text "description" + t.date "due_date" + t.datetime "created_at" + t.datetime "updated_at" + t.string "state" + t.integer "iid" + end + + add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id" + add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date" + add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true + add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id" + + create_table "namespaces", :force => true do |t| + t.string "name", :null => false + t.string "path", :null => false + t.integer "owner_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "type" + t.string "description", :default => "", :null => false + t.string "avatar" + end + + add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id" + add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true + add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id" + add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true + add_index "namespaces", ["type"], :name => "index_namespaces_on_type" + create_table "news", :force => true do |t| t.integer "project_id" t.string "title", :limit => 60, :default => "", :null => false @@ -1141,6 +1358,31 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end + create_table "notes", :force => true do |t| + t.text "note" + t.string "noteable_type" + t.integer "author_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "project_id" + t.string "attachment" + t.string "line_code" + t.string "commit_id" + t.integer "noteable_id" + t.boolean "system", :default => false, :null => false + t.text "st_diff", :limit => 2147483647 + end + + add_index "notes", ["author_id"], :name => "index_notes_on_author_id" + add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id" + add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id" + add_index "notes", ["created_at"], :name => "index_notes_on_created_at" + add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type" + add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type" + add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type" + add_index "notes", ["project_id"], :name => "index_notes_on_project_id" + add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at" + create_table "notificationcomments", :force => true do |t| t.string "notificationcommented_type" t.integer "notificationcommented_id" @@ -1150,6 +1392,49 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end + create_table "oauth_access_grants", :force => true do |t| + t.integer "resource_owner_id", :null => false + t.integer "application_id", :null => false + t.string "token", :null => false + t.integer "expires_in", :null => false + t.text "redirect_uri", :null => false + t.datetime "created_at", :null => false + t.datetime "revoked_at" + t.string "scopes" + end + + add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true + + create_table "oauth_access_tokens", :force => true do |t| + t.integer "resource_owner_id" + t.integer "application_id" + t.string "token", :null => false + t.string "refresh_token" + t.integer "expires_in" + t.datetime "revoked_at" + t.datetime "created_at", :null => false + t.string "scopes" + end + + add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true + add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id" + add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true + + create_table "oauth_applications", :force => true do |t| + t.string "name", :null => false + t.string "uid", :null => false + t.string "secret", :null => false + t.text "redirect_uri", :null => false + t.string "scopes", :default => "", :null => false + t.datetime "created_at" + t.datetime "updated_at" + t.integer "owner_id" + t.string "owner_type" + end + + add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type" + add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true + create_table "onclick_times", :force => true do |t| t.integer "user_id" t.datetime "onclick_time" @@ -1305,6 +1590,23 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "show_mode", :default => 0 end + create_table "permissions", :force => true do |t| + t.string "controller", :limit => 30, :default => "", :null => false + t.string "action", :limit => 30, :default => "", :null => false + t.string "description", :limit => 60, :default => "", :null => false + t.boolean "is_public", :default => false, :null => false + t.integer "sort", :default => 0, :null => false + t.boolean "mail_option", :default => false, :null => false + t.boolean "mail_enabled", :default => false, :null => false + end + + create_table "permissions_roles", :id => false, :force => true do |t| + t.integer "permission_id", :default => 0, :null => false + t.integer "role_id", :default => 0, :null => false + end + + add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" + create_table "phone_app_versions", :force => true do |t| t.string "version" t.text "description" @@ -1387,6 +1689,11 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end + create_table "project_import_data", :force => true do |t| + t.integer "project_id" + t.text "data" + end + create_table "project_infos", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1476,6 +1783,16 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" + create_table "protected_branches", :force => true do |t| + t.integer "project_id", :null => false + t.string "name", :null => false + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "developers_can_push", :default => false, :null => false + end + + add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id" + create_table "queries", :force => true do |t| t.integer "project_id" t.string "name", :default => "", :null => false @@ -1610,6 +1927,25 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.integer "is_teacher_score", :default => 0 end + create_table "services", :force => true do |t| + t.string "type" + t.string "title" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.boolean "active", :default => false, :null => false + t.text "properties" + t.boolean "template", :default => false + t.boolean "push_events", :default => true + t.boolean "issues_events", :default => true + t.boolean "merge_requests_events", :default => true + t.boolean "tag_push_events", :default => true + t.boolean "note_events", :default => true, :null => false + end + + add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id" + add_index "services", ["project_id"], :name => "index_services_on_project_id" + create_table "settings", :force => true do |t| t.string "name", :default => "", :null => false t.text "value" @@ -1639,6 +1975,26 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end + create_table "snippets", :force => true do |t| + t.string "title" + t.text "content", :limit => 2147483647 + t.integer "author_id", :null => false + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "file_name" + t.datetime "expires_at" + t.string "type" + t.integer "visibility_level", :default => 0, :null => false + end + + add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id" + add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id" + add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at" + add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at" + add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id" + add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level" + create_table "softapplications", :force => true do |t| t.string "name" t.text "description" @@ -1728,15 +2084,29 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "students_for_courses", ["course_id"], :name => "index_students_for_courses_on_course_id" add_index "students_for_courses", ["student_id"], :name => "index_students_for_courses_on_student_id" + create_table "sub_document_comments", :force => true do |t| + t.text "content" + t.text "title" + t.integer "sub_domain_id" + t.integer "creator_id" + t.integer "parent_id" + t.integer "reply_id" + t.integer "locked" + t.integer "sticky" + t.integer "org_subfield_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "sub_domains", :force => true do |t| t.integer "org_subfield_id" - t.integer "priority", :default => 0 + t.integer "priority" t.string "name" t.string "field_type" - t.integer "hide", :default => 0 - t.integer "status", :default => 0 - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.integer "hide" + t.integer "status" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "subfield_subdomain_dirs", :force => true do |t| @@ -1746,6 +2116,17 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end + create_table "subscriptions", :force => true do |t| + t.integer "user_id" + t.integer "subscribable_id" + t.string "subscribable_type" + t.boolean "subscribed" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true + create_table "system_messages", :force => true do |t| t.integer "user_id" t.string "content" @@ -1940,6 +2321,25 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" + create_table "user_wechats", :force => true do |t| + t.integer "subscribe" + t.string "openid" + t.string "nickname" + t.integer "sex" + t.string "language" + t.string "city" + t.string "province" + t.string "country" + t.string "headimgurl" + t.string "subscribe_time" + t.string "unionid" + t.string "remark" + t.integer "groupid" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "users", :force => true do |t| t.string "login", :default => "", :null => false t.string "hashed_password", :limit => 40, :default => "", :null => false @@ -1965,6 +2365,17 @@ ActiveRecord::Schema.define(:version => 20160427070237) do add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" add_index "users", ["type"], :name => "index_users_on_type" + create_table "users_star_projects", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id" + add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true + add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id" + create_table "versions", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "name", :default => "", :null => false @@ -2016,6 +2427,31 @@ ActiveRecord::Schema.define(:version => 20160427070237) do t.datetime "updated_at", :null => false end + create_table "web_hooks", :force => true do |t| + t.string "url" + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.string "type", :default => "ProjectHook" + t.integer "service_id" + t.boolean "push_events", :default => true, :null => false + t.boolean "issues_events", :default => false, :null => false + t.boolean "merge_requests_events", :default => false, :null => false + t.boolean "tag_push_events", :default => false + t.boolean "note_events", :default => false, :null => false + end + + add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id" + add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id" + + create_table "wechat_logs", :force => true do |t| + t.string "openid", :null => false + t.text "request_raw" + t.text "response_raw" + t.text "session_raw" + t.datetime "created_at", :null => false + end + create_table "wiki_content_versions", :force => true do |t| t.integer "wiki_content_id", :null => false t.integer "page_id", :null => false diff --git a/spec/controllers/sub_document_comments_controller_spec.rb b/spec/controllers/sub_document_comments_controller_spec.rb new file mode 100644 index 000000000..53f650132 --- /dev/null +++ b/spec/controllers/sub_document_comments_controller_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe SubDocumentCommentsController, :type => :controller do + +end diff --git a/spec/factories/sub_document_comments.rb b/spec/factories/sub_document_comments.rb new file mode 100644 index 000000000..61bb4352f --- /dev/null +++ b/spec/factories/sub_document_comments.rb @@ -0,0 +1,14 @@ +FactoryGirl.define do + factory :sub_document_comment do + content "MyText" +title "MyText" +sub_domain_id 1 +creator_id 1 +parent_id 1 +reply_id 1 +locked 1 +sticky 1 +org_subfield_id 1 + end + +end diff --git a/spec/models/sub_document_comment_spec.rb b/spec/models/sub_document_comment_spec.rb new file mode 100644 index 000000000..48693951f --- /dev/null +++ b/spec/models/sub_document_comment_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe SubDocumentComment, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end From ebe6004833f84aff9dab1490c0932542b553f081 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 29 Apr 2016 10:53:04 +0800 Subject: [PATCH 011/257] =?UTF-8?q?=E7=BB=84=E7=BB=87=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E6=B7=BB=E5=8A=A0=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organizations/_subfield_list.html.erb | 150 ++++++++++++++++-- app/views/organizations/setting.html.erb | 87 ++++------ public/images/org_tree.png | Bin 0 -> 1103 bytes public/stylesheets/new_user.css | 1 + public/stylesheets/org.css | 24 ++- 5 files changed, 186 insertions(+), 76 deletions(-) create mode 100644 public/images/org_tree.png diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index 7db41cba5..9d8f6f586 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -1,10 +1,11 @@ -
        +
        • 顺序
        • 已有栏目
        • 状态
        • 排列
        • -
        • 类型
        • -
        • 域名目录
        • +
        • 类型
        • +
        • 域名目录
        • +
        • 操作
        @@ -13,10 +14,10 @@ <% name = get_default_name(field) %> <% else %>
        • -
          +
          <%= field.priority %>
          -
        • @@ -73,10 +74,10 @@ <% end %> -
        • <%= field.field_type == "Post" ? "帖子" : "资源" %>
        • -
        • <%= field.field_type == "Post" ? "帖子" : "资源" %>
        • + <%#= link_to "隐藏", hide_org_subfield_organizations_path(field), :method => 'post', :remote => true, :id => "hide_#{field.id}", :class => "linkBlue fr mr5" %> - <%= field.hide==0?"隐藏":"可见" %> - <%= link_to "删除", org_subfield_path(field), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkBlue fr mr10" %> - 编辑 +
        • + <%= field.hide==0?"隐藏":"可见" %> + | + <%= link_to "删除", org_subfield_path(field), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> + | + 编辑 + | + 添加二级目录 +
        • +
          +
        +
          +
        • +
        • +
          + <%= field.priority %> +
          + +
        • +
        • +
          <%= field.name %>
          + +
        • +
        • 新增
        • +
        • + <% if field.field_type == "Resource" %> + 列表 + <% else %> + <%= form_tag({:controller => 'org_subfields', :action => 'update_status', :id => field.id,},:remote=>'true', :method => 'post', :id=>"update_status_form_#{field.id}", :class => 'query_form') do %> +
          + +
          + <%= select( :name,:group_id, subfield_status_option, + { :include_blank => false,:selected => field.status}, + {:onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:56px;"}) %> + <% end %> + <% end %> +
        • +
        • <%= field.field_type == "Post" ? "帖子" : "资源" %>
        • + + <%#= link_to "隐藏", hide_org_subfield_organizations_path(field), :method => 'post', :remote => true, :id => "hide_#{field.id}", :class => "linkBlue fr mr5" %> +
        • + <%= field.hide==0?"隐藏":"可见" %> + | + <%= link_to "删除", org_subfield_path(field), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> + | + 编辑 +
        • +
          +
        +
          +
        • +
        • +
          + <%= field.priority %> +
          + +
        • +
        • +
          <%= field.name %>
          + +
        • +
        • 新增
        • +
        • + <% if field.field_type == "Resource" %> + 列表 + <% else %> + <%= form_tag({:controller => 'org_subfields', :action => 'update_status', :id => field.id,},:remote=>'true', :method => 'post', :id=>"update_status_form_#{field.id}", :class => 'query_form') do %> +
          + +
          + <%= select( :name,:group_id, subfield_status_option, + { :include_blank => false,:selected => field.status}, + {:onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:56px;"}) %> + <% end %> + + <% end %> +
        • +
        • <%= field.field_type == "Post" ? "帖子" : "资源" %>
        • + + <%#= link_to "隐藏", hide_org_subfield_organizations_path(field), :method => 'post', :remote => true, :id => "hide_#{field.id}", :class => "linkBlue fr mr5" %> +
        • + <%= field.hide==0?"隐藏":"可见" %> + | + <%= link_to "删除", org_subfield_path(field), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> + | + 编辑 +
        <% end %> diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb index 0d8fa6be8..edba129e4 100644 --- a/app/views/organizations/setting.html.erb +++ b/app/views/organizations/setting.html.erb @@ -129,63 +129,42 @@
      -
      -

      - <%= form_tag url_for(:controller => 'sub_domains', :action => 'create', :org_subfield_id => 458), :id=> 'add_subfield_form_subdomain',:remote => true do %> - -

        -
      • 栏目类型
      • -
      • - - -
      • -
      • - - -
      • -
      • -
      -
      - 确定 - <% end %> -

      -
      +
      + <%= form_tag url_for(:controller => 'org_subfields', :action => 'create', :organization_id => @organization.id), :id=> 'add_subfield_form',:remote => true do %> + 新增一级栏目 + +
      + 域名目录 + <% if domain %> + <%= domain.subname %>.trustie.net/ + <% else %> + (用户自定义url,可选) 您还没有子域名,请先在左侧信息栏申请子域名 + <% end %> +
      +
      +
        +
      • 栏目类型
      • +
      • + + +
      • +
      • + + +
      • +
      • + + +
      • +
      • 新增
      • +
      • +
      + <% end %> +
      -
      +
      <%= render :partial => 'organizations/subfield_list', :locals => {:subfields => @organization.org_subfields.order("priority")} %>
      -
      -
      -

      新增栏目

      - <%= form_tag url_for(:controller => 'org_subfields', :action => 'create', :organization_id => @organization.id), :id=> 'add_subfield_form',:remote => true do %> - -
      -

      域名目录(用户自定义url,可选)

      - <% if domain %> - <%= domain.subname %>.trustie.net/ - <% else %> - 您还没有子域名,请先在左侧信息栏申请子域名 - <% end %> -
      -
      -
        -
      • 栏目类型
      • -
      • - - -
      • -
      • - - -
      • -
      • -
      -
      - 确定 - <% end %> -
      -
      -
      --> - <%= render :partial => 'organizations/show_org_document', :locals => {:document => document, :act => OrgActivity.where("org_act_type='OrgDocumentComment'and org_act_id=?", document.id).first, :flag => 0} %> + <%= render :partial => 'sub_document_comments/show_sub_document', :locals => {:document => document, :act => OrgActivity.where("org_act_type='SubDocumentComment'and org_act_id=?", document.id).first, :flag => 0} %> <% end %> <% end %> \ No newline at end of file diff --git a/app/views/sub_domains/show.html.erb b/app/views/sub_domains/show.html.erb index 1435c13e5..d91c79bdb 100644 --- a/app/views/sub_domains/show.html.erb +++ b/app/views/sub_domains/show.html.erb @@ -1 +1,137 @@ -666666666666666 \ No newline at end of file +
      +
      +
      +
      您的位置:首页 > 数据资源 > 仿真数据
      +
      +
      +

      最新资讯

      + +
      + 上一页 + 1 + 2 + 3 + ... + 31 + 下一页 +
      +
      +
      +
      + +
      + +
      + +
      \ No newline at end of file From 2b4f16e5f17d27f42899b6c40519312b28940b13 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 29 Apr 2016 14:46:40 +0800 Subject: [PATCH 013/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E6=96=B0=E7=95=8C=E9=9D=A2=E7=9A=84=E5=B8=96=E5=AD=90=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sub_document_comments_controller.rb | 11 +- app/models/organization.rb | 4 + .../_show_newstyle.html.erb | 57 ++++ .../_show_sub_document_newstyle.html.erb | 29 ++ .../sub_document_comments/index.html.erb | 33 +- app/views/sub_document_comments/show.html.erb | 308 +++++++++--------- 6 files changed, 274 insertions(+), 168 deletions(-) create mode 100644 app/views/sub_document_comments/_show_newstyle.html.erb create mode 100644 app/views/sub_document_comments/_show_sub_document_newstyle.html.erb diff --git a/app/controllers/sub_document_comments_controller.rb b/app/controllers/sub_document_comments_controller.rb index 4dfa6658f..b2c39b39e 100644 --- a/app/controllers/sub_document_comments_controller.rb +++ b/app/controllers/sub_document_comments_controller.rb @@ -37,14 +37,21 @@ class SubDocumentCommentsController < ApplicationController end def show - @document = SubDocumentComment.find(params[:id]) + if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) + @document = SubDocumentComment.find(params[:id]) + respond_to do |format| + format.html {render :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'} + end + else + render_403 + end end def index if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) @documents = @subdomain.sub_document_comments.where("parent_id is null").order("created_at desc") respond_to do |format| - format.html {render :layout => 'base_org'} + format.html {render :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'} end else render_403 diff --git a/app/models/organization.rb b/app/models/organization.rb index 427cd4c10..8f9d290eb 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -22,4 +22,8 @@ class Organization < ActiveRecord::Base OrgSubfield.create(:organization_id => self.id, :name => 'course', :field_type => 'default', :priority => 2) OrgSubfield.create(:organization_id => self.id, :name => 'project', :field_type => 'default', :priority => 3) end + + def switch_type + self.show_mode.to_i == 1 ? true : false + end end diff --git a/app/views/sub_document_comments/_show_newstyle.html.erb b/app/views/sub_document_comments/_show_newstyle.html.erb new file mode 100644 index 000000000..53fbbc6ca --- /dev/null +++ b/app/views/sub_document_comments/_show_newstyle.html.erb @@ -0,0 +1,57 @@ +
      +
      +
      您的位置:首页 >业界动态
      +
      +
      +

      北斗(长沙)开放实验室迎湖南省省直机关领导调研参观

      +
      +

      来源:卫星导航仿真与测试开放实验室 发布时间::2016-04-08 浏览:200次

      +

      2016年3月27日上午,湖南省经信委巡视员钟志慧,湖南省发改委副主任卓群、高技处处长何志明、就业处处长周建龙等领导代表在长沙中电软件园董事长何明、总经理夏利锋的陪同下来北 + 斗开放实验室长沙分实验室调研参观。北斗开放实验室办公室主任明德祥为参观的各位领导详细介绍了北斗开放实验室运行机制及各项共享资源。北斗开放实验室长沙分实验室是由导航仪器湖 + 南省工程研究中心、湖南矩阵电子科技有限公司及中国仪器仪表学会空间仪器分会共同建设。

      + +

      北斗开放实验室办公室主任明德祥为湖南省发改委领导介绍

      +

      为进一步推动北斗资源共享、创新北斗人才培养,更好地服务湖南北斗产业应用发展、培育湖南省卫星导航产业创新体系,2016年,北斗开放实验室联合长沙中电软件园对长沙分实验室进行扩 + 建,扩建后的长沙分实验室立足长沙国家高新区,辐射整个中南地区,成为推动中南地区导航产业的发展的主力军。 + + 今后,北斗开放实验室长沙分实验室将在政府的推动下,以北斗领域相关企事业单位创新需求为导向,以北斗开放实验室名誉主任孙家栋院士、北斗开放实验室专家委员会主任委员谭述森院士 + 以及北斗开放实验室专家库专家为核心,以长沙分实验室共建单位——导航仪器湖南省工程研究中心为依托,借助北斗开放实验室发起单位及各地分实验室资源,建设院士工作站,联合进行创 + 新研究,促进研究成果产业化。 + + 为充分发挥长沙分实验室在释放资源和人才培养方面的作用,北斗开放实验室计划于4月下旬依托扩建后的长沙分实验室举办首届北斗精英实训;并将联合各地分实验室为首批微小课题申请者 + 定期提供专业系统的指导和培训,务实推动北斗开放实验室“LAB-ETS”人才联合培养。具体培训信息请实时关注北斗开放实验室微信号“GnssOpenLab”或官网www.gnssopenlab.org。

      +
      +
      + +
      +

      留言板80条留言

      +
      + +
      + 发表 +
      +
      +
      +

      全部评论

      +
      +
      + + 与再有10分钟 +

      北斗真棒,北斗加油

      + (100) +
      +
      +
      + + 与再有10分钟 +

      北斗真棒,北斗加油

      + (100) +
      +
      + +
      +
      +
      +
      \ No newline at end of file diff --git a/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb new file mode 100644 index 000000000..7f72a6965 --- /dev/null +++ b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb @@ -0,0 +1,29 @@ +
      +
      +
      +
      您的位置:首页 > 数据资源 > 仿真数据
      +
      +
      +

      最新资讯

      + +
      + 上一页 + 1 + 2 + 3 + ... + 31 + 下一页 +
      +
      +
      +
      +
      \ No newline at end of file diff --git a/app/views/sub_document_comments/index.html.erb b/app/views/sub_document_comments/index.html.erb index 0c8a99baa..aae1c2050 100644 --- a/app/views/sub_document_comments/index.html.erb +++ b/app/views/sub_document_comments/index.html.erb @@ -1,15 +1,20 @@ -<%= content_for(:header_tags) do %> - <%= import_ke(enable_at: false, prettify: false, init_activity: true) %> -<% end %> - -<%= render :partial => 'new' %> -<% unless @documents.nil? %> - <% @documents.each do |document| %> - - - - - - <%= render :partial => 'sub_document_comments/show_sub_document', :locals => {:document => document, :act => OrgActivity.where("org_act_type='SubDocumentComment'and org_act_id=?", document.id).first, :flag => 0} %> +<% if @organization.show_mode %> + <% unless @documents.nil? %> + <%= render :partial => 'sub_document_comments/show_sub_document_newstyle', :locals => {:documents => @documents} %> + <% end %> +<% else %> + <%= content_for(:header_tags) do %> + <%= import_ke(enable_at: false, prettify: false, init_activity: true) %> <% end %> -<% end %> \ No newline at end of file + <%= render :partial => 'new' %> + <% unless @documents.nil? %> + <% @documents.each do |document| %> + + + + + + <%= render :partial => 'sub_document_comments/show_sub_document', :locals => {:document => document, :act => OrgActivity.where("org_act_type='SubDocumentComment'and org_act_id=?", document.id).first, :flag => 0} %> + <% end %> + <% end %> +<% end %> diff --git a/app/views/sub_document_comments/show.html.erb b/app/views/sub_document_comments/show.html.erb index f1bae6e6a..ad813f19e 100644 --- a/app/views/sub_document_comments/show.html.erb +++ b/app/views/sub_document_comments/show.html.erb @@ -1,75 +1,78 @@ -<%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg',"create_kindeditor",'blog' %> - -
      -
      -
      - <%= link_to image_tag(url_to_avatar(User.find(@document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(@document.creator_id) %> -
      -
      -
      - <%= link_to User.find(@document.creator_id), user_url_in_org(@document.creator_id), :class => "newsBlue mr15" %> - TO  <%= link_to @document.organization.name, organization_path(@document.organization), :class => "newsBlue" %> - | - <% if @document.organization.home_id == @document.id %> - 首页 - <% else %> - 组织文章 - <% end %> -
      -
      <%= link_to @document.title, org_document_comment_path(:id => @document.id, :organization_id => @document.organization.id) %>
      -
      - 发布时间:<%= format_activity_day(@document.created_at) %> <%= format_time(@document.created_at, false) %>
      - <% unless @document.content.blank? %> -
      - <%= @document.content.html_safe %> +<% if @organization.show_mode %> + <%= render :partial => 'sub_document_comments/_show_newstyle', :locals => {:document => @document} %> +<% else %> + <%= javascript_include_tag "/assets/kindeditor/kindeditor",'/assets/kindeditor/pasteimg',"create_kindeditor",'blog' %> + +
      +
      +
      + <%= link_to image_tag(url_to_avatar(User.find(@document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(@document.creator_id) %> +
      +
      +
      + <%= link_to User.find(@document.creator_id), user_url_in_org(@document.creator_id), :class => "newsBlue mr15" %> + TO  <%= link_to @document.organization.name, organization_path(@document.organization), :class => "newsBlue" %> + | + <% if @document.organization.home_id == @document.id %> + 首页 + <% else %> + 组织文章 + <% end %>
      - <% end %> -
      - <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => @document} %> - <%#= link_to_attachments_course @document, :author => false %> -
      - - <% if User.current.admin? || User.current.admin_of_org?(Organization.find(@document.organization_id) || User.current.id == @document.creator_id) %> -
      -
        -
      • -
          -
        • - <%= form_for('new_form', :url => {:controller => 'organizations', :action => 'set_homepage', :id => @document.organization_id, :home_id => @document.id}, :method => "put", :remote => true) do |f| %> - 设为首页 - <% end %> -
        • -
        • - <%= link_to "编辑文章", edit_org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :flag => 1), :class => "postOptionLink" %> -
        • -
        • - <%= link_to "删除文章", org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :detail_page => 1), :method => 'delete', - :data => {:confirm => l(:text_are_you_sure)}, - :remote => true, :class => 'postOptionLink' %> + <% if User.current.admin? || User.current.admin_of_org?(Organization.find(@document.organization_id) || User.current.id == @document.creator_id) %> +
          +
            +
          • +
              +
            • + <%= form_for('new_form', :url => {:controller => 'organizations', :action => 'set_homepage', :id => @document.organization_id, :home_id => @document.id}, :method => "put", :remote => true) do |f| %> + 设为首页 + <% end %> +
            • +
            • + <%= link_to "编辑文章", edit_org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :flag => 1), :class => "postOptionLink" %> +
            • +
            • + <%= link_to "删除文章", org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :detail_page => 1), :method => 'delete', + :data => {:confirm => l(:text_are_you_sure)}, + :remote => true, :class => 'postOptionLink' %> +
            • +
          -
        • -
        -
      -
      - <% end %> -
      -
      - <% comments_for_doc = @document.children.reorder("created_at desc") %> - <% count = @document.children.count() %> +
      +
      + <% end %> +
      +
      + <% comments_for_doc = @document.children.reorder("created_at desc") %> + <% count = @document.children.count() %> -
      - <%# if count > 0 %> -
      -
      回复 - <%= count>0 ? "(#{count})" : "" %> +
      + <%# if count > 0 %> +
      +
      回复 + <%= count>0 ? "(#{count})" : "" %> <% if @document.creator_id.to_i == User.current.id.to_i %> @@ -77,102 +80,103 @@ <%=render :partial=> "praise_tread/praise", :locals => {:activity=>@document, :user_activity_id=>@document.id,:type=>"activity"}%> <% end %> -
      -
      -
      - <% comments_for_doc.each_with_index do |reply,i| %> - - <% user = User.find(reply.creator_id) %> -
      -
      - <%= link_to image_tag(url_to_avatar(user), :width => 33,:height => 33), user_url_in_org(user.id) %> -
      -
      - <%= link_to User.find(reply.creator_id).realname, user_url_in_org(reply.creator_id), :class => "newsBlue mr10 f14" %> -
      - <%= reply.content.html_safe unless reply.content.nil? %> -
      -
      - <%= format_time(reply.created_at) %> - +
      +
      +
      + <% comments_for_doc.each_with_index do |reply,i| %> + + <% user = User.find(reply.creator_id) %> +
      +
      + <%= link_to image_tag(url_to_avatar(user), :width => 33,:height => 33), user_url_in_org(user.id) %> +
      +
      + <%= link_to User.find(reply.creator_id).realname, user_url_in_org(reply.creator_id), :class => "newsBlue mr10 f14" %> +
      + <%= reply.content.html_safe unless reply.content.nil? %> +
      +
      + <%= format_time(reply.created_at) %> + <% if reply.creator_id.to_i == User.current.id.to_i %> <% else %> <%=render :partial=> "praise_tread/praise", :locals => {:activity=>reply, :user_activity_id=>reply.id,:type=>"reply"}%> <% end %> - +

      +
      +
      + <% end %> +
      +
      + <%# end %> + <% if User.current.logged?%> +
      + +
      +
      + <%= form_for :org_comment, :url => {:action => 'add_reply_in_doc',:controller => 'org_document_comments', :id => @document.id}, :html => {:multipart => true, :id => 'message_form'} do |f| %> + <%= f.kindeditor :org_content,:width=>'99%',:height => '100px;',:editor_id=>'message_content_editor' %> + <%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'message_content_editor.html("");', :class => " grey_btn fr c_white mt10 mr5" %> + <%= link_to l(:button_reply), "javascript:void(0)", :onclick => "message_content_editor.sync();$('#message_form').submit();", :class => "blue_btn fr c_white mt10 mb10", :style => "margin-right: 5px;" %> + <% end %> +
      -

      -
      -
      - <% end %> + <% end %> +
      -
      - <%# end %> - <% if User.current.logged?%> -
      - -
      -
      - <%= form_for :org_comment, :url => {:action => 'add_reply_in_doc',:controller => 'org_document_comments', :id => @document.id}, :html => {:multipart => true, :id => 'message_form'} do |f| %> - <%= f.kindeditor :org_content,:width=>'99%',:height => '100px;',:editor_id=>'message_content_editor' %> - <%= link_to l(:button_cancel), "javascript:void(0)", :onclick => 'message_content_editor.html("");', :class => " grey_btn fr c_white mt10 mr5" %> - <%= link_to l(:button_reply), "javascript:void(0)", :onclick => "message_content_editor.sync();$('#message_form').submit();", :class => "blue_btn fr c_white mt10 mb10", :style => "margin-right: 5px;" %> - <% end %> -
      -
      -
      - <% end %> -
      -
      - \ No newline at end of file + +<% end %> From 5f1b335cfb0d89ec388d76dee8b87f669b8a46da Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 29 Apr 2016 15:38:38 +0800 Subject: [PATCH 014/257] =?UTF-8?q?=E5=8C=97=E6=96=97=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=98=BE=E9=9A=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_sub_domain.html.erb | 352 ++++++++--------- db/schema.rb | 432 +-------------------- 2 files changed, 176 insertions(+), 608 deletions(-) diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb index c6eec5c30..da00b8489 100644 --- a/app/views/layouts/base_sub_domain.html.erb +++ b/app/views/layouts/base_sub_domain.html.erb @@ -1,181 +1,171 @@ - - - - - <%= h html_title %> - - - <%= csrf_meta_tag %> - <%= favicon %> - <%= javascript_heads %> - <%= heads_for_theme %> - <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> - <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> - <%= javascript_include_tag 'attachments' %> - <%#= call_hook :view_layouts_base_html_head %> - - <%#= yield :header_tags -%> - - - - - - - - - - - - - - - - -
      -
      - <%= render :partial => 'organizations/org_logined_header' %> -
      - -
      - -
      -
        - <% @subfield_content.each do |field| %> - <% if is_default_field?(field) %> - <% case field.name %> - <% when 'activity' %> - - <% when 'course' %> - - <% when 'project' %> - - <% end %> - <% else %> - <% if field.field_type == "Post" && field.hide == 0 %> - - <% elsif field.field_type == "Resource" && field.hide == 0 %> - - <% end %> - <% end %> - <% end %> - <% if User.current.admin_of_org?(@organization) %> - - <% end %> -
      -
      - -
      - -
      -
      -
      banner image
      -
      -
      -
      -<%# 更新访问数,刷新的时候更新访问次数 %> -<% update_visiti_count @organization %> -<%# over %> - - - -<%= render_flash_messages %> -<%= yield %> -<%= call_hook :view_layouts_base_content %> -
      - -
      - -
      - -
      -
      - - -<%#= call_hook :view_layouts_base_body_bottom %> - - - + + + + + <%= h html_title %> + + + <%= csrf_meta_tag %> + <%= favicon %> + <%= javascript_heads %> + <%= heads_for_theme %> + <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> + <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> + <%= javascript_include_tag 'attachments' %> + <%#= call_hook :view_layouts_base_html_head %> + + <%#= yield :header_tags -%> + + + + + + + + + + + + + + + +
      +
      + <%= render :partial => 'organizations/org_logined_header' %> +
      + +
      + +
      +
        + <% @subfield_content.each do |field| %> + <% if is_default_field?(field) %> + <% case field.name %> + <% when 'activity' %> + + <% when 'course' %> + + <% when 'project' %> + + <% end %> + <% else %> + <% if field.field_type == "Post" && field.hide == 0 %> + + <% elsif field.field_type == "Resource" && field.hide == 0 %> + + <% end %> + <% end %> + <% end %> + <% if User.current.admin_of_org?(@organization) %> + + <% end %> +
      +
      + + +
      +
      banner image
      +
      +
      +
      +<%# 更新访问数,刷新的时候更新访问次数 %> +<% update_visiti_count @organization %> +<%# over %> + + + +<%= render_flash_messages %> +<%= yield %> +<%= call_hook :view_layouts_base_content %> +
      + +
      + +
      + +
      +
      + + +<%#= call_hook :view_layouts_base_body_bottom %> + + + + + diff --git a/db/schema.rb b/db/schema.rb index af6253243..5a5738288 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -52,28 +52,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" - create_table "application_settings", :force => true do |t| - t.integer "default_projects_limit" - t.boolean "signup_enabled" - t.boolean "signin_enabled" - t.boolean "gravatar_enabled" - t.text "sign_in_text" - t.datetime "created_at" - t.datetime "updated_at" - t.string "home_page_url" - t.integer "default_branch_protection", :default => 2 - t.boolean "twitter_sharing_enabled", :default => true - t.text "restricted_visibility_levels" - t.boolean "version_check_enabled", :default => true - t.integer "max_attachment_size", :default => 10, :null => false - t.integer "default_project_visibility" - t.integer "default_snippet_visibility" - t.text "restricted_signup_domains" - t.boolean "user_oauth_applications", :default => true - t.string "after_sign_out_path" - t.integer "session_expire_delay", :default => 10080, :null => false - end - create_table "applied_projects", :force => true do |t| t.integer "project_id", :null => false t.integer "user_id", :null => false @@ -155,20 +133,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.string "typeName", :limit => 50 end - create_table "audit_events", :force => true do |t| - t.integer "author_id", :null => false - t.string "type", :null => false - t.integer "entity_id", :null => false - t.string "entity_type", :null => false - t.text "details" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id" - add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type" - add_index "audit_events", ["type"], :name => "index_audit_events_on_type" - create_table "auth_sources", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 60, :default => "", :null => false @@ -266,17 +230,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["project_id"], :name => "boards_project_id" - create_table "broadcast_messages", :force => true do |t| - t.text "message", :null => false - t.datetime "starts_at" - t.datetime "ends_at" - t.integer "alert_type" - t.datetime "created_at" - t.datetime "updated_at" - t.string "color" - t.string "font" - end - create_table "bug_to_osps", :force => true do |t| t.integer "osp_id" t.integer "relative_memo_id" @@ -563,9 +516,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.integer "visits", :default => 0 end - add_index "courses", ["id"], :name => "id", :unique => true - add_index "courses", ["visits"], :name => "visits" - create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -627,15 +577,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" - create_table "deploy_keys_projects", :force => true do |t| - t.integer "deploy_key_id", :null => false - t.integer "project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id" - create_table "discuss_demos", :force => true do |t| t.string "title" t.text "body" @@ -685,16 +626,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "created_at" end - create_table "emails", :force => true do |t| - t.integer "user_id", :null => false - t.string "email", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true - add_index "emails", ["user_id"], :name => "index_emails_on_user_id" - create_table "enabled_modules", :force => true do |t| t.integer "project_id" t.string "name", :null => false @@ -717,25 +648,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" - create_table "events", :force => true do |t| - t.string "target_type" - t.integer "target_id" - t.string "title" - t.text "data" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "action" - t.integer "author_id" - end - - add_index "events", ["action"], :name => "index_events_on_action" - add_index "events", ["author_id"], :name => "index_events_on_author_id" - add_index "events", ["created_at"], :name => "index_events_on_created_at" - add_index "events", ["project_id"], :name => "index_events_on_project_id" - add_index "events", ["target_id"], :name => "index_events_on_target_id" - add_index "events", ["target_type"], :name => "index_events_on_target_type" - create_table "exercise_answers", :force => true do |t| t.integer "user_id" t.integer "exercise_question_id" @@ -838,15 +750,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" - create_table "forked_project_links", :force => true do |t| - t.integer "forked_to_project_id", :null => false - t.integer "forked_from_project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true - create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -975,17 +878,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "updated_at", :null => false end - create_table "identities", :force => true do |t| - t.string "extern_uid" - t.string "provider" - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id" - add_index "identities", ["user_id"], :name => "index_identities_on_user_id" - create_table "invite_lists", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1129,20 +1021,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.integer "private", :default => 0 end - create_table "keys", :force => true do |t| - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - t.text "key" - t.string "title" - t.string "type" - t.string "fingerprint" - t.boolean "public", :default => false, :null => false - end - - add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id" - add_index "keys", ["user_id"], :name => "index_keys_on_user_id" - create_table "kindeditor_assets", :force => true do |t| t.string "asset" t.integer "file_size" @@ -1154,27 +1032,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.integer "owner_type", :default => 0 end - create_table "label_links", :force => true do |t| - t.integer "label_id" - t.integer "target_id" - t.string "target_type" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id" - add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type" - - create_table "labels", :force => true do |t| - t.string "title" - t.string "color" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "labels", ["project_id"], :name => "index_labels_on_project_id" - create_table "member_roles", :force => true do |t| t.integer "member_id", :null => false t.integer "role_id", :null => false @@ -1225,47 +1082,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.integer "viewed_count", :default => 0 end - create_table "merge_request_diffs", :force => true do |t| - t.string "state" - t.text "st_commits", :limit => 2147483647 - t.text "st_diffs", :limit => 2147483647 - t.integer "merge_request_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true - - create_table "merge_requests", :force => true do |t| - t.string "target_branch", :null => false - t.string "source_branch", :null => false - t.integer "source_project_id", :null => false - t.integer "author_id" - t.integer "assignee_id" - t.string "title" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "milestone_id" - t.string "state" - t.string "merge_status" - t.integer "target_project_id", :null => false - t.integer "iid" - t.text "description" - t.integer "position", :default => 0 - t.datetime "locked_at" - end - - add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id" - add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id" - add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id" - add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at" - add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id" - add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch" - add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id" - add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch" - add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true - add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title" - create_table "message_alls", :force => true do |t| t.integer "user_id" t.integer "message_id" @@ -1300,39 +1116,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" add_index "messages", ["parent_id"], :name => "messages_parent_id" - create_table "milestones", :force => true do |t| - t.string "title", :null => false - t.integer "project_id", :null => false - t.text "description" - t.date "due_date" - t.datetime "created_at" - t.datetime "updated_at" - t.string "state" - t.integer "iid" - end - - add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id" - add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date" - add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true - add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id" - - create_table "namespaces", :force => true do |t| - t.string "name", :null => false - t.string "path", :null => false - t.integer "owner_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type" - t.string "description", :default => "", :null => false - t.string "avatar" - end - - add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id" - add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true - add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id" - add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true - add_index "namespaces", ["type"], :name => "index_namespaces_on_type" - create_table "news", :force => true do |t| t.integer "project_id" t.string "title", :limit => 60, :default => "", :null => false @@ -1358,31 +1141,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "updated_at", :null => false end - create_table "notes", :force => true do |t| - t.text "note" - t.string "noteable_type" - t.integer "author_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "project_id" - t.string "attachment" - t.string "line_code" - t.string "commit_id" - t.integer "noteable_id" - t.boolean "system", :default => false, :null => false - t.text "st_diff", :limit => 2147483647 - end - - add_index "notes", ["author_id"], :name => "index_notes_on_author_id" - add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id" - add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id" - add_index "notes", ["created_at"], :name => "index_notes_on_created_at" - add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type" - add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type" - add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type" - add_index "notes", ["project_id"], :name => "index_notes_on_project_id" - add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at" - create_table "notificationcomments", :force => true do |t| t.string "notificationcommented_type" t.integer "notificationcommented_id" @@ -1392,49 +1150,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "updated_at", :null => false end - create_table "oauth_access_grants", :force => true do |t| - t.integer "resource_owner_id", :null => false - t.integer "application_id", :null => false - t.string "token", :null => false - t.integer "expires_in", :null => false - t.text "redirect_uri", :null => false - t.datetime "created_at", :null => false - t.datetime "revoked_at" - t.string "scopes" - end - - add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true - - create_table "oauth_access_tokens", :force => true do |t| - t.integer "resource_owner_id" - t.integer "application_id" - t.string "token", :null => false - t.string "refresh_token" - t.integer "expires_in" - t.datetime "revoked_at" - t.datetime "created_at", :null => false - t.string "scopes" - end - - add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true - add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id" - add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true - - create_table "oauth_applications", :force => true do |t| - t.string "name", :null => false - t.string "uid", :null => false - t.string "secret", :null => false - t.text "redirect_uri", :null => false - t.string "scopes", :default => "", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.integer "owner_id" - t.string "owner_type" - end - - add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type" - add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true - create_table "onclick_times", :force => true do |t| t.integer "user_id" t.datetime "onclick_time" @@ -1590,23 +1305,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.integer "show_mode", :default => 0 end - create_table "permissions", :force => true do |t| - t.string "controller", :limit => 30, :default => "", :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "description", :limit => 60, :default => "", :null => false - t.boolean "is_public", :default => false, :null => false - t.integer "sort", :default => 0, :null => false - t.boolean "mail_option", :default => false, :null => false - t.boolean "mail_enabled", :default => false, :null => false - end - - create_table "permissions_roles", :id => false, :force => true do |t| - t.integer "permission_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - end - - add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" - create_table "phone_app_versions", :force => true do |t| t.string "version" t.text "description" @@ -1689,11 +1387,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "updated_at", :null => false end - create_table "project_import_data", :force => true do |t| - t.integer "project_id" - t.text "data" - end - create_table "project_infos", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1783,16 +1476,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" - create_table "protected_branches", :force => true do |t| - t.integer "project_id", :null => false - t.string "name", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "developers_can_push", :default => false, :null => false - end - - add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id" - create_table "queries", :force => true do |t| t.integer "project_id" t.string "name", :default => "", :null => false @@ -1927,25 +1610,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.integer "is_teacher_score", :default => 0 end - create_table "services", :force => true do |t| - t.string "type" - t.string "title" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "active", :default => false, :null => false - t.text "properties" - t.boolean "template", :default => false - t.boolean "push_events", :default => true - t.boolean "issues_events", :default => true - t.boolean "merge_requests_events", :default => true - t.boolean "tag_push_events", :default => true - t.boolean "note_events", :default => true, :null => false - end - - add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id" - add_index "services", ["project_id"], :name => "index_services_on_project_id" - create_table "settings", :force => true do |t| t.string "name", :default => "", :null => false t.text "value" @@ -1975,26 +1639,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "updated_at", :null => false end - create_table "snippets", :force => true do |t| - t.string "title" - t.text "content", :limit => 2147483647 - t.integer "author_id", :null => false - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "file_name" - t.datetime "expires_at" - t.string "type" - t.integer "visibility_level", :default => 0, :null => false - end - - add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id" - add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id" - add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at" - add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at" - add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id" - add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level" - create_table "softapplications", :force => true do |t| t.string "name" t.text "description" @@ -2100,13 +1744,13 @@ ActiveRecord::Schema.define(:version => 20160428065243) do create_table "sub_domains", :force => true do |t| t.integer "org_subfield_id" - t.integer "priority" + t.integer "priority", :default => 0 t.string "name" t.string "field_type" - t.integer "hide" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.integer "hide", :default => 0 + t.integer "status", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "subfield_subdomain_dirs", :force => true do |t| @@ -2116,17 +1760,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "updated_at", :null => false end - create_table "subscriptions", :force => true do |t| - t.integer "user_id" - t.integer "subscribable_id" - t.string "subscribable_type" - t.boolean "subscribed" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true - create_table "system_messages", :force => true do |t| t.integer "user_id" t.string "content" @@ -2321,25 +1954,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" - create_table "user_wechats", :force => true do |t| - t.integer "subscribe" - t.string "openid" - t.string "nickname" - t.integer "sex" - t.string "language" - t.string "city" - t.string "province" - t.string "country" - t.string "headimgurl" - t.string "subscribe_time" - t.string "unionid" - t.string "remark" - t.integer "groupid" - t.integer "user_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - end - create_table "users", :force => true do |t| t.string "login", :default => "", :null => false t.string "hashed_password", :limit => 40, :default => "", :null => false @@ -2365,17 +1979,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" add_index "users", ["type"], :name => "index_users_on_type" - create_table "users_star_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id" - add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true - add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id" - create_table "versions", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "name", :default => "", :null => false @@ -2427,31 +2030,6 @@ ActiveRecord::Schema.define(:version => 20160428065243) do t.datetime "updated_at", :null => false end - create_table "web_hooks", :force => true do |t| - t.string "url" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type", :default => "ProjectHook" - t.integer "service_id" - t.boolean "push_events", :default => true, :null => false - t.boolean "issues_events", :default => false, :null => false - t.boolean "merge_requests_events", :default => false, :null => false - t.boolean "tag_push_events", :default => false - t.boolean "note_events", :default => false, :null => false - end - - add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id" - add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id" - - create_table "wechat_logs", :force => true do |t| - t.string "openid", :null => false - t.text "request_raw" - t.text "response_raw" - t.text "session_raw" - t.datetime "created_at", :null => false - end - create_table "wiki_content_versions", :force => true do |t| t.integer "wiki_content_id", :null => false t.integer "page_id", :null => false From f6c3e89454f1373d2690df59c4daa52cc6ad9aa5 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 29 Apr 2016 16:14:08 +0800 Subject: [PATCH 015/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E5=B8=96=E5=AD=90=E8=AF=A6=E7=BB=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sub_document_comments_controller.rb | 4 + app/views/layouts/base_sub_domain.html.erb | 172 +++++++++--------- .../_show_newstyle.html.erb | 22 +-- .../_show_sub_document_newstyle.html.erb | 4 +- app/views/sub_document_comments/show.html.erb | 2 +- app/views/sub_domains/show.html.erb | 4 +- 6 files changed, 103 insertions(+), 105 deletions(-) diff --git a/app/controllers/sub_document_comments_controller.rb b/app/controllers/sub_document_comments_controller.rb index b2c39b39e..3aeaaa2c7 100644 --- a/app/controllers/sub_document_comments_controller.rb +++ b/app/controllers/sub_document_comments_controller.rb @@ -53,6 +53,7 @@ class SubDocumentCommentsController < ApplicationController respond_to do |format| format.html {render :layout => @organization.switch_type ? 'base_sub_domain' : 'base_org'} end + else render_403 end @@ -185,6 +186,9 @@ class SubDocumentCommentsController < ApplicationController @subdomain = SubDomain.find(params[:sub_domain_id]) @org_subfield = OrgSubfield.find(params[:org_subfield_id]) @organization = @org_subfield.organization + rescue ActiveRecord::RecordNotFound + # source_subdomain_subfield not found + render_404 end def find_subfield_content diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb index c6eec5c30..2df4f3523 100644 --- a/app/views/layouts/base_sub_domain.html.erb +++ b/app/views/layouts/base_sub_domain.html.erb @@ -79,98 +79,100 @@ -
      -
      - <%= render :partial => 'organizations/org_logined_header' %> -
      -
      + <%# 更新访问数,刷新的时候更新访问次数 %> -<% update_visiti_count @organization %> + <% update_visiti_count @organization %> <%# over %> - + - -<%= render_flash_messages %> -<%= yield %> -<%= call_hook :view_layouts_base_content %> -
      + + <%= render_flash_messages %> + <%= yield %> + <%= call_hook :view_layouts_base_content %> +
      -
      - -
      - -
      +
      +
      From 39dd62580a5e13a661a5bc805773486eeb727d25 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 3 May 2016 20:08:40 +0800 Subject: [PATCH 028/257] =?UTF-8?q?=E5=AE=8C=E6=88=902=E7=BA=A7=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sub_document_comments_controller.rb | 11 ++-- .../organizations/_org_subdomain.html.erb | 2 +- .../_show_newstyle.html.erb | 2 + app/views/sub_document_comments/show.html.erb | 53 ++++++++----------- 4 files changed, 33 insertions(+), 35 deletions(-) diff --git a/app/controllers/sub_document_comments_controller.rb b/app/controllers/sub_document_comments_controller.rb index a5f4ce125..ce1a54313 100644 --- a/app/controllers/sub_document_comments_controller.rb +++ b/app/controllers/sub_document_comments_controller.rb @@ -108,13 +108,16 @@ class SubDocumentCommentsController < ApplicationController end def add_reply_in_doc - @document = OrgDocumentComment.find(params[:id]).root - @comment = OrgDocumentComment.new(:organization_id => @document.organization_id, :creator_id => User.current.id, :reply_id => params[:id]) - @comment.content = params[:org_comment][:org_content] + @document = SubDocumentComment.find(params[:id]).root + @subdomain = @document.sub_domain + @org_subfield = @subdomain.org_subfield + @organization = @org_subfield.organization + @comment = SubDocumentComment.new(:sub_domain_id => @document.sub_domain_id, :creator_id => User.current.id, :reply_id => params[:id]) + @comment.content = params[:org_comment][:sub_content] @document.children << @comment @document.save respond_to do |format| - format.html {redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)} + format.html {redirect_to org_subfield_sub_domain_sub_document_comment_path(:id => @document.id, :org_subfield_id => @org_subfield.id, :sub_domain_id => @subdomain.id)} end end diff --git a/app/views/organizations/_org_subdomain.html.erb b/app/views/organizations/_org_subdomain.html.erb index ad5a9db57..4ed7c8d29 100644 --- a/app/views/organizations/_org_subdomain.html.erb +++ b/app/views/organizations/_org_subdomain.html.erb @@ -1,6 +1,6 @@ <% subdomains.each do |subdomain|%>
    • - <%= link_to subdomain.name, org_subfield_sub_domain_path(subdomain, :org_subfield_id => org_subfield_id), :class => "coursesLineGrey hidden", :title => subdomain.name %> + <%= link_to subdomain.name, org_subfield_sub_domain_sub_document_comments_path(subdomain, :org_subfield_id => org_subfield_id), :class => "coursesLineGrey hidden", :title => subdomain.name %>
    • <% end %> <% if subdomains.size == 5 %> diff --git a/app/views/sub_document_comments/_show_newstyle.html.erb b/app/views/sub_document_comments/_show_newstyle.html.erb index f607b370d..90d503bd1 100644 --- a/app/views/sub_document_comments/_show_newstyle.html.erb +++ b/app/views/sub_document_comments/_show_newstyle.html.erb @@ -13,6 +13,8 @@

      + <% comments_for_doc = @document.children.reorder("created_at desc") %> + <% count = @document.children.count() %>

      留言板80条留言

      diff --git a/app/views/sub_document_comments/show.html.erb b/app/views/sub_document_comments/show.html.erb index 3119998e1..8f8ba1363 100644 --- a/app/views/sub_document_comments/show.html.erb +++ b/app/views/sub_document_comments/show.html.erb @@ -16,15 +16,15 @@
      <%= link_to User.find(@document.creator_id), user_url_in_org(@document.creator_id), :class => "newsBlue mr15" %> - TO  <%= link_to @document.organization.name, organization_path(@document.organization), :class => "newsBlue" %> + TO  <%= link_to @organization.name, organization_path(@organization), :class => "newsBlue" %> | - <% if @document.organization.home_id == @document.id %> - 首页 - <% else %> - 组织文章 - <% end %> + <%# if @organization.home_id == @document.id %> + + <%# else %> + + <%# end %>
      -
      <%= link_to @document.title, org_document_comment_path(:id => @document.id, :organization_id => @document.organization.id) %>
      +
      <%= link_to @document.title %>
      发布时间:<%= format_activity_day(@document.created_at) %> <%= format_time(@document.created_at, false) %>
      <% unless @document.content.blank? %> @@ -33,27 +33,27 @@
      <% end %>
      - <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => @document} %> + <%#= render :partial=>"attachments/activity_attach", :locals=>{:activity => @document} %> <%#= link_to_attachments_course @document, :author => false %>
      - <% if User.current.admin? || User.current.admin_of_org?(Organization.find(@document.organization_id) || User.current.id == @document.creator_id) %> + <% if User.current.admin? || User.current.admin_of_org?(@organization) || User.current.id == @document.creator_id %>
        • - <%= form_for('new_form', :url => {:controller => 'organizations', :action => 'set_homepage', :id => @document.organization_id, :home_id => @document.id}, :method => "put", :remote => true) do |f| %> + <%= form_for('new_form', :url => {:controller => 'organizations', :action => 'set_homepage', :id => @organization.id, :home_id => @document.id}, :method => "put", :remote => true) do |f| %> 设为首页 <% end %>
        • - <%= link_to "编辑文章", edit_org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :flag => 1), :class => "postOptionLink" %> + <%#= link_to "编辑文章", edit_org_document_comment_path(:id => @document.id, :organization_id => @organization.id, :flag => 1), :class => "postOptionLink" %>
        • - <%= link_to "删除文章", org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id, :detail_page => 1), :method => 'delete', + <%#= link_to "删除文章", org_document_comment_path(:id => @document.id, :organization_id => @organization.id, :detail_page => 1), :method => 'delete', :data => {:confirm => l(:text_are_you_sure)}, :remote => true, :class => 'postOptionLink' %>
        • @@ -73,13 +73,13 @@
          回复 <%= count>0 ? "(#{count})" : "" %> - - <% if @document.creator_id.to_i == User.current.id.to_i %> - - <% else %> - <%=render :partial=> "praise_tread/praise", :locals => {:activity=>@document, :user_activity_id=>@document.id,:type=>"activity"}%> - <% end %> - + + <%# if @document.creator_id.to_i == User.current.id.to_i %> + + <%# else %> + <%#=render :partial=> "praise_tread/praise", :locals => {:activity=>@document, :user_activity_id=>@document.id,:type=>"activity"}%> + <%# end %> +
          @@ -101,22 +101,15 @@
          <%= format_time(reply.created_at) %> - - <% if reply.creator_id.to_i == User.current.id.to_i %> - - <% else %> - <%=render :partial=> "praise_tread/praise", :locals => {:activity=>reply, :user_activity_id=>reply.id,:type=>"reply"}%> - <% end %> -
        +
        -
          - <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote %> +
            + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %> +
        -
        -
        -
          -
        • 上一页
        • -
        • 1
        • -
        • 2
        • -
        • 3
        • -
        • 4
        • -
        • 5
        • -
        • ...
        • -
        • 25
        • -
        • 下一页
        • -
        -
        -
        - - -
        - 上一页 - 1 - 2 - 3 - ... - 31 - 下一页 -
        -

      \ No newline at end of file diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 27dc5c05a..ad9169670 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -166,11 +166,7 @@ a.more-btn{ display:block; width:185px; height:30px; text-align:center; backgrou .sn-inner-newslist a:hover{ color:#24366e;} a.sn-newslist-titile{ font-size:15px;width:840px; display:block;overflow:hidden;white-space:nowrap; text-overflow:ellipsis;} a:hover.sn-newslist-reply,a:hover.sn-newslist-zan{ color:#379be9;} -.sn-inner-pages a{ display:block; font-size:12px; border:1px solid #d1d1d1; color:#999; float:left; width:30px; text-align:center; padding:3px 0; line-height:1.9; margin-right:5px; -webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px; } -.sn-inner-pages a:hover{ background-color:#24366e; color:#fff;} -a.sn-inner-pages-big{ width:50px;} -a.sn-pages-active{ background-color:#24366e; color:#fff;} -.sn-inner-pages{width:330px; margin:40px auto 100px;} + /* 内页新闻展示 */ .sn-inner-newscon{ width:1200px; padding:5px 0 50px; border-bottom:1px solid #e8e8e8; margin-bottom:30px; color:#999; font-size:14px; } .sn-inner-pcon{text-indent:2em;} @@ -214,3 +210,23 @@ a.sn-reply-username { color:#24366e; margin-right:15px; } .org-popup-wrap {border:3px solid #269ac9; padding:15px; background-color:#ffffff; position:relative; z-index:1000;} .org-popup-close {background:url(../images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:block; position: absolute; z-index: 1000; right:10px; top:5px;} +/****翻页***/ +/*ul.wlist{ float:right; border-bottom:none; height:30px; margin-top:20px; }*/ +/*ul.wlist li{float: left;}*/ +/*ul.wlist li a{ border:1px solid #15bccf; padding: 1px 4px 1px 4px; margin-left:3px;}*/ +/*ul.wlist li a:hover{ background:#15bccf; color:#fff; text-decoration:none;}*/ +/*.wlist_select {display:block; font-size:12px; border:1px solid #d1d1d1; color:#24366e; float:left; width:50px; text-align:center; padding:3px 0; line-height:1.9; margin-right:5px; -webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px; }*/ +.wlist_select a{background-color: #24366e;cursor: default;width: 30px;} + +.sn-inner-pages a{ display:block; font-size:12px; border:1px solid #d1d1d1; color:#999; float:left; width:50px; text-align:center; padding:3px 0; line-height:1.9; margin-right:5px; -webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px; } +.sn-inner-pages a:hover{ background-color:#24366e; color:#fff;} +a.sn-inner-pages-big{ width:50px;} +a.sn-pages-active{ background-color:#24366e; color:#fff;} +.sn-inner-pages{width:330px; margin:40px auto 100px;} + +ul.sn-inner-pages{ float:right; border-bottom:none; height:30px; margin-top:20px; } +ul.sn-inner-pages li{float: left;} +ul.sn-inner-pages li a{border: 1px solid #d1d1d1;padding: 1px 4px 1px 4px;margin-left: 3px;} +ul.sn-inner-pages li a:hover{ background-color:#24366e; color:#fff; text-decoration:none;} +.sn-inner-pages_select { background-color:#24366e; color:#fff; padding: 1px 5px 0px 5px; margin-left:3px;margin-top: -2px; border:1px solid #64bdd9;} +.sn-inner-pages_select a{background-color: #24366e; color: #fff;cursor: default;} From 578982fabae772625786f6ddc98ee38349298db8 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 4 May 2016 11:08:16 +0800 Subject: [PATCH 036/257] =?UTF-8?q?subdomain=20404=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sub_domains_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index 318631ccd..5ca9b07ed 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -28,8 +28,9 @@ class SubDomainsController < ApplicationController end def show - @subfield_content = @organization.org_subfields.order("priority") - render layout: @organization.switch_type ? 'base_sub_domain' : 'base_org' + render_404 + # @subfield_content = @organization.org_subfields.order("priority") + # render layout: @organization.switch_type ? 'base_sub_domain' : 'base_org' end def index From 467af4738661e47554e77ce8764f866060fee235 Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 4 May 2016 11:13:52 +0800 Subject: [PATCH 037/257] =?UTF-8?q?=E7=A7=81=E6=9C=89=E9=A2=98=E5=BA=93?= =?UTF-8?q?=E7=9A=84=E4=BD=9C=E4=B8=9A=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 18 ++++++++++++++++-- app/views/users/_homework_repository.html.erb | 2 +- .../users/_homework_repository_detail.html.erb | 10 +++++++++- app/views/users/show_homework_detail.js.erb | 2 +- app/views/users/user_homework_type.js.erb | 2 +- app/views/users/user_homeworks.html.erb | 2 +- app/views/users/user_homeworks.js.erb | 2 +- app/views/users/user_search_homeworks.js.erb | 2 +- 8 files changed, 31 insertions(+), 9 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 3297a4e48..2f1076971 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -473,7 +473,7 @@ class UsersController < ApplicationController def choose_user_course homework = HomeworkCommon.find params[:send_id].to_i - if homework.course.is_public == 0 && homework.user_id != User.current.id + if homework.course.is_public == 0 && !User.current.allowed_to?(:as_teacher,homework.course) ah = ApplyHomework.where("user_id = ? and homework_common_id = ?", User.current.id, params[:send_id].to_i) if ah.empty? @status = 2 @@ -620,7 +620,21 @@ class UsersController < ApplicationController end def show_homework_detail - @homework = HomeworkCommon.find params[:homework].to_i + homework = HomeworkCommon.find params[:homework].to_i + if homework.course.is_public == 0 && !User.current.allowed_to?(:as_teacher,homework.course) + ah = ApplyHomework.where("user_id = ? and homework_common_id = ?", User.current.id, params[:homework].to_i) + if ah.empty? + @status = 2 + @homework = nil + elsif ah.first.status != 2 + @status = ah.first.status + @homework = nil + elsif ah.first.status == 2 + @homework = homework + end + else + @homework = homework + end @is_import = params[:is_import] respond_to do |format| format.js diff --git a/app/views/users/_homework_repository.html.erb b/app/views/users/_homework_repository.html.erb index ce038e22c..93ee59138 100644 --- a/app/views/users/_homework_repository.html.erb +++ b/app/views/users/_homework_repository.html.erb @@ -37,7 +37,7 @@
    • <%= homework.quotes %>
    • <%=format_date homework.publish_time %>
    • - <% if homework.course.is_public == 0 && homework.user_id != User.current.id %> + <% if homework.course.is_public == 0 && !User.current.allowed_to?(:as_teacher,homework.course) %>
    • <% ah = ApplyHomework.where("user_id = ? and homework_common_id = ?", User.current.id, homework.id).first %> <% if ah.nil? %> diff --git a/app/views/users/_homework_repository_detail.html.erb b/app/views/users/_homework_repository_detail.html.erb index efbf24955..cf04e16cb 100644 --- a/app/views/users/_homework_repository_detail.html.erb +++ b/app/views/users/_homework_repository_detail.html.erb @@ -1,7 +1,7 @@
      题目信息
      - <% if homework.nil? %> + <% if homework.nil? && status == 0 %> 本题库遵循创作共用许可证
      教师给学生出题本质上是一种创作行为,题目的作者通常为此付出大量时间和精力。好的题目不仅能加深学生对知识点的理解,还能激发学生兴趣,提升学习效率。为此,本网站的题库许可证基于创作共用许可证( Creative Commons License )建立,其核心条款包括:

      @@ -14,6 +14,14 @@ 对此许可证的支持或反对,请在网站中留言,我们不断完善,谢谢!
      + <% elsif homework.nil? && status == 1 %> + 您选中的作业目前为私有作业,您的分享请求已发送至老师,请耐心等待老师的同意。 + <% elsif homework.nil? && status == 2 %> + 您选中的作业目前为私有作业,请点击“请求分享”按钮向题目的作者发送分享请求吧!
      + 祝您成功:) +
      + <% elsif homework.nil? && status == 3 %> + 您选中的作业目前为私有作业,您的分享请求已被老师拒绝,暂时不可查看作业详情。 <% else %>
      标题:<%=homework.name %>
      来源:<%=homework.course.name %>
      diff --git a/app/views/users/show_homework_detail.js.erb b/app/views/users/show_homework_detail.js.erb index a5dd82453..c005eabad 100644 --- a/app/views/users/show_homework_detail.js.erb +++ b/app/views/users/show_homework_detail.js.erb @@ -1,5 +1,5 @@ <% if @is_import.to_i == 1 %> $("#homework_detail_information").html("<%=escape_javascript(render :partial => 'users/homework_detail_information', :locals => {:homework=>@homework}) %>"); <% else %> - $("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>@homework}) %>"); + $("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>@homework,:status=>@status}) %>"); <% end %> \ No newline at end of file diff --git a/app/views/users/user_homework_type.js.erb b/app/views/users/user_homework_type.js.erb index 8cfb4dc04..83c1761e3 100644 --- a/app/views/users/user_homework_type.js.erb +++ b/app/views/users/user_homework_type.js.erb @@ -6,7 +6,7 @@ $("#homework_search_input").html("<%=escape_javascript(render :partial=>'homewor <% else %> $("#homework_repository_list").html('<%= escape_javascript(render :partial => 'users/homework_repository_list', :locals => {:homeworks => @homeworks,:sort => @order,:b_sort => @b_sort,:type=>@type,:is_import => @is_import,:property => @property,:search=>''})%>'); $("#homework_pository_ref_pages").html('<%= pagination_links_full @hw_pages, @hw_count, :per_page_links => false, :remote => @is_remote, :flag => true %>'); -$("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>nil}) %>"); +$("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>nil, :status => 0}) %>"); $("#homework_search_input").html("<%=escape_javascript(render :partial=>'homework_repository_search', :locals=>{:type=>@type,:is_import=>@is_import,:property=>@property}) %>"); $("#homework_type_all").attr('href','<%= user_homework_type_user_path(@user,:type => @type,:is_import => 0,:property => 0) %>'); $("#homework_type_nor").attr('href','<%= user_homework_type_user_path(@user,:type => @type,:is_import => 0,:property => 1) %>'); diff --git a/app/views/users/user_homeworks.html.erb b/app/views/users/user_homeworks.html.erb index 93e385070..bc937e672 100644 --- a/app/views/users/user_homeworks.html.erb +++ b/app/views/users/user_homeworks.html.erb @@ -68,7 +68,7 @@ <%=render :partial => 'homework_repository_list', :locals => {:homeworks => @homeworks,:type=>@type,:is_import => 0,:property => @property,:search=>''} %>
      - <%=render :partial => 'homework_repository_detail', :locals => {:homework => nil} %> + <%=render :partial => 'homework_repository_detail', :locals => {:homework => nil, :status => 0} %>
      diff --git a/app/views/users/user_homeworks.js.erb b/app/views/users/user_homeworks.js.erb index ce1bb65e2..5579d8a92 100644 --- a/app/views/users/user_homeworks.js.erb +++ b/app/views/users/user_homeworks.js.erb @@ -1,4 +1,4 @@ /*$("#homework_repository").html('<%#= escape_javascript(render :partial => 'users/homework_repository', :locals => {:homeworks => @homeworks})%>');*/ $("#homework_repository_list").html('<%= escape_javascript(render :partial => 'users/homework_repository_list', :locals => {:homeworks => @homeworks,:sort => @order,:b_sort => @b_sort,:type=>@type,:is_import => 0,:property => @property,:search=>''})%>'); $("#homework_pository_ref_pages").html('<%= pagination_links_full @hw_pages, @hw_count, :per_page_links => false, :remote => @is_remote, :flag => true %>'); -$("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>nil}) %>"); +$("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>nil, :status => 0}) %>"); diff --git a/app/views/users/user_search_homeworks.js.erb b/app/views/users/user_search_homeworks.js.erb index 29d490960..807dcc7d0 100644 --- a/app/views/users/user_search_homeworks.js.erb +++ b/app/views/users/user_search_homeworks.js.erb @@ -5,5 +5,5 @@ $("#homework_detail_information").html("<%=escape_javascript(render :partial => <% else %> $("#homework_repository_list").html('<%= escape_javascript(render :partial => 'users/homework_repository_list', :locals => {:homeworks => @homeworks,:sort => @order,:b_sort => @b_sort,:type=>@type,:is_import => @is_import,:property => @property,:search=>@search})%>'); $("#homework_pository_ref_pages").html('<%= pagination_links_full @hw_pages, @hw_count, :per_page_links => false, :remote => @is_remote, :flag => true %>'); -$("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>nil}) %>"); +$("#homework_repository_detail").html("<%=escape_javascript(render :partial => 'users/homework_repository_detail', :locals => {:homework=>nil, :status => 0}) %>"); <% end %> \ No newline at end of file From daa154db02256cac896e0c9328694c75031714e7 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 4 May 2016 11:16:25 +0800 Subject: [PATCH 038/257] =?UTF-8?q?=E9=BC=A0=E6=A0=87=E7=BB=8F=E8=BF=87?= =?UTF-8?q?=E5=AD=97=E6=AF=8D=E5=BD=95=E6=98=BE=E7=A4=BA=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_sub_domain.html.erb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb index 59c6710fc..bf4d70e32 100644 --- a/app/views/layouts/base_sub_domain.html.erb +++ b/app/views/layouts/base_sub_domain.html.erb @@ -82,7 +82,7 @@ <% @subfield_content.each do |field| %> <% if is_default_field?(field) %> <% case field.name %> - <% when 'activity' %> + <% when 'activity' %>
    • @@ -100,6 +100,8 @@ + 6666666666666 + <% elsif field.field_type == "Resource" && field.hide == 0 %>
    • <%=link_to document.title, org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id => @org_subfield, :sub_domain_id => @subdomain), :class => "sn-newslist-titile fl", :target => "_blank" %> - <%= format_date(document.created_at) %>>回复(100)(100) + <%= format_date(document.created_at) %>>回复(100)(100)
    • <% end %> @@ -17,7 +17,7 @@
        - <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %> + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => true, :remote => @is_remote, :flag => true %>
      From 714deebe21630db97fcc6e3ef4545478a2488018 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 4 May 2016 14:08:57 +0800 Subject: [PATCH 042/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=AF=BC=E8=88=AA?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_sub_domain.html.erb | 52 ++++++++++++---------- public/stylesheets/org2.css | 9 ++-- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb index bf4d70e32..445999e97 100644 --- a/app/views/layouts/base_sub_domain.html.erb +++ b/app/views/layouts/base_sub_domain.html.erb @@ -32,11 +32,17 @@ @@ -83,15 +89,15 @@ <% if is_default_field?(field) %> <% case field.name %> <% when 'activity' %> - <% when 'course' %> - <% when 'project' %> - <% end %> @@ -100,8 +106,20 @@ - 6666666666666 - + + <% elsif field.field_type == "Resource" && field.hide == 0 %>

    - -
    banner image
    diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index ad9169670..0debbe405 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -65,9 +65,10 @@ a.sn-link-select {color:#809df9;} .sn-search-input {width:328px; height:40px; font-size:16px; color:#ccc; padding-left:10px; border:1px solid #ccc; border-right:none; float:right; background-color:#fff; outline:none;} a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left:none; float:right; outline:none; background:url(../images/sn_search_icon.jpg) 0 3px no-repeat;} .sn-nav {width:1200px; height:55px; margin:0 auto; font-size:16px; position:relative; line-height:1;} -.sn-nav li {float:left; padding-top:11px; padding-bottom:12px; margin-right:50px;} -.sn-nav li a {display:inline-block; padding:8px 6px; border-radius:5px;} -.sn-nav li a:hover {background-color:#809df9;} +.nav-element-default, .nav-element {float:left; padding-top:11px; padding-bottom:12px; margin-right:50px;} +.nav-element-default a, .nav-element a {display:inline-block; padding:8px 6px; border-radius:5px;} +.nav-element-default a:hover, .nav-element a:hover {background-color:#809df9;} +.sn-subnav-position {position:fixed; left:0; top:199px; z-index:99;} .sn-sub-nav {width:1200px; margin:0 auto; font-size:14px; position:relative; line-height:1;} .sn-sub-nav li {color:#999; float:left;} .sn-sub-nav li a {height:40px; line-height:40px; vertical-align:middle; margin:0 5px; padding:0 5px; display:inline-block;} @@ -169,7 +170,7 @@ a:hover.sn-newslist-reply,a:hover.sn-newslist-zan{ color:#379be9;} /* 内页新闻展示 */ .sn-inner-newscon{ width:1200px; padding:5px 0 50px; border-bottom:1px solid #e8e8e8; margin-bottom:30px; color:#999; font-size:14px; } -.sn-inner-pcon{text-indent:2em;} +.sn-inner-pcon{text-indent:2em; overflow:hidden;} .sn-inner-newscon img{ display:block; width:830px; margin:25px auto 5px;} .sn-inner-psmall{ color:#999; font-size:12px; margin-bottom:15px;} .sn-inner-imgp{ color:#000; text-align:center; margin-bottom:30px;} From 0fc142d822a9fecaccc5c55ad78283bc2ec00856 Mon Sep 17 00:00:00 2001 From: Linda <2294690300@qq.com> Date: Wed, 4 May 2016 14:40:25 +0800 Subject: [PATCH 043/257] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=85=8D=E7=BD=AElog?= =?UTF-8?q?o=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_org2.html.erb | 2 +- app/views/layouts/base_sub_domain.html.erb | 368 +++++++++--------- .../_show_sub_document_newstyle.html.erb | 50 +-- public/images/default_blank/icons-add.png | Bin 0 -> 18580 bytes public/stylesheets/org2.css | 3 +- 5 files changed, 212 insertions(+), 211 deletions(-) create mode 100644 public/images/default_blank/icons-add.png diff --git a/app/views/layouts/base_org2.html.erb b/app/views/layouts/base_org2.html.erb index 3bf0188a8..3fe002539 100644 --- a/app/views/layouts/base_org2.html.erb +++ b/app/views/layouts/base_org2.html.erb @@ -90,7 +90,7 @@ <% end %> <% if User.current.admin_of_org?(@organization) %> - + <% end %> diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb index 3ab589111..32396a7c5 100644 --- a/app/views/layouts/base_sub_domain.html.erb +++ b/app/views/layouts/base_sub_domain.html.erb @@ -1,184 +1,184 @@ - - - - - <%= h html_title %> - - - <%= csrf_meta_tag %> - <%= favicon %> - <%= javascript_heads %> - <%= heads_for_theme %> - <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> - <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> - <%= javascript_include_tag 'attachments' %> - <%#= call_hook :view_layouts_base_html_head %> - - <%#= yield :header_tags -%> - - - - - - - - - - - - - - - -
    -
    -
    - <%= render :partial => 'organizations/org_logined_header' %> -
    - -
    - -
    -
      - <% @subfield_content.each do |field| %> - <% if is_default_field?(field) %> - <% case field.name %> - <% when 'activity' %> - - <% when 'course' %> - - <% when 'project' %> - - <% end %> - <% else %> - <% if field.field_type == "Post" && field.hide == 0 %> - - 6666666666666 - - <% elsif field.field_type == "Resource" && field.hide == 0 %> - - <% end %> - <% end %> - <% end %> - <% if User.current.admin_of_org?(@organization) %> - - <% end %> -
    -
    - - -
    -
    banner image
    -
    -
    -
    -<%# 更新访问数,刷新的时候更新访问次数 %> - <% update_visiti_count @organization %> -<%# over %> - - - - <%= render_flash_messages %> - <%= yield %> - <%= call_hook :view_layouts_base_content %> -
    - -
    - -
    - -
    -
    -
    - - -<%#= call_hook :view_layouts_base_body_bottom %> - - - - - + + + + + <%= h html_title %> + + + <%= csrf_meta_tag %> + <%= favicon %> + <%= javascript_heads %> + <%= heads_for_theme %> + <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> + <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> + <%= javascript_include_tag 'attachments' %> + <%#= call_hook :view_layouts_base_html_head %> + + <%#= yield :header_tags -%> + + + + + + + + + + + + + + + +
    +
    +
    + <%= render :partial => 'organizations/org_logined_header' %> +
    + +
    + +
    +
      + <% @subfield_content.each do |field| %> + <% if is_default_field?(field) %> + <% case field.name %> + <% when 'activity' %> + + <% when 'course' %> + + <% when 'project' %> + + <% end %> + <% else %> + <% if field.field_type == "Post" && field.hide == 0 %> + + 6666666666666 + + <% elsif field.field_type == "Resource" && field.hide == 0 %> + + <% end %> + <% end %> + <% end %> + <% if User.current.admin_of_org?(@organization) %> + + <% end %> +
    +
    + + +
    +
    banner image
    +
    +
    +
    +<%# 更新访问数,刷新的时候更新访问次数 %> + <% update_visiti_count @organization %> +<%# over %> + + + + <%= render_flash_messages %> + <%= yield %> + <%= call_hook :view_layouts_base_content %> +
    + +
    + +
    + +
    +
    +
    + + +<%#= call_hook :view_layouts_base_body_bottom %> + + + + + diff --git a/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb index 15d7c81af..ad8f9ba8c 100644 --- a/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb +++ b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb @@ -1,26 +1,26 @@ -
    -
    -
    -
    您的位置:首页 > 数据资源 > 仿真数据
    -
    -
    -

    最新资讯

    -
      - <% documents.each do |document| %> -
    • -
      <%=link_to document.title, org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id => @org_subfield, :sub_domain_id => @subdomain), :class => "sn-newslist-titile fl", :target => "_blank" %> - <%= format_date(document.created_at) %>>回复(100)(100) -
      -
    • - <% end %> -
    - -
    -
      - <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => true, :remote => @is_remote, :flag => true %> -
      -
    -
    -
    -
    +
    +
    +
    +
    您的位置:首页 > 数据资源 > 仿真数据
    +
    +
    +

    最新资讯

    +
      + <% documents.each do |document| %> +
    • +
      <%=link_to document.title, org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id => @org_subfield, :sub_domain_id => @subdomain), :class => "sn-newslist-titile fl", :target => "_blank" %> + <%= format_date(document.created_at) %>>回复(100)(100) +
      +
    • + <% end %> +
    + +
    +
      + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => true, :remote => @is_remote, :flag => true %> +
      +
    +
    +
    +
    \ No newline at end of file diff --git a/public/images/default_blank/icons-add.png b/public/images/default_blank/icons-add.png new file mode 100644 index 0000000000000000000000000000000000000000..059585a0d59d1f712e6c6315a6be8622daf9ca51 GIT binary patch literal 18580 zcmeI4do-~JcUa!yl@qWGEdvE7_?6X^EAt9z9 z1^|GBm8BVu`?`|*ryw$u`z+e97&89CuykVrfcV_;KLH>qMIHdeY$&Ftc6Q!$7MO(6__I+;Qx0YGqbszZ?Lk>UB+wqcT#vq{t7#RO_N09ECP+?94aDSa5g@0OM^ zx*f4s%z2*doD@r^@|_K0mZ^I?(wF6X8Sme_{(zIa-W%oCtgG8Y2KxKIJpNMHozgv8 z!>*MIn=cgE5G*YN(m6&@P2tj9fiSmg zNDINRq8UJ7lxvKX(Pkhl(L|#PfanPVriC~?b(|c5&4z^Kxt)sb;8N&mrK+ElQw<6_NJ?!|Y= z^z1;sRX+Mv^hl5dz=^aiU3YEP)k_<_iEQd?oLGCQi=!jtBslrH8M$U_5K~&3T+s$&{N)g{5+W_?c!#vlo{d zNSn;;3|lC6LjI`n0>@HJlkn9GLJH|~lAcRnxv8Zm(cLcN9^T84o4Hv&txUc!QdHRZ zuE<=x3TE#d&!{G7jfh-glrR);seL#s6VkJHo;~#TUH?qMY!jbY4@=c|F#mb_hun=m z$F$sqAoq{%FSO8#3%_J9^hhwk==vFDh5dKZnRP5}DUYzDCw=P_t}HSPyLK|GZtbf8 z7O;JP6d|lmOOkx>3EutS9`nunTou$R<`cSH(azCmf|9FlpsZqP8h$`zvEYHQxqTuV zcT1O1cgDn6xLUiKo>|hTdPSx{#6@)1ZmqJV&?9GTuPh0X87U9;#9WMVUCmK@qq0aP zZOO)^l5;m5v0N;9?{McjF_k4TNGowGU&|ItSf)cJwqBZ&Vy)I2L%a8^Q{++@2a*t* z7b6v8d-%(}Tb+6HFt_)1Sc{%qjLVFZS%W66>JmP69BGo6e%8J^JMEFk*}a(K>#b<% zfp&0*J=t@$1Co|hC(k#n%!Fk$JV>H=QHH(YJ*)!Jr@I!JCp<`~_kA_1r@Lp@hoIRK zkrKNqEIpSk@LjNVL6&^p0(heJ=@}0b67M=99wQYKy^cv8qdU2-__$)5Z0voRcuc%= zd}w_4Sw|>cB*2%5G1>vIYYV9{= z6mR;v^D{x>Qe?#H^hnDLM?&761&37T-$9bzx|%flI}7z{_#U(I+;C~6&pL3%7sWvM zR%-`S=2Z~%B=BvHgz6N+t3bG}$Jo9#E@$%|8-z0KD-Ia%|s;avht(+##y}l^@h7{j4 zeDRaQmeE5Ir_57suQ{M|pyFur(QTD8j@ld@<{WdzIHF)|b>bvtR!s{^OF5w2!q)RSRX5 z8dtJbZu4gaR0UEQg}s^2wQpsYXW!~^@ly0U!AyORmOH&Rrcx#$FhS0NmbE|2?|4XM ze3!zTg8Hiuhcc3HB)8@~p*?z9Wq5o0xi2=F$%^+pZW#_3e;6Eg?buTFA~h>HtL%MD zH+*B@Mz@V$iWb>kPEkv1M9}WGly7J+s@%F6gEb_5uIUlN-oXkU4>`W4_;fL}&9GQC zv@tX>bk=CvmzAF@zeay5dCq<}|LwXNn+0wPbO{uND}-Mb@)c4RP82>h3q9k|j2koI zv$3)!vqdG`l>Lv;OXc1vju23-UK&YtviC(&W!EcyMpUU;FKV0<6= z93LuKqcr#3?&Jtt^Wu|-PTF70%U@$~ z_+_ed{71c~E4Q0|_Kvh&9dHLFYKv26$1XU0UG=?flZ9BBY{KkCM0}gUQnpz&X0%9;_uzq`` zcjcv{U+p?vaZc}i*sbrPaJ%YHoibJ5>7pH<9e1zNFZaXx>jYVRJke>uC!t}3^NtmA z@tZgd&Y9d#7gp!L>~LAPsbSj?o7UX?Y)#(%{$9)8%w9jvuv^LbHAOzg4G$s*C2|zs z9_muuL|gNWbt1%PD60BO_5ErgG#=f*q3Rl^<=qLLjE^CyJ3K0#zvi6FD}JKZ+*tB7 zXzP2)T}rYmpAE$I6<$>jcJVDT-#+A5|7PdYXa!Hjf|8e^PxCE;Y;UJUZ#}hj)<^S! zULO{n+IqgEZbvdp;a=F+y)+qS;2dv&7bR_m?m zw!|HILn6JFZ1s9fNdO0yK}$D0Q8e)CU`DFaMkR~lylMa)V|UAM~cQDQ55*m^Y4*TdeU$jh`gZIvABjdk9p;d}3&bw_&)7BW6Shdo=C zazSEmtXn-oqJz(m7B_!=J?pd7>m66dE|N-V?VmQ6ZmzxMCN&@_ zx+iTc?%TsX&+9F!EE-f-s~(C@RaRD%P$+swtU2;L>r&R-+WVo--`Ks(bKPxUJHD)~ zbscRQ6dyTITawGpe(yhUF8e&DLbXDl_Ioz65Fevm5lA=^3FG#FG1-1Bd@#(9sX7_tM;tQ}li*Kbuqbpt$aq}5 zCp~~=2!)O(`uX@iE*j%!B0uJLc3g_^U_1k^rHO$5#mUBow;PT2M^7fpJdk@O-$(Yx zgiJ>^g9OKsnDhXD0?9m(>fn;Td<&IsGLLp)Z zD5M@z7p)7!Bk)9+K1mx1!=s3Jm>vp6AmFt|+4^(O#(sF} zv_9iwA##%;P-r{}P0)vVqPTOVrKha}!|S2ZFg;y736Iy-ChHM(f28GlExRNA@s+}{JG`)+)>7TCKfmbPZ-~Ou!QmQ zB@qqazqC$W)=$sxZj|4r^WP9m#-HZ?_Z&gqBtKr|KN)JG*WZIM>10+A-k)Ub#jTKk zS(%eje{}kVNuh)r<$j* zPV?gaNN6|t8zGj7voL{JnVafp>FemgkeXW4!%XWpEe?@@A=CY7covpI!+Vk73_mXe z_*CPxp5ve0815#@UC{W6&5IlTw>EHp*YVAe8Zgmc7m46L;9BF)-(9E6U{^QZuG3|( z>y)RHABBZQe$NJKp5`@vz`#s!cHo|cNm%aCz)j%Zc9dWe)zyr`{Rm`^Z{=wH?>=DR zkB)9rj!2#9j?;wij+4bT?Zi4!)|0K=^Dy@)4*z);|E=PGet`TZ-%O3@KN%Gii=PAp zgty7Z#hVXE<>LYY;cfD9@#X_k`M5wpc$<7&y!n7sJ}wXt-XxF zn-56k;{pNUZSryP<^xjsxIjR7n|xfn`G8bDE)WpjCLb4XJ|LBk3j~C>$;ZW;4@l+X z0s-M|@^SIz15)|8KtOn#d|bTwfK)y%5D?xb9~W;vAeD~`1cbNA$HkiuNaf=K0pV@( zaq;E@Qu(+*KzN&cT)g>!R6Z^c5Z)#q7jHfwm5&Pqgty7Z#hVXE<>LYY;cfD9@#X_k z`M5wpc$<7&y!n7sJ}wXt-X>36VpDgwlKi;0v<7kSUA=$VzKwg|D}-Q)vjKpRB>)h% z3jjvGabJ4?AOHaXuQvk#<`@9T(GPFBy&3=nbFIvb9fO-YkFDA}*LdEY9XHIF{iiPI zFNVw)eWjwYTYcw-OwltD#s=5RoJ9om?ad<8CCygODGN`H5BAa%H?Ggzn;BEO(>=*C z99A#igb6XHKD!gZy}7yQ*exj>acmo^tyq`-(vX0VA3SfLk@WH;_o$iBr48WGe=ZHOfv$ub!M=j zLCTRnjX_K3ONVw>l)S9hf>+A26EcMpzug4iYT{F+N@n-3`Vlu2vK zx{6EtCYE-Ih&o-ziAyK%pRs5*KtwK(*;ih^?A5LJ21(WA3(K?fW3Mtyk%@~_*V*dC zqnlLvkExb-isrx8-K~Kx3;|vbeb&ahY*F@LKlrBR@8SOVP)C|lE?zK4 zWL4S a1B5LXY{QBaDdV?yTbZvj%Qe}&^Zx)hHPUqe literal 0 HcmV?d00001 diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index ad9169670..4b59713f5 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -61,7 +61,8 @@ a.sn-link-select {color:#809df9;} .sn-bg-blue {background-color:#24366e;} .sn-login {width:1200px; height:45px; line-height:45px; margin:0 auto; font-size:14px; color:#24366e; vertical-align:middle; text-align:right;} .sn-login2 {width:1200px; height:54px; line-height:54px; margin:0 auto; font-size:14px; color:#24366e; vertical-align:middle; text-align:right;} -.sn-logo {width:1200px; height:90px; line-height:90px; margin:0 auto; vertical-align:middle;} +.sn-logo {width:1200px; height:90px; line-height:90px; margin:0 auto; vertical-align:middle;position:relative;} +.sn-logo-add{ display:block; top:10px; left:0px; position:absolute; width:20px; height:20px;background:url(../images/default_blank/icons-add.png) -0px -3px no-repeat;} .sn-search-input {width:328px; height:40px; font-size:16px; color:#ccc; padding-left:10px; border:1px solid #ccc; border-right:none; float:right; background-color:#fff; outline:none;} a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left:none; float:right; outline:none; background:url(../images/sn_search_icon.jpg) 0 3px no-repeat;} .sn-nav {width:1200px; height:55px; margin:0 auto; font-size:16px; position:relative; line-height:1;} From 8a14ce004f46a7ac2bbffb05c7ade303ab4bb37b Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 4 May 2016 15:05:54 +0800 Subject: [PATCH 044/257] =?UTF-8?q?=E4=BB=A5=E5=BC=B9=E6=A1=86=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=98=BE=E7=A4=BA=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sub_domains_controller.rb | 4 +-- app/views/layouts/base_sub_domain.html.erb | 4 ++- .../organizations/_subfield_list.html.erb | 3 +- app/views/sub_domains/_new.html.erb | 32 ++++++++++++++++-- app/views/sub_domains/new.html.erb | 6 ---- app/views/sub_domains/new.js.erb | 7 +++- public/images/default_blank/icons-add.png | Bin 0 -> 18580 bytes public/stylesheets/org2.css | 2 ++ 8 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 public/images/default_blank/icons-add.png diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index 5ca9b07ed..d16444a74 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -1,10 +1,10 @@ class SubDomainsController < ApplicationController layout 'base_org' - before_filter :find_org_subfield_and_subdomain, :only => [:show, :index, :new] + before_filter :find_org_subfield_and_subdomain, :only => [:show, :index] def new @subdomain = SubDomain.new - + @org_subfield = OrgSubfield.find(params[:org_subfield_id]) end def create diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb index 3ab589111..6d4b5e514 100644 --- a/app/views/layouts/base_sub_domain.html.erb +++ b/app/views/layouts/base_sub_domain.html.erb @@ -140,7 +140,9 @@
-
banner image
+
banner image + +
diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index b1ab473f3..bd4537e70 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -98,7 +98,8 @@ 编辑 | - 添加二级目录 + + <%= link_to("添加二级目录", new_org_subfield_sub_domain_path(:org_subfield_id => field.id, :field => field), :class => "linkGrey fr mr5", :remote => true) %>
diff --git a/app/views/sub_domains/_new.html.erb b/app/views/sub_domains/_new.html.erb index 3c63c073d..3faa66632 100644 --- a/app/views/sub_domains/_new.html.erb +++ b/app/views/sub_domains/_new.html.erb @@ -1,3 +1,29 @@ -
- test -
\ No newline at end of file +
+
添加二级目录
+ <%= form_tag url_for(:controller => 'sub_domains', :action => 'create', :org_subfield_id => field.id), :id=> 'add_subfield_form_subdomain',:remote => true do %> + 二级栏目名称 + +
    +
  • 栏目类型
  • +
  • + + +
  • +
  • + + +
  • +
  • +
+ + <% end %> +
+
+ + \ No newline at end of file diff --git a/app/views/sub_domains/new.html.erb b/app/views/sub_domains/new.html.erb index a497b71cf..e69de29bb 100644 --- a/app/views/sub_domains/new.html.erb +++ b/app/views/sub_domains/new.html.erb @@ -1,6 +0,0 @@ -$('#ajax-modal').html('<%= escape_javascript(render :partial => 'sub_domains/new',:locals => {:course => @course,:course_attachment_type => 1}) %>'); -showModal('ajax-modal', '513px'); -$('#ajax-modal').siblings().remove(); -$('#ajax-modal').before(""); -$('#ajax-modal').parent().css("top","40%").css("left","50%").css("border","3px solid #269ac9"); -$('#ajax-modal').parent().addClass("popbox_polls"); \ No newline at end of file diff --git a/app/views/sub_domains/new.js.erb b/app/views/sub_domains/new.js.erb index 66d9aeca2..3f7f1ad47 100644 --- a/app/views/sub_domains/new.js.erb +++ b/app/views/sub_domains/new.js.erb @@ -1 +1,6 @@ -alert("test"); \ No newline at end of file +$('#ajax-modal').html('<%= escape_javascript(render :partial => 'sub_domains/new',:locals => {:field => @org_subfield}) %>'); +showModal('ajax-modal', '513px'); +$('#ajax-modal').siblings().remove(); +$('#ajax-modal').before(""); +$('#ajax-modal').parent().css("top","40%").css("left","50%").css("border","3px solid #269ac9"); +$('#ajax-modal').parent().addClass("popbox_polls"); diff --git a/public/images/default_blank/icons-add.png b/public/images/default_blank/icons-add.png new file mode 100644 index 0000000000000000000000000000000000000000..059585a0d59d1f712e6c6315a6be8622daf9ca51 GIT binary patch literal 18580 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 a1B5LXY{QBaDdV?yTbZvj%Qe}&^Zx)hHPUqe literal 0 HcmV?d00001 diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index ad9169670..bcd110adb 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -74,6 +74,8 @@ a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left: .sn-sub-nav li a:hover {border-bottom:3px solid #ffbd18; height:37px;} .sn-subnav-slice {margin:12px 5px;} .sn-banner {width:1200px; height:210px; margin:0 auto;} +.sn-logo-add{ display:block; top:5px; left:0px; position:absolute; width:20px; height:20px;background:url(../images/default_blank/icons-add.png) 0px -3px no-repeat;} +.sn-banner-add{ display:block; position:absolute; top:10px; left:10px;width:27px; height:27px; background:url(../images/default_blank/icons-add.png) -32px -0px no-repeat;} .sn-content-position {width:1200px; height:50px; line-height:50px; vertical-align:middle; font-size:14px; color:#888; margin:0 auto;} /*footer样式*/ .sn-footer {width:1200px; height:220px; margin:0 auto; text-align:center; font-size:14px; color:#fff; line-height:normal;} From a691fb7eb787a49adf51542d86af70dd97e7b0c9 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 4 May 2016 15:19:26 +0800 Subject: [PATCH 045/257] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=88=96=E8=80=85?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=8F=90=E4=BA=A4=E6=97=B6=E5=80=99=E5=BC=B9?= =?UTF-8?q?=E6=A1=86=E8=87=AA=E5=8A=A8=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subdomain.html.erb | 12 ++++++------ app/views/sub_domains/_new.html.erb | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/views/organizations/_org_subdomain.html.erb b/app/views/organizations/_org_subdomain.html.erb index 0ba460d61..bde994c5d 100644 --- a/app/views/organizations/_org_subdomain.html.erb +++ b/app/views/organizations/_org_subdomain.html.erb @@ -3,9 +3,9 @@ <%= link_to subdomain.name, org_subfield_sub_domain_sub_document_comments_path(subdomain, :org_subfield_id => org_subfield_id), :class => "coursesLineGrey hidden", :title => subdomain.name %> <% end %> -<% if subdomains.size == 5 %> -
  • - - -
  • -<% end%> \ No newline at end of file +<%# if subdomains.size == 5 %> + + + + +<%# end%> \ No newline at end of file diff --git a/app/views/sub_domains/_new.html.erb b/app/views/sub_domains/_new.html.erb index 3faa66632..510d469cf 100644 --- a/app/views/sub_domains/_new.html.erb +++ b/app/views/sub_domains/_new.html.erb @@ -15,15 +15,16 @@
  • - + + <% end %>
    + \ No newline at end of file From 51ff1b0aa615ab6bf41bd875ebf825ad74192d85 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 4 May 2016 15:43:46 +0800 Subject: [PATCH 046/257] =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E6=A0=8F=E6=95=88?= =?UTF-8?q?=E6=9E=9C=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_org_subfield_leftD.html.erb | 85 +++++++++++-------- 1 file changed, 51 insertions(+), 34 deletions(-) diff --git a/app/views/organizations/_org_subfield_leftD.html.erb b/app/views/organizations/_org_subfield_leftD.html.erb index 1ce8b788b..595b3c299 100644 --- a/app/views/organizations/_org_subfield_leftD.html.erb +++ b/app/views/organizations/_org_subfield_leftD.html.erb @@ -13,48 +13,50 @@

    合作伙伴更多

      -
      - <% org_acts.first(8).each do |activity| %> - <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> - <% document = activity.org_act %> - <% org_subfield_id = params[:org_subfield_id] %> - <% flag = 2 %> - <% iamge_path = get_image_path_from_content(document.content) %> - <% if iamge_path.nil? %> -
    • <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "partnerimg" %>
    • - <% else %> -
    • <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "partnerimg" %>
    • - <% end %> - <% elsif activity.container_type == 'OrgSubfield' %> - <% if activity.org_act_type == 'Message' and activity.org_act_id and Message.where("id=#{activity.org_act_id}").count > 0 %> - <% message = Message.find(activity.org_act_id) %> - <% if message.board.org_subfield_id %> - <% iamge_path = get_image_path_from_content(message.content) %> - <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "partnerimg" %> +
      +
      + <% org_acts.first(8).each do |activity| %> + <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> + <% document = activity.org_act %> + <% org_subfield_id = params[:org_subfield_id] %> + <% flag = 2 %> + <% iamge_path = get_image_path_from_content(document.content) %> + <% if iamge_path.nil? %> +
    • <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "partnerimg" %>
    • + <% else %> +
    • <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "partnerimg" %>
    • + <% end %> + <% elsif activity.container_type == 'OrgSubfield' %> + <% if activity.org_act_type == 'Message' and activity.org_act_id and Message.where("id=#{activity.org_act_id}").count > 0 %> + <% message = Message.find(activity.org_act_id) %> + <% if message.board.org_subfield_id %> + <% iamge_path = get_image_path_from_content(message.content) %> + <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "partnerimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "partnerimg" %> + <% end %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "partnerimg" %> + <% iamge_path = get_image_path_from_content(message.content) %> + <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank", :class => "partnerimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank", :class => "partnerimg" %> + <% end %> <% end %> - <% else %> - <% iamge_path = get_image_path_from_content(message.content) %> + <% end %> + <% if activity.org_act_type == 'News' and News.where("id=?", activity.org_act_id).count > 0 %> + <% news = News.find(activity.org_act_id) %> + <% iamge_path = get_image_path_from_content(news.description) %> <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank", :class => "partnerimg" %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), news_path(news), :target => "_blank", :class => "partnerimg" %> <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank", :class => "partnerimg" %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), news_path(news), :target => "_blank", :class => "partnerimg" %> <% end %> <% end %> <% end %> - <% if activity.org_act_type == 'News' and News.where("id=?", activity.org_act_id).count > 0 %> - <% news = News.find(activity.org_act_id) %> - <% iamge_path = get_image_path_from_content(news.description) %> - <% if iamge_path.nil? %> - <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "368", :height => "43"), news_path(news), :target => "_blank", :class => "partnerimg" %> - <% else %> - <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "368", :height => "43"), news_path(news), :target => "_blank", :class => "partnerimg" %> - <% end %> - <% end %> <% end %> - <% end %> +
    @@ -83,3 +85,18 @@
    <% end %> <% end %> + + From 8dfe95dfd158377a8c8d100e14cb0cf07c1ccddc Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 4 May 2016 15:50:53 +0800 Subject: [PATCH 047/257] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D=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/sub_domains_controller.rb | 1 + app/helpers/sub_domains_helper.rb | 1 + app/views/organizations/setting.html.erb | 5 ++--- app/views/sub_domains/_new.html.erb | 5 +---- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index d16444a74..c45dff1d7 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -5,6 +5,7 @@ class SubDomainsController < ApplicationController def new @subdomain = SubDomain.new @org_subfield = OrgSubfield.find(params[:org_subfield_id]) + @organization = @org_subfield.organization end def create diff --git a/app/helpers/sub_domains_helper.rb b/app/helpers/sub_domains_helper.rb index 8f189a38d..1a711b5e4 100644 --- a/app/helpers/sub_domains_helper.rb +++ b/app/helpers/sub_domains_helper.rb @@ -1,2 +1,3 @@ module SubDomainsHelper + include OrganizationsHelper end diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb index 6f45bd348..396741246 100644 --- a/app/views/organizations/setting.html.erb +++ b/app/views/organizations/setting.html.erb @@ -172,11 +172,10 @@ if ($("#subfield_name").val().trim() != "") $("#add_subfield_form").submit(); } - function add_org_subfield_subdomain(){ if ($("#subfield_name_subdomain").val().trim() != "") - alert("Test"); - $("#add_subfield_form_subdomain").submit(); + $("#add_subfield_form_subdomain").submit(); + $("#org_subfield_list").html('<%= escape_javascript(render(:partial => 'organizations/subfield_list', :locals => {:subfields => @organization.org_subfields.order("priority")} )) %>'); } var $is_exist = false; function apply_subdomain(id, domain){ diff --git a/app/views/sub_domains/_new.html.erb b/app/views/sub_domains/_new.html.erb index 510d469cf..ce0e802c4 100644 --- a/app/views/sub_domains/_new.html.erb +++ b/app/views/sub_domains/_new.html.erb @@ -23,8 +23,5 @@ \ No newline at end of file From 6c184b9248255d0d1ab8a7543f656fb27bf9554e Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 4 May 2016 16:17:37 +0800 Subject: [PATCH 048/257] =?UTF-8?q?=E9=A2=98=E5=BA=93=E7=9A=84=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 15 ++++++++++- app/views/users/_apply_for_homework.html.erb | 16 +++++++++++ app/views/users/_apply_homework.html.erb | 27 +++++++++++++++++++ app/views/users/_homework_repository.html.erb | 4 +-- app/views/users/_send_notice.html.erb | 18 +++++++++++++ app/views/users/_user_message_course.html.erb | 3 ++- app/views/users/apply_for_homework.js.erb | 16 ++++++----- app/views/users/apply_homework.js.erb | 10 +++++++ app/views/users/choose_user_course.js.erb | 13 ++++----- config/routes.rb | 1 + public/stylesheets/new_user.css | 1 + 11 files changed, 108 insertions(+), 16 deletions(-) create mode 100644 app/views/users/_apply_for_homework.html.erb create mode 100644 app/views/users/_apply_homework.html.erb create mode 100644 app/views/users/_send_notice.html.erb create mode 100644 app/views/users/apply_homework.js.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 2f1076971..a56b75ac8 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -396,6 +396,19 @@ class UsersController < ApplicationController end # end + #引用作业请求弹框 + def apply_homework + if User.current.logged? + @homework = HomeworkCommon.find params[:homework_id] + @state = 2 + else + @state = 1 + end + respond_to do |format| + format.js + end + end + #申请引用非公开作业 def apply_for_homework if User.current.logged? @@ -405,7 +418,7 @@ class UsersController < ApplicationController if ah.empty? ApplyHomework.create(:user_id => params[:id].to_i, :homework_common_id => params[:homework_id].to_i, :status => 1) Mailer.run.apply_for_homework_request(homework, User.current) - CourseMessage.create(:user_id => homework.user_id, :course_id => homework.course.id, :viewed => false,:course_message_id=>params[:homework_id].to_i,:course_message_type=>'HomeworkCommon',:status=>5,:apply_user_id=>params[:id].to_i) + CourseMessage.create(:user_id => homework.user_id, :course_id => homework.course.id, :viewed => false,:course_message_id=>params[:homework_id].to_i,:course_message_type=>'HomeworkCommon',:status=>5,:apply_user_id=>params[:id].to_i,:content=>params[:content]) @state = 2 @ah = ApplyHomework.where("user_id = ? and homework_common_id = ?", params[:id].to_i, params[:homework_id].to_i).first @homework = homework diff --git a/app/views/users/_apply_for_homework.html.erb b/app/views/users/_apply_for_homework.html.erb new file mode 100644 index 000000000..250cc5810 --- /dev/null +++ b/app/views/users/_apply_for_homework.html.erb @@ -0,0 +1,16 @@ +
    +
    +

    + <% if state == 2 %> + 请求已发送至<%=homework.user.show_name %>老师,希望他同意与你分享:) + <% elsif state == 3 %> + 您已发送过分享请求,请勿重复发送。 + <% end %> +

    + +
    +
    \ No newline at end of file diff --git a/app/views/users/_apply_homework.html.erb b/app/views/users/_apply_homework.html.erb new file mode 100644 index 000000000..9f909b7a4 --- /dev/null +++ b/app/views/users/_apply_homework.html.erb @@ -0,0 +1,27 @@ +
    +
    +

    请求分享

    +

    + 请求说明(可选): + +

    + +
    +
    + \ No newline at end of file diff --git a/app/views/users/_homework_repository.html.erb b/app/views/users/_homework_repository.html.erb index 93ee59138..738de678c 100644 --- a/app/views/users/_homework_repository.html.erb +++ b/app/views/users/_homework_repository.html.erb @@ -8,7 +8,7 @@ function (data) { } ); - } + };
    @@ -41,7 +41,7 @@
  • <% ah = ApplyHomework.where("user_id = ? and homework_common_id = ?", User.current.id, homework.id).first %> <% if ah.nil? %> - <%= link_to("请求分享", apply_for_homework_user_path(User.current.id,:homework_id => homework.id), :class => 'green_btn_share c_white', :remote => true) %> + <%= link_to("请求分享", apply_homework_user_path(User.current.id,:homework_id => homework.id), :class => 'green_btn_share c_white', :remote => true) %> <% elsif ah.status == 1 %> 待审核 <% elsif ah.status == 2 %> diff --git a/app/views/users/_send_notice.html.erb b/app/views/users/_send_notice.html.erb new file mode 100644 index 000000000..aede2a33b --- /dev/null +++ b/app/views/users/_send_notice.html.erb @@ -0,0 +1,18 @@ +
    +
    +

    + <% if status == 1 %> + 您的分享请求暂未通过审核,暂时不可发送至课程。 + <% elsif status == 2 %> + 您选中的作业目前为私有作业,请点击“请求分享”按钮向题目的作者发送分享请求吧!祝您成功:) + <% elsif status == 3 %> + 您的分享请求已被老师拒绝,不可发送至课程。 + <% end %> +

    + +
    +
    \ No newline at end of file diff --git a/app/views/users/_user_message_course.html.erb b/app/views/users/_user_message_course.html.erb index c0d7020b7..f3942d95e 100644 --- a/app/views/users/_user_message_course.html.erb +++ b/app/views/users/_user_message_course.html.erb @@ -237,7 +237,8 @@ ">您有了新的引用作业申请:
  • - <%=User.find(ma.apply_user_id).show_name+"申请引用作业\""+"#{HomeworkCommon.find(ma.course_message_id).name}"+"\"" %> + <% content = ma.content.nil? ? '' : ':'+ ma.content.to_s %> + <%=User.find(ma.apply_user_id).show_name+"申请引用作业\""+"#{HomeworkCommon.find(ma.course_message_id).name}"+"\"#{content}" %> diff --git a/app/views/users/apply_for_homework.js.erb b/app/views/users/apply_for_homework.js.erb index 69ad56cf3..ad3c6ed76 100644 --- a/app/views/users/apply_for_homework.js.erb +++ b/app/views/users/apply_for_homework.js.erb @@ -1,8 +1,12 @@ <% if @state == 1 %> -alert("您还未登录"); -<% elsif @state == 2 %> -alert("申请成功,请等待审核"); -$("#homework_apply_status_<%=@homework.id %>").html("待审核"); -<% elsif @state == 3 %> -alert("您已经发送过申请了,请耐心等待"); + hideModal(); + alert("您还未登录"); +<% elsif @state == 2 || @state == 3 %> + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/apply_for_homework', :locals => {:homework => @homework, :state => @state}) %>'); + showModal('ajax-modal', '500px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before("" + + ""); + $('#ajax-modal').parent().css("top","30%").css("left","30%").css("position","fixed").css("border","3px solid #269ac9"); + $("#homework_apply_status_<%=@homework.id %>").html("待审核"); <% end %> \ No newline at end of file diff --git a/app/views/users/apply_homework.js.erb b/app/views/users/apply_homework.js.erb new file mode 100644 index 000000000..9e9da1c7e --- /dev/null +++ b/app/views/users/apply_homework.js.erb @@ -0,0 +1,10 @@ +<% if @state == 1 %> + alert("您还未登录"); +<% elsif @state == 2 %> + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/apply_homework', :locals => {:homework => @homework}) %>'); + showModal('ajax-modal', '500px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before("" + + ""); + $('#ajax-modal').parent().css("top","30%").css("left","30%").css("position","fixed").css("border","3px solid #269ac9"); +<% end %> \ No newline at end of file diff --git a/app/views/users/choose_user_course.js.erb b/app/views/users/choose_user_course.js.erb index 51af05782..15926af5c 100644 --- a/app/views/users/choose_user_course.js.erb +++ b/app/views/users/choose_user_course.js.erb @@ -1,9 +1,10 @@ -<% if @status == 1 %> - alert("您的申请尚未通过审核,暂时不可发送至课程"); -<% elsif @status == 2 %> - alert("该作业是私有的,请先提交申请并通过审核后再发送"); -<% elsif @status == 3 %> - alert("您的申请已被拒绝,不可发送至课程"); +<% if @status == 1 || @status == 2 || @status == 3 %> + $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/send_notice', :locals => {:status => @status}) %>'); + showModal('ajax-modal', '500px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before("" + + ""); + $('#ajax-modal').parent().css("top","30%").css("left","30%").css("position","fixed").css("border","3px solid #269ac9"); <% else %> <% if params[:is_observe].nil? %> $("#ajax-modal").html('<%= escape_javascript( render :partial => 'users/send_homework_to_course', :locals => {:courses => @course, :user => @user, :send_id => @send_id}) %>'); diff --git a/config/routes.rb b/config/routes.rb index edfc5b1cc..0e67a806e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -515,6 +515,7 @@ RedmineApp::Application.routes.draw do match 'user_feedback4show', :to => 'users#user_feedback4show', :via => :get match 'user_visitorlist', :to => 'users#user_visitorlist', :via => :get match 'apply_for_homework', :to => 'users#apply_for_homework', :via => :get + match 'apply_homework', :to => 'users#apply_homework', :via => :get match 'user_homeworks', :to => 'users#user_homeworks', :via => :get match 'student_homeworks', :to => 'users#student_homeworks', :via => :get get 'user_import_homeworks' diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 4ec17159a..c452d014f 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -1492,4 +1492,5 @@ a.st_down{ display: block; width:8px; float:left; height:13px; background:url(.. a.st_img { display:block;width:32px; height:32px; border:1px solid #CCC; padding:1px;} .green_btn_share{ background:#28be6c; padding:2px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} +.apply_content{ border:1px solid #ddd;line-height: 16px; height:80px;width:420px; background:#fff; margin-left:5px; padding:5px; margin-bottom:10px;} From 71dcedc44308ed2743bc40c1692f738c93d632db Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 4 May 2016 16:24:42 +0800 Subject: [PATCH 049/257] =?UTF-8?q?=E5=8F=96=E6=B6=88=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E8=AF=84=E5=88=86=E7=9A=84=E7=BC=BA=E7=9C=81=E8=AF=84=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/student_work/_add_score.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/student_work/_add_score.html.erb b/app/views/student_work/_add_score.html.erb index 9d747790f..a2137d103 100644 --- a/app/views/student_work/_add_score.html.erb +++ b/app/views/student_work/_add_score.html.erb @@ -7,7 +7,7 @@

  • 评分: - +
  • From 9dc92fe817f934e66d40dcb64faded2ab82c2043 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Wed, 4 May 2016 16:28:40 +0800 Subject: [PATCH 050/257] =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 5 +- app/views/blogs/_article.html.erb | 90 ++++++++++---------- app/views/layouts/_user_courses.html.erb | 4 +- app/views/layouts/_user_projects.html.erb | 4 +- app/views/users/_course_boardlist.html.erb | 94 +++++++++++---------- app/views/users/_course_newslist.html.erb | 62 +++++++------- app/views/users/_project_boardlist.html.erb | 94 +++++++++++---------- app/views/users/_user_course_list.html.erb | 72 ++++++++-------- app/views/users/_user_project_list.html.erb | 50 ++++++----- 9 files changed, 249 insertions(+), 226 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 6cc94d5a7..54970add6 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2858,8 +2858,7 @@ class UsersController < ApplicationController sort_name = "updated_at" sort_type = @c_sort == 1 ? "asc" : "desc" - @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*").order("#{sort_name} #{sort_type}") - + @courses = @user.courses.visible.where("is_delete =?", 0).order("#{sort_name} #{sort_type}") # @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a #{sort_type}") #根据 作业+资源数排序 @@ -2904,7 +2903,7 @@ class UsersController < ApplicationController sort_name = "updated_on" sort_type = @c_sort == 1 ? "asc" : "desc" - @projects = @user.projects.visible.select("projects.*").order("#{sort_name} #{sort_type}") + @projects = @user.projects.visible.order("#{sort_name} #{sort_type}") # @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a #{sort_type}") #根据 问题+资源数排序 @project.project_score.issue_num @project.project_score.attach_num diff --git a/app/views/blogs/_article.html.erb b/app/views/blogs/_article.html.erb index ea494d0f9..4c00ee8a2 100644 --- a/app/views/blogs/_article.html.erb +++ b/app/views/blogs/_article.html.erb @@ -16,51 +16,55 @@
  • - <% topics.each do |activity| %> -
      -
    • - <% if activity.parent_id.nil? %> - <%= link_to activity.title.to_s.html_safe, user_blog_blog_comment_path(:user_id=>activity.author_id, :blog_id=>activity.blog.id,:id=>activity), :class=> "list-title fl" %> - <% else %> - <%= link_to activity.title.subject.to_s.html_safe, user_blog_blog_comment_path(:user_id=>activity.author_id, :blog_id=>activity.blog.id,:id=>activity), :class=> "list-title fl"%> - <% end %> - <% if activity.blog.homepage_id and activity.id == activity.blog.homepage_id %> - [已设为首页] - <% end %> - <% if activity.sticky == 1 %> - - <% end%> - <% if activity.locked %> - - <% end %> -
      -
    • - <% count=0 %> - <% if activity.parent %> - <% count=activity.parent.children.count%> - <% else %> - <% count=activity.children.count%> - <% end %> -
    • - 发帖时间:<%= format_time(activity.created_on) %> - 更新时间:<%= format_time(activity.updated_on) %> -

      - <%= count>0 ? "#{count}" :"0" %> - 回复 - | - <%= get_praise_num(activity) > 0 ? "#{get_praise_num(activity)}" :"0" %> - -

      -
    • + <% if topics.any? %> + <% topics.each do |activity| %> +
        +
      • + <% if activity.parent_id.nil? %> + <%= link_to activity.title.to_s.html_safe, user_blog_blog_comment_path(:user_id=>activity.author_id, :blog_id=>activity.blog.id,:id=>activity), :class=> "list-title fl" %> + <% else %> + <%= link_to activity.title.subject.to_s.html_safe, user_blog_blog_comment_path(:user_id=>activity.author_id, :blog_id=>activity.blog.id,:id=>activity), :class=> "list-title fl"%> + <% end %> + <% if activity.blog.homepage_id and activity.id == activity.blog.homepage_id %> + [已设为首页] + <% end %> + <% if activity.sticky == 1 %> + + <% end%> + <% if activity.locked %> + + <% end %> +
        +
      • + <% count=0 %> + <% if activity.parent %> + <% count=activity.parent.children.count%> + <% else %> + <% count=activity.children.count%> + <% end %> +
      • + 发帖时间:<%= format_time(activity.created_on) %> + 更新时间:<%= format_time(activity.updated_on) %> +

        + <%= count>0 ? "#{count}" :"0" %> + 回复 + | + <%= get_praise_num(activity) > 0 ? "#{get_praise_num(activity)}" :"0" %> + +

        +
      • +
        +
      + <% end %> +
      +
        + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %> +
      -
    +
    + <% else %> +

    <%= l(:label_no_data) %>

    <% end %> -
    -
      - <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %> -
    -
    -
    diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb index e740fe43d..07eb70f0f 100644 --- a/app/views/layouts/_user_courses.html.erb +++ b/app/views/layouts/_user_courses.html.erb @@ -75,10 +75,10 @@ <% end%> \ No newline at end of file From 36e6d44ac1e1102ab3ee22a3d6c681b83ec116f1 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 11:01:02 +0800 Subject: [PATCH 068/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=9A=84=E6=97=B6=E5=80=99=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_subfield_list.html.erb | 2 +- app/views/sub_domains/_new.html.erb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index 464fb66e4..32517d2be 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -102,7 +102,7 @@ <%= link_to("添加二级目录", new_org_subfield_sub_domain_path(:org_subfield_id => field.id, :field => field), :class => "linkGrey fr mr5", :remote => true) %>
    - <%= render :partial => 'organizations/subfield_sub_domains_list', :locals => {:field => field} %> + <%#= render :partial => 'organizations/subfield_sub_domains_list', :locals => {:field => field} %> <% end %> <% end %> diff --git a/app/views/sub_domains/_new.html.erb b/app/views/sub_domains/_new.html.erb index ce0e802c4..25b660750 100644 --- a/app/views/sub_domains/_new.html.erb +++ b/app/views/sub_domains/_new.html.erb @@ -9,10 +9,10 @@ -
  • - - -
  • + + + +
  • From 5f696fe123be6819f83a1556d2bfbc97a91bd6a6 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 11:06:11 +0800 Subject: [PATCH 069/257] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E5=B1=80=E9=83=A8=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_subfield_list.html.erb | 2 +- app/views/organizations/_subfield_sub_domains_list.html.erb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index 32517d2be..464fb66e4 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -102,7 +102,7 @@ <%= link_to("添加二级目录", new_org_subfield_sub_domain_path(:org_subfield_id => field.id, :field => field), :class => "linkGrey fr mr5", :remote => true) %>
    - <%#= render :partial => 'organizations/subfield_sub_domains_list', :locals => {:field => field} %> + <%= render :partial => 'organizations/subfield_sub_domains_list', :locals => {:field => field} %> <% end %> <% end %> diff --git a/app/views/organizations/_subfield_sub_domains_list.html.erb b/app/views/organizations/_subfield_sub_domains_list.html.erb index f68d06c1e..827e1464c 100644 --- a/app/views/organizations/_subfield_sub_domains_list.html.erb +++ b/app/views/organizations/_subfield_sub_domains_list.html.erb @@ -14,7 +14,7 @@
  • <%= subdomain.name %>
  • 新增
  • @@ -27,7 +27,7 @@
  • <%= subdomain.hide==0?"隐藏":"可见" %> | - <%= link_to "删除", org_subfield_sub_domain_path(subdomain), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> + <%= link_to "删除", setting_organization_path(@organization), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> | 编辑
  • From f4cb6f120c99af701966e473dff3314e5415969a Mon Sep 17 00:00:00 2001 From: cxt Date: Thu, 5 May 2016 11:09:53 +0800 Subject: [PATCH 070/257] =?UTF-8?q?=E5=90=8D=E7=89=87=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=85=B3=E6=B3=A8=E5=92=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=85=B3=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_watch_btn_for_picture.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/users/_watch_btn_for_picture.html.erb b/app/views/users/_watch_btn_for_picture.html.erb index be8673468..50f9b6240 100644 --- a/app/views/users/_watch_btn_for_picture.html.erb +++ b/app/views/users/_watch_btn_for_picture.html.erb @@ -2,8 +2,8 @@ <%= link_to("编辑资料", my_account_path, :class => "fl UsersEditBtn") %> <% else %> <%if(user.watched_by?(User.current))%> - <%= link_to "取消关注",Setting.host_name + "/watch?object_type=user&object_id="+user.id.to_s + "&target_id="+user.id.to_s,:class => "userFollow mr27 fl", :method => "delete",:remote => "true", :title => "取消关注"%> + <%= link_to "取消关注",watch_path(:host=> Setting.host_name,:object_type=> 'user',:object_id=>user.id.to_s,:target_id=>user.id.to_s),:class => "userFollow mr27 fl", :method => "delete",:remote => "true", :title => "取消关注"%> <% else %> - <%= link_to "添加关注",Setting.host_name + "/watch?object_type=user&object_id="+user.id.to_s + "&target_id="+user.id.to_s,:class => "userFollow mr27 fl", :method => "post",:remote => "true", :title => "添加关注"%> + <%= link_to "添加关注",watch_path(:host=> Setting.host_name,:object_type=> 'user',:object_id=>user.id.to_s,:target_id=>user.id.to_s),:class => "userFollow mr27 fl", :method => "post",:remote => "true", :title => "添加关注"%> <% end %> <% end %> \ No newline at end of file From 2920f21c956c00d52be8adb465a978165b284f90 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 11:28:28 +0800 Subject: [PATCH 071/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD=E8=87=AA=E5=8A=A8=E5=88=B7?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sub_domains_controller.rb | 8 ++++++++ .../_subfield_sub_domains_list.html.erb | 20 ++++++++++++++++++- app/views/sub_domains/update.js.erb | 3 +++ config/routes.rb | 2 +- 4 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 app/views/sub_domains/update.js.erb diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index d289c7e39..abf32e305 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -20,6 +20,14 @@ class SubDomainsController < ApplicationController end end + def update + @subdomain = SubDomain.find(params[:id]) + @subfield = OrgSubfield.find(params[:org_subfield_id]) + @organization = @subfield.organization + @subdomain.update_column(:name, params[:name]) + end + + def show render_404 # @subfield_content = @organization.org_subfields.order("priority") diff --git a/app/views/organizations/_subfield_sub_domains_list.html.erb b/app/views/organizations/_subfield_sub_domains_list.html.erb index 827e1464c..177e5ec0b 100644 --- a/app/views/organizations/_subfield_sub_domains_list.html.erb +++ b/app/views/organizations/_subfield_sub_domains_list.html.erb @@ -14,7 +14,7 @@
  • <%= subdomain.name %>
  • 新增
  • @@ -35,3 +35,21 @@ <% end %> <% end %> + + diff --git a/app/views/sub_domains/update.js.erb b/app/views/sub_domains/update.js.erb new file mode 100644 index 000000000..02810eee7 --- /dev/null +++ b/app/views/sub_domains/update.js.erb @@ -0,0 +1,3 @@ +$("#subsubdomain_show_<%= @subdomain.id %>").html("<%= @subdomain.name %>"); +$("#sub_field_left_lists").html(""); +$("#sub_field_left_lists").html("<%= escape_javascript(render :partial => 'organizations/org_left_subfield_list', :locals => {:organization => @organization}) %>"); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 70e684966..4ab7140d5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -118,7 +118,7 @@ RedmineApp::Application.routes.draw do end end - resources :sub_domains, :only => [:index, :new, :create, :show] do + resources :sub_domains, :only => [:index, :new, :create, :show, :update] do resources :sub_document_comments, :only => [:index, :new, :create, :show] do member do post 'add_reply' From 55718f2d44e7fa89a0b24d792a7c443089e40e80 Mon Sep 17 00:00:00 2001 From: cxt Date: Thu, 5 May 2016 11:34:31 +0800 Subject: [PATCH 072/257] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=A4=A7=E7=BA=B2=E6=97=B6=E8=8B=A5=E5=8D=9A=E5=AE=A2=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E5=A4=AA=E9=95=BF=E4=BB=A5=E7=9C=81=E7=95=A5=E5=8F=B7?= =?UTF-8?q?=E7=BB=93=E6=9D=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_course_outlines_list.html.erb | 2 +- public/stylesheets/public.css | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/courses/_course_outlines_list.html.erb b/app/views/courses/_course_outlines_list.html.erb index 42ce30113..2786e59bd 100644 --- a/app/views/courses/_course_outlines_list.html.erb +++ b/app/views/courses/_course_outlines_list.html.erb @@ -18,7 +18,7 @@
  • -
  • <%= article.title%>
  • +
  • <%= article.title%>
  • 发布时间:<%= format_date(article.created_at)%>
    <% end %> diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css index ac6425b94..790ca8691 100644 --- a/public/stylesheets/public.css +++ b/public/stylesheets/public.css @@ -181,6 +181,7 @@ h4{ font-size:14px; color:#3b3b3b;} .h70{ height:70px;} .h150{ height:150px;} .p10 {padding-left:10px; padding-right:10px;} +.mw220 {max-width: 220px !important;} .mw360 {max-width: 360px !important;} .mw380 {max-width: 380px !important;} .mw400 {max-width: 400px !important;} From 6d28d0becdbc7064abe61d0cde7f879204ec97c3 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 12:27:35 +0800 Subject: [PATCH 073/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E7=9A=84=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sub_domains_controller.rb | 6 ++++++ app/views/organizations/_subfield_sub_domains_list.html.erb | 2 +- app/views/sub_domains/destroy.js.erb | 4 ++++ config/routes.rb | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 app/views/sub_domains/destroy.js.erb diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index abf32e305..f2943236b 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -27,6 +27,12 @@ class SubDomainsController < ApplicationController @subdomain.update_column(:name, params[:name]) end + def destroy + @subdomain = SubDomain.find(params[:id]) + @subfield = OrgSubfield.find(params[:org_subfield_id]) + @organization = @subfield.organization + @subdomain.destroy + end def show render_404 diff --git a/app/views/organizations/_subfield_sub_domains_list.html.erb b/app/views/organizations/_subfield_sub_domains_list.html.erb index 177e5ec0b..42e7a8e55 100644 --- a/app/views/organizations/_subfield_sub_domains_list.html.erb +++ b/app/views/organizations/_subfield_sub_domains_list.html.erb @@ -27,7 +27,7 @@
  • <%= subdomain.hide==0?"隐藏":"可见" %> | - <%= link_to "删除", setting_organization_path(@organization), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> + <%= link_to "删除", org_subfield_sub_domain_path(subdomain, :org_subfield_id => subdomain.org_subfield.id), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> | 编辑
  • diff --git a/app/views/sub_domains/destroy.js.erb b/app/views/sub_domains/destroy.js.erb new file mode 100644 index 000000000..913c400f7 --- /dev/null +++ b/app/views/sub_domains/destroy.js.erb @@ -0,0 +1,4 @@ +$("#org_subfield_list").html(""); +$("#org_subfield_list").html("<%= escape_javascript(render :partial => 'organizations/subfield_list', :locals => {:subfields => @organization.org_subfields.order("priority") }) %>"); +$("#sub_field_left_lists").html(""); +$("#sub_field_left_lists").html("<%= escape_javascript(render :partial => 'organizations/org_left_subfield_list', :locals => {:organization => @organization}) %>"); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 4ab7140d5..575ab11f3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -118,7 +118,7 @@ RedmineApp::Application.routes.draw do end end - resources :sub_domains, :only => [:index, :new, :create, :show, :update] do + resources :sub_domains, :only => [:index, :new, :create, :show, :update, :destroy] do resources :sub_document_comments, :only => [:index, :new, :create, :show] do member do post 'add_reply' From 79cd36f297762803d967a26d6124b3030d5e6093 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 14:39:27 +0800 Subject: [PATCH 074/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sub_domains_controller.rb | 14 +++++------- .../_subfield_sub_domains_list.html.erb | 22 ++++++++++++++++--- .../sub_domains/domain_update_priority.js.erb | 2 ++ config/routes.rb | 3 +++ 4 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 app/views/sub_domains/domain_update_priority.js.erb diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index f2943236b..fd6b9e166 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -1,6 +1,6 @@ class SubDomainsController < ApplicationController layout 'base_org' - before_filter :find_org_subfield_and_subdomain, :only => [:show, :index] + before_filter :find_org_subfield_and_subdomain, :only => [:show, :index, :domain_update_priority, :destroy, :update] def new @subdomain = SubDomain.new @@ -13,7 +13,7 @@ class SubDomainsController < ApplicationController @res = true @subfield = OrgSubfield.find(params[:org_subfield_id]) @organization = @subfield.organization - @subdomain = SubDomain.create(:name => params[:name], :org_subfield_id => params[:org_subfield_id],:priority => @subfield.sub_domains.blank? ? 1.1 : @subfield.sub_domains.order("priority").last.priority + 0.1) + @subdomain = SubDomain.create(:name => params[:name], :org_subfield_id => params[:org_subfield_id], :priority => @subfield.sub_domains.blank? ? 1 : @subfield.sub_domains.order("priority").last.priority + 1) @subdomain.update_column(:field_type, params[:field_type]) else @res = false @@ -21,16 +21,14 @@ class SubDomainsController < ApplicationController end def update - @subdomain = SubDomain.find(params[:id]) - @subfield = OrgSubfield.find(params[:org_subfield_id]) - @organization = @subfield.organization @subdomain.update_column(:name, params[:name]) end + def domain_update_priority + @subdomain.update_attribute(:priority, params[:priority].to_i) + end + def destroy - @subdomain = SubDomain.find(params[:id]) - @subfield = OrgSubfield.find(params[:org_subfield_id]) - @organization = @subfield.organization @subdomain.destroy end diff --git a/app/views/organizations/_subfield_sub_domains_list.html.erb b/app/views/organizations/_subfield_sub_domains_list.html.erb index 42e7a8e55..891b0aede 100644 --- a/app/views/organizations/_subfield_sub_domains_list.html.erb +++ b/app/views/organizations/_subfield_sub_domains_list.html.erb @@ -4,11 +4,11 @@
    • -
      +
      <%= subdomain.priority %>
      -
    • @@ -52,4 +52,20 @@ $(edit_id).hide(); // $(edit_id).focus(); } + + + function domain_update_priority(show_id, edit_id, field_id, domain_id, input_value){ + var re = /^[0-9]*[1-9]*[0-9]$/ + if(re.test(input_value) && $(show_id).html().trim() != input_value.trim() && input_value.trim() != ''){ + $.ajax({ + url: "/org_subfields/" + field_id + "/sub_domains/" + domain_id + "/domain_update_priority?priority=" + input_value, + type: 'put' + }); + } + else{ + $(edit_id).children("input").val($(show_id).html().trim()); + } + $(show_id).show(); + $(edit_id).hide(); + } diff --git a/app/views/sub_domains/domain_update_priority.js.erb b/app/views/sub_domains/domain_update_priority.js.erb new file mode 100644 index 000000000..475649aac --- /dev/null +++ b/app/views/sub_domains/domain_update_priority.js.erb @@ -0,0 +1,2 @@ +$("#org_subfield_list").html("<%= escape_javascript(render :partial => 'organizations/subfield_list',:locals => {:subfields => @organization.org_subfields.order("priority")}) %>"); +$("#sub_field_left_lists").html("<%= escape_javascript(render :partial => 'organizations/org_left_subfield_list', :locals => {:organization => @organization}) %>"); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 575ab11f3..556d8b233 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -135,6 +135,9 @@ RedmineApp::Application.routes.draw do collection do end member do + match 'domain_update_sub_dir', :via => [:put] + match 'domain_update_priority', :via => [:put] + match 'domain_update_status', :via => [:post] end end From b82a1c1162a9e64f6c0924db7acaf6fe91f66aaa Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 5 May 2016 14:52:58 +0800 Subject: [PATCH 075/257] =?UTF-8?q?=E8=AE=A8=E8=AE=BA=E5=8C=BA=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=9B=9E=E5=A4=8D=E6=95=B0=E7=9A=84=E4=B8=80=E4=B8=AA?= =?UTF-8?q?BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/boards_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index 1d7e94c06..9a72bb4df 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -125,7 +125,7 @@ class BoardsController < ApplicationController if @order.to_i == 2 @type = 2 @topics.each do |topic| - topic[:infocount] = get_praise_num(topic) + (topic.parent ? x.parent.children.count : topic.children.count) + topic[:infocount] = get_praise_num(topic) + (topic.parent ? topic.parent.children.count : topic.children.count) if topic[:infocount] < 0 topic[:infocount] = 0 end From 29c18518e776fe5df6139382789ca277093de561 Mon Sep 17 00:00:00 2001 From: cxt Date: Thu, 5 May 2016 15:04:37 +0800 Subject: [PATCH 076/257] =?UTF-8?q?=E6=95=99=E5=B8=88=E6=9C=89=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=88=A0=E9=99=A4=E8=AF=BE=E7=A8=8B=E5=86=85=E6=95=99?= =?UTF-8?q?=E8=BE=85=E5=92=8C=E5=AD=A6=E7=94=9F=E4=B8=8A=E4=BC=A0=E7=9A=84?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E7=9A=84TAG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/tags/_tag_list.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/tags/_tag_list.html.erb b/app/views/tags/_tag_list.html.erb index c8e91c1a2..c0b4176c3 100644 --- a/app/views/tags/_tag_list.html.erb +++ b/app/views/tags/_tag_list.html.erb @@ -12,7 +12,7 @@ :taggable_id => obj.id, :taggable_type => object_flag %> <% end %> <% when '6' %> - <% if obj.author_id == User.current.id || User.current.admin?%> + <% if obj.author_id == User.current.id || User.current.admin? || (obj.container_type == 'Course' && User.current.allowed_to?(:as_teacher,obj.course)) %> <% select_tag_name ||= ""%> <%= link_to 'x', :controller => "tags", :action => "remove_tag_new", :remote => true, :tag_name => tag, :taggable_id => obj.id, :taggable_type => object_flag, :select_tag_name => select_tag_name %> From e0c011948c9eb65a946e5bed4c9b3d820c64fdba Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 15:16:14 +0800 Subject: [PATCH 077/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E7=9A=84=E9=9A=90=E8=97=8F=E5=92=8C=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/sub_domains_controller.rb | 11 ++++++++++- .../_subfield_sub_domains_list.html.erb | 15 ++++++++++++++- app/views/sub_domains/hide_sub_domain.js.erb | 2 ++ app/views/sub_domains/show_sub_domain.js.erb | 2 ++ config/routes.rb | 2 ++ 5 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 app/views/sub_domains/hide_sub_domain.js.erb create mode 100644 app/views/sub_domains/show_sub_domain.js.erb diff --git a/app/controllers/sub_domains_controller.rb b/app/controllers/sub_domains_controller.rb index fd6b9e166..e32935789 100644 --- a/app/controllers/sub_domains_controller.rb +++ b/app/controllers/sub_domains_controller.rb @@ -1,6 +1,6 @@ class SubDomainsController < ApplicationController layout 'base_org' - before_filter :find_org_subfield_and_subdomain, :only => [:show, :index, :domain_update_priority, :destroy, :update] + before_filter :find_org_subfield_and_subdomain, :only => [:show, :index, :domain_update_priority, :destroy, :update, :hide_sub_domain, :show_sub_domain] def new @subdomain = SubDomain.new @@ -42,6 +42,15 @@ class SubDomainsController < ApplicationController end + def hide_sub_domain + @subdomain.update_attribute(:hide, 1) + end + + def show_sub_domain + @subdomain.update_attribute(:hide, 0) + end + + private def find_org_subfield_and_subdomain @subfield = OrgSubfield.find(params[:org_subfield_id]) diff --git a/app/views/organizations/_subfield_sub_domains_list.html.erb b/app/views/organizations/_subfield_sub_domains_list.html.erb index 891b0aede..10ee47e72 100644 --- a/app/views/organizations/_subfield_sub_domains_list.html.erb +++ b/app/views/organizations/_subfield_sub_domains_list.html.erb @@ -25,7 +25,7 @@
    • <%#= link_to "隐藏", hide_org_subsubdomain_organizations_path(subdomain), :method => 'post', :remote => true, :id => "hide_#{subdomain.id}", :class => "linkBlue fr mr5" %>
    • - <%= subdomain.hide==0?"隐藏":"可见" %> + <%= subdomain.hide==0?"隐藏":"可见" %> | <%= link_to "删除", org_subfield_sub_domain_path(subdomain, :org_subfield_id => subdomain.org_subfield.id), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> | @@ -68,4 +68,17 @@ $(show_id).show(); $(edit_id).hide(); } + + function hide_domain(content, field_id, domain_id){ + if (content.text() == '隐藏') + $.ajax({ + url: "/org_subfields/" + field_id + "/sub_domains/" + domain_id + "/hide_sub_domain", + type: "post" + }); + else + $.ajax({ + url: "/org_subfields/" + field_id + "/sub_domains/" + domain_id + "/show_sub_domain", + type: "post" + }); + } diff --git a/app/views/sub_domains/hide_sub_domain.js.erb b/app/views/sub_domains/hide_sub_domain.js.erb new file mode 100644 index 000000000..e09629dcf --- /dev/null +++ b/app/views/sub_domains/hide_sub_domain.js.erb @@ -0,0 +1,2 @@ +$("#hide_<%= @subfield.id %>").text("可见"); +$("#org_subfield_<%= @subfield.id %>").css("display", "none"); \ No newline at end of file diff --git a/app/views/sub_domains/show_sub_domain.js.erb b/app/views/sub_domains/show_sub_domain.js.erb new file mode 100644 index 000000000..e09629dcf --- /dev/null +++ b/app/views/sub_domains/show_sub_domain.js.erb @@ -0,0 +1,2 @@ +$("#hide_<%= @subfield.id %>").text("可见"); +$("#org_subfield_<%= @subfield.id %>").css("display", "none"); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 556d8b233..0816dadc7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -138,6 +138,8 @@ RedmineApp::Application.routes.draw do match 'domain_update_sub_dir', :via => [:put] match 'domain_update_priority', :via => [:put] match 'domain_update_status', :via => [:post] + post 'hide_sub_domain' + post 'show_sub_domain' end end From d0f97275cc06c1615daa817696279e8e73723003 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 5 May 2016 16:20:49 +0800 Subject: [PATCH 078/257] =?UTF-8?q?=E7=BB=84=E7=BB=87=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E6=A0=8F=E7=9B=AE=E6=98=BE=E9=9A=90=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_org_left_subfield_list.html.erb | 17 ++++++++++++++++- public/images/homepage_icon.png | Bin 16534 -> 16706 bytes public/stylesheets/org2.css | 2 +- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 17515c86f..a37d176eb 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -43,6 +43,13 @@ $(this).prev().css("color","#808080"); $(this).css("z-index", "1"); }) + + //二级菜单滑动时箭头方向控制 + $(".homepageLeftMenuMoreIcon").toggle(function(){ + $(".homepageLeftMenuMoreIcon").css("background","url(/images/homepage_icon.png) 100px -624px no-repeat"); + },function(){ + $(".homepageLeftMenuMoreIcon").css("background","url(/images/homepage_icon.png) -74px -240px no-repeat"); + }); }) @@ -104,11 +111,19 @@ <%=link_to "", new_organization_org_document_comment_path(organization, :field_id => field.id), :method => "get", :class => "homepageMenuSetting fr", :title => "发布帖子" %> <% end %>
    -
    + + + + <% unless field.sub_domains.count == 0 %> +
  • + +
  • + <% end %> + <% else %> <% if !field.subfield_subdomain_dir.nil? %> <% if !request.local? and Secdomain.where("sub_type=2 and pid=?", organization.id).count > 0 and Secdomain.where("sub_type=2 and pid=?", organization.id).map(&:subname).include?(request.subdomain) %> diff --git a/public/images/homepage_icon.png b/public/images/homepage_icon.png index 9f2212ff0e3121e121e2412d4e1c2810fa1f739f..4c05fce918c6129f120aa9650d3bf74d971ddda7 100644 GIT binary patch delta 15498 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 diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 52dde9ad4..ff058438c 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -65,7 +65,7 @@ a.sn-link-select {color:#809df9;} .sn-logo-add{ display:block; top:10px; left:0px; position:absolute; width:20px; height:20px;background:url(../images/default_blank/icons-add.png) -0px -3px no-repeat;} .sn-search-input {width:328px; height:40px; font-size:16px; color:#ccc; padding-left:10px; border:1px solid #ccc; border-right:none; float:right; background-color:#fff; outline:none;} a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left:none; float:right; outline:none; background:url(../images/sn_search_icon.jpg) 0 3px no-repeat;} -.sn-nav {width:1200px; height:55px; margin:0 auto; font-size:16px; position:relative; line-height:1;} +.sn-nav {width:1200px; height:55px; margin:0 auto; font-size:16px; position:relative; line-height:1; overflow:hidden;} .nav-element-default, .nav-element {float:left; padding-top:11px; padding-bottom:12px; margin-right:50px;} .nav-element-default a, .nav-element a {display:inline-block; padding:8px 6px; border-radius:5px;} .nav-element-default a:hover, .nav-element a:hover {background-color:#809df9;} From 02d61860454cc9cd5406353d8626f88188613c88 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 16:43:20 +0800 Subject: [PATCH 079/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E8=AE=A8=E8=AE=BA=E5=B8=96=E5=AD=90=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sub_document_comments_controller.rb | 15 +++++++-------- .../_show_sub_document.html.erb | 4 ++-- app/views/sub_document_comments/destroy.js.erb | 6 ++++++ config/routes.rb | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 app/views/sub_document_comments/destroy.js.erb diff --git a/app/controllers/sub_document_comments_controller.rb b/app/controllers/sub_document_comments_controller.rb index e5a004bf8..9bd0db8de 100644 --- a/app/controllers/sub_document_comments_controller.rb +++ b/app/controllers/sub_document_comments_controller.rb @@ -1,5 +1,5 @@ class SubDocumentCommentsController < ApplicationController - before_filter :find_subdomain_and_subfield, :only => [:new, :create, :show, :index] + before_filter :find_subdomain_and_subfield, :only => [:new, :create, :show, :index, :destroy] before_filter :find_subfield_content, :only => [:show, :index] helper :attachments,:organizations layout 'base_sub_domain' @@ -122,14 +122,13 @@ class SubDocumentCommentsController < ApplicationController end def destroy - @sub_document_comment = OrgDocumentComment.find(params[:id]) - org = @sub_document_comment.organization - if @sub_document_comment.id == org.home_id - org.update_attributes(:home_id => nil) - end - if @sub_document_comment.destroy - end + @sub_document_comment = SubDocumentComment.find(params[:id]) + @sub_document_comment.destroy + rescue ActiveRecord::RecordNotFound respond_to do |format| + # format.html{ + # redirect_to org_subfield_sub_domain_sub_document_comments_path(:id => params[:sub_domain_id], :org_subfield_id => params[:org_subfield_id]) + # } format.js end end diff --git a/app/views/sub_document_comments/_show_sub_document.html.erb b/app/views/sub_document_comments/_show_sub_document.html.erb index 83607f046..c71e14a0c 100644 --- a/app/views/sub_document_comments/_show_sub_document.html.erb +++ b/app/views/sub_document_comments/_show_sub_document.html.erb @@ -46,10 +46,10 @@
  • - <%#= link_to "编辑文章", org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id=> params[:org_subfield_id], :sub_domain_id => document.sub_domain.id, :flag => flag), :method => 'edit', :class => "postOptionLink" %> + <%= link_to "编辑文章", org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id=> params[:org_subfield_id], :sub_domain_id => document.sub_domain.id, :flag => flag), :method => 'edit', :class => "postOptionLink" %>
  • - <%#= link_to "删除文章", org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id=> params[:org_subfield_id], :sub_domain_id => document.sub_domain.id, :flag => flag), :method => 'delete', + <%= link_to "删除文章", org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id=> params[:org_subfield_id], :sub_domain_id => document.sub_domain.id, :flag => flag), :method => 'delete', :data => {:confirm => l(:text_are_you_sure)}, :remote => true, :class => 'postOptionLink' %>
  • diff --git a/app/views/sub_document_comments/destroy.js.erb b/app/views/sub_document_comments/destroy.js.erb new file mode 100644 index 000000000..cc63e66d8 --- /dev/null +++ b/app/views/sub_document_comments/destroy.js.erb @@ -0,0 +1,6 @@ +//location.reload(); +<% if params[:detail_page] %> +window.location.href = '<%= org_subfield_sub_domain_sub_document_comments_path(@subdomain, :org_subfield_id => @org_subfield.id)%>'; +<% else %> +window.location.reload(); +<% end %> \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 0816dadc7..14e3b409d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -119,7 +119,7 @@ RedmineApp::Application.routes.draw do end resources :sub_domains, :only => [:index, :new, :create, :show, :update, :destroy] do - resources :sub_document_comments, :only => [:index, :new, :create, :show] do + resources :sub_document_comments, :only => [:index, :new, :create, :show, :update, :destroy] do member do post 'add_reply' get 'quote' From 3565e0bf6fca8301938631a7dba0ae363258ce54 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 5 May 2016 16:59:06 +0800 Subject: [PATCH 080/257] =?UTF-8?q?base=E5=B7=A6=E4=BE=A7=E9=93=BE?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../organizations/_org_left_subfield_list.html.erb | 11 +++-------- .../sub_document_comments/_show_sub_document.html.erb | 4 ++-- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index a37d176eb..422b5aca8 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -96,22 +96,17 @@ <% if !field.subfield_subdomain_dir.nil? %> <% if !request.local? and Secdomain.where("sub_type=2 and pid=?", organization.id).count > 0 and Secdomain.where("sub_type=2 and pid=?", organization.id).map(&:subname).include?(request.subdomain) %> - <%= field.name %> - <%#= link_to "#{field.name}", show_subfield_without_id_path(:sub_dir_name => field.subfield_subdomain_dir.name), :class => "homepageMenuText", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> + <%= link_to "#{field.name}", show_subfield_without_id_path(:sub_dir_name => field.subfield_subdomain_dir.name), :class => "homepageMenuText", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> <% else %> - <%= field.name %> - <%#= link_to "#{field.name}", show_org_subfield_organization_path(:id => organization.id, :sub_dir_name => field.subfield_subdomain_dir.name), :class => "homepageMenuText", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> + <%= link_to "#{field.name}", show_org_subfield_organization_path(:id => organization.id, :sub_dir_name => field.subfield_subdomain_dir.name), :class => "homepageMenuText", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> <% end %> <% else %> - <%= field.name %> - <%#= link_to "#{field.name}", organization_path(organization, :org_subfield_id => field.id), :class => "homepageMenuText", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> + <%= link_to "#{field.name}", organization_path(organization, :org_subfield_id => field.id), :class => "homepageMenuText", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> <% end %> - <% if User.current.logged? and User.current.admin_of_org?(organization) %> <%=link_to "", new_organization_org_document_comment_path(organization, :field_id => field.id), :method => "get", :class => "homepageMenuSetting fr", :title => "发布帖子" %> <% end %>
    - @@ -168,7 +168,7 @@ <%= link_to activity.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-title sn-hidden" %>
    - <%=render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => activity.id, :content=> activity.content, :maxheight=>54} %> + <%=render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => activity.id, :content=> activity.content, :maxheight=>54, :maxwordsnum => 28} %> <%#= link_to activity.content.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %>
    <%#= link_to "更多", news_url_in_org(activity.id), :class => "more-btn", :target => "_blank" %> @@ -214,7 +214,7 @@ <%= link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "resources-title sn-hidden" %>
    - <%=render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> document.content, :maxheight=>54} %> + <%=render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> document.content, :maxheight=>54, :maxwordsnum => 28} %> <%#= link_to document.content.to_s.html_safe, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "resources-tag" %>
    <%#= link_to "更多", org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :class => "more-btn", :target => "_blank" %> @@ -244,7 +244,7 @@ <% end %>
    - <%= render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> content, :maxheight=>54} %> + <%= render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> content, :maxheight=>54, :maxwordsnum => 28} %> <%#= link_to content.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-tag" %>
    <%#= link_to "更多", board_message_url_in_org(message.board.id,message.id), :class => "more-btn", :target => "_blank" %> @@ -264,7 +264,7 @@ <% end %>
    - <%= render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> content, :maxheight=>54} %> + <%= render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> content, :maxheight=>54, :maxwordsnum => 28} %> <%#= link_to content.to_s.html_safe, board_message_path(message.board,activity), :target => '_blank', :class => "resources-tag" %>
    <%#= link_to "更多", board_message_path(message.board,activity), :class => "more-btn", :target => "_blank" %> @@ -285,7 +285,7 @@
    <%#= link_to news.description.to_s.html_safe, news_path(news), :target => '_blank', :class => "resources-tag" %> - <%= render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> content, :maxheight=>54} %> + <%= render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> content, :maxheight=>54, :maxwordsnum => 28, :maxwordsnum => 28} %>
    <%= link_to "更多", news_path(news), :class => "more-btn", :target => "_blank" %>
    From f4a5aeec07934271429a6f5b141b3b6e1fe7b0d7 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 18:29:26 +0800 Subject: [PATCH 121/257] =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/stylesheets/org2.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 9e31bd047..4b5d31098 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -122,7 +122,7 @@ a.sn-search-button {width:53px; height:40px; border:1px solid #ccc; border-left: .h2-title a:hover.more{ color:#24366e;} .sn-news-bigbox{ padding:0px 26px 0px 18px; margin:18px 0 26px; border-right:1px solid #ebebeb;} .sn-news-bigbox a.h3-title{ font-size:18px; width:380px; display:block;overflow:hidden;white-space:nowrap; text-overflow:ellipsis;} -.sn-news-bigbox .sn-news-txt{ width:380px; height:182px; color:#666; overflow:hidden;} +.sn-news-bigbox .sn-news-txt{ width:380px; height:180px; color:#666; overflow:hidden;} .sn-news-txt img {width:100%;} .sn-news-bigbox .sn-news-bigimg{ width:380px; height:165px;} .txt-grey{ color:#999;} From c6c3625029294972db368b8d79fe928109f8d5d0 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 6 May 2016 18:47:38 +0800 Subject: [PATCH 122/257] =?UTF-8?q?=E9=A2=98=E7=9B=AE=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E5=86=85=E5=AE=B9=E8=BE=83=E9=95=BF=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=BC=9A=E5=AF=BC=E8=87=B4=E8=A2=AB=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E8=80=85=E6=94=B6=E4=B8=8D=E5=88=B0=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/course_message.rb | 2 +- app/views/users/_apply_homework.html.erb | 37 +++++++------------ config/routes.rb | 3 +- ...506104128_change_course_messages_cloumn.rb | 8 ++++ db/schema.rb | 4 +- 5 files changed, 26 insertions(+), 28 deletions(-) create mode 100644 db/migrate/20160506104128_change_course_messages_cloumn.rb diff --git a/app/models/course_message.rb b/app/models/course_message.rb index 07bfb22de..703da936b 100644 --- a/app/models/course_message.rb +++ b/app/models/course_message.rb @@ -15,7 +15,7 @@ class CourseMessage < ActiveRecord::Base validates :course_id,presence: true validates :course_message_id,presence: true validates :course_message_type, presence: true - validates_length_of :content, :maximum => 100 + #validates_length_of :content, :maximum => 100 after_create :add_user_message def add_user_message diff --git a/app/views/users/_apply_homework.html.erb b/app/views/users/_apply_homework.html.erb index 9f909b7a4..cd906fc8f 100644 --- a/app/views/users/_apply_homework.html.erb +++ b/app/views/users/_apply_homework.html.erb @@ -1,27 +1,16 @@
    -

    请求分享

    -

    - 请求说明(可选): - -

    - + <%= form_tag(apply_for_homework_user_path(:id=>User.current.id,:homework_id=>homework.id), :multipart => true,:remote => true,:name=>"apply_for_homework_form",:id=>'apply_for_homework_form') do %> +

    请求分享

    +

    + 请求说明(可选): + +

    + + <% end %>
    -
    - \ No newline at end of file +
    \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index e058e72d0..afefc9e3c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -516,7 +516,7 @@ RedmineApp::Application.routes.draw do match 'user_project_activities', :to => 'users#user_project_activities', :via => :get match 'user_feedback4show', :to => 'users#user_feedback4show', :via => :get match 'user_visitorlist', :to => 'users#user_visitorlist', :via => :get - match 'apply_for_homework', :to => 'users#apply_for_homework', :via => :get + match 'apply_for_homework', :to => 'users#apply_for_homework', :via => :post match 'apply_homework', :to => 'users#apply_homework', :via => :get match 'user_homeworks', :to => 'users#user_homeworks', :via => :get match 'student_homeworks', :to => 'users#student_homeworks', :via => :get @@ -583,6 +583,7 @@ RedmineApp::Application.routes.draw do get 'user_homework_type' get 'user_ref_homework_search' get 'show_homework_detail' + post 'apply_for_homework' # end end #resources :blogs diff --git a/db/migrate/20160506104128_change_course_messages_cloumn.rb b/db/migrate/20160506104128_change_course_messages_cloumn.rb new file mode 100644 index 000000000..39e882b39 --- /dev/null +++ b/db/migrate/20160506104128_change_course_messages_cloumn.rb @@ -0,0 +1,8 @@ +class ChangeCourseMessagesCloumn < ActiveRecord::Migration + def up + change_column :course_messages, :content, :text + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index 4e44a2638..3ffa35872 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 => 20160429030819) do +ActiveRecord::Schema.define(:version => 20160506104128) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -485,7 +485,7 @@ ActiveRecord::Schema.define(:version => 20160429030819) do t.integer "viewed" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false - t.string "content" + t.text "content" t.integer "status" t.integer "apply_user_id" t.integer "apply_result" From a267c75ec764cc6e30f114bb061fa6bc38771af5 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 18:50:57 +0800 Subject: [PATCH 123/257] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=9A=84=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E5=8F=AF=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_org2.html.erb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/layouts/base_org2.html.erb b/app/views/layouts/base_org2.html.erb index 2519faefc..2d8878438 100644 --- a/app/views/layouts/base_org2.html.erb +++ b/app/views/layouts/base_org2.html.erb @@ -82,16 +82,16 @@ <% @subfield_content.each do |field| %> <% if is_default_field?(field) %> <% case field.name %> - <% when 'activity' %> - <% when 'course' %> - <% when 'project' %> - <% end %> @@ -104,7 +104,7 @@ From 262fd8bb651d750e165a5e99d7c215b8473cbc6e Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 6 May 2016 18:54:51 +0800 Subject: [PATCH 124/257] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E7=A6=81=E7=94=A8=E5=8C=BF=E8=AF=84=E7=9A=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E6=97=B6=E4=BC=9A=E5=BC=B9=E5=87=BA=E5=8C=BF=E8=AF=84=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E7=9A=84=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/student_work/new.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/student_work/new.html.erb b/app/views/student_work/new.html.erb index a7e223ac1..453f717c9 100644 --- a/app/views/student_work/new.html.erb +++ b/app/views/student_work/new.html.erb @@ -5,7 +5,7 @@ <% end %> - + @@ -179,13 +179,15 @@
    + +
    + + <%#= call_hook :view_layouts_base_body_bottom %> - - + + + diff --git a/app/views/layouts/base_sub_domain.html.erb b/app/views/layouts/base_sub_domain.html.erb index 9a04f4993..49f30796b 100644 --- a/app/views/layouts/base_sub_domain.html.erb +++ b/app/views/layouts/base_sub_domain.html.erb @@ -9,7 +9,7 @@ <%= favicon %> <%= javascript_heads %> <%= heads_for_theme %> - <%= stylesheet_link_tag 'org2','jquery/jquery-ui-1.9.2' %> + <%= stylesheet_link_tag 'org_new_style','jquery/jquery-ui-1.9.2', 'org2' %> <%= javascript_include_tag 'cookie','project', 'organization','header','prettify','select_list_move','org'%> <%= javascript_include_tag 'attachments' %> <%#= call_hook :view_layouts_base_html_head %> @@ -27,7 +27,7 @@ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} }); - + \ No newline at end of file From b7d87966dd586b84f0df62adba27aee4d902118b Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 21:26:28 +0800 Subject: [PATCH 134/257] =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sub_document_comments/_show_sub_document_newstyle.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb index 99c2f3639..0af0bb698 100644 --- a/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb +++ b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb @@ -13,7 +13,7 @@ <% documents.each do |document| %>
  • <%=link_to document.title, org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id => @org_subfield, :sub_domain_id => @subdomain), :class => "sn-newslist-titile fl", :target => "_blank" %> - <%= time_from_now(document.created_at) %> + <%= format_date(document.created_at) %> 回复(<%= document.children.count %>)
    From ece84e912d5378c15ccf4baa8979c411bc9ae210 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 21:32:37 +0800 Subject: [PATCH 135/257] =?UTF-8?q?=E9=BC=A0=E6=A0=87=E7=BB=8F=E8=BF=87?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_subfield_list.html.erb | 4 ++-- app/views/organizations/_subfield_sub_domains_list.html.erb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index 851d0671f..91444d7db 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -21,7 +21,7 @@
  • -
  • <%= name %>
  • +
  • <%= name %>
  • 默认
  • <% if field.name == "activity" %> @@ -52,7 +52,7 @@
  • - + diff --git a/app/views/organizations/_subfield_sub_domains_list.html.erb b/app/views/organizations/_subfield_sub_domains_list.html.erb index eb7df27b5..89d88237f 100644 --- a/app/views/organizations/_subfield_sub_domains_list.html.erb +++ b/app/views/organizations/_subfield_sub_domains_list.html.erb @@ -12,7 +12,7 @@
  • -
    <%= subdomain.name %>
    +
    <%= subdomain.name %>
    From 350e3f8eb44c45232c9793a19ec65090cd7ca305 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 6 May 2016 21:34:08 +0800 Subject: [PATCH 136/257] =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E9=A2=9C=E8=89=B2?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=B2=A1=E6=94=B9=E5=A5=BD=E6=9A=82=E6=97=B6?= =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=B9=8B=E5=89=8D=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/kindeditor/plugins/table/table.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/assets/kindeditor/plugins/table/table.js b/public/assets/kindeditor/plugins/table/table.js index be386f7cc..9eb29fb30 100644 --- a/public/assets/kindeditor/plugins/table/table.js +++ b/public/assets/kindeditor/plugins/table/table.js @@ -283,7 +283,7 @@ KindEditor.plugin('table', function(K) { for (var i = 0; i < rows; i++) { html += ''; for (var j = 0; j < cols; j++) { - html += '' + (K.IE ? ' ' : '
    ') + ''; + html += '' + (K.IE ? ' ' : '
    ') + ''; } html += ''; } From b8f76724243a37c637fc3e69c2316e4d6e80d1b9 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 6 May 2016 22:02:45 +0800 Subject: [PATCH 137/257] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E7=9A=84=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=88=B0=E4=BD=9C=E4=B8=9A=E5=8A=A8=E6=80=81=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 7 ++++++- app/helpers/application_helper.rb | 8 ++++++++ app/views/organizations/_org_course_homework.html.erb | 3 ++- app/views/users/_course_homework.html.erb | 3 ++- app/views/users/_user_homework_detail.html.erb | 3 ++- 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 8da82afd3..57fa7ada5 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -391,12 +391,17 @@ class HomeworkCommonController < ApplicationController unless homeworks.nil? homeworks.each do |h| if h.homework_type == 3 - student_works = h.student_works.where("project_id != 0") + student_works = h.student_work_projects.where("is_leader = 1") time = h.updated_at unless student_works.nil? student_works.each do |s| project = Project.find s.project_id unless project.nil? && project.gpid.nil? + project_time=project.updated_on + project_time=ForgeActivity.where("project_id=?",project.id).last.updated_at if ForgeActivity.where("project_id=?",project.id).last + if time < project_time + time = project_time + end begin # gitlab端获取默认分支 g = Gitlab.client diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index fc0cf99e1..ca81ac1c1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2960,6 +2960,14 @@ int main(int argc, char** argv){ return sort_projects end end + + def project_sort_first projects + unless projects.empty? + project_ids = '('+projects.map{|pro|pro.project_id}.join(',')+')' + sort_projects = ForgeActivity.find_by_sql("SELECT updated_at,user_id, project_id FROM forge_activities WHERE project_id IN #{project_ids} ORDER BY updated_at DESC limit 1") + return sort_projects + end + end end def user_url_in_org(user_id) diff --git a/app/views/organizations/_org_course_homework.html.erb b/app/views/organizations/_org_course_homework.html.erb index 33e2835dd..068d50437 100644 --- a/app/views/organizations/_org_course_homework.html.erb +++ b/app/views/organizations/_org_course_homework.html.erb @@ -182,7 +182,8 @@ <% sort_projects = project_sort_update projects %>
    - # <%=time_from_now sort_projects.first.updated_at %><%= link_to User.find(sort_projects.first.user_id).show_name, user_activities_url_in_org(sort_projects.first.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新: + <% first_pro = project_sort_first(projects).first %> + # <%=time_from_now first_pro.first.updated_at %><%= link_to User.find(first_pro.first.user_id).show_name, user_activities_url_in_org(first_pro.first.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新:
    <% sort_projects.each_with_index do |pro, i| %> diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb index f598c7404..2d2b53779 100644 --- a/app/views/users/_course_homework.html.erb +++ b/app/views/users/_course_homework.html.erb @@ -191,7 +191,8 @@ <% sort_projects = project_sort_update projects %>
    - # <%=time_from_now sort_projects.first.updated_at %><%= link_to User.find(sort_projects.first.user_id).show_name, user_activities_path(sort_projects.first.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新: + <% first_pro = project_sort_first(projects).first %> + # <%=time_from_now first_pro.first.updated_at %><%= link_to User.find(first_pro.first.user_id).show_name, user_activities_path(first_pro.first.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新:
    <% sort_projects.each_with_index do |pro, i| %> diff --git a/app/views/users/_user_homework_detail.html.erb b/app/views/users/_user_homework_detail.html.erb index 2c632b0df..30bec6685 100644 --- a/app/views/users/_user_homework_detail.html.erb +++ b/app/views/users/_user_homework_detail.html.erb @@ -196,7 +196,8 @@ <% sort_projects = project_sort_update projects %>
    - # <%=time_from_now sort_projects.first.updated_at %><%= link_to User.find(sort_projects.first.user_id).show_name, user_activities_path(sort_projects.first.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新: + <% first_pro = project_sort_first(projects).first %> + # <%=time_from_now first_pro.updated_at %><%= link_to User.find(first_pro.user_id).show_name, user_activities_path(first_pro.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新:
    <% sort_projects.each_with_index do |pro, i| %> From 9526962c69fabcb8507c5bb876ff050ba78fb5fb Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 6 May 2016 22:06:24 +0800 Subject: [PATCH 138/257] =?UTF-8?q?=E7=BF=BB=E9=A1=B5=E6=97=B6=E4=B8=8D?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BD=9C=E4=B8=9A=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 57fa7ada5..e724846d6 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -11,7 +11,9 @@ class HomeworkCommonController < ApplicationController before_filter :member_of_course, :only => [:index] def index - update_homework_time(@course.homework_commons) + unless params[:page] + update_homework_time(@course.homework_commons) + end @new_homework = HomeworkCommon.new @new_homework.homework_detail_manual = HomeworkDetailManual.new @new_homework.course = @course From 90809ea350d808a5fae65198c4596f934462d0c2 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 6 May 2016 22:18:31 +0800 Subject: [PATCH 139/257] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=8A=A5500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_course_homework.html.erb | 2 +- app/views/users/_course_homework.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/organizations/_org_course_homework.html.erb b/app/views/organizations/_org_course_homework.html.erb index 068d50437..19cdcf2f1 100644 --- a/app/views/organizations/_org_course_homework.html.erb +++ b/app/views/organizations/_org_course_homework.html.erb @@ -183,7 +183,7 @@
    <% first_pro = project_sort_first(projects).first %> - # <%=time_from_now first_pro.first.updated_at %><%= link_to User.find(first_pro.first.user_id).show_name, user_activities_url_in_org(first_pro.first.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新: + # <%=time_from_now first_pro.updated_at %><%= link_to User.find(first_pro.user_id).show_name, user_activities_url_in_org(first_pro.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新:
    <% sort_projects.each_with_index do |pro, i| %> diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb index 2d2b53779..b6ea36de5 100644 --- a/app/views/users/_course_homework.html.erb +++ b/app/views/users/_course_homework.html.erb @@ -192,7 +192,7 @@
    <% first_pro = project_sort_first(projects).first %> - # <%=time_from_now first_pro.first.updated_at %><%= link_to User.find(first_pro.first.user_id).show_name, user_activities_path(first_pro.first.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新: + # <%=time_from_now first_pro.updated_at %><%= link_to User.find(first_pro.user_id).show_name, user_activities_path(first_pro.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新:
    <% sort_projects.each_with_index do |pro, i| %> From 9a80ff05975b5d48b67f4f0611e9405db54251d5 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 22:21:52 +0800 Subject: [PATCH 140/257] =?UTF-8?q?=E5=8F=B3=E4=B8=80=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E2=80=9C=E6=9B=B4=E5=A4=9A=E2=80=9D=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subfield_leftMD.html.erb | 2 +- app/views/organizations/_org_subfield_rightT.html.erb | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/views/organizations/_org_subfield_leftMD.html.erb b/app/views/organizations/_org_subfield_leftMD.html.erb index b6bc5f294..e9c20d4bb 100644 --- a/app/views/organizations/_org_subfield_leftMD.html.erb +++ b/app/views/organizations/_org_subfield_leftMD.html.erb @@ -287,7 +287,7 @@ <%#= link_to news.description.to_s.html_safe, news_path(news), :target => '_blank', :class => "resources-tag" %> <%= render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id => document.id, :content=> content, :maxheight=>54, :maxwordsnum => 28, :maxwordsnum => 28} %>
    - <%= link_to "更多", news_path(news), :class => "more-btn", :target => "_blank" %> + <%#= link_to "更多", news_path(news), :class => "more-btn", :target => "_blank" %>
    <% end %> <% end %> diff --git a/app/views/organizations/_org_subfield_rightT.html.erb b/app/views/organizations/_org_subfield_rightT.html.erb index 2dfbbee5d..1a57b7dd2 100644 --- a/app/views/organizations/_org_subfield_rightT.html.erb +++ b/app/views/organizations/_org_subfield_rightT.html.erb @@ -159,7 +159,10 @@
    <% else %>
    -

    <%= field.name %>更多

    +

    <%= field.name %> + <%= render :partial => 'organizations/link_subfield_more', :locals => {:field => field} %> + +

    <% org_acts.first(4).each do |activity| %> <% if activity.container_type == 'Organization' && activity.org_act_type == 'OrgDocumentComment' && activity.org_act_id != @organization.home_id %> <% document = activity.org_act %> From 2a55d8f0c35a9d378b0547a87917eee482c82ac7 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 6 May 2016 22:23:05 +0800 Subject: [PATCH 141/257] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E7=9A=84=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D=E6=9B=B4=E6=96=B0=E4=BD=9C=E4=B8=9A=E7=9A=84updated?= =?UTF-8?q?=5Fat=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/words_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index c89a98a91..e17f03c38 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -276,7 +276,7 @@ class WordsController < ApplicationController ids = params[:asset_id].split(',') update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE end - @homework_common.update_attributes(:updated_at => Time.now) + @homework_common.update_column('updated_at', Time.now) update_course_activity(@homework_common.class,@homework_common.id) update_user_activity(@homework_common.class,@homework_common.id) update_org_activity(@homework_common.class,@homework_common.id) @@ -311,7 +311,7 @@ class WordsController < ApplicationController ids = params[:asset_id].split(',') update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE end - @homework_common.update_attributes(:updated_at => Time.now) + @homework_common.update_column('updated_at', Time.now) update_course_activity(@homework_common.class,@homework_common.id) update_user_activity(@homework_common.class,@homework_common.id) update_org_activity(@homework_common.class,@homework_common.id) From 6401afb8505a044e5eed340f38bf351e222dc27f Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 22:30:44 +0800 Subject: [PATCH 142/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_left_subfield_list.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index c63b2cf89..39837df88 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -109,7 +109,7 @@
    From 96ce1d8d400adcd69a307f0487e99c2f1a23c3e6 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 22:35:17 +0800 Subject: [PATCH 143/257] =?UTF-8?q?|=20=E5=8F=8A=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subfield_rightT.html.erb | 2 +- app/views/organizations/_subfield_list.html.erb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/organizations/_org_subfield_rightT.html.erb b/app/views/organizations/_org_subfield_rightT.html.erb index 1a57b7dd2..0dc1ac583 100644 --- a/app/views/organizations/_org_subfield_rightT.html.erb +++ b/app/views/organizations/_org_subfield_rightT.html.erb @@ -94,7 +94,7 @@
    <% else %>
    -

    <%= field.name %>更多

    +

    <%= field.name %>

    <% @project_acts.first(4).each do |act| %> <% if act.org_act_type == "Issue" %> <% activity = Issue.find(act.org_act_id) %> diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index 91444d7db..4619ed337 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -95,10 +95,10 @@ <%= link_to "删除", org_subfield_path(field), :method => 'delete', :remote => true, :confirm => "您确定删除吗?", :class => "linkGrey fr ml5 mr5" %> | 编辑 - | - - <% unless field.field_type == "Resource" %> + | + + <%= link_to("添加二级目录", new_org_subfield_sub_domain_path(:org_subfield_id => field.id, :field => field), :class => "linkGrey fr mr5", :remote => true) %> <% end%>
  • From 635d49cc2575adbfe823dcee21db28b4ffe83b61 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 22:57:05 +0800 Subject: [PATCH 144/257] =?UTF-8?q?course->=E8=AF=BE=E7=A8=8B=E5=8A=A8?= =?UTF-8?q?=E6=80=81=20project->=E9=A1=B9=E7=9B=AE=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subfield_leftM1.html.erb | 8 ++++---- app/views/organizations/_org_subfield_leftMD.html.erb | 8 ++++---- app/views/organizations/_org_subfield_rightT.html.erb | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/views/organizations/_org_subfield_leftM1.html.erb b/app/views/organizations/_org_subfield_leftM1.html.erb index ec9523131..4e1eebb94 100644 --- a/app/views/organizations/_org_subfield_leftM1.html.erb +++ b/app/views/organizations/_org_subfield_leftM1.html.erb @@ -3,11 +3,11 @@ <% case field.name %> <% when 'course' %> <% if @course_acts.blank? %> -

    <%= field.name %>

    +

    课程动态

    <%= render :partial => 'organizations/org_subfield_leftM1_default', :locals => {:field => field} %> <% else %> -

    <%= field.name %>

    +

    课程动态

    <% @course_acts.first(1).each do |act| %> <% if act.org_act_type == "HomeworkCommon" %> @@ -95,11 +95,11 @@ <% end %> <% when 'project' %> <% if @project_acts.blank? %> -

    <%= field.name %>

    +

    项目动态

    <%= render :partial => 'organizations/org_subfield_leftM1_default', :locals => {:field => field} %> <% else %> -

    <%= field.name %>

    +

    项目动态

    <% @project_acts.first(1).each do |act| %> <% if act.org_act_type == "Issue" %> diff --git a/app/views/organizations/_org_subfield_leftMD.html.erb b/app/views/organizations/_org_subfield_leftMD.html.erb index e9c20d4bb..faec87015 100644 --- a/app/views/organizations/_org_subfield_leftMD.html.erb +++ b/app/views/organizations/_org_subfield_leftMD.html.erb @@ -4,7 +4,7 @@ <% when 'course' %> <% if @course_acts.blank? %>
    -

    <%= field.name %>

    +

    课程动态

    <%= render :partial => 'organizations/org_subfield_leftMD_default', :locals => {:field => field} %>
    @@ -12,7 +12,7 @@
    <% else %>
    -

    <%= field.name %>

    +

    课程动态

    <% @course_acts.first(4).each do |act| %> <% if act.org_act_type == "HomeworkCommon" %> @@ -106,7 +106,7 @@ <% when 'project' %> <% if @project_acts.blank? %>
    -

    <%= field.name %>

    +

    项目动态

    <%= render :partial => 'organizations/org_subfield_leftMD_default', :locals => {:field => field} %>
    @@ -114,7 +114,7 @@
    <% else %>
    -

    <%= field.name %>

    +

    项目动态

    <% @project_acts.first(4).each do |act| %> <% if act.org_act_type == "Issue" %> diff --git a/app/views/organizations/_org_subfield_rightT.html.erb b/app/views/organizations/_org_subfield_rightT.html.erb index 0dc1ac583..f28c3fdbb 100644 --- a/app/views/organizations/_org_subfield_rightT.html.erb +++ b/app/views/organizations/_org_subfield_rightT.html.erb @@ -3,13 +3,13 @@ <% when 'course' %> <% if @course_acts.blank? %>
    -

    <%= field.name %>

    +

    课程动态

    <%= render :partial => 'organizations/org_subfield_rightT_default', :locals => {:field => field} %>
    <% else %>
    -

    <%= field.name %>

    +

    课程动态

    <% @course_acts.first(4).each do |act| %> <% if act.org_act_type == "HomeworkCommon" %> <% activity = HomeworkCommon.find(act.org_act_id) %> @@ -88,13 +88,13 @@ <% when 'project' %> <% if @project_acts.blank? %>
    -

    <%= field.name %>

    +

    项目动态

    <%= render :partial => 'organizations/org_subfield_rightT_default', :locals => {:field => field} %>
    <% else %>
    -

    <%= field.name %>

    +

    项目动态

    <% @project_acts.first(4).each do |act| %> <% if act.org_act_type == "Issue" %> <% activity = Issue.find(act.org_act_id) %> From 18b70e9dd3d0d625927bccf66e487506f6ef841d Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 6 May 2016 22:59:46 +0800 Subject: [PATCH 145/257] =?UTF-8?q?=E4=B8=8A=E7=BA=BF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/words_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index 86a78708b..e17f03c38 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -276,7 +276,8 @@ class WordsController < ApplicationController ids = params[:asset_id].split(',') update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE end - @homework_common.update_column('updated_at', Time.now) update_course_activity(@homework_common.class,@homework_common.id) + @homework_common.update_column('updated_at', Time.now) + update_course_activity(@homework_common.class,@homework_common.id) update_user_activity(@homework_common.class,@homework_common.id) update_org_activity(@homework_common.class,@homework_common.id) respond_to do |format| From fc95d048a5b5a721a80b898c58232d3059d4f109 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 9 May 2016 10:32:41 +0800 Subject: [PATCH 146/257] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=89=93=E4=B8=8D=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 18ce26c36..1b556c3c6 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -416,7 +416,7 @@ class HomeworkCommonController < ApplicationController unless project.nil? && project.gpid.nil? project_time=project.updated_on project_time=ForgeActivity.where("project_id=?",project.id).last.updated_at if ForgeActivity.where("project_id=?",project.id).last - if time < project_time + if format_time(time) < format_time(project_time) time = project_time end begin From 1b309d4bf085c7f2cbb5dcdff111756562600a62 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 9 May 2016 10:36:38 +0800 Subject: [PATCH 147/257] =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=9A=84=E6=AF=94?= =?UTF-8?q?=E8=BE=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 1b556c3c6..0f4ddf8d8 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -426,7 +426,7 @@ class HomeworkCommonController < ApplicationController changesets = g.commits(project.gpid, :ref_name => default_branch) changesets_latest_coimmit = changesets[0] unless changesets[0].blank? - if time < changesets_latest_coimmit.created_at + if format_time(time) < format_time(changesets_latest_coimmit.created_at) time = changesets_latest_coimmit.created_at end end From 6d32e812aa95b637902d5e54bcbdb36dbf2bb20d Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 9 May 2016 11:06:23 +0800 Subject: [PATCH 148/257] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=92=8C=E4=BD=9C=E4=B8=9A=E7=9A=84=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/migrate/20160509025404_update_activity.rb | 24 ++++++++++++++++++++ db/schema.rb | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20160509025404_update_activity.rb diff --git a/db/migrate/20160509025404_update_activity.rb b/db/migrate/20160509025404_update_activity.rb new file mode 100644 index 000000000..2a959f5a2 --- /dev/null +++ b/db/migrate/20160509025404_update_activity.rb @@ -0,0 +1,24 @@ +class UpdateActivity < ActiveRecord::Migration + def up + homeworks = HomeworkCommon.where("course_id = 342") + unless homeworks.nil? + homeworks.each do |h| + course_activity = CourseActivity.where("course_act_type=? and course_act_id =?", 'HomeworkCommon', h.id).first + user_activity = UserActivity.where("act_type=? and act_id =?", 'HomeworkCommon', h.id).first + org_activity = OrgActivity.where("org_act_type=? and org_act_id =?", 'HomeworkCommon', h.id).first + if course_activity && h.updated_at > course_activity.updated_at + course_activity.update_column('updated_at', h.updated_at) + end + if user_activity && h.updated_at > user_activity.updated_at + user_activity.update_column('updated_at', h.updated_at) + end + if org_activity && h.updated_at > org_activity.updated_at + org_activity.update_column('updated_at', h.updated_at) + end + end + end + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index 3ffa35872..c96524c5e 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 => 20160506104128) do +ActiveRecord::Schema.define(:version => 20160509025404) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false From 878bcc8cf13008e9638379db127e4bd1c84665f2 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 9 May 2016 14:43:28 +0800 Subject: [PATCH 149/257] =?UTF-8?q?=E6=A0=8F=E7=9B=AE=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=B7=BB=E5=8A=A0=E8=80=81=E5=B8=88=E3=80=81?= =?UTF-8?q?=E5=AD=A6=E7=94=9F=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/organizations_helper.rb | 6 ++++++ .../_org_left_subfield_list.html.erb | 1 - app/views/organizations/setting.html.erb | 20 +++++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb index 917ccc01c..4b6139a6a 100644 --- a/app/helpers/organizations_helper.rb +++ b/app/helpers/organizations_helper.rb @@ -148,4 +148,10 @@ module OrganizationsHelper org_acts end + def org_subfield_had_created?(org, type) + sub_field = org.org_subfields.select{|subfield| subfield.field_type == type} + result = sub_field.length > 0 ? true : false + result + end + end diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 39837df88..77a2a014b 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -118,7 +118,6 @@ <% end %> - <% else %>
    <% if !field.subfield_subdomain_dir.nil? %> diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb index c989b259c..4c9a9e92e 100644 --- a/app/views/organizations/setting.html.erb +++ b/app/views/organizations/setting.html.erb @@ -152,10 +152,22 @@ - - - - +
  • + + +
  • + <% unless org_subfield_had_created?(@organization, "Comptec") %> +
  • + + +
  • + <% end %> + <% unless org_subfield_had_created?(@organization, "Compstu") %> +
  • + + +
  • + <% end %>
  • 新增
  • From a98678e001ab0d61b0effd06d81ec3d164775611 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 9 May 2016 15:00:50 +0800 Subject: [PATCH 150/257] =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=AD=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=98=BE=E7=A4=BA=E6=96=B9=E6=B3=95=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/organizations_helper.rb | 15 +++++++++++++++ .../_org_left_subfield_list.html.erb | 2 +- app/views/organizations/_subfield_list.html.erb | 13 +++++-------- app/views/organizations/setting.html.erb | 6 +++--- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb index 4b6139a6a..981921d0b 100644 --- a/app/helpers/organizations_helper.rb +++ b/app/helpers/organizations_helper.rb @@ -154,4 +154,19 @@ module OrganizationsHelper result end + def org_subfield_type(field) + case field.field_type + when "Post" + result = "帖子" + when "Resource" + result = "资源" + when "Compstu" + result = "学生" + when "Comptec" + result = "教师" + when "Complex" + result = "综合" + end + end + end diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 77a2a014b..6e01e9c50 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -91,7 +91,7 @@ <% end %> <% else %>
    - <% if field.field_type == "Post" %> + <% if field.field_type == ("Post" || "Complex" || "Compstu" || "Comptec") %>
    <% if !field.subfield_subdomain_dir.nil? %> diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index 4619ed337..0d6b5aac2 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -8,7 +8,6 @@
  • 操作
  • - <% subfields.each do |field| %> <% if is_default_field?(field) %> <% name = get_default_name(field) %> @@ -32,10 +31,9 @@
    <%= select( :name,:group_id, subfield_status_option_default, { :include_blank => false,:selected => field.status}, - { :onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:56px;"}) %> + { :onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:56px;"}) %> <% end %> <% end %> -
  • 默认
  • <%= field.hide==0?"隐藏":"可见" %> @@ -60,20 +58,19 @@
  • 新增
  • <% if field.field_type == "Resource" %> - 列表 + 默认 <% else %> <%= form_tag({:controller => 'org_subfields', :action => 'update_status', :id => field.id,},:remote=>'true', :method => 'post', :id=>"update_status_form_#{field.id}", :class => 'query_form') do %>
    <%= select( :name,:group_id, subfield_status_option, - { :include_blank => false,:selected => field.status}, - {:onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:56px;"}) %> + { :include_blank => false,:selected => field.status}, + { :onchange=>"update_status('#update_status_form_#{field.id}');", :id =>"field_status_id", :name => "status",:class=>"undis class-edit fl", :style => "width:56px;"}) %> <% end %> - <% end %>
  • -
  • <%= field.field_type == "Post" ? "帖子" : "资源" %>
  • +
  • <%= org_subfield_type field %>
  • - +
  • <% unless org_subfield_had_created?(@organization, "Comptec") %>
  • - +
  • <% end %> <% unless org_subfield_had_created?(@organization, "Compstu") %>
  • - +
  • <% end %>
  • 新增
  • From 644e097dc8bb17ac881b3a3e0d7d14f38b67e107 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 9 May 2016 16:16:03 +0800 Subject: [PATCH 151/257] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=85=B3=E8=81=94=E9=A1=B9=E7=9B=AE=E7=9A=84=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 6 +- lib/tasks/update_homework.rake | 65 +++++++++++++++++++ 2 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 lib/tasks/update_homework.rake diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index e724846d6..02a6992e8 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -11,9 +11,9 @@ class HomeworkCommonController < ApplicationController before_filter :member_of_course, :only => [:index] def index - unless params[:page] - update_homework_time(@course.homework_commons) - end + #unless params[:page] + # update_homework_time(@course.homework_commons) + #end @new_homework = HomeworkCommon.new @new_homework.homework_detail_manual = HomeworkDetailManual.new @new_homework.course = @course diff --git a/lib/tasks/update_homework.rake b/lib/tasks/update_homework.rake new file mode 100644 index 000000000..229337dc5 --- /dev/null +++ b/lib/tasks/update_homework.rake @@ -0,0 +1,65 @@ +#coding=utf-8 + +namespace :update_homework do + desc "update homework project time" + def update_homework_time homeworks + unless homeworks.nil? + homeworks.each do |h| + if h.homework_type == 3 + student_works = h.student_work_projects.where("is_leader = 1 && project_id != -1") + time = h.updated_at + unless student_works.nil? + student_works.each do |s| + project = Project.find s.project_id + unless project.nil? && project.gpid.nil? + project_time=project.updated_on + project_time=ForgeActivity.where("project_id=?",project.id).last.updated_at if ForgeActivity.where("project_id=?",project.id).last + if time.strftime('%Y-%m-%d %H:%M:%S') < project_time.strftime('%Y-%m-%d %H:%M:%S') + time = project_time + end + begin + # gitlab端获取默认分支 + g = Gitlab.client + default_branch = g.project(project.gpid).default_branch + changesets = g.commits(project.gpid, :ref_name => default_branch) + changesets_latest_coimmit = changesets[0] + unless changesets[0].blank? + if time.strftime('%Y-%m-%d %H:%M:%S') h.updated_at.strftime('%Y-%m-%d %H:%M:%S') + h.update_column('updated_at', s_time) + course_activity = CourseActivity.where("course_act_type=? and course_act_id =?", 'HomeworkCommon', h.id).first + if course_activity && (time.strftime('%Y-%m-%d %H:%M:%S') > course_activity.updated_at.strftime('%Y-%m-%d %H:%M:%S')) + course_activity.update_column('updated_at', s_time) + end + user_activity = UserActivity.where("act_type=? and act_id =?", 'HomeworkCommon', h.id).first + if user_activity && (time.strftime('%Y-%m-%d %H:%M:%S') > user_activity.updated_at.strftime('%Y-%m-%d %H:%M:%S')) + user_activity.update_column('updated_at', s_time) + end + org_activity = OrgActivity.where("org_act_type=? and org_act_id =?", 'HomeworkCommon', h.id).first + if org_activity && (time.strftime('%Y-%m-%d %H:%M:%S') > org_activity.updated_at.strftime('%Y-%m-%d %H:%M:%S')) + org_activity.update_column('updated_at', s_time) + end + end + end + end + end + end + task :update_homework => :environment do + year = Time.now.year + courses = Course.where("time > ? and is_delete = 0", (year.to_i - 2)) + course_ids = courses.nil? ? '(-1)' : '(' + courses.map{|c| c.id}.join(',') + ')' + homeworks = HomeworkCommon.where("course_id in #{course_ids} and homework_type = 3") + unless homeworks.nil? + update_homework_time homeworks + end + end +end From 1eb41478b2d551731c06570f358cdfa25fe94cc6 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 9 May 2016 17:06:10 +0800 Subject: [PATCH 152/257] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=92=8C=E9=A6=96=E9=A1=B5=E5=8A=A8=E6=80=81=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=8A=A8=E6=80=81=E5=AE=9E=E7=8E=B0=E4=BA=8C?= =?UTF-8?q?=E7=BA=A7=E5=9B=9E=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 6 ++ app/controllers/words_controller.rb | 4 +- .../_org_course_homework.html.erb | 66 ++++++++++++++---- app/views/users/_course_homework.html.erb | 67 ++++++++++++++----- app/views/users/_reply_to.html.erb | 2 + .../users/_user_homework_detail.html.erb | 4 +- app/views/words/reply_to_homework.js.erb | 5 +- 7 files changed, 121 insertions(+), 33 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 0dd947be4..01d87374c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -95,7 +95,13 @@ class UsersController < ApplicationController case params[:type] when 'HomeworkCommon' @reply = JournalsForMessage.find params[:reply_id] + if params[:user_activity_id] + @user_activity_id = params[:user_activity_id] + else + @user_activity_id = -1 + end @is_in_course = params[:is_in_course] + @course_activity = params[:course_activity].to_i end respond_to do |format| format.js diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index e17f03c38..fa084e349 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -317,7 +317,9 @@ class WordsController < ApplicationController update_org_activity(@homework_common.class,@homework_common.id) respond_to do |format| format.js{ - @is_in_course = params[:is_in_course] + @user_activity_id = params[:user_activity_id].to_i + @is_in_course = params[:is_in_course].to_i + @course_activity = params[:course_activity].to_i } end else diff --git a/app/views/organizations/_org_course_homework.html.erb b/app/views/organizations/_org_course_homework.html.erb index 19cdcf2f1..179e4678e 100644 --- a/app/views/organizations/_org_course_homework.html.erb +++ b/app/views/organizations/_org_course_homework.html.erb @@ -276,7 +276,8 @@ <% count=activity.journals_for_messages.count %>
    -
    回复 +
    回复 + ︿ <%= count>0 ? "(#{count})" : "" %> <% if activity.user == User.current %> @@ -318,23 +319,60 @@ <% else %> <%= link_to comment.try(:user).try(:realname), user_url_in_org(comment.user_id), :class => "newsBlue mr10 f14" %> <% end %> - <%= format_time(comment.created_on) %> - - <% if comment.user == User.current %> - + <%= time_from_now(comment.created_on) %> +
    + <% unless comment.m_parent_id.nil? %> + <% parents_rely = [] %> + <% parents_rely = get_reply_parents parents_rely, comment %> + <% length = parents_rely.length %> +
    + <% if length <= 3 %> + <%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent} %> <% else %> - <%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> +
    +
    +
    + <%=render :partial => 'users/comment_reply', :locals => {:comment => parents_rely[length - 1]} %> +
    + <%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[length - 2]} %> +
    +
    <%= link_to '点击展开隐藏楼层', show_all_replies_users_path(:comment => comment),:remote=>true %>
    + <%=render :partial => 'users/comment_reply_detail', :locals => {:comment => parents_rely[0]} %> +
    <% end %> - - -
    +
    + <% end %>
    <%= comment.notes.html_safe %>
    +
    +
    + + + <% if comment.user == User.current %> + + <% else %> + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> + <% end %> + + + <%= link_to( + l(:button_reply), + {:controller => 'users' ,:action => 'reply_to', :reply_id => comment.id, :type => 'HomeworkCommon', :is_in_course => -1, :user_activity_id => user_activity_id, :course_activity=>course_activity}, + :remote => true, + :method => 'get', + :title => l(:button_reply)) %> + + + + <% if User.current.admin? ||is_teacher || comment.user == User.current%> + <%= link_to('删除', {:controller => 'words', :action => 'destroy', :object_id => comment, :user_id => comment.user,:is_in_course => -1, :user_activity_id => user_activity_id, :course_activity=>course_activity}, + :remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "fr mr20", :title => l(:button_delete)) %> + <% end %> + +
    +
    +
    +

    diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb index b6ea36de5..a96ae5d74 100644 --- a/app/views/users/_course_homework.html.erb +++ b/app/views/users/_course_homework.html.erb @@ -285,7 +285,8 @@ <% count=activity.journals_for_messages.count %>
    -
    回复 +
    回复 + ︿ <%= count>0 ? "(#{count})" : "" %> <% if activity.user == User.current %> @@ -327,24 +328,60 @@ <% else %> <%= link_to comment.try(:user).try(:realname), user_path(comment.user_id), :class => "newsBlue mr10 f14" %> <% end %> - <%= format_time(comment.created_on) %> - - <% if comment.user == User.current %> - + <%= time_from_now(comment.created_on) %> +
    + <% unless comment.m_parent_id.nil? %> + <% parents_rely = [] %> + <% parents_rely = get_reply_parents parents_rely, comment %> + <% length = parents_rely.length %> +
    + <% if length <= 3 %> + <%=render :partial => 'users/comment_reply', :locals => {:comment => comment.parent} %> <% else %> - <%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> - <% end %> - - - -
    +
    + <% end %>
    <%= comment.notes.html_safe %>
    +
    +
    + + + <% if comment.user == User.current %> + + <% else %> + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> + <% end %> + + + <%= link_to( + l(:button_reply), + {:controller => 'users' ,:action => 'reply_to', :reply_id => comment.id, :type => 'HomeworkCommon', :is_in_course => -1, :user_activity_id => user_activity_id, :course_activity=>course_activity}, + :remote => true, + :method => 'get', + :title => l(:button_reply)) %> + + + + <% if User.current.admin? ||is_teacher || comment.user == User.current%> + <%= link_to('删除', {:controller => 'words', :action => 'destroy', :object_id => comment, :user_id => comment.user,:is_in_course => -1, :user_activity_id => user_activity_id, :course_activity=>course_activity}, + :remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "fr mr20", :title => l(:button_delete)) %> + <% end %> + +
    +
    +
    +

    diff --git a/app/views/users/_reply_to.html.erb b/app/views/users/_reply_to.html.erb index ccfc07db2..30f4e3542 100644 --- a/app/views/users/_reply_to.html.erb +++ b/app/views/users/_reply_to.html.erb @@ -4,6 +4,8 @@
    <%= form_for('new_form',:url => {:controller => 'words', :action => 'reply_to_homework', :id => reply.id},:method => "post", :remote => true) do |f| %> > + > + >
    diff --git a/app/views/users/_user_homework_detail.html.erb b/app/views/users/_user_homework_detail.html.erb index 30bec6685..fde67f472 100644 --- a/app/views/users/_user_homework_detail.html.erb +++ b/app/views/users/_user_homework_detail.html.erb @@ -373,7 +373,7 @@ <%= link_to( l(:button_reply), - {:controller => 'users' ,:action => 'reply_to', :reply_id => comment.id, :type => 'HomeworkCommon', :is_in_course => is_in_course}, + {:controller => 'users' ,:action => 'reply_to', :reply_id => comment.id, :type => 'HomeworkCommon', :is_in_course => is_in_course, :course_activity => -1}, :remote => true, :method => 'get', :title => l(:button_reply)) %> @@ -381,7 +381,7 @@ <% if User.current.admin? ||is_teacher || comment.user == User.current%> - <%= link_to('删除', {:controller => 'words', :action => 'destroy', :object_id => comment, :user_id => comment.user,:is_in_course => is_in_course,:course_activity=>-1}, + <%= link_to('删除', {:controller => 'words', :action => 'destroy', :object_id => comment, :user_id => comment.user,:is_in_course => is_in_course, :course_activity => -1}, :remote => true, :confirm => l(:text_are_you_sure), :method => 'delete', :class => "fr mr20", :title => l(:button_delete)) %> <% end %> diff --git a/app/views/words/reply_to_homework.js.erb b/app/views/words/reply_to_homework.js.erb index 85275277a..7da72fa54 100644 --- a/app/views/words/reply_to_homework.js.erb +++ b/app/views/words/reply_to_homework.js.erb @@ -1,4 +1,7 @@ -<% if @is_in_course %> +<% if @user_activity_id != -1 %> +$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework_common,:user_activity_id =>@user_activity_id,:course_activity => @course_activity}) %>"); +sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); +<% else %> $("#homework_common_<%= @homework_common.id %>").replaceWith("<%= escape_javascript(render :partial => 'users/user_homework_detail', :locals => {:homework_common => @homework_common,:is_in_course => @is_in_course}) %>"); sd_create_editor_from_data(<%= @homework_common.id%>,"","100%", "HomeworkCommon"); <% end %> \ No newline at end of file From fc36e4c01eb12f52154561cec393ea209dda912d Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 9 May 2016 18:10:22 +0800 Subject: [PATCH 153/257] =?UTF-8?q?=E6=95=99=E5=B8=88=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/organizations_controller.rb | 10 +- .../_org_left_subfield_list.html.erb | 2 +- .../organizations/_show_students.html.erb | 36 +++++ .../organizations/_show_teachers.html.erb | 45 +++++++ app/views/organizations/show.html.erb | 126 ++++++++++-------- public/stylesheets/new_user.css | 1 + public/stylesheets/org.css | 20 ++- 7 files changed, 177 insertions(+), 63 deletions(-) create mode 100644 app/views/organizations/_show_students.html.erb create mode 100644 app/views/organizations/_show_teachers.html.erb diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index 3709dd24b..561ebf8a8 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -98,10 +98,16 @@ class OrganizationsController < ApplicationController else if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization) @organization = Organization.find(params[:id]) + # params[:org_subfield_id] 存在即对应的栏目,否则进入组织动态 if params[:org_subfield_id] @org_subfield = OrgSubfield.find(params[:org_subfield_id]) - @org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0 - @org_activities = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{@org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{@org_subfield.id})").order('updated_at desc').page(params[:page] || 1).per(10) + if @org_subfield.field_type == "Comptec" || @org_subfield.field_type == "Compstu" + #@org_students = User.find_by_sql("SELECT * FROM users u, user_extensions ue where u.id = ue.user_id and ue.identity =1;") + @org_teachers = User.find_by_sql("SELECT * FROM users u, user_extensions ue where u.id = ue.user_id and ue.identity =0;") + else + @org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0 + @org_activities = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{@org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{@org_subfield.id})").order('updated_at desc').page(params[:page] || 1).per(10) + end else shield_project_ids = ShieldActivity.where("container_type='Organization' and container_id=#{@organization.id} and shield_type='Project'").map(&:shield_id) shield_course_ids = ShieldActivity.where("container_type='Organization' and container_id=#{@organization.id} and shield_type='Course'").map(&:shield_id) diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 6e01e9c50..90019354c 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -91,7 +91,7 @@ <% end %> <% else %>
    - <% if field.field_type == ("Post" || "Complex" || "Compstu" || "Comptec") %> + <% if field.field_type == "Post" || field.field_type == "Complex" || field.field_type == "Compstu" || field.field_type == "Comptec" %>
    <% if !field.subfield_subdomain_dir.nil? %> diff --git a/app/views/organizations/_show_students.html.erb b/app/views/organizations/_show_students.html.erb new file mode 100644 index 000000000..7f8d90203 --- /dev/null +++ b/app/views/organizations/_show_students.html.erb @@ -0,0 +1,36 @@ +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    尹刚国防科学技术大学教授
    +
    +
    6000
    +
    课程数
    +
    +
    +
    +
    500
    +
    学生数
    +
    +
    +
    +
    8000
    +
    资源数
    +
    +
    + 添加 +
    +
    +
    +
    \ No newline at end of file diff --git a/app/views/organizations/_show_teachers.html.erb b/app/views/organizations/_show_teachers.html.erb new file mode 100644 index 000000000..a95efbfa9 --- /dev/null +++ b/app/views/organizations/_show_teachers.html.erb @@ -0,0 +1,45 @@ +
    +
    + + + +
    +
    + <% @org_teachers.each do |org_teacher| %> + <% school = School.where("id =?", org_teacher.school_id).first %> +
    +
    +
    +
    +
    <%= org_teacher.try(:realname).nil? ? org_teacher.try(:login) : org_teacher.try(:realname) %> + <% unless school.nil? %> + <%= school.name %> + <% end %> + <% unless org_teacher.nil? %> + <%= org_teacher.technical_title %>
    + <% end %> +
    +
    <%= User.current.courses.count %>
    +
    课程数
    +
    +
    +
    +
    500
    +
    学生数
    +
    +
    +
    +
    8000
    +
    资源数
    +
    +
    + 添加 +
    +
    +
    + <% end %> +
    \ No newline at end of file diff --git a/app/views/organizations/show.html.erb b/app/views/organizations/show.html.erb index f217f006e..24c1ab791 100644 --- a/app/views/organizations/show.html.erb +++ b/app/views/organizations/show.html.erb @@ -1,69 +1,77 @@ -<%= javascript_include_tag "jquery.infinitescroll.js" %> +<% if !params[:org_subfield_id].nil? && @org_subfield.field_type == "Compstu" %> + <%= render 'organizations/show_students', :field => @org_subfield %> +<% elsif !params[:org_subfield_id].nil? && @org_subfield.field_type == "Comptec" %> + <%= render 'organizations/show_teachers', :field => @org_subfield %> +<% else %> + <%= javascript_include_tag "jquery.infinitescroll.js" %> -<%= content_for(:header_tags) do %> - <%= import_ke(enable_at: false, prettify: false, init_activity: true) %> -<% end %> + <%= content_for(:header_tags) do %> + <%= import_ke(enable_at: false, prettify: false, init_activity: true) %> + <% end %> -<% if params[:show_homepage].nil? and User.current.logged? %> -
    -
    <%= @org_subfield.nil? ? "最新动态":"#{@org_subfield.name}" %>
    - <% if params[:org_subfield_id].nil? %> -
      -
    • -
        -
      • -
          -
        • 课程动态
        • -
        • <%= link_to "作业动态", {:controller => "organizations", :action => "show", :type => "course_homework"}, :class => "homepagePostTypeAssignment postTypeGrey"%> -
        • -
        • <%= link_to "通知动态", {:controller => "organizations", :action => "show", :type => "course_news"}, :class => "homepagePostTypeNotice postTypeGrey"%> - -
        • <%= link_to "论坛动态", {:controller => "organizations", :action => "show", :type => "course_message"}, :class => "homepagePostTypeForum postTypeGrey"%> -
        • <%= link_to "问卷动态", {:controller => "organizations", :action => "show", :type => "course_poll"}, :class => "homepagePostTypeQuiz postTypeGrey"%> - - -
        -
      • -
      • -
          -
        • 项目动态
        • -
        • <%= link_to "问题动态", {:controller => "organizations", :action => "show", :type => "project_issue"}, :class => "homepagePostTypeQuestion postTypeGrey"%> -
        • <%= link_to "论坛动态", {:controller => "organizations", :action => "show", :type => "project_message"}, :class => "homepagePostTypeForum postTypeGrey"%> - -
        -
      • -
      • -
          -
        • 更多
        • -
        • <%= link_to "组织动态", {:controller => "organizations", :action => "show", :type => "org"}, :class =>"homepagePostTypeMessage postTypeGrey"%> -
        • <%= link_to "全部动态", {:controller => "organizations", :action => "show", :type => nil}, :class =>"homepagePostTypeAll postTypeGrey"%> + <% if params[:show_homepage].nil? and User.current.logged? %> +
          +
          <%= @org_subfield.nil? ? "最新动态":"#{@org_subfield.name}" %>
          + <% if params[:org_subfield_id].nil? %> +
            +
          • +
              +
            • +
                +
              • 课程动态
              • +
              • <%= link_to "作业动态", {:controller => "organizations", :action => "show", :type => "course_homework"}, :class => "homepagePostTypeAssignment postTypeGrey"%> +
              • +
              • <%= link_to "通知动态", {:controller => "organizations", :action => "show", :type => "course_news"}, :class => "homepagePostTypeNotice postTypeGrey"%> + +
              • <%= link_to "论坛动态", {:controller => "organizations", :action => "show", :type => "course_message"}, :class => "homepagePostTypeForum postTypeGrey"%> +
              • <%= link_to "问卷动态", {:controller => "organizations", :action => "show", :type => "course_poll"}, :class => "homepagePostTypeQuiz postTypeGrey"%> + + +
              +
            • +
            • +
                +
              • 项目动态
              • +
              • <%= link_to "问题动态", {:controller => "organizations", :action => "show", :type => "project_issue"}, :class => "homepagePostTypeQuestion postTypeGrey"%> +
              • <%= link_to "论坛动态", {:controller => "organizations", :action => "show", :type => "project_message"}, :class => "homepagePostTypeForum postTypeGrey"%> + +
              +
            • +
            • +
                +
              • 更多
              • +
              • <%= link_to "组织动态", {:controller => "organizations", :action => "show", :type => "org"}, :class =>"homepagePostTypeMessage postTypeGrey"%> +
              • <%= link_to "全部动态", {:controller => "organizations", :action => "show", :type => nil}, :class =>"homepagePostTypeAll postTypeGrey"%> +
              +
            • +
            +
          -
        • -
        -
      • -
      - <% end %> -
    -<% end %> -<% if !@organization.home_id.nil? and OrgDocumentComment.where("id = ?", @organization.home_id).count > 0 and params[:org_subfield_id].nil? %> - - <% act = OrgActivity.where("org_act_type = 'OrgDocumentComment' and org_act_id =?", @organization.home_id).first %> + <% end %> +
    + <% end %> + <% if !@organization.home_id.nil? and OrgDocumentComment.where("id = ?", @organization.home_id).count > 0 and params[:org_subfield_id].nil? %> + + <% act = OrgActivity.where("org_act_type = 'OrgDocumentComment' and org_act_id =?", @organization.home_id).first %> <%= render :partial => 'show_home_page', :locals => {:document => OrgDocumentComment.find(@organization.home_id), :home_id => @organization.home_id, :act => act} %> -<% end %> -<% if @org_activities %> - <%= render :partial => 'organizations/org_activities', - :locals => {:org_activities => @org_activities, - :page=> @page, - :org => @organization, - :org_act_count=> @org_activities.count} %> + <% end %> + <% if @org_activities %> + <%= render :partial => 'organizations/org_activities', + :locals => {:org_activities => @org_activities, + :page=> @page, + :org => @organization, + :org_act_count=> @org_activities.count} %> + <% end %> <% end %> + + diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 986e4183d..0d0602788 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -76,6 +76,7 @@ a.linkGrey6:hover {color:#ffffff !important;} .ml15{ margin-left:15px;} .ml20{ margin-left:20px;} .ml24{margin-left:24px;} +.ml25{margin-left:25px;} .ml36{ margin-left:36px; } .ml40{ margin-left:40px;} .ml45{ margin-left:45px;} diff --git a/public/stylesheets/org.css b/public/stylesheets/org.css index d05c94bbe..76309217d 100644 --- a/public/stylesheets/org.css +++ b/public/stylesheets/org.css @@ -159,4 +159,22 @@ a.blue-btn { background-color: #269ac9; cursor: pointer; text-align: center; -} \ No newline at end of file +} + +/*名师榜20160505*/ +.function-row {border-bottom:1px dashed #b2b2b2; padding-bottom:16px;} +.teacher-list-search {width:310px; height:23px; border:1px solid #ccc; border-right:none; outline:none;} +.teacher-search-icon {background:url(../images/search.png) 0 3px no-repeat; width:25px; height:23px; border:1px solid #ccc; border-left:none;} +.teacher-search-type {width:84px; height:23px; border:1px solid #ccc; outline:none;} +.teacher-list-row {border-bottom:1px dashed #b2b2b2; padding:18px 0;} +.teacher-avatar {float:left;} +.teacher-name {font-size:18px; color:#333; margin-right:15px;} +.teacher-social-block {width:90px; float:left; text-align:center;} +.block-num {font-size:16px; color:#000;} +.block-title {font-size:12px; color:#999;} +.block-slice {width:1px; height:40px; background-color:#e0e0e0; float:left; margin-top:3px;} +.teacher-intro {font-size:13px; color:#999; line-height:24px; height:72px; overflow:hidden;} +a.teacher-select {font-size:13px; color:#fff; padding:3px 18px; background-color:#269ac9;} +a.teacher-select:hover {background-color:#297fb8;} +a.follow-button {font-size:13px; color:#272727; padding:3px 5px; background-color:#f2efef;} +a.follow-button:hover {background-color:#c1c1c1;} From f6d7df73936aab80417869e9b52f5a34eb510168 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 9 May 2016 18:40:21 +0800 Subject: [PATCH 154/257] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=B7=BB=E5=8A=A0=E2=80=9C=E5=88=86=E4=BA=AB=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E7=94=B3=E8=AF=B7=E2=80=9D=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 | 10 +++ app/views/admin/apply_for_homework.html.erb | 89 +++++++++++++++++++++ config/locales/zh.yml | 1 + config/routes.rb | 1 + lib/redmine.rb | 1 + lib/redmine/menu_manager.rb | 2 + 6 files changed, 104 insertions(+) create mode 100644 app/views/admin/apply_for_homework.html.erb diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 99732fc6b..11dfbf5f4 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -593,4 +593,14 @@ class AdminController < ApplicationController end end + #分享作业申请 + def apply_for_homework + homeworks = ApplyHomework.where("user_id != 0") + @homework = paginateHelper homeworks,30 + @page = (params['page'] || 1).to_i - 1 + respond_to do |format| + format.html + end + end + end diff --git a/app/views/admin/apply_for_homework.html.erb b/app/views/admin/apply_for_homework.html.erb new file mode 100644 index 000000000..1c7a04901 --- /dev/null +++ b/app/views/admin/apply_for_homework.html.erb @@ -0,0 +1,89 @@ +

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

    + +
    + + + + + + + + + + + + + + <%@count=@page*30 %> + <% for homework in @homework do %> + <% unless homework.nil? %> + <% @count+=1 %> + + + <% c_h = HomeworkCommon.find homework.homework_common_id %> + <% if c_h %> + + <% if c_h.course %> + + <% end %> + + <% end %> + + + + + <% end %> + <% end %> + +
    + 序号 + + 作业名称 + + 课程名称 + + 作者 + + 申请者 + + 申请状态 + + 申请日期 +
    + <%=@count %> + + <%=link_to(c_h.try(:name), student_work_index_path(:homework => c_h.id))%> + + <%= link_to(c_h.course.name, course_path(c_h.course.id)) %> + <%= c_h.try(:user)%><% else %><%=c_h.try(:user).try(:realname) %><% end %>'> + <% if c_h.try(:user).try(:realname) == ' '%> + <%= link_to(c_h.try(:user), user_path(c_h.user_id)) %> + <% else %> + <%= link_to(c_h.try(:user).try(:realname), user_path(c_h.user_id)) %> + <% end %> + <%= homework.try(:user)%><% else %><%=homework.try(:user).try(:realname) %><% end %>'> + <% if homework.try(:user).try(:realname) == ' '%> + <%= link_to(homework.try(:user), user_path(homework.user_id)) %> + <% else %> + <%= link_to(homework.try(:user).try(:realname), user_path(homework.user_id)) %> + <% end %> + + <% if homework.status == 1 %> + 待审核 + <% elsif homework.status == 2 %> + 已通过 + <% else %> + 已拒绝 + <% end %> + + <%=format_date( homework.created_at ) %> +
    +
    + + + +<% html_title(l(:label_apply_homework)) -%> diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 088ce3d8e..55124cf58 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -419,6 +419,7 @@ zh: label_project_all: 所有的项目 label_project_latest: 最近的项目 label_issue: 问题 + label_apply_homework: 分享作业申请 label_issue_view_all: 查看所有问题 label_issues_by: "按 %{value} 分组显示问题" diff --git a/config/routes.rb b/config/routes.rb index afefc9e3c..6b06feebc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -985,6 +985,7 @@ RedmineApp::Application.routes.draw do match 'admin/latest_login_users', as: :latest_login_users match 'admin/latest_login_teachers', as: :latest_login_teachers get 'admin/homework' + get 'admin/apply_for_homework' resources :auth_sources do member do diff --git a/lib/redmine.rb b/lib/redmine.rb index 47ee3d38f..7fec36426 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -395,6 +395,7 @@ Redmine::MenuManager.map :admin_menu do |menu| menu.push :course_resource_list, {:controller => 'admin', :action => 'course_resource_list'}, :caption => :label_course_resource_list menu.push :project_resource_list, {:controller => 'admin', :action => 'project_resource_list'}, :caption => :label_project_resource_list menu.push :homework, {:controller => 'admin', :action => 'homework'}, :caption => :label_user_homework + menu.push :apply_for_homework, {:controller => 'admin', :action => 'apply_for_homework'}, :caption => :label_apply_homework end #Modified by young diff --git a/lib/redmine/menu_manager.rb b/lib/redmine/menu_manager.rb index f9ce21987..6d1bb2fcb 100644 --- a/lib/redmine/menu_manager.rb +++ b/lib/redmine/menu_manager.rb @@ -193,6 +193,8 @@ module Redmine title = h(caption) + "(#{Course.all.count})" when '用户列表' title = h(caption) + "(#{User.all.count})" + when '分享作业申请' + title = h(caption) + "(#{ApplyHomework.where("user_id != 0").count})" end link_to(title, url, item.html_options(:selected => selected)) From cf1cf58babb1f98869b99623513273aec077c6b7 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 9 May 2016 18:44:20 +0800 Subject: [PATCH 155/257] =?UTF-8?q?=E7=BB=84=E7=BB=87=E9=97=A8=E6=88=B7?= =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E7=9B=AE=E5=BD=95=E6=B7=BB=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E6=A0=8F"|"=E4=BB=A5=E5=8F=8A=E7=99=BB=E5=BD=95=E6=9C=AA?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BD=8D=E7=BD=AE=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_org2.html.erb | 6 +- app/views/layouts/base_sub_domain.html.erb | 378 +- db/schema.rb | 4379 +++++++++-------- .../javascripts/code_review.js | 706 +-- .../stylesheets/activity.css | 6 +- .../stylesheets/code_review.css | 192 +- .../stylesheets/window_js/MIT-LICENSE | 38 +- .../stylesheets/window_js/alert.css | 238 +- .../stylesheets/window_js/alert_lite.css | 176 +- .../stylesheets/window_js/alphacube.css | 300 +- .../stylesheets/window_js/behavior.htc | 100 +- .../stylesheets/window_js/darkX.css | 242 +- .../stylesheets/window_js/debug.css | 50 +- .../stylesheets/window_js/default.css | 310 +- .../stylesheets/window_js/iefix/iepngfix.css | 6 +- .../stylesheets/window_js/iefix/iepngfix.htc | 106 +- .../stylesheets/window_js/lighting.css | 1920 ++++---- .../window_js/lighting/pngbehavior.htc | 134 +- .../stylesheets/window_js/mac_os_x.css | 666 +-- .../stylesheets/window_js/mac_os_x_dialog.css | 320 +- .../stylesheets/window_js/nuncio.css | 328 +- .../stylesheets/window_js/spread.css | 216 +- public/stylesheets/org2.css | 5 +- 23 files changed, 5428 insertions(+), 5394 deletions(-) diff --git a/app/views/layouts/base_org2.html.erb b/app/views/layouts/base_org2.html.erb index 0052cf077..4c76056d6 100644 --- a/app/views/layouts/base_org2.html.erb +++ b/app/views/layouts/base_org2.html.erb @@ -101,10 +101,11 @@ <%= field.name %> - <% else activity.container_type == 'OrgSubfield' %> @@ -39,6 +40,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "104", :height => "104"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "fl sn-index-wximg" %> <% end %>

    <%=link_to message.content.to_s.html_safe, board_message_url_in_org(message.board.id, message.id), :target => "_blank" %>

    +
    <% else %> @@ -51,6 +53,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "104", :height => "104"), board_message_path(message.board, activity), :target => "_blank", :class => "fl sn-index-wximg" %> <% end %>

    <%=link_to message.content.to_s.html_safe, board_message_path(message.board, activity), :target => "_blank" %>

    +
    <% end %> @@ -66,6 +69,7 @@ <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "104", :height => "104"), news_path(news), :target => "_blank", :class => "fl sn-index-wximg" %> <% end %>

    <%=link_to news.description.to_s.html_safe, news_path(news), :target => "_blank" %>

    +
    <% end %> @@ -96,3 +100,12 @@
    <% end %> <% end %> + + diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 6e2954bf4..f7be08e71 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -52,6 +52,7 @@ a.sn-link-select {color:#809df9;} .sn-ml15 {margin-left:15px;} .sn-ml55 {margin-left:55px;} .sn-mr0 {margin-right:0px !important;} +.sn-mr20 {margin-right:20px;} .sn-mr50 {margin-right:50px;} .sn-w229 {width:229px;} /*头部样式*/ From e8424d9b971f53413cc6371668dfcaac0d12e4e2 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 10 May 2016 10:57:55 +0800 Subject: [PATCH 162/257] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=AD=97=E4=BD=93=E5=A4=A7=E5=B0=8F=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_project_boardlist.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/users/_project_boardlist.html.erb b/app/views/users/_project_boardlist.html.erb index 5f61d26ef..55f576db1 100644 --- a/app/views/users/_project_boardlist.html.erb +++ b/app/views/users/_project_boardlist.html.erb @@ -44,7 +44,7 @@ <% end %>

    <%=render :partial =>"users/intro_content_ex", :locals=>{:user_activity_id =>activity.id, :content=>content, :maxheight=>54, :maxwordsnum=>100} %>

    -
    +
    发帖时间:<%= format_time(activity.created_on) %> 更新时间:<%= format_time(ForgeActivity.where("forge_act_type='#{activity.class}' and forge_act_id =#{activity.id}").first.updated_at) %> <% count=0 %> From 11017d72c5b63e18611f6226f3d7380a7e6b843a Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 10 May 2016 11:28:24 +0800 Subject: [PATCH 163/257] =?UTF-8?q?=E8=80=81=E5=B8=88=E5=AF=B9=E4=BD=9C?= =?UTF-8?q?=E5=93=81=E7=9A=84=E8=AF=84=E5=88=86=E5=8F=AF=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/student_work/_add_score.html.erb | 28 +++++++++++-- .../_no_teacher_score_notice.html.erb | 15 +++++++ public/javascripts/course.js | 42 ++++++++++++++++++- 3 files changed, 80 insertions(+), 5 deletions(-) create mode 100644 app/views/student_work/_no_teacher_score_notice.html.erb diff --git a/app/views/student_work/_add_score.html.erb b/app/views/student_work/_add_score.html.erb index a2137d103..ca580bebc 100644 --- a/app/views/student_work/_add_score.html.erb +++ b/app/views/student_work/_add_score.html.erb @@ -7,8 +7,9 @@

  • 评分: - - + + +
  • <% if @is_teacher%> @@ -16,6 +17,8 @@
    <%= render :partial => 'student_work/student_work_attachment_form', :locals => {:work => work,:score => score} %>
    +
    + <%end%> 提交
    @@ -28,12 +31,29 @@ $('#hint_message_'+id).html("为了对其他学生的作品负责,请您务必填写评语"); $("#hint_message_"+id).css('color','#ff0000'); $("#score_comment_"+id).focus(); - } else { + } else if (parseFloat($("#score_"+id).val()) == -1) { + $('#score_notice_span_'+id).html("请先评分"); + $('#score_notice_span_'+id).show(); + $("#score_"+id).focus(); + } + else { $("#work_submit_"+id).parent().parent().submit(); $('#about_hwork_'+id).html(''); } <% else %> - $("#work_submit_"+id).parent().parent().submit(); + if($.trim($('#score_comment_'+id).val()) == "" && parseFloat($("#score_"+id).val()) == -1 && $("#attachments_fields"+id).children().length == 0){ + $("#none_notice_"+id).show(); + } else if(parseFloat($("#score_"+id).val()) == -1) { + $('#ajax-modal').html('<%= escape_javascript(render :partial => 'student_work/no_teacher_score_notice') %>'); + showModal('ajax-modal', '450px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before("" + + ""); + $('#ajax-modal').parent().css("top","30%").css("left","30%").css("position","fixed").css("border","3px solid #269ac9"); + } + else { + $("#work_submit_" + id).parent().parent().submit(); + } <% end %> } \ No newline at end of file diff --git a/app/views/student_work/_no_teacher_score_notice.html.erb b/app/views/student_work/_no_teacher_score_notice.html.erb new file mode 100644 index 000000000..12b3025a9 --- /dev/null +++ b/app/views/student_work/_no_teacher_score_notice.html.erb @@ -0,0 +1,15 @@ +
    +
    +

    + 当前作品未进行评分,是否确定提交? +

    + +
    +
    \ No newline at end of file diff --git a/public/javascripts/course.js b/public/javascripts/course.js index 4e698e6f2..cdaf8866a 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -1057,10 +1057,26 @@ $.fn.peSlider = function(settings){ max: parseFloat(input.attr('max')), value: parseFloat(input.val()) }); + if(parseFloat(input.val()) == -1){ + input.css("color", "#fff"); + input.next().next().html("未评分"); + input.next().next().show(); + } else{ + input.css("color", "#000"); + input.next().next().hide(); + } slider .insertBefore(input) .slider(sliderOptions) .bind('slide', function(e, ui){ + if(ui.value == -1){ + input.css("color", "#fff"); + input.next().next().html("未评分"); + input.next().next().show(); + } else { + input.css("color", "#000"); + input.next().next().hide(); + } input.val(ui.value); friendlyVal = input.val() + ' ' + thisUnits; slider.find('a').attr({ @@ -1081,6 +1097,14 @@ $.fn.peSlider = function(settings){ .keyup(function(){ var inVal = parseFloat(input.val()); if( !isNaN(inVal) ){ + if(inVal == -1){ + input.css("color", "#fff"); + input.next().next().html("未评分"); + input.next().next().show(); + } else { + input.css("color", "#000"); + input.next().next().hide(); + } slider.slider('value', inVal); input.val(slider.slider('value')); } @@ -1088,6 +1112,14 @@ $.fn.peSlider = function(settings){ .change(function(){ var inVal = parseFloat(input.val()); if( !isNaN(inVal) ){ + if(inVal == -1){ + input.css("color", "#fff"); + input.next().next().html("未评分"); + input.next().next().show(); + } else { + input.css("color", "#000"); + input.next().next().hide(); + } slider.slider('value', inVal); input.val(slider.slider('value')); } @@ -1095,7 +1127,15 @@ $.fn.peSlider = function(settings){ .blur(function(){ var inVal = parseFloat(input.val()); if( isNaN(inVal) ){ - input.val(0); + input.val(-1); + } + if(input.val() == -1){ + input.css("color", "#fff"); + input.next().next().html("未评分"); + input.next().next().show(); + } else { + input.css("color", "#000"); + input.next().next().hide(); } }); if( !settings.step ){ From d303a0637766b9c2974da2d63c1c5e0bfc03d4cb Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 10 May 2016 11:32:20 +0800 Subject: [PATCH 164/257] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 4 ++-- app/views/layouts/new_base_user.html.erb | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index ad8aca864..3001164a5 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1260,13 +1260,13 @@ class UsersController < ApplicationController #显示更多用户课程 def user_courses4show @page = params[:page].to_i + 1 - @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(created_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5).offset(@page * 5) + @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5).offset(@page * 5) end #显示更多用户项目 def user_projects4show @page = params[:page].to_i + 1 - @projects = @user.projects.visible.select("projects.*,(SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5).offset(@page * 5) + @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5).offset(@page * 5) end def user_course_activities diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index 83d463d65..e43aa499f 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -226,7 +226,6 @@ end %> - <%# courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5) %> <% courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5) %>
    @@ -258,7 +257,6 @@ end %> - <%# projects = @user.projects.visible.select("projects.*, (SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%> <% projects = @user.projects.visible.select("projects.*, (SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%>
    From 99d9a288285b59d70b1a635a494d832a11540477 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 10 May 2016 11:33:02 +0800 Subject: [PATCH 165/257] =?UTF-8?q?=E5=90=8D=E5=B8=88=E6=A6=9Csql=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/organizations_controller.rb | 2 +- app/helpers/organizations_helper.rb | 6 +++++- app/models/school.rb | 1 + app/views/organizations/_show_teachers.html.erb | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index 561ebf8a8..07bd55321 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -103,7 +103,7 @@ class OrganizationsController < ApplicationController @org_subfield = OrgSubfield.find(params[:org_subfield_id]) if @org_subfield.field_type == "Comptec" || @org_subfield.field_type == "Compstu" #@org_students = User.find_by_sql("SELECT * FROM users u, user_extensions ue where u.id = ue.user_id and ue.identity =1;") - @org_teachers = User.find_by_sql("SELECT * FROM users u, user_extensions ue where u.id = ue.user_id and ue.identity =0;") + @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 order by course_count desc") else @org_subfield_ids = @org_subfield.org_document_comments.map(&:id) << 0 @org_activities = OrgActivity.where("(org_act_type='OrgDocumentComment'and org_act_id in (#{@org_subfield_ids.join(",")})) || (container_type='OrgSubfield' and container_id=#{@org_subfield.id})").order('updated_at desc').page(params[:page] || 1).per(10) diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb index f84c71a59..d2974baae 100644 --- a/app/helpers/organizations_helper.rb +++ b/app/helpers/organizations_helper.rb @@ -170,7 +170,11 @@ module OrganizationsHelper end def org_teacher_resource_count user - results = Attachment.find_by_sql("SELECT * FROM `attachments` where author_id = #{user.user_id};") + results = Attachment.find_by_sql("SELECT count(*) FROM attachments where author_id = #{user.id};").count + end + + def org_teacher_course_count user + results = Course.find_by_sql("select count(*) from courses where courses.tea_id = #{user.id}").count end end diff --git a/app/models/school.rb b/app/models/school.rb index 6cafb0473..b9a1d88cb 100644 --- a/app/models/school.rb +++ b/app/models/school.rb @@ -5,4 +5,5 @@ class School < ActiveRecord::Base def to_s self.name.to_s end + end diff --git a/app/views/organizations/_show_teachers.html.erb b/app/views/organizations/_show_teachers.html.erb index 28e308b49..9418b861f 100644 --- a/app/views/organizations/_show_teachers.html.erb +++ b/app/views/organizations/_show_teachers.html.erb @@ -23,7 +23,7 @@ <%= org_teacher.technical_title %>
    <% end %>
    -
    <%= User.current.courses.count %>
    +
    <%= org_teacher.courses.count %>
    课程数
    @@ -33,7 +33,7 @@
    -
    <%= org_teacher_resource_count(org_teacher) %>8000
    +
    <%= org_teacher_resource_count(org_teacher) %>
    资源数
    From ba07e564dbf8f5411f2270ba30c1a8efc9e0ebe1 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 10 May 2016 11:51:41 +0800 Subject: [PATCH 166/257] =?UTF-8?q?=E8=80=81=E5=B8=88=E8=AF=84=E5=88=86?= =?UTF-8?q?=E7=9A=84=E5=BC=B9=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/student_work/_add_score.html.erb | 3 +++ app/views/student_work/_no_teacher_score_notice.html.erb | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/student_work/_add_score.html.erb b/app/views/student_work/_add_score.html.erb index ca580bebc..29fd8b63a 100644 --- a/app/views/student_work/_add_score.html.erb +++ b/app/views/student_work/_add_score.html.erb @@ -56,4 +56,7 @@ } <% end %> } + function submit_teacher_score(){ + $("#work_submit_<%=work.id %>").parent().parent().submit(); + } \ No newline at end of file diff --git a/app/views/student_work/_no_teacher_score_notice.html.erb b/app/views/student_work/_no_teacher_score_notice.html.erb index 12b3025a9..02febb5d5 100644 --- a/app/views/student_work/_no_teacher_score_notice.html.erb +++ b/app/views/student_work/_no_teacher_score_notice.html.erb @@ -4,7 +4,7 @@ 当前作品未进行评分,是否确定提交?

    - + 确  定 From e502aa7c439558fcd7f96d5b23c95213e0aeb67d Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 10 May 2016 12:51:42 +0800 Subject: [PATCH 167/257] =?UTF-8?q?KE=E8=A1=A8=E6=A0=BC=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E8=87=AA=E5=8A=A8=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=81=9A=E4=BA=86=E4=B8=80=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 12 ++-- app/views/users/_user_course_list.html.erb | 2 +- app/views/users/_user_project_list.html.erb | 2 +- .../kindeditor/assets_controller.rb | 12 ++++ lib/rails_kindeditor/config/routes.rb | 1 + public/assets/kindeditor/kindeditor.js | 16 ++--- public/assets/kindeditor/pasteimg.js | 66 +++++++++++++++++++ .../kindeditor/plugins/code/previewcode.css | 10 ++- .../assets/kindeditor/plugins/paste/paste.js | 1 + .../assets/kindeditor/plugins/table/table.js | 2 +- public/stylesheets/courses.css | 6 ++ public/stylesheets/new_user.css | 11 +++- public/stylesheets/project.css | 4 ++ public/stylesheets/public.css | 6 +- 14 files changed, 127 insertions(+), 24 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 54970add6..ce54496a0 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2855,11 +2855,11 @@ class UsersController < ApplicationController @c_sort = 2 end - sort_name = "updated_at" + sort_name = "updated_on" sort_type = @c_sort == 1 ? "asc" : "desc" - @courses = @user.courses.visible.where("is_delete =?", 0).order("#{sort_name} #{sort_type}") - # @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a #{sort_type}") + # @courses = @user.courses.visible.where("is_delete =?", 0).order("#{sort_name} #{sort_type}") + @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS #{sort_name}").order("#{sort_name} #{sort_type}") #根据 作业+资源数排序 if @order.to_i == 2 @@ -2900,11 +2900,11 @@ class UsersController < ApplicationController @c_sort = 2 end - sort_name = "updated_on" + sort_name = "updated_at" sort_type = @c_sort == 1 ? "asc" : "desc" - @projects = @user.projects.visible.order("#{sort_name} #{sort_type}") - # @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a #{sort_type}") + #@projects = @user.projects.visible.order("#{sort_name} #{sort_type}") + @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS #{sort_name} ").order("#{sort_name} #{sort_type}") #根据 问题+资源数排序 @project.project_score.issue_num @project.project_score.attach_num if @order.to_i == 2 diff --git a/app/views/users/_user_course_list.html.erb b/app/views/users/_user_course_list.html.erb index 212798eb1..8ef0faa9e 100644 --- a/app/views/users/_user_course_list.html.erb +++ b/app/views/users/_user_course_list.html.erb @@ -31,7 +31,7 @@ 创建时间:<%= format_time(course.created_at) %> - 更新时间:<%= format_time(course.updated_at) %> + 更新时间:<%= format_time(course.updated_on) %> 开课学期:  <%= current_time_and_term course %> diff --git a/app/views/users/_user_project_list.html.erb b/app/views/users/_user_project_list.html.erb index b7b4948e4..1526da58f 100644 --- a/app/views/users/_user_project_list.html.erb +++ b/app/views/users/_user_project_list.html.erb @@ -28,7 +28,7 @@
  • 创建时间:<%= format_time(project.created_on) %> - 更新时间:<%= format_time(project.updated_on) %> + 更新时间:<%= format_time(project.updated_at) %>

    <%= project.project_score.issue_num %>问题| <%= project.project_score.attach_num %>资源

  • diff --git a/lib/rails_kindeditor/app/controllers/kindeditor/assets_controller.rb b/lib/rails_kindeditor/app/controllers/kindeditor/assets_controller.rb index 0e1177563..c94a3944e 100644 --- a/lib/rails_kindeditor/app/controllers/kindeditor/assets_controller.rb +++ b/lib/rails_kindeditor/app/controllers/kindeditor/assets_controller.rb @@ -118,6 +118,18 @@ class Kindeditor::AssetsController < ApplicationController @result[:file_list] = @file_list render :text => @result.to_json end + + def uploadpic + picstr = params["pic"]; + + picArry = picstr.split("|") + + picArry.each do |picurl| + puts picurl + end + + + end private def show_error(msg) diff --git a/lib/rails_kindeditor/config/routes.rb b/lib/rails_kindeditor/config/routes.rb index 7ebb0b748..86b888ad3 100644 --- a/lib/rails_kindeditor/config/routes.rb +++ b/lib/rails_kindeditor/config/routes.rb @@ -2,5 +2,6 @@ Rails.application.routes.draw do namespace :kindeditor do post "/upload" => "assets#create" get "/filemanager" => "assets#list" + get "/uploadpic" => "assets#uploadpic" end end \ No newline at end of file diff --git a/public/assets/kindeditor/kindeditor.js b/public/assets/kindeditor/kindeditor.js index 74013be54..579da5d0c 100644 --- a/public/assets/kindeditor/kindeditor.js +++ b/public/assets/kindeditor/kindeditor.js @@ -3,8 +3,7 @@ // for (var property in myObject) { // s = s + "\n "+property +": " + myObject[property] ; // } -// alert(s); -//} +// alert(s) /******************************************************************************* * KindEditor - WYSIWYG HTML Editor for Internet * Copyright (C) 2006-2013 kindsoft.net @@ -3788,17 +3787,17 @@ _extend(KEdit, KWidget, { } else { val = body.innerHTML; } - if (self.beforeGetHtml) { - val = self.beforeGetHtml(val); - } +// if (self.beforeGetHtml) { +// val = self.beforeGetHtml(val); +// } if (_GECKO && val == '
    ') { val = ''; } return val; } - if (self.beforeSetHtml) { - val = self.beforeSetHtml(val); - } +// if (self.beforeSetHtml) { +// val = self.beforeSetHtml(val); +// } if (_IE && _V >= 9) { val = val.replace(/(<.*?checked=")checked(".*>)/ig, '$1$2'); } @@ -4690,6 +4689,7 @@ function _bindNewlineEvent() { }); K(doc).keyup(function(e) { if (e.which != 13 || e.shiftKey || e.ctrlKey || e.altKey) { + df(); return; } if (newlineTag == 'br') { diff --git a/public/assets/kindeditor/pasteimg.js b/public/assets/kindeditor/pasteimg.js index f08a768aa..5f62eac17 100644 --- a/public/assets/kindeditor/pasteimg.js +++ b/public/assets/kindeditor/pasteimg.js @@ -352,3 +352,69 @@ function enablePasteImg(_editor) { }); return; }; + +function df() { + var haspicContainer = document.getElementById("has_pic"); + if (haspicContainer == null) { + haspicContainer = document.createElement("div"); + haspicContainer.id = "has_pic"; + haspicContainer.innerHTML = "
    "; + $(".ke-toolbar").after(haspicContainer); + } + + var img = $(".ke-edit-iframe").contents().find("img"); + + var piccount = 0; + var sstr = ""; + $(img).each(function (i) { + var that = $(this); + if (that.attr("src").indexOf("http://") >= 0 || that.attr("src").indexOf("https://") >= 0) { + piccount++; + if (i == $(img).length - 1) + sstr += that.attr("src"); + else + sstr += that.attr("src") + "|"; + } + }); + + $("#piclist").val(sstr); + document.getElementById("has_pic").style.display = (piccount > 0) ? "block" : "none"; +} + +function closeupload() { + $("#has_pic").hide(); + $("#upload").show(); +} + +function uploadpic() { + var piclist = encodeURI($("#piclist").val()); + if (piclist.length == 0) return false; + $.ajax({ + url: "/kindeditor/uploadpic", + data: "pic=" + piclist, + type: "GET", + beforeSend: function () { + $("#upload").hide(); + $("#confirm").text("正在上传中..."); + }, + success: function (msg) { + if (msg !== "") { + var str = new Array(); + str = msg.split('|'); + var img = $(".ke-edit-iframe").contents().find("img"); + + $(img).each(function (i) { + var that = $(this); + if (that.attr("src").indexOf("http://") >= 0 || that.attr("src").indexOf("https://") >= 0) { + that.attr("src", "/uploads/image/" + str[i]); + that.attr("data-ke-src", "/uploads/image/" + str[i]); + } + }); + + $("#confirm").html(img.length + "张图片已经上传成功!  关闭"); + } + else $("#confirm").text("上传失败!"); + } + }); +} + diff --git a/public/assets/kindeditor/plugins/code/previewcode.css b/public/assets/kindeditor/plugins/code/previewcode.css index c2adf3a35..b9c8252e8 100644 --- a/public/assets/kindeditor/plugins/code/previewcode.css +++ b/public/assets/kindeditor/plugins/code/previewcode.css @@ -1,7 +1,7 @@ .ke-content { font-size: 12px; - font: 14px/1.5 "sans serif",tahoma,verdana,helvetica;font-family: ΢ź, ; - font-family:Tahoma; + font: 14px/1.5 "sans serif",tahoma,verdana,helvetica;font-family: ΢���ź�, ����; + font-family:Tahoma; } .ke-content pre { font-size:9pt; @@ -48,4 +48,8 @@ .ke-content blockquote {margin:15px 10px;border:2px solid #eee;padding:5px 5px 5px 35px;background:#f4f5f7 url('../img/blockquote.gif') no-repeat left top;color:#060;font-size:9pt;} span.at {color:#269ac9;} -span.at a{color:#269ac9;text-decoration: none;} \ No newline at end of file +span.at a{color:#269ac9;text-decoration: none;} + +/*yk*/ +.ke-content ol li{list-style-type: decimal;margin-left: 20px;} +.ke-content ul li{list-style-type: disc;margin-left: 20px;} \ No newline at end of file diff --git a/public/assets/kindeditor/plugins/paste/paste.js b/public/assets/kindeditor/plugins/paste/paste.js index 767cefb09..abf777398 100644 --- a/public/assets/kindeditor/plugins/paste/paste.js +++ b/public/assets/kindeditor/plugins/paste/paste.js @@ -353,3 +353,4 @@ KindEditor.plugin('paste', function(K) { return; }); + diff --git a/public/assets/kindeditor/plugins/table/table.js b/public/assets/kindeditor/plugins/table/table.js index 9eb29fb30..be386f7cc 100644 --- a/public/assets/kindeditor/plugins/table/table.js +++ b/public/assets/kindeditor/plugins/table/table.js @@ -283,7 +283,7 @@ KindEditor.plugin('table', function(K) { for (var i = 0; i < rows; i++) { html += ''; for (var j = 0; j < cols; j++) { - html += '' + (K.IE ? ' ' : '
    ') + ''; + html += '' + (K.IE ? ' ' : '
    ') + ''; } html += ''; } diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css index f83a180d3..6e55146a6 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -124,12 +124,14 @@ a.postTypeGrey:hover {color:#269ac9;} .homepagePostDes {float:left; width:655px; margin-left:15px;} .homepagePostTo {font-size:14px; color:#484848; margin-bottom:5px;} .homepagePostTitle {font-size:14px; color:#484848; margin-bottom:5px; font-weight:bold;} +.homepagePostTitle td,.homepagePostTitle tr {border: 1px solid; border-color: inherit;} .homepagePostSubmitContainer {height:25px; margin-top: 8px; margin-bottom: 5px;} .homepagePostSubmit {font-size:14px; color:#888888; border:1px solid #dddddd; background-color:#eaeaea; float:left; margin-right:20px; padding:0px 10px;} .homepagePostSubmit:hover {background-color:#d8d8d8;} .homepagePostIntro {font-size:14px; color:#484848;overflow:hidden;} .homepagePostIntro ol li{list-style-type: decimal;margin-left: 20px;} .homepagePostIntro ul li{list-style-type: disc;margin-left: 20px;} +.homepagePostIntro td,.homepagePostIntro tr {border: 1px solid; border-color: inherit;} .homepagePostDeadline {font-size:12px; color:#888888; float:left; margin-top: 2px;} .homepagePostDate {font-size:12px; color:#888888;margin-bottom: 5px;} @@ -172,6 +174,7 @@ a.postOptionLink2:hover {color:#ffffff; background-color:#269ac9;} .homepagePostReplyContent {font-size:12px; color:#484848; margin-bottom:12px;} .homepagePostReplyContent ol li{list-style-type: decimal;margin-left: 20px;} .homepagePostReplyContent ul li{list-style-type: disc;margin-left: 20px;} +.homepagePostReplyContent td,.homepagePostReplyContent tr {border: 1px solid; border-color: inherit;} .table_maxWidth table {max-width: 642px;} .homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;} .homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;} @@ -1111,6 +1114,9 @@ a.link_file_a2{ background:url(../images/pic_file.png) 0 -15px no-repeat; paddin .postDetailTitle {width:580px; max-width:580px; margin-bottom:5px;} .postDetailDes {width:580px; max-width:580px; margin-bottom:6px; color:#888888;display:block;overflow:hidden;word-break:keep-all;text-overflow:ellipsis;} .postDetailDes p,div,em{word-break: break-all;word-wrap: break-word;} +.postDetailDes ol li{list-style-type: decimal;margin-left: 20px;} +.postDetailDes ul li{list-style-type: disc;margin-left: 20px;} +.postDetailDes td,.homepagePostReplyContent tr {border: 1px solid; border-color: inherit;} .homepagePostIntro p,.homepagePostIntro div,.homepagePostIntro em, .homepagePostIntro span{text-align: justify; text-justify:inter-ideograph; word-break: normal !important; word-wrap: break-word !important; line-height: 18px !important;} .postDetailCreater {color:#888888; font-size:12px; float:left; margin-right:25px;} .postDetailDate {color:#888888; font-size:12px; float:left;} diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 8e62f6d3f..67176c761 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -7,7 +7,8 @@ div,img,tr,td,table{ border:0;} table,tr,td{border:0;cellspacing:0; cellpadding:0;} ol,ul,li{ list-style-type:none} a:link,a:visited{color:#7f7f7f;text-decoration:none;} -a:hover,a:active{color:#000;} +a:hover,a:active{color:#000;}tr,td,table{ border:0;} +table,tr,td{border:0;cellspacing:0; cellpadding:0;} .pInline {margin:0px; padding:0px; display:inline-block;} /*常用*/ @@ -667,6 +668,7 @@ a.postTypeGrey:hover {color:#269ac9;} .homepagePostDes {float:left; width:655px; margin-left:15px; overflow:hidden;} .homepagePostTo {font-size:14px; color:#484848; margin-bottom:5px;} .homepagePostTitle {font-size:14px; color:#484848; margin-bottom:5px; font-weight:bold;} +.homepagePostTitle td,.homepagePostTitle tr {border: 1px solid; border-color: inherit;} .homepagePostSubmitContainer {height:25px; margin-top: 8px; margin-bottom: 5px;} .homepagePostSubmit {font-size:14px; color:#888888; border:1px solid #dddddd; background-color:#eaeaea; float:left; margin-right:20px; padding:0px 10px;} .homepagePostSubmit:hover {background-color:#d8d8d8;} @@ -676,6 +678,7 @@ a.postTypeGrey:hover {color:#269ac9;} .homepagePostReply {width:720px; margin:0px auto; background-color:#f1f1f1; margin-top:10px;} .homepagePostIntro ol li{list-style-type: decimal;margin-left: 20px;} .homepagePostIntro ul li{list-style-type: disc;margin-left: 20px;} +.homepagePostIntro td,.homepagePostIntro tr {border: 1px solid; border-color: inherit;} .homepagePostReplyBanner {width:718px; height:33px; border:1px solid #e4e4e4; line-height:33px; vertical-align:middle; font-size:12px; color:#888888;} .borderBottomNone {border-bottom:none !important;} .topBorder {border-top: 1px solid #e4e4e4;} @@ -712,6 +715,7 @@ a.postOptionLink:hover {color:#ffffff; background-color:#269ac9;} .homepagePostReplyContent {font-size:12px; color:#484848; margin:3px 5px 12px 5px;font: 14px/1.5 "sans serif",tahoma,verdana,helvetica;font-family:"微软雅黑","宋体";} .homepagePostReplyContent ol li{list-style-type: decimal;margin-left: 20px;} .homepagePostReplyContent ul li{list-style-type: disc;margin-left: 20px;} +.homepagePostReplyContent td,.homepagePostReplyContent tr {border: 1px solid; border-color: inherit;} .table_maxWidth table {max-width: 642px;} .homepagePostProjectState {width:52px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;} .homepagePostAssignTo {float:left; font-size:14px; color:#269ac9;} @@ -853,6 +857,9 @@ a.sortArrowActiveU {background:url(images/post_image_list.png) -17px -20px no-re .postDetailTitle {width:570px; max-width:570px; margin-bottom:5px;} .postDetailDes {width:580px; max-width:580px; margin-bottom:6px; color:#888888;display:block;overflow:hidden;word-break:keep-all;text-overflow:ellipsis;} .postDetailDes p,div,em{word-break: break-all;word-wrap: break-word;} +.postDetailDes ol li{list-style-type: decimal;margin-left: 20px;} +.postDetailDes ul li{list-style-type: disc;margin-left: 20px;} +.postDetailDes td,.homepagePostReplyContent tr {border: 1px solid; border-color: inherit;} .homepagePostIntro p,.homepagePostIntro div,.homepagePostIntro em, .homepagePostIntro span{text-align: justify; text-justify:inter-ideograph; word-break: normal !important; word-wrap: break-word !important; line-height: 18px !important;} .postDetailCreater {color:#888888; font-size:12px; float:left; margin-right:25px;} .postDetailDate {color:#888888; font-size:12px; float:left;} @@ -1551,4 +1558,4 @@ ul.wlist li{float: left;} ul.wlist li a{ border:1px solid #15bccf; padding: 1px 4px 1px 4px; margin-left:3px;} ul.wlist li a:hover{ background:#15bccf; color:#fff; text-decoration:none;} /*.wlist_select { background-color:#64bdd9; color:#fff; padding: 1px 5px 0px 5px; margin-left:3px;margin-top: -2px; border:1px solid #64bdd9;}*/ -.wlist_select a{background-color: #64bdd9;cursor: default;} +.wlist_select a{background-color: #64bdd9;cursor: default;} \ No newline at end of file diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css index 79f06769e..1ef99e66b 100644 --- a/public/stylesheets/project.css +++ b/public/stylesheets/project.css @@ -973,6 +973,7 @@ a:hover.Reply_pic{border:1px solid #64bdd9;} } .homepagePostIntro ol li{list-style-type: decimal;margin-left: 20px;} .homepagePostIntro ul li{list-style-type: disc;margin-left: 20px;} +.homepagePostIntro td,.homepagePostIntro tr {border: 1px solid; border-color: inherit;} .topBorder { border-top: 1px solid #E4E4E4; } @@ -1110,6 +1111,9 @@ a:hover.BlueCirBtnMini{ background:#269ac9; color:#fff;} .postDetailTitle {width:580px; max-width:580px; margin-bottom:5px;} .postDetailDes {width:580px; max-width:580px; margin-bottom:6px; color:#888888;display:block;overflow:hidden;word-break:keep-all;text-overflow:ellipsis;} .postDetailDes p,div,em{word-break: break-all;word-wrap: break-word;} +.postDetailDes ol li{list-style-type: decimal;margin-left: 20px;} +.postDetailDes ul li{list-style-type: disc;margin-left: 20px;} +.postDetailDes td,.homepagePostReplyContent tr {border: 1px solid; border-color: inherit;} .homepagePostIntro p,.homepagePostIntro div,.homepagePostIntro em, .homepagePostIntro span{text-align: justify; text-justify:inter-ideograph; word-break: normal !important; word-wrap: break-word !important; line-height: 18px !important;} .postDetailCreater {color:#888888; font-size:12px; float:left; margin-right:25px;} .postDetailDate {color:#888888; font-size:12px; float:left;} diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css index d016fee4a..253aaf46b 100644 --- a/public/stylesheets/public.css +++ b/public/stylesheets/public.css @@ -601,6 +601,7 @@ a.postTypeGrey:hover {color:#269ac9;} .homepagePostIntro {font-size:14px; color:#484848;overflow:hidden;} .homepagePostIntro ol li{list-style-type: decimal;margin-left: 20px;} .homepagePostIntro ul li{list-style-type: disc;margin-left: 20px;} +.homepagePostIntro td,.homepagePostIntro tr {border: 1px solid; border-color: inherit;} .homepagePostDeadline {font-size:12px; color:#888888; float:left; margin-top: 2px;} .homepagePostDate {font-size:12px; color:#888888;margin-bottom: 5px;} .homepagePostReplyBanner {width:708px; height:33px; border:1px solid #e4e4e4; line-height:33px; vertical-align:middle; font-size:12px; color:#888888;} @@ -636,6 +637,7 @@ a.postReplyCancel:hover {color:#ffffff;} .homepagePostReplyContent {font-size:12px; color:#484848; margin-bottom:12px;} .homepagePostReplyContent ol li{list-style-type: decimal;margin-left: 20px;} .homepagePostReplyContent ul li{list-style-type: disc;margin-left: 20px;} +.homepagePostReplyContent td,.homepagePostReplyContent tr {border: 1px solid; border-color: inherit;} .table_maxWidth table {max-width: 642px;} .homepagePostProjectState {width:42px; height:20px; line-height:20px; border-radius:1px; background-color:#28be6c; color:#ffffff; text-align:center; vertical-align:middle; font-size:12px; display:inline-block; margin-left:5px;} .homepagePostAssignTo {float:left; font-size:14px; color:#15bccf;} @@ -972,8 +974,8 @@ a.resourcesTypeUser {background:url(images/homepage_icon.png) -178px -453px no-r .AgreementTxt{text-indent:2em; margin-bottom:15px;} .AgreementImg{ margin:0px auto;} -.list_style ol li{list-style-type: decimal;margin-left: 20px;} -.list_style ul li{list-style-type: disc;margin-left: 20px;} +.list_style ol li{list-style-type:decimal; margin-left:20px;} +.list_style ul li{list-style-type:disc; margin-left:20px;} /* @功能 定义 */ span.at {color:#269ac9;} From 629591ad00aa1f1b5613396c99a8fab91edd7ddb Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 10 May 2016 12:55:42 +0800 Subject: [PATCH 168/257] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E3=80=81=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=88=97=E8=A1=A8=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=8F=96=E5=8A=A8=E6=80=81=E8=A1=A8=E4=B8=AD=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 12 +++++++----- app/views/users/_user_course_list.html.erb | 2 +- app/views/users/_user_project_list.html.erb | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 3001164a5..f7d965f8c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2997,10 +2997,12 @@ class UsersController < ApplicationController @c_sort = 2 end - sort_name = "updated_at" + sort_name = "updated_on" sort_type = @c_sort == 1 ? "asc" : "desc" - @courses = @user.courses.visible.where("is_delete =?", 0).order("#{sort_name} #{sort_type}") + # @courses = @user.courses.visible.where("is_delete =?", 0).order("#{sort_name} #{sort_type}") + @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS #{sort_name}").order("#{sort_name} #{sort_type}") + #根据 作业+资源数排序 if @order.to_i == 2 @type = 2 @@ -3040,11 +3042,11 @@ class UsersController < ApplicationController @c_sort = 2 end - sort_name = "updated_on" + sort_name = "updated_at" sort_type = @c_sort == 1 ? "asc" : "desc" - @projects = @user.projects.visible.order("#{sort_name} #{sort_type}") - # @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a #{sort_type}") + #@projects = @user.projects.visible.order("#{sort_name} #{sort_type}") + @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS #{sort_name} ").order("#{sort_name} #{sort_type}") #根据 问题+资源数排序 @project.project_score.issue_num @project.project_score.attach_num if @order.to_i == 2 diff --git a/app/views/users/_user_course_list.html.erb b/app/views/users/_user_course_list.html.erb index 212798eb1..8ef0faa9e 100644 --- a/app/views/users/_user_course_list.html.erb +++ b/app/views/users/_user_course_list.html.erb @@ -31,7 +31,7 @@ 创建时间:<%= format_time(course.created_at) %> - 更新时间:<%= format_time(course.updated_at) %> + 更新时间:<%= format_time(course.updated_on) %> 开课学期:  <%= current_time_and_term course %> diff --git a/app/views/users/_user_project_list.html.erb b/app/views/users/_user_project_list.html.erb index b7b4948e4..1526da58f 100644 --- a/app/views/users/_user_project_list.html.erb +++ b/app/views/users/_user_project_list.html.erb @@ -28,7 +28,7 @@
  • 创建时间:<%= format_time(project.created_on) %> - 更新时间:<%= format_time(project.updated_on) %> + 更新时间:<%= format_time(project.updated_at) %>

    <%= project.project_score.issue_num %>问题| <%= project.project_score.attach_num %>资源

  • From cabac5914c29e18c2a27c3660a6cc4a8f10db200 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 10 May 2016 13:41:21 +0800 Subject: [PATCH 169/257] =?UTF-8?q?=E5=AD=A6=E7=94=9F=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/organizations_helper.rb | 8 ++++++-- app/views/organizations/_show_teachers.html.erb | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb index d2974baae..3db2345ce 100644 --- a/app/helpers/organizations_helper.rb +++ b/app/helpers/organizations_helper.rb @@ -170,11 +170,15 @@ module OrganizationsHelper end def org_teacher_resource_count user - results = Attachment.find_by_sql("SELECT count(*) FROM attachments where author_id = #{user.id};").count + results = Attachment.find_by_sql("SELECT * FROM attachments where author_id = #{user.id};").count end def org_teacher_course_count user - results = Course.find_by_sql("select count(*) from courses where courses.tea_id = #{user.id}").count + results = Course.find_by_sql("select * from courses where courses.tea_id = #{user.id}").count end + def org_student_course_count user + course_ids = user.courses.map { |c| c.is_delete == 0 && c.id} + results = Member.find_by_sql("select id from courses where courses.tea_id = #{user.id}").count + end end diff --git a/app/views/organizations/_show_teachers.html.erb b/app/views/organizations/_show_teachers.html.erb index 9418b861f..cbaed9f74 100644 --- a/app/views/organizations/_show_teachers.html.erb +++ b/app/views/organizations/_show_teachers.html.erb @@ -23,12 +23,12 @@ <%= org_teacher.technical_title %>
    <% end %>
    -
    <%= org_teacher.courses.count %>
    +
    <%= org_teacher_course_count(org_teacher) %>
    课程数
    -
    500
    +
    <%= org_student_course_count(org_teacher) %>500
    学生数
    From 5baf467d13e9fe5d18345bdf70a5e7be9351f1a2 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 10 May 2016 15:26:08 +0800 Subject: [PATCH 170/257] =?UTF-8?q?=E4=BD=9C=E5=93=81=E8=AF=84=E5=88=86?= =?UTF-8?q?=E4=B8=8D=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 56 +++++++++++++++------- app/helpers/student_work_helper.rb | 2 +- app/views/student_work/_add_score.html.erb | 2 +- app/views/student_work/add_score.js.erb | 6 +-- public/stylesheets/courses.css | 8 ++-- public/stylesheets/new_user.css | 4 +- 6 files changed, 50 insertions(+), 28 deletions(-) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index e80b90d7b..c0e54df70 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -614,38 +614,60 @@ class StudentWorkController < ApplicationController render_403 and return unless @is_teacher || @homework.homework_detail_manual.comment_status == 2 @score = student_work_score @work,User.current if @score - @score.comment = params[:new_form][:user_message] if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" - @score.score = params[:score] if params[:score] + @new_score = StudentWorksScore.new + if params[:score] + @new_score.score = params[:score].to_i == -1 ? @score.score : params[:score] + end + @new_score.comment = params[:new_form][:user_message] if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" + @new_score.user_id = User.current.id + @new_score.student_work_id = @work.id if User.current.admin? - @score.reviewer_role = 1 + @new_score.reviewer_role = 1 else role = User.current.members.where("course_id = ?",@course.id).first.roles.first.name - @score.reviewer_role = get_role_by_name(role) + @new_score.reviewer_role = get_role_by_name(role) + end + if @is_teacher + @is_new = true + @is_last_a = false + else + @is_new = false end - @is_new = false + + #@score.comment = params[:new_form][:user_message] if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" + #@score.score = params[:score] if params[:score] + #if User.current.admin? + # @score.reviewer_role = 1 + #else + # role = User.current.members.where("course_id = ?",@course.id).first.roles.first.name + # @score.reviewer_role = get_role_by_name(role) + #end + #@is_new = false else @is_last_a = @work.student_works_scores.empty? - @score = StudentWorksScore.new - @score.score = params[:score] if params[:score] - @score.comment = params[:new_form][:user_message] if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" - @score.user_id = User.current.id - @score.student_work_id = @work.id + @new_score = StudentWorksScore.new + if params[:score] + @new_score.score = params[:score].to_i == -1 ? nil : params[:score] + end + @new_score.comment = params[:new_form][:user_message] if params[:new_form] && params[:new_form][:user_message] && params[:new_form][:user_message] != "" + @new_score.user_id = User.current.id + @new_score.student_work_id = @work.id if User.current.admin? - @score.reviewer_role = 1 + @new_score.reviewer_role = 1 else role = User.current.members.where("course_id = ?",@course.id).first.roles.first.name - @score.reviewer_role = get_role_by_name(role) + @new_score.reviewer_role = get_role_by_name(role) end @is_new = true end - @score.save_attachments(params[:attachments]) - render_attachment_warning_if_needed(@score) + @new_score.save_attachments(params[:attachments]) + render_attachment_warning_if_needed(@new_score) - if @score.save - case @score.reviewer_role + if @new_score.save + case @new_score.reviewer_role when 1 #教师评分:最后一个教师评分为最终评分 - @work.teacher_score = @score.score + @work.teacher_score = @new_score.score when 2 #教辅评分 教辅评分显示平均分 @work.teaching_asistant_score = @work.student_works_scores.where(:reviewer_role => 2).average(:score).try(:round, 2).to_f when 3 #学生评分 学生评分显示平均分 diff --git a/app/helpers/student_work_helper.rb b/app/helpers/student_work_helper.rb index 4e11e153e..74788751b 100644 --- a/app/helpers/student_work_helper.rb +++ b/app/helpers/student_work_helper.rb @@ -23,7 +23,7 @@ module StudentWorkHelper #获取指定用户对某一作业的评分结果 def student_work_score work,user - StudentWorksScore.where(:user_id => user.id,:student_work_id => work.id).first + StudentWorksScore.where(:user_id => user.id,:student_work_id => work.id).last end #获取指定评分的角色 diff --git a/app/views/student_work/_add_score.html.erb b/app/views/student_work/_add_score.html.erb index 29fd8b63a..74f81a30b 100644 --- a/app/views/student_work/_add_score.html.erb +++ b/app/views/student_work/_add_score.html.erb @@ -45,7 +45,7 @@ $("#none_notice_"+id).show(); } else if(parseFloat($("#score_"+id).val()) == -1) { $('#ajax-modal').html('<%= escape_javascript(render :partial => 'student_work/no_teacher_score_notice') %>'); - showModal('ajax-modal', '450px'); + showModal('ajax-modal', '500px'); $('#ajax-modal').siblings().remove(); $('#ajax-modal').before("" + ""); diff --git a/app/views/student_work/add_score.js.erb b/app/views/student_work/add_score.js.erb index 762aa4a8a..d3cb963f6 100644 --- a/app/views/student_work/add_score.js.erb +++ b/app/views/student_work/add_score.js.erb @@ -1,10 +1,10 @@ -$("#add_student_score_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'add_score',:locals => {:work => @work,:score => @score}) %>"); +$("#add_student_score_<%= @work.id%>").html("<%= escape_javascript(render :partial => 'add_score',:locals => {:work => @work,:score => @new_score}) %>"); $('#score_<%= @work.id%>').peSlider({range: 'min'}); <% if @is_new%> - $("#score_list_<%= @work.id%>").prepend("
    <%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @score,:is_last => @is_last_a}) %>
    "); + $("#score_list_<%= @work.id%>").prepend("
    <%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @new_score,:is_last => @is_last_a}) %>
    "); <% else %> - $("#work_score_<%= @score.id%>").html("<%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @score,:is_last => @is_last}) %>"); + $("#work_score_<%= @score.id%>").html("<%= escape_javascript(render :partial => 'student_work_score', :locals => {:score => @new_score,:is_last => @is_last}) %>"); <% end%> $("#score_list_<%= @work.id%>").removeAttr("style"); diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css index b81a7a7b6..2bc77b8ff 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -434,8 +434,8 @@ span.author { font-size: 0.9em; color: #888; } .bo{height:26px; border:1px solid #CCC; padding-left:5px; background:#fff;width:470px; } .bo02{height:26px; border:1px solid #CCC; padding-left:5px; background:#fff;width:480px; margin-left:2px; color: #999; } .hwork_txt{ width:560px; padding-left:5px; background:#fff;} -a.tijiao{ height:28px; display:block; width:80px; color:#fff; background:#15bccf; text-align:center; padding-top:4px; float:left; margin-right:10px;} -a:hover.tijiao{ background:#0f99a9;} +a.tijiao{ height:28px; display:block; width:80px; color:#fff; background:#269ac9; text-align:center; padding-top:4px; float:left; margin-right:10px;} +a:hover.tijiao{ background:#297fb8;} .members_left{ float:left; width:410px; margin-right:20px; text-align:center;} .members_left{} .members_left ul li{ height:30px; border-bottom:1px solid #E4E4E4; width:410px; padding-top:10px; } @@ -497,8 +497,8 @@ a.xls{ margin-left:5px; color:#136b3b;} .ni_con p{ color:#808181; } .ni_con a:hover{ text-decoration:none;} .ni_btn{ width:190px; margin:15px auto; line-height:1.9;} -a.tijiao{ height:28px; display:block; width:80px; color:#fff; background:#15bccf; text-align:center; padding-top:4px; float:left; margin-right:15px;} -a:hover.tijiao{ background:#0f99a9;} +a.tijiao{ height:28px; display:block; width:80px; color:#fff; background:#269ac9; text-align:center; padding-top:4px; float:left; margin-right:15px;} +a:hover.tijiao{ background:#297fb8;} .c_pink{ color:#e65d5e;} .ni_con_work { width:300px; margin:25px 20px;} .ni_con_work p{ color:#808181; } diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index be6cea109..20bc59a0e 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -1222,8 +1222,8 @@ blockquote { .bo{height:26px; border:1px solid #CCC; padding-left:5px; background:#fff;width:470px; } .bo02{height:26px; border:1px solid #CCC; padding-left:5px; background:#fff;width:480px; margin-left:2px; color: #999; } .hwork_txt{ width:560px; padding-left:5px; background:#fff;} -a.tijiao{ height:28px; display:block; width:80px; color:#fff; background:#15bccf; text-align:center; padding-top:4px; float:left; margin-right:10px;} -a:hover.tijiao{ background:#0f99a9;} +a.tijiao{ height:28px; display:block; width:80px; color:#fff; background:#269ac9; text-align:center; padding-top:4px; float:left; margin-right:10px;} +a:hover.tijiao{ background:#297fb8;} .members_left{ float:left; width:410px; margin-right:20px; text-align:center;} .members_left{} .members_left ul li{ height:30px; border-bottom:1px solid #E4E4E4; width:410px; padding-top:10px; } From 83f7de597ad33a1aa8f2552a4dbcb65912f48197 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 10 May 2016 15:30:27 +0800 Subject: [PATCH 171/257] =?UTF-8?q?=E6=9A=82=E6=97=B6=E5=B1=8F=E8=94=BD?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E7=9A=84=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=92=8C=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/news.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/news.rb b/app/models/news.rb index 1a2205f48..f0457dc81 100644 --- a/app/models/news.rb +++ b/app/models/news.rb @@ -62,7 +62,7 @@ class News < ActiveRecord::Base :author_key => :author_id acts_as_watchable - after_create :act_as_activity,:act_as_forge_activity, :act_as_course_activity,:act_as_system_message, :add_author_as_watcher, :send_mail, :add_news_count, :act_as_student_score + after_create :act_as_activity,:act_as_forge_activity, :act_as_course_activity, :add_author_as_watcher, :send_mail, :add_news_count, :act_as_student_score after_update :update_activity after_destroy :delete_kindeditor_assets, :decrease_news_count, :delete_org_activities, :down_course_score From d7add63f560689b9882086758551c0ffab59b82e Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 10 May 2016 16:03:50 +0800 Subject: [PATCH 172/257] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E6=A0=8F=E7=9B=AE?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E5=9B=9E=E5=A4=8D=E4=B8=8D=E5=8F=AF?= =?UTF-8?q?=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sub_document_comments/_show_sub_document_newstyle.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb index 0af0bb698..a82e24ad4 100644 --- a/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb +++ b/app/views/sub_document_comments/_show_sub_document_newstyle.html.erb @@ -14,7 +14,7 @@
  • <%=link_to document.title, org_subfield_sub_domain_sub_document_comment_path(document, :org_subfield_id => @org_subfield, :sub_domain_id => @subdomain), :class => "sn-newslist-titile fl", :target => "_blank" %> <%= format_date(document.created_at) %> - 回复(<%= document.children.count %>) + 回复(<%= document.children.count %>)
  • From f4b10d45d2479046d9454cf2b4ee3656f5f42621 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 10 May 2016 16:26:05 +0800 Subject: [PATCH 173/257] =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=BA=93=E9=BC=A0?= =?UTF-8?q?=E6=A0=87=E7=BB=8F=E8=BF=87=E7=9A=84=E6=97=B6=E5=80=99=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=85=B7=E4=BD=93=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/repositories/_dir_list_content.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/repositories/_dir_list_content.html.erb b/app/views/repositories/_dir_list_content.html.erb index 60c4aa3bf..4dee108ee 100644 --- a/app/views/repositories/_dir_list_content.html.erb +++ b/app/views/repositories/_dir_list_content.html.erb @@ -43,7 +43,7 @@
    - diff --git a/db/migrate/20160513021204_add_allow_teacher_to_organization.rb b/db/migrate/20160513021204_add_allow_teacher_to_organization.rb new file mode 100644 index 000000000..07b39c9a0 --- /dev/null +++ b/db/migrate/20160513021204_add_allow_teacher_to_organization.rb @@ -0,0 +1,5 @@ +class AddAllowTeacherToOrganization < ActiveRecord::Migration + def change + add_column :organizations, :allow_teacher, :integer, :default => false + end +end diff --git a/db/schema.rb b/db/schema.rb index d8ddb7e0d..ac18f108b 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 => 20160513012705) do +ActiveRecord::Schema.define(:version => 20160513021204) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -1614,6 +1614,7 @@ ActiveRecord::Schema.define(:version => 20160513012705) do t.boolean "allow_guest_download", :default => true t.integer "visits", :default => 0 t.integer "show_mode", :default => 0 + t.integer "allow_teacher", :default => 0 end create_table "permissions", :force => true do |t| From a2418396dd644e05647ee0e77863ea3852633a9f Mon Sep 17 00:00:00 2001 From: Linda <2294690300@qq.com> Date: Fri, 13 May 2016 10:30:38 +0800 Subject: [PATCH 207/257] =?UTF-8?q?=E9=82=A6=E6=9C=AC=E5=BA=93zip=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=A0=B7=E5=BC=8F=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/repositories/show.html.erb | 2 ++ public/stylesheets/repository.css | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/views/repositories/show.html.erb b/app/views/repositories/show.html.erb index 82e6f871f..6fed85acf 100644 --- a/app/views/repositories/show.html.erb +++ b/app/views/repositories/show.html.erb @@ -1,6 +1,8 @@ <%= call_hook(:view_repositories_show_contextual, {:repository => @repository, :project => @project}) %>

    <%= render :partial => 'breadcrumbs', :locals => {:path => @path, :kind => 'dir', :revision => @rev} %>

    + ZIP下载 +
    <% if @entries.nil? %> diff --git a/public/stylesheets/repository.css b/public/stylesheets/repository.css index 9e0e07a77..89dc34d7a 100644 --- a/public/stylesheets/repository.css +++ b/public/stylesheets/repository.css @@ -287,4 +287,7 @@ li.commit .commit-row-info .committed_ago { .rep_history_grey{ color: #7F7F7F; } -.rep_mail_name{max-width: 150px; overflow: hidden; text-overflow: ellipsis;} \ No newline at end of file +.rep_mail_name{max-width: 150px; overflow: hidden; text-overflow: ellipsis;} +a.btn_zipdown{ display:block; height:25px; width:80px; text-align: center; line-height: 25px; border: 1px solid #dddddd; background-image: linear-gradient(#FCFCFC, #EEE); + color: #7f7f7f; -webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; margin-top: 7px; margin-right: 5px;} +a:hover.btn_zipdown{color:#269ac9;} \ No newline at end of file From 51a6727b07557a0af24a12b579773cfe31fd186f Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 13 May 2016 10:41:13 +0800 Subject: [PATCH 208/257] =?UTF-8?q?=E5=90=8D=E5=B8=88=E6=A6=9C=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/stylesheets/org2.css | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index c2f4df3ed..62fcc216e 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -49,6 +49,7 @@ a.sn-link-select {color:#809df9;} .sn-mt28 {margin-top:28px;} .sn-mb40 {margin-bottom:40px;} .sn-ml15 {margin-left:15px;} +.sn-ml20 {margin-left:20px;} .sn-ml55 {margin-left:55px;} .sn-mr0 {margin-right:0px !important;} .sn-mr50 {margin-right:50px;} @@ -150,7 +151,7 @@ a.more-btn{ display:block; width:185px; height:30px; text-align:center; backgrou .partner-btn{ width:35px; height:22px; background-color:#999; line-height:1.0; font-size:18px; color:#fff; text-align: center; margin-right:5px; cursor:pointer;} .partner-btn:hover{ background-color:#172b65;} /* index-active */ -.sn-index-activebox{ margin-bottom:20px; background:#fff; padding-bottom:10px;} +.sn-index-activebox, .sn-teacher-wrap{ margin-bottom:20px; background:#fff; padding-bottom:10px;} .active-title{width:330px; display:block;overflow:hidden;white-space:nowrap; text-overflow:ellipsis;} .sn-index-active{ margin:0px 20px 5px 20px;} .sn-index-active a.sn-activeimg{width:330px; height:210px;} @@ -235,6 +236,14 @@ ul.sn-inner-pages li a:hover{ background-color:#24366e; color:#fff; text-decorat .sn-inner-pages_select { background-color:#24366e; color:#fff; padding: 1px 5px 0px 5px; margin-left:3px;margin-top: -2px; border:1px solid #64bdd9;} .sn-inner-pages_select a{background-color: #24366e; color: #fff;cursor: default;} +/*名师榜*/ +.sn-teacher-list {margin:0 20px; padding:15px 0; border-bottom:1px solid #e9e9e9;} +a.sn-teacher-name {width:75px; font-size:18px; color:#777; float:left;} +.sn-teacher-unit {width:154px; font-size:14px; color:#999; float:left; margin-left:15px; margin-top:3px;} +.sn-teacher-info {height:30px; line-height:30px; vertical-align:middle; float:left; margin-left:15px;} +.sn-teacher-social {height:30px; line-height:30px; vertical-align:middle; float:left; color:#999; font-size:12px; margin-left:15px;} +.sn-border-none {border:none;} + /*弹框*/ .upload_con h2 { display: block; From 1673ae451b7d39e39fe4670c06b568ffe573b50e Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 13 May 2016 10:50:34 +0800 Subject: [PATCH 209/257] =?UTF-8?q?=E5=90=8D=E5=B8=88=E6=A6=9C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E4=B8=80=E4=B8=AA=E5=90=8E=E5=B0=B1=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E5=86=8D=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/organization.rb | 4 ++++ app/views/org_subfields/create.js.erb | 1 + .../_setting_excellent_teachers.html.erb | 6 ++++++ app/views/organizations/setting.html.erb | 19 +++---------------- 4 files changed, 14 insertions(+), 16 deletions(-) create mode 100644 app/views/organizations/_setting_excellent_teachers.html.erb diff --git a/app/models/organization.rb b/app/models/organization.rb index 8f9d290eb..311a37bf8 100644 --- a/app/models/organization.rb +++ b/app/models/organization.rb @@ -26,4 +26,8 @@ class Organization < ActiveRecord::Base def switch_type self.show_mode.to_i == 1 ? true : false end + + def allow_set_teachers + self.allow_teacher.to_i == 1 ? true : false + end end diff --git a/app/views/org_subfields/create.js.erb b/app/views/org_subfields/create.js.erb index 3e08d9f9e..5cc6d5c91 100644 --- a/app/views/org_subfields/create.js.erb +++ b/app/views/org_subfields/create.js.erb @@ -4,6 +4,7 @@ :locals => {:subfields => @organization.org_subfields.order("priority") }) %>"); $("#sub_field_left_lists").html(""); $("#sub_field_left_lists").html("<%= escape_javascript(render :partial => 'organizations/org_left_subfield_list', :locals => {:organization => @organization}) %>"); + $("#org_excellent_teachers").html("<%= escape_javascript(render :partial => 'organizations/setting_excellent_teachers') %>"); <% end %> $("#subfield_name").val(""); $("#sub_dir").val(""); \ No newline at end of file diff --git a/app/views/organizations/_setting_excellent_teachers.html.erb b/app/views/organizations/_setting_excellent_teachers.html.erb new file mode 100644 index 000000000..ea6c1c9a6 --- /dev/null +++ b/app/views/organizations/_setting_excellent_teachers.html.erb @@ -0,0 +1,6 @@ +<% if @organization.allow_set_teachers && !org_subfield_had_created?(@organization, "Comptec") %> +
  • + + +
  • +<% end %> \ No newline at end of file diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb index 7b82f3a6e..2caeee726 100644 --- a/app/views/organizations/setting.html.erb +++ b/app/views/organizations/setting.html.erb @@ -157,22 +157,9 @@ -
  • - - -
  • - <% unless org_subfield_had_created?(@organization, "Comptec") %> -
  • - - -
  • - <% end %> - <% unless org_subfield_had_created?(@organization, "Compstu") %> -
  • - - -
  • - <% end %> +
    + <%= render :partial => 'organizations/setting_excellent_teachers' %> +
  • 新增
  • From 61803aa6966e36352bd6ed4c03b29a5417c01b61 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 13 May 2016 10:54:33 +0800 Subject: [PATCH 210/257] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=90=8D=E5=B8=88?= =?UTF-8?q?=E6=A6=9C=E7=9A=84=E6=97=B6=E5=80=99=E5=B1=80=E9=83=A8=E5=88=B7?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/org_subfields/destroy.js.erb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/org_subfields/destroy.js.erb b/app/views/org_subfields/destroy.js.erb index d069b1cd8..c14eeae8f 100644 --- a/app/views/org_subfields/destroy.js.erb +++ b/app/views/org_subfields/destroy.js.erb @@ -2,4 +2,5 @@ $("#org_subfield_list").html(""); $("#org_subfield_list").html("<%= escape_javascript(render :partial => 'organizations/subfield_list', :locals => {:subfields => @organization.org_subfields.order("priority") }) %>"); $("#sub_field_left_lists").html(""); -$("#sub_field_left_lists").html("<%= escape_javascript(render :partial => 'organizations/org_left_subfield_list', :locals => {:organization => @organization}) %>"); \ No newline at end of file +$("#sub_field_left_lists").html("<%= escape_javascript(render :partial => 'organizations/org_left_subfield_list', :locals => {:organization => @organization}) %>"); +$("#org_excellent_teachers").html("<%= escape_javascript(render :partial => 'organizations/setting_excellent_teachers') %>"); \ No newline at end of file From f1821e54e1fbf562ff5654e024d7f8f55b64b358 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 13 May 2016 10:56:48 +0800 Subject: [PATCH 211/257] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=92=8C=E6=96=B0?= =?UTF-8?q?=E9=97=BB=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E7=9A=84=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D=E7=82=B9=E5=87=BB=E5=A4=9A=E6=AC=A1=E4=B8=8D=E4=BC=9A?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=A1=A8=E5=8D=95=E5=A4=9A=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/news/_course_show.html.erb | 5 ++++- app/views/news/_organization_show.html.erb | 5 ++++- app/views/news/_project_show.html.erb | 5 ++++- public/javascripts/course.js | 3 +++ public/javascripts/project.js | 3 +++ 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/views/news/_course_show.html.erb b/app/views/news/_course_show.html.erb index ee9d63720..46346eb71 100644 --- a/app/views/news/_course_show.html.erb +++ b/app/views/news/_course_show.html.erb @@ -186,7 +186,7 @@ <%= l(:label_cancel_with_space) %> - + <%= l(:label_comment_with_space) %>

    @@ -199,6 +199,9 @@
    +<% end%> From 979598f334c042f434493708bb3afdd93845535a Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 13 May 2016 11:06:47 +0800 Subject: [PATCH 213/257] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E9=97=AE=E7=AD=94?= =?UTF-8?q?=E5=8C=BA=E5=B8=96=E5=AD=90=E7=9A=84=E5=8F=91=E9=80=81=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E8=BF=9E=E7=BB=AD=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/boards/_course_new.html.erb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/boards/_course_new.html.erb b/app/views/boards/_course_new.html.erb index 3deb04f6c..df61d2b9c 100644 --- a/app/views/boards/_course_new.html.erb +++ b/app/views/boards/_course_new.html.erb @@ -2,6 +2,7 @@ <%= import_ke(enable_at: true, prettify: false, init_activity: false) %> <% end %> \ No newline at end of file diff --git a/app/views/organizations/teachers.html.erb b/app/views/organizations/teachers.html.erb index a7417fa1b..ea9923287 100644 --- a/app/views/organizations/teachers.html.erb +++ b/app/views/organizations/teachers.html.erb @@ -3,7 +3,7 @@ <%= form_tag( url_for(:controller => 'organizations', :action => 'teachers'), :remote => true , :method => 'get', :id => 'resource_search_form') do %> - <%= submit_tag '', :class => 'homepageSearchIcon', :onfocus => 'this.blur();', :style => 'border-style:none', :class => "teacher-search-icon fl" %> + <%= submit_tag '', :class => 'homepageSearchIcon', :onfocus => 'this.blur();', :class => "teacher-search-icon fl" %> <% end %> diff --git a/db/schema.rb b/db/schema.rb index ac18f108b..700d7cb4c 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -52,28 +52,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" - create_table "application_settings", :force => true do |t| - t.integer "default_projects_limit" - t.boolean "signup_enabled" - t.boolean "signin_enabled" - t.boolean "gravatar_enabled" - t.text "sign_in_text" - t.datetime "created_at" - t.datetime "updated_at" - t.string "home_page_url" - t.integer "default_branch_protection", :default => 2 - t.boolean "twitter_sharing_enabled", :default => true - t.text "restricted_visibility_levels" - t.boolean "version_check_enabled", :default => true - t.integer "max_attachment_size", :default => 10, :null => false - t.integer "default_project_visibility" - t.integer "default_snippet_visibility" - t.text "restricted_signup_domains" - t.boolean "user_oauth_applications", :default => true - t.string "after_sign_out_path" - t.integer "session_expire_delay", :default => 10080, :null => false - end - create_table "applied_projects", :force => true do |t| t.integer "project_id", :null => false t.integer "user_id", :null => false @@ -166,20 +144,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.string "typeName", :limit => 50 end - create_table "audit_events", :force => true do |t| - t.integer "author_id", :null => false - t.string "type", :null => false - t.integer "entity_id", :null => false - t.string "entity_type", :null => false - t.text "details" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id" - add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type" - add_index "audit_events", ["type"], :name => "index_audit_events_on_type" - create_table "auth_sources", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 60, :default => "", :null => false @@ -277,17 +241,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["project_id"], :name => "boards_project_id" - create_table "broadcast_messages", :force => true do |t| - t.text "message", :null => false - t.datetime "starts_at" - t.datetime "ends_at" - t.integer "alert_type" - t.datetime "created_at" - t.datetime "updated_at" - t.string "color" - t.string "font" - end - create_table "bug_to_osps", :force => true do |t| t.integer "osp_id" t.integer "relative_memo_id" @@ -587,10 +540,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.integer "visits", :default => 0 end - add_index "courses", ["id"], :name => "id", :unique => true - add_index "courses", ["tea_id"], :name => "tea_id" - add_index "courses", ["visits"], :name => "visits" - create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -652,15 +601,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" - create_table "deploy_keys_projects", :force => true do |t| - t.integer "deploy_key_id", :null => false - t.integer "project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id" - create_table "discuss_demos", :force => true do |t| t.string "title" t.text "body" @@ -710,16 +650,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "created_at" end - create_table "emails", :force => true do |t| - t.integer "user_id", :null => false - t.string "email", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true - add_index "emails", ["user_id"], :name => "index_emails_on_user_id" - create_table "enabled_modules", :force => true do |t| t.integer "project_id" t.string "name", :null => false @@ -742,25 +672,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" - create_table "events", :force => true do |t| - t.string "target_type" - t.integer "target_id" - t.string "title" - t.text "data" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "action" - t.integer "author_id" - end - - add_index "events", ["action"], :name => "index_events_on_action" - add_index "events", ["author_id"], :name => "index_events_on_author_id" - add_index "events", ["created_at"], :name => "index_events_on_created_at" - add_index "events", ["project_id"], :name => "index_events_on_project_id" - add_index "events", ["target_id"], :name => "index_events_on_target_id" - add_index "events", ["target_type"], :name => "index_events_on_target_type" - create_table "exercise_answers", :force => true do |t| t.integer "user_id" t.integer "exercise_question_id" @@ -863,15 +774,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" - create_table "forked_project_links", :force => true do |t| - t.integer "forked_to_project_id", :null => false - t.integer "forked_from_project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true - create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -1001,17 +903,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "updated_at", :null => false end - create_table "identities", :force => true do |t| - t.string "extern_uid" - t.string "provider" - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id" - add_index "identities", ["user_id"], :name => "index_identities_on_user_id" - create_table "invite_lists", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1155,20 +1046,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.integer "private", :default => 0 end - create_table "keys", :force => true do |t| - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - t.text "key" - t.string "title" - t.string "type" - t.string "fingerprint" - t.boolean "public", :default => false, :null => false - end - - add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id" - add_index "keys", ["user_id"], :name => "index_keys_on_user_id" - create_table "kindeditor_assets", :force => true do |t| t.string "asset" t.integer "file_size" @@ -1180,27 +1057,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.integer "owner_type", :default => 0 end - create_table "label_links", :force => true do |t| - t.integer "label_id" - t.integer "target_id" - t.string "target_type" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id" - add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type" - - create_table "labels", :force => true do |t| - t.string "title" - t.string "color" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "labels", ["project_id"], :name => "index_labels_on_project_id" - create_table "member_roles", :force => true do |t| t.integer "member_id", :null => false t.integer "role_id", :null => false @@ -1251,47 +1107,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.integer "viewed_count", :default => 0 end - create_table "merge_request_diffs", :force => true do |t| - t.string "state" - t.text "st_commits", :limit => 2147483647 - t.text "st_diffs", :limit => 2147483647 - t.integer "merge_request_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true - - create_table "merge_requests", :force => true do |t| - t.string "target_branch", :null => false - t.string "source_branch", :null => false - t.integer "source_project_id", :null => false - t.integer "author_id" - t.integer "assignee_id" - t.string "title" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "milestone_id" - t.string "state" - t.string "merge_status" - t.integer "target_project_id", :null => false - t.integer "iid" - t.text "description" - t.integer "position", :default => 0 - t.datetime "locked_at" - end - - add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id" - add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id" - add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id" - add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at" - add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id" - add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch" - add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id" - add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch" - add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true - add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title" - create_table "message_alls", :force => true do |t| t.integer "user_id" t.integer "message_id" @@ -1326,39 +1141,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" add_index "messages", ["parent_id"], :name => "messages_parent_id" - create_table "milestones", :force => true do |t| - t.string "title", :null => false - t.integer "project_id", :null => false - t.text "description" - t.date "due_date" - t.datetime "created_at" - t.datetime "updated_at" - t.string "state" - t.integer "iid" - end - - add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id" - add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date" - add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true - add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id" - - create_table "namespaces", :force => true do |t| - t.string "name", :null => false - t.string "path", :null => false - t.integer "owner_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type" - t.string "description", :default => "", :null => false - t.string "avatar" - end - - add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id" - add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true - add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id" - add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true - add_index "namespaces", ["type"], :name => "index_namespaces_on_type" - create_table "news", :force => true do |t| t.integer "project_id" t.string "title", :limit => 60, :default => "", :null => false @@ -1384,31 +1166,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "updated_at", :null => false end - create_table "notes", :force => true do |t| - t.text "note" - t.string "noteable_type" - t.integer "author_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "project_id" - t.string "attachment" - t.string "line_code" - t.string "commit_id" - t.integer "noteable_id" - t.boolean "system", :default => false, :null => false - t.text "st_diff", :limit => 2147483647 - end - - add_index "notes", ["author_id"], :name => "index_notes_on_author_id" - add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id" - add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id" - add_index "notes", ["created_at"], :name => "index_notes_on_created_at" - add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type" - add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type" - add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type" - add_index "notes", ["project_id"], :name => "index_notes_on_project_id" - add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at" - create_table "notificationcomments", :force => true do |t| t.string "notificationcommented_type" t.integer "notificationcommented_id" @@ -1418,49 +1175,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "updated_at", :null => false end - create_table "oauth_access_grants", :force => true do |t| - t.integer "resource_owner_id", :null => false - t.integer "application_id", :null => false - t.string "token", :null => false - t.integer "expires_in", :null => false - t.text "redirect_uri", :null => false - t.datetime "created_at", :null => false - t.datetime "revoked_at" - t.string "scopes" - end - - add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true - - create_table "oauth_access_tokens", :force => true do |t| - t.integer "resource_owner_id" - t.integer "application_id" - t.string "token", :null => false - t.string "refresh_token" - t.integer "expires_in" - t.datetime "revoked_at" - t.datetime "created_at", :null => false - t.string "scopes" - end - - add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true - add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id" - add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true - - create_table "oauth_applications", :force => true do |t| - t.string "name", :null => false - t.string "uid", :null => false - t.string "secret", :null => false - t.text "redirect_uri", :null => false - t.string "scopes", :default => "", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.integer "owner_id" - t.string "owner_type" - end - - add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type" - add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true - create_table "onclick_times", :force => true do |t| t.integer "user_id" t.datetime "onclick_time" @@ -1617,23 +1331,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.integer "allow_teacher", :default => 0 end - create_table "permissions", :force => true do |t| - t.string "controller", :limit => 30, :default => "", :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "description", :limit => 60, :default => "", :null => false - t.boolean "is_public", :default => false, :null => false - t.integer "sort", :default => 0, :null => false - t.boolean "mail_option", :default => false, :null => false - t.boolean "mail_enabled", :default => false, :null => false - end - - create_table "permissions_roles", :id => false, :force => true do |t| - t.integer "permission_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - end - - add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" - create_table "phone_app_versions", :force => true do |t| t.string "version" t.text "description" @@ -1716,11 +1413,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "updated_at", :null => false end - create_table "project_import_data", :force => true do |t| - t.integer "project_id" - t.text "data" - end - create_table "project_infos", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1810,16 +1502,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" - create_table "protected_branches", :force => true do |t| - t.integer "project_id", :null => false - t.string "name", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "developers_can_push", :default => false, :null => false - end - - add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id" - create_table "queries", :force => true do |t| t.integer "project_id" t.string "name", :default => "", :null => false @@ -1954,25 +1636,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.integer "is_teacher_score", :default => 0 end - create_table "services", :force => true do |t| - t.string "type" - t.string "title" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "active", :default => false, :null => false - t.text "properties" - t.boolean "template", :default => false - t.boolean "push_events", :default => true - t.boolean "issues_events", :default => true - t.boolean "merge_requests_events", :default => true - t.boolean "tag_push_events", :default => true - t.boolean "note_events", :default => true, :null => false - end - - add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id" - add_index "services", ["project_id"], :name => "index_services_on_project_id" - create_table "settings", :force => true do |t| t.string "name", :default => "", :null => false t.text "value" @@ -2011,26 +1674,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "updated_at", :null => false end - create_table "snippets", :force => true do |t| - t.string "title" - t.text "content", :limit => 2147483647 - t.integer "author_id", :null => false - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "file_name" - t.datetime "expires_at" - t.string "type" - t.integer "visibility_level", :default => 0, :null => false - end - - add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id" - add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id" - add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at" - add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at" - add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id" - add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level" - create_table "softapplications", :force => true do |t| t.string "name" t.text "description" @@ -2103,9 +1746,9 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.integer "absence_penalty", :default => 0 t.float "system_score", :default => 0.0 t.boolean "is_test", :default => false - t.float "work_score" t.integer "simi_id" t.integer "simi_value" + t.float "work_score" end add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id" @@ -2153,13 +1796,13 @@ ActiveRecord::Schema.define(:version => 20160513021204) do create_table "sub_domains", :force => true do |t| t.integer "org_subfield_id" - t.integer "priority" + t.integer "priority", :default => 0 t.string "name" t.string "field_type" - t.integer "hide" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.integer "hide", :default => 0 + t.integer "status", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "subfield_subdomain_dirs", :force => true do |t| @@ -2169,17 +1812,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "updated_at", :null => false end - create_table "subscriptions", :force => true do |t| - t.integer "user_id" - t.integer "subscribable_id" - t.string "subscribable_type" - t.boolean "subscribed" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true - create_table "system_messages", :force => true do |t| t.integer "user_id" t.string "content" @@ -2419,17 +2051,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" add_index "users", ["type"], :name => "index_users_on_type" - create_table "users_star_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id" - add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true - add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id" - create_table "versions", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "name", :default => "", :null => false @@ -2481,23 +2102,6 @@ ActiveRecord::Schema.define(:version => 20160513021204) do t.datetime "updated_at", :null => false end - create_table "web_hooks", :force => true do |t| - t.string "url" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type", :default => "ProjectHook" - t.integer "service_id" - t.boolean "push_events", :default => true, :null => false - t.boolean "issues_events", :default => false, :null => false - t.boolean "merge_requests_events", :default => false, :null => false - t.boolean "tag_push_events", :default => false - t.boolean "note_events", :default => false, :null => false - end - - add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id" - add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id" - create_table "wechat_logs", :force => true do |t| t.string "openid", :null => false t.text "request_raw" diff --git a/public/stylesheets/org.css b/public/stylesheets/org.css index 76309217d..abfeaef85 100644 --- a/public/stylesheets/org.css +++ b/public/stylesheets/org.css @@ -164,7 +164,7 @@ a.blue-btn { /*名师榜20160505*/ .function-row {border-bottom:1px dashed #b2b2b2; padding-bottom:16px;} .teacher-list-search {width:310px; height:23px; border:1px solid #ccc; border-right:none; outline:none;} -.teacher-search-icon {background:url(../images/search.png) 0 3px no-repeat; width:25px; height:23px; border:1px solid #ccc; border-left:none;} +.teacher-search-icon {background:url(../images/search.png) 0 3px no-repeat; width:25px; height:25px; border:1px solid #ccc; border-left:none; cursor:pointer;} .teacher-search-type {width:84px; height:23px; border:1px solid #ccc; outline:none;} .teacher-list-row {border-bottom:1px dashed #b2b2b2; padding:18px 0;} .teacher-avatar {float:left;} diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index c26d9498b..0ea602976 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -48,6 +48,7 @@ a.sn-link-select {color:#809df9;} .sn-mt13 {margin-top:13px;} .sn-mt15 {margin-top:15px;} .sn-mt28 {margin-top:28px;} +.sn-mb20 {margin-bottom:20px;} .sn-mb40 {margin-bottom:40px;} .sn-ml15 {margin-left:15px;} .sn-ml20 {margin-left:20px;} From 80c6edd2d33ff6a4f0a1e8fe1526afa37e523967 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 13 May 2016 14:22:10 +0800 Subject: [PATCH 223/257] =?UTF-8?q?KE=E8=BF=87=E6=BB=A4html=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=9A=84=E6=97=B6=E5=80=99=E8=A1=A8=E6=A0=BC=E7=9A=84?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E7=AD=89=E6=A0=B7=E5=BC=8F=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E8=A2=AB=E8=BF=87=E6=BB=A4=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/kindeditor/kindeditor.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/public/assets/kindeditor/kindeditor.js b/public/assets/kindeditor/kindeditor.js index f96216658..9ae1300e7 100644 --- a/public/assets/kindeditor/kindeditor.js +++ b/public/assets/kindeditor/kindeditor.js @@ -290,14 +290,14 @@ K.options = { ], table: [ 'id', 'class', 'border', 'cellspacing', 'cellpadding', 'width', 'height', 'align', 'bordercolor', - '.padding', '.margin', '.border', 'bgcolor', '.text-align', '.color', '.background-color', + '.padding', '.margin', '.border','.border-color', 'bgcolor', '.text-align', '.color', '.background-color', '.font-size', '.font-family', '.font-weight', '.font-style', '.text-decoration', '.background', - '.width', '.height', '.border-collapse' + '.width', '.height', '.border-collapse','.table-layout' ], 'td,th': [ 'id', 'class', 'align', 'valign', 'width', 'height', 'colspan', 'rowspan', 'bgcolor', '.text-align', '.color', '.background-color', '.font-size', '.font-family', '.font-weight', - '.font-style', '.text-decoration', '.vertical-align', '.background', '.border' + '.font-style', '.text-decoration', '.vertical-align', '.background', '.border', '.text-overflow','.overflow','.white-space' ], a : ['id', 'class', 'href', 'target', 'name'], embed : ['id', 'class', 'src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], @@ -736,6 +736,8 @@ function _formatHtml(html, htmlTags, urlType, wellFormatted, indentChar) { html = html.replace(/\u200B/g, ''); html = html.replace(/\u00A9/g, '©'); html = html.replace(/\u00AE/g, '®'); + html = html.replace(/\u2003/g, ' '); + html = html.replace(/\u3000/g, ' '); html = html.replace(/<[^>]+/g, function($0) { return $0.replace(/\s+/g, ' '); }); From 0feb1280fd0f2dcf1a0e866c4784f171390ec8f2 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 13 May 2016 14:23:36 +0800 Subject: [PATCH 224/257] =?UTF-8?q?=E5=90=8D=E5=B8=88=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E5=88=97=E8=A1=A8=20=E5=8F=8A=E7=9B=B8=E5=85=B3=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/organizations_controller.rb | 7 +++++++ app/views/organizations/_org_subfield_rightM2.html.erb | 4 +++- app/views/organizations/_org_teachers_list.html.erb | 2 +- app/views/organizations/teachers.html.erb | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index 98483bb64..4747469cf 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -159,6 +159,10 @@ class OrganizationsController < ApplicationController end def teachers + unless @organization.allow_set_teachers + render_403 + return + end q = params[:search].nil? ? "" : "#{params[:search].strip}" if params[:type] == "courses" || params[:type].nil? @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count @@ -169,6 +173,9 @@ class OrganizationsController < ApplicationController elsif params[:type] == "resources" @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from attachments where attachments.author_id = u.id) as course_count from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 and concat(lastname,firstname,login) like '%#{q}%' order by course_count desc") + elsif params[:type] == "famous" + @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count + from users u, user_extensions ue where u.id = ue.user_id and ue.identity=0 and u.excellent_teacher =1 and concat(lastname,firstname,login) like '%#{q}%' order by course_count desc") end limit = 10 # @is_remote = true diff --git a/app/views/organizations/_org_subfield_rightM2.html.erb b/app/views/organizations/_org_subfield_rightM2.html.erb index 567df26d9..17a485583 100644 --- a/app/views/organizations/_org_subfield_rightM2.html.erb +++ b/app/views/organizations/_org_subfield_rightM2.html.erb @@ -1,5 +1,7 @@
    -

    名师风采更多

    +

    <%= field.name %> + <%= link_to "更多", teachers_organization_path(@organization, :type => "famous"), :target => "_blank", :class => "more" %> +

    <% excellent_teachers.each do |teacher| %>
    <%= link_to image_tag(url_to_avatar(teacher), :width => "60", :height => "60", :class => "sn-fl", :style => "display:block;"), user_path(teacher), :alt => "用户头像", :target => '_blank' %> diff --git a/app/views/organizations/_org_teachers_list.html.erb b/app/views/organizations/_org_teachers_list.html.erb index 3f8f5af8e..e24f53862 100644 --- a/app/views/organizations/_org_teachers_list.html.erb +++ b/app/views/organizations/_org_teachers_list.html.erb @@ -19,7 +19,7 @@
    -
    <%= org_teacher.my_students %>500
    +
    <%= org_teacher.my_students %>
    学生数
    diff --git a/app/views/organizations/teachers.html.erb b/app/views/organizations/teachers.html.erb index 35ba9c8fd..54a869221 100644 --- a/app/views/organizations/teachers.html.erb +++ b/app/views/organizations/teachers.html.erb @@ -15,7 +15,7 @@
    - <%= link_to "名师列表", teachers_organization_path(@organization), :class => "fontGrey" %> + <%= link_to "名师列表", teachers_organization_path(@organization, :type => "famous"), :class => "fontGrey" %>
    From 1833f15e19772f5e1d750435551ad335cfabcdb3 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 13 May 2016 14:23:51 +0800 Subject: [PATCH 225/257] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=BA=93=E5=AF=BC=E5=85=A5=E8=B5=84=E6=BA=90=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../users/_user_import_resource_list.html.erb | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/app/views/users/_user_import_resource_list.html.erb b/app/views/users/_user_import_resource_list.html.erb index f48e6c8fb..38770421d 100644 --- a/app/views/users/_user_import_resource_list.html.erb +++ b/app/views/users/_user_import_resource_list.html.erb @@ -1,19 +1,19 @@ -<%= form_tag( url_for({:controller => 'users', :action => 'import_into_container', - :mul_id => @resource_id, - :mul_type => @resource_type}), - :method => 'post', :id => 'resource_import_container_form') do %> - <% @attachments.each do |attach| %> -
      - -
    • <%= get_resource_type(attach.container_type)%>
    • - -
    • <%=User.find(attach.author_id).realname.blank? ? User.find(attach.author_id).nickname : User.find(attach.author_id).realname %>
    • -
    • <%= format_date(attach.created_on) %>
    • -
    - <% end %> +<%= form_tag( url_for({:controller => 'users', :action => 'import_into_container', + :mul_id => @resource_id, + :mul_type => @resource_type}), + :method => 'post', :id => 'resource_import_container_form') do %> + <% @attachments.each do |attach| %> +
      + +
    • <%= get_resource_type(attach.container_type)%>
    • + + +
    • <%= format_date(attach.created_on) %>
    • +
    + <% end %> <% end %> \ No newline at end of file From 402976cf4064ca50d09b0fa403248e98d7dc32e8 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 13 May 2016 14:33:06 +0800 Subject: [PATCH 226/257] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=95=99=E8=A8=80?= =?UTF-8?q?=E7=9A=84=E5=9B=9E=E5=A4=8D=E9=98=B2=E6=AD=A2=E5=A4=9A=E6=AC=A1?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_courses_jours.html.erb | 9 +++++---- app/views/words/_new_respond_course.html.erb | 3 ++- public/javascripts/init_KindEditor.js | 9 +++++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/views/courses/_courses_jours.html.erb b/app/views/courses/_courses_jours.html.erb index c7e4a7428..4a9b07ec7 100644 --- a/app/views/courses/_courses_jours.html.erb +++ b/app/views/courses/_courses_jours.html.erb @@ -36,7 +36,7 @@

    取消 - 留言 + 留言 <% end %>
    <% end %> @@ -55,9 +55,6 @@ +<% end %> - From 8d338cff9ee73788149d560c1d1bd23a1ed60d93 Mon Sep 17 00:00:00 2001 From: txz Date: Fri, 13 May 2016 15:48:31 +0800 Subject: [PATCH 236/257] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E9=94=81=E5=AE=9A?= =?UTF-8?q?=E5=B8=96=E5=AD=90=E5=85=B3=E9=97=AD=E5=9B=9E=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/course_discussion.html | 4 ++-- public/assets/wechat/project_discussion.html | 4 ++-- public/stylesheets/weui/weixin.css | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/public/assets/wechat/course_discussion.html b/public/assets/wechat/course_discussion.html index 3f095ab62..e36fb3e27 100644 --- a/public/assets/wechat/course_discussion.html +++ b/public/assets/wechat/course_discussion.html @@ -3,7 +3,7 @@
    -
    {{discussion.subject}}
    +
    {{discussion.subject}}      
    @@ -38,7 +38,7 @@ -
    +
    diff --git a/public/assets/wechat/project_discussion.html b/public/assets/wechat/project_discussion.html index 890b47a73..24ed8c9fc 100644 --- a/public/assets/wechat/project_discussion.html +++ b/public/assets/wechat/project_discussion.html @@ -3,7 +3,7 @@
    -
    {{discussion.subject}}
    +
    {{discussion.subject}}      
    发布者: {{discussion.user.realname}}
    @@ -38,7 +38,7 @@ -
    +
    diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index fffa7a214..daa66d6bb 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -77,3 +77,6 @@ a.underline {text-decoration:underline;} .loading-box {position:absolute; top:50%; background:white; width:160px; height:72px; left:50%; margin-top:-36px; margin-left:-80px; text-align:center;} .loading-box img {margin-top: 3px; text-align: center;} .loading-box span {display: block; font-size:12px;} + +/*帖子锁定样式*/ +.locked_btn_cir {background: url("/images/locked.png") 0 0 no-repeat; cursor: default;} \ No newline at end of file From be97675aede746391a589df4e6498b9253ec0226 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 13 May 2016 16:09:26 +0800 Subject: [PATCH 237/257] =?UTF-8?q?=E6=B2=A1=E5=B8=A6=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=9B=BE=E7=89=87=E4=B8=8D=E8=AE=A9?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=94=BE=E5=A4=A7=E7=9C=8B!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/application.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/public/javascripts/application.js b/public/javascripts/application.js index aa445f817..c43e0a6a2 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1013,15 +1013,18 @@ function showNormalImage(id) { var image=$(description_images[i]); var _path = getRootPath(); //如果图片是视频图片,不处理。 + if($(image).hasClass("mediaIco")){ var _src = _path+"/"+$(image).attr('src'); $(image).attr('src',_src); return; } - - var element=$("").attr("href",image.attr('src')); - image.wrap(element); - $(image).parent().colorbox({rel:'nofollow', close: "关闭", returnFocus: false}); + var tmpsrc = image.attr('src'); + if (tmpsrc.indexOf('.gif') >= 0 || tmpsrc.indexOf('.jpg') >= 0 || tmpsrc.indexOf('.jpeg') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.bmp') >= 0 || tmpsrc.indexOf('.png') >= 0 || tmpsrc.indexOf('.BMP') >= 0 || tmpsrc.indexOf('.JPEG') >= 0 || tmpsrc.indexOf('.JPG') >= 0 || tmpsrc.indexOf('.PNG') >= 0 || tmpsrc.indexOf('.GIF') >= 0) { + var element = $("").attr("href", image.attr('src')); + image.wrap(element); + $(image).parent().colorbox({rel: 'nofollow', close: "关闭", returnFocus: false}); + } } //$('#'+id+' a').colorbox({rel:'nofollow', close: "关闭", returnFocus: false}); //有图片才将链接变为弹出框 } From a88ab5948959574d8fe8fe9ff1bf2d3774d857c6 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 13 May 2016 16:11:10 +0800 Subject: [PATCH 238/257] =?UTF-8?q?=E5=90=8D=E5=B8=88=E6=A6=9C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=8F=B3=E4=BE=A7banner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/teachers.html.erb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/views/organizations/teachers.html.erb b/app/views/organizations/teachers.html.erb index cca83aa4d..062130336 100644 --- a/app/views/organizations/teachers.html.erb +++ b/app/views/organizations/teachers.html.erb @@ -1,3 +1,6 @@ +
    +
    名师榜
    +
    <%= form_tag( url_for(:controller => 'organizations', :action => 'teachers'), From d384d1e2b46c7e269b208a51be65379846c48362 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 13 May 2016 16:28:16 +0800 Subject: [PATCH 239/257] =?UTF-8?q?=E5=90=8D=E5=B8=88=E6=A6=9C=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/_org_subfield_rightM2.html.erb | 2 +- public/stylesheets/org2.css | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/organizations/_org_subfield_rightM2.html.erb b/app/views/organizations/_org_subfield_rightM2.html.erb index 86b69ac05..aff570b8b 100644 --- a/app/views/organizations/_org_subfield_rightM2.html.erb +++ b/app/views/organizations/_org_subfield_rightM2.html.erb @@ -4,7 +4,7 @@ <% excellent_teachers.each do |teacher| %>
    - <%= link_to image_tag(url_to_avatar(teacher), :width => "60", :height => "60", :class => "sn-fl", :style => "display:block;"), user_path(teacher), :alt => "用户头像", :target => '_blank' %> + <%= link_to image_tag(url_to_avatar(teacher), :width => "60", :height => "60", :class => "sn-fl sn-avatar-circle", :style => "display:block;"), user_path(teacher), :alt => "用户头像", :target => '_blank' %>
    <%=link_to teacher.try(:realname) ? teacher.try(:realname) :teacher.try(:login), user_path(teacher), :class => "sn-teacher-name sn-hidden", :title => '', :target => '_blank' %> diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css index 0ea602976..c2cf0a478 100644 --- a/public/stylesheets/org2.css +++ b/public/stylesheets/org2.css @@ -241,8 +241,8 @@ ul.sn-inner-pages li a:hover{ background-color:#24366e; color:#fff; text-decorat /*名师榜*/ .sn-teacher-list {margin:0 20px; padding:15px 0; border-bottom:1px solid #e9e9e9;} -a.sn-teacher-name {width:75px; font-size:18px; color:#777; float:left;} -.sn-teacher-unit {width:154px; font-size:14px; color:#999; float:left; margin-left:15px; margin-top:3px;} +a.sn-teacher-name {width:60px; font-size:18px; color:#777; float:left;} +.sn-teacher-unit {width:169px; font-size:14px; color:#999; float:left; margin-left:15px; margin-top:3px;} .sn-teacher-info {height:30px; line-height:30px; vertical-align:middle; float:left; margin-left:15px;} .sn-teacher-social {height:30px; line-height:30px; vertical-align:middle; float:left; color:#999; font-size:12px; margin-left:15px;} .sn-border-none {border:none;} @@ -250,6 +250,7 @@ a.sn-teacher-name {width:75px; font-size:18px; color:#777; float:left;} .sn-teacher-avatar2 {margin:0 18px; padding:18px 0;} .sn-teacher-info2 {color:#666; text-align:center; font-size:16px;} .sn-info2-hidden {width:153px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:0 auto;} +.sn-avatar-circle {border-radius:50%;} /*弹框*/ .upload_con h2 { From 39d014355b026d6b3adb317f329833987b331f53 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 13 May 2016 16:30:45 +0800 Subject: [PATCH 240/257] =?UTF-8?q?=E7=A7=91=E5=A4=A7=E5=90=8D=E5=B8=88?= =?UTF-8?q?=EF=BC=8C=E5=92=8C=E5=90=8D=E5=B8=88=E5=88=97=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/organizations_controller.rb | 1 + .../organizations/_org_left_subfield_list.html.erb | 2 +- app/views/organizations/teachers.html.erb | 10 ++++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index b48488fb8..c94f734e1 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -164,6 +164,7 @@ class OrganizationsController < ApplicationController return end q = params[:search].nil? ? "" : "#{params[:search].strip}" + @field = OrgSubfield.find(params[:org_subfield_id]) @type = params[:type] if @type == "courses" || @type.nil? @org_teachers = User.find_by_sql("select u.*, ue.technical_title, ue.school_id,(select count(*) from courses where courses.tea_id = u.id) as course_count diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 3fe57d223..4340213a4 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -102,7 +102,7 @@ <% end %> <% else %> <% if field.field_type == "Comptec" %> - <%= link_to "#{field.name}", teachers_organization_path(organization), :class => "homepageMenuText homepageMenuControl hidden", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> + <%= link_to "#{field.name}", teachers_organization_path(organization, :org_subfield_id => field.id), :class => "homepageMenuText homepageMenuControl hidden", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> <% else %> <%= link_to "#{field.name}", organization_path(organization, :org_subfield_id => field.id), :class => "homepageMenuText homepageMenuControl hidden", :onclick => "$('#homepageLeftMenuPost').slideToggle();" %> <% end %> diff --git a/app/views/organizations/teachers.html.erb b/app/views/organizations/teachers.html.erb index 4b50a2a81..6e06124a4 100644 --- a/app/views/organizations/teachers.html.erb +++ b/app/views/organizations/teachers.html.erb @@ -1,5 +1,11 @@
    -
    名师榜
    +
    + <% if @type == "famous" %> + 名师列表 + <% else %> + <%= @field.name %> + <% end %> +
    From 6ccb79a210cfc47c752070259db5350aab225c86 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 13 May 2016 16:47:56 +0800 Subject: [PATCH 241/257] =?UTF-8?q?=E6=95=99=E5=B8=88=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/teachers.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/organizations/teachers.html.erb b/app/views/organizations/teachers.html.erb index 6e06124a4..c368adef7 100644 --- a/app/views/organizations/teachers.html.erb +++ b/app/views/organizations/teachers.html.erb @@ -24,7 +24,7 @@
    - <%= link_to "名师列表", teachers_organization_path(@organization, :type => "famous", :org_subfield_id => @field.id), :class => "fontGrey" %> + <%= link_to "名师列表", teachers_organization_path(@organization, :type => "famous", :org_subfield_id => @field.id), :class => "fontGrey2" %>
    From bc39b68bb2180b5e55296611627b206c39e99c9f Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 13 May 2016 16:50:41 +0800 Subject: [PATCH 242/257] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E6=B5=8B=E9=AA=8C?= =?UTF-8?q?=E9=A2=98=E7=9B=AE=E3=80=81=E9=97=AE=E5=8D=B7=E9=A2=98=E7=9B=AE?= =?UTF-8?q?=E9=98=B2=E6=AD=A2=E5=A4=9A=E6=AC=A1=E6=8F=90=E4=BA=A4=E8=A1=A8?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/exercise/_exercise_form.html.erb | 9 ++++ app/views/exercise/_new_MC.html.erb | 11 +++- app/views/exercise/_new_MCQ.html.erb | 11 +++- app/views/exercise/_new_single.html.erb | 11 +++- app/views/exercise/_show_MC.html.erb | 5 +- app/views/exercise/_show_MCQ.html.erb | 5 +- app/views/exercise/_show_single.html.erb | 5 +- app/views/poll/_new_MC.html.erb | 13 +++-- app/views/poll/_new_MCQ.html.erb | 13 +++-- app/views/poll/_new_mulit.html.erb | 13 +++-- app/views/poll/_new_single.html.erb | 13 +++-- app/views/poll/_poll_form.html.erb | 60 +++++++++++++++++----- app/views/poll/create_poll_question.js.erb | 2 +- 13 files changed, 135 insertions(+), 36 deletions(-) diff --git a/app/views/exercise/_exercise_form.html.erb b/app/views/exercise/_exercise_form.html.erb index ec099cb09..f8fe7896c 100644 --- a/app/views/exercise/_exercise_form.html.erb +++ b/app/views/exercise/_exercise_form.html.erb @@ -87,10 +87,19 @@ var standard_ans = $.trim($("#question_standard_ans").val()); if(title.length == 0 || score.length == 0){ alert("题目标题/分数不能为空"); + doc.one('click', function(){ + add_poll_question($(this),quest_type); + }); }else if(!/^[1-9][0-9]*$/.test(score)) { alert("分数必须是非零开头的数字"); + doc.one('click', function(){ + add_poll_question($(this),quest_type); + }); }else if(quest_type !=3 && standard_ans.length == 0) { alert("标准答案不能为空"); + doc.one('click', function(){ + add_poll_question($(this),quest_type); + }); }else{ doc.parent().parent().parent().submit();} } diff --git a/app/views/exercise/_new_MC.html.erb b/app/views/exercise/_new_MC.html.erb index 6fd6c201e..43628f104 100644 --- a/app/views/exercise/_new_MC.html.erb +++ b/app/views/exercise/_new_MC.html.erb @@ -54,9 +54,16 @@
    -<% end %> \ No newline at end of file +<% end %> + \ No newline at end of file diff --git a/app/views/exercise/_new_MCQ.html.erb b/app/views/exercise/_new_MCQ.html.erb index a24835fc1..875b9ec4c 100644 --- a/app/views/exercise/_new_MCQ.html.erb +++ b/app/views/exercise/_new_MCQ.html.erb @@ -54,9 +54,16 @@
    -<% end %> \ No newline at end of file +<% end %> + \ No newline at end of file diff --git a/app/views/exercise/_new_single.html.erb b/app/views/exercise/_new_single.html.erb index 6180dac8e..24a0ad047 100644 --- a/app/views/exercise/_new_single.html.erb +++ b/app/views/exercise/_new_single.html.erb @@ -42,9 +42,16 @@
    -<% end %> \ No newline at end of file +<% end %> + \ No newline at end of file diff --git a/app/views/exercise/_show_MC.html.erb b/app/views/exercise/_show_MC.html.erb index eef7546e5..99c48a3ab 100644 --- a/app/views/exercise/_show_MC.html.erb +++ b/app/views/exercise/_show_MC.html.erb @@ -90,7 +90,7 @@ ''+ '
    '+ ''+ ''+ ' -<% end%> \ No newline at end of file +<% end%> + \ No newline at end of file diff --git a/app/views/poll/_new_MCQ.html.erb b/app/views/poll/_new_MCQ.html.erb index 43b41f95d..0fbb588c5 100644 --- a/app/views/poll/_new_MCQ.html.erb +++ b/app/views/poll/_new_MCQ.html.erb @@ -3,7 +3,7 @@
    - +
    @@ -33,7 +33,7 @@
    -<% end%> \ No newline at end of file +<% end%> + \ No newline at end of file diff --git a/app/views/poll/_new_mulit.html.erb b/app/views/poll/_new_mulit.html.erb index 8a2205760..d25d34542 100644 --- a/app/views/poll/_new_mulit.html.erb +++ b/app/views/poll/_new_mulit.html.erb @@ -3,7 +3,7 @@
    - +
    @@ -13,7 +13,7 @@
    -<% end%> \ No newline at end of file +<% end%> + \ No newline at end of file diff --git a/app/views/poll/_new_single.html.erb b/app/views/poll/_new_single.html.erb index 7588bf3b4..fe8e7b604 100644 --- a/app/views/poll/_new_single.html.erb +++ b/app/views/poll/_new_single.html.erb @@ -3,12 +3,12 @@
    - +
    -<% end%> \ No newline at end of file +<% end%> + \ No newline at end of file diff --git a/app/views/poll/_poll_form.html.erb b/app/views/poll/_poll_form.html.erb index e08b13033..73c783794 100644 --- a/app/views/poll/_poll_form.html.erb +++ b/app/views/poll/_poll_form.html.erb @@ -51,8 +51,8 @@ function chooseQuestionType(quest_type,quest_id){ } function add_MC(){ - $("#new_poll_question").html("<%= escape_javascript(render :partial => 'new_MC') %>"); - $("#poll_questions_title").focus(); + $("#new_poll_question_new").html("<%= escape_javascript(render :partial => 'new_MC') %>"); + $("#poll_questions_title_new").focus(); } function insert_MC(quest_type,quest_num,quest_id){ @@ -94,7 +94,7 @@ function add_MC(){ ''+ ''+ ''+ ''+ '
    发布者: {{discussion.user.realname}}