mokio 0.0.13 → 0.0.14

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/app/assets/stylesheets/backend.css.scss +3 -1
  3. data/app/assets/stylesheets/backend/custom.css.scss +45 -30
  4. data/app/assets/stylesheets/backend/menu.css.scss +7 -0
  5. data/app/controllers/mokio/base_articles_controller.rb +3 -0
  6. data/app/controllers/mokio/base_contacts_controller.rb +5 -0
  7. data/app/controllers/mokio/base_contents_controller.rb +3 -0
  8. data/app/controllers/mokio/base_mov_galleries_controller.rb +3 -0
  9. data/app/controllers/mokio/base_pic_galleries_controller.rb +4 -0
  10. data/app/controllers/mokio/support_controller.rb +11 -0
  11. data/app/controllers/passwords_controller.rb +6 -0
  12. data/app/models/mokio/base_article.rb +29 -0
  13. data/app/models/mokio/base_contact.rb +30 -0
  14. data/app/models/mokio/base_content.rb +5 -0
  15. data/app/models/mokio/base_mov_gallery.rb +30 -0
  16. data/app/models/mokio/base_pic_gallery.rb +30 -0
  17. data/app/models/mokio/support.rb +29 -0
  18. data/app/uploaders/ckeditor_attachment_file_uploader.rb +1 -1
  19. data/app/views/devise/sessions/new.html.haml +0 -1
  20. data/app/views/mokio/articles/_form.html.slim +3 -2
  21. data/app/views/mokio/base_articles/_multi_lang_form.html.slim +18 -0
  22. data/app/views/mokio/base_contacts/_multi_lang_form.html.slim +48 -0
  23. data/app/views/mokio/base_contents/update_content_form.js.slim +1 -0
  24. data/app/views/mokio/base_pic_galleries/_multi_lang_form.html.slim +13 -0
  25. data/app/views/mokio/common/_main_pic.html.slim +3 -1
  26. data/app/views/mokio/common/_multi_lang_gmap.html.slim +41 -0
  27. data/app/views/mokio/common/_multi_lang_meta.html.slim +50 -0
  28. data/app/views/mokio/common/edit.html.slim +5 -1
  29. data/app/views/mokio/common/multi_lang_form_content.html.slim +56 -0
  30. data/app/views/mokio/common/new.html.slim +4 -1
  31. data/app/views/mokio/contacts/_form.html.slim +2 -1
  32. data/app/views/mokio/contents/_common.slim +2 -0
  33. data/app/views/mokio/contents/delete_main_pic.js.slim +1 -0
  34. data/app/views/mokio/contents/new.html.slim +50 -0
  35. data/app/views/mokio/data_files/_file_upload.html.erb +8 -1
  36. data/app/views/mokio/layout/_user_widget.html.slim +4 -0
  37. data/app/views/mokio/layout/sidebar.html.slim +19 -9
  38. data/app/views/mokio/layout/sidebar_support.html.slim +4 -0
  39. data/app/views/mokio/menus/_form.html.haml +13 -5
  40. data/app/views/mokio/menus/_menu.html.slim +1 -1
  41. data/app/views/mokio/mov_galleries/_form_inputs.html.slim +5 -4
  42. data/app/views/mokio/pic_galleries/_form.html.slim +1 -1
  43. data/app/views/mokio/pic_galleries/_form_inputs.html.slim +5 -5
  44. data/app/views/mokio/support/index.html.slim +23 -0
  45. data/app/views/mokio/users/_form.html.slim +2 -0
  46. data/app/views/mokio/youtubes/_gallery.html.slim +9 -10
  47. data/app/views/mokio/youtubes/_search_yt.html.slim +8 -9
  48. data/config/locales/en.yml +24 -0
  49. data/config/locales/pl.yml +48 -1
  50. data/config/routes.rb +63 -2
  51. data/config/views.yml +4 -0
  52. data/db/migrate/20150408074951_create_mokio_base_contents.rb +17 -0
  53. data/db/migrate/20150408075454_add_base_content_id_to_mokio_contents.mokio.rb +6 -0
  54. data/db/migrate/20150414054139_add_name_to_mokio_users.rb +6 -0
  55. data/db/migrate/20150414070406_add_author_and_editor_to_mokio_content.rb +6 -0
  56. data/db/migrate/20150528104851_add_base_content_id_to_mokio_data_files.rb +5 -0
  57. data/lib/generators/mokio/btr_generator.rb +11 -0
  58. data/lib/generators/mokio/contents_generator.rb +58 -0
  59. data/lib/generators/mokio/templates/contents/_form.html.slim +15 -0
  60. data/lib/generators/mokio/templates/contents/_sidebar_btn.html.slim +1 -0
  61. data/lib/generators/mokio/templates/contents/controller.rb +23 -0
  62. data/lib/generators/mokio/templates/contents/model.rb +24 -0
  63. data/lib/generators/mokio/templates/contents/views_template.yml +6 -0
  64. data/lib/generators/mokio/templates/mokio.rb +32 -0
  65. data/lib/generators/mokio/templates/translations/backend_example.yml +57 -0
  66. data/lib/mokio.rb +13 -2
  67. data/lib/mokio/concerns.rb +15 -1
  68. data/lib/mokio/concerns/common/controller_functions.rb +19 -1
  69. data/lib/mokio/concerns/common/controller_object.rb +2 -2
  70. data/lib/mokio/concerns/controllers/application.rb +32 -3
  71. data/lib/mokio/concerns/controllers/articles.rb +39 -3
  72. data/lib/mokio/concerns/controllers/base.rb +1 -0
  73. data/lib/mokio/concerns/controllers/base_articles.rb +31 -0
  74. data/lib/mokio/concerns/controllers/base_contacts.rb +32 -0
  75. data/lib/mokio/concerns/controllers/base_contents.rb +167 -0
  76. data/lib/mokio/concerns/controllers/base_mov_galleries.rb +48 -0
  77. data/lib/mokio/concerns/controllers/base_pic_galleries.rb +32 -0
  78. data/lib/mokio/concerns/controllers/common.rb +7 -8
  79. data/lib/mokio/concerns/controllers/contacts.rb +39 -1
  80. data/lib/mokio/concerns/controllers/contents.rb +1 -0
  81. data/lib/mokio/concerns/controllers/main_pics.rb +32 -0
  82. data/lib/mokio/concerns/controllers/menus.rb +3 -2
  83. data/lib/mokio/concerns/controllers/mov_galleries.rb +19 -3
  84. data/lib/mokio/concerns/controllers/photos.rb +1 -1
  85. data/lib/mokio/concerns/controllers/pic_galleries.rb +18 -3
  86. data/lib/mokio/concerns/models/article.rb +1 -0
  87. data/lib/mokio/concerns/models/base_article.rb +21 -0
  88. data/lib/mokio/concerns/models/base_contact.rb +36 -0
  89. data/lib/mokio/concerns/models/base_content.rb +51 -0
  90. data/lib/mokio/concerns/models/base_mov_gallery.rb +19 -0
  91. data/lib/mokio/concerns/models/base_pic_gallery.rb +22 -0
  92. data/lib/mokio/concerns/models/common.rb +1 -1
  93. data/lib/mokio/concerns/models/contact_template.rb +4 -0
  94. data/lib/mokio/concerns/models/content.rb +12 -0
  95. data/lib/mokio/concerns/models/data_file.rb +9 -3
  96. data/lib/mokio/concerns/models/lang.rb +1 -1
  97. data/lib/mokio/concerns/models/recipient.rb +2 -0
  98. data/lib/mokio/concerns/models/user.rb +5 -1
  99. data/lib/mokio/frontend_helpers/menu_helper.rb +17 -8
  100. data/lib/mokio/version.rb +1 -1
  101. data/spec/dummy/config/routes.rb +2 -0
  102. metadata +55 -11
  103. data/app/views/devise/passwords/edit.html.erb +0 -19
  104. data/app/views/devise/passwords/new.html.erb +0 -15
  105. data/app/views/mokio/menus/sort.html.slim +0 -1
  106. data/spec/dummy/config/views.yml +0 -11
@@ -0,0 +1,4 @@
1
+ -
2
+ original_view: "mokio/layout/sidebar"
3
+ override_path: "mokio/layout/sidebar_support"
4
+ html_element_id: "#sidebar-ul"
@@ -0,0 +1,17 @@
1
+ class CreateMokioBaseContents < ActiveRecord::Migration
2
+ def change
3
+ create_table :mokio_base_contents do |t|
4
+ t.string "title"
5
+ t.string "type"
6
+ t.boolean "home_page"
7
+ t.boolean "active", default: true
8
+ t.boolean "editable", default: true
9
+ t.boolean "deletable", default: true
10
+ t.date "display_from"
11
+ t.date "display_to"
12
+ t.string "main_pic"
13
+ t.string "etag"
14
+ t.timestamps
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,6 @@
1
+ # This migration comes from mokio (originally 20150408075347)
2
+ class AddBaseContentIdToMokioContents < ActiveRecord::Migration
3
+ def change
4
+ add_column :mokio_contents, :base_content_id, :int
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class AddNameToMokioUsers < ActiveRecord::Migration
2
+ def change
3
+ add_column :mokio_users, :first_name, :string, after: :email
4
+ add_column :mokio_users, :last_name, :string, after: :first_name
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ class AddAuthorAndEditorToMokioContent < ActiveRecord::Migration
2
+ def change
3
+ add_column :mokio_contents, :created_by, :integer, after: :created_at
4
+ add_column :mokio_contents, :updated_by, :integer, after: :updated_at
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddBaseContentIdToMokioDataFiles < ActiveRecord::Migration
2
+ def change
3
+ add_column :mokio_data_files, :base_content_id,:integer
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ module Mokio
2
+ class BtrGenerator < Rails::Generators::NamedBase
3
+ # backend translations generator for mokio content
4
+ argument :name, type: :string
5
+ source_root File.expand_path("../templates/translations/", __FILE__)
6
+
7
+ def create_example_translation_file
8
+ template "backend_example.yml", File.join("config/locales/","en_backend_#{self.name.underscore}.yml")
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,58 @@
1
+ require 'rails/generators/rails/resource/resource_generator'
2
+ module Mokio
3
+ class ContentsGenerator < Rails::Generators::ResourceGenerator #:nodoc:
4
+
5
+ remove_hook_for :resource_controller
6
+ remove_class_option :actions
7
+ remove_hook_for :template_engine
8
+ remove_hook_for :orm
9
+ remove_hook_for :resource_route
10
+
11
+ source_root File.expand_path("../templates/contents/", __FILE__)
12
+
13
+ # generate model from mokio template
14
+ def create_model_files
15
+ template 'model.rb', File.join('app/models/mokio', class_path, "#{file_name}.rb")
16
+ end
17
+ # generate controller from mokio template
18
+ def create_controller_files
19
+ template "controller.rb", File.join('app/controllers/mokio', controller_class_path, "#{controller_file_name}_controller.rb")
20
+ end
21
+
22
+ def create_template_file
23
+ template "_form.html.slim", File.join("app/views/mokio/#{controller_file_name}/", controller_class_path,"_form.html.slim")
24
+ end
25
+
26
+ def create_override_view_file
27
+ template "_sidebar_btn.html.slim" ,File.join('app/views/mokio/overrides/','',"#{file_name}_sidebar_btn.html.slim")
28
+ end
29
+
30
+ def create_example_translation_file
31
+ template "../translations/backend_example.yml", File.join("config/locales/","en_backend_#{self.name.underscore}.yml")
32
+ end
33
+
34
+ def create_views_file
35
+ template "views_template.yml",File.join("config/",'',"#{file_name}_views_template.yml.example")
36
+ view_file = "#{Rails.root}/config/#{file_name}_views_template.yml.example"
37
+
38
+ if File.exists?(view_file)
39
+ File.open(view_file, 'rb') do |infile|
40
+ File.open("#{Rails.root}/config/views.yml", 'a') do |outfile|
41
+ puts "\n"
42
+ while buffer = infile.read(4096)
43
+ puts buffer
44
+ outfile << buffer
45
+ end
46
+ puts "\n"
47
+ end
48
+ end
49
+
50
+ routes_file = File.read("#{Rails.root}/config/routes.rb")
51
+ File.open("#{Rails.root}/config/routes.rb", "w") do |file|
52
+ file.puts routes_file.gsub(/Mokio::Engine.routes.draw do/, "Mokio::Engine.routes.draw do \n\nresources :#{controller_file_name} do \n member do\n get :update_menu_breadcrumps\n get :copy\n end \n end")
53
+ end
54
+
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,15 @@
1
+ = render :partial => "mokio/common/main_pic", locals: {f:f}
2
+ = f.input :lang_id, collection: Mokio::Lang.all.collect{|lang| [bt(lang.name), lang.id]}, include_blank: bt('all'), disabled: !obj.display_editable_field?('lang_id')
3
+ = f.input :active, :wrapper => :active_checkbox, disabled: !obj.display_editable_field?('active')
4
+ = f.input :home_page, :wrapper => :active_checkbox, disabled: !obj.display_editable_field?('home_page')
5
+ = f.input :title, disabled: !obj.display_editable_field?('title')
6
+ = f.input :subtitle, disabled: !obj.display_editable_field?('subtitle'), :as => :string
7
+ = f.input :intro, :wrapper => :ckeditor, :as => :ckeditor, :input_html => { :ckeditor => {:toolbar => 'Mini', :height => 150} }, disabled: !obj.display_editable_field?('intro')
8
+ = f.input :content, :wrapper => :ckeditor, :as => :ckeditor, :input_html => { :ckeditor => {:toolbar => 'Medium', :height => 400} }, disabled: !obj.display_editable_field?('content')
9
+ = f.input :display_from, :wrapper => :date, :as => :string, :input_html => { :class => "mask-date display_from", :value => (localize(f.object.display_from, :format => :datepicker) if f.object.display_from) }, disabled: !obj.display_editable_field?('display_from')
10
+ = f.input :display_to, :wrapper => :date, :as => :string, :input_html => { :class => "mask-date display_to", :value => (localize(f.object.display_to, :format => :datepicker) if f.object.display_to) }, disabled: !obj.display_editable_field?('display_to')
11
+ .row-fluid
12
+ label.form-label.span2
13
+ = t('menus.content_assoc')
14
+ .span10
15
+ =collection_select(:<%= file_name %>, :menu_ids,menu_select_grouped(Mokio::Menu.all.includes(:content_links).arrange(:order => :seq)),:id,:name, {disabled: lambda{|s| s.fake.present? },selected:obj.menus.map {|j| j.id} },:multiple => true)
@@ -0,0 +1 @@
1
+ =sidebar_btn Mokio::<%=class_name%>, "icomoon-icon-blogger"
@@ -0,0 +1,23 @@
1
+ <% if namespaced? -%>
2
+ require_dependency "<%= namespaced_path %>/application_controller"
3
+
4
+ <% end -%>
5
+ <% module_namespacing do -%>
6
+ module Mokio
7
+ class <%= controller_class_name %>Controller < Mokio::CommonController
8
+
9
+ private
10
+ #
11
+ # Never trust parameters from the scary internet, only allow the white list through.
12
+ #
13
+ def <%=file_name %>_params #:doc:
14
+ params.require(:<%=file_name %>).permit( extended_parameters, :title, :subtitle, :intro, :content, :article_type, :home_page, :tpl, :contact, :active, :seq, :lang_id,
15
+ :gallery_type, :display_from, :display_to, :main_pic, :tag_list, :menu_ids => [], :data_files_attributes => [:data_file, :main_pic, :id, :remove_data_file]
16
+ )
17
+ end
18
+
19
+
20
+
21
+ end
22
+ end
23
+ <% end -%>
@@ -0,0 +1,24 @@
1
+ <% module_namespacing do -%>
2
+ module Mokio
3
+ class <%= class_name %> < Mokio::Content
4
+
5
+ def columns_for_table
6
+ %w(title active type updated_at lang_id)
7
+ end
8
+
9
+ def editable
10
+ true
11
+ end
12
+
13
+ def deletable
14
+ true
15
+ end
16
+
17
+ # Generate url to edit content
18
+ def title_view
19
+ (ActionController::Base.helpers.link_to self[:title], ApplicationController.helpers.edit_url(self.class.base_class, self)).html_safe
20
+ end
21
+
22
+ end
23
+ end
24
+ <% end -%>
@@ -0,0 +1,6 @@
1
+ -
2
+ original_view: "mokio/layout/sidebar"
3
+ override_path: "mokio/overrides/<%=file_name%>_sidebar_btn"
4
+ html_element_id: ".article_nav"
5
+ position: "after"
6
+ type: "css"
@@ -139,4 +139,36 @@ Mokio.setup do |config|
139
139
  #
140
140
  # config.frontend_facebook_app_id = ''
141
141
 
142
+
143
+ # External parameters for mokio controllers
144
+ # Create a initializer in your rails app or rails plugin
145
+ #
146
+ # Mokio.setup do |config|
147
+ # config.mokio_gems_parameters[:plugin_name] = { :controller_name => [:param_1,:param_2,:param_3]}
148
+ # end
149
+ #
150
+
151
+ # mattr_accessor :mokio_gems_parameters
152
+ # self.mokio_gems_parameters = {}
153
+
154
+ #
155
+ # You can set where the user is to be redirected after logging in
156
+ #
157
+ # Default: mokio.root_path ("/backend")
158
+ #
159
+ # Examples
160
+ # 1. Path:
161
+ # config.after_sign_in_path = {:user => {:path => "/path_for_all_users"}}
162
+ #
163
+ # 2. Method (add method to Mokio::ApplicationController):
164
+ # config.after_sign_in_path = {:user => {:method => :method_for_all_users}} => returns: controller.method_for_all_users
165
+ #
166
+ # Path based on user role examples:
167
+ #
168
+ # config.after_sign_in_path = {:user => {:roles => {:admin =>{:path => "/path_for_admin"}}}}
169
+ # config.after_sign_in_path = {:user => {:roles => {:admin =>{:method => :method_name_for_admin}}}} => returns: controller.method_name_for_admin
170
+
171
+ #config.after_sign_in_path = {:user => {}}
172
+
173
+
142
174
  end
@@ -0,0 +1,57 @@
1
+ en:
2
+ mokio/<%=self.plural_name%>: Article
3
+ backend:
4
+ sidebars:
5
+ <%=self.singular_name%>: <%=self.plural_name%>
6
+ breadcrumbs:
7
+ add_<%=self.singular_name%>: Add element
8
+ <%=self.plural_name%>: Management
9
+ <%=self.plural_name%>_edit: Edit element
10
+ <%=self.plural_name%>_new: New element
11
+
12
+ <%=self.plural_name%>:
13
+ actions: Actions
14
+ active: Active
15
+ edit_title: Edit <%=self.singular_name%>
16
+ index_title: <%=self.singular_name%>
17
+ index_add_new: Add <%=self.singular_name%>
18
+ lang_id: Language
19
+ new_title: New <%=self.singular_name%>
20
+ position: Position
21
+ title: Title
22
+ module_position_ids: Position
23
+ updated_at: Updated at
24
+ edit_title: Edit <%=self.singular_name%>
25
+ created: " <%=self.singular_name%> <strong>'%{title}'</strong> has been created"
26
+ updated: " <%=self.singular_name%><strong>'%{title}'</strong> has been saved"
27
+ deleted: " <%=self.singular_name%> <strong>'%{title}'</strong> has been deleted"
28
+ update_active_true: " <%=self.singular_name%> <strong>'%{title}'</strong> is active"
29
+ update_active_false: " <%=self.singular_name%> <strong>'%{title}'</strong> is not active"
30
+ copy_title: Copy <%=self.singular_name%>
31
+ contents:
32
+ types:
33
+ Mokio::<%=self.class_name%>:
34
+
35
+
36
+ # ============================================ Activerecord ============================================================= #
37
+
38
+ activerecord:
39
+ errors:
40
+ models:
41
+ mokio/<%=self.singular_name%>:
42
+ attributes:
43
+ title:
44
+ blank: "Blank"
45
+ attributes:
46
+ mokio/<%=self.plural_name%>:
47
+ active: Active
48
+ intro: Introduction
49
+ content: Content
50
+ display_from: Displayed from
51
+ display_to: Displayed to
52
+ title: Title
53
+ type: Type
54
+ updated_at: Updated at
55
+ lang_id: Language
56
+ home_page: Home page
57
+ tag_list: Tags (sepparated by commas)
@@ -44,8 +44,7 @@ module Mokio
44
44
  # Array of content types
45
45
  #
46
46
  CONTENT_TYPES = ["Mokio::Article", "Mokio::Contact", "Mokio::PicGallery", "Mokio::MovGallery"]
47
-
48
-
47
+ BASE_CONTENT_TYPES = ["Mokio::BaseArticle", "Mokio::BaseContact", "Mokio::BasePicGallery", "Mokio::BaseMovGallery"]
49
48
 
50
49
  #
51
50
  # Default lang for backend
@@ -224,6 +223,18 @@ module Mokio
224
223
  mattr_accessor :mokio_log_level
225
224
  self.mokio_log_level = Logger::DEBUG
226
225
 
226
+ mattr_accessor :multi_lang_contents
227
+ self.multi_lang_contents = false
228
+
229
+ mattr_accessor :mokio_gems_parameters
230
+ self.mokio_gems_parameters = {}
231
+
232
+ mattr_accessor :after_sign_in_path
233
+ self.after_sign_in_path = {:user => {}}
234
+
235
+ mattr_accessor :after_sign_out_path
236
+ self.after_sign_out_path = {:user => {}}
237
+
227
238
  #
228
239
  # Default way to configure Mokio
229
240
  #
@@ -38,6 +38,11 @@ require "mokio/concerns/models/static_module"
38
38
  require "mokio/concerns/models/user"
39
39
  require "mokio/concerns/models/youtube"
40
40
  require "mokio/concerns/models/external_script"
41
+ require "mokio/concerns/models/base_content"
42
+ require "mokio/concerns/models/base_article"
43
+ require "mokio/concerns/models/base_pic_gallery"
44
+ require "mokio/concerns/models/base_mov_gallery"
45
+ require "mokio/concerns/models/base_contact"
41
46
 
42
47
  #
43
48
  # CommonController extensions
@@ -49,6 +54,7 @@ require "mokio/concerns/common/controller_translations"
49
54
  #
50
55
  # Controllers
51
56
  #
57
+ require "mokio/concerns/controllers/base_contents"
52
58
  require "mokio/concerns/controllers/application"
53
59
  require "mokio/concerns/controllers/articles"
54
60
  require "mokio/concerns/controllers/base"
@@ -66,4 +72,12 @@ require "mokio/concerns/controllers/users"
66
72
  require "mokio/concerns/controllers/youtubes"
67
73
  require "mokio/concerns/controllers/external_scripts"
68
74
  require "mokio/concerns/controllers/module_positions"
69
- require "mokio/concerns/controllers/langs"
75
+ require "mokio/concerns/controllers/langs"
76
+ require "mokio/concerns/controllers/base_contents"
77
+ require "mokio/concerns/controllers/base_articles"
78
+ require "mokio/concerns/controllers/base_pic_galleries"
79
+ require "mokio/concerns/controllers/base_mov_galleries"
80
+ require "mokio/concerns/controllers/base_contacts"
81
+ require "mokio/concerns/controllers/main_pics"
82
+
83
+
@@ -8,11 +8,13 @@ module Mokio
8
8
  extend ActiveSupport::Concern
9
9
 
10
10
  included do
11
+
11
12
  after_action :back_to_edit, only: [:create, :update]
12
13
  after_action :meta_info, only: [:create, :update]
14
+
13
15
  end
14
16
 
15
- private
17
+ private
16
18
  #
17
19
  # <b>after_action</b>, Info message about autocompleted meta tags
18
20
  #
@@ -45,9 +47,25 @@ module Mokio
45
47
  parameters = {}
46
48
  parameters[:gmap_attributes] = Mokio::Gmap.gmap_attributes if @obj_class.has_gmap_enabled?
47
49
  parameters[:meta_attributes] = Mokio::Meta.meta_attributes if @obj_class.has_meta_enabled?
50
+
48
51
  parameters
49
52
  end
50
53
 
54
+
55
+ def mokio_gems_parameters
56
+ parameters = []
57
+ c_name = self.controller_name.to_sym
58
+
59
+ Mokio.mokio_gems_parameters.each do |g,v|
60
+ v.each do |par,val|
61
+ if par == c_name || par == :contents && CONTENT_TYPES.include?("#{controller_path.classify.constantize.name}")
62
+ parameters += val
63
+ end
64
+ end
65
+ end
66
+ parameters
67
+ end
68
+
51
69
  #
52
70
  # Returns obj index url
53
71
  #
@@ -10,8 +10,8 @@ module Mokio
10
10
  included do
11
11
  before_filter :set_obj_class
12
12
  before_action :set_obj, only: [:update, :destroy, :edit, :show, :copy, :update_active]
13
-
14
- helper_method :obj # Method obj must be also a helper method for usage in views
13
+
14
+ helper_method :obj # Method obj must be also a helper method for usage in views
15
15
  end
16
16
 
17
17
  private
@@ -27,20 +27,49 @@ module Mokio
27
27
  devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation, roles: [])}
28
28
  end
29
29
 
30
- private
31
30
  #
32
31
  # Standard devise after_sign_out_path_for
33
32
  #
34
33
  def after_sign_out_path_for(resource_or_scope) #:doc:
35
- mokio.user_session_path
34
+ get_path_from_config(resource, Mokio.after_sign_out_path[resource_name], mokio.user_session_path)
36
35
  end
37
36
 
38
37
  #
39
38
  # Standard devise after_sign_in_path_for
40
39
  #
41
40
  def after_sign_in_path_for(resource) #:doc:
42
- mokio.root_path
41
+ get_path_from_config(resource, Mokio.after_sign_in_path[resource_name], mokio.root_path)
43
42
  end
43
+
44
+ private
45
+
46
+ def get_path_from_config(resource, config, default_path)
47
+ url = config.has_key?(:roles) ?
48
+ path_for_roles(config, resource)
49
+ :
50
+ get_path_from_hash(config, resource)
51
+
52
+ url ||=default_path
53
+ url
54
+ end
55
+
56
+ def path_for_roles(hash, resource)
57
+ url = nil
58
+ hash[:roles].each do |role_name, value|
59
+ if resource.roles.include? role_name
60
+ url = get_path_from_hash value, resource
61
+ break
62
+ end
63
+ end
64
+ url
65
+ end
66
+
67
+ def get_path_from_hash(hash, resource)
68
+ url = hash[:path].to_s if hash.has_key? :path
69
+ url = self.send(hash[:method]) if hash.has_key? :method
70
+ url
71
+ end
72
+
44
73
  end
45
74
  end
46
75
  end