artfully_ose 1.2.0.pre.23 → 1.2.0.pre.24

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.
Files changed (241) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/application.js +44 -11
  3. data/app/assets/javascripts/custom/inline-people-search.js +40 -40
  4. data/app/assets/javascripts/households.js +59 -0
  5. data/app/assets/javascripts/jquery-migrate-1.2.1.min.js +2 -0
  6. data/app/assets/javascripts/relationships.js +63 -0
  7. data/app/assets/stylesheets/application.sass +57 -10
  8. data/app/assets/stylesheets/sass/_event_list.sass +12 -1
  9. data/app/assets/stylesheets/sass/cart.sass +0 -6
  10. data/app/assets/stylesheets/storefront.css +1 -0
  11. data/app/concerns/pdf_generation.rb +4 -1
  12. data/app/controllers/events_controller.rb +11 -2
  13. data/app/controllers/events_pass_types_controller.rb +2 -0
  14. data/app/controllers/exchanges_controller.rb +1 -1
  15. data/app/controllers/households_controller.rb +71 -0
  16. data/app/controllers/member_cards_controller.rb +45 -0
  17. data/app/controllers/members/sessions_controller.rb +14 -0
  18. data/app/controllers/membership_comps_controller.rb +7 -2
  19. data/app/controllers/membership_types_controller.rb +8 -3
  20. data/app/controllers/mobile/orders_controller.rb +3 -2
  21. data/app/controllers/mobile/shows_controller.rb +6 -0
  22. data/app/controllers/mobile/tickets_controller.rb +32 -3
  23. data/app/controllers/mobile/users_controller.rb +11 -13
  24. data/app/controllers/orders_controller.rb +44 -2
  25. data/app/controllers/pass_types_controller.rb +11 -0
  26. data/app/controllers/passes_controller.rb +40 -1
  27. data/app/controllers/people_controller.rb +31 -15
  28. data/app/controllers/relationships_controller.rb +15 -0
  29. data/app/controllers/sales_controller.rb +12 -12
  30. data/app/controllers/searches_controller.rb +1 -1
  31. data/app/controllers/shows_controller.rb +10 -4
  32. data/app/controllers/slices_controller.rb +3 -2
  33. data/app/controllers/statements_controller.rb +1 -1
  34. data/app/controllers/store/memberships_controller.rb +5 -2
  35. data/app/controllers/store/orders_controller.rb +14 -13
  36. data/app/controllers/store/retrievals_controller.rb +29 -0
  37. data/app/helpers/artfully_ose_helper.rb +12 -4
  38. data/app/helpers/households_helper.rb +7 -0
  39. data/app/helpers/link_helper.rb +5 -5
  40. data/app/helpers/relationships_helper.rb +26 -0
  41. data/app/helpers/searches_helper.rb +13 -0
  42. data/app/helpers/suggested_households_helper.rb +5 -0
  43. data/app/mailers/pass_mailer.rb +17 -0
  44. data/app/models/ability.rb +1 -0
  45. data/app/models/actions/go_action.rb +3 -2
  46. data/app/models/address.rb +27 -13
  47. data/app/models/cart.rb +15 -0
  48. data/app/models/company.rb +1 -1
  49. data/app/models/database_views/item_view.rb +56 -13
  50. data/app/models/door_list.rb +6 -3
  51. data/app/models/event.rb +22 -1
  52. data/app/models/events_pass_type.rb +3 -1
  53. data/app/models/extendable.rb +6 -0
  54. data/app/models/household.rb +61 -0
  55. data/app/models/household_suggester.rb +58 -0
  56. data/app/models/imports/events_import.rb +10 -5
  57. data/app/models/individual.rb +3 -1
  58. data/app/models/item.rb +3 -1
  59. data/app/models/job/cleanup_suggested_households_job.rb +17 -0
  60. data/app/models/job/destroy_show_job.rb +10 -0
  61. data/app/models/job/geocode_address_job.rb +11 -0
  62. data/app/models/job/order_processor.rb +20 -8
  63. data/app/models/job/refund_order_processor.rb +16 -0
  64. data/app/models/kit.rb +1 -1
  65. data/app/models/kits/mailchimp_kit.rb +5 -3
  66. data/app/models/kits/membership_kit.rb +1 -1
  67. data/app/models/member.rb +19 -0
  68. data/app/models/member_card_generator.rb +63 -0
  69. data/app/models/member_walkup.rb +150 -0
  70. data/app/models/membership.rb +2 -5
  71. data/app/models/membership_comp.rb +1 -0
  72. data/app/models/membership_sale_search.rb +36 -0
  73. data/app/models/membership_type.rb +8 -2
  74. data/app/models/order.rb +32 -2
  75. data/app/models/order_handler.rb +58 -41
  76. data/app/models/orders/refund_order.rb +4 -0
  77. data/app/models/organization.rb +5 -0
  78. data/app/models/organization_ability.rb +1 -0
  79. data/app/models/pass.rb +143 -5
  80. data/app/models/pass_summary.rb +18 -0
  81. data/app/models/pass_type.rb +7 -1
  82. data/app/models/person.rb +83 -32
  83. data/app/models/relation.rb +27 -0
  84. data/app/models/relation_builder.rb +32 -0
  85. data/app/models/relationship.rb +55 -0
  86. data/app/models/relationship_builder.rb +12 -0
  87. data/app/models/relationship_validator.rb +46 -0
  88. data/app/models/relationships_kit.rb +31 -0
  89. data/app/models/search.rb +152 -57
  90. data/app/models/show.rb +38 -18
  91. data/app/models/slices.rb +25 -8
  92. data/app/models/statement.rb +32 -5
  93. data/app/models/suggested_household.rb +24 -0
  94. data/app/models/ticket.rb +1 -4
  95. data/app/models/ticket/locker.rb +2 -1
  96. data/app/models/ticket/pricing.rb +10 -1
  97. data/app/models/ticket_type.rb +12 -1
  98. data/app/models/valuation/lifetime_memberships.rb +24 -0
  99. data/app/models/valuation/lifetime_ticket_value.rb +1 -1
  100. data/app/models/venue.rb +21 -7
  101. data/app/views/actions/_form.html.haml +6 -6
  102. data/app/views/actions/get/_show.html.haml +1 -1
  103. data/app/views/actions/give/_show.html.haml +1 -1
  104. data/app/views/actions/shared/_show.html.haml +1 -1
  105. data/app/views/discounts/_discount_section_fields.html.haml +1 -1
  106. data/app/views/discounts/index.html.haml +1 -1
  107. data/app/views/events/_day_date_show.html.haml +2 -2
  108. data/app/views/events/_discount_section_fields.html.haml +1 -1
  109. data/app/views/events/_list.html.haml +10 -5
  110. data/app/views/events/_menu.html.haml +5 -5
  111. data/app/views/events/_section_fields.html.haml +1 -1
  112. data/app/views/events/_ticket_type_fields.html.haml +2 -2
  113. data/app/views/events/index.html.haml +20 -3
  114. data/app/views/events/temp_discount_form.html.haml +1 -1
  115. data/app/views/events/temp_discounts_index.html.haml +1 -1
  116. data/app/views/events_pass_types/_form.html.haml +17 -0
  117. data/app/views/events_pass_types/index.html.haml +5 -2
  118. data/app/views/exchanges/new.html.haml +1 -1
  119. data/app/views/households/_action.html.haml +24 -0
  120. data/app/views/households/_edit_modal.html.haml +143 -0
  121. data/app/views/households/_form.html.haml +26 -0
  122. data/app/views/households/_header.html.haml +25 -0
  123. data/app/views/households/_individual_fields.html.haml +8 -0
  124. data/app/views/households/_list.html.haml +10 -0
  125. data/app/views/households/_note.html.haml +33 -0
  126. data/app/views/households/edit.html.haml +1 -0
  127. data/app/views/households/index.html.haml +13 -0
  128. data/app/views/households/new.html.haml +14 -0
  129. data/app/views/households/show.html.haml +72 -0
  130. data/app/views/households/suggested.html.haml +38 -0
  131. data/app/views/imports/donations/_pending.html.haml +1 -1
  132. data/app/views/imports/events/_pending.html.haml +1 -1
  133. data/app/views/imports/people/_imported.html.haml +2 -2
  134. data/app/views/imports/people/_new.html.haml +3 -3
  135. data/app/views/imports/people/_pending.html.haml +2 -2
  136. data/app/views/imports/people/_recalled.html.haml +1 -1
  137. data/app/views/imports/shared/_sidebar.html.haml +1 -1
  138. data/app/views/index/dashboard.html.haml +4 -4
  139. data/app/views/layouts/_flash.html.haml +2 -2
  140. data/app/views/layouts/_menu.html.haml +2 -0
  141. data/app/views/layouts/storefront.html.haml +1 -1
  142. data/app/views/members/index/index.html.haml +1 -1
  143. data/app/views/membership_comps/confirm.html.haml +4 -3
  144. data/app/views/membership_comps/new.html.haml +21 -8
  145. data/app/views/membership_types/_form.html.haml +11 -0
  146. data/app/views/membership_types/index.html.haml +2 -2
  147. data/app/views/membership_types/type.html.haml +7 -4
  148. data/app/views/memberships/index.html.haml +7 -7
  149. data/app/views/merges/find_person.html.haml +1 -1
  150. data/app/views/notes/_note.html.haml +4 -4
  151. data/app/views/order_mailer/confirmation_for_refund.html.haml +8 -1
  152. data/app/views/orders/_item_table.haml +18 -5
  153. data/app/views/orders/_order_sidebar.html.haml +1 -1
  154. data/app/views/orders/membership.html.haml +104 -0
  155. data/app/views/orders/sales.html.haml +1 -1
  156. data/app/views/organizations/_form.html.haml +1 -1
  157. data/app/views/pass_mailer/pass_info_for.html.haml +21 -0
  158. data/app/views/pass_types/_form.html.haml +6 -0
  159. data/app/views/pass_types/_pass_type_fees.html.haml +0 -48
  160. data/app/views/pass_types/index.html.haml +4 -2
  161. data/app/views/passes/index.html.haml +95 -27
  162. data/app/views/pdfs/member_card_generator/blanks_usa_idc6.html.haml +109 -0
  163. data/app/views/people/_edit_modal.html.haml +35 -25
  164. data/app/views/people/_header.html.haml +10 -6
  165. data/app/views/people/_household_fields.html.haml +5 -0
  166. data/app/views/people/_phone_fields.html.haml +1 -1
  167. data/app/views/people/_relationship_fields.html.haml +14 -0
  168. data/app/views/people/_work_with_menu.html.haml +36 -0
  169. data/app/views/people/new.html.haml +1 -1
  170. data/app/views/people/show.html.haml +46 -8
  171. data/app/views/refunds/new.html.haml +4 -0
  172. data/app/views/relationships/index.html.haml +32 -0
  173. data/app/views/reports_mailer/daily.html.haml +41 -38
  174. data/app/views/sales/new.html.haml +1 -1
  175. data/app/views/searches/_form.html.haml +65 -17
  176. data/app/views/searches/_household.html.haml +7 -0
  177. data/app/views/searches/_person.html.haml +5 -2
  178. data/app/views/searches/new.html.haml +1 -1
  179. data/app/views/searches/show.html.haml +13 -5
  180. data/app/views/segments/show.html.haml +3 -3
  181. data/app/views/shared/_tags.html.haml +1 -1
  182. data/app/views/shows/_glance.html.haml +1 -1
  183. data/app/views/shows/_sections_table.html.haml +2 -2
  184. data/app/views/shows/_ticket_table.html.haml +1 -1
  185. data/app/views/shows/_work_with.html.haml +2 -2
  186. data/app/views/shows/door_list.html.haml +2 -2
  187. data/app/views/shows/door_list.pdf.haml +29 -0
  188. data/app/views/shows/index.html.haml +1 -1
  189. data/app/views/shows/show.html.haml +1 -1
  190. data/app/views/slices/index.html.haml +2 -1
  191. data/app/views/statements/_discounts_table.html.haml +1 -1
  192. data/app/views/statements/_order_location_table.html.haml +1 -1
  193. data/app/views/statements/_passes_table.html.haml +13 -16
  194. data/app/views/statements/_payment_method_table.haml +1 -1
  195. data/app/views/statements/_ticket_type_table.haml +5 -2
  196. data/app/views/statements/show.html.haml +2 -2
  197. data/app/views/store/checkouts/thanks.html.haml +3 -2
  198. data/app/views/store/events/index.html.haml +1 -1
  199. data/app/views/store/memberships/index.html.haml +9 -2
  200. data/app/views/store/orders/show.html.haml +10 -24
  201. data/app/views/store/passes/index.html.haml +1 -1
  202. data/app/views/store/retrievals/index.html.haml +11 -0
  203. data/app/views/store/shows/_show.html.haml +2 -2
  204. data/app/views/venues/edit.html.haml +3 -1
  205. data/config/routes.rb +21 -3
  206. data/db/migrate/20130916194547_add_relationships.rb +21 -0
  207. data/db/migrate/20131003134821_add_relationships_to_search.rb +7 -0
  208. data/db/migrate/20131003200508_add_starred_to_relationships.rb +5 -0
  209. data/db/migrate/20131015151550_add_households.rb +18 -0
  210. data/db/migrate/20131022183913_add_search_output_options.rb +24 -0
  211. data/db/migrate/20131025162155_default_search_filter_values.rb +10 -0
  212. data/db/migrate/20131025180139_unique_household_names.rb +8 -0
  213. data/db/migrate/20131106191847_add_suggested_households.rb +13 -0
  214. data/db/migrate/20131204162642_add_shared_address.rb +9 -0
  215. data/db/migrate/20131212164553_add_copy_to_individuals_option.rb +5 -0
  216. data/db/migrate/20140415212841_add_min_max_start_dates_to_searches.artfully_ose_engine.rb +6 -0
  217. data/db/migrate/20140422193345_add_email_copy_to_pass_type.rb +5 -0
  218. data/db/migrate/20140423181639_add_min_max_end_dates_to_searches.artfully_ose_engine.rb +6 -0
  219. data/db/migrate/20140423185921_add_cached_stats_to_event.rb +9 -0
  220. data/db/migrate/20140424174423_add_lifetime_memberships_to_people.artfully_ose_engine.rb +5 -0
  221. data/db/migrate/20140506155241_add_lpt_to_membership_type.rb +5 -0
  222. data/db/migrate/20140515143651_remove_show_stats_view.rb +6 -0
  223. data/db/migrate/20140521195853_add_deleted_at_to_pass_type.rb +5 -0
  224. data/db/migrate/20140522205554_add_limit_to_events_pass_types.rb +5 -0
  225. data/db/migrate/20140523180444_remove_tickets_purchased_from_passes.rb +5 -0
  226. data/lib/artfully_ose/common_abilities.rb +7 -1
  227. data/lib/artfully_ose/version.rb +1 -1
  228. data/spec/factories/household_factories.rb +8 -0
  229. data/spec/factories/organization_factories.rb +4 -0
  230. data/spec/factories/pass_type_factories.rb +11 -0
  231. data/spec/factories/user_factories.rb +1 -1
  232. metadata +92 -11
  233. data/app/assets/fonts/FontAwesome.otf +0 -0
  234. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  235. data/app/assets/fonts/fontawesome-webfont.svg +0 -284
  236. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  237. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  238. data/app/assets/stylesheets/font-awesome.sass +0 -759
  239. data/app/models/show_stats_view.rb +0 -10
  240. data/app/models/show_touch.rb +0 -12
  241. data/app/views/people/_comp_membership.html.haml +0 -23
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODcyYzg1ZTUzZmI5NjVlNzgzNDdmMTcyN2EwNDMwOTI1NTJjZjQ1Zg==
4
+ Y2U1MDlhODQyYjllZWM4ZGEyZGJjZjhjMjYyZDM0MWZlZDU2ZmRlMQ==
5
5
  data.tar.gz: !binary |-
6
- MDljN2U0ODMzZWZiMWY2NWEwOTU4ZWE0ZWZjYTIzOTYzZjEyYTNkOQ==
6
+ MmU5MTU5NzRmMjM2Y2NkYjBkZjY2OTBmZmI0MmY5NTE4NzMzYWMxZg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZTcwMzgwY2NiNWExZTVlYzkxYTg5ZmUxZjBmYzM2OGEwYzIwZTk1OTQ2Mzc2
10
- YjllMTgyMWUyMzRlM2NlNzExYmI4N2I4ZDUwM2Q3YjA2ZDA0NDI0YzFjYjgx
11
- N2E5NzgxZWZhMjZlMTVjOTRmZTA2YThjMzc1ZjdmYTc0Nzk0NjY=
9
+ ZmNiNzNhZjYxNDFjZmJiYjFlNWEyNWYwNjhjZjYyNTkzZWI3ZWQ1NzE2YmEy
10
+ NmY0OGIwOTFmNGQ2NWRiNzBjNWE2OTc5OWI4MTMzYjg4NTI0ZjBmZGMwNTJk
11
+ YjI2ODgyNzA1MGU2MDQ0OWJjMDZmYTAzMzU1ZGJjYTAwOGEwZjQ=
12
12
  data.tar.gz: !binary |-
13
- ZWE5MTFhMTI3YWFiNGJhMmRlMDU3ZmNkM2JiYmJjYWM1ZDQ3NWRiNWE3YTU1
14
- NzJkZGUwMTlhZTg3Y2Y1ZWU0YjY2MGViYzU3YWY2NWE0MzM5YThjMTcyN2Yx
15
- MjAwMzIwMTZmNWRiMDk2MTFhOTU1ZDFjZjQ4NGI1NjBhN2EyMDU=
13
+ MmFhY2E4OTNjNzU3YzYzZTUyZTk5ZmE0OThkMjU3MGU2Mzg4M2ZjYmU2ZTRk
14
+ MzlhZjcwZDIwYTM4YTFlNjJiMTY4MzcwZTNjZmY4NmI5YzgzZjQwZjI2M2Vm
15
+ ODZhMmQzNjY4ZmUzMWJhNmJlODQ4OTQzOTllNTAzYzhjYTdkMzY=
@@ -28,6 +28,12 @@ function NewPersonCtrl($scope) {
28
28
  }
29
29
  }
30
30
 
31
+ function NewHouseholdCtrl($scope) {
32
+ }
33
+
34
+ function EditHouseholdCtrl($scope) {
35
+ }
36
+
31
37
  function EditPersonCtrl($scope) {
32
38
  }
33
39
 
@@ -35,11 +41,11 @@ var CollectInfoCtrl = function($scope, $http) {
35
41
  $scope.data = {organization: {valid_name: true}};
36
42
 
37
43
  $scope.$watch("data.organization.name", function(oldValue, newValue) {
38
- $http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
44
+ //$http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
39
45
  });
40
46
 
41
47
  $scope.$watch("data.organization.zip", function(oldValue, newValue) {
42
- $http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
48
+ //$http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
43
49
  });
44
50
  };
45
51
 
@@ -47,11 +53,11 @@ var EditOrganizationCtrl = function($scope, $http) {
47
53
  $scope.data = {organization: {valid_name: true}};
48
54
 
49
55
  $scope.$watch("data.organization.name", function(oldValue, newValue) {
50
- $http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
56
+ //$http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
51
57
  });
52
58
 
53
59
  $scope.$watch("data.organization.zip", function(oldValue, newValue) {
54
- $http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
60
+ //$http.post('/organizations/check_name.json', {name:$scope.data.organization.name, zip:$scope.data.organization.zip}).then(function(result){$scope.data.organization.valid_name = result.data.valid;});
55
61
  });
56
62
  };
57
63
 
@@ -157,10 +163,21 @@ var clearFA = function() {
157
163
  $('.no-fa').popover( "show" )
158
164
  } else {
159
165
  $('.no-fa').popover( "hide" )
160
- $('.disablable').removeAttr("disabled");
166
+ $('.disablable').removeAttr("disabled");
161
167
  }
162
168
  }
163
169
 
170
+ function bindLimitPopover() {
171
+ $('#ticket_type_limit').popover({title: "Heads Up!", content: "Setting this to zero means that this ticket type will appear as SOLD OUT to patrons.", placement: "right", trigger: "manual"});
172
+
173
+ $('#ticket_type_limit').keyup(function () {
174
+ if (parseInt($('#ticket_type_limit').val()) == 0) {
175
+ $('#ticket_type_limit').popover('show')
176
+ } else {
177
+ $('#ticket_type_limit').popover('hide')
178
+ }
179
+ })
180
+ }
164
181
 
165
182
  function bindMemberTickets() {
166
183
  $('.member-ticket-yes').on('click', function(e) { $('.membership-fields', $(this).parent().parent().parent().parent()).show() })
@@ -176,7 +193,7 @@ function bindMemberTickets() {
176
193
  }
177
194
 
178
195
  $(document).ready(function() {
179
-
196
+
180
197
  /*********** NEW BOOTSTRAP JS ***********/
181
198
  $(".alert").alert();
182
199
 
@@ -200,7 +217,7 @@ $(document).ready(function() {
200
217
  $('.wysihtml5').wysihtml5()
201
218
 
202
219
  /*********** NEW ARTFULLY JS ************/
203
-
220
+
204
221
  $('.artfully-tooltip').tooltip();
205
222
  $('.no-fa').popover({trigger:'manual', title: "That's us not you!", content: "You cannot name your organization \"Fractured Atlas\". Use the name of your company, group, or business here. Fiscally sponsored projects of Fractured Atlas should use their project name here."})
206
223
  $('.no-fa').on('keyup', checkForFA);
@@ -217,6 +234,7 @@ $(document).ready(function() {
217
234
  }
218
235
 
219
236
  bindMemberTickets()
237
+ bindLimitPopover()
220
238
 
221
239
  /*********** EXISTING ARTFUL.LY JS ******/
222
240
 
@@ -247,6 +265,10 @@ $(document).ready(function() {
247
265
  'regionField' : '#organization_state'
248
266
  });
249
267
 
268
+ $(document).locationSelector({
269
+ 'countryField' : '#household_address_attributes_country',
270
+ 'regionField' : '#household_address_attributes_state'
271
+ });
250
272
 
251
273
 
252
274
  $("form .description").siblings("input").focusin(function(){
@@ -310,6 +332,7 @@ $(document).ready(function() {
310
332
  $("#newTicketType").html(e.responseText);
311
333
  $("#newTicketType").modal( "show" );
312
334
  bindMemberTickets();
335
+ bindLimitPopover();
313
336
  return false;
314
337
  });
315
338
 
@@ -341,7 +364,7 @@ $(document).ready(function() {
341
364
 
342
365
  if (subtypes.length > 0) {
343
366
  $('#artfully_action_subtype').show();
344
- $.each(subtypes, function(index, value) {
367
+ $.each(subtypes, function(index, value) {
345
368
  $('#artfully_action_subtype')
346
369
  .append($("<option></option>")
347
370
  .attr("value",value)
@@ -377,11 +400,11 @@ $(document).ready(function() {
377
400
  });
378
401
 
379
402
  $('table#notes-list').on("click", 'td.toggle-truncated .truncated, td.toggle-truncated .not-truncated', function(event) {
380
- $(this).parent().find('div').toggle();
403
+ $(this).parent().find('.truncated,.not-truncated').toggle();
381
404
  })
382
405
 
383
406
  $('table#action-list').on("click", 'td.toggle-truncated .truncated, td.toggle-truncated .not-truncated', function(event) {
384
- $(this).parent().find('div').toggle();
407
+ $(this).parent().find('.truncated,.not-truncated').toggle();
385
408
  bindEditOrderLink()
386
409
  })
387
410
 
@@ -576,7 +599,17 @@ function activateControls() {
576
599
  });
577
600
  }
578
601
 
579
-
602
+
603
+ }
604
+
605
+ function toggleVisibility(el) {
606
+ el = $(el)
607
+ vis = el.hasClass('invisible')
608
+ if(vis) {
609
+ el.removeClass('invisible')
610
+ } else {
611
+ el.addClass('invisible')
612
+ }
580
613
  }
581
614
 
582
615
  function togglePrintPreview(){
@@ -6,10 +6,10 @@
6
6
  * company_name
7
7
  */
8
8
  function cleanJsonPerson(jsonPerson) {
9
- jsonPerson.first_name = ( jsonPerson.first_name == null ? "" : jsonPerson.first_name )
10
- jsonPerson.last_name = ( jsonPerson.last_name == null ? "" : jsonPerson.last_name )
11
- jsonPerson.email = ( jsonPerson.email == null ? "" : jsonPerson.email )
12
- jsonPerson.company_name = ( jsonPerson.company_name == null ? "" : jsonPerson.company_name )
9
+ jsonPerson.first_name = ( jsonPerson.first_name == null ? "" : jsonPerson.first_name )
10
+ jsonPerson.last_name = ( jsonPerson.last_name == null ? "" : jsonPerson.last_name )
11
+ jsonPerson.email = ( jsonPerson.email == null ? "" : jsonPerson.email )
12
+ jsonPerson.company_name = ( jsonPerson.company_name == null ? "" : jsonPerson.company_name )
13
13
  return jsonPerson
14
14
  }
15
15
 
@@ -21,65 +21,65 @@ function updateModal() {
21
21
  }
22
22
 
23
23
  function updateSelectedPerson(personId, personFirstName, personLastName, personEmail) {
24
- $("input#person_id").val(personId)
25
- $("input#person_first_name").val(personFirstName)
26
- $("input#person_last_name").val(personLastName)
27
- $("input#person_email").val(personEmail)
24
+ $("input#person_id").val(personId)
25
+ $("input#person_first_name").val(personFirstName)
26
+ $("input#person_last_name").val(personLastName)
27
+ $("input#person_email").val(personEmail)
28
28
  updateModal()
29
29
  }
30
30
 
31
31
  function clearNewPersonForm() {
32
32
  $("input#person_id").val("")
33
- $("input#person_first_name").val("")
34
- $("input#person_last_name").val("")
35
- $("input#person_email").val("")
33
+ $("input#person_first_name").val("")
34
+ $("input#person_last_name").val("")
35
+ $("input#person_email").val("")
36
36
  }
37
37
 
38
38
  $("document").ready(function(){
39
-
39
+
40
40
  $("#new_person").bind("ajax:success", function(xhr, person){
41
41
  $(this).removeClass('loading')
42
42
  $(this).find("input:submit").removeAttr('disabled');
43
43
  person = cleanJsonPerson(person)
44
- updateSelectedPerson(person.id, person.first_name, person.last_name, person.email)
45
- clearNewPersonForm()
44
+ updateSelectedPerson(person.id, person.first_name, person.last_name, person.email)
45
+ clearNewPersonForm()
46
46
  });
47
47
 
48
48
  $("#new_person").bind("ajax:error", function(xhr, status, error){
49
49
  $(this).find("input:submit").removeAttr('disabled');
50
50
  data = eval("(" + status.responseText + ")");
51
51
  $(this).removeClass('loading')
52
- });
53
-
54
- $("input", "#the-details").autocomplete({
52
+ });
53
+
54
+ $("input", "#the-details").autocomplete({
55
55
  html: true,
56
- minLength: 3,
57
- focus: function(event, person) {
58
- event.preventDefault()
59
- },
56
+ minLength: 3,
57
+ focus: function(event, person) {
58
+ event.preventDefault()
59
+ },
60
60
  source: function(request, response) {
61
- $.getJSON("/people?utf8=%E2%9C%93&commit=Search", { search: request.term }, function(people) {
62
- responsePeople = new Array();
63
-
64
- $.each(people, function (i, person) {
65
- person = cleanJsonPerson(person)
66
- responsePeople[i] = "<div id='search-result-full-name'><span id='search-result-first-name'>"+ person.first_name +"</span> <span id='search-result-last-name'>"+ person.last_name +"</span></div>"
67
- responsePeople[i] += "<div id='search-result-email' class='search-result-details'>"+ person.email +"</div>"
68
- responsePeople[i] += "<div class='clear'></div>"
69
- responsePeople[i] += "<div id='search-result-company-name' class='search-result-details'>"+ person.company_name +"</div>"
70
- responsePeople[i] += "<div id='search-result-id'>"+person.id+"</div>"
71
- });
72
- response(responsePeople)
73
- });
74
- },
75
- select: function(event, person) {
61
+ $.getJSON("/people?utf8=%E2%9C%93&commit=Search", { search: request.term }, function(people) {
62
+ responsePeople = new Array();
63
+
64
+ $.each(people, function (i, person) {
65
+ person = cleanJsonPerson(person)
66
+ responsePeople[i] = "<div id='search-result-full-name'><span id='search-result-first-name'>"+ person.first_name +"</span> <span id='search-result-last-name'>"+ person.last_name +"</span></div>"
67
+ responsePeople[i] += "<div id='search-result-email' class='search-result-details'>"+ person.email +"</div>"
68
+ responsePeople[i] += "<div class='clear'></div>"
69
+ responsePeople[i] += "<div id='search-result-company-name' class='search-result-details'>"+ person.company_name +"</div>"
70
+ responsePeople[i] += "<div id='search-result-id'>"+person.id+"</div>"
71
+ });
72
+ response(responsePeople)
73
+ });
74
+ },
75
+ select: function(event, person) {
76
76
  event.preventDefault()
77
- var personId = $(person.item.value).filter("#search-result-id").html()
78
- var personFirstName = $("#search-result-first-name", person.item.value).html()
77
+ var personId = $(person.item.value).filter("#search-result-id").html()
78
+ var personFirstName = $("#search-result-first-name", person.item.value).html()
79
79
  var personLastName = $("#search-result-last-name", person.item.value).html()
80
- var personEmail = $(person.item.value).filter("#search-result-email").html()
80
+ var personEmail = $(person.item.value).filter("#search-result-email").html()
81
81
 
82
82
  updateSelectedPerson(personId, personFirstName, personLastName, personEmail)
83
83
  }
84
84
  });
85
- });
85
+ });
@@ -0,0 +1,59 @@
1
+ //= require_self
2
+ //
3
+ $(function(){
4
+
5
+ function cleanJsonPerson(jsonPerson) {
6
+ jsonPerson.first_name = ( jsonPerson.first_name == null ? "" : jsonPerson.first_name )
7
+ jsonPerson.last_name = ( jsonPerson.last_name == null ? "" : jsonPerson.last_name )
8
+ jsonPerson.email = ( jsonPerson.email == null ? "" : jsonPerson.email )
9
+ jsonPerson.company_name = ( jsonPerson.company_name == null ? "" : jsonPerson.company_name )
10
+ return jsonPerson
11
+ }
12
+ $(document).on('keyup.autocomplete', '.fields.individual-fields .individual-name-input', function(){
13
+ var autocompleteField = this;
14
+ $(this).autocomplete({
15
+ html: true,
16
+ minLength: 3,
17
+ focus: function(event, person) {
18
+ event.preventDefault()
19
+ },
20
+ source: function(request, response) {
21
+ $.getJSON("/people?utf8=%E2%9C%93&type=Individual&commit=Search", { search: request.term }, function(people) {
22
+ responsePeople = new Array();
23
+
24
+ $.each(people, function (i, person) {
25
+ person = cleanJsonPerson(person)
26
+ responsePeople[i] = "<div data-row='"+""+"' id='search-result-full-name'><span id='search-result-first-name'>"+ person.first_name +"</span> <span id='search-result-last-name'>"+ person.last_name +"</span></div>"
27
+ responsePeople[i] += "<div id='search-result-email' class='search-result-details'>"+ person.email +"</div>"
28
+ responsePeople[i] += "<div class='clear'></div>"
29
+ responsePeople[i] += "<div id='search-result-company-name' class='search-result-details'>"+ person.company_name +"</div>"
30
+ responsePeople[i] += "<div id='search-result-id'>"+person.id+"</div>"
31
+ });
32
+ response(responsePeople)
33
+ });
34
+ },
35
+
36
+ select: function(event, item) {
37
+ event.preventDefault()
38
+ var personId = $(item.item.value).filter("#search-result-id").html()
39
+ var personFirstName = $("#search-result-first-name", item.item.value).html()
40
+ var personLastName = $("#search-result-last-name", item.item.value).html()
41
+
42
+ var personLabel = personFirstName + " " + personLastName
43
+ $(this).val(personLabel)
44
+ $(this).siblings('.individual-id').val(personId)
45
+ },
46
+ open: function() {
47
+ $(this).removeClass("ui-corner-all").addClass("ui-corner-top")
48
+ },
49
+ close: function() {
50
+ $(this).removeClass("ui-corner-top").addClass("ui-corner-all")
51
+ }
52
+
53
+ });
54
+
55
+ // Ensure the autocomplete drop-down shows up in the modal and on this row
56
+ $(this).autocomplete("widget").insertAfter($(this))
57
+ });
58
+ });
59
+
@@ -0,0 +1,2 @@
1
+ /*! jQuery Migrate v1.2.1 | (c) 2005, 2013 jQuery Foundation, Inc. and other contributors | jquery.org/license */
2
+ jQuery.migrateMute===void 0&&(jQuery.migrateMute=!0),function(e,t,n){function r(n){var r=t.console;i[n]||(i[n]=!0,e.migrateWarnings.push(n),r&&r.warn&&!e.migrateMute&&(r.warn("JQMIGRATE: "+n),e.migrateTrace&&r.trace&&r.trace()))}function a(t,a,i,o){if(Object.defineProperty)try{return Object.defineProperty(t,a,{configurable:!0,enumerable:!0,get:function(){return r(o),i},set:function(e){r(o),i=e}}),n}catch(s){}e._definePropertyBroken=!0,t[a]=i}var i={};e.migrateWarnings=[],!e.migrateMute&&t.console&&t.console.log&&t.console.log("JQMIGRATE: Logging is active"),e.migrateTrace===n&&(e.migrateTrace=!0),e.migrateReset=function(){i={},e.migrateWarnings.length=0},"BackCompat"===document.compatMode&&r("jQuery is not compatible with Quirks Mode");var o=e("<input/>",{size:1}).attr("size")&&e.attrFn,s=e.attr,u=e.attrHooks.value&&e.attrHooks.value.get||function(){return null},c=e.attrHooks.value&&e.attrHooks.value.set||function(){return n},l=/^(?:input|button)$/i,d=/^[238]$/,p=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,f=/^(?:checked|selected)$/i;a(e,"attrFn",o||{},"jQuery.attrFn is deprecated"),e.attr=function(t,a,i,u){var c=a.toLowerCase(),g=t&&t.nodeType;return u&&(4>s.length&&r("jQuery.fn.attr( props, pass ) is deprecated"),t&&!d.test(g)&&(o?a in o:e.isFunction(e.fn[a])))?e(t)[a](i):("type"===a&&i!==n&&l.test(t.nodeName)&&t.parentNode&&r("Can't change the 'type' of an input or button in IE 6/7/8"),!e.attrHooks[c]&&p.test(c)&&(e.attrHooks[c]={get:function(t,r){var a,i=e.prop(t,r);return i===!0||"boolean"!=typeof i&&(a=t.getAttributeNode(r))&&a.nodeValue!==!1?r.toLowerCase():n},set:function(t,n,r){var a;return n===!1?e.removeAttr(t,r):(a=e.propFix[r]||r,a in t&&(t[a]=!0),t.setAttribute(r,r.toLowerCase())),r}},f.test(c)&&r("jQuery.fn.attr('"+c+"') may use property instead of attribute")),s.call(e,t,a,i))},e.attrHooks.value={get:function(e,t){var n=(e.nodeName||"").toLowerCase();return"button"===n?u.apply(this,arguments):("input"!==n&&"option"!==n&&r("jQuery.fn.attr('value') no longer gets properties"),t in e?e.value:null)},set:function(e,t){var a=(e.nodeName||"").toLowerCase();return"button"===a?c.apply(this,arguments):("input"!==a&&"option"!==a&&r("jQuery.fn.attr('value', val) no longer sets properties"),e.value=t,n)}};var g,h,v=e.fn.init,m=e.parseJSON,y=/^([^<]*)(<[\w\W]+>)([^>]*)$/;e.fn.init=function(t,n,a){var i;return t&&"string"==typeof t&&!e.isPlainObject(n)&&(i=y.exec(e.trim(t)))&&i[0]&&("<"!==t.charAt(0)&&r("$(html) HTML strings must start with '<' character"),i[3]&&r("$(html) HTML text after last tag is ignored"),"#"===i[0].charAt(0)&&(r("HTML string cannot start with a '#' character"),e.error("JQMIGRATE: Invalid selector string (XSS)")),n&&n.context&&(n=n.context),e.parseHTML)?v.call(this,e.parseHTML(i[2],n,!0),n,a):v.apply(this,arguments)},e.fn.init.prototype=e.fn,e.parseJSON=function(e){return e||null===e?m.apply(this,arguments):(r("jQuery.parseJSON requires a valid JSON string"),null)},e.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||0>e.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e.browser||(g=e.uaMatch(navigator.userAgent),h={},g.browser&&(h[g.browser]=!0,h.version=g.version),h.chrome?h.webkit=!0:h.webkit&&(h.safari=!0),e.browser=h),a(e,"browser",e.browser,"jQuery.browser is deprecated"),e.sub=function(){function t(e,n){return new t.fn.init(e,n)}e.extend(!0,t,this),t.superclass=this,t.fn=t.prototype=this(),t.fn.constructor=t,t.sub=this.sub,t.fn.init=function(r,a){return a&&a instanceof e&&!(a instanceof t)&&(a=t(a)),e.fn.init.call(this,r,a,n)},t.fn.init.prototype=t.fn;var n=t(document);return r("jQuery.sub() is deprecated"),t},e.ajaxSetup({converters:{"text json":e.parseJSON}});var b=e.fn.data;e.fn.data=function(t){var a,i,o=this[0];return!o||"events"!==t||1!==arguments.length||(a=e.data(o,t),i=e._data(o,t),a!==n&&a!==i||i===n)?b.apply(this,arguments):(r("Use of jQuery.fn.data('events') is deprecated"),i)};var j=/\/(java|ecma)script/i,w=e.fn.andSelf||e.fn.addBack;e.fn.andSelf=function(){return r("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()"),w.apply(this,arguments)},e.clean||(e.clean=function(t,a,i,o){a=a||document,a=!a.nodeType&&a[0]||a,a=a.ownerDocument||a,r("jQuery.clean() is deprecated");var s,u,c,l,d=[];if(e.merge(d,e.buildFragment(t,a).childNodes),i)for(c=function(e){return!e.type||j.test(e.type)?o?o.push(e.parentNode?e.parentNode.removeChild(e):e):i.appendChild(e):n},s=0;null!=(u=d[s]);s++)e.nodeName(u,"script")&&c(u)||(i.appendChild(u),u.getElementsByTagName!==n&&(l=e.grep(e.merge([],u.getElementsByTagName("script")),c),d.splice.apply(d,[s+1,0].concat(l)),s+=l.length));return d});var Q=e.event.add,x=e.event.remove,k=e.event.trigger,N=e.fn.toggle,T=e.fn.live,M=e.fn.die,S="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",C=RegExp("\\b(?:"+S+")\\b"),H=/(?:^|\s)hover(\.\S+|)\b/,A=function(t){return"string"!=typeof t||e.event.special.hover?t:(H.test(t)&&r("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'"),t&&t.replace(H,"mouseenter$1 mouseleave$1"))};e.event.props&&"attrChange"!==e.event.props[0]&&e.event.props.unshift("attrChange","attrName","relatedNode","srcElement"),e.event.dispatch&&a(e.event,"handle",e.event.dispatch,"jQuery.event.handle is undocumented and deprecated"),e.event.add=function(e,t,n,a,i){e!==document&&C.test(t)&&r("AJAX events should be attached to document: "+t),Q.call(this,e,A(t||""),n,a,i)},e.event.remove=function(e,t,n,r,a){x.call(this,e,A(t)||"",n,r,a)},e.fn.error=function(){var e=Array.prototype.slice.call(arguments,0);return r("jQuery.fn.error() is deprecated"),e.splice(0,0,"error"),arguments.length?this.bind.apply(this,e):(this.triggerHandler.apply(this,e),this)},e.fn.toggle=function(t,n){if(!e.isFunction(t)||!e.isFunction(n))return N.apply(this,arguments);r("jQuery.fn.toggle(handler, handler...) is deprecated");var a=arguments,i=t.guid||e.guid++,o=0,s=function(n){var r=(e._data(this,"lastToggle"+t.guid)||0)%o;return e._data(this,"lastToggle"+t.guid,r+1),n.preventDefault(),a[r].apply(this,arguments)||!1};for(s.guid=i;a.length>o;)a[o++].guid=i;return this.click(s)},e.fn.live=function(t,n,a){return r("jQuery.fn.live() is deprecated"),T?T.apply(this,arguments):(e(this.context).on(t,this.selector,n,a),this)},e.fn.die=function(t,n){return r("jQuery.fn.die() is deprecated"),M?M.apply(this,arguments):(e(this.context).off(t,this.selector||"**",n),this)},e.event.trigger=function(e,t,n,a){return n||C.test(e)||r("Global events are undocumented and deprecated"),k.call(this,e,t,n||document,a)},e.each(S.split("|"),function(t,n){e.event.special[n]={setup:function(){var t=this;return t!==document&&(e.event.add(document,n+"."+e.guid,function(){e.event.trigger(n,null,t,!0)}),e._data(this,n,e.guid++)),!1},teardown:function(){return this!==document&&e.event.remove(document,n+"."+e._data(this,n)),!1}}})}(jQuery,window);
@@ -0,0 +1,63 @@
1
+ //= require_self
2
+
3
+ $(function(){
4
+
5
+ function cleanJsonPerson(jsonPerson) {
6
+ jsonPerson.first_name = ( jsonPerson.first_name == null ? "" : jsonPerson.first_name )
7
+ jsonPerson.last_name = ( jsonPerson.last_name == null ? "" : jsonPerson.last_name )
8
+ jsonPerson.email = ( jsonPerson.email == null ? "" : jsonPerson.email )
9
+ jsonPerson.company_name = ( jsonPerson.company_name == null ? "" : jsonPerson.company_name )
10
+ return jsonPerson
11
+ }
12
+
13
+ $(document).on('keyup.autocomplete', '.fields.relationship-fields .other-input', function(){
14
+ var autocompleteField = this;
15
+ $(this).autocomplete({
16
+ html: true,
17
+ minLength: 3,
18
+ focus: function(event, person) {
19
+ event.preventDefault()
20
+ },
21
+ source: function(request, response) {
22
+ $.getJSON("/people?utf8=%E2%9C%93&commit=Search", { search: request.term }, function(people) {
23
+ responsePeople = new Array();
24
+
25
+ $.each(people, function (i, person) {
26
+ person = cleanJsonPerson(person)
27
+ responsePeople[i] = "<div data-row='"+""+"' id='search-result-full-name'><span id='search-result-first-name'>"+ person.first_name +"</span> <span id='search-result-last-name'>"+ person.last_name +"</span></div>"
28
+ responsePeople[i] += "<div id='search-result-email' class='search-result-details'>"+ person.email +"</div>"
29
+ responsePeople[i] += "<div class='clear'></div>"
30
+ responsePeople[i] += "<div id='search-result-company-name' class='search-result-details'>"+ person.company_name +"</div>"
31
+ responsePeople[i] += "<div id='search-result-id'>"+person.id+"</div>"
32
+ });
33
+ response(responsePeople)
34
+ });
35
+ },
36
+ select: function(event, item) {
37
+ event.preventDefault()
38
+ var personId = $(item.item.value).filter("#search-result-id").html()
39
+ var personFirstName = $("#search-result-first-name", item.item.value).html()
40
+ var personLastName = $("#search-result-last-name", item.item.value).html()
41
+
42
+ if(personFirstName && personLastName){
43
+ personLabel = personFirstName + " " + personLastName
44
+ } else {
45
+ personLabel = $(item.item.value).filter("#search-result-company-name").html()
46
+ }
47
+
48
+ $(this).val(personLabel)
49
+ $(this).siblings('.other-id').val(personId)
50
+ },
51
+ open: function() {
52
+ $(this).removeClass("ui-corner-all").addClass("ui-corner-top")
53
+ },
54
+ close: function() {
55
+ $(this).removeClass("ui-corner-top").addClass("ui-corner-all")
56
+ }
57
+
58
+ });
59
+
60
+ // Ensure the autocomplete drop-down shows up in the modal and on this row
61
+ $(this).autocomplete("widget").insertAfter($("body"))
62
+ });
63
+ });
@@ -3,7 +3,7 @@
3
3
  @import "./sass/event_list"
4
4
  @import "./sass/tags"
5
5
  @import "./sass/box-office"
6
- @import "./font-awesome"
6
+ @import "font-awesome"
7
7
 
8
8
  #preload_assets
9
9
  display: none
@@ -447,11 +447,23 @@ table.docs
447
447
  a.artfully-tooltip, a.artfully-tooltip:hover
448
448
  text-decoration: none
449
449
 
450
- // People Records
451
- body[data-controller=people][data-action=show], body[data-controller=memberships][data-action=index], body[data-controller=passes][data-action=index]
450
+ body[data-controller=people][data-action=show],
451
+ body[data-controller=households][data-action=show],
452
+ body[data-controller=memberships][data-action=index],
453
+ body[data-controller=passes][data-action=index]
452
454
  padding-top: 10px
453
455
 
454
- .person-header
456
+
457
+ .table.search-results
458
+ td.controls
459
+ width: 10px
460
+ td.name
461
+ label
462
+ font-weight: bold
463
+ display: inline
464
+
465
+ .person-header,
466
+ .household-header
455
467
  overflow: hidden
456
468
  background: #eee
457
469
  border-bottom: 1px solid #ccc
@@ -460,7 +472,8 @@ body[data-controller=people][data-action=show], body[data-controller=memberships
460
472
  border-bottom-right-radius: 8px
461
473
  margin-bottom: 20px
462
474
 
463
- .person-avatar
475
+ .person-avatar,
476
+ .household-avatar
464
477
  float: left
465
478
  margin-right: 20px
466
479
  img
@@ -468,13 +481,21 @@ body[data-controller=people][data-action=show], body[data-controller=memberships
468
481
  width: 150px
469
482
  height: 150px
470
483
 
471
- .person-values-and-tags
484
+ .person-header .view-household
485
+ margin-right: 20px
486
+
487
+ .person-header .view-household .btn
488
+ margin: 4px auto
489
+
490
+ .person-values-and-tags,
491
+ .household-values-and-tags
472
492
  float: right
473
493
 
474
494
  .company-and-title
475
495
  margin-bottom: 20px
476
496
 
477
- .person-values
497
+ .person-values,
498
+ .household-values
478
499
  margin-bottom: 20px
479
500
  border: 1px solid #ccc
480
501
  border-radius: 4px
@@ -495,7 +516,8 @@ body[data-controller=people][data-action=show], body[data-controller=memberships
495
516
  width: 300px
496
517
  clear: right
497
518
 
498
- .person-links
519
+ .person-links,
520
+ .household-links
499
521
  float: left
500
522
  a
501
523
  display: block
@@ -579,7 +601,8 @@ tr.action td
579
601
  .toggle-truncated
580
602
  cursor: pointer
581
603
 
582
- #edit-person
604
+ #edit-person,
605
+ #edit-household
583
606
  width: 740px
584
607
  margin-left: -360px
585
608
  form
@@ -592,6 +615,20 @@ tr.action td
592
615
  .modal-footer
593
616
  margin-bottom: 0
594
617
 
618
+ #edit-household
619
+ #address.tab-pane
620
+ .wide
621
+ .controls
622
+ label
623
+ width: auto
624
+ .control
625
+ select
626
+ width: 400px
627
+ #address.tab-pane
628
+ .controls
629
+ label.wide
630
+ width: auto
631
+
595
632
  table#action-list td, table#notes-list td
596
633
  line-height: 20px
597
634
  border-top: 0px
@@ -614,6 +651,11 @@ table#action-list td, table#notes-list td
614
651
  &.not-active
615
652
  color: #ccc
616
653
 
654
+ .starable-spacer
655
+ width: 10px
656
+ font-size: 17px
657
+ color: transparent
658
+
617
659
  form > fieldset:last-of-type > *:last-child
618
660
  margin-bottom: 45px
619
661
 
@@ -664,6 +706,11 @@ p.alternate_form_link
664
706
  [ng\:cloak], [ng-cloak], .ng-cloak
665
707
  display: none !important
666
708
 
709
+ .ui-autocomplete
710
+ z-index: 3000 !important
711
+ max-height: 300px
712
+ overflow: scroll
713
+
667
714
  .wysihtml5-editor
668
715
  h3
669
716
  font-size: 1.3em
@@ -695,4 +742,4 @@ p.alternate_form_link
695
742
  .controls
696
743
  label
697
744
  margin-bottom: 5px
698
- padding-top: 5px
745
+ padding-top: 5px