wordjelly-auth 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (275) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +35 -0
  5. data/app/assets/images/auth/activity.jpg +0 -0
  6. data/app/assets/images/auth/facebook.svg +1 -0
  7. data/app/assets/images/auth/google_oauth2.svg +1 -0
  8. data/app/assets/images/auth/js_pic3.jpg +0 -0
  9. data/app/assets/images/auth/profile.jpg +0 -0
  10. data/app/assets/javascripts/auth/admin_create_users.js +2 -0
  11. data/app/assets/javascripts/auth/application.js +20 -0
  12. data/app/assets/javascripts/auth/auth_dependencies.js +12 -0
  13. data/app/assets/javascripts/auth/auth_modals_and_navbar.js +218 -0
  14. data/app/assets/javascripts/auth/clients.js +2 -0
  15. data/app/assets/javascripts/auth/search.js +2 -0
  16. data/app/assets/javascripts/auth/shopping/discounts.js +2 -0
  17. data/app/assets/javascripts/auth/users/profiles.js +188 -0
  18. data/app/assets/stylesheets/auth/admin_create_users.css +4 -0
  19. data/app/assets/stylesheets/auth/application.scss +14 -0
  20. data/app/assets/stylesheets/auth/auth_default_css.scss +13 -0
  21. data/app/assets/stylesheets/auth/common-styles.scss +579 -0
  22. data/app/assets/stylesheets/auth/overrides.scss +26 -0
  23. data/app/assets/stylesheets/auth/search.css +4 -0
  24. data/app/assets/stylesheets/auth/shopping/discounts.css +4 -0
  25. data/app/assets/stylesheets/auth/users/profiles.scss +40 -0
  26. data/app/assets/stylesheets/scaffold.css +56 -0
  27. data/app/controllers/auth/admin_create_users_controller.rb +89 -0
  28. data/app/controllers/auth/application_controller.rb +97 -0
  29. data/app/controllers/auth/clients_controller.rb +105 -0
  30. data/app/controllers/auth/concerns/activity_controller_concern.rb +32 -0
  31. data/app/controllers/auth/concerns/devise_concern.rb +193 -0
  32. data/app/controllers/auth/concerns/omni_concern.rb +310 -0
  33. data/app/controllers/auth/concerns/otp_concern.rb +251 -0
  34. data/app/controllers/auth/concerns/shopping/cart_controller_concern.rb +105 -0
  35. data/app/controllers/auth/concerns/shopping/cart_item_controller_concern.rb +150 -0
  36. data/app/controllers/auth/concerns/shopping/discount_controller_concern.rb +97 -0
  37. data/app/controllers/auth/concerns/shopping/pay_u_money_controller_concern.rb +38 -0
  38. data/app/controllers/auth/concerns/shopping/payment_controller_concern.rb +101 -0
  39. data/app/controllers/auth/concerns/shopping/product_controller_concern.rb +68 -0
  40. data/app/controllers/auth/concerns/token_concern.rb +187 -0
  41. data/app/controllers/auth/confirmations_controller.rb +3 -0
  42. data/app/controllers/auth/mailgun_controller.rb +8 -0
  43. data/app/controllers/auth/omniauth_callbacks_controller.rb +6 -0
  44. data/app/controllers/auth/passwords_controller.rb +4 -0
  45. data/app/controllers/auth/profiles_controller.rb +156 -0
  46. data/app/controllers/auth/registrations_controller.rb +99 -0
  47. data/app/controllers/auth/search_controller.rb +61 -0
  48. data/app/controllers/auth/sessions_controller.rb +20 -0
  49. data/app/controllers/auth/shopping/cart_items_controller.rb +14 -0
  50. data/app/controllers/auth/shopping/carts_controller.rb +13 -0
  51. data/app/controllers/auth/shopping/discounts_controller.rb +19 -0
  52. data/app/controllers/auth/shopping/payments_controller.rb +13 -0
  53. data/app/controllers/auth/shopping/products_controller.rb +17 -0
  54. data/app/controllers/auth/shopping/shopping_controller.rb +86 -0
  55. data/app/controllers/auth/unlocks_controller.rb +3 -0
  56. data/app/controllers/auth/webhooks_controller.rb +3 -0
  57. data/app/helpers/auth/admin_create_users_helper.rb +2 -0
  58. data/app/helpers/auth/application_helper.rb +136 -0
  59. data/app/helpers/auth/clients_helper.rb +4 -0
  60. data/app/helpers/auth/resource_helper.rb +10 -0
  61. data/app/helpers/auth/search_helper.rb +2 -0
  62. data/app/helpers/auth/shopping/cart_items/cart_items_helper.rb +29 -0
  63. data/app/helpers/auth/shopping/carts/carts_helper.rb +25 -0
  64. data/app/helpers/auth/shopping/discounts/discounts_helper.rb +39 -0
  65. data/app/helpers/auth/shopping/payments/pay_u_money_helper.rb +56 -0
  66. data/app/helpers/auth/shopping/payments/payments_helper.rb +54 -0
  67. data/app/helpers/auth/shopping/products/products_helper.rb +52 -0
  68. data/app/helpers/auth/shopping/shopping_helper.rb +3 -0
  69. data/app/helpers/auth/users/profiles_helper.rb +12 -0
  70. data/app/jobs/otp_job.rb +92 -0
  71. data/app/mailers/application_mailer.rb +4 -0
  72. data/app/mailers/auth/notifier.rb +9 -0
  73. data/app/models/auth/admin_create_user.rb +3 -0
  74. data/app/models/auth/client.rb +52 -0
  75. data/app/models/auth/concerns/activity_concern.rb +112 -0
  76. data/app/models/auth/concerns/chief_model_concern.rb +73 -0
  77. data/app/models/auth/concerns/es_concern.rb +21 -0
  78. data/app/models/auth/concerns/notification_concern.rb +232 -0
  79. data/app/models/auth/concerns/notification_response_concern.rb +71 -0
  80. data/app/models/auth/concerns/owner_concern.rb +81 -0
  81. data/app/models/auth/concerns/shopping/cart_concern.rb +329 -0
  82. data/app/models/auth/concerns/shopping/cart_item_concern.rb +437 -0
  83. data/app/models/auth/concerns/shopping/discount_concern.rb +482 -0
  84. data/app/models/auth/concerns/shopping/discount_flow.txt +11 -0
  85. data/app/models/auth/concerns/shopping/pay_u_money_concern.rb +184 -0
  86. data/app/models/auth/concerns/shopping/payment_concern.rb +613 -0
  87. data/app/models/auth/concerns/shopping/product_concern.rb +102 -0
  88. data/app/models/auth/concerns/sms_otp_concern.rb +68 -0
  89. data/app/models/auth/concerns/user_concern.rb +788 -0
  90. data/app/models/auth/identity.rb +23 -0
  91. data/app/models/auth/shopping/cart.rb +3 -0
  92. data/app/models/auth/shopping/cart_item.rb +6 -0
  93. data/app/models/auth/shopping/cart_item_payment_result.rb +7 -0
  94. data/app/models/auth/shopping/discount.rb +4 -0
  95. data/app/models/auth/shopping/payment.rb +5 -0
  96. data/app/models/auth/shopping/product.rb +5 -0
  97. data/app/models/auth/user.rb +3 -0
  98. data/app/views/auth/admin_create_users/_admin_actions.html.erb +46 -0
  99. data/app/views/auth/admin_create_users/_form.html.erb +19 -0
  100. data/app/views/auth/admin_create_users/edit.html.erb +6 -0
  101. data/app/views/auth/admin_create_users/index.html.erb +25 -0
  102. data/app/views/auth/admin_create_users/new.html.erb +5 -0
  103. data/app/views/auth/admin_create_users/show.html.erb +8 -0
  104. data/app/views/auth/clients/_form.html.erb +41 -0
  105. data/app/views/auth/clients/edit.html.erb +6 -0
  106. data/app/views/auth/clients/index.html.erb +33 -0
  107. data/app/views/auth/clients/new.html.erb +5 -0
  108. data/app/views/auth/clients/show.html.erb +21 -0
  109. data/app/views/auth/confirmations/_enter_otp.html.erb +27 -0
  110. data/app/views/auth/confirmations/_get_otp_status.html.erb +25 -0
  111. data/app/views/auth/confirmations/_new_otp_input.js.erb +11 -0
  112. data/app/views/auth/confirmations/_resend_otp.js.erb +8 -0
  113. data/app/views/auth/confirmations/_resend_sms_otp.html.erb +18 -0
  114. data/app/views/auth/confirmations/_verify_otp.js.erb +64 -0
  115. data/app/views/auth/confirmations/create.js.erb +8 -0
  116. data/app/views/auth/confirmations/enter_otp.html.erb +7 -0
  117. data/app/views/auth/confirmations/get_otp_status.html.erb +3 -0
  118. data/app/views/auth/confirmations/new.html.erb +1 -0
  119. data/app/views/auth/confirmations/new.js.erb +16 -0
  120. data/app/views/auth/confirmations/otp_status_result.html.erb +20 -0
  121. data/app/views/auth/mailer/confirmation_instructions.html.erb +5 -0
  122. data/app/views/auth/mailer/password_change.html.erb +3 -0
  123. data/app/views/auth/mailer/reset_password_instructions.html.erb +8 -0
  124. data/app/views/auth/mailer/unlock_instructions.html.erb +7 -0
  125. data/app/views/auth/modals/_ajax_error_modal.html.erb +3 -0
  126. data/app/views/auth/modals/_ajax_error_modal_content.html.erb +0 -0
  127. data/app/views/auth/modals/_edit_account_content.html.erb +68 -0
  128. data/app/views/auth/modals/_edit_account_success_content.html.erb +5 -0
  129. data/app/views/auth/modals/_error_notification.html.erb +8 -0
  130. data/app/views/auth/modals/_forgot_password_content.html.erb +18 -0
  131. data/app/views/auth/modals/_forgot_password_success_content.html.erb +8 -0
  132. data/app/views/auth/modals/_login_default_content.html.erb +3 -0
  133. data/app/views/auth/modals/_login_forms.html.erb +13 -0
  134. data/app/views/auth/modals/_login_navigation_options.html.erb +12 -0
  135. data/app/views/auth/modals/_new_otp_input.html.erb +28 -0
  136. data/app/views/auth/modals/_oauth_and_submit.html.erb +21 -0
  137. data/app/views/auth/modals/_recaptcha_tags.html.erb +4 -0
  138. data/app/views/auth/modals/_resend_confirmation_content.html.erb +17 -0
  139. data/app/views/auth/modals/_resend_confirmation_success_content.html.erb +8 -0
  140. data/app/views/auth/modals/_resend_otp.html.erb +23 -0
  141. data/app/views/auth/modals/_resource_errors.js.erb +24 -0
  142. data/app/views/auth/modals/_sign_in_inputs.html.erb +10 -0
  143. data/app/views/auth/modals/_sign_in_needed_modal.html.erb +3 -0
  144. data/app/views/auth/modals/_sign_in_success_content.html.erb +5 -0
  145. data/app/views/auth/modals/_sign_up_inputs.html.erb +9 -0
  146. data/app/views/auth/modals/_sign_up_success_content.html.erb +1 -0
  147. data/app/views/auth/modals/_sign_up_success_inactive_content.html.erb +2 -0
  148. data/app/views/auth/modals/_unlock_content.html.erb +17 -0
  149. data/app/views/auth/modals/_verify_otp.html.erb +1 -0
  150. data/app/views/auth/modals/base_modal/_base.html.erb +25 -0
  151. data/app/views/auth/modals/login.js.erb +120 -0
  152. data/app/views/auth/modals/unlock_success_content.html.erb +8 -0
  153. data/app/views/auth/notifier/_email.html.erb +3 -0
  154. data/app/views/auth/notifier/notification.html.erb +2 -0
  155. data/app/views/auth/notifier/notification.text.erb +1 -0
  156. data/app/views/auth/omniauth_callbacks/failure.html.erb +4 -0
  157. data/app/views/auth/passwords/create.js.erb +12 -0
  158. data/app/views/auth/passwords/edit.html.erb +25 -0
  159. data/app/views/auth/passwords/new.html.erb +16 -0
  160. data/app/views/auth/passwords/new.js.erb +19 -0
  161. data/app/views/auth/profiles/_proxy_resource.html.erb +5 -0
  162. data/app/views/auth/profiles/set_proxy_resource.js.erb +1 -0
  163. data/app/views/auth/profiles/show.html.erb +8 -0
  164. data/app/views/auth/registrations/create.js.erb +40 -0
  165. data/app/views/auth/registrations/edit.html.erb +2 -0
  166. data/app/views/auth/registrations/edit.js.erb +5 -0
  167. data/app/views/auth/registrations/new.html.erb +33 -0
  168. data/app/views/auth/registrations/update.js.erb +47 -0
  169. data/app/views/auth/search/_search_bar.html.erb +11 -0
  170. data/app/views/auth/search/_search_result.html.erb +7 -0
  171. data/app/views/auth/search/_search_results.html.erb +4 -0
  172. data/app/views/auth/search/authenticated_user_search.js.erb +45 -0
  173. data/app/views/auth/search/authenticated_user_search.json +7 -0
  174. data/app/views/auth/sessions/create.js.erb +5 -0
  175. data/app/views/auth/sessions/new.html.erb +4 -0
  176. data/app/views/auth/sessions/new.js.erb +20 -0
  177. data/app/views/auth/shared/_devise_error_messages.html.erb +9 -0
  178. data/app/views/auth/shared/_links.html.erb +25 -0
  179. data/app/views/auth/shared/_object_errors.html.erb +12 -0
  180. data/app/views/auth/shared/_proxy_resource.html.erb +18 -0
  181. data/app/views/auth/shopping/cart_items/_form.html.erb +34 -0
  182. data/app/views/auth/shopping/cart_items/_show_cart_items_collection.html.erb +31 -0
  183. data/app/views/auth/shopping/cart_items/create_multiple.html.erb +6 -0
  184. data/app/views/auth/shopping/cart_items/create_multiple.json.erb +9 -0
  185. data/app/views/auth/shopping/cart_items/edit.html.erb +6 -0
  186. data/app/views/auth/shopping/cart_items/index.html.erb +52 -0
  187. data/app/views/auth/shopping/cart_items/new.html.erb +5 -0
  188. data/app/views/auth/shopping/cart_items/show.html.erb +13 -0
  189. data/app/views/auth/shopping/carts/_form.html.erb +35 -0
  190. data/app/views/auth/shopping/carts/_payment_links.html.erb +27 -0
  191. data/app/views/auth/shopping/carts/_remove_cart_item.html.erb +11 -0
  192. data/app/views/auth/shopping/carts/_show_cart_balance_info.html.erb +35 -0
  193. data/app/views/auth/shopping/carts/edit.html.erb +6 -0
  194. data/app/views/auth/shopping/carts/index.html.erb +43 -0
  195. data/app/views/auth/shopping/carts/new.html.erb +5 -0
  196. data/app/views/auth/shopping/carts/show.html.erb +46 -0
  197. data/app/views/auth/shopping/discounts/_form.html.erb +18 -0
  198. data/app/views/auth/shopping/discounts/_form_for_create_multiple_cart_items.html.erb +17 -0
  199. data/app/views/auth/shopping/discounts/_show_pending_discount_request.html.erb +17 -0
  200. data/app/views/auth/shopping/discounts/destroy.html.erb +2 -0
  201. data/app/views/auth/shopping/discounts/edit.html.erb +29 -0
  202. data/app/views/auth/shopping/discounts/index.html.erb +40 -0
  203. data/app/views/auth/shopping/discounts/new.html.erb +1 -0
  204. data/app/views/auth/shopping/discounts/show.html.erb +18 -0
  205. data/app/views/auth/shopping/discounts/update.html.erb +2 -0
  206. data/app/views/auth/shopping/payments/_approve_payment.html.erb +7 -0
  207. data/app/views/auth/shopping/payments/_cash_card_cheque.html.erb +24 -0
  208. data/app/views/auth/shopping/payments/_create_discount_coupon.html.erb +5 -0
  209. data/app/views/auth/shopping/payments/_form.html.erb +19 -0
  210. data/app/views/auth/shopping/payments/_gateway.html.erb +21 -0
  211. data/app/views/auth/shopping/payments/_proceed_to_gateway_or_verify_payment.html.erb +18 -0
  212. data/app/views/auth/shopping/payments/_refresh_payment.html.erb +7 -0
  213. data/app/views/auth/shopping/payments/_refund.html.erb +10 -0
  214. data/app/views/auth/shopping/payments/_show_payment_receipt.html.erb +12 -0
  215. data/app/views/auth/shopping/payments/edit.html.erb +6 -0
  216. data/app/views/auth/shopping/payments/index.html.erb +43 -0
  217. data/app/views/auth/shopping/payments/new.html.erb +13 -0
  218. data/app/views/auth/shopping/payments/show.html.erb +36 -0
  219. data/app/views/auth/shopping/products/_form.html.erb +27 -0
  220. data/app/views/auth/shopping/products/edit.html.erb +6 -0
  221. data/app/views/auth/shopping/products/index.html.erb +48 -0
  222. data/app/views/auth/shopping/products/index.json.erb +7 -0
  223. data/app/views/auth/shopping/products/new.html.erb +5 -0
  224. data/app/views/auth/shopping/products/show.html.erb +12 -0
  225. data/app/views/auth/shopping/products/show.json.erb +1 -0
  226. data/app/views/auth/unlocks/create.js.erb +12 -0
  227. data/app/views/auth/unlocks/new.html.erb +14 -0
  228. data/app/views/auth/unlocks/new.js.erb +17 -0
  229. data/app/views/auth/users/_search_result.html.erb +8 -0
  230. data/app/views/auth/users/profiles/_user_data.html.erb +4 -0
  231. data/app/views/auth/users/profiles/show.html.erb +54 -0
  232. data/app/views/layouts/auth/_modals.html.erb +2 -0
  233. data/app/views/layouts/auth/application.html.erb +17 -0
  234. data/app/views/layouts/auth/navbar/_navbar.html.erb +49 -0
  235. data/app/views/layouts/auth/navbar/_personalization.html.erb +17 -0
  236. data/app/views/layouts/auth/navbar/_progress_spinner.html.erb +11 -0
  237. data/app/views/layouts/mailer.html.erb +5 -0
  238. data/app/views/layouts/mailer.text.erb +1 -0
  239. data/config/initializers/active_model.rb +36 -0
  240. data/config/initializers/devise.rb +623 -0
  241. data/config/initializers/json.rb +10 -0
  242. data/config/initializers/omniauth.rb +447 -0
  243. data/config/initializers/redis.rb +2 -0
  244. data/config/initializers/redis.yml +14 -0
  245. data/config/locales/devise.en.yml +63 -0
  246. data/config/routes.rb +1 -0
  247. data/lib/assets/javascripts/data.js +126 -0
  248. data/lib/assets/javascripts/jquery.calendario.js +394 -0
  249. data/lib/assets/javascripts/jquery.tagcloud.js +92 -0
  250. data/lib/assets/javascripts/leanModal.js +236 -0
  251. data/lib/assets/javascripts/main.js +668 -0
  252. data/lib/assets/javascripts/modernizr.custom.63321.js +4 -0
  253. data/lib/assets/javascripts/payumoney.js +9 -0
  254. data/lib/assets/javascripts/search.js +36 -0
  255. data/lib/assets/javascripts/spinner.js +77 -0
  256. data/lib/assets/javascripts/trianglify.min.js +2 -0
  257. data/lib/assets/javascripts/you_need_to_sign_in.js.erb +478 -0
  258. data/lib/assets/stylesheets/calendar.css +111 -0
  259. data/lib/assets/stylesheets/calendar_modifications.scss +276 -0
  260. data/lib/auth.rb +32 -0
  261. data/lib/auth/custom_failure.rb +3 -0
  262. data/lib/auth/engine.rb +231 -0
  263. data/lib/auth/job_exception_handler.rb +7 -0
  264. data/lib/auth/mailgun.rb +28 -0
  265. data/lib/auth/notify.rb +8 -0
  266. data/lib/auth/omniauth/path.rb +104 -0
  267. data/lib/auth/partials.rb +12 -0
  268. data/lib/auth/rails/routes.rb +169 -0
  269. data/lib/auth/search/main.rb +97 -0
  270. data/lib/auth/sidekiq_up.rb +16 -0
  271. data/lib/auth/two_factor_otp.rb +202 -0
  272. data/lib/auth/url_shortener.rb +29 -0
  273. data/lib/auth/version.rb +3 -0
  274. data/lib/tasks/auth_tasks.rake +4 -0
  275. metadata +863 -0
@@ -0,0 +1,2 @@
1
+
2
+
@@ -0,0 +1,14 @@
1
+ #config/redis.yml
2
+ default:
3
+ host: localhost
4
+ port: 6379
5
+ development:
6
+ db: 0
7
+ # namespace: appname_dev
8
+ test:
9
+ db: 1
10
+ # namespace: appname_test
11
+ production:
12
+ db: 2
13
+ host: 192.168.1.100
14
+ # namespace: appname_prod
@@ -0,0 +1,63 @@
1
+ # Additional translations at https://github.com/plataformatec/devise/wiki/I18n
2
+
3
+ en:
4
+ devise:
5
+ confirmations:
6
+ confirmed_mobile: "Your mobile has been successfully confirmed."
7
+ confirmed: "Your email address has been successfully confirmed."
8
+ send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes."
9
+ send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes."
10
+ failure:
11
+ already_authenticated: "You are already signed in."
12
+ inactive: "Your account is not activated yet."
13
+ invalid: "Invalid %{authentication_keys} or password."
14
+ locked: "Your account is locked."
15
+ last_attempt: "You have one more attempt before your account is locked."
16
+ not_found_in_database: "Invalid %{authentication_keys} or password."
17
+ timeout: "Your session expired. Please sign in again to continue."
18
+ unauthenticated: "You need to sign in or sign up before continuing."
19
+ unconfirmed: "You have to confirm your email address before continuing."
20
+ mailer:
21
+ confirmation_instructions:
22
+ subject: "Confirmation instructions"
23
+ reset_password_instructions:
24
+ subject: "Reset password instructions"
25
+ unlock_instructions:
26
+ subject: "Unlock instructions"
27
+ password_change:
28
+ subject: "Password Changed"
29
+ omniauth_callbacks:
30
+ failure: "Could not authenticate you from %{kind} because \"%{reason}\"."
31
+ success: "Successfully authenticated from %{kind} account."
32
+ passwords:
33
+ no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided."
34
+ send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes."
35
+ send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes."
36
+ updated: "Your password has been changed successfully. You are now signed in."
37
+ updated_not_active: "Your password has been changed successfully."
38
+ registrations:
39
+ destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon."
40
+ signed_up: "Welcome! You have signed up successfully."
41
+ signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated."
42
+ signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked."
43
+ signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account."
44
+ update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address."
45
+ updated: "Your account has been updated successfully."
46
+ sessions:
47
+ signed_in: "Signed in successfully."
48
+ signed_out: "Signed out successfully."
49
+ already_signed_out: "Signed out successfully."
50
+ unlocks:
51
+ send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes."
52
+ send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes."
53
+ unlocked: "Your account has been unlocked successfully. Please sign in to continue."
54
+ errors:
55
+ messages:
56
+ already_confirmed: "was already confirmed, please try signing in"
57
+ confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
58
+ expired: "has expired, please request a new one"
59
+ not_found: "not found"
60
+ not_locked: "was not locked"
61
+ not_saved:
62
+ one: "1 error prohibited this %{resource} from being saved:"
63
+ other: "%{count} errors prohibited this %{resource} from being saved:"
data/config/routes.rb ADDED
@@ -0,0 +1 @@
1
+ ##routes defined by engine reside in lib/auth/rails/routes.rb
@@ -0,0 +1,126 @@
1
+ var codropsEvents = {
2
+ '11-23-2012' : '<a href="http://tympanus.net/codrops/2012/11/23/three-script-updates/">Three Script Updates</a>',
3
+ '11-21-2012' : '<a href="http://tympanus.net/codrops/2012/11/21/adaptive-thumbnail-pile-effect-with-automatic-grouping/">Adaptive Thumbnail Pile Effect with Automatic Grouping</a>',
4
+ '11-20-2012' : '<a href="http://tympanus.net/codrops/2012/11/20/learning-principles-for-improving-your-css/">Learning Principles for Improving Your CSS</a>',
5
+ '11-19-2012' : '<a href="http://tympanus.net/codrops/2012/11/19/responsive-css-timeline-with-3d-effect/">Responsive CSS Timeline with 3D Effect</a>',
6
+ '11-14-2012' : '<a href="http://tympanus.net/codrops/2012/11/14/creative-css-loading-animations/">Creative CSS Loading Animations</a>',
7
+ '11-13-2012' : '<a href="http://tympanus.net/codrops/2012/11/13/baraja-a-plugin-for-spreading-items-in-a-card-like-fashion/">Baraja: A Plugin for Spreading Items in a Card-Like Fashion</a>',
8
+ '11-12-2012' : '<a href="http://tympanus.net/codrops/2012/11/12/mobile-design-typography-is-vitally-important-and-challenging/">Mobile Design Typography is Vitally Important … and Challenging</a>',
9
+ '11-09-2012' : '<a href="http://tympanus.net/codrops/2012/11/09/responsive-wordpress-theme-giveaway/">Responsive WordPress Theme Giveaway</a>',
10
+ '11-06-2012' : '<a href="http://tympanus.net/codrops/2012/11/06/gamma-gallery-a-responsive-image-gallery-experiment/">Gamma Gallery: A Responsive Image Gallery Experiment</a>',
11
+ '11-02-2012' : '<a href="http://tympanus.net/codrops/2012/11/02/heading-set-styling-with-css/">Heading Set Styling with CSS</a>',
12
+ '10-30-2012' : '<a href="http://tympanus.net/codrops/2012/10/30/becoming-device-agnostic/">Becoming Device-Agnostic</a>',
13
+ '10-29-2012' : '<a href="http://tympanus.net/codrops/2012/10/29/elastislide-revised/">Elastislide Revised</a>',
14
+ '10-25-2012' : '<a href="http://tympanus.net/codrops/2012/10/25/kick-start-your-project-a-collection-of-handy-css-snippets/">Kick-Start Your Project: A Collection of Handy CSS Snippets</a>',
15
+ '10-24-2012' : '<a href="http://tympanus.net/codrops/2012/10/24/slit-slider-revised/">Slit Slider Revised</a>',
16
+ '10-23-2012' : '<a href="http://tympanus.net/codrops/2012/10/23/basic-ready-to-use-css-styles/">Basic Ready-to-Use CSS Styles</a>',
17
+ '10-22-2012' : '<a href="http://tympanus.net/codrops/2012/10/22/slicebox-revised/">Slicebox Revised</a><a href="http://tympanus.net/codrops/2012/10/22/managewp-giveaway/">ManageWP Giveaway</a>',
18
+ '10-28-2012' : '<a href="http://tympanus.net/codrops/2012/10/18/creating-off-center-balance-using-asymmetry-in-web-design/">Creating Off-Center Balance: Using Asymmetry in Web Design</a>',
19
+ '10-18-2012' : '<a href="http://tympanus.net/codrops/2012/10/18/snackwebsites-giveaway/">SnackWebsites Giveaway</a>',
20
+ '10-17-2012' : '<a href="http://tympanus.net/codrops/2012/10/17/pfold-paper-like-unfolding-effect/">PFold: Paper-Like Unfolding Effect</a>',
21
+ '10-16-2012' : '<a href="http://tympanus.net/codrops/2012/10/16/custom-login-form-styling/">Custom Login Form Styling</a>',
22
+ '10-15-2012' : '<a href="http://tympanus.net/codrops/2012/10/15/the-unwritten-rules-of-a-great-design-critique/">The Unwritten Rules of a Great Design Critique</a>',
23
+ '10-11-2012' : '<a href="http://tympanus.net/codrops/2012/10/11/foobox-wordpress-plugin-giveaway/">FooBox WordPress Plugin Giveaway</a><a href="http://tympanus.net/codrops/2012/10/11/real-time-geolocation-service-with-node-js/">Real-Time Geolocation Service with Node.js</a><a href="http://tympanus.net/codrops/2012/10/11/busting-that-creative-slump-youre-in/">Busting that Creative Slump You&#8217;re In</a>',
24
+ '10-09-2012' : '<a href="http://tympanus.net/codrops/2012/10/09/windy-a-plugin-for-swift-content-navigation/">Windy: A Plugin for Swift Content Navigation</a>',
25
+ '10-04-2012' : '<a href="http://tympanus.net/codrops/2012/10/04/custom-drop-down-list-styling/">Custom Drop-Down List Styling</a>',
26
+ '10-02-2012' : '<a href="http://tympanus.net/codrops/2012/10/02/freebie-application-icon-set-png-psd-csh/">Freebie: Application Icon Set (PNG, PSD, CSH)</a>',
27
+ '10-01-2012' : '<a href="http://tympanus.net/codrops/2012/10/01/vertical-showcase-slider-with-jquery-and-css-transitions/">Vertical Showcase Slider with jQuery and CSS Transitions</a>',
28
+ '09-28-2012' : '<a href="http://tympanus.net/codrops/2012/09/28/stop-look-click-attention-grabbing-elements-in-web-design/">Stop, Look, Click: Attention-Grabbing Elements in Web Design</a>',
29
+ '09-26-2012' : '<a href="http://tympanus.net/codrops/2012/09/26/make-a-statement-with-type/">Make a Statement with Type</a>',
30
+ '09-25-2012' : '<a href="http://tympanus.net/codrops/2012/09/25/3d-restaurant-menu-concept/">3D Restaurant Menu Concept</a>',
31
+ '09-20-2012' : '<a href="http://tympanus.net/codrops/2012/09/20/dashboard-design-elements-for-the-win/">Dashboard Design Elements for the Win</a>',
32
+ '09-19-2012' : '<a href="http://tympanus.net/codrops/2012/09/19/fullscreen-video-slideshow-with-bigvideo-js/">Fullscreen Video Slideshow with BigVideo.js</a>',
33
+ '09-17-2012' : '<a href="http://tympanus.net/codrops/2012/09/17/build-a-color-scheme-the-fundamentals/">Build a Color Scheme: The Fundamentals</a>',
34
+ '09-13-2012' : '<a href="http://tympanus.net/codrops/2012/09/13/button-switches-with-checkboxes-and-css3-fanciness/">Button Switches with Checkboxes and CSS3 Fanciness</a><a href="http://tympanus.net/codrops/2012/09/13/compare-ninja-premium-subscription-giveaway/">Compare Ninja Premium Subscription Giveaway</a>',
35
+ '09-12-2012' : '<a href="http://tympanus.net/codrops/2012/09/12/creative-web-typography-styles/">Creative Web Typography Styles</a>',
36
+ '09-11-2012' : '<a href="http://tympanus.net/codrops/2012/09/11/psd2html-professional-coding-services-giveaway/">PSD2HTML Professional Coding Services Giveaway</a>',
37
+ '09-06-2012' : '<a href="http://tympanus.net/codrops/2012/09/06/do-i-really-need-a-style-guide/">Do I Really Need A Style Guide?</a>',
38
+ '09-04-2012' : '<a href="http://tympanus.net/codrops/2012/09/04/perfectly-paired-using-symmetry-in-web-design/">Perfectly Paired: Using Symmetry in Web Design</a>',
39
+ '09-03-2012' : '<a href="http://tympanus.net/codrops/2012/09/03/bookblock-a-content-flip-plugin/">BookBlock: A Content Flip Plugin</a>',
40
+ '08-29-2012' : '<a href="http://tympanus.net/codrops/2012/08/29/multiple-area-charts-with-d3-js/">Multiple Area Charts with D3.js</a>',
41
+ '08-27-2012' : '<a href="http://tympanus.net/codrops/2012/08/27/im-creator-lifetime-subscriptions-giveaway/">IM Creator Lifetime Subscriptions Giveaway</a>',
42
+ '08-26-2012' : '<a href="http://tympanus.net/codrops/2012/08/26/happy-birthday-3-years-of-codrops/">Happy Birthday! 3 Years of Codrops</a>',
43
+ '08-23-2012' : '<a href="http://tympanus.net/codrops/2012/08/23/we-are-architects/">We Are Architects</a><a href="http://tympanus.net/codrops/2012/08/23/unfolding-3d-thumbnails-concept/">Unfolding 3D Thumbnails Concept</a>',
44
+ '08-17-2012' : '<a href="http://tympanus.net/codrops/2012/08/17/creative-background-styles-and-trends-in-web-design/">Creative Background Styles and Trends in Web Design</a>',
45
+ '08-16-2012' : '<a href="http://tympanus.net/codrops/2012/08/16/triple-panel-image-slider/">Triple Panel Image Slider</a>',
46
+ '08-15-2012' : '<a href="http://tympanus.net/codrops/2012/08/15/inject-energy-into-your-mobile-design-with-light-effects/">Inject Energy Into Your Mobile Design with Light Effects</a>',
47
+ '08-08-2012' : '<a href="http://tympanus.net/codrops/2012/08/08/circle-hover-effects-with-css-transitions/">Circle Hover Effects with CSS Transitions</a>',
48
+ '08-07-2012' : '<a href="http://tympanus.net/codrops/2012/08/07/mythemeshop-responsive-wordpress-themes-giveaway/">MyThemeShop Responsive WordPress Themes Giveaway</a>',
49
+ '08-04-2012' : '<a href="http://tympanus.net/codrops/2012/08/04/the-designers-web-handbook-giveaway/">The Designer&#8217;s Web Handbook Giveaway</a><a href="http://tympanus.net/codrops/2012/08/04/freebie-soft-ui-kit-psd/">Freebie: Soft UI Kit (PSD)</a>',
50
+ '08-02-2012' : '<a href="http://tympanus.net/codrops/2012/08/02/animated-responsive-image-grid/">Animated Responsive Image Grid</a>',
51
+ '08-01-2012' : '<a href="http://tympanus.net/codrops/2012/08/01/photo-booth-strips-with-lightbox/">Photo Booth Strips with Lightbox</a>',
52
+ '07-27-2012' : '<a href="http://tympanus.net/codrops/2012/07/27/examples-of-creative-and-modern-effects-in-web-design/">Examples of Creative and Modern Effects in Web Design</a>',
53
+ '07-25-2012' : '<a href="http://tympanus.net/codrops/2012/07/25/modern-block-quote-styles/">Modern Block Quote Styles</a>',
54
+ '07-24-2012' : '<a href="http://tympanus.net/codrops/2012/07/24/i-love-script-fonts-heres-why/">I Love Script Fonts (Here’s Why)</a>',
55
+ '07-23-2012' : '<a href="http://tympanus.net/codrops/2012/07/23/designing-the-dreaded-form-getting-creative/">Designing the Dreaded Form: Getting Creative</a>',
56
+ '07-20-2012' : '<a href="http://tympanus.net/codrops/2012/07/20/3d-flipping-circle-with-css3-and-jquery/">3D Flipping Circle with CSS3 and jQuery</a>',
57
+ '07-12-2012' : '<a href="http://tympanus.net/codrops/2012/07/12/old-school-cassette-player-with-html5-audio/">Old School Cassette Player with HTML5 Audio</a>',
58
+ '07-10-2012' : '<a href="http://tympanus.net/codrops/2012/07/10/tips-tools-for-grid-based-layouts/">Tips &#038; Tools for Grid-based Layouts</a>',
59
+ '07-09-2012' : '<a href="http://tympanus.net/codrops/2012/07/09/themefuse-premium-wordpress-themes-giveaway/">ThemeFuse Premium WordPress Themes Giveaway</a>',
60
+ '07-07-2012' : '<a href="http://tympanus.net/codrops/2012/07/07/freebie-baby-blue-ui-kit-psd/">Freebie: Baby Blue UI Kit (PSD)</a>',
61
+ '07-05-2012' : '<a href="http://tympanus.net/codrops/2012/07/05/designing-the-dreaded-form/">Designing the Dreaded Form</a>',
62
+ '07-02-2012' : '<a href="http://tympanus.net/codrops/2012/07/02/swatch-book-with-css3-and-jquery/">Swatch Book with CSS3 and jQuery</a>',
63
+ '07-27-2012' : '<a href="http://tympanus.net/codrops/2012/06/27/responsive-3d-panel-layout/">Responsive 3D Panel Layout</a>',
64
+ '06-25-2012' : '<a href="http://tympanus.net/codrops/2012/06/25/timed-notifications-with-css-animations/">Timed Notifications with CSS Animations</a><a href="http://tympanus.net/codrops/2012/06/25/theadstock-giveaway-free-4th-of-july-themed-images/">TheAdStock Giveaway + Free 4th of July Themed Images</a>',
65
+ '06-19-2012' : '<a href="http://tympanus.net/codrops/2012/06/19/themefurnace-premium-wordpress-themes-giveaway/">ThemeFurnace Premium WordPress Themes Giveaway</a><a href="http://tympanus.net/codrops/2012/06/19/line-that-up-proper-alignment-in-web-design/">Line That Up: Proper Alignment in Web Design</a>',
66
+ '06-18-2012' : '<a href="http://tympanus.net/codrops/2012/06/18/3d-thumbnail-hover-effects/">3D Thumbnail Hover Effects</a>',
67
+ '06-13-2012' : '<a href="http://tympanus.net/codrops/2012/06/13/how-web-design-has-changed-print/">How Web Design Has Changed Print</a>',
68
+ '06-12-2012' : '<a href="http://tympanus.net/codrops/2012/06/12/css-only-responsive-layout-with-smooth-transitions/">CSS-Only Responsive Layout with Smooth Transitions</a>',
69
+ '06-11-2012' : '<a href="http://tympanus.net/codrops/2012/06/11/tokokoo-e-commerce-wordpress-themes-giveaway/">Tokokoo E-Commerce WordPress Themes Giveaway</a><a href="http://tympanus.net/codrops/2012/06/11/visual-hierarchy-in-mobile-design/">Visual Hierarchy in Mobile Design</a>',
70
+ '06-07-2012' : '<a href="http://tympanus.net/codrops/2012/06/07/7-elements-of-a-well-converting-subscription-page/">7 Elements of a Well Converting Subscription Page</a><a href="http://tympanus.net/codrops/2012/06/07/book-review-the-designers-web-handbook/">Book Review: “The Designer’s Web Handbook”</a>',
71
+ '06-06-2012' : '<a href="http://tympanus.net/codrops/2012/06/06/image-accordion-with-css3/">Image Accordion with CSS3</a>',
72
+ '06-05-2012' : '<a href="http://tympanus.net/codrops/2012/06/05/fullscreen-slit-slider-with-jquery-and-css3/">Fullscreen Slit Slider with jQuery and CSS3</a>',
73
+ '05-23-2012' : '<a href="http://tympanus.net/codrops/2012/05/23/understanding-the-rule-of-thirds-in-web-design/">Understanding the Rule of Thirds in Web Design</a>',
74
+ '05-22-2012' : '<a href="http://tympanus.net/codrops/2012/05/22/creating-an-animated-3d-bouncing-ball-with-css3/">Creating an Animated 3D Bouncing Ball with CSS3</a>',
75
+ '05-21-2012' : '<a href="http://tympanus.net/codrops/2012/05/21/elegant-themes-giveaway/">Elegant Themes Giveaway</a><a href="http://tympanus.net/codrops/2012/05/21/animated-3d-bar-chart-with-css3/">Animated 3D Bar Chart with CSS3</a>',
76
+ '05-15-2012' : '<a href="http://tympanus.net/codrops/2012/05/15/making-room-to-breathe-wrapping-text-around-elements/">Making Room to Breathe: Wrapping Text Around Elements</a>',
77
+ '05-14-2012' : '<a href="http://tympanus.net/codrops/2012/05/14/annotation-overlay-effect-with-css3/">Annotation Overlay Effect with CSS3</a>',
78
+ '05-09-2012' : '<a href="http://tympanus.net/codrops/2012/05/09/how-to-create-a-fast-hover-slideshow-with-css3/">How to Create a Fast Hover Slideshow with CSS3</a><a href="http://tympanus.net/codrops/2012/05/09/understanding-the-lingo-typography-glossary/">Understanding the Lingo: Typography Glossary</a>',
79
+ '05-07-2012' : '<a href="http://tympanus.net/codrops/2012/05/07/experimental-page-layout-inspired-by-flipboard/">Experimental Page Layout Inspired by Flipboard</a><a href="http://tympanus.net/codrops/2012/05/07/impressionist-ui-pack-giveaway/">Impressionist UI Pack Giveaway</a>',
80
+ '05-03-2012' : '<a href="http://tympanus.net/codrops/2012/05/03/thrivesolo-giveaway/">ThriveSolo Giveaway</a>',
81
+ '05-02-2012' : '<a href="http://tympanus.net/codrops/2012/05/02/enhance-required-form-fields-with-css3/">Enhance Required Form Fields with CSS3</a>',
82
+ '05-01-2012' : '<a href="http://tympanus.net/codrops/2012/05/01/effective-typography-driven-web-design/">Effective Typography-Driven Web Design</a>',
83
+ '04-30-2012' : '<a href="http://tympanus.net/codrops/2012/04/30/fluid-css3-slideshow-with-parallax-effect/">Fluid CSS3 Slideshow with Parallax Effect</a><a href="http://tympanus.net/codrops/2012/04/30/im-creator-giveaway/">IM Creator Giveaway</a>',
84
+ '04-25-2012' : '<a href="http://tympanus.net/codrops/2012/04/25/flarethemes-giveaway/">FlareThemes Giveaway</a><a href="http://tympanus.net/codrops/2012/04/25/type-effects-in-web-design-its-all-about-moderation/">Type Effects in Web Design: It&#8217;s All About Moderation</a>',
85
+ '04-24-2012' : '<a href="http://tympanus.net/codrops/2012/04/24/audio-slideshow-with-jplayer/">Audio Slideshow with jPlayer</a>',
86
+ '04-28-2012' : '<a href="http://tympanus.net/codrops/2012/04/18/awwwards-the-best-365-websites-around-the-world-2011-book-giveaway/">Awwwards: The Best 365 Websites Around the World 2011 Book Giveaway</a>',
87
+ '04-17-2012' : '<a href="http://tympanus.net/codrops/2012/04/17/rotating-words-with-css-animations/">Rotating Words with CSS Animations</a><a href="http://tympanus.net/codrops/2012/04/17/web-icon-set-giveaway/">Web Icon Set Giveaway</a><a href="http://tympanus.net/codrops/2012/04/17/the-divine-proportion-and-web-design/">The Divine Proportion and Web Design</a>',
88
+ '04-12-2012' : '<a href="http://tympanus.net/codrops/2012/04/12/animated-content-tabs-with-css3/">Animated Content Tabs with CSS3</a>',
89
+ '04-10-2012' : '<a href="http://tympanus.net/codrops/2012/04/10/successful-web-design-its-all-about-the-details/">Successful Web Design: It&#8217;s All About The Details</a><a href="http://tympanus.net/codrops/2012/04/10/tn3gallery-giveaway/">TN3Gallery Giveaway</a>',
90
+ '04-09-2012' : '<a href="http://tympanus.net/codrops/2012/04/09/direction-aware-hover-effect-with-css3-and-jquery/">Direction-Aware Hover Effect with CSS3 and jQuery</a>',
91
+ '04-05-2012' : '<a href="http://tympanus.net/codrops/2012/04/05/slideshow-with-jmpress-js/">Slideshow with jmpress.js</a>',
92
+ '04-03-2012' : '<a href="http://tympanus.net/codrops/2012/04/03/color-and-emotion-what-does-each-hue-mean/">Color and Emotion: What Does Each Hue Mean?</a>',
93
+ '04-02-2012' : '<a href="http://tympanus.net/codrops/2012/04/02/responsive-horizontal-layout/">Responsive Horizontal Layout</a>',
94
+ '03-28-2012' : '<a href="http://tympanus.net/codrops/2012/03/28/mightydeals-giveaway/">MightyDeals Giveaway</a><a href="http://tympanus.net/codrops/2012/03/28/add-impact-to-type-driven-projects/">Add Impact to Type-driven Projects</a>',
95
+ '03-27-2012' : '<a href="http://tympanus.net/codrops/2012/03/27/login-and-registration-form-with-html5-and-css3/">Login and Registration Form with HTML5 and CSS3</a>',
96
+ '03-24-2012' : '<a href="http://tympanus.net/codrops/2012/03/24/more-examples-of-fresh-effects-in-web-design/">More Examples of Fresh Effects in Web Design</a>',
97
+ '03-23-2012' : '<a href="http://tympanus.net/codrops/2012/03/23/responsive-content-navigator-with-css3/">Responsive Content Navigator with CSS3</a>',
98
+ '03-21-2012' : '<a href="http://tympanus.net/codrops/2012/03/21/psd2html-giveaway/">PSD2HTML Giveaway</a>',
99
+ '03-20-2012' : '<a href="http://tympanus.net/codrops/2012/03/20/condensed-fonts-the-good-the-bad-the-ugly/">Condensed fonts: The good, the bad, the ugly</a>',
100
+ '03-15-2012' : '<a href="http://tympanus.net/codrops/2012/03/15/parallax-content-slider-with-css3-and-jquery/">Parallax Content Slider with CSS3 and jQuery</a>',
101
+ '03-12-2012' : '<a href="http://tympanus.net/codrops/2012/03/12/wordpressthemeshock-giveaway/">WordPressThemeShock Giveaway</a>',
102
+ '03-07-2012' : '<a href="http://tympanus.net/codrops/2012/03/07/understanding-and-using-type-categories-in-web-design/">Understanding and Using Type Categories in Web Design</a>',
103
+ '02-28-2012' : '<a href="http://tympanus.net/codrops/2012/02/28/principles-of-color-and-the-color-wheel/">Principles of Color and the Color Wheel</a>',
104
+ '02-21-2012' : '<a href="http://tympanus.net/codrops/2012/02/21/accordion-with-css3/">Accordion with CSS3</a>',
105
+ '02-19-2012' : '<a href="http://tympanus.net/codrops/2012/02/19/establish-a-mood-with-typography/">Establish a Mood with Typography</a>',
106
+ '02-16-2012' : '<a href="http://tympanus.net/codrops/2012/02/16/overcoming-the-user-designer-disease/">Overcoming the &#8220;User Designer&#8221; Disease</a><a href="http://tympanus.net/codrops/2012/02/16/conceptboard-giveaway/">Conceptboard Giveaway</a>',
107
+ '02-09-2012' : '<a href="http://tympanus.net/codrops/2012/02/09/type-effects-and-modification/">Type Effects and Modification</a>',
108
+ '02-06-2012' : '<a href="http://tympanus.net/codrops/2012/02/06/3d-gallery-with-css3-and-jquery/">3D Gallery with CSS3 and jQuery</a>',
109
+ '02-04-2012' : '<a href="http://tympanus.net/codrops/2012/02/04/keys-to-email-creative-success-marketing-and-design/">Keys to Email Creative Success: Marketing and Design</a>',
110
+ '02-01-2012' : '<a href="http://tympanus.net/codrops/2012/02/01/original-wordpress-themes-giveaway-by-themefuse/">Original WordPress Themes Giveaway by ThemeFuse</a><a href="http://tympanus.net/codrops/2012/02/01/how-to-create-animated-tooltips-with-css3/">How to create animated tooltips with CSS3</a>',
111
+ '01-30-2012' : '<a href="http://tympanus.net/codrops/2012/01/30/page-transitions-with-css3/">Page Transitions with CSS3</a>',
112
+ '01-27-2012' : '<a href="http://tympanus.net/codrops/2012/01/27/modular-front-end-development-with-less/">Modular front-end development with LESS</a>',
113
+ '01-26-2012' : '<a href="http://tympanus.net/codrops/2012/01/26/be-less-annoying-reduce-bounce-rates-through-better-web-design/">Be Less Annoying: Reduce Bounce Rates through Better Web Design</a>',
114
+ '01-24-2012' : '<a href="http://tympanus.net/codrops/2012/01/24/arctext-js-curving-text-with-css3-and-jquery/">Arctext.js &#8211; Curving Text with CSS3 and jQuery</a>',
115
+ '01-22-2012' : '<a href="http://tympanus.net/codrops/2012/01/22/how-to-spice-up-your-menu-with-css3/">How to spice up your menu with CSS3</a><a href="http://tympanus.net/codrops/2012/01/22/codrops-giveaway-from-moo-com/">Codrops Giveaway From MOO.com</a>',
116
+ '01-17-2012' : '<a href="http://tympanus.net/codrops/2012/01/17/sliding-image-panels-with-css3/">Sliding Image Panels with CSS3</a>',
117
+ '01-12-2012' : '<a href="http://tympanus.net/codrops/2012/01/12/5-things-every-mobile-design-should-have/">5 Things Every Mobile Design Should Have</a>',
118
+ '01-11-2012' : '<a href="http://tympanus.net/codrops/2012/01/11/css-buttons-with-pseudo-elements/">CSS Buttons with Pseudo-elements</a>',
119
+ '01-10-2012' : '<a href="http://tympanus.net/codrops/2012/01/10/animated-web-banners-with-css3/">Animated Web Banners With CSS3</a>',
120
+ '01-09-2012' : '<a href="http://tympanus.net/codrops/2012/01/09/filter-functionality-with-css3/">Filter Functionality with CSS3</a>',
121
+ '01-05-2012' : '<a href="http://tympanus.net/codrops/2012/01/05/jumping-the-hurdles-of-brainstorming/">Jumping the Hurdles of Brainstorming</a><a href="http://tympanus.net/codrops/2012/01/05/examples-of-fresh-effects-in-web-design/">Examples of Fresh Effects in Web Design</a>',
122
+ '01-04-2012' : '<a href="http://tympanus.net/codrops/2012/01/04/thumbnail-proximity-effect/">Thumbnail Proximity Effect with jQuery and CSS3</a>',
123
+ '01-02-2012' : '<a href="http://tympanus.net/codrops/2012/01/02/fullscreen-background-image-slideshow-with-css3/">Fullscreen Background Image Slideshow with CSS3</a>',
124
+ '12-25-2012' : '<span>Christmas Day</span>',
125
+ '12-31-2012' : '<span>New Year\'s Eve</span>'
126
+ };
@@ -0,0 +1,394 @@
1
+ /**
2
+ * jquery.calendario.js v1.0.0
3
+ * http://www.codrops.com
4
+ *
5
+ * Licensed under the MIT license.
6
+ * http://www.opensource.org/licenses/mit-license.php
7
+ *
8
+ * Copyright 2012, Codrops
9
+ * http://www.codrops.com
10
+ */
11
+ ;( function( $, window, undefined ) {
12
+
13
+ 'use strict';
14
+
15
+ $.Calendario = function( options, element ) {
16
+
17
+ this.$el = $( element );
18
+ this._init( options );
19
+
20
+ };
21
+
22
+ // the options
23
+ $.Calendario.defaults = {
24
+ /*
25
+ you can also pass:
26
+ month : initialize calendar with this month (1-12). Default is today.
27
+ year : initialize calendar with this year. Default is today.
28
+ caldata : initial data/content for the calendar.
29
+ caldata format:
30
+ {
31
+ 'MM-DD-YYYY' : 'HTML Content',
32
+ 'MM-DD-YYYY' : 'HTML Content',
33
+ 'MM-DD-YYYY' : 'HTML Content'
34
+ ...
35
+ }
36
+ */
37
+ weeks : [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],
38
+ weekabbrs : [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],
39
+ months : [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],
40
+ monthabbrs : [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],
41
+ // choose between values in options.weeks or options.weekabbrs
42
+ displayWeekAbbr : false,
43
+ // choose between values in options.months or options.monthabbrs
44
+ displayMonthAbbr : false,
45
+ // left most day in the calendar
46
+ // 0 - Sunday, 1 - Monday, ... , 6 - Saturday
47
+ startIn : 1,
48
+ onDayClick : function( $el, $content, dateProperties ) { return false; }
49
+ };
50
+
51
+ $.Calendario.prototype = {
52
+
53
+ _init : function( options ) {
54
+ // options
55
+ this.options = $.extend( true, {}, $.Calendario.defaults, options );
56
+
57
+ this.today = new Date();
58
+ this.month = ( isNaN( this.options.month ) || this.options.month == null) ? this.today.getMonth() : this.options.month - 1;
59
+ this.year = ( isNaN( this.options.year ) || this.options.year == null) ? this.today.getFullYear() : this.options.year;
60
+ this.caldata = this.options.caldata || {};
61
+ //so we will pass in the options here to call the same function defined outside.
62
+ this._generateTemplate(options.callback);
63
+ this._initEvents();
64
+
65
+ },
66
+ _initEvents : function() {
67
+
68
+ var self = this;
69
+
70
+ this.$el.on( 'click.calendario', 'div.fc-row > div', function() {
71
+
72
+ var $cell = $( this ),
73
+ idx = $cell.index(),
74
+ $content = $cell.children( 'div' ),
75
+ dateProp = {
76
+ day : $cell.children( 'span.fc-date' ).text(),
77
+ month : self.month + 1,
78
+ monthname : self.options.displayMonthAbbr ? self.options.monthabbrs[ self.month ] : self.options.months[ self.month ],
79
+ year : self.year,
80
+ weekday : idx + self.options.startIn,
81
+ weekdayname : self.options.weeks[ idx + self.options.startIn ]
82
+ };
83
+
84
+ if( dateProp.day ) {
85
+ self.options.onDayClick( $cell, $content, dateProp );
86
+ }
87
+
88
+ } );
89
+
90
+ },
91
+ // Calendar logic based on http://jszen.blogspot.pt/2007/03/how-to-build-simple-calendar-with.html
92
+ _generateTemplate : function( callback ) {
93
+ var head = this._getHead(),
94
+ body = this._getBody(),
95
+ rowClass;
96
+
97
+ switch( this.rowTotal ) {
98
+ case 4 : rowClass = 'fc-four-rows'; break;
99
+ case 5 : rowClass = 'fc-five-rows'; break;
100
+ case 6 : rowClass = 'fc-six-rows'; break;
101
+ }
102
+
103
+ this.$cal = $( '<div class="fc-calendar ' + rowClass + '">' ).append( head, body );
104
+
105
+ this.$el.find( 'div.fc-calendar' ).remove().end().append( this.$cal );
106
+
107
+ console.log("called generate template");
108
+
109
+ if( callback ) { callback.call(this); }
110
+
111
+ },
112
+ _getHead : function() {
113
+
114
+ var html = '<div class="fc-head">';
115
+
116
+ for ( var i = 0; i <= 6; i++ ) {
117
+
118
+ var pos = i + this.options.startIn,
119
+ j = pos > 6 ? pos - 6 - 1 : pos;
120
+
121
+ html += '<div>';
122
+ html += this.options.displayWeekAbbr ? this.options.weekabbrs[ j ] : this.options.weeks[ j ];
123
+ html += '</div>';
124
+
125
+ }
126
+
127
+ html += '</div>';
128
+
129
+ return html;
130
+
131
+ },
132
+ //so the way it could work would be to call getbody, in the done call of the date range query -> which will return just a bunch of image srcs, with dates, and see how to show an animation while the image is downloading,
133
+ _getBody : function() {
134
+
135
+ var d = new Date( this.year, this.month + 1, 0 ),
136
+ // number of days in the month
137
+ monthLength = d.getDate(),
138
+ firstDay = new Date( this.year, this.month, 1 );
139
+
140
+ // day of the week
141
+ this.startingDay = firstDay.getDay();
142
+
143
+ var html = '<div class="fc-body"><div class="fc-row">',
144
+ // fill in the days
145
+ day = 1;
146
+
147
+
148
+ // this loop is for weeks (rows)
149
+ for ( var i = 0; i < 7; i++ ) {
150
+
151
+ // this loop is for weekdays (cells)
152
+ for ( var j = 0; j <= 6; j++ ) {
153
+
154
+ var pos = this.startingDay - this.options.startIn,
155
+ p = pos < 0 ? 6 + pos + 1 : pos,
156
+ inner = '',
157
+ today = this.month === this.today.getMonth() && this.year === this.today.getFullYear() && day === this.today.getDate(),
158
+ content = '',
159
+ strdate = ( this.month + 1 < 10 ? '0' + ( this.month + 1 ) : this.month + 1 ) + '-' + ( day < 10 ? '0' + day : day ) + '-' + this.year;
160
+
161
+ if ( day <= monthLength && ( i > 0 || j >= p ) ) {
162
+
163
+ inner += '<span class="fc-date">' + day + '</span><span class="fc-weekday">' + this.options.weekabbrs[ j + this.options.startIn > 6 ? j + this.options.startIn - 6 - 1 : j + this.options.startIn ] + '</span>';
164
+
165
+ // this day is:
166
+
167
+ var dayData = this.caldata[ strdate ];
168
+
169
+ if( dayData ) {
170
+ content = dayData;
171
+ }
172
+
173
+ if( content !== '' ) {
174
+
175
+ inner += '<div>' + content + '</div>';
176
+ }
177
+
178
+ ++day;
179
+
180
+ }
181
+ else {
182
+ today = false;
183
+ }
184
+
185
+ var cellClasses = today ? 'fc-today ' : '';
186
+ if( content !== '' ) {
187
+ cellClasses += 'fc-content';
188
+ }
189
+
190
+ html += cellClasses !== '' ? '<div class="' + cellClasses + '" data-strdate="' + strdate + '">' : '<div data-strdate="' + strdate + '">';
191
+ //here just add a data-attribute with the strdate
192
+ html += inner;
193
+ html += '</div>';
194
+
195
+ }
196
+
197
+ // stop making rows if we've run out of days
198
+ if (day > monthLength) {
199
+ this.rowTotal = i + 1;
200
+ break;
201
+ }
202
+ else {
203
+ html += '</div><div class="fc-row">';
204
+ }
205
+
206
+ }
207
+ html += '</div></div>';
208
+
209
+ return html;
210
+
211
+ },
212
+ // based on http://stackoverflow.com/a/8390325/989439
213
+ _isValidDate : function( date ) {
214
+
215
+ date = date.replace(/-/gi,'');
216
+ var month = parseInt( date.substring( 0, 2 ), 10 ),
217
+ day = parseInt( date.substring( 2, 4 ), 10 ),
218
+ year = parseInt( date.substring( 4, 8 ), 10 );
219
+
220
+ if( ( month < 1 ) || ( month > 12 ) ) {
221
+ return false;
222
+ }
223
+ else if( ( day < 1 ) || ( day > 31 ) ) {
224
+ return false;
225
+ }
226
+ else if( ( ( month == 4 ) || ( month == 6 ) || ( month == 9 ) || ( month == 11 ) ) && ( day > 30 ) ) {
227
+ return false;
228
+ }
229
+ else if( ( month == 2 ) && ( ( ( year % 400 ) == 0) || ( ( year % 4 ) == 0 ) ) && ( ( year % 100 ) != 0 ) && ( day > 29 ) ) {
230
+ return false;
231
+ }
232
+ else if( ( month == 2 ) && ( ( year % 100 ) == 0 ) && ( day > 29 ) ) {
233
+ return false;
234
+ }
235
+
236
+ return {
237
+ day : day,
238
+ month : month,
239
+ year : year
240
+ };
241
+
242
+ },
243
+ _move : function( period, dir, callback ) {
244
+
245
+ if( dir === 'previous' ) {
246
+
247
+ if( period === 'month' ) {
248
+ this.year = this.month > 0 ? this.year : --this.year;
249
+ this.month = this.month > 0 ? --this.month : 11;
250
+ }
251
+ else if( period === 'year' ) {
252
+ this.year = --this.year;
253
+ }
254
+
255
+ }
256
+ else if( dir === 'next' ) {
257
+
258
+ if( period === 'month' ) {
259
+ this.year = this.month < 11 ? this.year : ++this.year;
260
+ this.month = this.month < 11 ? ++this.month : 0;
261
+ }
262
+ else if( period === 'year' ) {
263
+ this.year = ++this.year;
264
+ }
265
+
266
+ }
267
+
268
+ this._generateTemplate( callback );
269
+
270
+ },
271
+ /*************************
272
+ ******PUBLIC METHODS *****
273
+ **************************/
274
+ getYear : function() {
275
+ return this.year;
276
+ },
277
+ getMonth : function() {
278
+ return this.month + 1;
279
+ },
280
+ getMonthName : function() {
281
+ return this.options.displayMonthAbbr ? this.options.monthabbrs[ this.month ] : this.options.months[ this.month ];
282
+ },
283
+ // gets the cell's content div associated to a day of the current displayed month
284
+ // day : 1 - [28||29||30||31]
285
+ getCell : function( day ) {
286
+
287
+ var row = Math.floor( ( day + this.startingDay - this.options.startIn ) / 7 ),
288
+ pos = day + this.startingDay - this.options.startIn - ( row * 7 ) - 1;
289
+
290
+ return this.$cal.find( 'div.fc-body' ).children( 'div.fc-row' ).eq( row ).children( 'div' ).eq( pos ).children( 'div' );
291
+
292
+ },
293
+ setData : function( caldata ) {
294
+
295
+ caldata = caldata || {};
296
+ $.extend( this.caldata, caldata );
297
+ this._generateTemplate();
298
+
299
+ },
300
+ // goes to today's month/year
301
+ gotoNow : function( callback ) {
302
+
303
+ this.month = this.today.getMonth();
304
+ this.year = this.today.getFullYear();
305
+ this._generateTemplate( callback );
306
+
307
+ },
308
+ // goes to month/year
309
+ goto : function( month, year, callback ) {
310
+
311
+ this.month = month;
312
+ this.year = year;
313
+ this._generateTemplate( callback );
314
+
315
+ },
316
+ gotoPreviousMonth : function( callback ) {
317
+ this._move( 'month', 'previous', callback );
318
+ },
319
+ gotoPreviousYear : function( callback ) {
320
+ this._move( 'year', 'previous', callback );
321
+ },
322
+ gotoNextMonth : function( callback ) {
323
+ this._move( 'month', 'next', callback );
324
+ },
325
+ gotoNextYear : function( callback ) {
326
+ this._move( 'year', 'next', callback );
327
+ }
328
+
329
+ };
330
+
331
+ var logError = function( message ) {
332
+
333
+ if ( window.console ) {
334
+
335
+ window.console.error( message );
336
+
337
+ }
338
+
339
+ };
340
+
341
+ $.fn.calendario = function( options ) {
342
+
343
+ var instance = $.data( this, 'calendario' );
344
+
345
+ if ( typeof options === 'string' ) {
346
+
347
+ var args = Array.prototype.slice.call( arguments, 1 );
348
+
349
+ this.each(function() {
350
+
351
+ if ( !instance ) {
352
+
353
+ logError( "cannot call methods on calendario prior to initialization; " +
354
+ "attempted to call method '" + options + "'" );
355
+ return;
356
+
357
+ }
358
+
359
+ if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
360
+
361
+ logError( "no such method '" + options + "' for calendario instance" );
362
+ return;
363
+
364
+ }
365
+
366
+ instance[ options ].apply( instance, args );
367
+
368
+ });
369
+
370
+ }
371
+ else {
372
+
373
+ this.each(function() {
374
+
375
+ if ( instance ) {
376
+
377
+ instance._init();
378
+
379
+ }
380
+ else {
381
+
382
+ instance = $.data( this, 'calendario', new $.Calendario( options, this ) );
383
+
384
+ }
385
+
386
+ });
387
+
388
+ }
389
+
390
+ return instance;
391
+
392
+ };
393
+
394
+ } )( jQuery, window );