组织模块动态及配置
This commit is contained in:
parent
b127eadb9d
commit
283af137c6
|
@ -1,5 +1,10 @@
|
||||||
|
# encoding: utf-8
|
||||||
class OrganizationsController < ApplicationController
|
class OrganizationsController < ApplicationController
|
||||||
|
# before_filter :find_organization, :except => [:show,:new,:index,:create]
|
||||||
layout 'base_org'
|
layout 'base_org'
|
||||||
|
def index
|
||||||
|
|
||||||
|
end
|
||||||
def new
|
def new
|
||||||
@organization = Organization.new
|
@organization = Organization.new
|
||||||
render :layout => 'new_base'
|
render :layout => 'new_base'
|
||||||
|
@ -10,18 +15,56 @@ class OrganizationsController < ApplicationController
|
||||||
@organization.description = params[:organization][:description]
|
@organization.description = params[:organization][:description]
|
||||||
@organization.is_public = params[:organization][:is_public]
|
@organization.is_public = params[:organization][:is_public]
|
||||||
@organization.creator_id = User.current.id
|
@organization.creator_id = User.current.id
|
||||||
member = OrgMember.new(:user_id => User.current.id, :role => 'Manager')
|
member = OrgMember.new(:user_id => User.current.id)
|
||||||
|
|
||||||
@organization.org_members << member
|
@organization.org_members << member
|
||||||
if @organization.save
|
if @organization.save
|
||||||
|
OrgMemberRole.create(:org_member_id => member.id, :role_id => 11)
|
||||||
redirect_to organization_path(@organization)
|
redirect_to organization_path(@organization)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
|
@organization = Organization.find(params[:id])
|
||||||
|
@activities = OrgActivity.where('(org_act_id = ? and org_act_type = ?)', @organization.id, 'CreateOrganization ')
|
||||||
|
@activities = paginateHelper @activities, 10
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
@organization = Organization.find(params[:id])
|
||||||
|
@organization.name = params[:organization][:name]
|
||||||
|
@organization.description = params[:organization][:description]
|
||||||
|
@organization.domain = params[:organization][:domain]
|
||||||
|
@organization.is_public = params[:organization][:is_public] == 'on' ? 1 : 0
|
||||||
|
#@organization.name = params[:organization][:name]
|
||||||
|
@organization.save
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { redirect_to setting_organization_path(@organization)}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_uniq
|
||||||
|
@check = false;
|
||||||
|
@config_page = params[:config_page]
|
||||||
|
sameName = @config_page ? Organization.where('name = ? and id != ?',params[:org_name],params[:org_id].to_i).count == 0 : Organization.where('name = ?',params[:org_name]).count == 0
|
||||||
|
if sameName == true
|
||||||
|
@check = true
|
||||||
|
end
|
||||||
|
respond_to do |format|
|
||||||
|
format.js
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def find_organization
|
||||||
|
@organization = Organization.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
def setting
|
||||||
|
@organization = Organization.find(params[:id])
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def clear_org_avatar_temp
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -48,6 +48,15 @@ module ApplicationHelper
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
# 获取组织成员中文名字
|
||||||
|
def get_org_member_role_name member
|
||||||
|
case member.roles[0].name
|
||||||
|
when 'orgManager'
|
||||||
|
'组织管理员'
|
||||||
|
when 'orgMember'
|
||||||
|
'组织成员'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Time 2015-03-24 16:38:05
|
# Time 2015-03-24 16:38:05
|
||||||
# Author lizanle
|
# Author lizanle
|
||||||
|
|
|
@ -1,2 +1,19 @@
|
||||||
|
# encoding: utf-8
|
||||||
module OrganizationsHelper
|
module OrganizationsHelper
|
||||||
|
include ApplicationHelper
|
||||||
|
|
||||||
|
|
||||||
|
def find_user_not_in_current_org_by_name org
|
||||||
|
if params[:q] && params[:q].lstrip.rstrip != ""
|
||||||
|
scope = Principal.active.sorted.not_member_of_org(org).like(params[:q])
|
||||||
|
else
|
||||||
|
scope = []
|
||||||
|
end
|
||||||
|
principals = paginateHelper scope,10
|
||||||
|
s = content_tag('ul', project_member_check_box_tags_ex('membership[user_ids][]', principals), :class => 'mb5', :id => 'principals')
|
||||||
|
links = pagination_links_full(@obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true){|text, parameters, options|
|
||||||
|
link_to text, org_member_autocomplete_org_member_index_path( parameters.merge(:q => params[:q],:flag => true,:org=>org, :format => 'js')), :remote => true
|
||||||
|
}
|
||||||
|
s + content_tag('ul', links,:class => 'wlist', :id => "org_member_pagination_links" )
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
class OrgMember < ActiveRecord::Base
|
class OrgMember < ActiveRecord::Base
|
||||||
attr_accessible :organization_id, :role, :user_id
|
attr_accessible :organization_id, :role, :user_id
|
||||||
belongs_to :organization
|
belongs_to :organization
|
||||||
|
has_many :roles ,:through => :org_member_roles,:foreign_key => 'role_id'
|
||||||
|
has_many :org_member_roles,:dependent => :destroy
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class OrgMemberRole < ActiveRecord::Base
|
||||||
|
# attr_accessible :title, :body
|
||||||
|
belongs_to :org_member
|
||||||
|
belongs_to :role
|
||||||
|
end
|
|
@ -1,5 +1,13 @@
|
||||||
class Organization < ActiveRecord::Base
|
class Organization < ActiveRecord::Base
|
||||||
attr_accessible :name, :description, :creator_id, :home_id, :domain, :is_public
|
attr_accessible :name, :description, :creator_id, :home_id, :domain, :is_public
|
||||||
has_many :org_members, :dependent => :destroy
|
has_many :org_members, :dependent => :destroy
|
||||||
has_many :projects
|
has_many :org_projects ,:dependent => :destroy
|
||||||
|
has_many :projects,:through => :org_projects
|
||||||
|
has_many :org_document_comments, :dependent => :destroy
|
||||||
|
validates_uniqueness_of :name
|
||||||
|
after_create :save_as_org_activity
|
||||||
|
|
||||||
|
def save_as_org_activity
|
||||||
|
OrgActivity.create(:user_id => User.current.id, :org_act_id => self.id, :org_act_type => 'CreateOrganization', :container_id => self.id, :container_type => 'Organization')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -87,6 +87,16 @@ class Principal < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
scope :not_member_of_org, lambda {|org|
|
||||||
|
orgs = [org] unless org.is_a?(Array)
|
||||||
|
if orgs.empty?
|
||||||
|
where("1=0")
|
||||||
|
else
|
||||||
|
ids = orgs.map(&:id)
|
||||||
|
where("#{Principal.table_name}.id NOT IN (SELECT DISTINCT user_id FROM #{OrgMember.table_name} WHERE organization_id IN (?))", ids)
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
scope :sorted, lambda { order(*Principal.fields_for_order_statement)}
|
scope :sorted, lambda { order(*Principal.fields_for_order_statement)}
|
||||||
|
|
||||||
scope :applied_members, lambda {|project|
|
scope :applied_members, lambda {|project|
|
||||||
|
|
|
@ -69,6 +69,7 @@ class Project < ActiveRecord::Base
|
||||||
has_many :applied_projects, :dependent => :destroy
|
has_many :applied_projects, :dependent => :destroy
|
||||||
has_many :invite_lists, :dependent => :destroy
|
has_many :invite_lists, :dependent => :destroy
|
||||||
has_one :dts
|
has_one :dts
|
||||||
|
has_many :organizations,:through => :org_projects
|
||||||
|
|
||||||
# end
|
# end
|
||||||
#ADDED BY NIE
|
#ADDED BY NIE
|
||||||
|
@ -96,7 +97,8 @@ class Project < ActiveRecord::Base
|
||||||
# 关联虚拟表
|
# 关联虚拟表
|
||||||
has_many :forge_messages, :class_name =>'ForgeMessage', :as => :forge_message, :dependent => :destroy
|
has_many :forge_messages, :class_name =>'ForgeMessage', :as => :forge_message, :dependent => :destroy
|
||||||
|
|
||||||
belongs_to :organization
|
has_many :org_projects,:dependent => :destroy
|
||||||
|
has_many :organization,:through => :org_projects
|
||||||
|
|
||||||
# has_many :journals
|
# has_many :journals
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,8 @@ class Role < ActiveRecord::Base
|
||||||
|
|
||||||
has_many :member_roles, :dependent => :destroy
|
has_many :member_roles, :dependent => :destroy
|
||||||
has_many :members, :through => :member_roles
|
has_many :members, :through => :member_roles
|
||||||
|
has_many :org_member_roles, :dependent => :destroy
|
||||||
|
has_many :org_members,:through => :org_member_roles
|
||||||
acts_as_list
|
acts_as_list
|
||||||
|
|
||||||
serialize :permissions, ::Role::PermissionsAttributeCoder
|
serialize :permissions, ::Role::PermissionsAttributeCoder
|
||||||
|
|
|
@ -94,6 +94,7 @@ class User < Principal
|
||||||
has_one :preference, :dependent => :destroy, :class_name => 'UserPreference'
|
has_one :preference, :dependent => :destroy, :class_name => 'UserPreference'
|
||||||
has_one :rss_token, :class_name => 'Token', :conditions => "action='feeds'"
|
has_one :rss_token, :class_name => 'Token', :conditions => "action='feeds'"
|
||||||
has_one :blog, :class_name => 'Blog', :foreign_key => "author_id"
|
has_one :blog, :class_name => 'Blog', :foreign_key => "author_id"
|
||||||
|
has_many :org_document_comments, :dependent =>:destroy
|
||||||
has_one :api_token, :class_name => 'Token', :conditions => "action='api'"
|
has_one :api_token, :class_name => 'Token', :conditions => "action='api'"
|
||||||
belongs_to :auth_source
|
belongs_to :auth_source
|
||||||
belongs_to :ucourse, :class_name => 'Course', :foreign_key => :id #huang
|
belongs_to :ucourse, :class_name => 'Course', :foreign_key => :id #huang
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
<%= favicon %>
|
<%= favicon %>
|
||||||
<%= javascript_heads %>
|
<%= javascript_heads %>
|
||||||
<%= heads_for_theme %>
|
<%= heads_for_theme %>
|
||||||
<%= stylesheet_link_tag 'pleft','prettify','jquery/jquery-ui-1.9.2','header','new_user','repository' %>
|
<%= stylesheet_link_tag 'pleft','prettify','jquery/jquery-ui-1.9.2','header','new_user','repository','org' %>
|
||||||
<%= javascript_include_tag 'cookie','project', 'header','prettify','select_list_move' %>
|
<%= javascript_include_tag 'cookie','project', 'header','prettify','select_list_move','org'%>
|
||||||
<%= call_hook :view_layouts_base_html_head %>
|
<%= call_hook :view_layouts_base_html_head %>
|
||||||
<!-- page specific tags -->
|
<!-- page specific tags -->
|
||||||
<%= yield :header_tags -%>
|
<%= yield :header_tags -%>
|
||||||
|
@ -35,11 +35,24 @@
|
||||||
<div class="homepageContent">
|
<div class="homepageContent">
|
||||||
<div class="homepageLeft">
|
<div class="homepageLeft">
|
||||||
<div class="homepagePortraitContainer">
|
<div class="homepagePortraitContainer">
|
||||||
<div class="pr_info_logo fl mr10 mb5">
|
<!--<div class="pr_info_logo fl mr10 mb5">-->
|
||||||
<%= image_tag(url_to_avatar(@organization), :width=>"60", :height=>"60", :alt=>"组织logo") %>
|
<!--<%#= image_tag(url_to_avatar(@organization), :width=>"60", :height=>"60", :alt=>"组织logo") %>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<div class="pr_info_logo fl fl mr10 mb5" id="homepage_portrait_image">
|
||||||
|
<%= image_tag(url_to_avatar(@organization),width:"60", height: "60", :id=>'nh_user_tx') %>
|
||||||
|
<% if User.current.logged?%>
|
||||||
|
<% if User.current.id == @organization.creator_id%>
|
||||||
|
<div id="edit_org_file_btn" class="none">
|
||||||
|
<div class="homepageEditProfile">
|
||||||
|
<a href="<%= clear_org_avatar_temp_organization_path(@organization) %>" data-remote="true" class="homepageEditProfileIcon"></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end%>
|
||||||
</div>
|
</div>
|
||||||
<div class="orgName fl mb5 f14">组织id:<%= @organization.id %></div>
|
<div class="orgName fl mb5 f14">组织id:<%= @organization.id %></div>
|
||||||
<a href="/projects/813/settings" class="pr_join_a"><span class="pr_setting"></span>配置</a>
|
<a href="<%= setting_organization_path(@organization) %>" class="pr_join_a"><span class="pr_setting"></span>配置</a>
|
||||||
|
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<div class="f12 fontGrey3">文章 ( <a href="javascript:void(0);" class="linkBlue">3</a> ) | 成员 ( <a href="javascript:void(0);" class="linkBlue">10</a> )</div>
|
<div class="f12 fontGrey3">文章 ( <a href="javascript:void(0);" class="linkBlue">3</a> ) | 成员 ( <a href="javascript:void(0);" class="linkBlue">10</a> )</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -59,94 +72,94 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="homepageRight">
|
<div class="homepageRight">
|
||||||
<div class="homepageRightBanner">
|
<%= render_flash_messages %>
|
||||||
<div class="NewsBannerName">最新动态</div>
|
<%= yield %>
|
||||||
<ul class="resourcesSelect">
|
<%= call_hook :view_layouts_base_content %>
|
||||||
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
|
<div style="clear:both;"></div>
|
||||||
<ul class="resourcesType">
|
|
||||||
<li class="mt-4"><a href="javascript:void(0);" class="homepagePostTypeAll postTypeGrey">全部动态</a></li>
|
|
||||||
<li class="mt-4"><a href="/users/8523/user_activities?type=current_user" class="homepagePostTypeMine postTypeGrey">我的动态</a> </li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="resources mt10">
|
|
||||||
<div class="homepagePostBrief">
|
|
||||||
<div class="homepagePostPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="50" height="50" alt="用户头像" /></a></div>
|
|
||||||
<div class="homepagePostDes">
|
|
||||||
<div class="homepagePostTo"><a href="javascript:void(0);" class="newsBlue mr15">尹教授</a> TO <a href="javascript:void(0);" class="newsBlue ml15">micROS研究团队 | 组织</a></div>
|
|
||||||
<div class="homepagePostTitle"><a href="javascript:void(0);" class="postGrey">如何打造一场罗永浩式的精彩演讲?</a></div>
|
|
||||||
<div class="homepagePostDate"> 发帖时间:2015-11-02 11:25 </div>
|
|
||||||
<div class="homepagePostIntro">罗永浩已经把他的主题演讲成功变成了一次次的重大的媒体事件,这让科技界和营销界的从业者们羡慕不已。事实上,老罗不仅从乔布斯那里继承了乔式审美,设计哲学,同时也继承了乔布斯的演讲艺术。乔布斯是人类历史上最伟大的演讲者。在一次又一次的"罗氏演讲"中,我们可以清晰看到老罗对乔布斯演讲的拆解,学习,模仿。每一次的公开演讲,都是一堂案例级的营销课程,值得每一位有志于从事营销相关的朋友分析研究。<br />
|
|
||||||
下面,我们将从"故事"、"现场"、"准备"三个方面分析学习老罗的演讲技巧,教你如何打造一场"罗永浩式"的演讲。 </div>
|
|
||||||
<div class="homepagePostSetting">
|
|
||||||
<ul>
|
|
||||||
<li class="homepagePostSettingIcon">
|
|
||||||
<ul class="homepagePostSettiongText">
|
|
||||||
<li><a href="javascript:void(0);" class="postOptionLink">设为首页</a></li>
|
|
||||||
<li><a href="javascript:void(0);" class="postOptionLink">编辑文章</a></li>
|
|
||||||
<li><a href="javascript:void(0);" class="postOptionLink">删除文章</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
|
||||||
<div class="homepagePostReply">
|
|
||||||
<div class="homepagePostReplyBanner">
|
|
||||||
<div class="homepagePostReplyBannerCount">回复(2)</div>
|
|
||||||
<!--<div class="homepagePostReplyBannerTime">2015-07-31</div>-->
|
|
||||||
<!--<div class="homepagePostReplyBannerMore"><a href="javascript:void(0);" class="replyGrey">点击展开更多回复</a></div>-->
|
|
||||||
</div>
|
|
||||||
<div class="homepagePostReplyContainer">
|
|
||||||
<div class="homepagePostReplyPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="33" height="33" alt="用户头像" /></a></div>
|
|
||||||
<div class="homepagePostReplyDes">
|
|
||||||
<div class="homepagePostReplyPublisher"><a href="javascript:void(0);" class="newsBlue mr10 f14">黄井泉 学生</a> 2015-11-03 12:26</div>
|
|
||||||
<div class="homepagePostReplyContent">学习下!</div>
|
|
||||||
</div>
|
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
|
||||||
<div class="homepagePostReplyContainer">
|
|
||||||
<div class="homepagePostReplyPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="33" height="33" alt="用户头像" /></a></div>
|
|
||||||
<div class="homepagePostReplyDes">
|
|
||||||
<div class="homepagePostReplyPublisher"><a href="javascript:void(0);" class="newsBlue mr10 f14">陈正东 学生</a> 2015-11-02 17:08</div>
|
|
||||||
<div class="homepagePostReplyContent">锤子手机,卖的就是情怀</div>
|
|
||||||
</div>
|
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
|
||||||
<div class="homepagePostReplyContainer">
|
|
||||||
<div class="homepagePostReplyPortrait mr15"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="33" height="33" alt="用户头像" /></a></div>
|
|
||||||
<div class="homepagePostReplyInputContainer">
|
|
||||||
<textarea class="homepagePostReplyInput fl mr15" placeholder="请输入回复"></textarea>
|
|
||||||
<a href="javascript:void(0);" class="homepagePostReplyEmotion mt5"></a> <a href="javascript:void(0);" class="homepagePostReplySubmit postReplySubmit fl mt5">发送</a> </div>
|
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="resources mt10">
|
|
||||||
<div class="homepagePostBrief">
|
|
||||||
<div class="homepagePostPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="50" height="50" alt="用户头像" /></a></div>
|
|
||||||
<div class="homepagePostDes">
|
|
||||||
<div class="homepagePostTo"><a href="javascript:void(0);" class="newsBlue mr10">唐湘政</a> 创建了 <a href="javascript:void(0);" class="newsBlue ml10">micROS研究团队
|
|
||||||
| 组织</a></div>
|
|
||||||
<div class="homepagePostTitle"><a href="javascript:void(0);" class="postGrey">micROS研究团队 </a></div>
|
|
||||||
<div class="homepagePostDate"> 创建时间:2015-10-29 11:23 </div>
|
|
||||||
</div>
|
|
||||||
<div class="cl"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<!--<div class="homepageRight">-->
|
||||||
|
<!--<div class="homepageRightBanner">-->
|
||||||
|
<!--<div class="NewsBannerName">最新动态</div>-->
|
||||||
|
<!--<ul class="resourcesSelect">-->
|
||||||
|
<!--<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>-->
|
||||||
|
<!--<ul class="resourcesType">-->
|
||||||
|
<!--<li class="mt-4"><a href="javascript:void(0);" class="homepagePostTypeAll postTypeGrey">全部动态</a></li>-->
|
||||||
|
<!--<li class="mt-4"><a href="/users/8523/user_activities?type=current_user" class="homepagePostTypeMine postTypeGrey">我的动态</a> </li>-->
|
||||||
|
<!--</ul>-->
|
||||||
|
<!--</li>-->
|
||||||
|
<!--</ul>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="resources mt10">-->
|
||||||
|
<!--<div class="homepagePostBrief">-->
|
||||||
|
<!--<div class="homepagePostPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="50" height="50" alt="用户头像" /></a></div>-->
|
||||||
|
<!--<div class="homepagePostDes">-->
|
||||||
|
<!--<div class="homepagePostTo"><a href="javascript:void(0);" class="newsBlue mr15">尹教授</a> TO <a href="javascript:void(0);" class="newsBlue ml15">micROS研究团队 | 组织</a></div>-->
|
||||||
|
<!--<div class="homepagePostTitle"><a href="javascript:void(0);" class="postGrey">如何打造一场罗永浩式的精彩演讲?</a></div>-->
|
||||||
|
<!--<div class="homepagePostDate"> 发帖时间:2015-11-02 11:25 </div>-->
|
||||||
|
<!--<div class="homepagePostIntro">罗永浩已经把他的主题演讲成功变成了一次次的重大的媒体事件,这让科技界和营销界的从业者们羡慕不已。事实上,老罗不仅从乔布斯那里继承了乔式审美,设计哲学,同时也继承了乔布斯的演讲艺术。乔布斯是人类历史上最伟大的演讲者。在一次又一次的"罗氏演讲"中,我们可以清晰看到老罗对乔布斯演讲的拆解,学习,模仿。每一次的公开演讲,都是一堂案例级的营销课程,值得每一位有志于从事营销相关的朋友分析研究。<br />-->
|
||||||
|
<!--下面,我们将从"故事"、"现场"、"准备"三个方面分析学习老罗的演讲技巧,教你如何打造一场"罗永浩式"的演讲。 </div>-->
|
||||||
|
<!--<div class="homepagePostSetting">-->
|
||||||
|
<!--<ul>-->
|
||||||
|
<!--<li class="homepagePostSettingIcon">-->
|
||||||
|
<!--<ul class="homepagePostSettiongText">-->
|
||||||
|
<!--<li><a href="javascript:void(0);" class="postOptionLink">设为首页</a></li>-->
|
||||||
|
<!--<li><a href="javascript:void(0);" class="postOptionLink">编辑文章</a></li>-->
|
||||||
|
<!--<li><a href="javascript:void(0);" class="postOptionLink">删除文章</a></li>-->
|
||||||
|
<!--</ul>-->
|
||||||
|
<!--</li>-->
|
||||||
|
<!--</ul>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="cl"></div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="homepagePostReply">-->
|
||||||
|
<!--<div class="homepagePostReplyBanner">-->
|
||||||
|
<!--<div class="homepagePostReplyBannerCount">回复(2)</div>-->
|
||||||
|
<!--<!–<div class="homepagePostReplyBannerTime">2015-07-31</div>–>-->
|
||||||
|
<!--<!–<div class="homepagePostReplyBannerMore"><a href="javascript:void(0);" class="replyGrey">点击展开更多回复</a></div>–>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="homepagePostReplyContainer">-->
|
||||||
|
<!--<div class="homepagePostReplyPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="33" height="33" alt="用户头像" /></a></div>-->
|
||||||
|
<!--<div class="homepagePostReplyDes">-->
|
||||||
|
<!--<div class="homepagePostReplyPublisher"><a href="javascript:void(0);" class="newsBlue mr10 f14">黄井泉 学生</a> 2015-11-03 12:26</div>-->
|
||||||
|
<!--<div class="homepagePostReplyContent">学习下!</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="cl"></div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="homepagePostReplyContainer">-->
|
||||||
|
<!--<div class="homepagePostReplyPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="33" height="33" alt="用户头像" /></a></div>-->
|
||||||
|
<!--<div class="homepagePostReplyDes">-->
|
||||||
|
<!--<div class="homepagePostReplyPublisher"><a href="javascript:void(0);" class="newsBlue mr10 f14">陈正东 学生</a> 2015-11-02 17:08</div>-->
|
||||||
|
<!--<div class="homepagePostReplyContent">锤子手机,卖的就是情怀</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="cl"></div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="homepagePostReplyContainer">-->
|
||||||
|
<!--<div class="homepagePostReplyPortrait mr15"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="33" height="33" alt="用户头像" /></a></div>-->
|
||||||
|
<!--<div class="homepagePostReplyInputContainer">-->
|
||||||
|
<!--<textarea class="homepagePostReplyInput fl mr15" placeholder="请输入回复"></textarea>-->
|
||||||
|
<!--<a href="javascript:void(0);" class="homepagePostReplyEmotion mt5"></a> <a href="javascript:void(0);" class="homepagePostReplySubmit postReplySubmit fl mt5">发送</a> </div>-->
|
||||||
|
<!--<div class="cl"></div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="cl"></div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="resources mt10">-->
|
||||||
|
<!--<div class="homepagePostBrief">-->
|
||||||
|
<!--<div class="homepagePostPortrait"><a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="50" height="50" alt="用户头像" /></a></div>-->
|
||||||
|
<!--<div class="homepagePostDes">-->
|
||||||
|
<!--<div class="homepagePostTo"><a href="javascript:void(0);" class="newsBlue mr10">唐湘政</a> 创建了 <a href="javascript:void(0);" class="newsBlue ml10">micROS研究团队-->
|
||||||
|
<!--| 组织</a></div>-->
|
||||||
|
<!--<div class="homepagePostTitle"><a href="javascript:void(0);" class="postGrey">micROS研究团队 </a></div>-->
|
||||||
|
<!--<div class="homepagePostDate"> 创建时间:2015-10-29 11:23 </div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--<div class="cl"></div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<!--</div>-->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="RSide" class="fl">
|
|
||||||
<%= render_flash_messages %>
|
|
||||||
<%= yield %>
|
|
||||||
<%= call_hook :view_layouts_base_content %>
|
|
||||||
<div style="clear:both;"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--页面底部-->
|
<!--页面底部-->
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
$("#org_member_list").html('<%= escape_javascript( render :partial=>"organizations/org_member_list",:locals=> {:members=>@org.org_members}) %>');
|
||||||
|
$("#principals_for_new_member").html('')
|
|
@ -0,0 +1 @@
|
||||||
|
$("#org_member_list").html('<%= escape_javascript( render :partial=>"organizations/org_member_list",:locals=> {:members=>@org.org_members}) %>');
|
|
@ -0,0 +1,23 @@
|
||||||
|
<% if @org%>
|
||||||
|
var checked = $("#not_org_members input:checked").size();
|
||||||
|
if(checked > 0)
|
||||||
|
{
|
||||||
|
alert('翻页或搜索后将丢失当前选择的用户数据!');
|
||||||
|
}
|
||||||
|
<% if @flag == "true"%>
|
||||||
|
$('#principals_for_new_member').html('<%= escape_javascript(find_user_not_in_current_org_by_name(@org)) %>');
|
||||||
|
<% else%>
|
||||||
|
$('#principals_for_new_member').html('<%= escape_javascript(find_user_not_in_current_org_by_name(@org)) %>');
|
||||||
|
<% end%>
|
||||||
|
|
||||||
|
<%end%>
|
||||||
|
var collection=$("#principals_for_new_member").children("#principals").children("label");
|
||||||
|
collection.css("text-overflow","ellipsis");
|
||||||
|
collection.css("white-space","nowrap");
|
||||||
|
collection.css("width","200px");
|
||||||
|
collection.css("overflow","hidden");
|
||||||
|
for(i=0;i<collection.length;i++){ //增加悬浮显示
|
||||||
|
var label=collection[i];
|
||||||
|
var text=$(label).text();
|
||||||
|
$(label).attr("title",text);
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
$("#org_member_list").html('<%= escape_javascript( render :partial=>"organizations/org_member_list",:locals=> {:members=>@org.org_members}) %>');
|
|
@ -0,0 +1,33 @@
|
||||||
|
<!--<a href="javascript:void(0)" class="mr10 logoBorder fl ml10">-->
|
||||||
|
<!--<%#= image_tag(url_to_avatar(source), id: "avatar_image", :width =>"60", :height =>"60",:alt=>"上传图片")%>-->
|
||||||
|
<!--</a>-->
|
||||||
|
<div class="orgLogo mb10">
|
||||||
|
<a href="javascript:void(0);">
|
||||||
|
<%= image_tag(url_to_avatar(source), id: "avatar_image",:height => 55,:width => 55, :class=>'mr10 logoBorder fl ml10',:alt=>"上传图片") %>
|
||||||
|
</a>
|
||||||
|
<a href="javascript:void(0);" onclick="$('#upload_org_logo').click();" class="logoEnter fl linkGrey4"><%= l(:button_upload_photo) %></a>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<%#= link_to l(:button_delete_file),{:controller => :avatar,:action => :delete_image,:remote=>true,:source_type=> source.class,:source_id=>source.id},:confirm => l(:text_are_you_sure), :method => :post, :class => "upbtn fl" %>
|
||||||
|
|
||||||
|
<%= file_field_tag 'avatar[image]',
|
||||||
|
:id => 'upload_org_logo',
|
||||||
|
:class => 'undis upload_file',
|
||||||
|
:size => "1",
|
||||||
|
:multiple => true,
|
||||||
|
:data => {
|
||||||
|
:max_file_size => Setting.upload_avatar_max_size,
|
||||||
|
:max_file_size_message => l(:error_upload_avatar_to_large, :max_size => number_to_human_size(Setting.upload_avatar_max_size.to_i)),
|
||||||
|
:max_concurrent_uploads => Redmine::Configuration['max_concurrent_ajax_uploads'].to_i,
|
||||||
|
:file_type => Redmine::Configuration['pic_types'].to_s,
|
||||||
|
:type_support_message => l(:error_pic_type),
|
||||||
|
:upload_path => upload_avatar_path(:format => 'js'),
|
||||||
|
:description_placeholder => nil ,# l(:label_optional_description)
|
||||||
|
:source_type => source.class.to_s,
|
||||||
|
:source_id => source.id.to_s
|
||||||
|
} %>
|
||||||
|
<!--</span>-->
|
||||||
|
<% content_for :header_tags do %>
|
||||||
|
<%= javascript_include_tag 'jq-upload/jquery.ui.widget', 'jq-upload/jquery.iframe-transport', 'jq-upload/jquery.fileupload', 'jq-upload/upload' %>
|
||||||
|
<% end %>
|
||||||
|
<div class="cl"></div>
|
|
@ -0,0 +1,44 @@
|
||||||
|
<% members.each do |member|%>
|
||||||
|
<ul class="orgListRow">
|
||||||
|
<li class="orgListUser"><a href="<%= user_path(User.find(member.user_id))%>" class="linkBlue"><%= User.find(member.user_id).realname.blank? ? User.find(member.user_id).login : User.find(member.user_id).realname %></a></li>
|
||||||
|
<li class="orgListUser">
|
||||||
|
<%= get_org_member_role_name member %>
|
||||||
|
<%= form_for(member, {:as => :org_member, :remote => true, :url => org_member_path(member),
|
||||||
|
:method => :put,
|
||||||
|
:html => {:id => "org-member-#{member.id}-roles-form", :style=>'display:none'}}
|
||||||
|
) do |f| %>
|
||||||
|
<% Role.givable.where("id in (11,12)").each do |role| %>
|
||||||
|
<ul style="text-align: left;" >
|
||||||
|
<%= radio_button_tag 'org_member[role_ids][]', role.id, member.roles.include?(role) %>
|
||||||
|
<!--编辑时候显示成员,中英文切换后面需从数据库的角度优化-->
|
||||||
|
<% if User.current.language == "zh" %>
|
||||||
|
<% if role.id == 11 %>
|
||||||
|
<label >组织管理员</label>
|
||||||
|
<% elsif role.id == 12 %>
|
||||||
|
<label >组织成员</label>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<label ><%= h role %></label>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
<!--<br/>-->
|
||||||
|
<% end %>
|
||||||
|
<%= hidden_field_tag 'membership[role_ids][]', '' %>
|
||||||
|
<div class="pt5">
|
||||||
|
<a href="javascript:void(0)" class="project_member_btn" onclick="$('#org-member-<%= member.id%>-roles-form').submit();" style="margin-right: 10px;">
|
||||||
|
<%= l(:button_change)%>
|
||||||
|
</a>
|
||||||
|
<a href="javascript:void(0)" class="project_member_btn" onclick="$('#org-member-<%= member.id%>-roles-form').hide();$(this).parent().parent().parent().parent().height(18)">
|
||||||
|
<%= l(:button_cancel)%>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<!-- -->
|
||||||
|
<% if ( (User.current.id == member.organization.creator_id || member.roles[0].name == "orgManager" ) && member.user_id != member.organization.creator_id )%>
|
||||||
|
<a href="javascript:void(0);" onclick="$(this).parent().parent().height(70);$('#org-member-<%= member.id%>-roles-form').show();">编辑</a> | <%= link_to '删除', org_member_path(member.id),:method=>'delete', :remote => true %><% end %>
|
||||||
|
</li>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</ul>
|
||||||
|
<% end %>
|
|
@ -0,0 +1,18 @@
|
||||||
|
<%if @check == false %>
|
||||||
|
$checkName = false
|
||||||
|
<% if @config_page%>
|
||||||
|
$("#check_name_hint").html('<span class="c_red">名字不能重复<span>').show();
|
||||||
|
<% else%>
|
||||||
|
$("#organization_name_notice").html('<span class="c_red">名字不能重复<span>').show();
|
||||||
|
|
||||||
|
<%end%>
|
||||||
|
|
||||||
|
<% else %>
|
||||||
|
$checkName = true;
|
||||||
|
<% if @config_page%>
|
||||||
|
$("#check_name_hint").html('<span class="c_green">名字可以使用</span>').show();
|
||||||
|
<% else%>
|
||||||
|
|
||||||
|
$("#organization_name_notice").html('<span class="c_green">名字可以使用</span>').show();
|
||||||
|
<%end%>
|
||||||
|
<%end%>
|
|
@ -12,8 +12,8 @@
|
||||||
<input type="text" style="display: none"/> <!--阻止表单自动填充 -->
|
<input type="text" style="display: none"/> <!--阻止表单自动填充 -->
|
||||||
<input type="password" style="display: none"/> <!--阻止表单自动填充 -->
|
<input type="password" style="display: none"/> <!--阻止表单自动填充 -->
|
||||||
<label><span class="c_red">*</span> <%= l(:label_organization_name)%> :</label>
|
<label><span class="c_red">*</span> <%= l(:label_organization_name)%> :</label>
|
||||||
<input type="text" name="organization[name]" id="organization_name" class="courses_input" maxlength="100" onkeyup="regex_organization_name();">
|
<input type="text" name="organization[name]" id="organization_name" class="courses_input" maxlength="100" onblur="check_uniq(this);" onkeyup="regex_organization_name();">
|
||||||
<span class="c_red" id="organization_name_notice" style="display: none;">项目名称不能为空</span>
|
<span id="organization_name_notice" ></span>
|
||||||
</li>
|
</li>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
<div class="cl"></div>
|
<div class="cl"></div>
|
||||||
|
@ -55,20 +55,35 @@
|
||||||
var name = $.trim($("#organization_name").val());
|
var name = $.trim($("#organization_name").val());
|
||||||
if(name.length == 0)
|
if(name.length == 0)
|
||||||
{
|
{
|
||||||
$("#organization_name_notice").show();
|
$("#organization_name_notice").html('<span class="c_red">名字不能为空<span>').show();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$("#organization_name_notice").hide();
|
$("#organization_name_notice").html('').hide();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var $checkName = false;
|
||||||
|
|
||||||
|
function check_uniq(dom){
|
||||||
|
if($("#organization_name").val().trim() == ""){
|
||||||
|
$("#organization_name_notice").html('<span class="c_red">名字不能为空<span>').show();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$.get(
|
||||||
|
'<%= check_uniq_organizations_path%>'+'?org_name='+$("#organization_name").val().trim()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
//提交新建项目
|
//提交新建项目
|
||||||
function submit_new_organization()
|
function submit_new_organization()
|
||||||
{
|
{
|
||||||
if(regex_organization_name())
|
$.get(
|
||||||
|
'<%= check_uniq_organizations_path%>'+'?org_name='+$("#organization_name").val().trim()
|
||||||
|
)
|
||||||
|
if(regex_organization_name() && $checkName)
|
||||||
{
|
{
|
||||||
$("#new_organization").submit();
|
$("#new_organization").submit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
<script>
|
||||||
|
function g(o){return document.getElementById(o);}
|
||||||
|
function HoverLi(n){
|
||||||
|
//如果有N个标签,就将i<=N;
|
||||||
|
for(var i=1;i<=2;i++){
|
||||||
|
g('orgSetting_'+i).className='orgSettingOp';
|
||||||
|
g('orgContent_'+i).className='undis';}
|
||||||
|
g('orgContent_'+n).className='dis ml15 mr15';
|
||||||
|
g('orgSetting_'+n).className='orgSettingOp orgOpActive';}
|
||||||
|
//如果要做成点击后再转到请将<li>中的onmouseover 改成 onclick;
|
||||||
|
//]]>
|
||||||
|
$checkName = true;
|
||||||
|
function check_uniq(id){
|
||||||
|
if($("#organization_name").val().trim() == ""){
|
||||||
|
$("#check_name_hint").html('<span class="c_red">名字不能为空<span>').show();
|
||||||
|
return false ;
|
||||||
|
}
|
||||||
|
$.get(
|
||||||
|
'<%= check_uniq_organizations_path%>'+'?org_name='+$("#organization_name").val().trim()+"&config_page=Y" + "&org_id="+id
|
||||||
|
)
|
||||||
|
}
|
||||||
|
function update_org(id){
|
||||||
|
check_uniq(id);
|
||||||
|
if( $checkName){
|
||||||
|
$("#edit_organization_"+id).submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<div class="homepageRightBanner">
|
||||||
|
<div class="NewsBannerName">配置</div>
|
||||||
|
</div>
|
||||||
|
<div class="resources mt10">
|
||||||
|
<ul class="mb10">
|
||||||
|
<li class="orgSettingOp orgOpActive" id="orgSetting_1" onclick="HoverLi(1);">信息</li>
|
||||||
|
<li class="orgSettingOp" id="orgSetting_2" onclick="HoverLi(2);">成员</li>
|
||||||
|
<li class="orgBorder"></li>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</ul>
|
||||||
|
<div class="ml15 mr15" id="orgContent_1">
|
||||||
|
<!--<div class="orgLogo mb10"><a href="javascript:void(0);"><img src="images/org_default.jpg" width="55" height="55" alt="组织logo" class="mr10 logoBorder fl ml10" /></a>-->
|
||||||
|
<!--<a href="javascript:void(0);" class="logoEnter fl linkGrey4">上传图片</a>-->
|
||||||
|
<%#= form_for( @organization,{:controller => 'organizations',:action => 'update',:id=>@organization,:html=>{:id=>'update_org_form',:method=>'put'}}) do %>
|
||||||
|
<%= labelled_form_for @organization do |f|%>
|
||||||
|
<%= render :partial=>"new_org_avatar_form",:locals=> {source:@organization} %>
|
||||||
|
<!--<div class="cl"></div>-->
|
||||||
|
<!--</div>-->
|
||||||
|
<div class="orgRow mb10"><span class="c_red">* </span>组织名称:
|
||||||
|
<input type="text" name="organization[name]" id="organization_name" maxlength="100" onblur="check_uniq(<%=@organization.id %>);" onfocus="$('#check_name_hint').hide()" class="orgNameInput" value="<%= @organization.name%>" />
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-left: 80px " id="check_name_hint"></div>
|
||||||
|
<div class="orgRow mb10"><span class="ml10">组织描述:</span>
|
||||||
|
<textarea type="text" name="organization[description]" class="orgDes" id="org_desc" placeholder="最多3000个汉字(或6000个英文字符)"><%= @organization.description%></textarea>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-left: 80px " id="check_desc_hint"></div>
|
||||||
|
<div class="orgRow mb10"><span class="ml10">组织URL:</span>
|
||||||
|
<div class="w607 fr">https://
|
||||||
|
<input type="text" name="organization[domain]" value="<%= @organization.domain%>" class="orgUrlInput" />
|
||||||
|
.trustie.net<a href="javascript:void(0);" class="linkBlue ml15" style="text-decoration:underline;">申请</a>
|
||||||
|
<p id="apply_hint"></p></div>
|
||||||
|
<!--class="c_green f12" 您的申请已提交,系统会以消息的形式通知您结果 -->
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
<div class="orgRow mb10 mt5"><span style="margin-left:38px;" >公开 : </span>
|
||||||
|
<input type="checkbox" name="organization[is_public]" <%= @organization.is_public ? 'checked': ''%> class="ml3" />
|
||||||
|
</div>
|
||||||
|
<a href="javascript:void(0);" class="saveBtn ml80 db fl" onclick="update_org(<%=@organization.id %>);">保存</a>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
<div class="undis ml15 mr15" id="orgContent_2">
|
||||||
|
<div class="orgMemberList">
|
||||||
|
<ul class="orgListRow">
|
||||||
|
<li class="orgListUser fb">用户</li>
|
||||||
|
<li class="orgListRole fb">角色</li>
|
||||||
|
<li></li>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</ul>
|
||||||
|
<div id="org_member_list">
|
||||||
|
<%= render :partial=>"org_member_list",:locals=> {:members=>@organization.org_members} %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="fr orgMemContainer">
|
||||||
|
<div class="orgMemberAdd">
|
||||||
|
<p class="fontBlue fb mb5">添加成员</p>
|
||||||
|
<%= form_tag url_for(:controller => 'org_member',:action => 'create',:org=>@organization),:id=>'org_member_add_form',:remote=>true do |f|%>
|
||||||
|
<input type="text" id="not_org_member_search" name="orgAddSearch" placeholder="支持姓名、邮箱、昵称搜索" class="orgAddSearch mb20" />
|
||||||
|
<%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript org_member_autocomplete_org_member_index_path(:org=>@organization, :format => 'js') }')" %>
|
||||||
|
<div id="principals_for_new_member">
|
||||||
|
<%= find_user_not_in_current_org_by_name(@project) %>
|
||||||
|
</div><div class="cl"></div>
|
||||||
|
<ul class="orgAddRole">
|
||||||
|
<li class="fontGrey3 fb mb10">角色</li>
|
||||||
|
<li>
|
||||||
|
<input type="radio" id="orgMng" name="orgRole" value="11" />
|
||||||
|
<label for="orgMng">管理人员</label>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<input type="radio" id="orgMeb" name="orgRole" checked value="12" />
|
||||||
|
<label for="orgMeb">组织成员</label>
|
||||||
|
</li>
|
||||||
|
</ul><a href="javascript:void(0);" onclick="submit_add_org_members();" class="saveBtn db fl mt10">新增成员</a>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -1,4 +1,37 @@
|
||||||
<%= javascript_include_tag "jquery.infinitescroll.js" %>
|
<%= javascript_include_tag "jquery.infinitescroll.js" %>
|
||||||
<div class="project_r_h">
|
|
||||||
<h2 class="project_h2">组织活动</h2>
|
<div class="homepageRightBanner">
|
||||||
</div>
|
<div class="NewsBannerName">最新动态</div>
|
||||||
|
<ul class="resourcesSelect">
|
||||||
|
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
|
||||||
|
<ul class="resourcesType">
|
||||||
|
<li class="mt-4"><a href="javascript:void(0);" class="homepagePostTypeAll postTypeGrey">全部动态</a></li>
|
||||||
|
<li class="mt-4"><a href="/users/8523/user_activities?type=current_user" class="homepagePostTypeMine postTypeGrey">我的动态</a> </li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% unless @activities.nil? %>
|
||||||
|
<% @activities.each do |act| %>
|
||||||
|
<% if act.org_act_type == 'CreateOrganization' %>
|
||||||
|
<div class="resources mt10">
|
||||||
|
<div class="homepagePostBrief">
|
||||||
|
<div class="homepagePostPortrait">
|
||||||
|
<a href="javascript:void(0);"><%= image_tag(url_to_avatar(User.find(act.user_id)), :width => "45", :height => "45") %></a>
|
||||||
|
</div>
|
||||||
|
<div class="homepagePostDes">
|
||||||
|
<div class="homepagePostTo"><%= link_to User.find(act.user_id), user_path(act.user_id) %> 创建了 <a href="<%= organization_path(@organization)%>" class="newsBlue ml10"><%= Organization.find(act.org_act_id).name %>
|
||||||
|
| 组织</a></div>
|
||||||
|
<div class="homepagePostDate"> 创建时间:<%= format_activity_day(act.created_at) %> <%= format_time(act.created_at, false) %> </div>
|
||||||
|
</div>
|
||||||
|
<div class="cl"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
<ul class="wlist" style=" border:none; padding-top: 15px;">
|
||||||
|
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
|
||||||
|
</ul>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,24 @@ RedmineApp::Application.routes.draw do
|
||||||
# Enable Grack support
|
# Enable Grack support
|
||||||
# mount Trustie::Grack.new, at: '/', constraints: lambda { |request| /[-\/\w\.]+\.git\//.match(request.path_info) }, via: [:get, :post]
|
# mount Trustie::Grack.new, at: '/', constraints: lambda { |request| /[-\/\w\.]+\.git\//.match(request.path_info) }, via: [:get, :post]
|
||||||
|
|
||||||
resources :organizations
|
resources :organizations do
|
||||||
|
member do
|
||||||
|
get 'setting'#, :action => 'settings', :as => 'settings'
|
||||||
|
get 'clear_org_avatar_temp'
|
||||||
|
end
|
||||||
|
collection do
|
||||||
|
get 'check_uniq'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
resources :org_member do
|
||||||
|
member do
|
||||||
|
|
||||||
|
end
|
||||||
|
collection do
|
||||||
|
get 'org_member_autocomplete'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
resources :homework_users
|
resources :homework_users
|
||||||
resources :no_uses
|
resources :no_uses
|
||||||
|
|
349
db/schema.rb
349
db/schema.rb
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended to check this file into your version control system.
|
# It's strongly recommended to check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(:version => 20151029030006) do
|
ActiveRecord::Schema.define(:version => 20151104090032) do
|
||||||
|
|
||||||
create_table "activities", :force => true do |t|
|
create_table "activities", :force => true do |t|
|
||||||
t.integer "act_id", :null => false
|
t.integer "act_id", :null => false
|
||||||
|
@ -293,6 +293,16 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.boolean "diff_all"
|
t.boolean "diff_all"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "columns_priv", :id => false, :force => true do |t|
|
||||||
|
t.string "Host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "Db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "User", :limit => 16, :default => "", :null => false
|
||||||
|
t.string "Table_name", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Column_name", :limit => 64, :default => "", :null => false
|
||||||
|
t.timestamp "Timestamp", :null => false
|
||||||
|
t.string "Column_priv", :limit => 0, :default => "", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "comments", :force => true do |t|
|
create_table "comments", :force => true do |t|
|
||||||
t.string "commented_type", :limit => 30, :default => "", :null => false
|
t.string "commented_type", :limit => 30, :default => "", :null => false
|
||||||
t.integer "commented_id", :default => 0, :null => false
|
t.integer "commented_id", :default => 0, :null => false
|
||||||
|
@ -491,6 +501,33 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
add_index "custom_values", ["custom_field_id"], :name => "index_custom_values_on_custom_field_id"
|
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"
|
add_index "custom_values", ["customized_type", "customized_id"], :name => "custom_values_customized"
|
||||||
|
|
||||||
|
create_table "db", :id => false, :force => true do |t|
|
||||||
|
t.string "Host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "Db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "User", :limit => 16, :default => "", :null => false
|
||||||
|
t.string "Select_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Insert_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Update_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Delete_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Drop_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Grant_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "References_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Index_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Alter_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_tmp_table_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Lock_tables_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_view_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Show_view_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_routine_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Alter_routine_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Execute_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Event_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Trigger_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "db", ["User"], :name => "User"
|
||||||
|
|
||||||
create_table "delayed_jobs", :force => true do |t|
|
create_table "delayed_jobs", :force => true do |t|
|
||||||
t.integer "priority", :default => 0, :null => false
|
t.integer "priority", :default => 0, :null => false
|
||||||
t.integer "attempts", :default => 0, :null => false
|
t.integer "attempts", :default => 0, :null => false
|
||||||
|
@ -572,6 +609,31 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
|
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
|
||||||
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
|
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
|
||||||
|
|
||||||
|
create_table "event", :id => false, :force => true do |t|
|
||||||
|
t.string "db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "name", :limit => 64, :default => "", :null => false
|
||||||
|
t.binary "body", :limit => 2147483647, :null => false
|
||||||
|
t.string "definer", :limit => 77, :default => "", :null => false
|
||||||
|
t.datetime "execute_at"
|
||||||
|
t.integer "interval_value"
|
||||||
|
t.string "interval_field", :limit => 18
|
||||||
|
t.timestamp "created", :null => false
|
||||||
|
t.timestamp "modified", :null => false
|
||||||
|
t.datetime "last_executed"
|
||||||
|
t.datetime "starts"
|
||||||
|
t.datetime "ends"
|
||||||
|
t.string "status", :limit => 18, :default => "ENABLED", :null => false
|
||||||
|
t.string "on_completion", :limit => 8, :default => "DROP", :null => false
|
||||||
|
t.string "sql_mode", :limit => 0, :default => "", :null => false
|
||||||
|
t.string "comment", :limit => 64, :default => "", :null => false
|
||||||
|
t.integer "originator", :null => false
|
||||||
|
t.string "time_zone", :limit => 64, :default => "SYSTEM", :null => false
|
||||||
|
t.string "character_set_client", :limit => 32
|
||||||
|
t.string "collation_connection", :limit => 32
|
||||||
|
t.string "db_collation", :limit => 32
|
||||||
|
t.binary "body_utf8", :limit => 2147483647
|
||||||
|
end
|
||||||
|
|
||||||
create_table "first_pages", :force => true do |t|
|
create_table "first_pages", :force => true do |t|
|
||||||
t.string "web_title"
|
t.string "web_title"
|
||||||
t.string "title"
|
t.string "title"
|
||||||
|
@ -623,6 +685,21 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.integer "locked"
|
t.integer "locked"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "func", :primary_key => "name", :force => true do |t|
|
||||||
|
t.boolean "ret", :default => false, :null => false
|
||||||
|
t.string "dl", :limit => 128, :default => "", :null => false
|
||||||
|
t.string "type", :limit => 9, :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "general_log", :id => false, :force => true do |t|
|
||||||
|
t.timestamp "event_time", :null => false
|
||||||
|
t.text "user_host", :limit => 16777215, :null => false
|
||||||
|
t.integer "thread_id", :null => false
|
||||||
|
t.integer "server_id", :null => false
|
||||||
|
t.string "command_type", :limit => 64, :null => false
|
||||||
|
t.text "argument", :limit => 16777215, :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "groups_users", :id => false, :force => true do |t|
|
create_table "groups_users", :id => false, :force => true do |t|
|
||||||
t.integer "group_id", :null => false
|
t.integer "group_id", :null => false
|
||||||
t.integer "user_id", :null => false
|
t.integer "user_id", :null => false
|
||||||
|
@ -630,6 +707,35 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
|
|
||||||
add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true
|
add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true
|
||||||
|
|
||||||
|
create_table "help_category", :primary_key => "help_category_id", :force => true do |t|
|
||||||
|
t.string "name", :limit => 64, :null => false
|
||||||
|
t.integer "parent_category_id", :limit => 2
|
||||||
|
t.text "url", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "help_category", ["name"], :name => "name", :unique => true
|
||||||
|
|
||||||
|
create_table "help_keyword", :primary_key => "help_keyword_id", :force => true do |t|
|
||||||
|
t.string "name", :limit => 64, :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "help_keyword", ["name"], :name => "name", :unique => true
|
||||||
|
|
||||||
|
create_table "help_relation", :id => false, :force => true do |t|
|
||||||
|
t.integer "help_topic_id", :null => false
|
||||||
|
t.integer "help_keyword_id", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "help_topic", :primary_key => "help_topic_id", :force => true do |t|
|
||||||
|
t.string "name", :limit => 64, :null => false
|
||||||
|
t.integer "help_category_id", :limit => 2, :null => false
|
||||||
|
t.text "description", :null => false
|
||||||
|
t.text "example", :null => false
|
||||||
|
t.text "url", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "help_topic", ["name"], :name => "name", :unique => true
|
||||||
|
|
||||||
create_table "homework_attaches", :force => true do |t|
|
create_table "homework_attaches", :force => true do |t|
|
||||||
t.integer "bid_id"
|
t.integer "bid_id"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
|
@ -714,6 +820,29 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "host", :id => false, :force => true do |t|
|
||||||
|
t.string "Host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "Db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Select_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Insert_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Update_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Delete_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Drop_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Grant_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "References_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Index_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Alter_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_tmp_table_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Lock_tables_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_view_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Show_view_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_routine_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Alter_routine_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Execute_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Trigger_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "invite_lists", :force => true do |t|
|
create_table "invite_lists", :force => true do |t|
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
|
@ -943,6 +1072,15 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id"
|
add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id"
|
||||||
add_index "messages", ["parent_id"], :name => "messages_parent_id"
|
add_index "messages", ["parent_id"], :name => "messages_parent_id"
|
||||||
|
|
||||||
|
create_table "ndb_binlog_index", :primary_key => "epoch", :force => true do |t|
|
||||||
|
t.integer "Position", :limit => 8, :null => false
|
||||||
|
t.string "File", :null => false
|
||||||
|
t.integer "inserts", :limit => 8, :null => false
|
||||||
|
t.integer "updates", :limit => 8, :null => false
|
||||||
|
t.integer "deletes", :limit => 8, :null => false
|
||||||
|
t.integer "schemaops", :limit => 8, :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "news", :force => true do |t|
|
create_table "news", :force => true do |t|
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.string "title", :limit => 60, :default => "", :null => false
|
t.string "title", :limit => 60, :default => "", :null => false
|
||||||
|
@ -1037,11 +1175,53 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
end
|
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_document_comments", :force => true do |t|
|
||||||
|
t.string "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
|
||||||
|
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"
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "org_projects", :force => true do |t|
|
||||||
|
t.integer "organization_id"
|
||||||
|
t.integer "project_id"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "organizations", :force => true do |t|
|
create_table "organizations", :force => true do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.string "logo_link"
|
t.text "description"
|
||||||
t.datetime "created_at", :null => false
|
t.integer "creator_id"
|
||||||
t.datetime "updated_at", :null => false
|
t.integer "home_id"
|
||||||
|
t.string "domain"
|
||||||
|
t.boolean "is_public"
|
||||||
|
t.datetime "created_at", :null => false
|
||||||
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "phone_app_versions", :force => true do |t|
|
create_table "phone_app_versions", :force => true do |t|
|
||||||
|
@ -1051,6 +1231,10 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "plugin", :primary_key => "name", :force => true do |t|
|
||||||
|
t.string "dl", :limit => 128, :default => "", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "poll_answers", :force => true do |t|
|
create_table "poll_answers", :force => true do |t|
|
||||||
t.integer "poll_question_id"
|
t.integer "poll_question_id"
|
||||||
t.text "answer_text"
|
t.text "answer_text"
|
||||||
|
@ -1126,6 +1310,42 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.datetime "updated_at", :null => false
|
t.datetime "updated_at", :null => false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "proc", :id => false, :force => true do |t|
|
||||||
|
t.string "db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "name", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "type", :limit => 9, :null => false
|
||||||
|
t.string "specific_name", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "language", :limit => 3, :default => "SQL", :null => false
|
||||||
|
t.string "sql_data_access", :limit => 17, :default => "CONTAINS_SQL", :null => false
|
||||||
|
t.string "is_deterministic", :limit => 3, :default => "NO", :null => false
|
||||||
|
t.string "security_type", :limit => 7, :default => "DEFINER", :null => false
|
||||||
|
t.binary "param_list", :null => false
|
||||||
|
t.binary "returns", :limit => 2147483647, :null => false
|
||||||
|
t.binary "body", :limit => 2147483647, :null => false
|
||||||
|
t.string "definer", :limit => 77, :default => "", :null => false
|
||||||
|
t.timestamp "created", :null => false
|
||||||
|
t.timestamp "modified", :null => false
|
||||||
|
t.string "sql_mode", :limit => 0, :default => "", :null => false
|
||||||
|
t.text "comment", :null => false
|
||||||
|
t.string "character_set_client", :limit => 32
|
||||||
|
t.string "collation_connection", :limit => 32
|
||||||
|
t.string "db_collation", :limit => 32
|
||||||
|
t.binary "body_utf8", :limit => 2147483647
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "procs_priv", :id => false, :force => true do |t|
|
||||||
|
t.string "Host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "Db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "User", :limit => 16, :default => "", :null => false
|
||||||
|
t.string "Routine_name", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Routine_type", :limit => 9, :null => false
|
||||||
|
t.string "Grantor", :limit => 77, :default => "", :null => false
|
||||||
|
t.string "Proc_priv", :limit => 0, :default => "", :null => false
|
||||||
|
t.timestamp "Timestamp", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "procs_priv", ["Grantor"], :name => "Grantor"
|
||||||
|
|
||||||
create_table "project_infos", :force => true do |t|
|
create_table "project_infos", :force => true do |t|
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
|
@ -1200,6 +1420,18 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true
|
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"
|
add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id"
|
||||||
|
|
||||||
|
create_table "proxies_priv", :id => false, :force => true do |t|
|
||||||
|
t.string "Host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "User", :limit => 16, :default => "", :null => false
|
||||||
|
t.string "Proxied_host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "Proxied_user", :limit => 16, :default => "", :null => false
|
||||||
|
t.boolean "With_grant", :default => false, :null => false
|
||||||
|
t.string "Grantor", :limit => 77, :default => "", :null => false
|
||||||
|
t.timestamp "Timestamp", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "proxies_priv", ["Grantor"], :name => "Grantor"
|
||||||
|
|
||||||
create_table "queries", :force => true do |t|
|
create_table "queries", :force => true do |t|
|
||||||
t.integer "project_id"
|
t.integer "project_id"
|
||||||
t.string "name", :default => "", :null => false
|
t.string "name", :default => "", :null => false
|
||||||
|
@ -1313,6 +1545,17 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.integer "is_teacher_score", :default => 0
|
t.integer "is_teacher_score", :default => 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "servers", :primary_key => "Server_name", :force => true do |t|
|
||||||
|
t.string "Host", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Username", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Password", :limit => 64, :default => "", :null => false
|
||||||
|
t.integer "Port", :default => 0, :null => false
|
||||||
|
t.string "Socket", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Wrapper", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Owner", :limit => 64, :default => "", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "settings", :force => true do |t|
|
create_table "settings", :force => true do |t|
|
||||||
t.string "name", :default => "", :null => false
|
t.string "name", :default => "", :null => false
|
||||||
t.text "value"
|
t.text "value"
|
||||||
|
@ -1333,6 +1576,20 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.string "description"
|
t.string "description"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "slow_log", :id => false, :force => true do |t|
|
||||||
|
t.timestamp "start_time", :null => false
|
||||||
|
t.text "user_host", :limit => 16777215, :null => false
|
||||||
|
t.time "query_time", :null => false
|
||||||
|
t.time "lock_time", :null => false
|
||||||
|
t.integer "rows_sent", :null => false
|
||||||
|
t.integer "rows_examined", :null => false
|
||||||
|
t.string "db", :limit => 512, :null => false
|
||||||
|
t.integer "last_insert_id", :null => false
|
||||||
|
t.integer "insert_id", :null => false
|
||||||
|
t.integer "server_id", :null => false
|
||||||
|
t.text "sql_text", :limit => 16777215, :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "softapplications", :force => true do |t|
|
create_table "softapplications", :force => true do |t|
|
||||||
t.string "name"
|
t.string "name"
|
||||||
t.text "description"
|
t.text "description"
|
||||||
|
@ -1414,6 +1671,19 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.string "subject"
|
t.string "subject"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "tables_priv", :id => false, :force => true do |t|
|
||||||
|
t.string "Host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "Db", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "User", :limit => 16, :default => "", :null => false
|
||||||
|
t.string "Table_name", :limit => 64, :default => "", :null => false
|
||||||
|
t.string "Grantor", :limit => 77, :default => "", :null => false
|
||||||
|
t.timestamp "Timestamp", :null => false
|
||||||
|
t.string "Table_priv", :limit => 0, :default => "", :null => false
|
||||||
|
t.string "Column_priv", :limit => 0, :default => "", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
add_index "tables_priv", ["Grantor"], :name => "Grantor"
|
||||||
|
|
||||||
create_table "taggings", :force => true do |t|
|
create_table "taggings", :force => true do |t|
|
||||||
t.integer "tag_id"
|
t.integer "tag_id"
|
||||||
t.integer "taggable_id"
|
t.integer "taggable_id"
|
||||||
|
@ -1463,6 +1733,32 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
add_index "time_entries", ["project_id"], :name => "time_entries_project_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"
|
add_index "time_entries", ["user_id"], :name => "index_time_entries_on_user_id"
|
||||||
|
|
||||||
|
create_table "time_zone", :primary_key => "Time_zone_id", :force => true do |t|
|
||||||
|
t.string "Use_leap_seconds", :limit => 1, :default => "N", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "time_zone_leap_second", :primary_key => "Transition_time", :force => true do |t|
|
||||||
|
t.integer "Correction", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "time_zone_name", :primary_key => "Name", :force => true do |t|
|
||||||
|
t.integer "Time_zone_id", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "time_zone_transition", :id => false, :force => true do |t|
|
||||||
|
t.integer "Time_zone_id", :null => false
|
||||||
|
t.integer "Transition_time", :limit => 8, :null => false
|
||||||
|
t.integer "Transition_type_id", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "time_zone_transition_type", :id => false, :force => true do |t|
|
||||||
|
t.integer "Time_zone_id", :null => false
|
||||||
|
t.integer "Transition_type_id", :null => false
|
||||||
|
t.integer "Offset", :default => 0, :null => false
|
||||||
|
t.integer "Is_DST", :limit => 1, :default => 0, :null => false
|
||||||
|
t.string "Abbreviation", :limit => 8, :default => "", :null => false
|
||||||
|
end
|
||||||
|
|
||||||
create_table "tokens", :force => true do |t|
|
create_table "tokens", :force => true do |t|
|
||||||
t.integer "user_id", :default => 0, :null => false
|
t.integer "user_id", :default => 0, :null => false
|
||||||
t.string "action", :limit => 30, :default => "", :null => false
|
t.string "action", :limit => 30, :default => "", :null => false
|
||||||
|
@ -1481,6 +1777,51 @@ ActiveRecord::Schema.define(:version => 20151029030006) do
|
||||||
t.integer "fields_bits", :default => 0
|
t.integer "fields_bits", :default => 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "user", :id => false, :force => true do |t|
|
||||||
|
t.string "Host", :limit => 60, :default => "", :null => false
|
||||||
|
t.string "User", :limit => 16, :default => "", :null => false
|
||||||
|
t.string "Password", :limit => 41, :default => "", :null => false
|
||||||
|
t.string "Select_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Insert_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Update_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Delete_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Drop_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Reload_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Shutdown_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Process_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "File_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Grant_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "References_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Index_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Alter_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Show_db_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Super_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_tmp_table_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Lock_tables_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Execute_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Repl_slave_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Repl_client_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_view_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Show_view_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_routine_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Alter_routine_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_user_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Event_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Trigger_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "Create_tablespace_priv", :limit => 1, :default => "N", :null => false
|
||||||
|
t.string "ssl_type", :limit => 9, :default => "", :null => false
|
||||||
|
t.binary "ssl_cipher", :null => false
|
||||||
|
t.binary "x509_issuer", :null => false
|
||||||
|
t.binary "x509_subject", :null => false
|
||||||
|
t.integer "max_questions", :default => 0, :null => false
|
||||||
|
t.integer "max_updates", :default => 0, :null => false
|
||||||
|
t.integer "max_connections", :default => 0, :null => false
|
||||||
|
t.integer "max_user_connections", :default => 0, :null => false
|
||||||
|
t.string "plugin", :limit => 64, :default => ""
|
||||||
|
t.text "authentication_string"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "user_activities", :force => true do |t|
|
create_table "user_activities", :force => true do |t|
|
||||||
t.string "act_type"
|
t.string "act_type"
|
||||||
t.integer "act_id"
|
t.integer "act_id"
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
//添加组织成员的提交函数
|
||||||
|
function submit_add_org_members(){
|
||||||
|
$("#org_member_add_form").submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function observeSearchfield(fieldId, targetId, url) {
|
||||||
|
$('#'+fieldId).each(function() {
|
||||||
|
var $this = $(this);
|
||||||
|
$this.addClass('autocomplete');
|
||||||
|
$this.attr('data-value-was', $this.val());
|
||||||
|
var check = function() {
|
||||||
|
var val = $this.val();
|
||||||
|
if ($this.attr('data-value-was') != val){
|
||||||
|
$this.attr('data-value-was', val);
|
||||||
|
$.ajax({
|
||||||
|
url: url,
|
||||||
|
type: 'get',
|
||||||
|
data: {q: $this.val()},
|
||||||
|
success: function(data){ if(targetId) $('#'+targetId).html(data); },
|
||||||
|
beforeSend: function(){ $this.addClass('ajax-loading'); },
|
||||||
|
complete: function(){ $this.removeClass('ajax-loading'); }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var reset = function() {
|
||||||
|
if (timer) {
|
||||||
|
clearInterval(timer);
|
||||||
|
timer = setInterval(check, 300);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var timer = setInterval(check, 300);
|
||||||
|
$this.bind('keyup click mousemove', reset);
|
||||||
|
});
|
||||||
|
}
|
|
@ -3,4 +3,31 @@
|
||||||
|
|
||||||
.orgName {width:130px; color:#484848;}
|
.orgName {width:130px; color:#484848;}
|
||||||
.organization_r_h02{ width:970px; height:40px; background:#eaeaea; margin-bottom:10px;}
|
.organization_r_h02{ width:970px; height:40px; background:#eaeaea; margin-bottom:10px;}
|
||||||
.organization_h2{ background:#64bdd9; color:#fff; height:33px; width:90px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;}
|
.organization_h2{ background:#64bdd9; color:#fff; height:33px; width:90px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;}
|
||||||
|
|
||||||
|
.orgSettingOp {width:45px; height:21px; color:#269ac9; text-align:center; border-bottom:3px solid #e4e4e4; float:left; font-weight:bold; cursor:pointer;}
|
||||||
|
.orgBorder {width:628px; height:21px; border-bottom:3px solid #e4e4e4; float:left;}
|
||||||
|
.orgOpActive {border-bottom:3px solid #269ac9 !important; color:#444444;}
|
||||||
|
.logoBorder {border:1px solid #eaeaea; padding:2px;}
|
||||||
|
.logoBorder:hover {border:1px solid #269ac9;}
|
||||||
|
.logoEnter {border:1px solid #eaeaea; padding:2px 5px; margin-top:37px;}
|
||||||
|
.orgNameInput {width:600px; outline:none; border:1px solid #eaeaea; float:right; height:22px;}
|
||||||
|
.orgRow {font-size:14px; color:#484848;}
|
||||||
|
.orgDes {width:600px; height:150px; outline:none; border:1px solid #eaeaea; float:right; resize:none;}
|
||||||
|
.w607 {width:607px;}
|
||||||
|
.orgUrlInput {width:200px; outline:none; border:1px solid #eaeaea; height:22px;}
|
||||||
|
a.saveBtn {padding:3px 5px; background-color:#269ac9; color:#ffffff;}
|
||||||
|
a.saveBtn:hover {background-color:#297fb8;}
|
||||||
|
.orgMemberList {width:410px; float:left;}
|
||||||
|
.orgListRow {border-bottom:1px solid #e4e4e4; padding-bottom:5px;}
|
||||||
|
.orgListUser {width:125px; float:left;}
|
||||||
|
.orgListRole {width:285px; float:left;}
|
||||||
|
.orgMemContainer {width:278px;}
|
||||||
|
.orgMemberAdd {float:right; width:240px;}
|
||||||
|
.orgAddSearch {border:1px solid #dddddd; outline:none; width:180px; height:22px; color:#9b9b9b;}
|
||||||
|
.undis {display:none;}
|
||||||
|
.dis {display:inline-block;}
|
||||||
|
.upbtn { margin: 40px 0px 0px 15px;
|
||||||
|
display: block;
|
||||||
|
padding: 2px 5px;
|
||||||
|
border: 1px solid #EAEAEA;}
|
Loading…
Reference in New Issue