dhatu 0.1.4 → 0.1.5
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 +1 -1
- data/app/controllers/dhatu/categories_controller.rb +9 -5
- data/app/controllers/dhatu/services_controller.rb +94 -0
- data/app/models/dhatu/blog_post.rb +3 -0
- data/app/models/dhatu/category.rb +19 -2
- data/app/models/dhatu/service.rb +75 -0
- data/app/views/dhatu/blog_posts/_form.html.erb +9 -1
- data/app/views/dhatu/categories/_form.html.erb +6 -2
- data/app/views/dhatu/categories/_index.html.erb +23 -19
- data/app/views/dhatu/categories/_row.html.erb +16 -12
- data/app/views/dhatu/categories/_show.html.erb +88 -89
- data/app/views/dhatu/categories/index.html.erb +17 -11
- data/app/views/dhatu/dashboard/_index.html.erb +12 -0
- data/app/views/dhatu/services/_form.html.erb +57 -0
- data/app/views/dhatu/services/_index.html.erb +54 -0
- data/app/views/dhatu/services/_row.html.erb +26 -0
- data/app/views/dhatu/services/_show.html.erb +128 -0
- data/app/views/dhatu/services/index.html.erb +69 -0
- data/app/views/layouts/kuppayam/_sidebar.html.erb +12 -0
- data/config/routes.rb +8 -0
- data/lib/dhatu/version.rb +1 -1
- metadata +11 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5aa15ef1778f28fd3c9a4c2e5fa38c70a04691fb
|
4
|
+
data.tar.gz: db924144919db1ce6795890dac67ec1e969d4aa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06ee7c08dfed11f1b3c2c753b0f3fce3bf64ae2aa043ad9dde093fc9c8cd7cbd90f927345632161c6907c203e5c4e710c027e2b2ab026a15bd0b985a53e36159
|
7
|
+
data.tar.gz: 7d3a7f3177d7df229009a8cc9f9dc313e19bd230061c5ab6a86be036e0e68bc11321d9cce89573d2c28dda3b7c7cc085829e2801d988b48ba2b1a48a72f1313a
|
@@ -4,7 +4,7 @@ module Dhatu
|
|
4
4
|
private
|
5
5
|
|
6
6
|
def permitted_params
|
7
|
-
params.require("dhatu/blog_post").permit(:title, :slug, :author, :meta_description, :description, :posted_at, :tags)
|
7
|
+
params.require("dhatu/blog_post").permit(:title, :slug, :author, :meta_description, :description, :posted_at, :tags, :category_id)
|
8
8
|
end
|
9
9
|
|
10
10
|
def get_collections
|
@@ -42,15 +42,13 @@ module Dhatu
|
|
42
42
|
params[:category].permit(:name, :permalink, :one_liner, :description, :parent_id, :priority)
|
43
43
|
end
|
44
44
|
|
45
|
-
def resource_url(obj)
|
46
|
-
url_for([:admin, obj])
|
47
|
-
end
|
48
|
-
|
49
45
|
def set_navs
|
50
46
|
set_nav("admin/categories")
|
51
47
|
end
|
52
48
|
|
53
49
|
def get_collections
|
50
|
+
@category_types = Dhatu::Category.distinct.pluck(:category_type)
|
51
|
+
@category_types.unshift('All')
|
54
52
|
|
55
53
|
@current_category = Dhatu::Category.find_by_id(params[:parent_id])
|
56
54
|
|
@@ -77,6 +75,12 @@ module Dhatu
|
|
77
75
|
end
|
78
76
|
|
79
77
|
def apply_filters
|
78
|
+
|
79
|
+
@category_type = params[:category_type] || "All"
|
80
|
+
if @category_type && @category_type != "All"
|
81
|
+
@relation = @relation.where("category_type = ?", params[:category_type])
|
82
|
+
end
|
83
|
+
|
80
84
|
@relation = @relation.search(@query) if @query
|
81
85
|
@relation = @relation.status(@status) if @status
|
82
86
|
@relation = @relation.featured(@featured) unless @featured.nil?
|
@@ -118,7 +122,7 @@ module Dhatu
|
|
118
122
|
end
|
119
123
|
|
120
124
|
def permitted_params
|
121
|
-
params.require(
|
125
|
+
params.require("dhatu/category").permit(:name, :one_liner, :description, :priority, :parent_id, :category_type)
|
122
126
|
end
|
123
127
|
|
124
128
|
def set_navs
|
@@ -0,0 +1,94 @@
|
|
1
|
+
module Dhatu
|
2
|
+
class ServicesController < ResourceController
|
3
|
+
|
4
|
+
private
|
5
|
+
|
6
|
+
def permitted_params
|
7
|
+
params.require("dhatu/service").permit(:name, :one_liner, :permalink, :description, :price, :duration, :category_id, :priority)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_collections
|
11
|
+
category_ids = Dhatu::Service.distinct.pluck(:category_id)
|
12
|
+
@categories = Dhatu::Category.where(id: category_ids).to_a
|
13
|
+
@categories.unshift(Dhatu::Category.new(id: -1, name: "All"))
|
14
|
+
|
15
|
+
@relation = Dhatu::Service.includes(:cover_image).where("")
|
16
|
+
# params[:st] = "published" if params[:st].nil?
|
17
|
+
|
18
|
+
parse_filters
|
19
|
+
apply_filters
|
20
|
+
@services = @r_objects = @relation.page(@current_page).per(@per_page)
|
21
|
+
return true
|
22
|
+
end
|
23
|
+
|
24
|
+
def apply_filters
|
25
|
+
@category = Dhatu::Category.find_by_id(params[:ct]) || Dhatu::Category.new(id: -1, name: "All")
|
26
|
+
|
27
|
+
if @category && @category.id != -1
|
28
|
+
@relation = @relation.where("category_id = ?", @category.id)
|
29
|
+
end
|
30
|
+
|
31
|
+
@relation = @relation.search(@query) if @query
|
32
|
+
@relation = @relation.status(@status) if @status
|
33
|
+
|
34
|
+
@order_by = "created_at desc" unless @order_by
|
35
|
+
@relation = @relation.order(@order_by)
|
36
|
+
end
|
37
|
+
|
38
|
+
def configure_filter_settings
|
39
|
+
@filter_settings = {
|
40
|
+
string_filters: [
|
41
|
+
{ filter_name: :query },
|
42
|
+
{ filter_name: :status }
|
43
|
+
],
|
44
|
+
|
45
|
+
boolean_filters: [],
|
46
|
+
|
47
|
+
reference_filters: [],
|
48
|
+
variable_filters: [],
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
def configure_filter_ui_settings
|
53
|
+
@filter_ui_settings = {
|
54
|
+
status: {
|
55
|
+
object_filter: false,
|
56
|
+
select_label: "Select Status",
|
57
|
+
display_hash: Dhatu::Service::STATUS,
|
58
|
+
current_value: @status,
|
59
|
+
values: Dhatu::Service::STATUS_REVERSE,
|
60
|
+
current_filters: @filters,
|
61
|
+
filters_to_remove: [],
|
62
|
+
filters_to_add: {},
|
63
|
+
url_method_name: 'services_url',
|
64
|
+
show_all_filter_on_top: true
|
65
|
+
}
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
def resource_controller_configuration
|
70
|
+
{
|
71
|
+
page_title: "Services",
|
72
|
+
js_view_path: "/kuppayam/workflows/peacock",
|
73
|
+
view_path: "dhatu/services",
|
74
|
+
collection_name: :services,
|
75
|
+
item_name: :service,
|
76
|
+
class: Dhatu::Service
|
77
|
+
}
|
78
|
+
end
|
79
|
+
|
80
|
+
def breadcrumbs_configuration
|
81
|
+
{
|
82
|
+
heading: "Manage services",
|
83
|
+
icon: "fa-reorder",
|
84
|
+
description: "Listing all services",
|
85
|
+
links: [{name: "Dashboard", link: dashboard_path, icon: 'fa-dashboard'},
|
86
|
+
{name: "Manage services", link: dhatu.services_path, icon: 'fa-calendar', active: true}]
|
87
|
+
}
|
88
|
+
end
|
89
|
+
|
90
|
+
def set_navs
|
91
|
+
set_nav("service")
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -14,8 +14,11 @@ class Dhatu::BlogPost < Dhatu::ApplicationRecord
|
|
14
14
|
validates :description, presence: true
|
15
15
|
validates :posted_at, presence: true
|
16
16
|
validates :meta_description, presence: true, length: {minimum: 10, maximum: 500}, allow_blank: false
|
17
|
+
|
18
|
+
validates :category, presence: true
|
17
19
|
|
18
20
|
# Associations
|
21
|
+
belongs_to :category
|
19
22
|
has_one :cover_image, :as => :imageable, :dependent => :destroy, :class_name => "Image::CoverImage"
|
20
23
|
has_many :gallery_images, :as => :imageable, :dependent => :destroy, :class_name => "Image::GalleryImage"
|
21
24
|
|
@@ -18,8 +18,7 @@ class Dhatu::Category < Dhatu::ApplicationRecord
|
|
18
18
|
validate_string :one_liner, mandatory: false, format: /.*/i
|
19
19
|
validate_string :permalink, mandatory: true, format: /.*/i, min_length: 4, max_length: 128
|
20
20
|
validates :category_type, :presence=> true, length: {maximum: 64}
|
21
|
-
|
22
|
-
|
21
|
+
|
23
22
|
# Associations
|
24
23
|
belongs_to :parent, :class_name => 'Dhatu::Category', optional: true
|
25
24
|
belongs_to :top_parent, :class_name => 'Dhatu::Category', optional: true
|
@@ -41,6 +40,8 @@ class Dhatu::Category < Dhatu::ApplicationRecord
|
|
41
40
|
LOWER(description) LIKE LOWER('%#{query}%')")
|
42
41
|
}
|
43
42
|
|
43
|
+
scope :filter_by_category_type, lambda { |ctype| where("category_type = ?", ctype) }
|
44
|
+
|
44
45
|
scope :status, lambda { |status| where("LOWER(status)='#{status}'") }
|
45
46
|
scope :featured, lambda { |val| where(featured: val) }
|
46
47
|
|
@@ -127,6 +128,22 @@ class Dhatu::Category < Dhatu::ApplicationRecord
|
|
127
128
|
true
|
128
129
|
end
|
129
130
|
|
131
|
+
def can_be_published?
|
132
|
+
unpublished? or archived?
|
133
|
+
end
|
134
|
+
|
135
|
+
def can_be_unpublished?
|
136
|
+
published? or archived?
|
137
|
+
end
|
138
|
+
|
139
|
+
def can_be_archived?
|
140
|
+
unpublished?
|
141
|
+
end
|
142
|
+
|
143
|
+
def can_be_removed?
|
144
|
+
unpublished? or archived?
|
145
|
+
end
|
146
|
+
|
130
147
|
# Callback methods
|
131
148
|
# ------------------
|
132
149
|
|
@@ -0,0 +1,75 @@
|
|
1
|
+
class Dhatu::Service < Dhatu::ApplicationRecord
|
2
|
+
|
3
|
+
# Set Table Name
|
4
|
+
self.table_name = "services"
|
5
|
+
|
6
|
+
# Including the State Machine Methods
|
7
|
+
include Publishable
|
8
|
+
|
9
|
+
# Constants
|
10
|
+
COVER_IMAGE_INSTRUCTIONS = [
|
11
|
+
"the file extension should be .jpg / .jpeg or .png format",
|
12
|
+
"the image should be in resolution 750 pixels by 368 pixels, (Portrait Format). (most cameras and camera phones will produce images bigger than this)",
|
13
|
+
"the file size should not be less than 20 Kb, or bigger than <strong>1 MB</strong>"
|
14
|
+
]
|
15
|
+
|
16
|
+
# Constants
|
17
|
+
GALLERY_IMAGE_INSTRUCTIONS = [
|
18
|
+
"the file extension should be .jpg / .jpeg or .png format",
|
19
|
+
"the image should be in resolution 750 pixels by 368 pixels, (Portrait Format). (most cameras and camera phones will produce images bigger than this)",
|
20
|
+
"the file size should not be less than 20 Kb, or bigger than <strong>1 MB</strong>"
|
21
|
+
]
|
22
|
+
|
23
|
+
# Validations
|
24
|
+
validate_string :name, mandatory: true, min_length: 2, format: /.*/i
|
25
|
+
validate_string :one_liner, mandatory: false, format: /.*/i
|
26
|
+
validate_string :permalink, mandatory: true, format: /.*/i, min_length: 4, max_length: 128
|
27
|
+
|
28
|
+
validates :category, presence: true
|
29
|
+
|
30
|
+
# Associations
|
31
|
+
belongs_to :category
|
32
|
+
has_one :cover_image, :as => :imageable, :dependent => :destroy, :class_name => "Image::CoverImage"
|
33
|
+
has_many :gallery_images, :as => :imageable, :dependent => :destroy, :class_name => "Image::GalleryImage"
|
34
|
+
|
35
|
+
# ------------------
|
36
|
+
# Class Methods
|
37
|
+
# ------------------
|
38
|
+
|
39
|
+
scope :search, lambda {|query| where("LOWER(name) LIKE LOWER('%#{query}%') OR\
|
40
|
+
LOWER(one_liner) LIKE LOWER('%#{query}%') OR\
|
41
|
+
LOWER(permalink) LIKE LOWER('%#{query}%') OR\
|
42
|
+
LOWER(description) LIKE LOWER('%#{query}%')")
|
43
|
+
}
|
44
|
+
|
45
|
+
scope :filter_by_category, lambda { |c| where("category_id = ?", (c.is_a? Dhatu::Category ? c.id : c)) }
|
46
|
+
|
47
|
+
scope :upcoming, lambda { where("created_at >= ?", Time.now) }
|
48
|
+
scope :past, lambda { where("created_at < ?", Time.now) }
|
49
|
+
|
50
|
+
# ------------------
|
51
|
+
# Instance variables
|
52
|
+
# ------------------
|
53
|
+
|
54
|
+
# Generic Methods
|
55
|
+
# ---------------
|
56
|
+
def to_param
|
57
|
+
"#{id}-#{name.parameterize[0..32]}"
|
58
|
+
end
|
59
|
+
|
60
|
+
def display_name
|
61
|
+
"#{name_was}"
|
62
|
+
end
|
63
|
+
|
64
|
+
# Permission Methods
|
65
|
+
# ------------------
|
66
|
+
|
67
|
+
def can_be_edited?
|
68
|
+
status?(:published) or status?(:unpublished)
|
69
|
+
end
|
70
|
+
|
71
|
+
def can_be_deleted?
|
72
|
+
status?(:removed)
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
@@ -12,7 +12,15 @@
|
|
12
12
|
|
13
13
|
<%= theme_form_field(@blog_post, :title, form_style: "top-bottom") %>
|
14
14
|
|
15
|
-
|
15
|
+
<div class="row">
|
16
|
+
<div class="col-md-6 pr-20">
|
17
|
+
<% options = {assoc_collection: Dhatu::Category.filter_by_category_type("Blog").published.select("id, name").order("name ASC").all, editable: true, assoc_display_method: :name} %>
|
18
|
+
<%= theme_form_assoc_group(@blog_post, :category_id, label: "Choose Category", form_style: "top-bottom", **options) %>
|
19
|
+
</div>
|
20
|
+
<div class="col-md-6 pl-20">
|
21
|
+
<%= theme_form_field(@blog_post, :slug, form_style: "top-bottom", html_options: {"data-id": @blog_post.id.to_s}) %>
|
22
|
+
</div>
|
23
|
+
</div>
|
16
24
|
|
17
25
|
<%= theme_form_field(@blog_post, :meta_description, required: true, html_options: {type: :textarea, class: "form-control", style: "height: 80px;"}, form_style: "top-bottom") %>
|
18
26
|
|
@@ -1,12 +1,16 @@
|
|
1
|
-
<%= form_for(
|
1
|
+
<%= form_for(@category, :html => {:id=>"form_category", :class=>"mb-0 form-horizontal", :role => "form", :method => (@category.new_record? ? :post : :put), :remote=>true}) do |f| %>
|
2
2
|
|
3
3
|
<div id="category_form_error">
|
4
4
|
<%= @category.errors[:base].to_sentence %>
|
5
5
|
</div>
|
6
6
|
|
7
7
|
<div class="form-inputs mb-30 mt-30">
|
8
|
+
|
9
|
+
<% @category.category_type = params[:category_type] if @category.category_type.blank? && params[:category_type] != "All" %>
|
10
|
+
|
8
11
|
<%= theme_form_field(@category, :name) %>
|
9
12
|
|
13
|
+
<%= theme_form_field(@category, :category_type, required: true) %>
|
10
14
|
<%= theme_form_field(@category, :one_liner, required: false) %>
|
11
15
|
<%= theme_form_field(@category, :description, required: false, html_options: {type: :textarea}) %>
|
12
16
|
<%= theme_form_field(@category, :priority, required: false, html_options: {type: :number, style: "width:70px;"}) %>
|
@@ -20,7 +24,7 @@
|
|
20
24
|
<%= theme_form_assoc_group(@category, :parent_id, **options) %>
|
21
25
|
</div>
|
22
26
|
|
23
|
-
|
27
|
+
|
24
28
|
|
25
29
|
<div>
|
26
30
|
|
@@ -6,10 +6,10 @@
|
|
6
6
|
<%= theme_button('Back', 'arrow-left', categories_path(parent_id: @current_category.parent_id), classes: "pull-left mr-10", btn_type: "white") %>
|
7
7
|
<% end %>
|
8
8
|
|
9
|
-
<%= theme_button('Refresh', 'refresh', categories_path(parent_id: @current_category.try(:id)), classes: "pull-left mr-10", btn_type: "white") %>
|
9
|
+
<%= theme_button('Refresh', 'refresh', categories_path(parent_id: @current_category.try(:id), category_type: @category_type), classes: "pull-left mr-10", btn_type: "white") %>
|
10
10
|
|
11
|
-
<%
|
12
|
-
<%= theme_button('Add a Category', 'plus', new_category_path(parent_id: @current_category.try(:id)), classes: "pull-left mr-10", btn_type: "success") %>
|
11
|
+
<% if @current_user.has_create_permission?(Dhatu::Category) %>
|
12
|
+
<%= theme_button('Add a Category', 'plus', new_category_path(parent_id: @current_category.try(:id), category_type: @category_type), classes: "pull-left mr-10", btn_type: "success") %>
|
13
13
|
<% end %>
|
14
14
|
|
15
15
|
</div>
|
@@ -48,11 +48,11 @@
|
|
48
48
|
<tr>
|
49
49
|
<th style="text-align: center;width:60px">#</th>
|
50
50
|
<th>Name</th>
|
51
|
-
<th>Parent</th>
|
52
|
-
<th>Top Parent</th>
|
51
|
+
<!-- <th>Parent</th>
|
52
|
+
<th>Top Parent</th> -->
|
53
53
|
<th style="text-align: center;width:100px;">Status</th>
|
54
|
-
<th style="text-align: center;width:100px;">Priority</th>
|
55
|
-
<th style="text-align: center;width:120px;">End Node?</th>
|
54
|
+
<!-- <th style="text-align: center;width:100px;">Priority</th>
|
55
|
+
<th style="text-align: center;width:120px;">End Node?</th> -->
|
56
56
|
<% if display_manage_links? %>
|
57
57
|
<th style="text-align: center;" colspan="2">Actions</th>
|
58
58
|
<% end %>
|
@@ -77,17 +77,19 @@
|
|
77
77
|
<%= link_to raw("<i class=\"fa fa-caret-right\"></i> #{category.display_name}"), categories_path(parent_id: category.id), remote: true %></td>
|
78
78
|
<% end %>
|
79
79
|
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
80
|
+
<!--
|
81
|
+
<%# if category.parent == @current_category %>
|
82
|
+
<td class="category-name"><%#= category.parent.display_name if category.parent %></td>
|
83
|
+
<%# else %>
|
84
|
+
<td class="category-name"><%#= link_to category.parent.display_name, categories_path(parent_id: category.parent.id), remote: true if category.parent %></td>
|
85
|
+
<%# end %>
|
85
86
|
|
86
|
-
|
87
|
-
<td class="category-name"
|
88
|
-
|
89
|
-
<td class="category-name"
|
90
|
-
|
87
|
+
<%# if category.top_parent == @current_category %>
|
88
|
+
<td class="category-name"><%#= category.top_parent.display_name if category.top_parent %></td>
|
89
|
+
<%# else %>
|
90
|
+
<td class="category-name"><%#= link_to category.top_parent.display_name, categories_path(parent_id: category.top_parent.id), remote: true if category.top_parent %></td>
|
91
|
+
<%# end %>
|
92
|
+
-->
|
91
93
|
|
92
94
|
<td style="text-align: center;width:100px;">
|
93
95
|
<% if category.unpublished? %>
|
@@ -99,8 +101,10 @@
|
|
99
101
|
<% end %>
|
100
102
|
</td>
|
101
103
|
|
102
|
-
|
103
|
-
<td style="text-align: center;width:
|
104
|
+
<!--
|
105
|
+
<td style="text-align: center;width:100px;"><%#= category.priority if category.priority %></td>
|
106
|
+
<td style="text-align: center;width:120px;"><%#= category.end_node.to_s.titleize %></td>
|
107
|
+
-->
|
104
108
|
|
105
109
|
<% if display_manage_links? %>
|
106
110
|
<% edit_link = edit_category_path(id: category.id) %>
|
@@ -15,17 +15,19 @@
|
|
15
15
|
<%= link_to raw("<i class=\"fa fa-caret-right\"></i> #{category.display_name}"), categories_path(parent_id: category.id), remote: true %></td>
|
16
16
|
<% end %>
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
<!--
|
19
|
+
<%# if category.parent == @current_category %>
|
20
|
+
<td class="category-name"><%#= category.parent.display_name if category.parent %></td>
|
21
|
+
<%# else %>
|
22
|
+
<td class="category-name"><%#= link_to category.parent.display_name, categories_path(parent_id: category.parent.id), remote: true if category.parent %></td>
|
23
|
+
<%# end %>
|
23
24
|
|
24
|
-
|
25
|
-
<td class="category-name"
|
26
|
-
|
27
|
-
<td class="category-name"
|
28
|
-
|
25
|
+
<%# if category.top_parent == @current_category %>
|
26
|
+
<td class="category-name"><%#= category.top_parent.display_name if category.top_parent %></td>
|
27
|
+
<%# else %>
|
28
|
+
<td class="category-name"><%#= link_to category.top_parent.display_name, categories_path(parent_id: category.top_parent.id), remote: true if category.top_parent %></td>
|
29
|
+
<%# end %>
|
30
|
+
-->
|
29
31
|
|
30
32
|
<td style="text-align: center;width:100px;">
|
31
33
|
<% if category.unpublished? %>
|
@@ -37,8 +39,10 @@
|
|
37
39
|
<% end %>
|
38
40
|
</td>
|
39
41
|
|
40
|
-
|
41
|
-
<td style="text-align: center;width:
|
42
|
+
<!--
|
43
|
+
<td style="text-align: center;width:100px;"><%#= category.priority if category.priority %></td>
|
44
|
+
<td style="text-align: center;width:120px;"><%#= category.end_node.to_s.titleize %></td>
|
45
|
+
-->
|
42
46
|
|
43
47
|
<% if display_manage_links? %>
|
44
48
|
<% edit_link = edit_category_path(id: category.id) %>
|
@@ -1,100 +1,99 @@
|
|
1
|
-
|
1
|
+
<div id="div_category_show">
|
2
2
|
|
3
|
-
<div class="
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
3
|
+
<div class="row">
|
4
|
+
|
5
|
+
<!-- <div class="col-md-3 col-sm-12 col-xs-12" style="border-right:1px solid #f1f1f1;"> -->
|
6
|
+
<%# if display_edit_links? %>
|
7
|
+
<%#= edit_image(@category,
|
8
|
+
"cover_image.image.large.url",
|
9
|
+
upload_image_link(@category, :cover_image, nil ),
|
10
|
+
remove_image_link(@category, :cover_image, nil ),
|
11
|
+
image_options: {assoc_name: :cover_image }) %>
|
12
|
+
<%# else %>
|
13
|
+
<%#= display_image(@category, "cover_image.image.large.url", class: "img-inline", alt: @category.display_name) %>
|
14
|
+
<%# end %>
|
15
|
+
<!-- </div> -->
|
16
|
+
|
17
|
+
<div class="col-md-9 col-sm-12 col-xs-12" style="border-right:1px solid #f1f1f1;">
|
18
|
+
|
19
|
+
<%= theme_panel_heading(@category.name) %>
|
20
|
+
|
21
|
+
<%= theme_panel_sub_heading(@category.category_type, "#") if @category.one_liner %>
|
22
|
+
|
23
|
+
<%= clear_tag(10) %>
|
24
|
+
<%= display_publishable_status(@category) %>
|
25
|
+
<%= clear_tag(10) %>
|
26
|
+
<%= theme_panel_description(@category.one_liner) %>
|
27
|
+
<%= clear_tag(5) %>
|
28
|
+
<%= theme_panel_description(@category.description) %>
|
29
|
+
<%= clear_tag(20) %>
|
30
|
+
|
31
|
+
</div>
|
21
32
|
|
22
|
-
<% if
|
23
|
-
|
33
|
+
<% if display_manage_links? %>
|
34
|
+
<div class="col-md-3 col-sm-12 col-xs-12">
|
35
|
+
<%= display_manage_buttons(@category) %>
|
36
|
+
<%= display_publishable_buttons(@category) %>
|
37
|
+
<%= display_featurable_buttons(@category) %>
|
38
|
+
</div>
|
24
39
|
<% end %>
|
25
|
-
|
26
|
-
<span class="label label-<%= status_hash[@category.status.to_sym] %>"><%= @category.status.titleize %></span>
|
27
40
|
|
28
|
-
<%= clear_tag %>
|
29
41
|
</div>
|
30
42
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
<
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
<
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
<
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
<
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
<
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
</tbody>
|
81
|
-
</table>
|
43
|
+
<%= clear_tag(20) %>
|
44
|
+
|
45
|
+
<ul class="nav nav-pills">
|
46
|
+
<li class="active">
|
47
|
+
<a href="#technical_details" data-toggle="tab" aria-expanded="false">
|
48
|
+
<span class="visible-xs"><i class="fa-database"></i></span>
|
49
|
+
<span class="hidden-xs">Technical Details</span>
|
50
|
+
</a>
|
51
|
+
</li>
|
52
|
+
</ul>
|
53
|
+
|
54
|
+
<div class="tab-content">
|
55
|
+
<div class="tab-pane active" id="technical_details" style="border: 1px solid #000;min-height:200px;padding:20px;margin-bottom:20px;max-height: 400px;overflow-y: auto;">
|
56
|
+
|
57
|
+
<%= clear_tag(20) %>
|
58
|
+
|
59
|
+
<div class="table-responsive">
|
60
|
+
<table class="table table-striped table-condensed table-bordered mb-60">
|
61
|
+
<tbody>
|
62
|
+
|
63
|
+
<tr>
|
64
|
+
<th>ID</th><td><%= @category.id %></td>
|
65
|
+
<th>Permalink</th><td><%= @category.permalink %></td>
|
66
|
+
</tr>
|
67
|
+
|
68
|
+
<tr>
|
69
|
+
<th>Parent</th><td><%= @category.parent.try(:display_name) %> (<%= @category.parent.try(:id) %>)</td>
|
70
|
+
<th>Top Parent</th><td><%= @category.top_parent.try(:display_name) %> (<%= @category.top_parent.try(:id) %>)</td>
|
71
|
+
</tr>
|
72
|
+
|
73
|
+
<tr>
|
74
|
+
<th>Status</th><td><%= @category.status %></td>
|
75
|
+
<th>Featured</th><td><%= @category.featured? ? "Yes" : "No" %></td>
|
76
|
+
</tr>
|
77
|
+
|
78
|
+
<tr>
|
79
|
+
<th>Priority</th><td><%= @category.priority %></td>
|
80
|
+
<th>End Node</th><td><%= @category.end_node? ? "Yes" : "No" %></td>
|
81
|
+
</tr>
|
82
|
+
|
83
|
+
<tr>
|
84
|
+
<th>Created At</th><td><%= @category.created_at.strftime("%m/%d/%Y - %H:%M:%S") if @category.created_at %></td>
|
85
|
+
<th>Updated At</th><td><%= @category.updated_at.strftime("%m/%d/%Y - %H:%M:%S") if @category.updated_at %></td>
|
86
|
+
</tr>
|
87
|
+
|
88
|
+
</tbody>
|
89
|
+
</table>
|
90
|
+
</div>
|
91
|
+
|
82
92
|
</div>
|
83
|
-
|
84
93
|
</div>
|
85
|
-
</div>
|
86
|
-
|
87
|
-
<div>
|
88
|
-
<%
|
89
|
-
edit_link = edit_category_url(id: @category.id)
|
90
|
-
delete_link = category_url(id: @category.id)
|
91
|
-
%>
|
92
|
-
|
93
|
-
<%= link_to raw("<i class=\"fa fa-close mr-5\"></i> <span>Cancel</span>"), "#", onclick: "closeGenericModal();", class: "btn btn-white pull-left" %>
|
94
94
|
|
95
|
-
|
95
|
+
<%= link_to "Close", "#", onclick: "closeLargeModal();", class: "btn btn-primary pull-right" %>
|
96
96
|
|
97
|
-
|
98
|
-
</div>
|
97
|
+
<%= clear_tag %>
|
99
98
|
|
100
|
-
|
99
|
+
</div>
|
@@ -1,20 +1,26 @@
|
|
1
1
|
<div class="row">
|
2
2
|
|
3
3
|
<div class="col-md-12">
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
4
|
+
<div class="tabs-vertical-env">
|
5
|
+
|
6
|
+
<ul id="div_category_types" class="nav tabs-vertical">
|
7
|
+
<% @category_types.each do |ctype| %>
|
8
|
+
<li class="<%= ctype == @category_type ? 'active' : '' %>">
|
9
|
+
<%= link_to ctype, categories_path(category_type: ctype) %>
|
10
|
+
</li>
|
11
|
+
<% end %>
|
12
|
+
</ul>
|
13
|
+
|
14
|
+
<div class="tab-content">
|
15
|
+
<div class="tab-pane active" id="v-home">
|
16
|
+
<div id="div_category_index">
|
17
|
+
<%= render :partial=>"dhatu/categories/index" %>
|
18
|
+
</div>
|
19
|
+
<%= clear_tag(10) %>
|
12
20
|
</div>
|
13
|
-
<%= clear_tag(10) %>
|
14
|
-
|
15
21
|
</div>
|
22
|
+
|
16
23
|
</div>
|
17
|
-
|
18
24
|
</div>
|
19
25
|
|
20
26
|
</div>
|
@@ -12,6 +12,12 @@
|
|
12
12
|
url: dhatu.blog_posts_url,
|
13
13
|
has_permission: @current_user.has_read_permission?(Dhatu::BlogPost)
|
14
14
|
},
|
15
|
+
services: {
|
16
|
+
text: "Services",
|
17
|
+
icon_class: "fa-glass",
|
18
|
+
url: dhatu.services_url,
|
19
|
+
has_permission: @current_user.has_read_permission?(Dhatu::Service)
|
20
|
+
},
|
15
21
|
branches: {
|
16
22
|
text: "Branches",
|
17
23
|
icon_class: "fa-location-arrow",
|
@@ -41,6 +47,12 @@
|
|
41
47
|
icon_class: "fa-group",
|
42
48
|
url: dhatu.team_members_url,
|
43
49
|
has_permission: @current_user.has_read_permission?(Dhatu::TeamMember)
|
50
|
+
},
|
51
|
+
categories: {
|
52
|
+
text: "Categories",
|
53
|
+
icon_class: "fa-sitemap",
|
54
|
+
url: dhatu.categories_url,
|
55
|
+
has_permission: @current_user.has_read_permission?(Dhatu::Category)
|
44
56
|
}
|
45
57
|
}
|
46
58
|
%>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<%= form_for(@service,
|
2
|
+
:url => (@service.new_record? ? dhatu.services_path : dhatu.service_path),
|
3
|
+
:method => (@service.new_record? ? :post : :put),
|
4
|
+
:remote => true,
|
5
|
+
:html => {:id=>"form_service", :class=>"mb-0 form-horizontal"}) do |f| %>
|
6
|
+
|
7
|
+
<div id="service_form_error">
|
8
|
+
<%= @service.errors[:base].to_sentence %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="form-inputs m-15">
|
12
|
+
|
13
|
+
<%= theme_form_field(@service, :name, required: true, form_style: "top-bottom", html_options: { placeholder: "", "data-id": @service.id.to_s}) %>
|
14
|
+
|
15
|
+
<div class="row">
|
16
|
+
<div class="col-md-4 pr-20">
|
17
|
+
<% options = {assoc_collection: Dhatu::Category.filter_by_category_type("Service").published.select("id, name").order("name ASC").all, editable: true, assoc_display_method: :name} %>
|
18
|
+
<%= theme_form_assoc_group(@service, :category_id, label: "Choose Category", form_style: "top-bottom", **options) %>
|
19
|
+
</div>
|
20
|
+
<div class="col-md-4 pl-20">
|
21
|
+
<%= theme_form_field(@service, :one_liner, required: false, form_style: "top-bottom", html_options: { placeholder: "" }) %>
|
22
|
+
</div>
|
23
|
+
<div class="col-md-4 pl-20">
|
24
|
+
<% if @service.new_record? || @current_user.super_admin? %>
|
25
|
+
<%= theme_form_field(@service, :permalink, form_style: "top-bottom", html_options: { placeholder: ""}) %>
|
26
|
+
<% else %>
|
27
|
+
<%= theme_form_field(@service, :permalink, form_style: "top-bottom", html_options: { placeholder: "", readonly: true}) %>
|
28
|
+
<% end %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<%= theme_form_field(@service, :description, required: true, html_options: {type: :textarea, class: "form-control wysihtml5", "data-stylesheet-url": "assets/wysiwyg-color.css"}, form_style: "top-bottom") %>
|
33
|
+
|
34
|
+
<div class="row">
|
35
|
+
<div class="col-md-4 pr-20">
|
36
|
+
<%= theme_form_field(@service, :price, required: false, form_style: "top-bottom", html_options: { placeholder: "" }) %>
|
37
|
+
</div>
|
38
|
+
<div class="col-md-4 pl-20">
|
39
|
+
<%= theme_form_field(@service, :duration, required: false, form_style: "top-bottom", html_options: { placeholder: "" }) %>
|
40
|
+
</div>
|
41
|
+
<div class="col-md-4 pl-20">
|
42
|
+
<%= theme_form_field(@service, :priority, required: false, form_style: "top-bottom", html_options: { placeholder: "" }) %>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div>
|
49
|
+
<%= submit_tag("Save", :class=>"btn btn-primary pull-right ml-10") %>
|
50
|
+
|
51
|
+
<%= link_to raw("<i class='fa fa-close mr-5'></i><span>Cancel</span>"), "#", onclick: "closeLargeModal();", class: "pull-right btn btn-white" %>
|
52
|
+
</div>
|
53
|
+
|
54
|
+
<%= clear_tag %>
|
55
|
+
|
56
|
+
<% end %>
|
57
|
+
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<div class="table-responsive">
|
2
|
+
<table class="table table-hover members-table middle-align">
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
<th style="text-align: center;width:5%">#</th>
|
6
|
+
<th style="text-align: center;width:100px"><i class="fa fa-photo"></i></th>
|
7
|
+
<th>Service Name</th>
|
8
|
+
<th style="width:200px">Category</th>
|
9
|
+
<th style="width:100px;" class="hidden-sm hidden-xs">Status</th>
|
10
|
+
<% if display_manage_links? %>
|
11
|
+
<th style="text-align: center;" colspan="2" class="hidden-sm hidden-xs">Actions</th>
|
12
|
+
<% end %>
|
13
|
+
</tr>
|
14
|
+
</thead>
|
15
|
+
<tbody>
|
16
|
+
<tr id="tr_service_0"></tr>
|
17
|
+
<% @services.each_with_index do |service, i| %>
|
18
|
+
|
19
|
+
<tr id="tr_service_<%= service.id %>">
|
20
|
+
|
21
|
+
<th scope="row" style="text-align: center;">
|
22
|
+
<%= serial_number(i) %>
|
23
|
+
</th>
|
24
|
+
|
25
|
+
<td class="display-image">
|
26
|
+
<%= display_thumbnail_small(service) %>
|
27
|
+
</td>
|
28
|
+
|
29
|
+
<td class="display-link">
|
30
|
+
<%= link_to service.name, service_path(service), remote: true %><br>
|
31
|
+
<%= link_to service.category.try(:display_name), service_path(service), remote: true %>
|
32
|
+
</td>
|
33
|
+
|
34
|
+
<td class="hidden-sm hidden-xs"><%= display_publishable_status(service) %></td>
|
35
|
+
|
36
|
+
<% if display_manage_links? %>
|
37
|
+
<td class="action-links hidden-sm hidden-xs" style="width:10%"><%= display_publishable_links(service) %></td>
|
38
|
+
|
39
|
+
<td class="action-links hidden-sm hidden-xs" style="width:10%">
|
40
|
+
<%= display_manage_links(service, @current_user) %>
|
41
|
+
</td>
|
42
|
+
<% end %>
|
43
|
+
|
44
|
+
</tr>
|
45
|
+
<% end %>
|
46
|
+
</tbody>
|
47
|
+
</table>
|
48
|
+
</div>
|
49
|
+
|
50
|
+
<div class="row">
|
51
|
+
<div class="col-sm-12">
|
52
|
+
<%= paginate_kuppayam(@services) %>
|
53
|
+
</div>
|
54
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<tr id="tr_service_<%= service.id %>">
|
2
|
+
|
3
|
+
<th scope="row" style="text-align: center;">
|
4
|
+
<%= serial_number(i) %>
|
5
|
+
</th>
|
6
|
+
|
7
|
+
<td class="display-image">
|
8
|
+
<%= display_thumbnail_small(service) %>
|
9
|
+
</td>
|
10
|
+
|
11
|
+
<td class="display-link">
|
12
|
+
<%= link_to service.name, service_path(service), remote: true %><br>
|
13
|
+
<%= link_to service.category.try(:display_name), service_path(service), remote: true %>
|
14
|
+
</td>
|
15
|
+
|
16
|
+
<td class="hidden-sm hidden-xs"><%= display_publishable_status(service) %></td>
|
17
|
+
|
18
|
+
<% if display_manage_links? %>
|
19
|
+
<td class="action-links hidden-sm hidden-xs" style="width:10%"><%= display_publishable_links(service) %></td>
|
20
|
+
|
21
|
+
<td class="action-links hidden-sm hidden-xs" style="width:10%">
|
22
|
+
<%= display_manage_links(service, @current_user) %>
|
23
|
+
</td>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
</tr>
|
@@ -0,0 +1,128 @@
|
|
1
|
+
<div id="div_service_show">
|
2
|
+
|
3
|
+
<div class="row">
|
4
|
+
|
5
|
+
<div class="col-md-3 col-sm-12 col-xs-12" style="border-right:1px solid #f1f1f1;">
|
6
|
+
<% if display_edit_links? %>
|
7
|
+
<%= edit_image(@service,
|
8
|
+
"cover_image.image.large.url",
|
9
|
+
upload_image_link(@service, :cover_image, nil ),
|
10
|
+
remove_image_link(@service, :cover_image, nil ),
|
11
|
+
image_options: {assoc_name: :cover_image }) %>
|
12
|
+
<% else %>
|
13
|
+
<%= display_image(@service, "cover_image.image.large.url", class: "img-inline", alt: @service.display_name) %>
|
14
|
+
<% end %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="col-md-6 col-sm-12 col-xs-12" style="border-right:1px solid #f1f1f1;">
|
18
|
+
|
19
|
+
<%= theme_panel_heading(@service.name) %>
|
20
|
+
|
21
|
+
<%= theme_panel_sub_heading(@service.category.try(:display_name), "#") if @service.category %>
|
22
|
+
|
23
|
+
<%= clear_tag(10) %>
|
24
|
+
|
25
|
+
<%= display_publishable_status(@service) %>
|
26
|
+
|
27
|
+
<%= display_featured(@service) %>
|
28
|
+
|
29
|
+
<%= clear_tag(20) %>
|
30
|
+
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<% if display_manage_links? %>
|
34
|
+
<div class="col-md-3 col-sm-12 col-xs-12">
|
35
|
+
<%= display_manage_buttons(@service) %>
|
36
|
+
<%= display_publishable_buttons(@service) %>
|
37
|
+
</div>
|
38
|
+
<% end %>
|
39
|
+
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<hr>
|
43
|
+
|
44
|
+
<div class="visible-sm visible-xs mb-50"></div>
|
45
|
+
|
46
|
+
<%= clear_tag(20) %>
|
47
|
+
|
48
|
+
<ul class="nav nav-pills">
|
49
|
+
<li class="active">
|
50
|
+
<a href="#service_details" data-toggle="tab" aria-expanded="false">
|
51
|
+
<span class="visible-xs"><i class="fa-database"></i></span>
|
52
|
+
<span class="hidden-xs">Service Details</span>
|
53
|
+
</a>
|
54
|
+
</li>
|
55
|
+
|
56
|
+
<li class="">
|
57
|
+
<a href="#service_images" data-toggle="tab" aria-expanded="false">
|
58
|
+
<span class="visible-xs"><i class="fa-database"></i></span>
|
59
|
+
<span class="hidden-xs">Images</span>
|
60
|
+
</a>
|
61
|
+
</li>
|
62
|
+
|
63
|
+
<li class="">
|
64
|
+
<a href="#technical_details" data-toggle="tab" aria-expanded="false">
|
65
|
+
<span class="visible-xs"><i class="fa-database"></i></span>
|
66
|
+
<span class="hidden-xs">Technical Details</span>
|
67
|
+
</a>
|
68
|
+
</li>
|
69
|
+
</ul>
|
70
|
+
|
71
|
+
<div class="tab-content">
|
72
|
+
<div class="tab-pane active" id="service_details" style="border: 1px solid #000;min-height:200px;padding:20px;margin-bottom:20px;max-height: 400px;overflow-y: auto;">
|
73
|
+
|
74
|
+
<%= clear_tag(20) %>
|
75
|
+
<strong>Description</strong>
|
76
|
+
<%= raw(@service.description) %>
|
77
|
+
<%= clear_tag(20) %>
|
78
|
+
|
79
|
+
</div>
|
80
|
+
|
81
|
+
<div class="tab-pane" id="service_images" style="border: 1px solid #000;min-height:200px;padding:20px;margin-bottom:20px;max-height: 400px;overflow-y: auto;">
|
82
|
+
|
83
|
+
<%= clear_tag(20) %>
|
84
|
+
|
85
|
+
<div id="div_service_images_buttons">
|
86
|
+
<div class="row">
|
87
|
+
<div class="col-md-6">
|
88
|
+
<%= theme_button('Upload a New Image', 'refresh', upload_multiple_image_link(@service, :gallery_images, nil ), classes: "pull-left", btn_type: "white") %>
|
89
|
+
</div>
|
90
|
+
<div class="col-md-6">
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
</div>
|
94
|
+
<%= clear_tag(10) %>
|
95
|
+
|
96
|
+
<%= render :partial=>"kuppayam/images/multiple_images", locals: { images: @service.gallery_images } %>
|
97
|
+
|
98
|
+
</div>
|
99
|
+
|
100
|
+
<div class="tab-pane" id="technical_details" style="border: 1px solid #000;min-height:200px;padding:20px;margin-bottom:20px;max-height: 400px;overflow-y: auto;">
|
101
|
+
|
102
|
+
<%= clear_tag(20) %>
|
103
|
+
|
104
|
+
<div class="table-responsive">
|
105
|
+
<table class="table table-striped table-condensed table-bordered mb-60">
|
106
|
+
<tbody>
|
107
|
+
|
108
|
+
<tr>
|
109
|
+
<th>ID</th><td><%= @service.id %></td>
|
110
|
+
<th>Status</th><td><%= @service.status %></td>
|
111
|
+
</tr>
|
112
|
+
<tr>
|
113
|
+
<th>Created At</th><td><%= @service.created_at.strftime("%m/%d/%Y - %H:%M:%S") if @service.created_at %></td>
|
114
|
+
<th>Updated At</th><td><%= @service.updated_at.strftime("%m/%d/%Y - %H:%M:%S") if @service.updated_at %></td>
|
115
|
+
</tr>
|
116
|
+
|
117
|
+
</tbody>
|
118
|
+
</table>
|
119
|
+
</div>
|
120
|
+
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
|
124
|
+
<%= link_to "Close", "#", onclick: "closeLargeModal();", class: "btn btn-primary pull-right" %>
|
125
|
+
|
126
|
+
<%= clear_tag %>
|
127
|
+
|
128
|
+
</div>
|
@@ -0,0 +1,69 @@
|
|
1
|
+
<div class="row">
|
2
|
+
|
3
|
+
<div class="col-md-12">
|
4
|
+
|
5
|
+
<div class="tabs-vertical-env">
|
6
|
+
|
7
|
+
<ul id="div_category_types" class="nav tabs-vertical">
|
8
|
+
<% @categories.each do |ct| %>
|
9
|
+
<li class="<%= ct == @category ? 'active' : '' %>">
|
10
|
+
<%= link_to ct.name, services_path(ct: ct.id) %>
|
11
|
+
</li>
|
12
|
+
<% end %>
|
13
|
+
</ul>
|
14
|
+
|
15
|
+
<!-- <ul class="nav nav-tabs nav-tabs-justified">
|
16
|
+
<%# Dhatu::Service::STATUS.each do |key, value| %>
|
17
|
+
<li class="<%#= @status == value ? 'active' : '' %>">
|
18
|
+
<%#= link_to dhatu.services_path(st: value), "aria-expanded" => "#{ @status == value ? 'true' : 'false' }" do %>
|
19
|
+
<span class="visible-xs"><i class="fa-gift"></i></span>
|
20
|
+
<span class="hidden-xs"><%#= key %></span>
|
21
|
+
<%# end %>
|
22
|
+
</li>
|
23
|
+
<%# end %>
|
24
|
+
</ul> -->
|
25
|
+
|
26
|
+
<div class="tab-content">
|
27
|
+
<div class="tab-pane active">
|
28
|
+
|
29
|
+
<div id="div_service_action_buttons">
|
30
|
+
<div class="row">
|
31
|
+
<div class="col-sm-6">
|
32
|
+
<%= theme_button('Add a Service', 'plus', dhatu.new_service_path(), classes: "pull-left mr-10", btn_type: "success") if @current_user.has_create_permission?(Dhatu::Service) %>
|
33
|
+
|
34
|
+
<%= theme_button('Refresh', 'refresh', dhatu.services_path(st: @status), classes: "pull-left mr-10", btn_type: "white") %>
|
35
|
+
</div>
|
36
|
+
<div class="col-sm-6">
|
37
|
+
<%= search_form_kuppayam(Dhatu::Service, dhatu.services_path(st: @status), text: @filters[:query]) %>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
</div>
|
42
|
+
<%= clear_tag(10) %>
|
43
|
+
|
44
|
+
<div id="div_service_index">
|
45
|
+
<%= render :partial=>"dhatu/services/index" %>
|
46
|
+
</div>
|
47
|
+
<%= clear_tag(10) %>
|
48
|
+
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
</div>
|
53
|
+
|
54
|
+
</div>
|
55
|
+
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<script type="text/javascript">
|
59
|
+
$('body').on('change', '#inp_name', function() {
|
60
|
+
var serviceId = $('#inp_permalink').data("id");
|
61
|
+
if(serviceId){
|
62
|
+
} else {
|
63
|
+
var permalink = convertToSlug($(this).val()).slice(0, 63);
|
64
|
+
$('#inp_permalink').val(permalink);
|
65
|
+
}
|
66
|
+
});
|
67
|
+
</script>
|
68
|
+
|
69
|
+
|
@@ -12,6 +12,12 @@
|
|
12
12
|
url: dhatu.blog_posts_url,
|
13
13
|
has_permission: @current_user.has_read_permission?(Dhatu::BlogPost)
|
14
14
|
},
|
15
|
+
services: {
|
16
|
+
text: "Services",
|
17
|
+
icon_class: "fa-glass",
|
18
|
+
url: dhatu.services_url,
|
19
|
+
has_permission: @current_user.has_read_permission?(Dhatu::Service)
|
20
|
+
},
|
15
21
|
branches: {
|
16
22
|
text: "Branches",
|
17
23
|
icon_class: "fa-location-arrow",
|
@@ -41,6 +47,12 @@
|
|
41
47
|
icon_class: "fa-group",
|
42
48
|
url: dhatu.team_members_url,
|
43
49
|
has_permission: @current_user.has_read_permission?(Dhatu::TeamMember)
|
50
|
+
},
|
51
|
+
categories: {
|
52
|
+
text: "Categories",
|
53
|
+
icon_class: "fa-sitemap",
|
54
|
+
url: dhatu.categories_url,
|
55
|
+
has_permission: @current_user.has_read_permission?(Dhatu::Category)
|
44
56
|
}
|
45
57
|
}
|
46
58
|
%>
|
data/config/routes.rb
CHANGED
@@ -4,6 +4,14 @@ Dhatu::Engine.routes.draw do
|
|
4
4
|
|
5
5
|
scope :admin do
|
6
6
|
|
7
|
+
resources :services do
|
8
|
+
member do
|
9
|
+
put :update_status, as: :update_status
|
10
|
+
put :mark_as_featured
|
11
|
+
put :remove_from_featured
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
7
15
|
resources :branches do
|
8
16
|
member do
|
9
17
|
put :make_main, as: :make_main
|
data/lib/dhatu/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dhatu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kpvarma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -107,7 +107,7 @@ dependencies:
|
|
107
107
|
version: '0.1'
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.1.
|
110
|
+
version: 0.1.19
|
111
111
|
type: :runtime
|
112
112
|
prerelease: false
|
113
113
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -117,7 +117,7 @@ dependencies:
|
|
117
117
|
version: '0.1'
|
118
118
|
- - ">="
|
119
119
|
- !ruby/object:Gem::Version
|
120
|
-
version: 0.1.
|
120
|
+
version: 0.1.19
|
121
121
|
- !ruby/object:Gem::Dependency
|
122
122
|
name: pattana
|
123
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -414,6 +414,7 @@ files:
|
|
414
414
|
- app/controllers/dhatu/offers_controller.rb
|
415
415
|
- app/controllers/dhatu/resource_controller.rb
|
416
416
|
- app/controllers/dhatu/sections_controller.rb
|
417
|
+
- app/controllers/dhatu/services_controller.rb
|
417
418
|
- app/controllers/dhatu/team_members_controller.rb
|
418
419
|
- app/controllers/dhatu/testimonials_controller.rb
|
419
420
|
- app/helpers/dhatu/application_helper.rb
|
@@ -426,6 +427,7 @@ files:
|
|
426
427
|
- app/models/dhatu/event.rb
|
427
428
|
- app/models/dhatu/offer.rb
|
428
429
|
- app/models/dhatu/section.rb
|
430
|
+
- app/models/dhatu/service.rb
|
429
431
|
- app/models/dhatu/team_member.rb
|
430
432
|
- app/models/dhatu/testimonial.rb
|
431
433
|
- app/models/image/category_image.rb
|
@@ -462,6 +464,11 @@ files:
|
|
462
464
|
- app/views/dhatu/sections/_row.html.erb
|
463
465
|
- app/views/dhatu/sections/_show.html.erb
|
464
466
|
- app/views/dhatu/sections/index.html.erb
|
467
|
+
- app/views/dhatu/services/_form.html.erb
|
468
|
+
- app/views/dhatu/services/_index.html.erb
|
469
|
+
- app/views/dhatu/services/_row.html.erb
|
470
|
+
- app/views/dhatu/services/_show.html.erb
|
471
|
+
- app/views/dhatu/services/index.html.erb
|
465
472
|
- app/views/dhatu/team_members/_form.html.erb
|
466
473
|
- app/views/dhatu/team_members/_index.html.erb
|
467
474
|
- app/views/dhatu/team_members/_row.html.erb
|