aureus 2.1.4 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Gemfile.lock +39 -40
  4. data/README.md +56 -64
  5. data/app/assets/javascripts/aureus/index.js +0 -41
  6. data/app/assets/javascripts/aureus/layout.js.erb +9 -0
  7. data/{spec/internal/app/assets/stylesheets/application.scss → app/assets/stylesheets/aureus/layout.scss.erb} +1 -1
  8. data/app/assets/stylesheets/aureus/skin/default.scss +0 -4
  9. data/app/assets/stylesheets/aureus/theme/content.scss +0 -4
  10. data/app/assets/stylesheets/aureus/theme/table.scss +1 -16
  11. data/app/assets/stylesheets/aureus/theme.scss +8 -0
  12. data/app/controllers/aureus/resources_controller.rb +52 -0
  13. data/app/controllers/aureus_controller.rb +2 -0
  14. data/app/views/aureus/resources/_form.html.haml +8 -0
  15. data/app/views/aureus/resources/_item.html.haml +7 -0
  16. data/app/views/aureus/resources/_navigation.html.haml +5 -0
  17. data/app/views/aureus/resources/_table.html.haml +11 -0
  18. data/app/views/aureus/resources/edit.html.haml +2 -0
  19. data/app/views/aureus/resources/index.html.haml +2 -0
  20. data/app/views/aureus/resources/new.html.haml +2 -0
  21. data/app/views/aureus/resources/show.html.haml +2 -0
  22. data/app/views/layouts/aureus.html.haml +14 -0
  23. data/aureus.gemspec +0 -1
  24. data/config.ru +1 -1
  25. data/lib/aureus/components/box.rb +8 -26
  26. data/lib/aureus/components/data_table.rb +15 -49
  27. data/lib/aureus/components/listing.rb +7 -14
  28. data/lib/aureus/components/messages.rb +2 -8
  29. data/lib/aureus/components/navigation.rb +5 -18
  30. data/lib/aureus/components/row.rb +4 -11
  31. data/lib/aureus/components/simple_map.rb +2 -8
  32. data/lib/aureus/components/toolbar.rb +14 -29
  33. data/lib/aureus/engine.rb +0 -3
  34. data/lib/aureus/helper.rb +18 -41
  35. data/lib/aureus/renderable.rb +6 -9
  36. data/lib/aureus/version.rb +1 -1
  37. data/lib/aureus.rb +10 -2
  38. data/lib/generators/aureus/copy/copy_generator.rb +13 -0
  39. data/lib/generators/aureus/setup/setup_generator.rb +12 -0
  40. data/spec/internal/app/controllers/all_controller.rb +0 -2
  41. data/spec/internal/app/controllers/application_controller.rb +2 -0
  42. data/spec/internal/app/controllers/resources_controller.rb +50 -1
  43. data/spec/internal/app/views/layouts/application.html.haml +6 -4
  44. data/spec/internal/app/views/layouts/naked.html.haml +4 -4
  45. data/spec/internal/config/initializers/aureus.rb +7 -0
  46. data/spec/internal/config/routes.rb +1 -1
  47. data/spec/lib/generators/copy_spec.rb +17 -0
  48. data/spec/lib/generators/setup_spec.rb +16 -0
  49. data/spec/requests/all_spec.rb +4 -3
  50. data/spec/requests/resources_spec.rb +23 -0
  51. metadata +27 -82
  52. data/app/assets/images/aureus/icon-sort-abc-asc.png +0 -0
  53. data/app/assets/images/aureus/icon-sort-abc-desc.png +0 -0
  54. data/app/assets/images/aureus/icon-sort.png +0 -0
  55. data/config/locales/aureus.de.yml +0 -9
  56. data/config/locales/aureus.en.yml +0 -9
  57. data/lib/aureus/components/content.rb +0 -19
  58. data/lib/generators/aureus/devise_i18n/devise_i18n_generator.rb +0 -25
  59. data/lib/generators/aureus/devise_i18n/locales/devise_base.de.yml +0 -55
  60. data/lib/generators/aureus/devise_i18n/locales/devise_base.en.yml +0 -55
  61. data/lib/generators/aureus/devise_i18n/locales/devise_mail.de.yml +0 -18
  62. data/lib/generators/aureus/devise_i18n/locales/devise_mail.en.yml +0 -18
  63. data/lib/generators/aureus/devise_i18n/locales/devise_ui.de.yml +0 -54
  64. data/lib/generators/aureus/devise_i18n/locales/devise_ui.en.yml +0 -54
  65. data/lib/generators/aureus/devise_invitable_i18n/devise_invitable_i18n_generator.rb +0 -25
  66. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_base.de.yml +0 -11
  67. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_base.en.yml +0 -11
  68. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_mail.de.yml +0 -9
  69. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_mail.en.yml +0 -9
  70. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_ui.de.yml +0 -12
  71. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_ui.en.yml +0 -12
  72. data/lib/generators/aureus/devise_invitable_views/devise_invitable_views_generator.rb +0 -23
  73. data/lib/generators/aureus/devise_invitable_views/templates/devise/invitations/edit.html.haml +0 -9
  74. data/lib/generators/aureus/devise_invitable_views/templates/devise/invitations/new.html.haml +0 -8
  75. data/lib/generators/aureus/devise_invitable_views/templates/devise/mailer/invitation_instructions.html.haml +0 -5
  76. data/lib/generators/aureus/devise_views/devise_views_generator.rb +0 -25
  77. data/lib/generators/aureus/devise_views/templates/devise/confirmations/new.html.haml +0 -7
  78. data/lib/generators/aureus/devise_views/templates/devise/mailer/confirmation_instructions.html.haml +0 -3
  79. data/lib/generators/aureus/devise_views/templates/devise/mailer/reset_password_instructions.html.haml +0 -5
  80. data/lib/generators/aureus/devise_views/templates/devise/mailer/unlock_instructions.html.haml +0 -4
  81. data/lib/generators/aureus/devise_views/templates/devise/passwords/edit.html.haml +0 -9
  82. data/lib/generators/aureus/devise_views/templates/devise/passwords/new.html.haml +0 -7
  83. data/lib/generators/aureus/devise_views/templates/devise/registrations/edit.html.haml +0 -11
  84. data/lib/generators/aureus/devise_views/templates/devise/registrations/new.html.haml +0 -9
  85. data/lib/generators/aureus/devise_views/templates/devise/sessions/new.html.haml +0 -9
  86. data/lib/generators/aureus/devise_views/templates/devise/shared/_links.html.haml +0 -19
  87. data/lib/generators/aureus/devise_views/templates/devise/unlocks/new.html.haml +0 -7
  88. data/lib/generators/aureus/layout/layout_generator.rb +0 -19
  89. data/lib/generators/aureus/layout/templates/layout.html.haml +0 -17
  90. data/lib/generators/aureus/views/templates/views/_form.html.haml +0 -6
  91. data/lib/generators/aureus/views/templates/views/_item.html.haml +0 -6
  92. data/lib/generators/aureus/views/templates/views/_list.html.haml +0 -10
  93. data/lib/generators/aureus/views/templates/views/edit.html.haml +0 -7
  94. data/lib/generators/aureus/views/templates/views/index.html.haml +0 -6
  95. data/lib/generators/aureus/views/templates/views/new.html.haml +0 -7
  96. data/lib/generators/aureus/views/templates/views/show.html.haml +0 -7
  97. data/lib/generators/aureus/views/views_generator.rb +0 -81
  98. data/spec/controllers/all_spec.rb +0 -19
  99. data/spec/internal/app/assets/javascripts/application.js +0 -9
  100. data/spec/internal/public/favicon.ico +0 -0
  101. data/spec/lib/generators/devise_i18n_spec.rb +0 -19
  102. data/spec/lib/generators/devise_invitable_i18n_spec.rb +0 -19
  103. data/spec/lib/generators/devise_invitable_views_spec.rb +0 -19
  104. data/spec/lib/generators/devise_views_spec.rb +0 -25
  105. data/spec/lib/generators/layout_spec.rb +0 -17
  106. data/spec/lib/generators/views_spec.rb +0 -26
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2b6bc83e94e616d6d1c0d6794c6d5f1908137e63
4
- data.tar.gz: 72bf1e9b1984f099e04d53fa605cec70536c8293
3
+ metadata.gz: da714510bbeed3441c14f68e61c96a5d8bd12a9a
4
+ data.tar.gz: f688df1e2ff0f3bde65eb69da161f43b1ade6666
5
5
  SHA512:
6
- metadata.gz: b59200ec049d253dff0a460fdeceb54a6df97197143c66b7aecdba31d89a02afa1e8cca5a00debac3df5363ca97fc1d04f2f9ab6cffbe551b8505c7153bb6290
7
- data.tar.gz: 647b195205a1a1a3f18787b85c040e2786503ae86698a80d5926c5100dc7b85efaf9d6a17e7e83d9eab5162022afc00a5b628c1fe74f0786b06ec75abb407674
6
+ metadata.gz: 63c0589fec2132e80681de09684e2f4161a75d1e391a2ad358f642676867bb37fef90089e345cacd0a5e684ccad77c0cff049b1c1a05032167c3357973417cf0
7
+ data.tar.gz: dd50c6309dced03e90e89e87d950330cf5b97d55c1a23cd1ecf64750ac12673d1a33c188bbd5c022b43e1f11055f43b4e575e0280445f6a364d76a084b487783
data/Gemfile CHANGED
@@ -2,7 +2,8 @@ source 'http://rubygems.org'
2
2
  gemspec
3
3
 
4
4
  group :development, :test do
5
- gem 'rspec-rails'
5
+ gem 'rake'
6
+ gem 'rspec-rails', '~> 2.14'
6
7
  gem 'combustion'
7
8
  gem 'actionpack'
8
9
  gem 'activerecord'
data/Gemfile.lock CHANGED
@@ -1,10 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aureus (2.1.4)
4
+ aureus (3.0.0)
5
5
  formtastic (= 2.3.0.rc3)
6
6
  haml-rails (~> 0.5)
7
- jquery-datatables-rails (~> 1.12)
8
7
  jquery-rails (~> 3.0)
9
8
  jquery-ui-rails (~> 4.0)
10
9
  leaflet-rails (~> 0.7)
@@ -15,30 +14,30 @@ PATH
15
14
  GEM
16
15
  remote: http://rubygems.org/
17
16
  specs:
18
- actionpack (4.0.2)
19
- activesupport (= 4.0.2)
20
- builder (~> 3.1.0)
21
- erubis (~> 2.7.0)
17
+ actionpack (4.1.1)
18
+ actionview (= 4.1.1)
19
+ activesupport (= 4.1.1)
22
20
  rack (~> 1.5.2)
23
21
  rack-test (~> 0.6.2)
24
- activemodel (4.0.2)
25
- activesupport (= 4.0.2)
26
- builder (~> 3.1.0)
27
- activerecord (4.0.2)
28
- activemodel (= 4.0.2)
29
- activerecord-deprecated_finders (~> 1.0.2)
30
- activesupport (= 4.0.2)
31
- arel (~> 4.0.0)
32
- activerecord-deprecated_finders (1.0.3)
33
- activesupport (4.0.2)
34
- i18n (~> 0.6, >= 0.6.4)
35
- minitest (~> 4.2)
36
- multi_json (~> 1.3)
22
+ actionview (4.1.1)
23
+ activesupport (= 4.1.1)
24
+ builder (~> 3.1)
25
+ erubis (~> 2.7.0)
26
+ activemodel (4.1.1)
27
+ activesupport (= 4.1.1)
28
+ builder (~> 3.1)
29
+ activerecord (4.1.1)
30
+ activemodel (= 4.1.1)
31
+ activesupport (= 4.1.1)
32
+ arel (~> 5.0.0)
33
+ activesupport (4.1.1)
34
+ i18n (~> 0.6, >= 0.6.9)
35
+ json (~> 1.7, >= 1.7.7)
36
+ minitest (~> 5.1)
37
37
  thread_safe (~> 0.1)
38
- tzinfo (~> 0.3.37)
39
- arel (4.0.1)
40
- atomic (1.1.14)
41
- builder (3.1.4)
38
+ tzinfo (~> 1.1)
39
+ arel (5.0.1.20140414130214)
40
+ builder (3.2.2)
42
41
  combustion (0.5.1)
43
42
  activesupport (>= 3.0.0)
44
43
  railties (>= 3.0.0)
@@ -59,32 +58,31 @@ GEM
59
58
  railties (>= 4.0.1)
60
59
  hike (1.2.3)
61
60
  i18n (0.6.9)
62
- jquery-datatables-rails (1.12.2)
63
- jquery-rails
64
61
  jquery-rails (3.1.0)
65
62
  railties (>= 3.0, < 5.0)
66
63
  thor (>= 0.14, < 2.0)
67
64
  jquery-ui-rails (4.2.1)
68
65
  railties (>= 3.2.16)
69
- leaflet-rails (0.7.2)
66
+ json (1.8.1)
67
+ leaflet-rails (0.7.3)
70
68
  mapbox-rails (1.6.1.1)
71
- minitest (4.7.5)
72
- multi_json (1.8.2)
69
+ minitest (5.3.4)
70
+ multi_json (1.10.1)
73
71
  normalize-rails (3.0.1)
74
72
  rack (1.5.2)
75
73
  rack-test (0.6.2)
76
74
  rack (>= 1.0)
77
- railties (4.0.2)
78
- actionpack (= 4.0.2)
79
- activesupport (= 4.0.2)
75
+ railties (4.1.1)
76
+ actionpack (= 4.1.1)
77
+ activesupport (= 4.1.1)
80
78
  rake (>= 0.8.7)
81
79
  thor (>= 0.18.1, < 2.0)
82
- rake (10.1.0)
80
+ rake (10.3.2)
83
81
  rspec-core (2.14.8)
84
82
  rspec-expectations (2.14.5)
85
83
  diff-lcs (>= 1.1.3, < 2.0)
86
84
  rspec-mocks (2.14.6)
87
- rspec-rails (2.14.1)
85
+ rspec-rails (2.14.2)
88
86
  actionpack (>= 3.0)
89
87
  activemodel (>= 3.0)
90
88
  activesupport (>= 3.0)
@@ -98,7 +96,7 @@ GEM
98
96
  sass (~> 3.2.0)
99
97
  sprockets (~> 2.8, <= 2.11.0)
100
98
  sprockets-rails (~> 2.0)
101
- sprockets (2.10.1)
99
+ sprockets (2.11.0)
102
100
  hike (~> 1.2)
103
101
  multi_json (~> 1.0)
104
102
  rack (~> 1.0)
@@ -107,12 +105,12 @@ GEM
107
105
  actionpack (>= 3.0)
108
106
  activesupport (>= 3.0)
109
107
  sprockets (~> 2.8)
110
- sqlite3 (1.3.8)
111
- thor (0.18.1)
112
- thread_safe (0.1.3)
113
- atomic
108
+ sqlite3 (1.3.9)
109
+ thor (0.19.1)
110
+ thread_safe (0.3.4)
114
111
  tilt (1.4.1)
115
- tzinfo (0.3.38)
112
+ tzinfo (1.2.1)
113
+ thread_safe (~> 0.1)
116
114
 
117
115
  PLATFORMS
118
116
  ruby
@@ -123,6 +121,7 @@ DEPENDENCIES
123
121
  aureus!
124
122
  combustion
125
123
  generator_spec
126
- rspec-rails
124
+ rake
125
+ rspec-rails (~> 2.14)
127
126
  sprockets
128
127
  sqlite3
data/README.md CHANGED
@@ -5,76 +5,68 @@
5
5
  Aureus is a tool to quickly generate admin interfaces for a rails app.
6
6
  It's between scaffolding and tools like ActiveAdmin.
7
7
 
8
- ## General Concept
9
-
10
- The idea behind aureus is to abstract as much as possible of GUI rendering by still giving enough freedom for customization.
11
- A typical aureus driven view would look like this:
12
-
13
- ```haml
14
- = aureus_row do |r|
15
- = aureus_box 'Datatable' do
16
- = aureus_datatable Resource.all do |t|
17
- - t.head do |h|
18
- - h.text 'Title'
19
- - h.text 'Text'
20
- - t.row do |r,res|
21
- - r.identifier res.id
22
- - r.cell res.title
23
- - r.cell res.text
24
- - r.button :show, 'url'
25
- - r.button :edit, 'url'
26
- - r.button :destroy, 'url', confirm: 'Delete user?'
27
- ```
28
-
29
- ## Installation
8
+ ## Sample Controller
30
9
 
31
- To use **aureus** simply require the gem:
10
+ The following Controller will render a finished interface:
32
11
 
33
12
  ```ruby
34
- gem 'aureus'
35
- ```
36
-
37
- ### Asset Pipeline
38
-
39
- Aureus uses the rails asset pipeline to load and override the style and behavior.
40
-
41
- Change your `application.scss` to match the following:
42
-
43
- ```scss
44
- //= require aureus
45
- //= require_self
46
-
47
- @import 'aureus/skin/default';
48
- @import 'aureus/theme';
13
+ class ResourcesController < Aureus::ResourcesController
14
+ before_filter :prepare_aureus
15
+
16
+ def index
17
+ @resources = Resource.all
18
+ end
19
+
20
+ def new
21
+ @resource = Resource.new
22
+ end
23
+
24
+ def create
25
+ Resource.create!(permitted_params[:resource])
26
+ redirect_to resources_url
27
+ end
28
+
29
+ def show
30
+ @resource = Resource.find(params[:id])
31
+ end
32
+
33
+ def edit
34
+ @resource = Resource.find(params[:id])
35
+ end
36
+
37
+ def update
38
+ resource = Resource.find(params[:id])
39
+ resource.update!(permitted_params[:resource])
40
+ redirect_to resource_url(resource)
41
+ end
42
+
43
+ def destroy
44
+ resource = Resource.find(params[:id])
45
+ resource.destroy!
46
+ redirect_to resources_url
47
+ end
48
+
49
+ protected
50
+
51
+ def prepare_aureus
52
+ aureus({
53
+ actions: [:index, :new, :create, :show, :edit, :update, :destroy],
54
+ table_fields: [:id, :title, :text],
55
+ form_fields: [:title, :text],
56
+ item_fields: [:title, :text]
57
+ })
58
+ end
59
+
60
+ def permitted_params
61
+ params.permit(resource: [:title, :text])
62
+ end
63
+ end
49
64
  ```
50
65
 
51
- Change your `application.js` to match the following:
52
-
53
- ```javascript
54
- //= require aureus
55
- //= require_self
56
-
57
- $(function(){
58
- aureus({
59
- remove_messages_after: 2
60
- });
61
- });
62
- ```
63
-
64
- You can now use the aureus framework to rapidly build awesome interfaces!
65
-
66
66
  ## Generators
67
67
 
68
- Aureus has a bunch of generators built-in to easily generate a complete interface.
69
-
70
- ### Layout & Views
71
-
72
- * Run `rails g aureus:layout application` to generate a typical aureus layout.
73
- * Run `rails g aureus:views Resource ResourcesController` to generate aureus views for a model and controller.
68
+ The following generators are available:
74
69
 
75
- ### Devise
70
+ * Run `rails g aureus:setup` to create the initializer.
71
+ * Run `rails g aureus:copy` to copy the views and layout.
76
72
 
77
- * Run `rails g aureus:devise_views devise` to generate views using aureus helpers.
78
- * Run `rails g aureus:devise_i18n devise` to generate the i18n file used by the views.
79
- * Run `rails g aureus:devise_invitable_views devise` to generate views using aureus helpers.
80
- * Run `rails g aureus:devise_invitable_i18n devise` to generate the i18n file used by the views.
@@ -2,7 +2,6 @@
2
2
  //= require jquery_ujs
3
3
  //= require leaflet
4
4
  //= require mapbox
5
- //= require dataTables/jquery.dataTables
6
5
 
7
6
  var aureus_default_options = {
8
7
  mapbox_id: 'the_id'
@@ -11,56 +10,16 @@ var aureus_default_options = {
11
10
  function aureus(options) {
12
11
  window.__aureus = { options: jQuery.extend({}, aureus_default_options, options || {}) };
13
12
  _aureus_remove_messages_after(window.__aureus.options.remove_messages_after);
14
- _aureus_datatables_decorate();
15
13
  _aureus_simple_map();
16
14
  _aureus_dropdown();
17
15
  }
18
16
 
19
- function aureus_trigger_form(selector) {
20
- $(selector).submit();
21
- }
22
-
23
17
  function _aureus_remove_messages_after(seconds) {
24
18
  setTimeout(function() {
25
19
  $('.aureus-messages p').fadeOut();
26
20
  }, seconds*1000);
27
21
  }
28
22
 
29
- function _aureus_datatables_decorate() {
30
- $.fn.dataTableExt.oStdClasses.sWrapper = 'datatable-wrapper';
31
- $('.datatable').each(function(){
32
- $(this).dataTable({
33
- sDom: 't',
34
- oLanguage: _aureus_datatable_translation($(this)),
35
- bPaginate: false,
36
- aoColumns: _aureus_datatables_column_configurator($(this))
37
- });
38
- });
39
- }
40
-
41
- function _aureus_datatable_translation(table) {
42
- return {
43
- sSearch : table.data('i18n_sSearch'),
44
- sLengthMenu: table.data('i18n_sLengthMenu'),
45
- sZeroRecords: table.data('i18n_sZeroRecords'),
46
- sInfo: table.data('i18n_sInfo'),
47
- sInfoEmpty: table.data('i18n_sInfoEmpty'),
48
- sInfoFiltered: table.data('i18n_sInfoFiltere')
49
- };
50
- }
51
-
52
- function _aureus_datatables_column_configurator(table) {
53
- var ret = [];
54
- table.find('thead tr th').each(function(){
55
- if($(this).hasClass('no-sorting')) {
56
- ret.push({ bSortable: false });
57
- } else {
58
- ret.push(null);
59
- }
60
- });
61
- return ret;
62
- }
63
-
64
23
  function _aureus_simple_map() {
65
24
  $('.aureus-simple-map').each(function(){
66
25
  var el = $(this);
@@ -0,0 +1,9 @@
1
+ //= require aureus
2
+ //= require_self
3
+
4
+ $(function(){
5
+ aureus({
6
+ remove_messages_after: <%= Aureus.messages_timeout || 3600 %>,
7
+ mapbox_id: '<%= Aureus.mapbox_id %>'
8
+ });
9
+ });
@@ -1,5 +1,5 @@
1
1
  //= require aureus
2
2
  //= require_self
3
3
 
4
- @import 'aureus/skin/default';
4
+ @import 'aureus/skin/<%= Aureus.skin || 'default' %>';
5
5
  @import 'aureus/theme';
@@ -41,10 +41,6 @@ $color-toolbar-info: #59483c;
41
41
  $color-toolbar-link: #fff;
42
42
  $color-toolbar-link-hover: #c6b78d;
43
43
 
44
- $icon-sort: image-path("aureus/icon-sort.png");
45
- $icon-sort_abc_asc: image-path("aureus/icon-sort-abc-asc.png");
46
- $icon-sort_abc_desc: image-path("aureus/icon-sort-abc-desc.png");
47
-
48
44
  $icon-pencil: image-path("aureus/icon-pencil.png");
49
45
  $icon-cross: image-path("aureus/icon-cross.png");
50
46
  $icon-eye: image-path("aureus/icon-eye.png");
@@ -36,10 +36,6 @@
36
36
  border-color: $color-box-button-hover;
37
37
  }
38
38
  }
39
- .datatable-wrapper {
40
- overflow: auto;
41
- overflow-x: scoll;
42
- }
43
39
  .content {
44
40
  margin: 0;
45
41
  padding: 12px;
@@ -1,4 +1,4 @@
1
- .datatable, .simple-table {
1
+ .aureus-datatable, .aureus-simple-table {
2
2
  width: 100%;
3
3
  border-spacing: 0;
4
4
  thead {
@@ -22,21 +22,6 @@
22
22
  th:first-child {
23
23
  border-left: 0;
24
24
  }
25
- th.sorting {
26
- background-image: url($icon-sort);
27
- background-repeat: no-repeat;
28
- background-position: center right;
29
- }
30
- th.sorting_asc {
31
- background-image: url($icon-sort_abc_asc);
32
- background-repeat: no-repeat;
33
- background-position: center right;
34
- }
35
- th.sorting_desc {
36
- background-image: url($icon-sort_abc_desc);
37
- background-repeat: no-repeat;
38
- background-position: center right;
39
- }
40
25
  th.center {
41
26
  text-align: center;
42
27
  }
@@ -1,3 +1,11 @@
1
+ //= depend_on aureus/theme/base
2
+ //= depend_on aureus/theme/messages
3
+ //= depend_on aureus/theme/toolbar
4
+ //= depend_on aureus/theme/navigation
5
+ //= depend_on aureus/theme/content
6
+ //= depend_on aureus/theme/table
7
+ //= depend_on aureus/theme/form
8
+
1
9
  @import 'aureus/theme/base';
2
10
  @import 'aureus/theme/messages';
3
11
  @import 'aureus/theme/toolbar';
@@ -0,0 +1,52 @@
1
+ module Aureus
2
+ class ResourcesController < AureusController
3
+ protected
4
+
5
+ def aureus(options)
6
+ @aureus ||= {}
7
+ @aureus[:box_title] = 'Attributes'
8
+ @aureus[:form_inputs] = (options[:form_fields] || []).map{|f| [f] }
9
+
10
+ model_name = params[:controller].split('/').last.singularize
11
+
12
+ @aureus[:resource] = lambda{ instance_variable_get(:"@#{model_name}") }
13
+ @aureus[:resources] = lambda{ instance_variable_get(:"@#{model_name.pluralize}") }
14
+
15
+ case params[:action]
16
+ when 'index'
17
+ @aureus[:title] = "All #{model_name.pluralize.titleize}"
18
+ @aureus[:box_title] = 'List'
19
+ if options[:actions].include?(:new)
20
+ @aureus[:navigation_buttons] = [["New #{model_name.titleize}", path_for(:new)]]
21
+ end
22
+ @aureus[:table_cells] = (options[:table_fields] || []).map{|f| [f.to_s.titleize, lambda{|r| r.send(f) }] }
23
+ @aureus[:row_actions] = []
24
+ if options[:actions].include?(:show)
25
+ @aureus[:row_actions] << lambda{|r| [:show, path_for(:show, r.id)] }
26
+ end
27
+ if options[:actions].include?(:edit)
28
+ @aureus[:row_actions] << lambda{|r| [:edit, path_for(:edit, r.id)] }
29
+ end
30
+ if options[:actions].include?(:destroy)
31
+ @aureus[:row_actions] << lambda{|r| [:destroy, path_for(:destroy, r.id), confirm: 'Really?'] }
32
+ end
33
+ when 'new'
34
+ @aureus[:title] = "New #{model_name.titleize}"
35
+ @aureus[:navigation_buttons] = [['Cancel', path_for(:index)]]
36
+ when 'show'
37
+ @aureus[:title] = "View #{model_name.titleize}"
38
+ @aureus[:navigation_buttons] = [['Back', path_for(:index)]]
39
+ @aureus[:item_entries] = (options[:item_fields] || []).map{|f| [f.to_s.titleize, lambda{|r| r.send(f) }] }
40
+ when 'edit'
41
+ @aureus[:title] = "Edit #{model_name.titleize}"
42
+ @aureus[:navigation_buttons] = [['Cancel', path_for(:index)]]
43
+ end
44
+ end
45
+
46
+ private
47
+
48
+ def path_for(action, id=nil)
49
+ url_for(action: action, id: id, only_path: true)
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,2 @@
1
+ class AureusController < Aureus.parent_controller.constantize
2
+ end
@@ -0,0 +1,8 @@
1
+ = aureus_form @aureus[:resource].call do |f|
2
+ = aureus_row do |r|
3
+ - r.column 25 do
4
+ = aureus_box @aureus[:box_title], for: :form do
5
+ - (@aureus[:form_inputs] || []).each do |input|
6
+ = f.input *input
7
+ = f.action :submit
8
+ - r.space 75
@@ -0,0 +1,7 @@
1
+ = aureus_row do |r|
2
+ - r.column 25 do
3
+ = aureus_box @aureus[:box_title] do
4
+ = aureus_listing do |l|
5
+ - (@aureus[:item_entries] || []).each do |entry|
6
+ - l.entry entry[0], entry[1].call(@aureus[:resource].call)
7
+ - r.space 75
@@ -0,0 +1,5 @@
1
+ - content_for :navigation do
2
+ = aureus_navigation do |n|
3
+ - n.title @aureus[:title]
4
+ - (@aureus[:navigation_buttons] || []).each do |button|
5
+ - n.button link_to(*button)
@@ -0,0 +1,11 @@
1
+ = aureus_row do
2
+ = aureus_box @aureus[:box_title] do
3
+ = aureus_datatable @aureus[:resources].call do |t|
4
+ - t.head do |h|
5
+ - (@aureus[:table_cells] || []).each do |cell|
6
+ - h.text cell[0]
7
+ - t.row do |r, resource|
8
+ - (@aureus[:table_cells] || []).each do |cell|
9
+ - r.cell cell[1].call(resource)
10
+ - (@aureus[:row_actions] || []).each do |action|
11
+ - r.button *action.call(resource)
@@ -0,0 +1,2 @@
1
+ = render 'navigation'
2
+ = render 'form'
@@ -0,0 +1,2 @@
1
+ = render 'navigation'
2
+ = render 'table'
@@ -0,0 +1,2 @@
1
+ = render 'navigation'
2
+ = render 'form'
@@ -0,0 +1,2 @@
1
+ = render 'navigation'
2
+ = render 'item'
@@ -0,0 +1,14 @@
1
+ !!! 5
2
+ %html
3
+ %head
4
+ %meta{ charset: 'utf-8' }
5
+ %title= Aureus.site_title
6
+ = stylesheet_link_tag 'aureus/layout', media: 'all', 'data-turbolinks-track' => true
7
+ = javascript_include_tag 'aureus/layout', 'data-turbolinks-track' => true
8
+ = csrf_meta_tag
9
+ %body
10
+ = aureus_toolbar (Aureus.toolbar_title || 'Aureus') do |t|
11
+ - instance_exec(t, &Aureus.toolbar_builder)
12
+ = yield(:navigation)
13
+ = aureus_messages flash
14
+ .aureus-content= yield
data/aureus.gemspec CHANGED
@@ -25,5 +25,4 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency 'formtastic', '2.3.0.rc3'
26
26
  s.add_runtime_dependency 'normalize-rails', '~> 3.0'
27
27
  s.add_runtime_dependency 'mapbox-rails', '~> 1.6'
28
- s.add_runtime_dependency 'jquery-datatables-rails', '~> 1.12'
29
28
  end
data/config.ru CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rubygems'
2
- require 'bundler'
2
+ require 'bundler/setup'
3
3
  require 'combustion'
4
4
 
5
5
  Combustion.initialize! :active_record, :action_controller, :action_view, :sprockets do
@@ -1,31 +1,28 @@
1
1
  module Aureus
2
-
3
2
  module Components
4
-
5
3
  class Box < Renderable
6
-
7
- def initialize title, options, &block
4
+ def initialize(title, options, &block)
8
5
  init options, for: :text, centered: false
9
6
  init_haml_helpers
10
7
  @title = title
11
8
  @buttons = Array.new
12
- @content = capture_haml self, &block
9
+ @content = capture_haml(self, &block)
13
10
  end
14
11
 
15
- def content &block
16
- @new_content = capture_haml &block
12
+ def content(&block)
13
+ @new_content = capture_haml(&block)
17
14
  end
18
15
 
19
- def foot &block
16
+ def foot(&block)
20
17
  @foot = capture_haml &block
21
18
  end
22
19
 
23
- def button content
24
- @buttons << BoxButton.new(content)
20
+ def button(content)
21
+ @buttons << content
25
22
  end
26
23
 
27
24
  def render
28
- title = content_tag('h3',compact(content_tag('span', @title),compact_render(*@buttons)))
25
+ title = content_tag('h3', compact(content_tag('span', @title), @buttons.join))
29
26
  classes = ['box']
30
27
  classes << 'centered' if @options[:centered]
31
28
  @content = @new_content if !@new_content.nil?
@@ -38,21 +35,6 @@ module Aureus
38
35
  compact title, content_tag('div', @content), footer
39
36
  end
40
37
  end
41
-
42
- end
43
-
44
- class BoxButton < Renderable
45
-
46
- def initialize content
47
- @content = content
48
- end
49
-
50
- def render
51
- @content
52
- end
53
-
54
38
  end
55
-
56
39
  end
57
-
58
40
  end