basic function
This commit is contained in:
		
							parent
							
								
									7f290adfbb
								
							
						
					
					
						commit
						8e014bf59c
					
				|  | @ -5,20 +5,63 @@ class Admin::UsersNewInterfaceController < ApplicationController | |||
|   before_filter :set_attribute, :only => [:index, :show, :new, :edit] | ||||
|    | ||||
|   def index | ||||
|     @users = User.all.entries | ||||
|     get_tags | ||||
|     get_sub_roles | ||||
| 
 | ||||
|     page_num = params[:page] || 1 | ||||
|     @users = [] | ||||
|      | ||||
|     render case params[:at] | ||||
|       when 'summary' | ||||
|         @users=User.page(page_num).per(12).includes('avatar') | ||||
|         "index_summary" | ||||
|       when 'thumbnail' | ||||
|         @users=User.page(page_num).per(36).includes('avatar') | ||||
|         "index_thumbnail" | ||||
|       else | ||||
|         @users=User.page(page_num).per(10).includes('avatar') | ||||
|         "index" | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   def show | ||||
|     @user = User.find(params[:id]) | ||||
|     @profile_data = [] | ||||
|     @teacher_data = [] | ||||
|     @student_data = [] | ||||
|     @staff_data = [] | ||||
| 
 | ||||
|     @user.attribute_values.each{|att_val| | ||||
|       @profile_data.push({:name => att_val.attribute_field.title,:value =>att_val[I18n.locale]}) if att_val.attribute_field.attribute.key=="profile" rescue false | ||||
|     } | ||||
|      | ||||
|     @user.attribute_values.each{|att_val| | ||||
|       @teacher_data.push({:name => att_val.attribute_field.title,:value => eval("att_val.#{att_val.key}")}) if att_val.attribute_field.role.key=="teacher"rescue false | ||||
|     } | ||||
| 
 | ||||
|     @user.attribute_values.each{|att_val| | ||||
|       @student_data.push({:name => att_val.attribute_field.title,:value =>eval("att_val.#{att_val.key}")}) if att_val.attribute_field.role.key=="student"rescue false | ||||
|     } | ||||
| 
 | ||||
|     @user.attribute_values.each{|att_val| | ||||
|       @staff_data.push({:name => att_val.attribute_field.title,:value =>eval("att_val.#{att_val.key}")}) if att_val.attribute_field.role.key=="staff_data"rescue false | ||||
|     } | ||||
| 
 | ||||
|     # binding.pry | ||||
|     # @user.attribute_values.each{|att_val| | ||||
|     #   @teacher_data.push({:name => att_val.attribute_field.title,:value =>att_val[I18n.locale]}) | ||||
|     # } | ||||
| 
 | ||||
|     # @user.attribute_values.each{|att_val| | ||||
|     #   @student_data.push({:name => att_val.attribute_field.title,:value =>att_val[I18n.locale]}) | ||||
|     # } | ||||
| 
 | ||||
|     # @user.attribute_values.each{|att_val| | ||||
|     #   @staff_data.push({:name => att_val.attribute_field.title,:value =>att_val[I18n.locale]}) | ||||
|     # } | ||||
| 
 | ||||
|      # [ {:name=> "1",:value =>"Matt"},{:name=> "2",:value =>"Mark"},{:name=> "3",:value =>"Luke"},{:name=> "4",:value =>"John"} ] | ||||
|      | ||||
|     get_info_and_roles | ||||
|   end | ||||
|    | ||||
|  | @ -74,7 +117,14 @@ class Admin::UsersNewInterfaceController < ApplicationController | |||
|   end | ||||
|    | ||||
|   protected | ||||
|    | ||||
|   def get_tags | ||||
|     @sub_role_tags = SubRoleTag.all | ||||
|   end | ||||
| 
 | ||||
|   def get_sub_roles | ||||
|     @sub_roles = SubRole.all | ||||
|   end | ||||
| 
 | ||||
|   def get_info_and_roles | ||||
|     @infos = Info.excludes('disabled' => true) | ||||
|     @roles = Role.excludes('disabled' => true) | ||||
|  |  | |||
|  | @ -260,4 +260,13 @@ module ApplicationHelper | |||
|     wrap_mark = options[:wrap_mark] || "<br />" | ||||
|     str.scan((/.{0,#{line_width}}/)).join(wrap_mark) | ||||
|   end | ||||
| 
 | ||||
|   def show_avatar(user) | ||||
|     if (user.avatar? rescue false) | ||||
|       image_tag(user.avatar.thumb.url) | ||||
|     else | ||||
|       image_tag "person.png" | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  |  | |||
|  | @ -0,0 +1,40 @@ | |||
| class ProtoTag | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
|   include Impressionist::Impressionable | ||||
|    | ||||
|   is_impressionable :counter_cache => { :column_name => :view_count } | ||||
|    | ||||
|   field :key | ||||
|   field :view_count, :type => Integer, :default => 0 | ||||
|   #field :cloud_amper,:type: Integer,:default=> 0  | ||||
| 
 | ||||
|   def self.sorted_for_cloud | ||||
|     tags = {} | ||||
|     self.all.each{ |tag| | ||||
|       tags.merge!({tag => self.get_impressionist(tag)}) | ||||
|     } | ||||
|     if !tags.blank? | ||||
|       sorted_tags = tags.sort{|a,b| a[1]<=>b[1]}.reverse | ||||
|       sorted_tags[0][1] = :hot1 | ||||
|       offset = (sorted_tags.size - 1) / 3 | ||||
|       i = 1 | ||||
|       class_i = 2 | ||||
|       sorted_tags[1..-1].collect!{ |x| | ||||
|         x[1] = "hot#{class_i}" | ||||
|         i == offset ? i = 1 : i += 1 if class_i < 4 | ||||
|         class_i += 1 if i == offset && class_i < 4 | ||||
|       } | ||||
|       sorted_tags | ||||
|     else | ||||
|       [] | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   protected | ||||
|    | ||||
|   def self.get_impressionist(item_tag = self) | ||||
|     item_tag.impressions.where(:created_at.gte=> 14.days.ago,:created_at.lte => Time.now).count | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  | @ -0,0 +1,4 @@ | |||
| class SubRoleTag < ProtoTag | ||||
|   has_and_belongs_to_many :sub_roles | ||||
| 
 | ||||
| end | ||||
|  | @ -1,41 +1,4 @@ | |||
| class Tag | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
|   include Impressionist::Impressionable | ||||
|    | ||||
|   is_impressionable :counter_cache => { :column_name => :view_count } | ||||
|    | ||||
|   field :key | ||||
|   field :view_count, :type => Integer, :default => 0 | ||||
|   #field :cloud_amper,:type: Integer,:default=> 0  | ||||
| class Tag < ProtoTag | ||||
|   belongs_to :module_app | ||||
| 
 | ||||
|   def self.sorted_for_cloud | ||||
|     tags = {} | ||||
|     self.all.each{ |tag| | ||||
|       tags.merge!({tag => self.get_impressionist(tag)}) | ||||
|     } | ||||
|     if !tags.blank? | ||||
|       sorted_tags = tags.sort{|a,b| a[1]<=>b[1]}.reverse | ||||
|       sorted_tags[0][1] = :hot1 | ||||
|       offset = (sorted_tags.size - 1) / 3 | ||||
|       i = 1 | ||||
|       class_i = 2 | ||||
|       sorted_tags[1..-1].collect!{ |x| | ||||
|         x[1] = "hot#{class_i}" | ||||
|         i == offset ? i = 1 : i += 1 if class_i < 4 | ||||
|         class_i += 1 if i == offset && class_i < 4 | ||||
|       } | ||||
|       sorted_tags | ||||
|     else | ||||
|       [] | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   protected | ||||
|    | ||||
|   def self.get_impressionist(item_tag = self) | ||||
|     item_tag.impressions.where(:created_at.gte=> 14.days.ago,:created_at.lte => Time.now).count | ||||
|   end | ||||
| 
 | ||||
| end | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ class AttributeField | |||
|   include Mongoid::Timestamps | ||||
|    | ||||
|   field :key | ||||
|   field :markup | ||||
|   field :markup #[select,text_field,email,date,addr] | ||||
|   field :locale, :type => Boolean, :default => true | ||||
|   field :list_options, :type => Array | ||||
|   field :built_in, :type => Boolean, :default => false | ||||
|  | @ -15,10 +15,14 @@ class AttributeField | |||
|   field :neutral_title | ||||
| 
 | ||||
|   belongs_to :attribute | ||||
|   belongs_to :role | ||||
|   # belongs_to :role | ||||
|   has_many :attribute_values | ||||
|    | ||||
|   # validates_uniqueness_of :key | ||||
|   def role | ||||
|     self.attribute.role | ||||
|   end | ||||
| 
 | ||||
|   def title_translations | ||||
|     if locale | ||||
|       return locale_title_translations | ||||
|  | @ -29,7 +33,7 @@ class AttributeField | |||
| 
 | ||||
|   def title_translations=(var) | ||||
|      if locale | ||||
|       self.locale_title = var | ||||
|       self.locale_title_translations = var | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|  |  | |||
|  | @ -2,9 +2,12 @@ class Status | |||
|    | ||||
|   include Mongoid::Document | ||||
|   include Mongoid::Timestamps | ||||
| 
 | ||||
|   has_and_belongs_to_many :users | ||||
| 
 | ||||
|    | ||||
|   belongs_to :role | ||||
|   has_and_belongs_to_many :sub_roles   | ||||
|   # has_and_belongs_to_many :sub_roles   | ||||
| 
 | ||||
|   field :title, localize: true | ||||
|    | ||||
|  |  | |||
|  | @ -2,7 +2,9 @@ class SubRole < Attribute | |||
|    | ||||
|   belongs_to :role | ||||
|   has_and_belongs_to_many :users | ||||
|   has_and_belongs_to_many :statuses, :autosave => true, :dependent => :destroy | ||||
|   #has_and_belongs_to_many :statuses, :autosave => true, :dependent => :destroy | ||||
|   has_and_belongs_to_many :tags, :class_name => "SubRoleTag", :autosave => true | ||||
| 
 | ||||
|   # Get an sub_role from key | ||||
|   def self.get_sub_role_from_key(key) | ||||
|     self.first(:conditions => {:key => key}) | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ class User | |||
|   # field :cache_dept | ||||
|   # has_one :cache_dept, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy | ||||
|   field :cache_dept,type: Hash | ||||
|   field :status_record,type: Hash | ||||
| 
 | ||||
|   has_many :attribute_values, :autosave => true, :dependent => :destroy | ||||
|   has_many :app_auths,as: :privilege_apps,:inverse_of => :privilege_lists | ||||
|  | @ -25,9 +26,9 @@ class User | |||
|   has_many :other_accounts, :autosave => true, :dependent => :destroy | ||||
|   has_many :journals, :autosave => true, :dependent => :destroy | ||||
|   has_many :papers, :autosave => true, :dependent => :destroy | ||||
|   has_and_belongs_to_many :sub_role_tags | ||||
| 
 | ||||
| 
 | ||||
|   belongs_to :role | ||||
|   has_and_belongs_to_many :statuses | ||||
|   has_and_belongs_to_many :roles | ||||
|   has_and_belongs_to_many :sub_roles | ||||
|   accepts_nested_attributes_for :attribute_values, :allow_destroy => true  | ||||
|  |  | |||
|  | @ -0,0 +1,16 @@ | |||
|   <div class="quick-edit"> | ||||
|                             <ul class="nav nav-pills hide"> | ||||
|                                 <li><a href="#"><%= t("admin.new_admin.action.edit")%> </a></li> | ||||
|                                 <li class="dropdown"> | ||||
|                                     <a href="#" data-toggle="dropdown" class="dropdown-toggle"><%= t("admin.new_admin.action.quick_edit")%><b class="caret"></b></a> | ||||
|                                     <ul class="dropdown-menu" id="menu1"> | ||||
|                                         <li><a href="#"># TODO:Basic</a></li> | ||||
|                                         <li><a href="#"># TODO:Picture</a></li> | ||||
|                                         <li><a href="#"># TODO:Tags</a></li> | ||||
|                                         <li><a href="#"># TODO:Link</a></li> | ||||
|                                         <li><a href="#"># TODO:File</a></li> | ||||
|                                     </ul> | ||||
|                                 </li> | ||||
|                                 <li><a href="#"><%= t("admin.new_admin.action.delete")%></a></li> | ||||
|                             </ul> | ||||
|                         </div> | ||||
|  | @ -37,8 +37,9 @@ | |||
|                 </div> | ||||
|                 <div class="accordion-body collapse" id="collapse-category"> | ||||
|                     <div class="accordion-inner" data-toggle="buttons-checkbox"> | ||||
|                         <a href="#" class="btn">Category1</a> | ||||
|                         <a href="#" class="btn">Category2</a> | ||||
|                         <% @sub_roles.each do |sr|%> | ||||
|                             <a href="#" class="btn"><%= sr.title%></a> | ||||
|                         <% end -%> | ||||
|                     </div> | ||||
|                     <div class="filter-clear"> | ||||
|                         <a href="#" class="btn"><i class="icons-brush-large"></i><%= t("admin.new_admin.table_header.clear_filter")%></a> | ||||
|  | @ -46,26 +47,9 @@ | |||
|                 </div> | ||||
|                 <div class="accordion-body collapse" id="collapse-tags"> | ||||
|                     <div class="accordion-inner" data-toggle="buttons-checkbox"> | ||||
|                         <a href="#" class="btn">Tag1</a> | ||||
|                         <a href="#" class="btn">Tag2</a> | ||||
|                         <a href="#" class="btn">Tag3</a> | ||||
|                         <a href="#" class="btn">Tag4</a> | ||||
|                         <a href="#" class="btn">Tag5</a> | ||||
|                         <a href="#" class="btn">Tag6</a> | ||||
|                         <a href="#" class="btn">Tag7</a> | ||||
|                         <a href="#" class="btn">Tag8</a> | ||||
|                         <a href="#" class="btn">Tag9</a> | ||||
|                         <a href="#" class="btn">Tag10</a> | ||||
|                         <a href="#" class="btn">Tag11</a> | ||||
|                         <a href="#" class="btn">Tag12</a> | ||||
|                         <a href="#" class="btn">Tag13</a> | ||||
|                         <a href="#" class="btn">Tag14</a> | ||||
|                         <a href="#" class="btn">Tag15</a> | ||||
|                         <a href="#" class="btn">Tag16</a> | ||||
|                         <a href="#" class="btn">Tag17</a> | ||||
|                         <a href="#" class="btn">Tag18</a> | ||||
|                         <a href="#" class="btn">Tag19</a> | ||||
|                         <a href="#" class="btn">Tag20</a> | ||||
|                         <% @sub_role_tags.each do |sr_tag|%> | ||||
|                             <a href="#" class="btn"><%= sr_tag[I18n.locale] %></a> | ||||
|                         <% end -%> | ||||
|                     </div> | ||||
|                     <div class="filter-clear"> | ||||
|                         <a href="#" class="btn"><i class="icons-brush-large"></i><%= t("admin.new_admin.table_header.clear_filter")%></a> | ||||
|  |  | |||
|  | @ -1,17 +1,8 @@ | |||
|         <div class="form-actions form-fixed pagination-right"> | ||||
|        <div class="form-actions form-fixed pagination-right"> | ||||
|             <%= link_to(new_admin_users_new_interface_path,:class=> "btn btn-primary pull-right") do%> | ||||
|                 <i class="icon-plus icon-white"></i><%= t("admin.new_admin.action.add")%> | ||||
|             <% end -%> | ||||
|             <div class="paginationFixed"> | ||||
|                 <div class="pagination"> | ||||
|                     <ul> | ||||
|                         <li><a href="#"><%= t("admin.new_admin.action.prev")%></a></li> | ||||
|                         <li class="active"><a href="#">1</a></li> | ||||
|                         <li><a href="#">2</a></li> | ||||
|                         <li><a href="#">3</a></li> | ||||
|                         <li><a href="#">4</a></li> | ||||
|                         <li><a href="#"><%= t("admin.new_admin.action.next")%></a></li> | ||||
|                     </ul> | ||||
|                 </div> | ||||
|             <div class="paginationFixed" id="user_pagination"> | ||||
|                <%= paginate @users, :params => {:inner => false}%> | ||||
|             </div> | ||||
|         </div> | ||||
|  |  | |||
|  | @ -0,0 +1,7 @@ | |||
| <% content_for :page_specific_css do -%> | ||||
|     <%= stylesheet_link_tag "member" %> | ||||
|     <%= stylesheet_link_tag "item"%> | ||||
| <% end -%> | ||||
| <% content_for :page_specific_javascript do -%> | ||||
|     <%#= javascript_include_tag "/static/jquery.cycle.all.latest.js" %> | ||||
| <% end -%> | ||||
|  | @ -0,0 +1,7 @@ | |||
| <%#= render_sort_bar(true, delete_admin_assets_path(:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil, :sort_options => params[:sort_options]), | ||||
|  ['title', 'title','span4', 'admin.title'], | ||||
|                           ['description', 'description', 'span1-2', 'admin.data'], | ||||
|                           ['intro', 'intro', 'span1-2', 'admin.file_type'], | ||||
|                           ['intro', 'intro', 'span1-2', 'admin.file_length'], | ||||
|                           ['intro', 'intro', 'span1-2', 'admin.description'], | ||||
|                           ['intro', 'intro', 'span1-2', 'admin.tags']).html_safe %> | ||||
|  | @ -2,36 +2,21 @@ | |||
|                     <td class="span1"><input type="checkbox"></td> | ||||
|                     <td class="span3"> | ||||
|                         <div class="label-group"> | ||||
|                             <div class="label-td"> | ||||
|                             <div class="label-td"><!--  | ||||
|                                 <span class="label label-teacher"># TODO:Teacher</span> | ||||
|                                 <span class="label label-student"># TODO:Student</span> | ||||
|                                 <span class="label label-staff"># TODO:Staff</span> | ||||
|                                 <span class="label label-staff"># TODO:Staff</span> --> | ||||
|                             </div> | ||||
|                         </div> | ||||
|                     </td> | ||||
|                     <td class="span1-2"> | ||||
|                         <%= user_for_listing.name %> | ||||
|                         <div class="quick-edit"> | ||||
|                             <ul class="nav nav-pills hide"> | ||||
|                                 <li><a href="#"><%= t("admin.new_admin.action.edit")%> </a></li> | ||||
|                                 <li class="dropdown"> | ||||
|                                     <a href="#" data-toggle="dropdown" class="dropdown-toggle"><%= t("admin.new_admin.action.quick_edit")%><b class="caret"></b></a> | ||||
|                                     <ul class="dropdown-menu" id="menu1"> | ||||
|                                         <li><a href="#"># TODO:Basic</a></li> | ||||
|                                         <li><a href="#"># TODO:Picture</a></li> | ||||
|                                         <li><a href="#"># TODO:Tags</a></li> | ||||
|                                         <li><a href="#"># TODO:Link</a></li> | ||||
|                                         <li><a href="#"># TODO:File</a></li> | ||||
|                                     </ul> | ||||
|                                 </li> | ||||
|                                 <li><a href="#"><%= t("admin.new_admin.action.delete")%></a></li> | ||||
|                             </ul> | ||||
|                         </div> | ||||
|                         <%= link_to user_for_listing.name,admin_users_new_interface_path(user_for_listing) %> | ||||
|                         <%#= render "deled_quick_edit"%> | ||||
|                     </td> | ||||
|                     <td class="span2"># TODO</td> | ||||
|                     <td class="span2"># TODO</td> | ||||
|                     <td class="span2"><%= Random.rand(1000)%></td> | ||||
|                     <td class="span2"><%= Random.rand(10)%></td> | ||||
|                     <td class="span2"> | ||||
|                         10,597 | ||||
|                         <%= Random.rand(10000)%> | ||||
|                         <p class="gender male"></p> | ||||
|                     </td> | ||||
|                 </tr> | ||||
|  | @ -11,11 +11,11 @@ | |||
|                         <p class="gender male"></p> | ||||
|                         <div class="user-avatar pull-left"> | ||||
|                             <p class="reflective"></p> | ||||
|                             <%= image_tag(user_for_summary.avatar.thumb.url) %> | ||||
|                             <%= show_avatar(user_for_summary) %> | ||||
|                         </div> | ||||
|                         <div class="user-meta"> | ||||
|                             <p class="user-name"> | ||||
|                                 <%= user_for_summary.name%> | ||||
|                                 <%= link_to user_for_summary.name,admin_users_new_interface_path(user_for_summary)%> | ||||
|                             </p> | ||||
|                             <div class="user-title"> | ||||
|                                 <span>#TODO 教授兼系主任</span><span>#TODO 大學部校友</span> | ||||
|  |  | |||
|  | @ -11,11 +11,11 @@ | |||
|                         <p class="gender male"></p> | ||||
|                         <div class="user-avatar"> | ||||
|                             <p class="reflective"></p> | ||||
|                             <%= image_tag(user_for_thumbnail.avatar.thumb.url) %> | ||||
|                             <%= show_avatar(user_for_thumbnail) %> | ||||
|                         </div> | ||||
|                         <div class="user-meta"> | ||||
|                             <p class="user-name"> | ||||
|                                 <%= user_for_thumbnail.name%> | ||||
|                                 <%= link_to user_for_thumbnail.name,admin_users_new_interface_path(user_for_thumbnail)%> | ||||
|                             </p> | ||||
|                         </div> | ||||
|                     </div> | ||||
|  |  | |||
|  | @ -1,18 +1,20 @@ | |||
|     <%= render :partial => "filter"%> | ||||
|         <table class="table main-list member-list"> | ||||
|             <thead> | ||||
|                 <tr> | ||||
|                     <th class="span1"></th> | ||||
|                     <th class="span3"></th> | ||||
|                     <th class="span1-2"></th> | ||||
|                     <th class="span2"></th> | ||||
|                     <th class="span2"></th> | ||||
|                     <th class="span2"></th> | ||||
|                 </tr> | ||||
|             </thead> | ||||
|             <tbody> | ||||
|             <%= render :partial => "user_for_listing",:collection=> [@users.first]%> | ||||
|             </tbody> | ||||
|         </table> | ||||
| <%= render :partial => "js_and_css"%> | ||||
| 
 | ||||
|     <%= render :partial=> "index_paginator" %> | ||||
| <%= render :partial => "filter"%> | ||||
|     <table class="table main-list member-list"> | ||||
|         <thead> | ||||
|             <tr> | ||||
|                 <th class="span1"></th> | ||||
|                 <th class="span3"></th> | ||||
|                 <th class="span1-2"></th> | ||||
|                 <th class="span2"></th> | ||||
|                 <th class="span2"></th> | ||||
|                 <th class="span2"></th> | ||||
|             </tr> | ||||
|         </thead> | ||||
|         <tbody id="tbody_users"> | ||||
|         <%= render :partial => "user_for_listing",:collection=> @users%> | ||||
|         </tbody> | ||||
|     </table> | ||||
| 
 | ||||
| <%= render :partial=> "index_paginator" %> | ||||
|  |  | |||
|  | @ -0,0 +1,3 @@ | |||
| $("#sort_headers").html("<%= j render 'sort_headers' %>"); | ||||
| $("#tbody_users").html("<%= j render :partial => 'user_for_listing', :collection => @users %>"); | ||||
| $("#user_pagination").html("<%= j paginate @users, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>"); | ||||
|  | @ -1,9 +1,9 @@ | |||
|     <%= render :partial => "filter"%> | ||||
|         <div class="member-abstract"> | ||||
|             <ul class="clear"> | ||||
|                 <% 5.times do %> | ||||
|                     <%= render :partial=>"user_for_summary",:collection=> [@users.first]%> | ||||
|                 <% end -%> | ||||
|             </ul> | ||||
|         </div> | ||||
|     <%= render :partial=> "index_paginator" %> | ||||
| <%= render :partial => "js_and_css"%> | ||||
| 
 | ||||
| <%= render :partial => "filter"%> | ||||
|     <div class="member-abstract"> | ||||
|         <ul class="clear" id="summary_block_users"> | ||||
|                 <%= render :partial=>"user_for_summary",:collection=> @users%> | ||||
|         </ul> | ||||
|     </div> | ||||
| <%= render :partial=> "index_paginator" %> | ||||
|  | @ -0,0 +1,3 @@ | |||
| $("#sort_headers").html("<%= j render 'sort_headers' %>"); | ||||
| $("#summary_block_users").html("<%= j render :partial => 'user_for_summary', :collection => @users %>"); | ||||
| $("#user_pagination").html("<%= j paginate @users, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>"); | ||||
|  | @ -1,8 +1,8 @@ | |||
|     <%= render :partial => "filter"%> | ||||
|         <div class="member-large"> | ||||
|             <ul class="clear"> | ||||
|                 <% 5.times do %> | ||||
|                     <%= render :partial=>"user_for_thumbnail",:collection=> [@users.first]%> | ||||
|                 <% end -%> | ||||
|             </div> | ||||
|     <%= render :partial=> "index_paginator" %> | ||||
| <%= render :partial => "js_and_css"%> | ||||
| 
 | ||||
| <%= render :partial => "filter"%> | ||||
|     <div class="member-large"> | ||||
|         <ul class="clear" id="thumbnail_block_users"> | ||||
|             <%= render :partial=>"user_for_thumbnail",:collection=> @users%> | ||||
|         </div> | ||||
| <%= render :partial=> "index_paginator" %> | ||||
|  | @ -0,0 +1,3 @@ | |||
| $("#sort_headers").html("<%= j render 'sort_headers' %>"); | ||||
| $("#thumbnail_block_users").html("<%= j render :partial => 'user_for_thumbnail', :collection => @users %>"); | ||||
| $("#user_pagination").html("<%= j paginate @users, :params => {:direction => params[:direction], :sort => params[:sort], :filter => @filter, :new_filter => nil} %>"); | ||||
|  | @ -1,3 +1,5 @@ | |||
| <%= render :partial => "js_and_css"%> | ||||
| 
 | ||||
|         <div id="isotope" class="user-data"> | ||||
|             <div id="module-nav"> | ||||
|                 <div class="arrow_next pull-right"><i class="icon-chevron-right"></i></div> | ||||
|  | @ -16,7 +18,7 @@ | |||
|                 </div> | ||||
|             </div> | ||||
|             <div class="member-plugin"> | ||||
|                 <% binding.pry%> | ||||
|                 <% #binding.pry%> | ||||
|                 <%= render :partial=> 'plugin_summary'%> | ||||
|                 <%= render :partial=> 'plugin_summary'%> | ||||
|                 <%= render :partial=> 'plugin_summary'%> | ||||
|  | @ -27,7 +29,7 @@ | |||
|                 <p class="gender male"></p> | ||||
|                 <div class="user-avatar pull-left"> | ||||
|                     <p class="reflective"></p> | ||||
|                     <img src="images/menber-pic.png"> | ||||
|                    <%= show_avatar(@user) %> | ||||
|                 </div> | ||||
|                 <p class="user-name"> | ||||
|                     <%= @user.name%> | ||||
|  | @ -47,11 +49,10 @@ | |||
|                 </div> | ||||
|                 <div class="viewport"> | ||||
|                     <div class="overview"> | ||||
|                         <% test_items = [ {:name=> "1",:value =>"Matt"},{:name=> "2",:value =>"Mark"},{:name=> "3",:value =>"Luke"},{:name=> "4",:value =>"John"} ]%> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"basic",:i18n=>"admin.new_admin.users.profile",:items=>test_items} %> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"teacher",:i18n=>"admin.new_admin.users.roles.teacher",:items=>test_items} %> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"student",:i18n=>"admin.new_admin.users.roles.student",:items=>test_items}%> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"staff",:i18n=>"admin.new_admin.users.roles.staff",:items=>test_items} %> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"basic",:i18n=>"admin.new_admin.users.profile",:items=>@profile_data} %> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"teacher",:i18n=>"admin.new_admin.users.roles.teacher",:items=>@teacher_data} %> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"student",:i18n=>"admin.new_admin.users.roles.student",:items=>@student_data}%> | ||||
|                         <%= render :partial=> "user_role",:locals=>{:role_class=>"staff",:i18n=>"admin.new_admin.users.roles.staff",:items=>@staff_data} %> | ||||
|                     </div> | ||||
|                 <div> | ||||
|             </div> | ||||
|  |  | |||
|  | @ -37,14 +37,13 @@ | |||
| <%# end -%> | ||||
| 
 | ||||
| <%= content_tag :li, :class => active_for_controllers('users_new_interface')  do -%> | ||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-page') + t('admin.new_admin.user'), admin_users_new_interface_index_path %> | ||||
| 	<%= link_to content_tag(:i, nil, :class => 'icons-page')+ content_tag(:span, t('admin.new_admin.user')), admin_users_new_interface_index_path %> | ||||
| 		<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('users_new_interface')) do -%> | ||||
| 			<%= content_tag :li, link_to(t('admin.new_admin.side_bar.all_user'), ), :class => active_for_action('users_new_interface', 'index') %> | ||||
| 			<%= content_tag :li, link_to("#TODO Role1", ), :class => active_for_action('users_new_interface', 'index') %> | ||||
| 			<%= content_tag :li, link_to(t("#TODO Role2"), ), :class => active_for_action('users_new_interface', 'index') %> | ||||
| 			<%= content_tag :li, link_to(t('admin.new_admin.side_bar.add_user')) %> | ||||
| 			<%= content_tag :li, link_to(t('admin.new_admin.side_bar.user_roles')) %> | ||||
| 			<%= content_tag :li, link_to(t('admin.new_admin.side_bar.user_info')) %> | ||||
| 
 | ||||
| 		  <%= content_tag :li, link_to((t('admin.new_admin.side_bar.all_user') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, admin_users_new_interface_index_path), :class => active_for_action('users_new_interface', 'index') %> | ||||
| 		  <%= content_tag :li, link_to((t('admin.new_admin.side_bar.add_user') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, ), :class => active_for_action('users_new_interfacexx', 'index') %> | ||||
| 		  <%= content_tag :li, link_to((t('admin.new_admin.side_bar.user_roles') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, ), :class => active_for_action('users_new_interfacexx', 'index') %> | ||||
| 		  <%= content_tag :li, link_to((t('admin.new_admin.side_bar.user_info') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, ), :class => active_for_action('users_new_interfacexx', 'index') %> | ||||
| 		<% end -%> | ||||
| 
 | ||||
| <% end -%> | ||||
|  |  | |||
|  | @ -1,6 +1,137 @@ | |||
| # encoding: utf-8  | ||||
| 
 | ||||
| namespace :build_new_member do | ||||
|   task :sub_role_tags_generate => :environment do | ||||
|     SubRoleTag.destroy_all | ||||
|     role_keys = %w{teacher staff student} | ||||
|     role_keys.each do |role_key| | ||||
|       role = Role.first({conditions:{key: role_key}}) | ||||
|       puts "Starting with Role with key: #{role_key}"  | ||||
|       role.sub_roles.each do |sr| | ||||
|         puts "Role : #{role_key} => #{sr.title}" | ||||
|         for i in 1..7  | ||||
|           sr.tags.build(:en =>  "Students-#{sr.title_translations['en']}_#{i}" , :zh_tw =>  "在校學生-#{sr.title_translations['zh_tw']}_#{i}" , :key =>  "#{role_key}_#{sr.title_translations['en'].parameterize}_#{i}" ) | ||||
|         end | ||||
|         sr.save | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   task :fields_for_teacher => :environment do | ||||
|     sub_role_attribute_fields_template = [ | ||||
|       {key: 'status', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"狀態", "en"=>"Status"}, neutral_title: nil }, | ||||
|       {key: 'other_position', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"其他職位", "en"=>"Other Position"}, neutral_title: nil }, | ||||
|       {key: 'research_domain', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"研究領域", "en"=>"Research Domain"}, neutral_title: nil }, | ||||
|       {key: 'teaching_domain', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"授課領域", "en"=>"Teaching Domain"}, neutral_title: nil } | ||||
|     ] | ||||
|     role = Role.first({conditions:{key: 'teacher'}}) | ||||
|     role.sub_roles.each{|sb| | ||||
|       sb.attribute_fields.destroy_all | ||||
|       sub_role_attribute_fields_template.each{|att_f| | ||||
|         sb.attribute_fields.build att_f  | ||||
|       } | ||||
|      sb.save  | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|   task :fields_for_student => :environment do | ||||
|     sub_role_attribute_fields_template = [ | ||||
|       {key: 'status', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"狀態", "en"=>"Status"}, neutral_title: nil }, | ||||
|       {key: 'entrance_year', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"入學年", "en"=>"Entrance Year"}, neutral_title: nil }, | ||||
|       {key: 'graduation_date', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"屆別", "en"=>"Graduation Date"}, neutral_title: nil }, | ||||
|       {key: 'actual_graduation', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"實際畢業年", "en"=>"Actual Graduation"}, neutral_title: nil } | ||||
|     ] | ||||
|     role = Role.first({conditions:{key: 'student'}}) | ||||
|     role.sub_roles.each{|sb| | ||||
|       sb.attribute_fields.destroy_all | ||||
|       sub_role_attribute_fields_template.each{|att_f| | ||||
|         sb.attribute_fields.build att_f  | ||||
|       } | ||||
|      sb.save  | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|   task :fields_for_staff => :environment do | ||||
|     sub_role_attribute_fields_template = [ | ||||
|       {key: 'status', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"狀態", "en"=>"Status"}, neutral_title: nil }, | ||||
|       {key: 'responsibilities', markup: "text_field", locale: true, list_options: nil, built_in: true, disabled: false, locale_title_translations: {"zh_tw"=>"負責業務", "en"=>"Responsibilities"}, neutral_title: nil } | ||||
|     ] | ||||
|     role = Role.first({conditions:{key: 'staff'}}) | ||||
|     role = Role.create!({key: "staff", built_in: true, disabled: false, title_translations: {"en"=>"Staff", "zh_tw"=>"行政人員"}}) if role.nil? | ||||
|     role.sub_roles.each{|sb| | ||||
|       sb.attribute_fields.destroy_all | ||||
|       sub_role_attribute_fields_template.each{|att_f| | ||||
|         sb.attribute_fields.build att_f  | ||||
|       } | ||||
|      sb.save  | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|   task :matt_data => :environment do | ||||
|     b = User.first({conditions:{email: 'matt@rulingcom.com'}}) | ||||
|     b.attribute_values.destroy_all | ||||
| 
 | ||||
|     data = [{:key=> 'last_name',:en=>'Fu',:zh_tw=>'傅'}, | ||||
|     {:key=> 'first_name',:en=>'Matt',:zh_tw=>'儒淵'}, | ||||
|     {:key=> 'nick_name',:en=> 'Matt K.',:zh_tw=> 'Matt K.'}, | ||||
|     {:key=> 'addr',:en=>'Earth',:zh_tw=>'302新竹縣竹北市嘉豐南路二段101號'}, | ||||
|     {:key=> 'phone',:en=>'035508881',:zh_tw=>'035508881'}, | ||||
|     {:key=> 'gender',:en=>'Male',:zh_tw=>'男'}, | ||||
|     {:key=> 'birthday',:en=>'1986',:zh_tw=>'1986'}, | ||||
|     {:key=> 'email',:en=>'matt@rulingcom.com',:zh_tw=>'matt@rulingcom.com'}] | ||||
| 
 | ||||
|     data_hash = Hash[data.map{|t| [t[:key],t] }] | ||||
|     Info.first.attribute_fields.each do |profile_field| | ||||
|        b.attribute_values.build(data_hash.fetch(profile_field.key).merge({:attribute_field_id=>profile_field.id})) | ||||
|     end | ||||
| 
 | ||||
|     #================================================================== | ||||
|     b.roles = [] | ||||
|     b.roles <<  Role.first({conditions:{key: 'teacher'}}) | ||||
|     b.roles <<  Role.first({conditions:{key: 'student'}}) | ||||
|     #================================================================== | ||||
|     b.sub_roles = [] | ||||
|     sr_1 = b.roles.first.sub_roles.last | ||||
|     sr_2 = b.roles.last.sub_roles.last | ||||
|     b.sub_roles << sr_1 #use teacher data | ||||
|     b.sub_roles << sr_2 #use student data | ||||
|     #================================================================== | ||||
|     # to get field for fast fill up:   sr_2.attribute_fields.map{|t| Hash[t.key,nil]}  | ||||
|     {"status"=>"兼職","research_domain"=>"神經網絡","teaching_domain"=>"平行運算"}.each do |key, value| | ||||
|       field = sr_1.attribute_fields.where({key: key}).first | ||||
|       b.attribute_values.build({key=>value}.merge({:key=>field.key,:attribute_field_id=>field.id})) | ||||
|     end | ||||
| 
 | ||||
|     {"status"=>"在學中","entrance_year"=>2010}.each do |key, value| | ||||
|       field = sr_2.attribute_fields.where({key: key}).first | ||||
|       b.attribute_values.build({key=>value}.merge({:key=>field.key,:attribute_field_id=>field.id})) | ||||
|     end | ||||
| 
 | ||||
|     # b.attribute_values.build :key=> 'last_name',:en=>'Fu',:zh_tw=>'傅' | ||||
|     # b.attribute_values.build :key=> 'first_name',:en=>'Matt',:zh_tw=>'儒淵' | ||||
|     # b.attribute_values.build :key=> 'nick_name',:en=> 'Matt K.',:zh_tw=> 'Matt K.' | ||||
|     # b.attribute_values.build :key=> 'addr',:en=>'Earth',:zh_tw=>'302新竹縣竹北市嘉豐南路二段101號' | ||||
|     # b.attribute_values.build :key=> 'phone',:en=>'035508881',:zh_tw=>'035508881' | ||||
|     # b.attribute_values.build :key=> 'gender',:en=>'Male',:zh_tw=>'男' | ||||
|     # b.attribute_values.build :key=> 'birthday',:en=>'1986',:zh_tw=>'1986' | ||||
|     # b.attribute_values.build :key=> 'email',:en=>'matt@rulingcom.com',:zh_tw=>'matt@rulingcom.com' | ||||
|     b.save | ||||
|   end | ||||
| 
 | ||||
|   task :chris_data => :environment do | ||||
|     b = User.first({conditions:{email: 'chris@rulingcom.com'}}) | ||||
|     b.attribute_values.destroy_all | ||||
|     b.attribute_values.build :key=> 'last_name',:en=>'Vilayphiou',:zh_tw=>'林' | ||||
|     b.attribute_values.build :key=> 'first_name',:en=>'Christophe',:zh_tw=>'順發' | ||||
|     b.attribute_values.build :key=> 'nick_name',:en=> 'Chris',:zh_tw=> 'Chris' | ||||
|     b.attribute_values.build :key=> 'addr',:en=>'asdsaddasdasd',:zh_tw=>'302新竹縣竹北市嘉豐南路二段101號' | ||||
|     b.attribute_values.build :key=> 'phone',:en=>'035508881',:zh_tw=>'035508881' | ||||
|     b.attribute_values.build :key=> 'gender',:en=>'Male',:zh_tw=>'男' | ||||
|     b.attribute_values.build :key=> 'birthday',:en=>'1990',:zh_tw=>'1990' | ||||
|     b.attribute_values.build :key=> 'email',:en=>'chris@rulingcom.com',:zh_tw=>'chris@rulingcom.com' | ||||
|     b.save | ||||
|   end | ||||
| 
 | ||||
|   task :module_app => :environment do | ||||
|     ModuleApp.create!(:key=>"new_member", | ||||
|                               :title=>"new_member", | ||||
|  | @ -43,40 +174,67 @@ namespace :build_new_member do | |||
|     student_role.save | ||||
|     p "==Finished building sub_roles for Students" | ||||
| 
 | ||||
|     staff_role = Role.first({conditions:{key: 'staff'}}) | ||||
|     staff_role.sub_roles.destroy_all | ||||
|     staff_sub_roles ={ | ||||
|       :general => {"zh_tw"=>"一般", "en"=>"General"} | ||||
|     } | ||||
| 
 | ||||
|     staff_sub_roles.each do |key,title| | ||||
|       staff_role.sub_roles.build :key=>key,:title_translations=>title,:built_in=>true | ||||
|       puts "=SubRole key:#{key}\t Title:#{title}" | ||||
|     end | ||||
|     staff_role.save | ||||
|     p "==Finished building sub_roles for Staff" | ||||
| 
 | ||||
|     staff_role = Role.first({conditions:{key: 'staff'}}) | ||||
|     staff_role.sub_roles.destroy_all | ||||
|     staff_sub_roles ={ | ||||
|       :general => {"zh_tw"=>"一般", "en"=>"General"} | ||||
|     } | ||||
| 
 | ||||
|     staff_sub_roles.each do |key,title| | ||||
|       staff_role.sub_roles.build :key=>key,:title_translations=>title,:built_in=>true | ||||
|       puts "=SubRole key:#{key}\t Title:#{title}" | ||||
|     end | ||||
|     staff_role.save | ||||
|     p "==Finished building sub_roles for Staff" | ||||
| 
 | ||||
|   end | ||||
| 
 | ||||
|   task :status => :environment do | ||||
|     teacher_role = Role.first({conditions:{key: 'teacher'}}) | ||||
|     teacher_role.statuses.destroy_all | ||||
|     teacher_status ={ | ||||
|       :fulltime => {"en"=>"Full Time", "zh_tw"=>"全職"}, | ||||
|       :adjunct => {"en"=>"Adjunct", "zh_tw"=>"兼職"}, | ||||
|       :co_hiring => {"en"=>"Co Hiring", "zh_tw"=>"合聘"}, | ||||
|       :distinguished => {"en"=>"Distinguished", "zh_tw"=>"特聘"} | ||||
|     } | ||||
|     teacher_status.each do |key,title| | ||||
|       teacher_role.statuses.build :key=>key,:title_translations=>title | ||||
|       puts "=Status key:#{key}\t Title:#{title}" | ||||
|     end | ||||
|     teacher_role.save | ||||
| 
 | ||||
|     p "==Finished building status for Teachers" | ||||
|   # task :status => :environment do | ||||
|   #   teacher_role = Role.first({conditions:{key: 'teacher'}}) | ||||
|   #   teacher_role.statuses.destroy_all | ||||
|   #   teacher_status ={ | ||||
|   #     :fulltime => {"en"=>"Full Time", "zh_tw"=>"全職"}, | ||||
|   #     :adjunct => {"en"=>"Adjunct", "zh_tw"=>"兼職"}, | ||||
|   #     :co_hiring => {"en"=>"Co Hiring", "zh_tw"=>"合聘"}, | ||||
|   #     :distinguished => {"en"=>"Distinguished", "zh_tw"=>"特聘"} | ||||
|   #   } | ||||
|   #   teacher_status.each do |key,title| | ||||
|   #     teacher_role.statuses.build :key=>key,:title_translations=>title | ||||
|   #     puts "=Status key:#{key}\t Title:#{title}" | ||||
|   #   end | ||||
|   #   teacher_role.save | ||||
| 
 | ||||
|     student_role = Role.first({conditions:{key: 'student'}}) | ||||
|     student_status.statuses.destroy_all | ||||
|     student_status ={ | ||||
|       :studying => {"en"=>"Studying", "zh_tw"=>"在學"}, | ||||
|       :drop_out => {"en"=>"Drop-out", "zh_tw"=>"休學"}, | ||||
|       :alumi => {"en"=>"Alumi", "zh_tw"=>"校友"}, | ||||
|       :suspended => {"en"=>"Suspended", "zh_tw"=>"未完成"} | ||||
|     } | ||||
|     student_status.each do |key,title| | ||||
|       student_role.statuses.build :key=>key,:title_translations=>title | ||||
|       puts "=Status key:#{key}\t Title:#{title}" | ||||
|     end | ||||
|     student_role.save | ||||
|   #   p "==Finished building status for Teachers" | ||||
| 
 | ||||
|     p "==Finished building status for Students" | ||||
|   #   student_role = Role.first({conditions:{key: 'student'}}) | ||||
|   #   student_status.statuses.destroy_all | ||||
|   #   student_status ={ | ||||
|   #     :studying => {"en"=>"Studying", "zh_tw"=>"在學"}, | ||||
|   #     :drop_out => {"en"=>"Drop-out", "zh_tw"=>"休學"}, | ||||
|   #     :alumi => {"en"=>"Alumi", "zh_tw"=>"校友"}, | ||||
|   #     :suspended => {"en"=>"Suspended", "zh_tw"=>"未完成"} | ||||
|   #   } | ||||
|   #   student_status.each do |key,title| | ||||
|   #     student_role.statuses.build :key=>key,:title_translations=>title | ||||
|   #     puts "=Status key:#{key}\t Title:#{title}" | ||||
|   #   end | ||||
|   #   student_role.save | ||||
| 
 | ||||
|   end | ||||
|   #   p "==Finished building status for Students" | ||||
| 
 | ||||
|   # end | ||||
| end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue