Conflicts: app/views/courses/_course_activity.html.erb app/views/layouts/_user_courses.html.erb app/views/users/_course_homework.html.erbyuanke_cache
						commit
						e59547adc4
					
				| @ -0,0 +1,3 @@ | |||||||
|  | # Place all the behaviors and hooks related to the matching controller here. | ||||||
|  | # All this logic will automatically be available in application.js. | ||||||
|  | # You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/ | ||||||
| @ -0,0 +1,3 @@ | |||||||
|  | // Place all the styles related to the SyllabusMember controller here. | ||||||
|  | // They will automatically be included in application.css. | ||||||
|  | // You can use Sass (SCSS) here: http://sass-lang.com/ | ||||||
| @ -0,0 +1,64 @@ | |||||||
|  | class SyllabusMemberController < ApplicationController | ||||||
|  | 
 | ||||||
|  |   def syl_member_autocomplete | ||||||
|  |     @syllabus = Syllabus.find(params[:syllabus]) | ||||||
|  |     @flag = params[:flag] || false | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.js | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def create | ||||||
|  |     @syllabus = Syllabus.find(params[:syllabus]) | ||||||
|  |     if params[:membership].nil? | ||||||
|  |       @fail_hint = l(:label_blank_user_lists_for_org) | ||||||
|  |     else | ||||||
|  |       member_ids = params[:membership][:user_ids] | ||||||
|  |       last_rank = @syllabus.syllabus_members.order("rank asc").last.rank | ||||||
|  |       user_ids = @syllabus.syllabus_members.map{|sy| sy.user_id} | ||||||
|  |       member_ids.each_with_index do |user_id, i| | ||||||
|  |         unless user_ids.include?(user_id.to_i) | ||||||
|  |           member =  SyllabusMember.create(:user_id => user_id, :rank => last_rank + 1 + i) | ||||||
|  |           @syllabus.syllabus_members << member | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |       @members = @syllabus.syllabus_members.order("rank asc") | ||||||
|  |     end | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.js | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def destroy | ||||||
|  |     member = SyllabusMember.find(params[:id]) | ||||||
|  |     @syllabus = member.syllabus | ||||||
|  |     after_syl_members = @syllabus.syllabus_members.where("rank > #{member.rank}") | ||||||
|  |     after_syl_members.update_all("rank = rank - 1") | ||||||
|  |     member.destroy | ||||||
|  |     @members = @syllabus.syllabus_members.order("rank asc") | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.js | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   def update_rank | ||||||
|  |     member = SyllabusMember.find(params[:id]) | ||||||
|  |     @syllabus = member.syllabus | ||||||
|  |     members = @syllabus.syllabus_members | ||||||
|  |     if params[:opr] == 'up' && member.rank > 2 | ||||||
|  |       before_mem = members.where("rank = #{member.rank - 1}").first | ||||||
|  |       if before_mem && member.update_attribute('rank', member.rank - 1) | ||||||
|  |         before_mem.update_attribute('rank', before_mem.rank + 1) | ||||||
|  |       end | ||||||
|  |     elsif params[:opr] == 'down' && member.rank > 1 && member.rank < members.count | ||||||
|  |       after_mem = members.where("rank = #{member.rank + 1}").first | ||||||
|  |       if after_mem && member.update_attribute('rank', member.rank + 1) | ||||||
|  |         after_mem.update_attribute('rank', after_mem.rank - 1) | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  |     @members = @syllabus.syllabus_members.order("rank asc") | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.js | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
| @ -0,0 +1,17 @@ | |||||||
|  | module SyllabusMemberHelper | ||||||
|  |   include ApplicationHelper | ||||||
|  | 
 | ||||||
|  |   def find_user_not_in_current_syllabus_by_name syllabus | ||||||
|  |     if params[:q] && params[:q].lstrip.rstrip != "" | ||||||
|  |       scope = Principal.active.sorted.not_member_of_syllabus(syllabus).like(params[:q]) | ||||||
|  |     else | ||||||
|  |       scope = [] | ||||||
|  |     end | ||||||
|  |     principals = paginateHelper scope,10 | ||||||
|  |     s = content_tag('ul', project_member_check_box_tags_ex('membership[user_ids][]', principals), :id => 'principals', :class => 'sy_new_tchlist') | ||||||
|  |     links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true){|text, parameters, options| | ||||||
|  |       link_to text,  host_with_protocol + "/syllabus_member/syl_member_autocomplete?" + parameters.merge(:q => params[:q],:flag => true,:syllabus=> syllabus, :format => 'js').to_query, :remote => true | ||||||
|  |     } | ||||||
|  |     s + content_tag('ul', links,:class => 'wlist',:style=>'float:left !important', :id => "syllabus_member_pagination_links" ) | ||||||
|  |   end | ||||||
|  | end | ||||||
| @ -0,0 +1,5 @@ | |||||||
|  | class SyllabusMember < ActiveRecord::Base | ||||||
|  |   belongs_to :syllabus | ||||||
|  |   belongs_to :user | ||||||
|  |   attr_accessible :rank, :user_id, :syllabus_id | ||||||
|  | end | ||||||
| @ -1,5 +1,5 @@ | |||||||
| <% if @page == 0 %> | <% if @page == 0 %> | ||||||
|     $("#user_homework_list").replaceWith("<%= escape_javascript( render :partial =>  'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :is_in_course => 1,:course_id => @course.id,:search=>@search} )%>"); |     $("#user_homework_list").replaceWith("<%= escape_javascript( render :partial =>  'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :course_id => @course.id,:search=>@search} )%>"); | ||||||
| <% else %> | <% else %> | ||||||
|     $("#user_show_more_homework").replaceWith("<%= escape_javascript( render :partial =>  'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :is_in_course => 1,:course_id => @course.id,:search=>@search} )%>"); |     $("#user_show_more_homework").replaceWith("<%= escape_javascript( render :partial =>  'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :course_id => @course.id,:search=>@search} )%>"); | ||||||
| <% end %> | <% end %> | ||||||
| @ -1,321 +1,323 @@ | |||||||
| <div class="project_r_h"> | <div class="project_r_h" style="width:730px;"> | ||||||
|   <h2 class="project_h2"><% @gantt.view = self %> |   <h2 class="project_h2"><% @gantt.view = self %> | ||||||
|     <%= @query.new_record? ? l(:label_gantt) : h(@query.name) %></h2> |     <%= @query.new_record? ? l(:label_gantt) : h(@query.name) %></h2> | ||||||
| </div> | </div> | ||||||
| 
 | 
 | ||||||
| <%= form_tag({:controller => 'gantts', :action => 'show', | <%= form_tag({:controller => 'gantts', :action => 'show', | ||||||
|              :project_id => @project, :month => params[:month], |              :project_id => @project, :month => params[:month], | ||||||
|              :year => params[:year], :months => params[:months]}, |              :year => params[:year], :months => params[:months]}, | ||||||
|              :method => :get, :id => 'query_form') do %> |              :method => :get, :id => 'query_form') do %> | ||||||
| <%= hidden_field_tag 'set_filter', '1' %> | <%= hidden_field_tag 'set_filter', '1' %> | ||||||
| <fieldset id="filters" class="collapsible <%= @query.new_record? ? "" : "collapsed" %>"> | <!--<fieldset id="filters" class="collapsible <%#= @query.new_record? ? "" : "collapsed" %>">--> | ||||||
|   <legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend> |   <!--<legend onclick="toggleFieldset(this);"><%#= l(:label_filter_plural) %></legend>--> | ||||||
|   <div style="<%= @query.new_record? ? "" : "display: none;" %>"> |   <!--<div style="<%#= @query.new_record? ? "" : "display: none;" %>">--> | ||||||
|     <%= render :partial => 'queries/filters', :locals => {:query => @query} %> |     <!--<%#= render :partial => 'queries/filters', :locals => {:query => @query} %>--> | ||||||
|   </div> |   <!--</div>--> | ||||||
| </fieldset> | <!--</fieldset>--> | ||||||
| <fieldset class="collapsible collapsed"> | <fieldset class="collapsible collapsed"> | ||||||
|   <legend onclick="toggleFieldset(this);"><%= l(:label_options) %></legend> |   <legend onclick="toggleFieldset(this);"><%= l(:label_options) %></legend> | ||||||
|   <div style="display: none;"> |   <div style="display: none;"> | ||||||
|     <table> |     <table> | ||||||
|       <tr> |       <tr> | ||||||
|         <td> |         <td> | ||||||
|           <fieldset> |           <fieldset> | ||||||
|             <legend><%= l(:label_related_issues) %></legend> |             <legend><%= l(:label_related_issues) %></legend> | ||||||
|             <label> |             <label style="padding:10px;"> | ||||||
|               <%= check_box_tag "draw_rels", params["draw_rels"], params[:set_filter].blank? || params[:draw_rels] %> |               <%= check_box_tag "draw_rels", params["draw_rels"], params[:set_filter].blank? || params[:draw_rels] %> | ||||||
|               <% rels = [IssueRelation::TYPE_BLOCKS, IssueRelation::TYPE_PRECEDES] %> |               <% rels = [IssueRelation::TYPE_BLOCKS, IssueRelation::TYPE_PRECEDES] %> | ||||||
|               <% rels.each do |rel| %> |               <% rels.each do |rel| %> | ||||||
|                 <% color = Redmine::Helpers::Gantt::DRAW_TYPES[rel][:color] %> |                 <% color = Redmine::Helpers::Gantt::DRAW_TYPES[rel][:color] %> | ||||||
|                 <%= content_tag(:span, '   '.html_safe, |                 <%= content_tag(:span, '   '.html_safe, | ||||||
|                                 :style => "background-color: #{color}") %> |                                 :style => "background-color: #{color}") %> | ||||||
|                 <%= l(IssueRelation::TYPES[rel][:name]) %> |                 <%= l(IssueRelation::TYPES[rel][:name]) %> | ||||||
|               <% end %> |               <% end %> | ||||||
|             </label> |             </label> | ||||||
|           </fieldset> |           </fieldset> | ||||||
|         </td> |         </td> | ||||||
|         <td> |         <td> | ||||||
|           <fieldset> |           <fieldset> | ||||||
|             <legend><%= l(:label_gantt_progress_line) %></legend> |             <legend><%= l(:label_gantt_progress_line) %></legend> | ||||||
|             <label> |             <label style="padding:10px;"> | ||||||
|               <%= check_box_tag "draw_progress_line", params[:draw_progress_line], params[:draw_progress_line] %> |               <%= check_box_tag "draw_progress_line", params[:draw_progress_line], params[:draw_progress_line] %> | ||||||
|               <%= l(:label_display) %> |               <%= l(:label_display) %> | ||||||
|             </label> |             </label> | ||||||
|           </fieldset> |           </fieldset> | ||||||
|         </td> |         </td> | ||||||
|       </tr> |       </tr> | ||||||
|     </table> |     </table> | ||||||
|   </div> |   </div> | ||||||
| </fieldset> | </fieldset> | ||||||
| 
 | 
 | ||||||
| <p class="contextual"> | <!--<p class="contextual">--> | ||||||
|   <%= gantt_zoom_link(@gantt, :in) %> |   <!--<%#= gantt_zoom_link(@gantt, :in) %>--> | ||||||
|   <%= gantt_zoom_link(@gantt, :out) %> |   <!--<%#= gantt_zoom_link(@gantt, :out) %>--> | ||||||
| </p> | <!--</p>--> | ||||||
| 
 | 
 | ||||||
| <p class="buttons"> | <p class="buttons"> | ||||||
| <%= text_field_tag 'months', @gantt.months, :size => 2 %> | <%= text_field_tag 'months', @gantt.months, :size => 2 %> | ||||||
| <%= l(:label_months_from) %> | <%= l(:label_months_from) %> | ||||||
| <%= select_month(@gantt.month_from, :prefix => "month", :discard_type => true) %> | <%= select_month(@gantt.month_from, :prefix => "month", :discard_type => true) %> | ||||||
| <%= select_year(@gantt.year_from, :prefix => "year", :discard_type => true) %> | <%= select_year(@gantt.year_from, :prefix => "year", :discard_type => true) %> | ||||||
| <%= hidden_field_tag 'zoom', @gantt.zoom %> | <%= hidden_field_tag 'zoom', @gantt.zoom %> | ||||||
| 
 | 
 | ||||||
| <%= link_to_function l(:button_apply), '$("#query_form").submit()', | <%= link_to_function l(:button_apply), '$("#query_form").submit()', | ||||||
|                      :class => 'icon icon-checked' %> |                      :class => 'icon icon-checked' %> | ||||||
| <%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 }, | <%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 }, | ||||||
|             :class => 'icon icon-reload' %> |             :class => 'icon icon-reload' %> | ||||||
| </p> | </p> | ||||||
| <% end %> | <% end %> | ||||||
| 
 | 
 | ||||||
| <%= error_messages_for 'query' %> | <%= error_messages_for 'query' %> | ||||||
| <% if @query.valid? %> | <% if @query.valid? %> | ||||||
| <% | <% | ||||||
|   zoom = 1 |   zoom = 1 | ||||||
|   @gantt.zoom.times { zoom = zoom * 2 } |   @gantt.zoom.times { zoom = zoom * 2 } | ||||||
| 
 | 
 | ||||||
|   subject_width = 330 |   subject_width = 330 | ||||||
|   header_height = 18 |   header_height = 18 | ||||||
| 
 | 
 | ||||||
|   headers_height = header_height |   headers_height = header_height | ||||||
|   show_weeks = false |   show_weeks = false | ||||||
|   show_days  = false |   show_days  = false | ||||||
| 
 | 
 | ||||||
|   if @gantt.zoom > 1 |   if @gantt.zoom > 1 | ||||||
|     show_weeks = true |     show_weeks = true | ||||||
|     headers_height = 2 * header_height |     headers_height = 2 * header_height | ||||||
|     if @gantt.zoom > 2 |     if @gantt.zoom > 2 | ||||||
|         show_days = true |         show_days = true | ||||||
|         headers_height = 3 * header_height |         headers_height = 3 * header_height | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   # Width of the entire chart |   # Width of the entire chart | ||||||
|   g_width = ((@gantt.date_to - @gantt.date_from + 1) * zoom).to_i |   g_width = ((@gantt.date_to - @gantt.date_from + 1) * zoom).to_i | ||||||
|   @gantt.render(:top => headers_height + 8, |   @gantt.render(:top => headers_height + 8, | ||||||
|                 :zoom => zoom, |                 :zoom => zoom, | ||||||
|                 :g_width => g_width, |                 :g_width => g_width, | ||||||
|                 :subject_width => subject_width) |                 :subject_width => subject_width) | ||||||
|   g_height = [(20 * (@gantt.number_of_rows + 6)) + 150, 206].max |   g_height = [(20 * (@gantt.number_of_rows + 6)) + 150, 206].max | ||||||
|   t_height = g_height + headers_height |   t_height = g_height + headers_height | ||||||
| %> | %> | ||||||
| 
 | 
 | ||||||
| <% if @gantt.truncated %> | <%# if @gantt.truncated %> | ||||||
|   <p class="warning"><%= l(:notice_gantt_chart_truncated, :max => @gantt.max_rows) %></p> |   <!--<p class="warning"><%#= l(:notice_gantt_chart_truncated, :max => @gantt.max_rows) %></p>--> | ||||||
| <% end %> | <%# end %> | ||||||
| 
 | 
 | ||||||
| <table style="width:100%; border:0; border-collapse: collapse;"> | <table style="width:100%; border:0; border-collapse: collapse;"> | ||||||
| <tr> | <tr> | ||||||
| <td style="width:<%= subject_width %>px; padding:0px;"> | <td style="width:<%= subject_width %>px; padding:0px;"> | ||||||
|   <% |   <% | ||||||
|     style  = "" |     style  = "" | ||||||
|     style += "position:relative;" |     style += "position:relative;" | ||||||
|     style += "height: #{t_height + 24}px;" |     style += "height: #{t_height + 24}px;" | ||||||
|     style += "width: #{subject_width + 1}px;" |     style += "width: #{subject_width + 1}px;" | ||||||
|   %> |   %> | ||||||
|   <%= content_tag(:div, :style => style) do %> |   <%= content_tag(:div, :style => style) do %> | ||||||
|     <% |     <% | ||||||
|       style  = "" |       style  = "" | ||||||
|       style += "right:-2px;" |       style += "right:-2px;" | ||||||
|       style += "width: #{subject_width}px;" |       style += "width: #{subject_width}px;" | ||||||
|       style += "height: #{headers_height}px;" |       style += "height: #{headers_height}px;" | ||||||
|       style += 'background: #eee;' |       style += 'background: #eee;' | ||||||
|     %> |       style += 'z-index: 1;' | ||||||
|     <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %> |     %> | ||||||
|     <% |     <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %> | ||||||
|       style  = "" |     <% | ||||||
|       style += "right:-2px;" |       style  = "" | ||||||
|       style += "width: #{subject_width}px;" |       style += "right:-2px;" | ||||||
|       style += "height: #{t_height}px;" |       style += "width: #{subject_width}px;" | ||||||
|       style += 'border-left: 1px solid #c0c0c0;' |       style += "height: #{t_height}px;" | ||||||
|       style += 'overflow: hidden;' |       style += 'border-left: 1px solid #c0c0c0;' | ||||||
|     %> |       style += 'overflow: hidden;' | ||||||
|     <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %> |     %> | ||||||
|     <%= content_tag(:div, :class => "gantt_subjects") do %> |     <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %> | ||||||
|       <%= @gantt.subjects.html_safe %> |     <%= content_tag(:div, :class => "gantt_subjects") do %> | ||||||
|     <% end %> |       <%= @gantt.subjects.html_safe %> | ||||||
|   <% end %> |     <% end %> | ||||||
| </td> |   <% end %> | ||||||
| 
 | </td> | ||||||
| <td> | 
 | ||||||
| <div style="position:relative;height:<%= t_height + 24 %>px;overflow:auto;" id="gantt_area"> | <td> | ||||||
| <% | <div style="position:relative;height:<%= t_height + 24 %>px;overflow:auto;" id="gantt_area"> | ||||||
|   style  = "" | <% | ||||||
|   style += "width: #{g_width - 1}px;" |   style  = "" | ||||||
|   style += "height: #{headers_height}px;" |   style += "width: #{g_width - 1}px;" | ||||||
|   style += 'background: #eee;' |   style += "height: #{headers_height}px;" | ||||||
| %> |   style += 'background: #eee;' | ||||||
| <%= content_tag(:div, ' '.html_safe, :style => style, :class => "gantt_hdr") %> | %> | ||||||
| 
 | <%= content_tag(:div, ' '.html_safe, :style => style, :class => "gantt_hdr") %> | ||||||
| <% ###### Months headers ###### %> | 
 | ||||||
| <% | <% ###### Months headers ###### %> | ||||||
|   month_f = @gantt.date_from | <% | ||||||
|   left = 0 |   month_f = @gantt.date_from | ||||||
|   height = (show_weeks ? header_height : header_height + g_height) |   left = 0 | ||||||
| %> |   height = (show_weeks ? header_height : header_height + g_height) | ||||||
| <% @gantt.months.times do %> | %> | ||||||
|   <% | <% @gantt.months.times do %> | ||||||
|     width = (((month_f >> 1) - month_f) * zoom - 1).to_i |   <% | ||||||
|     style  = "" |     width = (((month_f >> 1) - month_f) * zoom - 1).to_i | ||||||
|     style += "left: #{left}px;" |     style  = "" | ||||||
|     style += "width: #{width}px;" |     style += "left: #{left}px;" | ||||||
|     style += "height: #{height}px;" |     style += "width: #{width}px;" | ||||||
|   %> |     style += "height: #{height}px;" | ||||||
|   <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %> |   %> | ||||||
|     <%= link_to h("#{month_f.year}-#{month_f.month}"), |   <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %> | ||||||
|                 @gantt.params.merge(:year => month_f.year, :month => month_f.month), |     <%= link_to h("#{month_f.year}-#{month_f.month}"), | ||||||
|                 :title => "#{month_name(month_f.month)} #{month_f.year}" %> |                 @gantt.params.merge(:year => month_f.year, :month => month_f.month), | ||||||
|   <% end %> |                 :title => "#{month_name(month_f.month)} #{month_f.year}" %> | ||||||
|   <% |   <% end %> | ||||||
|     left = left + width + 1 |   <% | ||||||
|     month_f = month_f >> 1 |     left = left + width + 1 | ||||||
|   %> |     month_f = month_f >> 1 | ||||||
| <% end %> |   %> | ||||||
| 
 | <% end %> | ||||||
| <% ###### Weeks headers ###### %> | 
 | ||||||
| <% if show_weeks %> | <% ###### Weeks headers ###### %> | ||||||
|   <% | <% if show_weeks %> | ||||||
|     left = 0 |   <% | ||||||
|     height = (show_days ? header_height - 1 : header_height - 1 + g_height) |     left = 0 | ||||||
|   %> |     height = (show_days ? header_height - 1 : header_height - 1 + g_height) | ||||||
|   <% if @gantt.date_from.cwday == 1 %> |   %> | ||||||
|     <% |   <% if @gantt.date_from.cwday == 1 %> | ||||||
|       # @date_from is monday |     <% | ||||||
|       week_f = @gantt.date_from |       # @date_from is monday | ||||||
|     %> |       week_f = @gantt.date_from | ||||||
|   <% else %> |     %> | ||||||
|     <% |   <% else %> | ||||||
|       # find next monday after @date_from |     <% | ||||||
|       week_f = @gantt.date_from + (7 - @gantt.date_from.cwday + 1) |       # find next monday after @date_from | ||||||
|       width = (7 - @gantt.date_from.cwday + 1) * zoom - 1 |       week_f = @gantt.date_from + (7 - @gantt.date_from.cwday + 1) | ||||||
|       style  = "" |       width = (7 - @gantt.date_from.cwday + 1) * zoom - 1 | ||||||
|       style += "left: #{left}px;" |       style  = "" | ||||||
|       style += "top: 19px;" |       style += "left: #{left}px;" | ||||||
|       style += "width: #{width}px;" |       style += "top: 19px;" | ||||||
|       style += "height: #{height}px;" |       style += "width: #{width}px;" | ||||||
|     %> |       style += "height: #{height}px;" | ||||||
|     <%= content_tag(:div, ' '.html_safe, |     %> | ||||||
|                     :style => style, :class => "gantt_hdr") %> |     <%= content_tag(:div, ' '.html_safe, | ||||||
|     <% left = left + width + 1 %> |                     :style => style, :class => "gantt_hdr") %> | ||||||
|   <% end %> |     <% left = left + width + 1 %> | ||||||
|   <% while week_f <= @gantt.date_to %> |   <% end %> | ||||||
|     <% |   <% while week_f <= @gantt.date_to %> | ||||||
|       width = ((week_f + 6 <= @gantt.date_to) ? |     <% | ||||||
|                   7 * zoom - 1 : |       width = ((week_f + 6 <= @gantt.date_to) ? | ||||||
|                   (@gantt.date_to - week_f + 1) * zoom - 1).to_i |                   7 * zoom - 1 : | ||||||
|       style  = "" |                   (@gantt.date_to - week_f + 1) * zoom - 1).to_i | ||||||
|       style += "left: #{left}px;" |       style  = "" | ||||||
|       style += "top: 19px;" |       style += "left: #{left}px;" | ||||||
|       style += "width: #{width}px;" |       style += "top: 19px;" | ||||||
|       style += "height: #{height}px;" |       style += "width: #{width}px;" | ||||||
|     %> |       style += "height: #{height}px;" | ||||||
|     <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %> |     %> | ||||||
|       <%= content_tag(:small) do %> |     <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %> | ||||||
|         <%= week_f.cweek if width >= 16 %> |       <%= content_tag(:small) do %> | ||||||
|       <% end %> |         <%= week_f.cweek if width >= 16 %> | ||||||
|     <% end %> |       <% end %> | ||||||
|     <% |     <% end %> | ||||||
|       left = left + width + 1 |     <% | ||||||
|       week_f = week_f + 7 |       left = left + width + 1 | ||||||
|     %> |       week_f = week_f + 7 | ||||||
|   <% end %> |     %> | ||||||
| <% end %> |   <% end %> | ||||||
| 
 | <% end %> | ||||||
| <% ###### Days headers ####### %> | 
 | ||||||
| <% if show_days %> | <% ###### Days headers ####### %> | ||||||
|   <% | <% if show_days %> | ||||||
|     left = 0 |   <% | ||||||
|     height = g_height + header_height - 1 |     left = 0 | ||||||
|     wday = @gantt.date_from.cwday |     height = g_height + header_height - 1 | ||||||
|   %> |     wday = @gantt.date_from.cwday | ||||||
|   <% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %> |   %> | ||||||
|     <% |   <% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %> | ||||||
|       width =  zoom - 1 |     <% | ||||||
|       style  = "" |       width =  zoom - 1 | ||||||
|       style += "left: #{left}px;" |       style  = "" | ||||||
|       style += "top:37px;" |       style += "left: #{left}px;" | ||||||
|       style += "width: #{width}px;" |       style += "top:37px;" | ||||||
|       style += "height: #{height}px;" |       style += "width: #{width}px;" | ||||||
|       style += "font-size:0.7em;" |       style += "height: #{height}px;" | ||||||
|       clss = "gantt_hdr" |       style += "font-size:0.7em;" | ||||||
|       clss << " nwday" if @gantt.non_working_week_days.include?(wday) |       clss = "gantt_hdr" | ||||||
|     %> |       clss << " nwday" if @gantt.non_working_week_days.include?(wday) | ||||||
|     <%= content_tag(:div, :style => style, :class => clss) do %> |     %> | ||||||
|       <%= day_letter(wday) %> |     <%= content_tag(:div, :style => style, :class => clss) do %> | ||||||
|     <% end %> |       <%= day_letter(wday) %> | ||||||
|     <% |     <% end %> | ||||||
|       left = left + width + 1 |     <% | ||||||
|       wday = wday + 1 |       left = left + width + 1 | ||||||
|       wday = 1 if wday > 7 |       wday = wday + 1 | ||||||
|     %> |       wday = 1 if wday > 7 | ||||||
|   <% end %> |     %> | ||||||
| <% end %> |   <% end %> | ||||||
| 
 | <% end %> | ||||||
| <%= @gantt.lines.html_safe %> | 
 | ||||||
| 
 | <%= @gantt.lines.html_safe %> | ||||||
| <% ###### Today red line (excluded from cache) ###### %> | 
 | ||||||
| <% if Date.today >= @gantt.date_from and Date.today <= @gantt.date_to %> | <% ###### Today red line (excluded from cache) ###### %> | ||||||
|   <% | <% if Date.today >= @gantt.date_from and Date.today <= @gantt.date_to %> | ||||||
|     today_left = (((Date.today - @gantt.date_from + 1) * zoom).floor() - 1).to_i |   <% | ||||||
|     style  = "" |     today_left = (((Date.today - @gantt.date_from + 1) * zoom).floor() - 1).to_i | ||||||
|     style += "position: absolute;" |     style  = "" | ||||||
|     style += "height: #{g_height}px;" |     style += "position: absolute;" | ||||||
|     style += "top: #{headers_height + 1}px;" |     style += "height: #{g_height}px;" | ||||||
|     style += "left: #{today_left}px;" |     style += "top: #{headers_height + 1}px;" | ||||||
|     style += "width:10px;" |     style += "left: #{today_left}px;" | ||||||
|     style += "border-left: 1px dashed red;" |     style += "width:10px;" | ||||||
|   %> |     style += "border-left: 1px dashed red;" | ||||||
|   <%= content_tag(:div, ' '.html_safe, :style => style, :id => 'today_line') %> |   %> | ||||||
| <% end %> |   <%= content_tag(:div, ' '.html_safe, :style => style, :id => 'today_line') %> | ||||||
| <% | <% end %> | ||||||
|   style  = "" | <% | ||||||
|   style += "position: absolute;" |   style  = "" | ||||||
|   style += "height: #{g_height}px;" |   style += "position: absolute;" | ||||||
|   style += "top: #{headers_height + 1}px;" |   style += "height: #{g_height}px;" | ||||||
|   style += "left: 0px;" |   style += "top: #{headers_height + 1}px;" | ||||||
|   style += "width: #{g_width - 1}px;" |   style += "left: 0px;" | ||||||
| %> |   style += "width: #{g_width - 1}px;" | ||||||
| <%= content_tag(:div, '', :style => style, :id => "gantt_draw_area") %> | %> | ||||||
| </div> | <%= content_tag(:div, '', :style => style, :id => "gantt_draw_area") %> | ||||||
| </td> | </div> | ||||||
| </tr> | </td> | ||||||
| </table> | </tr> | ||||||
| 
 | </table> | ||||||
| <table style="width:100%"> | 
 | ||||||
| <tr> | <table style="width:100%"> | ||||||
|   <td align="left"> | <tr> | ||||||
|     <%= link_to_content_update("\xc2\xab " + l(:label_previous), |   <td align="left"> | ||||||
|                                params.merge(@gantt.params_previous)) %> |     <%= link_to_content_update("\xc2\xab " + l(:label_previous), | ||||||
|   </td> |                                params.merge(@gantt.params_previous)) %> | ||||||
|   <td align="right"> |   </td> | ||||||
|     <%= link_to_content_update(l(:label_next) + " \xc2\xbb", |   <td align="right"> | ||||||
|                                params.merge(@gantt.params_next)) %> |     <%= link_to_content_update(l(:label_next) + " \xc2\xbb", | ||||||
|   </td> |                                params.merge(@gantt.params_next)) %> | ||||||
| </tr> |   </td> | ||||||
| </table> | </tr> | ||||||
| 
 | </table> | ||||||
| <% other_formats_links do |f| %> | 
 | ||||||
|   <%= f.link_to 'PDF', :url => params.merge(@gantt.params) %> | 
 | ||||||
|   <%= f.link_to('PNG', :url => params.merge(@gantt.params)) if @gantt.respond_to?('to_image') %> | <% end # query.valid? %> | ||||||
| <% end %> | 
 | ||||||
| <% end # query.valid? %> | <% content_for :sidebar do %> | ||||||
| 
 |   <%= render :partial => 'issues/sidebar' %> | ||||||
| <% content_for :sidebar do %> | <% end %> | ||||||
|   <%= render :partial => 'issues/sidebar' %> | 
 | ||||||
| <% end %> | <% html_title(l(:label_gantt)) -%> | ||||||
| 
 | 
 | ||||||
| <% html_title(l(:label_gantt)) -%> | <% content_for :header_tags do %> | ||||||
| 
 |   <%= javascript_include_tag 'raphael' %> | ||||||
| <% content_for :header_tags do %> |   <%= javascript_include_tag 'gantt' %> | ||||||
|   <%= javascript_include_tag 'raphael' %> | <% end %> | ||||||
|   <%= javascript_include_tag 'gantt' %> | 
 | ||||||
| <% end %> | <%= javascript_tag do %> | ||||||
| 
 |   var issue_relation_type = <%= raw Redmine::Helpers::Gantt::DRAW_TYPES.to_json %>; | ||||||
| <%= javascript_tag do %> |   $(document).ready(drawGanttHandler); | ||||||
|   var issue_relation_type = <%= raw Redmine::Helpers::Gantt::DRAW_TYPES.to_json %>; |   $(window).resize(drawGanttHandler); | ||||||
|   $(document).ready(drawGanttHandler); |   $(function() { | ||||||
|   $(window).resize(drawGanttHandler); |     $("#draw_rels").change(drawGanttHandler); | ||||||
|   $(function() { |     $("#draw_progress_line").change(drawGanttHandler); | ||||||
|     $("#draw_rels").change(drawGanttHandler); |   }); | ||||||
|     $("#draw_progress_line").change(drawGanttHandler); | <% end %> | ||||||
|   }); | 
 | ||||||
| <% end %> | <script> | ||||||
|  |   $("#RSide").css("width","730px"); | ||||||
|  | </script> | ||||||
|  | |||||||
| @ -1,7 +1,10 @@ | |||||||
| <% if @user_activity_id.to_i == -1 %> | <% if @hw_status == 5 %> | ||||||
| $("#homework_common_<%= @homework.id %>").replaceWith("<%= escape_javascript(render :partial => "users/user_homework_detail",:locals => {:homework_common => @homework, :is_in_course => @is_in_course})%>"); | $("#homework_post_brief").html("<%= escape_javascript(render :partial => 'student_work/homework_post_brief', :locals => {:homework => @homework, :is_teacher => @is_teacher}) %>"); | ||||||
| sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); |  | ||||||
| <% else %> | <% else %> | ||||||
| $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework,:user_activity_id =>@user_activity_id,:course_activity=>@course_activity}) %>"); | $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework,:user_activity_id =>@user_activity_id,:hw_status=>@hw_status}) %>"); | ||||||
|  | <% end %> | ||||||
|  | <% if @user_activity_id != @homework.id %> | ||||||
| sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); | sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); | ||||||
|  | <% else %> | ||||||
|  | sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); | ||||||
| <% end %> | <% end %> | ||||||
| @ -1,8 +1,11 @@ | |||||||
| clickCanel(); | clickCanel(); | ||||||
| <% if @user_activity_id != -1 %> | <% if @hw_status == 5 %> | ||||||
| $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework,:user_activity_id =>@user_activity_id,:course_activity=>@courae_activity}) %>"); | $("#homework_post_brief").html("<%= escape_javascript(render :partial => 'student_work/homework_post_brief', :locals => {:homework => @homework, :is_teacher => @is_teacher}) %>"); | ||||||
|  | <% else %> | ||||||
|  | $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework,:user_activity_id =>@user_activity_id,:hw_status=>@hw_status}) %>"); | ||||||
|  | <% end %> | ||||||
|  | <% if @user_activity_id != @homework.id %> | ||||||
| sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); | sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); | ||||||
| <% else %> | <% else %> | ||||||
| $("#homework_common_<%= @homework.id %>").replaceWith("<%= escape_javascript(render :partial => 'users/user_homework_detail', :locals => {:homework_common => @homework,:is_in_course => @is_in_course}) %>"); |  | ||||||
| sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); | sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); | ||||||
| <% end %> | <% end %> | ||||||
| @ -1,12 +1,14 @@ | |||||||
| alert('关闭成功'); | alert('关闭成功'); | ||||||
| <% if @user_activity_id == -1 %> | <% if @hw_status == 5 %> | ||||||
| $("#homework_common_<%= @homework.id %>").replaceWith("<%= escape_javascript(render :partial => "users/user_homework_detail",:locals => {:homework_common => @homework, :is_in_course => @is_in_course})%>"); | $("#homework_post_brief").html("<%= escape_javascript(render :partial => 'student_work/homework_post_brief', :locals => {:homework => @homework, :is_teacher => @is_teacher}) %>"); | ||||||
|  | <% else %> | ||||||
|  | $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework,:user_activity_id =>@user_activity_id,:hw_status=>@hw_status}) %>"); | ||||||
|  | <% end %> | ||||||
| $("#evaluation_end_time_<%=@homework.id %>").html("匿评关闭时间:<%=format_time(Time.now) %>"); | $("#evaluation_end_time_<%=@homework.id %>").html("匿评关闭时间:<%=format_time(Time.now) %>"); | ||||||
| sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); | <% if @user_activity_id != @homework.id %> | ||||||
|  | sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", "UserActivity"); | ||||||
| <% else %> | <% else %> | ||||||
| $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/course_homework', :locals => {:activity => @homework,:user_activity_id =>@user_activity_id,:course_activity=>@course_activity}) %>"); | sd_create_editor_from_data(<%= @homework.id%>,"","100%", "<%=@homework.class.to_s%>"); | ||||||
| $("#evaluation_end_time_<%=@user_activity_id %>").html("匿评关闭时间:<%=format_time(Time.now) %>"); |  | ||||||
| sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", 'UserActivity'); |  | ||||||
| <% end %> | <% end %> | ||||||
| /* | /* | ||||||
| $("#<%#= @homework.id %>_stop_anonymous_comment").replaceWith('');*/ | $("#<%#= @homework.id %>_stop_anonymous_comment").replaceWith('');*/ | ||||||
|  | |||||||
| @ -0,0 +1,16 @@ | |||||||
|  | <% issue_list(issues) do |issue, level| -%> | ||||||
|  |     <script> | ||||||
|  |         $(function () { | ||||||
|  |             sd_create_editor_from_data(<%= issue.id%>, null, "100%", "<%= issue.class.name %>"); | ||||||
|  |         }); | ||||||
|  |     </script> | ||||||
|  |     <%= render :partial => 'issues/project_issue', :locals => {:activity => issue, :user_activity_id => issue.id} %> | ||||||
|  | <% end %> | ||||||
|  | <div style="text-align:center;"> | ||||||
|  |   <div class="pages" style="width:auto; display:inline-block;"> | ||||||
|  |     <ul  id="issue_list_pagination"> | ||||||
|  |       <%= pagination_links_full @issue_pages, @issue_count, :per_page_links => false, :remote => @is_remote, :flag => true, :is_new => true%> | ||||||
|  |     </ul> | ||||||
|  |     <div class="cl"></div> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
| @ -0,0 +1 @@ | |||||||
|  | <span class="issues_nav_tag ml5" ><%= @issues_filter_assign_count %></span> | ||||||
| @ -0,0 +1 @@ | |||||||
|  | <span class="issues_nav_tag ml5" ><%= @issue_count %></span> | ||||||
| @ -0,0 +1 @@ | |||||||
|  | <span class="issues_nav_tag ml5"><%= @issues_filter_author_count %><%#= @project.issues.where(:author_id => User.current.id ).visible.all.count  %></span> | ||||||
| @ -0,0 +1,93 @@ | |||||||
|  | <div class="issues_con fl"> | ||||||
|  |   <div class="clear mb5"> | ||||||
|  |     <a href="<%= new_project_issue_path(@project)%>" class="sy_btn_green  fl mr10">新 增</a> | ||||||
|  |     <div class="issues_statistics fl"> | ||||||
|  |       <ul> | ||||||
|  |         <li>所有<a href="javascript:void(0);" class="issues_greycirbg_btn "><%= @project.project_score.issue_num %></a></li> | ||||||
|  |         <li>开启<a href="javascript:void(0);" class="issues_greycirbg_btn "><%= @project.issues.where('status_id in (1,2,3,4,6)').visible.all.count  %></a></li> | ||||||
|  |         <li>关闭<a href="javascript:void(0);" class="issues_greycirbg_btn "><%= @project.issues.where(:status_id => 5 ).visible.all.count  %></a></li> | ||||||
|  |       </ul> | ||||||
|  |     </div><!--issues_statistics end--> | ||||||
|  |     <a href="<%=project_issues_path(:project_id => @project, :format => 'xls')%>" class="hw_btn_blue  fr" alt="导出EXCEL">导出EXCEL</a> | ||||||
|  |   </div> | ||||||
|  |   <% unless @project.enabled_modules.where("name = 'issue_tracking'").empty? %> | ||||||
|  |       <%= form_tag({:controller => 'issues', :action => 'index', :project_id => @project},:remote=>'true', :method => :get,:id=>"issue_query_form", :class => 'query_form') do %> | ||||||
|  |           <%= hidden_field_tag 'set_filter', '1' %> | ||||||
|  |           <div class="clear mb10"> | ||||||
|  |             <div class="hw_search_box fl "> | ||||||
|  |               <input class="hw_search-input" placeholder="请输入问题名称" type="text" id="v_subject"  name="subject" onkeypress="EnterPress(event)" onkeydown="EnterPress()"> | ||||||
|  |               <a href="javascript:void(0);" class="hw_btn_search" onclick="remote_function();" ></a> | ||||||
|  |             </div> | ||||||
|  |             <a href="javascript:void(0);" class="sy_btn_grey fl ml5" onclick="nh_reset_form();">清除</a> | ||||||
|  |             <div class="calendar_div fr"> | ||||||
|  |               <input name="issue_create_date_end" nhname="date_val" type="hidden"/> | ||||||
|  |               <input type="text" nhname="date_show" id="issue_create_date_end_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="结束日期"> | ||||||
|  |               <%= calendar_for('issue_create_date_end_show')%> | ||||||
|  |             </div> | ||||||
|  |               <div class="calendar_div fr"> | ||||||
|  |                 <input name="issue_create_date_start_show" nhname="date_val" type="hidden"/> | ||||||
|  |                 <input type="text" nhname="date_show" id="issue_create_date_start_show" class="InputBox fl W120 calendar_input" readonly="readonly" size="13" placeholder="开始日期"> | ||||||
|  |                     <%= calendar_for('issue_create_date_start_show')%> | ||||||
|  |               </div> | ||||||
|  | 
 | ||||||
|  |               <!--<input type="text"  placeholder="开始日期" class="issues_calendar_input fl " ><a href="" class="issues_data_img fl" style="border-right:none;"></a>--> | ||||||
|  |               <!--<input type="text"  placeholder="结束日期" class="issues_calendar_input fl " ><a href="" class="issues_data_img fl"></a>--> | ||||||
|  | 
 | ||||||
|  |           </div> | ||||||
|  | 
 | ||||||
|  |         <div class="issues_con_list" style="position: relative;"> | ||||||
|  |           <ul id="issues_list_nav" > | ||||||
|  |             <li id="issues_list_nav_1" class="issues_nav_hover" onclick="HoverLi(1);"> | ||||||
|  |               <a href="javascript:void(0);" onclick="all_reset_form();" id="issues_type_1" >所有<span class="issues_nav_tag ml5"><%= @project.project_score.issue_num %></span></a> | ||||||
|  |             </li> | ||||||
|  |             <li id="issues_list_nav_2" onclick="HoverLi(2);"> | ||||||
|  |               <a href="javascript:void(0);" onclick="switch_assign_to(<%= User.current.id %>)" id="issues_type_2" >指派给我<span class="issues_nav_tag ml5"><%= @project.issues.where(:assigned_to_id => User.current.id ).visible.all.count  %></span></a> | ||||||
|  |             </li> | ||||||
|  |             <li id="issues_list_nav_3" onclick="HoverLi(3);"> | ||||||
|  |               <a href="javascript:void(0);" onclick="createByMe(<%= User.current.id %>)" id="issues_type_3" >我的发布<span class="issues_nav_tag ml5"><%= @project.issues.where(:author_id => User.current.id ).visible.all.count  %></span></a> | ||||||
|  |             </li> | ||||||
|  |             <div class="cl"></div> | ||||||
|  |           </ul> | ||||||
|  |           <div class="issues_filter "> | ||||||
|  |             <div class="issues_form_filter mt5 mr5"> | ||||||
|  |               <%= select(:issue, :tracker_id, [["缺陷",1],["功能",2],["支持",3],["任务",4],["周报",5]].unshift(["类型",0]), | ||||||
|  |                       {:include_blank => false, :selected => @tracker_id ? @tracker_id : 0}, | ||||||
|  |                       {:onchange => "remote_function();", :id => "tracker_id", :name => "tracker_id", :class => "fl issues_filter_select_min"}) %> | ||||||
|  |               <%= select( :issue, :user_id, principals_options_for_isuue_list(@project), | ||||||
|  |                           { :include_blank => false,:selected=>@assign_to_id ? @assign_to_id : 0}, | ||||||
|  |                           {:onchange=>"remote_function();",:id=>"assigned_to_id",:name=>"assigned_to_id",:class=>"fl"}) | ||||||
|  |               %> | ||||||
|  | 
 | ||||||
|  |               <%= select(:issue, :fixed_version_id, options_for_version_isuue_list(@project), | ||||||
|  |                       {:include_blank => false, :selected => @fixed_version_id ? @fixed_version_id : 0}, | ||||||
|  |                       {:onchange => "remote_function();", :id => "fixed_version_id", :name => "fixed_version_id", :class => "f1"}) %> | ||||||
|  | 
 | ||||||
|  |               <%= select( :issue,:status, [["新增",1],["正在解决",2],["已解决",3],["反馈",4],["关闭",5],["拒绝",6]].unshift(["状态",0]), | ||||||
|  |                           { :include_blank => false,:selected=>@status_id ? @status_id : 0 | ||||||
|  |                           }, | ||||||
|  |                           {:onchange=>"remote_function();",:id=>"status_id",:name=>"status_id",:class=>"fl issues_filter_select_min"} | ||||||
|  |                   ) %> | ||||||
|  | 
 | ||||||
|  |               <%= select(:issue, :done_ratio, [["10%",1],["20%",2],["30%",3],["40%",4],["50%",5],["60%",6],["70%",7],["80%",8],["90%",9],["10%",10]].unshift(["完成度",0]), | ||||||
|  |                          {:include_blank => false, :selected => @done_ratio ? @done_ratio : 0 }, | ||||||
|  |                          {:onchange => "remote_function();", :id => "done_ratio", :name => "done_ratio", :class => "f1"}) %> | ||||||
|  | 
 | ||||||
|  |               <%= select(:issue, :test, [["最早创建",1],["最早更新",2]].unshift(["排序",0]), | ||||||
|  |                       {:include_blank => false, :selected => @order ? @order : 0 }, | ||||||
|  |                       {:onchange => "remote_function();", :id => "test", :name => "test", :class => "fr issues_filter_select_min"}) %> | ||||||
|  |             </div> | ||||||
|  |             <div class="cl"></div> | ||||||
|  |           </div><!--issues_filter end--> | ||||||
|  |           <% if @issues.empty? %> | ||||||
|  |               <p class="nodata"><%= l(:label_no_data) %></p> | ||||||
|  |           <% else %> | ||||||
|  |               <div id="issue_list"> | ||||||
|  |                 <%= render :partial => 'issues/all_list', :locals => {:issues => @issues, :query => @query,:issue_pages=>@issue_pages,:issue_count=>@issue_count,:project=>@project,:subject=>@subject} %> | ||||||
|  |               </div> | ||||||
|  |           <% end %> | ||||||
|  |           <%#= render :partial => 'issues/all_list', :locals => {:issues => @issues, :query => @query,:issue_pages=>@issue_pages,:issue_count=>@issue_count,:project=>@project,:subject=>@subject} %> | ||||||
|  |         </div><!--issues_con_list end--> | ||||||
|  | 
 | ||||||
|  |       <% end %> | ||||||
|  |   <% end %> | ||||||
|  | </div> | ||||||
| @ -0,0 +1,99 @@ | |||||||
|  | <% unless activity.author.nil? %> | ||||||
|  |     <div class="issues_list_box clear"  id="user_activity_<%= user_activity_id%>"> | ||||||
|  |       <div class="issues_ciricons fl "> | ||||||
|  |         <% if activity.status_id.to_i == 5 %> | ||||||
|  |             <span class="issues_ciricons_02"></span> | ||||||
|  |         <% else %> | ||||||
|  |             <span class="issues_ciricons_01"></span> | ||||||
|  |         <% end %> | ||||||
|  |       </div> | ||||||
|  |       <div class=" fl ml5"> | ||||||
|  |         <div class="issues_list_titlebox clear"> | ||||||
|  |           <a href="<%= issue_path(activity) %>"  class="issues_list_title fl" target="_blank" title="<%= activity.subject.to_s %>"><%= activity.subject.to_s %></a> | ||||||
|  |           <div class="cl"></div> | ||||||
|  |         </div> | ||||||
|  |         <div class="issues_list_small"> | ||||||
|  |           <% if activity.try(:author).try(:realname) == ' ' %> | ||||||
|  |               <%= link_to activity.try(:author), user_path(activity.author_id), :class => "fl issues_list_name" %> | ||||||
|  |           <% else %> | ||||||
|  |               <%= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "fl issues_list_name" %> | ||||||
|  |           <% end %> | ||||||
|  |           <p class="fl ml10"> <span class="mr5"><%=format_time(activity.created_on) %></span>发布</p> | ||||||
|  |         </div> | ||||||
|  |       </div> | ||||||
|  |       <ul class="issues_list_txt fr"> | ||||||
|  |         <li class="issues_list_min c_grey"> | ||||||
|  |           <% case activity.tracker_id %> | ||||||
|  |           <% when 1%> | ||||||
|  |               缺陷 | ||||||
|  |           <% when 2%> | ||||||
|  |               功能 | ||||||
|  |           <% when 3%> | ||||||
|  |               支持 | ||||||
|  |           <% when 4%> | ||||||
|  |               任务 | ||||||
|  |           <% when 5%> | ||||||
|  |               周报 | ||||||
|  |           <% end %> | ||||||
|  |         </li> | ||||||
|  |         <!--li class="c_grey"> | ||||||
|  |           <#% if activity.try(:author).try(:realname) == ' ' %> | ||||||
|  |               <%#= link_to activity.try(:author), user_path(activity.author_id), :class => "c_grey" %> | ||||||
|  |           <#% else %> | ||||||
|  |               <%#= link_to activity.try(:author).try(:realname), user_path(activity.author_id), :class => "c_grey" %> | ||||||
|  |           <%# end %> | ||||||
|  |         </li--> | ||||||
|  |         <li class="c_grey"> | ||||||
|  |         <% unless activity.assigned_to_id.nil? %> | ||||||
|  |             <% if activity.try(:assigned_to).try(:realname).empty? %> | ||||||
|  |                 <%= link_to activity.assigned_to, user_path(activity.assigned_to_id), :class => "c_grey" %> | ||||||
|  |             <% else %> | ||||||
|  |                 <%= link_to activity.try(:assigned_to).try(:realname), user_path(activity.assigned_to_id), :class => "c_grey" %> | ||||||
|  |             <% end %> | ||||||
|  |         <% end %></li> | ||||||
|  |         <li class="c_grey" style="width: 60px; padding-right: 10px" title="<%= activity.fixed_version %>"><%= activity.fixed_version %></li> | ||||||
|  |         <li class="issues_list_min c_grey" ><%= activity.status.name%></li> | ||||||
|  |         <li class="<%=(activity.done_ratio == 100 ? 'c_red' : 'c_green') %>"><%= activity.done_ratio %>%</li> | ||||||
|  |         <li class="issues_list_min pr"> | ||||||
|  |         <% if activity.journals.count > 0%> | ||||||
|  |           <span class="issues_icons_mes fl mr5" style="margin-top:13px;"></span> | ||||||
|  |           <span class="fl mr5"><%= activity.journals.count %></span> | ||||||
|  |         <% end %> | ||||||
|  |           <div class="undis" style="position: absolute; <%= activity.journals.count >0 ? 'top:15px;' : '' %>"> | ||||||
|  |           <%= link_to "", issue_path(activity.id, :edit => 'true'), :class => 'sy_icons_edit fl mt15', :accesskey => accesskey(:edit) if activity.editable? && User.current.allowed_to?(:edit_issues, activity.project)  %> | ||||||
|  |         <% if !defined?(project_id) && !defined?(user_id) %> | ||||||
|  |             <%= link_to "", issue_path(activity.id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %> | ||||||
|  |         <% elsif defined?(project_id) %> | ||||||
|  |             <%= link_to "", issue_path(activity.id, :page_classify => "project_page", :page_id => project_id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %> | ||||||
|  |         <% elsif defined?(user_id) %> | ||||||
|  |             <%= link_to "", issue_path(activity.id, :page_classify => "user_page", :page_id => user_id), :data => {:confirm => issues_destroy_confirmation_message(activity)}, :method => :delete, :class => 'sy_icons_del fl mt15' if User.current.allowed_to?(:delete_issues, activity.project) %> | ||||||
|  |         <% end %> | ||||||
|  |           </div> | ||||||
|  |         </li> | ||||||
|  |       </ul> | ||||||
|  |     </div> | ||||||
|  | <% end %> | ||||||
|  | 
 | ||||||
|  | <script> | ||||||
|  |   $(".issues_list_box").mouseover(function(){ | ||||||
|  |     var iconOrder; | ||||||
|  |     var iconSize = $(this).children().eq(2).children().eq(5).children().size(); | ||||||
|  |     if(iconSize > 1){ | ||||||
|  |         iconOrder = 2; | ||||||
|  |     } else{ | ||||||
|  |         iconOrder = 0; | ||||||
|  |     } | ||||||
|  |     $(this).children().eq(2).children().eq(5).children().eq(iconOrder).show(); | ||||||
|  |   }); | ||||||
|  |   $(".issues_list_box").mouseout(function(){ | ||||||
|  |     var iconOrder; | ||||||
|  |     var iconSize = $(this).children().eq(2).children().eq(5).children().size(); | ||||||
|  |     if(iconSize > 1){ | ||||||
|  |         iconOrder = 2; | ||||||
|  |     } else{ | ||||||
|  |         iconOrder = 0; | ||||||
|  |     } | ||||||
|  |     $(this).children().eq(2).children().eq(5).children().eq(iconOrder).hide(); | ||||||
|  |   }); | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
| @ -0,0 +1,46 @@ | |||||||
|  | <div class="sy_class_infobox mb10 clear"> | ||||||
|  |   <div class="sy_class_logo fl"> | ||||||
|  |     <div class="pr" style="width: 110px; height:110px;"> | ||||||
|  |       <% if User.current.logged? && (User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, @project) || User.current.admin?) %> | ||||||
|  |           <%=link_to image_tag(url_to_avatar(@project), width:"110", height: "110", :id => 'nh_source_tx'), my_clear_user_avatar_temp_path(:course => @project.id), :remote => true%> | ||||||
|  |           <div class="homepageEditProfile undis"> | ||||||
|  |             <%=link_to '', my_clear_user_avatar_temp_path(:project => @project.id), :class => 'homepageEditProfileIcon', :title => '点击编辑头像', :remote => true %> | ||||||
|  |           </div> | ||||||
|  |       <% else %> | ||||||
|  |           <%= image_tag(url_to_avatar(@project), :width => "110", :height => "110", :alt => "项目logo") %> | ||||||
|  |       <% end %> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  |   <%# 更新访问数,刷新的时候更新访问次数 %> | ||||||
|  |   <%  update_visiti_count @project %> | ||||||
|  |   <div class="sy_class_id fl"><p><%= l(:label_project_ivite_code)%><br /><span class="sy_corange"><%= (User.current.member_of?(@project) || User.current.admin?) ? @project.invite_code : "******" %></span></p></div> | ||||||
|  |   <div class="sy_class_info fl ml15"> | ||||||
|  |     <div  class="sy_class_titbox clear"> | ||||||
|  |       <h3 class="fl sy_class_title"> | ||||||
|  |         <a href="javascript:void(0);"class="mr5 c_dark"><%= @project.creater %></a>/ | ||||||
|  |         <a href="javascript:void(0);"class=" ml5 c_dark"><%= @project.name %></a> | ||||||
|  |       </h3> | ||||||
|  |       <span class="sy_new_orange fl ml10 mt5"><%= @project.is_public? ? l(:label_public) : l(:label_private) %></span> | ||||||
|  |     </div> | ||||||
|  |     <p class="sy_cgrey"> | ||||||
|  |       <span class=" mr15">项目评分: | ||||||
|  |         <% if @project.project_type == 0 %> | ||||||
|  |             <%# unless static_project_score(@project.project_score) == 0 %> | ||||||
|  |                 <%= link_to(format("%.2f" ,static_project_score(@project.project_score)).to_i, | ||||||
|  |                          {:controller => 'projects', | ||||||
|  |                           :action => 'show_projects_score', | ||||||
|  |                           :remote => true, | ||||||
|  |                           :id => @project.id}, :class => "sy_cblue" ) %> | ||||||
|  |             <%# end %> | ||||||
|  |         <% end %> | ||||||
|  |       </span> | ||||||
|  |       <span class=" mr15">浏览:<a class="sy_corange"><%= @project.visits.to_i %></a></span> | ||||||
|  |       <span class=" mr15">关注:<%= link_to "#{@project.watcher_users.count}", {:controller=>"projects", :action=>"watcherlist", :id => @project.id}, :class => 'sy_corange'  %></span> | ||||||
|  |       <span class=" mr15">成员:<%= link_to "#{@project.members.count}", project_member_path(@project), :class => 'sy_corange', :id => 'project_members_number' %></span> | ||||||
|  |     </p> | ||||||
|  |     <div class="mt15 clear" id="join_exit_project_div"> | ||||||
|  |       <%= render 'layouts/join_exit_project' %> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  |   <div class="cl"></div> | ||||||
|  | </div> | ||||||
| @ -1,19 +1,18 @@ | |||||||
| <div class="pr_info_join fl"> | 
 | ||||||
|    <!--关注:非项目成员--> |    <!--关注:非项目成员--> | ||||||
|   <div id="join_in_project_applied"> |   <%= render :partial => "projects/applied_status" %> | ||||||
|     <%= render :partial => "projects/applied_status" %> | 
 | ||||||
|   </div> |  | ||||||
|   <!--配置项目--> |   <!--配置项目--> | ||||||
|   <% if User.current.admin? || User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, @project)  %> |   <% if User.current.admin? || User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, @project)  %> | ||||||
|       <%= link_to "<span class='pr_setting'></span>#{l(:button_configure)}".html_safe, settings_project_path(@project), :class => "pr_join_a" %> |       <%= link_to "#{l(:button_configure)}", settings_project_path(@project), :class => "sy_btn_blue mr5" %> | ||||||
|   <% end %> |   <% end %> | ||||||
|   <!--项目类型--> |   <!--项目类型--> | ||||||
|   <% if (User.current.login? && User.current.member_of?(@project) && Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager")) || User.current.admin? %> |   <!--<%# if (User.current.login? && User.current.member_of?(@project) && Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager")) || User.current.admin? %>--> | ||||||
|       <%= link_to "<span class='#{typeclass}'></span>#{text}".html_safe,"javascript:void(0)" ,:onClick => "show_window();", :class => "pr_join_a",:id => "setting_project_type"%> |       <!--<%#= link_to "<span class='#{typeclass}'></span>#{text}".html_safe,"javascript:void(0)" ,:onClick => "show_window();", :class => "pr_join_a",:id => "setting_project_type"%>--> | ||||||
|   <% end %> |   <!--<%# end %>--> | ||||||
|   <!--退出项目--> |   <!--退出项目--> | ||||||
|   <% if (User.current.member_of? @project) && User.current.login? && !User.current.admin && |   <% if (User.current.member_of? @project) && User.current.login? && !User.current.admin && | ||||||
|      !Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager") %> |      !Member.where(:user_id => User.current.id, :project_id => @project.id).first.roles.to_s.include?("Manager") %> | ||||||
|       <%= exit_project_link(@project) %> |       <%= exit_project_link(@project) %> | ||||||
|   <% end %> |   <% end %> | ||||||
| </div> | 
 | ||||||
|  | |||||||
| @ -1,214 +1,214 @@ | |||||||
| <style type="text/css"> | <style type="text/css"> | ||||||
|     div.ke-toolbar{display:none;width:400px;border:none;background:none;padding:0px 0px;} |     div.ke-toolbar{display:none;width:400px;border:none;background:none;padding:0px 0px;} | ||||||
|     span.ke-toolbar-icon{line-height:26px;font-size:14px;padding-left:26px;} |     span.ke-toolbar-icon{line-height:26px;font-size:14px;padding-left:26px;} | ||||||
|     span.ke-toolbar-icon-url{background-image:url( /images/public_icon.png )} |     span.ke-toolbar-icon-url{background-image:url( /images/public_icon.png )} | ||||||
|     div.ke-toolbar .ke-outline{padding:0px 0px;line-height:26px;font-size:14px;} |     div.ke-toolbar .ke-outline{padding:0px 0px;line-height:26px;font-size:14px;} | ||||||
|     span.ke-icon-emoticons{background-position:0px -671px;width:50px;height:26px;} |     span.ke-icon-emoticons{background-position:0px -671px;width:50px;height:26px;} | ||||||
|     span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;} |     span.ke-icon-emoticons:hover{background-position:-79px -671px;width:50px;height:26px;} | ||||||
|     div.ke-toolbar .ke-outline{border:none;} |     div.ke-toolbar .ke-outline{border:none;} | ||||||
| 
 | 
 | ||||||
|     div.respond-form .reply_btn{margin-left:565px;margin-top:5px;} |     div.respond-form .reply_btn{margin-left:626px;margin-top:5px;} | ||||||
|     div.recall_con{width:570px;} |     div.recall_con{width:570px;} | ||||||
|     div.recall_con .reply_btn{margin-left:525px;margin-top:5px;} |     div.recall_con .reply_btn{margin-left:585px;margin-top:5px;} | ||||||
| </style> | </style> | ||||||
| <%= content_for(:header_tags) do %> | <%= content_for(:header_tags) do %> | ||||||
|     <%= import_ke(enable_at: false, prettify: false, init_activity: false) %> |     <%= import_ke(enable_at: false, prettify: false, init_activity: false) %> | ||||||
| <% end %> | <% end %> | ||||||
| 
 | 
 | ||||||
| <div class="msg_box" id='leave-message' nhname='new_message' style="height:auto;"> | <div class="msg_box" id='leave-message' nhname='new_message' style="height:auto; width:728px;"> | ||||||
|   <% reply_allow = JournalsForMessage.create_by_user? User.current %> |   <% reply_allow = JournalsForMessage.create_by_user? User.current %> | ||||||
|   <h4><%= l(:label_user_response) %></h4> |   <h4><%= l(:label_user_response) %></h4> | ||||||
|   <% if !User.current.logged?%> |   <% if !User.current.logged?%> | ||||||
|       <div style="font-size: 14px;margin:20px;"> |       <div style="font-size: 14px;margin:20px;"> | ||||||
|         <%= l(:label_user_login_tips) %> |         <%= l(:label_user_login_tips) %> | ||||||
|         <%= link_to l(:label_user_login_new), signin_path %> |         <%= link_to l(:label_user_login_new), signin_path %> | ||||||
|         <hr/> |         <hr/> | ||||||
|       </div> |       </div> | ||||||
|   <% else %> |   <% else %> | ||||||
|       <%= form_for('new_form', :method => :post, :html => {:id => 'project_feedback_form', :multipart => true}, |       <%= form_for('new_form', :method => :post, :html => {:id => 'project_feedback_form', :multipart => true}, | ||||||
|                    :url => {:controller => 'words', :action => 'leave_project_message'}) do |f|%> |                    :url => {:controller => 'words', :action => 'leave_project_message'}) do |f|%> | ||||||
|           <%= f.text_area 'project_message', :rows => 3, :cols => 65, |           <%= f.text_area 'project_message', :rows => 3, :cols => 65, :style => "width:718px", | ||||||
|                           :placeholder => "#{l(:label_welcome_my_respond)}",:nhname=>'new_message_textarea' %> |                           :placeholder => "#{l(:label_welcome_my_respond)}",:nhname=>'new_message_textarea' %> | ||||||
|           <p nhname="contentmsg"></p> |           <p nhname="contentmsg"></p> | ||||||
|           <div class="fl mt10" style="padding-top:5px;" nhname="toolbar_container"></div> |           <div class="fl mt10" style="padding-top:5px;" nhname="toolbar_container"></div> | ||||||
|           <%#= submit_tag l(:button_leave_meassge), :name => nil , :class => "blue_btn fr mt10 mb10" %> |           <%#= submit_tag l(:button_leave_meassge), :name => nil , :class => "blue_btn fr mt10 mb10" %> | ||||||
|           <a href="javascript:void(0);" class="blue_btn fr ml10 mt10" id="submit_feedback_project" >留言</a> |           <a href="javascript:void(0);" class="blue_btn fr ml10 mt10" id="submit_feedback_project" >留言</a> | ||||||
|           <%#= link_to l(:button_leave_meassge), "javascript:void(0)", :onclick => 'submitProjectFeedback();', :onmouseover => 'submitFocus(this);', :class => 'blue_btn fr mt10 mb10' %> |           <%#= link_to l(:button_leave_meassge), "javascript:void(0)", :onclick => 'submitProjectFeedback();', :onmouseover => 'submitFocus(this);', :class => 'blue_btn fr mt10 mb10' %> | ||||||
|       <% end %> |       <% end %> | ||||||
| 
 | 
 | ||||||
|   <% end %> |   <% end %> | ||||||
|   <div class="cl"></div> |   <div class="cl"></div> | ||||||
| </div> | </div> | ||||||
| <div id="history"> | <div id="history"> | ||||||
|   <%= render :partial => 'history',:locals => { :journals => @jour, :state => false} %> |   <%= render :partial => 'history',:locals => { :journals => @jour, :state => false} %> | ||||||
| </div> | </div> | ||||||
| <ul class="wlist"><%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%></ul> | <ul class="wlist"><%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%></ul> | ||||||
| 
 | 
 | ||||||
| <div style="display:none;"><a href="#" id="nhjump"></a></div> | <div style="display:none;"><a href="#" id="nhjump"></a></div> | ||||||
| <script type="text/javascript"> | <script type="text/javascript"> | ||||||
|     $(function(){ |     $(function(){ | ||||||
|         $("#submit_feedback_project").one('click',function() { |         $("#submit_feedback_project").one('click',function() { | ||||||
|             $("#project_feedback_form").submit(); |             $("#project_feedback_form").submit(); | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
|         function init_editor(params){ |         function init_editor(params){ | ||||||
|             params.textarea.removeAttr('placeholder'); |             params.textarea.removeAttr('placeholder'); | ||||||
|             var editor = params.kindutil.create(params.textarea, { |             var editor = params.kindutil.create(params.textarea, { | ||||||
|                 resizeType : 1,minWidth:"1px",width:"100%",height:"150px", |                 resizeType : 1,minWidth:"1px",width:"100%",height:"150px", | ||||||
|                 items:['emoticons'], |                 items:['emoticons'], | ||||||
|                 afterChange:function(){//按键事件 |                 afterChange:function(){//按键事件 | ||||||
|                     nh_check_field({content:this,contentmsg:params.contentmsg,textarea:params.textarea}); |                     nh_check_field({content:this,contentmsg:params.contentmsg,textarea:params.textarea}); | ||||||
|                 }, |                 }, | ||||||
|                 afterCreate:function(){ |                 afterCreate:function(){ | ||||||
|                     var toolbar = $("div[class='ke-toolbar']",params.div_form); |                     var toolbar = $("div[class='ke-toolbar']",params.div_form); | ||||||
|                     $(".ke-outline>.ke-toolbar-icon",toolbar).append('表情'); |                     $(".ke-outline>.ke-toolbar-icon",toolbar).append('表情'); | ||||||
|                     params.toolbar_container.append(toolbar); |                     params.toolbar_container.append(toolbar); | ||||||
|                 } |                 } | ||||||
|             }).loadPlugin('paste'); |             }).loadPlugin('paste'); | ||||||
|             return editor; |             return editor; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         function nh_check_field(params){ |         function nh_check_field(params){ | ||||||
|             var result=true; |             var result=true; | ||||||
|             if(params.content!=undefined){ |             if(params.content!=undefined){ | ||||||
|                 if(params.content.isEmpty()){ |                 if(params.content.isEmpty()){ | ||||||
|                     result=false; |                     result=false; | ||||||
|                 } |                 } | ||||||
|                 if(params.content.html()!=params.textarea.html() || params.issubmit==true){ |                 if(params.content.html()!=params.textarea.html() || params.issubmit==true){ | ||||||
|                     params.textarea.html(params.content.html()); |                     params.textarea.html(params.content.html()); | ||||||
|                     params.content.sync(); |                     params.content.sync(); | ||||||
|                     if(params.content.isEmpty()){ |                     if(params.content.isEmpty()){ | ||||||
|                         params.contentmsg.html('内容不能为空'); |                         params.contentmsg.html('内容不能为空'); | ||||||
|                         params.contentmsg.css({color:'#ff0000'}); |                         params.contentmsg.css({color:'#ff0000'}); | ||||||
|                         params.submit_btn.one('click', function(){ |                         params.submit_btn.one('click', function(){ | ||||||
|                             params.form.submit(); |                             params.form.submit(); | ||||||
|                         }); |                         }); | ||||||
|                     }else{ |                     }else{ | ||||||
|                         params.contentmsg.html('填写正确'); |                         params.contentmsg.html('填写正确'); | ||||||
|                         params.contentmsg.css({color:'#008000'}); |                         params.contentmsg.css({color:'#008000'}); | ||||||
|                     } |                     } | ||||||
|                     params.contentmsg.show(); |                     params.contentmsg.show(); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|             return result; |             return result; | ||||||
|         } |         } | ||||||
|         function init_form(params){ |         function init_form(params){ | ||||||
| //      var flag = false; | //      var flag = false; | ||||||
| //      if(params.form.attr('data-remote') != undefined ){ | //      if(params.form.attr('data-remote') != undefined ){ | ||||||
| //        flag = true | //        flag = true | ||||||
| //      } | //      } | ||||||
| //      params.form[0].onsubmit = function(){ | //      params.form[0].onsubmit = function(){ | ||||||
| //        if(flag){ | //        if(flag){ | ||||||
| //          $(this).removeAttr('data-remote');//不这么搞return false没用 花擦花擦 | //          $(this).removeAttr('data-remote');//不这么搞return false没用 花擦花擦 | ||||||
| //        } | //        } | ||||||
| //        var is_checked = nh_check_field({ | //        var is_checked = nh_check_field({ | ||||||
| //          issubmit:true, | //          issubmit:true, | ||||||
| //          content:params.editor, | //          content:params.editor, | ||||||
| //          contentmsg:params.contentmsg, | //          contentmsg:params.contentmsg, | ||||||
| //          textarea:params.textarea | //          textarea:params.textarea | ||||||
| //        }); | //        }); | ||||||
| //        if(is_checked){ | //        if(is_checked){ | ||||||
| //          if(flag){ | //          if(flag){ | ||||||
| //            alert('add') | //            alert('add') | ||||||
| //            $(this).attr('data-remote','true'); | //            $(this).attr('data-remote','true'); | ||||||
| //          } | //          } | ||||||
| //          alert('ok') | //          alert('ok') | ||||||
| //          return true; | //          return true; | ||||||
| //        } | //        } | ||||||
| //        return false; | //        return false; | ||||||
| //      } | //      } | ||||||
| 
 | 
 | ||||||
|             params.form.submit(function(){ |             params.form.submit(function(){ | ||||||
|                 var flag = false; |                 var flag = false; | ||||||
|                 if(params.form.attr('data-remote') != undefined ){ |                 if(params.form.attr('data-remote') != undefined ){ | ||||||
|                     flag = true |                     flag = true | ||||||
|                 } |                 } | ||||||
|                 var is_checked = nh_check_field({ |                 var is_checked = nh_check_field({ | ||||||
|                     issubmit:true, |                     issubmit:true, | ||||||
|                     content:params.editor, |                     content:params.editor, | ||||||
|                     contentmsg:params.contentmsg, |                     contentmsg:params.contentmsg, | ||||||
|                     textarea:params.textarea, |                     textarea:params.textarea, | ||||||
|                     submit_btn:params.submit_btn, |                     submit_btn:params.submit_btn, | ||||||
|                     form:params.form |                     form:params.form | ||||||
|                 }); |                 }); | ||||||
|                 if(is_checked){ |                 if(is_checked){ | ||||||
|                     if(flag){ |                     if(flag){ | ||||||
|                         return true; |                         return true; | ||||||
|                     }else{ |                     }else{ | ||||||
|                         $(this)[0].submit(); |                         $(this)[0].submit(); | ||||||
|                         return false; |                         return false; | ||||||
|                     } |                     } | ||||||
| //          return true;      //这个涛哥的firefox不能提交 | //          return true;      //这个涛哥的firefox不能提交 | ||||||
|                     //$(this).trigger('submit');  //这个虽然能提交  但是他是个死循环 |                     //$(this).trigger('submit');  //这个虽然能提交  但是他是个死循环 | ||||||
|                     //$(this)[0].submit();        //用这个form的data-remote='true'没效果了 |                     //$(this)[0].submit();        //用这个form的data-remote='true'没效果了 | ||||||
|                     //肿么破阿  我滴个神   实在不行就用$.ajax()算了 |                     //肿么破阿  我滴个神   实在不行就用$.ajax()算了 | ||||||
|                 } |                 } | ||||||
|                 return false; |                 return false; | ||||||
|             }); |             }); | ||||||
|         } |         } | ||||||
|         function nh_reset_form(params){ |         function nh_reset_form(params){ | ||||||
|             params.form[0].reset(); |             params.form[0].reset(); | ||||||
|             params.textarea.empty(); |             params.textarea.empty(); | ||||||
|             if(params.editor != undefined){ |             if(params.editor != undefined){ | ||||||
|                 params.editor.html(params.textarea.html()); |                 params.editor.html(params.textarea.html()); | ||||||
|             } |             } | ||||||
|             params.contentmsg.hide(); |             params.contentmsg.hide(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         KindEditor.ready(function(K){ |         KindEditor.ready(function(K){ | ||||||
|             $("a[nhname='reply_btn']").live('click',function(){ |             $("a[nhname='reply_btn']").live('click',function(){ | ||||||
|                 var params = {}; |                 var params = {}; | ||||||
|                 params.kindutil = K; |                 params.kindutil = K; | ||||||
|                 params.container = $(this).parent('div').parent('div'); |                 params.container = $(this).parent('div').parent('div'); | ||||||
|                 params.div_form = $(">.respond-form",params.container); |                 params.div_form = $(">.respond-form",params.container); | ||||||
|                 params.form = $("form",params.div_form); |                 params.form = $("form",params.div_form); | ||||||
|                 params.textarea = $("textarea[name='user_notes']",params.div_form); |                 params.textarea = $("textarea[name='user_notes']",params.div_form); | ||||||
|                 params.contentmsg = $("p[nhname='contentmsg']",params.div_form); |                 params.contentmsg = $("p[nhname='contentmsg']",params.div_form); | ||||||
|                 params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form); |                 params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form); | ||||||
|                 params.cancel_btn = $("input[nhname='cancel_btn']",params.div_form); |                 params.cancel_btn = $("input[nhname='cancel_btn']",params.div_form); | ||||||
|                 params.submit_btn = $("input[nhname='submit_btn']",params.div_form); |                 params.submit_btn = $("input[nhname='submit_btn']",params.div_form); | ||||||
|                 params.editor = init_editor(params); |                 params.editor = init_editor(params); | ||||||
|                 init_form(params); |                 init_form(params); | ||||||
|                 params.submit_btn.one('click', function () { |                 params.submit_btn.one('click', function () { | ||||||
|                     params.form.submit(); |                     params.form.submit(); | ||||||
|                 }); |                 }); | ||||||
|                 params.cancel_btn.click(function(){ |                 params.cancel_btn.click(function(){ | ||||||
|                     nh_reset_form(params); |                     nh_reset_form(params); | ||||||
|                 }); |                 }); | ||||||
|                 params.cancel_btn.click(); |                 params.cancel_btn.click(); | ||||||
|                 toggleAndSettingWordsVal(params.div_form, params.textarea); |                 toggleAndSettingWordsVal(params.div_form, params.textarea); | ||||||
|                 setTimeout(function(){ |                 setTimeout(function(){ | ||||||
|                     if(!params.div_form.is(':hidden')){ |                     if(!params.div_form.is(':hidden')){ | ||||||
|                         params.textarea.show(); |                         params.textarea.show(); | ||||||
|                         params.textarea.focus(); |                         params.textarea.focus(); | ||||||
|                         params.textarea.hide(); |                         params.textarea.hide(); | ||||||
| //            $("#nhjump").attr('href','#'+params.div_form.attr('id')); | //            $("#nhjump").attr('href','#'+params.div_form.attr('id')); | ||||||
| //            $("#nhjump")[0].click(); | //            $("#nhjump")[0].click(); | ||||||
|                     } |                     } | ||||||
|                 },300); |                 },300); | ||||||
|                 params.textarea.data('init',1); |                 params.textarea.data('init',1); | ||||||
|             }); |             }); | ||||||
| 
 | 
 | ||||||
|             $("div[nhname='new_message']").each(function(){ |             $("div[nhname='new_message']").each(function(){ | ||||||
|                 var params = {}; |                 var params = {}; | ||||||
|                 params.kindutil = K; |                 params.kindutil = K; | ||||||
|                 params.div_form = $(this); |                 params.div_form = $(this); | ||||||
|                 params.form = $("form",params.div_form); |                 params.form = $("form",params.div_form); | ||||||
|                 if(params.form==undefined || params.form.length==0){ |                 if(params.form==undefined || params.form.length==0){ | ||||||
|                     return; |                     return; | ||||||
|                 } |                 } | ||||||
|                 params.textarea = $("textarea[nhname='new_message_textarea']",params.div_form); |                 params.textarea = $("textarea[nhname='new_message_textarea']",params.div_form); | ||||||
|                 params.contentmsg = $("p[nhname='contentmsg']",params.div_form); |                 params.contentmsg = $("p[nhname='contentmsg']",params.div_form); | ||||||
|                 params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form); |                 params.toolbar_container = $("div[nhname='toolbar_container']",params.div_form); | ||||||
|                 if(params.textarea.data('init') == undefined){ |                 if(params.textarea.data('init') == undefined){ | ||||||
|                     params.editor = init_editor(params); |                     params.editor = init_editor(params); | ||||||
|                     init_form(params); |                     init_form(params); | ||||||
| //          $("a[nhname='cancel_btn']",params.div_form).click(function(){ | //          $("a[nhname='cancel_btn']",params.div_form).click(function(){ | ||||||
| //            nh_reset_form(params); | //            nh_reset_form(params); | ||||||
| //          }); | //          }); | ||||||
|                     params.textarea.data('init',1); |                     params.textarea.data('init',1); | ||||||
|                 } |                 } | ||||||
|             }); |             }); | ||||||
|         }); |         }); | ||||||
|     }); |     }); | ||||||
| </script> | </script> | ||||||
|  | |||||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue