Commit 1135aa99bc7c8d39cda566937069a7b3a599dd36

Authored by Nathan Broadbent
1 parent 4209b25e
Exists in master and in 1 other branch production

Added unobtrusive javascript hooks for

hiding/showing content when a checkbox is clicked.
Used this for 'notify_on_errs' checkbox.
app/views/apps/_fields.html.haml
... ... @@ -11,7 +11,7 @@
11 11 %fieldset
12 12 %legend Notifications
13 13 %div.checkbox
14   - = f.check_box :notify_on_errs
  14 + = f.check_box :notify_on_errs, 'data-show-when-checked' => '.email_at_notices_nested'
15 15 = f.label :notify_on_errs, 'Notify on errors'
16 16 - if Errbit::Config.per_app_email_at_notices
17 17 %div.email_at_notices_nested{:style => f.object.notify_on_errs ? '' : 'display: none;'}
... ... @@ -22,12 +22,6 @@
22 22 = f.check_box :notify_on_deploys
23 23 = f.label :notify_on_deploys, 'Notify on deploys'
24 24  
25   -:javascript
26   - $('#app_notify_on_errs').change(function(){
27   - var el = $('.email_at_notices_nested');
28   - this.checked ? el.show() : el.hide();
29   - });
30   -
31 25 %div.checkbox
32 26 = f.check_box :resolve_errs_on_deploy
33 27 = f.label :resolve_errs_on_deploy, 'Resolve errs on deploy'
... ...
public/javascripts/form.js
1 1 $(function(){
2 2 activateNestedForms();
  3 + activateCheckboxHooks();
3 4  
4 5 if($('div.watcher.nested').length)
5 6 activateTypeSelector('watcher');
... ... @@ -74,3 +75,20 @@ function activateTypeSelector(field_class, section_class) {
74 75 });
75 76 }
76 77  
  78 +
  79 +function activateCheckboxHooks() {
  80 + // Hooks to hide/show content when a checkbox is clicked
  81 + $('input[type="checkbox"][data-hide-when-checked]').each(function(){
  82 + $(this).change(function(){
  83 + el = $($(this).data('hide-when-checked'));
  84 + $(this).attr('checked') ? el.hide() : el.show();
  85 + });
  86 + });
  87 + $('input[type="checkbox"][data-show-when-checked]').each(function(){
  88 + $(this).change(function(){
  89 + el = $($(this).data('show-when-checked'));
  90 + $(this).attr('checked') ? el.show() : el.hide();
  91 + });
  92 + });
  93 +}
  94 +
... ...