), :class => 'progress', :style => "width: #{width};") +
content_tag('p', legend, :class => 'pourcent')
end
+
+ def context_menu(url)
+ unless @context_menu_included
+ content_for :header_tags do
+ javascript_include_tag('context_menu') +
+ stylesheet_link_tag('context_menu')
+ end
+ @context_menu_included = true
+ end
+ javascript_tag "new ContextMenu('#{ url_for(url) }')"
+ end
def context_menu_link(name, url, options={})
options[:class] ||= ''
<% content_for :header_tags do %>
<%= auto_discovery_link_tag(:atom, {:query_id => @query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_issue_plural)) %>
<%= auto_discovery_link_tag(:atom, {:action => 'changes', :query_id => @query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_changes_details)) %>
- <%= javascript_include_tag 'context_menu' %>
- <%= stylesheet_link_tag 'context_menu' %>
<% end %>
-<div id="context-menu" style="display: none;"></div>
-<%= javascript_tag "new ContextMenu('#{url_for(:controller => 'issues', :action => 'context_menu')}')" %>
+<%= context_menu :controller => 'issues', :action => 'context_menu' %>
<% end if @blocks['right'] %>
</div>
-<% content_for :header_tags do %>
- <%= javascript_include_tag 'context_menu' %>
- <%= stylesheet_link_tag 'context_menu' %>
-<% end %>
-
-<div id="context-menu" style="display: none;"></div>
-<%= javascript_tag "new ContextMenu('#{url_for(:controller => 'issues', :action => 'context_menu')}')" %>
+<%= context_menu :controller => 'issues', :action => 'context_menu' %>
<% html_title(l(:label_my_page)) -%>
ContextMenu.prototype = {
initialize: function (url) {
this.url = url;
-
+ this.createMenu();
+
// prevent text selection in the issue list
var tables = $$('table.issues');
for (i=0; i<tables.length; i++) {
}
},
+ createMenu: function() {
+ if (!$('context-menu')) {
+ var menu = document.createElement("div");
+ menu.setAttribute("id", "context-menu");
+ menu.setAttribute("style", "display:none;");
+ document.getElementById("content").appendChild(menu);
+ }
+ },
+
showMenu: function(e) {
var mouse_x = Event.pointerX(e);
var mouse_y = Event.pointerY(e);