diff --git a/app/controllers/jobs_controller.rb b/app/controllers/jobs_controller.rb index 85a260e..28a4ebe 100644 --- a/app/controllers/jobs_controller.rb +++ b/app/controllers/jobs_controller.rb @@ -4,7 +4,7 @@ class JobsController < ApplicationController @jobs = Job.currently_working_on end - # GET /jobs/new + # GET /jobs/new def new @job = Job.new end diff --git a/app/controllers/operator/jobs_controller.rb b/app/controllers/operator/jobs_controller.rb index 2b41b80..340ba23 100644 --- a/app/controllers/operator/jobs_controller.rb +++ b/app/controllers/operator/jobs_controller.rb @@ -42,7 +42,6 @@ class Operator::JobsController < ApplicationController def update respond_to do |format| if @job.update(job_params) - broadcast_update_job format.html { redirect_to operator_jobs_url, notice: "Job was successfully updated." } else @@ -51,20 +50,6 @@ class Operator::JobsController < ApplicationController end end - def cancel - if @job.canceled! - flash[:notice] = "Job successfully canceled" - else - flash[:alert] = "Job could not be canceled" - end - - respond_to do |format| - broadcast_update_job - format.turbo_stream - format.html { redirect_to operator_jobs_url } - end - end - # DELETE /jobs/1 or /jobs/1.json def destroy @job.destroy! @@ -84,7 +69,7 @@ class Operator::JobsController < ApplicationController respond_to do |format| broadcast_update_job - format.html { redirect_to operator_jobs_url, notice: "Job was successfully updated." } + format.html { redirect_to operator_jobs_url } end end @@ -114,6 +99,6 @@ class Operator::JobsController < ApplicationController # Only allow a list of trusted parameters through. def job_params - params.require(:job).permit(:operator_id, :costumer_id, :operator_firstname, :operator_lastname, :costumer_firstname, :costumer_lastname) + params.require(:job).permit(:operator_id, :costumer_id, :operator_firstname, :operator_lastname, :costumer_firstname, :costumer_lastname, :status) end end diff --git a/app/models/job.rb b/app/models/job.rb index 9050b5c..cb69f48 100644 --- a/app/models/job.rb +++ b/app/models/job.rb @@ -79,7 +79,7 @@ class Job < ApplicationRecord end def able_to_cancel? - open? + open? || printing? # TODO: different check for operator and admin end diff --git a/app/views/jobs/_job_tr.html.erb b/app/views/jobs/_job_tr.html.erb index 0602a37..75e30a8 100644 --- a/app/views/jobs/_job_tr.html.erb +++ b/app/views/jobs/_job_tr.html.erb @@ -54,7 +54,7 @@ - <% if job.able_to_cancel? %> + <% if job.open? %> <%= button_to icon("x-circle", class: "text-hsrm-red size-8 inline", title: "Abbrechen"), cancel_job_path(job), method: :patch, form: {data: {turbo_confirm: 'Den Plottauftrag wirklich abbrechen?'}}, form_class: "inline" %> <% else %> <%= icon("x-circle", class: "text-hsrm-gray text-opacity-50 size-8 inline", title: "Kann nicht mehr abgebrochen werden") %> diff --git a/app/views/operator/jobs/_job_tr.html.erb b/app/views/operator/jobs/_job_tr.html.erb index 1108e77..46b452f 100644 --- a/app/views/operator/jobs/_job_tr.html.erb +++ b/app/views/operator/jobs/_job_tr.html.erb @@ -15,6 +15,7 @@ <% if job.pdf.attached? %> + <%= link_to_if job.printing?, icon("document-arrow-down", class: "text-hsrm-gray #{ unless job.printing?; 'text-opacity-25' else; 'hover:text-opacity-75'; end} size-6 inline", title: "Download"), job.pdf, download:true %> <%#= link_to job.pdf.filename, rails_blob_path(job.pdf, disposition: "attachment") %> <%= link_to_if job.printing?, job.pdf.filename, job.pdf, download:true %> @@ -58,24 +59,29 @@ - <% if job.open? %> - <%= button_to icon("printer", class: "text-hsrm-gray size-6 inline drop-shadow hover:text-opacity-75", title: "Drucken"), printing_operator_job_path(job), method: :patch, form_class: "inline" %> + <% if job.printing? || job.canceled? || job.paid? %> + <%= button_to icon("inbox-stack", class: "text-hsrm-gray size-6 inline drop-shadow hover:text-opacity-75", title: "Zurück in die Warteschlange"), operator_job_path(job), method: :patch, params: {:job => {status: :open}}, form_class: "inline" %> + <% else %> + <%= icon("inbox-stack", class: "text-hsrm-gray text-opacity-25 size-6 inline drop-shadow", title: "") %> + <% end %> + <% if job.open? || job.canceled? || job.paid? %> + <%= button_to icon("printer", class: "text-hsrm-gray size-6 inline drop-shadow hover:text-opacity-75", title: "Drucken"), operator_job_path(job), method: :patch, params: {:job => {status: :printing}}, form_class: "inline" %> <% else %> <%= icon("printer", class: "text-hsrm-gray text-opacity-25 size-6 inline drop-shadow", title: "") %> <% end %> - <%= link_to_if job.printing?, icon("document-arrow-down", class: "text-hsrm-gray #{ unless job.printing?; 'text-opacity-25' else; 'hover:text-opacity-75'; end} size-6 inline", title: "Download"), job.pdf, download:true %> - <% if job.printing? %> - <%= button_to icon("check-circle", class: "text-green-700 size-6 inline drop-shadow hover:text-opacity-75", title: "Pläne sind fertig gedruckt"), pickup_operator_job_path(job), method: :patch, form: {data: {turbo_confirm: 'Sind die Pläne gedruckt und die Seitenanzahl und QM korrekt?'}}, form_class: "inline" %> + <% if job.printing? || job.paid? %> + <%= button_to icon("arrow-up-tray", class: "text-hsrm-gray size-6 inline drop-shadow hover:text-opacity-75", title: "Pläne sind fertig gedruckt und bereit abgeholt zu werden."), operator_job_path(job), method: :patch, params: {:job => {status: :pickup}}, form: {data: {turbo_confirm: 'Sind die Pläne gedruckt und die Seitenanzahl und QM korrekt?'}}, form_class: "inline" %> <% else %> - <%= icon("check-circle", class: "text-hsrm-gray text-opacity-25 size-6 inline drop-shadow", title: "Kann nicht mehr abgebrochen werden") %> + <%= icon("arrow-up-tray", class: "text-hsrm-gray text-opacity-25 size-6 inline drop-shadow", title: "") %> <% end %> - <% if job.pickup? %> - <%= button_to icon("banknotes", class: "text-status-paid size-6 inline drop-shadow hover:text-opacity-75", title: "Bezahlt"), paid_operator_job_path(job), method: :patch, form_class: "inline" %> + <% if job.pickup? || job.printing? %> + <% job.printing? && turbo_confirm = 'Sind die Pläne gedruckt und die Seitenanzahl und QM korrekt?' %> + <%= button_to icon("banknotes", class: "text-status-paid size-6 inline drop-shadow hover:text-opacity-75", title: "Bezahlt"), operator_job_path(job), method: :patch, params: {:job => {status: :paid}}, form: {data: {turbo_confirm: turbo_confirm}}, form_class: "inline" %> <% else %> <%= icon("banknotes", class: "text-hsrm-gray text-opacity-25 size-6 inline drop-shadow ", title: "") %> <% end %> <% if job.open? || job.printing? || job.pickup? %> - <%= button_to icon("x-circle", class: "text-hsrm-red size-6 inline drop-shadow hover:text-opacity-75", title: "Abbrechen"), cancel_operator_job_path(job), method: :patch, form: {data: {turbo_confirm: 'Den Plottauftrag wirklich abbrechen?'}}, form_class: "inline" %> + <%= button_to icon("x-circle", class: "text-hsrm-red size-6 inline drop-shadow hover:text-opacity-75", title: "Abbrechen"), operator_job_path(job), method: :patch, params: {:job => {status: :canceled}}, form: {data: {turbo_confirm: 'Den Plottauftrag wirklich abbrechen?'}}, form_class: "inline" %> <% else %> <%= icon("x-circle", class: "text-hsrm-gray text-opacity-25 size-6 inline drop-shadow", title: "Kann nicht mehr abgebrochen werden") %> <% end %> diff --git a/app/views/operator/jobs/index.html.erb b/app/views/operator/jobs/index.html.erb index 84addb4..58c9c6d 100644 --- a/app/views/operator/jobs/index.html.erb +++ b/app/views/operator/jobs/index.html.erb @@ -47,6 +47,19 @@

Printing

+ <% if @openjobs.any? %> + <%= button_to icon("printer", + class: "text-hsrm-gray size-6 inline drop-shadow hover:text-opacity-75 mr-2", + title: "Drucken") + "Start next job (" + @openjobs.count.to_s + ")", operator_job_path(@openjobs.first), + params: { :job => { status: :printing} }, + method: :patch, + form_class: "inline px-3 py-2 font-semibold bg-green-500 hover:opacity-90 shadow-lg transition-colors duration-100 bg-opacity-100 flex items-center group text-hsrm-gray" %> + <% else %> + + <%= icon("printer", class: "text-hsrm-gray text-opacity-25 size-6 inline drop-shadow mr-2", title: "") %> + Start next job + + <% end %> <%# render partial: "job_card", collection: @printingjobs, as: :job %>
@@ -61,10 +74,10 @@ A1 A2 A3 - no DIN + no DIN Kosten Status - + Action @@ -90,10 +103,10 @@ A1 A2 A3 - no DIN + no DIN Kosten Status - + Action @@ -119,10 +132,10 @@ A1 A2 A3 - no DIN + no DIN Kosten Status - + Action @@ -148,7 +161,7 @@ A1 A2 A3 - no DIN + no DIN Kosten Status diff --git a/config/routes.rb b/config/routes.rb index 7dcf8d2..5a50506 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,12 +7,8 @@ Rails.application.routes.draw do namespace :operator do resources :jobs do member do - patch "cancel" - patch "pickup" - patch "printing" - patch "paid" - patch "increment_page" - patch "decrement_page" + patch "increment_page", :din + patch "decrement_page", :din end end end