mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-10-07 04:16:31 +08:00
Add label printer modal to task [SCI-7270]
This commit is contained in:
parent
31554d0fd9
commit
eebdee5129
8 changed files with 61 additions and 59 deletions
|
@ -16,13 +16,13 @@
|
||||||
}).on('hidden.bs.modal', function() {
|
}).on('hidden.bs.modal', function() {
|
||||||
$(this).remove();
|
$(this).remove();
|
||||||
});
|
});
|
||||||
} */
|
}
|
||||||
|
|
||||||
function getReposotryRowsIds() {
|
function getReposotryRowsIds() {
|
||||||
return $('[id="repository_row_ids_"]').map(function() {
|
return $('[id="repository_row_ids_"]').map(function() {
|
||||||
return this.value;
|
return this.value;
|
||||||
}).get();
|
}).get();
|
||||||
}
|
} */
|
||||||
|
|
||||||
$(document).on('click', '.record-info-link', function(e) {
|
$(document).on('click', '.record-info-link', function(e) {
|
||||||
var that = $(this);
|
var that = $(this);
|
||||||
|
@ -79,8 +79,14 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.print-label-button', function() {
|
$(document).on('click', '.print-label-button', function() {
|
||||||
|
var selectedRows = $(this).data('rows');
|
||||||
PrintModalComponent.showModal = true;
|
PrintModalComponent.showModal = true;
|
||||||
|
if (selectedRows.length) {
|
||||||
|
$('#modal-info-repository-row').modal('hide');
|
||||||
|
PrintModalComponent.row_ids = selectedRows;
|
||||||
|
} else {
|
||||||
PrintModalComponent.row_ids = RepositoryDatatable.selectedRows();
|
PrintModalComponent.row_ids = RepositoryDatatable.selectedRows();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -5,8 +5,9 @@ class RepositoryRowsController < ApplicationController
|
||||||
include MyModulesHelper
|
include MyModulesHelper
|
||||||
|
|
||||||
MAX_PRINTABLE_ITEM_NAME_LENGTH = 64
|
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, except: %i(show print rows_to_print print_zpl validate_label_template_columns)
|
||||||
before_action :load_repository_or_snapshot, only: %i(print_modal print rows_to_print print_zpl)
|
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 :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
|
before_action :check_read_permissions, except: %i(show create update delete_records
|
||||||
copy_records reminder_repository_cells
|
copy_records reminder_repository_cells
|
||||||
|
@ -82,18 +83,17 @@ class RepositoryRowsController < ApplicationController
|
||||||
|
|
||||||
def validate_label_template_columns
|
def validate_label_template_columns
|
||||||
label_template = LabelTemplate.where(team_id: current_team.id).find(params[:label_template_id])
|
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 }
|
render json: { label_code: label_code }
|
||||||
rescue StandardError => e
|
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
|
render json: { error: e, label_code: label_code }, status: :unprocessable_entity
|
||||||
end
|
end
|
||||||
|
|
||||||
def print_zpl
|
def print_zpl
|
||||||
label_template = LabelTemplate.find_by(id: params[:label_template_id])
|
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,
|
LabelTemplates::RepositoryRowService.new(label_template,
|
||||||
repository_row,
|
repository_row,
|
||||||
true).render
|
true).render
|
||||||
|
@ -110,25 +110,8 @@ class RepositoryRowsController < ApplicationController
|
||||||
)
|
)
|
||||||
end
|
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
|
def rows_to_print
|
||||||
@repository_rows = @repository.repository_rows.where(id: params[:rows])
|
render json: @repository_row, each_serializer: RepositoryRowSerializer, user: current_user
|
||||||
|
|
||||||
render json: @repository_rows, each_serializer: RepositoryRowSerializer, user: current_user
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def print
|
def print
|
||||||
|
@ -141,7 +124,7 @@ class RepositoryRowsController < ApplicationController
|
||||||
label_printer = LabelPrinter.find(params[:label_printer_id])
|
label_printer = LabelPrinter.find(params[:label_printer_id])
|
||||||
label_template = LabelTemplate.find_by(id: params[:label_template_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(
|
LabelPrinters::PrintJob.perform_later(
|
||||||
label_printer,
|
label_printer,
|
||||||
LabelTemplates::RepositoryRowService.new(label_template,
|
LabelTemplates::RepositoryRowService.new(label_template,
|
||||||
|
@ -318,9 +301,15 @@ class RepositoryRowsController < ApplicationController
|
||||||
render_404 unless @repository
|
render_404 unless @repository
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def load_repository_row_print
|
||||||
|
@repository_row = RepositoryRow.where(id: params[:rows])
|
||||||
|
|
||||||
|
render_404 unless @repository_row
|
||||||
|
end
|
||||||
|
|
||||||
def load_repository_or_snapshot
|
def load_repository_or_snapshot
|
||||||
@repository = Repository.accessible_by_teams(current_team).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: params[:repository_id])
|
@repository ||= RepositorySnapshot.find_by(id: @repository_row.first.repository_id)
|
||||||
|
|
||||||
render_404 unless @repository
|
render_404 unless @repository
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,6 +10,7 @@ function initPrintModalComponent() {
|
||||||
|
|
||||||
window.PrintModalComponent = new Vue({
|
window.PrintModalComponent = new Vue({
|
||||||
el: '.print-label-modal-container',
|
el: '.print-label-modal-container',
|
||||||
|
name: 'PrintModalComponent',
|
||||||
components: {
|
components: {
|
||||||
'print-modal-container': PrintModalContainer
|
'print-modal-container': PrintModalContainer
|
||||||
},
|
},
|
||||||
|
|
|
@ -190,12 +190,12 @@
|
||||||
printer_name: this.selectedPrinter.attributes.name,
|
printer_name: this.selectedPrinter.attributes.name,
|
||||||
number_of_copies: this.copies,
|
number_of_copies: this.copies,
|
||||||
label_template_id: this.selectedTemplate.id,
|
label_template_id: this.selectedTemplate.id,
|
||||||
repository_row_ids: this.row_ids
|
rows: this.row_ids
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$.post(this.urls.print, {
|
$.post(this.urls.print, {
|
||||||
repository_row_ids: this.row_ids,
|
rows: this.row_ids,
|
||||||
label_printer_id: this.selectedPrinter.id,
|
label_printer_id: this.selectedPrinter.id,
|
||||||
label_template_id: this.selectedTemplate.id,
|
label_template_id: this.selectedTemplate.id,
|
||||||
copies: this.copies
|
copies: this.copies
|
||||||
|
|
21
app/views/label_printers/_label_printer_modal.html.erb
Normal file
21
app/views/label_printers/_label_printer_modal.html.erb
Normal 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' %>
|
|
@ -55,3 +55,5 @@
|
||||||
%>
|
%>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<%= render partial: 'label_printers/label_printer_modal' %>
|
||||||
|
|
|
@ -84,27 +84,7 @@
|
||||||
<div class="toolbar-filter-buttons" style="display:none">
|
<div class="toolbar-filter-buttons" style="display:none">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="print-label-modal-container"
|
<%= render partial: 'label_printers/label_printer_modal' %>
|
||||||
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: "repositories/repository_table",
|
<%= render partial: "repositories/repository_table",
|
||||||
locals: {
|
locals: {
|
||||||
|
|
|
@ -600,6 +600,15 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
resources :comments, only: %i(index create update destroy)
|
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
|
resources :repositories do
|
||||||
post 'repository_index',
|
post 'repository_index',
|
||||||
to: 'repository_rows#index',
|
to: 'repository_rows#index',
|
||||||
|
@ -651,12 +660,6 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
resources :repository_table_filters, only: %i(index show create update destroy)
|
resources :repository_table_filters, only: %i(index show create update destroy)
|
||||||
resources :repository_rows, only: %i(create show update) do
|
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
|
member do
|
||||||
get :assigned_task_list
|
get :assigned_task_list
|
||||||
get :active_reminder_repository_cells
|
get :active_reminder_repository_cells
|
||||||
|
|
Loading…
Add table
Reference in a new issue