feat: add "display_order" column to coder_parameter to keep parameters sorted in UI (#8227)

This commit is contained in:
Marcin Tojek
2023-06-30 12:41:55 +02:00
committed by GitHub
parent 72a48bee52
commit 6639c69fad
23 changed files with 969 additions and 482 deletions

View File

@ -2410,6 +2410,12 @@ func (q *fakeQuerier) GetTemplateVersionParameters(_ context.Context, templateVe
}
parameters = append(parameters, param)
}
sort.Slice(parameters, func(i, j int) bool {
if parameters[i].DisplayOrder != parameters[j].DisplayOrder {
return parameters[i].DisplayOrder < parameters[j].DisplayOrder
}
return strings.ToLower(parameters[i].Name) < strings.ToLower(parameters[j].Name)
})
return parameters, nil
}
@ -3934,6 +3940,7 @@ func (q *fakeQuerier) InsertTemplateVersionParameter(_ context.Context, arg data
ValidationMax: arg.ValidationMax,
ValidationMonotonic: arg.ValidationMonotonic,
Required: arg.Required,
DisplayOrder: arg.DisplayOrder,
LegacyVariableName: arg.LegacyVariableName,
}
q.templateVersionParameters = append(q.templateVersionParameters, param)

View File

@ -461,6 +461,7 @@ CREATE TABLE template_version_parameters (
required boolean DEFAULT true NOT NULL,
legacy_variable_name text DEFAULT ''::text NOT NULL,
display_name text DEFAULT ''::text NOT NULL,
display_order integer DEFAULT 0 NOT NULL,
CONSTRAINT validation_monotonic_order CHECK ((validation_monotonic = ANY (ARRAY['increasing'::text, 'decreasing'::text, ''::text])))
);
@ -494,6 +495,8 @@ COMMENT ON COLUMN template_version_parameters.legacy_variable_name IS 'Name of t
COMMENT ON COLUMN template_version_parameters.display_name IS 'Display name of the rich parameter';
COMMENT ON COLUMN template_version_parameters.display_order IS 'Specifies the order in which to display parameters in user interfaces.';
CREATE TABLE template_version_variables (
template_version_id uuid NOT NULL,
name text NOT NULL,

View File

@ -0,0 +1 @@
ALTER TABLE template_version_parameters DROP COLUMN display_order;

View File

@ -0,0 +1,4 @@
ALTER TABLE template_version_parameters ADD COLUMN display_order integer NOT NULL DEFAULT 0;
COMMENT ON COLUMN template_version_parameters.display_order
IS 'Specifies the order in which to display parameters in user interfaces.';

View File

@ -1631,6 +1631,8 @@ type TemplateVersionParameter struct {
LegacyVariableName string `db:"legacy_variable_name" json:"legacy_variable_name"`
// Display name of the rich parameter
DisplayName string `db:"display_name" json:"display_name"`
// Specifies the order in which to display parameters in user interfaces.
DisplayOrder int32 `db:"display_order" json:"display_order"`
}
type TemplateVersionVariable struct {

View File

@ -4153,7 +4153,7 @@ func (q *sqlQuerier) UpdateTemplateScheduleByID(ctx context.Context, arg UpdateT
}
const getTemplateVersionParameters = `-- name: GetTemplateVersionParameters :many
SELECT template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max, validation_error, validation_monotonic, required, legacy_variable_name, display_name FROM template_version_parameters WHERE template_version_id = $1
SELECT template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max, validation_error, validation_monotonic, required, legacy_variable_name, display_name, display_order FROM template_version_parameters WHERE template_version_id = $1 ORDER BY display_order ASC, LOWER(name) ASC
`
func (q *sqlQuerier) GetTemplateVersionParameters(ctx context.Context, templateVersionID uuid.UUID) ([]TemplateVersionParameter, error) {
@ -4182,6 +4182,7 @@ func (q *sqlQuerier) GetTemplateVersionParameters(ctx context.Context, templateV
&i.Required,
&i.LegacyVariableName,
&i.DisplayName,
&i.DisplayOrder,
); err != nil {
return nil, err
}
@ -4214,7 +4215,8 @@ INSERT INTO
validation_monotonic,
required,
legacy_variable_name,
display_name
display_name,
display_order
)
VALUES
(
@ -4233,8 +4235,9 @@ VALUES
$13,
$14,
$15,
$16
) RETURNING template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max, validation_error, validation_monotonic, required, legacy_variable_name, display_name
$16,
$17
) RETURNING template_version_id, name, description, type, mutable, default_value, icon, options, validation_regex, validation_min, validation_max, validation_error, validation_monotonic, required, legacy_variable_name, display_name, display_order
`
type InsertTemplateVersionParameterParams struct {
@ -4254,6 +4257,7 @@ type InsertTemplateVersionParameterParams struct {
Required bool `db:"required" json:"required"`
LegacyVariableName string `db:"legacy_variable_name" json:"legacy_variable_name"`
DisplayName string `db:"display_name" json:"display_name"`
DisplayOrder int32 `db:"display_order" json:"display_order"`
}
func (q *sqlQuerier) InsertTemplateVersionParameter(ctx context.Context, arg InsertTemplateVersionParameterParams) (TemplateVersionParameter, error) {
@ -4274,6 +4278,7 @@ func (q *sqlQuerier) InsertTemplateVersionParameter(ctx context.Context, arg Ins
arg.Required,
arg.LegacyVariableName,
arg.DisplayName,
arg.DisplayOrder,
)
var i TemplateVersionParameter
err := row.Scan(
@ -4293,6 +4298,7 @@ func (q *sqlQuerier) InsertTemplateVersionParameter(ctx context.Context, arg Ins
&i.Required,
&i.LegacyVariableName,
&i.DisplayName,
&i.DisplayOrder,
)
return i, err
}

View File

@ -16,7 +16,8 @@ INSERT INTO
validation_monotonic,
required,
legacy_variable_name,
display_name
display_name,
display_order
)
VALUES
(
@ -35,8 +36,9 @@ VALUES
$13,
$14,
$15,
$16
$16,
$17
) RETURNING *;
-- name: GetTemplateVersionParameters :many
SELECT * FROM template_version_parameters WHERE template_version_id = $1;
SELECT * FROM template_version_parameters WHERE template_version_id = $1 ORDER BY display_order ASC, LOWER(name) ASC;