Changeset 1208
- Timestamp:
- 2008-10-02 16:34:45 (3 months ago)
- Files:
-
- trunk/app/controllers/application.rb (modified) (2 diffs)
- trunk/app/controllers/nodes_controller.rb (modified) (2 diffs)
- trunk/config/vhost.rhtml (modified) (1 diff)
- trunk/lib/parser/lib/rules/zena.rb (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/app/controllers/application.rb
r1207 r1208 238 238 # Return true if we can cache the current page 239 239 def caching_allowed(opts = {}) 240 return false if current_site.authentication? 240 return false if current_site.authentication? || query_params != {} 241 241 opts[:authenticated] || visitor.is_anon? 242 242 end … … 826 826 obj.save 827 827 end 828 829 # Url parameters (without format/mode/prefix...) 830 def query_params 831 res = {} 832 path_params.each do |k,v| 833 next if [:mode, :format, :asset].include?(k.to_sym) 834 res[k.to_sym] = v 835 end 836 res 837 end 838 839 # Url parameters (without action,controller,path,prefix) 840 def path_params 841 res = {} 842 params.each do |k,v| 843 next if [:action, :controller, :path, :prefix, :id].include?(k.to_sym) 844 res[k.to_sym] = v 845 end 846 res 847 end 828 848 end 829 849 trunk/app/controllers/nodes_controller.rb
r1207 r1208 35 35 # Render badly formed urls 36 36 def catch_all 37 url_params_list = []38 url_params.each do |k,v|39 url_params_list << "#{k}=#{CGI.escape(v)}"40 end 41 redirect_to "/" + ([prefix]+params[:path]).flatten.join('/') + ( url_params_list == [] ? '' : "?#{url_params_list.join('&')}")37 query_params_list = [] 38 query_params.each do |k,v| 39 query_params_list << "#{k}=#{CGI.escape(v)}" 40 end 41 redirect_to "/" + ([prefix]+params[:path]).flatten.join('/') + (query_params_list == [] ? '' : "?#{query_params_list.join('&')}") 42 42 end 43 43 … … 432 432 @node.kind_of?(Document) && params[:format] == @node.c_ext 433 433 end 434 435 # Url parameters (without format/mode/prefix...)436 def url_params437 res = {}438 path_params.each do |k,v|439 next if [:mode, :format, :asset].include?(k.to_sym)440 res[k.to_sym] = v441 end442 res443 end444 445 # Url parameters (without action,controller,path,prefix)446 def path_params447 res = {}448 params.each do |k,v|449 next if [:action, :controller, :path, :prefix, :id].include?(k.to_sym)450 res[k.to_sym] = v451 end452 res453 end454 434 end 455 435 trunk/config/vhost.rhtml
r827 r1208 63 63 64 64 # Redirect all non-static requests to cluster 65 RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f65 RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME}%{QUERY_STRING} !-f 66 66 RewriteRule ^/(.*)$ balancer://<%= balancer %>%{REQUEST_URI} [P,QSA,L] 67 67 trunk/lib/parser/lib/rules/zena.rb
r1207 r1208 568 568 states = ((@params[:states] || 'todo, done') + ' ').split(',').map(&:strip) 569 569 570 url_params = "node[#{@params[:attr]}]=\#{#{states.inspect}[ ((#{states.inspect}.index(#{node_attribute(@params[:attr])}.to_s) || 0)+1) % #{states.size}]}#{upd_both}"571 572 573 out link_to_update(block, : url_params => url_params, :method => :put, :html_params => get_html_params(@params))570 query_params = "node[#{@params[:attr]}]=\#{#{states.inspect}[ ((#{states.inspect}.index(#{node_attribute(@params[:attr])}.to_s) || 0)+1) % #{states.size}]}#{upd_both}" 571 572 573 out link_to_update(block, :query_params => query_params, :method => :put, :html_params => get_html_params(@params)) 574 574 end 575 575 … … 1235 1235 1236 1236 if role = @params[:set] || @params[:add] 1237 url_params = ["node[#{role}_id]=[id]"]1238 else 1239 url_params = []1237 query_params = ["node[#{role}_id]=[id]"] 1238 else 1239 query_params = [] 1240 1240 # set='icon_for=[id], v_status='50', v_title='[v_title]' 1241 1241 @params.each do |k, v| … … 1243 1243 value, static = parse_attributes_in_value(v, :erb => false, :skip_node_attributes => true) 1244 1244 key = change == 'params' ? "params[#{k}]" : "node[#{k}]" 1245 url_params << "#{key}=#{CGI.escape(value)}"1246 end 1247 return parser_error("missing parameters to set values") if url_params == []1248 end 1249 1250 url_params << "change=#{change}" if change == 'receiver'1251 url_params << "t_url=#{CGI.escape(template_url)}"1252 url_params << "dom_id=#{erb_dom_id}"1253 url_params << start_node_s_param(:erb)1254 url_params << "done=#{CGI.escape(@params[:done])}" if @params[:done]1245 query_params << "#{key}=#{CGI.escape(value)}" 1246 end 1247 return parser_error("missing parameters to set values") if query_params == [] 1248 end 1249 1250 query_params << "change=#{change}" if change == 'receiver' 1251 query_params << "t_url=#{CGI.escape(template_url)}" 1252 query_params << "dom_id=#{erb_dom_id}" 1253 query_params << start_node_s_param(:erb) 1254 query_params << "done=#{CGI.escape(@params[:done])}" if @params[:done] 1255 1255 1256 1256 "<script type='text/javascript'> 1257 1257 //<![CDATA[ 1258 Droppables.add('#{erb_dom_id}', {hoverclass:'#{hover || 'drop_hover'}', onDrop:function(element){new Ajax.Request('/nodes/#{erb_node_id}/drop?#{ url_params.join('&')}', {asynchronous:true, evalScripts:true, method:'put', parameters:'drop=' + encodeURIComponent(element.id)})}})1258 Droppables.add('#{erb_dom_id}', {hoverclass:'#{hover || 'drop_hover'}', onDrop:function(element){new Ajax.Request('/nodes/#{erb_node_id}/drop?#{query_params.join('&')}', {asynchronous:true, evalScripts:true, method:'put', parameters:'drop=' + encodeURIComponent(element.id)})}}) 1259 1259 //]]> 1260 1260 </script>" … … 1744 1744 1745 1745 def make_link(options = {}) 1746 url_params = options[:url_params] || {}1746 query_params = options[:query_params] || {} 1747 1747 default_text = options[:default_text] 1748 1748 params = @params.dup … … 1806 1806 1807 1807 (params.keys - [:style, :class, :id, :rel, :name, :anchor, :attr, :tattr, :trans, :text, :page]).each do |k| 1808 url_params[k] = params[k]1809 end 1810 1811 # TODO: merge these two url_params cleanup things into something cleaner.1808 query_params[k] = params[k] 1809 end 1810 1811 # TODO: merge these two query_params cleanup things into something cleaner. 1812 1812 if remote_target 1813 1813 # ajax 1814 url_params_list = []1815 url_params.each do |k,v|1814 query_params_list = [] 1815 query_params.each do |k,v| 1816 1816 if k == :date 1817 1817 if v == 'current_date' … … 1829 1829 str = static ? CGI.escape(attribute) : "\#{CGI.escape(\"#{attribute}\")}" 1830 1830 end 1831 url_params_list << "#{k.gsub('"','')}=#{str}"1832 end 1833 pre_space + link_to_update(remote_target, :node_id => "#{lnode}.zip", : url_params => url_params_list, :default_text => default_text, :html_params => html_params)1831 query_params_list << "#{k.gsub('"','')}=#{str}" 1832 end 1833 pre_space + link_to_update(remote_target, :node_id => "#{lnode}.zip", :query_params => query_params_list, :default_text => default_text, :html_params => html_params) 1834 1834 else 1835 1835 # direct link 1836 url_params.each do |k,v|1836 query_params.each do |k,v| 1837 1837 if k == :date 1838 1838 if v == 'current_date' 1839 url_params[k] = current_date1839 query_params[k] = current_date 1840 1840 elsif v =~ /\A\d/ 1841 url_params[k] = v.inspect1841 query_params[k] = v.inspect 1842 1842 elsif v =~ /\[/ 1843 1843 attribute, static = parse_attributes_in_value(v.gsub('"',''), :erb => false) 1844 url_params[k] = "\"#{attribute}\""1844 query_params[k] = "\"#{attribute}\"" 1845 1845 else 1846 url_params[k] = node_attribute(v)1846 query_params[k] = node_attribute(v) 1847 1847 end 1848 1848 else 1849 1849 attribute, static = parse_attributes_in_value(v.gsub('"',''), :erb => false) 1850 url_params[k] = "\"#{attribute}\""1851 end 1852 end 1853 1854 url_params.merge!(opts)1850 query_params[k] = "\"#{attribute}\"" 1851 end 1852 end 1853 1854 query_params.merge!(opts) 1855 1855 1856 1856 opts_str = '' 1857 url_params.keys.sort {|a,b| a.to_s <=> b.to_s }.each do |k|1858 opts_str << ",:#{k.to_s.gsub(/[^a-z_A-Z_]/,'')}=>#{ url_params[k]}"1857 query_params.keys.sort {|a,b| a.to_s <=> b.to_s }.each do |k| 1858 opts_str << ",:#{k.to_s.gsub(/[^a-z_A-Z_]/,'')}=>#{query_params[k]}" 1859 1859 end 1860 1860 … … 1871 1871 @context[:vars] ||= [] 1872 1872 @context[:vars] << "#{pagination_key}_previous" 1873 out make_link(:default_text => "<%= set_#{pagination_key}_previous %>", : url_params => {pagination_key => "[#{pagination_key}_previous]"})1873 out make_link(:default_text => "<%= set_#{pagination_key}_previous %>", :query_params => {pagination_key => "[#{pagination_key}_previous]"}) 1874 1874 out "<% end -%>" 1875 1875 when 'next' … … 1877 1877 @context[:vars] ||= [] 1878 1878 @context[:vars] << "#{pagination_key}_next" 1879 out make_link(:default_text => "<%= set_#{pagination_key}_next %>", : url_params => {pagination_key => "[#{pagination_key}_next]"})1879 out make_link(:default_text => "<%= set_#{pagination_key}_next %>", :query_params => {pagination_key => "[#{pagination_key}_next]"}) 1880 1880 out "<% end -%>" 1881 1881 when 'list' … … 2952 2952 opts[:cond] ||= "#{node}.can_write?" if method != :get 2953 2953 2954 url_params = [opts[:url_params]].flatten.compact2954 query_params = [opts[:query_params]].flatten.compact 2955 2955 2956 2956 if method == :get 2957 2957 if target 2958 url_params << "t_url=#{CGI.escape(target.template_url)}"2959 url_params << "dom_id=#{target.dom_id}"2960 else 2961 url_params << "dom_id=_page"2962 end 2963 else 2964 url_params << "t_url=#{CGI.escape(template_url)}" if method != :delete2965 2966 url_params << "dom_id=#{dom_id}"2958 query_params << "t_url=#{CGI.escape(target.template_url)}" 2959 query_params << "dom_id=#{target.dom_id}" 2960 else 2961 query_params << "dom_id=_page" 2962 end 2963 else 2964 query_params << "t_url=#{CGI.escape(template_url)}" if method != :delete 2965 2966 query_params << "dom_id=#{dom_id}" 2967 2967 if target != self 2968 2968 if target 2969 url_params << "u_url=#{CGI.escape(target.template_url)}"2970 url_params << "udom_id=#{target.dom_id}"2969 query_params << "u_url=#{CGI.escape(target.template_url)}" 2970 query_params << "udom_id=#{target.dom_id}" 2971 2971 else 2972 url_params << "udom_id=_page"2973 end 2974 end 2975 end 2976 2977 url_params << "link_id=\#{#{node}.link_id}" if @context[:need_link_id] && node_kind_of?(Node)2978 url_params << "node[v_status]=#{Zena::Status[:pub]}" if @params[:publish]2979 url_params << start_node_s_param(:string)2972 query_params << "udom_id=_page" 2973 end 2974 end 2975 end 2976 2977 query_params << "link_id=\#{#{node}.link_id}" if @context[:need_link_id] && node_kind_of?(Node) 2978 query_params << "node[v_status]=#{Zena::Status[:pub]}" if @params[:publish] 2979 query_params << start_node_s_param(:string) 2980 2980 2981 2981 res = '' 2982 2982 res += "<% if #{opts[:cond]} -%>" if opts[:cond] 2983 res += "<%= tag_to_remote({:url => \"#{url}?#{ url_params.join('&')}\", :method => #{method.inspect}}#{params_to_erb(html_params)}) %>"2983 res += "<%= tag_to_remote({:url => \"#{url}?#{query_params.join('&')}\", :method => #{method.inspect}}#{params_to_erb(html_params)}) %>" 2984 2984 res += text_for_link(opts[:default_text]) 2985 2985 res += "</a>"
