Add favorites to experiment table [SCI-11851]

This commit is contained in:
Andrej 2025-05-07 16:19:53 +02:00
parent 32ecaecf1d
commit ed282a94bc
4 changed files with 25 additions and 3 deletions

View file

@ -27,6 +27,7 @@
@updateDueDate="updateDueDate"
@updateStartDate="updateStartDate"
@changeStatus="changeStatus"
@updateFavorite="updateFavorite"
>
<template #card="data">
<ExperimentCard :params="data.params" :dtComponent="data.dtComponent" ></ExperimentCard>
@ -85,6 +86,7 @@ import StatusRenderer from './renderers/status.vue';
import DueDateRenderer from '../shared/datatable/renderers/date.vue';
import StartDateRenderer from '../shared/datatable/renderers/date.vue';
import ExperimentCard from './card.vue';
import FavoriteRenderer from '../shared/datatable/renderers/favorite.vue';
export default {
name: 'ExperimentsList',
@ -100,7 +102,8 @@ export default {
ExperimentCard,
StatusRenderer,
StartDateRenderer,
DueDateRenderer
DueDateRenderer,
FavoriteRenderer
},
props: {
dataSource: { type: String, required: true },
@ -142,6 +145,17 @@ export default {
cellRenderer: NameRenderer,
minWidth: 150
},
{
field: 'favorite',
headerComponentParams: {
html: '<div class="sn-icon sn-icon-star-filled"></div>'
},
headerName: this.i18n.t('experiments.table.column.favorite'),
sortable: true,
cellRenderer: FavoriteRenderer,
minWidth: 80,
notSelectable: true
},
{
field: 'code',
headerName: this.i18n.t('experiments.id'),
@ -399,6 +413,12 @@ export default {
},
updateStartDate(value, params) {
this.updateField(params.data.urls.update, { start_on: this.formatDate(value) });
},
updateFavorite(value, params) {
const url = value ? params.data.urls.favorite : params.data.urls.unfavorite;
axios.post(url).then(() => {
this.updateTable();
});
}
}
};

View file

@ -9,7 +9,7 @@ module Lists
attributes :name, :code, :created_at, :updated_at, :workflow_img, :description, :completed_tasks,
:total_tasks, :archived_on, :urls, :sa_description, :default_public_user_role_id, :team, :permissions,
:top_level_assignable, :hidden, :archived, :project_id, :due_date_cell, :start_date_cell, :status_cell
:top_level_assignable, :hidden, :archived, :project_id, :due_date_cell, :start_date_cell, :status_cell, :favorite
def created_at
I18n.l(object.created_at, format: :full_date)

View file

@ -95,7 +95,8 @@ module Lists
description: 'experiments.description',
start_date: 'start_on',
due_date: 'due_date',
status: 'status'
status: 'status',
favorite: 'favorite'
}
end

View file

@ -1827,6 +1827,7 @@ en:
no_due_date_placeholder: '+ Add due date'
no_due_date: 'not set'
no_start_date_placeholder: "+ Add starting date"
favorite: 'Favorites'
status:
not_started: 'Not started'
started: 'In progress'