appyantra_admin 0.0.1

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 (261) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +24 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.md +101 -0
  5. data/Rakefile +26 -0
  6. data/app/assets/images/appyantra_admin/.gitkeep +0 -0
  7. data/app/assets/images/appyantra_admin/breadcrumb_divider.png +0 -0
  8. data/app/assets/images/appyantra_admin/btn_submit.png +0 -0
  9. data/app/assets/images/appyantra_admin/btn_submit_2.png +0 -0
  10. data/app/assets/images/appyantra_admin/btn_view_site.png +0 -0
  11. data/app/assets/images/appyantra_admin/header_bg.png +0 -0
  12. data/app/assets/images/appyantra_admin/header_shadow.png +0 -0
  13. data/app/assets/images/appyantra_admin/icn_add_user.png +0 -0
  14. data/app/assets/images/appyantra_admin/icn_alert_error.png +0 -0
  15. data/app/assets/images/appyantra_admin/icn_alert_info.png +0 -0
  16. data/app/assets/images/appyantra_admin/icn_alert_success.png +0 -0
  17. data/app/assets/images/appyantra_admin/icn_alert_warning.png +0 -0
  18. data/app/assets/images/appyantra_admin/icn_audio.png +0 -0
  19. data/app/assets/images/appyantra_admin/icn_categories.png +0 -0
  20. data/app/assets/images/appyantra_admin/icn_edit.png +0 -0
  21. data/app/assets/images/appyantra_admin/icn_edit_article.png +0 -0
  22. data/app/assets/images/appyantra_admin/icn_folder.png +0 -0
  23. data/app/assets/images/appyantra_admin/icn_jump_back.png +0 -0
  24. data/app/assets/images/appyantra_admin/icn_logout.png +0 -0
  25. data/app/assets/images/appyantra_admin/icn_new_article.png +0 -0
  26. data/app/assets/images/appyantra_admin/icn_photo.png +0 -0
  27. data/app/assets/images/appyantra_admin/icn_profile.png +0 -0
  28. data/app/assets/images/appyantra_admin/icn_search.png +0 -0
  29. data/app/assets/images/appyantra_admin/icn_security.png +0 -0
  30. data/app/assets/images/appyantra_admin/icn_settings.png +0 -0
  31. data/app/assets/images/appyantra_admin/icn_tags.png +0 -0
  32. data/app/assets/images/appyantra_admin/icn_trash.png +0 -0
  33. data/app/assets/images/appyantra_admin/icn_user.png +0 -0
  34. data/app/assets/images/appyantra_admin/icn_video.png +0 -0
  35. data/app/assets/images/appyantra_admin/icn_view_users.png +0 -0
  36. data/app/assets/images/appyantra_admin/module_footer_bg.png +0 -0
  37. data/app/assets/images/appyantra_admin/post_message.png +0 -0
  38. data/app/assets/images/appyantra_admin/secondary_bar.png +0 -0
  39. data/app/assets/images/appyantra_admin/secondary_bar_shadow.png +0 -0
  40. data/app/assets/images/appyantra_admin/sidebar.png +0 -0
  41. data/app/assets/images/appyantra_admin/sidebar_divider.png +0 -0
  42. data/app/assets/images/appyantra_admin/sidebar_shadow.png +0 -0
  43. data/app/assets/images/appyantra_admin/table_sorter_header.png +0 -0
  44. data/app/assets/images/appyantra_admin/trash.png +0 -0
  45. data/app/assets/images/appyantra_admin/view.png +0 -0
  46. data/app/assets/images/website/600x300.gif +0 -0
  47. data/app/assets/images/website/alert-overlay.png +0 -0
  48. data/app/assets/images/website/bg.png +0 -0
  49. data/app/assets/images/website/link_bg.png +0 -0
  50. data/app/assets/images/website/link_border.png +0 -0
  51. data/app/assets/images/website/place_holder_img.png +0 -0
  52. data/app/assets/images/website/triangle.gif +0 -0
  53. data/app/assets/javascripts/appyantra_admin/admin_settings.js.coffee +3 -0
  54. data/app/assets/javascripts/appyantra_admin/admins/profiles.js.coffee +3 -0
  55. data/app/assets/javascripts/appyantra_admin/application.js +9 -0
  56. data/app/assets/javascripts/appyantra_admin/hideshow.js +39 -0
  57. data/app/assets/javascripts/appyantra_admin/home.js.coffee +3 -0
  58. data/app/assets/javascripts/appyantra_admin/jquery-1.5.2.min.js +16 -0
  59. data/app/assets/javascripts/appyantra_admin/jquery.equalHeight.js +20 -0
  60. data/app/assets/javascripts/appyantra_admin/jquery.tablesorter.min.js +4 -0
  61. data/app/assets/javascripts/appyantra_admin/managed_models.js.coffee +7 -0
  62. data/app/assets/javascripts/website/application.js +8 -0
  63. data/app/assets/javascripts/website/ie/DD_belatedPNG_0.0.8a-min.js +13 -0
  64. data/app/assets/javascripts/website/jquery.easing.1.3.js +205 -0
  65. data/app/assets/javascripts/website/jquery.roundabout-1.0.min.js +41 -0
  66. data/app/assets/javascripts/website/jquery.roundabout-shapes-1.1.js +150 -0
  67. data/app/assets/stylesheets/appyantra_admin/admin_settings.css.scss +3 -0
  68. data/app/assets/stylesheets/appyantra_admin/admins/profiles.css.scss +3 -0
  69. data/app/assets/stylesheets/appyantra_admin/application.css +7 -0
  70. data/app/assets/stylesheets/appyantra_admin/ie/ie.css +43 -0
  71. data/app/assets/stylesheets/appyantra_admin/main.css +1191 -0
  72. data/app/assets/stylesheets/appyantra_admin/managed_models.css.scss +3 -0
  73. data/app/assets/stylesheets/website/application.css +7 -0
  74. data/app/assets/stylesheets/website/reset.css +53 -0
  75. data/app/assets/stylesheets/website/styles.css +889 -0
  76. data/app/controllers/appyantra_admin/admin_settings_controller.rb +101 -0
  77. data/app/controllers/appyantra_admin/application_controller.rb +30 -0
  78. data/app/controllers/appyantra_admin/assets_controller.rb +91 -0
  79. data/app/controllers/appyantra_admin/home_controller.rb +24 -0
  80. data/app/controllers/appyantra_admin/pages_controller.rb +123 -0
  81. data/app/controllers/appyantra_admin/passwords_controller.rb +28 -0
  82. data/app/controllers/appyantra_admin/profiles_controller.rb +94 -0
  83. data/app/controllers/appyantra_admin/sessions_controller.rb +20 -0
  84. data/app/controllers/appyantra_admin/users/confirmations_controller.rb +15 -0
  85. data/app/controllers/appyantra_admin/users/passwords_controller.rb +16 -0
  86. data/app/controllers/appyantra_admin/users/registrations_controller.rb +16 -0
  87. data/app/controllers/appyantra_admin/users/sessions_controller.rb +15 -0
  88. data/app/controllers/appyantra_admin/users/user_paths.rb +33 -0
  89. data/app/controllers/appyantra_admin/users_controller.rb +92 -0
  90. data/app/helpers/appyantra_admin/admin_settings_helper.rb +9 -0
  91. data/app/helpers/appyantra_admin/application_helper.rb +73 -0
  92. data/app/helpers/appyantra_admin/pages_helper.rb +38 -0
  93. data/app/models/activity_feed.rb +5 -0
  94. data/app/models/activity_log_observer.rb +58 -0
  95. data/app/models/admin.rb +11 -0
  96. data/app/models/admin_setting.rb +74 -0
  97. data/app/models/encrypted_text.rb +20 -0
  98. data/app/models/link.rb +5 -0
  99. data/app/models/page.rb +24 -0
  100. data/app/models/page_keyword.rb +4 -0
  101. data/app/models/person.rb +14 -0
  102. data/app/models/short_text.rb +23 -0
  103. data/app/models/text.rb +11 -0
  104. data/app/models/user.rb +11 -0
  105. data/app/sweepers/appyantra_admin/pages_sweeper.rb +20 -0
  106. data/app/views/appyantra_admin/admin_settings/edit.html.haml +7 -0
  107. data/app/views/appyantra_admin/admin_settings/index.html.haml +56 -0
  108. data/app/views/appyantra_admin/admin_settings/mail_settings.html.haml +7 -0
  109. data/app/views/appyantra_admin/admin_settings/new.html.haml +7 -0
  110. data/app/views/appyantra_admin/assets/display.js.haml +3 -0
  111. data/app/views/appyantra_admin/assets/edit.html.haml +7 -0
  112. data/app/views/appyantra_admin/assets/new.html.haml +7 -0
  113. data/app/views/appyantra_admin/assets/show.html.haml +55 -0
  114. data/app/views/appyantra_admin/home/index.html.haml +74 -0
  115. data/app/views/appyantra_admin/mailer/reset_password_instructions.html.haml +6 -0
  116. data/app/views/appyantra_admin/mailer/unlock_instructions.html.haml +6 -0
  117. data/app/views/appyantra_admin/pages/_form.html.haml +40 -0
  118. data/app/views/appyantra_admin/pages/_page.html.haml +43 -0
  119. data/app/views/appyantra_admin/pages/edit.html.haml +19 -0
  120. data/app/views/appyantra_admin/pages/index.html.haml +46 -0
  121. data/app/views/appyantra_admin/pages/new.html.haml +7 -0
  122. data/app/views/appyantra_admin/pages/show.html.haml +1 -0
  123. data/app/views/appyantra_admin/passwords/edit.html.haml +15 -0
  124. data/app/views/appyantra_admin/passwords/new.html.haml +11 -0
  125. data/app/views/appyantra_admin/profiles/_admin_profile_form.html.haml +12 -0
  126. data/app/views/appyantra_admin/profiles/_admin_user.html.haml +11 -0
  127. data/app/views/appyantra_admin/profiles/edit.html.haml +18 -0
  128. data/app/views/appyantra_admin/profiles/index.html.haml +51 -0
  129. data/app/views/appyantra_admin/profiles/new.html.haml +6 -0
  130. data/app/views/appyantra_admin/profiles/show.html.haml +10 -0
  131. data/app/views/appyantra_admin/profiles/show.js.haml +3 -0
  132. data/app/views/appyantra_admin/sessions/new.html.haml +17 -0
  133. data/app/views/appyantra_admin/shared/_asset_item.html.haml +15 -0
  134. data/app/views/appyantra_admin/shared/_assets_list.html.haml +6 -0
  135. data/app/views/appyantra_admin/shared/_formtastic_semantic_form.html.haml +3 -0
  136. data/app/views/appyantra_admin/shared/_hash_form.html.haml +7 -0
  137. data/app/views/appyantra_admin/shared/_links.haml +6 -0
  138. data/app/views/appyantra_admin/shared/types/_encrypted_text.html.haml +1 -0
  139. data/app/views/appyantra_admin/shared/types/_link.html.haml +1 -0
  140. data/app/views/appyantra_admin/shared/types/_short_text.html.haml +1 -0
  141. data/app/views/appyantra_admin/shared/types/_text.html.haml +1 -0
  142. data/app/views/appyantra_admin/unlocks/new.html.haml +10 -0
  143. data/app/views/appyantra_admin/users/_form.html.haml +12 -0
  144. data/app/views/appyantra_admin/users/_user.html.haml +11 -0
  145. data/app/views/appyantra_admin/users/edit.html.haml +18 -0
  146. data/app/views/appyantra_admin/users/index.html.haml +54 -0
  147. data/app/views/appyantra_admin/users/new.html.haml +6 -0
  148. data/app/views/appyantra_admin/users/show.html.haml +10 -0
  149. data/app/views/appyantra_admin/users/show.js.haml +3 -0
  150. data/app/views/layouts/application.html.haml +98 -0
  151. data/app/views/layouts/appyantra_admin/application.html.haml +106 -0
  152. data/app/views/layouts/appyantra_admin/landing_page.html.haml +30 -0
  153. data/app/views/layouts/appyantra_admin/website.html.haml +96 -0
  154. data/app/views/pages/_google_analytics.html.haml +11 -0
  155. data/app/views/pages/_meta_tags.html.haml +2 -0
  156. data/app/views/pages/page.html.haml +4 -0
  157. data/app/views/users/confirmations/new.html.haml +26 -0
  158. data/app/views/users/mailer/confirmation_instructions.html.haml +4 -0
  159. data/app/views/users/mailer/reset_password_instructions.html.haml +6 -0
  160. data/app/views/users/mailer/unlock_instructions.html.haml +5 -0
  161. data/app/views/users/passwords/edit.html.haml +31 -0
  162. data/app/views/users/passwords/new.html.haml +22 -0
  163. data/app/views/users/registrations/edit.html.haml +42 -0
  164. data/app/views/users/registrations/new.html.haml +35 -0
  165. data/app/views/users/sessions/new.html.haml +26 -0
  166. data/app/views/website/index.html.haml +50 -0
  167. data/appyantra_admin.gemspec +24 -0
  168. data/config/initializers/devise.rb +209 -0
  169. data/config/initializers/formtastic.rb +82 -0
  170. data/config/initializers/mail_settings.rb +11 -0
  171. data/config/initializers/secret_token.rb +7 -0
  172. data/config/initializers/session_store.rb +8 -0
  173. data/config/initializers/wrap_parameters.rb +14 -0
  174. data/config/routes.rb +71 -0
  175. data/db/migrate/20120123093508_create_links.rb +15 -0
  176. data/db/migrate/20120123093916_create_texts.rb +10 -0
  177. data/db/migrate/20120123094124_create_admin_settings.rb +12 -0
  178. data/db/migrate/20120124202814_devise_create_admins.rb +25 -0
  179. data/db/migrate/20120125093505_add_name_to_admins.rb +6 -0
  180. data/db/migrate/20120217075442_devise_create_users.rb +25 -0
  181. data/db/migrate/20120217090326_add_name_to_users.rb +6 -0
  182. data/db/migrate/20120224210009_create_pages.rb +19 -0
  183. data/db/migrate/20120302084134_add_group_to_admin_settings.rb +5 -0
  184. data/db/migrate/20120309075847_create_encrypted_texts.rb +10 -0
  185. data/db/migrate/20120309075904_create_short_texts.rb +10 -0
  186. data/db/migrate/20120312234850_add_seo_to_pages.rb +5 -0
  187. data/db/migrate/20120312235235_create_keywords.rb +10 -0
  188. data/db/migrate/20120314063338_create_activity_feeds.rb +15 -0
  189. data/lib/appyantra_admin.rb +49 -0
  190. data/lib/appyantra_admin/crypto.rb +43 -0
  191. data/lib/appyantra_admin/engine.rb +17 -0
  192. data/lib/appyantra_admin/utils.rb +27 -0
  193. data/lib/appyantra_admin/version.rb +3 -0
  194. data/lib/generators/appyantra_admin/install/USAGE +8 -0
  195. data/lib/generators/appyantra_admin/install/install_generator.rb +34 -0
  196. data/lib/generators/appyantra_admin/install/templates/appyantra_admin.rb +28 -0
  197. data/lib/tasks/appyantra_admin_tasks.rake +47 -0
  198. data/script/rails +6 -0
  199. data/test/dummy/.gitignore +36 -0
  200. data/test/dummy/.rspec +1 -0
  201. data/test/dummy/Gemfile +43 -0
  202. data/test/dummy/Guardfile +19 -0
  203. data/test/dummy/README +261 -0
  204. data/test/dummy/Rakefile +8 -0
  205. data/test/dummy/app/assets/javascripts/application.js +9 -0
  206. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  207. data/test/dummy/app/controllers/application_controller.rb +3 -0
  208. data/test/dummy/app/helpers/application_helper.rb +2 -0
  209. data/test/dummy/app/models/product.rb +2 -0
  210. data/test/dummy/config.ru +4 -0
  211. data/test/dummy/config/application.rb +48 -0
  212. data/test/dummy/config/boot.rb +6 -0
  213. data/test/dummy/config/environment.rb +5 -0
  214. data/test/dummy/config/environments/development.rb +30 -0
  215. data/test/dummy/config/environments/production.rb +60 -0
  216. data/test/dummy/config/environments/test.rb +39 -0
  217. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  218. data/test/dummy/config/initializers/inflections.rb +10 -0
  219. data/test/dummy/config/initializers/mime_types.rb +5 -0
  220. data/test/dummy/config/initializers/secret_token.rb +7 -0
  221. data/test/dummy/config/initializers/session_store.rb +8 -0
  222. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  223. data/test/dummy/config/locales/en.yml +5 -0
  224. data/test/dummy/config/routes.rb +4 -0
  225. data/test/dummy/db/migrate/20120213070715_create_products.rb +11 -0
  226. data/test/dummy/db/seeds.rb +7 -0
  227. data/test/dummy/doc/README_FOR_APP +2 -0
  228. data/test/dummy/public/404.html +26 -0
  229. data/test/dummy/public/422.html +26 -0
  230. data/test/dummy/public/500.html +26 -0
  231. data/test/dummy/public/favicon.ico +0 -0
  232. data/test/dummy/public/robots.txt +5 -0
  233. data/test/dummy/script/rails +6 -0
  234. data/test/dummy/spec/controllers/appyantra_admin/admin_settings_controller_spec.rb +56 -0
  235. data/test/dummy/spec/controllers/appyantra_admin/assets_controller_spec.rb +64 -0
  236. data/test/dummy/spec/controllers/appyantra_admin/home_controller_spec.rb +28 -0
  237. data/test/dummy/spec/controllers/appyantra_admin/passwords_controller_spec.rb +40 -0
  238. data/test/dummy/spec/controllers/appyantra_admin/profiles_controller_spec.rb +88 -0
  239. data/test/dummy/spec/controllers/appyantra_admin/sessions_controller_spec.rb +32 -0
  240. data/test/dummy/spec/factories.rb +55 -0
  241. data/test/dummy/spec/factories/products.rb +9 -0
  242. data/test/dummy/spec/helpers/appyantra_admin/application_helper_spec.rb +31 -0
  243. data/test/dummy/spec/models/admin_setting_spec.rb +22 -0
  244. data/test/dummy/spec/models/admin_spec.rb +10 -0
  245. data/test/dummy/spec/models/encrypted_text_spec.rb +13 -0
  246. data/test/dummy/spec/models/link_spec.rb +5 -0
  247. data/test/dummy/spec/models/text_spec.rb +5 -0
  248. data/test/dummy/spec/requests/appyantra_admin/admin_user_auth_spec.rb +54 -0
  249. data/test/dummy/spec/requests/appyantra_admin/dashboard_spec.rb +34 -0
  250. data/test/dummy/spec/requests/appyantra_admin/mailer_spec.rb +72 -0
  251. data/test/dummy/spec/requests/appyantra_admin/manage_pages_spec.rb +209 -0
  252. data/test/dummy/spec/requests/appyantra_admin/manage_website_users_spec.rb +97 -0
  253. data/test/dummy/spec/requests/appyantra_admin/website_users_spec.rb +25 -0
  254. data/test/dummy/spec/routing/sessions_routing_spec.rb +11 -0
  255. data/test/dummy/spec/spec_helper.rb +51 -0
  256. data/test/dummy/spec/support/capybara.rb +7 -0
  257. data/test/dummy/spec/support/controller_macros.rb +8 -0
  258. data/test/dummy/spec/support/integration_macros.rb +40 -0
  259. data/test/dummy/spec/support/load_routes.rb +5 -0
  260. data/test/dummy/spec/support/matchers/user_matcher.rb +13 -0
  261. metadata +428 -0
@@ -0,0 +1,20 @@
1
+ require 'appyantra_admin/crypto'
2
+
3
+ class EncryptedText < ActiveRecord::Base
4
+
5
+ before_save :encrypt_value
6
+
7
+ def entity_value
8
+ AppyantraAdmin::Crypto.decrypt_from_base64(self.value)
9
+ end
10
+
11
+ def entity_value=(value)
12
+ self.value = value
13
+ self.save
14
+ end
15
+
16
+ def encrypt_value
17
+ self.value = AppyantraAdmin::Crypto.encrypt_to_base64(self.value)
18
+ end
19
+
20
+ end
@@ -0,0 +1,5 @@
1
+ class Link < ActiveRecord::Base
2
+ def entity_value
3
+ self.href
4
+ end
5
+ end
@@ -0,0 +1,24 @@
1
+ class Page < ActiveRecord::Base
2
+ # TODO soft delete feature and userstamp
3
+
4
+ belongs_to :last_updated_by, class_name: 'Admin', foreign_key: 'last_updated_by_id'
5
+ belongs_to :created_by, class_name: 'Admin', foreign_key: 'created_by_id'
6
+ has_many :keywords, class_name: 'PageKeyword'
7
+
8
+ validates :slug, uniqueness: true
9
+ validates :title, presence: true
10
+
11
+ def self.generate_slug title
12
+ # generate a slug
13
+ slug = title.parameterize
14
+ if Page.where(slug: slug).exists?
15
+ slug_count = Page.where(slug: slug).count
16
+ slug << '_' + (slug_count + 1).to_s
17
+ end
18
+ slug
19
+ end
20
+
21
+ def identifier
22
+ self.title
23
+ end
24
+ end
@@ -0,0 +1,4 @@
1
+ class PageKeyword < ActiveRecord::Base
2
+
3
+ end
4
+
@@ -0,0 +1,14 @@
1
+ module Person
2
+
3
+ def display_name
4
+ admin_name = ''
5
+ admin_name << self.first_name + ' ' if self.first_name
6
+ admin_name << self.last_name if self.last_name
7
+ if admin_name == ''
8
+ self.email
9
+ else
10
+ admin_name
11
+ end
12
+ end
13
+
14
+ end
@@ -0,0 +1,23 @@
1
+ class ShortText < ActiveRecord::Base
2
+
3
+ after_update :update_setting
4
+
5
+ def entity_value
6
+ self.value
7
+ end
8
+
9
+ def entity_value=(value)
10
+ self.value = value
11
+ self.save
12
+ end
13
+
14
+ def update_setting
15
+ # TODO try to move this code to the setting class and improve the design
16
+ parent_setting = AdminSetting.find_by_entity_id_and_entity_type(self.id,'ShortText')
17
+ if parent_setting
18
+ parent_setting.name = self.name
19
+ parent_setting.display_name = self.name.humanize
20
+ parent_setting.save
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,11 @@
1
+ class Text < ActiveRecord::Base
2
+
3
+ def entity_value
4
+ self.value
5
+ end
6
+
7
+ def entity_value=(value)
8
+ self.value = value
9
+ self.save
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class User < ActiveRecord::Base
2
+
3
+ devise :database_authenticatable,
4
+ :recoverable, :rememberable, :trackable, :validatable, :confirmable,
5
+ :registerable
6
+
7
+ # Setup accessible (or protected) attributes for your model
8
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name
9
+
10
+ include Person
11
+ end
@@ -0,0 +1,20 @@
1
+ module AppyantraAdmin
2
+ class PagesSweeper < ActionController::Caching::Sweeper
3
+
4
+ observe Page
5
+
6
+ def after_update(page)
7
+ expire_page_for page
8
+ end
9
+
10
+ def after_destroy(page)
11
+ expire_page_for page
12
+ end
13
+
14
+ private
15
+
16
+ def expire_page_for(page)
17
+ expire_page main_app.display_page_path(page.slug) if page && page.slug
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ %article.module.width_full
2
+ %header
3
+ %h3
4
+ Edit Setting (#{@setting.entity_type})
5
+ = render partial: '/appyantra_admin/shared/formtastic_semantic_form', |
6
+ locals: { form_object: @setting.entity, |
7
+ url: main_app.update_setting_path(@setting) } |
@@ -0,0 +1,56 @@
1
+ - settings_groups.each do |settings_entity|
2
+ - settings_group = settings_entity.group
3
+ .article
4
+ %article.module.width_3_quarter
5
+ %header
6
+ %h3.tabs_involved #{settings_group} Settings
7
+ .tab
8
+ - general_settings = fetch_group_settings(settings_group)
9
+ - general_settings.each do |setting|
10
+ = div_for setting do
11
+ %h4= setting.display_name.humanize
12
+ .setting_entity
13
+ = render partial: "/appyantra_admin/shared/types/#{setting.entity_type.underscore}", locals: { entity: setting.entity}
14
+ = link_to image_tag('/assets/appyantra_admin/icn_edit.png', title: 'Edit'), |
15
+ main_app.edit_setting_path(setting) |
16
+ = link_to image_tag('/assets/appyantra_admin/trash.png', title: 'Delete'), main_app.delete_setting_path(setting), confirm: 'Are you sure?', method: :delete
17
+ - if general_settings.empty?
18
+ .setting_entity
19
+ %h4 No settings created.
20
+ / end of #tab1
21
+ / end of settings article
22
+ %article.module.width_quarter
23
+ %header
24
+ %h3 Add a new setting
25
+ .mini_form_box
26
+ = form_tag main_app.new_setting_path, method: "post", class: "new_setting_form" do
27
+ %fieldset.string
28
+ = label_tag :setting_name, "Name"
29
+ = text_field_tag :setting_name
30
+ %fieldset.string
31
+ = label_tag :group, "Group"
32
+ = select_tag :group, options_for_select(['General', 'Google Analytics'])
33
+ %fieldset.select
34
+ = label_tag :entity_type, "Type"
35
+ = select_tag :entity_type, options_for_select(['Text', 'Link', 'ShortText', 'EncryptedText'])
36
+ = submit_tag "Add", class: 'alt_btn'
37
+ .spacer
38
+ .article#mail_settings
39
+ %article.module.width_3_quarter
40
+ %header
41
+ %h3.tabs_involved Mail Settings
42
+ .container
43
+ - mail_settings = fetch_group_settings('Mail')
44
+ - mail_settings.each do |setting|
45
+ = div_for setting do
46
+ %h4= setting.display_name.humanize
47
+ .setting_entity
48
+ = render partial: "/appyantra_admin/shared/types/#{setting.entity_type.underscore}", locals: { entity: setting.entity}
49
+ - if mail_settings.empty?
50
+ .setting_entity
51
+ = link_to 'Create Mail Settings', main_app.new_mail_settings_path
52
+ - else
53
+ .setting_entity
54
+ = link_to 'Edit Mail Settings', main_app.edit_mail_settings_path
55
+ .clear
56
+ .spacer
@@ -0,0 +1,7 @@
1
+ %article.module.width_full
2
+ %header
3
+ %h3 Edit Mail Settings
4
+ = render partial: 'appyantra_admin/shared/hash_form', |
5
+ locals: { hash: @mail_settings, |
6
+ url: main_app.update_mail_settings_path, action_label: 'Update', method: :put, hash_name: 'mail_settings' } |
7
+ .spacer
@@ -0,0 +1,7 @@
1
+ %article.module.width_full
2
+ %header
3
+ %h3
4
+ Create New Setting (#{@entity_type})
5
+ = render partial: '/appyantra_admin/shared/formtastic_semantic_form', |
6
+ locals: { form_object: @entity_object, |
7
+ url: "/appyantra_admin/settings/#{@group}/#{@entity_type}/#{@setting_name}" }
@@ -0,0 +1,3 @@
1
+ $.fn.highlightItem('#{@asset_object.id}');
2
+ $('div#display_asset_item').html("#{escape_javascript(render partial: '/appyantra_admin/shared/asset_item', locals: {asset_object: @asset_object})}");
3
+ $('div#display_asset_item').effect('highlight');
@@ -0,0 +1,7 @@
1
+ %article.module.width_full
2
+ %header
3
+ %h3
4
+ Edit #{@asset_name}
5
+ = render partial: '/appyantra_admin/shared/formtastic_semantic_form', |
6
+ locals: {form_object: @asset_object, |
7
+ url: "/appyantra_admin/assets/#{@asset_name}/#{@asset_object.id}"} |
@@ -0,0 +1,7 @@
1
+ %article.module.width_full
2
+ %header
3
+ %h3
4
+ Create New #{@asset_name}
5
+ = render partial: '/appyantra_admin/shared/formtastic_semantic_form', |
6
+ locals: {form_object: @asset_object, |
7
+ url: "/appyantra_admin/assets/#{@asset_name}"} |
@@ -0,0 +1,55 @@
1
+ - content_for :page_js do
2
+ - if @asset_object
3
+ $(function(){
4
+ $.fn.highlightItem('#{@asset_object.id}');
5
+ });
6
+ .article
7
+ %article.module.width_3_quarter
8
+ %header
9
+ %h3.tabs_involved
10
+ List of #{@asset_name.pluralize}
11
+ .new_button_frame
12
+ = form_tag "/appyantra_admin/assets/#{ @asset_name }/new", method: "get" do
13
+ = submit_tag "Create New", class: "alt_btn"
14
+ .tab_container
15
+ #tab1.tab_content
16
+ %table.tablesorter{:cellspacing => "0"}
17
+ %thead
18
+ %tr
19
+ %th
20
+ %input{:type => "checkbox"}/
21
+ %th Id
22
+ %th{:width => "280px"}= asset_display_field @asset_name
23
+ %th Created At
24
+ %th Updated At
25
+ %th Actions
26
+ %tbody
27
+ - @asset_objects.each do |asset_object|
28
+ %tr{:id => "asset_item_#{asset_object.id}"}
29
+ %td
30
+ %input{:type => "checkbox"}/
31
+ %td= asset_object.id
32
+ %td= asset_display_name asset_object
33
+ %td= display_date asset_object.created_at
34
+ %td= display_date asset_object.updated_at
35
+ %td
36
+ = link_to image_tag('/assets/appyantra_admin/view.png', title: 'View'), |
37
+ "/appyantra_admin/assets/#{@asset_name}/#{asset_object.id}/display", |
38
+ remote: true |
39
+ -#
40
+ = link_to image_tag('/assets/appyantra_admin/icn_edit.png', title: 'Edit'), |
41
+ "/appyantra_admin/assets/#{@asset_name}/#{asset_object.id}/edit" |
42
+ = link_to image_tag('/assets/appyantra_admin/trash.png', title: 'Delete'), "/appyantra_admin/assets/#{@asset_name}/#{asset_object.id}", confirm: 'Are you sure?', method: :delete
43
+ - if @asset_objects.empty?
44
+ %tr
45
+ %td
46
+ %td{:colspan => "5"}
47
+ %strong= @asset_name
48
+ has no assets!
49
+ / end of #tab1
50
+ / end of .tab_container
51
+ / end of article
52
+ #display_asset_item
53
+ - if @asset_object
54
+ = render partial: '/appyantra_admin/shared/asset_item', locals: {asset_object: @asset_object }
55
+ .clear
@@ -0,0 +1,74 @@
1
+ %article.module.width_full
2
+ %header
3
+ %h3 Stats (Dummy data, TBD)
4
+ .module_content
5
+ %article.stats_graph
6
+ %img{:alt => "", :height => "140", :src => "http://chart.apis.google.com/chart?chxr=0,0,3000&chxt=y&chs=520x140&cht=lc&chco=76A4FB,80C65A&chd=s:Tdjpsvyvttmiihgmnrst,OTbdcfhhggcTUTTUadfk&chls=2|2&chma=40,20,20,30", :width => "520"}/
7
+ %article.stats_overview
8
+ .overview_today
9
+ %p.overview_day Today
10
+ %p.overview_count 1,876
11
+ %p.overview_type Hits
12
+ %p.overview_count 2,103
13
+ %p.overview_type Views
14
+ .overview_previous
15
+ %p.overview_day Yesterday
16
+ %p.overview_count 1,646
17
+ %p.overview_type Hits
18
+ %p.overview_count 2,054
19
+ %p.overview_type Views
20
+ .clear
21
+ / end of stats article
22
+ .spacer
23
+ %article.module.width_3_quarter.activity_feeds
24
+ %header
25
+ %h3 Activity Feed
26
+ .module_content
27
+ - activity_feeds = fetch_activity_feeds
28
+ - activity_feeds.each do |activity_feed|
29
+ .message
30
+ %p
31
+ - if activity_feed.actor
32
+ -# if actor is present the feed will be of type - actor created ItemType Item
33
+ %strong=activity_feed.actor
34
+ =activity_feed.activity
35
+ %strong=activity_feed.item_type
36
+ %i=activity_feed.item
37
+ - else
38
+ -# if actor is not present the feed will be of type - ItemType Item was created
39
+ %strong=activity_feed.item_type
40
+ %i=activity_feed.item
41
+ was
42
+ =activity_feed.activity
43
+ %p
44
+ at
45
+ %strong=display_date(activity_feed.created_at)
46
+ - if activity_feeds.empty?
47
+ %p No activity feeds to display.
48
+ %article.module.width_quarter
49
+ %header
50
+ %h3 Messages (TBD)
51
+ .message_list
52
+ .module_content
53
+ .message
54
+ %p Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor.
55
+ %p
56
+ %strong John Doe
57
+ .message
58
+ %p Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor.
59
+ %p
60
+ %strong John Doe
61
+ .message
62
+ %p Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor.
63
+ %p
64
+ %strong John Doe
65
+ .message
66
+ %p Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor.
67
+ %p
68
+ %strong John Doe
69
+ %footer
70
+ %form.post_message
71
+ %input{:onfocus => "if(!this._haschanged){this.value=''};this._haschanged=true;", :type => "text", :value => "Message"}
72
+ %input.btn_post_message{:type => "submit", :value => ""}/
73
+ / end of messages article
74
+ / end of stats article
@@ -0,0 +1,6 @@
1
+ %p
2
+ Hello #{@resource.email}!
3
+ %p Someone has requested a link to change your password, and you can do this through the link below.
4
+ %p= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token)
5
+ %p If you didn't request this, please ignore this email.
6
+ %p Your password won't change until you access the link above and create a new one.
@@ -0,0 +1,6 @@
1
+ / TODO
2
+ %p
3
+ Hello #{@resource.email}!
4
+ %p Your account has been locked due to an excessive amount of unsuccessful sign in attempts.
5
+ %p Click the link below to unlock your account:
6
+ %p= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token)
@@ -0,0 +1,40 @@
1
+ - content_for :page_js do
2
+ $(function(){
3
+ $('#page_category').change(function() {
4
+ $('#page_category_input').val($('#page_category option:selected').val());
5
+ });
6
+ });
7
+ =include_rich_text_editor
8
+ = form_for(page, as: :page, url: url) do |f|
9
+ %fieldset.string
10
+ = f.label :title
11
+ = f.text_field :title
12
+ %fieldset.string
13
+ = f.label :slug
14
+ = f.text_field :slug
15
+ %fieldset.text.small_text
16
+ = f.label :description
17
+ = f.text_area :description
18
+ %fieldset.boolean
19
+ = f.label :Published
20
+ = f.radio_button :published, true
21
+ = f.label :published_true, 'Yes'
22
+ = f.radio_button :published, false
23
+ = f.label :published_false, 'No'
24
+ %fieldset.select
25
+ = f.label :category
26
+ .clear
27
+ - unless categories.empty?
28
+ = f.collection_select :category, categories, :category, :category
29
+ .clear
30
+ =f.text_field :category, value: default_category, class: 'select_input', id: 'page_category_input'
31
+ %fieldset.select
32
+ = f.label :layout
33
+ .clear
34
+ = f.select :layout, options_for_select(page_layouts, page.layout || 'None')
35
+ %fieldset.rich_text
36
+ = f.label :content
37
+ = f.text_area :content, class: 'ckeditor'
38
+ .form_footer
39
+ .submit_link= f.submit action_label, class: 'alt_btn'
40
+
@@ -0,0 +1,43 @@
1
+ %article.module.width_full
2
+ %header
3
+ %h3.tabs_involved
4
+ =page.title
5
+ .new_button_frame
6
+ = form_tag main_app.edit_appyantra_admin_page_path, method: "get" do
7
+ = submit_tag "Edit", class: "alt_btn"
8
+ %ul
9
+ %li
10
+ %span.field_name
11
+ Slug :
12
+ =page.slug
13
+ %li
14
+ %span.field_name
15
+ Published :
16
+ =published_status page
17
+ %li
18
+ %span.field_name
19
+ Description :
20
+ =page.description
21
+ %li
22
+ %span.field_name
23
+ Keywords :
24
+ = page_keywords page
25
+ %li
26
+ %span.field_name
27
+ Created by :
28
+ =link_to page.created_by.display_name, main_app.edit_appyantra_admin_user_path(page.created_by)
29
+ %li
30
+ %span.field_name
31
+ Last Updated by :
32
+ =link_to page.last_updated_by.display_name, main_app.edit_appyantra_admin_user_path(page.last_updated_by)
33
+ %li
34
+ %span.field_name
35
+ Category :
36
+ =page_category page
37
+ %article.module.width_full
38
+ %header
39
+ %h3 Page Content
40
+ .article_margin
41
+ =page.content.html_safe
42
+ .spacer
43
+