manage 1.3.20 → 1.3.21

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.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -20
  3. data/README.rdoc +96 -96
  4. data/Rakefile +31 -31
  5. data/app/assets/javascripts/manage/application.js +0 -2
  6. data/app/assets/javascripts/manage/collection_actions.js.coffee +30 -30
  7. data/app/assets/javascripts/manage/handlers.js.coffee +46 -46
  8. data/app/assets/javascripts/manage/init.js.coffee +1 -4
  9. data/app/assets/javascripts/manage/table_checkboxes.js.coffee +11 -11
  10. data/app/assets/stylesheets/manage/application.css.scss +1 -2
  11. data/app/assets/stylesheets/manage/layout.css.scss +44 -44
  12. data/app/controllers/manage/application_controller.rb +13 -13
  13. data/app/controllers/manage/dashboards_controller.rb +4 -4
  14. data/app/controllers/manage/resource_controller.rb +125 -125
  15. data/app/controllers/manage/responder.rb +11 -11
  16. data/app/controllers/manage/sessions_controller.rb +11 -11
  17. data/app/helpers/manage/application_helper.rb +42 -42
  18. data/app/helpers/manage/form_helper.rb +21 -21
  19. data/app/helpers/manage/resource_helper.rb +77 -77
  20. data/app/models/admin_user.rb +4 -4
  21. data/app/views/layouts/manage/_main_menu.html.slim +52 -52
  22. data/app/views/layouts/manage/application.html.slim +39 -39
  23. data/app/views/layouts/manage/sign_in.html.slim +30 -30
  24. data/app/views/manage/resource/_form.html.slim +4 -4
  25. data/app/views/manage/resource/index.html.slim +18 -18
  26. data/app/views/manage/resource/index/_collection_actions.html.slim +2 -2
  27. data/app/views/manage/resource/index/_count.html.slim +6 -6
  28. data/app/views/manage/resource/index/_filters.html.slim +22 -22
  29. data/app/views/manage/resource/index/_table.html.slim +25 -25
  30. data/app/views/manage/resource/show.html.slim +10 -10
  31. data/app/views/manage/sessions/new.html.slim +10 -10
  32. data/config/initializers/devise.rb +247 -247
  33. data/config/initializers/session_store.rb +3 -3
  34. data/config/initializers/simple_form.rb +145 -145
  35. data/config/initializers/simple_form_foundation.rb +26 -26
  36. data/config/locales/devise.en.yml +59 -59
  37. data/config/locales/en.yml +20 -20
  38. data/config/routes.rb +10 -10
  39. data/db/migrate/20131204142720_create_admin_users.rb +24 -24
  40. data/lib/manage.rb +5 -5
  41. data/lib/manage/engine.rb +21 -21
  42. data/lib/manage/fields.rb +6 -6
  43. data/lib/manage/fields/reader.rb +57 -57
  44. data/lib/manage/fields/searcher.rb +51 -51
  45. data/lib/manage/version.rb +1 -1
  46. data/lib/tasks/manage_tasks.rake +15 -15
  47. data/lib/templates/erb/scaffold/_form.html.erb +13 -13
  48. data/spec/controllers/manage/resource_controller_spec.rb +29 -29
  49. data/spec/dummy/README.rdoc +28 -28
  50. data/spec/dummy/Rakefile +6 -6
  51. data/spec/dummy/app/assets/javascripts/application.js +13 -13
  52. data/spec/dummy/app/assets/stylesheets/application.css +13 -13
  53. data/spec/dummy/app/controllers/application_controller.rb +5 -5
  54. data/spec/dummy/app/controllers/manage/posts_controller.rb +4 -4
  55. data/spec/dummy/app/helpers/application_helper.rb +2 -2
  56. data/spec/dummy/app/models/post.rb +3 -3
  57. data/spec/dummy/app/models/user.rb +5 -5
  58. data/spec/dummy/app/views/layouts/application.html.erb +14 -14
  59. data/spec/dummy/bin/bundle +3 -3
  60. data/spec/dummy/bin/rails +4 -4
  61. data/spec/dummy/bin/rake +4 -4
  62. data/spec/dummy/config.ru +4 -4
  63. data/spec/dummy/config/application.rb +24 -24
  64. data/spec/dummy/config/boot.rb +5 -5
  65. data/spec/dummy/config/database.yml +25 -25
  66. data/spec/dummy/config/environment.rb +5 -5
  67. data/spec/dummy/config/environments/development.rb +29 -29
  68. data/spec/dummy/config/environments/production.rb +80 -80
  69. data/spec/dummy/config/environments/test.rb +36 -36
  70. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -7
  71. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -4
  72. data/spec/dummy/config/initializers/inflections.rb +16 -16
  73. data/spec/dummy/config/initializers/mime_types.rb +5 -5
  74. data/spec/dummy/config/initializers/secret_token.rb +12 -12
  75. data/spec/dummy/config/initializers/session_store.rb +3 -3
  76. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -14
  77. data/spec/dummy/config/locales/en.yml +23 -23
  78. data/spec/dummy/config/routes.rb +10 -10
  79. data/spec/dummy/db/migrate/20130716083410_init_migration.rb +21 -21
  80. data/spec/dummy/db/schema.rb +53 -53
  81. data/spec/dummy/public/404.html +58 -58
  82. data/spec/dummy/public/422.html +58 -58
  83. data/spec/dummy/public/500.html +57 -57
  84. data/spec/fields/reader_spec.rb +79 -79
  85. data/spec/spec_helper.rb +24 -24
  86. metadata +88 -110
  87. data/app/assets/javascripts/manage/tinymce/plugins/code/plugin.min.js +0 -1
  88. data/app/assets/javascripts/manage/tinymce/theme.min.js +0 -1
  89. data/app/assets/javascripts/manage/tinymce/tinymce.min.js +0 -9
  90. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/content.inline.min.css +0 -1
  91. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/content.min.css +0 -1
  92. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/readme.md +0 -1
  93. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  94. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce-small.svg +0 -175
  95. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  96. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  97. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  98. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce.svg +0 -153
  99. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  100. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  101. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/img/anchor.gif +0 -0
  102. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/img/loader.gif +0 -0
  103. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/img/object.gif +0 -0
  104. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/img/trans.gif +0 -0
  105. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/img/wline.gif +0 -0
  106. data/app/assets/stylesheets/manage/tinymce/skins/lightgray/skin.min.css +0 -1
  107. data/spec/dummy/log/test.log +0 -0
@@ -1,21 +1,21 @@
1
- en:
2
- manage:
3
- actions:
4
- show: Show
5
- edit: Edit
6
- destroy: Delete
7
- edit:
8
- title: Edit %{model}
9
- confirmations:
10
- Are you sure: Are you sure?
11
- flash:
12
- actions:
13
- create:
14
- notice: '%{resource_name} was successfully created.'
15
- alert: '%{resource_name} could not be created.'
16
- update:
17
- notice: '%{resource_name} was successfully updated.'
18
- alert: '%{resource_name} could not be updated.'
19
- destroy:
20
- notice: '%{resource_name} was successfully destroyed.'
1
+ en:
2
+ manage:
3
+ actions:
4
+ show: Show
5
+ edit: Edit
6
+ destroy: Delete
7
+ edit:
8
+ title: Edit %{model}
9
+ confirmations:
10
+ Are you sure: Are you sure?
11
+ flash:
12
+ actions:
13
+ create:
14
+ notice: '%{resource_name} was successfully created.'
15
+ alert: '%{resource_name} could not be created.'
16
+ update:
17
+ notice: '%{resource_name} was successfully updated.'
18
+ alert: '%{resource_name} could not be updated.'
19
+ destroy:
20
+ notice: '%{resource_name} was successfully destroyed.'
21
21
  alert: '%{resource_name} could not be destroyed.'
data/config/routes.rb CHANGED
@@ -1,10 +1,10 @@
1
- Manage::Engine.routes.draw do
2
- devise_for :admin_users, :class_name => "AdminUser", skip: :registrations, controllers: {
3
- sessions: "manage/sessions"
4
- }
5
-
6
- resources :dashboards
7
- resources :admin_users
8
-
9
- root 'dashboards#index'
10
- end
1
+ Manage::Engine.routes.draw do
2
+ devise_for :admin_users, :class_name => "AdminUser", skip: :registrations, controllers: {
3
+ sessions: "manage/sessions"
4
+ }
5
+
6
+ resources :dashboards
7
+ resources :admin_users
8
+
9
+ root 'dashboards#index'
10
+ end
@@ -1,24 +1,24 @@
1
- class CreateAdminUsers < ActiveRecord::Migration
2
- def change
3
- create_table "admin_users", force: true do |t|
4
- t.string "email", default: "", null: false
5
- t.string "encrypted_password", default: "", null: false
6
- t.string "reset_password_token"
7
- t.datetime "reset_password_sent_at"
8
- t.datetime "remember_created_at"
9
- t.integer "sign_in_count", default: 0
10
- t.datetime "current_sign_in_at"
11
- t.datetime "last_sign_in_at"
12
- t.string "current_sign_in_ip"
13
- t.string "last_sign_in_ip"
14
- t.integer "failed_attempts", default: 0
15
- t.string "unlock_token"
16
- t.datetime "locked_at"
17
- t.datetime "created_at"
18
- t.datetime "updated_at"
19
- end
20
-
21
- add_index "admin_users", ["email"], name: "index_admin_users_on_email", unique: true, using: :btree
22
- add_index "admin_users", ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true, using: :btree
23
- end
24
- end
1
+ class CreateAdminUsers < ActiveRecord::Migration
2
+ def change
3
+ create_table "admin_users", force: true do |t|
4
+ t.string "email", default: "", null: false
5
+ t.string "encrypted_password", default: "", null: false
6
+ t.string "reset_password_token"
7
+ t.datetime "reset_password_sent_at"
8
+ t.datetime "remember_created_at"
9
+ t.integer "sign_in_count", default: 0
10
+ t.datetime "current_sign_in_at"
11
+ t.datetime "last_sign_in_at"
12
+ t.string "current_sign_in_ip"
13
+ t.string "last_sign_in_ip"
14
+ t.integer "failed_attempts", default: 0
15
+ t.string "unlock_token"
16
+ t.datetime "locked_at"
17
+ t.datetime "created_at"
18
+ t.datetime "updated_at"
19
+ end
20
+
21
+ add_index "admin_users", ["email"], name: "index_admin_users_on_email", unique: true, using: :btree
22
+ add_index "admin_users", ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true, using: :btree
23
+ end
24
+ end
data/lib/manage.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "manage/engine"
2
- require "manage/fields"
3
-
4
- module Manage
5
- end
1
+ require "manage/engine"
2
+ require "manage/fields"
3
+
4
+ module Manage
5
+ end
data/lib/manage/engine.rb CHANGED
@@ -1,21 +1,21 @@
1
- require 'kaminari'
2
- require 'responders'
3
- require 'inherited_resources'
4
- require 'simple_form'
5
- require 'jquery-rails'
6
- require 'zurb-foundation'
7
- require 'devise'
8
- require 'slim'
9
- require 'search_object'
10
-
11
- module Manage
12
- class Engine < ::Rails::Engine
13
- isolate_namespace Manage
14
-
15
- config.generators do |g|
16
- g.test_framework :rspec, :fixture => false
17
- g.assets false
18
- g.helper false
19
- end
20
- end
21
- end
1
+ require 'kaminari'
2
+ require 'responders'
3
+ require 'inherited_resources'
4
+ require 'simple_form'
5
+ require 'jquery-rails'
6
+ require 'zurb-foundation'
7
+ require 'devise'
8
+ require 'slim'
9
+ require 'search_object'
10
+
11
+ module Manage
12
+ class Engine < ::Rails::Engine
13
+ isolate_namespace Manage
14
+
15
+ config.generators do |g|
16
+ g.test_framework :rspec, :fixture => false
17
+ g.assets false
18
+ g.helper false
19
+ end
20
+ end
21
+ end
data/lib/manage/fields.rb CHANGED
@@ -1,6 +1,6 @@
1
- module Manage
2
- module Fields
3
- autoload :Reader, 'manage/fields/reader'
4
- autoload :Searcher, 'manage/fields/searcher'
5
- end
6
- end
1
+ module Manage
2
+ module Fields
3
+ autoload :Reader, 'manage/fields/reader'
4
+ autoload :Searcher, 'manage/fields/searcher'
5
+ end
6
+ end
@@ -1,57 +1,57 @@
1
- module Manage
2
- module Fields
3
- class Reader
4
- class << self
5
- def field_value(scope, field_data)
6
- current_field, rest_field_parts, custom_query, custom_format = _parse_field_data(field_data)
7
- value = scope.public_send(current_field)
8
-
9
- if _is_field_relation?(value)
10
- value = custom_query.present? ? custom_query.call(value) : value
11
-
12
- value.map do |entity|
13
- ("<a href=\"#{current_field}/#{entity.id}\">#{custom_format.present? ? custom_format.call(entity) : entity.id }</a>")
14
- end.join(', ').html_safe
15
- else
16
- rest_field_parts.empty? ? value : field_value(value, rest_field_parts.join('.'))
17
- end
18
- end
19
-
20
- def field_title(resource_class, field_data, prefix='')
21
- current_field, rest_field_parts = _parse_field_data(field_data)
22
- title = resource_class.human_attribute_name(current_field)
23
-
24
- rest_field_parts.empty? ? prefix + title : field_title(resource_class, rest_field_parts.join('.'), prefix + title + ' ')
25
- end
26
-
27
- private
28
- def _is_field_relation?(field_value)
29
- field_value.is_a?(ActiveRecord::Associations::CollectionProxy)
30
- end
31
-
32
- def _parse_field_data(field_data)
33
- custom_query = nil
34
- custom_format = nil
35
-
36
- if field_data.is_a?(Hash)
37
- current_field = field_data.keys.first
38
- rest_field_parts = field_data[current_field]
39
-
40
- if rest_field_parts.is_a?(String)
41
- rest_field_parts = Array(rest_field_parts)
42
- else
43
- custom_query = field_data[current_field][:query]
44
- custom_format = field_data[current_field][:format]
45
- rest_field_parts = []
46
- end
47
- else
48
- current_field, *rest_field_parts = field_data.to_s.split('.')
49
- end
50
-
51
- return current_field, rest_field_parts, custom_query, custom_format
52
- end
53
-
54
- end
55
- end
56
- end
57
- end
1
+ module Manage
2
+ module Fields
3
+ class Reader
4
+ class << self
5
+ def field_value(scope, field_data)
6
+ current_field, rest_field_parts, custom_query, custom_format = _parse_field_data(field_data)
7
+ value = scope.public_send(current_field)
8
+
9
+ if _is_field_relation?(value)
10
+ value = custom_query.present? ? custom_query.call(value) : value
11
+
12
+ value.map do |entity|
13
+ ("<a href=\"#{current_field}/#{entity.id}\">#{custom_format.present? ? custom_format.call(entity) : entity.id }</a>")
14
+ end.join(', ').html_safe
15
+ else
16
+ rest_field_parts.empty? ? value : field_value(value, rest_field_parts.join('.'))
17
+ end
18
+ end
19
+
20
+ def field_title(resource_class, field_data, prefix='')
21
+ current_field, rest_field_parts = _parse_field_data(field_data)
22
+ title = resource_class.human_attribute_name(current_field)
23
+
24
+ rest_field_parts.empty? ? prefix + title : field_title(resource_class, rest_field_parts.join('.'), prefix + title + ' ')
25
+ end
26
+
27
+ private
28
+ def _is_field_relation?(field_value)
29
+ field_value.is_a?(ActiveRecord::Associations::CollectionProxy)
30
+ end
31
+
32
+ def _parse_field_data(field_data)
33
+ custom_query = nil
34
+ custom_format = nil
35
+
36
+ if field_data.is_a?(Hash)
37
+ current_field = field_data.keys.first
38
+ rest_field_parts = field_data[current_field]
39
+
40
+ if rest_field_parts.is_a?(String)
41
+ rest_field_parts = Array(rest_field_parts)
42
+ else
43
+ custom_query = field_data[current_field][:query]
44
+ custom_format = field_data[current_field][:format]
45
+ rest_field_parts = []
46
+ end
47
+ else
48
+ current_field, *rest_field_parts = field_data.to_s.split('.')
49
+ end
50
+
51
+ return current_field, rest_field_parts, custom_query, custom_format
52
+ end
53
+
54
+ end
55
+ end
56
+ end
57
+ end
@@ -1,51 +1,51 @@
1
- module Manage
2
- module Fields
3
- class Searcher
4
- class << self
5
- def generate_search_object(resource_class, search_fields)
6
- search_class = Class.new do
7
- include SearchObject.module(:model, :sorting)
8
-
9
- def escape_search_term(term)
10
- "%#{term.gsub(/\s+/, '%')}%".downcase
11
- end
12
-
13
- def parse_date(date)
14
- Date.strptime(date, '%Y-%m-%d') rescue nil
15
- end
16
- end
17
-
18
-
19
- search_class.scope { resource_class.all }
20
- Object.const_set("#{resource_class.name.gsub(/:/, '')}Searcher", search_class)
21
-
22
- search_fields.select {|f| not f.to_s.include?('.')}.each do |field|
23
- field_type = resource_class.columns_hash[field.to_s].type
24
- case field_type
25
- when *[:text, :string]
26
- search_class.option field.to_sym do |scope, value|
27
- value.blank? ? scope : scope.where("lower(#{field.to_s}) LIKE lower(?)", escape_search_term(value))
28
- end
29
- when :datetime
30
- search_class.option field.to_sym do |scope, value|
31
- date = parse_date value
32
- scope.where("DATE(#{field.to_s}) >= ?", date) if date.present?
33
- end
34
- when :integer
35
- search_class.option field.to_sym
36
- when :boolean
37
- search_class.option field.to_sym
38
- else
39
- search_class.option field.to_sym do |scope, value|
40
- scope.where "#{field.to_s} = '?'", escape_search_term(value)
41
- end
42
- end
43
- end
44
-
45
- search_class
46
- end
47
- end
48
- end
49
- end
50
- end
51
-
1
+ module Manage
2
+ module Fields
3
+ class Searcher
4
+ class << self
5
+ def generate_search_object(resource_class, search_fields)
6
+ search_class = Class.new do
7
+ include SearchObject.module(:model, :sorting)
8
+
9
+ def escape_search_term(term)
10
+ "%#{term.gsub(/\s+/, '%')}%".downcase
11
+ end
12
+
13
+ def parse_date(date)
14
+ Date.strptime(date, '%Y-%m-%d') rescue nil
15
+ end
16
+ end
17
+
18
+
19
+ search_class.scope { resource_class.all }
20
+ Object.const_set("#{resource_class.name.gsub(/:/, '')}Searcher", search_class)
21
+
22
+ search_fields.select {|f| not f.to_s.include?('.')}.each do |field|
23
+ field_type = resource_class.columns_hash[field.to_s].type
24
+ case field_type
25
+ when *[:text, :string]
26
+ search_class.option field.to_sym do |scope, value|
27
+ value.blank? ? scope : scope.where("lower(#{field.to_s}) LIKE lower(?)", escape_search_term(value))
28
+ end
29
+ when :datetime
30
+ search_class.option field.to_sym do |scope, value|
31
+ date = parse_date value
32
+ scope.where("DATE(#{field.to_s}) >= ?", date) if date.present?
33
+ end
34
+ when :integer
35
+ search_class.option field.to_sym
36
+ when :boolean
37
+ search_class.option field.to_sym
38
+ else
39
+ search_class.option field.to_sym do |scope, value|
40
+ scope.where "#{field.to_s} = '?'", escape_search_term(value)
41
+ end
42
+ end
43
+ end
44
+
45
+ search_class
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+
@@ -1,3 +1,3 @@
1
1
  module Manage
2
- VERSION = "1.3.20"
2
+ VERSION = "1.3.21"
3
3
  end
@@ -1,15 +1,15 @@
1
- # desc "Explaining what the task does"
2
- # task :manage do
3
- # # Task goes here
4
- # end
5
-
6
- namespace :manage do
7
- desc "Create the initial admin user for the interface"
8
- task :create_admin => :environment do
9
- user = Manage::AdminUser.create!(
10
- :email => "admin@admin.com",
11
- :password => "11223344",
12
- :password_confirmation => "11223344"
13
- )
14
- end
15
- end
1
+ # desc "Explaining what the task does"
2
+ # task :manage do
3
+ # # Task goes here
4
+ # end
5
+
6
+ namespace :manage do
7
+ desc "Create the initial admin user for the interface"
8
+ task :create_admin => :environment do
9
+ user = Manage::AdminUser.create!(
10
+ :email => "admin@admin.com",
11
+ :password => "11223344",
12
+ :password_confirmation => "11223344"
13
+ )
14
+ end
15
+ end
@@ -1,13 +1,13 @@
1
- <%%= simple_form_for(@<%= singular_table_name %>) do |f| %>
2
- <%%= f.error_notification %>
3
-
4
- <div class="form-inputs">
5
- <%- edit_attributes.each do |attribute| -%>
6
- <%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
7
- <%- end -%>
8
- </div>
9
-
10
- <div class="form-actions">
11
- <%%= f.button :submit %>
12
- </div>
13
- <%% end %>
1
+ <%%= simple_form_for(@<%= singular_table_name %>) do |f| %>
2
+ <%%= f.error_notification %>
3
+
4
+ <div class="form-inputs">
5
+ <%- edit_attributes.each do |attribute| -%>
6
+ <%%= f.<%= attribute.reference? ? :association : :input %> :<%= attribute.name %> %>
7
+ <%- end -%>
8
+ </div>
9
+
10
+ <div class="form-actions">
11
+ <%%= f.button :submit %>
12
+ </div>
13
+ <%% end %>