commit
7748704c3a
@ -0,0 +1,29 @@
|
||||
class AppliedProjectController < ApplicationController
|
||||
|
||||
#申请加入项目
|
||||
def applied_join_project
|
||||
@user_id = params[:user_id]
|
||||
@project = Project.find(params[:project_id])
|
||||
AppliedProject.create(:user_id => params[:user_id], :project_id => params[:project_id])
|
||||
#redirect_to project_path(params[:project_id])
|
||||
#redirect_to_referer_or {render :text => ( 'applied success.'), :layout => true}
|
||||
respond_to do |format|
|
||||
format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
|
||||
format.js { render :partial => 'set_applied'}
|
||||
end
|
||||
end
|
||||
|
||||
#取消申请
|
||||
def unapplied_join_project
|
||||
@project = Project.find(params[:project_id])
|
||||
@applied = AppliedProject.find(params[:id])
|
||||
@applied.destroy
|
||||
#redirect_to project_path(params[:project_id])
|
||||
#redirect_to_referer_or {render :text => ( 'unsubscribe success.'), :layout => true}
|
||||
respond_to do |format|
|
||||
format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
|
||||
format.js { render :partial => 'set_applied' }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -0,0 +1,28 @@
|
||||
module AppliedProjectHelper
|
||||
|
||||
def applied_css(project)
|
||||
id = project.id
|
||||
"#{project.class.to_s.underscore}-#{id}-applied"
|
||||
end
|
||||
|
||||
def applied_link(project, user, options=[])
|
||||
return '' unless user && user.logged?
|
||||
applied = project.applied_projects.find_by_user_id(user.id)
|
||||
text = applied ? l(:label_unapply_project) : l(:label_apply_project)
|
||||
|
||||
@applied_flag = project.instance_of?(Project)
|
||||
css = @applied_flag ? ([applied_css(project), applied ? 'icon ' : 'icon '].join(' ') << options[0].to_s) :
|
||||
([applied_css(project), applied ? 'icon icon-applied ' : 'icon icon-applied-off '].join(' ') << options[0].to_s)
|
||||
if applied
|
||||
appliedid = applied.id
|
||||
end
|
||||
url = appliedproject_path(
|
||||
:id=>appliedid,
|
||||
:user_id => user.id,
|
||||
:project_id => project.id
|
||||
)
|
||||
method = applied ? 'delete' : 'post'
|
||||
|
||||
link_to text, url, :remote => true, :method => method ,:class=>css
|
||||
end
|
||||
end
|
@ -0,0 +1,6 @@
|
||||
class AppliedProject < ActiveRecord::Base
|
||||
attr_accessible :project_id, :user_id
|
||||
|
||||
belongs_to :user
|
||||
belongs_to :project
|
||||
end
|
@ -0,0 +1,4 @@
|
||||
<% selector = ".#{applied_css(@project)}" %>
|
||||
$("<%= selector %>").each(function(){$(this).replaceWith("<%= escape_javascript applied_link(@project, User.current) %>")});
|
||||
|
||||
|
@ -0,0 +1,22 @@
|
||||
<div class="user_course_list">
|
||||
<div class="menu">
|
||||
<%= link_to "#{l(:label_course_new)}", new_project_path(course: 1, project_type: 1), class: 'icon icon-add' if @user == User.current %>
|
||||
<ul>
|
||||
<li mode='doing' class="on">进行中</li>
|
||||
<li mode='end'>已完结</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="dyn_list_wrapper" mode='doing'>
|
||||
<div class='created_course'>
|
||||
<%= render :partial => 'course_form', :locals => {:memberships => @memberships_doing} %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dyn_list_wrapper hidden" mode='end'>
|
||||
<div class="created_course ">
|
||||
<%= render :partial => 'course_form', :locals => {:memberships => @memberships_done} %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,38 +1,16 @@
|
||||
<div class="content-title-top">
|
||||
<% if @memberships.empty? %>
|
||||
<% if @user != User.current %>
|
||||
<p class="font_description">
|
||||
<%= l(:label_project_course_un) %>
|
||||
</p>
|
||||
<% else %>
|
||||
<p class="font_description">
|
||||
<!--teacher could create the course directly-->
|
||||
<%= l(:label_project_course_unadd) %><%= link_to"#{l(:label_course_new)}",{:controller=>'projects',:action=>'new', :course => 1, :project_type => 1}, :class => 'icon icon-add' %>
|
||||
</p>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<p>
|
||||
<span><%=l(:label_course_doing)%>(<%=@memberships_doing.count%>)</span>
|
||||
<%= link_to"#{l(:label_course_new)}",{:controller=>'projects',:action=>'new', :course => 1, :project_type => 1}, :class => 'icon icon-add' if @user == User.current %>
|
||||
</p>
|
||||
<p>
|
||||
<%= l(:label_created_course) %>
|
||||
<div> <%= render :partial => 'course_form', :locals => {:memberships => @OwningCouses}%>
|
||||
</div> </p>
|
||||
<div style="clear:both;"></div>
|
||||
<p> <%= l(:label_joined_course) %>
|
||||
<div> <%= render :partial => 'course_form', :locals => {:memberships => @JoinCouses}%>
|
||||
</div> </p>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
<p>
|
||||
<%= link_to l(:label_course_done)+"("+@memberships_done.count.to_s+")", 'javascript:void(0);', :onclick => '$("#courses_history_block").slideToggle(400);' , style:"color:#666666" if User.current.logged? %>
|
||||
</p>
|
||||
|
||||
<div id="courses_history_block" class="courses_history hidden" >
|
||||
<%= render :partial => 'course_form', :locals => {:memberships => @memberships_done}%>
|
||||
</div>
|
||||
|
||||
<% end %>
|
||||
<% if @memberships.empty? %>
|
||||
<% if @user != User.current %>
|
||||
<p class="font_description">
|
||||
<%= l(:label_project_course_un) %>
|
||||
</p>
|
||||
<% else %>
|
||||
<p class="font_description">
|
||||
<!--teacher could create the course directly-->
|
||||
<%= l(:label_project_course_unadd) %><%= link_to "#{l(:label_course_new)}", {:controller => 'projects', :action => 'new', :course => 1, :project_type => 1}, :class => 'icon icon-add' %>
|
||||
</p>
|
||||
<% end %>
|
||||
<% else %>
|
||||
<%= render partial: 'course_list_have_entity' %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
@ -0,0 +1,12 @@
|
||||
class CreateAppliedProjects < ActiveRecord::Migration
|
||||
def self.up
|
||||
create_table :applied_projects do |t|
|
||||
t.column :project_id, :integer, :null => false
|
||||
t.column :user_id, :integer, :null => false
|
||||
end
|
||||
end
|
||||
|
||||
def self.down
|
||||
drop_table :applied_projects
|
||||
end
|
||||
end
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue