Merge branch 'develop' into ai-sci-4328-fix-general-css-issues-for-repositories

This commit is contained in:
aignatov-bio 2020-01-16 11:36:00 +01:00
commit 1ff0351a74
19 changed files with 66 additions and 42 deletions

View file

@ -7,7 +7,7 @@ var ListColumnHelper = (function() {
if (value && value.value) {
selectedOption = `<option value="${value.value}">${value.label}</option>`;
}
return $(`<select
return $(`<select
id="${select}"
data-placeholder = "${I18n.t('repositories.table.list.select_item')}"
data-ajax-url = "${url}"
@ -32,6 +32,7 @@ var ListColumnHelper = (function() {
dropdownSelector.init('#' + select, {
singleSelect: true,
selectAppearance: 'simple',
closeOnSelect: true,
onChange: function() {
var values = dropdownSelector.getValues('#' + select);
$hiddenField.val(values);

View file

@ -8,7 +8,7 @@ var StatusColumnHelper = (function() {
selectedOption = `<option value="${value.value}">${value.label}</option>`;
}
return $(`<select
return $(`<select
id="${select}"
data-placeholder = "${I18n.t('repositories.table.status.set_status')}"
data-ajax-url = "${url}"
@ -33,6 +33,7 @@ var StatusColumnHelper = (function() {
dropdownSelector.init('#' + select, {
singleSelect: true,
selectAppearance: 'simple',
closeOnSelect: true,
onChange: function() {
var values = dropdownSelector.getValues('#' + select);
$hiddenField.val(values);

View file

@ -143,7 +143,7 @@ $.fn.dataTable.render.editRepositoryNumberValue = function(formId, columnId, cel
type="number"
name="repository_cells[${columnId}]"
placeholder="${I18n.t('repositories.table.number.enter_number')}"
value="${$cell.find('.number-value').data('full-value')}"
value="${$cell.find('.number-value').data('value')}"
data-type="RepositoryNumberValue">
</div>`);
};

View file

@ -75,8 +75,6 @@ $.fn.dataTable.render.newRepositoryNumberValue = function(formId, columnId, $cel
placeholder="${I18n.t('repositories.table.number.enter_number')}"
data-type="RepositoryNumberValue">
</div>`);
SmartAnnotation.init($cell.find('input'));
};
$.fn.dataTable.render.newRepositoryDateTimeValue = function(formId, columnId, $cell) {

View file

@ -63,8 +63,8 @@ $.fn.dataTable.render.defaultRepositoryDateTimeValue = function() {
};
$.fn.dataTable.render.RepositoryDateTimeValue = function(data) {
return `<span data-time="${data.value.time_formatted}"
data-datetime="${data.value.datetime}"
return `<span data-time="${data.value.time_formatted}"
data-datetime="${data.value.datetime}"
data-date="${data.value.date_formatted}">${data.value.formatted}</span>`;
};
@ -73,7 +73,7 @@ $.fn.dataTable.render.defaultRepositoryTimeValue = function() {
};
$.fn.dataTable.render.RepositoryTimeValue = function(data) {
return `<span data-time="${data.value.formatted}"
return `<span data-time="${data.value.formatted}"
data-datetime="${data.value.datetime}">${data.value.formatted}</span>`;
};
@ -146,7 +146,7 @@ $.fn.dataTable.render.defaultRepositoryNumberValue = function() {
};
$.fn.dataTable.render.RepositoryNumberValue = function(data) {
return `<span class="number-value" data-full-value="${data.full_value}">
return `<span class="number-value" data-value="${data.value}">
${data.value}
</span>`;
};

View file

@ -48,13 +48,13 @@ var RepositoryDatatable = (function(global) {
if (currentMode === 'viewMode') {
$(TABLE_WRAPPER_ID).removeClass('editing');
$('#saveCancel').hide();
$('#editDeleteCopy').show();
$('#addRepositoryRecord').prop('disabled', false);
$('.dataTables_length select').prop('disabled', false);
$('#repository-acitons-dropdown').prop('disabled', false);
$('#repository-columns-dropdown').find('.dropdown-toggle').prop('disabled', false);
$('th').removeClass('disable-click');
$('.repository-row-selector').prop('disabled', false);
$('.dataTables_filter input').prop('disabled', false);
if (rowsSelected.length === 0) {
$('#exportRepositoriesButton').addClass('disabled');
$('#copyRepositoryRecords').prop('disabled', true);
@ -62,6 +62,7 @@ var RepositoryDatatable = (function(global) {
$('#deleteRepositoryRecordsButton').prop('disabled', true);
$('#assignRepositoryRecords').prop('disabled', true);
$('#unassignRepositoryRecords').prop('disabled', true);
$('#editDeleteCopy').hide();
} else {
if (rowsSelected.length === 1) {
$('#editRepositoryRecord').prop('disabled', false);
@ -73,6 +74,7 @@ var RepositoryDatatable = (function(global) {
$('#copyRepositoryRecords').prop('disabled', false);
$('#assignRepositoryRecords').prop('disabled', false);
$('#unassignRepositoryRecords').prop('disabled', false);
$('#editDeleteCopy').show();
}
} else if (currentMode === 'editMode') {
$(TABLE_WRAPPER_ID).addClass('editing');
@ -88,6 +90,7 @@ var RepositoryDatatable = (function(global) {
$('#repository-columns-dropdown').find('.dropdown-toggle').prop('disabled', true);
$('th').addClass('disable-click');
$('.repository-row-selector').prop('disabled', true);
$('.dataTables_filter input').prop('disabled', true);
}
}

View file

@ -94,16 +94,15 @@ var RepositoryDatatableRowEditor = (function() {
let $table = $(TABLE.table().node());
$table.on('ajax:success', '.repository-row-edit-form', function(ev, data) {
TABLE.ajax.reload();
HelperModule.flashAlertMsg(data.flash, 'success');
TABLE.ajax.reload(() => {
animateSpinner(null, false);
HelperModule.flashAlertMsg(data.flash, 'success');
});
});
$table.on('ajax:error', '.repository-row-edit-form', function(ev, data) {
HelperModule.flashAlertMsg(data.responseJSON.flash, 'danger');
});
$table.on('ajax:complete', '.repository-row-edit-form', function() {
animateSpinner(null, false);
HelperModule.flashAlertMsg(data.responseJSON.flash, 'danger');
});
}

View file

@ -31,6 +31,7 @@ var RepositoryChecklistColumnType = (function() {
delimiterDropdown,
dropdownOptions
);
$('.changing-existing-list-items-warning').removeClass('hidden');
initChecklistDropdown();
})
.on('change', delimiterDropdown, function() {

View file

@ -110,6 +110,7 @@ var RepositoryListColumnType = (function() {
delimiterDropdown,
dropdownOptions
);
$('.changing-existing-list-items-warning').removeClass('hidden');
})
.on('change', delimiterDropdown, function() {
refreshPreviewDropdownList(

View file

@ -380,6 +380,9 @@ var SmartAnnotation = (function() {
function init() {
$(field)
.on("reposition.atwho", function(event, flag, query) {
query.$el.find('.atwho-view').css('left', (flag.left + $(window).scrollLeft()) + 'px');
})
.atwho({
at: '@',
callbacks: {

View file

@ -78,8 +78,16 @@
padding: 5px;
}
}
}
span {
color: $brand-primary;
cursor: pointer;
&:hover {
text-decoration: underline;
}
}
}
// Text and Number field
.text-field.sci-input-container {

View file

@ -25,7 +25,7 @@ module RepositoryColumns
.call(user: current_user,
team: current_team,
column: @repository_column,
params: repository_column_params)
params: repository_column_update_params)
if service.succeed?
render json: service.column, status: :ok, editing: true
@ -67,6 +67,12 @@ module RepositoryColumns
.permit(:name, metadata: [:delimiter], repository_checklist_items_attributes: %i(data))
end
def repository_column_update_params
params
.require(:repository_column)
.permit(:name, repository_checklist_items_attributes: %i(data))
end
def delimiters
Constants::REPOSITORY_LIST_ITEMS_DELIMITERS
.split(',')

View file

@ -25,7 +25,7 @@ module RepositoryColumns
.call(user: current_user,
team: current_team,
column: @repository_column,
params: repository_column_params)
params: repository_column_update_params)
if service.succeed?
render json: service.column, status: :ok, editing: true
@ -67,6 +67,12 @@ module RepositoryColumns
.permit(:name, metadata: [:delimiter], repository_list_items_attributes: %i(data))
end
def repository_column_update_params
params
.require(:repository_column)
.permit(:name, repository_list_items_attributes: %i(data))
end
def delimiters
Constants::REPOSITORY_LIST_ITEMS_DELIMITERS
.split(',')

View file

@ -44,11 +44,9 @@ class RepositoryChecklistValue < ApplicationRecord
def self.new_with_payload(payload, attributes)
value = new(attributes)
value.repository_cell
.repository_column
.repository_checklist_items.where(id: JSON.parse(payload)).find_each do |item|
value.repository_checklist_items_values.new(repository_checklist_item: item)
end
value.repository_checklist_items = value.repository_cell
.repository_column
.repository_checklist_items.where(id: JSON.parse(payload))
value
end
end

View file

@ -2,15 +2,9 @@
module RepositoryDatatable
class RepositoryNumberValueSerializer < RepositoryBaseValueSerializer
attributes :full_value
def value
decimal_number = scope[:column].metadata.fetch('decimals') { Constants::REPOSITORY_NUMBER_TYPE_DEFAULT_DECIMALS }
BigDecimal(object.data).round(decimal_number.to_i)
end
def full_value
object.data
end
end
end

View file

@ -24,7 +24,7 @@
<div class="container-fluid">
<div class="navbar-header">
<span class="navbar-brand" title="<% t('nav.label.scinote') %>">
<%= image_tag('/images/scinote_icon.jpg', id: 'logo') %>
<%= image_tag('/images/scinote_icon.svg', id: 'logo') %>
</span>
</div>
<% if user_signed_in? %>
@ -36,15 +36,9 @@
<% end %>
</div>
</nav>
<% if flash[:error]%>
<div class="alert alert-danger alert-dismissable alert-floating">
<div class="container">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<span class="fas fa-exclamation-circle"></span>
<span><%= sanitize_input(flash[:error]) %></span>
</div>
</div>
<% end %>
<%= render partial: 'shared/flash_alerts', locals: { flash: flash, notice: notice, alert: alert } %>
<div class="container sign-in-halt-container">
<%= yield %>
</div>

View file

@ -10,7 +10,7 @@
<%= t('libraries.manange_modal_column.list_type.delimiter_label') %>
</label>
<div class="col-sm-9">
<%= select_tag('delimiter', options_for_select(delimiters, selected_delimiter), class: 'form-control delimiter') %>
<%= select_tag('delimiter', options_for_select(delimiters, selected_delimiter), class: 'form-control delimiter', disabled: !column.new_record?) %>
</div>
</div>
<div class="form-group">
@ -19,6 +19,11 @@
</label>
<div class="col-sm-9">
<%= text_area_tag 'items-textarea', column.repository_checklist_items.pluck(:data).join(selected_delimiter_char), rows: 10, class: 'form-control items-textarea' %>
<% unless column.new_record? %>
<div class="bg-danger hidden changing-existing-list-items-warning">
<%= t('libraries.manange_modal_column.change_multi_select_items_warning') %>
</div>
<% end %>
</div>
</div>
<div class="dropdown-preview">

View file

@ -10,7 +10,7 @@
<%= t('libraries.manange_modal_column.list_type.delimiter_label') %>
</label>
<div class="col-sm-9">
<%= select_tag('delimiter', options_for_select(delimiters, selected_delimiter), class: 'form-control delimiter') %>
<%= select_tag('delimiter', options_for_select(delimiters, selected_delimiter), class: 'form-control delimiter', disabled: !column.new_record?) %>
</div>
</div>
<div class="form-group">
@ -19,6 +19,11 @@
</label>
<div class="col-sm-9">
<%= text_area_tag 'items-textarea', column.repository_list_items.pluck(:data).join(selected_delimiter_char), rows: 10, class: 'form-control items-textarea' %>
<% unless column.new_record? %>
<div class="bg-danger hidden changing-existing-list-items-warning">
<%= t('libraries.manange_modal_column.change_multi_select_items_warning') %>
</div>
<% end %>
</div>
</div>
<div class="dropdown-preview">

View file

@ -1158,6 +1158,7 @@ en:
name: "Name"
colum_type: "Column type"
dropdown_item_descirption: "Dropdown items should be separated by comma."
change_multi_select_items_warning: "Be careful: changing existing list items will result in deselecting previously selected items."
select:
repository_text_value: "Text"
repository_number_value: "Number"