Fix multiple load of modal

This commit is contained in:
Mojca Lorber 2019-10-16 12:41:47 +02:00 committed by Urban Rotnik
parent f1487561be
commit fe8829b592
6 changed files with 79 additions and 73 deletions

View file

@ -71,11 +71,11 @@ var RepositoryColumns = (function() {
$('.repository-columns-body').off('click', '.edit-repo-column').on('click', '.edit-repo-column', function() {
var editUrl = $(this).closest('li').attr('data-edit-url');
$.get(editUrl, function(data) {
$(data.html).appendTo('body');
$(modalID).find('.modal-content').html(data.html);
$(modalID).modal('show');
initColumnTypeSelector();
$('#repository_column_data_type').val($(modalID).attr('data-edit-type')).trigger('click');
$('#repository_column_data_type').val($(modalID).find('#new_repository_column').attr('data-edit-type')).trigger('click');
$('#repository_column_data_type').prop('disabled', true);
setTimeout(function() {
$('#repository_column_name').focus();
@ -178,7 +178,7 @@ var RepositoryColumns = (function() {
$('.repository-columns-header').off('click', '#new-repo-column-modal').on('click', '#new-repo-column-modal', function() {
var modalUrl = $(this).attr('data-modal-url');
$.get(modalUrl, function(data) {
$(data.html).appendTo('body');
$(modalID).find('.modal-content').html(data.html);
$(modalID).modal('show');
initColumnTypeSelector();

View file

@ -21,7 +21,7 @@ class RepositoryColumnsController < ApplicationController
format.json do
render json: {
html: render_to_string(
partial: 'repository_columns/manage_column_modal.html.erb'
partial: 'repository_columns/manage_column_modal_body.html.erb'
)
}
end
@ -77,7 +77,7 @@ class RepositoryColumnsController < ApplicationController
format.json do
render json: {
html: render_to_string(
partial: 'repository_columns/manage_column_modal.html.erb'
partial: 'repository_columns/manage_column_modal_body.html.erb'
)
}
end

View file

@ -2,76 +2,9 @@
id="manageRepositoryColumn"
tabindex="-1"
role="dialog"
aria-labelledby="manangeRepositoryColumnLabel"
data-edit-type="<%= @repository_column.data_type unless @repository_column.new_record? %>">
aria-labelledby="manangeRepositoryColumnLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">
<% if @repository_column.new_record? %>
<%= t("libraries.manange_modal_column.new.title") %>
<% else %>
<%= t("libraries.manange_modal_column.edit.title", name: @repository_column.name) %>
<% end %>
</h4>
</div>
<div class="modal-body">
<div class="form-horizontal" id="new_repository_column">
<div class="form-group">
<label class="control-label col-sm-3" for="repository_column_name">
<%= t('libraries.manange_modal_column.name') %>
</label>
<div class="col-sm-9">
<input placeholder="<%= t('libraries.manange_modal_column.name_placeholder') %>"
class="form-control"
type="text"
name="repository_column[name]"
id="repository_column_name">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3" for="repository_column_data_type">
<%= t('libraries.manange_modal_column.colum_type') %>
</label>
<div class="col-sm-9">
<select class="form-control" name="repository_column[data_type]" id="repository_column_data_type">
<option data-create-url="<%= repository_create_text_path(@repository) %>" value="RepositoryTextValue">
<%= t('libraries.manange_modal_column.select.repository_text_value') %>
</option>
<option data-create-url="<%= repository_create_date_path(@repository) %>" value="RepositoryDateValue">
<%= t('libraries.manange_modal_column.select.repository_date_value') %>
</option>
<option data-create-url="<%= repository_create_list_path(@repository) %>" value="RepositoryListValue">
<%= t('libraries.manange_modal_column.select.repository_list_value') %>
</option>
<option data-create-url="<%= repository_create_asset_path(@repository) %>" value="RepositoryAssetValue">
<%= t('libraries.manange_modal_column.select.repository_asset_value') %>
</option>
</select>
</div>
</div>
<hr/>
<span style="display: none" class="column-type" data-column-type="RepositoryTextValue">
<%= render partial: "repository_columns/manage_column_partials/text.html.erb" %>
</span>
<span style="display: none" class="column-type" data-column-type="RepositoryAssetValue">
<%= render partial: "repository_columns/manage_column_partials/asset.html.erb" %>
</span>
<span style="display: none" class="column-type" data-column-type="RepositoryListValue">
<%= render partial: "repository_columns/manage_column_partials/list.html.erb" %>
</span>
<span style="display: none" class="column-type" data-column-type="RepositoryDateValue">
<%= render partial: "repository_columns/manage_column_partials/date.html.erb" %>
</span>
</div>
</div>
<div class="modal-footer">
<button id="new-repo-column-submit" class="btn btn-success" data-action="save">
<%= t("libraries.manange_modal_column.new.button") %>
</button>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,68 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">
<% if @repository_column.new_record? %>
<%= t("libraries.manange_modal_column.new.title") %>
<% else %>
<%= t("libraries.manange_modal_column.edit.title", name: @repository_column.name) %>
<% end %>
</h4>
</div>
<div class="modal-body">
<div class="form-horizontal"
id="new_repository_column"
data-edit-type="<%= @repository_column.data_type unless @repository_column.new_record? %>">
<div class="form-group">
<label class="control-label col-sm-3" for="repository_column_name">
<%= t('libraries.manange_modal_column.name') %>
</label>
<div class="col-sm-9">
<input placeholder="<%= t('libraries.manange_modal_column.name_placeholder') %>"
class="form-control"
type="text"
name="repository_column[name]"
id="repository_column_name">
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3" for="repository_column_data_type">
<%= t('libraries.manange_modal_column.colum_type') %>
</label>
<div class="col-sm-9">
<select class="form-control" name="repository_column[data_type]" id="repository_column_data_type">
<option data-create-url="<%= repository_repository_columns_text_columns_path(@repository) %>" value="RepositoryTextValue">
<%= t('libraries.manange_modal_column.select.repository_text_value') %>
</option>
<option data-create-url="<%= repository_repository_columns_date_columns_path(@repository) %>" value="RepositoryDateValue">
<%= t('libraries.manange_modal_column.select.repository_date_value') %>
</option>
<option data-create-url="<%= repository_repository_columns_list_columns_path(@repository) %>" value="RepositoryListValue">
<%= t('libraries.manange_modal_column.select.repository_list_value') %>
</option>
<option data-create-url="<%= repository_repository_columns_asset_columns_path(@repository) %>" value="RepositoryAssetValue">
<%= t('libraries.manange_modal_column.select.repository_asset_value') %>
</option>
</select>
</div>
</div>
<hr/>
<span style="display: none" class="column-type" data-column-type="RepositoryTextValue">
<%= render partial: "repository_columns/manage_column_partials/text.html.erb" %>
</span>
<span style="display: none" class="column-type" data-column-type="RepositoryAssetValue">
<%= render partial: "repository_columns/manage_column_partials/asset.html.erb" %>
</span>
<span style="display: none" class="column-type" data-column-type="RepositoryListValue">
<%= render partial: "repository_columns/manage_column_partials/list.html.erb" %>
</span>
<span style="display: none" class="column-type" data-column-type="RepositoryDateValue">
<%= render partial: "repository_columns/manage_column_partials/date.html.erb" %>
</span>
</div>
</div>
<div class="modal-footer">
<button id="new-repo-column-submit" class="btn btn-success" data-action="save">
<%= t("libraries.manange_modal_column.new.button") %>
</button>
</div>

View file

@ -60,4 +60,5 @@
</div>
</div>
<%= render partial: 'manage_column_modal' %>
<%= render partial: 'delete_column_modal' %>

View file

@ -579,6 +579,10 @@ Rails.application.routes.draw do
post 'import_records'
end
namespace :repository_columns do
resources :text_columns, only: %i(create update destroy)
resources :list_columns, only: %i(create update destroy)
resources :asset_columns, only: %i(create update destroy)
resources :date_columns, only: %i(create update destroy)
resources :status_columns, only: %i(create update destroy)
end
end