diff options
Diffstat (limited to 'app/views')
62 files changed, 1486 insertions, 0 deletions
diff --git a/app/views/about/changelog.html.md b/app/views/about/changelog.html.md new file mode 100644 index 0000000..070d979 --- /dev/null +++ b/app/views/about/changelog.html.md @@ -0,0 +1,9 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li><a href="/about"><%= t :about %></a></li> + <li class="active"><%= t :changelog %></li> +</ol> + +# <%= t :changelog %> + +<%= kk_changelog %> diff --git a/app/views/about/feedback.html.erb b/app/views/about/feedback.html.erb new file mode 100644 index 0000000..4a1f1f3 --- /dev/null +++ b/app/views/about/feedback.html.erb @@ -0,0 +1,64 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li><a href="/about"><%= t :about %></a></li> + <li class="active"><%= t :feedback %></li> +</ol> + +<h1>Feedback</h1> + +<p class="lead"> + Thanks for checking out the new packages.gentoo.org! +</p> +<p> + This site is currently in an <abbr title="minimum viable product">MVP</abbr> state and will be extended further to provide more useful features. + To help us prioritize new features and learn about your use case for the site, please share your ideas below. + <br><br> +</p> + +<div class="row"> + <div class="col-md-8"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Send Feedback</h3> + </div> + <div class="panel-body"> + <form class="form-horizontal" method="post" action="/about/feedback"> + <div class="form-group"> + <label for="feedback" class="col-sm-2 control-label">Your Feedback:</label> + <div class="col-sm-10"> + <textarea name="feedback" id="feedback" class="form-control" rows="10" placeholder="Please be sure to explain issues in detail and with exact URL references."></textarea> + </div> + </div> + <div class="form-group"> + <label for="contact" class="col-sm-2 control-label">Contact (optional):</label> + <div class="col-sm-10"> + <input type="text" name="contact" class="form-control" id="contact" placeholder="How can we reach you to follow up on your feedback?"> + </div> + </div> + <div class="form-group"> + <div class="col-sm-offset-2 col-sm-10"> + <button type="submit" class="btn btn-default">Send</button> + </div> + </div> + </form> + </div> + </div> + </div> + <div class="col-md-4"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Other ways to get in touch</h3> + </div> + <div class="list-group"> + <a href="mailto:gpackages@gentoo.org" class="list-group-item"> + <span class="fa fa-fw fa-envelope"></span> + E-Mail: gpackages@gentoo.org + </a> + <a href="irc://irc.gentoo.org/gentoo-www" class="list-group-item"> + <span class="fa fa-fw fa-comments-o"></span> + IRC: #gentoo-www + </a> + </div> + </div> + </div> +</div> diff --git a/app/views/about/feeds.html.erb b/app/views/about/feeds.html.erb new file mode 100644 index 0000000..5a9c1cd --- /dev/null +++ b/app/views/about/feeds.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li><a href="/about"><%= t :about %></a></li> + <li class="active"><%= t :update_feeds %></li> +</ol> + +<h1><%= t :update_feeds %></h1> + +<p> + You can find Atom feeds here: +</p> + +<ul> + <li> + For all packages: Right column on the <a href="/categories">category listing</a>. + </li> + <li> + For specific architectures: In the <a href="/arches">architectures section</a>. + </li> + <li> + For specific packages: In the <em>Resources</em> box on the respective package pages. + </li> +</ul> diff --git a/app/views/about/help.html.erb b/app/views/about/help.html.erb new file mode 100644 index 0000000..77ddf5b --- /dev/null +++ b/app/views/about/help.html.erb @@ -0,0 +1,11 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li><a href="/about"><%= t :about %></a></li> + <li class="active"><%= t :help %></li> +</ol> + +<h1><%= t :help %></h1> + +<h2 id="keyword-legend"><%= t :keyword_table_legend %></h2> + +<%= render partial: 'packages/keyword_legend' %> diff --git a/app/views/about/index.html.erb b/app/views/about/index.html.erb new file mode 100644 index 0000000..5d9ed0f --- /dev/null +++ b/app/views/about/index.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li class="active"><%= t :about %></li> +</ol> + +<h1>About packages.gentoo.org</h1> + +<p>Welcome to the new packages.gentoo.org!</p> + +<p> + This section will be extended with further information as the site continues to develop. + Feel free to <a href="/about/feedback">get in touch</a> if you have any questions that are not answered on this page. +</p> + +<h2>FAQ</h2> + +<dl> + <dt>How often is the site updated?</dt> + <dd> + Updates are scheduled <strong>every 10 minutes</strong> and are processed using delayed jobs. + You can find the last time an import task was started in the footer. + </dd> +</dl> diff --git a/app/views/about/legacy.atom.builder b/app/views/about/legacy.atom.builder new file mode 100644 index 0000000..91c0928 --- /dev/null +++ b/app/views/about/legacy.atom.builder @@ -0,0 +1,18 @@ +atom_feed(id: atom_id(@feed_type, 'feed')) do |feed| + feed.title @feed_title + feed.updated Time.now + + feed.entry('', id: atom_id(@feed_type, 'deprecated'), url: about_feeds_url) do |entry| + entry.title 'This feed is deprecated' + entry.content <<END_CONTENT.strip +This is a legacy feed from the previous version of packages.gentoo.org + +With our recent site relaunch, the feed setup has changed as well. +To continue receiving updates about Gentoo packages, please visit the Feeds section of our new packages website at: + + https://packages.gentoo.org/about/feeds + +Thank you for your interest in our packages site. +END_CONTENT + end +end diff --git a/app/views/arches/index.html.erb b/app/views/arches/index.html.erb new file mode 100644 index 0000000..8684eb1 --- /dev/null +++ b/app/views/arches/index.html.erb @@ -0,0 +1,36 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li class="active"><%= t :architectures %></li> +</ol> + +<h1><%= t :architectures %></h1> + +<p><%= t :arches_intro %></p> + +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :architectures %></h3> + </div> + <div class="table-responsive"> + <table class="table table-striped"> + <col> + <col style="width: 20em;"> + <col style="width: 20em;"> + <tbody> + <% ::KKULEOMI_ARCHES.sort.each do |arch| %> + <tr> + <th class="kk-nobreak-cell"><%= arch %></th> + <td> + <%= link_to t(:keyworded_packages), keyworded_arch_path(id: arch) %> + <%= feed_icon keyworded_arch_path(id: arch, format: :atom) %> + </td> + <td> + <%= link_to t(:stable_packages), stable_arch_path(id: arch) %> + <%= feed_icon stable_arch_path(id: arch, format: :atom) %> + </td> + </tr> + <% end %> + </tbody> + </table> + </div> +</div> diff --git a/app/views/arches/keyworded.html.erb b/app/views/arches/keyworded.html.erb new file mode 100644 index 0000000..b7ae03d --- /dev/null +++ b/app/views/arches/keyworded.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:architectures), arches_path %></li> + <li class="active"><%= t :keyworded_packages %></li> +</ol> + +<h1> + <%= t :keyworded_packages %> (<%= @arch %>) + <%= feed_icon keyworded_arch_path(id: @arch, format: :atom) %> +</h1> + +<% cache("keyworded-full-#{@arch}-#{@changes.hash}") do %> + <ul class="list-group"> + <% @changes.each do |change| + _package = Package.find_by(:atom, cp_to_atom(change.category, change.package)) %> + <%= render partial: 'packages/changed_package', object: change, as: 'change', locals: { package: _package, version: _package.version(change.version) } %> + <% end %> + </ul> +<% end %> + +<% content_for :head do %> + <%= alternate_feed_link(keyworded_arch_url(id: @arch, format: :atom), t(:atom_feed)) %> +<% end %> diff --git a/app/views/arches/show.html.erb b/app/views/arches/show.html.erb new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/app/views/arches/show.html.erb diff --git a/app/views/arches/stable.html.erb b/app/views/arches/stable.html.erb new file mode 100644 index 0000000..b1a4548 --- /dev/null +++ b/app/views/arches/stable.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:architectures), arches_path %></li> + <li class="active"><%= t :stable_packages %></li> +</ol> + +<h1> + <%= t :stable_packages %> (<%= @arch %>) + <%= feed_icon stable_arch_path(id: @arch, format: :atom) %> +</h1> + +<% cache("stable-full-#{@arch}-#{@changes.hash}") do %> + <ul class="list-group"> + <% @changes.each do |change| + _package = Package.find_by(:atom, cp_to_atom(change.category, change.package)) %> + <%= render partial: 'packages/changed_package', object: change, as: 'change', locals: { package: _package, version: _package.version(change.version) } %> + <% end %> + </ul> +<% end %> + +<% content_for :head do %> + <%= alternate_feed_link(stable_arch_url(id: @arch, format: :atom), t(:atom_feed)) %> +<% end %> diff --git a/app/views/categories/_category_header.html.erb b/app/views/categories/_category_header.html.erb new file mode 100644 index 0000000..b52cecf --- /dev/null +++ b/app/views/categories/_category_header.html.erb @@ -0,0 +1,21 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:packages), categories_path %></li> + <li class="active"><%= category.name %></li> +</ol> + +<div class="row"> + <div class="col-md-4"> + <h1 class="stick-top"> + <span class="fa fa-fw fa-cubes"></span> + <%= category.name %> + </h1> + </div> + <div class="col-md-8"> + <p class="lead" style="margin: 0;"> + <%= category.description %> + </p> + </div> +</div> + +<hr>
\ No newline at end of file diff --git a/app/views/categories/_package_line.html.erb b/app/views/categories/_package_line.html.erb new file mode 100644 index 0000000..7ac4a43 --- /dev/null +++ b/app/views/categories/_package_line.html.erb @@ -0,0 +1,4 @@ +<tr> + <th class="kk-nobreak-cell"><%= link_to package.name, slf(package_path(package.atom)) %></th> + <td><%= package.description %></td> +</tr> diff --git a/app/views/categories/index.html.erb b/app/views/categories/index.html.erb new file mode 100644 index 0000000..9c19c9c --- /dev/null +++ b/app/views/categories/index.html.erb @@ -0,0 +1,52 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li class="active"><%= t :packages %></li> +</ol> + +<h1><%= t :packages %></h1> + +<div class="row"> + <div class="col-md-9"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :browse_categories %></h3> + </div> + <div class="panel-body"> + <ul class="kk-col-list kk-4col-list kk-category-listing"> + <%- prev_letter = 'z' -%> + <% @categories.each do |category| %> + <%- unless category.name[0].upcase == prev_letter ; prev_letter = category.name[0].upcase -%> + <li class="kk-col-list-header"><span class="kk-group-header"><%= prev_letter %></span></li> + <%- end -%> + <li><%= link_to_category category %></li> + <% end %> + </ul> + </div> + </div> + </div> + <div class="col-md-3"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :update_feeds %></h3> + </div> + <div class="list-group"> + <a href="<%= added_packages_path %>" class="list-group-item"> + <span class="fa fa-fw fa-history"></span> + <%= t :added_packages %> + </a> + <a href="<%= updated_packages_path %>" class="list-group-item"> + <span class="fa fa-fw fa-asterisk"></span> + <%= t :updated_packages %> + </a> + <a href="<%= stable_packages_path %>" class="list-group-item"> + <span class="fa fa-fw fa-check-circle-o"></span> + <%= t :stable_packages %> + </a> + <a href="<%= keyworded_packages_path %>" class="list-group-item"> + <span class="fa fa-fw fa-circle-o"></span> + <%= t :keyworded_packages %> + </a> + </div> + </div> + </div> +</div> diff --git a/app/views/categories/index.json.jbuilder b/app/views/categories/index.json.jbuilder new file mode 100644 index 0000000..12cc02e --- /dev/null +++ b/app/views/categories/index.json.jbuilder @@ -0,0 +1,5 @@ +json.array!(@categories) do |category| + json.extract! category, :name + json.extract! category, :description + json.url category_url(category, format: :json) +end diff --git a/app/views/categories/show.html.erb b/app/views/categories/show.html.erb new file mode 100644 index 0000000..41cceef --- /dev/null +++ b/app/views/categories/show.html.erb @@ -0,0 +1,28 @@ +<%= render partial: 'category_header', object: @category, as: 'category' %> + +<div class="row"> + <div class="col-md-9"> + <!--<p> + <input type="text" class="form-control form-control-xl" placeholder="Search packages in <%= @category.name %>"> + </p>--> + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">All packages</h3> + </div> + <table class="table"> + <%= render partial: 'package_line', collection: @packages, as: 'package' %> + </table> + </div> + </div> + <div class="col-md-3"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Statistics</h3> + </div> + <div class="panel-body"> + <%= @packages.count %> <%= t :packages %> + </div> + </div> + </div> +</div> diff --git a/app/views/categories/show.json.jbuilder b/app/views/categories/show.json.jbuilder new file mode 100644 index 0000000..fcf3811 --- /dev/null +++ b/app/views/categories/show.json.jbuilder @@ -0,0 +1,10 @@ +json.extract! @category, :name +json.href slf category_url(id: @category.name) + +json.packages @packages do |package| + json.name package.name + json.description package.description + json.href slf(package_url(id: package.atom)) +end + +json.extract! @category, :updated_at
\ No newline at end of file diff --git a/app/views/feedback_mailer/feedback_email.text.erb b/app/views/feedback_mailer/feedback_email.text.erb new file mode 100644 index 0000000..40b0b98 --- /dev/null +++ b/app/views/feedback_mailer/feedback_email.text.erb @@ -0,0 +1,5 @@ +Feedback: +------------------------------------------------------------------------------- +<%= @feedback %> +------------------------------------------------------------------------------- +Contact: <%= @contact %> diff --git a/app/views/feeds/changes.atom.builder b/app/views/feeds/changes.atom.builder new file mode 100644 index 0000000..5991f45 --- /dev/null +++ b/app/views/feeds/changes.atom.builder @@ -0,0 +1,60 @@ +@feed_id ||= nil + +atom_feed(id: atom_id(@feed_type, @feed_id, 'feed')) do |feed| + feed.title @feed_title + feed.updated !@changes.empty? ? @changes.first.created_at : Time.now + + feed.author do |author| + author.name 'Gentoo Packages Database' + end + + @changes.each do |change| + atom = cp_to_atom change.category, change.package + package = Package.find_by :atom, atom + if package.nil? + logger.warn "Package for change (#{change}) nil!" + next + end + + id = atom + id += '-%s' % change.version if change[:version] + id += '-%s' % change.arches.join(',') if change[:arches] + + feed.entry( + change, + id: atom_id(@feed_type, @feed_id, id), + url: absolute_link_to_package(atom)) do |entry| + entry.updated change.created_at.to_datetime.rfc3339 + + case @feed_type + when :added + entry.title(t :feed_added_title, + atom: atom, + description: package.description) + entry.content(t :feed_added_content, + atom: atom, + arches: package.latest_version.keywords.join(', ')) + when :updated + entry.title(t :feed_updated_title, + atom: atom_add_version(atom, change.version), + description: package.description) + entry.content(t :feed_updated_content, + atom: change.version) + when :stable + entry.title(t :feed_stable_title, + atom: atom_add_version(atom, change.version), + description: package.description) + entry.content(t :feed_stable_content, + atom: atom, + arches: change.arches.join(', ')) + when :keyworded + entry.title(t :feed_keyworded_title, + atom: atom_add_version(atom, change.version), + description: package.description) + entry.content(t :feed_keyworded_content, + atom: atom, + arches: change.arches.join(', ')) + end + end + end +end diff --git a/app/views/index/_package.html.erb b/app/views/index/_package.html.erb new file mode 100644 index 0000000..431142a --- /dev/null +++ b/app/views/index/_package.html.erb @@ -0,0 +1,8 @@ +<tr> + <td> + <a href="<%= slf(package_path(cp_to_atom(change.category, change.package))) %>"> + <span class="text-muted"><%= change.category %></span>/<strong><%= change.package %><%= "-#{change.version}" if change[:version] %></strong> + </a> + </td> + <td><%= Package.find_by(:atom, cp_to_atom(change.category, change.package)).description %></td> +</tr>
\ No newline at end of file diff --git a/app/views/index/index.html.erb b/app/views/index/index.html.erb new file mode 100644 index 0000000..890a5f3 --- /dev/null +++ b/app/views/index/index.html.erb @@ -0,0 +1,53 @@ +<div class="jumbotron"> + <h2 class="site-welcome stick-top">Welcome to the Home of <span class="text-primary"><%= number_with_delimiter Package.count %></span> Gentoo Packages</h2> + + <form action="<%= search_packages_path %>" method="get"> + <div class="typeahead-container"> + <div class="typeahead-field"> + <span class="typeahead-query"> + <input id="q" name="q" type="search" autocomplete="off" placeholder="<%= t :find_packages %>" aria-label="<%= t :find_packages %>" autofocus> + </span> + <span class="typeahead-button"> + <button type="submit" title="<%= t :find %>" aria-label="<%= t :find %>"> + <span class="typeahead-search-icon"></span><span class="sr-only"><%= t :find %></span> + </button> + </span> + </div> + </div> + </form> +</div> + +<% cache("added-#{@new_packages.hash}") do %> +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"> + <span class="fa fa-fw fa-history"></span> + <%= link_to t(:added_packages), added_packages_path %> + </h3> + </div> + <div class="table-responsive"> + <table class="table table-striped"> + <%= render partial: 'package', collection: @new_packages, as: 'change' %> + </table> + </div> +</div> +<% end %> + +<% cache("updated-#{@version_bumps.hash}") do %> +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"> + <span class="fa fa-fw fa-asterisk"></span> + <%= link_to t(:updated_packages), updated_packages_path %> + </h3> + </div> + <ul class="list-group"> + <% @version_bumps.each do |change| + _package = Package.find_by(:atom, cp_to_atom(change.category, change.package)) %> + <%= render partial: 'packages/changed_package', object: change, as: 'change', locals: { package: _package, version: _package.version(change.version) } %> + <% end %> + </ul> +</div> +<% end %> + +<%= javascript_include_tag 'index/typeahead.js' %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb new file mode 100644 index 0000000..72fb8fa --- /dev/null +++ b/app/views/layouts/application.html.erb @@ -0,0 +1,153 @@ +<!DOCTYPE html> +<html> +<head> + <title><%= "#{@title} – " if @title %>Gentoo Packages</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <meta name="theme-color" content="#54487a"> + <meta name="description" content="<%= "#{@description} in the " if @description %>Gentoo Packages Database"> + <link href="https://assets.gentoo.org/tyrian/bootstrap.min.css" rel="stylesheet" media="screen"> + <link href="https://assets.gentoo.org/tyrian/tyrian.min.css" rel="stylesheet" media="screen"> + <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> + <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> + <script src="https://assets.gentoo.org/tyrian/bootstrap.min.js"></script> + <link rel="icon" href="https://www.gentoo.org/favicon.ico" type="image/x-icon"> + <% if content_for? :head -%> + <%= yield :head %> + <% end -%> +</head> +<body class="kk"> +<header> + <div class="site-title"> + <div class="container"> + <div class="row"> + <div class="site-title-buttons"> + <div class="btn-group btn-group-sm"> + <a href="https://get.gentoo.org/" role="button" class="btn get-gentoo"><span class="fa fa-fw fa-download"></span> <strong>Get Gentoo!</strong></a> + <div class="btn-group btn-group-sm"> + <a class="btn gentoo-org-sites dropdown-toggle" data-toggle="dropdown" data-target="#" href="#"> + <span class="fa fa-fw fa-map-o"></span> <span class="hidden-xs">gentoo.org sites</span> <span class="caret"></span> + </a> + <ul class="dropdown-menu dropdown-menu-right"> + <li><a href="https://www.gentoo.org/" title="Main Gentoo website"><span class="fa fa-home fa-fw"></span> gentoo.org</a></li> + <li><a href="https://wiki.gentoo.org/" title="Find and contribute documentation"><span class="fa fa-file-text-o fa-fw"></span> Wiki</a></li> + <li><a href="https://bugs.gentoo.org/" title="Report issues and find common issues"><span class="fa fa-bug fa-fw"></span> Bugs</a></li> + <li><a href="https://forums.gentoo.org/" title="Discuss with the community"><span class="fa fa-comments-o fa-fw"></span> Forums</a></li> + <li><a href="https://packages.gentoo.org/" title="Find software for your Gentoo"><span class="fa fa-hdd-o fa-fw"></span> Packages</a></li> + <li class="divider"></li> + <li><a href="https://planet.gentoo.org/" title="Find out what's going on in the developer community"><span class="fa fa-rss fa-fw"></span> Planet</a></li> + <li><a href="https://archives.gentoo.org/" title="Read up on past discussions"><span class="fa fa-archive fa-fw"></span> Archives</a></li> + <li><a href="https://sources.gentoo.org/" title="Browse our source code"><span class="fa fa-code fa-fw"></span> Sources</a></li> + <li class="divider"></li> + <li><a href="https://infra-status.gentoo.org/" title="Get updates on the services provided by Gentoo"><span class="fa fa-server fa-fw"></span> Infra Status</a></li> + </ul> + </div> + </div> + </div> + <div class="logo"> + <a href="/" title="Back to the homepage" class="site-logo"> + <object data="https://assets.gentoo.org/tyrian/site-logo.svg" type="image/svg+xml"> + <img src="https://assets.gentoo.org/tyrian/site-logo.png" alt="Gentoo Linux Logo"> + </object> + </a> + <span class="site-label">Packages</span> + </div> + </div> + </div> + </div> + <nav class="tyrian-navbar" role="navigation"> + <div class="container"> + <div class="row"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-main-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <div class="collapse navbar-collapse navbar-main-collapse"> + <ul class="nav navbar-nav"> + <li class="<%= 'active' if @nav == :index %>"><%= link_to t(:home), '/' %></li> + <li class="<%= 'active' if @nav == :packages %>"><%= link_to t(:packages), categories_path %></li> + <li class="<%= 'active' if @nav == :use %>"><%= link_to t(:use_flags), useflags_path %></li> + <li class="<%= 'active' if @nav == :arches %>"><%= link_to t(:architectures), arches_path %></li> + <li class="<%= 'active' if @nav == :about %>"><%= link_to t(:about), about_path %></li> + </ul> + <% unless @nav == :index %> + <form class="navbar-form navbar-right" role="search" action="<%= search_packages_path %>" method="get"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Find Packages" name="q"> + </div> + </form> + <% end %> + </div> + </div> + </div> + </nav> +</header> + +<div class="container"> + <div class="row"> + <div class="col-xs-12"> + <%= yield %> + </div> + </div> +</div> + +<footer> + <div class="container"> + <div class="row"> + <div class="col-xs-12 col-md-offset-2 col-md-7"> + <h3 class="footerhead"><%= t :app_name %></h3> + <div class="row"> + <div class="col-xs-12 col-md-4"> + <span class="kk-group-header"><%= t :data_current_as_of %></span><br><%= last_import_start ? i18n_date(last_import_start) : 'unknown' %> + </div> + <div class="col-xs-12 col-md-4"> + </div> + <div class="col-xs-12 col-md-4"> + </div> + </div> + </div> + <div class="col-xs-12 col-md-3"> + <h3 class="footerhead">Questions or comments?</h3> + Please feel free to <a href="https://www.gentoo.org/inside-gentoo/contact/">contact us</a>. + </div> + </div> + <div class="row"> + <div class="col-xs-2 col-sm-3 col-md-2"> + <ul class="footerlinks three-icons"> + <li><a href="https://twitter.com/gentoo" title="@Gentoo on Twitter"><span class="fa fa-twitter fa-fw"></span></a></li> + <li><a href="https://plus.google.com/+Gentoo" title="+Gentoo on Google+"><span class="fa fa-google-plus fa-fw"></span></a></li> + <li><a href="https://www.facebook.com/gentoo.org" title="Gentoo on Facebook"><span class="fa fa-facebook fa-fw"></span></a></li> + </ul> + </div> + <div class="col-xs-10 col-sm-9 col-md-10"> + <strong>© 2001–2016 Gentoo Foundation, Inc.</strong><br> + <small> + Gentoo is a trademark of the Gentoo Foundation, Inc. + The contents of this document, unless otherwise expressly stated, are licensed under the + <a href="https://creativecommons.org/licenses/by-sa/3.0/" rel="license">CC-BY-SA-3.0</a> license. + The <a href="https://www.gentoo.org/inside-gentoo/foundation/name-logo-guidelines.html">Gentoo Name and Logo Usage Guidelines</a> apply. + </small> + </div> + </div> + </div> +</footer> +<script type="text/javascript"> + var _paq = _paq || []; + _paq.push(['disableCookies']); + _paq.push(['trackPageView']); + _paq.push(['enableLinkTracking']); + (function() { + var u="//piwik.gentoo.org/"; + _paq.push(['setTrackerUrl', u+'piwik.php']); + _paq.push(['setSiteId', 8]); + var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; + g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); + })(); +</script> +<noscript><p><img src="//piwik.gentoo.org/piwik.php?idsite=8" style="border:0;" alt="" /></p></noscript> +</body> +</html> diff --git a/app/views/layouts/mailer.html.erb b/app/views/layouts/mailer.html.erb new file mode 100644 index 0000000..991cf0f --- /dev/null +++ b/app/views/layouts/mailer.html.erb @@ -0,0 +1,5 @@ +<html> + <body> + <%= yield %> + </body> +</html> diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb new file mode 100644 index 0000000..37f0bdd --- /dev/null +++ b/app/views/layouts/mailer.text.erb @@ -0,0 +1 @@ +<%= yield %> diff --git a/app/views/packages/_changed_package.html.erb b/app/views/packages/_changed_package.html.erb new file mode 100644 index 0000000..2e917e7 --- /dev/null +++ b/app/views/packages/_changed_package.html.erb @@ -0,0 +1,71 @@ +<% unless version.nil? %> +<li class="list-group-item kk-package-detailed"> + <div class="row"> + <div class="col-xs-12 col-md-6"> + <h4 class="stick-top"><%= link_to package.atom, slf(package_path(package.atom)) %></h4> + <div class="kk-package-detailed-toolbox"> + <div class="btn-group"> + <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + <span class="fa fa-fw fa-navicon"></span> + </button> + <ul class="dropdown-menu dropdown-menu-right"> + <li><a href="https://bugs.gentoo.org/buglist.cgi?quicksearch=<%= u package.atom %>" target="_blank"> + <span class="fa fa-fw fa-bug"></span> + <%= t :res_bugs %> + </a></li> + <li><a href="https://wiki.gentoo.org/index.php?title=Special%3ASearch&fulltext=Search&search=<%= u package.name %>" target="_blank"> + <span class="fa fa-fw fa-book"></span> + <%= t :res_docs %> + </a></li> + <li><a href="https://forums.gentoo.org/search.php?search_terms=all&show_results=topics&search_keywords=<%= u package.name %>&mode=results" target="_blank"> + <span class="fa fa-fw fa-comments-o"></span> + <%= t :res_forums %> + </a></li> + <li role="separator" class="divider"></li> + <li><a href="https://gitweb.gentoo.org/repo/gentoo.git/tree/<%= package.atom %>" target="_blank"> + <span class="fa fa-fw fa-code-fork"></span> + <%= t :res_repo %> + </a></li> + <li><a href="https://gitweb.gentoo.org/repo/gentoo.git/log/<%= package.atom %>?showmsg=1" target="_blank"> + <span class="fa fa-fw fa-history"></span> + <%= t :res_log %> + </a></li> + <li><a href="https://gitweb.gentoo.org/repo/gentoo.git/atom/<%= package.atom %>?h=master" target="_blank"> + <span class="fa fa-fw fa-rss"></span> + <%= t :res_feed %> + </a></li> + <li role="separator" class="divider"></li> + <li><a href="http://www.portagefilelist.de/site/query/listPackageVersions/?category=<%= package.category %>&package=<%= package.name %>&do#result" target="_blank"> + <span class="fa fa-fw fa-files-o"></span> + <%= t :res_installed_files %> <small>(via PFL<span class="fa fa-fw fa-external-link-square"></span>)</small> + </a></li> + </ul> + </div> + </div> + <%= package.description %> + <br> + <small class="text-muted"> + <% unless change.arches == nil or change.arches.empty? %> + <%= t :added_keywords, keywords: change.arches.join(', ') %> + <% end %> + </small> + <% unless (changelog_entry = matching_changelog_entry(change)).nil? %> + <div class="kk-inline-changelog-entry"> + <a href="<%= gitweb_commit_url(changelog_entry[:id]) %>" title="<%= t :git_commit %>"> + <span class="octicon octicon-git-pull-request"></span> + <span class="kk-commit-message"> + <%= changelog_entry[:message].lines.first %> + </span> + </a> + </div> + <% end %> + </div> + <div class="col-xs-12 col-md-6"> + <small class="text-muted pull-right"> + <%= i18n_date(change.created_at) %> + </small> + <%= render partial: 'packages/version_card', object: version, as: 'version' %> + </div> + </div> +</li> +<% end %> diff --git a/app/views/packages/_changelog.html.erb b/app/views/packages/_changelog.html.erb new file mode 100644 index 0000000..c469a50 --- /dev/null +++ b/app/views/packages/_changelog.html.erb @@ -0,0 +1,19 @@ +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Changelog</h3> + </div> + <ul class="list-group" id="changelog-container"> + <li class="list-group-item kk-panel-content-sorry"> + <span class="fa fa-refresh fa-spin fa-3x"></span> + <noscript> + <br><br> + <%= t :changelog_error %> + <br><br> + <a href="https://gitweb.gentoo.org/repo/gentoo.git/log/<%= @package.atom %>?showmsg=1" class="btn btn-default"> + <span class="fa fa-fw fa-history"></span> + <%= t :view_git_changelog %> + </a> + </noscript> + </li> + </ul> +</div> diff --git a/app/views/packages/_changelog_entry.html.erb b/app/views/packages/_changelog_entry.html.erb new file mode 100644 index 0000000..6b7b1da --- /dev/null +++ b/app/views/packages/_changelog_entry.html.erb @@ -0,0 +1,31 @@ +<li class="list-group-item"> + <strong><%= annotate_bugs changelog[:message].lines.first %></strong> + <br> + <div class="kk-byline"> + <%= mail_to changelog[:email], changelog[:author] %>, + <%= i18n_date(changelog[:date]) %>, + commit <%= link_to_gitweb_commit changelog[:id]%> + </div> + + <table class="table table-condensed kk-changelog-diffstat"> + <% unless changelog[:files][:added].empty? %> + <tr class="success"> + <td class="kk-changelog-diffstat-icon"><span class="octicon octicon-diff-added"></span></td> + <td><%= safe_join(changelog[:files][:added].map {|f| link_to_gitweb_ebuild_diff(f, changelog[:id], @package.category, @package.name) }, ', ') %></td> + </tr> + <% end %> + <% unless changelog[:files][:modified].empty? %> + <tr class="warning"> + <td class="kk-changelog-diffstat-icon"><span class="octicon octicon-diff-modified"></span></td> + <td><%= safe_join(changelog[:files][:modified].map {|f| link_to_gitweb_ebuild_diff(f, changelog[:id], @package.category, @package.name) }, ', ') %></td> + </tr> + <% end %> + <% unless changelog[:files][:deleted].empty? %> + <tr class="danger"> + <td class="kk-changelog-diffstat-icon"><span class="octicon octicon-diff-removed"></span></td> + <td><%= safe_join(changelog[:files][:deleted].map {|f| link_to_gitweb_ebuild_diff(f, changelog[:id], @package.category, @package.name) }, ', ') %></td> + </tr> + <% end %> + + </table> +</li> diff --git a/app/views/packages/_herd.html.erb b/app/views/packages/_herd.html.erb new file mode 100644 index 0000000..3e0db76 --- /dev/null +++ b/app/views/packages/_herd.html.erb @@ -0,0 +1 @@ +<%= link_to_herd herd %> diff --git a/app/views/packages/_keyword_legend.html.erb b/app/views/packages/_keyword_legend.html.erb new file mode 100644 index 0000000..8c45e36 --- /dev/null +++ b/app/views/packages/_keyword_legend.html.erb @@ -0,0 +1,17 @@ +<ul class="list-group kk-keyword-legend"> + <li class="list-group-item kk-keyword-stable"> + <%= keyword_icon_tag :stable %> <%= t :legend_stable %> + </li> + <li class="list-group-item kk-keyword-testing"> + <%= keyword_icon_tag :testing %> <%= t :legend_testing %> + </li> + <li class="list-group-item kk-keyword-unavailable"> + <%= keyword_icon_tag :unavailable %> <%= t :legend_unavailable %> + </li> + <li class="list-group-item kk-keyword-masked"> + <%= keyword_icon_tag :masked %> <%= t :legend_masked %> + </li> + <li class="list-group-item kk-keyword-unknown"> + <span class="kk-octicon-spacer"></span> <%= t :legend_unknown %> + </li> +</ul> diff --git a/app/views/packages/_maintainer.html.erb b/app/views/packages/_maintainer.html.erb new file mode 100644 index 0000000..9f89c7c --- /dev/null +++ b/app/views/packages/_maintainer.html.erb @@ -0,0 +1 @@ +<%= mail_to maintainer['email'], maintainer['name'], title: maintainer['email'] %>
\ No newline at end of file diff --git a/app/views/packages/_maintainer_needed_notice.html.erb b/app/views/packages/_maintainer_needed_notice.html.erb new file mode 100644 index 0000000..8359547 --- /dev/null +++ b/app/views/packages/_maintainer_needed_notice.html.erb @@ -0,0 +1,7 @@ +<% if package.needs_maintainer? %> + <div class="alert alert-info"> + <strong><span class="fa fa-fw fa-wrench"></span> This package needs a new maintainer!</strong><br> + If you are interested in helping with the maintenance of <%= package.name %>, please get in touch with our + <a href="https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers" class="alert-link">Proxy Maintainers team</a>. + </div> +<% end %>
\ No newline at end of file diff --git a/app/views/packages/_maintainer_spacer.html.erb b/app/views/packages/_maintainer_spacer.html.erb new file mode 100644 index 0000000..4bb959b --- /dev/null +++ b/app/views/packages/_maintainer_spacer.html.erb @@ -0,0 +1 @@ +<%= ', ' %>
\ No newline at end of file diff --git a/app/views/packages/_mask.html.erb b/app/views/packages/_mask.html.erb new file mode 100644 index 0000000..b76a103 --- /dev/null +++ b/app/views/packages/_mask.html.erb @@ -0,0 +1,30 @@ +<li class="list-group-item kk-mask"> + <strong class="kk-mask-reason text-danger"><%= annotate_bugs(mask['reason']) %></strong> + + <div class="kk-mask-details"> + <!--<div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + Affected architectures + </div> + <div class="col-xs-12 col-md-9 kk-mask-atoms"> + <%# mask['arch'] %> + </div> + </div>--> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <%= t :mask_packages %> + </div> + <div class="col-xs-12 col-md-9 kk-mask-atoms"> + <%= mask['atoms'].join ', ' %> + </div> + </div> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <%= t :mask_author %> + </div> + <div class="col-xs-12 col-md-9"> + <%= mask['author'] %> <span class="text-muted">(<%= mask['date'] %>)</span> + </div> + </div> + </div> +</li> diff --git a/app/views/packages/_masks.html.erb b/app/views/packages/_masks.html.erb new file mode 100644 index 0000000..89bf166 --- /dev/null +++ b/app/views/packages/_masks.html.erb @@ -0,0 +1,10 @@ +<% unless (_masks = filter_masks(versions)).empty? %> +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :box_masks %></h3> + </div> + <ul class="list-group"> + <%= render partial: 'mask', collection: _masks.to_a, as: 'mask' %> + </ul> +</div> +<% end %> diff --git a/app/views/packages/_metadata.html.erb b/app/views/packages/_metadata.html.erb new file mode 100644 index 0000000..426afd9 --- /dev/null +++ b/app/views/packages/_metadata.html.erb @@ -0,0 +1,87 @@ +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :box_metadata %></h3> + </div> + <ul class="list-group kk-metadata-list"> + <% if package.homepage.size > 1 %> + <li class="kk-metadata-item list-group-item"> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <span class="fa fa-fw fa-home"></span> + <%= t :other_homepages %> + </div> + <div class="col-xs-12 col-md-9"> + <% package.homepage[1..-1].each do |hp| %> + <%= link_to hp, hp, rel: 'nofollow' %> + <% end %> + </div> + </div> + </li> + <% end %> + <% if package.longdescription %> + <li class="kk-metadata-item list-group-item"> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <span class="fa fa-fw fa-info"></span> + <%= t :longdescription %> + </div> + <div class="col-xs-12 col-md-9"> + <%= package.longdescription %> + </div> + </div> + </li> + <% end %> + <% if package.has_useflags? %> + <li class="kk-metadata-item list-group-item"> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <span class="fa fa-fw fa-sliders"></span> + <%= t :use_flags %> + </div> + <div class="col-xs-12 col-md-9"> + <%= render partial: 'metadata_use', object: package.useflags, as: 'useflags' %> + </div> + </div> + </li> + <% end %> + <% if package.license %> + <li class="kk-metadata-item list-group-item"> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <span class="fa fa-fw fa-legal"></span> + <%= t :license %> + </div> + <div class="col-xs-12 col-md-9"> + <%= annotate_license_str package.license %> + </div> + </div> + </li> + <% end %> + <% if package.herds and package.herds.size > 0 %> + <li class="kk-metadata-item list-group-item"> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <span class="fa fa-fw fa-group"></span> + <%= t :herds %> + </div> + <div class="col-xs-12 col-md-9"> + <%= render partial: 'herd', collection: package.herds.sort, as: 'herd', spacer_template: 'maintainer_spacer' %> + </div> + </div> + </li> + <% end %> + <% if package.maintainers and package.maintainers.size > 0 %> + <li class="kk-metadata-item list-group-item"> + <div class="row"> + <div class="col-xs-12 col-md-3 kk-metadata-key"> + <span class="fa fa-fw fa-user"></span> + <%= t :maintainers %> + </div> + <div class="col-xs-12 col-md-9"> + <%= render partial: 'maintainer', collection: package.maintainers, as: 'maintainer', spacer_template: 'maintainer_spacer' %> + </div> + </div> + </li> + <% end %> + </ul> +</div> diff --git a/app/views/packages/_metadata_use.html.erb b/app/views/packages/_metadata_use.html.erb new file mode 100644 index 0000000..d33b751 --- /dev/null +++ b/app/views/packages/_metadata_use.html.erb @@ -0,0 +1,14 @@ +<% unless useflags['local'].empty? %> + <span class="kk-useflag-group"><%= t :local_use_flags %></span> + <%= render partial: 'useflag', object: useflags['local'], as: 'useflags' %> +<% end %> +<% unless useflags['global'].empty? %> + <span class="kk-useflag-group"><%= t :global_use_flags %></span> + <%= render partial: 'useflag', object: useflags['global'], as: 'useflags' %> +<% end %> +<% unless useflags['use_expand'].empty? %> + <% useflags['use_expand'].each_pair do |flag, values| %> + <span class="kk-useflag-group"><%= t :use_expand_flag, flag: flag %></span> + <%= render partial: 'useflag', object: values, as: 'useflags' %> + <% end %> +<% end %> diff --git a/app/views/packages/_package_header.html.erb b/app/views/packages/_package_header.html.erb new file mode 100644 index 0000000..5b8ae08 --- /dev/null +++ b/app/views/packages/_package_header.html.erb @@ -0,0 +1,31 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:packages), categories_path %></li> + <li><%= link_to package.category_model.name, category_path(package.category_model) %></li> + <li class="active"><%= package.name %></li> +</ol> + +<div class="row"> + <div class="col-md-4"> + <h1 class="stick-top kk-package-title" id="package-title" data-atom="<%= package.atom %>" data-category="<%= package.category %>" data-name="<%= package.name %>"> + <small class="kk-package-cat"><%= package.category_model.name %>/</small> + <div> + <span class="mega-octicon octicon-package kk-package-icon"></span> + <div class="kk-package-name"><%= package.name %></div> + </div> + </h1> + </div> + <div class="col-md-8"> + <p class="lead kk-package-maindesc"> + <%= package.description %> + </p> + + <p class="kk-package-homepage"> + <% if '' != package.homepage.first %> + <span class="fa fa-fw fa-home"></span> <%= link_to package.homepage.first, package.homepage.first, rel: 'nofollow' %> + <% end %> + </p> + </div> +</div> + +<hr> diff --git a/app/views/packages/_package_result_row.html.erb b/app/views/packages/_package_result_row.html.erb new file mode 100644 index 0000000..fd6c903 --- /dev/null +++ b/app/views/packages/_package_result_row.html.erb @@ -0,0 +1,4 @@ +<a class="list-group-item" href="<%= slf package_path package %>"> + <h3 class="kk-search-result-header"><span class="text-muted"><%= package.category %>/</span><%= package.name %></h3> + <%= package.description %> +</a>
\ No newline at end of file diff --git a/app/views/packages/_removal_notice.html.erb b/app/views/packages/_removal_notice.html.erb new file mode 100644 index 0000000..20d226b --- /dev/null +++ b/app/views/packages/_removal_notice.html.erb @@ -0,0 +1,5 @@ +<div class="alert alert-danger"> + <strong><span class="fa fa-fw fa-warning"></span> This package is masked and could be removed soon!</strong><br> + The mask comment indicates that this package is scheduled for removal from our package repository.<br> + Please review the mask information below for more details. +</div>
\ No newline at end of file diff --git a/app/views/packages/_resources.html.erb b/app/views/packages/_resources.html.erb new file mode 100644 index 0000000..51576a9 --- /dev/null +++ b/app/views/packages/_resources.html.erb @@ -0,0 +1,35 @@ +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t(:resources) %></h3> + </div> + <div class="list-group"> + <a href="https://bugs.gentoo.org/buglist.cgi?quicksearch=<%= u package.atom %>" class="list-group-item" target="_blank"> + <span class="fa fa-fw fa-bug"></span> + <%= t :res_bugs %> + </a> + <a href="https://wiki.gentoo.org/index.php?title=Special%3ASearch&fulltext=Search&search=<%= u package.name %>" class="list-group-item" target="_blank"> + <span class="fa fa-fw fa-book"></span> + <%= t :res_docs %> + </a> + <a href="https://forums.gentoo.org/search.php?search_terms=all&show_results=topics&search_keywords=<%= u package.name %>&mode=results" class="list-group-item" target="_blank"> + <span class="fa fa-fw fa-comments-o"></span> + <%= t :res_forums %> + </a> + <a href="https://gitweb.gentoo.org/repo/gentoo.git/tree/<%= package.atom %>" class="list-group-item" target="_blank"> + <span class="fa fa-fw fa-code-fork"></span> + <%= t :res_repo %> + </a> + <a href="https://gitweb.gentoo.org/repo/gentoo.git/log/<%= package.atom %>?showmsg=1" class="list-group-item" target="_blank"> + <span class="fa fa-fw fa-history"></span> + <%= t :res_log %> + </a> + <a href="https://gitweb.gentoo.org/repo/gentoo.git/atom/<%= package.atom %>?h=master" class="list-group-item" target="_blank"> + <span class="fa fa-fw fa-rss"></span> + <%= t :res_feed %> + </a> + <a href="http://www.portagefilelist.de/site/query/listPackageVersions/?category=<%= package.category %>&package=<%= package.name %>&do#result" class="list-group-item" target="_blank"> + <span class="fa fa-fw fa-files-o"></span> + <%= t :res_installed_files %> <small>(via PFL<span class="fa fa-fw fa-external-link-square"></span>)</small> + </a> + </div> +</div> diff --git a/app/views/packages/_useflag.html.erb b/app/views/packages/_useflag.html.erb new file mode 100644 index 0000000..a60e589 --- /dev/null +++ b/app/views/packages/_useflag.html.erb @@ -0,0 +1,5 @@ +<ul class="kk-useflag-container <%= useflags.size > 10 ? 'kk-useflag-container-many' : 'kk-useflag-container-few' %>"> +<% useflags.each_pair do |flag, flag_data| %> + <li class="kk-useflag"><%= link_to flag, useflag_path(id: flag_data['name']), :title => strip_tags(flag_data['description']), 'data-toggle' => 'tooltip' %></li> +<% end %> +</ul> diff --git a/app/views/packages/_version_card.html.erb b/app/views/packages/_version_card.html.erb new file mode 100644 index 0000000..7045617 --- /dev/null +++ b/app/views/packages/_version_card.html.erb @@ -0,0 +1,14 @@ +<div class="kk-version-card"> + <p><strong><%= version.version %></strong><%= version_slot version.slot %> <%= version_labels version %></p> + <p> + <%= keyword_label version, 'amd64' %> + <%= keyword_label version, 'x86' %> + <%= keyword_label version, 'alpha' %> + <%= keyword_label version, 'arm' %> + <%= keyword_label version, 'hppa' %> + <%= keyword_label version, 'ia64' %> + <%= keyword_label version, 'ppc' %> + <%= keyword_label version, 'ppc64' %> + <%= keyword_label version, 'sparc' %> + </p> +</div> diff --git a/app/views/packages/_version_row.html.erb b/app/views/packages/_version_row.html.erb new file mode 100644 index 0000000..d30d974 --- /dev/null +++ b/app/views/packages/_version_row.html.erb @@ -0,0 +1,12 @@ +<tr> + <td class="kk-version kk-cell-sep-right"><strong><%= version.version %></strong><%= version_slot version.slot, version.subslot %> <%= version_labels version %></td> + <%= keyword_cell version, 'amd64' %> + <%= keyword_cell version, 'x86', true %> + <%= keyword_cell version, 'alpha' %> + <%= keyword_cell version, 'arm' %> + <%= keyword_cell version, 'hppa' %> + <%= keyword_cell version, 'ia64' %> + <%= keyword_cell version, 'ppc' %> + <%= keyword_cell version, 'ppc64' %> + <%= keyword_cell version, 'sparc' %> +</tr> diff --git a/app/views/packages/_versions.html.erb b/app/views/packages/_versions.html.erb new file mode 100644 index 0000000..3484dc4 --- /dev/null +++ b/app/views/packages/_versions.html.erb @@ -0,0 +1,38 @@ +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"> + <%= t :box_versions %> + <span class="pull-right"> + <a href="<%= about_help_path(anchor: 'keyword-legend') %>" aria-label="<%= t :show_table_legend %>" title="<%= t :legend %>" class="kk-box-meta-link" tabindex="0" role="button" id="kk-keyword-legend-btn"> + <span class="fa fa-fw fa-question-circle"></span> + </a> + </span> + </h3> + </div> + <div class="table-responsive"> + <table class="table table-bordered kk-versions-table"> + <thead> + <tr> + <th class="kk-version kk-cell-sep-right"><%= t :version %></th> + <th class="kk-keyword-header kk-keyword">amd64</th> + <th class="kk-keyword-header kk-keyword kk-cell-sep-right">x86</th> + <th class="kk-keyword-header kk-keyword">alpha</th> + <th class="kk-keyword-header kk-keyword">arm</th> + <th class="kk-keyword-header kk-keyword">hppa</th> + <th class="kk-keyword-header kk-keyword">ia64</th> + <th class="kk-keyword-header kk-keyword">ppc</th> + <th class="kk-keyword-header kk-keyword">ppc64</th> + <th class="kk-keyword-header kk-keyword">sparc</th> + </tr> + </thead> + + <tbody> + <%= render partial: 'version_row', collection: versions, as: 'version' %> + </tbody> + </table> + </div> +</div> + +<script id="kk-keyword-legend-text" type="text/template"> +<%= render partial: 'keyword_legend' %> +</script> diff --git a/app/views/packages/added.html.erb b/app/views/packages/added.html.erb new file mode 100644 index 0000000..97d5cb6 --- /dev/null +++ b/app/views/packages/added.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:packages), categories_path %></li> + <li class="active"><%= t :added_packages %></li> +</ol> + +<h1> + <%= t :added_packages %> + <%= feed_icon added_packages_path(format: :atom) %> +</h1> + +<% cache("added-full-#{@changes.hash}") do %> + <ul class="list-group"> + <% @changes.each do |change| + _package = Package.find_by(:atom, cp_to_atom(change.category, change.package)) %> + <%= render partial: 'changed_package', object: change, as: 'change', locals: { package: _package, version: _package.latest_version } %> + <% end %> + </ul> +<% end %> + +<% content_for :head do %> + <%= alternate_feed_link(added_packages_url(format: :atom), t(:atom_feed)) %> +<% end %> diff --git a/app/views/packages/changelog.html.erb b/app/views/packages/changelog.html.erb new file mode 100644 index 0000000..df9242e --- /dev/null +++ b/app/views/packages/changelog.html.erb @@ -0,0 +1,12 @@ +<% if @changelog.empty? -%> + <li class="list-group-item kk-panel-content-sorry"> + <%= t :changelog_empty %> + <br><br> + <a href="https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/<%= @package.atom %>/ChangeLog?view=markup" class="btn btn-default"> + <span class="fa fa-fw fa-history"></span> + <%= t :view_cvs_changelog %> + </a> + </li> +<% else %> + <%= render partial: 'changelog_entry', collection: @changelog, as: 'changelog' %> +<% end %> diff --git a/app/views/packages/changelog.json.jbuilder b/app/views/packages/changelog.json.jbuilder new file mode 100644 index 0000000..a88a2db --- /dev/null +++ b/app/views/packages/changelog.json.jbuilder @@ -0,0 +1 @@ +json.changes @changelog diff --git a/app/views/packages/keyworded.html.erb b/app/views/packages/keyworded.html.erb new file mode 100644 index 0000000..ff5b60c --- /dev/null +++ b/app/views/packages/keyworded.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:packages), categories_path %></li> + <li class="active"><%= t :keyworded_packages %></li> +</ol> + +<h1> + <%= t :keyworded_packages %> + <%= feed_icon keyworded_packages_path(format: :atom) %> +</h1> + +<% cache("keyworded-full-#{@changes.hash}") do %> + <ul class="list-group"> + <% @changes.each do |change| + _package = Package.find_by(:atom, cp_to_atom(change.category, change.package)) %> + <%= render partial: 'changed_package', object: change, as: 'change', locals: { package: _package, version: _package.version(change.version) } %> + <% end %> + </ul> +<% end %> + +<% content_for :head do %> + <%= alternate_feed_link(keyworded_packages_url(format: :atom), t(:atom_feed)) %> +<% end %> diff --git a/app/views/packages/resolve.json.jbuilder b/app/views/packages/resolve.json.jbuilder new file mode 100644 index 0000000..73ffdbb --- /dev/null +++ b/app/views/packages/resolve.json.jbuilder @@ -0,0 +1,4 @@ +json.packages @packages do |package| + json.extract! package, :atom, :description + json.href slf package_url(id: package.atom) +end diff --git a/app/views/packages/search.html.erb b/app/views/packages/search.html.erb new file mode 100644 index 0000000..fe77dd3 --- /dev/null +++ b/app/views/packages/search.html.erb @@ -0,0 +1,38 @@ +<h1 class="first-header">Search Results <small>for <%= params[:q] %></small></h1> + +<% if @packages.size > 0 %> +<div class="panel panel-default"> + <div class="panel-heading"> + Results <%= @offset + 1 %>—<%= [@offset + Package.default_search_size, @packages.total].min %> of <%= @packages.total %> + </div> + <div class="list-group"> + <%= render partial: 'package_result_row', collection: @packages, as: 'package' %> + </div> + <div class="panel-footer"> + <div class="btn-group" role="group" aria-label="Result navigation"> + <%= link_to '< Prev', search_packages_path(q: params[:q], o: [@offset - Package.default_search_size, 0].max), class: 'btn btn-default' + (@offset > 0 ? '' : ' disabled') %> + <%= link_to 'Next >', search_packages_path(q: params[:q], o: @offset + Package.default_search_size), class: 'btn btn-default ' + ((@offset + Package.default_search_size) > @packages.total ? 'disabled' : '') %> + </div> + </div> +</div> +<% else %> +<div class="jumbotron"> + <h2 class="site-welcome stick-top">Nothing found. :( Try again?</h2> + + <form action="<%= search_packages_path %>" method="get"> + <div class="typeahead-container"> + <div class="typeahead-field"> + <span class="typeahead-query"> + <input id="q" name="q" type="search" autocomplete="off" placeholder="<%= t :find_packages %>" aria-label="<%= t :find_packages %>" value="<%= params[:q] %>"> + </span> + <span class="typeahead-button"> + <button type="submit" title="<%= t :find %>" aria-label="<%= t :find %>"> + <span class="typeahead-search-icon"></span><span class="sr-only"><%= t :find %></span> + </button> + </span> + </div> + </div> + </form> +</div> +<%= javascript_include_tag 'index/typeahead.js' %> +<% end %> diff --git a/app/views/packages/show.html.erb b/app/views/packages/show.html.erb new file mode 100644 index 0000000..bc649ba --- /dev/null +++ b/app/views/packages/show.html.erb @@ -0,0 +1,28 @@ +<% cache "#{@package.atom}-#{@package.metadata_hash}" do %> +<%= render partial: 'package_header', object: @package, as: 'package' %> + +<div class="row"> + <div class="col-md-9"> + <%= render partial: 'versions', object: @package.versions, as: 'versions' %> + + <% if @package.removal_pending? %> + <%= render partial: 'removal_notice', object: @package, as: 'package' %> + <% end %> + + <%= render partial: 'maintainer_needed_notice', object: @package, as: 'package' %> + <%= render partial: 'metadata', object: @package, as: 'package', locals: { latest_version: @package.versions.first} %> + + <%= render partial: 'masks', object: @package.versions, as: 'versions' %> + + <%= render partial: 'changelog', object: @changelog, as: 'changelog' %> + </div> + <div class="col-md-3"> + <%= render partial: 'resources', object: @package, as: 'package' %> + </div> +</div> + +<%= javascript_include_tag 'packages/show' %> +<% content_for :head do %> + <%= alternate_feed_link('https://gitweb.gentoo.org/repo/gentoo.git/atom/%s?h=master' % @package.atom, t(:raw_git_feed)) %> +<% end %> +<% end %> diff --git a/app/views/packages/show.json.jbuilder b/app/views/packages/show.json.jbuilder new file mode 100644 index 0000000..3b8a012 --- /dev/null +++ b/app/views/packages/show.json.jbuilder @@ -0,0 +1,43 @@ +json.extract! @package, :atom, :description +json.href slf package_url(id: @package.atom) + +json.versions @package.versions do |version| + json.version version.version + json.keywords version.keywords + json.masks version.masks +end + +json.herds @package.herds +json.maintainers @package.maintainers do |maintainer| + json.email maintainer['email'] + json.name maintainer['name'] + json.description maintainer['description'] + json.type maintainer['type'] + + if maintainer['type'] == 'project' + json.members project_members(maintainer['email']) + end +end + +json.use do + json.local @package.versions.first.useflags[:local] do |flag| + json.name flag[1][:name] + json.description strip_tags flag[1][:description] + end + + json.global @package.versions.first.useflags[:global] do |flag| + json.name flag[1][:name] + json.description strip_tags flag[1][:description] + end + + json.use_expand @package.versions.first.useflags[:use_expand] do |flag| + json.set! flag[0] do + json.array! flag[1] do |expand_flag| + json.name expand_flag[0] + json.description strip_tags expand_flag[1][:description] + end + end + end +end + +json.extract! @package, :updated_at diff --git a/app/views/packages/stable.html.erb b/app/views/packages/stable.html.erb new file mode 100644 index 0000000..7b230fe --- /dev/null +++ b/app/views/packages/stable.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:packages), categories_path %></li> + <li class="active"><%= t :stable_packages %></li> +</ol> + +<h1> + <%= t :stable_packages %> + <%= feed_icon stable_packages_path(format: :atom) %> +</h1> + +<% cache("stable-full-#{@changes.hash}") do %> + <ul class="list-group"> + <% @changes.each do |change| + _package = Package.find_by(:atom, cp_to_atom(change.category, change.package)) %> + <%= render partial: 'changed_package', object: change, as: 'change', locals: { package: _package, version: _package.version(change.version) } %> + <% end %> + </ul> +<% end %> + +<% content_for :head do %> + <%= alternate_feed_link(stable_packages_url(format: :atom), t(:atom_feed)) %> +<% end %> diff --git a/app/views/packages/suggest.json.jbuilder b/app/views/packages/suggest.json.jbuilder new file mode 100644 index 0000000..fcd8ba5 --- /dev/null +++ b/app/views/packages/suggest.json.jbuilder @@ -0,0 +1 @@ +json.results @packages, :name, :category, :description diff --git a/app/views/packages/updated.html.erb b/app/views/packages/updated.html.erb new file mode 100644 index 0000000..b774c58 --- /dev/null +++ b/app/views/packages/updated.html.erb @@ -0,0 +1,23 @@ +<ol class="breadcrumb"> + <li><a href="/">Home</a></li> + <li><%= link_to t(:packages), categories_path %></li> + <li class="active"><%= t :updated_packages %></li> +</ol> + +<h1> + <%= t :updated_packages %> + <%= feed_icon updated_packages_path(format: :atom) %> +</h1> + +<% cache("updated-full-#{@changes.hash}") do %> + <ul class="list-group"> + <% @changes.each do |change| + _package = Package.find_by(:atom, cp_to_atom(change.category, change.package)) %> + <%= render partial: 'changed_package', object: change, as: 'change', locals: { package: _package, version: _package.version(change.version) } %> + <% end %> + </ul> +<% end %> + +<% content_for :head do %> + <%= alternate_feed_link(updated_packages_url(format: :atom), t(:atom_feed)) %> +<% end %> diff --git a/app/views/useflags/_useflag_header.html.erb b/app/views/useflags/_useflag_header.html.erb new file mode 100644 index 0000000..9422fac --- /dev/null +++ b/app/views/useflags/_useflag_header.html.erb @@ -0,0 +1,5 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li><%= link_to t(:use_flags), useflags_path %></li> + <li class="active"><%= params[:id] %></li> +</ol> diff --git a/app/views/useflags/_useflag_result_row.html.erb b/app/views/useflags/_useflag_result_row.html.erb new file mode 100644 index 0000000..084669f --- /dev/null +++ b/app/views/useflags/_useflag_result_row.html.erb @@ -0,0 +1,4 @@ +<a class="list-group-item" href="<%= slf useflag_path useflag[:name] %>"> + <h3 class="kk-search-result-header"><%= useflag[:name] %></h3> + <%= useflag[:description] %> +</a> diff --git a/app/views/useflags/index.html.erb b/app/views/useflags/index.html.erb new file mode 100644 index 0000000..ac006f2 --- /dev/null +++ b/app/views/useflags/index.html.erb @@ -0,0 +1,45 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li class="active"><%= t :use_flags %></li> +</ol> + +<h1><%= t :use_flags %></h1> + +<div class="alert alert-info"> + Looking for the full USE flag index? + You can find it on our <a href="https://www.gentoo.org/support/use-flags/" class="alert-link">main website</a>. +</div> + +<form action="<%= search_useflags_path %>" method="get" class="useflag-search"> + <div class="typeahead-container"> + <div class="typeahead-field"> + <span class="typeahead-query"> + <input id="q" name="q" type="search" autocomplete="off" placeholder="Find USE flags"> + </span> + <span class="typeahead-button"> + <button type="submit"> + <span class="typeahead-search-icon"></span> + </button> + </span> + </div> + </div> +</form> + +<br> + +<div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Most widely used USE flags</h3> + </div> + <noscript> + <div class="panel-body kk-panel-content-sorry"> + This feature requires JavaScript to work. + </div> + </noscript> + <div class="panel-body kk-useflag-bubble-container" id="bubble-placeholder" style="display: none;"> + </div> +</div> + +<%= javascript_include_tag 'useflags/typeahead.js' %> +<%= javascript_include_tag 'd3.min.js' %> +<%= javascript_include_tag 'useflags/render-bubbles.js' %> diff --git a/app/views/useflags/popular.json.jbuilder b/app/views/useflags/popular.json.jbuilder new file mode 100644 index 0000000..d174c9e --- /dev/null +++ b/app/views/useflags/popular.json.jbuilder @@ -0,0 +1,10 @@ +json.name 'flags' +json.children @popular_useflags do |flag| + # Very cheap filter for USE_EXPAND flags + next if flag['key'].include? '_' + next if flag['key'] =~ /^(doc|test|debug)$/ + + json.name flag['key'] + json.size flag['doc_count'] + json.children nil +end diff --git a/app/views/useflags/search.html.erb b/app/views/useflags/search.html.erb new file mode 100644 index 0000000..061405b --- /dev/null +++ b/app/views/useflags/search.html.erb @@ -0,0 +1,16 @@ +<ol class="breadcrumb"> + <li><a href="/"><%= t :home %></a></li> + <li><%= link_to t(:use_flags), useflags_path %></li> + <li class="active">Search</li> +</ol> + +<h1>USE Flag Search Results <small>for <%= params[:q] %></small></h1> + +<div class="panel panel-default"> + <div class="panel-heading"> + Results + </div> + <div class="list-group"> + <%= render partial: 'useflag_result_row', collection: @flags, as: 'useflag' %> + </div> +</div> diff --git a/app/views/useflags/show.html.erb b/app/views/useflags/show.html.erb new file mode 100644 index 0000000..b5b8bb6 --- /dev/null +++ b/app/views/useflags/show.html.erb @@ -0,0 +1,61 @@ +<%= render partial: 'useflag_header' %> + +<div class="row"> + <div class="col-md-4"> + <h1 class="stick-top"> + <span class="fa fa-fw fa-sliders"></span> + <%= params[:id] %> + </h1> + </div> + <div class="col-md-8"> + <% unless @useflags[:global].empty? %> + <div class="kk-useflag-group"><%= t :global_use_flag %></div> + <p class="lead" style="margin: 0;"> + <%= @useflags[:global].first.description %> + </p> + <% else %> + <div class="kk-useflag-group"><%= t :local_use_flag %></div> + <% end %> + </div> +</div> + +<hr> + +<% unless @useflags[:local].empty? %> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :local_use_package_list, flag: params[:id] %></h3> + </div> + <div class="table-responsive"> + <table class="table"> + <thead> + <th><%= t :package %></th> + <th><%= t :flag_description, flag: params[:id] %></th> + </thead> + <tbody> + <% @useflags[:local].keys.sort.each do |package| %> + <tr> + <th class="kk-nobreak-cell"><%= link_to package, slf(package_path(package)) %></th> + <td><%= annotate_useflag_description @useflags[:local][package].description %></td> + </tr> + <% end %> + </tbody> + </table> + </div> + </div> +<% end %> + +<% unless @useflags[:global].empty? %> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :providing_packages_list, flag: params[:id], count: @packages.count %></h3> + </div> + <div class="panel-body"> + <ul class="kk-col-list kk-3col-list kk-useflag-listing"> + <% @packages.each do |package| %> + <li><%= link_to_package package['key'] %></li> + <% end %> + </ul> + </div> + </div> +<% end %> diff --git a/app/views/useflags/show_use_expand.html.erb b/app/views/useflags/show_use_expand.html.erb new file mode 100644 index 0000000..45c2779 --- /dev/null +++ b/app/views/useflags/show_use_expand.html.erb @@ -0,0 +1,57 @@ +<%= render partial: 'useflag_header' %> + +<div class="row"> + <div class="col-md-4"> + <h1 class="stick-top"> + <span class="fa fa-fw fa-sliders"></span> + <%= @useflag.strip_use_expand %> + </h1> + </div> + <div class="col-md-8"> + <div class="kk-useflag-group"><%= t :named_use_expand_flag, name: @use_expand_flag_name %></div> + <p class="lead" style="margin: 0;"> + <%= @useflags[:use_expand].first.description %> + </p> + </div> +</div> + +<hr> + +<% unless @use_expand_flags.empty? %> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :other_use_expand_list, flag: @use_expand_flag_name %></h3> + </div> + <div class="table-responsive"> + <table class="table"> + <thead> + <th><%= t :use_flag %></th> + <th><%= t :description %></th> + </thead> + <tbody> + <% @use_expand_flags.each do |flag| %> + <tr> + <th class="kk-nobreak-cell"><%= link_to flag.name, slf(useflag_path(flag.name)) %></th> + <td><%= flag.description %></td> + </tr> + <% end %> + </tbody> + </table> + </div> + </div> +<% end %> + +<% unless @packages.empty? %> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title"><%= t :providing_packages_list, flag: params[:id], count: @packages.count %></h3> + </div> + <div class="panel-body"> + <ul class="kk-3col-list kk-useflag-listing"> + <% @packages.each do |package| %> + <li><%= link_to_package package['key'] %></li> + <% end %> + </ul> + </div> + </div> +<% end %> diff --git a/app/views/useflags/suggest.json.jbuilder b/app/views/useflags/suggest.json.jbuilder new file mode 100644 index 0000000..5e1571f --- /dev/null +++ b/app/views/useflags/suggest.json.jbuilder @@ -0,0 +1 @@ +json.results @flags |