jc_cms 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.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +40 -0
- data/app/assets/images/jc_cms/ok.png +0 -0
- data/app/assets/javascripts/jc_cms/application.js +16 -0
- data/app/assets/javascripts/jc_cms/bootstrap.js.coffee +4 -0
- data/app/assets/javascripts/jc_cms/dashboard/dashboard.js +2 -0
- data/app/assets/javascripts/jc_cms/dashboard/pages.js.coffee +3 -0
- data/app/assets/javascripts/jc_cms/home.js.coffee +3 -0
- data/app/assets/stylesheets/jc_cms/application.css +18 -0
- data/app/assets/stylesheets/jc_cms/bootstrap_and_overrides.css.less +34 -0
- data/app/assets/stylesheets/jc_cms/bootswatch.css.less +181 -0
- data/app/assets/stylesheets/jc_cms/dashboard/dashboard.css +4 -0
- data/app/assets/stylesheets/jc_cms/dashboard/pages.css.scss +3 -0
- data/app/assets/stylesheets/jc_cms/home.css.scss +3 -0
- data/app/assets/stylesheets/jc_cms/variables.css.less +301 -0
- data/app/cells/page/show.html.haml +4 -0
- data/app/cells/page_cell.rb +7 -0
- data/app/cells/pages_menu/show.html.haml +7 -0
- data/app/cells/pages_menu_cell.rb +8 -0
- data/app/controllers/jc_cms/application_controller.rb +17 -0
- data/app/controllers/jc_cms/dashboard/dashboard_controller.rb +10 -0
- data/app/controllers/jc_cms/dashboard/pages_controller.rb +42 -0
- data/app/controllers/jc_cms/home_controller.rb +6 -0
- data/app/helpers/jc_cms/application_helper.rb +4 -0
- data/app/helpers/jc_cms/dashboard/dashboard_helper.rb +4 -0
- data/app/models/ckeditor/asset.rb +7 -0
- data/app/models/ckeditor/attachment_file.rb +7 -0
- data/app/models/ckeditor/picture.rb +7 -0
- data/app/models/jc_cms/page.rb +11 -0
- data/app/models/jc_cms/user.rb +13 -0
- data/app/uploaders/ckeditor_attachment_file_uploader.rb +44 -0
- data/app/uploaders/ckeditor_picture_uploader.rb +55 -0
- data/app/views/jc_cms/dashboard/dashboard/index.html.erb +1 -0
- data/app/views/jc_cms/dashboard/pages/_form.html.haml +14 -0
- data/app/views/jc_cms/dashboard/pages/edit.html.haml +2 -0
- data/app/views/jc_cms/dashboard/pages/index.html.haml +25 -0
- data/app/views/jc_cms/dashboard/pages/new.html.haml +2 -0
- data/app/views/jc_cms/dashboard/pages/show.html.haml +2 -0
- data/app/views/jc_cms/home/index.html.haml +1 -0
- data/app/views/jc_cms/users/confirmations/new.html.erb +15 -0
- data/app/views/jc_cms/users/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/jc_cms/users/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/jc_cms/users/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/jc_cms/users/passwords/edit.html.erb +19 -0
- data/app/views/jc_cms/users/passwords/new.html.erb +15 -0
- data/app/views/jc_cms/users/registrations/edit.html.erb +22 -0
- data/app/views/jc_cms/users/registrations/new.html.erb +17 -0
- data/app/views/jc_cms/users/sessions/new.html.erb +13 -0
- data/app/views/jc_cms/users/shared/_links.erb +25 -0
- data/app/views/jc_cms/users/unlocks/new.html.erb +15 -0
- data/app/views/layouts/jc_cms/application.html.erb +90 -0
- data/app/views/layouts/jc_cms/jc_cms.html.erb +86 -0
- data/config/application.rb +63 -0
- data/config/boot.rb +6 -0
- data/config/environment.rb +5 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/ckeditor.rb +18 -0
- data/config/initializers/devise.rb +233 -0
- data/config/initializers/inflections.rb +15 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/initializers/simple_form.rb +142 -0
- data/config/initializers/simple_form_bootstrap.rb +45 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/devise.en.yml +58 -0
- data/config/locales/devise.pl.yml +62 -0
- data/config/locales/en.yml +5 -0
- data/config/locales/pl.yml +246 -0
- data/config/locales/simple_form.en.yml +26 -0
- data/config/locales/simple_form.pl.yml +36 -0
- data/config/routes.rb +14 -0
- data/db/migrate/20121107230840_create_pages.rb +20 -0
- data/db/migrate/20121112234336_create_ckeditor_assets.rb +26 -0
- data/db/migrate/20121118205852_devise_create_cms_users.rb +46 -0
- data/lib/jc_cms/engine.rb +5 -0
- data/lib/jc_cms/version.rb +3 -0
- data/lib/jc_cms.rb +4 -0
- data/lib/tasks/jc_cms_tasks.rake +4 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/ckeditor/asset.rb +7 -0
- data/test/dummy/app/models/ckeditor/attachment_file.rb +7 -0
- data/test/dummy/app/models/ckeditor/picture.rb +7 -0
- data/test/dummy/app/uploaders/ckeditor_attachment_file_uploader.rb +42 -0
- data/test/dummy/app/uploaders/ckeditor_picture_uploader.rb +53 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config/application.rb +60 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/ckeditor.rb +18 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +6 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20121216213708_create_locations.jc_cms.rb +15 -0
- data/test/dummy/db/migrate/20121216213709_create_pages.jc_cms.rb +22 -0
- data/test/dummy/db/migrate/20121216213710_create_ckeditor_assets.jc_cms.rb +27 -0
- data/test/dummy/db/migrate/20121216213711_devise_create_cms_users.jc_cms.rb +47 -0
- data/test/dummy/db/migrate/20121216224201_create_ckeditor_assets.rb +26 -0
- data/test/dummy/db/schema.rb +70 -0
- data/test/dummy/log/development.log +21503 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/1/Zrzut_ekranu_z_2012-11-13_22_39_26.png +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/1/content_Zrzut_ekranu_z_2012-11-13_22_39_26.png +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/1/thumb_Zrzut_ekranu_z_2012-11-13_22_39_26.png +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/2/Zrzut_ekranu_z_2012-11-13_22_39_26.png +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/2/content_Zrzut_ekranu_z_2012-11-13_22_39_26.png +0 -0
- data/test/dummy/public/uploads/ckeditor/pictures/2/thumb_Zrzut_ekranu_z_2012-11-13_22_39_26.png +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/tmp/cache/assets/C07/8C0/sprockets%2F64646b098528c9808ce15815c4496607 +0 -0
- data/test/dummy/tmp/cache/assets/C09/B90/sprockets%2F72126398325c80c78fd6678718473a84 +0 -0
- data/test/dummy/tmp/cache/assets/C46/520/sprockets%2Fee0865a4980d56313339e053a1218f20 +0 -0
- data/test/dummy/tmp/cache/assets/C59/490/sprockets%2F9600e95c2208a04b71582af3e8688854 +0 -0
- data/test/dummy/tmp/cache/assets/C5A/E90/sprockets%2F6d94f48b07e6690559f54061152154fa +0 -0
- data/test/dummy/tmp/cache/assets/C5D/6E0/sprockets%2F27494740406c86656742cf4e3128b9ce +0 -0
- data/test/dummy/tmp/cache/assets/C5E/310/sprockets%2Ff149155a6c5a09834cf158617963676a +0 -0
- data/test/dummy/tmp/cache/assets/C64/7E0/sprockets%2F4347701f6cd7118799d285377f38a5d2 +0 -0
- data/test/dummy/tmp/cache/assets/C66/760/sprockets%2Fc335e045119111f98632e9f62f6888f8 +0 -0
- data/test/dummy/tmp/cache/assets/C67/FE0/sprockets%2F67f52995585deb28a55c25394d601757 +0 -0
- data/test/dummy/tmp/cache/assets/C79/540/sprockets%2Fd40ecc5f0532937936b7c83101e43614 +0 -0
- data/test/dummy/tmp/cache/assets/C87/890/sprockets%2F6093c36edd443ed062379a9966c55023 +0 -0
- data/test/dummy/tmp/cache/assets/C8B/D60/sprockets%2Fa42a3175cd067427e36648605ee69f84 +0 -0
- data/test/dummy/tmp/cache/assets/C8E/6E0/sprockets%2Fa8b21b14c23c038a2473c2b58304530c +0 -0
- data/test/dummy/tmp/cache/assets/C92/500/sprockets%2F1058b7805167e75c2b97121d78e97de7 +0 -0
- data/test/dummy/tmp/cache/assets/CA3/130/sprockets%2F469beac37850c6141bf41882018b601b +0 -0
- data/test/dummy/tmp/cache/assets/CA7/3B0/sprockets%2Ffd1e83a3755907b8a606f30a41307a19 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/F70/sprockets%2Fd9043423e669960cf03ae665c5b427a3 +0 -0
- data/test/dummy/tmp/cache/assets/CB4/4B0/sprockets%2F5847a771ed4b27500f51e73a91e6b934 +0 -0
- data/test/dummy/tmp/cache/assets/CB9/650/sprockets%2Fec2d52e0987701dd208d18c8996e3351 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/D10/sprockets%2F1b2c89754d436451d980455e8fca09a7 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/F10/sprockets%2F5ebb0567b58c43c0773b686546b295c8 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/A50/sprockets%2F81f095124c73bdb22433c6a65a3d10c3 +0 -0
- data/test/dummy/tmp/cache/assets/CC9/B70/sprockets%2Ff9856126986468185e48fbc6b2da155e +0 -0
- data/test/dummy/tmp/cache/assets/CCD/E70/sprockets%2Fb6162d50af74a01c7cd2565082d3e181 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/070/sprockets%2F5412439eb13284f0a3b08c28273febd1 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/5B0/sprockets%2F681bb88d099369e235d531892e9d9a8f +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CD9/D10/sprockets%2F33ba9401ac4819f676d06ea642e614d3 +0 -0
- data/test/dummy/tmp/cache/assets/CDE/F50/sprockets%2Fa7e186ae00816cf344cae8394246a087 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/0D0/sprockets%2Fe45b3bd832715a12e9c1f6cc91470838 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/8E0/sprockets%2F9b322b80baee847d191297c1be634863 +0 -0
- data/test/dummy/tmp/cache/assets/CE4/0B0/sprockets%2F58e822726dd1560cff2cd626542c5c74 +0 -0
- data/test/dummy/tmp/cache/assets/CE9/8E0/sprockets%2Fd2c16c246539568db289da6c98fc1026 +0 -0
- data/test/dummy/tmp/cache/assets/CEB/010/sprockets%2F84229e36d60efb34c64354c4c9eb3938 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/D50/sprockets%2F92c13f7d07456dad81dd5246bd859349 +0 -0
- data/test/dummy/tmp/cache/assets/CEE/CA0/sprockets%2Feda89fff0c47312925a8918192e178c2 +0 -0
- data/test/dummy/tmp/cache/assets/CEF/E90/sprockets%2F92f31af9445568181cf8068a5a5a9f4e +0 -0
- data/test/dummy/tmp/cache/assets/CF4/520/sprockets%2F1114f42d76e827c6a9758966bf9dbb45 +0 -0
- data/test/dummy/tmp/cache/assets/D00/DB0/sprockets%2F88e2ffc1c52a23d43921baf530d71315 +0 -0
- data/test/dummy/tmp/cache/assets/D01/170/sprockets%2F0b5555cc3795f64eaaab40272c9a0443 +0 -0
- data/test/dummy/tmp/cache/assets/D03/780/sprockets%2F397bfee3e1000d0581f8c375bb0245a7 +0 -0
- data/test/dummy/tmp/cache/assets/D03/C60/sprockets%2F97f47db90e6fc62c4d7c6387828397d5 +0 -0
- data/test/dummy/tmp/cache/assets/D08/060/sprockets%2F69dde8caa562064090b325ae8045bc92 +0 -0
- data/test/dummy/tmp/cache/assets/D09/2C0/sprockets%2F360a0f84dbf6b2a3106df55d0d881469 +0 -0
- data/test/dummy/tmp/cache/assets/D0D/560/sprockets%2Fae539b122faaf679d9e32247e050682a +0 -0
- data/test/dummy/tmp/cache/assets/D0F/C80/sprockets%2F5780677e72a94f1af9da0e24a30e84c0 +0 -0
- data/test/dummy/tmp/cache/assets/D11/0A0/sprockets%2Ff05fb4198cd543304f9cd14a412be969 +0 -0
- data/test/dummy/tmp/cache/assets/D11/DA0/sprockets%2F601da0adf47d60282972e473b64eeb97 +0 -0
- data/test/dummy/tmp/cache/assets/D15/2C0/sprockets%2Fdeb34df73f715b491c843655606b06ee +0 -0
- data/test/dummy/tmp/cache/assets/D17/690/sprockets%2Fa75ae0c2703ef284758d27620f84ef6d +0 -0
- data/test/dummy/tmp/cache/assets/D1E/950/sprockets%2F91d9e2e8575267cea4a2cb342669d67c +0 -0
- data/test/dummy/tmp/cache/assets/D20/670/sprockets%2F5f24e9ae131b4909f779ead84d4474a7 +0 -0
- data/test/dummy/tmp/cache/assets/D28/AA0/sprockets%2Fe9f5960dc9465591182cd6c1ff1a98c8 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/1B0/sprockets%2F042e74be6a1c2862c1fbdd433a1127d6 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/5F0/sprockets%2Ff4dcb9ce765ea4667a6925613c68289f +0 -0
- data/test/dummy/tmp/cache/assets/D2C/CB0/sprockets%2F12d3089b5b4aed1055b9413ee05cfd04 +0 -0
- data/test/dummy/tmp/cache/assets/D2F/6A0/sprockets%2Fbe0da0721240eba9ec280c3f65595d42 +0 -0
- data/test/dummy/tmp/cache/assets/D30/BA0/sprockets%2F7434264acdbb0a912f2325a92dd625ee +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D36/A00/sprockets%2F794a48f8e74df2f775ab5e289f385a87 +0 -0
- data/test/dummy/tmp/cache/assets/D36/C00/sprockets%2F31d5b05a9ef64c11c99038b8f3ea024c +0 -0
- data/test/dummy/tmp/cache/assets/D39/370/sprockets%2F8617aa36e80a726daf01548abecf7514 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/D80/sprockets%2Fb54b6d7431d3fa350fd4860ec48376ba +0 -0
- data/test/dummy/tmp/cache/assets/D3C/2F0/sprockets%2F51cdd57d7fb8dd62a0c62c76b3185621 +0 -0
- data/test/dummy/tmp/cache/assets/D44/880/sprockets%2F4a4c96693e3a1a39c3f8b91228eeb54c +0 -0
- data/test/dummy/tmp/cache/assets/D44/BF0/sprockets%2Fa595dfd60f55332e66ed0e2a536883ad +0 -0
- data/test/dummy/tmp/cache/assets/D45/960/sprockets%2F36d2078b56c85b2e7e83bb1ebc3509f8 +0 -0
- data/test/dummy/tmp/cache/assets/D45/B00/sprockets%2Fc738c84515abd254264ebce779ed63d0 +0 -0
- data/test/dummy/tmp/cache/assets/D45/F80/sprockets%2Fe43ea8a1ded751a980c53a850889de33 +0 -0
- data/test/dummy/tmp/cache/assets/D48/7D0/sprockets%2F36f7c25f24e292b18fde7638f08aa9c0 +0 -0
- data/test/dummy/tmp/cache/assets/D48/C10/sprockets%2F6fcf9db784da5ae76551831162eb76c1 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/860/sprockets%2F7e45fa7bc38e7fe824e248f2a496f300 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/E70/sprockets%2Fd925ba6277eb18ccee7826175149d5ce +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D52/550/sprockets%2F0e729ff182c56eac9cb66f61885ac746 +0 -0
- data/test/dummy/tmp/cache/assets/D53/720/sprockets%2F06e82479780b08ef39ee251d5ff1ecf8 +0 -0
- data/test/dummy/tmp/cache/assets/D54/A00/sprockets%2F3df92468167df36c8fe4985fca50cd16 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/CC0/sprockets%2F11ff861f4f3307eb12da5333f34a9aba +0 -0
- data/test/dummy/tmp/cache/assets/D5F/F70/sprockets%2F4b083a83b2d19280ecf82d80cb0ec35a +0 -0
- data/test/dummy/tmp/cache/assets/D60/D30/sprockets%2Ff42c2090b3b42edbb29b14b8ca8c9381 +0 -0
- data/test/dummy/tmp/cache/assets/D63/FE0/sprockets%2F7c06e0b1e3f36943b4b6ac29ea2f03b8 +0 -0
- data/test/dummy/tmp/cache/assets/D70/260/sprockets%2Fec4232a583d51ebb6f61f3733dfe773d +0 -0
- data/test/dummy/tmp/cache/assets/D70/E40/sprockets%2F9be15c072df1cf29447f13c75fcea462 +0 -0
- data/test/dummy/tmp/cache/assets/D72/8B0/sprockets%2Fa6a44539fe3bd2f93df1d758acc81640 +0 -0
- data/test/dummy/tmp/cache/assets/D72/E50/sprockets%2F9fb77b92c0d85bef0e58e52d1c4202b9 +0 -0
- data/test/dummy/tmp/cache/assets/D73/5A0/sprockets%2F7c6389b8bb1dd2a68aa4c36734cb98e0 +0 -0
- data/test/dummy/tmp/cache/assets/D75/360/sprockets%2F293ef946e8f2bd1c0302fd97cc43ea39 +0 -0
- data/test/dummy/tmp/cache/assets/D7A/B20/sprockets%2F4fae9bff57ef326bc3263b7864730b5f +0 -0
- data/test/dummy/tmp/cache/assets/D7B/9A0/sprockets%2F769e91c33d9359c2dc9a1aa64ebf89b0 +0 -0
- data/test/dummy/tmp/cache/assets/D7D/C10/sprockets%2Fb0b77d34568b99bf0e1bf912ec8cf378 +0 -0
- data/test/dummy/tmp/cache/assets/D7E/DD0/sprockets%2F971cab035c4a28fc46bb20ab01a8c14c +0 -0
- data/test/dummy/tmp/cache/assets/D84/9E0/sprockets%2F57ec681758c9ce6c50bad69b835bf9c3 +0 -0
- data/test/dummy/tmp/cache/assets/D8D/E00/sprockets%2Ff08e1adc2ab7550fabf4210b7cf21587 +0 -0
- data/test/dummy/tmp/cache/assets/D8E/E50/sprockets%2F3a83cb2dd3c1df4c4e45037bef17a244 +0 -0
- data/test/dummy/tmp/cache/assets/D94/C30/sprockets%2Fec42b5f7ac9042dd6d3ce26f002de616 +0 -0
- data/test/dummy/tmp/cache/assets/D98/380/sprockets%2Fcf1c474c0bb8c73996ac31a5db5465ac +0 -0
- data/test/dummy/tmp/cache/assets/D99/BE0/sprockets%2Fd7a16c2e0d6d3b4265bb4d6eb5be7484 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/7A0/sprockets%2F419e4ca288cce5faa35ec702cce63674 +0 -0
- data/test/dummy/tmp/cache/assets/DA0/CE0/sprockets%2F9f2b2767dfb1bbfd32ed538278a0f72a +0 -0
- data/test/dummy/tmp/cache/assets/DA1/480/sprockets%2F4c7b27d4ebedd93a0da0628e36f6809c +0 -0
- data/test/dummy/tmp/cache/assets/DA2/CD0/sprockets%2Fa99c7b02f4a462d48f68ac7a1d24dbf7 +0 -0
- data/test/dummy/tmp/cache/assets/DA3/F20/sprockets%2Fc05a73e30703be304fd9fe8db4cf598e +0 -0
- data/test/dummy/tmp/cache/assets/DB9/3D0/sprockets%2F02571f86c7cfe0fc11bfc3d1bbb1c208 +0 -0
- data/test/dummy/tmp/cache/assets/DC4/540/sprockets%2Fadee232b4e5d1dc4537d796d64ac2ac1 +0 -0
- data/test/dummy/tmp/cache/assets/DC4/590/sprockets%2F2dc05e1dc0a167e4735ac1dd76dafa97 +0 -0
- data/test/dummy/tmp/cache/assets/DC5/FE0/sprockets%2Fe41e0b207ecd4cd2e8284cfbb30e557e +0 -0
- data/test/dummy/tmp/cache/assets/DC7/100/sprockets%2F11ac5c4013dd9e91fde638af50c3f1ff +0 -0
- data/test/dummy/tmp/cache/assets/DC7/990/sprockets%2F5c956d26ecca1dfe4fb9eaa394301f01 +0 -0
- data/test/dummy/tmp/cache/assets/DCA/190/sprockets%2F18a3206d6ecdd1eb90afb684ae9ec345 +0 -0
- data/test/dummy/tmp/cache/assets/DCE/380/sprockets%2Fb8f50d4e2dedd941e46a4bc23dd7e391 +0 -0
- data/test/dummy/tmp/cache/assets/DDA/D50/sprockets%2F61e799bee7414e75bafc34fae4bd049f +0 -0
- data/test/dummy/tmp/cache/assets/DDB/B60/sprockets%2Fb9f5599ad317c420899cebe81bbefa3d +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DDD/EA0/sprockets%2Ff7ece9144ddb7c4e33667f76caa8d3b6 +0 -0
- data/test/dummy/tmp/cache/assets/DFF/1B0/sprockets%2Fc12c9bb21df8b6797b49adc1c7aaf8e2 +0 -0
- data/test/dummy/tmp/cache/assets/E04/5E0/sprockets%2F38bfd5bbb49de4a45f5a51971cdf6be5 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E05/CD0/sprockets%2Fc8ea7dcae5c0f1974e75cbf110d9ca99 +0 -0
- data/test/dummy/tmp/cache/assets/E06/F80/sprockets%2Fc89d2b450fccd9e2efcdcb0446b4679d +0 -0
- data/test/dummy/tmp/cache/assets/E08/BA0/sprockets%2Fbe24d2682f98eea5a7fa60fa62fded56 +0 -0
- data/test/dummy/tmp/cache/assets/E1F/2A0/sprockets%2F0cf165eccecfa19ad5dc2944403a1cfd +0 -0
- data/test/dummy/tmp/cache/assets/E26/430/sprockets%2Fc2823ee45c2582bcec34a905fcacbdef +0 -0
- data/test/dummy/tmp/cache/assets/E2B/A30/sprockets%2Fdccc7eaad9b961b83f453b65b4b5cc0f +0 -0
- data/test/dummy/tmp/cache/assets/E39/4E0/sprockets%2Fee2fd1f87ee7cd516ea52e8c1ebc9e16 +0 -0
- data/test/dummy/tmp/cache/assets/E3B/EB0/sprockets%2Fa8e36f0a9d6869490d5da55cbcfccfec +0 -0
- data/test/dummy/tmp/cache/assets/E58/840/sprockets%2Fadeedcbe177fa92bf217db08f504d5bd +0 -0
- data/test/dummy/tmp/cache/assets/E7B/380/sprockets%2F1bccb9b3a0bf0b9d92f3fad21fafca56 +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- data/test/fixtures/jc_cms/cms_users.yml +11 -0
- data/test/functional/jc_cms/dashboard/dashboard_controller_test.rb +11 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/jc_cms_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/helpers/jc_cms/dashboard/dashboard_helper_test.rb +6 -0
- data/test/unit/jc_cms/cms_user_test.rb +9 -0
- metadata +525 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module JcCms
|
|
2
|
+
class ApplicationController < ActionController::Base
|
|
3
|
+
protect_from_forgery
|
|
4
|
+
layout :layout_by_resource
|
|
5
|
+
|
|
6
|
+
protected
|
|
7
|
+
|
|
8
|
+
def layout_by_resource
|
|
9
|
+
if devise_controller? && resource_name == :cms_user
|
|
10
|
+
"jc_cms"
|
|
11
|
+
else
|
|
12
|
+
"application"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
module JcCms
|
|
2
|
+
class Dashboard::PagesController < ApplicationController
|
|
3
|
+
layout "jc_cms/jc_cms"
|
|
4
|
+
before_filter :authenticate_user!
|
|
5
|
+
|
|
6
|
+
def index
|
|
7
|
+
@pages = Page.all
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def show
|
|
11
|
+
@page = Page.find(params[:id])
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def new
|
|
15
|
+
@page = Page.new
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def create
|
|
19
|
+
@page = Page.new
|
|
20
|
+
@page.assign_attributes(params[:page])
|
|
21
|
+
@page.save!
|
|
22
|
+
redirect_to dashboard_pages_path
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def edit
|
|
26
|
+
@page = Page.find(params[:id])
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def update
|
|
30
|
+
@page = Page.find(params[:id])
|
|
31
|
+
@page.assign_attributes(params[:page])
|
|
32
|
+
@page.save!
|
|
33
|
+
redirect_to dashboard_page_path(@page)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def destroy
|
|
37
|
+
page = Page.find(params[:id])
|
|
38
|
+
page.delete
|
|
39
|
+
redirect_to dashboard_pages_path
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module JcCms
|
|
2
|
+
class Page < ActiveRecord::Base
|
|
3
|
+
attr_accessible :content, :meta_description, :meta_keywords, :meta_title, :name, :page_id, :active, :position
|
|
4
|
+
belongs_to :page
|
|
5
|
+
has_many :pages
|
|
6
|
+
|
|
7
|
+
scope :actives, where(:active => true)
|
|
8
|
+
|
|
9
|
+
validates :name, :content, :presence => true
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module JcCms
|
|
2
|
+
class User < ActiveRecord::Base
|
|
3
|
+
# Include default devise modules. Others available are:
|
|
4
|
+
# :token_authenticatable, :confirmable,
|
|
5
|
+
# :lockable, :timeoutable and :omniauthable
|
|
6
|
+
devise :database_authenticatable, #:registerable,
|
|
7
|
+
:recoverable, :rememberable, :trackable, :validatable
|
|
8
|
+
|
|
9
|
+
# Setup accessible (or protected) attributes for your model
|
|
10
|
+
attr_accessible :email, :password, :password_confirmation, :remember_me
|
|
11
|
+
# attr_accessible :title, :body
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module JcCms
|
|
3
|
+
class CkeditorAttachmentFileUploader < CarrierWave::Uploader::Base
|
|
4
|
+
include Ckeditor::Backend::CarrierWave
|
|
5
|
+
|
|
6
|
+
# Include RMagick or ImageScience support:
|
|
7
|
+
# include CarrierWave::RMagick
|
|
8
|
+
# include CarrierWave::MiniMagick
|
|
9
|
+
# include CarrierWave::ImageScience
|
|
10
|
+
|
|
11
|
+
# Choose what kind of storage to use for this uploader:
|
|
12
|
+
storage :file
|
|
13
|
+
|
|
14
|
+
# Override the directory where uploaded files will be stored.
|
|
15
|
+
# This is a sensible default for uploaders that are meant to be mounted:
|
|
16
|
+
def store_dir
|
|
17
|
+
"uploads/ckeditor/attachments/#{model.id}"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Provide a default URL as a default if there hasn't been a file uploaded:
|
|
21
|
+
# def default_url
|
|
22
|
+
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
|
23
|
+
# end
|
|
24
|
+
|
|
25
|
+
# Process files as they are uploaded:
|
|
26
|
+
# process :scale => [200, 300]
|
|
27
|
+
#
|
|
28
|
+
# def scale(width, height)
|
|
29
|
+
# # do something
|
|
30
|
+
# end
|
|
31
|
+
|
|
32
|
+
# Add a white list of extensions which are allowed to be uploaded.
|
|
33
|
+
# For images you might use something like this:
|
|
34
|
+
def extension_white_list
|
|
35
|
+
Ckeditor.attachment_file_types
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Override the filename of the uploaded files:
|
|
39
|
+
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
|
40
|
+
# def filename
|
|
41
|
+
# "something.jpg" if original_filename
|
|
42
|
+
# end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module JcCms
|
|
3
|
+
class CkeditorPictureUploader < CarrierWave::Uploader::Base
|
|
4
|
+
include Ckeditor::Backend::CarrierWave
|
|
5
|
+
|
|
6
|
+
# Include RMagick or ImageScience support:
|
|
7
|
+
# include CarrierWave::RMagick
|
|
8
|
+
include CarrierWave::MiniMagick
|
|
9
|
+
# include CarrierWave::ImageScience
|
|
10
|
+
|
|
11
|
+
# Choose what kind of storage to use for this uploader:
|
|
12
|
+
storage :file
|
|
13
|
+
|
|
14
|
+
# Override the directory where uploaded files will be stored.
|
|
15
|
+
# This is a sensible default for uploaders that are meant to be mounted:
|
|
16
|
+
def store_dir
|
|
17
|
+
"uploads/ckeditor/pictures/#{model.id}"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Provide a default URL as a default if there hasn't been a file uploaded:
|
|
21
|
+
# def default_url
|
|
22
|
+
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
|
23
|
+
# end
|
|
24
|
+
|
|
25
|
+
# Process files as they are uploaded:
|
|
26
|
+
# process :scale => [200, 300]
|
|
27
|
+
#
|
|
28
|
+
# def scale(width, height)
|
|
29
|
+
# # do something
|
|
30
|
+
# end
|
|
31
|
+
|
|
32
|
+
process :read_dimensions
|
|
33
|
+
|
|
34
|
+
# Create different versions of your uploaded files:
|
|
35
|
+
version :thumb do
|
|
36
|
+
process :resize_to_fill => [118, 100]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
version :content do
|
|
40
|
+
process :resize_to_limit => [800, 800]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Add a white list of extensions which are allowed to be uploaded.
|
|
44
|
+
# For images you might use something like this:
|
|
45
|
+
def extension_white_list
|
|
46
|
+
Ckeditor.image_file_types
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Override the filename of the uploaded files:
|
|
50
|
+
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
|
51
|
+
# def filename
|
|
52
|
+
# "something.jpg" if original_filename
|
|
53
|
+
# end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
= simple_form_for @page, :url => url do |f|
|
|
2
|
+
= f.input :name
|
|
3
|
+
= f.input :content, :as => :ckeditor, :label => false, :input_html => { :toolbar => 'Full' }
|
|
4
|
+
= f.input :active, item_wrapper_class: 'inline'
|
|
5
|
+
= f.input :position
|
|
6
|
+
= f.association :page
|
|
7
|
+
= f.input :meta_title, :input_html => { :style => "width: 50%" }
|
|
8
|
+
= f.input :meta_description, :input_html => { :style => "width: 50%" }
|
|
9
|
+
= f.input :meta_keywords, :input_html => { :style => "width: 50%" }
|
|
10
|
+
= f.button :submit, t("actions.save"), :class => "btn btn-success"
|
|
11
|
+
|
|
12
|
+
- content_for :head do
|
|
13
|
+
= javascript_include_tag 'ckeditor/ckeditor'
|
|
14
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
.pull-right
|
|
2
|
+
%p
|
|
3
|
+
= link_to t("controllers.dashboard.pages.add_new"), new_dashboard_page_path, :class => "btn btn-primary"
|
|
4
|
+
%table.table.table-striped
|
|
5
|
+
%tr
|
|
6
|
+
%th= t("simple_form.labels.page.name")
|
|
7
|
+
%th= t("simple_form.labels.page.active")
|
|
8
|
+
%th= t("simple_form.labels.page.page")
|
|
9
|
+
%th= t("simple_form.labels.page.position")
|
|
10
|
+
%th= t("actions.actions")
|
|
11
|
+
%th
|
|
12
|
+
%th
|
|
13
|
+
- @pages.each do |p|
|
|
14
|
+
%tr
|
|
15
|
+
%td= p.name
|
|
16
|
+
%td
|
|
17
|
+
- if p.active
|
|
18
|
+
%i.icon.icon-ok
|
|
19
|
+
- else
|
|
20
|
+
= " - "
|
|
21
|
+
%td= p.page
|
|
22
|
+
%td= p.position
|
|
23
|
+
%td= link_to t("actions.show"), dashboard_page_path(p)
|
|
24
|
+
%td= link_to t("actions.edit"), edit_dashboard_page_path(p)
|
|
25
|
+
%td= link_to t("actions.delete"), dashboard_page_path(p), method: :delete
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
= render_cell :pages_menu, :show
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<h2>Resend confirmation instructions</h2>
|
|
2
|
+
|
|
3
|
+
<%= simple_form_for(resource, :as => resource_name, :url => confirmation_path(resource_name), :html => { :method => :post }) do |f| %>
|
|
4
|
+
<%= f.error_notification %>
|
|
5
|
+
|
|
6
|
+
<div class="form-inputs">
|
|
7
|
+
<%= f.input :email, :required => true %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<div class="form-actions">
|
|
11
|
+
<%= f.button :submit, "Resend confirmation instructions" %>
|
|
12
|
+
</div>
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<%= render "devise/shared/links" %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<p>Hello <%= @resource.email %>!</p>
|
|
2
|
+
|
|
3
|
+
<p>Someone has requested a link to change your password, and you can do this through the link below.</p>
|
|
4
|
+
|
|
5
|
+
<p><%= link_to 'Change my password', edit_password_url(@resource, :reset_password_token => @resource.reset_password_token) %></p>
|
|
6
|
+
|
|
7
|
+
<p>If you didn't request this, please ignore this email.</p>
|
|
8
|
+
<p>Your password won't change until you access the link above and create a new one.</p>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<p>Hello <%= @resource.email %>!</p>
|
|
2
|
+
|
|
3
|
+
<p>Your account has been locked due to an excessive amount of unsuccessful sign in attempts.</p>
|
|
4
|
+
|
|
5
|
+
<p>Click the link below to unlock your account:</p>
|
|
6
|
+
|
|
7
|
+
<p><%= link_to 'Unlock my account', unlock_url(@resource, :unlock_token => @resource.unlock_token) %></p>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<h2>Change your password</h2>
|
|
2
|
+
|
|
3
|
+
<%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
|
|
4
|
+
<%= f.error_notification %>
|
|
5
|
+
|
|
6
|
+
<%= f.input :reset_password_token, :as => :hidden %>
|
|
7
|
+
<%= f.full_error :reset_password_token %>
|
|
8
|
+
|
|
9
|
+
<div class="form-inputs">
|
|
10
|
+
<%= f.input :password, :label => "New password", :required => true %>
|
|
11
|
+
<%= f.input :password_confirmation, :label => "Confirm your new password", :required => true %>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div class="form-actions">
|
|
15
|
+
<%= f.button :submit, "Change my password" %>
|
|
16
|
+
</div>
|
|
17
|
+
<% end %>
|
|
18
|
+
|
|
19
|
+
<%= render "devise/shared/links" %>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<h2>Forgot your password?</h2>
|
|
2
|
+
|
|
3
|
+
<%= simple_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f| %>
|
|
4
|
+
<%= f.error_notification %>
|
|
5
|
+
|
|
6
|
+
<div class="form-inputs">
|
|
7
|
+
<%= f.input :email, :required => true %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<div class="form-actions">
|
|
11
|
+
<%= f.button :submit, "Send me reset password instructions" %>
|
|
12
|
+
</div>
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<%= render "devise/shared/links" %>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<h2>Edit <%= resource_name.to_s.humanize %></h2>
|
|
2
|
+
|
|
3
|
+
<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
|
|
4
|
+
<%= f.error_notification %>
|
|
5
|
+
|
|
6
|
+
<div class="form-inputs">
|
|
7
|
+
<%= f.input :email, :required => true, :autofocus => true %>
|
|
8
|
+
<%= f.input :password, :autocomplete => "off", :hint => "leave it blank if you don't want to change it", :required => false %>
|
|
9
|
+
<%= f.input :password_confirmation, :required => false %>
|
|
10
|
+
<%= f.input :current_password, :hint => "we need your current password to confirm your changes", :required => true %>
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
<div class="form-actions">
|
|
14
|
+
<%= f.button :submit, "Update" %>
|
|
15
|
+
</div>
|
|
16
|
+
<% end %>
|
|
17
|
+
|
|
18
|
+
<h3>Cancel my account</h3>
|
|
19
|
+
|
|
20
|
+
<p>Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %>.</p>
|
|
21
|
+
|
|
22
|
+
<%= link_to "Back", :back %>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<h2>Sign up</h2>
|
|
2
|
+
|
|
3
|
+
<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
|
|
4
|
+
<%= f.error_notification %>
|
|
5
|
+
|
|
6
|
+
<div class="form-inputs">
|
|
7
|
+
<%= f.input :email, :required => true, :autofocus => true %>
|
|
8
|
+
<%= f.input :password, :required => true %>
|
|
9
|
+
<%= f.input :password_confirmation, :required => true %>
|
|
10
|
+
</div>
|
|
11
|
+
|
|
12
|
+
<div class="form-actions">
|
|
13
|
+
<%= f.button :submit, "Sign up" %>
|
|
14
|
+
</div>
|
|
15
|
+
<% end %>
|
|
16
|
+
|
|
17
|
+
<%= render "devise/shared/links" %>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<h2>Zaloguj się</h2>
|
|
2
|
+
|
|
3
|
+
<%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
|
|
4
|
+
<div class="form-inputs">
|
|
5
|
+
<%= f.input :email, :required => false, :autofocus => true %>
|
|
6
|
+
<%= f.input :password, :required => false, :label => "Hasło" %>
|
|
7
|
+
<%#= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<%= f.button :submit, "Zaloguj się", :class => "btn btn-primary" %>
|
|
11
|
+
<% end %>
|
|
12
|
+
|
|
13
|
+
<%#= render "devise/shared/links" %>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<%- if controller_name != 'sessions' %>
|
|
2
|
+
<%= link_to "Sign in", new_session_path(resource_name) %><br />
|
|
3
|
+
<% end -%>
|
|
4
|
+
|
|
5
|
+
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
|
6
|
+
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
|
|
7
|
+
<% end -%>
|
|
8
|
+
|
|
9
|
+
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
|
|
10
|
+
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
|
|
11
|
+
<% end -%>
|
|
12
|
+
|
|
13
|
+
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
|
14
|
+
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
|
|
15
|
+
<% end -%>
|
|
16
|
+
|
|
17
|
+
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
|
|
18
|
+
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
|
|
19
|
+
<% end -%>
|
|
20
|
+
|
|
21
|
+
<%- if devise_mapping.omniauthable? %>
|
|
22
|
+
<%- resource_class.omniauth_providers.each do |provider| %>
|
|
23
|
+
<%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
|
|
24
|
+
<% end -%>
|
|
25
|
+
<% end -%>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<h2>Resend unlock instructions</h2>
|
|
2
|
+
|
|
3
|
+
<%= simple_form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f| %>
|
|
4
|
+
<%= f.error_notification %>
|
|
5
|
+
|
|
6
|
+
<div class="form-inputs">
|
|
7
|
+
<%= f.input :email, :required => true %>
|
|
8
|
+
</div>
|
|
9
|
+
|
|
10
|
+
<div class="form-actions">
|
|
11
|
+
<%= f.button :submit, "Resend unlock instructions" %>
|
|
12
|
+
</div>
|
|
13
|
+
<% end %>
|
|
14
|
+
|
|
15
|
+
<%= render "devise/shared/links" %>
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title><%= content_for?(:title) ? yield(:title) : "JcCms" %></title>
|
|
8
|
+
<%= csrf_meta_tags %>
|
|
9
|
+
<%= yield(:head) %>
|
|
10
|
+
|
|
11
|
+
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
|
|
12
|
+
<!--[if lt IE 9]>
|
|
13
|
+
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
|
|
14
|
+
<![endif]-->
|
|
15
|
+
|
|
16
|
+
<%= stylesheet_link_tag "application", :media => "all" %>
|
|
17
|
+
|
|
18
|
+
<!-- For third-generation iPad with high-resolution Retina display: -->
|
|
19
|
+
<!-- Size should be 144 x 144 pixels -->
|
|
20
|
+
<%= favicon_link_tag 'images/apple-touch-icon-144x144-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '144x144' %>
|
|
21
|
+
|
|
22
|
+
<!-- For iPhone with high-resolution Retina display: -->
|
|
23
|
+
<!-- Size should be 114 x 114 pixels -->
|
|
24
|
+
<%= favicon_link_tag 'images/apple-touch-icon-114x114-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '114x114' %>
|
|
25
|
+
|
|
26
|
+
<!-- For first- and second-generation iPad: -->
|
|
27
|
+
<!-- Size should be 72 x 72 pixels -->
|
|
28
|
+
<%= favicon_link_tag 'images/apple-touch-icon-72x72-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png', :sizes => '72x72' %>
|
|
29
|
+
|
|
30
|
+
<!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
|
|
31
|
+
<!-- Size should be 57 x 57 pixels -->
|
|
32
|
+
<%= favicon_link_tag 'images/apple-touch-icon-precomposed.png', :rel => 'apple-touch-icon-precomposed', :type => 'image/png' %>
|
|
33
|
+
|
|
34
|
+
<!-- For all other devices -->
|
|
35
|
+
<!-- Size should be 32 x 32 pixels -->
|
|
36
|
+
<%= favicon_link_tag 'images/favicon.ico', :rel => 'shortcut icon' %>
|
|
37
|
+
</head>
|
|
38
|
+
<body>
|
|
39
|
+
|
|
40
|
+
<div class="navbar navbar-fixed-top">
|
|
41
|
+
<div class="navbar-inner">
|
|
42
|
+
<div class="container-fluid">
|
|
43
|
+
<a class="btn btn-navbar" data-target=".nav-collapse" data-toggle="collapse">
|
|
44
|
+
<span class="icon-bar"></span>
|
|
45
|
+
<span class="icon-bar"></span>
|
|
46
|
+
<span class="icon-bar"></span>
|
|
47
|
+
</a>
|
|
48
|
+
<a class="brand" href="#">JcCms</a>
|
|
49
|
+
<div class="container-fluid nav-collapse">
|
|
50
|
+
<ul class="nav">
|
|
51
|
+
<li><%= link_to "Link1", "/path1" %></li>
|
|
52
|
+
<li><%= link_to "Link2", "/path2" %></li>
|
|
53
|
+
<li><%= link_to "Link3", "/path3" %></li>
|
|
54
|
+
</ul>
|
|
55
|
+
</div><!--/.nav-collapse -->
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<div class="container-fluid">
|
|
61
|
+
<div class="row-fluid">
|
|
62
|
+
<div class="span3">
|
|
63
|
+
<div class="well sidebar-nav">
|
|
64
|
+
<ul class="nav nav-list">
|
|
65
|
+
<li class="nav-header">Sidebar</li>
|
|
66
|
+
<li><%= link_to "Link1", "/path1" %></li>
|
|
67
|
+
<li><%= link_to "Link2", "/path2" %></li>
|
|
68
|
+
<li><%= link_to "Link3", "/path3" %></li>
|
|
69
|
+
</ul>
|
|
70
|
+
</div><!--/.well -->
|
|
71
|
+
</div><!--/span-->
|
|
72
|
+
<div class="span9">
|
|
73
|
+
<%= bootstrap_flash %>
|
|
74
|
+
<%= yield %>
|
|
75
|
+
</div>
|
|
76
|
+
</div><!--/row-->
|
|
77
|
+
|
|
78
|
+
<footer>
|
|
79
|
+
<p>© Company 2012</p>
|
|
80
|
+
</footer>
|
|
81
|
+
|
|
82
|
+
</div> <!-- /container -->
|
|
83
|
+
|
|
84
|
+
<!-- Javascripts
|
|
85
|
+
================================================== -->
|
|
86
|
+
<!-- Placed at the end of the document so the pages load faster -->
|
|
87
|
+
<%= javascript_include_tag "application" %>
|
|
88
|
+
|
|
89
|
+
</body>
|
|
90
|
+
</html>
|