dhatu 0.1.19 → 0.1.20
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 +4 -4
- data/app/controllers/dhatu/blog_posts_controller.rb +81 -14
- data/app/controllers/dhatu/bookings_controller.rb +51 -5
- data/app/controllers/dhatu/branches_controller.rb +42 -8
- data/app/controllers/dhatu/categories_controller.rb +86 -47
- data/app/controllers/dhatu/events_controller.rb +79 -9
- data/app/controllers/dhatu/meta_tags_controller.rb +96 -0
- data/app/controllers/dhatu/offers_controller.rb +83 -10
- data/app/controllers/dhatu/pages_controller.rb +130 -0
- data/app/controllers/dhatu/prices_controller.rb +78 -12
- data/app/controllers/dhatu/projects_controller.rb +78 -22
- data/app/controllers/dhatu/promotion_enquiries_controller.rb +69 -7
- data/app/controllers/dhatu/promotions_controller.rb +46 -2
- data/app/controllers/dhatu/resource_controller.rb +4 -0
- data/app/controllers/dhatu/sections_controller.rb +41 -8
- data/app/controllers/dhatu/services_controller.rb +78 -18
- data/app/controllers/dhatu/team_members_controller.rb +41 -8
- data/app/controllers/dhatu/testimonials_controller.rb +41 -9
- data/app/models/dhatu/blog_post.rb +6 -2
- data/app/models/dhatu/category.rb +3 -3
- data/app/models/dhatu/event.rb +4 -0
- data/app/models/dhatu/meta_tag.rb +48 -0
- data/app/models/dhatu/offer.rb +4 -0
- data/app/models/dhatu/page.rb +50 -0
- data/app/models/dhatu/project.rb +7 -3
- data/app/models/dhatu/promotion.rb +1 -0
- data/app/models/dhatu/section.rb +8 -12
- data/app/models/dhatu/service.rb +7 -3
- data/app/models/image/og_image.rb +3 -0
- data/app/uploaders/og_image_uploader.rb +15 -0
- data/app/views/dhatu/blog_posts/_form.html.erb +1 -1
- data/app/views/dhatu/blog_posts/_index.html.erb +1 -1
- data/app/views/dhatu/blog_posts/_row.html.erb +1 -1
- data/app/views/dhatu/blog_posts/_show.html.erb +1 -1
- data/app/views/dhatu/bookings/_index.html.erb +7 -8
- data/app/views/dhatu/bookings/_row.html.erb +11 -7
- data/app/views/dhatu/bookings/index.html.erb +20 -12
- data/app/views/dhatu/branches/_index.html.erb +8 -12
- data/app/views/dhatu/branches/_show.html.erb +75 -69
- data/app/views/dhatu/branches/index.html.erb +13 -8
- data/app/views/dhatu/categories/_category_types.html.erb +27 -0
- data/app/views/dhatu/categories/_form.html.erb +2 -2
- data/app/views/dhatu/categories/_index.html.erb +114 -89
- data/app/views/dhatu/categories/_index_list.html.erb +118 -0
- data/app/views/dhatu/categories/_row.html.erb +27 -31
- data/app/views/dhatu/categories/_row_list.html.erb +34 -0
- data/app/views/dhatu/categories/_show.html.erb +101 -74
- data/app/views/dhatu/categories/choose_category_type.html.erb +20 -0
- data/app/views/dhatu/categories/index.html.erb +1 -19
- data/app/views/dhatu/dashboard/_index.html.erb +53 -42
- data/app/views/dhatu/events/_index.html.erb +1 -1
- data/app/views/dhatu/events/_row.html.erb +1 -1
- data/app/views/dhatu/events/_show.html.erb +99 -75
- data/app/views/dhatu/events/index.html.erb +14 -9
- data/app/views/dhatu/meta_tags/_form.html.erb +48 -0
- data/app/views/dhatu/meta_tags/_index.html.erb +59 -0
- data/app/views/dhatu/meta_tags/_row.html.erb +32 -0
- data/app/views/dhatu/meta_tags/create.js.erb +29 -0
- data/app/views/dhatu/offers/_index.html.erb +8 -8
- data/app/views/dhatu/offers/_row.html.erb +1 -1
- data/app/views/dhatu/offers/_show.html.erb +85 -81
- data/app/views/dhatu/offers/index.html.erb +14 -8
- data/app/views/dhatu/pages/_form.html.erb +44 -0
- data/app/views/dhatu/pages/_index.html.erb +57 -0
- data/app/views/dhatu/pages/_row.html.erb +47 -0
- data/app/views/dhatu/pages/_show.html.erb +99 -0
- data/app/views/dhatu/pages/index.html.erb +59 -0
- data/app/views/dhatu/pages/show.html.erb +12 -0
- data/app/views/dhatu/prices/_index.html.erb +6 -6
- data/app/views/dhatu/prices/_row.html.erb +3 -2
- data/app/views/dhatu/prices/_show.html.erb +34 -45
- data/app/views/dhatu/prices/index.html.erb +14 -25
- data/app/views/dhatu/projects/_form.html.erb +15 -16
- data/app/views/dhatu/projects/_index.html.erb +6 -7
- data/app/views/dhatu/projects/_row.html.erb +4 -4
- data/app/views/dhatu/projects/_show.html.erb +108 -97
- data/app/views/dhatu/projects/index.html.erb +13 -19
- data/app/views/dhatu/projects/show.html.erb +12 -0
- data/app/views/dhatu/promotion_attributes/_index.html.erb +1 -7
- data/app/views/dhatu/promotion_attributes/_row.html.erb +1 -4
- data/app/views/dhatu/promotion_enquiries/_index.html.erb +11 -11
- data/app/views/dhatu/promotion_enquiries/_row.html.erb +7 -5
- data/app/views/dhatu/promotion_enquiries/_show.html.erb +35 -43
- data/app/views/dhatu/promotion_enquiries/index.html.erb +20 -12
- data/app/views/dhatu/promotions/_index.html.erb +13 -15
- data/app/views/dhatu/promotions/_row.html.erb +10 -9
- data/app/views/dhatu/promotions/_show.html.erb +190 -93
- data/app/views/dhatu/promotions/index.html.erb +0 -8
- data/app/views/dhatu/{section_types → section_types1}/_form.html.erb +0 -0
- data/app/views/dhatu/{section_types → section_types1}/_index.html.erb +0 -0
- data/app/views/dhatu/{section_types → section_types1}/_row.html.erb +0 -0
- data/app/views/dhatu/{section_types → section_types1}/_show.html.erb +0 -0
- data/app/views/dhatu/{section_types → section_types1}/index.html.erb +0 -0
- data/app/views/dhatu/sections/_form.html.erb +116 -11
- data/app/views/dhatu/sections/_index.html.erb +6 -3
- data/app/views/dhatu/sections/_row.html.erb +5 -2
- data/app/views/dhatu/sections/_show.html.erb +168 -132
- data/app/views/dhatu/sections/index.html.erb +10 -2
- data/app/views/dhatu/services/_form.html.erb +16 -17
- data/app/views/dhatu/services/_index.html.erb +6 -7
- data/app/views/dhatu/services/_row.html.erb +4 -4
- data/app/views/dhatu/services/_show.html.erb +107 -96
- data/app/views/dhatu/services/index.html.erb +13 -19
- data/app/views/dhatu/team_members/_index.html.erb +5 -6
- data/app/views/dhatu/team_members/_row.html.erb +3 -3
- data/app/views/dhatu/team_members/_show.html.erb +70 -58
- data/app/views/dhatu/team_members/index.html.erb +13 -8
- data/app/views/dhatu/testimonials/_index.html.erb +3 -6
- data/app/views/dhatu/testimonials/_row.html.erb +2 -3
- data/app/views/dhatu/testimonials/_show.html.erb +63 -93
- data/app/views/dhatu/testimonials/index.html.erb +13 -8
- data/app/views/layouts/kuppayam/_sidebar.html.erb +63 -48
- data/app/views/usman/dashboard/_super_admin_index.html.erb +22 -0
- data/config/routes.rb +12 -1
- data/db/data/dummy/services.csv +1 -1
- data/db/migrate/20180101093435_create_pages.rb +14 -0
- data/db/migrate/20180101093436_create_meta_tags.rb +19 -0
- data/db/migrate/20180101093437_add_page_id_to_sections.rb +5 -0
- data/db/migrate/20180101093438_add_priority_to_pages_and_sections.rb +6 -0
- data/db/migrate/20180101093439_add_a_ton_of_boolean_fields_to_sections.rb +34 -0
- data/db/migrate/20180101093440_add_code_to_sections.rb +19 -0
- data/db/migrate/20180101093441_rename_meta_description_all_over.rb +7 -0
- data/db/migrate/20180101093442_add_name_to_sections.rb +19 -0
- data/lib/dhatu/version.rb +1 -1
- metadata +43 -14
- data/db/migrate/20171203114529_add_meta_description_to_services.rb +0 -7
|
@@ -21,6 +21,10 @@ module Dhatu
|
|
|
21
21
|
def configure_filter_param_mapping
|
|
22
22
|
@filter_param_mapping = default_filter_param_mapping
|
|
23
23
|
@filter_param_mapping[:promotion] = :pr
|
|
24
|
+
@filter_param_mapping[:category] = :ct
|
|
25
|
+
@filter_param_mapping[:category_type] = :ctype
|
|
26
|
+
@filter_param_mapping[:feature] = :ft
|
|
27
|
+
@filter_param_mapping[:featured] = :featured
|
|
24
28
|
end
|
|
25
29
|
|
|
26
30
|
end
|
|
@@ -4,12 +4,11 @@ module Dhatu
|
|
|
4
4
|
private
|
|
5
5
|
|
|
6
6
|
def permitted_params
|
|
7
|
-
params.require("dhatu/section").permit(:
|
|
7
|
+
params.require("dhatu/section").permit(:page_id, :name, :title, :sub_title, :code, :short_description, :long_description, :button_one_text, :button_two_text, :button_one_link, :button_two_link, :category_id, :priority, :enable_title, :enable_sub_title, :enable_short_description, :enable_long_description, :enable_button_one, :enable_button_two, :enable_cover_image, :enable_gallery_images)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def get_collections
|
|
11
11
|
@relation = Dhatu::Section.includes(:cover_image).where("")
|
|
12
|
-
params[:st] = "published" if params[:st].nil?
|
|
13
12
|
parse_filters
|
|
14
13
|
apply_filters
|
|
15
14
|
@sections = @r_objects = @relation.page(@current_page).per(@per_page)
|
|
@@ -20,7 +19,7 @@ module Dhatu
|
|
|
20
19
|
@relation = @relation.search(@query) if @query
|
|
21
20
|
@relation = @relation.status(@status) if @status
|
|
22
21
|
|
|
23
|
-
@order_by = "created_at desc" unless @order_by
|
|
22
|
+
@order_by = "priority ASC, created_at desc" unless @order_by
|
|
24
23
|
@relation = @relation.order(@order_by)
|
|
25
24
|
end
|
|
26
25
|
|
|
@@ -42,7 +41,7 @@ module Dhatu
|
|
|
42
41
|
@filter_ui_settings = {
|
|
43
42
|
status: {
|
|
44
43
|
object_filter: false,
|
|
45
|
-
select_label: "
|
|
44
|
+
select_label: "Filter by Status",
|
|
46
45
|
display_hash: Dhatu::Section::STATUS,
|
|
47
46
|
current_value: @status,
|
|
48
47
|
values: Dhatu::Section::STATUS_REVERSE,
|
|
@@ -57,12 +56,46 @@ module Dhatu
|
|
|
57
56
|
|
|
58
57
|
def resource_controller_configuration
|
|
59
58
|
{
|
|
60
|
-
page_title: "Sections",
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
page_title: "Manage Sections",
|
|
60
|
+
current_nav: "dhatu/pages",
|
|
61
|
+
|
|
62
|
+
# Resource Names
|
|
63
|
+
class: Dhatu::Section,
|
|
63
64
|
collection_name: :sections,
|
|
64
65
|
item_name: :section,
|
|
65
|
-
|
|
66
|
+
|
|
67
|
+
# Conditions
|
|
68
|
+
get_collections_after_save_resource: false,
|
|
69
|
+
show_modal_after_create: true,
|
|
70
|
+
show_modal_after_update: true,
|
|
71
|
+
|
|
72
|
+
# Model Size can be large or generic
|
|
73
|
+
form_model_size: :large,
|
|
74
|
+
show_model_size: :large,
|
|
75
|
+
|
|
76
|
+
# Layout can be table or feed
|
|
77
|
+
# table uses html tables and feed uses div based boxes
|
|
78
|
+
layout: :table,
|
|
79
|
+
|
|
80
|
+
# "/kuppayam/workflows/default"
|
|
81
|
+
#
|
|
82
|
+
# Default partial opens show and form partial according to the model_size configuration
|
|
83
|
+
# It also respect the configuration layout and refresh the page element on both cases - i.e layout is table or feed
|
|
84
|
+
|
|
85
|
+
# "/kuppayam/workflows/peacock"
|
|
86
|
+
# "/kuppayam/workflows/parrot"
|
|
87
|
+
#
|
|
88
|
+
# Peacock & Parrot are old ways of doing things and it respects certail configurations
|
|
89
|
+
# Peacock opens show and form partials in large popup where as Parrot opens it in small
|
|
90
|
+
# Both Peacock and Parrot expect table based layout and will reload a single row after create / update
|
|
91
|
+
|
|
92
|
+
# Rendering Paths
|
|
93
|
+
view_path: "dhatu/sections",
|
|
94
|
+
js_view_path: "/kuppayam/workflows/default",
|
|
95
|
+
|
|
96
|
+
# Additional Configurations
|
|
97
|
+
load_wysihtml5: true,
|
|
98
|
+
tagsinput: false
|
|
66
99
|
}
|
|
67
100
|
end
|
|
68
101
|
|
|
@@ -4,28 +4,41 @@ module Dhatu
|
|
|
4
4
|
private
|
|
5
5
|
|
|
6
6
|
def permitted_params
|
|
7
|
-
params.require("dhatu/service").permit(:name, :
|
|
7
|
+
params.require("dhatu/service").permit(:name, :short_description, :permalink, :description, :price, :duration, :category_id, :priority)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
-
def
|
|
10
|
+
def load_nested_categories
|
|
11
11
|
category_ids = Dhatu::Service.distinct.pluck(:category_id)
|
|
12
12
|
@categories = Dhatu::Category.where(id: category_ids).to_a
|
|
13
13
|
@categories.unshift(Dhatu::Category.new(id: -1, name: "All"))
|
|
14
|
+
end
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
#
|
|
17
|
-
|
|
16
|
+
def get_collections
|
|
17
|
+
# Checkout the method get_category_filters before using this method
|
|
18
|
+
# load_nested_categories
|
|
19
|
+
|
|
20
|
+
@relation = Dhatu::Service.includes(:cover_image, :category).where("")
|
|
21
|
+
|
|
18
22
|
parse_filters
|
|
19
23
|
apply_filters
|
|
24
|
+
|
|
20
25
|
@services = @r_objects = @relation.page(@current_page).per(@per_page)
|
|
21
26
|
return true
|
|
22
27
|
end
|
|
23
28
|
|
|
24
29
|
def apply_filters
|
|
25
|
-
@category
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
@
|
|
30
|
+
if @category.is_a?(String)
|
|
31
|
+
@category = Dhatu::Category.new(id: -2, name: "IS NOT SET")
|
|
32
|
+
elsif @category.blank?
|
|
33
|
+
@category = Dhatu::Category.new(id: -1, name: "All")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
if @category
|
|
37
|
+
if @category.persisted?
|
|
38
|
+
@relation = @relation.where("category_id = ?", @category.id)
|
|
39
|
+
elsif @category.id == -2
|
|
40
|
+
@relation = @relation.where("category_id IS NULL")
|
|
41
|
+
end
|
|
29
42
|
end
|
|
30
43
|
|
|
31
44
|
@relation = @relation.search(@query) if @query
|
|
@@ -41,8 +54,9 @@ module Dhatu
|
|
|
41
54
|
],
|
|
42
55
|
|
|
43
56
|
boolean_filters: [],
|
|
44
|
-
|
|
45
|
-
|
|
57
|
+
reference_filters: [
|
|
58
|
+
{ filter_name: :category, filter_class: Dhatu::Category },
|
|
59
|
+
],
|
|
46
60
|
variable_filters: [],
|
|
47
61
|
}
|
|
48
62
|
end
|
|
@@ -51,27 +65,73 @@ module Dhatu
|
|
|
51
65
|
@filter_ui_settings = {
|
|
52
66
|
status: {
|
|
53
67
|
object_filter: false,
|
|
54
|
-
select_label: "
|
|
55
|
-
display_hash: Dhatu::Service::
|
|
68
|
+
select_label: "Filter by Status",
|
|
69
|
+
display_hash: Dhatu::Service::STATUS_REVERSE,
|
|
56
70
|
current_value: @status,
|
|
57
|
-
values: Dhatu::Service::
|
|
71
|
+
values: Dhatu::Service::STATUS,
|
|
58
72
|
current_filters: @filters,
|
|
59
73
|
filters_to_remove: [],
|
|
60
74
|
filters_to_add: {},
|
|
61
75
|
url_method_name: 'services_url',
|
|
62
76
|
show_all_filter_on_top: true
|
|
77
|
+
},
|
|
78
|
+
category: {
|
|
79
|
+
object_filter: true,
|
|
80
|
+
select_label: 'Select Category Type',
|
|
81
|
+
current_value: @category,
|
|
82
|
+
values: Dhatu::Category.filter_by_category_type("Dhatu::Service").published.order("priority ASC, name ASC").all,
|
|
83
|
+
current_filters: @filters,
|
|
84
|
+
url_method_name: 'services_url',
|
|
85
|
+
filters_to_remove: [],
|
|
86
|
+
filters_to_add: {},
|
|
87
|
+
show_null_filter_on_top: true,
|
|
88
|
+
show_all_filter_on_top: true
|
|
63
89
|
}
|
|
64
90
|
}
|
|
65
91
|
end
|
|
66
92
|
|
|
67
93
|
def resource_controller_configuration
|
|
68
94
|
{
|
|
69
|
-
page_title: "Services",
|
|
70
|
-
|
|
71
|
-
|
|
95
|
+
page_title: "Manage Services",
|
|
96
|
+
current_nav: "dhatu/services",
|
|
97
|
+
|
|
98
|
+
# Resource Names
|
|
99
|
+
class: Dhatu::Service,
|
|
72
100
|
collection_name: :services,
|
|
73
101
|
item_name: :service,
|
|
74
|
-
|
|
102
|
+
|
|
103
|
+
# Conditions
|
|
104
|
+
get_collections_after_save_resource: false,
|
|
105
|
+
show_modal_after_create: true,
|
|
106
|
+
show_modal_after_update: true,
|
|
107
|
+
|
|
108
|
+
# Model Size can be large or generic
|
|
109
|
+
form_model_size: :large,
|
|
110
|
+
show_model_size: :large,
|
|
111
|
+
|
|
112
|
+
# Layout can be table or feed
|
|
113
|
+
# table uses html tables and feed uses div based boxes
|
|
114
|
+
layout: :table,
|
|
115
|
+
|
|
116
|
+
# "/kuppayam/workflows/default"
|
|
117
|
+
#
|
|
118
|
+
# Default partial opens show and form partial according to the model_size configuration
|
|
119
|
+
# It also respect the configuration layout and refresh the page element on both cases - i.e layout is table or feed
|
|
120
|
+
|
|
121
|
+
# "/kuppayam/workflows/peacock"
|
|
122
|
+
# "/kuppayam/workflows/parrot"
|
|
123
|
+
#
|
|
124
|
+
# Peacock & Parrot are old ways of doing things and it respects certail configurations
|
|
125
|
+
# Peacock opens show and form partials in large popup where as Parrot opens it in small
|
|
126
|
+
# Both Peacock and Parrot expect table based layout and will reload a single row after create / update
|
|
127
|
+
|
|
128
|
+
# Rendering Paths
|
|
129
|
+
view_path: "dhatu/services",
|
|
130
|
+
js_view_path: "/kuppayam/workflows/default",
|
|
131
|
+
|
|
132
|
+
# Additional Configurations
|
|
133
|
+
load_wysihtml5: true,
|
|
134
|
+
tagsinput: false
|
|
75
135
|
}
|
|
76
136
|
end
|
|
77
137
|
|
|
@@ -9,7 +9,6 @@ module Dhatu
|
|
|
9
9
|
|
|
10
10
|
def get_collections
|
|
11
11
|
@relation = Dhatu::TeamMember.includes(:profile_image).where("")
|
|
12
|
-
params[:st] = "published" if params[:st].nil?
|
|
13
12
|
parse_filters
|
|
14
13
|
apply_filters
|
|
15
14
|
@team_members = @r_objects = @relation.page(@current_page).per(@per_page)
|
|
@@ -40,10 +39,10 @@ module Dhatu
|
|
|
40
39
|
@filter_ui_settings = {
|
|
41
40
|
status: {
|
|
42
41
|
object_filter: false,
|
|
43
|
-
select_label: "
|
|
44
|
-
display_hash: Dhatu::TeamMember::
|
|
42
|
+
select_label: "Filter by Status",
|
|
43
|
+
display_hash: Dhatu::TeamMember::STATUS_REVERSE,
|
|
45
44
|
current_value: @status,
|
|
46
|
-
values: Dhatu::TeamMember::
|
|
45
|
+
values: Dhatu::TeamMember::STATUS,
|
|
47
46
|
current_filters: @filters,
|
|
48
47
|
filters_to_remove: [],
|
|
49
48
|
filters_to_add: {},
|
|
@@ -55,12 +54,46 @@ module Dhatu
|
|
|
55
54
|
|
|
56
55
|
def resource_controller_configuration
|
|
57
56
|
{
|
|
58
|
-
page_title: "
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
page_title: "Manage Teams",
|
|
58
|
+
current_nav: "dhatu/team_members",
|
|
59
|
+
|
|
60
|
+
# Resource Names
|
|
61
|
+
class: Dhatu::TeamMember,
|
|
61
62
|
collection_name: :team_members,
|
|
62
63
|
item_name: :team_member,
|
|
63
|
-
|
|
64
|
+
|
|
65
|
+
# Conditions
|
|
66
|
+
get_collections_after_save_resource: false,
|
|
67
|
+
show_modal_after_create: true,
|
|
68
|
+
show_modal_after_update: true,
|
|
69
|
+
|
|
70
|
+
# Model Size can be large or generic
|
|
71
|
+
form_model_size: :large,
|
|
72
|
+
show_model_size: :large,
|
|
73
|
+
|
|
74
|
+
# Layout can be table or feed
|
|
75
|
+
# table uses html tables and feed uses div based boxes
|
|
76
|
+
layout: :table,
|
|
77
|
+
|
|
78
|
+
# "/kuppayam/workflows/default"
|
|
79
|
+
#
|
|
80
|
+
# Default partial opens show and form partial according to the model_size configuration
|
|
81
|
+
# It also respect the configuration layout and refresh the page element on both cases - i.e layout is table or feed
|
|
82
|
+
|
|
83
|
+
# "/kuppayam/workflows/peacock"
|
|
84
|
+
# "/kuppayam/workflows/parrot"
|
|
85
|
+
#
|
|
86
|
+
# Peacock & Parrot are old ways of doing things and it respects certail configurations
|
|
87
|
+
# Peacock opens show and form partials in large popup where as Parrot opens it in small
|
|
88
|
+
# Both Peacock and Parrot expect table based layout and will reload a single row after create / update
|
|
89
|
+
|
|
90
|
+
# Rendering Paths
|
|
91
|
+
view_path: "dhatu/team_members",
|
|
92
|
+
js_view_path: "/kuppayam/workflows/default",
|
|
93
|
+
|
|
94
|
+
# Additional Configurations
|
|
95
|
+
load_wysihtml5: true,
|
|
96
|
+
tagsinput: false
|
|
64
97
|
}
|
|
65
98
|
end
|
|
66
99
|
|
|
@@ -9,7 +9,6 @@ module Dhatu
|
|
|
9
9
|
|
|
10
10
|
def get_collections
|
|
11
11
|
@relation = Dhatu::Testimonial.includes(:profile_image, :logo_image).where("")
|
|
12
|
-
params[:st] = "published" if params[:st].nil?
|
|
13
12
|
parse_filters
|
|
14
13
|
apply_filters
|
|
15
14
|
@testimonials = @r_objects = @relation.page(@current_page).per(@per_page)
|
|
@@ -30,7 +29,6 @@ module Dhatu
|
|
|
30
29
|
],
|
|
31
30
|
|
|
32
31
|
boolean_filters: [],
|
|
33
|
-
|
|
34
32
|
reference_filters: [],
|
|
35
33
|
variable_filters: [],
|
|
36
34
|
}
|
|
@@ -40,10 +38,10 @@ module Dhatu
|
|
|
40
38
|
@filter_ui_settings = {
|
|
41
39
|
status: {
|
|
42
40
|
object_filter: false,
|
|
43
|
-
select_label: "
|
|
44
|
-
display_hash: Dhatu::Testimonial::
|
|
41
|
+
select_label: "Filter by Status",
|
|
42
|
+
display_hash: Dhatu::Testimonial::STATUS_REVERSE,
|
|
45
43
|
current_value: @status,
|
|
46
|
-
values: Dhatu::Testimonial::
|
|
44
|
+
values: Dhatu::Testimonial::STATUS,
|
|
47
45
|
current_filters: @filters,
|
|
48
46
|
filters_to_remove: [],
|
|
49
47
|
filters_to_add: {},
|
|
@@ -55,12 +53,46 @@ module Dhatu
|
|
|
55
53
|
|
|
56
54
|
def resource_controller_configuration
|
|
57
55
|
{
|
|
58
|
-
page_title: "Testimonials",
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
page_title: "Manage Testimonials",
|
|
57
|
+
current_nav: "dhatu/testimonials",
|
|
58
|
+
|
|
59
|
+
# Resource Names
|
|
60
|
+
class: Dhatu::Testimonial,
|
|
61
61
|
collection_name: :testimonials,
|
|
62
62
|
item_name: :testimonial,
|
|
63
|
-
|
|
63
|
+
|
|
64
|
+
# Conditions
|
|
65
|
+
get_collections_after_save_resource: false,
|
|
66
|
+
show_modal_after_create: true,
|
|
67
|
+
show_modal_after_update: true,
|
|
68
|
+
|
|
69
|
+
# Model Size can be large or generic
|
|
70
|
+
form_model_size: :large,
|
|
71
|
+
show_model_size: :large,
|
|
72
|
+
|
|
73
|
+
# Layout can be table or feed
|
|
74
|
+
# table uses html tables and feed uses div based boxes
|
|
75
|
+
layout: :table,
|
|
76
|
+
|
|
77
|
+
# "/kuppayam/workflows/default"
|
|
78
|
+
#
|
|
79
|
+
# Default partial opens show and form partial according to the model_size configuration
|
|
80
|
+
# It also respect the configuration layout and refresh the page element on both cases - i.e layout is table or feed
|
|
81
|
+
|
|
82
|
+
# "/kuppayam/workflows/peacock"
|
|
83
|
+
# "/kuppayam/workflows/parrot"
|
|
84
|
+
#
|
|
85
|
+
# Peacock & Parrot are old ways of doing things and it respects certail configurations
|
|
86
|
+
# Peacock opens show and form partials in large popup where as Parrot opens it in small
|
|
87
|
+
# Both Peacock and Parrot expect table based layout and will reload a single row after create / update
|
|
88
|
+
|
|
89
|
+
# Rendering Paths
|
|
90
|
+
view_path: "dhatu/testimonials",
|
|
91
|
+
js_view_path: "/kuppayam/workflows/default",
|
|
92
|
+
|
|
93
|
+
# Additional Configurations
|
|
94
|
+
load_wysihtml5: true,
|
|
95
|
+
tagsinput: false
|
|
64
96
|
}
|
|
65
97
|
end
|
|
66
98
|
|
|
@@ -13,7 +13,7 @@ class Dhatu::BlogPost < Dhatu::ApplicationRecord
|
|
|
13
13
|
validates :author, length: {minimum: 3, maximum: 250}, allow_blank: true
|
|
14
14
|
validates :description, presence: true
|
|
15
15
|
validates :posted_at, presence: true
|
|
16
|
-
validates :
|
|
16
|
+
validates :short_description, presence: true, length: {minimum: 10, maximum: 500}, allow_blank: false
|
|
17
17
|
|
|
18
18
|
validates :category, presence: true
|
|
19
19
|
|
|
@@ -22,6 +22,10 @@ class Dhatu::BlogPost < Dhatu::ApplicationRecord
|
|
|
22
22
|
has_one :cover_image, :as => :imageable, :dependent => :destroy, :class_name => "Image::CoverImage"
|
|
23
23
|
has_many :gallery_images, :as => :imageable, :dependent => :destroy, :class_name => "Image::GalleryImage"
|
|
24
24
|
|
|
25
|
+
# Meta Tag Associations
|
|
26
|
+
has_one :og_image, :as => :imageable, :dependent => :destroy, :class_name => "Image::OgImage"
|
|
27
|
+
has_many :meta_tags, :as => :meta_taggable, :dependent => :destroy, :class_name => "Dhatu::MetaTag"
|
|
28
|
+
|
|
25
29
|
# Serializers
|
|
26
30
|
serialize :tags, Hash
|
|
27
31
|
|
|
@@ -54,7 +58,7 @@ class Dhatu::BlogPost < Dhatu::ApplicationRecord
|
|
|
54
58
|
blog_post.title = hsh[:title].to_s.strip
|
|
55
59
|
blog_post.slug = blog_post.title.parameterize[0..64] if blog_post.title
|
|
56
60
|
blog_post.author = hsh[:author].to_s.strip
|
|
57
|
-
blog_post.
|
|
61
|
+
blog_post.short_description = hsh[:short_description].to_s.strip
|
|
58
62
|
blog_post.description = hsh[:description].to_s.strip
|
|
59
63
|
blog_post.posted_at = hsh[:posted_at].to_s.strip
|
|
60
64
|
|
|
@@ -102,9 +102,9 @@ class Dhatu::Category < Dhatu::ApplicationRecord
|
|
|
102
102
|
self.name
|
|
103
103
|
end
|
|
104
104
|
|
|
105
|
-
def to_param
|
|
106
|
-
|
|
107
|
-
end
|
|
105
|
+
# def to_param
|
|
106
|
+
# "#{id}-#{name.parameterize[0..32]}"
|
|
107
|
+
# end
|
|
108
108
|
|
|
109
109
|
def display_category_type
|
|
110
110
|
self.category_type.try(:demodulize).try(:pluralize).try(:titleize)
|
data/app/models/dhatu/event.rb
CHANGED
|
@@ -16,6 +16,10 @@ class Dhatu::Event < Dhatu::ApplicationRecord
|
|
|
16
16
|
belongs_to :category, optional: true
|
|
17
17
|
has_one :cover_image, :as => :imageable, :dependent => :destroy, :class_name => "Image::CoverImage"
|
|
18
18
|
has_many :gallery_images, :as => :imageable, :dependent => :destroy, :class_name => "Image::GalleryImage"
|
|
19
|
+
|
|
20
|
+
# Meta Tag Associations
|
|
21
|
+
has_one :og_image, :as => :imageable, :dependent => :destroy, :class_name => "Image::OgImage"
|
|
22
|
+
has_many :meta_tags, :as => :meta_taggable, :dependent => :destroy, :class_name => "Dhatu::MetaTag"
|
|
19
23
|
|
|
20
24
|
# ------------------
|
|
21
25
|
# Class Methods
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
class Dhatu::MetaTag < Dhatu::ApplicationRecord
|
|
2
|
+
|
|
3
|
+
# Constants
|
|
4
|
+
META_TYPES = ["Default", "Open Graph", "Twitter", "Facebook", "Other"]
|
|
5
|
+
|
|
6
|
+
# Set Table Name
|
|
7
|
+
self.table_name = "meta_tags"
|
|
8
|
+
|
|
9
|
+
# Including the State Machine Methods
|
|
10
|
+
include Publishable
|
|
11
|
+
|
|
12
|
+
# Validations
|
|
13
|
+
validates :meta_type, presence: true, length: {minimum: 3, maximum: 16}, allow_blank: false
|
|
14
|
+
validates :meta_key, presence: true, length: {minimum: 1, maximum: 128}, allow_blank: false
|
|
15
|
+
validates :meta_value, presence: true, length: {minimum: 1, maximum: 1064}, allow_blank: false
|
|
16
|
+
|
|
17
|
+
# Associations
|
|
18
|
+
belongs_to :meta_taggable, :polymorphic => true
|
|
19
|
+
|
|
20
|
+
# ------------------
|
|
21
|
+
# Class Methods
|
|
22
|
+
# ------------------
|
|
23
|
+
|
|
24
|
+
scope :search, lambda { |query| where("LOWER(meta_type) LIKE LOWER('%#{query}%') OR LOWER(meta_key) LIKE LOWER('%#{query}%') OR LOWER(meta_value) LIKE LOWER('%#{query}%')") }
|
|
25
|
+
|
|
26
|
+
# ------------------
|
|
27
|
+
# Instance Methods
|
|
28
|
+
# ------------------
|
|
29
|
+
|
|
30
|
+
# Generic Methods
|
|
31
|
+
# ---------------
|
|
32
|
+
|
|
33
|
+
def display_name
|
|
34
|
+
"#{self.meta_type_was} - #{self.meta_key_was}"
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Permission Methods
|
|
38
|
+
# ------------------
|
|
39
|
+
|
|
40
|
+
def can_be_edited?
|
|
41
|
+
status?(:published) or status?(:unpublished)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def can_be_deleted?
|
|
45
|
+
status?(:removed)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|