DateTime HTML and JS simplified

This commit is contained in:
Urban Rotnik 2019-11-28 15:56:34 +01:00
parent d9178f4617
commit 65d8d0e35b
11 changed files with 72 additions and 25 deletions

View file

@ -0,0 +1,17 @@
/* eslint-disable no-unused-vars */
var RepositoryDateColumnType = (function() {
return {
init: () => {},
checkValidation: () => {
return true;
},
loadParams: () => {
var isRange = $('#date-range').is(':checked');
var columnType = $('#repository-column-data-type').val();
if (isRange) {
columnType = columnType.replace('Value', 'RangeValue');
}
return { column_type: columnType };
}
};
}());

View file

@ -8,7 +8,10 @@ var RepositoryDateTimeColumnType = (function() {
loadParams: () => {
var isRange = $('#datetime-range').is(':checked');
var columnType = $('#repository-column-data-type').val();
return { range: isRange, column_type: columnType };
if (isRange) {
columnType = columnType.replace('Value', 'RangeValue');
}
return { column_type: columnType };
}
};
}());

View file

@ -0,0 +1,17 @@
/* eslint-disable no-unused-vars */
var RepositoryTimeColumnType = (function() {
return {
init: () => {},
checkValidation: () => {
return true;
},
loadParams: () => {
var isRange = $('#time-range').is(':checked');
var columnType = $('#repository-column-data-type').val();
if (isRange) {
columnType = columnType.replace('Value', 'RangeValue');
}
return { column_type: columnType };
}
};
}());

View file

@ -1,12 +1,11 @@
/* global I18n HelperModule animateSpinner RepositoryListColumnType RepositoryStatusColumnType
RepositoryDateTimeColumnType*/
/* global I18n HelperModule animateSpinner RepositoryListColumnType RepositoryStatusColumnType */
/* eslint-disable no-restricted-globals */
var RepositoryColumns = (function() {
var manageModal = '#manage-repository-column';
var columnTypeClassNames = {
RepositoryListValue: 'RepositoryListColumnType',
RepositoryStatusValue: 'RepositoryStatusColumnType',
RepositoryDateValue: 'RepositoryDateTimeColumnType',
RepositoryDateValue: 'RepositoryDateColumnType',
RepositoryDateTimeValue: 'RepositoryDateTimeColumnType',
RepositoryTimeValue: 'RepositoryDateTimeColumnType'
};
@ -204,7 +203,6 @@ var RepositoryColumns = (function() {
initManageColumnModal();
RepositoryListColumnType.init();
RepositoryStatusColumnType.init();
RepositoryDateTimeColumnType.init();
}
}
};

View file

@ -6,12 +6,11 @@ module RepositoryColumns
before_action :load_column, only: %i(update destroy)
before_action :check_create_permissions, only: :create
before_action :check_manage_permissions, only: %i(update destroy)
before_action :set_data_type, only: :create
def create
service = RepositoryColumns::CreateColumnService
.call(user: current_user, repository: @repository, team: current_team,
column_type: @column_type,
column_type: column_type_param,
params: repository_column_params)
if service.succeed?
@ -52,12 +51,8 @@ module RepositoryColumns
params.require(:repository_column).permit(:name)
end
def set_data_type
def column_type_param
params.require(:repository_column).require(:column_type)
@column_type = params.dig(:repository_column, :column_type)
@column_type.remove!('Value').concat('RangeValue') if params.dig(:repository_column, :range)
@column_type
end
end
end

View file

@ -91,13 +91,13 @@
<span style="display: none" class="column-type status-column-type" data-column-type="RepositoryStatusValue">
<%= render partial: "repository_columns/manage_column_partials/status.html.erb", locals: { column: @repository_column } %>
</span>
<span style="display: none" class="column-type status-column-type" data-column-type="RepositoryDateValue">
<%= render partial: "repository_columns/manage_column_partials/datetime.html.erb", locals: { column: @repository_column } %>
<span style="display: none" class="column-type date-column-type" data-column-type="RepositoryDateValue">
<%= render partial: "repository_columns/manage_column_partials/date.html.erb", locals: { column: @repository_column } %>
</span>
<span style="display: none" class="column-type status-column-type" data-column-type="RepositoryTimeValue">
<%= render partial: "repository_columns/manage_column_partials/datetime.html.erb", locals: { column: @repository_column } %>
<span style="display: none" class="column-type time-column-type" data-column-type="RepositoryTimeValue">
<%= render partial: "repository_columns/manage_column_partials/time.html.erb", locals: { column: @repository_column } %>
</span>
<span style="display: none" class="column-type status-column-type" data-column-type="RepositoryDateTimeValue">
<span style="display: none" class="column-type datetime-column-type" data-column-type="RepositoryDateTimeValue">
<%= render partial: "repository_columns/manage_column_partials/datetime.html.erb", locals: { column: @repository_column } %>
</span>
</div>

View file

@ -0,0 +1,10 @@
<div class="form-group">
<div class="col-sm-3"></div>
<div class="col-sm-9">
<div class="permission-selector">
<%= check_box_tag 'range', '', column&.repository_date_range_value?, { id: 'date-range', class: column.new_record? ? 'simple-checkbox' : 'simple-checkbox disabled' } %>
<span class="checkbox-label"></span>
<span class="range-label"><%= t('libraries.manange_modal_column.datetime_type.range_label') %></span>
</div>
</div>
</div>

View file

@ -1,14 +1,10 @@
<% range_type = column&.repository_date_time_range_value? ||
column&.repository_date_range_value? ||
column&.repository_time_range_value? %>
<div class="form-group">
<div class="col-sm-3"></div>
<div class="col-sm-9">
<div class="permission-selector">
<%= check_box_tag 'range', '', range_type, { id: 'datetime-range', class: column.new_record? ? 'simple-checkbox' : 'simple-checkbox disabled' } %>
<%= check_box_tag 'range', '', column&.repository_date_time_range_value?, { id: 'datetime-range', class: column.new_record? ? 'simple-checkbox' : 'simple-checkbox disabled' } %>
<span class="checkbox-label"></span>
<span class="range-label">Range</span>
<span class="range-label"><%= t('libraries.manange_modal_column.datetime_type.range_label') %></span>
</div>
</div>
</div>

View file

@ -0,0 +1,10 @@
<div class="form-group">
<div class="col-sm-3"></div>
<div class="col-sm-9">
<div class="permission-selector">
<%= check_box_tag 'range', '', column&.repository_time_range_value?, { id: 'time-range', class: column.new_record? ? 'simple-checkbox' : 'simple-checkbox disabled' } %>
<span class="checkbox-label"></span>
<span class="range-label"><%= t('libraries.manange_modal_column.datetime_type.range_label') %></span>
</div>
</div>
</div>

View file

@ -1159,6 +1159,8 @@ en:
status_type:
status_options_label: "Status options"
add_status_label: "Add status option"
datetime_type:
range_label: 'Range'
repository_columns:
head_title: '%{repository} | Manage Columns'

View file

@ -18,8 +18,7 @@ RSpec.describe RepositoryColumns::DateTimeColumnsController, type: :controller d
repository_id: repository.id,
repository_column: {
name: 'name',
column_type: 'RepositoryDateTimeValue',
range: true
column_type: 'RepositoryDateTimeValue'
}
}
end