Skip to content

Commit

Permalink
Refactor render_dialog for change_devel_request_dialog
Browse files Browse the repository at this point in the history
Instead of performing an Ajax call that answers with a Javascript code
that updates the view to create and show the modal we now render the
modal if needed and show it via Javascript locally.

This is better because we only need one SQL query more and we save a XHR
request.

Co-authored-by: David Kang <dkang@suse.com>
  • Loading branch information
Moises Deniz Aleman and David Kang committed Sep 20, 2018
1 parent 3c28941 commit 15273c4
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 36 deletions.
3 changes: 0 additions & 3 deletions src/api/app/controllers/webui/request_controller.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
class Webui::RequestController < Webui::WebuiController
helper 'webui/package'
include Webui2::RequestController

before_action :require_login, except: [:show, :sourcediff, :diff]
# requests do not really add much value for our page rank :)
Expand Down Expand Up @@ -255,8 +254,6 @@ def change_devel_request_dialog
@current_devel_project = @package.develpackage.project.name
end

return if switch_to_webui2

render_dialog
end

Expand Down
7 changes: 0 additions & 7 deletions src/api/app/controllers/webui2/request_controller.rb

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
%li.list-inline-item
= link_to(request_change_devel_dialog_path(project: project, package: package), remote: true, class: 'nav-link') do
= link_to('#', class: 'nav-link', data: { toggle: 'modal', target: '#change-devel-request-modal' }) do
%i.fas.fa-exchange-alt.text-primary
Request devel project change
2 changes: 2 additions & 0 deletions src/api/app/views/webui2/webui/package/show.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,5 @@
- else
= render partial: 'webui2/webui/request/add_role_request_dialog', locals: { project: @project, package: @package }
= render partial: 'webui2/webui/request/delete_request_dialog', locals: { project: @project, package: @package }
- if @package.develpackage
= render partial: 'webui2/webui/request/change_devel_request_dialog', locals: { project: @project, package: @package }
Original file line number Diff line number Diff line change
@@ -1,29 +1,33 @@
.modal-dialog.modal-dialog-centered{ role: 'document' }
.modal-content
= form_tag(change_devel_request_path(project: project, package: package), method: :post) do
.modal-header
%h5.modal-title Change Devel Project Request
.modal-body
- if current_devel_project && current_devel_package
%p
-# FIXME: get rid of this helper
Do you want to request to change the devel project for #{package_link(package)} from
\#{project_or_package_link(project: current_devel_project)}?
- else
%p
-# FIXME: get rid of this helper
Do you want to request to set the devel project for #{package_link(package)}?
.form-group
- current_devel_package = package.develpackage.name
- current_devel_project = package.develpackage.project.name

.modal.fade#change-devel-request-modal{ tabindex: -1, role: 'dialog', aria: { labelledby: 'change-devel-request-modal-label', hidden: true } }
.modal-dialog.modal-dialog-centered{ role: 'document' }
.modal-content
= form_tag(change_devel_request_path(project: project, package: package), method: :post) do
.modal-header
%h5.modal-title Change Devel Project Request
.modal-body
- if current_devel_project && current_devel_package
= label_tag(:devel_project, 'New Devel project (leave free to delete the current one):')
%p
-# FIXME: get rid of this helper
Do you want to request to change the devel project for #{package_link(package)} from
\#{project_or_package_link(project: current_devel_project)}?
- else
= label_tag(:devel_project, 'Devel project:')
= text_field_tag(:devel_project, '', required: true, class: 'form-control')
.form-group
= label_tag(:description, 'Description:')
= text_area_tag(:description, '', row: 3, class: 'form-control')
.modal-footer
= render partial: 'webui2/shared/dialog_action_buttons'
%p
-# FIXME: get rid of this helper
Do you want to request to set the devel project for #{package_link(package)}?
.form-group
- if current_devel_project && current_devel_package
= label_tag(:devel_project, 'New Devel project (leave free to delete the current one):')
- else
= label_tag(:devel_project, 'Devel project:')
= text_field_tag(:devel_project, '', required: true, class: 'form-control')
.form-group
= label_tag(:description, 'Description:')
= text_area_tag(:description, '', row: 3, class: 'form-control')
.modal-footer
= render partial: 'webui2/shared/dialog_action_buttons'

:javascript
autocompleteDevelProject('#{autocomplete_projects_path}');
2 changes: 1 addition & 1 deletion src/api/spec/bootstrap/features/webui/packages_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@

click_link('Request devel project change')

within('#modal') do
within('#change-devel-request-modal') do
fill_in('devel_project', with: third_project.name)
fill_in('description', with: 'Hey, why not?')
click_button('Accept')
Expand Down

0 comments on commit 15273c4

Please sign in to comment.