dhatu 0.1.0

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.
Files changed (96) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +114 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/dhatu_manifest.js +2 -0
  6. data/app/assets/javascripts/dhatu/application.js +13 -0
  7. data/app/assets/stylesheets/dhatu/application.css +15 -0
  8. data/app/controllers/dhatu/application_controller.rb +25 -0
  9. data/app/controllers/dhatu/blog_posts_controller.rb +84 -0
  10. data/app/controllers/dhatu/contact_informations_controller.rb +84 -0
  11. data/app/controllers/dhatu/dashboard_controller.rb +24 -0
  12. data/app/controllers/dhatu/events_controller.rb +84 -0
  13. data/app/controllers/dhatu/offers_controller.rb +84 -0
  14. data/app/controllers/dhatu/resource_controller.rb +13 -0
  15. data/app/controllers/dhatu/sections_controller.rb +83 -0
  16. data/app/controllers/dhatu/team_members_controller.rb +84 -0
  17. data/app/controllers/dhatu/testimonials_controller.rb +84 -0
  18. data/app/helpers/dhatu/application_helper.rb +4 -0
  19. data/app/jobs/dhatu/application_job.rb +4 -0
  20. data/app/mailers/dhatu/application_mailer.rb +6 -0
  21. data/app/models/dhatu/application_record.rb +8 -0
  22. data/app/models/dhatu/blog_post.rb +62 -0
  23. data/app/models/dhatu/contact_information.rb +88 -0
  24. data/app/models/dhatu/event.rb +56 -0
  25. data/app/models/dhatu/offer.rb +55 -0
  26. data/app/models/dhatu/section.rb +82 -0
  27. data/app/models/dhatu/team_member.rb +59 -0
  28. data/app/models/dhatu/testimonial.rb +57 -0
  29. data/app/views/dhatu/blog_posts/_form.html.erb +42 -0
  30. data/app/views/dhatu/blog_posts/_index.html.erb +58 -0
  31. data/app/views/dhatu/blog_posts/_row.html.erb +28 -0
  32. data/app/views/dhatu/blog_posts/_show.html.erb +120 -0
  33. data/app/views/dhatu/blog_posts/index.html.erb +56 -0
  34. data/app/views/dhatu/contact_informations/_form.html.erb +104 -0
  35. data/app/views/dhatu/contact_informations/_index.html.erb +51 -0
  36. data/app/views/dhatu/contact_informations/_row.html.erb +26 -0
  37. data/app/views/dhatu/contact_informations/_show.html.erb +150 -0
  38. data/app/views/dhatu/contact_informations/index.html.erb +46 -0
  39. data/app/views/dhatu/dashboard/_index.html.erb +58 -0
  40. data/app/views/dhatu/dashboard/index.html.erb +18 -0
  41. data/app/views/dhatu/events/_form.html.erb +40 -0
  42. data/app/views/dhatu/events/_index.html.erb +58 -0
  43. data/app/views/dhatu/events/_row.html.erb +28 -0
  44. data/app/views/dhatu/events/_show.html.erb +120 -0
  45. data/app/views/dhatu/events/index.html.erb +45 -0
  46. data/app/views/dhatu/offers/_form.html.erb +39 -0
  47. data/app/views/dhatu/offers/_index.html.erb +57 -0
  48. data/app/views/dhatu/offers/_row.html.erb +28 -0
  49. data/app/views/dhatu/offers/_show.html.erb +118 -0
  50. data/app/views/dhatu/offers/index.html.erb +46 -0
  51. data/app/views/dhatu/sections/_form.html.erb +60 -0
  52. data/app/views/dhatu/sections/_index.html.erb +53 -0
  53. data/app/views/dhatu/sections/_row.html.erb +25 -0
  54. data/app/views/dhatu/sections/_show.html.erb +152 -0
  55. data/app/views/dhatu/sections/index.html.erb +53 -0
  56. data/app/views/dhatu/team_members/_form.html.erb +56 -0
  57. data/app/views/dhatu/team_members/_index.html.erb +62 -0
  58. data/app/views/dhatu/team_members/_row.html.erb +35 -0
  59. data/app/views/dhatu/team_members/_show.html.erb +93 -0
  60. data/app/views/dhatu/team_members/index.html.erb +46 -0
  61. data/app/views/dhatu/testimonials/_form.html.erb +36 -0
  62. data/app/views/dhatu/testimonials/_index.html.erb +64 -0
  63. data/app/views/dhatu/testimonials/_row.html.erb +36 -0
  64. data/app/views/dhatu/testimonials/_show.html.erb +133 -0
  65. data/app/views/dhatu/testimonials/index.html.erb +46 -0
  66. data/app/views/layouts/dhatu/application.html.erb +14 -0
  67. data/app/views/layouts/kuppayam/_footer.html.erb +25 -0
  68. data/app/views/layouts/kuppayam/_header.html.erb +43 -0
  69. data/app/views/layouts/kuppayam/_navbar.html.erb +55 -0
  70. data/app/views/layouts/kuppayam/_sidebar.html.erb +219 -0
  71. data/app/views/pattana/dashboard/_index.html.erb +35 -0
  72. data/config/routes.rb +63 -0
  73. data/db/master_data/features.csv +16 -0
  74. data/lib/dhatu.rb +5 -0
  75. data/lib/dhatu/engine.rb +31 -0
  76. data/lib/dhatu/factories.rb +7 -0
  77. data/lib/dhatu/version.rb +3 -0
  78. data/lib/tasks/dhatu/data.rake +91 -0
  79. data/lib/tasks/dhatu/master_data.rake +48 -0
  80. data/spec/dummy/spec/factories/blog_post.rb +48 -0
  81. data/spec/dummy/spec/factories/blog_post_cover_image.rb +13 -0
  82. data/spec/dummy/spec/factories/blog_post_gallery_image.rb +13 -0
  83. data/spec/dummy/spec/factories/contact_information.rb +63 -0
  84. data/spec/dummy/spec/factories/event.rb +46 -0
  85. data/spec/dummy/spec/factories/event_cover_image.rb +13 -0
  86. data/spec/dummy/spec/factories/event_gallery_image.rb +13 -0
  87. data/spec/dummy/spec/factories/offer.rb +43 -0
  88. data/spec/dummy/spec/factories/offer_cover_image.rb +13 -0
  89. data/spec/dummy/spec/factories/offer_gallery_image.rb +13 -0
  90. data/spec/dummy/spec/factories/section.rb +50 -0
  91. data/spec/dummy/spec/factories/section_cover_image.rb +13 -0
  92. data/spec/dummy/spec/factories/section_gallery_image.rb +13 -0
  93. data/spec/dummy/spec/factories/team_member.rb +47 -0
  94. data/spec/dummy/spec/factories/test.jpg +0 -0
  95. data/spec/dummy/spec/factories/testimonial.rb +44 -0
  96. metadata +520 -0
@@ -0,0 +1,55 @@
1
+ <nav class="navbar user-info-navbar" role="navigation"><!-- User Info, Notifications and Menu Bar -->
2
+
3
+ <!-- Left links for user info navbar -->
4
+ <ul class="user-info-menu left-links list-inline list-unstyled">
5
+
6
+ <li class="hidden-sm hidden-xs">
7
+ <a href="#" data-toggle="sidebar">
8
+ <i class="fa-bars"></i>
9
+ </a>
10
+ </li>
11
+
12
+ </ul>
13
+
14
+ <!-- Right links for user info navbar -->
15
+ <ul class="user-info-menu right-links list-inline list-unstyled">
16
+ <li class="dropdown user-profile">
17
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
18
+
19
+ <%= display_image(@current_user, "profile_picture.image.small.url", width: "32", height: "auto", class: "img-circle img-inline userpic-32", alt: @current_user.display_name) %>
20
+
21
+ <span>
22
+ <%= @current_user.display_name %>
23
+ <i class="fa-angle-down"></i>
24
+ </span>
25
+
26
+ </a>
27
+
28
+ <ul class="dropdown-menu user-profile-menu list-unstyled">
29
+ <li>
30
+ <a href="#settings">
31
+ <i class="fa-wrench"></i>
32
+ Settings
33
+ </a>
34
+ </li>
35
+ <li>
36
+ <a href="#profile">
37
+ <i class="fa-user"></i>
38
+ Profile
39
+ </a>
40
+ </li>
41
+ <li>
42
+ <a href="#help">
43
+ <i class="fa-info"></i>
44
+ Help
45
+ </a>
46
+ </li>
47
+ <li class="last">
48
+ <%= link_to raw("<i class='fa-lock'></i>Sign Out"), usman.sign_out_path, method: :delete %>
49
+ </li>
50
+ </ul>
51
+ </li>
52
+
53
+ </ul>
54
+
55
+ </nav>
@@ -0,0 +1,219 @@
1
+ <%
2
+ dhatu_items = {
3
+ sections: {
4
+ text: "Sections",
5
+ icon_class: "fa-reorder",
6
+ url: dhatu.sections_url,
7
+ has_permission: @current_user.has_read_permission?(Dhatu::Section)
8
+ },
9
+ blog_posts: {
10
+ text: "Blog",
11
+ icon_class: "fa-newspaper-o",
12
+ url: dhatu.blog_posts_url,
13
+ has_permission: @current_user.has_read_permission?(Dhatu::BlogPost)
14
+ },
15
+ contact_informations: {
16
+ text: "Contact Info",
17
+ icon_class: "fa-phone-square",
18
+ url: dhatu.contact_informations_url,
19
+ has_permission: @current_user.has_read_permission?(Dhatu::ContactInformation)
20
+ },
21
+ offers: {
22
+ text: "Offers",
23
+ icon_class: "fa-gift",
24
+ url: dhatu.offers_url,
25
+ has_permission: @current_user.has_read_permission?(Dhatu::Offer)
26
+ },
27
+ events: {
28
+ text: "Events",
29
+ icon_class: "fa-calendar",
30
+ url: dhatu.events_url,
31
+ has_permission: @current_user.has_read_permission?(Dhatu::Event)
32
+ },
33
+ testimonials: {
34
+ text: "Testimonials",
35
+ icon_class: "fa-comment",
36
+ url: dhatu.testimonials_url,
37
+ has_permission: @current_user.has_read_permission?(Dhatu::Testimonial)
38
+ },
39
+ team: {
40
+ text: "Team",
41
+ icon_class: "fa-group",
42
+ url: dhatu.team_members_url,
43
+ has_permission: @current_user.has_read_permission?(Dhatu::TeamMember)
44
+ }
45
+ }
46
+ %>
47
+ <%
48
+ user_items = {
49
+ users: {
50
+ text: "Manage Users",
51
+ icon_class: "fa-user",
52
+ url: usman.users_url,
53
+ has_permission: @current_user.has_read_permission?(User)
54
+ },
55
+ registrations: {
56
+ text: "Manage Registrations",
57
+ icon_class: "fa-mobile",
58
+ url: usman.registrations_url,
59
+ has_permission: @current_user.has_read_permission?(Registration)
60
+ },
61
+ roles: {
62
+ text: "Manage Roles",
63
+ icon_class: "linecons-graduation-cap",
64
+ url: usman.roles_url,
65
+ has_permission: @current_user.has_read_permission?(Role)
66
+ },
67
+ permissions: {
68
+ text: "Manage Permissions",
69
+ icon_class: "fa-lock",
70
+ url: usman.permissions_url,
71
+ has_permission: @current_user.has_read_permission?(Permission)
72
+ }
73
+ }
74
+ %>
75
+ <%
76
+ configuration_items = {
77
+ features: {
78
+ text: "Manage Features",
79
+ icon_class: "linecons-diamond",
80
+ url: usman.features_url,
81
+ has_permission: @current_user.has_read_permission?(Feature)
82
+ }
83
+ }
84
+ %>
85
+ <%
86
+ pattana_items = {
87
+ countries: {
88
+ text: "Manage Countries",
89
+ icon_class: "fa-flag-checkered",
90
+ url: pattana.countries_url,
91
+ has_permission: @current_user.has_read_permission?(Country)
92
+ },
93
+ regions: {
94
+ text: "Manage Regions",
95
+ icon_class: "fa-globe",
96
+ url: pattana.regions_url,
97
+ has_permission: @current_user.has_read_permission?(Region)
98
+ },
99
+ cities: {
100
+ text: "Manage Cities",
101
+ icon_class: "fa-map-marker",
102
+ url: pattana.cities_url,
103
+ has_permission: @current_user.has_read_permission?(City)
104
+ },
105
+
106
+ }
107
+ %>
108
+
109
+ <div class="sidebar-menu toggle-others fixed collapsed">
110
+
111
+ <div class="sidebar-menu-inner">
112
+
113
+ <header class="logo-env">
114
+ <!-- logo -->
115
+ <div class="logo">
116
+ <a href="/" class="logo-expanded"><img src="/assets/logo.png" width="180" alt="" /></a>
117
+ <a href="/" class="logo-collapsed"><img src="/assets/logo-small.png" width="40" alt="" /></a>
118
+ </div>
119
+
120
+ <!-- This will toggle the mobile menu and will be visible only on mobile devices -->
121
+ <div class="mobile-menu-toggle visible-xs">
122
+ <!-- <a href="#" data-toggle="notifications-menu">
123
+ <i class="fa-bell-o"></i><span class="badge badge-success">7</span>
124
+ </a> -->
125
+ <a href="#" data-toggle="user-info-menu">
126
+ <%= display_image(@current_user, "profile_picture.image.small.url", width: "32", height: "auto", class: "img-circle img-inline userpic-32", alt: @current_user.display_name) %>
127
+ </a>
128
+ <a href="#" data-toggle="mobile-menu"><i class="fa-bars"></i></a>
129
+ </div>
130
+ </header>
131
+
132
+ <!-- add class "multiple-expanded" to allow multiple submenus to open -->
133
+ <!-- class "auto-inherit-active-class" will automatically add "active" class for parent elements who are marked already with class "active" -->
134
+ <ul id="main-menu" class="main-menu multiple-expanded auto-inherit-active-class">
135
+ <!-- Admin Dashboard -->
136
+ <% if @current_user.super_admin? || @current_user.has_role?("Site Admin") %>
137
+ <li class="<%= nav_active?('admin/dashboard') ? 'active' : '' %>">
138
+ <%= link_to raw("<i class=\"linecons-desktop\"></i> <span class='title'>Dashboard</span>"), dhatu.dashboard_path %>
139
+ </li>
140
+ <% else %>
141
+ <li class="<%= nav_active?('profile/dashboard') ? 'active' : '' %>">
142
+ <%= link_to raw("<i class=\"linecons-desktop\"></i> <span class='title'>Dashboard</span>"), dhatu.my_account_url %>
143
+ </li>
144
+ <% end %>
145
+
146
+ <li class="">
147
+ <a href="#">
148
+ <i class="fa-trello"></i>
149
+ <span class="title">Manage Contents</span>
150
+ </a>
151
+ <ul>
152
+ <% dhatu_items.each do |key, values| %>
153
+ <% next unless values[:has_permission] %>
154
+ <li class="">
155
+ <%= link_to raw("<i class=\"#{values[:icon_class]}\"></i> <span class='title'>#{values[:text]}</span>"), values[:url] %>
156
+ </li>
157
+ <% end %>
158
+ </ul>
159
+ </li>
160
+
161
+ <li class="">
162
+ <a href="#">
163
+ <i class="fa-group"></i>
164
+ <span class="title">Manage Users</span>
165
+ </a>
166
+ <ul>
167
+ <% user_items.each do |key, values| %>
168
+ <% next unless values[:has_permission] %>
169
+ <li class="">
170
+ <%= link_to raw("<i class=\"#{values[:icon_class]}\"></i> <span class='title'>#{values[:text]}</span>"), values[:url] %>
171
+ </li>
172
+ <% end %>
173
+ </ul>
174
+ </li>
175
+
176
+ <li class="">
177
+ <a href="#">
178
+ <i class="linecons-params"></i>
179
+ <span class="title">Configure</span>
180
+ </a>
181
+ <ul>
182
+ <% configuration_items.each do |key, values| %>
183
+ <% next unless values[:has_permission] %>
184
+ <li class="">
185
+ <%= link_to raw("<i class=\"#{values[:icon_class]}\"></i> <span class='title'>#{values[:text]}</span>"), values[:url] %>
186
+ </li>
187
+ <% end %>
188
+ </ul>
189
+ </li>
190
+
191
+ <li class="">
192
+ <a href="#">
193
+ <i class="fa-globe"></i>
194
+ <span class="title">Manage Location</span>
195
+ </a>
196
+ <ul>
197
+ <% pattana_items.each do |key, values| %>
198
+ <% next unless values[:has_permission] %>
199
+ <li class="">
200
+ <%= link_to raw("<i class=\"#{values[:icon_class]}\"></i> <span class='title'>#{values[:text]}</span>"), values[:url] %>
201
+ </li>
202
+ <% end %>
203
+ </ul>
204
+ </li>
205
+
206
+ <li class="<%= nav_active?('profile/profile') ? 'active' : '' %>">
207
+ <a href="#"><i class="linecons-user"></i><span class="title">My Account</span></a>
208
+ <ul>
209
+ <li class="<%= nav_class("profile/settings") %>">
210
+ <%= link_to raw("<i class=\"linecons-cog\"></i> <span class='title'>User Settings</span>"), "#" %>
211
+ </li>
212
+ </ul>
213
+ </li>
214
+
215
+ </ul>
216
+
217
+ </div>
218
+
219
+ </div>
@@ -0,0 +1,35 @@
1
+ <%
2
+ pattana_items = {
3
+ countries: {
4
+ text: "Countries",
5
+ icon_class: "fa-flag-checkered",
6
+ url: pattana.countries_url,
7
+ has_permission: @current_user.has_read_permission?(Country)
8
+ },
9
+ regions: {
10
+ text: "Regions",
11
+ icon_class: "fa-globe",
12
+ url: pattana.regions_url,
13
+ has_permission: @current_user.has_read_permission?(Region)
14
+ },
15
+ cities: {
16
+ text: "Cities",
17
+ icon_class: "fa-map-marker",
18
+ url: pattana.cities_url,
19
+ has_permission: @current_user.has_read_permission?(City)
20
+ },
21
+
22
+ }
23
+ %>
24
+
25
+ <% if (pattana_items.map{|x, y| y[:has_permission] }).compact.uniq.any? %>
26
+
27
+ <h3 class="text-gray mt-50 mb-10">
28
+ Manage Locations <br>
29
+ <small class="text-muted">Configure Countries, Regions, Cities & Locality</small>
30
+ </h3>
31
+ <hr class="mb-30" style="border-top:1px solid #ddd;">
32
+
33
+ <%= render partial: "/layouts/dashboard/items", locals: { items: pattana_items } %>
34
+
35
+ <% end %>
data/config/routes.rb ADDED
@@ -0,0 +1,63 @@
1
+ Dhatu::Engine.routes.draw do
2
+
3
+ get '/dashboard/dhatu', to: "dashboard#index", as: :dashboard
4
+
5
+ scope :admin do
6
+
7
+ resources :contact_informations 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
+
15
+ resources :sections do
16
+ member do
17
+ put :update_status, as: :update_status
18
+ end
19
+ end
20
+
21
+ resources :testimonials do
22
+ member do
23
+ put :update_status, as: :update_status
24
+ put :mark_as_featured
25
+ put :remove_from_featured
26
+ end
27
+ end
28
+
29
+ resources :events do
30
+ member do
31
+ put :update_status, as: :update_status
32
+ put :mark_as_featured
33
+ put :remove_from_featured
34
+ end
35
+ end
36
+
37
+ resources :blog_posts do
38
+ member do
39
+ put :update_status, as: :update_status
40
+ put :mark_as_featured
41
+ put :remove_from_featured
42
+ end
43
+ end
44
+
45
+ resources :offers do
46
+ member do
47
+ put :update_status
48
+ put :mark_as_featured
49
+ put :remove_from_featured
50
+ end
51
+ end
52
+
53
+ resources :team_members do
54
+ member do
55
+ put :update_status, as: :update_status
56
+ put :mark_as_featured
57
+ put :remove_from_featured
58
+ end
59
+ end
60
+
61
+ end
62
+
63
+ end
@@ -0,0 +1,16 @@
1
+ name,status
2
+ User,published
3
+ Registration,unpublished
4
+ Role,published
5
+ Permission,published
6
+ Country,published
7
+ Region,published
8
+ City,published
9
+ Locality,published
10
+ Dhatu::Section,published
11
+ Dhatu::BlogPost,published
12
+ Dhatu::ContactInformation,published
13
+ Dhatu::Offer,published
14
+ Dhatu::Event,published
15
+ Dhatu::Testimonial,published
16
+ Dhatu::TeamMember,published
data/lib/dhatu.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "dhatu/engine"
2
+
3
+ module Dhatu
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,31 @@
1
+ module Dhatu
2
+ class Engine < ::Rails::Engine
3
+
4
+ # require 'pry'
5
+ require 'kaminari'
6
+ require 'kuppayam'
7
+ require 'colorize'
8
+ require 'colorized_string'
9
+ require 'active_model_serializers'
10
+
11
+ isolate_namespace Dhatu
12
+
13
+ config.before_initialize do
14
+ config.i18n.load_path += Dir["#{config.root}/config/locales/**/*.yml"]
15
+ end
16
+
17
+ config.generators do |g|
18
+ g.test_framework :rspec, :fixture => false
19
+ g.fixture_replacement :factory_girl, :dir => 'spec/dummy/spec/factories'
20
+ g.assets false
21
+ g.helper false
22
+ end
23
+
24
+ config.to_prepare do
25
+ Dir.glob(Rails.root + "app/decorators/**/*_decorator*.rb").each do |c|
26
+ require_dependency(c)
27
+ end
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,7 @@
1
+ # This is to expose the factories in this gem
2
+ # By default, only files in /lib is exported
3
+ # hence this hack.
4
+ # Read More: https://stackoverflow.com/questions/31700345/how-can-i-share-the-factories-that-i-have-in-a-gem-and-use-it-in-other-project
5
+
6
+ GEM_DHATU_ROOT = File.dirname(File.dirname(File.dirname(__FILE__)))
7
+ Dir[File.join(GEM_DHATU_ROOT, 'spec', 'dummy', 'spec', 'factories', '**','*.rb')].each { |file| require(file) }
@@ -0,0 +1,3 @@
1
+ module Dhatu
2
+ VERSION = '0.1.0'
3
+ end