ig3tool 0.2.1 → 0.3.0

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.
@@ -8,14 +8,9 @@ module Ig3tool
8
8
 
9
9
  attr :glade
10
10
 
11
- #def initialize(path_or_data, root = nil, domain = nil, localedir = nil, flag = GladeXML::FILE)
12
11
  def initialize
13
12
  super("printing.glade")
14
13
 
15
- #$client = Client.new("infogroep.be")
16
-
17
- #bindtextdomain(domain, localedir, nil, "UTF-8")
18
- #@glade = GladeXML.new(path_or_data, root, domain, localedir, flag) {|handler| method(handler)}
19
14
 
20
15
  @tabs = @glade.get_widget("tabs")
21
16
 
@@ -25,6 +20,7 @@ module Ig3tool
25
20
  @email = @glade.get_widget("email")
26
21
  @saldo = @glade.get_widget("saldo")
27
22
  @notification = @glade.get_widget("notification")
23
+ @log_notification = @glade.get_widget("log_notification")
28
24
  @apply = @glade.get_widget("apply")
29
25
  @clear = @glade.get_widget("clear")
30
26
  @delta = @glade.get_widget("delta")
@@ -35,7 +31,22 @@ module Ig3tool
35
31
  r = Gtk::CellRendererText.new
36
32
  @usernames.insert_column(-1, "username", r, :text => 1)
37
33
  @usernames.enable_search = true
38
-
34
+
35
+
36
+ # ALIASES
37
+ @alias_debugger = @glade.get_widget("alias_debugger")
38
+ @alias_notification = @glade.get_widget("alias_notification")
39
+ @alias_username = @glade.get_widget("alias_username")
40
+ @alias_alias = @glade.get_widget("alias_alias")
41
+ @aliases = @glade.get_widget("aliases")
42
+ @aliases.model = @aliases_store = Gtk::ListStore.new(Object, String)
43
+ ar = Gtk::CellRendererText.new
44
+ @aliases.insert_column(-1, "alias", ar, :text => 1)
45
+ @aliases.enable_search = true
46
+
47
+ make_debugger_combo(@alias_debugger)
48
+
49
+ # LOG
39
50
 
40
51
  @filteredlog = @glade.get_widget("filteredlog")
41
52
  @filteredlog.model = @filteredlog_store = Gtk::ListStore.new(Object, String)
@@ -52,7 +63,7 @@ module Ig3tool
52
63
 
53
64
 
54
65
  @log = @glade.get_widget("log")
55
- @log.model = @log_store = Gtk::ListStore.new(Object, String, String, String, String, String, String, String, String)
66
+ @log.model = @log_store = Gtk::ListStore.new(Object)
56
67
  l = Gtk::CellRendererText.new
57
68
  @log.insert_column(-1, "time", l) do |tvc, cell, m, iter|
58
69
  cell.text = Time.parse(iter[0].time).strftime("%d/%m %H:%M")
@@ -80,41 +91,186 @@ module Ig3tool
80
91
  cell.text = iter[0].job
81
92
  end
82
93
 
94
+
95
+
83
96
  _update_usernames
84
97
  _update_log
85
98
  @statussearch.active = 0
99
+ make_menu
100
+ make_bigmenu
101
+ end
86
102
 
103
+
104
+ def log_click(w, event)
105
+ if event.kind_of? Gdk::EventButton and event.button == 3
106
+ @log_menu.popup(nil, nil, event.button, event.time)
107
+ end
108
+ end
109
+ def biglog_click(w, event)
110
+ if event.kind_of? Gdk::EventButton and event.button == 3
111
+ @log_big_menu.popup(nil, nil, event.button, event.time)
112
+ end
87
113
  end
88
114
 
89
- def fl_row_activated(view, path, col)
90
- logentry = @filteredlog.model.get_iter(path)[0]
91
- if logentry.category != "print"
115
+ def make_menu
116
+ @log_menu = Gtk::Menu.new
117
+ log_menu_refund_item = Gtk::MenuItem.new("refund")
118
+ log_menu_show_item = Gtk::MenuItem.new("show")
119
+ # Treeview heeft default Mode Gtk::SELECTION_SINGLE
120
+ log_menu_show_item.signal_connect("activate") {
121
+ @filteredlog.selection.selected_each do |model, path, iter|
122
+ logentry = iter[0]
92
123
  _show(logentry.username)
93
- else
124
+ end
125
+ }
126
+ log_menu_refund_item.signal_connect("activate") {
127
+ @filteredlog.selection.selected_each do |model, path, iter|
128
+ logentry = iter[0]
94
129
  begin
130
+ raise IG3Error, "the imps can only refund printjobs" if logentry.category != "print"
95
131
  $client.print_refund!({"logid" => logentry["id"]})
96
132
  @notification.text = "refunded print of #{logentry["amount"]} to #{logentry["username"]}"
97
133
  _update_log
98
134
  rescue Exception => e
99
135
  #puts "ERR: " + e.message.to_s
100
- @notification.text = (e.class.to_s + " - " + e.message).smaller
136
+ @notification.text = (e.class.to_s + " - " + e.message).smaller
101
137
  end
102
- end
103
- end
138
+ end
139
+ #_delete(iter[0],false)
140
+ #model.remove(iter) # Verwijder uit de lijst
141
+ }
104
142
 
105
- def log_row_activated(view, path, col)
106
- logentry = @filteredlog.model.get_iter(path)[0]
107
- if logentry.category != "print"
143
+ @log_menu.append(log_menu_show_item)
144
+ @log_menu.append(log_menu_refund_item)
145
+ @log_menu.show_all
146
+
147
+ end
148
+
149
+ def make_bigmenu
150
+ @log_big_menu = Gtk::Menu.new
151
+ log_menu_refund_item = Gtk::MenuItem.new("refund")
152
+ log_menu_show_item = Gtk::MenuItem.new("show")
153
+ # Treeview heeft default Mode Gtk::SELECTION_SINGLE
154
+ log_menu_show_item.signal_connect("activate") {
155
+ @log.selection.selected_each do |model, path, iter|
156
+ logentry = iter[0]
108
157
  _show(logentry.username)
109
- else
158
+ @tabs.page = 0
159
+ end
160
+ }
161
+ log_menu_refund_item.signal_connect("activate") {
162
+ @log.selection.selected_each do |model, path, iter|
163
+ logentry = iter[0]
110
164
  begin
165
+ raise IG3Error, "the imps can only refund printjobs" if logentry.category != "print"
111
166
  $client.print_refund!({"logid" => logentry["id"]})
112
- @notification.text = "refunded print of #{logentry["amount"]} to #{logentry["username"]}"
167
+ @log_notification.text = "refunded print of #{logentry["amount"]} to #{logentry["username"]}"
168
+ _update_log
113
169
  rescue Exception => e
114
170
  #puts "ERR: " + e.message.to_s
115
- @notification.text = (e.class.to_s + " - " + e.message).smaller
171
+ @log_notification.text = (e.class.to_s + " - " + e.message).smaller
116
172
  end
173
+ end
174
+ #_delete(iter[0],false)
175
+ #model.remove(iter) # Verwijder uit de lijst
176
+ }
177
+
178
+ @log_big_menu.append(log_menu_show_item)
179
+ @log_big_menu.append(log_menu_refund_item)
180
+ @log_big_menu.show_all
181
+
182
+ end
183
+
184
+
185
+
186
+ def alias_apply(w)
187
+ begin
188
+ username = @alias_debugger.active_iter[0]
189
+ a = @alias_alias.text.strip
190
+ $client.print_addalias!("username" => username.username, "alias" => a)
191
+ @alias_notification.text = "alias #{a} for #{username.username} added!"
192
+ @alias_alias.text = ""
193
+ _update_aliases(username.username)
194
+ rescue Exception => e
195
+ @alias_notification.text = e.message
117
196
  end
197
+
198
+ end
199
+
200
+ def select_alias(widget, path, col)
201
+ a = widget.model.get_iter(path)[0]
202
+ @alias_alias.text = a.alias
203
+ @alias_username.text = a.username
204
+ end
205
+
206
+ def alias_cancel(w)
207
+ @alias_username.text = ""
208
+ @alias_alias.text = ""
209
+ @alias_notification.text = ""
210
+ end
211
+
212
+ def alias_delete(w)
213
+ begin
214
+ username = @alias_debugger.active_iter[0]
215
+ a = @alias_alias.text.strip
216
+ $client.print_removealias!("username" => username.username, "alias" => a)
217
+ @alias_notification.text = "alias #{a} for #{username.username} removed!"
218
+ @alias_alias.text = ""
219
+ _update_aliases(username.username)
220
+ rescue Exception => e
221
+ @alias_notification.text = e.message
222
+ end
223
+ end
224
+
225
+ def alias_delete_all(w)
226
+ begin
227
+ username = @alias_debugger.active_iter[0]
228
+ $client.print_removealiases!("username" => username.username)
229
+ @alias_notification.text = "all aliases for #{username.username} removed!"
230
+ @alias_alias.text = ""
231
+ _update_aliases(username.username)
232
+ rescue Exception => e
233
+ @alias_notification.text = e.message
234
+ end
235
+ end
236
+
237
+ def alias_changed(widget)
238
+ alias_cancel(nil)
239
+ username = @alias_debugger.active_iter[0].username
240
+ puts username
241
+ @alias_username.text = username
242
+ _update_aliases(username)
243
+ end
244
+
245
+ def fl_row_activated(view, path, col)
246
+ logentry = @filteredlog.model.get_iter(path)[0]
247
+ #if logentry.category != "print"
248
+ _show(logentry.username)
249
+ #else
250
+ # begin
251
+ # $client.print_refund!({"logid" => logentry["id"]})
252
+ # @notification.text = "refunded print of #{logentry["amount"]} to #{logentry["username"]}"
253
+ # _update_log
254
+ # rescue Exception => e
255
+ # #puts "ERR: " + e.message.to_s
256
+ # @notification.text = (e.class.to_s + " - " + e.message).smaller
257
+ # end
258
+ #end
259
+ end
260
+
261
+ def log_row_activated(view, path, col)
262
+ logentry = @log.model.get_iter(path)[0]
263
+ #if logentry.category != "print"
264
+ _show(logentry.username)
265
+ #else
266
+ # begin
267
+ # $client.print_refund!({"logid" => logentry["id"]})
268
+ # @notification.text = "refunded print of #{logentry["amount"]} to #{logentry["username"]}"
269
+ # rescue Exception => e
270
+ # #puts "ERR: " + e.message.to_s
271
+ # @notification.text = (e.class.to_s + " - " + e.message).smaller
272
+ # end
273
+ #end
118
274
  @tabs.page = 0
119
275
  end
120
276
 
@@ -132,6 +288,7 @@ module Ig3tool
132
288
 
133
289
  def refreshlog(widget) #refreshes the big log on page 2
134
290
  _update_biglog
291
+ @log_notification.text = ""
135
292
  end
136
293
 
137
294
  def to_apply(widget)
@@ -158,10 +315,13 @@ module Ig3tool
158
315
  end
159
316
 
160
317
  def tabfocus(a,b,c)
161
- if c == 1
318
+ case c
319
+ when 1
162
320
  _update_biglog
163
- else
321
+ when 0
164
322
  refresh(nil)
323
+ when 2
324
+ _update_aliases(nil)
165
325
  end
166
326
  end
167
327
 
@@ -349,6 +509,21 @@ module Ig3tool
349
509
  @usernames.model = @usernames_store
350
510
  end
351
511
  end
512
+
513
+ def _update_aliases(username)
514
+ @aliases.model = nil
515
+ @aliases_store.clear
516
+ Thread.new do
517
+ users = $client.print_aliases
518
+ users.delete_if{|u| u.username != username} unless username.nil?
519
+ users.each do |user|
520
+ row = @aliases_store.append
521
+ row[1] = user.alias
522
+ row[0] = user
523
+ end
524
+ @aliases.model = @aliases_store
525
+ end
526
+ end
352
527
 
353
528
 
354
529
  def _update_log(clear=true)
@@ -69,13 +69,22 @@ module Ig3tool
69
69
  @glade = nil
70
70
 
71
71
  @selected_product = nil
72
+ @barcode_entry.editable = true
72
73
 
73
74
  end
74
75
 
76
+ def barcode_ins(a,b,c,d)
77
+ _clear_most
78
+ end
79
+
80
+ def barcode_del(a,b,c)
81
+ _clear_most
82
+ end
83
+
75
84
  def product_row_activated (widget, path, column)
76
85
  prod = @product_view.selection.selected[0]
77
86
  @selected_product = prod
78
- @barcode_entry.editable = false
87
+ #@barcode_entry.editable = false
79
88
  @name_entry.text = prod.name
80
89
  @barcode_entry.text = prod.barcode
81
90
  @category.child.text = prod.category
@@ -122,7 +131,6 @@ module Ig3tool
122
131
  private
123
132
  def _clear
124
133
  @selected_product = nil
125
- @barcode_entry.editable = true
126
134
  @barcode_entry.text = ""
127
135
  @name_entry.text = ""
128
136
  @category.child.text = ""
@@ -134,6 +142,19 @@ module Ig3tool
134
142
  @new_stock.text = ""
135
143
  _fill_purchases
136
144
  end
145
+
146
+ def _clear_most
147
+ @selected_product = nil
148
+ @name_entry.text = ""
149
+ @category.child.text = ""
150
+ @dprice_entry.text = ""
151
+ @lprice_entry.text = ""
152
+ @nlprice_entry.text = ""
153
+ @stock_label.text = "0"
154
+ @new_price.text = ""
155
+ @new_stock.text = ""
156
+ _fill_purchases
157
+ end
137
158
 
138
159
  def _fill_products (products)
139
160
  @product_view.model = nil