adminpanel 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/adminpanel.gemspec +20 -18
  3. data/app/assets/javascripts/adminpanel/jquery.knob.js +652 -0
  4. data/app/assets/javascripts/adminpanel/realm.js +20 -18
  5. data/app/assets/javascripts/adminpanel/spinner.js.coffee +3 -3
  6. data/app/controllers/adminpanel/analytics_controller.rb +99 -53
  7. data/app/controllers/adminpanel/auths_controller.rb +1 -1
  8. data/app/controllers/adminpanel/sessions_controller.rb +26 -26
  9. data/app/controllers/concerns/adminpanel/facebook_actions.rb +2 -2
  10. data/app/helpers/adminpanel/adminpanel_form_builder.rb +257 -298
  11. data/app/helpers/adminpanel/analytics_helper.rb +46 -0
  12. data/app/helpers/adminpanel/application_helper.rb +57 -57
  13. data/app/helpers/adminpanel/breadcrumbs_helper.rb +13 -13
  14. data/app/helpers/adminpanel/sessions_helper.rb +20 -20
  15. data/app/helpers/adminpanel/shared_pages_helper.rb +41 -41
  16. data/app/models/adminpanel/gallery.rb +65 -63
  17. data/app/models/adminpanel/image.rb +5 -5
  18. data/app/models/adminpanel/section.rb +61 -53
  19. data/app/models/adminpanel/user.rb +1 -6
  20. data/app/models/concerns/adminpanel/facebook.rb +1 -1
  21. data/app/uploaders/adminpanel/gallery_uploader.rb +1 -1
  22. data/app/views/adminpanel/analytics/_widget_task_statistics.html.erb +63 -0
  23. data/app/views/adminpanel/analytics/fb.html.erb +98 -0
  24. data/app/views/adminpanel/analytics/index.html.erb +8 -8
  25. data/app/views/adminpanel/galleries/_galleries_table.html.erb +12 -12
  26. data/app/views/adminpanel/galleries/move_better.js.erb +1 -1
  27. data/app/views/adminpanel/galleries/move_worst.js.erb +1 -1
  28. data/app/views/adminpanel/sections/_sections_table.html.erb +7 -7
  29. data/app/views/adminpanel/sections/show.html.erb +25 -25
  30. data/app/views/adminpanel/sessions/new.html.erb +22 -22
  31. data/app/views/layouts/_shim.html.erb +1 -1
  32. data/app/views/layouts/_side_menu.html.erb +35 -35
  33. data/app/views/layouts/admin-login.html.erb +22 -22
  34. data/app/views/layouts/admin.html.erb +35 -35
  35. data/app/views/shared/_breadcrumb.html.erb +4 -4
  36. data/app/views/shared/_error_messages.html.erb +15 -15
  37. data/app/views/shared/_form_fields.html.erb +48 -47
  38. data/app/views/shared/_image_fields.html.erb +1 -1
  39. data/config/initializers/pluralization_es.rb +1 -1
  40. data/config/locales/es.yml +38 -2
  41. data/config/routes.rb +5 -4
  42. data/lib/adminpanel/version.rb +1 -1
  43. data/lib/generators/adminpanel/gallery/templates/gallery_migration.rb +5 -5
  44. data/lib/generators/adminpanel/gallery/templates/uploader.rb +1 -1
  45. data/lib/generators/adminpanel/initialize/initialize_generator.rb +54 -54
  46. data/lib/generators/adminpanel/initialize/templates/category_template.rb +1 -1
  47. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_categories_table.rb +5 -5
  48. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +57 -57
  49. data/lib/generators/adminpanel/initialize/templates/section_uploader.rb +1 -1
  50. data/lib/generators/adminpanel/migration/migration_generator.rb +44 -0
  51. data/lib/generators/adminpanel/migration/migration_generator_helper.rb +19 -0
  52. data/lib/generators/adminpanel/resource/resource_generator.rb +60 -245
  53. data/lib/generators/adminpanel/resource/resource_generator_helper.rb +189 -0
  54. data/lib/generators/adminpanel/resource/templates/{controller.rb → adminpanel_controller_template.rb} +2 -2
  55. data/lib/generators/adminpanel/resource/templates/{resource.rb → adminpanel_resource_template.rb} +0 -0
  56. data/test/dummy/app/models/adminpanel/categorization.rb +2 -2
  57. data/test/dummy/app/models/adminpanel/category.rb +3 -3
  58. data/test/dummy/app/models/adminpanel/department.rb +2 -2
  59. data/test/dummy/app/models/adminpanel/item.rb +3 -3
  60. data/test/dummy/app/models/adminpanel/mug.rb +14 -14
  61. data/test/dummy/app/models/adminpanel/product.rb +19 -19
  62. data/test/dummy/app/models/adminpanel/salesman.rb +15 -15
  63. data/test/dummy/app/uploader/adminpanel/photo_uploader.rb +1 -1
  64. data/test/dummy/app/views/layouts/application.html.erb +9 -9
  65. data/test/dummy/config/boot.rb +1 -1
  66. data/test/features/shared/{belongs_to_category_modal_test.rb → form/belongs_to_category_modal_test.rb} +0 -0
  67. data/test/features/shared/{belongs_to_non_category_modal_test.rb → form/belongs_to_non_category_modal_test.rb} +0 -0
  68. data/test/features/shared/{has_many_through_category_modal_test.rb → form/has_many_through_category_modal_test.rb} +0 -0
  69. data/test/features/shared/{has_many_through_non_category_modal_test.rb → form/has_many_through_non_category_modal_test.rb} +0 -0
  70. data/test/features/shared/{edit_test.rb → resource/edit_test.rb} +0 -0
  71. data/test/features/shared/{index_test.rb → resource/index_test.rb} +0 -0
  72. data/test/features/shared/{new_test.rb → resource/new_test.rb} +0 -0
  73. data/test/features/shared/{show_test.rb → resource/show_test.rb} +0 -0
  74. data/test/features/shared/{action_exclution_test.rb → ui/action_exclution_test.rb} +0 -0
  75. data/test/test_helper.rb +1 -1
  76. metadata +44 -32
  77. data/test/dummy/app/controllers/adminpanel/.gitkeep +0 -0
  78. data/test/dummy/app/models/.gitkeep +0 -0
@@ -0,0 +1,46 @@
1
+ module Adminpanel
2
+ module AnalyticsHelper
3
+ def first_fb_value(metric)
4
+ total = 0.0
5
+ # metric.first['values'].each do |value|
6
+ # if value['value'] != []
7
+ # total = total + value['value'].to_f
8
+ # end
9
+ # end
10
+ # return total
11
+ metric.first['values'].first['value'].to_f
12
+ end
13
+
14
+ def days_to_substract
15
+ if params[:insight] == 'day'
16
+ 1
17
+ elsif params[:insight] == 'week'
18
+ 7
19
+ elsif params[:insight] == 'days_28'
20
+ 28
21
+ else
22
+ 0
23
+ end
24
+ end
25
+
26
+ def divide_metrics(metric_1, metric_2)
27
+ debugger
28
+ if first_fb_value(metric_2) != 0.0
29
+ return first_fb_value(metric_1) / first_fb_value(metric_2)
30
+ else
31
+ return 0
32
+ end
33
+ end
34
+
35
+ def insight
36
+ return 'day' if !params[:insight].present?
37
+ return 'day' if params[:insight] == 'day'
38
+ return 'week' if params[:insight] == 'week'
39
+ return 'month' if params[:insight] == 'days_28'
40
+ end
41
+
42
+ def metric(metric)
43
+ metric.first['name']
44
+ end
45
+ end
46
+ end
@@ -1,59 +1,59 @@
1
1
  module Adminpanel
2
- module ApplicationHelper
3
- include SessionsHelper
4
- include BreadcrumbsHelper
5
- include SharedPagesHelper
6
-
7
- def adminpanel_form_for(name, *args, &block)
8
- options = args.extract_options!
9
- options.reverse_merge! :builder => Adminpanel::AdminpanelFormBuilder, :html => { :class => "form-horizontal" }
10
-
11
- form_for(name, *(args << options), &block)
12
- end
13
-
14
- def full_title(page_title)
15
- base_title = t("Panel title")
16
- if page_title.empty?
17
- base_title
18
- else
19
- "#{page_title} | #{base_title}"
20
- end
21
- end
22
-
23
- def is_current_section?(display_name)
24
- display_name == params[:controller].classify.constantize.display_name ? 'active' : nil
25
- end
26
-
27
- def section_is_login(section_name)
28
- section_name.downcase == 'login'
29
- end
30
-
31
- def link_to_add_fields(name, f, association)
32
- new_object = f.object.send(association).klass.new
33
- id = new_object.object_id
34
- fields = f.fields_for(association, new_object, :child_index => id) do |builder|
35
- render("shared/image_fields", :f => builder)
36
- end
37
- link_to(content_tag(:div, content_tag(:button,
38
- content_tag(:h6, name, :id => "add-image-button"),
39
- :class => "btn btn-success btn-mini"), :class => "mws-form-row"),
40
- '#', :class => "add_fields", :data => {:id => id, :fields => fields.gsub("\n", "")})
41
- end
42
-
43
- def route_symbol(model_name)
44
- model_name.pluralize.downcase
45
- end
46
-
47
- def symbol_class(symbol)
48
- "adminpanel/#{symbol.to_s}".classify.constantize
49
- end
50
-
51
- def main_root_path
52
- if main_app.respond_to?(root_path)
53
- main_app.root_path
54
- else
55
- "/"
56
- end
57
- end
58
- end
2
+ module ApplicationHelper
3
+ include SessionsHelper
4
+ include BreadcrumbsHelper
5
+ include SharedPagesHelper
6
+
7
+ def adminpanel_form_for(name, *args, &block)
8
+ options = args.extract_options!
9
+ options.reverse_merge! :builder => Adminpanel::AdminpanelFormBuilder, :html => { :class => "form-horizontal" }
10
+
11
+ form_for(name, *(args << options), &block)
12
+ end
13
+
14
+ def full_title(page_title)
15
+ base_title = t("Panel title")
16
+ if page_title.empty?
17
+ base_title
18
+ else
19
+ "#{page_title} | #{base_title}"
20
+ end
21
+ end
22
+
23
+ def is_current_section?(display_name)
24
+ display_name == params[:controller].classify.constantize.display_name ? 'active' : nil
25
+ end
26
+
27
+ def section_is_login(section_name)
28
+ section_name.downcase == 'login'
29
+ end
30
+
31
+ def link_to_add_fields(name, f, association)
32
+ new_object = f.object.send(association).klass.new
33
+ id = new_object.object_id
34
+ fields = f.fields_for(association, new_object, :child_index => id) do |builder|
35
+ render("shared/image_fields", :f => builder)
36
+ end
37
+ link_to(content_tag(:div, content_tag(:button,
38
+ content_tag(:h6, name, :id => "add-image-button"),
39
+ :class => "btn btn-success btn-mini"), :class => "mws-form-row"),
40
+ '#', :class => "add_fields", :data => {:id => id, :fields => fields.gsub("\n", "")})
41
+ end
42
+
43
+ def route_symbol(model_name)
44
+ model_name.pluralize.downcase
45
+ end
46
+
47
+ def symbol_class(symbol)
48
+ "adminpanel/#{symbol.to_s}".classify.constantize
49
+ end
50
+
51
+ def main_root_path
52
+ if main_app.respond_to?(root_path)
53
+ main_app.root_path
54
+ else
55
+ "/"
56
+ end
57
+ end
58
+ end
59
59
  end
@@ -1,16 +1,16 @@
1
1
  module Adminpanel
2
- module BreadcrumbsHelper
3
-
4
- def initialize_breadcrumb
5
- @breadcrumb ||= [:title => 'Inicio', :url => root_url]
6
- end
2
+ module BreadcrumbsHelper
7
3
 
8
- def breadcrumb_add(title, url)
9
- initialize_breadcrumb << { :title => title, :url => url }
10
- end
4
+ def initialize_breadcrumb
5
+ @breadcrumb ||= [:title => 'Inicio', :url => root_url]
6
+ end
11
7
 
12
- def render_breadcrumb(divider)
13
- render :partial => 'shared/breadcrumb', :locals => { :nav => initialize_breadcrumb, :divider => divider }
14
- end
15
- end
16
- end
8
+ def breadcrumb_add(title, url)
9
+ initialize_breadcrumb << { :title => title, :url => url }
10
+ end
11
+
12
+ def render_breadcrumb(divider)
13
+ render :partial => 'shared/breadcrumb', :locals => { :nav => initialize_breadcrumb, :divider => divider }
14
+ end
15
+ end
16
+ end
@@ -1,26 +1,26 @@
1
1
  module Adminpanel
2
- module SessionsHelper
2
+ module SessionsHelper
3
3
 
4
- def sign_in(user)
5
- cookies.permanent[:remember_token] = user.remember_token
6
- self.current_user = user
7
- end
4
+ def sign_in(user)
5
+ cookies.permanent[:remember_token] = user.remember_token
6
+ self.current_user = user
7
+ end
8
8
 
9
- def signed_in?
10
- !current_user.nil?
11
- end
9
+ def signed_in?
10
+ !current_user.nil?
11
+ end
12
12
 
13
- def current_user=(user)
14
- @current_user = user
15
- end
13
+ def current_user=(user)
14
+ @current_user = user
15
+ end
16
16
 
17
- def current_user
18
- @current_user ||= User.find_by_remember_token(cookies[:remember_token])
19
- end
17
+ def current_user
18
+ @current_user ||= User.find_by_remember_token(cookies[:remember_token])
19
+ end
20
20
 
21
- def sign_out
22
- self.current_user = nil
23
- cookies.delete(:remember_token)
24
- end
25
- end
26
- end
21
+ def sign_out
22
+ self.current_user = nil
23
+ cookies.delete(:remember_token)
24
+ end
25
+ end
26
+ end
@@ -1,53 +1,53 @@
1
1
  module Adminpanel
2
- module SharedPagesHelper
3
- def parent_object_name(resource, parent_model)
4
- @model.reflect_on_all_associations.each do |association|
2
+ module SharedPagesHelper
3
+ def parent_object_name(resource, parent_model)
4
+ @model.reflect_on_all_associations.each do |association|
5
5
  if association.klass.to_s == parent_model
6
- if !resource.send(association.name).nil?
7
- return resource.send(association.name).name
8
- else
9
- return "N/A #{association.klass.to_s}"
10
- end
6
+ if !resource.send(association.name).nil?
7
+ return resource.send(association.name).name
8
+ else
9
+ return "N/A #{association.klass.to_s}"
10
+ end
11
11
  end
12
12
  end
13
- end
13
+ end
14
14
 
15
- def pluralize_model(class_name)
16
- "#{demodulize_class(class_name).pluralize}"
17
- end
15
+ def pluralize_model(class_name)
16
+ "#{demodulize_class(class_name).pluralize}"
17
+ end
18
18
 
19
- def relationship_ids(class_string)
20
- "#{demodulize_class(class_string)}_ids"
21
- end
19
+ def relationship_ids(class_string)
20
+ "#{demodulize_class(class_string)}_ids"
21
+ end
22
22
 
23
- def class_name_downcase(object)
24
- demodulize_class(object.class)
25
- end
23
+ def class_name_downcase(object)
24
+ demodulize_class(object.class)
25
+ end
26
26
 
27
- def demodulize_class(class_name)
28
- class_name.to_s.demodulize.downcase
29
- end
27
+ def demodulize_class(class_name)
28
+ class_name.to_s.demodulize.downcase
29
+ end
30
30
 
31
- def active_tab(index)
32
- if index == 0
33
- return "active"
34
- else
35
- return ""
36
- end
37
- end
31
+ def active_tab(index)
32
+ if index == 0
33
+ return "active"
34
+ else
35
+ return ""
36
+ end
37
+ end
38
38
 
39
- def get_oauth_link(resource)
40
- Koala::Facebook::OAuth.new(
41
- Adminpanel.fb_app_id,
42
- Adminpanel.fb_app_secret,
43
- url_for({
44
- controller: params[:controller],
45
- action: 'fb_choose_page',
46
- id: resource,
47
- host: request.host
48
- })
49
- ).url_for_oauth_code
50
- end
39
+ def get_oauth_link(resource)
40
+ Koala::Facebook::OAuth.new(
41
+ Adminpanel.fb_app_id,
42
+ Adminpanel.fb_app_secret,
43
+ url_for({
44
+ controller: params[:controller],
45
+ action: 'fb_choose_page',
46
+ id: resource,
47
+ host: request.host
48
+ })
49
+ ).url_for_oauth_code
50
+ end
51
51
 
52
- end
52
+ end
53
53
  end
@@ -1,80 +1,82 @@
1
1
  require "carrierwave"
2
2
  require "carrierwave/orm/activerecord"
3
3
  module Adminpanel
4
- class Gallery < ActiveRecord::Base
5
- include Adminpanel::Base
4
+ class Gallery < ActiveRecord::Base
5
+ include Adminpanel::Base
6
6
 
7
- mount_uploader :file, Adminpanel::GalleryUploader
8
- validates_presence_of :file
7
+ mount_uploader :file, Adminpanel::GalleryUploader
8
+ validates_presence_of :file
9
9
 
10
- include Adminpanel::Galleryzation
10
+ include Adminpanel::Galleryzation
11
11
 
12
- def move_to_better_position
13
- if self.position > 1
14
- conflicting_gallery = Gallery.find_by_position(position - 1)
15
- self.update_attribute(:position, self.position - 1)
16
- conflicting_gallery.update_attribute(
17
- :position, conflicting_gallery.position + 1
18
- )
19
- true
20
- else
21
- false
22
- end
23
- end
12
+ def move_to_better_position
13
+ if self.position > 1
14
+ conflicting_gallery = Gallery.find_by_position(position - 1)
15
+ self.update_attribute(:position, self.position - 1)
16
+ conflicting_gallery.update_attribute(
17
+ :position, conflicting_gallery.position + 1
18
+ )
19
+ true
20
+ else
21
+ false
22
+ end
23
+ end
24
24
 
25
- def move_to_worst_position
26
- records = self.class.count
27
- if self.position < records
28
- conflicting_gallery = Gallery.find_by_position(position + 1)
29
- update_attribute(:position, self.position + 1)
30
- conflicting_gallery.update_attribute(
31
- :position, conflicting_gallery.position - 1
32
- )
33
- true
34
- else
35
- false
36
- end
37
- end
25
+ def move_to_worst_position
26
+ records = self.class.count
27
+ if self.position < records
28
+ conflicting_gallery = Gallery.find_by_position(position + 1)
29
+ update_attribute(:position, self.position + 1)
30
+ conflicting_gallery.update_attribute(
31
+ :position, conflicting_gallery.position - 1
32
+ )
33
+ true
34
+ else
35
+ false
36
+ end
37
+ end
38
38
 
39
39
 
40
- def self.form_attributes
41
- [
42
- {'file' => {
43
- 'type' => 'file_field',
44
- 'name' => 'Archivo' }
45
- }
46
- ]
47
- end
40
+ def self.form_attributes
41
+ [
42
+ {
43
+ 'file' => {
44
+ 'type' => 'file_field',
45
+ 'label' => I18n.t('model.attributes.file'),
46
+ }
47
+ }
48
+ ]
49
+ end
48
50
 
49
- def self.display_name
50
- I18n.t('model.Gallery')
51
- end
51
+ def self.display_name
52
+ I18n.t('model.Gallery')
53
+ end
52
54
 
53
- def self.icon
54
- 'picture-o'
55
- end
55
+ def self.icon
56
+ 'picture-o'
57
+ end
56
58
 
57
- def name
58
- File.basename(file.path)
59
- end
59
+ def name
60
+ File.basename(file.path)
61
+ end
60
62
 
61
- private
62
- def rearrange_positions
63
- unarranged_galleries = Gallery.where("position > ?", self.position)
64
- unarranged_galleries.each do |gallery|
65
- gallery.update_attribute(:position, gallery.position - 1)
66
- end
63
+ private
64
+ def rearrange_positions
65
+ unarranged_galleries = Gallery.where("position > ?", self.position)
66
+ unarranged_galleries.each do |gallery|
67
+ gallery.update_attribute(:position, gallery.position - 1)
68
+ end
67
69
 
68
- end
70
+ end
69
71
 
70
- def set_position
71
- last_record = Gallery.last
72
- if last_record.nil?
73
- self.position = 1
74
- else
75
- self.position = last_record.position + 1
76
- end
77
- end
72
+ def set_position
73
+ last_record = Gallery.last
74
+ if last_record.nil?
75
+ self.position = 1
76
+ else
77
+ self.position = last_record.position + 1
78
+ end
79
+ end
78
80
 
79
- end
81
+ end
80
82
  end