faalis 2.0.5 → 2.0.7

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 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