Add link to assigned item to task for snapshots version [SCI-9689] (#6656)

This commit is contained in:
Soufiane 2023-11-22 14:53:08 +01:00 committed by GitHub
parent 23513492e7
commit bc2904823d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 26 additions and 24 deletions

View file

@ -131,7 +131,8 @@ var MyModuleRepositories = (function() {
} else { } else {
columnDefs.push({ columnDefs.push({
targets: 2, targets: 2,
className: 'item-name' className: 'item-name',
render: (data, type, row) => `<a href="${row.recordInfoUrl}" class="record-info-link">${data}</a>`,
}); });
} }
@ -182,13 +183,7 @@ var MyModuleRepositories = (function() {
targets: 0, targets: 0,
className: 'item-name', className: 'item-name',
render: function(data, type, row) { render: function(data, type, row) {
let recordName; let recordName = `<a href="${row.recordInfoUrl}" class="record-info-link">${data}</a>`;
if (row.recordInfoUrl) {
recordName = `<a href="${row.recordInfoUrl}" class="record-info-link">${data}</a>`;
} else {
recordName = `<div class="inline-block my-2 mx-0">${data}</div>`;
}
if (row.hasActiveReminders) { if (row.hasActiveReminders) {
recordName = `<div class="dropdown row-reminders-dropdown" recordName = `<div class="dropdown row-reminders-dropdown"

View file

@ -6,10 +6,12 @@ class RepositoryRowsController < ApplicationController
include RepositoryDatatableHelper include RepositoryDatatableHelper
MAX_PRINTABLE_ITEM_NAME_LENGTH = 64 MAX_PRINTABLE_ITEM_NAME_LENGTH = 64
before_action :load_repository, except: %i(print rows_to_print print_zpl before_action :load_repository, except: %i(show print rows_to_print print_zpl
validate_label_template_columns actions_toolbar) validate_label_template_columns actions_toolbar)
before_action :load_repository_row_print, only: %i(print rows_to_print print_zpl validate_label_template_columns) before_action :load_repository_row_print, only: %i(print rows_to_print print_zpl validate_label_template_columns)
before_action :load_repository_or_snapshot, only: %i(print rows_to_print print_zpl validate_label_template_columns) before_action :load_show_vars, only: %i(show)
before_action :load_repository_or_snapshot, only: %i(print rows_to_print print_zpl
validate_label_template_columns)
before_action :load_repository_row, only: %i(update update_cell assigned_task_list active_reminder_repository_cells) before_action :load_repository_row, only: %i(update update_cell assigned_task_list active_reminder_repository_cells)
before_action :check_read_permissions, except: %i(create update delete_records before_action :check_read_permissions, except: %i(create update delete_records
copy_records reminder_repository_cells copy_records reminder_repository_cells
@ -44,9 +46,6 @@ class RepositoryRowsController < ApplicationController
end end
def show def show
@repository_row = @repository.repository_rows.find_by(id: params[:id])
return render_404 unless @repository_row
respond_to do |format| respond_to do |format|
format.html do format.html do
redirect_to repository_path(@repository) redirect_to repository_path(@repository)
@ -375,6 +374,15 @@ class RepositoryRowsController < ApplicationController
render_404 unless @repository render_404 unless @repository
end end
def load_show_vars
@repository = Repository.accessible_by_teams(current_team).find_by(id: params[:repository_id])
@repository ||= RepositorySnapshot.find_by(id: params[:repository_id])
return render_404 unless @repository
@repository_row = @repository.repository_rows.eager_load(:repository_columns).find_by(id: params[:id])
render_404 unless @repository_row
end
def load_repository_row def load_repository_row
@repository_row = @repository.repository_rows.eager_load(:repository_columns).find_by(id: params[:id]) @repository_row = @repository.repository_rows.eager_load(:repository_columns).find_by(id: params[:id])
render_404 unless @repository_row render_404 unless @repository_row

View file

@ -106,6 +106,7 @@ module RepositoryDatatableHelper
DT_RowId: record.id, DT_RowId: record.id,
DT_RowAttr: { 'data-state': row_style(record) }, DT_RowAttr: { 'data-state': row_style(record) },
'0': escape_input(record.name), '0': escape_input(record.name),
recordInfoUrl: Rails.application.routes.url_helpers.repository_repository_row_path(record.repository, record),
rowRemindersUrl: rowRemindersUrl:
Rails.application.routes.url_helpers Rails.application.routes.url_helpers
.active_reminder_repository_cells_repository_repository_row_url( .active_reminder_repository_cells_repository_repository_row_url(
@ -114,11 +115,6 @@ module RepositoryDatatableHelper
) )
} }
unless record.repository.is_a?(RepositorySnapshot)
row['recordInfoUrl'] = Rails.application.routes.url_helpers.repository_repository_row_path(record.repository,
record)
end
if reminders_enabled if reminders_enabled
row['hasActiveReminders'] = record.has_active_stock_reminders || record.has_active_datetime_reminders row['hasActiveReminders'] = record.has_active_stock_reminders || record.has_active_datetime_reminders
end end

View file

@ -9,6 +9,14 @@ Canaid::Permissions.register_for(RepositoryBase) do
user.teams.include?(repository.team) || repository.shared_with?(user.current_team) user.teams.include?(repository.team) || repository.shared_with?(user.current_team)
end end
end end
can :export_repository_stock do |user, repository|
if repository.is_a?(Repository)
can_read_repository?(user, repository) && repository.has_stock_management?
else
false
end
end
end end
Canaid::Permissions.register_for(Repository) do Canaid::Permissions.register_for(Repository) do
@ -98,8 +106,4 @@ Canaid::Permissions.register_for(Repository) do
can :manage_repository_stock do |user, repository| can :manage_repository_stock do |user, repository|
RepositoryBase.stock_management_enabled? && can_manage_repository_rows?(user, repository) RepositoryBase.stock_management_enabled? && can_manage_repository_rows?(user, repository)
end end
can :export_repository_stock do |user, repository|
can_read_repository?(user, repository) && repository.has_stock_management?
end
end end

View file

@ -9,8 +9,7 @@ end
json.update_path update_cell_repository_repository_row_path(@repository, @repository_row) json.update_path update_cell_repository_repository_row_path(@repository, @repository_row)
json.permissions do json.permissions do
json.can_export_repository_stock can_export_repository_stock?(@repository_row.repository) json.can_export_repository_stock can_export_repository_stock?(@repository)
json.can_manage can_manage_repository_rows?(@repository_row.repository)
end end
json.actions do json.actions do