dhatu 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|