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.
- checksums.yaml +4 -4
- data/Rakefile +0 -3
- data/app/assets/images/fae/tutorial_model_location.png +0 -0
- data/app/assets/javascripts/fae/_tables.js +11 -25
- data/app/assets/javascripts/fae/application.js +2 -2
- data/app/assets/javascripts/fae/fae_init.js +0 -4
- data/app/assets/javascripts/fae/form/_ajax.js +3 -6
- data/app/assets/javascripts/fae/form/_validator.js +2 -2
- data/app/assets/javascripts/fae/navigation/_language.js +1 -1
- data/app/assets/javascripts/fae/navigation/_navigation.js +9 -21
- data/app/assets/javascripts/fae/navigation/_subnav_highlighter.js +7 -41
- data/app/assets/stylesheets/fae/base.scss +2 -6
- data/app/assets/stylesheets/fae/globals/imports/_variables.scss +0 -2
- data/app/assets/stylesheets/fae/globals/layout/_content-header.scss +9 -29
- data/app/assets/stylesheets/fae/pages/_home.scss +18 -0
- data/app/controllers/fae/base_controller.rb +1 -1
- data/app/controllers/fae/pages_controller.rb +3 -2
- data/app/helpers/fae/application_helper.rb +1 -1
- data/app/helpers/fae/form_helper.rb +3 -4
- data/app/helpers/fae/nested_form_helper.rb +2 -2
- data/app/helpers/fae/view_helper.rb +1 -3
- data/app/models/concerns/fae/base_model_concern.rb +1 -7
- data/app/models/fae/change.rb +1 -1
- data/app/models/fae/file.rb +1 -1
- data/app/models/fae/image.rb +1 -1
- data/app/models/fae/option.rb +1 -1
- data/app/models/fae/role.rb +1 -1
- data/app/models/fae/static_page.rb +4 -0
- data/app/uploaders/fae/file_uploader.rb +1 -4
- data/app/uploaders/fae/image_uploader.rb +2 -2
- data/app/views/fae/images/_image_uploader.html.slim +2 -2
- data/app/views/fae/options/_form.html.slim +1 -1
- data/app/views/fae/pages/home.html.slim +32 -21
- data/app/views/fae/shared/_form_header.html.slim +33 -33
- data/app/views/fae/shared/_nested_table.html.slim +2 -4
- data/app/views/fae/users/index.html.slim +1 -1
- data/db/migrate/20140809222030_add_user_table.rb +1 -1
- data/db/migrate/20140822224029_create_fae_roles.rb +1 -1
- data/db/migrate/20141008180718_create_fae_images_table.rb +1 -1
- data/db/migrate/20141017194616_create_fae_options.rb +1 -1
- data/db/migrate/20141021181327_create_fae_files.rb +1 -1
- data/db/migrate/20141021183047_create_fae_text_areas.rb +1 -1
- data/db/migrate/20141021184311_create_fae_pages.rb +1 -1
- data/db/migrate/20141105214814_create_fae_text_fields.rb +1 -1
- data/db/migrate/20150930224821_create_fae_changes.rb +1 -1
- data/lib/fae/options.rb +1 -1
- data/lib/fae/version.rb +1 -1
- data/lib/generators/fae/base_generator.rb +5 -4
- data/lib/generators/fae/nested_index_scaffold_generator.rb +0 -1
- data/lib/generators/fae/nested_scaffold_generator.rb +2 -2
- data/lib/generators/fae/scaffold_generator.rb +0 -1
- data/lib/generators/fae/templates/views/_form.html.slim +1 -3
- data/lib/generators/fae/templates/views/index_nested.html.slim +1 -0
- data/lib/generators/fae/templates/views/static_page_form.html.slim +1 -2
- metadata +46 -47
- data/app/views/fae/shared/_form_buttons.html.slim +0 -11
- data/app/views/fae/shared/_nested_table_advanced.html.slim +0 -18
- data/lib/sub_test_task_patch.rb +0 -129
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 792dd37ac209ab8e11c320ca46d8fa889aa7b076
|
4
|
+
data.tar.gz: 2b06e7346546949a0537f25f0e2c20245c536036
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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'
|
Binary file
|
@@ -17,16 +17,14 @@ Fae.tables = {
|
|
17
17
|
sort_cookie_name: 'Fae_table_sort_preferences',
|
18
18
|
|
19
19
|
ready: function() {
|
20
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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(
|
278
|
-
$('form
|
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
|
-
|
346
|
-
var header_height =
|
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
|
17
|
-
//= require jquery
|
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')
|
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(
|
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 #
|
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
|
-
$(
|
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
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
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
|
-
|
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
|
-
$(
|
30
|
+
$('.content').each(function(index) {
|
60
31
|
var $this = $(this);
|
61
|
-
var position = $this.position().top - scroll_top
|
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
|
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
|
-
|
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
|
-
|
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
|
-
$(
|
79
|
+
$('#js-content-header-subnav a').on('click', scroller);
|
114
80
|
},
|
115
81
|
};
|
@@ -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:
|
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
|
-
|
15
|
-
|
16
|
-
|
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
|
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(
|
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
|