faalis 2.0.5 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 20d4b118e1da29b8834ccedee9cc1d1fb1190792
4
- data.tar.gz: 5b528576a0774a70e3fa2b2e4b702a2e47b30abd
3
+ metadata.gz: 7e67dad743a6caeac4a9fb8b3dd3a84c0535a580
4
+ data.tar.gz: 7bdbf46c6e8413407556431b272fc42138246c78
5
5
  SHA512:
6
- metadata.gz: ab54e163b30605dfc66cc9d39a47f1f2b914d2c949d0caafc9a6002bb009a40fefa88be7f11c18a8efa078a1534367beead995aba796c47fb8f3a1703b7555a9
7
- data.tar.gz: ccf0422c9f191f93ec9805e8ec35c56470a98587735a49baa08ad92a126b483f5fca5b055c44bc2d867281b3b1c1d9a54b13acdfcd6f5ba997d9e2df4250c707
6
+ metadata.gz: c9fc0216db22840d7a89b000720ab32b32b47f3215f5afbd662bc41eaf5f2bf4e7dd775bbf490b11596f3525176f5d1ead489a670effeef7386ed4951410a3ac
7
+ data.tar.gz: 0d63d84d4a9a3e837cd9ef781743c09295fade9d383473a9ae5a121a3a12151999595e31e5043539b350939d973626db0e59250a66f004138bab4e4b68fbc719
@@ -19,3 +19,18 @@
19
19
  .dropdown.user.user-menu {
20
20
  width: auto;
21
21
  }
22
+
23
+ .delete {
24
+ padding-left: 8px;
25
+ }
26
+
27
+ .btn-group {
28
+ padding-top: 10px;
29
+ width: 120px;
30
+
31
+ }
32
+
33
+ .pull-left.link.btn.btn-xs {
34
+ margin: 2px;
35
+
36
+ }
@@ -3,34 +3,5 @@
3
3
  //= require nprogress
4
4
  //= require nprogress-bootstrap
5
5
  //= require faalis/dashboard/share
6
+ //= require faalis/dashboard/rtl/base
6
7
  //= require_self
7
- .fa {
8
- padding-left: 0.4em;
9
- }
10
-
11
- .user-image {
12
- display: inline !important;
13
- }
14
- .user-name-span {
15
- width: 100%;
16
- display: inline !important;
17
- }
18
- .dropdown.user.user-menu {
19
- width: auto;
20
- }
21
-
22
- .pagination li:first-child a {
23
- border-bottom-left-radius: 0;
24
- border-top-left-radius: 0;
25
- border-bottom-right-radius: 4px;
26
- border-top-right-radius: 4px;
27
-
28
- }
29
-
30
- .pagination li:last-child a {
31
- border-bottom-left-radius: 4px;
32
- border-top-left-radius: 4px;
33
- border-bottom-right-radius: 0;
34
- border-top-right-radius: 0;
35
-
36
- }
@@ -40,3 +40,12 @@
40
40
  margin-left: 0.5em;
41
41
  margin-right: 0.5em;
42
42
  }
43
+
44
+ .action-bar {
45
+ .tool {
46
+ opacity: 0.5;
47
+ &:hover {
48
+ opacity: 1;
49
+ }
50
+ }
51
+ }
@@ -2,3 +2,8 @@
2
2
 
3
3
  $loading-indicators-color: #FD7D00;
4
4
  $loading-indicators-shadow: #4FF0A6;
5
+ $red: #DD4B39;
6
+ $dark_blue: #3C8DBC;
7
+ $blue: #00C0EF;
8
+ $green: #00A65A;
9
+ $orange: #F39C12;
@@ -20,7 +20,7 @@ class Faalis::ApplicationController < ActionController::Base
20
20
 
21
21
  include Pundit
22
22
 
23
- before_filter :set_locale
23
+ before_action :set_locale
24
24
 
25
25
  def set_locale
26
26
  if I18n.available_locales.length > 1
@@ -31,6 +31,8 @@ module Faalis
31
31
  end
32
32
 
33
33
  def redirect_to_404(e)
34
+ logger.warn "Catch and ActiveRecord::RecordNotFoundL: '#{e}'"
35
+
34
36
  respond_to do |f|
35
37
  f.html { redirect_to faalis.dashboard_not_found_url }
36
38
  f.js { render 'faalis/dashboard/not_found' }
@@ -4,7 +4,7 @@ require_dependency 'faalis/dashboard/application_controller'
4
4
  module Faalis
5
5
  class DashboardController < ::Dashboard::ApplicationController
6
6
 
7
- before_filter :authenticate_user!, :only => [:modules, :index]
7
+ before_action :authenticate_user!, :only => [:modules, :index]
8
8
 
9
9
  def index
10
10
  redirect_to dashboard_path if params.include? :signin
@@ -1,5 +1,12 @@
1
+ require_dependency 'faalis/dashboard/helpers/box_helpers'
2
+
1
3
  module Faalis
2
4
  module DashboardHelper
5
+ include Faalis::Dashboard::Helpers::BoxHelpers
6
+
7
+ def form_label(resource, name)
8
+ ::I18n.t("forms.#{@resource.class.name.underscore.to_s.gsub('/', '.')}.#{name}")
9
+ end
3
10
 
4
11
  def localized_time(time)
5
12
  # Fixme: Setup and use Rails l10n
@@ -12,7 +12,7 @@
12
12
  .col-sm-12.col-lg-6.col-md-6
13
13
  .form-group data-name=(name)
14
14
  - hash = @_fields_properties[name.to_sym] || {}
15
- - hash[:label] = I18n.t("forms.#{@resource.class.name.underscore.to_s}.#{name}") unless hash.include?(:label)
15
+ - hash[:label] = form_label(@resource, name) unless hash.include?(:label)
16
16
  = f.send(:input, name, hash)
17
17
  - if index % 2 != 0
18
18
  | </div>
@@ -42,17 +42,18 @@
42
42
  td
43
43
  = resource.try(field.to_s).to_s || '-'
44
44
  td.btn-user.text-center.hidden-print
45
- .btn-group
46
- a.pull-left.link.btn.btn-xs.btn-default href=(get_url(@show_route, resource.id, @engine))
47
- i.fa.fa-eye
48
- a.warning.link.pull-left.btn.btn-xs.btn-default href=(get_url(@edit_route, resource.id, @engine))
49
- i.fa.fa-edit
50
- a.link.pull-left.btn.btn-xs.btn-default href=(get_url(@show_route, resource.id, @engine)) data-remote="true" data-method="delete"
51
- i.fa.fa-remove.btn-remove
45
+ .btn-group.action-bar
46
+ a.pull-left.link.btn.btn-xs.btn.show.tool href=(get_url(@show_route, resource.id, @engine)) data-toggle="tooltip" data-placement="top" title=(t("faalis.dashboard.index_section.show"))
47
+ i.fa.fa-eye.fa-lg
48
+ a.warning.link.pull-left.btn.btn-xs.btn.edit.tool href=(get_url(@edit_route, resource.id, @engine)) data-toggle="tooltip" data-placement="top" title=(t("faalis.dashboard.index_section.edit"))
49
+ i.fa.fa-edit.fa-lg
50
+ a.link.pull-left.btn.btn-xs.delete.tool href=(get_url(@show_route, resource.id, @engine)) data-remote="true" data-method="delete" data-toggle="tooltip" data-placement="top" title=(t("faalis.dashboard.index_section.delete")) data-confirm=(t('faalis.dashboard.index_section.delete_msg'))
51
+ i.fa.fa-remove.fa-lg.btn-remove
52
52
 
53
53
  - @_tools_buttons.each do |btn_name, btn|
54
54
  a id=("tool_button_#{btn_name}") class=("link pull-left btn btn-xs #{btn[:class] || 'btn-default'}") href=(btn[:block].call(resource)) data-remote=("#{btn[:remote]}")
55
55
  i class=("fa #{btn[:icon_class]}")
56
+ = btn_name
56
57
  .box-footer.hidden-print
57
58
  .row
58
59
  .col-xs-12.col-sm-12
@@ -77,6 +77,10 @@ en:
77
77
 
78
78
  index_section:
79
79
  add_button: "New %{resource}"
80
+ edit: Edit
81
+ show: Show
82
+ delete: Delete
83
+ delete_msg: Are you sure want to delete?
80
84
 
81
85
  buttons:
82
86
  back: Back
@@ -49,6 +49,10 @@ fa:
49
49
  search: جستجو
50
50
  index_section:
51
51
  add_button: "%{resource} جدید"
52
+ edit: ویرایش
53
+ show: نمایش
54
+ delete: حذف
55
+ delete_msg: آیا مطمئن هستید که می خواهید حذف کنید؟
52
56
  buttons:
53
57
  back: برگشت
54
58
  permissions:
@@ -4,6 +4,9 @@ module Faalis::Dashboard
4
4
  module DSL
5
5
  end
6
6
 
7
+ module Helpers
8
+ end
9
+
7
10
  module Sections
8
11
  end
9
12
  end
@@ -0,0 +1,129 @@
1
+ module Faalis::Dashboard
2
+ module Helpers
3
+ module BoxHelpers
4
+
5
+ class Box
6
+ def footer(&block)
7
+ return @footer = nil unless block_given?
8
+ @footer = block
9
+ end
10
+
11
+ def body(&block)
12
+ @body = block
13
+ end
14
+
15
+ def footer_content
16
+ @footer
17
+ end
18
+
19
+ def body_content
20
+ @body
21
+ end
22
+ end
23
+
24
+ class Tabs
25
+
26
+ class Tab
27
+ attr_reader :title, :title_icon
28
+ attr_accessor :content, :id
29
+
30
+ def initialize(title, **options)
31
+ @title = title
32
+ @active = false
33
+ @active = true if options[:active] == true
34
+ @title_icon = options[:title_icon]
35
+ end
36
+
37
+ def active?
38
+ @active
39
+ end
40
+ end
41
+
42
+ attr_reader :title_icon
43
+
44
+ def initialize(**options)
45
+ @tabs = []
46
+ @title_icon = options[:title_icon]
47
+ end
48
+
49
+
50
+ def tab(title, **options, &block)
51
+ id = @tabs.length
52
+ tab = Tab.new(title, **options)
53
+ tab.content = block
54
+ tab.id = id
55
+ @tabs << tab
56
+ end
57
+
58
+ def tabs
59
+ @tabs
60
+ end
61
+ end
62
+
63
+ def box(title = nil, **options)
64
+ content = Box.new
65
+
66
+ yield content
67
+
68
+ result = "<div class='box #{options[:box_class] || 'box-default'}'>" +
69
+ "<div class='box-header with-border'>" +
70
+ "<h3 class='box-title'>" +
71
+ title +
72
+ '</h3>'
73
+
74
+ unless options[:show_tools].nil?
75
+ result += "<div class='box-tools pull-right'>" +
76
+ "<button class='btn btn-box-tool' data-widget='collapse'>" +
77
+ "<i class='fa fa-minus'></i></button>" +
78
+ "</div><!-- /.box-tools -->"
79
+ end
80
+
81
+ result += "</div><!-- /.box-header -->" +
82
+ "<div class='box-body'>" +
83
+ capture(&content.body_content) +
84
+ "</div><!-- /.box-body -->"
85
+
86
+ unless content.footer_content.nil?
87
+ result += '<div class="box-footer">' +
88
+ content.footer_content +
89
+ "</div><!-- /.box-footer-->"
90
+ end
91
+
92
+ result += "</div><!-- /.box -->"
93
+
94
+ result.html_safe
95
+ end
96
+
97
+
98
+ def tabbed_box(title = nil, **options)
99
+ content = Tabs.new
100
+
101
+ yield content
102
+
103
+ result = "<div class='nav-tabs-custom'>" +
104
+ "<ul class='nav nav-tabs pull-right'>"
105
+
106
+ content.tabs.each do |tab|
107
+ active = nil
108
+ active = "class='active'" if tab.active?
109
+
110
+ result += "<li #{active}><a href='#tab_#{tab.id}-#{tab.id}' data-toggle='tab'>" +
111
+ "<i class='fa #{tab.title_icon}'></i> #{tab.title}</a></li>"
112
+ end
113
+
114
+ result += "<li class='pull-left header'><i class='fa #{options[:title_icon]}'></i>#{title}</li>" +
115
+ "</ul>" +
116
+ "<div class='tab-content'>"
117
+
118
+ content.tabs.each do |tab|
119
+ result += "<div class='tab-pane #{'active' if tab.active?}' id='tab_#{tab.id}-#{tab.id}'>" +
120
+ capture(&tab.content) +
121
+ "</div><!-- /.tab-pane -->"
122
+ end
123
+
124
+ result += "</div><!-- /.tab-content --></div>"
125
+ result.html_safe
126
+ end
127
+ end
128
+ end
129
+ end
@@ -36,6 +36,7 @@ module Faalis::Dashboard::Sections
36
36
  def namespace
37
37
  pieces = controller_path.gsub('dashboard/', '').split('/')
38
38
  return '' if pieces.length == 1
39
+
39
40
  pieces.pop
40
41
  pieces.join('/')
41
42
  end
@@ -44,7 +45,13 @@ module Faalis::Dashboard::Sections
44
45
  if namespace.empty?
45
46
  Rails.application
46
47
  else
47
- "#{namespace.split('/')[0]}::Engine".classify.constantize
48
+ engine = "#{namespace.split('/')[0]}::Engine".classify
49
+ if Object.const_defined? engine
50
+ engine.constantize
51
+ else
52
+ logger.info 'You are using locale modules please define route_engine in your controller'
53
+ Rails.application
54
+ end
48
55
  end
49
56
  end
50
57
 
@@ -54,6 +61,10 @@ module Faalis::Dashboard::Sections
54
61
  @_action_buttons = property_object.action_buttons || []
55
62
  end
56
63
 
64
+ def _engine
65
+ nil
66
+ end
67
+
57
68
  private
58
69
 
59
70
  def _route_name
@@ -74,6 +85,8 @@ module Faalis::Dashboard::Sections
74
85
 
75
86
  def guess_index_route(scope = 'dashboard')
76
87
  scope_ = "#{scope}_"
88
+ scope_ = "#{scope_}#{namespace}_" if !namespace.blank? && _engine.nil?
89
+
77
90
  name = controller_name
78
91
  if name.singularize == name.pluralize
79
92
  "#{scope_}#{name}_index_path"
@@ -84,30 +97,38 @@ module Faalis::Dashboard::Sections
84
97
 
85
98
  def guess_show_route(scope = 'dashboard')
86
99
  scope_ = "#{scope}_"
100
+ scope_ = "#{scope_}#{namespace}_" if !namespace.blank? && _engine.nil?
101
+
87
102
  resource_name = controller_name.singularize.underscore
88
- "#{scope_}#{resource_name}_path"
103
+ "#{scope_}#{resource_name}_path".gsub('/', '_')
89
104
  end
90
105
 
91
106
  def guess_edit_route(scope = 'dashboard')
92
107
  scope_ = "#{scope}_"
108
+ scope_ = "#{scope_}#{namespace}_" if !namespace.blank? && _engine.nil?
109
+
93
110
  resource_name = controller_name.singularize.underscore
94
- "edit_#{scope_}#{resource_name}_path"
111
+ "edit_#{scope_}#{resource_name}_path".gsub('/', '_')
95
112
  end
96
113
 
97
114
  def guess_new_route(scope = 'dashboard')
98
115
  scope_ = "#{scope}_"
116
+ scope_ = "#{scope_}#{namespace}_" if !namespace.blank? && _engine.nil?
117
+
99
118
  resource_name = controller_name.singularize.underscore
100
- "new_#{scope_}#{resource_name}_path"
119
+ "new_#{scope_}#{resource_name}_path".gsub('/', '_')
101
120
  end
102
121
 
103
122
  def guess_edit_route(scope = 'dashboard')
104
123
  scope_ = "#{scope}_"
124
+ scope_ = "#{scope_}#{namespace}_" if !namespace.blank? && _engine.nil?
125
+
105
126
  resource_name = controller_name.singularize.underscore
106
- "edit_#{scope_}#{resource_name}_path"
127
+ "edit_#{scope_}#{resource_name}_path".gsub('/', '_')
107
128
  end
108
129
 
109
130
  def setup_named_routes
110
- @engine = _route_engine
131
+ @engine = _engine || _route_engine
111
132
  @index_route = guess_index_route
112
133
  @new_route = guess_new_route
113
134
  @show_route = guess_show_route
@@ -165,10 +186,11 @@ module Faalis::Dashboard::Sections
165
186
  # Via this method user can specify the engine or application name
166
187
  # which current resource is defined under. Default value is:
167
188
  # Rails.application
168
- def route_engine(name, &block)
189
+ def route_engine(name = nil, &block)
169
190
  define_method(:_route_engine) do
170
191
  return block.call if block_given?
171
- name
192
+ return name unless name.nil?
193
+ fail 'You have to provide a name or a block'
172
194
  end
173
195
  end
174
196
 
@@ -180,6 +202,15 @@ module Faalis::Dashboard::Sections
180
202
  name
181
203
  end
182
204
  end
205
+
206
+ # Set the engine name of current controller. It's necessary to provide and
207
+ # engine name if the controller belongs to an engine other than Faalis or
208
+ # Rails.application.
209
+ def engine(name)
210
+ define_method(:_engine) do
211
+ name.constantize
212
+ end
213
+ end
183
214
  end
184
215
 
185
216
  end
@@ -201,7 +201,9 @@ module Faalis::Dashboard::Sections
201
201
  # end
202
202
  # end
203
203
  def in_form(&block)
204
- model = controller_name.classify.constantize
204
+ name = controller_name
205
+ path = controller_path.gsub(name, '').gsub(/dashboard\//, '')
206
+ model = "#{path}#{name}".classify.constantize
205
207
  form_props = Faalis::Dashboard::DSL::Create.new(model)
206
208
 
207
209
  unless block_given?
@@ -72,7 +72,9 @@ module Faalis::Dashboard::Sections
72
72
  # ```
73
73
  #
74
74
  def in_show(&block)
75
- model = controller_name.classify.constantize
75
+ name = controller_name
76
+ path = controller_path.gsub(name, '').gsub(/dashboard\//, '')
77
+ model = "#{path}#{name}".classify.constantize
76
78
  show_props = Faalis::Dashboard::DSL::Show.new(model)
77
79
 
78
80
  unless block_given?
@@ -11,8 +11,8 @@ module Faalis::Dashboard::Sections
11
11
 
12
12
  fetch_and_set_all
13
13
  action_buttons(index_properties)
14
- @_tools_buttons = index_properties.tool_buttons || {}
15
14
 
15
+ @_tools_buttons = index_properties.tool_buttons || {}
16
16
  index_hook(@resources)
17
17
 
18
18
  return if _override_views.include? :index
@@ -86,7 +86,10 @@ module Faalis::Dashboard::Sections
86
86
  # ```
87
87
  #
88
88
  def in_index(&block)
89
- model = controller_name.classify.constantize
89
+ name = controller_name
90
+ path = controller_path.gsub(name, '').gsub(/dashboard\//, '')
91
+ model = "#{path}#{name}".classify.constantize
92
+
90
93
  index_props = Faalis::Dashboard::DSL::Index.new(model)
91
94
 
92
95
  unless block_given?
@@ -18,5 +18,5 @@
18
18
  # -----------------------------------------------------------------------------
19
19
 
20
20
  module Faalis
21
- VERSION = '2.0.5'
21
+ VERSION = '2.0.7'
22
22
  end
@@ -9,12 +9,12 @@ module Faalis
9
9
  source_root File.expand_path('../templates', __FILE__)
10
10
 
11
11
  def create_pundit_file
12
- generate 'pundit:policy', resource
12
+ generate 'pundit:policy', resource_name
13
13
  end
14
14
 
15
15
  def create_controller
16
16
  template('dashboard/controller.rb.erb',
17
- "app/controllers/#{module_path}dashboard/#{resources}_controller.rb")
17
+ "app/controllers/dashboard/#{module_path}#{resources}_controller.rb")
18
18
  end
19
19
 
20
20
  def inject_routes
@@ -32,7 +32,7 @@ module Faalis
32
32
  puts " `School::Student`, then you should have your route like this:"
33
33
  puts ""
34
34
  puts " in_dashboard do"
35
- puts " scope :school do"
35
+ puts " namespace :school do"
36
36
  puts " resources students"
37
37
  puts " end"
38
38
  puts " end"
@@ -54,7 +54,7 @@ module Faalis
54
54
  end
55
55
 
56
56
  def controller_module
57
- path = module_path + 'dashboard/'
57
+ path = 'dashboard/' + module_path
58
58
  path.classify
59
59
  end
60
60
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faalis
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sameer Rahmani
@@ -9,15 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-16 00:00:00.000000000 Z
12
+ date: 2016-03-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '4.2'
21
18
  - - ">="
22
19
  - !ruby/object:Gem::Version
23
20
  version: 4.2.0
@@ -25,9 +22,6 @@ dependencies:
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '4.2'
31
25
  - - ">="
32
26
  - !ruby/object:Gem::Version
33
27
  version: 4.2.0
@@ -49,22 +43,16 @@ dependencies:
49
43
  name: devise
50
44
  requirement: !ruby/object:Gem::Requirement
51
45
  requirements:
52
- - - "~>"
46
+ - - ">"
53
47
  - !ruby/object:Gem::Version
54
- version: '3.5'
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: 3.4.0
48
+ version: '3.4'
58
49
  type: :runtime
59
50
  prerelease: false
60
51
  version_requirements: !ruby/object:Gem::Requirement
61
52
  requirements:
62
- - - "~>"
63
- - !ruby/object:Gem::Version
64
- version: '3.5'
65
- - - ">="
53
+ - - ">"
66
54
  - !ruby/object:Gem::Version
67
- version: 3.4.0
55
+ version: '3.4'
68
56
  - !ruby/object:Gem::Dependency
69
57
  name: admin_lte-rails
70
58
  requirement: !ruby/object:Gem::Requirement
@@ -337,14 +325,14 @@ dependencies:
337
325
  requirements:
338
326
  - - "~>"
339
327
  - !ruby/object:Gem::Version
340
- version: 0.3.0
328
+ version: 0.3.8
341
329
  type: :runtime
342
330
  prerelease: false
343
331
  version_requirements: !ruby/object:Gem::Requirement
344
332
  requirements:
345
333
  - - "~>"
346
334
  - !ruby/object:Gem::Version
347
- version: 0.3.0
335
+ version: 0.3.8
348
336
  - !ruby/object:Gem::Dependency
349
337
  name: orm_adapter
350
338
  requirement: !ruby/object:Gem::Requirement
@@ -505,7 +493,9 @@ files:
505
493
  - app/assets/locale/templates.pot
506
494
  - app/assets/stylesheets/faalis/dashboard/loadindicator.scss
507
495
  - app/assets/stylesheets/faalis/dashboard/ltr/application.css
496
+ - app/assets/stylesheets/faalis/dashboard/ltr/base.css.scss
508
497
  - app/assets/stylesheets/faalis/dashboard/rtl/application.css
498
+ - app/assets/stylesheets/faalis/dashboard/rtl/base.css.scss
509
499
  - app/assets/stylesheets/faalis/dashboard/share.scss
510
500
  - app/assets/stylesheets/faalis/dashboard/variables.scss
511
501
  - app/assets/stylesheets/faalis/ltr/application.css
@@ -709,6 +699,7 @@ files:
709
699
  - lib/faalis/dashboard/dsl/index.rb
710
700
  - lib/faalis/dashboard/dsl/show.rb
711
701
  - lib/faalis/dashboard/dsl/update.rb
702
+ - lib/faalis/dashboard/helpers/box_helpers.rb
712
703
  - lib/faalis/dashboard/models/sidebar.rb
713
704
  - lib/faalis/dashboard/sections/resource.rb
714
705
  - lib/faalis/dashboard/sections/resource_create.rb