fae-rails 1.7.1 → 2.0.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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -3
  3. data/app/assets/images/fae/tutorial_model_location.png +0 -0
  4. data/app/assets/javascripts/fae/_tables.js +11 -25
  5. data/app/assets/javascripts/fae/application.js +2 -2
  6. data/app/assets/javascripts/fae/fae_init.js +0 -4
  7. data/app/assets/javascripts/fae/form/_ajax.js +3 -6
  8. data/app/assets/javascripts/fae/form/_validator.js +2 -2
  9. data/app/assets/javascripts/fae/navigation/_language.js +1 -1
  10. data/app/assets/javascripts/fae/navigation/_navigation.js +9 -21
  11. data/app/assets/javascripts/fae/navigation/_subnav_highlighter.js +7 -41
  12. data/app/assets/stylesheets/fae/base.scss +2 -6
  13. data/app/assets/stylesheets/fae/globals/imports/_variables.scss +0 -2
  14. data/app/assets/stylesheets/fae/globals/layout/_content-header.scss +9 -29
  15. data/app/assets/stylesheets/fae/pages/_home.scss +18 -0
  16. data/app/controllers/fae/base_controller.rb +1 -1
  17. data/app/controllers/fae/pages_controller.rb +3 -2
  18. data/app/helpers/fae/application_helper.rb +1 -1
  19. data/app/helpers/fae/form_helper.rb +3 -4
  20. data/app/helpers/fae/nested_form_helper.rb +2 -2
  21. data/app/helpers/fae/view_helper.rb +1 -3
  22. data/app/models/concerns/fae/base_model_concern.rb +1 -7
  23. data/app/models/fae/change.rb +1 -1
  24. data/app/models/fae/file.rb +1 -1
  25. data/app/models/fae/image.rb +1 -1
  26. data/app/models/fae/option.rb +1 -1
  27. data/app/models/fae/role.rb +1 -1
  28. data/app/models/fae/static_page.rb +4 -0
  29. data/app/uploaders/fae/file_uploader.rb +1 -4
  30. data/app/uploaders/fae/image_uploader.rb +2 -2
  31. data/app/views/fae/images/_image_uploader.html.slim +2 -2
  32. data/app/views/fae/options/_form.html.slim +1 -1
  33. data/app/views/fae/pages/home.html.slim +32 -21
  34. data/app/views/fae/shared/_form_header.html.slim +33 -33
  35. data/app/views/fae/shared/_nested_table.html.slim +2 -4
  36. data/app/views/fae/users/index.html.slim +1 -1
  37. data/db/migrate/20140809222030_add_user_table.rb +1 -1
  38. data/db/migrate/20140822224029_create_fae_roles.rb +1 -1
  39. data/db/migrate/20141008180718_create_fae_images_table.rb +1 -1
  40. data/db/migrate/20141017194616_create_fae_options.rb +1 -1
  41. data/db/migrate/20141021181327_create_fae_files.rb +1 -1
  42. data/db/migrate/20141021183047_create_fae_text_areas.rb +1 -1
  43. data/db/migrate/20141021184311_create_fae_pages.rb +1 -1
  44. data/db/migrate/20141105214814_create_fae_text_fields.rb +1 -1
  45. data/db/migrate/20150930224821_create_fae_changes.rb +1 -1
  46. data/lib/fae/options.rb +1 -1
  47. data/lib/fae/version.rb +1 -1
  48. data/lib/generators/fae/base_generator.rb +5 -4
  49. data/lib/generators/fae/nested_index_scaffold_generator.rb +0 -1
  50. data/lib/generators/fae/nested_scaffold_generator.rb +2 -2
  51. data/lib/generators/fae/scaffold_generator.rb +0 -1
  52. data/lib/generators/fae/templates/views/_form.html.slim +1 -3
  53. data/lib/generators/fae/templates/views/index_nested.html.slim +1 -0
  54. data/lib/generators/fae/templates/views/static_page_form.html.slim +1 -2
  55. metadata +46 -47
  56. data/app/views/fae/shared/_form_buttons.html.slim +0 -11
  57. data/app/views/fae/shared/_nested_table_advanced.html.slim +0 -18
  58. data/lib/sub_test_task_patch.rb +0 -129
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2efad2fc9feedd56fc9ec582e9ac519e6f7c0a8b
4
- data.tar.gz: 1f3079cb3d1143a955289d8add21a72a7b6772a4
3
+ metadata.gz: 792dd37ac209ab8e11c320ca46d8fa889aa7b076
4
+ data.tar.gz: 2b06e7346546949a0537f25f0e2c20245c536036
5
5
  SHA512:
6
- metadata.gz: ccf4b94fe96cdc89fe3119ba65ee96584dea2cacbc6dc15a7b8518a90a8053f1481c82201d7165883b3ad57bfb993abe0d5368242ae2e18750a8ec3d5a29bf8b
7
- data.tar.gz: 5f3702e59f1583fac3bcddada5aff0c324c2a9464c4071584256995ccbed06e4ae8329f14b1bcb8e5667d500a50b1bb199d449d8a5555a07c53ae6c2df941a3d
6
+ metadata.gz: 52ceefb35b9b05867733ca0f125657b474a9517c1df2bcd5706ca51dd76c81bb14458062fa15ede894c9073623e8f43f336e96e09a2291567918a1112c2cdb69
7
+ data.tar.gz: 963568ce30f5c580bdb33eefb24639145ea4b2c1f5a271dfb08ae85a63e49d9f22efbde7e0c0e18dbf634ee7fdcc4c0fccec1831c29745fe68cf0297ff89d28a
data/Rakefile CHANGED
@@ -25,9 +25,6 @@ require 'rspec/core/rake_task'
25
25
  desc "Run all specs in spec directory (excluding plugin specs)"
26
26
  RSpec::Core::RakeTask.new(:spec => 'app:db:test:prepare')
27
27
 
28
- # @deprecation - remove require when we drop Rails 4 support
29
- require 'sub_test_task_patch'
30
-
31
28
  require 'rake/testtask'
32
29
  Rake::TestTask.new(:test) do |t|
33
30
  t.libs << 'lib'
@@ -17,16 +17,14 @@ Fae.tables = {
17
17
  sort_cookie_name: 'Fae_table_sort_preferences',
18
18
 
19
19
  ready: function() {
20
- // @depreciation - remove `|| FCH.exists('.main_table-sort_columns')` and only use FCH.exists('.js-sort-column') in v2.0
21
- if (FCH.exists('.js-sort-column') || FCH.exists('.main_table-sort_columns')) {
20
+ if (FCH.exists('.js-sort-column')) {
22
21
  this.dateColumnSorting();
23
22
  this.columnSorting();
24
23
  this.defaultSortCookie();
25
24
  this.sortColumnsFromCookies();
26
25
  }
27
26
 
28
- // @depreciation - remove || FCH.exists('.main_content-sortable-handle') and only use FCH.exists('.sortable-handle') in v2.0
29
- if (FCH.exists('.sortable-handle') || FCH.exists('.main_content-sortable-handle')) {
27
+ if (FCH.exists('.sortable-handle')) {
30
28
  this.rowSorting();
31
29
  }
32
30
 
@@ -36,10 +34,7 @@ Fae.tables = {
36
34
  this.collapsibleTable();
37
35
  }
38
36
 
39
- // @depreciation - remove conditional wrapping and call endingSelectShim like `this.endingSelectShim()` in v2.0
40
- if (FCH.exists('form ' + Fae.content_selector)) {
41
- this.endingSelectShim(Fae.content_selector);
42
- }
37
+ this.endingSelectShim();
43
38
 
44
39
  if (FCH.exists('.js-tooltip')) {
45
40
  this.tooltip();
@@ -54,8 +49,7 @@ Fae.tables = {
54
49
  var path = window.location.pathname;
55
50
  var cookie_value = Cookies.getJSON(_this.sort_cookie_name);
56
51
 
57
- // @depreciation - remove `, .main_table-sort_columns` and only use '.js-sort-column' in v2.0
58
- $('.js-sort-column, .main_table-sort_columns')
52
+ $('.js-sort-column')
59
53
  .tablesorter()
60
54
  .on('sortEnd', function(e) {
61
55
  var $this = $(this);
@@ -142,8 +136,7 @@ Fae.tables = {
142
136
  return;
143
137
  }
144
138
 
145
- // @depreciation - remove `, .main_table-sort_columns` and only use '.js-sort-column' in v2.0
146
- $('.js-sort-column, .main_table-sort_columns').each(function(idx) {
139
+ $('.js-sort-column').each(function(idx) {
147
140
  // If this table exists in the cookie hash
148
141
  if (cookie_value[path].hasOwnProperty(idx)) {
149
142
  // Use array value within another array because of how tablesorter accepts this argument
@@ -156,15 +149,10 @@ Fae.tables = {
156
149
  * Make table rows draggable by user
157
150
  */
158
151
  rowSorting: function() {
159
- // @depreciation - remove sort_selector var in v2.0
160
- var sort_selector = FCH.exists('.sortable-handle') ? '.sortable-handle' : '.main_content-sortable-handle';
161
-
162
- // @depreciation - remove `, .main_content-sortable` and only use '.js-sort-row' in v2.0
163
- $('.js-sort-row, .main_content-sortable').sortable({
152
+ $('.js-sort-row').sortable({
164
153
  items: 'tbody tr',
165
154
  opacity: 0.8,
166
- // @depreciation - replace sort_selector with '.sortable-handle' in v2.0
167
- handle: (sort_selector),
155
+ handle: ('.sortable-handle'),
168
156
 
169
157
  //helper function to preserve the width of the table row
170
158
  helper: function(e, $tr) {
@@ -271,11 +259,9 @@ Fae.tables = {
271
259
 
272
260
  /**
273
261
  * Add extra space if the last item in a form is a select menu so the dropdown doesn't run off the screen or section
274
- * @param {String} selector - Last of type element to target
275
- * @deprecation remove selector arg and replace selector variable with '.content' in v2.0
276
262
  */
277
- endingSelectShim: function(selector) {
278
- $('form ' + selector + ':last-of-type').each(function() {
263
+ endingSelectShim: function() {
264
+ $('form .content:last-of-type').each(function() {
279
265
  var $last_item = $(this).find('.input:last-of-type');
280
266
 
281
267
  if( $last_item.hasClass('select') ) {
@@ -342,8 +328,8 @@ Fae.tables = {
342
328
  */
343
329
  sizeFixedHeader: function() {
344
330
  var $tables = $('.content table');
345
- // @depreciation - change value from ternary to $('.js-content-header').outerHeight() in v2.0
346
- var header_height = FCH.exists('.js-content-header') ? $('.js-content-header').outerHeight() : $('.main_content-header').outerHeight();
331
+
332
+ var header_height = $('.js-content-header').outerHeight();
347
333
  if(FCH.large_down) {
348
334
  header_height = $('#js-main-header').outerHeight();
349
335
  }
@@ -13,8 +13,8 @@
13
13
  //= require jquery
14
14
  //= require jquery_ujs
15
15
  //= require jquery.remotipart
16
- //= require jquery.ui.sortable
17
- //= require jquery.ui.datepicker
16
+ //= require jquery-ui/widgets/sortable
17
+ //= require jquery-ui/widgets/datepicker
18
18
  //= require underscore
19
19
  //= require json2
20
20
  //= require judge
@@ -5,8 +5,4 @@
5
5
  window.FCH = new FrobCoreHelpers(Fae, {
6
6
  mobile_fps: false
7
7
  });
8
-
9
- // Selector to support pre-1.3 changes
10
- // @depreciation - replace Fae.content_selector property and all instances of it with '.content' in v2.0
11
- Fae.content_selector = FCH.exists('.main_content-section') || FCH.exists('.main_content-sections') ? '.main_content-section-area' : '.content';
12
8
  })();
@@ -123,13 +123,10 @@ Fae.form.ajax = {
123
123
  if($html.hasClass('js-addedit-form') || $html.hasClass( 'js-index-addedit-form' )) {
124
124
  // we're returning the table, replace everything
125
125
  _this._addEditReplaceAndReinit($this, $html.html(), $target);
126
- } else if ($html.hasClass('nested-form') || $html.hasClass('form_content-wrapper')) {
127
-
128
- // @depreciation - remove `|| $html.hasClass('form_content_wrapper')` from above conditional as well as the following ternary (value should just be '.nested-form') in v2.0
129
- var form_wrapper_selector = $html.hasClass('nested-form') ? '.nested-form' : '.form_content-wrapper';
126
+ } else if ($html.hasClass('nested-form')) {
130
127
 
131
128
  // we're returning the form due to an error, just replace the form
132
- $this.find( form_wrapper_selector ).replaceWith(data);
129
+ $this.find( '.nested-form' ).replaceWith(data);
133
130
  $this.find('.select select').fae_chosen();
134
131
  $this.find('.input.file').fileinputer();
135
132
 
@@ -286,7 +283,7 @@ Fae.form.ajax = {
286
283
  },
287
284
 
288
285
  /**
289
- * Attaching click handlers to #main_content to allow ajax replacement
286
+ * Attaching click handlers to #js-main-content to allow ajax replacement
290
287
  * @todo Clean this up, moving listeners into their respective component classes (select, checkbox, etc.)
291
288
  */
292
289
  htmlListeners: function() {
@@ -214,9 +214,9 @@ Fae.form.validator = {
214
214
 
215
215
  var $wrapper = $input.closest('.input');
216
216
  if ($wrapper.children('.error').length) {
217
- $wrapper.children('.error').text(messages.join(','));
217
+ $wrapper.children('.error').text(messages.join(', '));
218
218
  } else {
219
- $wrapper.addClass('field_with_errors').append("<span class='error'>" + messages.join(',') + "</span>");
219
+ $wrapper.addClass('field_with_errors').append("<span class='error'>" + messages.join(', ') + "</span>");
220
220
  }
221
221
  },
222
222
 
@@ -83,7 +83,7 @@ Fae.navigation.language = {
83
83
  */
84
84
  checkForHiddenErrors: function() {
85
85
  if (this.el.$select.length && $('div.field_with_errors:hidden').length && !FCH.exists('.hidden_errors')) {
86
- $(Fae.content_selector).prepend('<div class="hidden_errors field_with_errors"><span class="error">There are hidden errors. Click "All Languages" in the language nav to view all errors.</span></div>');
86
+ $('.content').prepend('<div class="hidden_errors field_with_errors"><span class="error">There are hidden errors. Click "All Languages" in the language nav to view all errors.</span></div>');
87
87
  }
88
88
  }
89
89
  };
@@ -167,27 +167,15 @@ Fae.navigation = {
167
167
  stickyHeaders: function(just_headers) {
168
168
  just_headers = FCH.setDefault(just_headers, false);
169
169
 
170
- if(FCH.exists('.js-content-header')) {
171
- var $header = $('.js-content-header');
172
- var sidebar_top_offset = (parseInt( $header.outerHeight(), 10) + 30) + 'px';
173
- $('#js-sidenav').css('padding-top', sidebar_top_offset );
174
-
175
- $header.sticky({
176
- placeholder: true,
177
- perpetual_placeholder: true,
178
- ignore_placeholder_offsets: true
179
- });
180
-
181
- // @depreciation - remove else block in 2.0
182
- } else {
183
- var $header = $('.main_content-header');
184
- var sidebar_top_offset = (parseInt( $header.outerHeight(), 10) + 30) + 'px';
185
- $('#js-sidenav').css('padding-top', sidebar_top_offset );
186
-
187
- $('.main_content-header').sticky({
188
- placeholder: true
189
- });
190
- }
170
+ var $header = $('.js-content-header');
171
+ var sidebar_top_offset = (parseInt( $header.outerHeight(), 10) + 30) + 'px';
172
+ $('#js-sidenav').css('padding-top', sidebar_top_offset );
173
+
174
+ $header.sticky({
175
+ placeholder: true,
176
+ perpetual_placeholder: true,
177
+ ignore_placeholder_offsets: true
178
+ });
191
179
 
192
180
  if (!just_headers) {
193
181
  $('#js-sidenav').sticky();
@@ -8,18 +8,7 @@
8
8
  Fae.navigation.subnav_highlighter = {
9
9
  init: function() {
10
10
  //only run everything if there is a subnav area
11
- // @depreciation - change conditional to FCH.exists('.content-header-subnav') in v2.0
12
- if (FCH.exists('.main_content-header-section-links') || FCH.exists('.content-header-subnav')) {
13
- // @depreciation - remove entire conditional block (following 7 lines) in v2.0
14
- if(Fae.content_selector === '.content') {
15
- this.section_class = Fae.content_selector;
16
- this.subnav_class = '#js-content-header-subnav';
17
- this.addBuffer();
18
- } else {
19
- this.section_class = '.main_content-section';
20
- this.subnav_class = '.main_content-header-section-links';
21
- }
22
-
11
+ if (FCH.exists('.content-header-subnav')) {
23
12
  this.FCHListeners();
24
13
 
25
14
  //makes the subnav clicks
@@ -27,28 +16,10 @@ Fae.navigation.subnav_highlighter = {
27
16
  }
28
17
  },
29
18
 
30
- /**
31
- * Add space above subnav links if they're present
32
- * @depreciation - Remove this function in favor of a better HTML solution in form_header in a v2.0 refactor.
33
- */
34
- addBuffer: function() {
35
- var $subnav = $( this.subnav_class );
36
- var height = $subnav.css('height');
37
- $subnav.parent().css('padding-bottom', height);
38
- },
39
-
40
19
  /**
41
20
  * Since subnavHighlighter is not a direct child of Fae and therefore unknown to FCH, these listeners are saved in private functions in this method
42
21
  */
43
22
  FCHListeners: function() {
44
- // @depreciation - change value of section_class to '.content' in v2.0
45
- var section_class = this.section_class;
46
- // @depreciation - change value of subnav_class to '#js-content-header-subnav' in v2.0
47
- // Ideally, form_header will include header.content-header.js-content-header
48
- var subnav_class = this.subnav_class;
49
- // @depreciation - remove legacy_buffer expression in v2.0 (the value should be 0, so it will be unnecessary)
50
- var legacy_buffer = section_class === Fae.content_selector ? 0 : 32;
51
-
52
23
  /**
53
24
  * On scroll, change highlight of nav item. Bread and butter of this subclass.
54
25
  * @private
@@ -56,11 +27,11 @@ Fae.navigation.subnav_highlighter = {
56
27
  function scrollCallback() {
57
28
  var scroll_top = FCH.$window.scrollTop();
58
29
 
59
- $(section_class).each(function(index) {
30
+ $('.content').each(function(index) {
60
31
  var $this = $(this);
61
- var position = $this.position().top - scroll_top - legacy_buffer;
32
+ var position = $this.position().top - scroll_top;
62
33
  var $link = $('a[href="#' + $this.attr('id') + '"]').parent();
63
- var is_scrolled_to_bottom = scroll_top - legacy_buffer >= (FCH.$document.outerHeight() - FCH.dimensions.wh);
34
+ var is_scrolled_to_bottom = scroll_top >= (FCH.$document.outerHeight() - FCH.dimensions.wh);
64
35
 
65
36
  $link.removeClass('-active');
66
37
  if (position <= 0 || index === 0 || is_scrolled_to_bottom) {
@@ -80,11 +51,7 @@ Fae.navigation.subnav_highlighter = {
80
51
  * Smooth scrolling on anchor links in the tab area.
81
52
  */
82
53
  anchorClickListener: function() {
83
- // @depreciation - replace scroll_offset_selector variable with string '.content-header' in v2.0
84
- var scroll_offset_selector = FCH.exists('.main_content-header') ? '.main_content-header' : '.content-header';
85
- var scroll_offset = parseInt( $(scroll_offset_selector).css('height'), 10 );
86
- // @depreciation - remove should_find_h2 in v2.0
87
- var should_find_h2 = this.section_class === Fae.content_selector;
54
+ var scroll_offset = parseInt( $('.content-header').css('height'), 10 );
88
55
 
89
56
  /**
90
57
  * Smoothly scroll to destination if it's a link to the current page
@@ -98,8 +65,7 @@ Fae.navigation.subnav_highlighter = {
98
65
  var $target = $(this.hash);
99
66
  $target = $target.length ? $target : $('[name=' + this.hash.slice(1) + ']');
100
67
 
101
- // @depreciation - remove conditional wrapping (keep $target = ... and scroll_offset -= ...) in v2.0
102
- if(should_find_h2 && $target.find('h2').length) {
68
+ if($target.find('h2').length) {
103
69
  $target = $target.find('h2');
104
70
  scroll_offset -= 2;
105
71
  }
@@ -110,6 +76,6 @@ Fae.navigation.subnav_highlighter = {
110
76
  }
111
77
  }
112
78
 
113
- $(this.subnav_class + ' a').on('click', scroller);
79
+ $('#js-content-header-subnav a').on('click', scroller);
114
80
  },
115
81
  };
@@ -77,10 +77,6 @@
77
77
  @import
78
78
  'pages/error',
79
79
  'pages/login',
80
- 'pages/help'
81
- ;
82
-
83
- // Legacy styles
84
- @import
85
- 'globals/legacy/pre-1.3'
80
+ 'pages/help',
81
+ 'pages/home'
86
82
  ;
@@ -7,8 +7,6 @@ $custom-breakpoints: () !default;
7
7
 
8
8
  // Fae-specific breakpoints
9
9
  $fae-breakpoints: (
10
- // @depreciation - remove page_header_save_block in v2.0
11
- 'page_header_save_block': ( max-width: 615px ),
12
10
  'login_container': ( min-width: 700px ),
13
11
  'login_submit': ( min-width: 500px ),
14
12
  );
@@ -1,22 +1,20 @@
1
+ $content-header-padding: 16px;
2
+
1
3
  // content header
2
4
  .content-header {
3
- @include clearfix;
4
5
  @include stack($fae-nav-stack);
5
6
  width: 100%;
6
- padding: 16px $content-buffer;
7
+ padding: $content-header-padding $content-buffer;
7
8
  background: $c-content-header-bg;
8
9
  border-bottom: 1px solid $c-grey;
9
10
  position: absolute;
10
11
  left: 0;
11
12
  top: 0;
12
13
  box-shadow: 0 0 10px $c-grey;
13
-
14
- &:after {
15
- content: '';
16
- display: block;
17
- height: 100%;
18
- position: static;
19
- }
14
+ display: flex;
15
+ justify-content: space-between;
16
+ align-items: center;
17
+ flex-wrap: wrap;
20
18
 
21
19
  &.-dashboard {
22
20
  padding-top: 26px;
@@ -28,13 +26,6 @@
28
26
  }
29
27
  }
30
28
 
31
- h1,
32
- .breadcrumbs {
33
- @include bp(large) {
34
- float: left;
35
- }
36
- }
37
-
38
29
  h1 {
39
30
  padding: 5px 0;
40
31
  font-weight: bold;
@@ -42,10 +33,10 @@
42
33
  }
43
34
 
44
35
  .content-header-subnav {
45
- position: absolute;
46
- left: $content-buffer;
47
36
  bottom: 0;
48
37
  width: 100%;
38
+ margin-bottom: negate($content-header-padding);
39
+ flex-basis: 100%;
49
40
 
50
41
  a {
51
42
  @include transition(all .2s);
@@ -83,20 +74,9 @@
83
74
  }
84
75
 
85
76
  .content-header-buttons {
86
- margin: 10px 0;
87
-
88
- @include bp(large) {
89
- float: right;
90
- margin: 0;
91
- }
92
-
93
77
  a {
94
78
  margin-right: 5px;
95
79
 
96
- @include bp(medium) {
97
- height: 37px; // Fix height so descenders don't mess up the visual balance
98
- }
99
-
100
80
  &:last-child {
101
81
  margin-right: 0;
102
82
  }
@@ -0,0 +1,18 @@
1
+ .tutorial {
2
+ div {
3
+ background-image: image-url('fae/tutorial_model_location.png');
4
+ height: 11em;
5
+ margin-left: 2em;
6
+ background-size: 60%;
7
+ background-position: left;
8
+ background-repeat: no-repeat;
9
+ }
10
+
11
+ @media (max-width: 800px){
12
+ height: 8em;
13
+ }
14
+
15
+ p {
16
+ margin: 2em;
17
+ }
18
+ }
@@ -84,7 +84,7 @@ module Fae
84
84
  @klass = klass_base.classify.constantize # used as class reference in this controller
85
85
  @klass_singular = klass_base.singularize # used in index views
86
86
  @klass_humanized = @klass_name.singularize.humanize # used in index views
87
- @index_path = '/' + params[:controller] # used in form_header and form_buttons partials
87
+ @index_path = '/' + params[:controller] # used in form_header partial
88
88
  @new_path = @index_path + '/new' # used in index_header partial
89
89
  end
90
90
 
@@ -5,11 +5,12 @@ module Fae
5
5
 
6
6
  def home
7
7
  @list = recently_updated
8
+ @models = all_models
8
9
  end
9
10
 
10
11
  def help
11
12
  require 'browser'
12
- @browser = Browser.new(ua: request.user_agent, accept_language: 'en-us')
13
+ @browser = Browser.new(request.user_agent, accept_language: 'en-us')
13
14
  end
14
15
 
15
16
  def activity_log
@@ -40,4 +41,4 @@ module Fae
40
41
  list.flatten.sort_by(&:updated_at).reverse.first(num)
41
42
  end
42
43
  end
43
- end
44
+ end