Add sub_menu in r_tags
This commit is contained in:
		
							parent
							
								
									db1b84e962
								
							
						
					
					
						commit
						a5b13e680f
					
				|  | @ -24,6 +24,10 @@ $("#module_app_list select").live('change', function() { | ||||||
| 	$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_widgets'); | 	$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_widgets'); | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
|  | $("#tag_list select").live('change', function() { | ||||||
|  | 	$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_r_tag_options'); | ||||||
|  | }); | ||||||
|  | 
 | ||||||
| $('.part_kind').live('click', function() { | $('.part_kind').live('click', function() { | ||||||
| 	$('.part_kind_partial').hide(); | 	$('.part_kind_partial').hide(); | ||||||
| 	$('#part_' + $(this).attr('value')).show(); | 	$('#part_' + $(this).attr('value')).show(); | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ class Admin::PagePartsController < ApplicationController | ||||||
|     @module_apps = ModuleApp.all(:conditions => {:enable_frontend => true}) |     @module_apps = ModuleApp.all(:conditions => {:enable_frontend => true}) | ||||||
|     @module_app = @part.module_app ? @part.module_app : @module_apps[0] |     @module_app = @part.module_app ? @part.module_app : @module_apps[0] | ||||||
|     @r_tag = @part.public_r_tag.blank? ? LIST[:public_r_tags][0] : @part.public_r_tag |     @r_tag = @part.public_r_tag.blank? ? LIST[:public_r_tags][0] : @part.public_r_tag | ||||||
|     @tag_objects = @r_tag.classify.constantize.all |     @tag_objects = @r_tag.classify.constantize.all rescue nil | ||||||
|       case @module_app.key |       case @module_app.key | ||||||
|         when 'bulletin' |         when 'bulletin' | ||||||
|           @categories =  BulletinCategory.all |           @categories =  BulletinCategory.all | ||||||
|  | @ -75,4 +75,12 @@ class Admin::PagePartsController < ApplicationController | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   def reload_r_tag_options | ||||||
|  |     @r_tag = (ModuleApp.find(params[:id]) rescue nil) || params[:id] | ||||||
|  |     @tag_objects = @r_tag.classify.constantize.all rescue nil | ||||||
|  |     respond_to do |format| | ||||||
|  |       format.js  {} | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  |    | ||||||
| end | end | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ class PagePart | ||||||
|   field :content |   field :content | ||||||
|   field :kind |   field :kind | ||||||
|   field :public_r_tag |   field :public_r_tag | ||||||
|   field :public_r_tag_object_id, :type => BSON::ObjectId, :default => nil |   field :public_r_tag_object_id, :default => nil | ||||||
|   field :widget_path |   field :widget_path | ||||||
|    |    | ||||||
|   has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy |   has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy | ||||||
|  |  | ||||||
|  | @ -1,7 +1,11 @@ | ||||||
| <span id='tag_list'> | <span id='tag_list'> | ||||||
| 	<%= f.select :public_r_tag, LIST[:public_r_tags].collect{|tag| [t(tag), tag]}, :selected => @r_tag %> | 	<%= f.select :public_r_tag, LIST[:public_r_tags].collect{|tag| [t(tag), tag]}, {:selected => @r_tag}, {:rel => admin_page_parts_path}  %> | ||||||
| </span> | </span> | ||||||
| 
 | 
 | ||||||
| <span id='name_list'> | <span id='name_list'> | ||||||
| 	<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %> | 	<% if @r_tag.eql?('sub_menu') %> | ||||||
|  | 		<%= f.select :public_r_tag_object_id, options_for_select([t(:horizontal), t(:vertical)], t(:horizontal)) %> | ||||||
|  | 	<% else %> | ||||||
|  | 		<%= f.select :public_r_tag_object_id, options_from_collection_for_select(@tag_objects, :id, :title, :selected => @part.public_r_tag_object_id) %> | ||||||
|  | 	<% end %> | ||||||
| </span> | </span> | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | <% if @r_tag.eql?('sub_menu') %> | ||||||
|  | 	$('#name_list select').html("<%= j options_for_select(t(:horizontal) => :horizontal, t(:vertical) => :vertical) %>") | ||||||
|  | <% else %> | ||||||
|  | 	$('#name_list select').html("<%= j options_from_collection_for_select(@tag_objects, :id, :title) %>") | ||||||
|  | <% end %> | ||||||
|  | @ -9,6 +9,7 @@ markups: | ||||||
|    |    | ||||||
| public_r_tags: | public_r_tags: | ||||||
|   - ad_banner |   - ad_banner | ||||||
|  |   - sub_menu | ||||||
|    |    | ||||||
| page_part_kinds: | page_part_kinds: | ||||||
|   - text |   - text | ||||||
|  |  | ||||||
|  | @ -77,6 +77,7 @@ Orbit::Application.routes.draw do | ||||||
|     resources :page_parts do |     resources :page_parts do | ||||||
|       member do |       member do | ||||||
|         get 'reload_widgets' |         get 'reload_widgets' | ||||||
|  |         get 'reload_r_tag_options' | ||||||
|       end |       end | ||||||
|     end |     end | ||||||
|     resources :purchases do |     resources :purchases do | ||||||
|  |  | ||||||
|  | @ -106,4 +106,20 @@ module ParserCommon | ||||||
|     page_menu.swap(fragment) |     page_menu.swap(fragment) | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  |   # sub_menus | ||||||
|  |   def parse_sub_menus(body = nil, page = nil, id = nil) | ||||||
|  |     body.css('sub_menu').each do |sub_menu| | ||||||
|  |       res = '' | ||||||
|  |       res << "<ul>" | ||||||
|  |       page.children.each do |child| | ||||||
|  |         res << "<li>" | ||||||
|  |         res << "<a href='#{child.full_name}'>#{child.i18n_variable[I18n.locale]}</a>" | ||||||
|  |         res << "</li>" | ||||||
|  |       end | ||||||
|  |       res << "</ul>" | ||||||
|  |       fragment = Nokogiri::HTML::DocumentFragment.new(body, res) | ||||||
|  |       sub_menu.swap(fragment) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | 
 | ||||||
| end | end | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue