Fix edit mode for File and Text

This commit is contained in:
Urban Rotnik 2019-10-25 10:39:12 +02:00
parent 9e0d0d74ea
commit 24acf1f84b
9 changed files with 67 additions and 23 deletions

View file

@ -5,7 +5,7 @@ var RepositoryColumns = (function() {
function initColumnTypeSelector() {
var $manageModal = $(manageModal);
$manageModal.off('click', '#repository-column-data-type').on('click', '#repository-column-data-type', function() {
$manageModal.off('change', '#repository-column-data-type').on('change', '#repository-column-data-type', function() {
$('.column-type').hide();
$('[data-column-type="' + $(this).val() + '"]').show();
});
@ -75,6 +75,11 @@ var RepositoryColumns = (function() {
$('[data-attr="no-columns"]').remove();
}
function updateListItem(column) {
var name = column.attributes.name;
$('li[data-id=' + column.id + ']').find('span').first().text(name);
}
function initCreateSubmitAction() {
var $manageModal = $(manageModal);
$manageModal.off('click', '#new-repo-column-submit').on('click', '#new-repo-column-submit', function() {
@ -93,8 +98,23 @@ var RepositoryColumns = (function() {
function initEditSubmitAction() {
var $manageModal = $(manageModal);
$manageModal.off('click', '#new-repo-column-submit').on('click', '#new-repo-column-submit', function() {
// TODO
$manageModal.off('click', '#update-repo-column-submit').on('click', '#update-repo-column-submit', function() {
var url = $('#repository-column-data-type').find(':selected').data('edit-url');
var params = { repository_column: { name: $('#repository-column-name').val() } };
$.ajax({
url: url,
type: 'PUT',
data: params,
success: function(result) {
var data = result.data;
updateListItem(data);
HelperModule.flashAlertMsg(data.attributes.message, 'success');
$manageModal.modal('hide');
},
error: function(error) {
$('#new-repository-column').renderFormErrors('repository_column', error.responseJSON.repository_column, true);
}
});
});
}
@ -110,6 +130,9 @@ var RepositoryColumns = (function() {
if (button.data('action') === 'new') {
$('[data-column-type="RepositoryTextValue"]').show();
$('#new-repo-column-submit').show();
} else {
$('#update-repo-column-submit').show();
}
}).fail(function() {
HelperModule.flashAlertMsg(I18n.t('libraries.repository_columns.no_permissions'), 'danger');

View file

@ -14,7 +14,7 @@ module RepositoryColumns
params: repository_column_params)
if service.succeed?
render json: service.column, status: :created
render json: service.column, status: :created, creating: true
else
render json: service.errors, status: :unprocessable_entity
end
@ -28,7 +28,7 @@ module RepositoryColumns
params: repository_column_params)
if service.succeed?
render json: service.column, status: :ok
render json: service.column, status: :ok, updating: true
else
render json: service.errors, status: :unprocessable_entity
end

View file

@ -14,9 +14,7 @@ module RepositoryColumns
params: repository_column_params)
if service.succeed?
render json: service.column,
serializer: RepositoryColumnSerializer,
status: :created
render json: service.column, status: :created, creating: true
else
render json: service.errors, status: :unprocessable_entity
end
@ -30,7 +28,7 @@ module RepositoryColumns
params: repository_column_params)
if service.succeed?
render json: service.column, status: :ok
render json: service.column, status: :ok, editing: true
else
render json: service.errors, status: :unprocessable_entity
end

View file

@ -6,7 +6,11 @@ class RepositoryColumnSerializer < ActiveModel::Serializer
attributes :id, :name, :message, :edit_html_url, :update_url, :destroy_html_url
def message
I18n.t('libraries.repository_columns.create.success_flash', name: object.name)
if instance_options[:creating]
I18n.t('libraries.repository_columns.create.success_flash', name: object.name)
elsif instance_options[:editing]
I18n.t('libraries.repository_columns.update.success_flash', name: object.name)
end
end
def edit_html_url

View file

@ -21,7 +21,7 @@
class="form-control"
type="text"
name="repository_column[name]"
id="repository-column-name">
id="repository-column-name" value="<%= @repository_column.name unless @repository_column.new_record? %>">
</div>
</div>
<div class="form-group">
@ -29,17 +29,30 @@
<%= 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">
<select class="form-control" name="repository_column[data_type]" id="repository-column-data-type"
<%= 'disabled' unless @repository_column.new_record? %>>
<option data-create-url="<%= repository_repository_columns_text_columns_path(@repository) %>"
data-edit-url="<%= repository_repository_columns_text_column_path(@repository, @repository_column) unless @repository_column.new_record? %>"
value="RepositoryTextValue"
<%= 'selected' if @repository_column.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 data-create-url="<%= repository_repository_columns_status_columns_path(@repository) %>"
data-edit-url="<%= repository_repository_columns_status_column_path(@repository, @repository_column) unless @repository_column.new_record? %>"
value="RepositoryStatusValue"
<%= 'selected' if @repository_column.RepositoryStatusValue? %> >
<%= t('libraries.manange_modal_column.select.repository_status_value') %>
</option>
<option data-create-url="<%= repository_repository_columns_list_columns_path(@repository) %>" value="RepositoryListValue">
<option data-create-url="<%= repository_repository_columns_list_columns_path(@repository) %>"
data-edit-url="<%= repository_repository_columns_list_column_path(@repository, @repository_column) unless @repository_column.new_record? %>"
value="RepositoryListValue"
<%= 'selected' if @repository_column.RepositoryListValue? %> >
<%= t('libraries.manange_modal_column.select.repository_list_value') %>
</option>
<option data-create-url="<%= repository_repository_columns_asset_columns_path(@repository) %>" value="RepositoryAssetValue">
<option data-create-url="<%= repository_repository_columns_asset_columns_path(@repository) %>"
data-edit-url="<%= repository_repository_columns_asset_column_path(@repository, @repository_column) unless @repository_column.new_record? %>"
value="RepositoryAssetValue"
<%= 'selected' if @repository_column.RepositoryAssetValue? %> >
<%= t('libraries.manange_modal_column.select.repository_asset_value') %>
</option>
</select>
@ -56,13 +69,16 @@
<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 style="display: none" class="column-type" data-column-type="RepositoryStatusValue">
<%= render partial: "repository_columns/manage_column_partials/status.html.erb" %>
</span>
</div>
</div>
<div class="modal-footer">
<button id="new-repo-column-submit" class="btn btn-success" data-action="save">
<button id="new-repo-column-submit" class="btn btn-success" data-action="save" style="display: none;">
<%= t("libraries.manange_modal_column.new.button") %>
</button>
<button id="update-repo-column-submit" class="btn btn-success" data-action="save" style="display: none;">
<%= t("libraries.manange_modal_column.edit.button") %>
</button>
</div>

View file

@ -1 +1 @@
<%= 'asset-test' %>
<%# TO DO: add mandatory checkbox %>

View file

@ -0,0 +1 @@
status

View file

@ -1135,6 +1135,7 @@ en:
select:
repository_text_value: "Text"
repository_date_value: "Date"
repository_status_value: "Status"
repository_list_value: "Dropdown"
repository_asset_value: "File"
new:
@ -1142,6 +1143,7 @@ en:
button: "Save column"
edit:
title: "Edit %{name} Column"
button: "Update column"
repository_columns:
head_title: '%{repository} | Manage Columns'

View file

@ -182,8 +182,8 @@ ALTER SEQUENCE public.activities_id_seq OWNED BY public.activities.id;
CREATE TABLE public.ar_internal_metadata (
key character varying NOT NULL,
value character varying,
created_at timestamp(6) without time zone NOT NULL,
updated_at timestamp(6) without time zone NOT NULL
created_at timestamp without time zone NOT NULL,
updated_at timestamp without time zone NOT NULL
);