active_scaffold 3.2.11 → 3.2.12

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 (53) hide show
  1. data/CHANGELOG +23 -2
  2. data/app/assets/javascripts/jquery/active_scaffold.js +55 -46
  3. data/app/assets/javascripts/prototype/active_scaffold.js +54 -35
  4. data/app/assets/stylesheets/active_scaffold_layout.css +4 -0
  5. data/config/locales/de.yml +5 -0
  6. data/config/locales/en.yml +5 -0
  7. data/config/locales/es.yml +5 -0
  8. data/config/locales/fr.yml +5 -0
  9. data/config/locales/hu.yml +5 -0
  10. data/config/locales/ja.yml +5 -0
  11. data/config/locales/ru.yml +5 -0
  12. data/frontends/default/views/_form_association.html.erb +2 -2
  13. data/frontends/default/views/_form_association_footer.html.erb +2 -2
  14. data/frontends/default/views/_horizontal_subform.html.erb +3 -3
  15. data/frontends/default/views/_list_inline_adapter.html.erb +7 -4
  16. data/frontends/default/views/_list_messages.html.erb +2 -1
  17. data/frontends/default/views/_messages.html.erb +1 -1
  18. data/frontends/default/views/_row.html.erb +1 -6
  19. data/frontends/default/views/_vertical_subform.html.erb +2 -2
  20. data/frontends/default/views/add_existing.js.erb +1 -1
  21. data/frontends/default/views/destroy.js.erb +2 -2
  22. data/frontends/default/views/on_action_update.js.erb +1 -1
  23. data/frontends/default/views/on_create.js.erb +3 -17
  24. data/frontends/default/views/on_mark.js.erb +6 -0
  25. data/frontends/default/views/on_update.js.erb +4 -13
  26. data/frontends/default/views/row.js.erb +1 -0
  27. data/lib/active_scaffold.rb +1 -0
  28. data/lib/active_scaffold/actions/core.rb +9 -7
  29. data/lib/active_scaffold/actions/create.rb +1 -1
  30. data/lib/active_scaffold/actions/delete.rb +1 -1
  31. data/lib/active_scaffold/actions/list.rb +11 -4
  32. data/lib/active_scaffold/actions/mark.rb +35 -24
  33. data/lib/active_scaffold/actions/nested.rb +3 -1
  34. data/lib/active_scaffold/actions/subform.rb +2 -2
  35. data/lib/active_scaffold/config/core.rb +17 -1
  36. data/lib/active_scaffold/config/form.rb +1 -1
  37. data/lib/active_scaffold/config/list.rb +0 -8
  38. data/lib/active_scaffold/config/mark.rb +7 -12
  39. data/lib/active_scaffold/data_structures/action_columns.rb +19 -15
  40. data/lib/active_scaffold/data_structures/nested_info.rb +27 -7
  41. data/lib/active_scaffold/extensions/routing_mapper.rb +2 -2
  42. data/lib/active_scaffold/finder.rb +12 -11
  43. data/lib/active_scaffold/helpers/controller_helpers.rb +5 -9
  44. data/lib/active_scaffold/helpers/form_column_helpers.rb +3 -3
  45. data/lib/active_scaffold/helpers/id_helpers.rb +5 -1
  46. data/lib/active_scaffold/helpers/list_column_helpers.rb +55 -40
  47. data/lib/active_scaffold/helpers/view_helpers.rb +22 -6
  48. data/lib/active_scaffold/marked_model.rb +4 -4
  49. data/lib/active_scaffold/tableless.rb +18 -0
  50. data/lib/active_scaffold/version.rb +1 -1
  51. data/test/config/list_test.rb +0 -6
  52. metadata +18 -18
  53. data/frontends/default/views/on_mark_all.js.erb +0 -12
data/CHANGELOG CHANGED
@@ -1,8 +1,29 @@
1
- = 3.2.10 (not released yet)
1
+ = 3.2.12 (not released yet)
2
+ - improve support for tableless models, add support for count
3
+ - fix div id for nested scaffolds
4
+ - add config.timestamped_messages and config.highlight_messages
5
+ - Improve performance using class to check authorization for plural associations which are not loaded, and avoiding to load associations if it's not needed
6
+ - Fix using a scope in main form, it wasn't working for associations (for create multiple from active_scaffold_batch)
7
+ - Fix searches with no results, it was loading first page without conditions
8
+ - Allow to change highlight options with ActiveScaffold.js_config
9
+ - allow to override column count calculation for colspan
10
+ - Remove conditions_from_params from nested links
11
+ - Fix nested forms for singular associations
12
+ - enable to get constraints in helpers, so can be used in options_for_association_conditions, for example
13
+ - Allow to edit has_one :through association in nested forms
14
+ - Fix cancan bridge broken in a previous release
15
+ - Fix mark action
16
+
17
+ = 3.2.11
18
+ - improve support for tableless models and active_scaffold_batch
19
+ - fix count includes which were broken in 3.2.9
20
+ - remove duplicated conditions in nested scaffolds, added by conditions_from_params
21
+
22
+ = 3.2.10
2
23
  - fix nested scaffolds with update action disabled
3
24
  - initial work for tableless support (index with limited options)
4
25
  - fix scrolling on closing nested scaffolds
5
- - fix calculations and count includes which were broken in 3.2.9
26
+ - fix calculations which were broken in 3.2.9
6
27
 
7
28
  = 3.2.9
8
29
  - remove duplicated conditions with constraints
@@ -1,7 +1,7 @@
1
1
  jQuery(document).ready(function() {
2
2
  jQuery('form.as_form').live('ajax:beforeSend', function(event) {
3
3
  var as_form = jQuery(this).closest("form");
4
- if (as_form && as_form.attr('data-loading') == 'true') {
4
+ if (as_form.attr('data-loading') == 'true') {
5
5
  ActiveScaffold.disable_form(as_form);
6
6
  }
7
7
  return true;
@@ -9,19 +9,19 @@ jQuery(document).ready(function() {
9
9
 
10
10
  jQuery('form.as_form').live('ajax:complete', function(event) {
11
11
  var as_form = jQuery(this).closest("form");
12
- if (as_form && as_form.attr('data-loading') == 'true') {
12
+ if (as_form.attr('data-loading') == 'true') {
13
13
  ActiveScaffold.enable_form(as_form);
14
14
  }
15
15
  });
16
16
  jQuery('form.as_form').live('ajax:error', function(event, xhr, status, error) {
17
17
  var as_div = jQuery(this).closest("div.active-scaffold");
18
- if (as_div) {
19
- ActiveScaffold.report_500_response(as_div)
18
+ if (as_div.length) {
19
+ ActiveScaffold.report_500_response(as_div);
20
20
  }
21
21
  });
22
22
  jQuery('form.as_form.as_remote_upload').live('submit', function(event) {
23
23
  var as_form = jQuery(this).closest("form");
24
- if (as_form && as_form.attr('data-loading') == 'true') {
24
+ if (as_form.attr('data-loading') == 'true') {
25
25
  setTimeout("ActiveScaffold.disable_form('" + as_form.attr('id') + "')", 10);
26
26
  }
27
27
  return true;
@@ -122,7 +122,7 @@ jQuery(document).ready(function() {
122
122
  }
123
123
  return true;
124
124
  });
125
- jQuery('td.in_place_editor_field').live('click', function(event) {
125
+ jQuery('td.in_place_editor_field, th.as_marked-column_heading').live('click', function(event) {
126
126
  var span = jQuery(this).find('span.in_place_editor_field');
127
127
  span.data('addEmptyOnCancel', jQuery(this).hasClass('empty'));
128
128
  jQuery(this).removeClass('empty');
@@ -418,12 +418,10 @@ var ActiveScaffold = {
418
418
  replace: function(element, html) {
419
419
  if (typeof(element) == 'string') element = '#' + element;
420
420
  element = jQuery(element);
421
- element.replaceWith(html);
422
- if (element.attr('id')) {
423
- element = jQuery('#' + element.attr('id'));
424
- }
425
- element.trigger('as:element_updated');
426
- return element;
421
+ var new_element = jQuery(html);
422
+ element.replaceWith(new_element);
423
+ new_element.trigger('as:element_updated');
424
+ return new_element;
427
425
  },
428
426
 
429
427
  replace_html: function(element, html) {
@@ -541,8 +539,10 @@ var ActiveScaffold = {
541
539
  },
542
540
 
543
541
  report_500_response: function(active_scaffold_id) {
544
- server_error = jQuery(active_scaffold_id).find('td.messages-container p.server-error');
545
- if (!jQuery(server_error).is(':visible')) {
542
+ var server_error = jQuery(active_scaffold_id).find('td.messages-container p.server-error').first();
543
+ if (server_error.is(':visible')) {
544
+ ActiveScaffold.highlight(server_error);
545
+ } else {
546
546
  server_error.show();
547
547
  }
548
548
  },
@@ -585,13 +585,13 @@ var ActiveScaffold = {
585
585
  },
586
586
 
587
587
  read_inplace_edit_heading_attributes: function(column_heading, options) {
588
- if (column_heading.attr('data-ie_cancel_text')) options.cancel_button = '<button class="inplace_cancel">' + column_heading.attr('data-ie_cancel_text') + "</button>";
589
- if (column_heading.attr('data-ie_loading_text')) options.loading_text = column_heading.attr('data-ie_loading_text');
590
- if (column_heading.attr('data-ie_saving_text')) options.saving_text = column_heading.attr('data-ie_saving_text');
591
- if (column_heading.attr('data-ie_save_text')) options.save_button = '<button class="inplace_save">' + column_heading.attr('data-ie_save_text') + "</button>";
592
- if (column_heading.attr('data-ie_rows')) options.textarea_rows = column_heading.attr('data-ie_rows');
593
- if (column_heading.attr('data-ie_cols')) options.textarea_cols = column_heading.attr('data-ie_cols');
594
- if (column_heading.attr('data-ie_size')) options.text_size = column_heading.attr('data-ie_size');
588
+ if (column_heading.data('ie-cancel-text')) options.cancel_button = '<button class="inplace_cancel">' + column_heading.data('ie-cancel-text') + "</button>";
589
+ if (column_heading.data('ie-loading-text')) options.loading_text = column_heading.data('ie-loading-text');
590
+ if (column_heading.data('ie-saving-text')) options.saving_text = column_heading.data('ie-saving-text');
591
+ if (column_heading.data('ie-save-text')) options.save_button = '<button class="inplace_save">' + column_heading.data('ie-save-text') + "</button>";
592
+ if (column_heading.data('ie-rows')) options.textarea_rows = column_heading.data('ie-rows');
593
+ if (column_heading.data('ie-cols')) options.textarea_cols = column_heading.data('ie-cols');
594
+ if (column_heading.data('ie-size')) options.text_size = column_heading.data('ie-size');
595
595
  },
596
596
 
597
597
  create_inplace_editor: function(span, options) {
@@ -603,7 +603,7 @@ var ActiveScaffold = {
603
603
  highlight: function(element) {
604
604
  if (typeof(element) == 'string') element = jQuery('#' + element);
605
605
  if (typeof(element.effect) == 'function') {
606
- element.effect("highlight", {}, 3000);
606
+ element.effect("highlight", jQuery.extend({}, ActiveScaffold.config.highlight), 3000);
607
607
  }
608
608
  },
609
609
 
@@ -659,7 +659,7 @@ var ActiveScaffold = {
659
659
  sortable: function(element, controller, options, url_params) {
660
660
  if (typeof(element) == 'string') element = '#' + element;
661
661
  var element = jQuery(element);
662
- var sortable_options = {};
662
+ var sortable_options = jQuery.extend({}, options);
663
663
  if (options.update === true) {
664
664
  url_params.authenticity_token = jQuery('meta[name=csrf-param]').attr('content');
665
665
  sortable_options.update = function(event, ui) {
@@ -684,19 +684,21 @@ var ActiveScaffold = {
684
684
  mark_records: function(element, options) {
685
685
  if (typeof(element) == 'string') element = '#' + element;
686
686
  var element = jQuery(element);
687
- var mark_checkboxes = jQuery('#' + element.attr('id') + ' > tr.record td.marked-column input[type="checkbox"]');
688
- mark_checkboxes.each(function (index) {
689
- var item = jQuery(this);
690
- if(options.checked === true) {
691
- item.attr('checked', 'checked');
692
- } else {
693
- item.removeAttr('checked');
694
- }
695
- item.attr('value', ('' + !options.checked));
696
- });
697
- if(options.include_mark_all === true) {
698
- var mark_all_checkbox = element.prev('thead').find('th.marked-column_heading span input[type="checkbox"]');
699
- if(options.checked === true) {
687
+ if (options.include_checkboxes) {
688
+ var mark_checkboxes = jQuery('#' + element.attr('id') + ' > tr.record td.as_marked-column input[type="checkbox"]');
689
+ mark_checkboxes.each(function (index) {
690
+ var item = jQuery(this);
691
+ if(options.checked) {
692
+ item.attr('checked', 'checked');
693
+ } else {
694
+ item.removeAttr('checked');
695
+ }
696
+ item.attr('value', ('' + !options.checked));
697
+ });
698
+ }
699
+ if(options.include_mark_all) {
700
+ var mark_all_checkbox = element.prevAll('thead').find('th.as_marked-column_heading span input[type="checkbox"]');
701
+ if(options.checked) {
700
702
  mark_all_checkbox.attr('checked', 'checked');
701
703
  } else {
702
704
  mark_all_checkbox.removeAttr('checked');
@@ -735,16 +737,16 @@ var ActiveScaffold = {
735
737
  column_heading = my_parent;
736
738
  }
737
739
 
738
- var render_url = column_heading.attr('data-ie_render_url'),
739
- mode = column_heading.attr('data-ie_mode'),
740
- record_id = span.attr('data-ie_id');
740
+ var render_url = column_heading.data('ie-render-url'),
741
+ mode = column_heading.data('ie-mode'),
742
+ record_id = span.data('ie-id') || '';
741
743
 
742
744
  ActiveScaffold.read_inplace_edit_heading_attributes(column_heading, options);
743
745
 
744
- if (span.attr('data-ie_url')) {
745
- options.url = span.attr('data-ie_url').replace(/__id__/, record_id);
746
+ if (span.data('ie-url')) {
747
+ options.url = span.data('ie-url').replace(/__id__/, record_id);
746
748
  } else {
747
- options.url = column_heading.attr('data-ie_url').replace(/__id__/, record_id);
749
+ options.url = column_heading.data('ie-url').replace(/__id__/, record_id);
748
750
  }
749
751
 
750
752
  if (csrf_param) options['params'] = csrf_param.attr('content') + '=' + csrf_token.attr('content');
@@ -764,7 +766,7 @@ var ActiveScaffold = {
764
766
 
765
767
  if (render_url) {
766
768
  var plural = false;
767
- if (column_heading.attr('data-ie_plural')) plural = true;
769
+ if (column_heading.data('ie-plural')) plural = true;
768
770
  options.field_type = 'remote';
769
771
  options.editor_url = render_url.replace(/__id__/, record_id)
770
772
  }
@@ -1024,10 +1026,17 @@ ActiveScaffold.ActionLink.Record = ActiveScaffold.ActionLink.Abstract.extend({
1024
1026
  ActiveScaffold.highlight(this.adapter.find('td'));
1025
1027
  },
1026
1028
 
1027
- close: function(refreshed_content) {
1029
+ close: function(refreshed_content_or_reload) {
1028
1030
  this._super();
1029
- if (refreshed_content) {
1030
- ActiveScaffold.update_row(this.target, refreshed_content);
1031
+ if (refreshed_content_or_reload) {
1032
+ if (typeof refreshed_content_or_reload == 'string') {
1033
+ ActiveScaffold.update_row(this.target, refreshed_content_or_reload);
1034
+ } else if (this.refresh_url) {
1035
+ var target = this.target;
1036
+ jQuery.get(this.refresh_url, function(e, status, response) {
1037
+ ActiveScaffold.update_row(target, response.responseText);
1038
+ });
1039
+ }
1031
1040
  }
1032
1041
  },
1033
1042
 
@@ -170,18 +170,18 @@ document.observe("dom:loaded", function() {
170
170
  column_heading = my_parent;
171
171
  }
172
172
 
173
- var render_url = column_heading.readAttribute('data-ie_render_url'),
174
- mode = column_heading.readAttribute('data-ie_mode'),
175
- record_id = span.readAttribute('data-ie_id');
173
+ var render_url = column_heading.readAttribute('data-ie-render-url'),
174
+ mode = column_heading.readAttribute('data-ie-mode'),
175
+ record_id = span.readAttribute('data-ie-id') || '';
176
176
 
177
177
  ActiveScaffold.read_inplace_edit_heading_attributes(column_heading, options);
178
178
 
179
- if (span.readAttribute('data-ie_url')) {
180
- options.url = span.readAttribute('data-ie_url');
179
+ if (span.readAttribute('data-ie-url')) {
180
+ options.url = span.readAttribute('data-ie-url');
181
181
  } else {
182
- options.url = column_heading.readAttribute('data-ie_url');
182
+ options.url = column_heading.readAttribute('data-ie-url');
183
183
  }
184
- if (record_id) options.url = options.url.sub('__id__', record_id);
184
+ options.url = options.url.sub('__id__', record_id);
185
185
 
186
186
  if (csrf_param) options['params'] = csrf_param.readAttribute('content') + '=' + csrf_token.readAttribute('content');
187
187
 
@@ -200,7 +200,7 @@ document.observe("dom:loaded", function() {
200
200
 
201
201
  if (render_url) {
202
202
  var plural = false;
203
- if (column_heading.readAttribute('data-ie_plural')) plural = true;
203
+ if (column_heading.readAttribute('data-ie-plural')) plural = true;
204
204
  options['onFormCustomization'] = new Function('element', 'form', 'element.setFieldFromAjax(' + "'" + render_url.sub('__id__', record_id) + "', {plural: " + plural + '});');
205
205
  }
206
206
 
@@ -375,7 +375,7 @@ var ActiveScaffold = {
375
375
  row = $(row);
376
376
  var new_row = this.replace(row, html)
377
377
  if (row.hasClassName('even-record')) new_row.addClassName('even-record');
378
- new_row.highlight();
378
+ ActiveScaffold.highlight(new_row);
379
379
  },
380
380
 
381
381
  replace: function(element, html) {
@@ -451,7 +451,7 @@ var ActiveScaffold = {
451
451
  this.stripe(tbody);
452
452
  this.hide_empty_message(tbody);
453
453
  this.increment_record_count(tbody.up('div.active-scaffold'));
454
- new_row.highlight();
454
+ ActiveScaffold.highlight(new_row);
455
455
  },
456
456
 
457
457
  delete_record_row: function(row, page_reload_url) {
@@ -488,9 +488,9 @@ var ActiveScaffold = {
488
488
  },
489
489
 
490
490
  report_500_response: function(active_scaffold_id) {
491
- server_error = $(active_scaffold_id).down('td.messages-container p.server-error');
491
+ var server_error = $(active_scaffold_id).down('td.messages-container p.server-error');
492
492
  if (server_error.visible()) {
493
- server_error.highlight();
493
+ ActiveScaffold.highlight(server_error);
494
494
  } else {
495
495
  server_error.show();
496
496
  }
@@ -530,13 +530,13 @@ var ActiveScaffold = {
530
530
  },
531
531
 
532
532
  read_inplace_edit_heading_attributes: function(column_heading, options) {
533
- if (column_heading.readAttribute('data-ie_cancel_text')) options.cancelText = column_heading.readAttribute('data-ie_cancel_text');
534
- if (column_heading.readAttribute('data-ie_loading_text')) options.loadingText = column_heading.readAttribute('data-ie_loading_text');
535
- if (column_heading.readAttribute('data-ie_saving_text')) options.savingText = column_heading.readAttribute('data-ie_saving_text');
536
- if (column_heading.readAttribute('data-ie_save_text')) options.okText = column_heading.readAttribute('data-ie_save_text');
537
- if (column_heading.readAttribute('data-ie_rows')) options.rows = column_heading.readAttribute('data-ie_rows');
538
- if (column_heading.readAttribute('data-ie_cols')) options.cols = column_heading.readAttribute('data-ie_cols');
539
- if (column_heading.readAttribute('data-ie_size')) options.size = column_heading.readAttribute('data-ie_size');
533
+ if (column_heading.readAttribute('data-ie-cancel-text')) options.cancelText = column_heading.readAttribute('data-ie-cancel-text');
534
+ if (column_heading.readAttribute('data-ie-loading-text')) options.loadingText = column_heading.readAttribute('data-ie-loading-text');
535
+ if (column_heading.readAttribute('data-ie-saving-text')) options.savingText = column_heading.readAttribute('data-ie-saving-text');
536
+ if (column_heading.readAttribute('data-ie-save-text')) options.okText = column_heading.readAttribute('data-ie-save-text');
537
+ if (column_heading.readAttribute('data-ie-rows')) options.rows = column-heading.readAttribute('data-ie-rows');
538
+ if (column_heading.readAttribute('data-ie-cols')) options.cols = column-heading.readAttribute('data-ie-cols');
539
+ if (column_heading.readAttribute('data-ie-size')) options.size = column-heading.readAttribute('data-ie-size');
540
540
  },
541
541
 
542
542
  create_inplace_editor: function(span, options) {
@@ -610,18 +610,20 @@ var ActiveScaffold = {
610
610
  // element is tbody id
611
611
  mark_records: function(element, options) {
612
612
  var element = $(element);
613
- var mark_checkboxes = $$('#' + element.readAttribute('id') + ' > tr.record td.marked-column input[type="checkbox"]');
614
- mark_checkboxes.each(function(item) {
615
- if(options.checked === true) {
616
- item.writeAttribute({ checked: 'checked' });
617
- } else {
618
- item.removeAttribute('checked');
619
- }
620
- item.writeAttribute('value', ('' + !options.checked));
621
- });
622
- if(options.include_mark_all === true) {
613
+ if (options.include_checkboxes) {
614
+ var mark_checkboxes = $$('#' + element.readAttribute('id') + ' > tr.record td.marked-column input[type="checkbox"]');
615
+ mark_checkboxes.each(function(item) {
616
+ if(options.checked) {
617
+ item.writeAttribute({ checked: 'checked' });
618
+ } else {
619
+ item.removeAttribute('checked');
620
+ }
621
+ item.writeAttribute('value', ('' + !options.checked));
622
+ });
623
+ }
624
+ if(options.include_mark_all) {
623
625
  var mark_all_checkbox = element.previous('thead').down('th.marked-column_heading span input[type="checkbox"]');
624
- if(options.checked === true) {
626
+ if(options.checked) {
625
627
  mark_all_checkbox.writeAttribute({ checked: 'checked' });
626
628
  } else {
627
629
  mark_all_checkbox.removeAttribute('checked');
@@ -668,6 +670,13 @@ var ActiveScaffold = {
668
670
 
669
671
  draggable_lists: function(element) {
670
672
  new DraggableLists(element);
673
+ },
674
+
675
+ highlight: function(element) {
676
+ element = $(element);
677
+ if (typeof(element.highlight) == 'function') {
678
+ element.highlight(Object.extend({duration: 3}, ActiveScaffold.config.highlight));
679
+ }
671
680
  }
672
681
  }
673
682
 
@@ -907,13 +916,23 @@ ActiveScaffold.ActionLink.Record = Class.create(ActiveScaffold.ActionLink.Abstra
907
916
  else {
908
917
  return false;
909
918
  }
910
- this.adapter.down('td').down().highlight();
919
+ ActiveScaffold.highlight(this.adapter.down('td').down());
911
920
  },
912
921
 
913
- close: function($super, refreshed_content) {
922
+ close: function($super, refreshed_content_or_reload) {
914
923
  $super();
915
- if (refreshed_content) {
916
- ActiveScaffold.update_row(this.target, refreshed_content);
924
+ if (refreshed_content_or_reload) {
925
+ if (typeof refreshed_content_or_reload == 'string') {
926
+ ActiveScaffold.update_row(this.target, refreshed_content_or_update);
927
+ } else if (this.refresh_url) {
928
+ var target = this.target;
929
+ new Ajax.Request(this.refresh_url, {
930
+ method: 'get',
931
+ onComplete: function(response) {
932
+ ActiveScaffold.update_row(target, response.responseText);
933
+ }
934
+ });
935
+ }
917
936
  }
918
937
  },
919
938
 
@@ -965,7 +984,7 @@ ActiveScaffold.ActionLink.Table = Class.create(ActiveScaffold.ActionLink.Abstrac
965
984
  else {
966
985
  throw 'Unknown position "' + this.position + '"'
967
986
  }
968
- this.adapter.down('td').down().highlight();
987
+ ActiveScaffold.highlight(this.adapter.down('td').down());
969
988
  },
970
989
 
971
990
  reload: function() {
@@ -450,6 +450,10 @@ position: relative;
450
450
  margin: 2px 7px;
451
451
  line-height: 12px;
452
452
  }
453
+ .active-scaffold .message .timestamp,
454
+ .active-scaffold .message .message-content {
455
+ display: inline;
456
+ }
453
457
 
454
458
  .active-scaffold .filtered-message .reset {
455
459
  position: absolute;
@@ -31,8 +31,10 @@ de:
31
31
  filtered: '(Gefiltert)'
32
32
  found: 'Gefunden'
33
33
  hide: 'Verstecken'
34
+ inplace_edit_handle: '--'
34
35
  live_search: 'Live-Suche'
35
36
  loading: 'Lade…'
37
+ mark_all_records: "Mark all"
36
38
  next: 'Vor'
37
39
  no_entries: 'Keine Einträge'
38
40
  no_options: 'Keine Optionen'
@@ -41,6 +43,9 @@ de:
41
43
  pdf: 'PDF'
42
44
  previous: 'Zurück'
43
45
  print: 'Drucken'
46
+ records_marked:
47
+ one: "1 marked %{model}"
48
+ other: "%{count} marked %{model}"
44
49
  refresh: 'Neu laden'
45
50
  remove: 'Entfernen'
46
51
  remove_file: 'Entferne oder Ersetze Datei'
@@ -31,8 +31,10 @@ en:
31
31
  filtered: '(Filtered)'
32
32
  found: 'Found'
33
33
  hide: 'Hide'
34
+ inplace_edit_handle: '--'
34
35
  live_search: 'Live Search'
35
36
  loading: 'Loading…'
37
+ mark_all_records: "Mark all"
36
38
  next: 'Next'
37
39
  no_entries: 'No Entries'
38
40
  no_options: 'no options'
@@ -41,6 +43,9 @@ en:
41
43
  pdf: 'PDF'
42
44
  previous: 'Previous'
43
45
  print: 'Print'
46
+ records_marked:
47
+ one: "1 marked %{model}"
48
+ other: "%{count} marked %{model}"
44
49
  refresh: 'Refresh'
45
50
  remove: 'Remove'
46
51
  remove_file: 'Remove or Replace file'
@@ -31,8 +31,10 @@ es:
31
31
  one: 'encontrado'
32
32
  other: 'encontrados'
33
33
  hide: 'Ocultar'
34
+ inplace_edit_handle: '--'
34
35
  live_search: 'Buscar en Vivo'
35
36
  loading: 'Cargando…'
37
+ mark_all_records: "Seleccionar todos"
36
38
  nested_for_model: '%{nested_model} de %{parent_model}'
37
39
  nested_of_model: '%{nested_model} de %{parent_model}'
38
40
  next: 'Siguiente'
@@ -43,6 +45,9 @@ es:
43
45
  pdf: 'PDF'
44
46
  previous: 'Anterior'
45
47
  print: 'Imprimir'
48
+ records_marked:
49
+ one: "1 %{model} seleccionado"
50
+ other: "%{count} %{model} seleccionados"
46
51
  refresh: 'Recargar'
47
52
  remove: 'Eliminar'
48
53
  remove_file: 'Eliminar o Reemplazar archivo'