Skip to content

Commit

Permalink
Search results
Browse files Browse the repository at this point in the history
  • Loading branch information
Guo Yunhe committed Jun 30, 2017
1 parent 9526331 commit d619432
Show file tree
Hide file tree
Showing 5 changed files with 122 additions and 125 deletions.
9 changes: 9 additions & 0 deletions app/assets/stylesheets/app.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// New theme
.package-card {
.card-img-top {
height: 250px;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
}
1 change: 0 additions & 1 deletion app/assets/stylesheets/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -623,4 +623,3 @@ select {
.global-navigation-menu li span.global-navigation-icon {
background-image:url('//static.opensuse.org/themes/bento/images/globalnav/globalnav-im.png');
}

2 changes: 1 addition & 1 deletion app/models/screenshot.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

# Class to cache and resize the screenshot of a given package
class Screenshot
THUMBNAIL_WIDTH = "160"
THUMBNAIL_WIDTH = "600"

# @return [String] name of the package
attr_reader :pkg_name
Expand Down
1 change: 1 addition & 0 deletions app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<link rel="search" type="application/opensearchdescription+xml" title="openSUSE Software" href="/search_software.xml" />

<%= stylesheet_link_tag "/chameleon/css/app.css" %>
<%= stylesheet_link_tag "app" %>
<%= javascript_include_tag "/chameleon/js/app.js" %>
<link href="//static.opensuse.org/themes/bento/images/favicon.png" rel="shortcut icon" />
<%= javascript_include_tag "application" %>
Expand Down
234 changes: 111 additions & 123 deletions app/views/search/_find_results.html.erb
Original file line number Diff line number Diff line change
@@ -1,135 +1,123 @@
<div class="grid_12 alpha omega">

<% if DEFAULT_SEARCHES[@search_term] %>
<div id="search-result-error" >
<div class="ui-state-highlight ui-corner-all" style="margin-bottom: 5px;">
<p id="msg">
<span class="ui-icon ui-icon-info"/>
<%=DEFAULT_SEARCHES[@search_term].html_safe %>
</p>
<div id="search-result" class="py-5">
<div class="container">

<% if DEFAULT_SEARCHES[@search_term] %>
<div id="search-result-error" >
<div class="ui-state-highlight ui-corner-all" style="margin-bottom: 5px;">
<p id="msg">
<span class="ui-icon ui-icon-info"/>
<%=DEFAULT_SEARCHES[@search_term].html_safe %>
</p>
</div>
</div>
</div>
<% end %>
<%= render :partial => 'search/category_header' if @category %>
<% if @packagenames.blank? %>

<div id="search-result-error" >
<div class="ui-state-highlight ui-corner-all" style="margin-bottom: 5px;">
<p id="msg">
<span class="ui-icon ui-icon-info"/>
<%= _("No packages found matching your search. ") %>
<% unless @search_devel %>
<br/>
<%= _("You could try to extend your search to development packages or search for another base distribution (currently #{@baseproject}).") %>
<% end %>
</p>
<% end %>
<%= render :partial => 'search/category_header' if @category %>
<% if @packagenames.blank? %>

<div id="search-result-error" >
<div class="ui-state-highlight ui-corner-all" style="margin-bottom: 5px;">
<p id="msg">
<span class="ui-icon ui-icon-info"/>
<%= _("No packages found matching your search. ") %>
<% unless @search_devel %>
<br/>
<%= _("You could try to extend your search to development packages or search for another base distribution (currently #{@baseproject}).") %>
<% end %>
</p>
</div>
</div>
</div>

<% else %>

<div id="search-result-list">

<%
@packagenames.each_with_index do |package, idx|
appdata_pkg = @appdata[:apps].select{|a| a[:pkgname] == package}
package_name = package
package_name = appdata_pkg.first[:name] unless ( appdata_pkg.blank? || appdata_pkg.first[:name].blank? )
package_img = nil
package_img = appdata_pkg.first[:screenshots].first unless ( appdata_pkg.blank? || appdata_pkg.first[:screenshots].blank? )
thumb_url = screenshot_thumb_url(package, package_img)
%>
<% if idx % 2 == 0 %>
<div style="clear: both; "></div>
<% end %>

<div class="search-result-box box-shadow rounded-corner">
<% else %>

<div id="search-result-list" class="row">

<%
@packagenames.each_with_index do |package, idx|
appdata_pkg = @appdata[:apps].select{|a| a[:pkgname] == package}
package_name = package
package_name = appdata_pkg.first[:name] unless ( appdata_pkg.blank? || appdata_pkg.first[:name].blank? )
package_img = nil
package_img = appdata_pkg.first[:screenshots].first unless ( appdata_pkg.blank? || appdata_pkg.first[:screenshots].blank? )
thumb_url = screenshot_thumb_url(package, package_img)
%>

<div class="col-sm-6 col-md-4">
<div class="package-card card mb-4">

<a class="card-img-top" style="background-image: url(<%= thumb_url %>)" href="<%= url_for :controller => :package, :action => :show, :package => package %>">
</a>
<div class="card-block">
<h4 class="card-title"><%= link_to highlight(package_name, @search_term), :controller => :package, :action => :show, :package => package %></h4>

<% if( appdata_pkg.blank? || appdata_pkg.first[:summary].blank? )
desc_package = search_for_description( package, @packages )
unless desc_package.blank?
summary = desc_package.summary
end
else
summary = appdata_pkg.first[:summary]
end
unless summary.blank? %>
<p class="card-text"><%= highlight( summary, @search_term) %></p>
<% end -%>
<%
devel_pack_match = [package + "-devel", package + "-lang", package + "-debuginfo", package + "-debugsource", package + "-debuginfo-32bit",
package + "-debuginfo-x86", ]
devel_packages = @packagenames.select{|r| devel_pack_match.include? r }
sub_packages = @packagenames.sort.select{|name| ( !(devel_pack_match.include? name) &&
name.start_with?("#{package}-") && @appdata[:apps].select{|a| a[:pkgname] == name}.blank? ) } -%>
<% unless devel_packages.blank? && sub_packages.blank? %>
<p>
<%= _("Show") %>
<a href="#" onclick="$('#devel-packages-<%= package %>').slideToggle(); return false;">
<%= devel_packages.size.to_s + " " + _("Development-") + " " if !devel_packages.blank? && !sub_packages.blank? -%>
<%= devel_packages.size.to_s + " " + _("Development packages") + " " if !devel_packages.blank? && sub_packages.blank? -%>
</a>
<%= _(" and ") unless (devel_packages.blank? || sub_packages.blank?) -%>
<a href="#" onclick="$('#sub-packages-<%= package %>').slideToggle(); return false;">
<%= sub_packages.size.to_s + " " + _("Sub-Packages") + " " unless sub_packages.blank? -%>
</a>
</p>
<% end -%>
<% unless devel_packages.blank? %>
<ul class="hidden extra-packages" id="devel-packages-<%= package %>">
<% devel_packages.sort.each do |subpackage| %>
<li><%= link_to subpackage.sub("#{package}-", ""), :controller => :package, :action => :show, :package => subpackage %></li>
<% end %>
</ul>
<% @packagenames.reject! {|r| devel_pack_match.include? r } -%>
<% end -%>
<% unless sub_packages.blank? -%>
<ul class="hidden extra-packages" id="sub-packages-<%= package %>">
<% sub_packages.each do |subpackage| %>
<li><%= link_to subpackage.sub("#{package}-", ""), :controller => :package, :action => :show, :package => subpackage %></li>
<% end %>
</ul>
<% @packagenames.reject! {|r| r.match(/^#{Regexp.escape( package )}-/) && @appdata[:apps].select{|a| a[:pkgname] == r}.blank? } -%>
<% end -%>

<div class="app-screenshot-search">
<a href="<%= url_for :controller => :package, :action => :show, :package => package %>">
<img src="<%= thumb_url %>" alt="<%= package %>" />
</a>
</div>
<div class="search-result-txt">
<h3><%= link_to highlight(package_name, @search_term), :controller => :package, :action => :show, :package => package %>

<div class="search-result-rating hidden">
<%= image_tag "star_color.png" %>
<%= image_tag "star_color.png" %>
<%= image_tag "star_color.png" %>
<%= image_tag "star_bw.png" %>
<%= image_tag "star_bw.png" %>
</div>
</h3>

<% if( appdata_pkg.blank? || appdata_pkg.first[:summary].blank? )
desc_package = search_for_description( package, @packages )
unless desc_package.blank?
summary = desc_package.summary
end
else
summary = appdata_pkg.first[:summary]
end
unless summary.blank? %>
<p><i><%= highlight( summary, @search_term) %></i></p>
<% end -%>
<%
devel_pack_match = [package + "-devel", package + "-lang", package + "-debuginfo", package + "-debugsource", package + "-debuginfo-32bit",
package + "-debuginfo-x86", ]
devel_packages = @packagenames.select{|r| devel_pack_match.include? r }
sub_packages = @packagenames.sort.select{|name| ( !(devel_pack_match.include? name) &&
name.start_with?("#{package}-") && @appdata[:apps].select{|a| a[:pkgname] == name}.blank? ) } -%>
<% unless devel_packages.blank? && sub_packages.blank? %>
<p>
<%= _("Show") %>
<a href="#" onclick="$('#devel-packages-<%= package %>').slideToggle(); return false;">
<%= devel_packages.size.to_s + " " + _("Development-") + " " if !devel_packages.blank? && !sub_packages.blank? -%>
<%= devel_packages.size.to_s + " " + _("Development packages") + " " if !devel_packages.blank? && sub_packages.blank? -%>
</a>
<%= _(" and ") unless (devel_packages.blank? || sub_packages.blank?) -%>
<a href="#" onclick="$('#sub-packages-<%= package %>').slideToggle(); return false;">
<%= sub_packages.size.to_s + " " + _("Sub-Packages") + " " unless sub_packages.blank? -%>
</a>
</p>
<% end -%>
<% unless devel_packages.blank? %>
<ul class="hidden extra-packages" id="devel-packages-<%= package %>">
<% devel_packages.sort.each do |subpackage| %>
<li><%= link_to subpackage.sub("#{package}-", ""), :controller => :package, :action => :show, :package => subpackage %></li>
<% end %>
</ul>
<% @packagenames.reject! {|r| devel_pack_match.include? r } -%>
<% end -%>
<% unless sub_packages.blank? -%>
<ul class="hidden extra-packages" id="sub-packages-<%= package %>">
<% sub_packages.each do |subpackage| %>
<li><%= link_to subpackage.sub("#{package}-", ""), :controller => :package, :action => :show, :package => subpackage %></li>
<% end %>
</ul>
<% @packagenames.reject! {|r| r.match(/^#{Regexp.escape( package )}-/) && @appdata[:apps].select{|a| a[:pkgname] == r}.blank? } -%>
<% end -%>

</div>
</div>
</div>
<% end -%>
<div style="clear: both; "></div>
<% end -%>
<div style="clear: both; "></div>


<% if @packagenames.size > 81 %>
<div id="show-more-button" class="rounded-corner hidden">
<p><a href="#"><%= _("Show more...") %></a></p>
</div>
<% end -%>
<% if @packagenames.size > 81 %>
<div id="show-more-button" class="rounded-corner hidden">
<p><a href="#"><%= _("Show more...") %></a></p>
</div>
<% end -%>

</div>
</div>

<% end %>
<% end %>

</div>
</div>

0 comments on commit d619432

Please sign in to comment.