plugins.html.erb
63 lines
| 2.5 KiB
| text/plain
|
TextLexer
|
r11820 | <%= title l(:label_plugins) %> | ||
|
r2035 | |||
<% if @plugins.any? %> | ||||
|
r2039 | <table class="list plugins"> | ||
|
r2036 | <% @plugins.each do |plugin| %> | ||
|
r10766 | <tr id="plugin-<%= plugin.id %>" class="<%= cycle('odd', 'even') %>"> | ||
|
r13661 | <td class="name"><span class="name"><%= plugin.name %></span> | ||
<%= content_tag('span', plugin.description, :class => 'description') unless plugin.description.blank? %> | ||||
<%= content_tag('span', link_to(plugin.url, plugin.url), :class => 'url') unless plugin.url.blank? %> | ||||
|
r7224 | </td> | ||
|
r13661 | <td class="author"><%= plugin.author_url.blank? ? plugin.author : link_to(plugin.author, plugin.author_url) %></td> | ||
|
r12767 | <td class="version"><span class="icon"><%= plugin.version %></span></td> | ||
|
r10766 | <td class="configure"><%= link_to(l(:button_configure), plugin_settings_path(plugin)) if plugin.configurable? %></td> | ||
|
r2035 | </tr> | ||
<% end %> | ||||
</table> | ||||
|
r12777 | <p><a href="#" id="check-for-updates"><%= l(:label_check_for_updates) %></a></p> | ||
|
r2035 | <% else %> | ||
<p class="nodata"><%= l(:label_no_data) %></p> | ||||
<% end %> | ||||
|
r12767 | |||
<%= javascript_tag do %> | ||||
$(document).ready(function(){ | ||||
$("#check-for-updates").click(function(e){ | ||||
e.preventDefault(); | ||||
$.ajax({ | ||||
dataType: "jsonp", | ||||
|
r13632 | url: "https://www.redmine.org/plugins/check_updates", | ||
|
r12767 | data: <%= raw_json plugin_data_for_updates(@plugins) %>, | ||
timeout: 3000, | ||||
beforeSend: function(){ | ||||
$('#ajax-indicator').show(); | ||||
}, | ||||
success: function(data){ | ||||
$('#ajax-indicator').hide(); | ||||
$("table.plugins td.version span").addClass("unknown"); | ||||
$.each(data, function(plugin_id, plugin_data){ | ||||
var s = $("tr#plugin-"+plugin_id+" td.version span"); | ||||
|
r14686 | s.removeClass("icon-ok icon-warning unknown"); | ||
|
r12767 | if (plugin_data.url) { | ||
if (s.parent("a").length>0) { | ||||
s.unwrap(); | ||||
} | ||||
s.addClass("found"); | ||||
s.wrap($("<a></a>").attr("href", plugin_data.url).attr("target", "_blank")); | ||||
} | ||||
if (plugin_data.c == s.text()) { | ||||
|
r14686 | s.addClass("icon-ok"); | ||
|
r12767 | } else if (plugin_data.c) { | ||
s.addClass("icon-warning"); | ||||
|
r12768 | s.attr("title", "<%= escape_javascript l(:label_latest_compatible_version) %>: "+plugin_data.c); | ||
|
r12767 | } | ||
}); | ||||
|
r12769 | $("table.plugins td.version span.unknown").addClass("icon-help").attr("title", "<%= escape_javascript l(:label_unknown_plugin) %>"); | ||
|
r12767 | }, | ||
error: function(){ | ||||
$('#ajax-indicator').hide(); | ||||
alert("Unable to retrieve plugin informations from www.redmine.org"); | ||||
} | ||||
}); | ||||
}); | ||||
}); | ||||
<% end if @plugins.any? %> | ||||