From bab6a03b515d757b00316493d409c2a77c4d96f0 Mon Sep 17 00:00:00 2001 From: Stephan Kulow Date: Thu, 11 Oct 2012 19:07:32 +0200 Subject: [PATCH] [webui] render the packages list with javascript from json array --- src/activexml/transport.rb | 2 +- .../app/assets/javascripts/application.js | 1 + src/webui/app/assets/javascripts/project.js | 17 +++++++++++ src/webui/app/views/project/show.html.erb | 30 ++++++------------- 4 files changed, 28 insertions(+), 22 deletions(-) create mode 100644 src/webui/app/assets/javascripts/project.js diff --git a/src/activexml/transport.rb b/src/activexml/transport.rb index e9fe4e09fcf..8e933087ea8 100644 --- a/src/activexml/transport.rb +++ b/src/activexml/transport.rb @@ -537,7 +537,7 @@ def http_do( method, url, opt={} ) end payload[:all] = (Time.now - start) * 1000 self.details.add(payload) - logger.debug "RT #{payload.inspect}" + logger.debug "RT #{url} #{payload.inspect}" end end diff --git a/src/webui/app/assets/javascripts/application.js b/src/webui/app/assets/javascripts/application.js index dd72ea0a361..2ca9351bb46 100644 --- a/src/webui/app/assets/javascripts/application.js +++ b/src/webui/app/assets/javascripts/application.js @@ -23,6 +23,7 @@ //= require bento/global-navigation.js //= require bento/l10n/global-navigation-data-en_US.js //= require package +//= require project // toggle visibility of an element via the CSS "display" property // -> does NOT reserve the needed space for the element when not displayed diff --git a/src/webui/app/assets/javascripts/project.js b/src/webui/app/assets/javascripts/project.js new file mode 100644 index 00000000000..009760d3897 --- /dev/null +++ b/src/webui/app/assets/javascripts/project.js @@ -0,0 +1,17 @@ +function renderPackagesTable(packages) +{ + var packageurl = $("#packages_table_wrapper").data("url"); + $("#packages_table_wrapper").html( '
' ); + $("#packages_table").dataTable( {"aaData": packages, + "iDisplayLength": 10, + "bSort": false, + "bPaginate": packages.length > 12, + "aoColumns": [ + { + "fnRender": function ( obj ) { + var url = packageurl.replace(/REPLACEIT/, obj.aData); + return '' + obj.aData + ''; + } + } ] + }); +} diff --git a/src/webui/app/views/project/show.html.erb b/src/webui/app/views/project/show.html.erb index 0cf9f7c1ae4..83a1631052c 100644 --- a/src/webui/app/views/project/show.html.erb +++ b/src/webui/app/views/project/show.html.erb @@ -160,18 +160,15 @@

Packages (<%= @packages.length %>)

<% if @packages.length > 0 %> - - - - - - <% @packages.each do |package| %> - - - - <% end %> - -
<%= link_to(package, :controller => 'package', :action => 'show', :project => @project, :package => package) %>
+
+ <% content_for :ready_function do %> + var packages = [ <%= @packages.map {|p| "['#{p}']" + }.join(',').html_safe %> ]; + renderPackagesTable(packages); + <% end %> +
<% else %>

This project does not contain any packages

<% end %> @@ -193,12 +190,3 @@
<% end %> -<% if @packages.length > 0 %> - <%= javascript_tag do %> - $(document).ready(function() { - $('#packages_table').dataTable({ - "bSort": false, - }); - }); - <% end %> -<% end %>