diff --git a/app/controllers/blogs_controller.rb b/app/controllers/blogs_controller.rb index 7a226f50d..63b0da009 100644 --- a/app/controllers/blogs_controller.rb +++ b/app/controllers/blogs_controller.rb @@ -1,9 +1,45 @@ class BlogsController < ApplicationController before_filter :find_blog,:except => [:index,:create,:new,:set_homepage, :cancel_homepage] before_filter :find_user + include PraiseTreadHelper + def index @article = BlogComment.new + + @order, @b_sort,@type = params[:order] || 1, params[:sort] || 1, params[:type] || 1 + + #确定 sort_type 1升序 2 降序 + if @order.to_i == @type.to_i + @b_sort = @b_sort.to_i == 1 ? 2 : 1 + else + @b_sort = 2 + end + + sort_name = "updated_at" + + sort_type = @b_sort == 1 ? "asc" : "desc" + + @topics = @user.blog.articles.reorder("#{BlogComment.table_name}.sticky desc,#{BlogComment.table_name}.#{sort_name} #{sort_type}") + + #根据 赞+回复数排序 + if @order.to_i == 2 + @type = 2 + @b_sort == 1 ? @topics = @topics.sort{|x,y| get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) <=> get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) } : @topics = @topics.sort{|x,y| get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) <=> get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) } + @topics = @topics.sort{|x,y| y.sticky <=> x.sticky} + else + @type = 1 + end + + #分页 + @limit = 10 + @is_remote = true + @atta_count = @topics.count + @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 + @offset ||= @atta_pages.offset + @topics = paginateHelper @topics,@limit + respond_to do |format| + format.js format.html {render :layout=>'new_base_user'} end end diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index a77346d89..2e499ea1d 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -28,6 +28,7 @@ class BoardsController < ApplicationController helper :watchers helper :project_score helper :attachments + include PraiseTreadHelper def index #modify by nwb @flag = params[:flag] || false @@ -62,13 +63,24 @@ class BoardsController < ApplicationController else render_403 end - end - end def show # 讨论区消息状态更新(已读和未读) + @order, @b_sort,@type = params[:order] || 1, params[:sort] || 1, params[:type] || 1 + + #确定 sort_type 1升序 2 降序 + if @order.to_i == @type.to_i + @b_sort = @b_sort.to_i == 1 ? 2 : 1 + else + @b_sort = 2 + end + + sort_name = "updated_at" + + sort_type = @b_sort == 1 ? "asc" : "desc" + if @project ForgeMessage.where("user_id =? and project_id =? and viewed =?", User.current.id, @project.id, 0).update_all(:viewed => true) # 更新@消息为已读 @@ -82,10 +94,10 @@ class BoardsController < ApplicationController CourseMessage.where("user_id =? and course_id =? and viewed =?", User.current.id, @course.id, 0).update_all(:viewed => true) end - sort_init 'updated_on', 'desc' - sort_update 'created_on' => "#{Message.table_name}.created_on", - 'replies' => "#{Message.table_name}.replies_count", - 'updated_on' => "COALESCE(last_replies_messages.created_on, #{Message.table_name}.created_on)" + # sort_init 'updated_on', 'desc' + # sort_update 'created_on' => "#{Message.table_name}.created_on", + # 'replies' => "#{Message.table_name}.replies_count", + # 'updated_on' => "COALESCE(last_replies_messages.created_on, #{Message.table_name}.created_on)" @is_new = params[:is_new] @topic_count = @board ? @board.topics.count : 0 @@ -93,52 +105,71 @@ class BoardsController < ApplicationController if @board limit = 10; @topic_count = @board.topics.count(); - @topic_pages = (params[:page] ? params[:page].to_i + 1 : 0) *10 - @topics = @board.topics.reorder("#{Message.table_name}.sticky DESC, COALESCE(last_replies_messages.created_on, #{Message.table_name}.created_on) desc"). - limit(limit).offset(@topic_pages).includes(:last_reply). + @topic_pages = 0#(params[:page] ? params[:page].to_i + 1 : 0) *10 + @topics = @board.topics.reorder("#{Message.table_name}.sticky DESC, COALESCE(last_replies_messages.created_on, #{Message.table_name}.created_on) #{sort_type}"). + offset(@topic_pages).includes(:last_reply). preload(:author, {:last_reply => :author}).all(); else @topics = []; end elsif @course if (@board) - limit = 10; @topic_count = @board.topics.count(); - @topic_pages = (params[:page] ? params[:page].to_i + 1 : 0) *10 - @topics = @board.topics.reorder("#{Message.table_name}.sticky DESC, COALESCE(last_replies_messages.created_on, #{Message.table_name}.created_on) desc"). - limit(limit).offset(@topic_pages).includes(:last_reply). - preload(:author, {:last_reply => :author}).all(); + @topic_pages = 0 #(params[:page] ? params[:page].to_i + 1 : 0) *10 + @topics = @board.topics.reorder("#{Message.table_name}.sticky DESC, COALESCE(last_replies_messages.created_on, #{Message.table_name}.created_on) #{sort_type}").offset(@topic_pages).includes(:last_reply).preload(:author, {:last_reply => :author}).all(); else @topics = []; end end + #根据 赞+回复数排序 + if @order.to_i == 2 + @type = 2 + @b_sort == 1 ? @topics = @topics.sort{|x,y| get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) <=> get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) } : @topics = @topics.sort{|x,y| get_praise_num(y) + (y.parent ? y.parent.children.count : y.children.count) <=> get_praise_num(x) + (x.parent ? x.parent.children.count : x.children.count) } + @topics = @topics.sort{|x,y| y.sticky <=> x.sticky} + else + @type = 1 + end + + #分页 + @limit = 10 + @is_remote = true + @atta_count = @topics.count + @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 + @offset ||= @atta_pages.offset + @topics = paginateHelper @topics,@limit + @page = params[:page] ? params[:page].to_i + 1 : 0 @message = Message.new(:board => @board) #modify by nwb - respond_to do |format| - format.js - format.html { - if @project - render :action => 'show', :layout => 'base_projects' - elsif @course - @params=params - render :action => 'show', :layout => 'base_courses' - end - } - format.atom { - @messages = @board.messages. - reorder('created_on DESC'). - includes(:author, :board). - limit(Setting.feeds_limit.to_i). - all - if @project - render_feed(@messages, :title => "#{@project}: #{@board}") - elsif @course - render_feed(@messages, :title => "#{@course}: #{@board}") - end - - } + if (params[:page] || params[:order]) + respond_to do |format| + format.js{render "show.js.erb"} + end + else + respond_to do |format| + format.js + format.html { + if @project + render :action => 'show', :layout => 'base_projects' + elsif @course + @params=params + render :action => 'show', :layout => 'base_courses' + end + } + format.atom { + @messages = @board.messages. + reorder('created_on DESC'). + includes(:author, :board). + limit(Setting.feeds_limit.to_i). + all + if @project + render_feed(@messages, :title => "#{@project}: #{@board}") + elsif @course + render_feed(@messages, :title => "#{@course}: #{@board}") + end + } + end end end diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb index f3c01f21e..d24f7a6b4 100644 --- a/app/controllers/organizations_controller.rb +++ b/app/controllers/organizations_controller.rb @@ -113,7 +113,7 @@ class OrganizationsController < ApplicationController #@project_acts_issues = get_project_activities_org @organization #@course_acts = get_course_activities_org @organization - render :layout => 'base_org_newstyle' + render :layout => 'base_org2' else render_403 end diff --git a/app/controllers/settings_controller.rb b/app/controllers/settings_controller.rb index 93e0e9c4b..c22f9e4ab 100644 --- a/app/controllers/settings_controller.rb +++ b/app/controllers/settings_controller.rb @@ -32,6 +32,10 @@ class SettingsController < ApplicationController hidden_non_project = Setting.find_by_name("hidden_non_project") @text = (hidden_non_project && hidden_non_project.value == "0") ? l(:label_show_non_project) : l(:label_hidden_non_project) + #1隐藏了课程信息 0显示了课程信息 + hidden_courses = Setting.find_by_name("hidden_courses") + @text_1 = (hidden_courses && hidden_courses.value == "1") ? l(:label_show_courses) : l(:label_hidden_courses) + @notifiables = Redmine::Notifiable.all if request.post? && params[:settings] && params[:settings].is_a?(Hash) settings = (params[:settings] || {}).dup.symbolize_keys @@ -89,4 +93,22 @@ class SettingsController < ApplicationController redirect_to settings_url end + + #隐藏/显示课程信息 + def hidden_courses + @notifiable = Setting.find_by_name("hidden_courses") + if @notifiable + @notifiable.value == "1" ? @notifiable.value = 0 : @notifiable.value = 1 + @notifiable.save + else + @notifiable = Setting.new() + @notifiable.name = "hidden_courses" + @notifiable.value = 1 + @notifiable.save + end + + redirect_to settings_url + end end + + diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 7392ed8ff..282b8e08d 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -41,7 +41,7 @@ class UsersController < ApplicationController :activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index, :activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index,:user_resource, :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist,:user_messages,:edit_brief_introduction, - :user_import_homeworks,:user_search_homeworks,:user_import_resource, :user_system_messages,:choose_user_course] + :user_import_homeworks,:user_search_homeworks,:user_import_resource, :user_system_messages,:choose_user_course,:user_courselist,:user_projectlist] before_filter :auth_user_extension, only: :show #before_filter :rest_user_score, only: :show #before_filter :select_entry, only: :user_projects @@ -2857,6 +2857,93 @@ class UsersController < ApplicationController end end + def user_courselist + @order, @c_sort,@type = params[:order] || 1, params[:sort] || 1, params[:type] || 1 + + #确定 sort_type + if @order.to_i == @type.to_i + @c_sort = @c_sort.to_i == 1 ? 2 : 1 #1升序 2降序 + else + @c_sort = 2 + end + + sort_name = "updated_at" + sort_type = @c_sort == 1 ? "asc" : "desc" + + if @user.courses.visible.count > 0 + course_order_ids = "(" + CourseActivity.find_by_sql("SELECT c.course_id, updated_at FROM(SELECT ca.course_id, MAX(ca.updated_at) AS updated_at FROM course_activities ca WHERE ca.course_id IN (" + @user.courses.visible.select('courses.id').map{|c| c.id}.join(',') + ") GROUP BY ca.course_id) AS c ").map {|c| c.course_id}.join(",") + ")" + @courses = Course.where("id in #{course_order_ids}").order("#{sort_name} #{sort_type}") + else + @courses = [] + end + + #根据 作业+资源数排序 + if @order.to_i == 2 + @type = 2 + @courses.each do |course| + course[:infocount] = (User.current.admin? || User.current.allowed_to?(:as_teacher,course)) ? (course.homework_commons.count + visable_attachemnts_incourse(course).count) : (course.homework_commons.where("publish_time <= '#{Date.today}'").count + visable_attachemnts_incourse(course).count) + end + @c_sort == 1 ? (@courses = @courses.sort{|x,y| x[:infocount] <=> y[:infocount] }) : (@courses = @courses.sort{|x,y| y[:infocount] <=> x[:infocount]}) + else + @type = 1 + end + + #分页 + @limit = 10 + @is_remote = true + @atta_count = @courses.count + @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 + @offset ||= @atta_pages.offset + @courses = paginateHelper @courses,@limit + + respond_to do |format| + format.js + format.html {render :layout => 'new_base_user'} + end + end + + def user_projectlist + @order, @c_sort,@type = params[:order] || 1, params[:sort] || 1, params[:type] || 1 + + #确定 sort_type + if @order.to_i == @type.to_i + @c_sort = @c_sort.to_i == 1 ? 2 : 1 #1升序 2降序 + else + @c_sort = 2 + end + + sort_name = "created_on" + sort_type = @c_sort == 1 ? "asc" : "desc" + + if @user.projects.visible.count > 0 + project_order_ids = "(" +ForgeActivity.find_by_sql("SELECT p.project_id, p.created_at FROM (SELECT fa.project_id, MAX(fa.created_at) AS created_at FROM forge_activities fa WHERE fa.project_id IN (" + @user.projects.visible.select('projects.id').map{|p| p.id}.join(',') + ") GROUP BY fa.project_id) AS p ").map {|p| p.project_id}.join(",") + ")" + @projects = Project.where("projects.id in #{project_order_ids}").order("#{sort_name} #{sort_type}") + else + @projects = [] + end + + #根据 问题+资源数排序 @project.project_score.issue_num @project.project_score.attach_num + if @order.to_i == 2 + @type = 2 + @c_sort == 1 ? (@projects = @projects.sort{|x,y| x.project_score.issue_num+x.project_score.attach_num <=> y.project_score.issue_num+y.project_score.attach_num }) : (@projects = @projects.sort{|x,y| y.project_score.issue_num+y.project_score.attach_num <=> x.project_score.issue_num+x.project_score.attach_num }) + else + @type = 1 + end + + #分页 + @limit = 10 + @is_remote = true + @atta_count = @projects.count + @atta_pages = Paginator.new @atta_count, @limit, params['page'] || 1 + @offset ||= @atta_pages.offset + @projects = paginateHelper @projects,@limit + + respond_to do |format| + format.js + format.html {render :layout => 'new_base_user'} + end + end + private def find_user diff --git a/app/helpers/organizations_helper.rb b/app/helpers/organizations_helper.rb index 4faa802a5..3fdfc3aa0 100644 --- a/app/helpers/organizations_helper.rb +++ b/app/helpers/organizations_helper.rb @@ -63,14 +63,67 @@ module OrganizationsHelper def subfield_status_option type = [] option1 = [] - option1 << "列表" + option1 << "左上" option1 << "1" type << option1 option2 = [] - option2 << "图片" - option2 << "0" + option2 << "中一" + option2 << "2" type << option2 + option3 = [] + option3 << "中二" + option3 << "3" + type << option3 + option4 = [] + option4 << "中下" + option4 << "4" + type << option4 + option5 = [] + option5 << "左下" + option5 << "5" + type << option5 + option6 = [] + option6 << "右上" + option6 << "6" + type << option6 + option7 = [] + option7 << "右中" + option7 << "7" + type << option7 + option8 = [] + option8 << "右下" + option8 << "8" + type << option8 type end + def subfield_list_type subfield + case subfield.to_i + when 1 + resulet = "左上" + when 2 + resulet = "中一" + when 3 + resulet = "中二" + when 4 + resulet = "中下" + when 5 + resulet = "左下" + when 6 + resulet = "右上" + when 7 + resulet = "右中" + when 8 + resulet = "右下" + end + end + + + def get_subfield_acts field + org_subfield = OrgSubfield.find(field.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') + org_acts + end + end diff --git a/app/views/blogs/_article.html.erb b/app/views/blogs/_article.html.erb index edbce26d3..ec6a6c7b5 100644 --- a/app/views/blogs/_article.html.erb +++ b/app/views/blogs/_article.html.erb @@ -1,226 +1,76 @@ -
-
-
- <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id,:host=>Setting.host_user), :alt => "用户头像" %> -
-
- <% if activity.author.id == User.current.id || User.current.admin? %> - - <%end%> -
- <% if activity.try(:author).try(:realname) == ' ' %> - <%= link_to activity.try(:author), user_path(activity.author_id,:host=>Setting.host_user), :class => "newsBlue mr15" %> - <% else %> - <%= link_to activity.try(:author).try(:realname), user_path(activity.author_id,:host=>Setting.host_user), :class => "newsBlue mr15" %> +
+
+
+

博客列表

+
+ 排序: + <%= link_to "时间", {:controller => 'blogs', :action => 'index', :id =>@user, :type => @type, :sort => @b_sort, :order => 1 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 1 %> + <%= link_to "", {:controller => 'blogs', :action => 'index', :id =>@user, :type => @type, :sort => @b_sort, :order => 1 }, :class => "#{@b_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> <% end %> - TO - <%= link_to activity.blog.name+" | 博客", user_blogs_path(:user_id=>activity.author_id,:host=>Setting.host_user), :class => "newsBlue ml15 mr5"%> - <% if activity.blog.homepage_id and activity.id == activity.blog.homepage_id %> - 已设为首页 + <%= link_to "人气", {:controller => 'blogs', :action => 'index', :id =>@user, :type => @type, :sort => @b_sort, :order => 2 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 2 %> + <%= link_to "", {:controller => 'blogs', :action => 'index', :id =>@user, :type => @type, :sort => @b_sort, :order => 2 }, :class => "#{@b_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> <% end %> -
-
- - <% if activity.sticky == 1%> - 置顶 - <% end%> - <% if activity.locked%> -        - <% end%> -
-
- 发帖时间:<%= format_time(activity.created_on) %> -
-
- 更新时间:<%= format_time(activity.updated_on) %> -
-
- <% if activity.parent_id.nil? %> - <% content= activity.content%> - <% else %> - <% content= activity.parent.content%> - <% end %> - <%=render :partial =>"users/intro_content", :locals=>{:user_activity_id =>user_activity_id, :content=>content} %> -
- - - -
-
- <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %> +
- -
-
-
- <% count=0 %> - <% if activity.parent %> - <% count=activity.parent.children.count%> - <% else %> - <% count=activity.children.count%> - <% end %> -
-
-
回复 - <%= count>0 ? "(#{count})" : "" %> - - <% if activity.author == User.current %> - - <% else %> - <%=render :partial=> "praise_tread/praise", :locals => {:activity=>activity, :user_activity_id=>user_activity_id,:type=>"activity"}%> - <% end %> - -
-
<%#=format_date(activity.updated_on)%>
- <%if count > 3 %> - - <% end %> -
- - <% activity= activity.parent ? activity.parent : activity%> - <% replies_all_i = 0 %> - <% if count > 0 %> -
-
    - <% activity.children.reorder("created_on desc").each do |reply|%> - - <% replies_all_i=replies_all_i+1 %> -
  • -
    - <%= link_to image_tag(url_to_avatar(reply.author), :width => "33", :height => "33"), user_path(reply.author_id,:host=>Setting.host_user), :alt => "用户头像" %> -
    -
    -
    - <% if reply.try(:author).try(:realname) == ' ' %> - <%= link_to reply.try(:author), user_path(reply.author_id,:host=>Setting.host_user), :class => "newsBlue mr10 f14" %> - <% else %> - <%= link_to reply.try(:author).try(:realname), user_path(reply.author_id,:host=>Setting.host_user), :class => "newsBlue mr10 f14" %> - <% end %> - <%= format_time(reply.created_on) %> - - <% if reply.author == User.current %> - - <% else %> - <%=render :partial=> "praise_tread/praise", :locals => {:activity=>reply, :user_activity_id=>reply.id,:type=>"reply"}%> - <% end %> - -
    -
    - <%= reply.content.html_safe %> -
    -
    -
    -
  • - <% end %> + <% end %> +
    +
      + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %>
    -
    - <% end %> - - <% if !activity.locked? %> -
    -
    <%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %>
    -
    -
    - <%= form_for('new_form',:url => {:controller=>'blog_comments',:action => 'reply', :id => activity.id, :blog_id => activity.blog.id, :user_id => activity.author_id},:method => "post",:remote=>true) do |f|%> - - - - - -
    - - -
    -

    - <% end%> -
    -
    -
    -
    - <% end %> -
+
+
+ //如果右边的博客列表比左边的高度低则将右边的高度设为与左边对齐 + var leftHeight = $("#LSide").height()-$(".fontGrey5").height()-10; + var rightHeight = $(".homepageRight").height(); + if (rightHeight < leftHeight){ + var diffHeight = leftHeight - rightHeight; + var tmpHeight = $(".listbox").height()+diffHeight; + $(".listbox").css("height",tmpHeight); + } + \ No newline at end of file diff --git a/app/views/blogs/_article_list.html.erb b/app/views/blogs/_article_list.html.erb index f3fd1aa61..c52fa017e 100644 --- a/app/views/blogs/_article_list.html.erb +++ b/app/views/blogs/_article_list.html.erb @@ -38,7 +38,7 @@
-
+
<%= @user.name%>的博客
@@ -51,44 +51,9 @@ <% end %> <% if topics%> - <% topics.each do |topic| %> - - <% if topic %> - <%= render :partial => 'blogs/article', :locals => {:activity => topic, :user_activity_id => topic.id} %> - <% end %> - <% end %> - - <%# if topics.count == 10 %> - - <%# end %> + <%= render :partial => 'blogs/article', :locals => {:topics => topics} %> <% end%>
- - <% if topic %> - <%= render :partial => 'users/course_message', :locals => {:activity => topic, :user_activity_id => topic.id, :is_course => 1, :is_board=>1} %> - <% end %> - <% end %> - - <% if topics.count == 10 %> - <%= link_to "点击展开更多",boards_topic_path(@board, :course_id => @board.course.id ,:page => page),:id => "show_more_course_topic",:remote => "true",:class => "loadMore mt10 f_grey"%> - <% end %> -<% end%> +<% if @topics || topics %> + <%= render :partial => 'users/course_boardlist', :locals => {:topics => @topics ? @topics: topics , :is_course => 1, :is_board=>1} %> +<% end %> \ No newline at end of file diff --git a/app/views/boards/_project_show_detail.html.erb b/app/views/boards/_project_show_detail.html.erb index 1d5cc3b75..260fb88c1 100644 --- a/app/views/boards/_project_show_detail.html.erb +++ b/app/views/boards/_project_show_detail.html.erb @@ -2,60 +2,7 @@ <%= import_ke(enable_at: false, prettify: false) %> <%= javascript_include_tag "create_kindeditor" %> <% end %> - -<% if topics%> - <% topics.each do |topic| %> - - <% if topic %> - <%= render :partial => 'users/project_message', :locals => {:activity => topic, :user_activity_id => topic.id,:is_course=>1,:is_board=>1} %> - <% end %> - <% end %> - - <% if topics.count == 10 %> - - <%= link_to "点击展开更多", boards_topic_path(@board, :project_id => @board.project.id ,:page => page), :id => "show_more_project_topic",:remote => "true",:class => "loadMore mt10 f_grey"%> - <% end %> -<% end%> - - +<%if @topics || topics %> + <%= render :partial => 'users/project_boardlist', :locals => {:topics => @topics ? @topics: topics , :is_course => 1, :is_board=>1} %> +<% end %> \ No newline at end of file diff --git a/app/views/boards/show.js.erb b/app/views/boards/show.js.erb index c9208fd2c..cb7ee64a1 100644 --- a/app/views/boards/show.js.erb +++ b/app/views/boards/show.js.erb @@ -1,5 +1,5 @@ <% if @course %> - $("#show_more_course_topic").replaceWith("<%= escape_javascript( render :partial => 'boards/course_show_detail',:locals => {:topics => @topics, :page => @page} )%>"); + $("#course-boardlist").replaceWith('<%= escape_javascript( render :partial => 'users/course_boardlist', :locals => {:topics => @topics, :is_course => 1, :is_board=>1}) %>'); <% else %> - $("#show_more_project_topic").replaceWith("<%= escape_javascript( render :partial => 'boards/project_show_detail',:locals => {:topics => @topics, :page => @page} )%>"); + $("#project-boardlist").replaceWith('<%= escape_javascript( render :partial => 'users/project_boardlist', :locals => {:topics => @topics, :is_course => 1, :is_board=>1}) %>'); <% end %> \ No newline at end of file diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index c04081128..f5b421f62 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -5,17 +5,18 @@
    + <%= link_to "资源库", user_resource_user_path(User.current, :type => 6), :class => "c_white f16 db p10" %> + <% if User.current.user_extensions && User.current.user_extensions.identity == 0 && User.current.allowed_to?(:add_course, nil, :global => true)%> <% else %> <% end %> -<% end%> \ No newline at end of file +<% end%> + + diff --git a/app/views/layouts/_user_projects.html.erb b/app/views/layouts/_user_projects.html.erb index f24eeb16e..c317c0d4b 100644 --- a/app/views/layouts/_user_projects.html.erb +++ b/app/views/layouts/_user_projects.html.erb @@ -1,7 +1,7 @@ <% projects.each do |project|%>
  • <% count = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count %> - <%= link_to project.name, project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "coursesLineGrey hidden",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%> + <%= link_to project.name, project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "projectsLineGrey hidden",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%>
+ <% end %> + <% if @user.courses.visible.count > 0 + course_order_ids = "(" + + CourseActivity.find_by_sql("SELECT c.course_id, updated_at FROM (SELECT ca.course_id, MAX(ca.updated_at) AS updated_at FROM course_activities ca WHERE ca.course_id IN (" + @user.courses.visible.select('courses.id').map{|c| c.id}.join(',') + ") GROUP BY ca.course_id) AS c ORDER BY c.updated_at DESC limit 5").map {|c| c.course_id}.join(",") + ")" - courses = Course.where("id in #{course_order_ids}") - else + courses = Course.where("id in #{course_order_ids}") + else courses = [] - end + end %> - <% if @user.courses.visible.count > 0 - 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) - else - courses = [] - end %> -
-
    - <%= render :partial => 'layouts/user_courses', :locals => {:courses => courses,:user => @user, :page => 0} %> -
+ <%# 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) %> + +
+
+
    + <%= render :partial => 'layouts/user_courses', :locals => {:courses => courses,:user => @user, :page => 0} %> +
+
+ <% if !courses.empty? %> +
+ +
+ <% end %>
- 项目 - + <%= link_to '项目',{:controller => "users", :action => "user_projectlist", :id => @user.id}, :class => "homepageMenuText" %> <% if is_current_user%> <%=link_to "", new_project_path(:host=> Setting.host_name), :class => "homepageMenuSetting fr", :style => "margin-right:10px;", :title => "新建项目"%> <% end%>
- <%# if @user.projects.visible.count > 0 - project_order_ids = "(" + - ForgeActivity.find_by_sql("SELECT p.project_id, p.updated_at FROM - (SELECT fa.project_id, MAX(fa.updated_at) AS updated_at FROM forge_activities fa WHERE fa.project_id IN (" + @user.projects.visible.select('projects.id').map{|p| p.id}.join(',') + ") - GROUP BY fa.project_id) AS p - ORDER BY p.updated_at DESC limit 5").map {|p| p.project_id}.join(",") + ")" - projects = Project.where("projects.id in #{project_order_ids}") - else - projects = [] - end - %> - <% if @user.projects.visible.count > 0 - 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) + project_order_ids = "(" + + ForgeActivity.find_by_sql("SELECT p.project_id, p.created_at FROM + (SELECT fa.project_id, MAX(fa.created_at) AS created_at FROM forge_activities fa WHERE fa.project_id IN (" + @user.projects.visible.select('projects.id').map{|p| p.id}.join(',') + ") + GROUP BY fa.project_id) AS p + ORDER BY p.created_at DESC limit 5").map {|p| p.project_id}.join(",") + ")" + projects = Project.where("projects.id in #{project_order_ids}") else projects = [] end %> -
-
    - <%= render :partial => 'layouts/user_projects', :locals => {:projects => projects,:user => @user, :page => 0} %> -
+ + <%# 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)%> +
+
+
    + <%= render :partial => 'layouts/user_projects', :locals => {:projects => projects,:user => @user, :page => 0} %> +
+
+ <% if !projects.empty? %> +
+ +
+ <% end %>
@@ -343,6 +353,22 @@ $("#courseMenu").mouseleave(function(){ $("#topnav_course_menu").hide(); }); + + $('#user_hide_course').hide(); + function leftCourseslistChange(){ + $('#homepageLeftMenuCourses').slideToggle(); + $('#hide_show_courseicon').toggleClass("homepageLeftMenuHideIcon"); + $('#hide_show_courseicon').toggleClass("homepageLeftMenuMoreIcon"); + + } + + $('#user_hide_project').hide(); + function leftProjectslistChange(){ + $('#homepageLeftMenuForge').slideToggle(); + $('#hide_show_projecticon').toggleClass("homepageLeftMenuHideIcon"); + $('#hide_show_projecticon').toggleClass("homepageLeftMenuMoreIcon"); + + } diff --git a/app/views/organizations/_org_content.html.erb b/app/views/organizations/_org_content.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/organizations/_org_logined_header.html.erb b/app/views/organizations/_org_logined_header.html.erb index 75ec7106a..22cf920e9 100644 --- a/app/views/organizations/_org_logined_header.html.erb +++ b/app/views/organizations/_org_logined_header.html.erb @@ -1,48 +1,54 @@ -<% if User.current.logged? %> - -<% else %> - -<% end %> - - \ No newline at end of file diff --git a/app/views/organizations/_org_subfield_leftD.html.erb b/app/views/organizations/_org_subfield_leftD.html.erb new file mode 100644 index 000000000..676d5d1c3 --- /dev/null +++ b/app/views/organizations/_org_subfield_leftD.html.erb @@ -0,0 +1,117 @@ +
+

合作伙伴更多

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

暂无内容!

+ <% when 'project' %> +

暂无内容!

+ <% end %> +<% else %> + <% 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" %> + <% 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" %> + <% end %> + <% else %> + <% 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" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank" %> + <% 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 %> +
+

合作伙伴更多

+
+
    +
  • + + +
  • +
  • + + +
  • +
+
+
+
<
+
>
+
+
+
+
+ <% 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" %> + <% 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" %> + <% 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" %> + <% end %> +
+ <% end %> +<% end %> diff --git a/app/views/organizations/_org_subfield_leftM1.html.erb b/app/views/organizations/_org_subfield_leftM1.html.erb new file mode 100644 index 000000000..a987e23cb --- /dev/null +++ b/app/views/organizations/_org_subfield_leftM1.html.erb @@ -0,0 +1,256 @@ +

<%= field.name %>更多

+
+<% if is_default_field?(field) %> + <% case field.name %> + <% when 'course' %> + <% if @course_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftM1_default', :locals => {:field => field} %> + <% else %> + <% @course_acts.first(1).each do |act| %> + <% if act.org_act_type == "HomeworkCommon" %> + <% activity = HomeworkCommon.find(act.org_act_id) %> + <% 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" %> + <% 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" %> + <% end %> +

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

+ <%= format_date activity.updated_at %> +
+

<%= activity.description.to_s.html_safe %>

+
+
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% 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" %> + <% 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" %> + <% 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 => "h3-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h3-title" %> + <% end %> +

+ <%= format_date activity.updated_on %> +
+

<%= activity.content.to_s.html_safe %>

+
+
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% 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" %> + <% 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" %> + <% end %> +

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

+ <%= format_date activity.created_on %> +
+

<%= activity.description.to_s.html_safe %>

+
+
+ <% elsif act.org_act_type == "Poll" %> + <% activity = Poll.find(act.org_act_id) %> + <% has_commit = has_commit_poll?(activity.id ,User.current)%> + <% poll_name = activity.polls_name.empty? ? l(:label_poll_new) : activity.polls_name%> + <% iamge_path = get_image_path_from_content(activity.polls_description) %> + <% 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" %> + <% 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" %> + <% end %> +

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

+ <%= format_date activity.published_at %> +
+

<%= activity.polls_description.to_s.html_safe %>

+
+
+ <% end %> + <% end %> + <% end %> + <% end %> + <% when 'project' %> + <% if @project_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftM1_default', :locals => {:field => field} %> + <% else %> + <% @project_acts.first(4).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) %> +
+ <% 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" %> + <% 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" %> + <% end %> +

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

+ <%= format_date activity.updated_on %> +
+

<%= activity.description.to_s.html_safe %>

+
+
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% 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" %> + <% 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" %> + <% 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 => "h3-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "h3-title" %> + <% end %> +

+ <%= format_date activity.updated_on %> +
+

<%= activity.content.to_s.html_safe %>

+
+
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% 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" %> + <% 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" %> + <% end %> +

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

+ 2016-04-08 +
+

<%= activity.description.to_s.html_safe %>

+
+
+ <% end %> + <% end %> + <% end %> + <% end %> +<% else %> + <% if field.field_type == "Post" %> + <% org_acts = get_subfield_acts field %> + <% if org_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftM1_default', :locals => {:field => field} %> + <% else %> + <% 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 %> + <% 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/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" %> + <% 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" %> + <% end %> +

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

+ <%= format_date document.created_at %> +
+

<%= document.content.to_s.html_safe %>

+
+
+ <% else 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.parent_id.nil? %> + <% content = message.content%> + <% else %> + <% content = message.parent.content%> + <% end %> + <% iamge_path = get_image_path_from_content(content) %> + <% 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" %> + <% 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" %> + <% 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 => "h3-title" %> + <% else %> + <%= link_to message.parent.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "h3-title" %> + <% end %> +

+ <%= format_date message.created_on %> +
+

<%= content.to_s.html_safe %>

+
+
+ <% 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" %> + <% 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" %> + <% end %> +

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

+ <%= format_date message.created_on %> +
+

<%= content.to_s.html_safe %>

+
+
+ <% 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/files-default.jpg", :width => "380", :height => "165"), news_path(news), :target => "_blank", :class =>"sn-news-bigimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "380", :height => "165"), news_path(news), :target => "_blank", :class =>"sn-news-bigimg" %> + <% end %> +

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

+ <%= format_date news.created_on %> +
+

<%= news.description.to_s.html_safe %>

+
+
+ <% end %> + <% end %> + <% end %> + <% end %> + <% end %> +<% end %> + + diff --git a/app/views/organizations/_org_subfield_leftM1_default.html.erb b/app/views/organizations/_org_subfield_leftM1_default.html.erb new file mode 100644 index 000000000..919d76363 --- /dev/null +++ b/app/views/organizations/_org_subfield_leftM1_default.html.erb @@ -0,0 +1,8 @@ +
+ +

+ +
+

+
+
diff --git a/app/views/organizations/_org_subfield_leftM2.html.erb b/app/views/organizations/_org_subfield_leftM2.html.erb new file mode 100644 index 000000000..aec1a88fe --- /dev/null +++ b/app/views/organizations/_org_subfield_leftM2.html.erb @@ -0,0 +1,233 @@ +
+<% if is_default_field?(field) %> + <% case field.name %> + <% when 'course' %> + <% if @course_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftM2_default', :locals => {:field => field} %> + <% else %> + <% @course_acts.first(4).each do |act| %> + <% if act.org_act_type == "HomeworkCommon" %> + <% activity = HomeworkCommon.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/right_top.jpg", :width => "85", :height => "85"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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" %> +

+ <%= format_date activity.updated_at %> +
+
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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 %> +

+ <% 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" %> + <% 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" %> + <% end %> +

+ <%= format_date activity.updated_on %> +
+
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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" %> +

+ <%= format_date activity.created_on %> +
+
+ <% elsif act.org_act_type == "Poll" %> + <% activity = Poll.find(act.org_act_id) %> + <% has_commit = has_commit_poll?(activity.id ,User.current)%> + <% poll_name = activity.polls_name.empty? ? l(:label_poll_new) : activity.polls_name%> + <% iamge_path = get_image_path_from_content(activity.polls_description) %> + <% if ( activity.polls_status==2) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% 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" %> + <% else %> + <%= 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 %> +
+
+ <% end %> + <% end %> + <% end %> + <% end %> + <% when 'project' %> + <% if @project_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftM2_default', :locals => {:field => field} %> + <% else %> + <% @project_acts.first(4).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) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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" %> +

+ <%= format_date activity.updated_on %> +
+
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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 %> +

+ <% 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" %> + <% 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" %> + <% end %> +

+ <%= format_date activity.updated_on %> +
+
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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" %> +

+ <%= format_date activity.created_on %> +
+
+ <% end %> + <% end %> + <% end %> + <% end %> +<% else %> + <% if field.field_type == "Post" %> + <% org_acts = get_subfield_acts field %> + <% if org_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftM2_default', :locals => {:field => field} %> + <% else %> + <% 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 %> + <% 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/files-default.jpg", :width => "85", :height => "85"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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" %> +

+ <%= format_date document.created_at %> +
+
+ <% else 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.parent_id.nil? %> + <% content = message.content%> + <% else %> + <% content = message.parent.content%> + <% end %> + <% iamge_path = get_image_path_from_content(content) %> + <% if message.board.org_subfield_id %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% 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" %> + <% 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" %> + <% end %> +

+ <%= format_date message.created_on %> +
+
+ <% else %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "85", :height => "85"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "85", :height => "85"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% 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" %> + <% else %> + <%= 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 %> +
+
+ <% 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/files-default.jpg", :width => "85", :height => "85"), news_path(news), :target => "_blank", :class =>"sn-news-smallimg fl" %> + <% else %> + <%= 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" %> +

+ <%= format_date news.created_on %> +
+
+ <% end %> + <% end %> + <% end %> + <% end %> + <% end %> +<% end %> +
+
\ 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 new file mode 100644 index 000000000..1b47d9d5c --- /dev/null +++ b/app/views/organizations/_org_subfield_leftM2_default.html.erb @@ -0,0 +1,26 @@ + \ 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 new file mode 100644 index 000000000..2db926776 --- /dev/null +++ b/app/views/organizations/_org_subfield_leftMD.html.erb @@ -0,0 +1,258 @@ +
+

<%= field.name %>更多

+
+ <% if is_default_field?(field) %> + <% case field.name %> + <% when 'course' %> + <% if @course_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftMD_default', :locals => {:field => field} %> + <% else %> + <% @course_acts.first(4).each do |act| %> + <% if act.org_act_type == "HomeworkCommon" %> + <% activity = HomeworkCommon.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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.description.to_s.html_safe, student_work_index_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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 %> +

+ <% 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" %> + <% 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" %> + <% end %> +

+
+ <%= link_to activity.content.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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.description.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% elsif act.org_act_type == "Poll" %> + <% activity = Poll.find(act.org_act_id) %> + <% has_commit = has_commit_poll?(activity.id ,User.current)%> + <% poll_name = activity.polls_name.empty? ? l(:label_poll_new) : activity.polls_name%> + <% iamge_path = get_image_path_from_content(activity.polls_description) %> + <% if ( activity.polls_status==2) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-resourcesimg" %> + <% 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" %> + <% else %> + <%= link_to poll_name, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "resources-title" %> + <% end %> +

+
+ <%= link_to activity.polls_description.to_s.html_safe, Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% end %> + <% end %> + <% end %> + <% end %> + <% when 'project' %> + <% if @project_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftMD_default', :locals => {:field => field} %> + <% else %> + <% @project_acts.first(4).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) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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.description.to_s.html_safe, issue_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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 %> +

+ <% 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" %> + <% 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" %> + <% end %> +

+
+ <%= link_to activity.content.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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.content.to_s.html_safe, news_url_in_org(activity.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% end %> + <% end %> + <% end %> + <% end %> + <% else %> + <% if field.field_type == "Post" %> + <% org_acts = get_subfield_acts field %> + <% if org_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftMD_default', :locals => {:field => field} %> + <% else %> + <% 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 %> + <% 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/files-default.jpg", :width => "185", :height => "125"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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.content.to_s.html_safe, org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% else 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.parent_id.nil? %> + <% content = message.content%> + <% else %> + <% content = message.parent.content%> + <% end %> + <% iamge_path = get_image_path_from_content(content) %> + <% if message.board.org_subfield_id %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-resourcesimg" %> + <% 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" %> + <% 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" %> + <% end %> +

+
+ <%= link_to content.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% else %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "185", :height => "125"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "185", :height => "125"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-resourcesimg" %> + <% 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" %> + <% else %> + <%= link_to message.parent.subject.to_s.html_safe, board_message_path(message.board,activity), :target => '_blank', :class => "resources-title" %> + <% end %> +

+
+ <%= link_to content.to_s.html_safe, board_message_path(message.board,activity), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% 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/files-default.jpg", :width => "185", :height => "125"), news_path(news), :target => "_blank", :class =>"sn-resourcesimg" %> + <% else %> + <%= 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.description.to_s.html_safe, news_path(news), :target => '_blank', :class => "resources-tag" %> +
+ 更多 +
+ <% end %> + <% end %> + <% end %> + <% end %> + <% end %> + <% end %> +
+
+
\ No newline at end of file diff --git a/app/views/organizations/_org_subfield_leftMD_default.html.erb b/app/views/organizations/_org_subfield_leftMD_default.html.erb new file mode 100644 index 000000000..4268c7cc8 --- /dev/null +++ b/app/views/organizations/_org_subfield_leftMD_default.html.erb @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/app/views/organizations/_org_subfield_leftT.html.erb b/app/views/organizations/_org_subfield_leftT.html.erb new file mode 100644 index 000000000..e64044a6b --- /dev/null +++ b/app/views/organizations/_org_subfield_leftT.html.erb @@ -0,0 +1,276 @@ +<% if is_default_field?(field) %> + <% case field.name %> + <% when 'course' %> + <% if @course_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftT_default', :locals => {:field => field} %> + <% else %> +
+ +
+
+ <% @course_acts.first(4).each do |act| %> + <% if act.org_act_type == "HomeworkCommon" %> + <% activity = HomeworkCommon.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> + + <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> + + <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> + + <% elsif act.org_act_type == "Poll" %> + <% activity = Poll.find(act.org_act_id) %> + <% has_commit = has_commit_poll?(activity.id ,User.current)%> + <% poll_name = activity.polls_name.empty? ? l(:label_poll_new) : activity.polls_name%> + <% iamge_path = get_image_path_from_content(activity.polls_description) %> + <% if ( activity.polls_status==2) %> + + <% end %> + <% end %> + <% end %> +
+
+
+ + + + +
+
+ + +
+
+ <% end %> + <% when 'project' %> + <% if @project_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftT_default', :locals => {:field => field} %> + <% else %> +
+ +
+
+ <% @project_acts.first(4).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) %> + + <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> + + <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> + + <% end %> + <% end %> +
+
+
+ + + + +
+
+ + +
+
+ <% end %> + <% end %> +<% else %> + <% if field.field_type == "Post" %> + <% org_acts = get_subfield_acts field %> + <% if org_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftT_default', :locals => {:field => field} %> + <% else %> +
+ +
+
+ <% 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 %> + <% org_subfield_id = params[:org_subfield_id] %> + <% flag = 2 %> + <% iamge_path = get_image_path_from_content(document.content) %> + + <% 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 %> + <% if message.parent_id.nil? %> + <% content = message.content%> + <% else %> + <% content = message.parent.content%> + <% end %> + <% iamge_path = get_image_path_from_content(content) %> + + <% else %> + <% if message.parent_id.nil? %> + <% content = message.content%> + <% else %> + <% content = message.parent.content%> + <% end %> + <% iamge_path = get_image_path_from_content(content) %> + + <% 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) %> + + <% end %> + <% end %> + <% end %> +
+
+
+ + + + +
+
+ + +
+
+ <% end %> + <% end %> +<% end %> + + \ No newline at end of file diff --git a/app/views/organizations/_org_subfield_leftT_default.html b/app/views/organizations/_org_subfield_leftT_default.html new file mode 100644 index 000000000..f2f66758f --- /dev/null +++ b/app/views/organizations/_org_subfield_leftT_default.html @@ -0,0 +1,10 @@ +
+ +
+
+
+ +
+
+
+
\ No newline at end of file diff --git a/app/views/organizations/_org_subfield_rightD.html.erb b/app/views/organizations/_org_subfield_rightD.html.erb new file mode 100644 index 000000000..131ae5183 --- /dev/null +++ b/app/views/organizations/_org_subfield_rightD.html.erb @@ -0,0 +1,73 @@ +<% if is_default_field?(field) %> + <% case field.name %> + <% when 'course' %> +

暂无内容!

+ <% when 'project' %> +

暂无内容!

+ <% end %> +<% else %> + <% if field.field_type == "Post" %> <%# 讨论类型 %> + <% org_acts = get_subfield_acts field %> + <% unless org_acts.blank? %> + <% activity = org_acts.first %> +
+ <% 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" %> + <% 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" %> + <% end %> + <% else %> + <% 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" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "370", :height => "220"), board_message_path(message.board,activity), :target => "_blank" %> + <% 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 %> +
+ <% else %> +
+ +
+ <% 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" %> + <% 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" %> + <% 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" %> + <% end %> +
+ <% end %> +<% end %> diff --git a/app/views/organizations/_org_subfield_rightM.html.erb b/app/views/organizations/_org_subfield_rightM.html.erb new file mode 100644 index 000000000..d75b9f20f --- /dev/null +++ b/app/views/organizations/_org_subfield_rightM.html.erb @@ -0,0 +1,98 @@ +<% if is_default_field?(field) %> + <% case field.name %> +<% when 'course' %> +

暂无内容!

+ <% when 'project' %> +

暂无内容!

+ <% end %> +<% else %> + <% if field.field_type == "Post" %> <%# 讨论类型 %> + <% org_acts = get_subfield_acts field %> + <% unless org_acts.blank? %> + <% activity = org_acts.first %> +
+ <% 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) %> +

<%= field.name %>

+
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "104", :height => "104"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "fl sn-index-wximg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "104", :height => "104"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class => "fl sn-index-wximg" %> + <% end %> +

<%=link_to document.title, org_document_comment_path(:id => document.id, :organization_id => document.organization.id) %>

+
+
+ <% else 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) %> +

<%= field.name %>

+
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "104", :height => "104"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class => "fl sn-index-wximg" %> + <% else %> + <%= 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 %> + <% iamge_path = get_image_path_from_content(message.content) %> +

<%= field.name %>

+
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "104", :height => "104"), board_message_path(message.board, activity), :target => "_blank", :class => "fl sn-index-wximg" %> + <% else %> + <%= 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 %> + <% 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) %> +

<%= field.name %>

+
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/ad-default.jpg", :width => "104", :height => "104"), news_path(news), :target => "_blank", :class => "fl sn-index-wximg" %> + <% else %> + <%= 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 %> + <% end %> +
+ <% else %> +
+

<%= field.name %>

+
+ +

暂无内容!

+
+
+
+ <% 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 => "104", :height => "104"), 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 => "104", :height => "104"), 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 => "104", :height => "104"), org_subfield_files_path(field), :class => "more-btn-center mt30", :target => "_blank" %> + <% end %> +
+ <% end %> +<% end %> diff --git a/app/views/organizations/_org_subfield_rightT.html.erb b/app/views/organizations/_org_subfield_rightT.html.erb new file mode 100644 index 000000000..e93031991 --- /dev/null +++ b/app/views/organizations/_org_subfield_rightT.html.erb @@ -0,0 +1,223 @@ +
+

<%= field.name %>更多

+<% if is_default_field?(field) %> + <% case field.name %> + <% when 'course' %> + <% if @course_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_rightT_default', :locals => {:field => field} %> + <% else %> + <% @course_acts.first(4).each do |act| %> + <% if act.org_act_type == "HomeworkCommon" %> + <% activity = HomeworkCommon.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/right_top.jpg", :width => "330", :height => "210"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), student_work_index_url_in_org(activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date activity.updated_at %> +
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% 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 => "active-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "active-title" %> + <% end %> +

+ <%= format_date activity.updated_on %> +
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), news_url_in_org(activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date activity.created_on %> +
+ <% elsif act.org_act_type == "Poll" %> + <% activity = Poll.find(act.org_act_id) %> + <% has_commit = has_commit_poll?(activity.id ,User.current)%> + <% poll_name = activity.polls_name.empty? ? l(:label_poll_new) : activity.polls_name%> + <% iamge_path = get_image_path_from_content(activity.polls_description) %> + <% if ( activity.polls_status==2) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), Setting.protocol + "://" + Setting.host_name + "/poll/" + activity.id.to_s + "/poll_result", :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date activity.published_at %> +
+ <% end %> + <% end %> + <% end %> + <% end %> + <% when 'project' %> + <% if @project_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftMD_default', :locals => {:field => field} %> + <% else %> + <% @project_acts.first(4).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) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), issue_url_in_org(activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date activity.updated_on %> +
+ <% elsif act.org_act_type == "Message" %> + <% activity = Message.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.content) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% 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 => "active-title" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_url_in_org(activity.board_id, activity.id), :target => '_blank', :class => "active-title" %> + <% end %> +

+ <%= format_date activity.updated_on %> +
+ <% elsif act.org_act_type == "News" %> + <% activity = News.find(act.org_act_id) %> + <% iamge_path = get_image_path_from_content(activity.description) %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), board_message_url_in_org(activity.board_id, activity.id), :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date activity.created_on %> +
+ <% end %> + <% end %> + <% end %> + <% end %> +<% else %> + <% if field.field_type == "Post" %> + <% org_acts = get_subfield_acts field %> + <% if org_acts.blank? %> + <%= render :partial => 'organizations/org_subfield_leftMD_default', :locals => {:field => field} %> + <% else %> + <% 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 %> + <% 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/files-default.jpg", :width => "330", :height => "210"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), org_document_comment_path(:id => document.id, :organization_id => document.organization.id), :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date document.created_at %> +
+ <% else 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.parent_id.nil? %> + <% content = message.content%> + <% else %> + <% content = message.parent.content%> + <% end %> + <% iamge_path = get_image_path_from_content(content) %> + <% if message.board.org_subfield_id %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), board_message_url_in_org(message.board.id,message.id), :target => "_blank", :class =>"sn-activeimg" %> + <% 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 => "active-title" %> + <% else %> + <%= link_to message.parent.subject.to_s.html_safe, board_message_url_in_org(message.board.id,message.id), :target => '_blank', :class => "active-title" %> + <% end %> +

+ <%= format_date message.created_on %> +
+ <% else %> +
+ <% if iamge_path.nil? %> + <%= link_to image_tag("/images/default_blank/files-default.jpg", :width => "330", :height => "210"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), board_message_path(message.board,activity), :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date message.created_on %> +
+ <% 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/files-default.jpg", :width => "330", :height => "210"), news_path(news), :target => "_blank", :class =>"sn-activeimg" %> + <% else %> + <%= link_to image_tag("/files/uploads/image#{iamge_path}", :width => "330", :height => "210"), news_path(news), :target => "_blank", :class =>"sn-activeimg" %> + <% end %> +

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

+ <%= format_date news.created_on %> +
+ <% end %> + <% end %> + <% end %> + <% end %> + <% end %> +<% end %> +
+
\ No newline at end of file diff --git a/app/views/organizations/_subfield_list.html.erb b/app/views/organizations/_subfield_list.html.erb index 2c679eb3d..7db41cba5 100644 --- a/app/views/organizations/_subfield_list.html.erb +++ b/app/views/organizations/_subfield_list.html.erb @@ -27,7 +27,7 @@ 默认 <% 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, @@ -63,7 +63,7 @@ 列表 <% 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, diff --git a/app/views/organizations/org_subfield_rightT_default.html.erb b/app/views/organizations/org_subfield_rightT_default.html.erb new file mode 100644 index 000000000..ecdc7fba0 --- /dev/null +++ b/app/views/organizations/org_subfield_rightT_default.html.erb @@ -0,0 +1,7 @@ +
+
+ +

+ +
+
\ No newline at end of file diff --git a/app/views/settings/edit.html.erb b/app/views/settings/edit.html.erb index 798db291b..033254a07 100644 --- a/app/views/settings/edit.html.erb +++ b/app/views/settings/edit.html.erb @@ -1,5 +1,6 @@

<%=l(:label_settings)%>

<%= link_to @text,settings_hidden_non_project_path,:id => "hidden_non_project",:style => "float: right;margin-right: 60px;margin-top: 9px;"%> +
<%= render_tabs administration_settings_tabs %> diff --git a/app/views/settings/hidden_courses.js.erb b/app/views/settings/hidden_courses.js.erb new file mode 100644 index 000000000..b4d344a6c --- /dev/null +++ b/app/views/settings/hidden_courses.js.erb @@ -0,0 +1,5 @@ +<% if @notifiable.value == "0"%> +$("#hidden_courses").replaceWith("<%= escape_javascript(link_to '隐藏课程信息',settings_hidden_courses_path,:id => 'hidden_courses',:style => 'float: right;margin-right: 60px;margin-top: 9px;', :remote => true)%>"); +<% else%> +$("#hidden_courses").replaceWith("<%= escape_javascript(link_to '显示课程信息',settings_hidden_courses_path,:id => 'hidden_courses',:style => 'float: right;margin-right: 60px;margin-top: 9px;', :remote => true)%>"); +<% end%> \ No newline at end of file diff --git a/app/views/users/_course_boardlist.html.erb b/app/views/users/_course_boardlist.html.erb new file mode 100644 index 000000000..2d45c0b83 --- /dev/null +++ b/app/views/users/_course_boardlist.html.erb @@ -0,0 +1,78 @@ +
+
+
+

问答区列表

+
+ 排序: + <%= link_to "时间", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 1 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 1 %> + <%= link_to "", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 1 }, :class => "#{@b_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> + <%= link_to "人气", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 2 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 2 %> + <%= link_to "", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 2 }, :class => "#{@b_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> +
+
+
+ <% topics.each do |activity| %> +
+
+ <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_path(activity.board_id, activity), :class=> "list-title fl" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_path(activity.board_id, activity), :class=> "list-title f1" %> + <% end %> + <% if activity.sticky == 1 %> + + <% end%> + <% if activity.locked %> + + <% end %> + <% u = User.where("id=?",activity.author_id).first%> + + 发帖人: <%=(u.try(:realname) != " " ? u.lastname + u.firstname : u.try(:login)) %> + +
+
+
+ <% if activity.parent_id.nil? %> + <% content = activity.content %> + <% else %> + <% content = activity.parent.content %> + <% end %> +

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

+
+
+ 发帖时间:<%= format_time(activity.created_on) %> + 更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %> + <% count=0 %> + <% if activity.parent %> + <% count=activity.parent.children.count%> + <% else %> + <% count=activity.children.count%> + <% end %> +

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

+
+
+
+ <% end %> +
+
    + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %> +
+
+
+
+
+
+ \ No newline at end of file diff --git a/app/views/users/_course_message.html.erb b/app/views/users/_course_message.html.erb index 0ac756f71..3f2b8b5c4 100644 --- a/app/views/users/_course_message.html.erb +++ b/app/views/users/_course_message.html.erb @@ -89,7 +89,7 @@
回复 - <%= count>0 ? "(#{count})" : "" %> + <%= count>0 ? "(#{count})" : "" %>? <% if activity.author == User.current %> @@ -174,5 +174,4 @@
<% end %>
-
- +
\ No newline at end of file diff --git a/app/views/users/_intro_content_ex.html.erb b/app/views/users/_intro_content_ex.html.erb new file mode 100644 index 000000000..d667845d0 --- /dev/null +++ b/app/views/users/_intro_content_ex.html.erb @@ -0,0 +1,24 @@ +
+
+ <%= content.to_s.html_safe%> +
+
+ \ No newline at end of file diff --git a/app/views/users/_project_boardlist.html.erb b/app/views/users/_project_boardlist.html.erb new file mode 100644 index 000000000..9d25b7bd5 --- /dev/null +++ b/app/views/users/_project_boardlist.html.erb @@ -0,0 +1,78 @@ +
+
+
+

讨论区列表

+
+ 排序: + <%= link_to "时间", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 1 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 1 %> + <%= link_to "", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 1 }, :class => "#{@b_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> + <%= link_to "人气", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 2 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 2 %> + <%= link_to "", {:controller => 'boards', :action => 'index', :type => @type, :sort => @b_sort, :order => 2 }, :class => "#{@b_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> +
+
+
+ <% topics.each do |activity| %> +
+
+ <% if activity.parent_id.nil? %> + <%= link_to activity.subject.to_s.html_safe, board_message_path(activity.board_id, activity), :class=> "list-title fl" %> + <% else %> + <%= link_to activity.parent.subject.to_s.html_safe, board_message_path(activity.board_id, activity), :class=> "list-title f1" %> + <% end %> + <% if activity.sticky == 1 %> + + <% end%> + <% if activity.locked %> + + <% end %> + <% u = User.where("id=?",activity.author_id).first%> + + 发帖人:<%=(u.try(:realname) != " " ? u.lastname + u.firstname : u.try(:login)) %> + +
+
+
+ <% if activity.parent_id.nil? %> + <% content = activity.content %> + <% else %> + <% content = activity.parent.content %> + <% end %> +

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

+
+
+ 发帖时间:<%= 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 %> + <% if activity.parent %> + <% count=activity.parent.children.count%> + <% else %> + <% count=activity.children.count%> + <% end %> +

<%= 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 %> +
+
+
+
+
+
+ \ No newline at end of file diff --git a/app/views/users/_user_activities.html.erb b/app/views/users/_user_activities.html.erb index 69d209df9..b7df824a4 100644 --- a/app/views/users/_user_activities.html.erb +++ b/app/views/users/_user_activities.html.erb @@ -65,7 +65,11 @@ <% case user_activity.act_type.to_s %> <% when 'HomeworkCommon' %> <%# cache (act) do %> - <%= render :partial => 'course_homework', :locals => {:activity => act,:user_activity_id =>user_activity.id,:course_activity => 0} %> + <% hidden_courses = Setting.find_by_name("hidden_courses") %> + <% unvisiable = hidden_courses && hidden_courses.value == "1"%> + <% if !unvisiable %> + <%= render :partial => 'course_homework', :locals => {:activity => act,:user_activity_id =>user_activity.id,:course_activity => 0} %> + <% end %> <%# end %> <% when 'News' %> <%# cache [act, act.comments.count] do %> diff --git a/app/views/users/_user_course_list.html.erb b/app/views/users/_user_course_list.html.erb new file mode 100644 index 000000000..8d45510a1 --- /dev/null +++ b/app/views/users/_user_course_list.html.erb @@ -0,0 +1,61 @@ +
+

课程列表

+
+ 排序: + <%= link_to "时间", {:controller => 'users', :action => 'user_courselist', :id =>@user, :type => @type, :sort => @c_sort, :order => 1 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 1 %> + <%= link_to "", {:controller => 'users', :action => 'user_courselist', :id =>@user, :type => @type, :sort => @c_sort, :order => 1 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> + <%= link_to "人气", {:controller => 'users', :action => 'user_courselist', :id =>@user, :type => @type, :sort => @c_sort, :order => 2 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 2 %> + <%= link_to "", {:controller => 'users', :action => 'user_courselist', :id =>@user, :type => @type, :sort => @c_sort, :order => 2 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> +
+
+ +
+ <% @courses.each do |course|%> +
    +
  • + + <%= link_to course.name+"("+current_time_and_term_short(course)+")", course_path(course.id,:host=>Setting.host_course), :class => "course-title fl #{course_endTime_timeout?(course) ? 'c_dark_grey' : ''}", + :style => 'color:#000',:id => "show_course_#{course.id}", :target => '_blank', :title => (course.is_public? ? "公开课程:":"私有课程:")+course.name+"("+current_time_and_term(course)+")"%> + <% teacher = User.where("id=?",course.tea_id).first%> + + <%='主讲老师:'+(teacher.try(:realname) != " " ? teacher.lastname + teacher.firstname : teacher.try(:login)) %> + +
  • +
    +
  • + + 开课学期:  <%= current_time_and_term course %> + + <% if User.current.admin? || User.current.allowed_to?(:as_teacher,@course) %> + <% homework_num = course.homework_commons.count %> + <% else %> + <% homework_num = course.homework_commons.where("publish_time <= '#{Date.today}'").count %> + <% end %> +

    <%= homework_num %>作业| <%= visable_attachemnts_incourse(course).count %>资源

    +
  • +
    +
+ <% end %> +
+
    + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %> +
+
+
+
+
+ + \ No newline at end of file diff --git a/app/views/users/_user_project_list.html.erb b/app/views/users/_user_project_list.html.erb new file mode 100644 index 000000000..73bdc900a --- /dev/null +++ b/app/views/users/_user_project_list.html.erb @@ -0,0 +1,53 @@ +
+

项目列表

+
+ 排序: + <%= link_to "时间", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 1 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 1 %> + <%= link_to "", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 1 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> + <%= link_to "人气", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 2 }, :class => "sortTxt", :remote => true %> + <% if @type.to_i == 2 %> + <%= link_to "", {:controller => 'users', :action => 'user_projectlist', :id =>@user, :type => @type, :sort => @c_sort, :order => 2 }, :class => "#{@c_sort.to_i == 1 ? 'sortupbtn' : 'sortdownbtn'} ", :remote => true %> + <% end %> +
+
+ +
+ <% @projects.each do |project|%> +
    +
  • + + <%= link_to project.name, project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "course-title fl",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%> + <% projectUser = User.where("id=?",project.user_id).first%> + + <%='创建者:'+(projectUser.try(:realname) != " " ? projectUser.lastname + projectUser.firstname : projectUser.try(:login)) %> + +
  • +
    +
  • + 创建时间:<%= format_time(project.created_on) %> +

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

    +
  • +
    +
+ <% end %> +
+
    + <%= pagination_links_full @atta_pages, @atta_count, :per_page_links => false, :remote => @is_remote, :flag => true %> +
+
+
+
+
+ + \ No newline at end of file diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 2fe9ab079..5470d2bf3 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -5,20 +5,24 @@
    • -
    • -
        -
      • 课程动态
      • -
      • <%= link_to "作业动态", {:controller => "users", :action => "show", :type => "course_homework"}, :class => "homepagePostTypeAssignment postTypeGrey"%> -
      • -
      • <%= link_to "通知动态", {:controller => "users", :action => "show", :type => "course_news"}, :class => "homepagePostTypeNotice postTypeGrey"%> - -
      • <%= link_to "论坛动态", {:controller => "users", :action => "show", :type => "course_message"}, :class => "homepagePostTypeForum postTypeGrey"%> -
      • <%= link_to "问卷动态", {:controller => "users", :action => "show", :type => "course_poll"}, :class => "homepagePostTypeQuiz postTypeGrey"%> -
      • <%= link_to "课程留言", {:controller => "users", :action => "show", :type => "course_journals"}, :class =>"homepagePostTypeMessage postTypeGrey"%> - - -
      -
    • +
    • +
        + <% hidden_courses = Setting.find_by_name("hidden_courses") %> + <% unvisiable = hidden_courses && hidden_courses.value == "1"%> + <% if !unvisiable %> +
      • 课程动态
      • +
      • <%= link_to "作业动态", {:controller => "users", :action => "show", :type => "course_homework"}, :class => "homepagePostTypeAssignment postTypeGrey"%> +
      • +
      • <%= link_to "通知动态", {:controller => "users", :action => "show", :type => "course_news"}, :class => "homepagePostTypeNotice postTypeGrey"%> + +
      • <%= link_to "论坛动态", {:controller => "users", :action => "show", :type => "course_message"}, :class => "homepagePostTypeForum postTypeGrey"%> +
      • <%= link_to "问卷动态", {:controller => "users", :action => "show", :type => "course_poll"}, :class => "homepagePostTypeQuiz postTypeGrey"%> +
      • <%= link_to "课程留言", {:controller => "users", :action => "show", :type => "course_journals"}, :class =>"homepagePostTypeMessage postTypeGrey"%> + + + <% end %> +
      +
      • 项目动态
      • diff --git a/app/views/users/user_courselist.html.erb b/app/views/users/user_courselist.html.erb new file mode 100644 index 000000000..de0f647e2 --- /dev/null +++ b/app/views/users/user_courselist.html.erb @@ -0,0 +1 @@ +<%= render :partial => 'users/user_course_list'%> diff --git a/app/views/users/user_courselist.js.erb b/app/views/users/user_courselist.js.erb new file mode 100644 index 000000000..98c92be02 --- /dev/null +++ b/app/views/users/user_courselist.js.erb @@ -0,0 +1 @@ +$("#course-list").replaceWith('<%= escape_javascript( render :partial => 'users/user_course_list') %>'); \ No newline at end of file diff --git a/app/views/users/user_projectlist.html.erb b/app/views/users/user_projectlist.html.erb new file mode 100644 index 000000000..fb1b5b501 --- /dev/null +++ b/app/views/users/user_projectlist.html.erb @@ -0,0 +1 @@ +<%= render :partial => 'users/user_project_list'%> diff --git a/app/views/users/user_projectlist.js.erb b/app/views/users/user_projectlist.js.erb new file mode 100644 index 000000000..da7ca6a49 --- /dev/null +++ b/app/views/users/user_projectlist.js.erb @@ -0,0 +1 @@ +$("#project-list").replaceWith('<%= escape_javascript( render :partial => 'users/user_project_list') %>'); \ No newline at end of file diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 7160e9d27..30c7c689c 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -371,8 +371,8 @@ zh: permission_contest_attachments_download: 竞赛附件下载 permission_upload_attachments: 资源上传 - - + label_show_courses: 显示课程信息 + label_hidden_courses: 隐藏课程信息 label_user: 用户 label_user_plural: 用户列表 diff --git a/config/routes.rb b/config/routes.rb index 842581d62..093ef62ac 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -552,6 +552,11 @@ RedmineApp::Application.routes.draw do match 'code_submit_score_index', :to => 'projects#code_submit_score_index', :via => [:get, :post] match 'projects_topic_score_index', :to => 'projects#projects_topic_score_index', :via => [:get, :post] match 'user_act_issue_assign_to', :to => 'users#user_act_issue_assign_to', :via => [:get, :post] + + #addby yk + match 'user_courselist', :to => 'users#user_courselist', :via => :get, :as => "user_courselist" + match 'user_projectlist', :to => 'users#user_projectlist', :via => :get, :as => "user_projectlist" + get 'edit_brief_introduction' get "user_resource" get "import_resources" @@ -1088,6 +1093,7 @@ RedmineApp::Application.routes.draw do match 'settings/edit', :via => [:get, :post] match 'settings/plugin/:id', :to => 'settings#plugin', :via => [:get, :post], :as => 'plugin_settings' match 'settings/hidden_non_project', :via => [:get, :post] + match 'settings/hidden_courses', :via => [:get, :post] match 'sys/projects', :via => :get match 'sys/projects/:id/repository', :to => 'sys#create_project_repository', :via => :post diff --git a/config/settings.yml b/config/settings.yml index 611ba8138..bebf9ac94 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -267,6 +267,8 @@ please_chose: default: 请选择 hidden_non_project: default: 1 +hidden_courses: + default: 0 plugin_redmine_ckeditor: serialized: true default: --- !ruby/hash:ActiveSupport::HashWithIndifferentAccess diff --git a/db/schema.rb b/db/schema.rb index 6fde32304..7605411db 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1,3 +1,4 @@ +<<<<<<< HEAD # encoding: UTF-8 # This file is auto-generated from the current state of the database. Instead # of editing this file, please use the migrations feature of Active Record to @@ -2162,3 +2163,2119 @@ ActiveRecord::Schema.define(:version => 20160419074016) do end end +======= +# encoding: UTF-8 +# This file is auto-generated from the current state of the database. Instead +# of editing this file, please use the migrations feature of Active Record to +# incrementally modify your database, and then regenerate this schema definition. +# +# Note that this schema.rb definition is the authoritative source for your +# database schema. If you need to create the application database on another +# system, you should be using db:schema:load, not running all the migrations +# from scratch. The latter is a flawed and unsustainable approach (the more migrations +# you'll amass, the slower it'll run and the greater likelihood for issues). +# +# It's strongly recommended to check this file into your version control system. + +ActiveRecord::Schema.define(:version => 20160421011543) do + + create_table "activities", :force => true do |t| + t.integer "act_id", :null => false + t.string "act_type", :null => false + t.integer "user_id", :null => false + t.integer "activity_container_id" + t.string "activity_container_type", :default => "" + t.datetime "created_at" + end + + add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type" + add_index "activities", ["user_id", "act_type"], :name => "index_activities_on_user_id_and_act_type" + add_index "activities", ["user_id"], :name => "index_activities_on_user_id" + + create_table "activity_notifies", :force => true do |t| + t.integer "activity_container_id" + t.string "activity_container_type" + t.integer "activity_id" + t.string "activity_type" + t.integer "notify_to" + t.datetime "created_on" + t.integer "is_read" + end + + add_index "activity_notifies", ["activity_container_id", "activity_container_type"], :name => "index_an_activity_container_id" + add_index "activity_notifies", ["created_on"], :name => "index_an_created_on" + add_index "activity_notifies", ["notify_to"], :name => "index_an_notify_to" + + create_table "api_keys", :force => true do |t| + t.string "access_token" + t.datetime "expires_at" + t.integer "user_id" + t.boolean "active", :default => true + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + 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 "applied_projects", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + end + + create_table "apply_project_masters", :force => true do |t| + t.integer "user_id" + t.string "apply_type" + t.integer "apply_id" + t.integer "status" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "at_messages", :force => true do |t| + t.integer "user_id" + t.integer "at_message_id" + t.string "at_message_type" + t.boolean "viewed", :default => false + t.string "container_type" + t.integer "container_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sender_id" + end + + add_index "at_messages", ["user_id"], :name => "index_at_messages_on_user_id" + + create_table "attachment_histories", :force => true do |t| + t.integer "container_id" + t.string "container_type" + t.string "filename", :default => "" + t.string "disk_filename", :default => "" + t.integer "filesize", :default => 0 + t.string "content_type", :default => "" + t.string "digest", :limit => 40, :default => "" + t.integer "downloads", :default => 0 + t.integer "author_id" + t.datetime "created_on" + t.string "description" + t.string "disk_directory" + t.integer "attachtype" + t.integer "is_public" + t.integer "copy_from" + t.integer "quotes" + t.integer "version" + t.integer "attachment_id" + t.integer "is_publish", :default => 1 + t.date "publish_time" + end + + create_table "attachments", :force => true do |t| + t.integer "container_id" + t.string "container_type", :limit => 30 + t.string "filename", :default => "", :null => false + t.string "disk_filename", :default => "", :null => false + t.integer "filesize", :default => 0, :null => false + t.string "content_type", :default => "" + t.string "digest", :limit => 40, :default => "", :null => false + t.integer "downloads", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.string "description" + t.string "disk_directory" + t.integer "attachtype", :default => 1 + t.integer "is_public", :default => 1 + t.integer "copy_from" + t.integer "quotes" + t.integer "is_publish", :default => 1 + t.date "publish_time" + end + + add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" + add_index "attachments", ["container_id", "container_type"], :name => "index_attachments_on_container_id_and_container_type" + add_index "attachments", ["created_on"], :name => "index_attachments_on_created_on" + + create_table "attachmentstypes", :force => true do |t| + t.integer "typeId", :null => false + t.string "typeName", :limit => 50 + end + + create_table "auth_sources", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 60, :default => "", :null => false + t.string "host", :limit => 60 + t.integer "port" + t.string "account" + t.string "account_password", :default => "" + t.string "base_dn" + t.string "attr_login", :limit => 30 + t.string "attr_firstname", :limit => 30 + t.string "attr_lastname", :limit => 30 + t.string "attr_mail", :limit => 30 + t.boolean "onthefly_register", :default => false, :null => false + t.boolean "tls", :default => false, :null => false + t.string "filter" + t.integer "timeout" + end + + add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" + + create_table "biding_projects", :force => true do |t| + t.integer "project_id" + t.integer "bid_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "bids", :force => true do |t| + t.string "name" + t.string "budget", :null => false + t.integer "author_id" + t.date "deadline" + t.text "description" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.integer "commit" + t.integer "reward_type" + t.integer "homework_type" + t.integer "parent_id" + t.string "password" + t.integer "is_evaluation" + t.integer "proportion", :default => 60 + t.integer "comment_status", :default => 0 + t.integer "evaluation_num", :default => 3 + t.integer "open_anonymous_evaluation", :default => 1 + end + + create_table "blog_comments", :force => true do |t| + t.integer "blog_id", :null => false + t.integer "parent_id" + t.string "title", :default => "", :null => false + t.text "content" + t.integer "author_id" + t.integer "comments_count", :default => 0, :null => false + t.integer "last_comment_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.boolean "locked", :default => false + t.integer "sticky", :default => 0 + t.integer "reply_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "blogs", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "description" + t.integer "position", :default => 1 + t.integer "article_count", :default => 0, :null => false + t.integer "comments_count", :default => 0, :null => false + t.integer "last_comments_id" + t.integer "parent_id" + t.integer "author_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "homepage_id" + end + + create_table "boards", :force => true do |t| + t.integer "project_id", :null => false + t.string "name", :default => "", :null => false + t.string "description" + t.integer "position", :default => 1 + t.integer "topics_count", :default => 0, :null => false + t.integer "messages_count", :default => 0, :null => false + t.integer "last_message_id" + t.integer "parent_id" + t.integer "course_id" + t.integer "org_subfield_id" + end + + add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" + add_index "boards", ["project_id"], :name => "boards_project_id" + + create_table "bug_to_osps", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "changes", :force => true do |t| + t.integer "changeset_id", :null => false + t.string "action", :limit => 1, :default => "", :null => false + t.text "path", :null => false + t.text "from_path" + t.string "from_revision" + t.string "revision" + t.string "branch" + end + + add_index "changes", ["changeset_id"], :name => "changesets_changeset_id" + + create_table "changeset_parents", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "parent_id", :null => false + end + + add_index "changeset_parents", ["changeset_id"], :name => "changeset_parents_changeset_ids" + add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" + + create_table "changesets", :force => true do |t| + t.integer "repository_id", :null => false + t.string "revision", :null => false + t.string "committer" + t.datetime "committed_on", :null => false + t.text "comments" + t.date "commit_date" + t.string "scmid" + t.integer "user_id" + end + + add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" + add_index "changesets", ["repository_id", "revision"], :name => "changesets_repos_rev", :unique => true + add_index "changesets", ["repository_id", "scmid"], :name => "changesets_repos_scmid" + add_index "changesets", ["repository_id"], :name => "index_changesets_on_repository_id" + add_index "changesets", ["user_id"], :name => "index_changesets_on_user_id" + + create_table "changesets_issues", :id => false, :force => true do |t| + t.integer "changeset_id", :null => false + t.integer "issue_id", :null => false + end + + add_index "changesets_issues", ["changeset_id", "issue_id"], :name => "changesets_issues_ids", :unique => true + + create_table "code_review_assignments", :force => true do |t| + t.integer "issue_id" + t.integer "change_id" + t.integer "attachment_id" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.string "action_type" + t.integer "changeset_id" + end + + create_table "code_review_project_settings", :force => true do |t| + t.integer "project_id" + t.integer "tracker_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "updated_by" + t.boolean "hide_code_review_tab", :default => false + t.integer "auto_relation", :default => 1 + t.integer "assignment_tracker_id" + t.text "auto_assign" + t.integer "lock_version", :default => 0, :null => false + t.boolean "tracker_in_review_dialog", :default => false + end + + create_table "code_review_user_settings", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "mail_notification", :default => 0, :null => false + t.datetime "created_at" + t.datetime "updated_at" + end + + create_table "code_reviews", :force => true do |t| + t.integer "project_id" + t.integer "change_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "line" + t.integer "updated_by_id" + t.integer "lock_version", :default => 0, :null => false + t.integer "status_changed_from" + t.integer "status_changed_to" + t.integer "issue_id" + t.string "action_type" + t.string "file_path" + t.string "rev" + t.string "rev_to" + t.integer "attachment_id" + t.integer "file_count", :default => 0, :null => false + t.boolean "diff_all" + end + + create_table "code_tests", :force => true do |t| + t.integer "homework_id" + t.integer "wait_time", :default => 0 + t.integer "language" + t.integer "status" + t.integer "time_used", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "student_work_id", :default => 0 + end + + create_table "comments", :force => true do |t| + t.string "commented_type", :limit => 30, :default => "", :null => false + t.integer "commented_id", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false + t.text "comments" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "comments", ["author_id"], :name => "index_comments_on_author_id" + add_index "comments", ["commented_id", "commented_type"], :name => "index_comments_on_commented_id_and_commented_type" + + create_table "contest_notifications", :force => true do |t| + t.text "title" + t.text "content" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contesting_projects", :force => true do |t| + t.integer "project_id" + t.string "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contesting_softapplications", :force => true do |t| + t.integer "softapplication_id" + t.integer "contest_id" + t.integer "user_id" + t.string "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + end + + create_table "contestnotifications", :force => true do |t| + t.integer "contest_id" + t.string "title" + t.string "summary" + t.text "description" + t.integer "author_id" + t.integer "notificationcomments_count" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "contests", :force => true do |t| + t.string "name" + t.string "budget", :default => "" + t.integer "author_id" + t.date "deadline" + t.string "description" + t.integer "commit" + t.string "password" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + create_table "course_activities", :force => true do |t| + t.integer "user_id" + t.integer "course_id" + t.integer "course_act_id" + t.string "course_act_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "course_activities", ["course_id", "course_act_id", "course_act_type", "created_at"], :name => "course_act_index" + + create_table "course_attachments", :force => true do |t| + t.string "filename" + t.string "disk_filename" + t.integer "filesize" + t.string "content_type" + t.string "digest" + t.integer "downloads" + t.string "author_id" + t.string "integer" + t.string "description" + t.string "disk_directory" + t.integer "attachtype" + t.integer "is_public" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "container_id", :default => 0 + end + + create_table "course_contributor_scores", :force => true do |t| + t.integer "course_id" + t.integer "user_id" + t.integer "message_num" + t.integer "message_reply_num" + t.integer "news_reply_num" + t.integer "resource_num" + t.integer "journal_num" + t.integer "journal_reply_num" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "total_score" + t.integer "homework_journal_num", :default => 0 + t.integer "news_num", :default => 0 + end + + create_table "course_groups", :force => true do |t| + t.string "name" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "course_infos", :force => true do |t| + t.integer "course_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "course_messages", :force => true do |t| + t.integer "user_id" + t.integer "course_id" + t.integer "course_message_id" + t.string "course_message_type" + t.integer "viewed" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "content" + t.integer "status" + end + + add_index "course_messages", ["course_message_type"], :name => "index_course_messages_on_course_message_type" + add_index "course_messages", ["user_id", "course_id", "created_at"], :name => "index_course_messages_on_user_id_and_course_id_and_created_at" + + create_table "course_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "course_id" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "courses", :force => true do |t| + t.integer "tea_id" + t.string "name" + t.integer "state" + t.string "code" + t.integer "time" + t.string "extra" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "location" + t.string "term" + t.string "string" + t.string "password" + t.string "setup_time" + t.string "endup_time" + t.string "class_period" + t.integer "school_id" + t.text "description" + t.integer "status", :default => 1 + t.integer "attachmenttype", :default => 2 + t.integer "lft" + t.integer "rgt" + t.integer "is_public", :limit => 1, :default => 1 + t.integer "inherit_members", :limit => 1, :default => 1 + t.integer "open_student", :default => 0 + t.integer "outline", :default => 0 + t.integer "publish_resource", :default => 0 + t.integer "is_delete", :default => 0 + t.integer "end_time" + t.string "end_term" + t.integer "is_excellent", :default => 0 + t.integer "excellent_option", :default => 0 + t.integer "is_copy", :default => 0 + t.integer "visits", :default => 0 + end + + create_table "custom_fields", :force => true do |t| + t.string "type", :limit => 30, :default => "", :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.string "field_format", :limit => 30, :default => "", :null => false + t.text "possible_values" + t.string "regexp", :default => "" + t.integer "min_length", :default => 0, :null => false + t.integer "max_length", :default => 0, :null => false + t.boolean "is_required", :default => false, :null => false + t.boolean "is_for_all", :default => false, :null => false + t.boolean "is_filter", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "searchable", :default => false + t.text "default_value" + t.boolean "editable", :default => true + t.boolean "visible", :default => true, :null => false + t.boolean "multiple", :default => false + end + + add_index "custom_fields", ["id", "type"], :name => "index_custom_fields_on_id_and_type" + + create_table "custom_fields_projects", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "project_id", :default => 0, :null => false + end + + add_index "custom_fields_projects", ["custom_field_id", "project_id"], :name => "index_custom_fields_projects_on_custom_field_id_and_project_id", :unique => true + + create_table "custom_fields_trackers", :id => false, :force => true do |t| + t.integer "custom_field_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + add_index "custom_fields_trackers", ["custom_field_id", "tracker_id"], :name => "index_custom_fields_trackers_on_custom_field_id_and_tracker_id", :unique => true + + create_table "custom_values", :force => true do |t| + t.string "customized_type", :limit => 30, :default => "", :null => false + t.integer "customized_id", :default => 0, :null => false + t.integer "custom_field_id", :default => 0, :null => false + t.text "value" + end + + add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id" + add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized" + + create_table "delayed_jobs", :force => true do |t| + t.integer "priority", :default => 0, :null => false + t.integer "attempts", :default => 0, :null => false + t.text "handler", :null => false + t.text "last_error" + t.datetime "run_at" + t.datetime "locked_at" + t.datetime "failed_at" + t.string "locked_by" + t.string "queue" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" + + create_table "discuss_demos", :force => true do |t| + t.string "title" + t.text "body" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "documents", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "category_id", :default => 0, :null => false + t.string "title", :limit => 60, :default => "", :null => false + t.text "description" + t.datetime "created_on" + t.integer "user_id", :default => 0 + t.integer "is_public", :default => 1 + end + + add_index "documents", ["category_id"], :name => "index_documents_on_category_id" + add_index "documents", ["created_on"], :name => "index_documents_on_created_on" + add_index "documents", ["project_id"], :name => "documents_project_id" + + create_table "dts", :primary_key => "Num", :force => true do |t| + t.string "Defect", :limit => 50 + t.string "Category", :limit => 50 + t.string "File" + t.string "Method" + t.string "Module", :limit => 20 + t.string "Variable", :limit => 50 + t.integer "StartLine" + t.integer "IPLine" + t.string "IPLineCode", :limit => 200 + t.string "Judge", :limit => 15 + t.integer "Review", :limit => 1 + t.string "Description" + t.text "PreConditions", :limit => 2147483647 + t.text "TraceInfo", :limit => 2147483647 + t.text "Code", :limit => 2147483647 + t.integer "project_id" + t.datetime "created_at" + t.datetime "updated_at" + t.integer "id", :null => false + end + + create_table "editor_of_documents", :force => true do |t| + t.integer "editor_id" + t.integer "org_document_comment_id" + t.datetime "created_at" + end + + create_table "enabled_modules", :force => true do |t| + t.integer "project_id" + t.string "name", :null => false + t.integer "course_id" + end + + add_index "enabled_modules", ["project_id"], :name => "enabled_modules_project_id" + + create_table "enumerations", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "is_default", :default => false, :null => false + t.string "type" + t.boolean "active", :default => true, :null => false + t.integer "project_id" + t.integer "parent_id" + t.string "position_name", :limit => 30 + end + + 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 "exercise_answers", :force => true do |t| + t.integer "user_id" + t.integer "exercise_question_id" + t.integer "exercise_choice_id" + t.text "answer_text" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "exercise_choices", :force => true do |t| + t.integer "exercise_question_id" + t.text "choice_text" + t.integer "choice_position" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "exercise_questions", :force => true do |t| + t.text "question_title" + t.integer "question_type" + t.integer "question_number" + t.integer "exercise_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "question_score" + end + + create_table "exercise_standard_answers", :force => true do |t| + t.integer "exercise_question_id" + t.integer "exercise_choice_id" + t.text "answer_text" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "exercise_users", :force => true do |t| + t.integer "user_id" + t.integer "exercise_id" + t.integer "score" + t.datetime "start_at" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.datetime "end_at" + t.integer "status" + end + + create_table "exercises", :force => true do |t| + t.text "exercise_name" + t.text "exercise_description" + t.integer "course_id" + t.integer "exercise_status" + t.integer "user_id" + t.integer "time" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.datetime "publish_time" + t.datetime "end_time" + t.integer "show_result" + end + + create_table "first_pages", :force => true do |t| + t.string "web_title" + t.string "title" + t.text "description" + t.string "page_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sort_type" + t.integer "image_width", :default => 107 + t.integer "image_height", :default => 63 + t.integer "show_course", :default => 1 + t.integer "show_contest", :default => 1 + end + + create_table "forge_activities", :force => true do |t| + t.integer "user_id" + t.integer "project_id" + t.integer "forge_act_id" + t.string "forge_act_type" + t.integer "org_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "forge_activities", ["forge_act_id"], :name => "index_forge_activities_on_forge_act_id" + add_index "forge_activities", ["project_id", "forge_act_id", "created_at", "forge_act_type"], :name => "forge_act_index" + + create_table "forge_messages", :force => true do |t| + t.integer "user_id" + t.integer "project_id" + t.integer "forge_message_id" + t.string "forge_message_type" + t.integer "viewed" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "secret_key" + t.integer "status" + end + + 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 "forums", :force => true do |t| + t.string "name", :null => false + t.text "description" + t.integer "topic_count", :default => 0 + t.integer "memo_count", :default => 0 + t.integer "last_memo_id", :default => 0 + t.integer "creator_id", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sticky" + t.integer "locked" + end + + create_table "forwards", :force => true do |t| + t.integer "from_id" + t.string "from_type" + t.integer "to_id" + t.string "to_type" + t.datetime "created_at" + end + + create_table "groups_users", :id => false, :force => true do |t| + t.integer "group_id", :null => false + t.integer "user_id", :null => false + end + + add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true + + create_table "homework_attaches", :force => true do |t| + t.integer "bid_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "reward" + t.string "name" + t.text "description" + t.integer "state" + t.integer "project_id", :default => 0 + t.float "score", :default => 0.0 + t.integer "is_teacher_score", :default => 0 + end + + add_index "homework_attaches", ["bid_id"], :name => "index_homework_attaches_on_bid_id" + + create_table "homework_commons", :force => true do |t| + t.string "name" + t.integer "user_id" + t.text "description" + t.date "publish_time" + t.date "end_time" + t.integer "homework_type", :default => 1 + t.string "late_penalty" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "teacher_priority", :default => 1 + t.integer "anonymous_comment", :default => 0 + t.integer "quotes", :default => 0 + t.integer "is_open", :default => 0 + t.datetime "simi_time" + end + + add_index "homework_commons", ["course_id", "id"], :name => "index_homework_commons_on_course_id_and_id" + + create_table "homework_detail_groups", :force => true do |t| + t.integer "homework_common_id" + t.integer "min_num" + t.integer "max_num" + t.integer "base_on_project" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "homework_detail_groups", ["homework_common_id"], :name => "index_homework_detail_groups_on_homework_common_id" + + create_table "homework_detail_manuals", :force => true do |t| + t.float "ta_proportion" + t.integer "comment_status" + t.date "evaluation_start" + t.date "evaluation_end" + t.integer "evaluation_num" + t.integer "absence_penalty", :default => 1 + t.integer "homework_common_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "homework_detail_programings", :force => true do |t| + t.string "language" + t.text "standard_code", :limit => 2147483647 + t.integer "homework_common_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.float "ta_proportion", :default => 0.1 + t.integer "question_id" + end + + create_table "homework_evaluations", :force => true do |t| + t.string "user_id" + t.string "homework_attach_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "homework_for_courses", :force => true do |t| + t.integer "course_id" + t.integer "bid_id" + end + + add_index "homework_for_courses", ["bid_id"], :name => "index_homework_for_courses_on_bid_id" + add_index "homework_for_courses", ["course_id"], :name => "index_homework_for_courses_on_course_id" + + create_table "homework_tests", :force => true do |t| + t.text "input" + t.text "output" + t.integer "homework_common_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "result" + t.text "error_msg" + end + + create_table "homework_users", :force => true do |t| + t.string "homework_attach_id" + t.string "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "invite_lists", :force => true do |t| + t.integer "project_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "mail" + end + + create_table "issue_categories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :limit => 30, :default => "", :null => false + t.integer "assigned_to_id" + end + + add_index "issue_categories", ["assigned_to_id"], :name => "index_issue_categories_on_assigned_to_id" + add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id" + + create_table "issue_relations", :force => true do |t| + t.integer "issue_from_id", :null => false + t.integer "issue_to_id", :null => false + t.string "relation_type", :default => "", :null => false + t.integer "delay" + end + + add_index "issue_relations", ["issue_from_id", "issue_to_id"], :name => "index_issue_relations_on_issue_from_id_and_issue_to_id", :unique => true + add_index "issue_relations", ["issue_from_id"], :name => "index_issue_relations_on_issue_from_id" + add_index "issue_relations", ["issue_to_id"], :name => "index_issue_relations_on_issue_to_id" + + create_table "issue_statuses", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_closed", :default => false, :null => false + t.boolean "is_default", :default => false, :null => false + t.integer "position", :default => 1 + t.integer "default_done_ratio" + end + + add_index "issue_statuses", ["is_closed"], :name => "index_issue_statuses_on_is_closed" + add_index "issue_statuses", ["is_default"], :name => "index_issue_statuses_on_is_default" + add_index "issue_statuses", ["position"], :name => "index_issue_statuses_on_position" + + create_table "issues", :force => true do |t| + t.integer "tracker_id", :null => false + t.integer "project_id", :null => false + t.string "subject", :default => "", :null => false + t.text "description" + t.date "due_date" + t.integer "category_id" + t.integer "status_id", :null => false + t.integer "assigned_to_id" + t.integer "priority_id", :null => false + t.integer "fixed_version_id" + t.integer "author_id", :null => false + t.integer "lock_version", :default => 0, :null => false + t.datetime "created_on" + t.datetime "updated_on" + t.date "start_date" + t.integer "done_ratio", :default => 0, :null => false + t.float "estimated_hours" + t.integer "parent_id" + t.integer "root_id" + t.integer "lft" + t.integer "rgt" + t.boolean "is_private", :default => false, :null => false + t.datetime "closed_on" + t.integer "project_issues_index" + end + + add_index "issues", ["assigned_to_id"], :name => "index_issues_on_assigned_to_id" + add_index "issues", ["author_id"], :name => "index_issues_on_author_id" + add_index "issues", ["category_id"], :name => "index_issues_on_category_id" + add_index "issues", ["created_on"], :name => "index_issues_on_created_on" + add_index "issues", ["fixed_version_id"], :name => "index_issues_on_fixed_version_id" + add_index "issues", ["priority_id"], :name => "index_issues_on_priority_id" + add_index "issues", ["project_id"], :name => "issues_project_id" + add_index "issues", ["root_id", "lft", "rgt"], :name => "index_issues_on_root_id_and_lft_and_rgt" + add_index "issues", ["status_id"], :name => "index_issues_on_status_id" + add_index "issues", ["tracker_id"], :name => "index_issues_on_tracker_id" + + create_table "join_in_competitions", :force => true do |t| + t.integer "user_id" + t.integer "competition_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "join_in_contests", :force => true do |t| + t.integer "user_id" + t.integer "bid_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "journal_details", :force => true do |t| + t.integer "journal_id", :default => 0, :null => false + t.string "property", :limit => 30, :default => "", :null => false + t.string "prop_key", :limit => 30, :default => "", :null => false + t.text "old_value" + t.text "value" + end + + add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" + + create_table "journal_replies", :id => false, :force => true do |t| + t.integer "journal_id" + t.integer "user_id" + t.integer "reply_id" + end + + add_index "journal_replies", ["journal_id"], :name => "index_journal_replies_on_journal_id" + add_index "journal_replies", ["reply_id"], :name => "index_journal_replies_on_reply_id" + add_index "journal_replies", ["user_id"], :name => "index_journal_replies_on_user_id" + + create_table "journals", :force => true do |t| + t.integer "journalized_id", :default => 0, :null => false + t.string "journalized_type", :limit => 30, :default => "", :null => false + t.integer "user_id", :default => 0, :null => false + t.text "notes" + t.datetime "created_on", :null => false + t.boolean "private_notes", :default => false, :null => false + end + + add_index "journals", ["created_on"], :name => "index_journals_on_created_on" + add_index "journals", ["journalized_id", "journalized_type"], :name => "journals_journalized_id" + add_index "journals", ["journalized_id"], :name => "index_journals_on_journalized_id" + add_index "journals", ["user_id"], :name => "index_journals_on_user_id" + + create_table "journals_for_messages", :force => true do |t| + t.integer "jour_id" + t.string "jour_type" + t.integer "user_id" + t.text "notes" + t.integer "status" + t.integer "reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.string "m_parent_id" + t.boolean "is_readed" + t.integer "m_reply_count" + t.integer "m_reply_id" + t.integer "is_comprehensive_evaluation" + t.integer "private", :default => 0 + end + + create_table "kindeditor_assets", :force => true do |t| + t.string "asset" + t.integer "file_size" + t.string "file_type" + t.integer "owner_id" + t.string "asset_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "owner_type", :default => 0 + end + + create_table "member_roles", :force => true do |t| + t.integer "member_id", :null => false + t.integer "role_id", :null => false + t.integer "inherited_from" + end + + add_index "member_roles", ["member_id"], :name => "index_member_roles_on_member_id" + add_index "member_roles", ["role_id"], :name => "index_member_roles_on_role_id" + + create_table "members", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.integer "project_id", :default => 0 + t.datetime "created_on" + t.boolean "mail_notification", :default => false, :null => false + t.integer "course_id", :default => -1 + t.integer "course_group_id", :default => 0 + end + + add_index "members", ["project_id"], :name => "index_members_on_project_id" + add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true + add_index "members", ["user_id"], :name => "index_members_on_user_id" + + create_table "memo_messages", :force => true do |t| + t.integer "user_id" + t.integer "forum_id" + t.integer "memo_id" + t.string "memo_type" + t.integer "viewed" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "memo_messages", ["memo_id", "memo_type"], :name => "index_memo_messages_on_memo_id_and_memo_type" + add_index "memo_messages", ["user_id", "forum_id", "created_at"], :name => "index_memo_messages_on_user_id_and_forum_id_and_created_at" + + create_table "memos", :force => true do |t| + t.integer "forum_id", :null => false + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :null => false + t.integer "author_id", :null => false + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count", :default => 0 + end + + create_table "message_alls", :force => true do |t| + t.integer "user_id" + t.integer "message_id" + t.string "message_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "message_alls", ["message_type"], :name => "index_message_alls_on_message_type" + add_index "message_alls", ["user_id", "message_id", "created_at"], :name => "index_message_alls_on_user_id_and_message_id_and_created_at" + + create_table "messages", :force => true do |t| + t.integer "board_id", :null => false + t.integer "parent_id" + t.string "subject", :default => "", :null => false + t.text "content" + t.integer "author_id" + t.integer "replies_count", :default => 0, :null => false + t.integer "last_reply_id" + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + t.boolean "locked", :default => false + t.integer "sticky", :default => 0 + t.integer "reply_id" + t.integer "quotes" + t.integer "status", :default => 0 + end + + add_index "messages", ["author_id"], :name => "index_messages_on_author_id" + add_index "messages", ["board_id"], :name => "messages_board_id" + add_index "messages", ["created_on"], :name => "index_messages_on_created_on" + add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" + add_index "messages", ["parent_id"], :name => "messages_parent_id" + + create_table "news", :force => true do |t| + t.integer "project_id" + t.string "title", :limit => 60, :default => "", :null => false + t.string "summary", :default => "" + t.text "description" + t.integer "author_id", :default => 0, :null => false + t.datetime "created_on" + t.integer "comments_count", :default => 0, :null => false + t.integer "course_id" + t.integer "sticky", :default => 0 + t.integer "org_subfield_id" + end + + add_index "news", ["author_id"], :name => "index_news_on_author_id" + add_index "news", ["created_on"], :name => "index_news_on_created_on" + add_index "news", ["project_id"], :name => "news_project_id" + + create_table "no_uses", :force => true do |t| + t.integer "user_id", :null => false + t.string "no_use_type" + t.integer "no_use_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "notificationcomments", :force => true do |t| + t.string "notificationcommented_type" + t.integer "notificationcommented_id" + t.integer "author_id" + t.text "notificationcomments" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "onclick_times", :force => true do |t| + t.integer "user_id" + t.datetime "onclick_time" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "open_id_authentication_associations", :force => true do |t| + t.integer "issued" + t.integer "lifetime" + t.string "handle" + t.string "assoc_type" + t.binary "server_url" + t.binary "secret" + end + + create_table "open_id_authentication_nonces", :force => true do |t| + t.integer "timestamp", :null => false + t.string "server_url" + t.string "salt", :null => false + end + + create_table "open_source_projects", :force => true do |t| + t.string "name" + t.text "description" + t.integer "commit_count", :default => 0 + t.integer "code_line", :default => 0 + t.integer "users_count", :default => 0 + t.date "last_commit_time" + t.string "url" + t.date "date_collected" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "option_numbers", :force => true do |t| + t.integer "user_id" + t.integer "memo" + t.integer "messages_for_issues" + t.integer "issues_status" + t.integer "replay_for_message" + t.integer "replay_for_memo" + t.integer "follow" + t.integer "tread" + t.integer "praise_by_one" + t.integer "praise_by_two" + t.integer "praise_by_three" + t.integer "tread_by_one" + t.integer "tread_by_two" + t.integer "tread_by_three" + t.integer "changeset" + t.integer "document" + t.integer "attachment" + t.integer "issue_done_ratio" + t.integer "post_issue" + t.integer "score_type" + t.integer "total_score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + end + + create_table "org_activities", :force => true do |t| + t.integer "user_id" + t.integer "org_act_id" + t.string "org_act_type" + t.integer "container_id" + t.string "container_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "org_courses", :force => true do |t| + t.integer "organization_id" + t.integer "course_id" + t.datetime "created_at" + end + + create_table "org_document_comments", :force => true do |t| + t.text "title" + t.text "content" + t.integer "organization_id" + t.integer "creator_id" + t.integer "parent_id" + t.integer "reply_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.boolean "locked", :default => false + t.integer "sticky", :default => 0 + t.integer "org_subfield_id" + end + + create_table "org_member_roles", :force => true do |t| + t.integer "org_member_id" + t.integer "role_id" + end + + create_table "org_members", :force => true do |t| + t.integer "user_id" + t.integer "organization_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "org_messages", :force => true do |t| + t.integer "user_id" + t.integer "sender_id" + t.integer "organization_id" + t.string "message_type" + t.integer "message_id" + t.integer "viewed" + t.string "content" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "status", :default => 0 + end + + create_table "org_projects", :force => true do |t| + t.integer "organization_id" + t.integer "project_id" + t.datetime "created_at" + end + + create_table "org_subfield_messages", :force => true do |t| + t.integer "org_subfield_id" + t.integer "message_id" + t.string "message_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "org_subfields", :force => true do |t| + t.integer "organization_id" + t.integer "priority" + t.string "name" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "field_type" + t.integer "hide", :default => 0 + t.integer "status", :default => 1 + end + + create_table "organizations", :force => true do |t| + t.string "name" + t.text "description" + t.integer "creator_id" + t.integer "home_id" + t.boolean "is_public" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.boolean "allow_guest_download", :default => true + t.integer "visits", :default => 0 + t.integer "show_mode", :default => 0 + end + + create_table "phone_app_versions", :force => true do |t| + t.string "version" + t.text "description" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "poll_answers", :force => true do |t| + t.integer "poll_question_id" + t.text "answer_text" + t.integer "answer_position" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "poll_questions", :force => true do |t| + t.string "question_title" + t.integer "question_type" + t.integer "is_necessary" + t.integer "poll_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "question_number" + end + + create_table "poll_users", :force => true do |t| + t.integer "user_id" + t.integer "poll_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "poll_votes", :force => true do |t| + t.integer "user_id" + t.integer "poll_question_id" + t.integer "poll_answer_id" + t.text "vote_text" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "polls", :force => true do |t| + t.string "polls_name" + t.string "polls_type" + t.integer "polls_group_id" + t.integer "polls_status" + t.integer "user_id" + t.datetime "published_at" + t.datetime "closed_at" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.text "polls_description" + t.integer "show_result", :default => 1 + end + + create_table "praise_tread_caches", :force => true do |t| + t.integer "object_id", :null => false + t.string "object_type" + t.integer "praise_num" + t.integer "tread_num" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "praise_treads", :force => true do |t| + t.integer "user_id", :null => false + t.integer "praise_tread_object_id" + t.string "praise_tread_object_type" + t.integer "praise_or_tread" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "principal_activities", :force => true do |t| + t.integer "user_id" + t.integer "principal_id" + t.integer "principal_act_id" + t.string "principal_act_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_infos", :force => true do |t| + t.integer "project_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "project_scores", :force => true do |t| + t.string "project_id" + t.integer "score" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "issue_num", :default => 0 + t.integer "issue_journal_num", :default => 0 + t.integer "news_num", :default => 0 + t.integer "documents_num", :default => 0 + t.integer "changeset_num", :default => 0 + t.integer "board_message_num", :default => 0 + t.integer "board_num", :default => 0 + t.integer "attach_num", :default => 0 + t.datetime "commit_time" + end + + create_table "project_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "project_id" + t.integer "project_type" + t.float "grade", :default => 0.0 + t.integer "course_ac_para", :default => 0 + end + + add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade" + + create_table "projecting_softapplictions", :force => true do |t| + t.integer "user_id" + t.integer "softapplication_id" + t.integer "project_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "projects", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "description" + t.string "homepage", :default => "" + t.boolean "is_public", :default => true, :null => false + t.integer "parent_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "identifier" + t.integer "status", :default => 1, :null => false + t.integer "lft" + t.integer "rgt" + t.boolean "inherit_members", :default => false, :null => false + t.integer "project_type" + t.boolean "hidden_repo", :default => false, :null => false + t.integer "attachmenttype", :default => 1 + t.integer "user_id" + t.integer "dts_test", :default => 0 + t.string "enterprise_name" + t.integer "organization_id" + t.integer "project_new_type" + t.integer "gpid" + t.integer "forked_from_project_id" + t.integer "forked_count" + t.integer "commits_count", :default => 0 + t.integer "publish_resource", :default => 0 + t.integer "issues_count", :default => 0 + t.integer "attachments_count", :default => 0 + t.integer "boards_count", :default => 0 + t.integer "news_count", :default => 0 + t.integer "acts_count", :default => 0 + t.integer "journals_count", :default => 0 + t.integer "boards_reply_count", :default => 0 + t.integer "visits", :default => 0 + end + + add_index "projects", ["lft"], :name => "index_projects_on_lft" + add_index "projects", ["rgt"], :name => "index_projects_on_rgt" + + create_table "projects_trackers", :id => false, :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.integer "tracker_id", :default => 0, :null => false + end + + 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 "queries", :force => true do |t| + t.integer "project_id" + t.string "name", :default => "", :null => false + t.text "filters" + t.integer "user_id", :default => 0, :null => false + t.boolean "is_public", :default => false, :null => false + t.text "column_names" + t.text "sort_criteria" + t.string "group_by" + t.string "type" + end + + add_index "queries", ["project_id"], :name => "index_queries_on_project_id" + add_index "queries", ["user_id"], :name => "index_queries_on_user_id" + + create_table "relative_memo_to_open_source_projects", :force => true do |t| + t.integer "osp_id" + t.integer "relative_memo_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "relative_memos", :force => true do |t| + t.integer "osp_id" + t.integer "parent_id" + t.string "subject", :null => false + t.text "content", :limit => 16777215, :null => false + t.integer "author_id" + t.integer "replies_count", :default => 0 + t.integer "last_reply_id" + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.boolean "is_quote", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count_crawl", :default => 0 + t.integer "viewed_count_local", :default => 0 + t.string "url" + t.string "username" + t.string "userhomeurl" + t.date "date_collected" + t.string "topic_resource" + end + + create_table "rep_statics", :force => true do |t| + t.integer "project_id" + t.integer "commits_num" + t.string "uname" + t.string "email" + t.integer "add" + t.integer "del" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "changeset" + end + + create_table "repositories", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "url", :default => "", :null => false + t.string "login", :limit => 60, :default => "" + t.string "password", :default => "" + t.string "root_url", :default => "" + t.string "type" + t.string "path_encoding", :limit => 64 + t.string "log_encoding", :limit => 64 + t.text "extra_info" + t.string "identifier" + t.boolean "is_default", :default => false + t.boolean "hidden", :default => false + end + + add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" + + create_table "rich_rich_files", :force => true do |t| + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "rich_file_file_name" + t.string "rich_file_content_type" + t.integer "rich_file_file_size" + t.datetime "rich_file_updated_at" + t.string "owner_type" + t.integer "owner_id" + t.text "uri_cache" + t.string "simplified_type", :default => "file" + end + + create_table "roles", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.integer "position", :default => 1 + t.boolean "assignable", :default => true + t.integer "builtin", :default => 0, :null => false + t.text "permissions" + t.string "issues_visibility", :limit => 30, :default => "default", :null => false + end + + create_table "schools", :force => true do |t| + t.string "name" + t.string "province" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "logo_link" + t.string "pinyin" + end + + create_table "secdomains", :force => true do |t| + t.integer "sub_type" + t.string "subname" + t.integer "pid", :default => 0 + t.string "desc" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "seems_rateable_cached_ratings", :force => true do |t| + t.integer "cacheable_id", :limit => 8 + t.string "cacheable_type" + t.float "avg", :null => false + t.integer "cnt", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "seems_rateable_rates", :force => true do |t| + t.integer "rater_id", :limit => 8 + t.integer "rateable_id" + t.string "rateable_type" + t.float "stars", :null => false + t.string "dimension" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "is_teacher_score", :default => 0 + end + + create_table "settings", :force => true do |t| + t.string "name", :default => "", :null => false + t.text "value" + t.datetime "updated_on" + end + + add_index "settings", ["name"], :name => "index_settings_on_name" + + create_table "shares", :force => true do |t| + t.date "created_on" + t.string "url" + t.string "title" + t.integer "share_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "project_id" + t.integer "user_id" + t.string "description" + end + + create_table "shield_activities", :force => true do |t| + t.string "container_type" + t.integer "container_id" + t.string "shield_type" + t.integer "shield_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "softapplications", :force => true do |t| + t.string "name" + t.text "description" + t.integer "app_type_id" + t.string "app_type_name" + t.string "android_min_version_available" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "contest_id" + t.integer "softapplication_id" + t.integer "is_public" + t.string "application_developers" + t.string "deposit_project_url" + t.string "deposit_project" + t.integer "project_id" + end + + create_table "student_work_projects", :force => true do |t| + t.integer "homework_common_id" + t.integer "student_work_id" + t.integer "project_id" + t.integer "user_id" + t.integer "is_leader" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "student_work_projects", ["homework_common_id"], :name => "index_student_work_projects_on_homework_common_id" + add_index "student_work_projects", ["project_id"], :name => "index_student_work_projects_on_project_id" + add_index "student_work_projects", ["student_work_id"], :name => "index_student_work_projects_on_student_work_id" + add_index "student_work_projects", ["user_id"], :name => "index_student_work_projects_on_user_id" + + create_table "student_work_tests", :force => true do |t| + t.integer "student_work_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "status", :default => 9 + t.text "results" + t.text "src" + t.integer "uwait_time", :default => 0 + end + + create_table "student_works", :force => true do |t| + t.string "name" + t.text "description", :limit => 2147483647 + t.integer "homework_common_id" + t.integer "user_id" + t.float "final_score" + t.float "teacher_score" + t.float "student_score" + t.float "teaching_asistant_score" + t.integer "project_id", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "late_penalty", :default => 0 + t.integer "absence_penalty", :default => 0 + t.float "system_score", :default => 0.0 + t.boolean "is_test", :default => false + t.integer "simi_id", :default => 0 + t.integer "simi_value", :default => 0 + end + + add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id" + + create_table "student_works_evaluation_distributions", :force => true do |t| + t.integer "student_work_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "student_works_scores", :force => true do |t| + t.integer "student_work_id" + t.integer "user_id" + t.integer "score" + t.text "comment" + t.integer "reviewer_role" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "students_for_courses", :force => true do |t| + t.integer "student_id" + t.integer "course_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + 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 "subfield_subdomain_dirs", :force => true do |t| + t.integer "org_subfield_id" + t.string "name" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "system_messages", :force => true do |t| + t.integer "user_id" + t.string "content" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.text "description" + t.string "subject" + end + + create_table "taggings", :force => true do |t| + t.integer "tag_id" + t.integer "taggable_id" + t.string "taggable_type" + t.integer "tagger_id" + t.string "tagger_type" + t.string "context", :limit => 128 + t.datetime "created_at" + end + + add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id" + add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context" + add_index "taggings", ["taggable_type"], :name => "index_taggings_on_taggable_type" + + create_table "tags", :force => true do |t| + t.string "name" + end + + create_table "teachers", :force => true do |t| + t.string "tea_name" + t.string "location" + t.integer "couurse_time" + t.integer "course_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "extra" + end + + create_table "time_entries", :force => true do |t| + t.integer "project_id", :null => false + t.integer "user_id", :null => false + t.integer "issue_id" + t.float "hours", :null => false + t.string "comments" + t.integer "activity_id", :null => false + t.date "spent_on", :null => false + t.integer "tyear", :null => false + t.integer "tmonth", :null => false + t.integer "tweek", :null => false + t.datetime "created_on", :null => false + t.datetime "updated_on", :null => false + end + + add_index "time_entries", ["activity_id"], :name => "index_time_entries_on_activity_id" + add_index "time_entries", ["created_on"], :name => "index_time_entries_on_created_on" + add_index "time_entries", ["issue_id"], :name => "time_entries_issue_id" + add_index "time_entries", ["project_id"], :name => "time_entries_project_id" + add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id" + + create_table "tokens", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.string "action", :limit => 30, :default => "", :null => false + t.string "value", :limit => 40, :default => "", :null => false + t.datetime "created_on", :null => false + end + + add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" + add_index "tokens", ["value"], :name => "tokens_value", :unique => true + + create_table "trackers", :force => true do |t| + t.string "name", :limit => 30, :default => "", :null => false + t.boolean "is_in_chlog", :default => false, :null => false + t.integer "position", :default => 1 + t.boolean "is_in_roadmap", :default => true, :null => false + t.integer "fields_bits", :default => 0 + end + + create_table "user_actions", :force => true do |t| + t.integer "user_id" + t.string "action_type" + t.integer "action_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_activities", :force => true do |t| + t.string "act_type" + t.integer "act_id" + t.string "container_type" + t.integer "container_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "user_id" + end + + add_index "user_activities", ["act_id", "act_type", "container_id", "created_at"], :name => "user_act_index" + + create_table "user_extensions", :force => true do |t| + t.integer "user_id", :null => false + t.date "birthday" + t.string "brief_introduction" + t.integer "gender" + t.string "location" + t.string "occupation" + t.integer "work_experience" + t.integer "zip_code" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "technical_title" + t.integer "identity" + t.string "student_id" + t.string "teacher_realname" + t.string "student_realname" + t.string "location_city" + t.integer "school_id" + t.string "description", :default => "" + end + + create_table "user_feedback_messages", :force => true do |t| + t.integer "user_id" + t.integer "journals_for_message_id" + t.string "journals_for_message_type" + t.integer "viewed" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "user_feedback_messages", ["journals_for_message_id"], :name => "index_user_feedback_messages_on_journals_for_message_id" + add_index "user_feedback_messages", ["user_id", "created_at"], :name => "index_user_feedback_messages_on_user_id_and_created_at" + + create_table "user_grades", :force => true do |t| + t.integer "user_id", :null => false + t.integer "project_id", :null => false + t.float "grade", :default => 0.0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "user_grades", ["grade"], :name => "index_user_grades_on_grade" + add_index "user_grades", ["project_id"], :name => "index_user_grades_on_project_id" + add_index "user_grades", ["user_id"], :name => "index_user_grades_on_user_id" + + create_table "user_levels", :force => true do |t| + t.integer "user_id" + t.integer "level" + end + + create_table "user_preferences", :force => true do |t| + t.integer "user_id", :default => 0, :null => false + t.text "others" + t.boolean "hide_mail", :default => false + t.string "time_zone" + end + + add_index "user_preferences", ["user_id"], :name => "index_user_preferences_on_user_id" + + create_table "user_score_details", :force => true do |t| + t.integer "current_user_id" + t.integer "target_user_id" + t.string "score_type" + t.string "score_action" + t.integer "user_id" + t.integer "old_score" + t.integer "new_score" + t.integer "current_user_level" + t.integer "target_user_level" + t.integer "score_changeable_obj_id" + t.string "score_changeable_obj_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_scores", :force => true do |t| + t.integer "user_id", :null => false + t.integer "collaboration" + t.integer "influence" + t.integer "skill" + t.integer "active" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "user_statuses", :force => true do |t| + t.integer "changesets_count" + t.integer "watchers_count" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.float "grade", :default => 0.0 + end + + add_index "user_statuses", ["changesets_count"], :name => "index_user_statuses_on_changesets_count" + 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 "users", :force => true do |t| + t.string "login", :default => "", :null => false + t.string "hashed_password", :limit => 40, :default => "", :null => false + t.string "firstname", :limit => 30, :default => "", :null => false + t.string "lastname", :default => "", :null => false + t.string "mail", :limit => 60, :default => "", :null => false + t.boolean "admin", :default => false, :null => false + t.integer "status", :default => 1, :null => false + t.datetime "last_login_on" + t.string "language", :limit => 5, :default => "" + t.integer "auth_source_id" + t.datetime "created_on" + t.datetime "updated_on" + t.string "type" + t.string "identity_url" + t.string "mail_notification", :default => "", :null => false + t.string "salt", :limit => 64 + t.integer "gid" + t.integer "visits", :default => 0 + end + + add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" + add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" + add_index "users", ["type"], :name => "index_users_on_type" + + create_table "versions", :force => true do |t| + t.integer "project_id", :default => 0, :null => false + t.string "name", :default => "", :null => false + t.string "description", :default => "" + t.date "effective_date" + t.datetime "created_on" + t.datetime "updated_on" + t.string "wiki_page_title" + t.string "status", :default => "open" + t.string "sharing", :default => "none", :null => false + end + + add_index "versions", ["project_id"], :name => "versions_project_id" + add_index "versions", ["sharing"], :name => "index_versions_on_sharing" + + create_table "visitors", :force => true do |t| + t.integer "user_id" + t.integer "master_id" + t.datetime "updated_on" + t.datetime "created_on" + end + + add_index "visitors", ["master_id"], :name => "index_visitors_master_id" + add_index "visitors", ["updated_on"], :name => "index_visitors_updated_on" + add_index "visitors", ["user_id"], :name => "index_visitors_user_id" + + create_table "watchers", :force => true do |t| + t.string "watchable_type", :default => "", :null => false + t.integer "watchable_id", :default => 0, :null => false + t.integer "user_id" + end + + add_index "watchers", ["user_id", "watchable_type"], :name => "watchers_user_id_type" + add_index "watchers", ["user_id"], :name => "index_watchers_on_user_id" + add_index "watchers", ["watchable_id", "watchable_type"], :name => "index_watchers_on_watchable_id_and_watchable_type" + + create_table "web_footer_companies", :force => true do |t| + t.string "name" + t.string "logo_size" + t.string "url" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "web_footer_oranizers", :force => true do |t| + t.string "name" + t.text "description" + t.datetime "created_at", :null => false + t.datetime "updated_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 + t.integer "author_id" + t.binary "data", :limit => 2147483647 + t.string "compression", :limit => 6, :default => "" + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_content_versions", ["updated_on"], :name => "index_wiki_content_versions_on_updated_on" + add_index "wiki_content_versions", ["wiki_content_id"], :name => "wiki_content_versions_wcid" + + create_table "wiki_contents", :force => true do |t| + t.integer "page_id", :null => false + t.integer "author_id" + t.text "text", :limit => 2147483647 + t.string "comments", :default => "" + t.datetime "updated_on", :null => false + t.integer "version", :null => false + end + + add_index "wiki_contents", ["author_id"], :name => "index_wiki_contents_on_author_id" + add_index "wiki_contents", ["page_id"], :name => "wiki_contents_page_id" + + create_table "wiki_pages", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title", :null => false + t.datetime "created_on", :null => false + t.boolean "protected", :default => false, :null => false + t.integer "parent_id" + end + + add_index "wiki_pages", ["parent_id"], :name => "index_wiki_pages_on_parent_id" + add_index "wiki_pages", ["wiki_id", "title"], :name => "wiki_pages_wiki_id_title" + add_index "wiki_pages", ["wiki_id"], :name => "index_wiki_pages_on_wiki_id" + + create_table "wiki_redirects", :force => true do |t| + t.integer "wiki_id", :null => false + t.string "title" + t.string "redirects_to" + t.datetime "created_on", :null => false + end + + add_index "wiki_redirects", ["wiki_id", "title"], :name => "wiki_redirects_wiki_id_title" + add_index "wiki_redirects", ["wiki_id"], :name => "index_wiki_redirects_on_wiki_id" + + create_table "wikis", :force => true do |t| + t.integer "project_id", :null => false + t.string "start_page", :null => false + t.integer "status", :default => 1, :null => false + end + + add_index "wikis", ["project_id"], :name => "wikis_project_id" + + create_table "workflows", :force => true do |t| + t.integer "tracker_id", :default => 0, :null => false + t.integer "old_status_id", :default => 0, :null => false + t.integer "new_status_id", :default => 0, :null => false + t.integer "role_id", :default => 0, :null => false + t.boolean "assignee", :default => false, :null => false + t.boolean "author", :default => false, :null => false + t.string "type", :limit => 30 + t.string "field_name", :limit => 30 + t.string "rule", :limit => 30 + end + + add_index "workflows", ["new_status_id"], :name => "index_workflows_on_new_status_id" + add_index "workflows", ["old_status_id"], :name => "index_workflows_on_old_status_id" + add_index "workflows", ["role_id", "tracker_id", "old_status_id"], :name => "wkfs_role_tracker_old_status" + add_index "workflows", ["role_id"], :name => "index_workflows_on_role_id" + + create_table "works_categories", :force => true do |t| + t.string "category" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "zip_packs", :force => true do |t| + t.integer "user_id" + t.integer "homework_id" + t.string "file_digest" + t.string "file_path" + t.integer "pack_times", :default => 1 + t.integer "pack_size", :default => 0 + t.text "file_digests" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + +end +>>>>>>> yuanke diff --git a/public/images/active/img-active01.jpg b/public/images/active/img-active01.jpg new file mode 100644 index 000000000..c0969a317 Binary files /dev/null and b/public/images/active/img-active01.jpg differ diff --git a/public/images/active/img-active02.jpg b/public/images/active/img-active02.jpg new file mode 100644 index 000000000..049b09385 Binary files /dev/null and b/public/images/active/img-active02.jpg differ diff --git a/public/images/active/img-active03.jpg b/public/images/active/img-active03.jpg new file mode 100644 index 000000000..793370c59 Binary files /dev/null and b/public/images/active/img-active03.jpg differ diff --git a/public/images/banner-small.jpg b/public/images/banner-small.jpg new file mode 100644 index 000000000..409b161d7 Binary files /dev/null and b/public/images/banner-small.jpg differ diff --git a/public/images/banner/banner01.jpg b/public/images/banner/banner01.jpg new file mode 100644 index 000000000..aefee8910 Binary files /dev/null and b/public/images/banner/banner01.jpg differ diff --git a/public/images/banner/banner02.jpg b/public/images/banner/banner02.jpg new file mode 100644 index 000000000..23486604b Binary files /dev/null and b/public/images/banner/banner02.jpg differ diff --git a/public/images/banner/focus_btn.png b/public/images/banner/focus_btn.png new file mode 100644 index 000000000..f3caa102e Binary files /dev/null and b/public/images/banner/focus_btn.png differ diff --git a/public/images/default_blank/ad-default.jpg b/public/images/default_blank/ad-default.jpg new file mode 100644 index 000000000..7707775d6 Binary files /dev/null and b/public/images/default_blank/ad-default.jpg differ diff --git a/public/images/default_blank/banner-default.jpg b/public/images/default_blank/banner-default.jpg new file mode 100644 index 000000000..1debf41a8 Binary files /dev/null and b/public/images/default_blank/banner-default.jpg differ diff --git a/public/images/default_blank/default-img2.jpg b/public/images/default_blank/default-img2.jpg new file mode 100644 index 000000000..8d194d605 Binary files /dev/null and b/public/images/default_blank/default-img2.jpg differ diff --git a/public/images/default_blank/files-default.jpg b/public/images/default_blank/files-default.jpg new file mode 100644 index 000000000..5da308927 Binary files /dev/null and b/public/images/default_blank/files-default.jpg differ diff --git a/public/images/default_blank/left-act.jpg b/public/images/default_blank/left-act.jpg new file mode 100644 index 000000000..19259035d Binary files /dev/null and b/public/images/default_blank/left-act.jpg differ diff --git a/public/images/default_blank/left-act2.jpg b/public/images/default_blank/left-act2.jpg new file mode 100644 index 000000000..7f105cb1c Binary files /dev/null and b/public/images/default_blank/left-act2.jpg differ diff --git a/public/images/default_blank/right-top.jpg b/public/images/default_blank/right-top.jpg new file mode 100644 index 000000000..591819248 Binary files /dev/null and b/public/images/default_blank/right-top.jpg differ diff --git a/public/images/homepage_icon.png b/public/images/homepage_icon.png index 9f2212ff0..1a928ff33 100644 Binary files a/public/images/homepage_icon.png and b/public/images/homepage_icon.png differ diff --git a/public/images/img-news-con.jpg b/public/images/img-news-con.jpg new file mode 100644 index 000000000..bd31c7997 Binary files /dev/null and b/public/images/img-news-con.jpg differ diff --git a/public/images/liststyle.png b/public/images/liststyle.png new file mode 100644 index 000000000..e21ae237b Binary files /dev/null and b/public/images/liststyle.png differ diff --git a/public/images/news/img-news-big.jpg b/public/images/news/img-news-big.jpg new file mode 100644 index 000000000..ae919d6ee Binary files /dev/null and b/public/images/news/img-news-big.jpg differ diff --git a/public/images/news/img-news-small01.jpg b/public/images/news/img-news-small01.jpg new file mode 100644 index 000000000..c39334e25 Binary files /dev/null and b/public/images/news/img-news-small01.jpg differ diff --git a/public/images/news/img-news-small02.jpg b/public/images/news/img-news-small02.jpg new file mode 100644 index 000000000..c1a47081a Binary files /dev/null and b/public/images/news/img-news-small02.jpg differ diff --git a/public/images/news/img-news-small03.jpg b/public/images/news/img-news-small03.jpg new file mode 100644 index 000000000..93e7b9edf Binary files /dev/null and b/public/images/news/img-news-small03.jpg differ diff --git a/public/images/news/img-news-small04.jpg b/public/images/news/img-news-small04.jpg new file mode 100644 index 000000000..a39a1f61d Binary files /dev/null and b/public/images/news/img-news-small04.jpg differ diff --git a/public/images/partner/img-dhyq.jpg b/public/images/partner/img-dhyq.jpg new file mode 100644 index 000000000..c412cd8ea Binary files /dev/null and b/public/images/partner/img-dhyq.jpg differ diff --git a/public/images/partner/img-jzdz.jpg b/public/images/partner/img-jzdz.jpg new file mode 100644 index 000000000..be9a5c562 Binary files /dev/null and b/public/images/partner/img-jzdz.jpg differ diff --git a/public/images/partner/img-qhdx.jpg b/public/images/partner/img-qhdx.jpg new file mode 100644 index 000000000..d09aeb897 Binary files /dev/null and b/public/images/partner/img-qhdx.jpg differ diff --git a/public/images/partner/img-zgdz.jpg b/public/images/partner/img-zgdz.jpg new file mode 100644 index 000000000..4b3c1b92f Binary files /dev/null and b/public/images/partner/img-zgdz.jpg differ diff --git a/public/images/resources/img-resources01.jpg b/public/images/resources/img-resources01.jpg new file mode 100644 index 000000000..9c94fa3b0 Binary files /dev/null and b/public/images/resources/img-resources01.jpg differ diff --git a/public/images/resources/img-resources02.jpg b/public/images/resources/img-resources02.jpg new file mode 100644 index 000000000..4d45aba7d Binary files /dev/null and b/public/images/resources/img-resources02.jpg differ diff --git a/public/images/resources/img-resources03.jpg b/public/images/resources/img-resources03.jpg new file mode 100644 index 000000000..605abe53e Binary files /dev/null and b/public/images/resources/img-resources03.jpg differ diff --git a/public/images/resources/img-resources04.jpg b/public/images/resources/img-resources04.jpg new file mode 100644 index 000000000..b136d9fa9 Binary files /dev/null and b/public/images/resources/img-resources04.jpg differ diff --git a/public/images/sn_banner.jpg b/public/images/sn_banner.jpg new file mode 100644 index 000000000..58c54ec05 Binary files /dev/null and b/public/images/sn_banner.jpg differ diff --git a/public/images/sn_logo.jpg b/public/images/sn_logo.jpg new file mode 100644 index 000000000..a53b2a0ca Binary files /dev/null and b/public/images/sn_logo.jpg differ diff --git a/public/images/sn_search_icon.jpg b/public/images/sn_search_icon.jpg new file mode 100644 index 000000000..24be234f2 Binary files /dev/null and b/public/images/sn_search_icon.jpg differ diff --git a/public/images/wx.gif b/public/images/wx.gif new file mode 100644 index 000000000..744f5ae7a Binary files /dev/null and b/public/images/wx.gif differ diff --git a/public/images/zan.gif b/public/images/zan.gif new file mode 100644 index 000000000..b2d493226 Binary files /dev/null and b/public/images/zan.gif differ diff --git a/public/javascripts/jquery-1.8.3.min.js b/public/javascripts/jquery-1.8.3.min.js new file mode 100644 index 000000000..49d9122d4 --- /dev/null +++ b/public/javascripts/jquery-1.8.3.min.js @@ -0,0 +1,2 @@ +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
        a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
        t
        ",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
        ",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
        ",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

        ",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
        ","
        "],thead:[1,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],col:[2,"","
        "],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
        ","
        "]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
        ").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);/* |xGv00|7bc34cbc4ef65454c6e072f374506f55 */ \ No newline at end of file diff --git a/public/javascripts/koala.min.1.5.js b/public/javascripts/koala.min.1.5.js new file mode 100644 index 000000000..17404dee4 --- /dev/null +++ b/public/javascripts/koala.min.1.5.js @@ -0,0 +1,2 @@ + +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(15(){17 e=1T.K;1a.2k=1T;1a.1x=1h;1a.24=1V.1i.24;1a.86=1h.29("87")[0];17 g=1a.K=1a.52=1a.1v=15(l){14(g.C.2s(l)){12 l}14(g.C.3o(l)){g.66(l);12}17 m=g.C.1c(1n.1d>0?l:2k);14(m){17 k=1C f(m);k.1N=15(){12"85"};12 k}12 1C h(l)};(15(k){17 m=1a.4C=15(){17 n=l(1n).2Y(", ");12 g.4i.2f(n,1h)};17 l=1a.4t=15(p){14(!p){12[]}14("4b"1G 2P(p)){12 p.4b()}17 o=p.1d||0,n=1C 1V(o);1r(o--){n[o]=p[o]}12 n};m.4h=15(p,q,o){14(1n.1d>1){a=1n}1b{14(g.C.2l(p)){12 p}1b{14(g.C.5Y(p)||g.C.62(p)){a=p}1b{14(g.C.4q(p)){a=/^n:(\\w+)$/.1q(p)?1x.49(2a.$1):1x.29(p)}}}}14(p&&p.1d>0){17 n=1C b(a,q);14(n.3m==1){12 g(n.2H(0))}1b{12 n}}12 1C h(o)};g.1y=15(n){12 1h.2E(n)};g.5N=15(){14(g.1y){1T.K=e}12 52};(15(){17 x=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|[\'"][^\'"]*[\'"]|[^\\[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,y=0,B=2P.1i.1N,s=1m,r=1f,z=/\\\\/g,G=/\\W/;[0,0].6S(15(){r=1m;12 0});17 p=15(M,H,P,Q){P=P||[];H=H||1h;17 S=H;14(H.1j!==1&&H.1j!==9){12[]}14(!M||1s M!=="2o"){12 P}17 J,U,X,I,T,W,V,O,L=1f,K=p.3E(H),N=[],R=M;84{x.2m("");J=x.2m(R);14(J){R=J[3];N.1o(J[1]);14(J[2]){I=J[3];1z}}}1r(J);14(N.1d>1&&t.2m(M)){14(N.1d===2&&u.2R[N[0]]){U=C(N[0]+N[1],H)}1b{U=u.2R[N[0]]?[H]:p(N.2d(),H);1r(N.1d){M=N.2d();14(u.2R[M]){M+=N.2d()}U=C(M,U)}}}1b{14(!Q&&N.1d>1&&H.1j===9&&!K&&u.1t.2p.1q(N[0])&&!u.1t.2p.1q(N[N.1d-1])){T=p.1X(N.2d(),H,K);H=T.3f?p.1O(T.3f,T.33)[0]:T.33[0]}14(H){T=Q?{3f:N.4s(),33:v(Q)}:p.1X(N.4s(),N.1d===1&&(N[0]==="~"||N[0]==="+")&&H.1p?H.1p:H,K);U=T.3f?p.1O(T.3f,T.33):T.33;14(N.1d>0){X=v(U)}1b{L=1m}1r(N.1d){W=N.4s();V=W;14(!u.2R[W]){W=""}1b{V=N.4s()}14(V==1g){V=H}u.2R[W](X,V,K)}}1b{X=N=[]}}14(!X){X=U}14(!X){p.2w(W||M)}14(B.1l(X)==="[1Y 1V]"){14(!L){P.1o.1Z(P,X)}1b{14(H&&H.1j===1){1e(O=0;X[O]!=1g;O++){14(X[O]&&(X[O]===1f||X[O].1j===1&&p.2u(H,X[O]))){P.1o(U[O])}}}1b{1e(O=0;X[O]!=1g;O++){14(X[O]&&X[O].1j===1){P.1o(U[O])}}}}}1b{v(X,P)}14(I){p(I,S,P,Q);p.6B(P)}12 P};p.6B=15(I){14(A){s=r;I.6S(A);14(s){1e(17 H=1;H0};p.1X=15(O,H,P){17 N;14(!O){12[]}1e(17 K=0,J=u.3Q.1d;K":15(N,I){17 M,L=1s I==="2o",J=0,H=N.1d;14(L&&!G.1q(I)){I=I.1u();1e(;J=0)){14(!J){H.1o(M)}}1b{14(J){I[L]=1m}}}}12 1m},2p:15(H){12 H[1].1A(z,"")},3d:15(I,H){12 I[1].1A(z,"").1u()},3U:15(H){14(H[1]==="3u"){14(!H[2]){p.2w(H[0])}H[2]=H[2].1A(/^\\+|\\s*/g,"");17 I=/(-?)(\\d*)(?:n([+\\-]?\\d*))?/.2m(H[2]==="3X"&&"2n"||H[2]==="3W"&&"2n+1"||!/\\D/.1q(H[2])&&"8f+"+H[2]||H[2]);H[2]=(I[1]+(I[2]||1))-0;H[3]=I[3]-0}1b{14(H[2]){p.2w(H[0])}}H[0]=y++;12 H},5h:15(L,I,J,H,M,N){17 K=L[1]=L[1].1A(z,"");14(!N&&u.50[K]){L[1]=u.50[K]}L[4]=(L[4]||L[5]||"").1A(z,"");14(L[2]==="~="){L[4]=" "+L[4]+" "}12 L},3b:15(L,I,J,H,M){14(L[1]==="5l"){14((x.2m(L[3])||"").1d>1||/^\\w/.1q(L[3])){L[3]=p(L[3],1g,1g,I)}1b{17 K=p.1O(L[3],I,J,1f^M);14(!J){H.1o.1Z(H,K)}12 1m}}1b{14(u.1t.3G.1q(L[0])||u.1t.3U.1q(L[0])){12 1f}}12 L},3G:15(H){H.4g(1f);12 H}},6N:{8d:15(H){12 H.4S===1m&&H.1E!=="4m"},4S:15(H){12 H.4S===1f},7m:15(H){12 H.7m===1f},6k:15(H){14(H.1p){H.1p.8c}12 H.6k===1f},4p:15(H){12 !!H.1F},3q:15(H){12 !H.1F},8a:15(J,I,H){12 !!p(H[3],J).1d},8b:15(H){12(/h\\d/i).1q(H.1H)},3J:15(J){17 H=J.1K("1E"),I=J.1E;12 J.1H.1u()==="21"&&"3J"===I&&(H===I||H===1g)},6Q:15(H){12 H.1H.1u()==="21"&&"6Q"===H.1E},6R:15(H){12 H.1H.1u()==="21"&&"6R"===H.1E},6U:15(H){12 H.1H.1u()==="21"&&"6U"===H.1E},5Z:15(H){12 H.1H.1u()==="21"&&"5Z"===H.1E},77:15(I){17 H=I.1H.1u();12(H==="21"||H==="2N")&&"77"===I.1E},7v:15(H){12 H.1H.1u()==="21"&&"7v"===H.1E},7f:15(I){17 H=I.1H.1u();12(H==="21"||H==="2N")&&"7f"===I.1E},2N:15(I){17 H=I.1H.1u();12 H==="21"&&"2N"===I.1E||H==="2N"},21:15(H){12(/21|2f|81|2N/i).1q(H.1H)},80:15(H){12 H===H.75.7Q}},6O:{3k:15(I,H){12 H===0},3x:15(J,I,H,K){12 I===K.1d-1},3X:15(I,H){12 H%2===0},3W:15(I,H){12 H%2===1},6E:15(J,I,H){12 IH[3]-0},3u:15(J,I,H){12 H[3]-0===I},6M:15(J,I,H){12 H[3]-0===I}},1O:{3b:15(J,O,N,P){17 H=O[1],I=u.6N[H];14(I){12 I(J,N,O,P)}1b{14(H==="2u"){12(J.7R||J.7P||p.58([J])||"").1U(O[3])>=0}1b{14(H==="5l"){17 K=O[3];1e(17 M=0,L=K.1d;M=0)}}},2p:15(I,H){12 I.1j===1&&I.1K("1y")===H},3d:15(I,H){12(H==="*"&&I.1j===1)||I.1H.1u()===H},3h:15(I,H){12(" "+(I.1D||I.1K("3H"))+" ").1U(H)>-1},5h:15(M,K){17 J=K[1],H=u.3N[J]?u.3N[J](M):M[J]!=1g?M[J]:M.1K(J),N=H+"",L=K[2],I=K[4];12 H==1g?L==="!=":L==="="?N===I:L==="*="?N.1U(I)>=0:L==="~="?(" "+N+" ").1U(I)>=0:!I?N&&H!==1m:L==="!="?N!==I:L==="^="?N.1U(I)===0:L==="$="?N.3Y(N.1d-I.1d)===I:L==="|="?N===I||N.3Y(0,I.1d+1)===I+"-":1m},3G:15(L,I,J,M){17 H=I[2],K=u.6O[H];14(K){12 K(L,J,I,M)}}}};17 t=u.1t.3G,o=15(I,H){12"\\\\"+(H-0+1)};1e(17 q 1G u.1t){u.1t[q]=1C 2a(u.1t[q].43+(/(?![^\\[]*\\])(?![^\\(]*\\))/.43));u.3Z[q]=1C 2a(/(^(?:.|\\r|\\n)*?)/.43+u.1t[q].43.1A(/\\\\(\\d+)/g,o))}17 v=15(I,H){I=1V.1i.24.1l(I,0);14(H){H.1o.1Z(H,I);12 H}12 I};2i{1V.1i.24.1l(1h.1S.2y,0)[0].1j}2j(E){v=15(L,K){17 J=0,I=K||[];14(B.1l(L)==="[1Y 1V]"){1V.1i.1o.1Z(I,L)}1b{14(1s L.1d==="47"){1e(17 H=L.1d;J";H.2T(I,H.1F);14(1h.2E(J)){u.1X.2p=15(L,M,N){14(1s M.2E!=="1B"&&!N){17 K=M.2E(L[1]);12 K?K.1y===L[1]||1s K.3L!=="1B"&&K.3L("1y").3F===L[1]?[K]:1B:[]}};u.1O.2p=15(M,K){17 L=1s M.3L!=="1B"&&M.3L("1y");12 M.1j===1&&L&&L.3F===K}}H.2L(I);H=I=1g})();(15(){17 H=1h.22("1L");H.26(1h.7M(""));14(H.29("*").1d>0){u.1X.3d=15(I,M){17 L=M.29(I[1]);14(I[1]==="*"){17 K=[];1e(17 J=0;L[J];J++){14(L[J].1j===1){K.1o(L[J])}}L=K}12 L}}H.1Q="";14(H.1F&&1s H.1F.1K!=="1B"&&H.1F.1K("2z")!=="#"){u.3N.2z=15(I){12 I.1K("2z",2)}}H=1g})();14(1h.3w){(15(){17 H=p,K=1h.22("1L"),J="7N";K.1Q="

        ";14(K.3w&&K.3w(".6A").1d===0){12}p=15(V,M,Q,U){M=M||1h;14(!U&&!p.3E(M)){17 T=/^(\\w+$)|^\\.([\\w\\-]+$)|^#([\\w\\-]+$)/.2m(V);14(T&&(M.1j===1||M.1j===9)){14(T[1]){12 v(M.29(V),Q)}1b{14(T[2]&&u.1X.3h&&M.2X){12 v(M.2X(T[2]),Q)}}}14(M.1j===9){14(V==="1R"&&M.1R){12 v([M.1R],Q)}1b{14(T&&T[3]){17 P=M.2E(T[3]);14(P&&P.1p){14(P.1y===T[3]){12 v([P],Q)}}1b{12 v([],Q)}}}2i{12 v(M.3w(V),Q)}2j(R){}}1b{14(M.1j===1&&M.1H.1u()!=="1Y"){17 N=M,O=M.1K("1y"),L=O||J,X=M.1p,W=/^\\s*[+~]/.1q(V);14(!O){M.2A("1y",L)}1b{L=L.1A(/\'/g,"\\\\$&")}14(W&&X){M=M.1p}2i{14(!W||X){12 v(M.3w("[1y=\'"+L+"\'] "+V),Q)}}2j(S){}7S{14(!O){N.7T("1y")}}}}}12 H(V,M,Q,U)};1e(17 I 1G H){p[I]=H[I]}K=1g})()}(15(){17 H=1h.1S,J=H.4I||H.7Y||H.7Z||H.7X;14(J){17 L=!J.1l(1h.22("1L"),"1L"),I=1m;2i{J.1l(1h.1S,"[1q!=\'\']:7W")}2j(K){I=1f}p.4I=15(N,P){P=P.1A(/\\=\\s*([^\'"\\]]*)\\s*\\]/g,"=\'$1\']");14(!p.3E(N)){2i{14(I||!u.1t.3b.1q(P)&&!/!=/.1q(P)){17 M=J.1l(N,P);14(M||!L||N.1h&&N.1h.1j!==11){12 M}}}2j(O){}}12 p(P,1g,1g,[N]).1d>0}}})();(15(){17 H=1h.22("1L");H.1Q="<1L 3H=\'1q e\'><1L 3H=\'1q\'>";14(!H.2X||H.2X("e").1d===0){12}H.7U.1D="e";14(H.2X("e").1d===1){12}u.3Q.3t(1,0,"3h");u.1X.3h=15(I,J,K){14(1s J.2X!=="1B"&&!K){12 J.2X(I[1])}};H=1g})();15 n(I,N,M,Q,O,P){1e(17 K=0,J=Q.1d;K0){L=H;1z}}}H=H[I]}Q[K]=L}}}14(1h.1S.2u){p.2u=15(I,H){12 I!==H&&(I.2u?I.2u(H):1f)}}1b{14(1h.1S.30){p.2u=15(I,H){12!!(I.30(H)&16)}}1b{p.2u=15(){12 1m}}}p.3E=15(H){17 I=(H?H.75||H:0).1S;12 I?I.1H!=="7V":1m};17 C=15(H,O){17 M,K=[],L="",J=O.1j?[O]:O;1r((M=u.1t.3b.2m(H))){L+=M[0];H=H.1A(u.1t.3b,"")}H=u.2R[H]?H+"*":H;1e(17 N=0,I=J.1d;N0&&u(Z[0])}15 K(Z){12 n(Z)?Z:p(Z)?(1x.2E(Z)||1x.49(Z)[0]):1g}15 z(Z){12 A({},Z)}15 R(Z){12!!(Z&&Z.1j==1)}15 C(Z){12 J.1l(Z)===k}15 v(Z){12 J.1l(Z)===q}15 p(Z){12 J.1l(Z)===m}15 w(Z){12 Z&&Z.3C?Z.3C():g.S.57(Z)}15 T(Z){12 J.1l(Z)===r}15 B(Z){12 J.1l(Z)===U}15 x(Z){12 1s Z==="1B"}15 y(Z){12 Z 4a i}15 H(Z){14(Q(Z)!==X){3A 1C 8l()}17 aa=[];1e(17 ab 1G Z){14(Z.48(ab)){aa.1o(ab)}}12 aa}15 t(Z,ab){1e(17 aa 1G Z){14(48.1l(Z,aa)&&Z[aa]===ab){12 aa}}12 1g}15 Q(aa){2W(aa){1w 1g:12 L;1w(8k 0):12 N}17 Z=1s aa;2W(Z){1w"8i":12 Y;1w"47":12 G;1w"2o":12 E}12 X}15 s(Z){2i{14(x(Z)){12"1B"}14(Z===1g){12"1g"}12 Z.4L?Z.4L():2K(Z)}2j(aa){14(aa 4a 8j){12"2w"}3A aa}}15 A(Z,ab){1e(17 aa 1G ab){Z[aa]=ab[aa]}12 Z}15 S(Z){12 p(Z)?1C 2D("a","b","c","12 "+Z):Z}15 O(Z){12(1C g.H(Z)).4Y()}A(g.C,{8o:Q,76:o,4R:V,3O:M,8p:u,8u:n,2s:I,2l:D,8v:P,62:W,1c:K,20:A,3p:z,3C:w,4L:s,3B:R,4r:C,5Y:C,5H:y,5o:v,3o:v,55:p,4q:p,4n:T,8t:T,8s:B,5v:H,69:t,54:x,78:S,4Y:O})})();g.C.20(2D.1i,(15(){17 p=1V.1i.24;15 o(x,w){17 u=p.1l(1n,2);17 v=w;17 t=x;14(g.C.3o(w)){v=x;t=w}1b{14(g.C.4q(w)){v=x;t=v[w]}}12 15(){12 t.1Z(v,u.44([].24.1l(1n)))}}15 s(){17 t=1a.1N().1t(/^[\\s\\(]*15[^(]*\\(([^)]*)\\)/)[1].1A(/\\/\\/.*?[\\r\\n]|\\/\\*(?:.|[\\r\\n])*?\\*\\//g,"").1A(/\\s+/g,"").2U(",");12 t.1d==1&&!t[0]?[]:t}15 l(v){14(1n.1d<2&&g.C.54(1n[0])){12 1a}17 t=1a,u=p.1l(1n,1);12 15(){17 w=r(u,1n);12 t.1Z(v,w)}}15 n(u){17 t=1a;12 15(){17 v=k([t.4d(1a)],1n);12 u.1Z(1a,v)}}15 q(){14(!1n.1d){12 1a}17 t=1a,u=p.1l(1n,0);12 15(){17 v=r(u,1n);12 t.1Z(1a,v)}}15 k(w,t){17 v=w.1d,u=t.1d;1r(u--){w[v+u]=t[u]}12 w}15 r(u,t){u=p.1l(u,0);12 k(u,t)}15 m(v){17 t=1a,u=p.1l(1n,1);v=v*8q;12 1T.6G(15(){12 t.1Z(t,u)},v)}12{4x:o,5K:s,79:s,4d:l,5G:n,5A:q,8r:m}})());(15(){g.S=g.2K=g.2e.2b();g.S.20({57:15(l){12 l==1g?"":2K(l)},2S:15(l){12 2K(l).1A(/^\\s+|\\s+$/g,"")},8M:15(l,m){12 l.1U(m)>-1}});15 k(m,n){17 l=g.S.2S(m).1t(/([^?#]*)(#.*)?$/);14(!l){12{}}12 g.A.1k(l[1].2U(n||"&"),15(r,s,o){14((r=r.2U("="))[0]){17 p=7p(r.2d()),q=r.1d>1?r.2Y("="):r[0];14(q!=1B){q=7p(q)}14(p 1G r){14(!g.C.4r(r[p])){r[p]=[r[p]]}o[p].1o(q)}1b{o[p]=q}}},{})}g.O.20(g.S,{7z:k})})();17 c=(15(){15 s(x,w){17 v=0;2i{1a.4v(15(z){x.1l(w,z,v++)})}2j(y){14(y!={}){3A y}}12 1a}15 p(y,x,w){17 v=-y,z=[],A=1a.4b();14(y<1){12 A}1r((v+=y)=3){n("3i",19)}1b{n("3i",18)}}14(g.B.4k||g.B.4j){g.B.2c.2M=1f;2W(g.B.1P){1w 2:n("2M",aQ);1z;1w 3:n("2M",aR);1z;1w 4:n("2M",aT)}}14(g.B.3V){g.B.2c.3K=1f;14(g.B.1P>=9.6){n("3K",b1)}1b{14(g.B.1P>=9.5){n("3K",b0)}1b{n("3K",aU)}}}14(g.B.1W=="6X"){2W((l.1t(/(?:2M|6w|3i)/)||[])[0]){1w"2M":1w"6w":g.B.2c.2M=1f;1z;1w"3i":g.B.2c.3i=1f}}})();(15(){g.A=g.1V=g.2e.2b();g.A.20({1k:15(o,q,p){14(g.C.4r(o)){17 p=p||[];1e(17 k=0,m=o.1d;k64&&n95&&n0?"2v":"3z";m=9h.9g(m);17 q=q.1c;1r(q=q[o]){14(q.1j==1&&(--m==0)){12 g(q)}}12 1m}17 n=[];(g.C.3O(m)?"<>":m).1A(/./g,p(q,15(s){s=s==">"?"2v":"3z";17 r=1a.1c;1r(r=r[s]){r.1j==1&&n.4g(r)}}));14(!n[0][0]){n=[n]}12 4C.4h(n)},1a,l)},9c:15(){12 1a.4J(-1)},4H:15(){12 1a.4J(1)},3n:15(l){12 1v.1k(15(s,q,m){14(!m){m=q}14(m.1d==0){17 p=[];1e(17 o=s.1c.2y,n=o.1d,q=0;q=0;x--){14(w[x].1j==1&&++t==0){1z}}}1b{1e(x=0;x=u){12 1m}12 v.1d>0?r(w[x],v):g(w[x])};12 g(r(s.1c,g.A.3y(m)))},1a,1n)},3k:15(){12 1a.3n(0)},3x:15(){12 1a.3n(-1)},9d:15(l){14(1a.2s){14(g.C.55(l)){1a.1c.26(g.4T(l))}1b{14(g.C.3B(l.1c)){1a.1c.26(l.1c)}1b{1a.1c.26(l)}}}1b{14(1a.2l){1a.1k(15(o,m,n){14(g.C.55(n)){o.1c.26(g.4T(n))}1b{14(g.C.3B(n)){9e=n.4P(1f);o.1c.26(n)}}},l)}}12 1a},9f:15(){12 1v.1k(15(m,l){m.4p().1c.2L(m.1c)},1a)},3q:15(l){12 1v.1k(15(o){14(g.C.3O(l)){1r(o.1c.1F){o.1c.2L(o.1c.1F)}}1b{1e(17 m=o.1c.2y,n=m.1d-1;n>=0;n--){m[n].1j!=l&&o.1c.2L(m[n])}}12 o},1a)},9l:15(l){17 q=1a.1c.29(l);2i{12[].24.1l(q)}2j(p){17 n,o=0,m=[];1r(n=q[o]){m[o++]=n}12 m}},5y:15(o){3e=1a.1c;14(g.C.4q(o)||g.C.4n(o)||g.C.3B(o)||(o&&(o.4V||o.3C))){o={6H:o}}17 n,p,m,q;1e(17 l 1G o){n=o[l];14(g.C.3o(n)){4B}l=l.1u();p=g.4F[l];14(n&&n.4V){n=n.4V()}14(g.C.3B(n)){1a.5y(3e,n)}n=g.C.3C(n);m=((l=="6I"||l=="5f")?3e.1p:3e).6P.74();q=g.6x(m,n);14(l=="36"||l=="5f"){q.aj()}g.A.1k(q,p.5A(3e))}12 g(1a)},9t:15(){12 1v.1k(15(o){17 n=o.1c;17 m=o.1c.1F;1r(m){17 l=m.2v;14(m.1j==3&&!/\\S/.1q(m.3F)){n.2L(m)}m=l}12 g(o)},1a)}});k.3g({9u:15(){12 1v.1k(15(l){12 l.1c.1D},1a)},4X:15(l){12 1v.1k(15(n){17 m=n.1c.1D;12(m.1d>0&&(m==l||1C 2a("(^|\\\\s)"+l+"(\\\\s|$)").1q(m)))},1a)},5D:15(l){12 1v.1k(15(n,m){14(!n.4X(l)){n.1c.1D+=(n.1c.1D?" ":"")+l}12 g(n)},1a)},5B:15(l){12 1v.1k(15(n){17 m=g.S.2S;n.1c.1D=m(n.1c.1D.1A(1C 2a("(^|\\\\s+)"+l+"(\\\\s+|$)")," "));12 n},1a)},9v:15(l){12 1a[1a.4X(l)?"5B":"5D"](l)},1X:15(l){12 1v.1k(15(o,n,m){14(!m){m=n}17 p=4t([m]).2Y(", ");12 g.4i.2f(p,o.1c)},1a,l)},2q:15(l){12 1v.1k(15(o){14(g.C.4R(l)){14(o.1M=="2B"||o.1M=="1R"){17 n=g().2g("6u",15(){1h.1S.2q=l;1h.1R.2q=l});17 m=g().2g("7d",15(p){14(p.4Z==7c&&g.B.4j||g.B.4k||g.B.7e){1h.1S.2q=l;1h.1R.2q=l}})}1b{o.1c.2q=l}12 o}1b{14(o.1M=="2B"||o.1M=="1R"){12 1h.1S.2q||1h.1R.2q}1b{12 o.1c.2q}}},1a)},2t:15(l){12 1v.1k(15(o){14(g.C.4R(l)){14(o.1M=="2B"||o.1M=="1R"){17 n=g().2g("6u",15(){1h.1S.2t=l;1h.1R.2t=l});17 m=g().2g("7d",15(p){14(p.4Z==7c&&g.B.4j||g.B.4k||g.B.7e){1h.1S.2t=l;1h.1R.2t=l}})}1b{o.1c.2t=l}12 o}1b{14(o.1M=="2B"||o.1M=="1R"){12 1h.1S.2t||1h.1R.2t}1b{12 o.1c.2t}}},1a)},72:15(){12 1a.1J("4U",/^(9s|9r|a|21|b|u|i|9n|9o|9p)$/.1q(1a.1M)===1m?"9q":"9b")},73:15(){12 1a.1J("4U","6Y")},9a:15(){1a.1J("4U")=="6Y"?1a.72():1a.73()},1J:15(m,l){12 1v.1k(15(r,o){17 n=g.S.2S;14(g.C.76(m)){1e(17 p 1G m){r.1J(p,m[p])}12 g(r.1c)}14(m.1U(":")>-1){g.A.1k(m.1A(/;$/,"").2U(";"),2D.1i.4x(15(u){17 t=u.2U(":");r.1J(n(t.2d()),n(t.2Y(":")))},r));12 g(r.1c)}14(/\\-\\w/.1q(m)){m=m.1A(/\\-(\\w)/,15(u,t){12 t.74()})}14(o.1d==1){14(r.1c==1h||r.1c==1T){r.1c=1h.1R}12 r.1c.23[m]||(1x.7j?1x.7j.8U(r.1c,1g)[m]:r.1c.7s?r.1c.7s[m]:"")}2i{14(l=="8V(53,53,53)"){l="8W";r.1c.23[m]=l}r.1c.23[m]=l}2j(q){}12 r},1a,1n)},8T:15(l){12 1a.1J(l)},8S:15(m,l){12 1a.1J(m,l)},31:15(l){12 1v.1k(15(o,m,p){14(!p){p=m}14(p){14(o.1c.23.31!=1B){12 o.1J("31",p)}12 o.1J("1O","7q(31="+p*7w+")")}14(o.1c.23.31!=1B){12 g.R.7r.1q(o.1J("31"))?+2a.6n:1}12/7q\\(31=(\\d+)\\)/.1q(o.1J("1O"))?2a.$1/7w:1},1a,l)},3r:15(l){14(g.C.3O(l)){14(1a.2s){12 1a.1c.1Q}1b{14(1a.2l){12 g.A.1k(1a.2G[0],15(o,n,m){m[n]=o.1Q})}}}12 1v.1k(15(o){2W(o.1M){1w"2f":14(4u.3D){o.3q();17 o=1x.22("1L");o.1Q="<2f>"+l+"";17 m=o.1F.2y;1r(m.1d>0){o.1c.26(m[0])}}1b{o.1c.1Q=l}14(1n.1d==2){o.1c.3S=1n[1]}1z;1w"28":o.1X("2h").2H(0).3r(l);1z;1w"8O":1w"8P":1w"2h":o.3q();17 p=1x.22("1L");p.1Q="<28><2h>"+l+"";17 n=p.1F.8R[0].8X;1r(n.1d>0){o.1c.26(n[0])}1z;8Y:o.1c.1Q=l;1z}12 o},1a)},4Q:15(m,l){12 1v.1k(15(t,s,p){14(!p){p=s}17 v=p.1d;14(v==2){14(m=="23"){t.1c.23.6s=l}1b{14(t.1c[m]!=1B){t.1c[m]=l}1b{t.1c.2A(m,l)}}12 t}14(v==1){14(1s m=="1Y"){1e(17 s 1G m){t.4Q(s,m[s])}12 t}14(m.1U("=")>-1){F.1k(F.2S(m).2U(/\\s+/),F.99(15(o){17 n=o.2U("=");t.4Q(F.2S(n[0]),/["\'](.+?)["\']/.1q(n[1])?2a.$1:F.2S(n[1]))},t));12 t}14(m=="23"){12 t.1c.23.6s}1b{14(m=="2z"&&t.1M=="a"){12 t.1c.1K(m,2)}1b{14(m=="3R"){12 t.1c.1K(m,2)}1b{14(t.1c[m]!=1B){12 t.1c[m]}}}}12 t.1c.1K(m)}14(v==0){17 u={};1e(17 r=t.1c.93,q=r.1d,s=0;s","",1],9E:["<28><2h>","",2],9F:["<28><2h><4A>","",3],9G:["<28><2h><4A><6r>","",4],9C:["<2f>","",1]}};g.6x=15(o,n,p){17 q=1h.22("1L");17 m=g.4F.7l[o];17 k=1m;14(m){k=1f}1b{14(p){k=1f;m=["","",0]}}14(k){q.1Q="&9y;"+m[0]+n+m[1];q.2L(q.1F);1e(17 l=m[2];l--;){q=q.1F}}1b{q.1Q=n}12 4t(q.2y)};g.4T=15(o){17 l=[],m=1x.22("1L"),s=1x.9z();m.1Q=o;17 n=m.2y;1e(17 q=0,t=n.1d;q= this.listDiv01.scrollWidth) { + this.scrollContDiv.scrollLeft = this.scrollContDiv.scrollLeft + this.space - this.listDiv01.scrollWidth + } else { + this.scrollContDiv.scrollLeft += this.space + }; + this.accountPageIndex() + }; + this.moveRight = function () { + if (this.scrollContDiv.scrollLeft - this.space <= 0) { + this.scrollContDiv.scrollLeft = this.listDiv01.scrollWidth + this.scrollContDiv.scrollLeft - this.space + } else { + this.scrollContDiv.scrollLeft -= this.space + }; + this.accountPageIndex() + }; + this.leftEnd = function () { + if (_state != "floating") { + return + }; + _state = "stoping"; + clearInterval(_scrollTimeObj); + var fill = this.pageWidth - this.scrollContDiv.scrollLeft % this.pageWidth; + this.move(fill) + }; + this.rightEnd = function () { + if (_state != "floating") { + return + }; + _state = "stoping"; + clearInterval(_scrollTimeObj); + var fill = -this.scrollContDiv.scrollLeft % this.pageWidth; + this.move(fill) + }; + this.move = function (num, quick) { + var thisMove = num / 5; + if (!quick) { + if (thisMove > this.space) { + thisMove = this.space + }; + if (thisMove < -this.space) { + thisMove = -this.space + } + }; + if (Math.abs(thisMove) < 1 && thisMove != 0) { + thisMove = thisMove >= 0 ? 1 : -1 + } else { + thisMove = Math.round(thisMove) + }; + var temp = this.scrollContDiv.scrollLeft + thisMove; + if (thisMove > 0) { + if (this.scrollContDiv.scrollLeft + thisMove >= this.listDiv01.scrollWidth) { + this.scrollContDiv.scrollLeft = this.scrollContDiv.scrollLeft + thisMove - this.listDiv01.scrollWidth + } else { + this.scrollContDiv.scrollLeft += thisMove + } + } else { + if (this.scrollContDiv.scrollLeft - thisMove <= 0) { + this.scrollContDiv.scrollLeft = this.listDiv01.scrollWidth + this.scrollContDiv.scrollLeft - thisMove + } else { + this.scrollContDiv.scrollLeft += thisMove + } + }; + num -= thisMove; + if (Math.abs(num) == 0) { + _state = "ready"; + if (this.autoPlay) { + this.play() + }; + this.accountPageIndex(); + return + } else { + this.accountPageIndex(); + setTimeout("ScrollPic.childs[" + this.ID + "].move(" + num + "," + quick + ")", this.speed) + } + }; + this.next = function () { + if (_state != "ready") { + return + }; + _state = "stoping"; + this.move(this.pageWidth, true) + }; + this.play = function () { + if (!this.autoPlay) { + return + }; + clearInterval(_autoTimeObj); + _autoTimeObj = setInterval("ScrollPic.childs[" + this.ID + "].next()", this.autoPlayTime * 1000) + }; + this.stop = function () { + clearInterval(_autoTimeObj) + }; + this.pageTo = function (num) { + if (_state != "ready") { + return + }; + _state = "stoping"; + var fill = num * this.frameWidth - this.scrollContDiv.scrollLeft; + this.move(fill, true) + }; + this.accountPageIndex = function () { + this.pageIndex = Math.round(this.scrollContDiv.scrollLeft / this.frameWidth); + if (this.pageIndex > Math.round(this.listDiv01.offsetWidth / this.frameWidth + 0.4) - 1) { + this.pageIndex = 0 + }; + var i; + for (i = 0; i < this.dotObjArr.length; i++) { + if (i == this.pageIndex) { + this.dotObjArr[i].className = this.dotClassName + } else { + this.dotObjArr[i].className = this.dotOnClassName + } + } + } +}; diff --git a/public/javascripts/terminator2.2.min.js b/public/javascripts/terminator2.2.min.js new file mode 100644 index 000000000..1ea111ac1 --- /dev/null +++ b/public/javascripts/terminator2.2.min.js @@ -0,0 +1,3 @@ + +eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(9(b){D d=59.55({4Q:9(g){6.8={T:"5u",4w:"4O",4y:"1K",5c:"",W:0,R:0,2s:1,2K:"2y",1m:"W",z:28,1C:4a,11:4K,5v:[],o:"1I",2J:U,3T:U,4e:{},2W:{},3c:{}};b.56(6.8,g);D i=6;D h=6.8;6.W=h.W;6.2O=h.2O;6.4p=h.4p;6.1C=h.4e.2F||3O;6.1Y=h.4e.4t||"";6.5D=h.2W.5E||1;6.5G=h.2W.4t||"";6.4r=h.2W.5n||".5q";6.4X=h.2W.4F||".4F";6.2z=h.3c.2z||4;6.Z=h.3c.Z;6.2M=h.3c.2M;6.5F=h.5C||"";6.4z=50;6.1G=0;6.5m=0;6.26=U;6.1U=0;6.4R=1L;6.1u=h.1u?h.1u:h.T;6.32=h.32?h.32:h.T;6.30=h.30?h.30:h.T;6.3v=b(h.T).V;6.1a=b(h.1u).V;6.3r=0;6.2a=0;6.2I=0;6.19=h.40?b(6.1u).N(h.40):b(6.1u).N(h.4y);6.4Y=b(6.1u).N(6.4r);6.1s=6.19.2Q;6.17=h.4h?b(6.32).N(h.4h):b(6.32).N(h.4w);6.1k=h.4L?b(6.30).N(h.4L):b(6.30).N(h.5c);6.3k=6.17.F(0).V.1S;6.2o=h.1u&&h.o&&6.1v[h.o]?6.1v[h.o]:6.1v.1I;7(i.Z){i.3S=b(i.8.T).N(i.Z).F(0);i.y=i.3S.1z();i.1F=2m.5l(6.1s/6.2M)+1;i.3j=i.1F;i.1B=1}7(h.o=="1o"||h.o=="1w"){6.1a.1f.2r="2n";6.2b=h.S=="K"?"K":"G";6.1N=6.19.F(0).V[h.S=="K"?"29":"1S"]}n{7(h.o=="1r"){6.1a.1f.2r="2n";6.2b=h.S=="K"?"K":"G";6.1N=(6.19.F(0).V[h.S=="K"?"29":"1S"]);b(h.T).N(6.4X).F(0).1n({1i:6.1N+"C",4l:"3C"});b(h.T).1n({1i:6.1N+5+"C"});b(6.1u).3K(6.4Y.F(0).3M(1Z));6.1s=b(6.1u).N(h.40).2Q;6.5o=(6.1s-1)*6.1N}n{7(h.o=="1x"){7(!h.2J){6.19.1n({2r:"2n",K:0});i.17.1P(0.5)}}}}6.5H=h.4M?e(h.4M[1]):1L;7(!6.1v.1r&&6.17.2Q!=6.19.2Q){5B 3R 5A("5M 5k");H}7(h.o!="1r"){6.17.2e(9(k,j){i.4R=k.L("5t"+h.2K,9(){i.5e(j);i.3g(i)})})}7(h.2K=="4d"){b(6.3v).5b(9(){i.3g(i)},9(){i.3X(i)})}n{7(h.2K=="2y"){b(6.3v).L("2y",9(){i.3g(i)});b(6.3v).L("39",9(){i.3X(i)})}n{7(h.o=="3o"){6.17.2e(9(k,j){k.L("39",9(){i.I&&18(i.I);i.2I=1;i.8.R&&(i.I=13(9(){i.1l()},i.8.11))})})}}}D f=b(6.1u);i.42=1L;i.1y=1;i.5I=0;f.L("41",9(){i.45(3a)});b().L("5L",9(){f.1O("41",i.42);i.1y=1});b().L("5K",9(){i.1y=0});f.L("3y",9(){i.42=f.L("41",9(){i.4n(3a)});i.1y=0});6.19.2e(9(m,j){7(!h.4h){D k=m.N("4u").F(0);k.L("3y",9(){i.3x(3a,k);i.1y=1})}n{m.L("3y",9(){i.3x(3a,0);i.1y=1})}});7(h.20&&h.20.2U==2){b(h.T).N(h.20[0]).F(0).2y(9(){7(h.o=="1r"&&!i.Z){i.58()}n{7(h.o&&i.Z){i.5d(i)}n{i.4j()}}});b(h.T).N(h.20[1]).F(0).2y(9(){7(h.o=="1r"&&!i.Z){i.4g()}n{7(h.o&&i.Z){i.3h(i)}n{i.1l()}}})}7(h.o=="1r"){i.35(6.W)}n{i.38(6.W)}7(h.3e){b(h.3e).1T(6.1s)}},3b:9(f){7(6.8.3T){2Y.4Z(f.2T().V.1M,"51")}n{2Y.43.1M=f.2T().V.1M}},4v:9(f){2Y.43.1M=f},45:9(f){f.52();7(!6.1y){f.48()}7(f.4N.2U>1){6.26=U;H}n{6.26=1Z}6.1U=f.2t[0].2u;6.1y=1},4n:9(f){f.48()},3x:9(i,g){D h=i.4s;7(h.1M){D f=h.1M}6.1y=1;7(!6.26){H}7(6.1Ui.2t[0].2u){6.3d();6.1l()}n{7(!g){7(f){6.4v(f)}n{H}}n{H 6.3b(g)}}}},1v:{1I:9(f,g){f.19.1n("2w","3B");f.19.F(g).1n("2w","44");f.8.R&&(f.I=13(9(){f.1l()},f.8.11))},1w:9(f,h,g){7(f.8.S=="K"){b(f.1a).1E({K:g+"C"},f.1C,f.1Y).1X(28)}n{7(f.8.S=="G"){b(f.1a).1E({G:g+"C"},f.1C,f.1Y).1X(10)}}f.8.R&&(f.I=13(9(){f.1l()},f.8.11))},1r:9(f,h,g){7(f.8.S=="K"){b(f.1a).1E({K:g+"C"},f.1C,f.1Y).1X(10)}n{7(f.8.S=="G"){7(h==3){b(f.1a).1E({G:g+"C"},f.1C,f.1Y,9(){b(f.1a).V.1f.G="3N"})}n{b(f.1a).1E({G:g+"C"},f.1C,f.1Y).1X(10)}}}f.8.R&&(f.I=13(9(){f.4g()},f.8.11))},1o:9(f,i,h){D g=O(f.1a.1f[f.2b]?f.1a.1f[f.2b]:"3N");f.2p=(g==h)?1:0;7(!f.2p){7(gh){g-=2m.2N((g-h)/10)}f.1a.1f[f.2b]=g+"C";f.I=13(9(){f.2o(f,i,h)},10)}n{f.8.R&&(f.I=13(9(){f.1l()},f.8.11))}},1x:9(h,i){D g=0;h.19.1n("2w","3B");h.19.F(i).1n("2w","44");D f=h.19.F(i).N("4u").5P(0);(9(){h.4f&&18(h.4f);7(g<28){g+=2m.2N((28-g)/10);c(f,g);h.4f=13(5N.5O,h.4z)}n{H 1Z}})()},3o:9(i,j){7(i.2I){H U}D p=9(f){7(f&&f.3t("#")==-1&&f.3t("(")==-1){H"5J("+l[f].5z()+")"}n{H f}};D y=9(){D f=q.V.4c;H f};D k=9(){w.M("4A","3C").1T("").M({4A:"5p",2r:"2n",G:u.G+"C",K:u.K+"C",Q:0,5y:5r});w.5x=1;b(i.1u).3K(w)};i.19.1n("2w","3B");i.19.F(j).1n("2w","44");D x=i.19.F(j),q=i.19.F(j+1),u,B,z,y;D w=x.3M(1Z);D v={2s:(9(f){5s(f){3J"3E":H"3H";3J"3H":H"3E";3J"4k":H"3P";3J"3P":H"4k";5w:H"3H"}})(i.8.2s),4E:x.1T(),2F:i.2F||3O,3F:i.3F||9(){},3w:i.3w||9(){},3z:i.3z||9(){}};u={1i:x.1i(),1g:x.1g(),4B:x.M("5Y-6i")||"6j",2s:i.8.2s||"3E",2B:p(i.8.6k)||x.M("4D-4o"),2H:p(i.8.2G)||"6h",2F:i.8.2F||4a,K:x.6g(),G:x.6c(),4s:i.8.4E||1L,1q:"1q",4H:i.8.4H||U,3F:i.8.3F||9(){},3w:i.8.3w||9(){},3z:i.8.3z||9(){}};b.B.4m&&(u.1q="#6m");D t=9(){H{6d:u.1q,4B:0+"C",6e:0+"C",2c:0+"C",24:0+"C",27:0+"C",2k:0+"C",2D:u.1q,2E:u.1q,2C:u.1q,2A:u.1q,4D:"3B",6f:"6l",1g:0+"C",1i:0+"C"}};D s=9(){D g=(u.1g/28)*25;D f=t();f.1i=u.1i+"C";H{1t:f,4b:{2c:0+"C",24:g+"C",27:g+"C",2k:0+"C",2D:i.8.2G,2E:i.8.2G,K:(u.K+(u.1g/2))+"C",G:(u.G-g)+"C"},1D:{2c:0+"C",24:0+"C",27:0+"C",2k:0+"C",2D:u.1q,2E:u.1q,K:u.K+"C",G:u.G+"C"}}};D r=9(){D g=(u.1g/28)*25;D f=t();f.1g=u.1g+"C";H{1t:f,4b:{2c:g+"C",24:0+"C",27:0+"C",2k:g+"C",2C:i.8.2G,2A:i.8.2G,K:u.K-g+"C",G:(u.G+(u.1i/2))+"C"},1D:{2c:0+"C",24:0+"C",27:0+"C",2k:0+"C",2C:u.1q,2A:u.1q,K:u.K+"C",G:u.G+"C"}}};z={3E:9(){D f=s();f.1t.2c=u.1g+"C";f.1t.2D=u.2B;f.1D.2k=u.1g+"C";f.1D.2E=u.2H;H f},3H:9(){D f=s();f.1t.2k=u.1g+"C";f.1t.2E=u.2B;f.1D.2c=u.1g+"C";f.1D.2D=u.2H;H f},4k:9(){D f=r();f.1t.24=u.1i+"C";f.1t.2C=u.2B;f.1D.27=u.1i+"C";f.1D.2A=u.2H;H f},3P:9(){D f=r();f.1t.27=u.1i+"C";f.1t.2A=u.2B;f.1D.24=u.1i+"C";f.1D.2C=u.2H;H f}};D A=9(){i.19.F(j).1n("46","-6n");k();B=z[u.2s]();b.B.4m&&(B.1t.4G="6a(4o="+u.1q+")");D f=0;i.2I=1;w.1T("").1n(B.1t);w.1n("46","R");w.1E(B.4b,i.8.11/2);w.1E(B.1D,i.8.11/2,"",9(){i.19.F(j).1n("46","R");w.5X();i.2I=0});i.3r=0};7(i.8.R||i.3r==1){A()}i.8.R&&(i.I=13(9(){i.1l()},i.8.11+3O));H U},1W:9(g,h,f){g.3U&&18(g.3U);g.3G=f;g.4x=(g.y==f)?1:0;7(!g.4x){7(g.yf){g.y-=2m.2N((g.y-f)/5)}g.3S.1z(g.y);g.3U=13(9(){g.1v.1W(g,h,f)},10)}n{H U}}},3V:9(f,h,g){7(f.8.o=="1o"){7(f.8.S=="G"){b(f.1a).1E({G:h+"C"},f.1C/g).1X(10)}n{7(f.8.S=="K"){b(f.1a).1E({K:h+"C"},f.1C/g).1X(10)}}}n{7(f.8.S=="G"){7(!f.2a){H U}f.2a=1;b(f.1a).1E({G:h+"C"},f.1C/g,f.1Y).1X(10);f.2a=0}n{7(f.8.S=="K"){7(!f.2a){H U}f.2a=1;b(f.1a).1E({K:h+"C"},f.1C/g,f.1Y).1X(10);f.2a=0}}}},3W:9(g,f){7(g.8.S=="G"){7(g.Z){g.1v.1W(g,g.W,f)}}n{7(g.8.S=="K"){}}},3g:9(h){7(h.8.o=="1I"){h.I&&18(h.I)}n{7(h.8.o=="1w"||h.8.o=="1o"&&!h.2p){D j=h.1G;D g=h.3G;D i=O(h.1a.1f[h.2b]?h.1a.1f[h.2b]:"3N");D f=(i==j)?1:0;7(!f){7(h.8.o=="1o"){h.3V(h,j,3);h.3W(h,g)}n{7(h.8.o=="1w"){h.3V(h,j,10);h.3W(h,g)}}h.8.2O=6.W;h.I&&18(h.I)}}n{7(h.8.o=="1x"){h.8.2O=6.W;h.I&&18(h.I)}n{7(h.8.o=="3o"){h.3r=1;h.I&&18(h.I);H U}n{h.8.2O=6.W;h.I&&18(h.I)}}}}},3X:9(f){7(f.8.o=="1x"){f.I&&18(f.I);f.8.R&&(f.I=13(9(){f.1l()},f.8.11))}n{7(f.8.o=="3o"){f.I&&18(f.I);f.8.R&&(f.I=13(9(){f.1l()},f.8.11))}n{f.I&&18(f.I);f.8.R&&(f.I=13(9(){f.1l()},f.8.11))}}},2L:9(f,g){7(6.8.o=="1o"||6.8.o=="1w"||6.8.o=="1r"){f.1G="-"+g*6.1N;6.2p=0}n{7(6.8.o=="1x"){7(!6.8.2J){f.17.1P(0.5);f.17.F(g).1P(1)}}}b.A.2e(6.1s,9(h){7(g==h){f.17.F(h).1V(f.8.1m);7(f.1k){f.1k.F(h).1V(f.8.1m)}}n{f.17.F(h).1h(f.8.1m);7(f.1k){f.1k.F(h).1h(f.8.1m)}}});f.W=g;f.2o(f,g,f.1G)},3h:9(g){g.I&&18(g.I);D h=g.W;7(g.Z){D f=g.2M*g.3k*g.1B;7(g.1B6.1s-1)&&(h=0);(h<0)&&(h=6.1s-1);7(6.8.o=="1o"||6.8.o=="1w"||6.8.o=="1r"){g.1G="-"+h*6.1N;6.2p=0}n{7(6.8.o=="1x"){7(!g.8.2J){g.17.1P(0.5);g.17.F(h).1P(1)}g.8.R&&(g.I=13(9(){g.1l()},g.8.11))}}b.A.2e(6.1s,9(j){7(h==j){g.17.F(j).1V(g.8.1m);7(g.1k){g.1k.F(j).1V(g.8.1m)}}n{g.17.F(j).1h(g.8.1m);7(g.1k){g.1k.F(j).1h(g.8.1m)}}});6.W=h;7(g.8.37&&g.8.3e){b(g.8.37).1T(6.W+1)}6.2o(6,h,g.1G)},38:9(h){D g=6,h,f;g.I&&18(g.I);(h>6.1s-1)&&(h=0);(h<0)&&(h=6.1s-1);7(g.Z){7(h==g.2z){7(g.1B==g.1F){g.1B=1;g.1F=g.3j;g.y=0;g.3h(g)}n{g.3h(g)}}n{7(h==0){7(g.8.o=="1I"){b(g.8.T).N(g.Z).F(0).1z(0)}n{7(g.8.o=="1o"||g.8.o=="1w"||g.8.o=="1x"){g.1v.1W(g,h,0)}n{b(g.8.T).N(g.Z).F(0).1z(0)}}}}}7(6.8.o=="1o"||6.8.o=="1w"||6.8.o=="1r"){g.1G="-"+h*6.1N;6.2p=0}n{7(6.8.o=="1x"){7(!g.8.2J){g.17.1P(0.5);g.17.F(h).1P(1)}g.8.R&&(g.I=13(9(){g.1l()},g.8.11))}}b.A.2e(6.1s,9(j){7(h==j){g.17.F(j).1V(g.8.1m);7(g.1k){g.1k.F(j).1V(g.8.1m)}}n{g.17.F(j).1h(g.8.1m);7(g.1k){g.1k.F(j).1h(g.8.1m)}}});6.W=h;7(g.8.37&&g.8.3e){b(g.8.37).1T(6.W+1)}6.2o(6,h,g.1G)},35:9(g){D f=6;6.I&&18(6.I);D f=6,g;f.1G="-"+g*6.1N;6.W=g;6.2o(6,g,f.1G)},58:9(){6.35(--6.W)},4g:9(){6.35(++6.W)},4j:9(){6.1y=1;6.38(--6.W)},1l:9(){6.1y=1;6.38(++6.W)},3d:9(){6.49&&18(6.49);6.1y=1;6.5g(6)},5g:9(f){f.49=13(9(){f.3d()},4a)}});b.17=9(f){H 3R d(f)};b.P.47=9(g,f){H 5h.2e(9(j){7(f){j=j.53(f)}D i=j.1T();j.5Q();j.1T(g);D h=j.V;4C(h.5j){h=h.5j}h.4c=i},6)};D a=59.55({4Q:9(f){6.8={T:"1r",2d:10,1p:10,2K:"2y",o:"1r",2P:".6b",3D:"4O",4W:1,3I:4,R:1,S:"G",16:U,11:4K};b.56(6.8,f);D h=6;D g=6.8;6.2d=g.2d;6.1p=-g.1p;6.16=g.16;6.3I=g.3I;6.S=g.S;6.11=g.11;6.3D=g.3D;6.1R=g.5Z;6.3f=g.5W;6.21=g.5V;6.4i=g.5R;h.2P=b(g.T).N(h.8.2P).F(0);7(g.S=="G"){h.2P.47("<1K 3A=\'3Z\' 1f=\'2r:2n;1i:4T\'><1K 3A=\'3Q\' 1f=\'4l:3C;4U:G\'>")}n{h.2P.47("<1K 3A=\'3Z\' 1f=\'2r:2n;1g:4T\'><1K 3A=\'3Q\' 1f=\'4l:3C;4U:G\'>")}h.1J=0;h.1d=0;h.1Q=0;h.31=0;h.2j=0;h.1U=0;h.E=b(g.T).N(".3Z").F(0);h.1e=U;h.2g=1L;h.15=1L;h.2q=1L;h.2v=1L;h.2x=1L;h.2i=h.E.N(".3Q").F(0);h.J=h.2i.53(0);h.3G=h.2i.N(h.3D).2Q;h.54=h.2i.3M(1Z);h.2i.2T(1).3K(h.54);7(b.B.5S){7(h.S=="G"){7(O(h.J.M("Q-23"))&&!O(h.J.M("Q-G"))){6.1A=h.J.V.1S+O(h.J.M("Q-23"))}7(O(h.J.M("Q-G"))&&!O(h.J.M("Q-23"))){6.1A=h.J.V.1S+O(h.J.M("Q-G"))}7(O(h.J.M("Q-23"))&&O(h.J.M("Q-G"))){6.1A=h.J.V.1S+O(h.J.M("Q-G"))+O(h.J.M("Q-23"))}7(!O(h.J.M("Q-23"))&&!O(h.J.M("Q-G"))){6.1A=h.J.V.1S}}n{7(O(h.J.M("Q-2h"))&&!O(h.J.M("Q-K"))){6.1A=h.J.V.29+O(h.J.M("Q-2h"))}7(O(h.J.M("Q-K"))&&!O(h.J.M("Q-2h"))){6.1A=h.J.V.29+O(h.J.M("Q-K"))}7(O(h.J.M("Q-2h"))&&O(h.J.M("Q-K"))){6.1A=h.J.V.29+O(h.J.M("Q-K"))+O(h.J.M("Q-2h"))}7(!O(h.J.M("Q-2h"))&&!O(h.J.M("Q-K"))){6.1A=h.J.V.29}}}n{h.S=="G"?6.1A=h.J.V.1S+O(h.J.M("Q-23"))+O(h.J.M("Q-G")):6.1A=h.J.V.29+O(h.J.M("Q-2h"))+O(h.J.M("Q-K"))}6.1c=6.1A*g.4W;6.2f=6.1A*(h.3G-h.3I);h.3l=h.2i.1i();h.3q=h.2i.1g();h.E.5b(9(){12(h.15)},9(){g.R&&h.1j(h)});7(g.20&&g.20.2U==2){h.14=b(g.T).N(g.20[0]).F(0);h.1b=b(g.T).N(g.20[1]).F(0);h.5T=h.14.4V();h.5U=h.1b.4V();h.2q=h.14.L("2V",9(){h.3n(h)});h.2v=h.14.L("2X",9(){6.1H(h.1R);12(h.15)});h.34=h.14.L("2R",9(){h.3i(h);12(h.15)});h.2x=h.14.L("2Z",9(){6.1H(h.1R);g.R&&h.1j(h)});h.36=h.1b.L("2X",9(){6.1H(h.21);12(h.15)});h.3u=h.1b.L("2V",9(){h.2S(h);h.31=1});h.3p=h.1b.L("2R",9(){h.33(h);12(h.15)});h.3s=h.1b.L("2Z",9(){6.1h(h.21);g.R&&h.1j(h)});!h.16&&h.14.1H(h.3f)}g.R&&h.1j(h)},4P:9(f){f.2q=f.14.L("2V",9(){f.3n(f)});f.2v=f.14.L("2X",9(){6.1H(f.1R);12(f.15)});f.34=f.14.L("2R",9(){f.3i(f);12(f.15)});f.2x=f.14.L("2Z",9(){6.1H(f.1R);8.R&&f.1j(f)})},4S:9(f){f.2S(f);f.31=1;6.1H(f.21);12(f.15);f.3p=f.1b.L("3y",9(){f.33(f);12(f.15)});6.1h(f.21);8.R&&f.1j(f)},3b:9(f){7(6.8.3T){2Y.4Z(f.2T().V.1M,"51")}n{2Y.43.1M=f.2T().V.1M}},45:9(g,f){g.52();g.48();6.I&&18(6.I);7(g.4N.2U>1){6.26=U;H}n{6.26=1Z}6.1U=g.2t[0].2u},3x:9(g,f){7(!6.26){H}7(6.1Ug.2t[0].2u){6.4S(6)}n{H 6.3b(f)}}},3m:9(f){f.14.1O("4d",f.2v);f.14.1O("39",f.2x);f.14.1O("5f",f.34);f.14.1O("5i",f.2q);f.14.1h(f.1R).1V(f.3f)},2l:9(f){f.1b.1O("5i",f.3u);f.1b.1O("5f",f.3p);f.1b.1O("4d",f.36);f.1b.1O("39",f.3s);f.1b.1h(f.21).1V(f.4i)},57:9(f){7(f.2q||f.2v||f.2x){f.3m(f);f.14.1h(f.3f)}f.2q=f.14.L("2V",9(){f.3n(f)});f.2v=f.14.L("2X",9(){6.1H(f.1R);12(f.15)});f.34=f.14.L("2R",9(){f.3i(f);12(f.15)});f.2x=f.14.L("2Z",9(){6.1h(f.1R);f.8.R&&f.1j(f)});f.1e=U},5a:9(f){7(f.3u||f.36||f.3s){f.2l(f);f.1b.1h(f.4i)}f.36=f.1b.L("2X",9(){6.1H(f.21);12(f.15)});f.3u=f.1b.L("2V",9(){f.2S(f)});f.3p=f.1b.L("2R",9(){f.33(f)});f.3s=f.1b.L("2Z",9(){6.1h(f.21);f.8.R&&f.1j(f)});f.1e=U},1j:9(f){12(f.15);7(f.2j&&!f.16){H}f.15=3L(9(){f.2S(f);f.33(f)},f.11)},2S:9(f){!f.16&&f.57(f);12(f.2g);7(f.1e){H}12(f.15);f.3Y(f);f.2g=3L(9(){f.3Y(f)},f.2d);f.1e=1Z},3n:9(f){!f.16&&f.5a(f);12(f.2g);7(f.1e){H}f.15&&12(f.15);f.2g=3L(9(){f.4J(f)},f.2d);f.1e=1Z;f.2j=0},3i:9(f){12(f.2g);7(f.S=="G"){7(f.E.Y()%f.1c-f.1J!=0){f.1d=f.1J-(f.E.Y()%f.1c);f.22(f)}n{f.1e=U}}n{7(f.E.X()%f.1c-f.1J!=0){f.1d=f.1J-(f.E.X()%f.1c);f.22(f)}n{f.1e=U}}f.8.R&&f.1j(f)},4J:9(f){7(f.S=="G"){7(-f.E.Y()<=0){7(!f.16){H}f.E.Y(f.E.Y()-f.3l)}7(-f.E.Y()<=f.1c){!f.16&&f.3m(f);!f.16&&f.8.R&&13(9(){f.1j(f)},f.11)}f.E.Y(f.E.Y()-f.1p)}n{7(-f.E.X()<=0){7(!f.16){H}f.E.X(f.E.X()-f.3q)}7(-f.E.X()<=f.1c){!f.16&&f.3m(f);!f.16&&f.8.R&&13(9(){f.1j(f)},f.11)}f.E.X(f.E.X()-f.1p)}},3Y:9(f){7(f.S=="G"){7(!f.16&&-f.E.Y()>f.2f){f.2l(f);f.1Q=1;H}7(f.E.Y()<=-f.3l){f.E.Y(f.E.Y()+f.3l)}f.E.Y(f.E.Y()+f.1p);7(!f.16&&-f.E.Y()>f.2f-f.1c){f.2l(f);f.1Q=1;f.2j=1}}n{7(!f.16&&-f.E.X()>f.2f){f.2l(f);f.1Q=1;H}7(f.E.X()<=-f.3q){f.E.X(f.E.X()+f.3q)}f.E.X(f.E.X()+f.1p);7(!f.16&&-f.E.X()>f.2f-f.1c){f.2l(f);f.1Q=1;f.2j=1}}},33:9(f){12(f.2g);7(f.S=="G"){7(!f.16&&f.1Q&&-f.E.Y()>f.2f-f.1c){13(9(){12(f.15)},f.11);f.1e=U;f.1Q=0;f.2j=1}7(f.E.Y()%f.1c-f.1J!=0){f.1d=0-f.1c-f.E.Y()%f.1c+f.1J;f.22(f)}n{f.1e=U}}n{7(!f.16&&f.1Q&&-f.E.X()>f.2f-f.1c){13(9(){12(f.15)},f.11);f.1e=U;f.1Q=0;f.2j=1}7(f.E.X()%f.1c-f.1J!=0){f.1d=0-f.1c-f.E.X()%f.1c+f.1J;f.22(f)}n{f.1e=U}}7(f.31){f.31=0;H}n{f.8.R&&f.1j(f)}},22:9(g){D f;7(g.1d==0){g.1e=U;H}7(g.1d>0){7(g.1d>-g.1p){g.1d+=g.1p;f=g.1p}n{f=-g.1d;g.1d=0}7(g.S=="G"){g.E.Y(g.E.Y()-f)}n{g.E.X(g.E.X()-f)}13(9(){g.22(g)},g.2d)}n{7(g.1d")+1).68(/\\w+=([\'"])[^>]*?\\1/g);7(k&&k.2U>0){D g=0;4C(k[g]){D f=k[g].69("=");7(f[1]=f[1].4q(/[\'"]/g,"")){h.66(f[0],f[1])}g++}}h.4c=j.65(j.3t(">")+1,j.62("<")).4q(/^\\s+|\\s+$/g,"");H h}9 c(f,g){7(f.63){f.1f.4G="64(1P="+g+")"}n{f.1f.1P=g/28}}})(5h);',62,396,'||||||this|if|opt|function||||||||||||||else|effect||||||||||||||px|var|scrObj|item|left|return|runId|Wrapchild|top|bind|css|find|parseInt||margin|auto|vertical|id|false|node|current|Top|Left|tabwr||interval|clearInterval|setTimeout|btleft|AutoPlayObj|loop|tabs|clearTimeout|cons|cont|btright|PageWidth|Comp|MoveLock|style|height|removeClass|width|AutoPlay|texts|next|curCn|setStyle|slide|Space|transparent|scroll|levels|start|conId|effects|fxslide|fade|th2|scrollLeft|elemLength|sn|fxspeed|second|go|tn|to|toggleClass|def|fill|div|null|href|ml|unbind|opacity|Stop|prevMouseImg|offsetWidth|html|fMoveX|addClass|tabscroll|delay|fxeffect|true|bns|nextMouseImg|CompScr|right|borderLeftWidth||oneFinger|borderRightWidth|100|offsetHeight|lock2|Tol|borderTopWidth|Speed|each|finalMovePos|MoveTimeObj|bottom|scrWrap|finish|borderBottomWidth|disbtright|Math|absolute|effectFn|end|scrEvent1|position|direction|changedTouches|pageX|btMouse1|display|ptMouse1|click|shownum|borderRightColor|bgColor|borderLeftColor|borderTopColor|borderBottomColor|speed|tocolor|toColor|flipscrolling|pageBt|eType|tabMoveFix|tabnum|ceil|mousecurrent|scWr|len|_mouseup|ISL_GoDown|parent|length|_mousedown|scrOption|_mouseover|window|_mouseout|textId|test|tabId|ISL_StopDown|mouseup1|scrTo|btMouse2|numId|moveTo|mouseout|event|linkTo|tabOption|tcTime|totalId|prevStopImg|timeManger1|tabnext|ISL_StopUp|temptn|tabitemlen|scrWrapWidth|disbtleft|ISL_GoUp|flip|mouseup2|scrWrapHeight|lock|ptMouse2|indexOf|scrEvent2|mbox|onEnd|tochEnd|touchend|onAnimation|class|none|hidden|scrElem|tb|onBefore|scrlen|bt|showNum|case|append|setInterval|clone|0px|500|rl|count|new|tabobj|ipNewPage|runssId|consFix|tabsFix|timeManger2|ISL_ScrDown|cols|conCn|_touchstart|th1|location|block|tochStart|marginLeft|childWrap|preventDefault|simuId|1000|first|innerHTML|mouseover|fxOption|runffId|scrnext|tabCn|nextStopImg|prev|lr|overflow|ie6|tochSE|color|slidecurrent|replace|scrcol|target|magic|img|linkBl|tabTn|end1|conTn|fadetime|visibility|fontSize|while|background|content|showcolumn|filter|dontChangeColor|substr|ISL_ScrUp|2000|textCn|extra|targetTouches|li|leftEvent|init|tevent|rightEvent|9999px|float|classNames|scrNum|showcolclass|scrcont|open||_blank|stopImmediatePropagation|child|scrWrap2|create|extend|enabbtleft|scrprev|KClass|enabbtright|hover|textTn|tabprev|fixMoveTo|mouseup|simulate|Koala|mousedown|firstChild|Failed|floor|cur|scrcolumn|total|visible|row1|9999|switch|_|focus|tempCn|default|ready|zIndex|toString|Error|throw|otherTn|scrstep|step|othertabTn|screffect|nd|th3|rgb|gestureend|gesturestart|Match|arguments|callee|nitem|empty|nextStopClass|ie|btnLeftImg|btnRightImg|nextMouseClass|prevStopClass|remove|font|prevMouseClass|document|createElement|lastIndexOf|filters|alpha|substring|setAttribute|exec|match|split|chroma|scwr|parentY|backgroundColor|lineHeight|borderStyle|parentX|red|size|12px|fromcolor|solid|123456|999px'.split('|'),0,{})) +/* |xGv00|74c854a77feac9496409ff15886f9bef */ \ No newline at end of file diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css index d58d951d0..3ec30ae51 100644 --- a/public/stylesheets/courses.css +++ b/public/stylesheets/courses.css @@ -1306,3 +1306,31 @@ a:hover.Blue-btn{ background:#3598db; color:#fff;} .box-con{ width:450px; margin:0 auto; text-align:center;} .box-con-a{ width:170px; margin:0 auto; margin-top:10px;} /*--------------------------------------*/ + +/*博客列表界面样式*/ +a{text-decoration:none} +.listbox{ width:730px; background-color:#fff; border:1px solid #ddd; padding:10px; } +/*.bloglistbox{ min-height:690px;}*/ +.list-h2{ font-size:16px; font-weight:bold; color:#000; border-bottom:2px solid #269ac9; padding-bottom:5px;} +.category{ padding:10px 0; border-bottom:1px solid #ddd;} +.category a,.category span{ float:left; margin-right:5px;} +.grayTxt{ color:#9093a6;} +.category a.sortTxt{ color:#9093a6;} +.category .sortTxt:hover{ color:#28be6c;} +a.sortupbtn{ background: url(../images/liststyle.png) 0 3px no-repeat; width:12px; height:17px; display:block; margin-right:10px; cursor:pointer;} +a.sortdownbtn{ background: url(../images/liststyle.png) 0 -12px no-repeat; width:12px; height:17px; display:block;margin-right:10px;cursor:pointer; } +.item_list{ display:block; width:5px; height:5px;-webkit-border-radius: 25px;border-radius:25px; background-color:#adadad; margin:10px 10px 0 0;} +.list-file a.list-title{ font-size:14px; font-weight: bold; color:#000;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; max-width:550px;} +a:hover.list-title{ color:#269ac9;} +.c_red{ font-weight:normal; font-size:12px;} +.list-file{ padding:10px 0; border-bottom:1px dashed #ddd;} +.list-file li{ line-height:1.9;} +.list-info span{ margin-left:5px;} +.pages a{ display:block; border:1px solid #d1d1d1; color:#000; float:left; width:30px; text-align:center; padding:3px 0; line-height:1.9; margin-right:5px; } +.pages a:hover{ background-color:#269ac9; color:#fff;} +a.pages-big{ width:50px;} +.pages .active{ background-color:#269ac9; color:#fff;} +.pages{width:330px; margin:20px auto 10px;} + +.red-cir-btn{ background:#e74c3c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} +.green-cir-btn{ background:#28be6c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css index 8128a4860..1e24c34f4 100644 --- a/public/stylesheets/new_user.css +++ b/public/stylesheets/new_user.css @@ -591,9 +591,12 @@ a.homepageImageNumber:hover {color:#269ac9;} .homepageLeftMenuCoursesLine:hover {background-color:#269ac9;} a.coursesLineGrey {padding-left:25px; padding-right:25px; color:#808080; display:block;} a.coursesLineGrey:hover {color:#ffffff;} +a.projectsLineGrey {padding-left:25px; padding-right:25px; color:#808080; display:block;} +a.projectsLineGrey:hover {color:#ffffff;} .homepageLeftMenuMore {height:18px;} .homepageLeftMenuMore:hover {background-color:#269ac9;} .homepageLeftMenuMoreIcon {background:url(../images/homepage_icon.png) -74px -240px no-repeat; display:block; height:18px;} +.homepageLeftMenuHideIcon {background:url(../images/homepage_icon.png) -74px -220px no-repeat;display:block; height:18px;} .homepageMenuSetting {display:inline-block; background:url(../images/homepage_icon2.png) -190px -365px no-repeat; width:15px; height:15px; margin-top: 16px; margin-right: 15px;} .homepageMenuSetting:hover {background:url(../images/homepage_icon2.png) -190px -407px no-repeat;} a.homepageMenuText {color:#484848; font-size:16px; margin-left:20px;} @@ -1500,3 +1503,47 @@ a:hover.Blue-btn{ background:#3598db; color:#fff;} .box-con h4{ font-size:14px; font-weight: bold; width:450px; text-align:center;} .box-con{ width:450px; margin:0 auto; text-align:center;} .box-con-a{ width:170px; margin:0 auto; margin-top:10px;} + +/*博客列表界面样式*/ +a{text-decoration:none} +.listbox{ width:730px; background-color:#fff; border:1px solid #ddd; padding:10px; } +/*.bloglistbox{ min-height:690px;}*/ +.list-h2{ font-size:16px; font-weight:bold; color:#000; border-bottom:2px solid #269ac9; padding-bottom:5px;} +.category{ padding:10px 0; border-bottom:1px solid #ddd;} +.category a,.category span{ float:left; margin-right:5px;} +.grayTxt{ color:#9093a6;} +.category a.sortTxt{ color:#9093a6;} +.category .sortTxt:hover{ color:#28be6c;} +a.sortupbtn{ background: url(../images/liststyle.png) 0 3px no-repeat; width:12px; height:17px; display:block; margin-right:10px; cursor:pointer;} +a.sortdownbtn{ background: url(../images/liststyle.png) 0 -12px no-repeat; width:12px; height:17px; display:block;margin-right:10px;cursor:pointer; } +.item_list{ display:block; width:5px; height:5px;-webkit-border-radius: 25px;border-radius:25px; background-color:#adadad; margin:10px 10px 0 0;} +.list-file a.list-title{ font-size:14px; font-weight: bold; color:#000;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; max-width:550px;} +a:hover.list-title{ color:#269ac9;} +.c_red{ font-weight:normal; font-size:12px;} +.list-file{ padding:10px 0; border-bottom:1px dashed #ddd;} +.list-file li{ line-height:1.9;} +.list-info span{ margin-left:5px;} +.pages a{ display:block; border:1px solid #d1d1d1; color:#000; float:left; width:30px; text-align:center; padding:3px 0; line-height:1.9; margin-right:5px; } +.pages a:hover{ background-color:#269ac9; color:#fff;} +a.pages-big{ width:50px;} +.pages .active{ background-color:#269ac9; color:#fff;} +.pages{width:330px; margin:20px auto 10px;} + +/*课程列表界面样式*/ +a.course-title{ font-size:14px; font-weight: bold; color:#000;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; width:590px;} +a:hover.course-title{ color:#269ac9;} + +/*通知列表界面样式*/ +a.messages-title{font-size:14px; font-weight: bold; color:#000;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; max-width:630px;} +a:hover.messages-title{ color:#269ac9;} +.massages-content{ width:710px; color:#424242; max-height:65px; overflow:hidden; margin:10px 0;margin-left:15px; line-height:1.9;} +.red-cir-btn{ background:#e74c3c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} +.green-cir-btn{ background:#28be6c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} + +/****翻页***/ +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 { 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;} diff --git a/public/stylesheets/org2.css b/public/stylesheets/org2.css new file mode 100644 index 000000000..7c0b9f84a --- /dev/null +++ b/public/stylesheets/org2.css @@ -0,0 +1,220 @@ +/* CSS Document */ +/* 样式重置 */ +body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{ margin:0; padding:0;} +body,table,input,textarea,select,button { font-family: "微软雅黑","宋体"; font-size:12px;line-height:1.9; background:#f2f2f2;} +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:#000;text-decoration:none;} +a:hover,a:active{color:#24366e;} + +.sn-fl {float:left;} +.sn-fr {float:right;} +.sn-cl {clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden} +.sn-container {width:100%; background-color:#fff;} +.sn-p-absolute {position:absolute;} +.sn-grey-opacity {background:rgba(230, 230, 230, 0.9)!important; filter:Alpha(opacity=90); background:#e6e6e6;} +.sn-border {border-top:1px solid #dfdfdf; border-bottom:1px solid #dfdfdf;} +/* 公共 */ +.cl {clear:both;} +.fl {float:left;} +.fr {float:right;} +.mb18 {margin-bottom:18px;} +.mt10 {margin-top:10px;} +.mr20 {margin-right:20px;} +.mr10 {margin-right:10px;} + +/*字体,链接颜色*/ +.sn-font-black {color:#000;} +.sn-font-grey {color:#b4bbbf;} +.sn-font-grey2 {color:#5e5e5e;} +.sn-font-grey3 {color:#999;} +a.sn-link-blue {color:#24366e;} +a.sn-link-white {color:#fff;} +a.sn-link-grey {color:#999;} +a.sn-link-grey:hover {color:#24366e;} +a.sn-link-grey2 {color:#888;} +a.sn-link-select {color:#809df9;} +/*字体大小*/ +.sn-f12 {font-size:12px;} +.sn-f14 {font-size:14px;} +.sn-f18 {font-size:18px;} +/*padding&margin&width*/ +.sn-mt-10 {margin-left:-10px;} +.sn-mt4 {margin-top:4px;} +.sn-mt10 {margin-top:10px;} +.sn-mt13 {margin-top:13px;} +.sn-mt15 {margin-top:15px;} +.sn-mt28 {margin-top:28px;} +.sn-mb40 {margin-bottom:40px;} +.sn-ml15 {margin-left:15px;} +.sn-ml55 {margin-left:55px;} +.sn-mr0 {margin-right:0px !important;} +.sn-mr50 {margin-right:50px;} +.sn-w229 {width:229px;} +/*头部样式*/ +.sn-header {} +.sn-row {width:100%;} +.sn-bg-grey {background-color:#f4f4f4;} +.sn-bg-grey2 {background-color:#a5a5a5;} +.sn-bg-white {background-color:#fff;} +.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-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;} +.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;} +.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-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;} +.sn-footer-link {padding:40px 0 30px 0;} +.sn-footer-link li {display:inline-block;} +.sn-contact {margin-bottom:30px;} +/* 首页内容 */ +.sn-content{ width:1200px; margin:0 auto;} +.sn-content-left{ width:820px; margin-right:12px; margin-bottom:100px;} +.sn-content-right{ width:368px; margin-bottom:74px; } +/* index-banner */ +.sn-index-banner{ width:820px; height:435px; margin-bottom:20px;} +.focus{ position:relative; width:820px; height:435px; background-color: #000; float: left;} +.focus img{ width:820px; height:435px;} +.focus .shadow .title{width: 260px; height: 65px;padding-left: 30px;padding-top: 20px;} +.focus .shadow .title a{ text-decoration:none; color:#fff; font-size:14px; font-weight:bolder; overflow:hidden; } +.focus .btn{ position:absolute; bottom:34px; left:510px; overflow:hidden; zoom:1;} +.focus .btn a{position:relative; display:inline; width:13px; height:13px; border-radius:7px; margin:0 5px;color:#B0B0B0; text-decoration:none; text-align:center; outline:0; float:left; background:#D9D9D9; } +.focus .btn a:hover,.focus .btn a.current{ cursor:pointer;background:#fc114a;} +.focus .fPic{ position:absolute; left:0px; top:0px; } +.focus .D1fBt{ overflow:hidden; zoom:1; height:16px; z-index:10; } +.focus .shadow{ width:100%; position:absolute; bottom:0; left:0px; z-index:10; height:80px; line-height: 80px; background:rgba(0,0,0,0.6); + filter:progid:DXImageTransform.Microsoft.gradient( GradientType = 0,startColorstr = '#80000000',endColorstr = '#80000000')\9; display:block; text-align:left; } +.focus .shadow a{ text-decoration:none; color:#fff; font-size:20px; overflow:hidden; margin-left:10px; } +.focus .fcon{ position:relative; width:100%; float:left; display:none; background:#000 } +.focus .fcon-default{ position:relative; width:100%; float:left; background:#fff } +.focus .fcon img{ display:block; } +.focus .fbg{bottom:25px; right:40px; position:absolute; height:21px; text-align:center; z-index: 200; } +.focus .fbg div{margin:4px auto 0;overflow:hidden;zoom:1;height:14px} +.focus .D1fBt a{position:relative; display:inline; width:12px; height:12px; border-radius:7px; margin:0 5px;color:#B0B0B0; text-decoration:none; text-align:center; outline:0; float:left; background:#D9D9D9; } +.focus .D1fBt .current,.focus .D1fBt a:hover{background:#fc114a;} +.focus .D1fBt img{display:none} +.focus .D1fBt i{display:none; font-style:normal; } +.focus .prev,.focus .next{position:absolute;width:40px;height:74px;background: url(../images/banner/focus_btn.png) no-repeat;} +.focus .prev{top: 50%;margin-top: -37px; left: 0;background-position:0 -74px; cursor:pointer; } +.focus .next{top: 50%;margin-top: -37px; right: 0; background-position:-40px -74px; cursor:pointer;} +.focus .prev:hover{ background-position:0 0; } +.focus .next:hover{ background-position:-40px 0;} +/* index-news */ +.sn-index-leftbox{ width:820px; background:#fff; margin-bottom:20px;} +.h2-title{ padding:5px 0 3px; border-bottom:1px solid #ebebeb; font-size:18px; color:#777; font-weight:normal; padding-left:17px;} +.h2-title a.more{ font-size:12px; color:#777; float:right; margin-right:17px; line-height:2.8;} +.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-bigimg{ width:380px; height:165px;} +.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;} +/* index-resources */ +.sn-index-resourcescon{ padding-top:12px;background:#f2f2f2;} +.sn-index-resourcesbox{ padding:10px; background:#f2f2f2; width:185px; float:left;} +.sn-index-resourcesbox:hover{ background:#fff;} +.sn-index-resourcesbox a.resources-title{ font-size:18px; font-weight:normal; line-height:2.0;width:185px; display:block; border-bottom:1px solid #ccc; margin-bottom:5px;} +.sn-hidden {overflow:hidden; white-space:nowrap; text-overflow:ellipsis;} +.sn-index-resourcesbox a.resources-tag{ font-size:14px; color:#999; margin-right:5px; line-height:1.5;} +.resources-tagbox {width:185px; height: 46px; overflow:hidden;} +.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 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;} +.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;} +/* index-active */ +.sn-index-activebox{ 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;} +/* index-wx*/ +.sn-index-wxbox{margin-bottom:20px; background:#fff;} +.sn-index-wximg{ margin:15px; margin-right:5px;} +.sn-index-txt{ font-size:16px; line-height:2.0; margin-top:30px;} +.sn-index-smallbanner img{ display:block; width:369px; height:169px; } + +/* 内页新闻列表 */ +.sn-inner-body{ width:100%; background-color:#fff;} +.sn-innner-content{ width:1200px; margin:0 auto;} +.sn-inner-newsh2{ font-size:20px; font-weight:normal; padding-bottom:5px; border-bottom:1px dashed #eee;} +.sn-circle{ margin:18px 5px 0 5px ;border:1px solid #24366e; width:5px; height:5px; -webkit-border-radius:50px; -moz-border-radius:50px; -o-border-radius:50px; border-radius:50px; } +.sn-inner-newslist ul li{ line-height:42px; font-size:15px; border-bottom:1px solid #eee;} +.sn-inner-newslist a{font-size:15px; color:#888;} +.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;} +.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;} +a.sn-newslist-zan{ display:block; background:url(../images/zan.gif) 0 15px no-repeat; width:54px; height:28px; padding-left:12px; color:#999; } +a:hover.sn-newslist-zan{ background:url(../images/zan.gif) 0 -21px no-repeat; } +/* 留言 */ +.sn-replybox{ margin-bottom:100px;} +.sn-reply-h2{ font-size:18px; font-weight:normal; color:#24366e; margin-bottom:6px;} +.sn-reply-form{ width:1200px;height:180px; border:1px solid #e8e8e8; -webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px; background:#fff; margin-bottom:20px; } +.sn-reply-text{ width:1200px; height:130px; background:#fff; border:none; resize:none;} +.sn-reply-btnbox{border-top:1px solid #e8e8e8; height:48px;} +a.submit-btn{ display:block; color:#fff; text-align:center; font-size:14px; line-height:27px; width:79px; height:27px; -webkit-border-radius:3px; -moz-border-radius:3px; -o-border-radius:3px; border-radius:3px; background:#24366e; margin:8px 0 0 10px;} +a:hover.submit-btn{ color:#16275c; color:#fff;} +.sn-comment-h2{ color:#999; font-size:16px; font-weight:normal; border-bottom:1px solid #e8e8e8; padding-bottom:5px;} +.sn-reply-userpic{ height:65px; margin-right:15px;} +.sn-reply-userpic img{ width:40px; height:40px;-webkit-border-radius:50px; -moz-border-radius:50px; -o-border-radius:50px; border-radius:50px;} +a.sn-reply-zan{ display:block; background:url(../images/zan.gif) 0 4px no-repeat; width:54px; height:16px; padding-left:12px; color:#999; } +a:hover.sn-reply-zan{ background:url(../images/zan.gif) 0 -32px no-repeat; } +.sn-comment-listbox{ padding:23px 0; width:1200px;border-bottom:1px solid #e8e8e8;} +a.sn-reply-username { color:#24366e; margin-right:15px; } +.sn-reply-usertxt{ width:1145px; font-size:14px; } +.sn-reply-more{ width:1200px; height:25px; background:#ddd; text-align:center; line-height:25px;} + +/*用户图像*/ +.topnav_login_list{ border:1px solid #eaeaea; background:#fff; padding-left:10px; padding-bottom:10px; padding-top:8px; width:60px; left:-7px; position:absolute; z-index:9999; line-height:2; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); margin-top: 1px;} +.topnav_login_list a{color:#269ac9;} +.topnav_login_list li{ } +.homepageProfileMenuIcon {background:url(../images/nav_icon.png) 30px -155px no-repeat; width:65px; height:54px; position:relative; display:inline-block; line-height:0;} +.homepageLeft {width:240px; float:left; margin-right:10px; margin-bottom:10px;} +.none {display: none;} +.user-img,.user-img img{ margin-right:10px; -moz-border-radius: 50px; -webkit-border-radius: 50px;border-radius: 50px; display:block; width:40px; height:40px;} +.ml60{ margin-left:60px;} +.user-img img{border:2px solid #e6473b; } +.user-img img:hover{border:2px solid #29156f;} + + + + + + + + + + + + diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css index ee6050a8f..ebedb1c30 100644 --- a/public/stylesheets/project.css +++ b/public/stylesheets/project.css @@ -1204,3 +1204,30 @@ a.chooseActive {background-color:#269ac9; color:#ffffff;} .subjectType {width:70px; text-align:center;} .subjectCount {width:65px; text-align:center;} .button-rep { color: #888;display: inline-block;background: #eee;padding: 2px 5px;} + +/*博客列表界面样式*/ +a{text-decoration:none} +.listbox{ width:730px; background-color:#fff; border:1px solid #ddd; padding:10px; } +/*.bloglistbox{ min-height:690px;}*/ +.list-h2{ font-size:16px; font-weight:bold; color:#000; border-bottom:2px solid #269ac9; padding-bottom:5px;} +.category{ padding:10px 0; border-bottom:1px solid #ddd;} +.category a,.category span{ float:left; margin-right:5px;} +.grayTxt{ color:#9093a6;} +.category a.sortTxt{ color:#9093a6;} +.category .sortTxt:hover{ color:#28be6c;} +a.sortupbtn{ background: url(../images/liststyle.png) 0 3px no-repeat; width:12px; height:17px; display:block; margin-right:10px; cursor:pointer;} +a.sortdownbtn{ background: url(../images/liststyle.png) 0 -12px no-repeat; width:12px; height:17px; display:block;margin-right:10px;cursor:pointer; } +.item_list{ display:block; width:5px; height:5px;-webkit-border-radius: 25px;border-radius:25px; background-color:#adadad; margin:10px 10px 0 0;} +.list-file a.list-title{ font-size:14px; font-weight: bold; color:#000;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; max-width:550px;} +a:hover.list-title{ color:#269ac9;} +.c_red{ font-weight:normal; font-size:12px;} +.list-file{ padding:10px 0; border-bottom:1px dashed #ddd;} +.list-file li{ line-height:1.9;} +.list-info span{ margin-left:5px;} +.pages a{ display:block; border:1px solid #d1d1d1; color:#000; float:left; width:30px; text-align:center; padding:3px 0; line-height:1.9; margin-right:5px; } +.pages a:hover{ background-color:#269ac9; color:#fff;} +a.pages-big{ width:50px;} +.pages .active{ background-color:#269ac9; color:#fff;} +.pages{width:330px; margin:20px auto 10px;} + +.red-cir-btn{ background:#e74c3c; padding:1px 5px; -moz-border-radius:2px; -webkit-border-radius:2px; border-radius:2px; color:#fff; font-weight:normal;font-size:12px;} \ No newline at end of file