Skip to content

Commit

Permalink
Package page header
Browse files Browse the repository at this point in the history
  • Loading branch information
Guo Yunhe committed Jul 1, 2017
1 parent af43b60 commit 2923528
Showing 1 changed file with 109 additions and 257 deletions.
366 changes: 109 additions & 257 deletions app/views/package/show.html.erb
Original file line number Diff line number Diff line change
@@ -1,269 +1,121 @@
<% content_for :content_for_head do %>
<%= javascript_include_tag "/javascripts/slimbox2.js" %>
<%= stylesheet_link_tag "/stylesheets/slimbox2/slimbox2.css" %>
<% end %>

<script type="text/javascript">
function toggle_dist(distname){
if( $('#dist_' + distname).is(':visible') ) {
$('#dist_' + distname).hide();
$('#dist_home_' + distname).hide();
$('#distro-toggle-' + distname).removeClass("active");
} else {
$('#dist_' + distname).show();
$('#unsupported_link_' + distname).show();
$('#distro-toggle-' + distname).addClass("active");
}
}

var current_warning_dist = "";
function toggle_unsupported(distname) {
if( $('#dist_home_' + distname).is(':visible') ) {
$('#dist_home_' + distname).hide();
} else {
if ( $.cookie("skip_unsupported_warning") == 'true' ) {
$('#dist_home_' + distname).show();
$('#unsupported_link_' + distname).hide();
} else {
current_warning_dist = distname;
$("#unsupported-warning").dialog( "open" );
}
}
}

function expand_all() {
$("#pkg-options").show();
$(".pkg-options-details").show();
$("#other-versions-link").hide();
$( ".pkg-options-unsupported" ).removeClass("hidden");
$('#unsupported-title').removeClass("hidden");
$('.extra-dists').removeClass("hidden");
$('.pkg-options-unsupported').removeClass("hidden");
$('.show-unstable-packages').addClass("hidden");
$('#show-extra-dists').addClass("hidden");
$('#show-extra-dists').css("display","none");
$('#expand-all').addClass("hidden");
$('#expand-all').css("display","none");
$('#other-versions-link').addClass("hidden");
}


$(function() {

<% unless @default_package.blank? %>
$( "#pkg-options" ).addClass("hidden");
<% end -%>

// this makes all visible for non-javascript browsers
$( ".pkg-options-unsupported" ).addClass("hidden");
$('#unsupported-title').addClass("hidden");
$('.extra-dists').addClass("hidden");
$('.pkg-options-unsupported').addClass("hidden");
$('.show-unstable-packages').removeClass("hidden");
$('#show-extra-dists').removeClass("hidden");
$('#show-extra-dists').css("display","block");
$('#expand-all').removeClass("hidden");
//$('#expand-all').css("display","block");
$('#other-versions-link').removeClass("hidden");


<% @distributions.each do |distro| -%>
<% unless (distro[:project] == @baseproject ) %>
$('#dist_<%= distro[:dist_id] %>').addClass("hidden");
<% end -%>
<% end -%>


$( "#unsupported-warning" ).dialog({
autoOpen: false,
minWidth: 500,
modal: true,
closeText: 'hide',
closeOnEscape: true,
draggable: false,
resizable: false,
title: 'Warning',
buttons: { "Continue": function() {
$(this).dialog("close");
$('#dist_home_' + current_warning_dist).show();
$('#unsupported_link_' + current_warning_dist).hide();
}
}
});

$(".ui-icon-closethick").hide();
$(".ui-icon-closethick").click(function() {
$('#dist_home_' + current_warning_dist).show();
});

$("#toggle_unsupported_warning").click(function() {
$.cookie("skip_unsupported_warning", "true", { path: '/', expires: 365 });
});

$("#other-versions-link").click(function() {
$("#pkg-options").slideToggle();
$("#other-versions-link").hide();
return false;
});

$('#show-extra-dists').click(function() {
$('#show-extra-dists').hide();
$('#unsupported-title').show();
$('.extra-dists').slideToggle();
return false;
});

$('#expand-all').click(function() {
expand_all();
return false;
});

$(document).keypress(function(e){
if(e.charCode == 101){
expand_all();
}
})


});

</script>

<div class="grid_12 alpha omega">

<div id="unsupported-warning" class="hidden">
<p>
<%= _("Please be aware that the following packages are from unofficial repositories.
That means they are not reviewed by openSUSE and may contain unstable or experimental software.") %>
</p>
<p><input type="checkbox" id="toggle_unsupported_warning"/>
<label for="toggle_unsupported_warning"><%= _("Don't show this warning the next time") %></label>
</p>
<% if @packages.blank? %>
<div class="py-5">
<div class="container">
<h1><%= _("Package %s not found...") % [@pkgname] %></h1>
<p><a href="/search"><%= _("Back to home page") %></a></p>
</div>
</div>

<div class="box box-shadow">
<div>

<% if @packages.blank? %>
<p><%= _("Package %s not found...") % [@pkgname] %></p>
<% else %>

<!-- Main Content -->

<!-- Main Column -->
<div id="pkg-content" class="grid_10 prefix_1 suffix_1">

<div class="app-screenshot">
<a title="Screenshot of <%= @pkgname %>" rel="lightbox" href="<%= @screenshot %>">
<img src="<%= @thumbnail %>" alt="<%= @pkgname %>" />
<% else %>

<header class="my-5">
<div class="container">
<div class="row">
<div class="col-md-6">
<a title="Screenshot of <%= @pkgname %>" rel="lightbox" href="<%= @screenshot %>">
<img class="img-fluid" src="<%= @thumbnail %>" alt="<%= @pkgname %>" />
</a>
</div>
<div class="col-md-6">
<h1><%= @name || @pkgname %></h1>
<% desc_package = search_for_description( @pkgname, @packages ) %>
<% unless desc_package.blank? %>
<% unless @appcategories.blank? %>
<p class="pkg-categorie-note">
<strong><%= @appcategories.size > 1 ? _("Categories") : _("Category") %>:</strong>
<% @appcategories.each do |cat| -%>
<%= link_to cat, {:controller => :package, :action => :category, :category => cat}, :class => 'badge badge-info' %>
<% end -%>
</p>
<% end -%>
<p><strong><%= desc_package.summary %></strong></p>
<p id="pkg-desc"><%= prepare_desc desc_package.description -%></p>
<!-- <i>(from <%= desc_package.project %>)</i> -->
<%else %>
<p class="text-muted"><%= _("No description.") %></p>
<% end -%>
<% unless @default_package.blank? %>
<%
url = url_for :controller => 'download', :action => 'ymp_without_arch_and_version', :query => @pkgname,
:project => @default_package.project, :repository => @default_package.repository, :package => @pkgname, :base => @default_package.baseproject
%>
<ul class="list-inline">
<li class="list-inline-item"><%= _("Version") %> <%= shorten @default_package.version, 13 %></li>
<li class="list-inline-item"><%= _("Size") %> <%= number_to_human_size desc_package.size if desc_package %></li>
<li class="list-inline-item"><%= @default_project_name %></li>
</ul>
<a id="one-click-button" class="btn btn-lg btn-primary" href="<%= url %>">
<span class="typcn typcn-flash-outline"></span>
<%= _("Direct Install") %>
</a>
</div>

<div id="pkg-description">
<h1><%= @name || @pkgname %></h1>
<% desc_package = search_for_description( @pkgname, @packages ) %>
<% unless desc_package.blank? %>
<% unless @appcategories.blank? %>
<p class="pkg-categorie-note">
<strong><%= @appcategories.size > 1 ? _("Categories") : _("Category") %>:</strong>
<% @appcategories.each do |cat| -%>
<%= link_to cat, :controller => :package, :action => :category, :category => cat %>
<% end -%>
</div><!-- /#package-description -->
</div><!-- /.row -->
</div><!-- /.container -->
</header>

<div id="pkg-options">
<ul>
<% @distributions.each do |distro| -%>
<% if (pkgs = @packages.select{|s| s.baseproject == distro[:project]}).size > 0
%>

<li>
<a href="#" onclick=" toggle_dist('<%= distro[:dist_id] %>'); return false;"
class="distro-toggle" id="distro-toggle-<%= distro[:dist_id] %>"><b><%= distro[:name] %></b></a>
<ul class="pkg-options-details " id="dist_<%= distro[:dist_id] %>" >

<%
official, pkgs = pkgs.partition{|s| s.project == distro[:project] || s.project == "#{distro[:project]}:NonFree" }
update, pkgs = pkgs.partition{|s| s.project == "#{distro[:project]}:Update"}
stable, pkgs = pkgs.partition{|s| s.quality == "Stable"} %>
<%= render( :partial => 'package/download_rows', :locals => {:packages => official, :distro => distro, :oneclick => true} ) if update.blank? %>
<%= render :partial => 'package/download_rows', :locals => {:packages => update, :distro => distro, :oneclick => true} %>
<%= render :partial => 'package/download_rows', :locals => {:packages => stable, :distro => distro, :oneclick => true} %>
<%
home, pkgs = pkgs.partition{|s| s.project.match( /^home\:/ )}
devel = pkgs.reject{|s| @official_projects.include?( s.project ) || s.project.match( /^home\:/ ) || s.project.match( /#{distro[:project]}\:Update/ ) ||
s.project.match( /#{distro[:project]}\:NonFree/ ) || s.project.match( /openSUSE\:Maintenance\:/ ) } %>
<% unless home.blank? && devel.blank? %>
<li id="unsupported_link_<%= distro[:dist_id] %>" class="show-unstable-packages hidden">
<a class="trigger-show-more" href="#" onclick="toggle_unsupported('<%= distro[:dist_id] %>'); return false;"><%= _("Show unstable packages") %></a></li>
<% end -%>
</ul>
<ul class="pkg-options-details pkg-options-unsupported" id="dist_home_<%= distro[:dist_id] %>" >
<%= render :partial => 'package/download_rows', :locals => {:packages => devel, :distro => distro, :oneclick => true} %>
<%= render :partial => 'package/download_rows', :locals => {:packages => home, :distro => distro, :oneclick => true} %>
</ul>

</li>
<% end -%>
</p>
<% end -%>
<h3><%= desc_package.summary %></h3>
<p id="pkg-desc"><%= prepare_desc desc_package.description -%></p>
<!-- <i>(from <%= desc_package.project %>)</i> -->
<%else %>
<p><%= _("No description found...") %></p>
<% end -%>
<% unless @default_package.blank? %>
<% url = url_for :controller => 'download', :action => 'ymp_without_arch_and_version', :query => @pkgname,
:project => @default_package.project, :repository => @default_package.repository, :package => @pkgname, :base => @default_package.baseproject %>
<div id="one-click-button-box">
<a id="one-click-button" href="<%= url %>">
<%= image_tag "download-arrow.png", :width => "36", :height => "36", :alt => "Download Arrow" %>
<strong><%= _("Direct Install") %></strong><br/>
<em><%= @default_project_name %>,
<%= _("Version") %> <%= shorten @default_package.version, 13 %><%= ", #{number_to_human_size desc_package.size}" if desc_package %></em>
</a>
<div id="other-versions-link" class="hidden"><a href="#pkg-options"><%= _("Show other versions") %></a></div>
</div>
<% end -%>
</div>


<div id="pkg-options">
<ul>
<% @distributions.each do |distro| -%>
<% if (pkgs = @packages.select{|s| s.baseproject == distro[:project]}).size > 0
%>

<li>
<a href="#" onclick=" toggle_dist('<%= distro[:dist_id] %>'); return false;"
class="distro-toggle" id="distro-toggle-<%= distro[:dist_id] %>"><b><%= distro[:name] %></b></a>
<ul class="pkg-options-details " id="dist_<%= distro[:dist_id] %>" >

<%
official, pkgs = pkgs.partition{|s| s.project == distro[:project] || s.project == "#{distro[:project]}:NonFree" }
update, pkgs = pkgs.partition{|s| s.project == "#{distro[:project]}:Update"}
stable, pkgs = pkgs.partition{|s| s.quality == "Stable"} %>
<%= render( :partial => 'package/download_rows', :locals => {:packages => official, :distro => distro, :oneclick => true} ) if update.blank? %>
<%= render :partial => 'package/download_rows', :locals => {:packages => update, :distro => distro, :oneclick => true} %>
<%= render :partial => 'package/download_rows', :locals => {:packages => stable, :distro => distro, :oneclick => true} %>
<%
home, pkgs = pkgs.partition{|s| s.project.match( /^home\:/ )}
devel = pkgs.reject{|s| @official_projects.include?( s.project ) || s.project.match( /^home\:/ ) || s.project.match( /#{distro[:project]}\:Update/ ) ||
s.project.match( /#{distro[:project]}\:NonFree/ ) || s.project.match( /openSUSE\:Maintenance\:/ ) } %>
<% unless home.blank? && devel.blank? %>
<li id="unsupported_link_<%= distro[:dist_id] %>" class="show-unstable-packages hidden">
<a class="trigger-show-more" href="#" onclick="toggle_unsupported('<%= distro[:dist_id] %>'); return false;"><%= _("Show unstable packages") %></a></li>
<% end -%>
</ul>
<ul class="pkg-options-details pkg-options-unsupported" id="dist_home_<%= distro[:dist_id] %>" >
<%= render :partial => 'package/download_rows', :locals => {:packages => devel, :distro => distro, :oneclick => true} %>
<%= render :partial => 'package/download_rows', :locals => {:packages => home, :distro => distro, :oneclick => true} %>
</ul>

</li>
<% end -%>
<% end -%>
<% unless @extra_dists.blank? %>

<div id="unsupported-title"><h3><%= _("Unsupported distributions:") %></h3></div>
<% @extra_dists.each do |distro| -%>
<li class="extra-dists">
<a href="#" onclick=" toggle_dist('<%= escape_for_id distro[:project] %>'); return false;"
class="distro-toggle" id="distro-toggle-<%= escape_for_id distro[:project] %>"><b><%= distro[:project].gsub(":", " ").sub("DISCONTINUED", "") %></b></a>
<% pks = @extra_packages.select{|p| p.baseproject == distro[:project] } %>
<ul class="pkg-options-details pkg-options-unsupported" id="dist_<%= escape_for_id distro[:project] %>" >
<%= render :partial => 'download_rows', :locals => {:packages => pks, :distro => distro, :oneclick => false} %>
</ul>
</li>
<% unless @extra_dists.blank? %>

<div id="unsupported-title"><h3><%= _("Unsupported distributions:") %></h3></div>
<% @extra_dists.each do |distro| -%>
<li class="extra-dists">
<a href="#" onclick=" toggle_dist('<%= escape_for_id distro[:project] %>'); return false;"
class="distro-toggle" id="distro-toggle-<%= escape_for_id distro[:project] %>"><b><%= distro[:project].gsub(":", " ").sub("DISCONTINUED", "") %></b></a>
<% pks = @extra_packages.select{|p| p.baseproject == distro[:project] } %>
<ul class="pkg-options-details pkg-options-unsupported" id="dist_<%= escape_for_id distro[:project] %>" >
<%= render :partial => 'download_rows', :locals => {:packages => pks, :distro => distro, :oneclick => false} %>
</ul>
</li>
<% end %>
<% end %>
<% end %>
<%= image_tag "expand_all.png", :style => "float: right; ", :class => "hidden", :title => _("Expand all sections ('e')"), :id => "expand-all" %>
<a id="show-extra-dists" class="hidden" href="#"><%= _("Show more packages for unsupported distributions") %></a>

</ul>
</div>

</div>
<!-- End of Main Column -->
<%= image_tag "expand_all.png", :style => "float: right; ", :class => "hidden", :title => _("Expand all sections ('e')"), :id => "expand-all" %>
<a id="show-extra-dists" class="hidden" href="#"><%= _("Show more packages for unsupported distributions") %></a>

<div class="clearfix"></div>
</ul>
</div>

</div>
<!-- End of Main Content -->

<% end -%>
<% end -%>
</div>
</div>
</div>

0 comments on commit 2923528

Please sign in to comment.