benmanns-atreides 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +7 -0
- data/README.rdoc +1 -0
- data/app/assets/javascripts/atreides/admin.facebook.js +137 -0
- data/app/assets/javascripts/atreides/admin.js +23 -0
- data/app/assets/javascripts/atreides/admin_base.js.erb +273 -0
- data/app/assets/javascripts/atreides/admin_edit.js +9 -0
- data/app/assets/javascripts/atreides/application.js +15 -0
- data/app/assets/javascripts/atreides/public.js +24 -0
- data/app/assets/javascripts/atreides/public_base.js.erb +119 -0
- data/app/assets/javascripts/atreides/terryblr.js +57 -0
- data/app/assets/stylesheets/atreides/admin.css +21 -0
- data/app/assets/stylesheets/atreides/admin_base.css.erb +1693 -0
- data/app/assets/stylesheets/atreides/application.css +13 -0
- data/app/assets/stylesheets/atreides/formtastic_changes.css +10 -0
- data/app/assets/stylesheets/atreides/iphone-checkboxes.css.erb +97 -0
- data/app/assets/stylesheets/atreides/jBreadCrumb.css +109 -0
- data/app/assets/stylesheets/atreides/public.css +15 -0
- data/app/assets/stylesheets/atreides/public_base.css +101 -0
- data/app/assets/stylesheets/atreides/swfupload.css.erb +63 -0
- data/app/controllers/admin/atreides/content_parts_controller.rb +43 -0
- data/app/controllers/admin/atreides/dropbox_controller.rb +40 -0
- data/app/controllers/admin/atreides/facebook_controller.rb +38 -0
- data/app/controllers/admin/atreides/features_controller.rb +63 -0
- data/app/controllers/admin/atreides/github_controller.rb +35 -0
- data/app/controllers/admin/atreides/links_controller.rb +3 -0
- data/app/controllers/admin/atreides/messages_controller.rb +3 -0
- data/app/controllers/admin/atreides/orders_controller.rb +35 -0
- data/app/controllers/admin/atreides/pages_controller.rb +59 -0
- data/app/controllers/admin/atreides/photos_controller.rb +79 -0
- data/app/controllers/admin/atreides/posts_controller.rb +109 -0
- data/app/controllers/admin/atreides/products_controller.rb +39 -0
- data/app/controllers/admin/atreides/sessions_controller.rb +7 -0
- data/app/controllers/admin/atreides/sizes_controller.rb +4 -0
- data/app/controllers/admin/atreides/tags_controller.rb +20 -0
- data/app/controllers/admin/atreides/users_controller.rb +50 -0
- data/app/controllers/admin/atreides/videos_controller.rb +53 -0
- data/app/controllers/atreides/admin_controller.rb +96 -0
- data/app/controllers/atreides/admin_home_controller.rb +215 -0
- data/app/controllers/atreides/application_controller.rb +93 -0
- data/app/controllers/atreides/home_controller.rb +71 -0
- data/app/controllers/atreides/likes_controller.rb +44 -0
- data/app/controllers/atreides/pages_controller.rb +34 -0
- data/app/controllers/atreides/posts_controller.rb +119 -0
- data/app/controllers/atreides/public_controller.rb +43 -0
- data/app/helpers/admin/atreides/dropbox_helper.rb +42 -0
- data/app/helpers/admin/atreides/features_helper.rb +4 -0
- data/app/helpers/admin/atreides/github_helper.rb +43 -0
- data/app/helpers/admin/atreides/links_helper.rb +4 -0
- data/app/helpers/admin/atreides/messages_helper.rb +4 -0
- data/app/helpers/admin/atreides/orders_helper.rb +30 -0
- data/app/helpers/admin/atreides/pages_helper.rb +17 -0
- data/app/helpers/admin/atreides/photos_helper.rb +14 -0
- data/app/helpers/admin/atreides/posts_helper.rb +41 -0
- data/app/helpers/admin/atreides/products_helper.rb +37 -0
- data/app/helpers/admin/atreides/sizes_helper.rb +4 -0
- data/app/helpers/admin/atreides/user_sessions_helper.rb +4 -0
- data/app/helpers/admin/atreides/users_helper.rb +8 -0
- data/app/helpers/admin/atreides/videos_helper.rb +4 -0
- data/app/helpers/atreides/admin_helper.rb +243 -0
- data/app/helpers/atreides/admin_home_helper.rb +4 -0
- data/app/helpers/atreides/application_helper.rb +210 -0
- data/app/helpers/atreides/home_helper.rb +4 -0
- data/app/helpers/atreides/posts_helper.rb +119 -0
- data/app/inputs/files_input.rb +13 -0
- data/app/inputs/price_input.rb +18 -0
- data/app/inputs/underline_input.rb +16 -0
- data/app/models/atreides/ability.rb +24 -0
- data/app/models/atreides/content_part.rb +106 -0
- data/app/models/atreides/facebook_user.rb +103 -0
- data/app/models/atreides/feature.rb +90 -0
- data/app/models/atreides/github.rb +74 -0
- data/app/models/atreides/like.rb +35 -0
- data/app/models/atreides/line_item.rb +4 -0
- data/app/models/atreides/link.rb +32 -0
- data/app/models/atreides/message.rb +34 -0
- data/app/models/atreides/order.rb +209 -0
- data/app/models/atreides/page.rb +114 -0
- data/app/models/atreides/photo.rb +130 -0
- data/app/models/atreides/post.rb +271 -0
- data/app/models/atreides/preferences.rb +31 -0
- data/app/models/atreides/product.rb +75 -0
- data/app/models/atreides/site.rb +59 -0
- data/app/models/atreides/size.rb +44 -0
- data/app/models/atreides/tag.rb +31 -0
- data/app/models/atreides/tweet.rb +123 -0
- data/app/models/atreides/user.rb +129 -0
- data/app/models/atreides/video.rb +206 -0
- data/app/models/atreides/vote.rb +43 -0
- data/app/models/fb_post_publisher_job.rb +72 -0
- data/app/models/settings.rb +19 -0
- data/app/models/tumblr_post_publisher_job.rb +75 -0
- data/app/models/tw_post_publisher_job.rb +54 -0
- data/app/views/admin/_edit_head_content.html.haml +2 -0
- data/app/views/admin/atreides/content_parts/_form.html.haml +21 -0
- data/app/views/admin/atreides/content_parts/_photos.html.haml +18 -0
- data/app/views/admin/atreides/content_parts/_text.html.haml +1 -0
- data/app/views/admin/atreides/content_parts/_videos.html.haml +12 -0
- data/app/views/admin/atreides/content_parts/destroy.js.haml +3 -0
- data/app/views/admin/atreides/content_parts/edit.html.haml +0 -0
- data/app/views/admin/atreides/content_parts/new.html.haml +0 -0
- data/app/views/admin/atreides/content_parts/new.js.haml +11 -0
- data/app/views/admin/atreides/dropbox/_uploader.html.haml +134 -0
- data/app/views/admin/atreides/dropbox/list.html.haml +27 -0
- data/app/views/admin/atreides/dropbox/setup.html.haml +8 -0
- data/app/views/admin/atreides/facebook/index.html.haml +29 -0
- data/app/views/admin/atreides/features/_form.html.haml +60 -0
- data/app/views/admin/atreides/features/edit.html.haml +1 -0
- data/app/views/admin/atreides/features/index.html.haml +24 -0
- data/app/views/admin/atreides/features/new.html.haml +1 -0
- data/app/views/admin/atreides/github/index.html.haml +26 -0
- data/app/views/admin/atreides/github/show.html.haml +19 -0
- data/app/views/admin/atreides/likes/create.js.haml +2 -0
- data/app/views/admin/atreides/orders/_sidebar.html.haml +20 -0
- data/app/views/admin/atreides/orders/edit.html.haml +52 -0
- data/app/views/admin/atreides/orders/index.html.haml +8 -0
- data/app/views/admin/atreides/pages/_form.html.haml +31 -0
- data/app/views/admin/atreides/pages/edit.html.haml +3 -0
- data/app/views/admin/atreides/pages/index.html.haml +15 -0
- data/app/views/admin/atreides/pages/index.js.haml +4 -0
- data/app/views/admin/atreides/pages/new.html.haml +2 -0
- data/app/views/admin/atreides/photos/create.js.haml +18 -0
- data/app/views/admin/atreides/photos/destroy.js.haml +3 -0
- data/app/views/admin/atreides/posts/_archives.html.haml +19 -0
- data/app/views/admin/atreides/posts/_form.html.haml +66 -0
- data/app/views/admin/atreides/posts/_form_buttons.html.haml +9 -0
- data/app/views/admin/atreides/posts/_form_sidebar.html.haml +85 -0
- data/app/views/admin/atreides/posts/edit.html.haml +2 -0
- data/app/views/admin/atreides/posts/index.html.haml +24 -0
- data/app/views/admin/atreides/posts/index.js.haml +1 -0
- data/app/views/admin/atreides/posts/new.html.haml +2 -0
- data/app/views/admin/atreides/products/edit.html.haml +69 -0
- data/app/views/admin/atreides/products/index.html.haml +31 -0
- data/app/views/admin/atreides/sessions/new.html.haml +13 -0
- data/app/views/admin/atreides/user_sessions/new.html.haml +10 -0
- data/app/views/admin/atreides/users/_form.html.haml +19 -0
- data/app/views/admin/atreides/users/edit.html.haml +6 -0
- data/app/views/admin/atreides/users/index.html.haml +11 -0
- data/app/views/admin/atreides/users/new.html.haml +6 -0
- data/app/views/admin/atreides/users/show.html.haml +4 -0
- data/app/views/admin/atreides/videos/create.js.haml +9 -0
- data/app/views/admin/atreides/videos/destroy.js.haml +3 -0
- data/app/views/admin/common/_archive_sidebar.html.haml +28 -0
- data/app/views/admin/common/_list_table.html.erb +37 -0
- data/app/views/admin/common/_list_table_row.html.erb +18 -0
- data/app/views/admin/common/_pagination.html.erb +1 -0
- data/app/views/admin/common/_search_form.html.erb +6 -0
- data/app/views/admin/common/access_denied.html.haml +1 -0
- data/app/views/atreides/admin/_content_nav.html.haml +7 -0
- data/app/views/atreides/admin_home/_analytics.html.haml +93 -0
- data/app/views/atreides/admin_home/_fb_page_likes_analytics_tbody.haml +10 -0
- data/app/views/atreides/admin_home/_fb_page_views_analytics_tbody.haml +10 -0
- data/app/views/atreides/admin_home/_top_landing_pages_analytics_tbody.haml +14 -0
- data/app/views/atreides/admin_home/_top_referrers_analytics_tbody.haml +12 -0
- data/app/views/atreides/admin_home/_tweets_analytics_tbody.html.haml +8 -0
- data/app/views/atreides/admin_home/_visitors_analytics_tbody.html.haml +12 -0
- data/app/views/atreides/admin_home/index.html.haml +57 -0
- data/app/views/atreides/admin_home/search.html.haml +11 -0
- data/app/views/atreides/admin_home/setup.html.haml +15 -0
- data/app/views/atreides/common/_gallery_params.xml.erb +174 -0
- data/app/views/atreides/common/slideshow.xml.haml +6 -0
- data/app/views/atreides/errors/404.html.haml +10 -0
- data/app/views/atreides/errors/500.html.haml +4 -0
- data/app/views/atreides/home/index.html.haml +30 -0
- data/app/views/atreides/home/index.js.haml +1 -0
- data/app/views/atreides/home/robots.txt.erb +5 -0
- data/app/views/atreides/home/sitemap.xml.builder +35 -0
- data/app/views/atreides/pages/show.html.haml +3 -0
- data/app/views/atreides/posts/_archives.html.haml +19 -0
- data/app/views/atreides/posts/_featured_posts.html.haml +10 -0
- data/app/views/atreides/posts/_list.html.haml +9 -0
- data/app/views/atreides/posts/archives.html.haml +3 -0
- data/app/views/atreides/posts/archives.js.haml +1 -0
- data/app/views/atreides/posts/gallery_params.xml.haml +1 -0
- data/app/views/atreides/posts/index.atom.builder +22 -0
- data/app/views/atreides/posts/index.html.haml +13 -0
- data/app/views/atreides/posts/index.rss.builder +21 -0
- data/app/views/atreides/posts/show.html.haml +8 -0
- data/app/views/atreides/posts/tagged.html.haml +4 -0
- data/app/views/atreides/posts/tagged.js.haml +1 -0
- data/app/views/layouts/admin.html.haml +65 -0
- data/app/views/layouts/application.html.haml +37 -0
- data/app/views/layouts/atreides/application.html.erb +14 -0
- data/app/views/layouts/public.html.haml +39 -0
- data/config/cucumber.yml +11 -0
- data/config/locales/en.yml +207 -0
- data/config/locales/fr.yml +199 -0
- data/config/routes.rb +119 -0
- data/lib/assets/images/atreides/admin/add.png +0 -0
- data/lib/assets/images/atreides/admin/add_btn.png +0 -0
- data/lib/assets/images/atreides/admin/add_dashboard.png +0 -0
- data/lib/assets/images/atreides/admin/add_photo_button_sprite.png +0 -0
- data/lib/assets/images/atreides/admin/add_photos_btn.png +0 -0
- data/lib/assets/images/atreides/admin/background.png +0 -0
- data/lib/assets/images/atreides/admin/calendar.png +0 -0
- data/lib/assets/images/atreides/admin/chevron.gif +0 -0
- data/lib/assets/images/atreides/admin/chevron_overlay.png +0 -0
- data/lib/assets/images/atreides/admin/choose_photos_button_sprite.png +0 -0
- data/lib/assets/images/atreides/admin/content_bg.png +0 -0
- data/lib/assets/images/atreides/admin/content_bg_edit_form.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_break.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_drop_target.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_icons.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_photos.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_text.png +0 -0
- data/lib/assets/images/atreides/admin/content_part_videos.png +0 -0
- data/lib/assets/images/atreides/admin/content_top_edit_form.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard-indicator.gif +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_activity.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_customize.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_drafts.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_open.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_posts.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_controls_queue.png +0 -0
- data/lib/assets/images/atreides/admin/dashboard_nav_border.png +0 -0
- data/lib/assets/images/atreides/admin/delete_bg.png +0 -0
- data/lib/assets/images/atreides/admin/down_arrow.png +0 -0
- data/lib/assets/images/atreides/admin/dropbox_big.jpg +0 -0
- data/lib/assets/images/atreides/admin/dropbox_btn.png +0 -0
- data/lib/assets/images/atreides/admin/dropbox_folder.png +0 -0
- data/lib/assets/images/atreides/admin/dropbox_icon.gif +0 -0
- data/lib/assets/images/atreides/admin/dropbox_icon.png +0 -0
- data/lib/assets/images/atreides/admin/expand_collapse.png +0 -0
- data/lib/assets/images/atreides/admin/form_sidebar_divider.png +0 -0
- data/lib/assets/images/atreides/admin/grey_hatch_bg.png +0 -0
- data/lib/assets/images/atreides/admin/header.png +0 -0
- data/lib/assets/images/atreides/admin/icon_dropbox.gif +0 -0
- data/lib/assets/images/atreides/admin/icon_home.gif +0 -0
- data/lib/assets/images/atreides/admin/input_bg.gif +0 -0
- data/lib/assets/images/atreides/admin/large_loading.gif +0 -0
- data/lib/assets/images/atreides/admin/new_content_icons.png +0 -0
- data/lib/assets/images/atreides/admin/off.png +0 -0
- data/lib/assets/images/atreides/admin/on.png +0 -0
- data/lib/assets/images/atreides/admin/page_icon.png +0 -0
- data/lib/assets/images/atreides/admin/permalink.png +0 -0
- data/lib/assets/images/atreides/admin/photos-display-type-gallery.png +0 -0
- data/lib/assets/images/atreides/admin/photos-display-type-photos.png +0 -0
- data/lib/assets/images/atreides/admin/product.png +0 -0
- data/lib/assets/images/atreides/admin/remove.png +0 -0
- data/lib/assets/images/atreides/admin/resize.png +0 -0
- data/lib/assets/images/atreides/admin/save_btn.png +0 -0
- data/lib/assets/images/atreides/admin/search_icon.png +0 -0
- data/lib/assets/images/atreides/admin/select_arrows.png +0 -0
- data/lib/assets/images/atreides/admin/slider.png +0 -0
- data/lib/assets/images/atreides/admin/slider_center.png +0 -0
- data/lib/assets/images/atreides/admin/slider_left.png +0 -0
- data/lib/assets/images/atreides/admin/slider_right.png +0 -0
- data/lib/assets/images/atreides/admin/sprite.png +0 -0
- data/lib/assets/images/atreides/admin/upload_btn.png +0 -0
- data/lib/assets/images/atreides/admin/video_bg.png +0 -0
- data/lib/assets/images/atreides/blank.gif +0 -0
- data/lib/assets/images/atreides/closelabel.png +0 -0
- data/lib/assets/images/atreides/loading.gif +0 -0
- data/lib/assets/images/atreides/sprite.png +0 -0
- data/lib/assets/images/atreides/tipsy.gif +0 -0
- data/lib/atreides.rb +81 -0
- data/lib/atreides/base/aasmstates.rb +117 -0
- data/lib/atreides/base/base.rb +40 -0
- data/lib/atreides/base/taggable.rb +43 -0
- data/lib/atreides/base/validation.rb +23 -0
- data/lib/atreides/configuration.rb +61 -0
- data/lib/atreides/engine.rb +41 -0
- data/lib/atreides/extendable.rb +12 -0
- data/lib/atreides/i18n_helpers.rb +65 -0
- data/lib/atreides/railties/tasks.rake +68 -0
- data/lib/atreides/time_formats.rb +19 -0
- data/lib/atreides/validators.rb +15 -0
- data/lib/atreides/version.rb +4 -0
- data/lib/generators/atreides/USAGE +0 -0
- data/lib/generators/atreides/atreides_generator.rb +57 -0
- data/lib/generators/templates/Procfile +2 -0
- data/lib/generators/templates/add_role_to_users.rb +16 -0
- data/lib/generators/templates/add_userid_to_resources.rb +15 -0
- data/lib/generators/templates/create_content_parts.rb +66 -0
- data/lib/generators/templates/create_features.rb +21 -0
- data/lib/generators/templates/create_likes.rb +16 -0
- data/lib/generators/templates/create_line_items.rb +21 -0
- data/lib/generators/templates/create_links.rb +16 -0
- data/lib/generators/templates/create_messages.rb +24 -0
- data/lib/generators/templates/create_orders.rb +31 -0
- data/lib/generators/templates/create_pages.rb +29 -0
- data/lib/generators/templates/create_photos.rb +22 -0
- data/lib/generators/templates/create_posts.rb +36 -0
- data/lib/generators/templates/create_preferences.rb +14 -0
- data/lib/generators/templates/create_products.rb +22 -0
- data/lib/generators/templates/create_sessions.rb +16 -0
- data/lib/generators/templates/create_sites.rb +35 -0
- data/lib/generators/templates/create_sizes.rb +16 -0
- data/lib/generators/templates/create_tweets.rb +25 -0
- data/lib/generators/templates/create_videos.rb +24 -0
- data/lib/generators/templates/create_votes.rb +20 -0
- data/lib/generators/templates/delayed_job.rb +5 -0
- data/lib/generators/templates/devise_create_users.rb +42 -0
- data/lib/generators/templates/em-net-http_override.rb +74 -0
- data/lib/generators/templates/initializer.rb +21 -0
- data/lib/generators/templates/new_relic.rb +6 -0
- data/lib/generators/templates/oembed.yml +63 -0
- data/lib/generators/templates/settings.yml +78 -0
- data/lib/generators/templates/string_extensions.rb +20 -0
- data/lib/generators/templates/unicorn.rb +2 -0
- data/lib/tasks/atreides_tasks.rake +4 -0
- data/lib/tasks/cucumber.rake +58 -0
- data/lib/tasks/tasks.rake +403 -0
- data/lib/tasks/yard.rake +18 -0
- data/vendor/assets/flash/atreides/player.swf +0 -0
- data/vendor/assets/flash/atreides/slideshowpro.swf +0 -0
- data/vendor/assets/flash/atreides/swfupload.swf +0 -0
- data/vendor/assets/images/atreides/share/aim_16.png +0 -0
- data/vendor/assets/images/atreides/share/apple_16.png +0 -0
- data/vendor/assets/images/atreides/share/bebo_16.png +0 -0
- data/vendor/assets/images/atreides/share/blogger_16.png +0 -0
- data/vendor/assets/images/atreides/share/brightkite_16.png +0 -0
- data/vendor/assets/images/atreides/share/cargo_16.png +0 -0
- data/vendor/assets/images/atreides/share/delicious_16.png +0 -0
- data/vendor/assets/images/atreides/share/designfloat_16.png +0 -0
- data/vendor/assets/images/atreides/share/designmoo_16.png +0 -0
- data/vendor/assets/images/atreides/share/deviantart_16.png +0 -0
- data/vendor/assets/images/atreides/share/digg_16.png +0 -0
- data/vendor/assets/images/atreides/share/digg_alt_16.png +0 -0
- data/vendor/assets/images/atreides/share/dopplr_16.png +0 -0
- data/vendor/assets/images/atreides/share/dribbble_16.png +0 -0
- data/vendor/assets/images/atreides/share/email_16.png +0 -0
- data/vendor/assets/images/atreides/share/ember_16.png +0 -0
- data/vendor/assets/images/atreides/share/evernote_16.png +0 -0
- data/vendor/assets/images/atreides/share/facebook_16.png +0 -0
- data/vendor/assets/images/atreides/share/flickr_16.png +0 -0
- data/vendor/assets/images/atreides/share/friendfeed_16.png +0 -0
- data/vendor/assets/images/atreides/share/gamespot_16.png +0 -0
- data/vendor/assets/images/atreides/share/google_16.png +0 -0
- data/vendor/assets/images/atreides/share/google_voice_16.png +0 -0
- data/vendor/assets/images/atreides/share/google_wave_16.png +0 -0
- data/vendor/assets/images/atreides/share/googletalk_16.png +0 -0
- data/vendor/assets/images/atreides/share/gowalla_16.png +0 -0
- data/vendor/assets/images/atreides/share/grooveshark_16.png +0 -0
- data/vendor/assets/images/atreides/share/ilike_16.png +0 -0
- data/vendor/assets/images/atreides/share/komodomedia_azure_16.png +0 -0
- data/vendor/assets/images/atreides/share/komodomedia_wood_16.png +0 -0
- data/vendor/assets/images/atreides/share/lastfm_16.png +0 -0
- data/vendor/assets/images/atreides/share/license.txt +9 -0
- data/vendor/assets/images/atreides/share/linkedin_16.png +0 -0
- data/vendor/assets/images/atreides/share/mixx_16.png +0 -0
- data/vendor/assets/images/atreides/share/mobileme_16.png +0 -0
- data/vendor/assets/images/atreides/share/mynameise_16.png +0 -0
- data/vendor/assets/images/atreides/share/myspace_16.png +0 -0
- data/vendor/assets/images/atreides/share/netvibes_16.png +0 -0
- data/vendor/assets/images/atreides/share/newsvine_16.png +0 -0
- data/vendor/assets/images/atreides/share/openid_16.png +0 -0
- data/vendor/assets/images/atreides/share/orkut_16.png +0 -0
- data/vendor/assets/images/atreides/share/pandora_16.png +0 -0
- data/vendor/assets/images/atreides/share/paypal_16.png +0 -0
- data/vendor/assets/images/atreides/share/picasa_16.png +0 -0
- data/vendor/assets/images/atreides/share/plurk_16.png +0 -0
- data/vendor/assets/images/atreides/share/posterous_16.png +0 -0
- data/vendor/assets/images/atreides/share/qik_16.png +0 -0
- data/vendor/assets/images/atreides/share/readernaut_16.png +0 -0
- data/vendor/assets/images/atreides/share/reddit_16.png +0 -0
- data/vendor/assets/images/atreides/share/roboto_16.png +0 -0
- data/vendor/assets/images/atreides/share/rss_16.png +0 -0
- data/vendor/assets/images/atreides/share/sharethis_16.png +0 -0
- data/vendor/assets/images/atreides/share/skype_16.png +0 -0
- data/vendor/assets/images/atreides/share/stumbleupon_16.png +0 -0
- data/vendor/assets/images/atreides/share/technorati_16.png +0 -0
- data/vendor/assets/images/atreides/share/tumblr_16.png +0 -0
- data/vendor/assets/images/atreides/share/twitter_16.png +0 -0
- data/vendor/assets/images/atreides/share/viddler_16.png +0 -0
- data/vendor/assets/images/atreides/share/vimeo_16.png +0 -0
- data/vendor/assets/images/atreides/share/virb_16.png +0 -0
- data/vendor/assets/images/atreides/share/windows_16.png +0 -0
- data/vendor/assets/images/atreides/share/wordpress_16.png +0 -0
- data/vendor/assets/images/atreides/share/xing_16.png +0 -0
- data/vendor/assets/images/atreides/share/yahoo_16.png +0 -0
- data/vendor/assets/images/atreides/share/yahoobuzz_16.png +0 -0
- data/vendor/assets/images/atreides/share/yelp_16.png +0 -0
- data/vendor/assets/images/atreides/share/youtube_16.png +0 -0
- data/vendor/assets/javascripts/atreides/backbone-0.3.3.js +1100 -0
- data/vendor/assets/javascripts/atreides/cufon-yui.js +7 -0
- data/vendor/assets/javascripts/atreides/facebox.js +309 -0
- data/vendor/assets/javascripts/atreides/fileuploader.js +1250 -0
- data/vendor/assets/javascripts/atreides/g.raphael-min.js +7 -0
- data/vendor/assets/javascripts/atreides/galleria.js +2 -0
- data/vendor/assets/javascripts/atreides/galleria/src/galleria.js +3816 -0
- data/vendor/assets/javascripts/atreides/galleria/src/plugins/galleria.flickr.js +221 -0
- data/vendor/assets/javascripts/atreides/galleria/src/plugins/galleria.history.js +602 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/classic-loader.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/classic-map.png +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/galleria.classic.css +202 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/galleria.classic.js +92 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/b.png +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/down.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/fix.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/fullscreen-demo.html +34 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/galleria.fullscreen.css +46 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/galleria.fullscreen.js +193 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/i.png +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/l.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/l2.png +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/loader.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/n.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/p.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/r.gif +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/r2.png +0 -0
- data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/up.gif +0 -0
- data/vendor/assets/javascripts/atreides/jquery-1.7.js +4 -0
- data/vendor/assets/javascripts/atreides/jquery-ui.js +11603 -0
- data/vendor/assets/javascripts/atreides/jquery.autogrow.js +132 -0
- data/vendor/assets/javascripts/atreides/jquery.cookie.js +96 -0
- data/vendor/assets/javascripts/atreides/jquery.countdown.js +759 -0
- data/vendor/assets/javascripts/atreides/jquery.cycle.js +918 -0
- data/vendor/assets/javascripts/atreides/jquery.easing.1.3.js +205 -0
- data/vendor/assets/javascripts/atreides/jquery.flash.js +288 -0
- data/vendor/assets/javascripts/atreides/jquery.iphone-checkboxes.js +214 -0
- data/vendor/assets/javascripts/atreides/jquery.jBreadCrumb.1.1.js +240 -0
- data/vendor/assets/javascripts/atreides/jquery.multipleselectbox-min.js +15 -0
- data/vendor/assets/javascripts/atreides/jquery.multipleselectbox.js +446 -0
- data/vendor/assets/javascripts/atreides/jquery.swfupload.js +64 -0
- data/vendor/assets/javascripts/atreides/jquery.tipsy.js +104 -0
- data/vendor/assets/javascripts/atreides/jquery.uniform.js +461 -0
- data/vendor/assets/javascripts/atreides/jquery_ujs.js +316 -0
- data/vendor/assets/javascripts/atreides/jtags.js +125 -0
- data/vendor/assets/javascripts/atreides/raphael-min.js +7 -0
- data/vendor/assets/javascripts/atreides/raphael.analytics.js +205 -0
- data/vendor/assets/javascripts/atreides/raphael.path.methods.js +53 -0
- data/vendor/assets/javascripts/atreides/raphael.pie.js +44 -0
- data/vendor/assets/javascripts/atreides/sifr.js +18 -0
- data/vendor/assets/javascripts/atreides/swfobject.js +4 -0
- data/vendor/assets/javascripts/atreides/swfupload/handlers.js +290 -0
- data/vendor/assets/javascripts/atreides/swfupload/swfupload.cookies.js +53 -0
- data/vendor/assets/javascripts/atreides/swfupload/swfupload.js +980 -0
- data/vendor/assets/javascripts/atreides/swfupload/swfupload.queue.js +98 -0
- data/vendor/assets/javascripts/atreides/swfupload/swfupload.speed.js +342 -0
- data/vendor/assets/javascripts/atreides/swfupload/swfupload.swfobject.js +111 -0
- data/vendor/assets/javascripts/atreides/underscore-1.1.6.js +807 -0
- data/vendor/assets/stylesheets/atreides/admin_grid.css +258 -0
- data/vendor/assets/stylesheets/atreides/facebox.css +80 -0
- data/vendor/assets/stylesheets/atreides/formtastic.css +144 -0
- data/vendor/assets/stylesheets/atreides/galleria.css +24 -0
- data/vendor/assets/stylesheets/atreides/ie.css +35 -0
- data/vendor/assets/stylesheets/atreides/images/bg_fallback.png +0 -0
- data/vendor/assets/stylesheets/atreides/images/icon_sprite.png +0 -0
- data/vendor/assets/stylesheets/atreides/images/progress_bar.gif +0 -0
- data/vendor/assets/stylesheets/atreides/images/slider_handles.png +0 -0
- data/vendor/assets/stylesheets/atreides/images/ui-icons_222222_256x240.png +0 -0
- data/vendor/assets/stylesheets/atreides/images/ui-icons_454545_256x240.png +0 -0
- data/vendor/assets/stylesheets/atreides/jquery-ui.css +738 -0
- data/vendor/assets/stylesheets/atreides/multipleselectbox.css +33 -0
- data/vendor/assets/stylesheets/atreides/print.css +29 -0
- data/vendor/assets/stylesheets/atreides/public_grid.css +258 -0
- data/vendor/assets/stylesheets/atreides/tipsy.css +7 -0
- data/vendor/assets/stylesheets/atreides/uniform.default.css +476 -0
- metadata +1566 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'digest/md5'
|
2
|
+
|
3
|
+
require 'redcarpet'
|
4
|
+
|
5
|
+
module Admin::Atreides::GithubHelper
|
6
|
+
|
7
|
+
GH_OPTIONS = {
|
8
|
+
:filter_html => true,
|
9
|
+
:autolink => true,
|
10
|
+
:no_intra_emphasis => true,
|
11
|
+
:fenced_code_blocks => true,
|
12
|
+
:hard_wrap => true
|
13
|
+
}
|
14
|
+
|
15
|
+
def gfm(text)
|
16
|
+
# Extract pre blocks
|
17
|
+
extractions = {}
|
18
|
+
text.gsub!(%r{<pre>.*?</pre>}m) do |match|
|
19
|
+
md5 = Digest::MD5.hexdigest(match)
|
20
|
+
extractions[md5] = match
|
21
|
+
"{gfm-extraction-#{md5}}"
|
22
|
+
end
|
23
|
+
|
24
|
+
# prevent foo_bar_baz from ending up with an italic word in the middle
|
25
|
+
text.gsub!(/(^(?! {4}|\t)\w+_\w+_\w[\w_]*)/) do |x|
|
26
|
+
x.gsub('_', '\_') if x.split('').sort.to_s[0..1] == '__'
|
27
|
+
end
|
28
|
+
|
29
|
+
# in very clear cases, let newlines become <br /> tags
|
30
|
+
text.gsub!(/(\A|^$\n)(^\w[^\n]*\n)(^\w[^\n]*$)+/m) do |x|
|
31
|
+
x.gsub(/^(.+)$/, "\\1 ")
|
32
|
+
end
|
33
|
+
|
34
|
+
# Insert pre block extractions
|
35
|
+
text.gsub!(/\{gfm-extraction-([0-9a-f]{32})\}/) do
|
36
|
+
extractions[$1]
|
37
|
+
end
|
38
|
+
|
39
|
+
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML.new(GH_OPTIONS), GH_OPTIONS)
|
40
|
+
markdown.render(text)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Admin::Atreides::OrdersHelper
|
2
|
+
|
3
|
+
def order_column(order)
|
4
|
+
link_to order.number, admin_order_path(order)
|
5
|
+
end
|
6
|
+
|
7
|
+
def date_column(order)
|
8
|
+
order.created_at
|
9
|
+
end
|
10
|
+
|
11
|
+
def buyer_column(order)
|
12
|
+
content_tag(:div, content_tag(:abbr, order.full_name, :title => order.address), :class => "order-name")
|
13
|
+
end
|
14
|
+
|
15
|
+
def items_column(order)
|
16
|
+
order.line_items.map{|li|
|
17
|
+
photo = li.product.photos.first
|
18
|
+
link_to(
|
19
|
+
image_tag(photo ? photo.image.url(:thumb) : "atreides/admin/product.png", :size => "50x50"), admin_product_path(li.product),
|
20
|
+
:title => "#{li.product.title} - #{li.size} x #{li.qty}"
|
21
|
+
)
|
22
|
+
}.join
|
23
|
+
end
|
24
|
+
|
25
|
+
def total_column(order)
|
26
|
+
order.final_amount.format
|
27
|
+
end
|
28
|
+
|
29
|
+
include Atreides::Extendable
|
30
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Admin::Atreides::PagesHelper
|
2
|
+
|
3
|
+
def page_column(page)
|
4
|
+
content_tag(:span, (page.children.empty? ? ' ' : link_to("", admin_pages_path(:parent_id => page.id, :format => "js"), :remote => true, :method => :get)), {:class => 'collapsed', :style => "margin-left:#{page.parents.size*17}px"}, false) +
|
5
|
+
link_to(image_tag('atreides/admin/page_icon.png', :class => "page_icon")+page.title, edit_admin_page_path(page))
|
6
|
+
end
|
7
|
+
|
8
|
+
def state_column(page)
|
9
|
+
page.state.titleize
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_child_link(page)
|
13
|
+
link_to 'Add Child', new_admin_page_path(:parent_id => page.id)
|
14
|
+
end
|
15
|
+
|
16
|
+
include Atreides::Extendable
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Admin::Atreides::PhotosHelper
|
2
|
+
|
3
|
+
include Atreides::Extendable
|
4
|
+
|
5
|
+
def photos_uploaders(part, photos_list_id, resource_type, part_uid)
|
6
|
+
if Settings.dropbox.key && Settings.dropbox.secret
|
7
|
+
render(:partial => 'admin/atreides/dropbox/uploader', :locals => { :part_id => (part.id || '-'), :list_id => photos_list_id }) +
|
8
|
+
content_tag('span', 'or', :class => 'or') +
|
9
|
+
multi_file_uploader(:url => send("admin_#{resource_type.to_s}_part_photos_path", :"#{resource_type.to_s}_id" => (part.contentable_id || '-'), :part_id => (part.id || '-'), :format => :js, :list_id => photos_list_id), :css_parent_class => "photos-upload", :dom_id => "multi_file_uploader_#{part_uid}")
|
10
|
+
else
|
11
|
+
multi_file_uploader(:url => send("admin_#{resource_type.to_s}_part_photos_path", :"#{resource_type.to_s}_id" => (part.contentable_id || '-'), :part_id => (part.id || '-'), :format => :js, :list_id => photos_list_id), :css_parent_class => "photos-upload", :dom_id => "multi_file_uploader_#{part_uid}")
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Admin::Atreides::PostsHelper
|
2
|
+
|
3
|
+
def error_messages_for_post
|
4
|
+
error_messages_for :post,
|
5
|
+
:header_message => ttt(:validation_error_header, :model => @type.to_s),
|
6
|
+
:message => ttt(:validation_error_message)
|
7
|
+
end
|
8
|
+
|
9
|
+
def edit_videos_for_assoc(resource, list_id = "videos_list", resource_type="post")
|
10
|
+
if resource and resource.respond_to?(:videos)
|
11
|
+
content_tag(:div, :id => "#{list_id}_container", :class => "videos-list media-list") do
|
12
|
+
content_tag(:ul, :id => list_id) do
|
13
|
+
resource.videos.map do |video|
|
14
|
+
video_for_assoc(video, list_id, resource_type)
|
15
|
+
end.join.html_safe
|
16
|
+
end +
|
17
|
+
sortable_element(list_id, :axis => "x")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def video_for_assoc(video, list_id, resource_type="post")
|
23
|
+
# Each video
|
24
|
+
width = 186
|
25
|
+
height = 124
|
26
|
+
embed = video.embedable?
|
27
|
+
content_tag(:li, :id => video.dom_id(list_id)) do
|
28
|
+
hidden_field_tag("#{resource_type}[parts_attributes][0][video_ids][]", video.id) +
|
29
|
+
if video.new_record?
|
30
|
+
link_to_function image_tag("atreides/admin/remove.png"), "$('##{video.dom_id(list_id)}').fadeOut(function(){ $(this).remove() })"
|
31
|
+
else
|
32
|
+
link_to(image_tag("atreides/admin/remove.png"), admin_video_path(video, :format => :js, :list_id => list_id), :remote => true, :'data-method' => :delete, :confirm => "Are you sure?")
|
33
|
+
end +
|
34
|
+
content_tag(:div, video.embed(:width => width, :height => height).html_safe, :id => video.dom_id) +
|
35
|
+
text_area_tag("#{resource_type}[parts_attributes][0][videos_attributes][][caption]", video.caption) +
|
36
|
+
hidden_field_tag("#{resource_type}[parts_attributes][0][videos_attributes][][id]", video.id)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
include Atreides::Extendable
|
41
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Admin::Atreides::ProductsHelper
|
2
|
+
|
3
|
+
def image_column(product)
|
4
|
+
!product.photos.empty? ? image_tag(product.photos.first.image.url(:thumb)) : ""
|
5
|
+
end
|
6
|
+
|
7
|
+
def product_column(product)
|
8
|
+
link_to product.title, edit_admin_product_path(product)
|
9
|
+
end
|
10
|
+
|
11
|
+
def inventory_column(product)
|
12
|
+
content_tag(:table) do
|
13
|
+
content_tag(:thead) do
|
14
|
+
content_tag(:th, "Size") +
|
15
|
+
content_tag(:th, "Qty")
|
16
|
+
end +
|
17
|
+
content_tag(:tbody) do
|
18
|
+
product.sizes.map do |s|
|
19
|
+
content_tag(:tr) do
|
20
|
+
content_tag(:td, s.name) +
|
21
|
+
content_tag(:td, s.qty)
|
22
|
+
end
|
23
|
+
end.join
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def total_column(product)
|
29
|
+
product.sizes.sum(:qty)
|
30
|
+
end
|
31
|
+
|
32
|
+
def sales_column(product)
|
33
|
+
Money.new(product.orders.sum(:final_amount_cents)).format
|
34
|
+
end
|
35
|
+
|
36
|
+
include Atreides::Extendable
|
37
|
+
end
|
@@ -0,0 +1,243 @@
|
|
1
|
+
module Atreides::AdminHelper
|
2
|
+
|
3
|
+
def multi_file_uploader(opts = {})
|
4
|
+
opts.reverse_merge!({
|
5
|
+
:file_upload_limit => 50,
|
6
|
+
:file_queue_limit => 0,
|
7
|
+
:dom_id => "multi_file_uploader_#{Time.now.to_f.to_s.parameterize('_')}",
|
8
|
+
:resource_type => "post"
|
9
|
+
})
|
10
|
+
|
11
|
+
url = opts[:url]
|
12
|
+
css_parent_class = opts[:css_parent_class]
|
13
|
+
dom_id = opts[:dom_id]
|
14
|
+
css_class = "upload-btn"
|
15
|
+
css_upload = "upload-progress"
|
16
|
+
|
17
|
+
content_tag(:div, :id => dom_id, :class => "upload-container") do
|
18
|
+
content_tag(:div, :class => "#{css_class}") do
|
19
|
+
content_tag(:noscript, "Please enable JavaScript to use file uploader.")
|
20
|
+
end +
|
21
|
+
content_tag(:div, :class => css_upload, :style => "display:none") do
|
22
|
+
content_tag(:span, "Uploading...")
|
23
|
+
end
|
24
|
+
end +
|
25
|
+
javascript_tag(%Q{
|
26
|
+
$(function() {
|
27
|
+
new qq.FileUploader({
|
28
|
+
element: $('##{dom_id} .#{css_class}')[0],
|
29
|
+
action: '#{url}',
|
30
|
+
allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'],
|
31
|
+
minSizeLimit: 100,
|
32
|
+
sizeLimit: #{10.megabytes},
|
33
|
+
params: {
|
34
|
+
resource_type: '#{opts[:resource_type]}',
|
35
|
+
post_type: 'photos'
|
36
|
+
},
|
37
|
+
debug: #{Rails.env.development?},
|
38
|
+
onSubmit: function(id, fileName){
|
39
|
+
$('##{dom_id} .#{css_upload}').progressbar()
|
40
|
+
$('##{dom_id} .#{css_upload}').show()
|
41
|
+
$('##{dom_id} .#{css_upload} span').text('Uploading...')
|
42
|
+
},
|
43
|
+
onProgress: function(id, fileName, loaded, total){
|
44
|
+
$('##{dom_id} .#{css_upload}').show()
|
45
|
+
$('##{dom_id} .#{css_upload} span').text('Uploading file '+ fileName)
|
46
|
+
// console.log('bytes_complete: '+loaded)
|
47
|
+
// console.log('total_bytes: '+total)
|
48
|
+
// console.log('progress: '+(loaded/total))
|
49
|
+
$('##{dom_id} .#{css_upload}').progressbar('value',((loaded/total)*100))
|
50
|
+
},
|
51
|
+
onComplete: function(id, fileName, responseJSON){
|
52
|
+
// console.log('responseJSON: '+responseJSON)
|
53
|
+
$('##{dom_id} .#{css_upload}').hide()
|
54
|
+
$('##{dom_id} .upload-progress span').text('Awaiting response...')
|
55
|
+
},
|
56
|
+
onCancel: function(id, fileName){
|
57
|
+
$('##{dom_id} .#{css_upload}').hide()
|
58
|
+
$('##{dom_id} .upload-progress span').text('Canceled...')
|
59
|
+
},
|
60
|
+
showMessage: function(message){
|
61
|
+
$('##{dom_id} .upload-progress span').text('')
|
62
|
+
// message
|
63
|
+
// $('#flash').html(message).addClass('error flash').show()
|
64
|
+
}
|
65
|
+
})
|
66
|
+
})
|
67
|
+
})
|
68
|
+
end
|
69
|
+
|
70
|
+
def add_inline_photo(url)
|
71
|
+
css_flash = "add_photo_flash"
|
72
|
+
css_link = ".add-inline-photo a"
|
73
|
+
css_loading = ".add-inline-photo img"
|
74
|
+
link_to_function(tt(:'.add_inline_photo'), "$('##{css_flash}').swfupload('selectFile')") +
|
75
|
+
image_tag("atreides/loading.gif", :style => "display:none") +
|
76
|
+
content_tag(:div, "", :id => css_flash) do
|
77
|
+
content_tag(:span, "", :id => "spanButtonPlaceholder")
|
78
|
+
end +
|
79
|
+
javascript_tag("
|
80
|
+
$(document).ready(function() {
|
81
|
+
$('##{css_flash}').swfupload({
|
82
|
+
upload_url: '#{url}', // Relative to the SWF file (or you can use absolute paths)
|
83
|
+
post_params: {
|
84
|
+
'#{session_key}': '#{cookies[session_key]}',
|
85
|
+
'authenticity_token': '#{form_authenticity_token}',
|
86
|
+
},
|
87
|
+
// File Upload Settings
|
88
|
+
file_size_limit : '102400', // 100MB
|
89
|
+
file_types : '*.jpg;*.jpeg;*.png;*.gif',
|
90
|
+
file_types_description : 'Image Files',
|
91
|
+
file_upload_limit : '0',
|
92
|
+
file_queue_limit : '1',
|
93
|
+
// Button Settings
|
94
|
+
//button_image_url : '#{image_path('atreides/blank.gif')}', // Relative to the SWF file
|
95
|
+
button_placeholder_id : 'spanButtonPlaceholder',
|
96
|
+
//button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
|
97
|
+
button_cursor: 'pointer',
|
98
|
+
button_width: $('##{css_flash}').width(),
|
99
|
+
button_height: $('##{css_flash}').height(),
|
100
|
+
// Flash Settings
|
101
|
+
flash_url : '#{asset_path('atreides/swfupload.swf')}'
|
102
|
+
});
|
103
|
+
// assign our event handlers
|
104
|
+
$('##{css_flash}')
|
105
|
+
.bind('fileQueued', function(event, file){
|
106
|
+
$('#{css_link}').hide()
|
107
|
+
$('#{css_loading}').show()
|
108
|
+
$(this).swfupload('startUpload');
|
109
|
+
})
|
110
|
+
.bind('uploadSuccess',function(event, file, server_data, response) {
|
111
|
+
$('#{css_link}').show()
|
112
|
+
$('#{css_loading}').hide()
|
113
|
+
if (response) {
|
114
|
+
jQuery.globalEval(server_data)
|
115
|
+
}
|
116
|
+
})
|
117
|
+
.bind('uploadError',function(event, file, error, message) {
|
118
|
+
// console.log('uploadError')
|
119
|
+
$('#flash').html('Error from server trying to upload image: '+message).addClass('error flash').show()
|
120
|
+
})
|
121
|
+
});
|
122
|
+
")
|
123
|
+
end
|
124
|
+
|
125
|
+
def edit_photos_for_assoc(object, list_id = nil)
|
126
|
+
if object and object.respond_to?(:photos) and object.respond_to?(:dom_id)
|
127
|
+
list_id ||= object.dom_id("photos_list")
|
128
|
+
content_tag(:div, :id => "#{list_id}_container", :class => "media-list photos-list") do
|
129
|
+
content_tag(:ul, :id => list_id) do
|
130
|
+
object.photos.map do |photo|
|
131
|
+
# Each photo
|
132
|
+
photo_for_assoc(photo, object.class.to_s.downcase, list_id)
|
133
|
+
end.join.html_safe
|
134
|
+
end +
|
135
|
+
edit_photos_sortable(list_id)
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def photo_for_assoc(photo, object, list_id = "photos_list")
|
141
|
+
if defined?(Atreides::Feature) and object.is_a?(Atreides::Feature)
|
142
|
+
feature_photo_for_assoc(photo, object, list_id)
|
143
|
+
else
|
144
|
+
post_photo_for_assoc(photo, object, list_id)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def post_photo_for_assoc(photo, object, list_id = "photos_list", thumb_size = :thumb)
|
149
|
+
param_name = (object.is_a?(String) ? object : object.class.to_s).demodulize.downcase
|
150
|
+
content_tag(:li, :id => photo.dom_id(list_id), :class => "post-photo-for-assoc") do
|
151
|
+
link_to(image_tag("atreides/admin/remove.png"), admin_photo_path(photo, :format => :js, :list_id => list_id), :remote => true, :method => :delete, :confirm => "Are you absolutely sure?") +
|
152
|
+
image_tag(photo.image.url(thumb_size), :class => "photo-thumb", :size => photo.size(thumb_size).values.join('x')) +
|
153
|
+
hidden_field_tag("post[parts_attributes][0][photo_ids][]", photo.id) +
|
154
|
+
text_area_tag("post[parts_attributes][0][photos_attributes][][caption]", photo.caption) +
|
155
|
+
hidden_field_tag("post[parts_attributes][0][photos_attributes][][id]", photo.id) +
|
156
|
+
hidden_field_tag("post[parts_attributes][0][photos_attributes][][display_order]", photo.display_order)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
def feature_photo_for_assoc(photo, object, list_id = "photos_list", thumb_size = :thumb)
|
161
|
+
attr_name = 'photo_attributes'
|
162
|
+
|
163
|
+
content_tag(:li, :id => (photo ? photo.dom_id(list_id) : nil), :class => "feature-photo-for-assoc") do
|
164
|
+
# Do full photo delete if used just by feature, otherwise remove from feature
|
165
|
+
if photo
|
166
|
+
image_tag(photo.image.url(thumb_size), :class => "photo-thumb", :size => photo.size(thumb_size).values.join('x')) +
|
167
|
+
hidden_field_tag("#{object.class.to_s.downcase}[#{attr_name}][id]", photo.id) +
|
168
|
+
hidden_field_tag("#{object.class.to_s.downcase}[#{attr_name}][display_order]", photo.display_order)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
def edit_photos_sortable(list_id = "photos_list")
|
174
|
+
sortable_element("##{list_id}",
|
175
|
+
# :url => reorder_admin_photos_path(:format => :js),
|
176
|
+
:axis => false,
|
177
|
+
:update => "function() { $('##{list_id} input[id$=display_order]').each(function(i, el){ el.value = i }) }"
|
178
|
+
)
|
179
|
+
end
|
180
|
+
|
181
|
+
def calendar_day(day, posts)
|
182
|
+
content_tag(:span, day.mday, :class => "mday #{'future' if day>Date.today}") +
|
183
|
+
if (p = posts.detect{|b| b.published_at.mday==day.mday })
|
184
|
+
link_to(image_tag(p.image.url(:thumb)), admin_post_path(p))
|
185
|
+
else
|
186
|
+
""
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
def sidebar_new_content_link
|
191
|
+
name = controller.controller_name.split('/').last
|
192
|
+
content_type = case name
|
193
|
+
when "pages", "posts", "users"
|
194
|
+
controller_name.singularize
|
195
|
+
when "orders", "products"
|
196
|
+
"product"
|
197
|
+
when "features"
|
198
|
+
"feature"
|
199
|
+
else
|
200
|
+
name.to_s.singularize
|
201
|
+
end
|
202
|
+
link_to ttc("new_#{content_type}"), admin_new_content_path(content_type) if content_type
|
203
|
+
end
|
204
|
+
|
205
|
+
def ga_visitors_graph(results)
|
206
|
+
content_tag(:div, "", :id => "ga_visitors", :class => "graph") +
|
207
|
+
javascript_tag("
|
208
|
+
$(document).ready(function() {
|
209
|
+
|
210
|
+
})
|
211
|
+
")
|
212
|
+
end
|
213
|
+
|
214
|
+
def link_to_preview
|
215
|
+
obj = params[:controller]=~/pages/ ? 'page' : 'post'
|
216
|
+
|
217
|
+
link_to_function(ttt(:preview), %Q{
|
218
|
+
$('iframe.preview-pane').dialog({
|
219
|
+
modal: true,
|
220
|
+
width:960,
|
221
|
+
height:500,
|
222
|
+
open: function() {
|
223
|
+
$(this).css('width',960)
|
224
|
+
var form = $('form##{obj}_edit, form##{obj}_new').
|
225
|
+
clone().
|
226
|
+
attr('id','#{obj}_preview_form').
|
227
|
+
attr('action','#{send("preview_#{obj}_path")}').
|
228
|
+
attr('method','post').
|
229
|
+
attr('target','#{obj}_preview').
|
230
|
+
hide().
|
231
|
+
appendTo($('#body'));
|
232
|
+
form.submit().remove();
|
233
|
+
} })
|
234
|
+
}, :class => "preview") +
|
235
|
+
content_tag(:iframe, "", :id => "#{obj}_preview", :class => "preview-pane", :src => "about:blank", :width => 1, :height => 1, :name => "#{obj}_preview")
|
236
|
+
end
|
237
|
+
|
238
|
+
def seconds_from_now(datetime)
|
239
|
+
Time.now.to_i - Time.at(datetime.to_i).to_i
|
240
|
+
end
|
241
|
+
|
242
|
+
include Atreides::Extendable
|
243
|
+
end
|