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
|
||||||
|
|
Reference in New Issue