From b158c24a63b3b17fb81a5dc840ec3963f2d07b23 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Wed, 13 Jul 2011 16:36:30 +0200 Subject: [PATCH] introduce flavors (distro groups) --- app/controllers/download_controller.rb | 39 ++++++++++++++------- app/views/download/html.erb | 61 +++++++++++++++++++++------------ public/images/download/1click.png | Bin 1297 -> 0 bytes public/images/download/pkg.png | Bin 746 -> 0 bytes 4 files changed, 67 insertions(+), 33 deletions(-) delete mode 100644 public/images/download/1click.png delete mode 100644 public/images/download/pkg.png diff --git a/app/controllers/download_controller.rb b/app/controllers/download_controller.rb index 1fad2c1..2619953 100644 --- a/app/controllers/download_controller.rb +++ b/app/controllers/download_controller.rb @@ -3,26 +3,41 @@ class DownloadController < ApplicationController verify :params => [:prj, :pkg] before_filter :prepare + # generates fake data + def fake_data(data, prj, pkg, flavor, distro, format) + data[distro] = { :flavor => flavor, + :repo => "http://download.opensuse.org/repositories/#{prj}/#{distro}/", + :ymp => "http://software.opensuse.org/ymp/#{prj}/#{distro}/#{pkg}.ymp", + :pkg => { + :i586 => "http://download.opensuse.org/repositories/#{prj}/#{distro}/i586/#{pkg}-2011.04-1.1.i586.#{format}", + :src => "http://download.opensuse.org/repositories/#{prj}/#{distro}/src/#{pkg}-2011.04-1.1.src.#{format}", + :x86_64 => "http://download.opensuse.org/repositories/#{prj}/#{distro}/x86_64/#{pkg}-2011.04-1.1.x86_64.#{format}" + } + } + end + def prepare @prj = params[:prj] @pkg = params[:pkg] @data = Hash.new # add fake data for debug purposes - ['openSUSE_11.4', 'openSUSE_11.3', 'Fedora_15', 'Fedora_14', 'Mageia_1', 'Mandriva_2011', 'Debian_6.0', 'Ubuntu_11.04', 'CentOS_5', 'RHEL_5', 'SLE_11'].each do |d| - @data[d] = - { :repo => "http://download.opensuse.org/repositories/#{@prj}/#{d}/", - :ymp => "http://software.opensuse.org/ymp/#{@prj}/#{d}/#{@pkg}.ymp", - :pkg => { - :i586 => "http://download.opensuse.org/repositories/#{@prj}/#{d}/i586/#{@pkg}-2011.04-1.1.i586.rpm", - :src => "http://download.opensuse.org/repositories/#{@prj}/#{d}/src/#{@pkg}-2011.04-1.1.src.rpm", - :x86_64 => "http://download.opensuse.org/repositories/#{@prj}/#{d}/x86_64/#{@pkg}-2011.04-1.1.x86_64.rpm" - } - } - end + fake_data(@data, @prj, @pkg, 'openSUSE', 'openSUSE_11.4', 'rpm') + fake_data(@data, @prj, @pkg, 'openSUSE', 'openSUSE_11.3', 'rpm') + fake_data(@data, @prj, @pkg, 'openSUSE', 'KDE_Distro_Stable_openSUSE_11.3', 'rpm') + fake_data(@data, @prj, @pkg, 'openSUSE', 'KR46_11.4', 'rpm') + fake_data(@data, @prj, @pkg, 'Fedora', 'Fedora_15', 'rpm') + fake_data(@data, @prj, @pkg, 'Fedora', 'Fedora_14', 'rpm') + fake_data(@data, @prj, @pkg, 'Mageia', 'Mageia_1', 'rpm') + fake_data(@data, @prj, @pkg, 'Mandriva', 'Mandriva_2011', 'rpm') + fake_data(@data, @prj, @pkg, 'Debian', 'Debian_6.0', 'deb') + fake_data(@data, @prj, @pkg, 'Ubuntu', 'Ubuntu_11.04', 'deb') + fake_data(@data, @prj, @pkg, 'CentOS', 'CentOS_5', 'rpm') + fake_data(@data, @prj, @pkg, 'RHEL', 'RHEL_5', 'rpm') + fake_data(@data, @prj, @pkg, 'SLE', 'SLE_11', 'rpm') # collect distro types from data - @distros = @data.keys.collect { |i| i.gsub(/_.*$/, '') }.uniq.sort {|x,y| x.downcase <=> y.downcase } + @flavors = @data.values.collect { |i| i[:flavor] }.uniq.sort{|x,y| x.downcase <=> y.downcase } end diff --git a/app/views/download/html.erb b/app/views/download/html.erb index 27e6d81..b634b9b 100644 --- a/app/views/download/html.erb +++ b/app/views/download/html.erb @@ -1,3 +1,11 @@ +<% +def gradient(top, mid, btm) + " background: #{mid};\n" + + " background: -webkit-gradient(linear, left top, left bottom, from(#{top}), to(#{btm}));\n" + + " background: -moz-linear-gradient(top, #{top}, #{btm});\n" + + " filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{top}', endColorstr='#{btm}');" +end +%> @@ -16,6 +24,9 @@ body { font-size: 1.1em; display: none; } +.soo_line span { + float: right; +} .soo_line_visible { display: block; } @@ -26,10 +37,12 @@ body { border: 1px solid transparent; padding: 3px 5px; margin: 0 .5em 0 0; + -moz-border-radius: 8px; + border-radius: 8px; } .soo_button:hover, .soo_button_chosen { border: 1px solid #BE7; - background: #EEE; +<%= gradient('#FCFCFC','#F0F0F0','#E4E4E4')%> } .soo_button p { font-size: 0.75em; @@ -41,20 +54,26 @@ body { color: white; display: block; margin: 6px; - line-height: 23px; + line-height: 24px; font-weight: bolder; float: left; text-decoration: none; - height: 27px; + height: 24px; text-align: center; + -moz-border-radius: 12px; + border-radius: 12px; + padding-left: 8px; + padding-right: 8px; } .soo_ymplink { - background: url('<%= image_path('download/1click.png') %>'); - width: 112px; +<%= gradient('#9D0','#7B0','#580') %> + border: 1px solid #490; + min-width: 112px; } .soo_pkglink { - background: url('<%= image_path('download/pkg.png') %>'); - width: 72px; +<%= gradient('#09D','#07B','#058') %> + border: 1px solid #049; + min-width: 64px; } pre { background: #EEE; @@ -80,7 +99,7 @@ $(function(){ $('.soo_button').removeClass('soo_button_chosen'); $(this).addClass('soo_button_chosen'); $('.soo_distro').hide(); - $('.soo_distro_' + $(this).data('distro')).show(); + $('.soo_distro_' + $(this).data('flavor')).show(); }); }); @@ -89,32 +108,32 @@ $(function(){

Select Your Operating System

- <% @distros.each do |distro| %> -
<%= distro %>

<%= distro %>

+ <% @flavors.each do |flavor| %> +
<%= flavor %>

<%= flavor %>

<% end %>
-

Install using One Click Install

+

Install using One Click InstallV

<% @data.select {|k,v| v.has_key?(:ymp)}.each do |k,v| %> - <%= k.gsub('_', ' ') %> + <%= k.gsub('_', ' ') %> <% end %>
-

Add repository manually

+

Add repository and install manuallyV

<% @data.select {|k,v| v.has_key?(:repo)}.each do |k,v| %> -
+

For <%= k.gsub('_', ' ') %> run the following as root:

<%=
-    case k
-      when /^openSUSE|SLE/
+    case v[:flavor]
+      when 'openSUSE', 'SLE'
         "zypper addrepo #{v[:repo]}#{@prj}.repo\nzypper refresh\nzypper install #{@pkg}"
-      when /^Fedora|RHEL|CentOS/
+      when 'CentOS', 'Fedora', 'RHEL'
         "cd /etc/yum/repos.d/\nwget #{v[:repo]}#{@prj}.repo\nyum update\nyum install #{@pkg}"
-      when /^Debian|Ubuntu/
+      when 'Debian', 'Ubuntu'
         "echo 'deb #{v[:repo]} ./' > /etc/apt/sources.list\napt-get update\napt-get install #{@pkg}"
-      when /^Mageia|Mandriva/
+      when 'Mageia', 'Mandriva'
         "urpmi.addmedia #{@prj} #{v[:repo]}\nurpmi.update -a\nurpmi #{@pkg}"
       else
         '?'
@@ -125,10 +144,10 @@ $(function(){
 
-

Grab binary packages

+

Grab binary packages directlyV

<% @data.select {|k,v| v.has_key?(:pkg)}.each do |k,v| %> - + <% v[:pkg].each do |k,v| %> <% end %> diff --git a/public/images/download/1click.png b/public/images/download/1click.png deleted file mode 100644 index 2d92cb12df223fc8c50fc7bd47261aa1d9a1f489..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1297 zcmV+s1@8KZP)Px(%Sl8*RA}DqnpE3LK!OleAEZ`zoaW|MA`?j?K8+|Ti47piUA zLL1${{NQ7l>%;#y-OF zMH^2ih-I*Chh8!E0N}S3xc)tj-@j4Fo zqWeJLl_Cha+YoX^5s^EPS5r82a_{t1A$?NKv*!=LW{%A$@QGcnwUSH@tXR@5Ke}K8 z{Udi2L;2&5u>Vo$;=pQj2G`=ZO9!oii@$27#(RI*VjR6e;JO`BeO*ZSt9Ru~;h?tx zCnmo{(M&rj)&M>!f|c{0L#~vx*+l!1g>ZDeKgyksK zv~I#@eebIITz=#CTa51r0HOC2_gK#(o10ah#hKJ$C#f1{S;KlLB!ok!_KY8RS#PD? z+odoeB-G?vfP+Kdf;sOiHO<+HU$9~E>mY=Ly0=SVDhEj{|iv~JzIsLnnQVr8l--%>y7>x1M;67`L0|j{MYt502c7iKk@+ zg7K~NnTDmpJ1*)b9>qt!bzZmP^1wyiPRg^0Vd+qfGD_1Wy{r~3!_s-`0(-mvL+dL5 zIRIK!-pvG7B~k!hUkhn!UnRu+QPSmY6qdVuSSpAJVdmLv4tEDB1;K zH`2#W7L$AeK&dipvg=Qnaav(Tq`T6Q)lw?kL`UMimj}QGpjU=S?Yhz{;%+~!@Fx37 zMVMIWOtB)@;oie460OS8u1Mpz5_G4KyExb3&N}c`>o?_Z#VWzo!&XjN00000NkvXX Hu0mjf|8i*n diff --git a/public/images/download/pkg.png b/public/images/download/pkg.png deleted file mode 100644 index a1747cb3a50a19877ff6c925622a83fa879920bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmVPx%q)9|UR7l6ompe=pK^TC)*_~zg?mXb`03o7@h=pQM3};My5epklw9-PYY^+R( zl^PQgW2_8?6@{HPc9Pgo7!4F8f*1lu;t>Qn#%ZNF z`mKj+_$u7L61{iI_=<@iQ1i&rqE0oP81MfgP`YMLH#kfaEc=iQ%yu=(+X)emF%-~o zZ7@YUB7Qp|qsdA;r`rULOO8r=H7T`Zm9c_L@T^c}q?1yfjmYed5Xusf@~red7jH)h zx%l{=v<8+t;&LYlX)HR{fHa4ft=&6BXxTD{<>XLI6ZnB&dj&y3n;eq8nWO3XJvGb* zEL6ulUb;6UaZ-2W%l(E|0)!>u9h!C crTr#;15ul9Vpfl4bpQYW07*qoM6N<$f=cyE_W%F@ -- 2.1.4
Packages for <%= k.gsub('_', ' ') %>:
Packages for <%= k.gsub('_', ' ') %>:<%= k %>