# TODO display error page if no dashboard or no resource
load_resource()
load_dashboard()
- load_widget_definitions()
+ @category=params[:category]
+ load_widget_definitions(@category)
unless @dashboard
redirect_to home_path
end
end
end
end
- redirect_to :action => 'configure', :did => dashboard.id, :id => params[:id], :highlight => widget_id
+ redirect_to :action => 'configure', :did => dashboard.id, :id => params[:id], :highlight => widget_id, :category => params[:category]
end
end
def widget_definitions
- load_widget_definitions(params[:category])
- render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => params[:did], :resource_id => params[:id], :filter_on_category => params[:category]}
+ @category=params[:category]
+ load_widget_definitions(@category)
+ render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => params[:did], :resource_id => params[:id], :category => @category}
end
<p><%= h message('widget.' + definition.getId() + '.description', :default => definition.getDescription()) -%></p>
<%= form_tag :action => 'add_widget', :did => dashboard_id, :id => resource_id, :widget => definition.getId() %>
+ <input type="hidden" name="category" value="<%= category -%>">
<input type="submit" value="<%= message('dashboard.add_widget') -%>">
</form>
</div>
<p>
<ul class="horizontal widget_categs">
<li><%= message('filter_verb') -%>: </li>
- <li class="<%= 'selected' if filter_on_category.blank? -%>"><a href="#" onClick="return filterWidgets('')"><%= message('none') -%></a></li>
- <% @widget_categories.each do |category| %>
- <li class="<%= 'selected' if filter_on_category==category -%>"><a href="#" onClick="return filterWidgets('<%= category -%>')"><%= h(category) -%></a></li>
+ <li class="<%= 'selected' if category.blank? -%>"><a href="#" onClick="return filterWidgets('')"><%= message('none') -%></a></li>
+ <% @widget_categories.each do |c| %>
+ <li class="<%= 'selected' if category==c -%>"><a href="#" onClick="return filterWidgets('<%= escape_javascript(c) -%>')"><%= h(c) -%></a></li>
<% end %>
</ul>
<%= image_tag 'loading.gif', :style=>'vertical-align: top;display: none', :id => 'filter-widgets-loading' -%>
<table width="100%">
<% @widget_definitions.each_with_index do |definition, index| %>
<% if index%4==0 %><tr><% end %>
- <%= render :partial => 'dashboard/widget_definition', :locals => {:definition => definition, :dashboard_id => dashboard_id, :resource_id => resource_id} %>
+ <%= render :partial => 'dashboard/widget_definition', :locals => {:definition => definition, :dashboard_id => dashboard_id, :resource_id => resource_id, :category => category} %>
<% if index%4==3 %></tr><% end %>
<% end %>
<% for i in 0..(4-(@widget_definitions.size%4)) %>
function filterWidgets(category) {
new Ajax.Updater(
'widget_defs',
- '<%= url_for :controller => "dashboard", :action => "widget_definitions", :did => @dashboard.id, :id => @resource.id -%>&category=' + category,
+ '<%= url_for :controller => "dashboard", :action => "widget_definitions", :did => @dashboard.id, :id => @resource.id -%>&category=' + encodeURIComponent(category),
{asynchronous:true, evalScripts:true});
$('filter-widgets-loading').show();
return false;
<%= render :partial => 'dashboard/header', :locals => {:back => true} %>
<div id="widget_defs">
- <%= render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => @dashboard.id, :resource_id => @resource.id, :filter_on_category => nil} -%>
+ <%= render :partial => 'dashboard/widget_definitions', :locals => {:dashboard_id => @dashboard.id, :resource_id => @resource.id, :category => @category} -%>
</div>