dhatu 0.1.0

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