widget link followed by setting
This commit is contained in:
parent
28f0df5da8
commit
3098496083
|
@ -101,10 +101,10 @@ class ApplicationController < ActionController::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
# Render the page
|
# Render the page
|
||||||
def render_page
|
def render_page(args=nil)
|
||||||
if @item
|
if @item
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
format.html { render :text => parse_page_content(@item), :layout => 'page_layout' }
|
format.html { render :text => parse_page_content(@item,args), :layout => 'page_layout' }
|
||||||
format.rss { render_main_rss }
|
format.rss { render_main_rss }
|
||||||
format.mobile { redirect_to mobile_path(:app => params[:app]) }
|
format.mobile { redirect_to mobile_path(:app => params[:app]) }
|
||||||
end
|
end
|
||||||
|
|
|
@ -41,7 +41,8 @@ class DefaultWidgetController< OrbitWidgetController
|
||||||
|
|
||||||
def default_widget
|
def default_widget
|
||||||
if !params[:id].blank?
|
if !params[:id].blank?
|
||||||
redirect_to eval("#{@page_part.module_app.widget_fields_link_method[:title][:method]}('#{params[:id]}', {inner: #{params[:inner] || true}})")
|
clicked_field_name = params["clicked_field_name"].to_sym
|
||||||
|
redirect_to eval("#{@page_part.module_app.widget_fields_link_method[clicked_field_name][:method]}('#{params[:id]}', {inner: #{params[:inner] || true}})")
|
||||||
else
|
else
|
||||||
@tag_class = nil
|
@tag_class = nil
|
||||||
@default_widget = @page_part.module_app.get_default_widget
|
@default_widget = @page_part.module_app.get_default_widget
|
||||||
|
|
|
@ -14,14 +14,18 @@ class PagesController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
#begin
|
#begin
|
||||||
@item = Item.first(:conditions => {:path => params[:page_name]})
|
@item = Item.first(:conditions => {:path => params[:page_name]})
|
||||||
if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s))
|
if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s))
|
||||||
impressionist(@item)
|
impressionist(@item)
|
||||||
case @item.class.to_s
|
case @item.class.to_s
|
||||||
when 'Page'
|
when 'Page'
|
||||||
render_page unless save_from_no_lang_for_page
|
if params[:clicked_field_name]
|
||||||
|
render_page({"clicked_field_name"=>params["clicked_field_name"]}) unless save_from_no_lang_for_page
|
||||||
|
else
|
||||||
|
render_page unless save_from_no_lang_for_page
|
||||||
|
end
|
||||||
when 'Link'
|
when 'Link'
|
||||||
redirect_to(@item[:url]) unless save_from_no_lang_for_page
|
redirect_to(@item[:url]) unless save_from_no_lang_for_page
|
||||||
end
|
end
|
||||||
|
@ -54,6 +58,7 @@ class PagesController < ApplicationController
|
||||||
options << "#{options.blank? ? '?' : '&'}tag_id=#{params[:tag_id]}" unless params[:tag_id].blank?
|
options << "#{options.blank? ? '?' : '&'}tag_id=#{params[:tag_id]}" unless params[:tag_id].blank?
|
||||||
options << "#{options.blank? ? '?' : '&'}preview=#{params[:preview]}" unless params[:preview].blank?
|
options << "#{options.blank? ? '?' : '&'}preview=#{params[:preview]}" unless params[:preview].blank?
|
||||||
options << "#{options.blank? ? '?' : '&'}controller_action=#{params[:controller_action]}" unless params[:controller_action].blank?
|
options << "#{options.blank? ? '?' : '&'}controller_action=#{params[:controller_action]}" unless params[:controller_action].blank?
|
||||||
|
options << "#{options.blank? ? '?' : '&'}clicked_field_name=#{params[:clicked_field_name]}" unless params[:clicked_field_name].blank?
|
||||||
redirect_to(url + options) unless save_from_no_lang_for_page
|
redirect_to(url + options) unless save_from_no_lang_for_page
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ module DefaultWidgetHelper
|
||||||
def link_to_field(row_data,field, switch, options=nil)
|
def link_to_field(row_data,field, switch, options=nil)
|
||||||
method_ary = @page_part.module_app.widget_fields_link_method
|
method_ary = @page_part.module_app.widget_fields_link_method
|
||||||
field = field.to_sym
|
field = field.to_sym
|
||||||
|
options = options || {}
|
||||||
|
options[:clicked_field_name] = field
|
||||||
if(method_ary.has_key?(field) and (switch.to_s == "true"))
|
if(method_ary.has_key?(field) and (switch.to_s == "true"))
|
||||||
url = case method_ary[field][:args]
|
url = case method_ary[field][:args]
|
||||||
when nil # no args
|
when nil # no args
|
||||||
|
|
|
@ -242,7 +242,7 @@ module ParserCommon
|
||||||
categories_str = "&#{categories_str}" unless categories_str.blank?
|
categories_str = "&#{categories_str}" unless categories_str.blank?
|
||||||
tags_str = "&#{tags_str}" unless tags_str.blank?
|
tags_str = "&#{tags_str}" unless tags_str.blank?
|
||||||
|
|
||||||
ret << "?inner=true&page_id=#{page.id}#{categories_str}#{tags_str}&preview=#{params[:preview]}&page_main=#{params[:page_main]}&search_query=#{params[:search_query]}&name=#{params[:name]}&item_type=page"
|
ret << "?inner=true&page_id=#{page.id}#{categories_str}#{tags_str}&preview=#{params[:preview]}&page_main=#{params[:page_main]}&search_query=#{params[:search_query]}&clicked_field_name=#{params[:clicked_field_name]}&name=#{params[:name]}&item_type=page"
|
||||||
ret << "'></div>"
|
ret << "'></div>"
|
||||||
else
|
else
|
||||||
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
||||||
|
@ -270,7 +270,7 @@ module ParserCommon
|
||||||
categories_str = "&#{categories_str}" unless categories_str.blank?
|
categories_str = "&#{categories_str}" unless categories_str.blank?
|
||||||
tags_str = "&#{tags_str}" unless tags_str.blank?
|
tags_str = "&#{tags_str}" unless tags_str.blank?
|
||||||
|
|
||||||
options = "&part_id=#{part.id}#{categories_str}#{tags_str}&page=#{params[:page]}&search_query=#{params[:search_query]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&item_type=page_part"
|
options = "&part_id=#{part.id}#{categories_str}#{tags_str}&page=#{params[:page]}&search_query=#{params[:search_query]}&clicked_field_name=#{params[:clicked_field_name]}&part_title=#{Rack::Utils.escape(part_title).gsub("+", "%20") rescue nil}&item_type=page_part"
|
||||||
ret << "<div class='dymanic_load widget' path='#{url + options}'></div>"
|
ret << "<div class='dymanic_load widget' path='#{url + options}'></div>"
|
||||||
when 'public_r_tag'
|
when 'public_r_tag'
|
||||||
ret << "<r:#{part.public_r_tag} id='#{part.public_r_tag_object_id}'/>"
|
ret << "<r:#{part.public_r_tag} id='#{part.public_r_tag_object_id}'/>"
|
||||||
|
|
|
@ -18,7 +18,7 @@ module ParserFrontEnd
|
||||||
i18n
|
i18n
|
||||||
end
|
end
|
||||||
|
|
||||||
def parse_page_content(page)
|
def parse_page_content(page,args=nil)
|
||||||
tag = params[:tag_id].blank? ? page[:tag] : params[:tag_id]
|
tag = params[:tag_id].blank? ? page[:tag] : params[:tag_id]
|
||||||
category = params[:category_id].blank? ? page[:category] : params[:category_id]
|
category = params[:category_id].blank? ? page[:category] : params[:category_id]
|
||||||
body = Nokogiri::HTML(page.content)
|
body = Nokogiri::HTML(page.content)
|
||||||
|
@ -29,6 +29,10 @@ module ParserFrontEnd
|
||||||
ret = ''
|
ret = ''
|
||||||
part = PagePart.find(front['part_id']) if front['part_id']
|
part = PagePart.find(front['part_id']) if front['part_id']
|
||||||
ret << eval("\"#{front['path']}\"") rescue ''
|
ret << eval("\"#{front['path']}\"") rescue ''
|
||||||
|
|
||||||
|
args.each do |arg,index|
|
||||||
|
ret << (ret.include?("?") ? "&#{index}=arg": "?#{index}=arg" )
|
||||||
|
end if args
|
||||||
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load widget' path='#{ret}'></div>")
|
fragment = Nokogiri::HTML::DocumentFragment.new(body, "<div class='dymanic_load widget' path='#{ret}'></div>")
|
||||||
end
|
end
|
||||||
front.swap(fragment)
|
front.swap(fragment)
|
||||||
|
@ -125,7 +129,7 @@ module ParserFrontEnd
|
||||||
categories_str = "&#{categories_str}" unless categories_str.blank?
|
categories_str = "&#{categories_str}" unless categories_str.blank?
|
||||||
tags_str = "&#{tags_str}" unless tags_str.blank?
|
tags_str = "&#{tags_str}" unless tags_str.blank?
|
||||||
|
|
||||||
options = "&page_id=\#{page.id}#{categories_str}#{tags_str}&preview=\#{params[:preview]}&page_main=\#{params[:page_main]}&search_query=\#{params[:search_query]}&name=\#{params[:name]}&item_type=page"
|
options = "&page_id=\#{page.id}#{categories_str}#{tags_str}&preview=\#{params[:preview]}&page_main=\#{params[:page_main]}&search_query=\#{params[:search_query]}&clicked_field_name=\#{params[:clicked_field_name]}&name=\#{params[:name]}&item_type=page"
|
||||||
ret << "<orbit_front path='#{url + options}'></div>"
|
ret << "<orbit_front path='#{url + options}'></div>"
|
||||||
else
|
else
|
||||||
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
part = page.page_parts.detect{ |p| p.name.to_s == content['name'].to_s } rescue nil
|
||||||
|
@ -148,7 +152,7 @@ module ParserFrontEnd
|
||||||
categories_str = "&#{categories_str}" unless categories_str.blank?
|
categories_str = "&#{categories_str}" unless categories_str.blank?
|
||||||
tags_str = "&#{tags_str}" unless tags_str.blank?
|
tags_str = "&#{tags_str}" unless tags_str.blank?
|
||||||
|
|
||||||
options = "&part_id=\#{part.id}#{categories_str}#{tags_str}&page=\#{params[:page]}&search_query=\#{params[:search_query]}&part_title=\#{Rack::Utils.escape(part_title).gsub(\"\+\", \"\%20\") rescue nil}&item_type=page_part"
|
options = "&part_id=\#{part.id}#{categories_str}#{tags_str}&page=\#{params[:page]}&search_query=\#{params[:search_query]}&clicked_field_name=\#{params[:clicked_field_name]}&part_title=\#{Rack::Utils.escape(part_title).gsub(\"\+\", \"\%20\") rescue nil}&item_type=page_part"
|
||||||
ret << "<orbit_front path='#{url + options}' part_id=#{part.id} class='dymanic_load widget'></orbit_front>"
|
ret << "<orbit_front path='#{url + options}' part_id=#{part.id} class='dymanic_load widget'></orbit_front>"
|
||||||
|
|
||||||
when 'public_r_tag'
|
when 'public_r_tag'
|
||||||
|
|
Reference in New Issue