oxen_printer 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/javascripts/components/print_prompt.js.jsx.coffee +342 -0
- data/app/assets/javascripts/oxem_printer.js +1 -0
- data/app/views/layouts/1mailer.html.haml +3 -0
- data/lib/generators/printer/templates/template.rb +15 -0
- data/lib/oxen_printer/version.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: caa611fe8eaed2c7561df42cd74a67972da98ffa
|
4
|
+
data.tar.gz: 74423e5f503c64fe31e2d5bb36218737a0ee1645
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1de9ca3d0f5346ac03d81f38c2fecbd5037dae1ea935e753072aaa39dbd9b010805d9a481ae6cbb74bf843c99f15a919696f645ea467dd4f9acb1766abcf8af7
|
7
|
+
data.tar.gz: 5f2e118102f6faa21622243a95144540367a12d0ce0b365dfd0ec92f01ff050bbeb310cf4d9cf58f6810e76587a2ca7f9935362bb996cea7c26fb2ba20bc5b79
|
@@ -0,0 +1,342 @@
|
|
1
|
+
{ div, form, input, textarea, select, option, label, h4, p, a } = React.DOM
|
2
|
+
#
|
3
|
+
#
|
4
|
+
# ARGS # first value is default
|
5
|
+
#
|
6
|
+
# collation # 'list' | 'record'
|
7
|
+
# paper # 'A4' | 'label' | ...
|
8
|
+
# template # '' | 'slip' | 'quote'
|
9
|
+
# cmd # '' | 'print_label' - a particular method on the printing_class
|
10
|
+
#
|
11
|
+
# PRINTPROMPT
|
12
|
+
# print[medium] # 'display' | 'email' | 'printer' | 'download'
|
13
|
+
# print[output_type] # 'html' | 'pdf' | 'text'
|
14
|
+
# print[printer] # what printer to send output to
|
15
|
+
# print[email_to] # email address
|
16
|
+
# print[message] # body of email
|
17
|
+
# print[range] # which pages should print
|
18
|
+
# print[copies] # number of copies
|
19
|
+
#
|
20
|
+
# PRINTJOB
|
21
|
+
# id,
|
22
|
+
# account_id, # what 'system' / customer
|
23
|
+
# printer_id, # on what printer
|
24
|
+
# printed_by_id, # what id has the printed_by entity
|
25
|
+
# printed_by_type, # what entity - like user
|
26
|
+
# view_template_path, # what template
|
27
|
+
# name, # label the job
|
28
|
+
# printing_class, # what entity provides the data
|
29
|
+
# print_driver, # what 'driver' - like :pdf, :cab, :zebra, :csv, :html, etc
|
30
|
+
# print_format, # data collation - like 'record', 'list'
|
31
|
+
# state, # record the progress
|
32
|
+
# paper, # what material - like 'label32x42', 'A4', etc
|
33
|
+
# copies, # number of identical prints
|
34
|
+
# print_sql, # how to find what will be printed
|
35
|
+
# created_at,
|
36
|
+
# updated_at
|
37
|
+
#
|
38
|
+
#
|
39
|
+
|
40
|
+
class @PrintPrompt extends React.Component
|
41
|
+
constructor: (props) ->
|
42
|
+
super props
|
43
|
+
@state =
|
44
|
+
url: props.url
|
45
|
+
collation: props.collation
|
46
|
+
template: props.template
|
47
|
+
paper: props.paper
|
48
|
+
user_id: props.user_id
|
49
|
+
user_email: props.user_email
|
50
|
+
shared: new App.Shared()
|
51
|
+
printers_url: "/admin/users/" + props.user_id + "/printers.json"
|
52
|
+
wurl: ""
|
53
|
+
args: ""
|
54
|
+
|
55
|
+
@propTypes =
|
56
|
+
url: React.PropTypes.string
|
57
|
+
template: React.PropTypes.string
|
58
|
+
paper: React.PropTypes.string
|
59
|
+
user_id: React.PropTypes.number
|
60
|
+
collation: React.PropTypes.string
|
61
|
+
user_email: React.PropTypes.string
|
62
|
+
|
63
|
+
@defaultProps =
|
64
|
+
url: ""
|
65
|
+
collation: "list"
|
66
|
+
template: ""
|
67
|
+
paper: "A4"
|
68
|
+
user_id: 1
|
69
|
+
user_email: ""
|
70
|
+
|
71
|
+
getPrinterList: (e) =>
|
72
|
+
jqxhr = $.ajax
|
73
|
+
url: @state.printers_url
|
74
|
+
method: 'GET'
|
75
|
+
.done (printers) ->
|
76
|
+
@obj=$("#user_suggested_printer_list")
|
77
|
+
for printer in printers
|
78
|
+
opt = document.createElement("option")
|
79
|
+
opt.value = printer.id
|
80
|
+
opt.text = printer.name
|
81
|
+
@obj.append opt
|
82
|
+
@obj.material_select()
|
83
|
+
.fail (data) ->
|
84
|
+
console.log 'fejl ' + @u
|
85
|
+
|
86
|
+
hidePrinterList: (e) =>
|
87
|
+
$('.select-wrapper.printer_list').hide()
|
88
|
+
|
89
|
+
showPrinterList: (e) =>
|
90
|
+
$('.select-wrapper.printer_list').show()
|
91
|
+
|
92
|
+
hideEmailForm: (e) =>
|
93
|
+
$('.emailForm').hide()
|
94
|
+
|
95
|
+
showEmailForm: (e) =>
|
96
|
+
$('.emailForm').show()
|
97
|
+
|
98
|
+
hideDisplayForm: (e) =>
|
99
|
+
$('.displayForm').hide()
|
100
|
+
|
101
|
+
showDisplayForm: (e) =>
|
102
|
+
$('.displayForm').show()
|
103
|
+
|
104
|
+
onDisplay: (e) =>
|
105
|
+
@hidePrinterList()
|
106
|
+
@hideEmailForm()
|
107
|
+
@showDisplayForm()
|
108
|
+
|
109
|
+
onEmail: (e) =>
|
110
|
+
@hidePrinterList()
|
111
|
+
@hideDisplayForm()
|
112
|
+
@showEmailForm()
|
113
|
+
|
114
|
+
onPrint: (e) =>
|
115
|
+
@showPrinterList()
|
116
|
+
@hideEmailForm()
|
117
|
+
@hideDisplayForm()
|
118
|
+
|
119
|
+
onDownload: (e)=>
|
120
|
+
@hidePrinterList()
|
121
|
+
@hideEmailForm()
|
122
|
+
@hideDisplayForm()
|
123
|
+
|
124
|
+
onHTML_PDF: (e) =>
|
125
|
+
if $(e.currentTarget).attr('id') == "display_file_as_pdf"
|
126
|
+
$("#display_file_as_html").prop 'checked', !$("#display_file_as_pdf").prop('checked')
|
127
|
+
else
|
128
|
+
$("#display_file_as_pdf").prop 'checked', !$("#display_file_as_html").prop('checked')
|
129
|
+
|
130
|
+
cancelModal: (e) =>
|
131
|
+
App.shared.spinWhileLoading()
|
132
|
+
$("#print-dialog").closeModal()
|
133
|
+
|
134
|
+
animatePrint: (e) =>
|
135
|
+
if e
|
136
|
+
$(".print-ok-button").html('<div class="la-square-loader"><div></div></div>')
|
137
|
+
else
|
138
|
+
$(".print-ok-button").html('Ok')
|
139
|
+
|
140
|
+
sendPrintRequest: (e) =>
|
141
|
+
@animatePrint(e)
|
142
|
+
wrl = @state.url
|
143
|
+
arg = @state.args
|
144
|
+
if wrl=='href'
|
145
|
+
wrl = window.location.href.replace( /#!$/, "")
|
146
|
+
if wrl.match /\?/
|
147
|
+
w = wrl.split("?")[0] + "/print"
|
148
|
+
arg = wrl.split("?")[1] + "&"
|
149
|
+
else
|
150
|
+
w = wrl + "/print"
|
151
|
+
arg = "&collation=#{@state.collation}&template=#{@state.template}&paper=#{@state.paper}"
|
152
|
+
@setState {wurl: w, args: arg}, () =>
|
153
|
+
@form = $('#print-dialog form')
|
154
|
+
jqxhr = $.ajax
|
155
|
+
url: @state.wurl
|
156
|
+
method: "GET"
|
157
|
+
data: @form.serialize() + '&' + @state.args
|
158
|
+
dataType: 'html'
|
159
|
+
.done (data) =>
|
160
|
+
console.log 'done'
|
161
|
+
@animatePrint()
|
162
|
+
$("#print-dialog").closeModal()
|
163
|
+
.fail (data) =>
|
164
|
+
console.log 'fail'
|
165
|
+
@animatePrint()
|
166
|
+
$("#print-dialog").closeModal()
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
componentDidMount: ->
|
171
|
+
$(document.body).on 'app:print-dialog:state:changed', (e) =>
|
172
|
+
@setState(e.state)
|
173
|
+
@getPrinterList()
|
174
|
+
@hidePrinterList()
|
175
|
+
@hideEmailForm()
|
176
|
+
$('#print_email_to').val @state.user_email
|
177
|
+
|
178
|
+
|
179
|
+
render: ->
|
180
|
+
div
|
181
|
+
className: "modal"
|
182
|
+
id: "print-dialog"
|
183
|
+
div
|
184
|
+
className: "modal-content"
|
185
|
+
div
|
186
|
+
className: "container"
|
187
|
+
div
|
188
|
+
className: "row"
|
189
|
+
div
|
190
|
+
className: "col s12 m12 l12"
|
191
|
+
h4
|
192
|
+
className: "h4"
|
193
|
+
"Se, sende eller udskrive?"
|
194
|
+
p
|
195
|
+
className: "p"
|
196
|
+
"Dette printjob har du mulighed for at se på flere måder - du kan udskrive det direkte på en printer, sende en email besked hvor du hæfter det ved, eller få det vist som PDF på skærmen. Valget er dit"
|
197
|
+
div
|
198
|
+
className: "row"
|
199
|
+
div
|
200
|
+
className: "col s12 m12 l12"
|
201
|
+
form
|
202
|
+
className: "print_form"
|
203
|
+
div
|
204
|
+
className: "row"
|
205
|
+
div
|
206
|
+
className: "col s12 m6 l6"
|
207
|
+
p
|
208
|
+
className: "p"
|
209
|
+
input
|
210
|
+
className: "with-gap"
|
211
|
+
id: "display"
|
212
|
+
type: "radio"
|
213
|
+
name: "print[medium]"
|
214
|
+
value: "display"
|
215
|
+
onClick: @onDisplay
|
216
|
+
label
|
217
|
+
className: "label"
|
218
|
+
htmlFor: "display"
|
219
|
+
"På skærmen"
|
220
|
+
p
|
221
|
+
className: "p"
|
222
|
+
input
|
223
|
+
className: "with-gap"
|
224
|
+
id: "email"
|
225
|
+
type: "radio"
|
226
|
+
name: "print[medium]"
|
227
|
+
value: "email"
|
228
|
+
onClick: @onEmail
|
229
|
+
label
|
230
|
+
className: "label"
|
231
|
+
htmlFor: "email"
|
232
|
+
"Vedhæftet en email"
|
233
|
+
p
|
234
|
+
className: "p"
|
235
|
+
input
|
236
|
+
className: "with-gap"
|
237
|
+
id: "printer"
|
238
|
+
type: "radio"
|
239
|
+
name: "print[medium]"
|
240
|
+
value: "printer"
|
241
|
+
onClick: @onPrint
|
242
|
+
label
|
243
|
+
className: "label"
|
244
|
+
htmlFor: "printer"
|
245
|
+
"til printer"
|
246
|
+
p
|
247
|
+
className: "p"
|
248
|
+
input
|
249
|
+
className: "with-gap"
|
250
|
+
id: "download"
|
251
|
+
type: "radio"
|
252
|
+
name: "print[medium]"
|
253
|
+
value: "download"
|
254
|
+
onClick: @onDownload
|
255
|
+
label
|
256
|
+
className: "label"
|
257
|
+
htmlFor: "download"
|
258
|
+
"som fil"
|
259
|
+
|
260
|
+
div
|
261
|
+
className: "col s12 m6 l6"
|
262
|
+
p
|
263
|
+
className: "p"
|
264
|
+
select
|
265
|
+
className: "printer_list"
|
266
|
+
name: "print[printer]"
|
267
|
+
id: "user_suggested_printer_list"
|
268
|
+
defaultValue: "0"
|
269
|
+
option
|
270
|
+
className: "printer_list_option"
|
271
|
+
value:"0"
|
272
|
+
disabled: "true"
|
273
|
+
"Vælg en printer"
|
274
|
+
|
275
|
+
label
|
276
|
+
className: "label"
|
277
|
+
"Printer"
|
278
|
+
p
|
279
|
+
className: "p displayForm"
|
280
|
+
input
|
281
|
+
className: "with-gap"
|
282
|
+
id: "display_file_as_html"
|
283
|
+
type: "checkbox"
|
284
|
+
name: "print[output_type]"
|
285
|
+
value: "html"
|
286
|
+
onClick: @onHTML_PDF
|
287
|
+
label
|
288
|
+
className: "label"
|
289
|
+
htmlFor: "display_file_as_html"
|
290
|
+
"HTML"
|
291
|
+
p
|
292
|
+
className: "p displayForm"
|
293
|
+
input
|
294
|
+
className: "with-gap"
|
295
|
+
id: "display_file_as_pdf"
|
296
|
+
type: "checkbox"
|
297
|
+
name: "print[output_type]"
|
298
|
+
value: "pdf"
|
299
|
+
onClick: @onHTML_PDF
|
300
|
+
label
|
301
|
+
className: "label"
|
302
|
+
htmlFor: "display_file_as_pdf"
|
303
|
+
"PDF"
|
304
|
+
p
|
305
|
+
className: "p emailForm"
|
306
|
+
label
|
307
|
+
className: 'label'
|
308
|
+
htmlFor: "print_email_to"
|
309
|
+
"Modtager:"
|
310
|
+
input
|
311
|
+
className: "text"
|
312
|
+
id: "print_email_to"
|
313
|
+
type: "text"
|
314
|
+
name: "print[email_to]"
|
315
|
+
|
316
|
+
div
|
317
|
+
className: "col s12 m12 l12"
|
318
|
+
p
|
319
|
+
className: "p emailForm"
|
320
|
+
label
|
321
|
+
className: 'label'
|
322
|
+
htmlFor: "print_message"
|
323
|
+
"Besked:"
|
324
|
+
textarea
|
325
|
+
className: "materialize-textarea"
|
326
|
+
id: "print_message"
|
327
|
+
name: "print[message]"
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
div
|
332
|
+
className: "modal-footer"
|
333
|
+
a
|
334
|
+
className: "print-ok-button green btn modal-action waves-effect waves-green"
|
335
|
+
href: "#!"
|
336
|
+
onClick: @sendPrintRequest
|
337
|
+
"Ok"
|
338
|
+
a
|
339
|
+
className: "orange btn modal-action waves-effect waves-orange"
|
340
|
+
href: "#!"
|
341
|
+
onClick: @cancelModal
|
342
|
+
"Fortryd"
|
@@ -0,0 +1 @@
|
|
1
|
+
//= require_tree ./components
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class CreateTemplates < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :templates do |t|
|
4
|
+
t.references :account, index: true, foreign_key: true
|
5
|
+
t.string :template_key
|
6
|
+
t.string :template_path
|
7
|
+
t.string :template_print_driver # use to identify if template only works with a particular driver, like the :zebra
|
8
|
+
t.string :template_paper # use to identify if template only works with a particular paper, like the :label10x32
|
9
|
+
t.text :template_content
|
10
|
+
t.integer :lock_version, default: 1
|
11
|
+
|
12
|
+
t.timestamps null: false
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/oxen_printer/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oxen_printer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Walther H Diechmann
|
@@ -65,6 +65,8 @@ files:
|
|
65
65
|
- LICENSE.txt
|
66
66
|
- README.md
|
67
67
|
- Rakefile
|
68
|
+
- app/assets/javascripts/components/print_prompt.js.jsx.coffee
|
69
|
+
- app/assets/javascripts/oxem_printer.js
|
68
70
|
- app/controllers/oxen/print_jobs_controller.rb
|
69
71
|
- app/controllers/oxen/printers_controller.rb
|
70
72
|
- app/jobs/background_printer_job.rb
|
@@ -74,6 +76,7 @@ files:
|
|
74
76
|
- app/models/ox_printer.rb
|
75
77
|
- app/models/ox_template.rb
|
76
78
|
- app/policies/oxen/print_job_policy.rb
|
79
|
+
- app/views/layouts/1mailer.html.haml
|
77
80
|
- app/views/oxen/print_jobs/_form.html.haml
|
78
81
|
- app/views/oxen/print_jobs/_print_job.html.haml
|
79
82
|
- app/views/oxen/print_jobs/_print_jobs.html.haml
|
@@ -98,6 +101,7 @@ files:
|
|
98
101
|
- lib/generators/printer/templates/print_job.rb
|
99
102
|
- lib/generators/printer/templates/printable.rb
|
100
103
|
- lib/generators/printer/templates/printer.rb
|
104
|
+
- lib/generators/printer/templates/template.rb
|
101
105
|
- lib/java_pdf/LICENSE
|
102
106
|
- lib/java_pdf/LICENSE-LGPL-2.1.txt
|
103
107
|
- lib/java_pdf/LICENSE-W3C-TEST
|