Skip to content

Commit

Permalink
Migrate Add repository from distribution page to Bootstrap
Browse files Browse the repository at this point in the history
This is the last page that needs to be migrated related to the project
repositories.

Co-authored-by: David Kang <dkang@suse.com>
  • Loading branch information
Ana06 and DavidKang committed Dec 7, 2018
1 parent bdb27af commit 4c23197
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 2 deletions.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions src/api/app/assets/javascripts/webui2/repositories.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,16 @@ function setSpinnersForFlags() { // jshint ignore:line
icon.next().removeClass('d-none');
});
}

function setRepoCheckbox() { // jshint ignore:line
$('.repocheckbox').click(function() {
var id = $(this).attr('id');
var $form;
if($(this).is(':checked')) {
$form = $('#' + id + '_create');
} else {
$form = $('#' + id + '_destroy');
}
$form.submit();
});
}
6 changes: 6 additions & 0 deletions src/api/app/controllers/webui/repositories_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ def distributions
@distributions[dis['vendor']] << dis
end

switch_to_webui2

return unless @distributions.empty?
redirect_to(action: 'new', project: @project) && return unless User.current.is_admin?
redirect_to({ controller: 'configuration', action: 'interconnect' },
Expand Down Expand Up @@ -76,6 +78,8 @@ def create
format.js
end
end

switch_to_webui2
end

# POST project/update_target/:project
Expand Down Expand Up @@ -117,6 +121,8 @@ def destroy
format.js
end
end

switch_to_webui2
end

# GET project/repository_state/:project/:repository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@
= render partial: 'webui/package/breadcrumb_items'
- else
= render partial: 'webui/project/breadcrumb_items'

- if current_page?(repositories_path)
%li.breadcrumb-item.active{ 'aria-current' => 'page' }
Repositories
- elsif defined?(@repository) && current_page?(project_repository_state_path)
- else
%li.breadcrumb-item
= link_to 'Repositories', repositories_path
%li.breadcrumb-item.active{ 'aria-current' => 'page' }
Repository State
- if defined?(@repository) && current_page?(project_repository_state_path)
Repository State
- elsif current_page?(repositories_distributions_path)
Add from a Distribution

1 change: 1 addition & 0 deletions src/api/app/views/webui2/webui/repositories/create.js.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$('#flash').html("<%= escape_javascript(render(layout: false, partial: 'layouts/webui2/flash', object: flash)) %>");
1 change: 1 addition & 0 deletions src/api/app/views/webui2/webui/repositories/destroy.js.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$('#flash').html("<%= escape_javascript(render(layout: false, partial: 'layouts/webui2/flash', object: flash)) %>");
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
- @pagetitle = "Add Repository to #{@project}"
- @metarobots = 'noindex'

.card.mb-3
= render partial: 'webui/project/tabs', locals: { project: @project }
.card-body
%h3.mb-3 Add Repositories to #{@project}
- @distributions.each do |vendor, list|
%h6.pt-3
- if resolve_asset_path("icons/distributions-#{vendor.downcase}")
= image_tag("icons/distributions-#{vendor.downcase}")
#{vendor} distributions
.form-group.pl-3
- list.each do |distribution|
- selected = @project.has_distribution(distribution['project'], distribution['repository'])
.custom-control.custom-checkbox.custom-control-inline
= check_box_tag 'distributions[]', distribution['reponame'], selected,
id: "repo_#{replace_jquery_meta_characters(distribution['reponame'])}",
class: 'repocheckbox custom-control-input'
= label_tag :distribution_name, for: "repo_#{replace_jquery_meta_characters(distribution['reponame'])}", class: 'custom-control-label' do
= distribution['name']
- list.each do |distribution|
= form_tag({ action: :create, project: @project }, remote: true, class: 'd-none',
id: "repo_#{replace_jquery_meta_characters(distribution['reponame'])}_create") do
= hidden_field_tag 'repository', distribution['reponame']
= hidden_field_tag 'target_project', distribution['project']
= hidden_field_tag 'target_repo', distribution['repository']
- distribution['architectures'].each do |arch|
= hidden_field_tag 'architectures[]', arch

= form_tag({ action: :destroy }, remote: true, class: 'd-none',
id: "repo_#{replace_jquery_meta_characters(distribution['reponame'])}_destroy") do
= hidden_field_tag 'project', @project.name
= hidden_field_tag 'target', distribution['reponame']
%h6
= image_tag('distributions/kiwi.png', width: 40)
Kiwi image builds
.form-group.pl-3
- selected = @project.repositories.where(name: 'images').any?
.custom-control.custom-checkbox.custom-control-inline
= check_box_tag 'images', 'true', selected, id: 'repo_images', class: 'repocheckbox custom-control-input'
%label.custom-control-label{ for: 'repo_images' }
KIWI image build
%i (to be used for appliance and product builds with kiwi)
= form_tag({ action: :create_image_repository, project: @project }, remote: true, class: 'd-none', id: 'repo_images_create') do
= hidden_field_tag :repository, 'images'

= form_tag({ action: :destroy }, remote: true, class: 'd-none', id: 'repo_images_destroy') do
= hidden_field_tag :project, @project.name
= hidden_field_tag :target, 'images'

= content_for :ready_function do
setRepoCheckbox();

0 comments on commit 4c23197

Please sign in to comment.