mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-21 04:25:05 +08:00
78 lines
2 KiB
Ruby
78 lines
2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class LabelPrintersController < ApplicationController
|
|
include InputSanitizeHelper
|
|
|
|
before_action :find_label_printer, only: %i(edit update destroy)
|
|
|
|
def index
|
|
@label_printers = LabelPrinter.all
|
|
end
|
|
|
|
def new
|
|
@label_printer = LabelPrinter.new
|
|
end
|
|
|
|
def edit; end
|
|
|
|
def create
|
|
@label_printer = LabelPrinter.new(label_printer_params)
|
|
|
|
if @label_printer.save
|
|
flash[:success] = t('label_printers.create.success', { printer_name: @label_printer.name })
|
|
redirect_to edit_label_printer_path(@label_printer)
|
|
else
|
|
flash[:error] = t('label_printers.create.error', { printer_name: @label_printer.name })
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @label_printer.update(label_printer_params)
|
|
flash[:success] = t('label_printers.update.success', { printer_name: @label_printer.name })
|
|
redirect_to edit_label_printer_path(@label_printer)
|
|
else
|
|
flash[:error] = t('label_printers.update.error', { printer_name: @label_printer.name })
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
if @label_printer.destroy
|
|
flash[:success] = t('label_printers.destroy.success', { printer_name: @label_printer.name })
|
|
else
|
|
flash[:error] = t('label_printers.destroy.error', { printer_name: @label_printer.name })
|
|
end
|
|
|
|
redirect_to addons_path
|
|
end
|
|
|
|
def create_fluics
|
|
# Placeholder for FLUICS printer management
|
|
|
|
LabelPrinters::Fluics::ApiClient.new(params[:fluics_api_key]).list.each do |fluics_printer|
|
|
label_printer = LabelPrinter.find_or_initialize_by(
|
|
fluics_api_key: params[:fluics_api_key],
|
|
fluics_lid: fluics_printer['LID'],
|
|
type_of: :fluics,
|
|
language_type: :zpl
|
|
)
|
|
|
|
label_printer.update(name: fluics_printer['serviceName'])
|
|
end
|
|
|
|
redirect_to addons_path
|
|
end
|
|
|
|
private
|
|
|
|
def label_printer_params
|
|
params.require(:label_printer).permit(
|
|
:name, :type_of, :fluics_api_key, :host, :port
|
|
)
|
|
end
|
|
|
|
def find_label_printer
|
|
@label_printer = LabelPrinter.find(params[:id])
|
|
end
|
|
end
|