tgios 0.0.29 → 0.0.30

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDgwMjVjYThlM2M3YzExYTRjNGE0NTMxMDVmNDBkNjRlNjcxMmY3Nw==
4
+ MTAzMDBiY2EyMjc5ZTI5ZDVkNzgwMWRlNDE5MTU1YzgwNGQ4ZDE1Mg==
5
5
  data.tar.gz: !binary |-
6
- NDliZjc4NTNiYWFjM2VkMWQ5YWZiNTBhMjJlNzE3OGI5MDcwMTg0Ng==
6
+ N2EyODYxMjJkMDAyYmU4ZjJhNjYwZjE5YWJmYzI3NTg0YWExOGY3MA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTk3ODVmNTZjZDg4NDYzMTdiOTZhYjJlMTUxMTkzOTA2NjIxM2M4NDFjYjc0
10
- ODdkYTE2YmY1ZWMwMjkyODViYzYyYzBmYjRkYzU4ZmE2ZWEyZjg1NTQzM2Ex
11
- M2QzZWJjYTQ4ZjA4MjE5OTVlMjg0NjY0YTlkZTg0NjNiOGU1NzQ=
9
+ YzBlNGViMDMwMTY5NzRiM2JjYjNjZjY5NDYxYzllZWI3ZjZmMzM3NWMxZjRh
10
+ ZGE0MTNlNDI2YWUyOWY1MjNlNzk0NDJlNzQxNjI2NWVmNmFkOTcyODRlZDgy
11
+ ZjBkOGM0MGI0NjNkODgyZDFkNGE0OTliNWJlMGIwMmNmYTgwNDE=
12
12
  data.tar.gz: !binary |-
13
- MTg5OWFjZDIyNGQ4NzgwYTQzZjRkOTUxM2E1ZWZmYmE4ODE5OWJiODQyMGRm
14
- MDU2ZTJkMzJjYzRhZDgxZjI4ODE3NmMwYjRmNDY5NjdmOTJiMzZlNGRiMmVl
15
- OTcwZjgxNWNkNTViOTkzNTI3ZTYwMzljYmQwYmMyOTk0ZDcwNzI=
13
+ MDVhMGU3ZDVjMGM3NTI3OWZhNzQ5ODNmZDdlM2IzNDgxOGU2N2ZhZmUyZWI4
14
+ N2YzNDBkY2IxMWIxMjAwZjQ2ZGRlOTZkNzhiNzgwMjRjMjAwODhlZjMwNWFm
15
+ MjdmNTIwZTBlN2MzNDZmODc4ZDI5YTY3YWIyZDYzMzJjNDU2M2M=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tgios (0.0.28)
4
+ tgios (0.0.30)
5
5
  awesome_print_motion
6
6
  motion-layout
7
7
  plastic_cup (>= 0.1.1)
@@ -16,18 +16,18 @@ module Tgios
16
16
  end
17
17
 
18
18
  def show_animated
19
+ new_frame = self.frame
20
+ new_frame.origin.y = self.superview.frame.size.height - self.bounds.size.height
19
21
  @show_notification ||= NSNotification.notificationWithName(
20
22
  UIKeyboardWillShowNotification,
21
23
  object: self,
22
- userInfo:{UIKeyboardFrameEndUserInfoKey=> NSValue.valueWithCGRect(self.frame),
24
+ userInfo:{UIKeyboardFrameEndUserInfoKey=> NSValue.valueWithCGRect(self.superview.convertRect(new_frame, toView: nil)),
23
25
  UIKeyboardAnimationCurveUserInfoKey=> UIViewAnimationOptionCurveEaseInOut,
24
26
  UIKeyboardAnimationDurationUserInfoKey=> DURATION})
25
27
  UIView.animateWithDuration(DURATION, animations: ->{
26
28
  NSNotificationCenter.defaultCenter.postNotification(@show_notification)
27
29
  self.alpha = 1.0
28
- frame = self.frame
29
- frame.origin.y = self.superview.frame.size.height - self.bounds.size.height
30
- self.frame = frame
30
+ self.frame = new_frame
31
31
  })
32
32
  @is_shown = true
33
33
  end
@@ -21,7 +21,7 @@ module Tgios
21
21
  },
22
22
  clipsToBounds: true}.merge(options))
23
23
  CommonUIUtility.get_image(item) do |image|
24
- image_view.image = image
24
+ image_view.image = image unless image.nil?
25
25
  end
26
26
  image_views << image_view
27
27
  end
@@ -2,7 +2,7 @@ module Tgios
2
2
  class SearchController < ExtendedUIViewController
3
3
  include ExtendedUITableView
4
4
  Events=[:record_selected, :search, :after_layout, :load_more]
5
- attr_accessor :table_list_binding_options, :pop_after_selected, :hide_keyboard, :field_name
5
+ attr_accessor :table_list_binding_options, :pop_after_selected, :hide_keyboard, :field_name, :instant_search
6
6
 
7
7
  def on(event_name, &block)
8
8
  raise ArgumentError.new("Event not found, valid events are: [#{Events.join(', ')}]") unless Events.include?(event_name)
@@ -42,12 +42,19 @@ module Tgios
42
42
 
43
43
  def searchBarSearchButtonClicked(searchBar)
44
44
  searchBar.resignFirstResponder
45
+ call_search(searchBar.text, true)
46
+ end
47
+
48
+ def searchBar(searchBar, textDidChange: searchText)
49
+ call_search(searchText) if @instant_search
50
+ end
45
51
 
52
+ def call_search(text, select_one=false)
46
53
  unless @events.nil? || @events[:search].nil?
47
- @events[:search].call(searchBar.text) do |success, result|
54
+ @events[:search].call(text) do |success, result|
48
55
  if success
49
56
  @result=result
50
- if @result.count == 1
57
+ if @result.count == 1 && select_one
51
58
  select_record(@result.first)
52
59
  else
53
60
  @search_result_table_binding.reload(@result) unless @search_result_table_binding.nil?
@@ -26,7 +26,8 @@ module Tgios
26
26
  end
27
27
 
28
28
  def pickerView(pickerView, titleForRow: row, forComponent: component)
29
- @list[row][@display_field]
29
+ record = @list[row]
30
+ record.is_a?(Hash) ? record[@display_field] : record.send(@display_field)
30
31
  end
31
32
 
32
33
  def pickerView(pickerView, didSelectRow:row, inComponent:component)
@@ -122,12 +122,13 @@ module Tgios
122
122
  field_set = field_set_at_index_path(index_path)
123
123
  real_fs = field_set
124
124
  real_fs = real_fs[:child_field] unless real_fs[:child_index].nil?
125
- if real_fs[:delete] == true
125
+ if real_fs[:delete] == true # TODO: change :delete to :delete_row after trim-ios changed
126
126
  unless @events[:delete_row].nil?
127
127
  @events[:delete_row].call(field_set, @models[index_path.section].send(field_set[:name]), {tableView: tableView, commitEditingStyle: editingStyle, forRowAtIndexPath:index_path}) do |success|
128
128
  tableView.deleteRowsAtIndexPaths([index_path], withRowAnimation: UITableViewRowAnimationFade) if success
129
129
  end
130
130
  end
131
+ elsif real_fs[:delete_section] == true
131
132
  unless @events[:delete_section].nil?
132
133
  @events[:delete_section].call(field_set, @models[index_path.section], {tableView: tableView, commitEditingStyle:editingStyle, forRowAtIndexPath:index_path}) do |success|
133
134
  tableView.deleteSections(NSIndexSet.indexSetWithIndex(index_path.section), withRowAnimation: UITableViewRowAnimationFade) if success
@@ -139,8 +140,15 @@ module Tgios
139
140
 
140
141
  def tableView(tableView, canEditRowAtIndexPath: index_path)
141
142
  field_set = field_set_at_index_path(index_path)
142
- field_set = field_set[:child_field] unless field_set[:child_index].nil?
143
- return field_set[:delete] == true
143
+ unless field_set.nil?
144
+ can_edit = @events[:can_edit].call(field_set, index_path) unless @events[:can_edit].nil?
145
+ if can_edit.nil?
146
+ field_set = field_set[:child_field] unless field_set[:child_index].nil?
147
+ can_edit = field_set[:delete] == true || field_set[:delete_section] == true
148
+ end
149
+ end
150
+ can_edit = false if can_edit.nil?
151
+ can_edit
144
152
  end
145
153
 
146
154
  def tableView(tableView, heightForRowAtIndexPath: index_path)
@@ -63,13 +63,15 @@ module Tgios
63
63
  end
64
64
 
65
65
  def shrink_table_view(note)
66
- # TODO: don't shrink when table frame bottom is above the keyboard
67
66
  @shrinking = true
68
67
  rect = note[UIKeyboardFrameEndUserInfoKey].CGRectValue
68
+ table_rect= @table.superview.convertRect(@table.frame, toView:nil)
69
+ intersect = CGRectIntersection(rect, table_rect)
70
+ expand_height = intersect.present? ? intersect.size.height : 0
69
71
  if @expanding
70
- @shrink_height = rect.size.height
72
+ @shrink_height = expand_height
71
73
  else
72
- set_content_inset_bottom(rect.size.height)
74
+ set_content_inset_bottom(expand_height)
73
75
  end
74
76
  end
75
77
 
@@ -104,7 +106,7 @@ module Tgios
104
106
  end
105
107
 
106
108
  def scroll_to_index_path(index_path)
107
- @table.scrollToRowAtIndexPath(index_path, atScrollPosition: UITableViewScrollPositionBottom, animated: true)
109
+ @table.scrollToRowAtIndexPath(index_path, atScrollPosition: UITableViewScrollPositionMiddle, animated: true)
108
110
  @index_path_to_scroll = nil
109
111
  end
110
112
 
@@ -27,7 +27,11 @@ module Tgios
27
27
  }) unless Base.get_style_sheet(:decimal_button)
28
28
 
29
29
  @field_name=field_name
30
- @options=options
30
+ @options=options.dup
31
+ %w(precision keyboard ignore_number_addon type auto_correct auto_capitalize reduce_font_size field_style).each do |k|
32
+ instance_variable_set("@#{k}", @options.delete(k.to_sym))
33
+ end
34
+
31
35
  @events={}
32
36
  @ui_field=WeakRef.new(ui_field)
33
37
  @model=WeakRef.new(model)
@@ -43,7 +47,7 @@ module Tgios
43
47
  @ui_field.text= if val.respond_to?(:round)
44
48
  default_precision = 0
45
49
  default_precision = 6 unless val.is_a?(Integer)
46
- val.round((@options[:precision] || default_precision)).to_s
50
+ val.round((@precision || default_precision)).to_s
47
51
  else
48
52
  val.to_s
49
53
  end
@@ -122,16 +126,16 @@ module Tgios
122
126
  end
123
127
 
124
128
  def is_decimal?
125
- @options[:keyboard] == :decimal && is_number_pad?
129
+ @keyboard == :decimal && is_number_pad?
126
130
  end
127
131
 
128
132
  def add_decimal_button
129
- if is_decimal? && @ui_field.delegate == self && !@options[:ignore_number_addon]
133
+ if is_decimal? && @ui_field.delegate == self && !@ignore_number_addon
130
134
  temp_window = (UIApplication.sharedApplication.windows[1] || UIApplication.sharedApplication.windows[0])
131
135
  temp_window.subviews.each do |keyboard|
132
136
  if keyboard.description.hasPrefix('<UIPeripheralHost')
133
137
  if @decimal_button.nil?
134
- @decimal_button = PlasticCup::Base.style(UIButton.custom, :decimal_button)
138
+ @decimal_button = Base.style(UIButton.custom, :decimal_button)
135
139
  @decimal_button.addTarget(self, action: 'decimal_tapped', forControlEvents: UIControlEventTouchUpInside)
136
140
  end
137
141
  keyboard.addSubview(@decimal_button)
@@ -180,12 +184,13 @@ module Tgios
180
184
  ####
181
185
 
182
186
  def update_ui_field_style
183
- @ui_field.secureTextEntry=@options[:type]==:password
184
- @ui_field.autocorrectionType = get_auto_correct_type(@options[:auto_correct])
185
- @ui_field.autocapitalizationType = get_auto_capitalize_type(@options[:auto_capitalize])
186
- @ui_field.keyboardType = get_keyboard_type(@options[:keyboard])
187
- @ui_field.enabled = @options[:type] != :label
188
- @ui_field.adjustsFontSizeToFitWidth = @options[:reduce_font_size]
187
+ Base.style(@ui_field, @field_style) if @field_style.present?
188
+ @ui_field.secureTextEntry=@type==:password
189
+ @ui_field.autocorrectionType = get_auto_correct_type(@auto_correct)
190
+ @ui_field.autocapitalizationType = get_auto_capitalize_type(@auto_capitalize)
191
+ @ui_field.keyboardType = get_keyboard_type(@keyboard)
192
+ @ui_field.enabled = @type != :label
193
+ @ui_field.adjustsFontSizeToFitWidth = @reduce_font_size
189
194
 
190
195
  if @model.respond_to?(:has_error?) && @model.has_error?(@field_name)
191
196
  @ui_field.leftViewMode = UITextFieldViewModeAlways
@@ -197,15 +202,15 @@ module Tgios
197
202
  textAlignment: :center.uialignment,
198
203
  text: '!',
199
204
  tag: 888}
200
- error_label = PlasticCup::Base.style(UILabel.new, error_label_styles)
205
+ error_label = Base.style(UILabel.new, error_label_styles)
201
206
  @ui_field.leftView = error_label
202
207
  end
203
208
  else
204
209
  @ui_field.leftViewMode = UITextFieldViewModeNever
205
210
  end
206
211
 
207
- if is_number_pad? && !@options[:ignore_number_addon]
208
- text_toolbar = PlasticCup::Base.style(UIToolbar.new, frame: CGRectMake(0,0,320,44))
212
+ if is_number_pad? && !@ignore_number_addon
213
+ text_toolbar = Base.style(UIToolbar.new, frame: CGRectMake(0,0,320,44))
209
214
  done_button = UIBarButtonItem.alloc.initWithBarButtonSystemItem(UIBarButtonSystemItemDone, target: self, action: 'textFieldShouldReturn:')
210
215
  text_toolbar.items=[
211
216
  UIBarButtonItem.flexible_space, done_button
data/lib/tgios/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Tgios
2
- VERSION = '0.0.29'
2
+ VERSION = '0.0.30'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tgios
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.29
4
+ version: 0.0.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - April Tsang
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-07 00:00:00.000000000 Z
12
+ date: 2014-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sugarcube