Skip to content

Commit dc228fa

Browse files
author
Ilja Bobkevic
committed
Merge branch 'ui-upload'
* ui-upload: Add extra fields for metadata model Add private endorsement tag Copy over initial upload ui by Gerard Hickey
2 parents 48001d8 + 499b41c commit dc228fa

18 files changed

+189
-71
lines changed

lib/puppet_forge_server.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ module Backends
5151
module Models
5252
autoload :Builder, 'puppet_forge_server/models/builder'
5353
autoload :Metadata, 'puppet_forge_server/models/metadata'
54+
autoload :Module, 'puppet_forge_server/models/module'
5455
autoload :Dependency, 'puppet_forge_server/models/dependency'
5556
end
5657

lib/puppet_forge_server/api/v1/modules.rb

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,26 @@ module Modules
2020
def get_modules(metadata)
2121
modules = {}
2222
metadata.each do |element|
23-
if modules[element[:metadata].name]
24-
if max_version(modules[element[:metadata].name][:version], element[:metadata].version) == element[:metadata].version
25-
modules[element[:metadata].name][:desc] = element[:metadata].description
26-
modules[element[:metadata].name][:version] = element[:metadata].version
27-
modules[element[:metadata].name][:project_url] = element[:metadata].project_page
23+
if modules[element.metadata.name]
24+
if max_version(modules[element.metadata.name][:version], element.metadata.version) == element.metadata.version
25+
modules[element.metadata.name][:desc] = element.metadata.description
26+
modules[element.metadata.name][:version] = element.metadata.version
27+
modules[element.metadata.name][:project_url] = element.metadata.project_page
2828
end
29-
modules[element[:metadata].name][:releases] = (modules[element[:metadata].name][:releases] + releases_version(element[:metadata])).uniq.sort_by { |r| Gem::Version.new(r[:version]) }.reverse
30-
modules[element[:metadata].name][:tag_list] = (modules[element[:metadata].name][:tag_list] + element[:tags]).uniq.compact
29+
modules[element.metadata.name][:releases] = (modules[element.metadata.name][:releases] + releases_version(element.metadata)).uniq.sort_by { |r| Gem::Version.new(r[:version]) }.reverse
30+
modules[element.metadata.name][:tag_list] = (modules[element.metadata.name][:tag_list] + element.tags).uniq.compact
3131
else
32-
name = element[:metadata].name.sub(/^[^-]+-/, '')
33-
modules[element[:metadata].name] = {
34-
:author => element[:metadata].author,
35-
:full_name => element[:metadata].name.sub('-', '/'),
32+
name = element.metadata.name.sub(/^[^-]+-/, '')
33+
modules[element.metadata.name] = {
34+
:author => element.metadata.author,
35+
:full_name => element.metadata.name.sub('-', '/'),
3636
:name => name,
37-
:desc => element[:metadata].description,
38-
:version => element[:metadata].version,
39-
:project_url => element[:metadata].project_page,
40-
:releases => releases_version(element[:metadata]),
41-
:tag_list => element[:tags] ? element[:tags] : [element[:metadata].author, name],
37+
:desc => element.metadata.description,
38+
:version => element.metadata.version,
39+
:project_url => element.metadata.project_page,
40+
:releases => releases_version(element.metadata),
41+
:tag_list => element.tags ? element.tags : [element.metadata.author, name],
42+
:private => element.private
4243
}
4344
end
4445
end

lib/puppet_forge_server/api/v1/releases.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ module Releases
1919
def get_releases(metadata)
2020
metadata.map do |element|
2121
{
22-
:file => "/api/v1/files#{element[:path]}",
23-
:version => element[:metadata].version,
24-
:dependencies => element[:metadata].dependencies.map {|dep| [dep.name, dep.version_requirement]}.compact
22+
:file => "/api/v1/files#{element.path}",
23+
:version => element.metadata.version,
24+
:dependencies => element.metadata.dependencies.map {|dep| [dep.name, dep.version_requirement]}.compact
2525
}
2626
end.uniq{|r| r[:version]}.sort_by {|r| Gem::Version.new(r[:version])}
2727
end

lib/puppet_forge_server/api/v3/modules.rb

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,24 @@ module Modules
2121
def get_modules(metadata)
2222
modules = {}
2323
metadata.each do |element|
24-
if modules[element[:metadata].name]
25-
if max_version(modules[element[:metadata].name][:current_release][:version], element[:metadata].version) == element[:metadata].version
24+
if modules[element.metadata.name]
25+
if max_version(modules[element.metadata.name][:current_release][:version], element.metadata.version) == element.metadata.version
2626
# Saving curret release tags for merging with new max version current release
27-
tags = modules[element[:metadata].name][:current_release][:tags]
28-
modules[element[:metadata].name][:current_release] = get_releases([element]).first
29-
modules[element[:metadata].name][:current_release][:tags] = (modules[element[:metadata].name][:current_release][:tags] + tags).uniq.compact
27+
tags = modules[element.metadata.name][:current_release][:tags]
28+
modules[element.metadata.name][:current_release] = get_releases([element]).first
29+
modules[element.metadata.name][:current_release][:tags] = (modules[element.metadata.name][:current_release][:tags] + tags).uniq.compact
3030
end
31-
modules[element[:metadata].name][:releases] = (modules[element[:metadata].name][:releases] + releases_version(element[:metadata])).uniq.sort_by { |r| Gem::Version.new(r[:version]) }.reverse
31+
modules[element.metadata.name][:releases] = (modules[element.metadata.name][:releases] + releases_version(element.metadata)).uniq.sort_by { |r| Gem::Version.new(r[:version]) }.reverse
3232
else
33-
modules[element[:metadata].name] = {
34-
:uri => "/v3/modules/#{element[:metadata].name}",
35-
:name => element[:metadata].name.sub(/^[^-]+-/, ''),
36-
:homepage_url => element[:metadata].project_page,
37-
:issues_url => element[:metadata].issues_url,
38-
:releases => releases_version(element[:metadata]),
33+
modules[element.metadata.name] = {
34+
:uri => "/v3/modules/#{element.metadata.name}",
35+
:name => element.metadata.name.sub(/^[^-]+-/, ''),
36+
:homepage_url => element.metadata.project_page,
37+
:issues_url => element.metadata.issues_url,
38+
:releases => releases_version(element.metadata),
3939
:current_release => get_releases([element]).first,
40-
:owner => {:username => element[:metadata].author, :uri => "/v3/users/#{element[:metadata].author}"}
40+
:owner => {:username => element.metadata.author, :uri => "/v3/users/#{element.metadata.author}"},
41+
:private => element.private
4142
}
4243
end
4344
end

lib/puppet_forge_server/api/v3/releases.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@ module PuppetForgeServer::Api::V3
1818
module Releases
1919
def get_releases(metadata)
2020
metadata.map do |element|
21-
name = element[:metadata].name.sub(/^[^-]+-/, '')
22-
author = element[:metadata].name.split('-')[0]
21+
name = element.metadata.name.sub(/^[^-]+-/, '')
22+
author = element.metadata.name.split('-')[0]
2323
{
24-
:uri => "/v3/releases/#{element[:metadata].name}-#{element[:metadata].version}",
24+
:uri => "/v3/releases/#{element.metadata.name}-#{element.metadata.version}",
2525
:module => {
26-
:uri => "/v3/modules/#{element[:metadata].name}",
26+
:uri => "/v3/modules/#{element.metadata.name}",
2727
:name => name,
2828
:owner => {:username => author, :uri => "/v3/users/#{author}"}
2929
},
30-
:metadata => element[:metadata].to_hash,
31-
:version => element[:metadata].version,
32-
:tags => element[:tags] ? element[:tags] : [element[:metadata].author, name],
33-
:file_uri => "/v3/files#{element[:path]}",
34-
:file_md5 => element[:checksum],
35-
:deleted_at => element[:deleted_at]
30+
:metadata => element.metadata.to_hash,
31+
:version => element.metadata.version,
32+
:tags => element.tags ? element.tags : [element.metadata.author, name],
33+
:file_uri => "/v3/files#{element.path}",
34+
:file_md5 => element.checksum,
35+
:deleted_at => element.deleted_at
3636
}
3737
end.uniq{|r| r[:version]}.sort_by { |r| Gem::Version.new(r[:version]) }
3838
end

lib/puppet_forge_server/app/frontend.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,16 @@ def initialize(root, http_client = PuppetForgeServer::Http::HttpClient.new)
4747
haml :modules, :locals => {:query => query, :modules => modules}
4848
end
4949

50+
get '/upload' do
51+
haml :upload, :locals => {:upload_status => ''}
52+
end
53+
54+
post '/upload' do
55+
halt(200, haml(:upload, :locals => {:upload_status => 'No file selected'})) unless params[:file]
56+
response = @http_client.post_file("#{request.base_url}/v2/releases", params[:file])
57+
haml :upload, :locals => {:upload_status => response.code}
58+
end
59+
5060
private
5161
def get(relative_url)
5262
begin

lib/puppet_forge_server/app/public/css/puppetlabs.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,11 @@ span.release-info {
244244
font-size: 0.9em;
245245
color: #6c6d6d;
246246
}
247+
li.private {
248+
background-image: url("/img/endorsement-private.png");
249+
background-repeat: no-repeat;
250+
background-position: right top;
251+
}
247252
p {
248253
margin: 0;
249254
}
3.32 KB
Loading

lib/puppet_forge_server/app/views/layout.haml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
%ul.nav.navbar-nav.navbar-right
4040
%li.active
4141
%a{:href => 'https://forge.puppetlabs.com/', :target => 'official-puppet-forge'} Official Puppet Forge
42+
%li
43+
%a{:href => '/upload'}
44+
Upload Puppet Module
4245
%li
4346
%a{:href => 'https://github.com/unibet/puppet-forge-server', :target => 'puppet-forge-server-github'} Help
4447
%script{ :src => 'https://code.jquery.com/jquery-2.1.3.min.js' }

lib/puppet_forge_server/app/views/modules.haml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@
1818
.list-container
1919
%ul.list.modules
2020
- modules.each do |element|
21-
%li.clearfix
21+
- if element['private']
22+
%li.clearfix.private
23+
- else
24+
%li.clearfix
2225
.col
2326
%h3= "#{element['owner']['username']}/#{element['name']}"
2427
%p= element['current_release']['metadata']['summary']

0 commit comments

Comments
 (0)