aureus 1.3.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (137) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +4 -1
  3. data/Gemfile +9 -8
  4. data/Gemfile.lock +105 -104
  5. data/README.md +80 -0
  6. data/Rakefile +3 -16
  7. data/app/assets/javascripts/aureus/index.js +78 -20
  8. data/app/assets/stylesheets/aureus/index.scss +3 -35
  9. data/app/assets/stylesheets/aureus/skin/default.scss +52 -0
  10. data/app/assets/stylesheets/aureus/theme.scss +7 -0
  11. data/app/assets/stylesheets/aureus/theme/base.scss +19 -0
  12. data/app/assets/stylesheets/aureus/theme/content.scss +65 -0
  13. data/app/assets/stylesheets/aureus/{form.scss → theme/form.scss} +27 -27
  14. data/app/assets/stylesheets/aureus/theme/messages.scss +16 -0
  15. data/app/assets/stylesheets/aureus/theme/navigation.scss +42 -0
  16. data/app/assets/stylesheets/aureus/theme/table.scss +121 -0
  17. data/app/assets/stylesheets/aureus/theme/toolbar.scss +80 -0
  18. data/aureus.gemspec +21 -12
  19. data/config.ru +10 -0
  20. data/lib/aureus.rb +22 -18
  21. data/lib/aureus/components/box.rb +58 -0
  22. data/lib/aureus/components/content.rb +19 -0
  23. data/lib/aureus/components/data_table.rb +169 -0
  24. data/lib/aureus/components/listing.rb +43 -0
  25. data/lib/aureus/components/messages.rb +27 -0
  26. data/lib/aureus/components/navigation.rb +48 -0
  27. data/lib/aureus/components/row.rb +69 -0
  28. data/lib/aureus/components/simple_map.rb +21 -0
  29. data/lib/aureus/components/toolbar.rb +124 -0
  30. data/lib/aureus/engine.rb +8 -2
  31. data/lib/aureus/helper.rb +56 -55
  32. data/lib/aureus/renderable.rb +4 -12
  33. data/lib/aureus/version.rb +2 -2
  34. data/lib/generators/aureus/devise_i18n/devise_i18n_generator.rb +17 -12
  35. data/{config → lib/generators/aureus/devise_i18n}/locales/devise_base.de.yml +0 -0
  36. data/{config → lib/generators/aureus/devise_i18n}/locales/devise_base.en.yml +1 -1
  37. data/{config → lib/generators/aureus/devise_i18n}/locales/devise_mail.de.yml +1 -1
  38. data/{config → lib/generators/aureus/devise_i18n}/locales/devise_mail.en.yml +1 -1
  39. data/{config → lib/generators/aureus/devise_i18n}/locales/devise_ui.de.yml +0 -0
  40. data/{config → lib/generators/aureus/devise_i18n}/locales/devise_ui.en.yml +0 -0
  41. data/lib/generators/aureus/devise_invitable_i18n/devise_invitable_i18n_generator.rb +25 -0
  42. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_base.de.yml +11 -0
  43. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_base.en.yml +11 -0
  44. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_mail.de.yml +9 -0
  45. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_mail.en.yml +9 -0
  46. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_ui.de.yml +12 -0
  47. data/lib/generators/aureus/devise_invitable_i18n/locales/devise_invitable_ui.en.yml +12 -0
  48. data/lib/generators/aureus/devise_invitable_views/devise_invitable_views_generator.rb +23 -0
  49. data/lib/generators/aureus/devise_invitable_views/templates/devise/invitations/edit.html.haml +9 -0
  50. data/lib/generators/aureus/devise_invitable_views/templates/devise/invitations/new.html.haml +8 -0
  51. data/lib/generators/aureus/devise_invitable_views/templates/devise/mailer/invitation_instructions.html.haml +5 -0
  52. data/lib/generators/aureus/devise_views/devise_views_generator.rb +17 -15
  53. data/lib/generators/aureus/devise_views/templates/devise/confirmations/new.html.haml +5 -5
  54. data/lib/generators/aureus/devise_views/templates/devise/mailer/confirmation_instructions.html.haml +3 -3
  55. data/lib/generators/aureus/devise_views/templates/devise/mailer/reset_password_instructions.html.haml +5 -5
  56. data/lib/generators/aureus/devise_views/templates/devise/mailer/unlock_instructions.html.haml +4 -4
  57. data/lib/generators/aureus/devise_views/templates/devise/passwords/edit.html.haml +7 -7
  58. data/lib/generators/aureus/devise_views/templates/devise/passwords/new.html.haml +5 -5
  59. data/lib/generators/aureus/devise_views/templates/devise/registrations/edit.html.haml +9 -9
  60. data/lib/generators/aureus/devise_views/templates/devise/registrations/new.html.haml +7 -7
  61. data/lib/generators/aureus/devise_views/templates/devise/sessions/new.html.haml +7 -7
  62. data/lib/generators/aureus/devise_views/templates/devise/shared/_links.html.haml +6 -6
  63. data/lib/generators/aureus/devise_views/templates/devise/unlocks/new.html.haml +5 -5
  64. data/lib/generators/aureus/layout/layout_generator.rb +10 -10
  65. data/lib/generators/aureus/layout/templates/layout.html.haml +8 -8
  66. data/lib/generators/aureus/views/templates/views/_form.html.haml +3 -3
  67. data/lib/generators/aureus/views/templates/views/_item.html.haml +2 -2
  68. data/lib/generators/aureus/views/templates/views/_list.html.haml +8 -8
  69. data/lib/generators/aureus/views/templates/views/edit.html.haml +4 -4
  70. data/lib/generators/aureus/views/templates/views/index.html.haml +3 -3
  71. data/lib/generators/aureus/views/templates/views/new.html.haml +4 -4
  72. data/lib/generators/aureus/views/templates/views/show.html.haml +4 -4
  73. data/lib/generators/aureus/views/views_generator.rb +70 -68
  74. data/spec/controllers/all_spec.rb +19 -0
  75. data/spec/internal/app/assets/javascripts/application.js +9 -0
  76. data/spec/internal/app/assets/stylesheets/application.scss +5 -0
  77. data/spec/internal/app/controllers/all_controller.rb +14 -0
  78. data/spec/internal/app/controllers/resources_controller.rb +2 -0
  79. data/spec/{lib/helper → internal/app/models}/resource.rb +0 -0
  80. data/spec/internal/app/views/all/centered.html.haml +5 -0
  81. data/spec/internal/app/views/all/index.html.haml +39 -0
  82. data/spec/internal/app/views/layouts/application.html.haml +24 -0
  83. data/spec/internal/app/views/layouts/naked.html.haml +10 -0
  84. data/spec/internal/config/database.yml +3 -0
  85. data/spec/internal/config/routes.rb +5 -0
  86. data/spec/internal/db/schema.rb +10 -0
  87. data/spec/internal/log/.gitignore +1 -0
  88. data/spec/internal/public/favicon.ico +0 -0
  89. data/spec/lib/generators/devise_i18n_spec.rb +19 -0
  90. data/spec/lib/generators/devise_invitable_i18n_spec.rb +19 -0
  91. data/spec/lib/generators/devise_invitable_views_spec.rb +19 -0
  92. data/spec/lib/generators/devise_views_spec.rb +25 -0
  93. data/spec/lib/generators/layout_spec.rb +17 -0
  94. data/spec/lib/generators/views_spec.rb +26 -0
  95. data/spec/requests/all_spec.rb +12 -0
  96. data/spec/spec_helper.rb +15 -0
  97. metadata +219 -78
  98. data/.rspec +0 -2
  99. data/Guardfile +0 -4
  100. data/Readme.md +0 -370
  101. data/TODO.md +0 -11
  102. data/app/assets/images/aureus/background.png +0 -0
  103. data/app/assets/images/aureus/topbar.png +0 -0
  104. data/app/assets/javascripts/aureus/defaults.js +0 -30
  105. data/app/assets/javascripts/aureus/extensions.js +0 -42
  106. data/app/assets/javascripts/aureus/functions.js +0 -67
  107. data/app/assets/javascripts/aureus/plugins/jquery-calendrical.js +0 -508
  108. data/app/assets/javascripts/aureus/plugins/jquery-datatables.js +0 -11838
  109. data/app/assets/javascripts/aureus/plugins/jquery-qtip.js +0 -15
  110. data/app/assets/stylesheets/aureus/base.scss +0 -48
  111. data/app/assets/stylesheets/aureus/content.scss +0 -100
  112. data/app/assets/stylesheets/aureus/mixins.scss +0 -43
  113. data/app/assets/stylesheets/aureus/navigation.scss +0 -43
  114. data/app/assets/stylesheets/aureus/reset.scss +0 -50
  115. data/app/assets/stylesheets/aureus/table.scss +0 -153
  116. data/app/assets/stylesheets/aureus/topbar.scss +0 -89
  117. data/app/assets/stylesheets/aureus/ui.scss +0 -98
  118. data/lib/aureus/box.rb +0 -54
  119. data/lib/aureus/content.rb +0 -15
  120. data/lib/aureus/data_table.rb +0 -148
  121. data/lib/aureus/listing.rb +0 -39
  122. data/lib/aureus/map.rb +0 -17
  123. data/lib/aureus/messages.rb +0 -23
  124. data/lib/aureus/navigation.rb +0 -42
  125. data/lib/aureus/row.rb +0 -65
  126. data/lib/aureus/toolbar.rb +0 -99
  127. data/spec/lib/helper/schema.rb +0 -6
  128. data/spec/lib/render_spec.rb +0 -16
  129. data/spec/lib/spec_helper.rb +0 -21
  130. data/spec/lib/views/box.haml +0 -14
  131. data/spec/lib/views/content.haml +0 -2
  132. data/spec/lib/views/datatable.haml +0 -11
  133. data/spec/lib/views/listing.haml +0 -5
  134. data/spec/lib/views/messages.haml +0 -2
  135. data/spec/lib/views/navigation.haml +0 -4
  136. data/spec/lib/views/row.haml +0 -28
  137. data/spec/lib/views/toolbar.haml +0 -11
@@ -0,0 +1,80 @@
1
+ .aureus-toolbar {
2
+ padding: 12px 40px;
3
+ height: 18px;
4
+ background-color: $color-toolbar;
5
+ h1 {
6
+ color: $color-toolbar-title;
7
+ margin: 1px 0px;
8
+ font-size: 14px;
9
+ font-weight: normal;
10
+ float: left;
11
+ text-transform: uppercase;
12
+ }
13
+ ul {
14
+ padding: 0;
15
+ margin: 0;
16
+ &.left {
17
+ float: left;
18
+ margin-left: 20px;
19
+ }
20
+ &.right {
21
+ float: right;
22
+ }
23
+ }
24
+ li.level-0, li.dropdown-outer {
25
+ display: inline-block;
26
+ position: relative;
27
+ a, .dropdown-accessor {
28
+ font-size: 14px;
29
+ text-decoration: none;
30
+ padding: 0 10px;
31
+ }
32
+ .info {
33
+ color: $color-toolbar-info;
34
+ padding: 0 10px;
35
+ }
36
+ }
37
+ li.level-0:hover, li.dropdown-outer:hover {
38
+ > a, .dropdown-accessor {
39
+ color: $color-toolbar-link-hover;
40
+ cursor: pointer;
41
+ }
42
+ }
43
+ li.dropdown-outer {
44
+ ul.dropdown-inner {
45
+ display: none;
46
+ background-color: $color-toolbar;
47
+ padding: 10px;
48
+ padding-top: 15px;
49
+ margin-left: -10px;
50
+ li {
51
+ display: block;
52
+ padding: 4px 0px;
53
+ a {
54
+ white-space: nowrap;
55
+ }
56
+ .info {
57
+ white-space: nowrap;
58
+ }
59
+ }
60
+ .line {
61
+ margin: 8px 0;
62
+ border-top: 1px solid $color-toolbar-link;
63
+ }
64
+ }
65
+ }
66
+ li.dropdown-outer:hover, li.dropdown-outer.active {
67
+ ul.dropdown-inner {
68
+ z-index: 3;
69
+ display: block;
70
+ position: absolute;
71
+ }
72
+ }
73
+ ul.dropdown-inner {
74
+ li:hover {
75
+ a {
76
+ color: $color-toolbar-link-hover;
77
+ }
78
+ }
79
+ }
80
+ }
data/aureus.gemspec CHANGED
@@ -1,20 +1,29 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "aureus/version"
1
+ # encoding: utf-8
4
2
 
5
- Gem::Specification.new do |s|
3
+ $:.push File.expand_path('../lib', __FILE__)
4
+ require 'aureus/version'
6
5
 
7
- s.name = "aureus"
6
+ Gem::Specification.new do |s|
7
+ s.name = 'aureus'
8
8
  s.version = Aureus::VERSION
9
- s.summary = "a nice looking framework for your rails admin interfaces"
10
- s.description = "Aureus is a tool to quickly generate admin interfaces for a rails app. It's between scaffolding an tools like ActiveAdmin."
11
- s.license = "MIT"
9
+ s.summary = 'a nice looking framework for your rails admin interfaces'
10
+ s.description = 'Aureus is a tool to quickly generate admin interfaces for a rails app. Its between scaffolding and tools like ActiveAdmin.'
11
+ s.license = 'MIT'
12
12
 
13
- s.author = "Joël Gähhwiler"
14
- s.email = "joel.gaehwiler@bluewin.ch"
15
- s.homepage = "https://github.com/256dpi/aureus"
13
+ s.author = 'Joël Gähhwiler'
14
+ s.email = 'joel.gaehwiler@bluewin.ch'
15
+ s.homepage = 'https://github.com/256dpi/aureus'
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
19
 
20
- end
20
+ s.add_runtime_dependency 'sass-rails', '~> 0'
21
+ s.add_runtime_dependency 'jquery-rails', '~> 0'
22
+ s.add_runtime_dependency 'jquery-ui-rails', '~> 0'
23
+ s.add_runtime_dependency 'haml-rails', '~> 0'
24
+ s.add_runtime_dependency 'leaflet-rails', '~> 0'
25
+ s.add_runtime_dependency 'formtastic', '2.3.0.rc2'
26
+ s.add_runtime_dependency 'normalize-rails', '~> 0'
27
+ s.add_runtime_dependency 'mapbox-rails', '~> 0'
28
+ s.add_runtime_dependency 'jquery-datatables-rails', '~> 0'
29
+ end
data/config.ru ADDED
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ require 'combustion'
4
+
5
+ Combustion.initialize! :active_record, :action_controller, :action_view, :sprockets do
6
+ config.cache_classes = false
7
+ config.eager_load = false
8
+ end
9
+
10
+ run Combustion::Application
data/lib/aureus.rb CHANGED
@@ -1,23 +1,27 @@
1
- require "aureus/version"
1
+ require 'aureus/version'
2
2
 
3
- require "haml"
3
+ require 'formtastic'
4
+ require 'haml'
5
+ require 'jquery-rails'
6
+ require 'leaflet-rails'
7
+ require 'normalize-rails'
8
+ require 'mapbox-rails'
9
+ require 'jquery-datatables-rails'
4
10
 
5
11
  module Aureus
6
- extend ActiveSupport::Autoload
7
-
8
- autoload :Renderable
9
- autoload :Helper
10
- autoload :Toolbar
11
- autoload :Navigation
12
- autoload :Messages
13
- autoload :Content
14
- autoload :Row
15
- autoload :Box
16
- autoload :DataTable
17
- autoload :Form
18
- autoload :Listing
19
- autoload :Map
20
-
12
+ module Components
13
+ autoload :Box, 'aureus/components/box'
14
+ autoload :Content, 'aureus/components/content'
15
+ autoload :DataTable, 'aureus/components/data_table'
16
+ autoload :Listing, 'aureus/components/listing'
17
+ autoload :Messages, 'aureus/components/messages'
18
+ autoload :Navigation, 'aureus/components/navigation'
19
+ autoload :Row, 'aureus/components/row'
20
+ autoload :SimpleMap, 'aureus/components/simple_map'
21
+ autoload :Toolbar, 'aureus/components/toolbar'
22
+ end
21
23
  end
22
24
 
23
- require "aureus/engine"
25
+ require 'aureus/renderable'
26
+ require 'aureus/helper'
27
+ require 'aureus/engine'
@@ -0,0 +1,58 @@
1
+ module Aureus
2
+
3
+ module Components
4
+
5
+ class Box < Renderable
6
+
7
+ def initialize title, options, &block
8
+ init options, for: :text, centered: false
9
+ init_haml_helpers
10
+ @title = title
11
+ @buttons = Array.new
12
+ @content = capture_haml self, &block
13
+ end
14
+
15
+ def content &block
16
+ @new_content = capture_haml &block
17
+ end
18
+
19
+ def foot &block
20
+ @foot = capture_haml &block
21
+ end
22
+
23
+ def button content
24
+ @buttons << BoxButton.new(content)
25
+ end
26
+
27
+ def render
28
+ title = content_tag('h3',compact(content_tag('span', @title),compact_render(*@buttons)))
29
+ classes = ['box']
30
+ classes << 'centered' if @options[:centered]
31
+ @content = @new_content if !@new_content.nil?
32
+ content_tag 'div', class: classes.join(' ') do
33
+ case @options[:for]
34
+ when :form
35
+ @content = content_tag('ul', @content, class: 'content')
36
+ end
37
+ footer = @foot.nil? ? '' : content_tag('div', @foot, class: 'foot')
38
+ compact title, content_tag('div', @content), footer
39
+ end
40
+ 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
+ end
55
+
56
+ end
57
+
58
+ end
@@ -0,0 +1,19 @@
1
+ module Aureus
2
+
3
+ module Components
4
+
5
+ class Content < Renderable
6
+
7
+ def initialize content
8
+ @content = content
9
+ end
10
+
11
+ def render
12
+ content_tag 'div', @content, class: 'aureus-content'
13
+ end
14
+
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,169 @@
1
+ module Aureus
2
+
3
+ module Components
4
+
5
+ class DataTable < Renderable
6
+ include ActionView::Helpers::JavaScriptHelper
7
+
8
+ def initialize resource
9
+ @resource = resource
10
+ @head = DataTableHead.new
11
+ @rows = Array.new
12
+ end
13
+
14
+ def head
15
+ yield @head
16
+ end
17
+
18
+ def row
19
+ @resource.each do |r|
20
+ row = DataTableRow.new
21
+ yield row, r
22
+ @rows << row
23
+ end
24
+ end
25
+
26
+ def data
27
+ {
28
+ i18n_sSearch: I18n.t('aureus.datatables.search'),
29
+ i18n_sLengthMenu: I18n.t('aureus.datatables.length_menu'),
30
+ i18n_sZeroRecords: I18n.t('aureus.datatables.zero_records'),
31
+ i18n_sInfo: I18n.t('aureus.datatables.info'),
32
+ i18n_sInfoEmpty: I18n.t('aureus.datatables.info_empty'),
33
+ i18n_sInfoFiltered: I18n.t('aureus.datatables.info_filtered')
34
+ }
35
+ end
36
+
37
+ def render
38
+ content_tag 'table', id: @resource.class.name.downcase, class: 'datatable', data: data do
39
+ compact @head.render, content_tag('tbody',compact_render(*@rows))
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+ class DataTableHead < Renderable
46
+
47
+ def initialize
48
+ @columns = Array.new
49
+ end
50
+
51
+ def text name
52
+ @columns << DataTableHeadColumn.new(name,'text-sorting')
53
+ end
54
+
55
+ def date name
56
+ @columns << DataTableHeadColumn.new(name,'date-sorting')
57
+ end
58
+
59
+ def raw name
60
+ @columns << DataTableHeadColumn.new(name,'no-sorting')
61
+ end
62
+
63
+ def render
64
+ raw ''
65
+ content_tag 'thead' do
66
+ content_tag 'tr', compact_render(*@columns)
67
+ end
68
+ end
69
+
70
+ end
71
+
72
+ class DataTableHeadColumn < Renderable
73
+
74
+ def initialize name, sorting
75
+ @name = name
76
+ @sorting = sorting
77
+ end
78
+
79
+ def render
80
+ content_tag 'th', @name, class: @sorting
81
+ end
82
+
83
+ end
84
+
85
+ class DataTableRow < Renderable
86
+
87
+ def initialize
88
+ init_haml_helpers
89
+ @cells = Array.new
90
+ @buttons = Array.new
91
+ @identifier = ''
92
+ end
93
+
94
+ def identifier value
95
+ @identifier = value
96
+ end
97
+
98
+ def cell data='', &block
99
+ if block_given?
100
+ @cells << DataTableRowCell.new(capture_haml(&block))
101
+ else
102
+ @cells << DataTableRowCell.new(data)
103
+ end
104
+ end
105
+
106
+ def button type_or_title, url, *args
107
+ if type_or_title.is_a? Symbol
108
+ @buttons << DataTableRowButton.new(type_or_title,type_or_title.to_s,url,args)
109
+ else
110
+ @buttons << DataTableRowButton.new(:text,type_or_title.to_s,url,args)
111
+ end
112
+ end
113
+
114
+ def button_raw content
115
+ @buttons << Renderable.new(content)
116
+ end
117
+
118
+ def render
119
+ content_tag 'tr', compact_render(*@cells)+content_tag('td',compact_render(*@buttons),class: 'buttons'), id: @identifier
120
+ end
121
+
122
+ end
123
+
124
+ class DataTableRowCell < Renderable
125
+
126
+ def initialize data
127
+ @data = data
128
+ end
129
+
130
+ def render
131
+ content_tag 'td', @data
132
+ end
133
+
134
+ end
135
+
136
+ class DataTableRowButton < Renderable
137
+
138
+ def initialize type, text, url, options
139
+ init options, remote: true, confirm: 'Delete resource?'
140
+ @type = type
141
+ @text = text
142
+ @url = url
143
+ end
144
+
145
+ def render
146
+ @text = '&nbsp;' unless @type == :text
147
+ case @type
148
+ when :text
149
+ link_to @text, @url
150
+ when :print
151
+ link_to @text, @url, class: :print
152
+ when :show
153
+ link_to @text, @url, class: :show
154
+ when :edit
155
+ link_to @text, @url, class: :edit
156
+ when :destroy
157
+ if @options[:remote]
158
+ link_to @text, @url, class: :destroy, method: :delete, data: { confirm: @options[:confirm] }
159
+ else
160
+ link_to @text, @url, class: :destroy
161
+ end
162
+ end
163
+ end
164
+
165
+ end
166
+
167
+ end
168
+
169
+ end
@@ -0,0 +1,43 @@
1
+ module Aureus
2
+
3
+ module Components
4
+
5
+ class Listing < Renderable
6
+
7
+ def initialize
8
+ @entries = Array.new
9
+ end
10
+
11
+ def entry head, body = nil, &block
12
+ init_haml_helpers
13
+ if block_given?
14
+ @entries << ListingEntry.new(head,capture_haml(&block))
15
+ else
16
+ @entries << ListingEntry.new(head,body)
17
+ end
18
+ end
19
+
20
+ def render
21
+ content_tag 'table', compact_render(*@entries), class: 'simple-table'
22
+ end
23
+
24
+ end
25
+
26
+ class ListingEntry < Renderable
27
+
28
+ def initialize head, body
29
+ @head = head
30
+ @body = body
31
+ end
32
+
33
+ def render
34
+ content_tag 'tr' do
35
+ compact content_tag('th',@head), content_tag('td',@body)
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+
43
+ end