Add label printer modal to task [SCI-7270]

This commit is contained in:
Andrej 2022-09-29 14:43:06 +02:00
parent 31554d0fd9
commit eebdee5129
8 changed files with 61 additions and 59 deletions

View file

@ -16,13 +16,13 @@
}).on('hidden.bs.modal', function() {
$(this).remove();
});
} */
}
function getReposotryRowsIds() {
return $('[id="repository_row_ids_"]').map(function() {
return this.value;
}).get();
}
} */
$(document).on('click', '.record-info-link', function(e) {
var that = $(this);
@ -79,8 +79,14 @@
});
$(document).on('click', '.print-label-button', function() {
var selectedRows = $(this).data('rows');
PrintModalComponent.showModal = true;
PrintModalComponent.row_ids = RepositoryDatatable.selectedRows();
if (selectedRows.length) {
$('#modal-info-repository-row').modal('hide');
PrintModalComponent.row_ids = selectedRows;
} else {
PrintModalComponent.row_ids = RepositoryDatatable.selectedRows();
}
});
/*

View file

@ -5,8 +5,9 @@ class RepositoryRowsController < ApplicationController
include MyModulesHelper
MAX_PRINTABLE_ITEM_NAME_LENGTH = 64
before_action :load_repository, except: %i(show print_modal print rows_to_print print_zpl)
before_action :load_repository_or_snapshot, only: %i(print_modal print rows_to_print print_zpl)
before_action :load_repository, except: %i(show 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_repository_row, only: %i(update assigned_task_list active_reminder_repository_cells)
before_action :check_read_permissions, except: %i(show create update delete_records
copy_records reminder_repository_cells
@ -82,18 +83,17 @@ class RepositoryRowsController < ApplicationController
def validate_label_template_columns
label_template = LabelTemplate.where(team_id: current_team.id).find(params[:label_template_id])
repository_rows = @repository.repository_rows.where(id: params[:rows])
label_code = LabelTemplates::RepositoryRowService.new(label_template, repository_rows.first).render
label_code = LabelTemplates::RepositoryRowService.new(label_template, @repository_row.first).render
render json: { label_code: label_code }
rescue StandardError => e
label_code = LabelTemplates::RepositoryRowService.new(label_template, repository_rows.first, true).render
label_code = LabelTemplates::RepositoryRowService.new(label_template, @repository_row.first, true).render
render json: { error: e, label_code: label_code }, status: :unprocessable_entity
end
def print_zpl
label_template = LabelTemplate.find_by(id: params[:label_template_id])
labels = RepositoryRow.where(id: params[:repository_row_ids]).flat_map do |repository_row|
labels = @repository_row.flat_map do |repository_row|
LabelTemplates::RepositoryRowService.new(label_template,
repository_row,
true).render
@ -110,25 +110,8 @@ class RepositoryRowsController < ApplicationController
)
end
def print_modal
@repository_rows = @repository.repository_rows.where(id: params[:rows])
@printers = LabelPrinter.all
@label_templates = LabelTemplate.where(team_id: current_team).order(:name)
respond_to do |format|
format.json do
render json: {
html: render_to_string(
partial: 'repositories/print_label_modal.html.erb'
)
}
end
end
end
def rows_to_print
@repository_rows = @repository.repository_rows.where(id: params[:rows])
render json: @repository_rows, each_serializer: RepositoryRowSerializer, user: current_user
render json: @repository_row, each_serializer: RepositoryRowSerializer, user: current_user
end
def print
@ -141,7 +124,7 @@ class RepositoryRowsController < ApplicationController
label_printer = LabelPrinter.find(params[:label_printer_id])
label_template = LabelTemplate.find_by(id: params[:label_template_id])
job_ids = RepositoryRow.where(id: params[:repository_row_ids]).flat_map do |repository_row|
job_ids = @repository_row.flat_map do |repository_row|
LabelPrinters::PrintJob.perform_later(
label_printer,
LabelTemplates::RepositoryRowService.new(label_template,
@ -318,9 +301,15 @@ class RepositoryRowsController < ApplicationController
render_404 unless @repository
end
def load_repository_row_print
@repository_row = RepositoryRow.where(id: params[:rows])
render_404 unless @repository_row
end
def load_repository_or_snapshot
@repository = Repository.accessible_by_teams(current_team).find_by(id: params[:repository_id])
@repository ||= RepositorySnapshot.find_by(id: params[:repository_id])
@repository = Repository.accessible_by_teams(current_team).find_by(id: @repository_row.first.repository_id)
@repository ||= RepositorySnapshot.find_by(id: @repository_row.first.repository_id)
render_404 unless @repository
end

View file

@ -10,6 +10,7 @@ function initPrintModalComponent() {
window.PrintModalComponent = new Vue({
el: '.print-label-modal-container',
name: 'PrintModalComponent',
components: {
'print-modal-container': PrintModalContainer
},

View file

@ -190,12 +190,12 @@
printer_name: this.selectedPrinter.attributes.name,
number_of_copies: this.copies,
label_template_id: this.selectedTemplate.id,
repository_row_ids: this.row_ids
rows: this.row_ids
}
);
} else {
$.post(this.urls.print, {
repository_row_ids: this.row_ids,
rows: this.row_ids,
label_printer_id: this.selectedPrinter.id,
label_template_id: this.selectedTemplate.id,
copies: this.copies

View file

@ -0,0 +1,21 @@
<div class="print-label-modal-container"
data-print-url="<%= print_repository_row_path %>"
data-zebra-progress-url="<%= print_zpl_repository_row_path%>"
data-printers-url="<%= label_printers_path(format: :json) %>"
data-label-templates-url="<%= label_templates_path(format: :json) %>"
data-rows-url="<%= rows_to_print_repository_row_path %>"
data-print-validation-url="<%= validate_label_template_columns_repository_row_path %>"
data-label-preview-url="<%= zpl_preview_label_templates_path %>"
data-fluics-info-url="<%= Constants::SCINOTE_FLUICS_URL %>"
data-zebra-enabled="<%= Rails.configuration.x.zebra_print_enabled %>"
>
<print-modal-container
:show-modal = "showModal"
:row_ids = "row_ids"
:urls = "urls"
:zebra-enabled = "zebraEnabled"
@close="closeModal"
></print-modal-container>
</div>
<%= javascript_pack_tag 'vue/repository_print_modal' %>

View file

@ -55,3 +55,5 @@
%>
</div>
<% end %>
<%= render partial: 'label_printers/label_printer_modal' %>

View file

@ -84,27 +84,7 @@
<div class="toolbar-filter-buttons" style="display:none">
</div>
<div class="print-label-modal-container"
data-print-url="<%= print_repository_repository_rows_path(repository_id: @repository) %>"
data-zebra-progress-url="<%= print_zpl_repository_repository_rows_path(repository_id: @repository)%>"
data-printers-url="<%= label_printers_path(format: :json) %>"
data-label-templates-url="<%= label_templates_path(format: :json) %>"
data-rows-url="<%= rows_to_print_repository_repository_rows_path(repository_id: @repository) %>"
data-print-validation-url="<%= validate_label_template_columns_repository_repository_rows_path(repository_id: @repository) %>"
data-label-preview-url="<%= zpl_preview_label_templates_path %>"
data-fluics-info-url="<%= Constants::SCINOTE_FLUICS_URL %>"
data-zebra-enabled="<%= Rails.configuration.x.zebra_print_enabled %>"
>
<print-modal-container
:show-modal = "showModal"
:row_ids = "row_ids"
:urls = "urls"
:zebra-enabled = "zebraEnabled"
@close="closeModal"
></print-modal-container>
</div>
<%= javascript_pack_tag 'vue/repository_print_modal' %>
<%= render partial: 'label_printers/label_printer_modal' %>
<%= render partial: "repositories/repository_table",
locals: {

View file

@ -600,6 +600,15 @@ Rails.application.routes.draw do
resources :comments, only: %i(index create update destroy)
resources :repository_rows, only: %i() do
member do
get :rows_to_print
post :print
get :print_zpl
post :validate_label_template_columns
end
end
resources :repositories do
post 'repository_index',
to: 'repository_rows#index',
@ -651,12 +660,6 @@ Rails.application.routes.draw do
end
resources :repository_table_filters, only: %i(index show create update destroy)
resources :repository_rows, only: %i(create show update) do
collection do
get :rows_to_print
post :print
get :print_zpl
post :validate_label_template_columns
end
member do
get :assigned_task_list
get :active_reminder_repository_cells