platform 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +21 -0
- data/.rspec +2 -0
- data/Gemfile +14 -0
- data/Gemfile.lock +191 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +5 -0
- data/Rakefile +37 -0
- data/app/assets/images/platform/.gitkeep +0 -0
- data/app/assets/images/platform/accept.png +0 -0
- data/app/assets/images/platform/action_tab_bkgd.gif +0 -0
- data/app/assets/images/platform/action_tab_white_bkgd.gif +0 -0
- data/app/assets/images/platform/add.png +0 -0
- data/app/assets/images/platform/apps/app_icon.gif +0 -0
- data/app/assets/images/platform/apps/app_logo.gif +0 -0
- data/app/assets/images/platform/arrow_down.gif +0 -0
- data/app/assets/images/platform/arrow_down.png +0 -0
- data/app/assets/images/platform/arrow_down_grey.png +0 -0
- data/app/assets/images/platform/arrow_right.gif +0 -0
- data/app/assets/images/platform/arrow_up.png +0 -0
- data/app/assets/images/platform/arrow_up_grey.png +0 -0
- data/app/assets/images/platform/bullet_go.png +0 -0
- data/app/assets/images/platform/buttons.png +0 -0
- data/app/assets/images/platform/cancel.png +0 -0
- data/app/assets/images/platform/clipboard_icon.gif +0 -0
- data/app/assets/images/platform/close.gif +0 -0
- data/app/assets/images/platform/cross.png +0 -0
- data/app/assets/images/platform/default_app_icon.gif +0 -0
- data/app/assets/images/platform/default_app_logo.gif +0 -0
- data/app/assets/images/platform/delete.png +0 -0
- data/app/assets/images/platform/disk.png +0 -0
- data/app/assets/images/platform/exclamation.png +0 -0
- data/app/assets/images/platform/eye.png +0 -0
- data/app/assets/images/platform/eye_not.png +0 -0
- data/app/assets/images/platform/field_sprite.gif +0 -0
- data/app/assets/images/platform/find.png +0 -0
- data/app/assets/images/platform/globe.gif +0 -0
- data/app/assets/images/platform/help.png +0 -0
- data/app/assets/images/platform/help/app_reg.png +0 -0
- data/app/assets/images/platform/help/app_reg_ext.png +0 -0
- data/app/assets/images/platform/help/app_reg_web.png +0 -0
- data/app/assets/images/platform/help/auth_desktop.png +0 -0
- data/app/assets/images/platform/help/auth_iframe.png +0 -0
- data/app/assets/images/platform/help/auth_iphone.png +0 -0
- data/app/assets/images/platform/help/auth_web.png +0 -0
- data/app/assets/images/platform/help/authorize.png +0 -0
- data/app/assets/images/platform/help/ext.png +0 -0
- data/app/assets/images/platform/help/login.png +0 -0
- data/app/assets/images/platform/help/login_desktop.png +0 -0
- data/app/assets/images/platform/help/login_iphone.png +0 -0
- data/app/assets/images/platform/help/login_web.png +0 -0
- data/app/assets/images/platform/help2.png +0 -0
- data/app/assets/images/platform/information.png +0 -0
- data/app/assets/images/platform/keyboard.png +0 -0
- data/app/assets/images/platform/language_selector_arrow.gif +0 -0
- data/app/assets/images/platform/left_quote.png +0 -0
- data/app/assets/images/platform/lightning.png +0 -0
- data/app/assets/images/platform/loading.gif +0 -0
- data/app/assets/images/platform/loading2.gif +0 -0
- data/app/assets/images/platform/loading3.gif +0 -0
- data/app/assets/images/platform/loading_animation.gif +0 -0
- data/app/assets/images/platform/loading_large.gif +0 -0
- data/app/assets/images/platform/lock.png +0 -0
- data/app/assets/images/platform/lock_add.png +0 -0
- data/app/assets/images/platform/lock_delete.png +0 -0
- data/app/assets/images/platform/lock_open.png +0 -0
- data/app/assets/images/platform/medals/bronze.png +0 -0
- data/app/assets/images/platform/medals/gold.png +0 -0
- data/app/assets/images/platform/medals/runner.png +0 -0
- data/app/assets/images/platform/medals/silver.png +0 -0
- data/app/assets/images/platform/minus_node.png +0 -0
- data/app/assets/images/platform/oauth/perm_tile.gif +0 -0
- data/app/assets/images/platform/oauth/right_grey.png +0 -0
- data/app/assets/images/platform/pencil.png +0 -0
- data/app/assets/images/platform/photo_silhouette.gif +0 -0
- data/app/assets/images/platform/pixel.gif +0 -0
- data/app/assets/images/platform/platform.png +0 -0
- data/app/assets/images/platform/platform2.png +0 -0
- data/app/assets/images/platform/platform3.png +0 -0
- data/app/assets/images/platform/platform4.png +0 -0
- data/app/assets/images/platform/platform5.png +0 -0
- data/app/assets/images/platform/plus.png +0 -0
- data/app/assets/images/platform/plus_node.png +0 -0
- data/app/assets/images/platform/random.png +0 -0
- data/app/assets/images/platform/random2.png +0 -0
- data/app/assets/images/platform/rating_star0.png +0 -0
- data/app/assets/images/platform/rating_star05.png +0 -0
- data/app/assets/images/platform/rating_star1.png +0 -0
- data/app/assets/images/platform/rating_stars.gif +0 -0
- data/app/assets/images/platform/rating_stars.psd +0 -0
- data/app/assets/images/platform/reply.png +0 -0
- data/app/assets/images/platform/right_quote.png +0 -0
- data/app/assets/images/platform/rotating_world.gif +0 -0
- data/app/assets/images/platform/script.png +0 -0
- data/app/assets/images/platform/script_edit.png +0 -0
- data/app/assets/images/platform/script_gear.png +0 -0
- data/app/assets/images/platform/site_sprite.gif +0 -0
- data/app/assets/images/platform/spinner.gif +0 -0
- data/app/assets/images/platform/star.png +0 -0
- data/app/assets/images/platform/table_edit.png +0 -0
- data/app/assets/images/platform/table_gear.png +0 -0
- data/app/assets/images/platform/table_multiple.png +0 -0
- data/app/assets/images/platform/thumb_down.png +0 -0
- data/app/assets/images/platform/thumb_up.png +0 -0
- data/app/assets/images/platform/top_left_stem.png +0 -0
- data/app/assets/images/platform/top_right_stem.png +0 -0
- data/app/assets/images/platform/translate_icn.gif +0 -0
- data/app/assets/images/platform/treeview/diffDoc.gif +0 -0
- data/app/assets/images/platform/treeview/diffFolder.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2blank.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2doc.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2folderclosed.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2folderopen.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2lastnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2link.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2mlastnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2mnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2node.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2plastnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2pnode.gif +0 -0
- data/app/assets/images/platform/treeview/ftv2vertline.gif +0 -0
- data/app/assets/images/platform/wizard.png +0 -0
- data/app/assets/images/platform/world_link.png +0 -0
- data/app/assets/javascripts/platform/api_explorer.js +628 -0
- data/app/assets/javascripts/platform/application.js +9 -0
- data/app/assets/javascripts/platform/ftiens4.js +1197 -0
- data/app/assets/javascripts/platform/jsdk.js +539 -0
- data/app/assets/javascripts/platform/platform.js +447 -0
- data/app/assets/javascripts/platform/shortcut.js +223 -0
- data/app/assets/javascripts/platform/ua.js +147 -0
- data/app/assets/stylesheets/platform/api_explorer.css.scss +140 -0
- data/app/assets/stylesheets/platform/application.css.scss +6 -0
- data/app/assets/stylesheets/platform/components.css.scss +208 -0
- data/app/assets/stylesheets/platform/layout.css.scss +119 -0
- data/app/assets/stylesheets/platform/oauth.css +51 -0
- data/app/assets/stylesheets/platform/platform.css.scss +311 -0
- data/app/controllers/platform/admin/apps_controller.rb +99 -0
- data/app/controllers/platform/admin/base_controller.rb +60 -0
- data/app/controllers/platform/admin/categories_controller.rb +132 -0
- data/app/controllers/platform/admin/clientsdk_controller.rb +30 -0
- data/app/controllers/platform/admin/developers_controller.rb +30 -0
- data/app/controllers/platform/admin/exceptions_controller.rb +30 -0
- data/app/controllers/platform/admin/forum_controller.rb +34 -0
- data/app/controllers/platform/admin/metrics_controller.rb +42 -0
- data/app/controllers/platform/api/apps_controller.rb +40 -0
- data/app/controllers/platform/api/base_controller.rb +541 -0
- data/app/controllers/platform/apps_controller.rb +142 -0
- data/app/controllers/platform/base_controller.rb +127 -0
- data/app/controllers/platform/developer/api_explorer_controller.rb +56 -0
- data/app/controllers/platform/developer/apps_controller.rb +161 -0
- data/app/controllers/platform/developer/base_controller.rb +51 -0
- data/app/controllers/platform/developer/blog_controller.rb +29 -0
- data/app/controllers/platform/developer/dashboard_controller.rb +63 -0
- data/app/controllers/platform/developer/forum_controller.rb +85 -0
- data/app/controllers/platform/developer/help_controller.rb +113 -0
- data/app/controllers/platform/developer/info_controller.rb +41 -0
- data/app/controllers/platform/developer/registration_controller.rb +39 -0
- data/app/controllers/platform/developer/resources_controller.rb +30 -0
- data/app/controllers/platform/forum_controller.rb +74 -0
- data/app/controllers/platform/oauth_controller.rb +421 -0
- data/app/controllers/platform/ratings_controller.rb +61 -0
- data/app/helpers/platform/admin/categories_helper.rb +54 -0
- data/app/helpers/platform/apps_helper.rb +26 -0
- data/app/helpers/platform/developer/dashboard_helper.rb +42 -0
- data/app/helpers/platform/developer/help_helper.rb +45 -0
- data/app/helpers/platform_helper.rb +26 -0
- data/app/models/platform/application.rb +394 -0
- data/app/models/platform/application_category.rb +34 -0
- data/app/models/platform/application_developer.rb +30 -0
- data/app/models/platform/application_filter.rb +30 -0
- data/app/models/platform/application_log.rb +32 -0
- data/app/models/platform/application_log_filter.rb +34 -0
- data/app/models/platform/application_metric.rb +58 -0
- data/app/models/platform/application_metric_filter.rb +34 -0
- data/app/models/platform/application_permission.rb +30 -0
- data/app/models/platform/application_permission_filter.rb +30 -0
- data/app/models/platform/application_usage_metric.rb +58 -0
- data/app/models/platform/application_usage_metric_filter.rb +34 -0
- data/app/models/platform/application_user.rb +45 -0
- data/app/models/platform/application_user_filter.rb +34 -0
- data/app/models/platform/base_filter.rb +46 -0
- data/app/models/platform/category.rb +64 -0
- data/app/models/platform/daily_application_metric.rb +31 -0
- data/app/models/platform/developer.rb +45 -0
- data/app/models/platform/developer_filter.rb +26 -0
- data/app/models/platform/forum_message.rb +35 -0
- data/app/models/platform/forum_message_filter.rb +26 -0
- data/app/models/platform/forum_topic.rb +38 -0
- data/app/models/platform/forum_topic_filter.rb +26 -0
- data/app/models/platform/logged_exception.rb +290 -0
- data/app/models/platform/logged_exception_filter.rb +58 -0
- data/app/models/platform/media/image.rb +26 -0
- data/app/models/platform/media/media.rb +58 -0
- data/app/models/platform/monthly_application_metric.rb +31 -0
- data/app/models/platform/oauth/access_token.rb +57 -0
- data/app/models/platform/oauth/client_token.rb +38 -0
- data/app/models/platform/oauth/oauth_model_methods.rb +41 -0
- data/app/models/platform/oauth/oauth_token.rb +57 -0
- data/app/models/platform/oauth/oauth_token_filter.rb +34 -0
- data/app/models/platform/oauth/refresh_token.rb +47 -0
- data/app/models/platform/oauth/request_token.rb +50 -0
- data/app/models/platform/permission.rb +27 -0
- data/app/models/platform/rating.rb +43 -0
- data/app/models/platform/rating_filter.rb +30 -0
- data/app/models/platform/rollup_log.rb +27 -0
- data/app/models/platform/rollup_log_filter.rb +30 -0
- data/app/models/platform/total_application_metric.rb +40 -0
- data/app/models/platform/weekly_application_metric.rb +31 -0
- data/app/views/platform/admin/apps/_categories.html.erb +17 -0
- data/app/views/platform/admin/apps/_categories_scripts.html.erb +17 -0
- data/app/views/platform/admin/apps/_tabs.html.erb +25 -0
- data/app/views/platform/admin/apps/index.html.erb +32 -0
- data/app/views/platform/admin/apps/permissions.html.erb +7 -0
- data/app/views/platform/admin/apps/ratings.html.erb +7 -0
- data/app/views/platform/admin/apps/tokens.html.erb +18 -0
- data/app/views/platform/admin/apps/users.html.erb +7 -0
- data/app/views/platform/admin/apps/view.html.erb +170 -0
- data/app/views/platform/admin/categories/_tabs.html.erb +22 -0
- data/app/views/platform/admin/categories/category_assigner.html.erb +9 -0
- data/app/views/platform/admin/categories/category_assigner_tree.html.erb +81 -0
- data/app/views/platform/admin/categories/index.html.erb +106 -0
- data/app/views/platform/admin/categories/items.html.erb +153 -0
- data/app/views/platform/admin/categories/lb_update_application_category.html.erb +54 -0
- data/app/views/platform/admin/categories/lb_update_category.html.erb +64 -0
- data/app/views/platform/admin/categories/tree.html.erb +64 -0
- data/app/views/platform/admin/clientsdk/index.html.erb +89 -0
- data/app/views/platform/admin/common/_footer.html.erb +1 -0
- data/app/views/platform/admin/common/_header.html.erb +32 -0
- data/app/views/platform/admin/common/_lightbox_buttons.html.erb +5 -0
- data/app/views/platform/admin/common/_paginator.html.erb +20 -0
- data/app/views/platform/admin/developers/_tabs.html.erb +22 -0
- data/app/views/platform/admin/developers/index.html.erb +7 -0
- data/app/views/platform/admin/exceptions/_tabs.html.erb +22 -0
- data/app/views/platform/admin/exceptions/index.html.erb +7 -0
- data/app/views/platform/admin/forum/_tabs.html.erb +22 -0
- data/app/views/platform/admin/forum/index.html.erb +7 -0
- data/app/views/platform/admin/forum/messages.html.erb +7 -0
- data/app/views/platform/admin/metrics/_tabs.html.erb +25 -0
- data/app/views/platform/admin/metrics/application_log.html.erb +7 -0
- data/app/views/platform/admin/metrics/index.html.erb +9 -0
- data/app/views/platform/admin/metrics/rollup_log.html.erb +7 -0
- data/app/views/platform/admin/metrics/usage.html.erb +7 -0
- data/app/views/platform/apps/_actions_module.html.erb +3 -0
- data/app/views/platform/apps/_app_footer.html.erb +8 -0
- data/app/views/platform/apps/_app_header.html.erb +25 -0
- data/app/views/platform/apps/_apps_module.html.erb +42 -0
- data/app/views/platform/apps/_authorize_form.html.erb +11 -0
- data/app/views/platform/apps/_categories_module.html.erb +11 -0
- data/app/views/platform/apps/_featured_apps_module.html.erb +40 -0
- data/app/views/platform/apps/_left.html.erb +20 -0
- data/app/views/platform/apps/_monthly_users_module.html.erb +8 -0
- data/app/views/platform/apps/_paginator.html.erb +13 -0
- data/app/views/platform/apps/_rank_module.html.erb +18 -0
- data/app/views/platform/apps/_search_apps_module.html.erb +35 -0
- data/app/views/platform/apps/canvas_app.html.erb +15 -0
- data/app/views/platform/apps/index.html.erb +86 -0
- data/app/views/platform/apps/view.html.erb +71 -0
- data/app/views/platform/apps/xd.html.erb +11 -0
- data/app/views/platform/common/_footer.html.erb +1 -0
- data/app/views/platform/common/_header.html.erb +4 -0
- data/app/views/platform/common/_paginator.html.erb +32 -0
- data/app/views/platform/common/_scripts.html.erb +7 -0
- data/app/views/platform/common/_user_login.html.erb +11 -0
- data/app/views/platform/developer/api_explorer/history.html.erb +31 -0
- data/app/views/platform/developer/api_explorer/index.html.erb +134 -0
- data/app/views/platform/developer/api_explorer/oauth_lander.html.erb +4 -0
- data/app/views/platform/developer/api_explorer/options.html.erb +44 -0
- data/app/views/platform/developer/apps/_form.html.erb +340 -0
- data/app/views/platform/developer/apps/create_version.html.erb +19 -0
- data/app/views/platform/developer/apps/edit.html.erb +21 -0
- data/app/views/platform/developer/apps/index.html.erb +375 -0
- data/app/views/platform/developer/apps/new.html.erb +20 -0
- data/app/views/platform/developer/blog/index.html.erb +7 -0
- data/app/views/platform/developer/common/_footer.html.erb +1 -0
- data/app/views/platform/developer/common/_header.html.erb +34 -0
- data/app/views/platform/developer/dashboard/_apps_info.html.erb +84 -0
- data/app/views/platform/developer/dashboard/_discussions.html.erb +68 -0
- data/app/views/platform/developer/dashboard/_header.html.erb +12 -0
- data/app/views/platform/developer/dashboard/_reviews.html.erb +53 -0
- data/app/views/platform/developer/dashboard/_statistics.html.erb +105 -0
- data/app/views/platform/developer/dashboard/index.html.erb +85 -0
- data/app/views/platform/developer/dashboard/settings.html.erb +23 -0
- data/app/views/platform/developer/forum/_message.html.erb +17 -0
- data/app/views/platform/developer/forum/_messages.html.erb +14 -0
- data/app/views/platform/developer/forum/_new_message.html.erb +28 -0
- data/app/views/platform/developer/forum/_new_topic.html.erb +39 -0
- data/app/views/platform/developer/forum/index.html.erb +89 -0
- data/app/views/platform/developer/forum/topic.html.erb +28 -0
- data/app/views/platform/developer/help/_footer.html.erb +4 -0
- data/app/views/platform/developer/help/_header.html.erb +95 -0
- data/app/views/platform/developer/help/_navigation.html.erb +99 -0
- data/app/views/platform/developer/help/api.html.erb +120 -0
- data/app/views/platform/developer/help/credits.html.erb +77 -0
- data/app/views/platform/developer/help/index.html.erb +19 -0
- data/app/views/platform/developer/help/license.html.erb +586 -0
- data/app/views/platform/developer/help/oauth_app_login.html.erb +177 -0
- data/app/views/platform/developer/help/oauth_client_side.html.erb +264 -0
- data/app/views/platform/developer/help/oauth_desktop.html.erb +191 -0
- data/app/views/platform/developer/help/oauth_extensions.html.erb +342 -0
- data/app/views/platform/developer/help/oauth_intro.html.erb +371 -0
- data/app/views/platform/developer/help/oauth_mobile.html.erb +292 -0
- data/app/views/platform/developer/help/oauth_server_side.html.erb +603 -0
- data/app/views/platform/developer/help/oauth_trusted_client.html.erb +202 -0
- data/app/views/platform/developer/help/reference.html.erb +42 -0
- data/app/views/platform/developer/help/sdk_ios.html.erb +31 -0
- data/app/views/platform/developer/help/sdk_js.html.erb +202 -0
- data/app/views/platform/developer/info/_basic_info.html.erb +74 -0
- data/app/views/platform/developer/info/_header.html.erb +12 -0
- data/app/views/platform/developer/info/index.html.erb +23 -0
- data/app/views/platform/developer/registration/index.html.erb +134 -0
- data/app/views/platform/developer/resources/index.html.erb +23 -0
- data/app/views/platform/forum/_message.html.erb +17 -0
- data/app/views/platform/forum/_messages.html.erb +14 -0
- data/app/views/platform/forum/_new_message.html.erb +26 -0
- data/app/views/platform/forum/_new_topic.html.erb +38 -0
- data/app/views/platform/forum/_topic.html.erb +18 -0
- data/app/views/platform/forum/_topics.html.erb +74 -0
- data/app/views/platform/login/index.html.erb +31 -0
- data/app/views/platform/login/register.html.erb +55 -0
- data/app/views/platform/oauth/_authorization_box.html.erb +75 -0
- data/app/views/platform/oauth/_authorization_popup.html.erb +38 -0
- data/app/views/platform/oauth/_authorize_form.html.erb +11 -0
- data/app/views/platform/oauth/auth_failed.html.erb +0 -0
- data/app/views/platform/oauth/auth_success.html.erb +0 -0
- data/app/views/platform/oauth/authorize_desktop.html.erb +76 -0
- data/app/views/platform/oauth/authorize_failure_iframe.html.erb +1 -0
- data/app/views/platform/oauth/authorize_failure_mobile.html.erb +24 -0
- data/app/views/platform/oauth/authorize_failure_popup.html.erb +24 -0
- data/app/views/platform/oauth/authorize_failure_web.html.erb +1 -0
- data/app/views/platform/oauth/authorize_iframe.html.erb +16 -0
- data/app/views/platform/oauth/authorize_mobile.html.erb +1 -0
- data/app/views/platform/oauth/authorize_popup.html.erb +1 -0
- data/app/views/platform/oauth/authorize_success_iframe.html.erb +1 -0
- data/app/views/platform/oauth/authorize_success_mobile.html.erb +24 -0
- data/app/views/platform/oauth/authorize_success_popup.html.erb +24 -0
- data/app/views/platform/oauth/authorize_success_web.html.erb +1 -0
- data/app/views/platform/oauth/authorize_web.html.erb +3 -0
- data/app/views/platform/oauth/xd.html.erb +13 -0
- data/app/views/platform/ratings/_list.html.erb +30 -0
- data/app/views/platform/ratings/_new.html.erb +70 -0
- data/app/views/platform/ratings/_rating.html.erb +17 -0
- data/config/platform/config.yml +133 -0
- data/config/platform/data/default_applications.yml +39 -0
- data/config/platform/data/default_categories.yml +56 -0
- data/config/platform/data/default_permissions.yml +0 -0
- data/config/platform/site/features.yml +66 -0
- data/config/routes.rb +59 -0
- data/db/migrate/20110602232141_create_platform_tables.rb +262 -0
- data/docs/Classes.graffle +7315 -0
- data/docs/Classes.pdf +0 -0
- data/lib/generators/platform/platform_generator.rb +56 -0
- data/lib/generators/platform/templates/db/create_platform_tables.rb +262 -0
- data/lib/generators/platform/templates/layouts/platform.html.erb +49 -0
- data/lib/generators/platform/templates/layouts/platform_admin.html.erb +60 -0
- data/lib/platform.rb +6 -0
- data/lib/platform/api/already_jsoned_string.rb +9 -0
- data/lib/platform/api/proxy.rb +45 -0
- data/lib/platform/api/proxy/base.rb +62 -0
- data/lib/platform/cache.rb +78 -0
- data/lib/platform/config.rb +666 -0
- data/lib/platform/engine.rb +5 -0
- data/lib/platform/exception.rb +27 -0
- data/lib/platform/extensions/action_controller_extension.rb +65 -0
- data/lib/platform/extensions/action_view_extension.rb +168 -0
- data/lib/platform/extensions/object_extension.rb +51 -0
- data/lib/platform/helper.rb +33 -0
- data/lib/platform/logger.rb +62 -0
- data/lib/platform/railtie.rb +52 -0
- data/lib/platform/random_password_generator.rb +76 -0
- data/lib/platform/simple_string_permissions.rb +40 -0
- data/lib/platform/version.rb +3 -0
- data/lib/tasks/platform.rake +119 -0
- data/platform.gemspec +45 -0
- data/script/rails +6 -0
- data/spec/config/config_spec.rb +10 -0
- data/spec/dummy_app.rb +52 -0
- data/spec/models/application_spec.rb +53 -0
- data/spec/models/developer_spec.rb +23 -0
- data/spec/spec_helper.rb +29 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +7 -0
- data/test/dummy/app/assets/stylesheets/admin.css +200 -0
- data/test/dummy/app/assets/stylesheets/application.css +47 -0
- data/test/dummy/app/assets/stylesheets/components.css.scss +211 -0
- data/test/dummy/app/assets/stylesheets/layout.css.scss +143 -0
- data/test/dummy/app/controllers/admin/admins_controller.rb +7 -0
- data/test/dummy/app/controllers/admin/base_controller.rb +12 -0
- data/test/dummy/app/controllers/admin/bookmarks_controller.rb +7 -0
- data/test/dummy/app/controllers/admin/users_controller.rb +19 -0
- data/test/dummy/app/controllers/api/base_controller.rb +5 -0
- data/test/dummy/app/controllers/api/bookmarks_controller.rb +35 -0
- data/test/dummy/app/controllers/api/users_controller.rb +19 -0
- data/test/dummy/app/controllers/application_controller.rb +31 -0
- data/test/dummy/app/controllers/home_controller.rb +7 -0
- data/test/dummy/app/controllers/login_controller.rb +65 -0
- data/test/dummy/app/helpers/application_helper.rb +9 -0
- data/test/dummy/app/helpers/home_helper.rb +2 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/admin.rb +4 -0
- data/test/dummy/app/models/admin_filter.rb +7 -0
- data/test/dummy/app/models/bookmark.rb +7 -0
- data/test/dummy/app/models/user.rb +34 -0
- data/test/dummy/app/views/admin/admins/index.html.erb +7 -0
- data/test/dummy/app/views/admin/bookmarks/index.html.erb +5 -0
- data/test/dummy/app/views/admin/users/index.html.erb +10 -0
- data/test/dummy/app/views/demo/index.rhtml +108 -0
- data/test/dummy/app/views/demo/tokens.rhtml +35 -0
- data/test/dummy/app/views/home/index.html.erb +43 -0
- data/test/dummy/app/views/layouts/_footer.html.erb +16 -0
- data/test/dummy/app/views/layouts/_header.html.erb +22 -0
- data/test/dummy/app/views/layouts/admin.html.erb +97 -0
- data/test/dummy/app/views/layouts/application.html.erb +25 -0
- data/test/dummy/app/views/layouts/minimal.html.erb +37 -0
- data/test/dummy/app/views/layouts/popup.html.erb +43 -0
- data/test/dummy/app/views/login/index.html.erb +34 -0
- data/test/dummy/app/views/login/register.html.erb +51 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +51 -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 +30 -0
- data/test/dummy/config/environments/production.rb +60 -0
- data/test/dummy/config/environments/test.rb +42 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -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/platform/api/0/bookmark.yml +18 -0
- data/test/dummy/config/platform/api/0/user.yml +17 -0
- data/test/dummy/config/platform/api/1/bookmark.yml +58 -0
- data/test/dummy/config/platform/api/1/user.yml +36 -0
- data/test/dummy/config/platform/config.yml +135 -0
- data/test/dummy/config/platform/data/default_applications.yml +39 -0
- data/test/dummy/config/platform/data/default_categories.yml +56 -0
- data/test/dummy/config/platform/data/default_permissions.yml +0 -0
- data/test/dummy/config/platform/site/features.yml +66 -0
- data/test/dummy/config/platform/site/sample_apps.yml +100 -0
- data/test/dummy/config/routes.rb +30 -0
- data/test/dummy/config/tr8n/config.yml +247 -0
- data/test/dummy/config/tr8n/data/ip_locations.csv +93460 -0
- data/test/dummy/config/tr8n/rules/default_date_rules.yml +20 -0
- data/test/dummy/config/tr8n/rules/default_gender_list_rules.yml +82 -0
- data/test/dummy/config/tr8n/rules/default_gender_rules.yml +20 -0
- data/test/dummy/config/tr8n/rules/default_language_cases.yml +272 -0
- data/test/dummy/config/tr8n/rules/default_list_rules.yml +19 -0
- data/test/dummy/config/tr8n/rules/default_numeric_rules.yml +42 -0
- data/test/dummy/config/tr8n/rules/default_value_rules.yml +18 -0
- data/test/dummy/config/tr8n/site/default_glossary.yml +18 -0
- data/test/dummy/config/tr8n/site/default_languages.yml +1591 -0
- data/test/dummy/config/tr8n/site/features.yml +111 -0
- data/test/dummy/config/tr8n/site/shortcuts.yml +55 -0
- data/test/dummy/config/tr8n/site/sitemap.json +42 -0
- data/test/dummy/config/tr8n/tokens/data.yml +19 -0
- data/test/dummy/config/tr8n/tokens/decorations.yml +19 -0
- data/test/dummy/config/will_filter/config.yml +99 -0
- data/test/dummy/db/migrate/20101207014543_create_users.rb +23 -0
- data/test/dummy/db/migrate/20110113223509_create_admins.rb +15 -0
- data/test/dummy/db/migrate/20110930041143_create_will_filter_filters.rb +15 -0
- data/test/dummy/db/migrate/20110930041150_create_tr8n_tables.rb +350 -0
- data/test/dummy/db/migrate/20111004075531_create_platform_tables.rb +262 -0
- data/test/dummy/db/migrate/20111012055603_create_bookmarks.rb +10 -0
- data/test/dummy/db/schema.rb +683 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/lib/platform/api/bookmark_proxy_0.rb +12 -0
- data/test/dummy/lib/platform/api/bookmark_proxy_1.rb +12 -0
- data/test/dummy/lib/platform/api/user_proxy_0.rb +12 -0
- data/test/dummy/lib/platform/api/user_proxy_1.rb +12 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/documents.yml +11 -0
- data/test/dummy/test/unit/document_test.rb +7 -0
- metadata +886 -0
@@ -0,0 +1,74 @@
|
|
1
|
+
<style>
|
2
|
+
input {
|
3
|
+
width:90%;
|
4
|
+
}
|
5
|
+
textarea {
|
6
|
+
width:90%;
|
7
|
+
height:200px;
|
8
|
+
}
|
9
|
+
</style>
|
10
|
+
<div id="basic_info_container">
|
11
|
+
<%=render(:partial => "header", :locals => {:section => "basic_info", :label => "Developer Details", :description => "Developer details section title", :mode => mode})%>
|
12
|
+
|
13
|
+
<% form_for(:developer, platform_current_developer, :url => {:action => :index}, :html => {:id => 'basic_info_form', :method => :post}) do |f| %>
|
14
|
+
<div class="section_box colored">
|
15
|
+
<div style="float:right; padding-right:5px;">
|
16
|
+
<%=platform_help_icon_tag %>
|
17
|
+
</div>
|
18
|
+
<div ondblclick="switchSectionMode('basic_info', 'edit')">
|
19
|
+
<table>
|
20
|
+
<tr>
|
21
|
+
<th style="text-align:left;width:120px;padding:3px;vertical-align:top;font-weight:bold;"><%=trl("Name:")%></th>
|
22
|
+
<td style="padding:3px;">
|
23
|
+
<% if mode == :edit %>
|
24
|
+
<%=f.text_field(:name)%>
|
25
|
+
<% else %>
|
26
|
+
<%= platform_current_developer.name%>
|
27
|
+
<% end %>
|
28
|
+
</td>
|
29
|
+
</tr>
|
30
|
+
<tr>
|
31
|
+
<th style="text-align:left;width:120px;padding:3px;vertical-align:top;font-weight:bold;"><%=trl("Email:")%></th>
|
32
|
+
<td style="padding:3px;">
|
33
|
+
<% if mode == :edit %>
|
34
|
+
<%=f.text_field(:email)%>
|
35
|
+
<% else %>
|
36
|
+
<%= platform_current_developer.email%>
|
37
|
+
<% end %>
|
38
|
+
</td>
|
39
|
+
</tr>
|
40
|
+
<tr>
|
41
|
+
<th style="text-align:left;width:120px;padding:3px;vertical-align:top;font-weight:bold;"><%=trl("Url:")%></th>
|
42
|
+
<td style="padding:3px;">
|
43
|
+
<% if mode == :edit %>
|
44
|
+
<%=f.text_field(:url)%>
|
45
|
+
<% else %>
|
46
|
+
<%= platform_current_developer.url%>
|
47
|
+
<% end %>
|
48
|
+
</td>
|
49
|
+
</tr>
|
50
|
+
<tr>
|
51
|
+
<th style="text-align:left;width:120px;padding:3px;vertical-align:top;font-weight:bold;"><%=trl("Phone:")%></th>
|
52
|
+
<td style="padding:3px;">
|
53
|
+
<% if mode == :edit %>
|
54
|
+
<%=f.text_field(:phone)%>
|
55
|
+
<% else %>
|
56
|
+
<%= platform_current_developer.phone%>
|
57
|
+
<% end %>
|
58
|
+
</td>
|
59
|
+
</tr>
|
60
|
+
<tr>
|
61
|
+
<th style="text-align:left;width:120px;padding:3px;vertical-align:top;font-weight:bold;"><%=trl("About:")%></th>
|
62
|
+
<td style="padding:3px;">
|
63
|
+
<% if mode == :edit %>
|
64
|
+
<%=f.text_area(:about)%>
|
65
|
+
<% else %>
|
66
|
+
<%= platform_current_developer.about%>
|
67
|
+
<% end %>
|
68
|
+
</td>
|
69
|
+
</tr>
|
70
|
+
</table>
|
71
|
+
</div>
|
72
|
+
</div>
|
73
|
+
<% end %>
|
74
|
+
</div>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="section_title">
|
2
|
+
<div style="float:right; padding-top:3px;">
|
3
|
+
<% if mode == :view %>
|
4
|
+
<%=link_to_function("#{image_tag("/tr8n/images/table_edit.png")}", "switchSectionMode('#{section}', 'edit')") %>
|
5
|
+
<% else %>
|
6
|
+
<%=link_to_function(image_tag("/tr8n/images/disk.png"), "submitSection('#{section}')")%>
|
7
|
+
<%=link_to_function(image_tag("/tr8n/images/cancel.png"), "switchSectionMode('#{section}', 'view')")%>
|
8
|
+
<% end %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<%=trl(label, description) %>
|
12
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%= render :partial => "/platform/developer/common/header" %>
|
2
|
+
|
3
|
+
<%=render(:partial => "basic_info", :locals => {:mode => :view}) %>
|
4
|
+
|
5
|
+
<%= render :partial => "/platform/developer/common/footer" %>
|
6
|
+
|
7
|
+
<script>
|
8
|
+
function switchSectionMode(section, mode) {
|
9
|
+
Platform.Utils.update(section + '_container', '/platform/developer/info/update_section', {
|
10
|
+
parameters: {section:section, mode:mode}
|
11
|
+
});
|
12
|
+
}
|
13
|
+
|
14
|
+
function submitSection(section) {
|
15
|
+
var params = Platform.Utils.serializeForm(section + '_form');
|
16
|
+
params['section'] = section;
|
17
|
+
Platform.Utils.update(section + '_container', '/platform/developer/info/update_section', {
|
18
|
+
parameters: params,
|
19
|
+
method: 'post'
|
20
|
+
});
|
21
|
+
}
|
22
|
+
</script>
|
23
|
+
|
@@ -0,0 +1,134 @@
|
|
1
|
+
<div class="module page_title lengthy">
|
2
|
+
<div class="inner">
|
3
|
+
<div class="hd">
|
4
|
+
<h1><%= tr('Welcome to Geni Platform!', 'Client application section title') %></h1>
|
5
|
+
</div>
|
6
|
+
</div>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div style="padding:10px;border:1px solid #ccc;overflow:auto;height:500px;margin:10px;font-family:Arial;font-size:12px;">
|
10
|
+
<pre>
|
11
|
+
Geni Platform Policies
|
12
|
+
|
13
|
+
Introduction
|
14
|
+
|
15
|
+
Date of Last Revision: May 24, 2011
|
16
|
+
|
17
|
+
Geni Platform is an extension of Geni, whose mission is to give people the power to share and make the world more open and connected.
|
18
|
+
|
19
|
+
Platform applications and developers are required to comply with the following documents:
|
20
|
+
|
21
|
+
Statement of Rights and Responsibilities: requirements for anyone who uses Geni.
|
22
|
+
Principles: the spirit of the law for Platform.
|
23
|
+
Policies: the letter of the law for Platform.
|
24
|
+
|
25
|
+
Here are some Examples and Explanations for specifics.
|
26
|
+
|
27
|
+
Principles
|
28
|
+
|
29
|
+
Create a great user experience
|
30
|
+
|
31
|
+
Build social and engaging applications
|
32
|
+
Give users choice and control
|
33
|
+
Help users share expressive and relevant content
|
34
|
+
|
35
|
+
Be trustworthy
|
36
|
+
|
37
|
+
Respect privacy
|
38
|
+
Don't mislead, confuse, defraud, or surprise users
|
39
|
+
Don't spam - encourage authentic communications
|
40
|
+
|
41
|
+
Policies
|
42
|
+
|
43
|
+
I. Features and Functionality
|
44
|
+
|
45
|
+
You must not violate any law or the rights of any individual or entity, and must not expose Geni or Geni users to harm or legal liability as determined by us in our sole discretion.
|
46
|
+
You must not include functionality that proxies, requests or collects Geni usernames or passwords.
|
47
|
+
You must not circumvent (or claim to circumvent) our intended limitations on core Geni features and functionality.
|
48
|
+
If you offer a service for a user that integrates user data into a physical product (such as a scrapbook or calendar), you must only create a physical product for that user's personal and non-commercial use.
|
49
|
+
If you exceed, or plan to exceed, any of the following thresholds please contact us as you may be subject to additional terms: (>5M MAU) or (>100M API calls per day) or (>50M impressions per day).
|
50
|
+
Your website must offer an explicit "Log Out" option that also logs the user out of Geni.
|
51
|
+
Special provisions for apps on Pages:
|
52
|
+
|
53
|
+
a. Apps on Pages must not host media that plays automatically without a user's interaction.
|
54
|
+
b. When a user visits your Page, if they have not given explicit permission by authorizing your Geni app or directly providing information to your Page, you may only use information obtained from us and the user's interaction with your Page in connection with that Page. For example, although you may use aggregate analytics for your individual Page, you must not combine information from any other sources to customize the user's experience on your Page and may not use any information about the user's interaction with your Page in any other context (such as analytics or customization across other Pages or websites).
|
55
|
+
|
56
|
+
You must not use or make derivative use of Geni icons, or use terms for Geni features and functionality, if such use could confuse users into thinking that the reference is to Geni features or functionality.
|
57
|
+
|
58
|
+
II. Storing and Using Data You Receive From Us
|
59
|
+
|
60
|
+
You will only request the data you need to operate your application.
|
61
|
+
You may cache data you receive through use of the Geni API in order to improve your application’s user experience, but you should try to keep the data up to date. This permission does not give you any rights to such data.
|
62
|
+
You will have a privacy policy that tells users what user data you are going to use and how you will use, display, share, or transfer that data and you will include your privacy policy URL in the Developer Application.
|
63
|
+
A user's friends' data can only be used in the context of the user's experience on your application.
|
64
|
+
Subject to certain restrictions, including on transfer, users give you their basic account information when they connect with your application. For all other data obtained through use of the Geni API, you must obtain explicit consent from the user who provided the data to us before using it for any purpose other than displaying it back to the user on your application.
|
65
|
+
You will not directly or indirectly transfer any data you receive from us, including user data or Geni User IDs, to (or use such data in connection with) any ad network, ad exchange, data broker, or other advertising or monetization related toolset, even if a user consents to such transfer or use. By indirectly we mean you cannot, for example, transfer data to a third party who then transfers the data to an ad network. By any data we mean all data obtained through use of the Geni Platform (API, Social Plugins, etc.), including aggregate, anonymous or derivative data.
|
66
|
+
You will not use Geni User IDs for any purpose outside your application (e.g., your infrastructure, code, or services necessary to build and run your application). Geni User IDs may be used with external services that you use to build and run your application, such as a web infrastructure service or a distributed computing platform, but only if those services are necessary to running your application and the service has a contractual obligation with you to keep Geni User IDs confidential.
|
67
|
+
If you need an anonymous unique identifier to share outside your application with third parties such as content partners, advertisers, or ad networks, you must use our mechanism. You must never share this anonymous unique identifier with a data broker, information broker, or any other service that we may define as such under our sole discretion.
|
68
|
+
You will not sell any data. If you are acquired by or merge with a third party, you can continue to use user data within your application, but you cannot transfer data outside your application.
|
69
|
+
If you stop using Platform or we disable your application, you must delete all data you have received through use of the Geni API unless: (a) it is basic account information; or (b) you have received explicit consent from the user to retain their data.
|
70
|
+
You cannot use a user’s friend list outside of your application, even if a user consents to such use, but you can use connections between users who have both connected to your application.
|
71
|
+
You will delete all data you receive from us concerning a user if the user asks you to do so, and will provide an easily accessible mechanism for users to make such a request. We may require you to delete data you receive from the Geni API if you violate our terms.
|
72
|
+
You will not include data you receive from us concerning a user in any advertising creative, even if a user consents to such use.
|
73
|
+
You must not give your secret key to another party, unless that party is an agent acting on your behalf as an operator of your application. You are responsible for all activities that occur under your account identifiers.
|
74
|
+
|
75
|
+
III. Application Content
|
76
|
+
|
77
|
+
A. Prohibited Content - You are responsible for all content of and within your application, including advertisements and user-generated content. You must not promote, or provide content referencing, facilitating, containing or using, the following:
|
78
|
+
Alcohol-related content (unless the appropriate Demographic Restrictions are used), or sale of tobacco products, ammunition and/or firearms;
|
79
|
+
Content that infringes upon the rights of any third party, including intellectual property rights, privacy, publicity or other personal or proprietary right, or that is deceptive or fraudulent;
|
80
|
+
Gambling, including without limitation, any online casino, sports books, bingo or poker;
|
81
|
+
Illegal activity and/or illegal contests, pyramid schemes, sweepstakes or chain letters; if you run, reference, or facilitate a legally permissible sweepstakes, contest, or other promotion you are subject to Geni's Promotions Guidelines;
|
82
|
+
Content that is hateful, threatening, defamatory, or pornographic; incites violence; or contains nudity or graphic or gratuitous violence.
|
83
|
+
B. Advertisements and Cross-Promotions
|
84
|
+
You must not include advertisements or promotions, cross-promote other applications, or provide web search functionality in content distributed through Geni social channels.
|
85
|
+
You can only utilize advertising or similar monetization related products or services from companies that appear on this list within Apps on Geni.com.
|
86
|
+
|
87
|
+
IV. Application Integration Points
|
88
|
+
|
89
|
+
You must not incentivize users to use (or gate content behind the use of) Geni social channels, or imply that an incentive is directly tied to the use of our channels.
|
90
|
+
You must not pre-fill any of the fields associated with the following products, unless the user manually generated the content earlier in the workflow: Stream stories (user_message parameter for Geni.streamPublish and FB.Connect.streamPublish, and message parameter for stream.publish), Photos (caption), Videos (description), Notes (title and content), Links (comment), and Jabber/XMPP.
|
91
|
+
If a user grants you a publishing permission, you must still obtain consent from the user before taking any action on the user's behalf, such as publishing content or creating an event.
|
92
|
+
You must provide users with an easily identifiable "skip" option whenever you present users with an option to use a Geni social channel.
|
93
|
+
You must not provide users with the option to publish more than one Stream story at a time.
|
94
|
+
Platform integrations, including social plugins:
|
95
|
+
a. Your advertisements must not include or be paired with any Platform integrations, including social plugins such as the Like button, without our written permission.
|
96
|
+
b. You must not sell or purchase placement of a Like button or Like box plugin.
|
97
|
+
c. You must not incentivize users to Like any Page other than your own site or application, and any incentive you provide must be available to new and existing users who Like your Page.
|
98
|
+
d. You must not obscure or cover elements of our social plugins, such as the Like button or Like box plugin.
|
99
|
+
Geni messaging (i.e., email sent to an @Geni.com address) is designed for communication between users, and not a channel for applications to communicate directly with users.
|
100
|
+
|
101
|
+
V. Enforcement
|
102
|
+
|
103
|
+
We can take enforcement action against you and any or all of your applications if we determine in our sole judgment that you or your application violates Geni Platform Terms and Policies. Enforcement action is both automated and manual, and can include disabling your application, restricting you and your application's access to Platform functionality, terminating our agreements with you, or any other action as we in our sole discretion deem appropriate.
|
104
|
+
|
105
|
+
Communication with developers takes place via an email sent from the Geni.com or Genimail.com domain to the Developer Contact email address registered to the application. To stay in touch, please ensure that your email address is current and that you do not filter out any such messages.
|
106
|
+
|
107
|
+
VI. Changes
|
108
|
+
|
109
|
+
We can change these Platform Policies at any time without prior notice as we deem necessary. Your continued use of Platform constitutes acceptance of those changes.
|
110
|
+
|
111
|
+
VII. Definitions
|
112
|
+
|
113
|
+
By "Application" we mean canvas page application, Platform integration, or any other technical integration we have assigned an application identification number.
|
114
|
+
By "Geni social channel" we mean Application Info Section, Application tab, Feed, requests (including invites), inbox attachments, Chat, Bookmarks, or any other feature of a user profile or Geni communication channel in which or through which an application can provide, display, or deliver content directed at, on behalf of, or by permission of a user.
|
115
|
+
By “basic account information” we mean: name, email, gender, birthday, current city, and profile picture URL.
|
116
|
+
By "Geni Platform Terms and Policies" we mean the Statement of Rights and Responsibilities and the Platform Policies.
|
117
|
+
By "User data you receive from Geni" we mean any data or content (including any images, text, or other information or materials) you receive from us, that was provided by users to us, or was associated by us with a particular user.
|
118
|
+
|
119
|
+
VIII. Branding and Promotion Policy
|
120
|
+
|
121
|
+
You must follow the guidelines set forth in the Geni Brand Resource and Permissions Center.
|
122
|
+
|
123
|
+
IX. Advertising Guidelines
|
124
|
+
|
125
|
+
X. Geni Credits
|
126
|
+
|
127
|
+
Developers participating in the program for accepting credits are subject to these terms.
|
128
|
+
</pre>
|
129
|
+
</div>
|
130
|
+
|
131
|
+
<div style="text-align:center; padding:15px;">
|
132
|
+
<%= link_to(trl('Agree', 'Client application action label'), {:action => :proceed}, :class=>'button super blue xlarge') %>
|
133
|
+
<%=tr("or")%> <%=link_to(tr("Cancel"), Platform::Config.default_url)%>
|
134
|
+
</div>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%= render :partial => "/platform/developer/common/header" %>
|
2
|
+
|
3
|
+
<div class="section_title">
|
4
|
+
<%= tr('Resources', 'Client application section title') %>
|
5
|
+
</div>
|
6
|
+
|
7
|
+
<div class="section_box">
|
8
|
+
|
9
|
+
<h4>API Documentation and Test Tools</h4>
|
10
|
+
|
11
|
+
<p>
|
12
|
+
The API documentation can be viewed here: <%=link_to("http://api-preview.geni.com", "http://api-preview.geni.com")%>
|
13
|
+
</p>
|
14
|
+
<p>
|
15
|
+
API test tools are located here:
|
16
|
+
</p>
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<%= render :partial => "/platform/developer/common/footer" %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<td style="padding:5px; width:50px;">
|
2
|
+
<%=platform_user_mugshot_tag(message.user, :linked => true)%>
|
3
|
+
</td>
|
4
|
+
<td style="padding:5px; width:150px;">
|
5
|
+
<%=platform_user_tag(message.user, :linked => true)%>
|
6
|
+
<div style="color:grey;font-size:10px;"><%=message.created_at.trl(:date_time) %></div>
|
7
|
+
<div style="font-size:10px;">
|
8
|
+
<% if message.user == platform_current_user %>
|
9
|
+
<%=link_to(tr("Delete", "Link to delete forum message"), {:controller => '/platform/forum', :action => :delete_message, :message_id => message.id}, {:confirm => trl("Are you sure you want to delete this message?")})%>
|
10
|
+
<% else %>
|
11
|
+
<%=link_to_function(tr("Report", "Link to report an abusive forum message"), "tr8nLightbox.show('/tr8n/translator/lb_report?message_id=#{message.id}', {width:600, height:340});")%>
|
12
|
+
<% end %>
|
13
|
+
</div>
|
14
|
+
</td>
|
15
|
+
<td style="padding:5px; width:700px;">
|
16
|
+
<%=message.toHTML %>
|
17
|
+
</td>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="section">
|
2
|
+
<%= platform_paginator_tag(@messages, :subject => "message") %>
|
3
|
+
|
4
|
+
<table style="width:100%; ">
|
5
|
+
<% @messages.each do |message| %>
|
6
|
+
<%
|
7
|
+
style = (message == @messages.last ? "" : "border-bottom:1px dotted #ccc;" )
|
8
|
+
%>
|
9
|
+
<tr style="<%=style%>">
|
10
|
+
<%= render :partial => "/platform/forum/message", :locals => {:message => message} %>
|
11
|
+
</tr>
|
12
|
+
<% end %>
|
13
|
+
</table>
|
14
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<div class="section_title">
|
2
|
+
<%=tr("Reply to This Discussion") %>
|
3
|
+
<a name="reply_message"> </a>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<div class="section grey">
|
7
|
+
<%= form_tag({:controller => '/platform/forum', :action => :new_message, :topic_id => @topic.id, :app_id => @app.id}, {:method => :post, :id => "forum_topic_form"}) do %>
|
8
|
+
<table style="width:99%">
|
9
|
+
<tr>
|
10
|
+
<td style="width:80px; text-align:right; padding-right:10px; font-weight:bold;">
|
11
|
+
<%=tr("Your Reply:") %>
|
12
|
+
</td>
|
13
|
+
<td>
|
14
|
+
<%=text_area_tag(:message, "", :style=>"width:99%; height:70px")%>
|
15
|
+
</td>
|
16
|
+
</tr>
|
17
|
+
</table>
|
18
|
+
|
19
|
+
<div style="padding-top:20px; padding-bottom:10px;text-align:center">
|
20
|
+
<button type="submit" class="platform_btn platform_submit_btn" onClick="Platform.Effects.submit('forum_topic_form'); return false;">
|
21
|
+
<span><%=tr("Reply to This Discussion")%></span>
|
22
|
+
</button>
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
|
26
|
+
</div>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<div class="section_title">
|
2
|
+
<%=tr("Start a New Discussion Topic") %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="section grey">
|
6
|
+
<%= form_tag({:controller => '/platform/forum', :action => :new_message, :app_id => @app.id}, {:method => :post, :id => "forum_topic_form"}) do %>
|
7
|
+
<table style="width:99%">
|
8
|
+
<tr>
|
9
|
+
<td style="width:80px; text-align:right; padding-right:10px; font-weight:bold;">
|
10
|
+
<%=tr("Topic:")%>
|
11
|
+
</td>
|
12
|
+
<td>
|
13
|
+
<%=text_field_tag(:topic, "", :style=>"width:99%")%>
|
14
|
+
</td>
|
15
|
+
</tr>
|
16
|
+
<tr>
|
17
|
+
<td style="width:80px; text-align:right; padding-right:10px; padding-top:5px; font-weight:bold;">
|
18
|
+
<%=tr("Message:") %>
|
19
|
+
</td>
|
20
|
+
<td style="padding-top:5px;">
|
21
|
+
<%=text_area_tag(:message, "", :style=>"width:99%; height:80px;")%>
|
22
|
+
</td>
|
23
|
+
</tr>
|
24
|
+
</table>
|
25
|
+
|
26
|
+
<div style="padding-top:20px; padding-bottom:10px;text-align:center">
|
27
|
+
<button type="submit" class="platform_btn platform_submit_btn" onClick="Tr8n.Effects.submit('forum_topic_form'); return false;">
|
28
|
+
<span><%=tr("Start a New Discussion")%></span>
|
29
|
+
</button>
|
30
|
+
|
31
|
+
<% if include_cancel_button %>
|
32
|
+
<%=tr("or")%>
|
33
|
+
<%=link_to(tr("Cancel"), :controller => '/platform/apps', :action => :view, :id => @app.id, :sec => 'Discussions')%>
|
34
|
+
<% end %>
|
35
|
+
</div>
|
36
|
+
<% end %>
|
37
|
+
</div>
|
38
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<div class="apps_header">
|
2
|
+
<div style="float:right; padding-top:20px; font-size:12px; color: #ccc;">
|
3
|
+
<%=link_to(image_tag("platform/reply.png") + " " + tr("Reply", "Reply button for forum topics"), params.merge(:anchor => :reply_message)) %>
|
4
|
+
|
|
5
|
+
<%=link_to(image_tag("platform/plus.png") + " " + tr("Start a new discussion topic"), :controller => '/platform/apps', :action => :view, :id => @app.id, :sec => 'Discussions', :mode => :create) %>
|
6
|
+
</div>
|
7
|
+
|
8
|
+
<%=link_to(tr("Discussions"), :controller => '/platform/apps', :action => :view, :id => @app.id, :sec => 'Discussions')%>
|
9
|
+
» <%=link_to(@topic.topic, :controller => '/platform/apps', :action => :view, :id => @app.id, :sec => 'Discussions', :topic_id => @topic.id)%>
|
10
|
+
|
11
|
+
<div style="color:grey;font-size:12px;font-style:italic;padding-top:3px;padding-bottom:3px; font-weight:normal;">
|
12
|
+
<%= tr("Started by {user} on {date}", "", {:user => [@topic.user, platform_user_tag(@topic.user, :linked => true)], :date => @topic.created_at.trl}) %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<%= render :partial => "/platform/forum/messages" %>
|
18
|
+
<%= render :partial => "/platform/forum/new_message" %>
|
@@ -0,0 +1,74 @@
|
|
1
|
+
<div class="section_title" style="padding-top:0px;">
|
2
|
+
<%=tr("Discussion Topics") %>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<div class="section">
|
6
|
+
<% if @topics.any? %>
|
7
|
+
|
8
|
+
<table style="width:100%;">
|
9
|
+
<tr style="border-bottom: 1px solid #ccc;">
|
10
|
+
<td class="topic_header" style="width:25%; padding:5px;"><%=tr("Author", "Forum column header")%></td>
|
11
|
+
<td class="topic_header" style="width:40%; padding:5px;"><%=tr("Topic", "Forum column header")%></td>
|
12
|
+
<td class="topic_header" style="width:10%; padding:5px;"><%=tr("Posts", "Forum column header")%></td>
|
13
|
+
<td class="topic_header" style="width:25%; padding:5px;"><%=tr("Last Post", "Forum column header")%></td>
|
14
|
+
</tr>
|
15
|
+
<% @topics.each do |topic| %>
|
16
|
+
<%
|
17
|
+
style = (topic == @topics.last ? "" : "border-bottom:1px dotted #ccc;" )
|
18
|
+
%>
|
19
|
+
<tr style="<%=style%>">
|
20
|
+
<td class="topic_value">
|
21
|
+
<table>
|
22
|
+
<tr>
|
23
|
+
<td style="vertical-align:top;padding:5px;">
|
24
|
+
<%=platform_user_mugshot_tag(topic.user, :linked => true)%>
|
25
|
+
</td>
|
26
|
+
<td style="vertical-align:top;padding:5px;">
|
27
|
+
<%=platform_user_tag(topic.user, :linked => true)%>
|
28
|
+
<div style="color:grey;">
|
29
|
+
<%=topic.created_at.trl(:date_time) %>
|
30
|
+
</div>
|
31
|
+
<div style="font-size:10px;padding:0px;">
|
32
|
+
<% if topic.user == platform_current_user %>
|
33
|
+
<%=link_to(tr("Delete", "Link to delete forum topic"), {:controller => '/platform/forum', :action => :delete_topic, :topic_id => topic.id}, {:confirm => trl("Are you sure you want to delete this topic and all of the messages under it?")})%>
|
34
|
+
<% end %>
|
35
|
+
</div>
|
36
|
+
</td>
|
37
|
+
</tr>
|
38
|
+
</table>
|
39
|
+
</td>
|
40
|
+
<td class="topic_value" style="padding:5px;">
|
41
|
+
<%=link_to(topic.topic, :controller => '/platform/apps', :action => :view, :sec => 'Discussions', :topic_id => topic.id, :id => @app.id)%><br>
|
42
|
+
</td>
|
43
|
+
<td class="topic_value" style="padding:5px;">
|
44
|
+
<%=topic.post_count %>
|
45
|
+
</td>
|
46
|
+
<td class="topic_value" style="padding:5px;">
|
47
|
+
<% if topic.last_post %>
|
48
|
+
<div style="font-size:10px;"><%=topic.last_post.created_at.trl(:date_time) %>
|
49
|
+
<% if topic.user %>
|
50
|
+
<br><%=tr("by {user}", "Name of the publisher", :user => [topic.user, platform_user_tag(topic.user, :linked => true)])%>
|
51
|
+
<% end %>
|
52
|
+
</div>
|
53
|
+
<%
|
54
|
+
message = topic.last_post.message[0..60]
|
55
|
+
message << "..." if topic.last_post.message.length > 60
|
56
|
+
%>
|
57
|
+
<div style="font-style:italic; font-size:10px">"<%=link_to(h(message), :controller => '/platform/apps', :action => :view, :id => @app.id, :sec => 'Discussions', :topic_id =>topic.id, :last_page => true)%>"</div>
|
58
|
+
<% end %>
|
59
|
+
|
60
|
+
</td>
|
61
|
+
</tr>
|
62
|
+
<% end %>
|
63
|
+
</table>
|
64
|
+
|
65
|
+
<%= platform_paginator_tag(@topics, :subject => "forum topic") %>
|
66
|
+
|
67
|
+
<% else %>
|
68
|
+
<div style="padding:10px; text-align:center; color: #888;">
|
69
|
+
<%= tr("This application does not have any discussions. Be the first one to start a new discussion.") %>
|
70
|
+
</div>
|
71
|
+
<% end %>
|
72
|
+
</div>
|
73
|
+
|
74
|
+
<%= render :partial => "/platform/forum/new_topic", :locals => {:include_cancel_button => false} %>
|