From 0859fdce95f123081c2d29ce09030c79c961db2c Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 12 Jul 2011 18:31:38 +0200 Subject: [PATCH] add first version of the download screen --- app/controllers/download_controller.rb | 32 +++++--- app/views/download/html.erb | 144 ++++++++++++++++++++++++++++++++- config/routes.rb | 1 - public/images/download/1click.png | Bin 0 -> 1297 bytes public/images/download/centos.png | Bin 0 -> 3872 bytes public/images/download/debian.png | Bin 0 -> 2283 bytes public/images/download/fedora.png | Bin 0 -> 2480 bytes public/images/download/mageia.png | Bin 0 -> 1946 bytes public/images/download/mandriva.png | Bin 0 -> 2436 bytes public/images/download/opensuse.png | Bin 0 -> 2344 bytes public/images/download/pkg.png | Bin 0 -> 746 bytes public/images/download/rhel.png | Bin 0 -> 2626 bytes public/images/download/sle.png | Bin 0 -> 2632 bytes public/images/download/ubuntu.png | Bin 0 -> 2742 bytes 14 files changed, 163 insertions(+), 14 deletions(-) create mode 100644 public/images/download/1click.png create mode 100644 public/images/download/centos.png create mode 100644 public/images/download/debian.png create mode 100644 public/images/download/fedora.png create mode 100644 public/images/download/mageia.png create mode 100644 public/images/download/mandriva.png create mode 100644 public/images/download/opensuse.png create mode 100644 public/images/download/pkg.png create mode 100644 public/images/download/rhel.png create mode 100644 public/images/download/sle.png create mode 100644 public/images/download/ubuntu.png diff --git a/app/controllers/download_controller.rb b/app/controllers/download_controller.rb index 7106078..1fad2c1 100644 --- a/app/controllers/download_controller.rb +++ b/app/controllers/download_controller.rb @@ -1,12 +1,29 @@ class DownloadController < ApplicationController verify :params => [:prj, :pkg] - before_filter :query + before_filter :prepare + + 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 + + # collect distro types from data + @distros = @data.keys.collect { |i| i.gsub(/_.*$/, '') }.uniq.sort {|x,y| x.downcase <=> y.downcase } - def query - prj = params[:prj] - pkg = params[:pkg] - @data = {'x'=> prj, 'y'=> pkg} end # /download.html?prj=name&pkg=name @@ -25,9 +42,4 @@ class DownloadController < ApplicationController render_json @data.to_json end - # /download.xml?prj=name&pkg=name - def xml - render :xml => @data - end - end diff --git a/app/views/download/html.erb b/app/views/download/html.erb index da0d917..27e6d81 100644 --- a/app/views/download/html.erb +++ b/app/views/download/html.erb @@ -1,3 +1,141 @@ -html -<%= @data %> -/html + + + + +<%= javascript_include_tag "http://static.opensuse.org/themes/bento/js/jquery.js" %> + + + + +
+

Select Your Operating System

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

<%= distro %>

+ <% end %> +
+ +
+

Install using One Click Install

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

Add repository manually

+ <% @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/
+        "zypper addrepo #{v[:repo]}#{@prj}.repo\nzypper refresh\nzypper install #{@pkg}"
+      when /^Fedora|RHEL|CentOS/
+        "cd /etc/yum/repos.d/\nwget #{v[:repo]}#{@prj}.repo\nyum update\nyum install #{@pkg}"
+      when /^Debian|Ubuntu/
+        "echo 'deb #{v[:repo]} ./' > /etc/apt/sources.list\napt-get update\napt-get install #{@pkg}"
+      when /^Mageia|Mandriva/
+        "urpmi.addmedia #{@prj} #{v[:repo]}\nurpmi.update -a\nurpmi #{@pkg}"
+      else
+        '?'
+    end
+  %>
+
+ <% end %> +
+ +
+

Grab binary packages

+ + <% @data.select {|k,v| v.has_key?(:pkg)}.each do |k,v| %> + + <% v[:pkg].each do |k,v| %> + + <% end %> + + <% end %> +
Packages for <%= k.gsub('_', ' ') %>:<%= k %>
+
+ + + diff --git a/config/routes.rb b/config/routes.rb index 9d36251..b808862 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -42,7 +42,6 @@ ActionController::Routing::Routes.draw do |map| map.connect '/download.html', :controller => 'download', :action => 'html' map.connect '/download.js', :controller => 'download', :action => 'js' map.connect '/download.json', :controller => 'download', :action => 'json' - map.connect '/download.xml', :controller => 'download', :action => 'xml' # Install the default route as the lowest priority. map.connect ':controller/:action/:id.:format' diff --git a/public/images/download/1click.png b/public/images/download/1click.png new file mode 100644 index 0000000000000000000000000000000000000000..2d92cb12df223fc8c50fc7bd47261aa1d9a1f489 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/public/images/download/centos.png b/public/images/download/centos.png new file mode 100644 index 0000000000000000000000000000000000000000..deea42a89d4813a444168c556b2b1eb66974511e GIT binary patch literal 3872 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 FV1g1NMt%SQ literal 0 HcmV?d00001 diff --git a/public/images/download/fedora.png b/public/images/download/fedora.png new file mode 100644 index 0000000000000000000000000000000000000000..13061ba648ea536050a520bc44d9623ca55a18c8 GIT binary patch literal 2480 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 literal 0 HcmV?d00001 diff --git a/public/images/download/rhel.png b/public/images/download/rhel.png new file mode 100644 index 0000000000000000000000000000000000000000..98af088b27976abaa85f6e5b41fffd4b2042a46a GIT binary patch literal 2626 zcmV-I3cdA-P)Px;{7FPXRA}Dqn0s*4)fLA-_x|>`k7RfA*d&BN3_%SNjDQkMs4-1p5SSLm!N@d1 zokFE(5gBlBw1c%%#g^ifG9V7V01;ZJQRQn=gET2fl9C{x zl)?n)QlbIBakuc7j?S2JQ&Ur^sHiC3zJ2=#SFAv3Y3WM`4<4Ks5B#fx2Qk`erAw(O z{0pR%LI{D3niRlm7cIiJ{<~&MtO#dT>aIOVe;kNvf2j z$O{(lt(XGROd2^R6S@$Dl_CQ8mExxS;7o3@*y!)7H3>N44>131Q=jLC4juZh`uh5^ zxE`1>W5#Z`+dZg1@OipMNI}3bnB{a}mlxQKv{;yzmckzgWw0)L5CvvSzxe?WQE;o( zim9J-_4W04ELpN-SxgTsTD0hnHEY&X$IFY}G}GbWiOh7m426awSxSxvLku(Pgbale z0;N>X?UV@FgkZO)i^tq8ebxiOsIIQgC@(K>yT}98)zyzA0v@0_5=M_!mk5IPh(Wf= zgwIffpeMG~04__vQcQK&6S=qKFXqnuSx@+N|5ICAdr$Ag%{G~M+?CD`l599Nff03< zSqLVdJWXvV%wUs=pi+c;)%zpHei24H`pXn!^!V!V!*#Ld-aQhRtnlWSKOaQlhE8ODPHF!p&Aozq+11 zdp51As;Uw|9zJ~7xn;|i>$`VHnsw%+rQkCR{JkzIDMZv#swZ*Qo^Pk%crAZAcb?i% zh!6^=lvty;uo|F31~5$56A2@A?AWmv05p%sGxo@lBM)~AyHPiDm)%Z0CrTh+*V*m$ z_I&#^5a92f9yYgku)U*`uu|M+vtkp1h)6saG~lB^kdwh6p1zeA4Gj&!d+)vXReA2* zxsitPRRkaO`;kJS#VMpArI=<E?qCO(Y8u`!W!M4#OZzH}OLDAa>{F za)-?p`?=}$@mOOEPAL=ef&%hQ8p%=+P>MOJsl1(+%hL4JSpAhKC@3h^va_>SG&eVA z_TD@l4wI#6jI~(_7zPM&S#M(iA;2sJ_c$Hg?R4OjlK%#S_@p0-CRzLMTDxWRmLmiK1w(Zc5kv8D;H&IB z*WCQ6u-om*sB{l&~5rdP#5M74BIGd$c{TeuFC_eEA zd8qNLeyO~?yi4{49^lpX4(6OWOV|MGCEaD5>>{WX?S{f81ceqe#WrgqkH3D{3hb9e zKrk3gmO}K;_**p*(~t?m>3-x6q$lc&S$!mYdF66A90~nA1U%Z&$s=v; zobq~cN|A7RylPSkyAn&c;TJ3mTJB3swd#f71l z7WGhfcWZFrfge(eQ^61~x3#hFl6a3n9ZQxh8G%yD0<>Ru-E|w|oh&LWd;(BbtF?3G z%9Z!TJ2zp%golL?ea=lCpi)4&Kn)f`WlO2jz%UJL-fB#mH0fNA;1^$far$eoy*9p& z!IU;?)Tl#%7f^fm?!77A*%d2R{J5;FY`+j4a)3p1>6&G*I$jq!C zGj{BIch8);SGQO`a-^g*AmzayR#Y4u$RK#Zf(3UCuplT?Nl8g&c6RoVy1Ke6E;9`c z4fb9<<$(hS9MQ@5Gl@>K3knKa`G2Fr!or$FJy23ovglg{w`kF#Stsl23IJBETJ`H# zX9@}m5)GfQQYtm!@%q<6H{Ni=$u6%quc4vggexQC`uFzi8CFzORM#t%l7tXl{qZrI z%{=hH19zvVr`HJ~{vd?-{9Eb?Vfq7g}0cSiXEYH8nMi8#fNO+nqdl^5nLq zOP8LmtgK9#Hf`FYjg5_;TvPB$DVwhA?cJ7lI2>O-{q)ll`7V%BN)F1(ItZvKQ>L65 zK74qVQcCh&q2l7=nSdHGV#Kj%D2eY3_~)O0{vkk3pFaKLtL3F#3kAlE8PjR8SYChY kt+$r*J$+B#(^b*`08wOzbnV5Yc>n+a07*qoM6N<$f;Np4IRF3v literal 0 HcmV?d00001 diff --git a/public/images/download/sle.png b/public/images/download/sle.png new file mode 100644 index 0000000000000000000000000000000000000000..7f74022b5ff6f19814d6db854099979e9f5c46c6 GIT binary patch literal 2632 zcmV-O3b*x%P)Px<0!c(cRA}DqSZR<{)fN8Ez3;u=neLupfMFJPaaaXR5SLP8xkRDBrAlMOD9BbK zC|Xevkcd$cQ9u$Gki`u{fQW!4mPrr;E+K#fWF1Df0cPvz>FsUzqXd(QpNy$@(cGn&ziX8b>cevBZ@tN{qt-zp-C|5pt2mmoIiLTu9)HI*h|JtoZ z&wuu#5m<5X(en;geR-?triNIy-ODmf5J?aiMB=n?%!(OIV1U8U3=IKKAO@n3vW<3o z_m+P?!DD#g^?2bme7kMiUGLTWoBHNm{mw->cU7NL0&!=LZ^_OnORAIQH#?5YU=Tn| zLp3`II(LV!N0081_ z!#%zE+J3Qkbv$jQJL}Q_Ky-Ek<;E0?1W6N6#Oy*bT1z31?~iYN8lYjOO2@0x$7#jk zhp#$0;-E5#KuQGY#_OTA(xN2-klq&t-YH-5^OnT5DAd>C~d%Ot17$ zD-3q;U2Yy;?N~03)a<|WtkS-8-}u}EReMU(nN&cKXk@1848J$_9ITW}y5{{yYj4qW z7VMgYRW;gWw{zOA>7+{^B(%r-wZCfRHEkc*(&P*rjUAeqF;f8oSh0d)*LK-SxNO%d zRwjeNtN;+7o{4YPcw^*1LP*%I+2>GV*K0MIV@q>9`R}>PE*{onUd!_${ks{`_w#+R zPX;zQ16!(=6}-Fq_Xm~DkcLD^kG{c5J=-UD@P3V@xwZWLb}75&ij-S3%TbO`3hg^e zi5jVY#R^OWVo|4PtXL7Vf)Em}vZ3h$n(#b(?@wnx8m8h*lL)-DbLi`b%S&(9bqy{2 z;o0MRuNc4Zi?NrK)$Y3|pht==H}zW7o44q?qWkQZcZ}Jll-pSd*)XjPCIR6nsI&kX z3hV(hhy;U~K!A`0zb{Y`^|v`(nK+u0Hj{>Fn?xW;UAozUyfUw0ym?R8#V-(1=B)a_ zZ~uOEER(XbLV*At>br&(?-@O*v~u@!+p_8{1T>+=G$H!;$r*TjbNQM|M_GbMu#k$P z!8V`zy@C77lgGY=&*Qnk2~#MvG7uO}OBlQ?=B;>cAu_2z5uFmcK}T z*Vwei`w3@F*?6&!V1R_&2ml9bc1?F}pdiro4ncBvrBya3Va56rj4eWlR#Bt%kQ3&i zcbJ*{zMy??&$s%2!|m2%iS3IP@0fTXWhSy146h7SoK|c^sisVBql=h`YU;KJfFv1Y zW*@T)O=wjk`o8jhD}SdWgWB9XKnl6dWyiOzYF%GxXd850KhDfBG-Ktr`E4ESQC*nR z@dBwM!_25ml;tq9?`->0lT;`Y$lVHN#8Xv0i6|Y=qU#+>M;}>#(TTs6y?sRY1)>D; zB{L&G+_~SV-mg{%1A%unLrXBh{w}|_b$tH7fczVO;`8`wGnR?DJ8rt^2O-cgxBE!l z&;Uq0xAmr%C-nK#$!&b?_q6hNn9(VBKozqpAR!Pp%MJj*_#P|oX_wofxP8lR zAD+qgRRv?WcgQO)D$ehBm(;Z}KiGL-)|Mg5s^S$ldkh0UE$~N;Jim#0ipt9qr9PW8 zLlbuFF|Xmx5f$zVE+vOqZYJM*Q53XI&YxO_3+|nVE-Bxj(h9_OOa>M8c zA1t*t_*dBN+*G0!NC5nGXKvXh59N=~Apq#~+YznQi7FG zmlpL)^awq0vMFHap+m!6E7M8@0=CB=TuQo8%gj*Bh(w~^@_M`SWbHI4z!M5@mp<rp+cGntDz=jL@j(MSn35XkoW`8d_k$0d8G6il5kK}ZP#lP0yDZF}{) ze*F!%*5*pj6{t-jo{C?1s*~RNZMwnApte%c^ffDUgb;hcfNeV++fE)|q3Id}fF`wc zZX|o^rZEpKtSevv5TI$=2StxPU_(eixi}V!g#m{8y7n3;V2~ILDSp>NH`>iO{NGIZ$v2IN-<+^|Xl;fW6#o@Yx83T%4KKS^oL_swB@~}4$D2zmdg;|lH znzuy2@YX;vyv&17*-4Y_*wJznYfis0RrW%F7F5Ihjhg3mT|hm>_H;u1ge;o4|z zGFil~VlcyDg>g$4B>^}9kTlIS00<$V02D@Yiicfz$uXA{;4<`}UrxSy(B`#GkkJML z(>_?W3dv0ShVl>u)V~^$!C+?Ez#Dhp^2Yq-+e%BW&!m!a&brl`0p@zSm366M_@LZ} z-(Nk@t*TfAN$x3|DgZ)2lVFd&5&)t;e`!S`(e7Yn`7=}3F6V}`P$(pu+GHCDPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ipM` z6(%<&4M%DK017rqL_t(&-tC!daFo><$A8axcazXdsOpT!3;E%Swf|KBwWT5Q!x3sr3+Gyuji5!UG8&_YL4tyc5ot5Roq6HN z%eAFN8p z_97--S4?pBV$_X!oT{n;QRnEvlEUe^Ng|Xa<9ytB&66?Y%+$M{Cs1%f-}kNqduVw6 zZqG@mDk9>lk~3p{8ocy~b5>M!dqH_5bf9ry~hcr@SVPpR6nH zX8h7yJ!%~IlFq#!aqQ(%^2@fP{a!{ys3}{BTFX$Ut*SU8_ve>KHjIcu*6KzbpDmX#Sad_eJ#Jegb&r1+;}7DbXW@1n$9A?M#z}h8 z#>nP^aO9>T0qiecz|8f#sV*t}SXC}amSM#oAosz)VuG3Robjt=^c<<8VC@H(UiB0N2E9ot++_rcHm!!R&)`Lp0HD~4Jrs?7HQ z$Sbcvl`PP}>8epThK+W`!<^60_=|7x__X!?mpq|!#2|crnzn}fPC-=>pCA9U*-0tv z7<1!b4X9p>dTS9Ukin$uS2OLNjbvSM4{BXbytm2oz!UFoDu z5{C#@?d5|2IL6G=0rWSiY2>ZmPDW@Mftd@)y6g_7-TNXfZ~eBfdW<#KwUPs5k-PmsndPB-E3lD#1YjL@<2^pxT$92Gt(v6R@4_z4;)@S+!;&#G31g z9G$vE-SBmshffyOrgSj&K?&{b98iPfr#J=sF6v5w$*OXHg-=EjrMSu{4|mo6vk zs(X9$iPFC3b(&sTgZNU0N3FyLi&%8;DPST(w5gt>FRsG2Hvtem`~?layMw^&#Yjr9 zk5Z!vpMwCzx(Uu+9QV581LLEoVIP=ewA8vGG+=fhwy(Mn4o?2_O;laP@nZtx z$XWHOCrXT4cs=dAx1G@`IO8S~I5*_U4?T6CBE}@tfQWg|a{@KRg@|Yk5Ia5Lm_RyC zFcXs!M0+~v+_%#cyR$C69b!FaKp&S$%Ss3R-gEeiq}g0mw|W2+tlxzrq9ARFN(mf4 z&0E6#*;54HglwiP|IMhAS=yW>q<`~D&%Tzoom+L3zEWAO#rAX}DM2RRw4N!;pBdCr9(m!X*d)bZ ze2c!57mn!Erz^Z7u8vQME2~RFb*khJSJa6J8tdWcAMR)Bis$+aXnbW2ZhJF%#c!eN z((%bVM2}UYHimEfRD!b>djzXJoy6K2amG)fEwYu)s*0rLw1{HGxoy~n=IEM5bauxc zR#=lPL8&Tfb1z}?%})?(In2Q)uO)5XWlXvG$$@j7K`j;5rTMkTX#K|@F@X$hR~wQN z99c^#@jFS;G#?JUDnACKl$EwLI+m58BCoJv`Zuk+l z^%&U?Y{Lm=V7uEn^z;vjwKXN$r>Kf!%=ukW``N4~b|s!lh;S##TC?62JAQA!;}eb+t4l(!0pA4Qn9jhjK^Z@MMhN|0Fbz9NU4#P<6;2hyq27Z(`#F0&rFydP0PkyW$-knY zJhJIfSs~f$c8$RuSxHf*qT8)fh@fKvWDqP6)EZ<#etD$wi$|9*XZ8CDH<^(Wo7RHz zNXQ8HOMK)_!oqK~*G;No;P;L=Y5BdJPiFk60OW@&sCuxFg7V0QebyRd literal 0 HcmV?d00001 -- 2.1.4