your_platform 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +39 -11
- data/Rakefile +15 -1
- data/app/assets/images/file.png +0 -0
- data/app/assets/images/img/excel2013_file_128.png +0 -0
- data/app/assets/images/img/excel2013_file_bw_107.png +0 -0
- data/app/assets/images/img/excel2013_file_bw_semitransparent_107.png +0 -0
- data/app/assets/images/img/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/img/glyphicons-halflings.png +0 -0
- data/app/assets/images/img/gmaps_yellow_marker.png +0 -0
- data/app/assets/images/img/gmaps_yellow_marker_38.png +0 -0
- data/app/assets/images/markdown_help.png +0 -0
- data/app/assets/images/your_platform/breadcrumb-sep.png +0 -0
- data/app/assets/javascripts/app-ng.js.coffee +5 -0
- data/app/assets/javascripts/attachments.js +2 -0
- data/app/assets/javascripts/controllers-ng/bookmark_list_controller.js.coffee +30 -0
- data/app/assets/javascripts/controllers-ng/box_controller.js.coffee +37 -0
- data/app/assets/javascripts/controllers-ng/profile_angular.js.coffee +151 -0
- data/app/assets/javascripts/directives-ng/box_directive.js.coffee +91 -0
- data/app/assets/javascripts/directives-ng/star_tool_directive.js.coffee +111 -0
- data/app/assets/javascripts/filters-ng/some_filter.js.coffee +0 -0
- data/app/assets/javascripts/jquery.appear-1.1.1.js +138 -0
- data/app/assets/javascripts/make-js-more-like-ruby.js.coffee +32 -0
- data/app/assets/javascripts/mercury.js +456 -0
- data/app/assets/javascripts/models-ng/bookmark.js.coffee +28 -0
- data/app/assets/javascripts/services-ng/current_user_bookmarks.js.coffee +39 -0
- data/app/assets/javascripts/your_platform.js +27 -0
- data/app/assets/javascripts/your_platform/address_labels.js.coffee +40 -0
- data/app/assets/javascripts/your_platform/attachments.js.coffee +61 -0
- data/app/assets/javascripts/your_platform/auto-completion.js.coffee +90 -0
- data/app/assets/javascripts/your_platform/best_in_place.js.coffee +8 -0
- data/app/assets/javascripts/your_platform/best_in_place_hyperlinks.js.coffee +25 -0
- data/app/assets/javascripts/your_platform/best_in_place_tab_key.js.coffee +28 -0
- data/app/assets/javascripts/your_platform/boxes.js.coffee +11 -0
- data/app/assets/javascripts/your_platform/change_password.js.coffee +22 -0
- data/app/assets/javascripts/your_platform/close_dropdowns.js.coffee +18 -0
- data/app/assets/javascripts/your_platform/copy_to_clipboard.js.coffee +6 -0
- data/app/assets/javascripts/your_platform/datatables.coffee +112 -0
- data/app/assets/javascripts/your_platform/datepicker_settings.js.coffee +16 -0
- data/app/assets/javascripts/your_platform/edit_tools.js.coffee +19 -0
- data/app/assets/javascripts/your_platform/editable_dbl_click.js.coffee +42 -0
- data/app/assets/javascripts/your_platform/events.js.coffee +126 -0
- data/app/assets/javascripts/your_platform/fix_textarea.js.coffee +11 -0
- data/app/assets/javascripts/your_platform/galleria.js.coffee +112 -0
- data/app/assets/javascripts/your_platform/groups.js.coffee +36 -0
- data/app/assets/javascripts/your_platform/hidden.js.coffee +5 -0
- data/app/assets/javascripts/your_platform/links_to_external_sites.js.coffee +12 -0
- data/app/assets/javascripts/your_platform/maps.js.coffee +13 -0
- data/app/assets/javascripts/your_platform/may_need_review.js.coffee +10 -0
- data/app/assets/javascripts/your_platform/navable_title_rename.js.coffee +17 -0
- data/app/assets/javascripts/your_platform/officers.js.coffee +35 -0
- data/app/assets/javascripts/your_platform/popovers.js.coffee +38 -0
- data/app/assets/javascripts/your_platform/posts.js.coffee +58 -0
- data/app/assets/javascripts/your_platform/profile_fields.js.coffee +61 -0
- data/app/assets/javascripts/your_platform/search.js.coffee +26 -0
- data/app/assets/javascripts/your_platform/tooltips.js.coffee +10 -0
- data/app/assets/javascripts/your_platform/turbolinks_loading_spinner.js.coffee +83 -0
- data/app/assets/javascripts/your_platform/user_avatars.js.coffee +33 -0
- data/app/assets/javascripts/your_platform/user_group_memberships.js.coffee +11 -0
- data/app/assets/javascripts/your_platform/user_settings.js.coffee +18 -0
- data/app/assets/javascripts/your_platform/users_new.js.coffee +54 -0
- data/app/assets/stylesheets/bootstrap_layout.css.sass +3 -0
- data/app/assets/stylesheets/bootstrap_layout/attachments.css.sass +3 -0
- data/app/assets/stylesheets/bootstrap_layout/boxes.css.sass +11 -0
- data/app/assets/stylesheets/bootstrap_layout/breadcrumb.css.sass +25 -0
- data/app/assets/stylesheets/bootstrap_layout/category_indicator.css.sass +5 -0
- data/app/assets/stylesheets/bootstrap_layout/footer.css.sass +14 -0
- data/app/assets/stylesheets/bootstrap_layout/galleria.css.sass +8 -0
- data/app/assets/stylesheets/bootstrap_layout/header_bar.css.sass +11 -0
- data/app/assets/stylesheets/bootstrap_layout/headings.css.sass +10 -0
- data/app/assets/stylesheets/bootstrap_layout/logged_in_bar.css.sass +40 -0
- data/app/assets/stylesheets/bootstrap_layout/logo.css.sass +2 -0
- data/app/assets/stylesheets/bootstrap_layout/modal_fix.css.sass +8 -0
- data/app/assets/stylesheets/bootstrap_layout/profiles.css.sass +10 -0
- data/app/assets/stylesheets/bootstrap_layout/session_bar.css.sass +60 -0
- data/app/assets/stylesheets/bootstrap_layout/stars.css.sass +4 -0
- data/app/assets/stylesheets/bootstrap_layout/turbolinks_progress_bar.css.sass +3 -0
- data/app/assets/stylesheets/bootstrap_layout/vertical_menu.css.sass +15 -0
- data/app/assets/stylesheets/bootstrap_setup.css.sass +4 -0
- data/app/assets/stylesheets/your_platform.css.sass +11 -0
- data/app/assets/stylesheets/your_platform/address_labels_modal.css.sass +8 -0
- data/app/assets/stylesheets/your_platform/attachments.css.sass +75 -0
- data/app/assets/stylesheets/your_platform/authorization_info.css.sass +16 -0
- data/app/assets/stylesheets/your_platform/auto-completion.css.sass +3 -0
- data/app/assets/stylesheets/your_platform/center.css.sass +14 -0
- data/app/assets/stylesheets/your_platform/change_password.css.sass +13 -0
- data/app/assets/stylesheets/your_platform/corporate_vita.css.sass +2 -0
- data/app/assets/stylesheets/your_platform/datatables.css.sass +23 -0
- data/app/assets/stylesheets/your_platform/datepicker.css.sass +2 -0
- data/app/assets/stylesheets/your_platform/dropdowns.css.sass +8 -0
- data/app/assets/stylesheets/your_platform/events.css.sass +68 -0
- data/app/assets/stylesheets/your_platform/forms.css.sass +25 -0
- data/app/assets/stylesheets/your_platform/galleria.css.sass +12 -0
- data/app/assets/stylesheets/your_platform/groups.css.sass +8 -0
- data/app/assets/stylesheets/your_platform/groups_table.css.sass +8 -0
- data/app/assets/stylesheets/your_platform/hidden.css.sass +3 -0
- data/app/assets/stylesheets/your_platform/images.css.sass +50 -0
- data/app/assets/stylesheets/your_platform/last_activities.css.sass +17 -0
- data/app/assets/stylesheets/your_platform/latest_members.css.sass +7 -0
- data/app/assets/stylesheets/your_platform/login.css.sass +4 -0
- data/app/assets/stylesheets/your_platform/maps.css.sass +22 -0
- data/app/assets/stylesheets/your_platform/markdown_help.css.sass +5 -0
- data/app/assets/stylesheets/your_platform/may_need_review.css.sass +3 -0
- data/app/assets/stylesheets/your_platform/pages.css.sass +12 -0
- data/app/assets/stylesheets/your_platform/password_strength.css.sass +73 -0
- data/app/assets/stylesheets/your_platform/picture_attachments.css.sass +7 -0
- data/app/assets/stylesheets/your_platform/popovers.css.sass +13 -0
- data/app/assets/stylesheets/your_platform/posts.css.sass +32 -0
- data/app/assets/stylesheets/your_platform/profiles.css.sass +153 -0
- data/app/assets/stylesheets/your_platform/search_preview.css.sass +4 -0
- data/app/assets/stylesheets/your_platform/star_tool.css.sass +2 -0
- data/app/assets/stylesheets/your_platform/tooltips.css.sass +7 -0
- data/app/assets/stylesheets/your_platform/turbolinks_loading_spinner.css.sass +3 -0
- data/app/assets/stylesheets/your_platform/user_avatars.css.sass +8 -0
- data/app/assets/stylesheets/your_platform/user_group_memberships.css.sass +4 -0
- data/app/assets/stylesheets/your_platform/vertical_nav.css.sass +7 -0
- data/app/controllers/activities_controller.rb +6 -0
- data/app/controllers/application_controller.rb +236 -0
- data/app/controllers/attachments_controller.rb +97 -0
- data/app/controllers/blog_posts_controller.rb +50 -0
- data/app/controllers/bookmarks_controller.rb +33 -0
- data/app/controllers/corporations_controller.rb +22 -0
- data/app/controllers/errors_controller.rb +27 -0
- data/app/controllers/events_controller.rb +262 -0
- data/app/controllers/groups_controller.rb +257 -0
- data/app/controllers/officers_controller.rb +28 -0
- data/app/controllers/pages_controller.rb +67 -0
- data/app/controllers/posts_controller.rb +81 -0
- data/app/controllers/profile_fields_controller.rb +132 -0
- data/app/controllers/root_controller.rb +35 -0
- data/app/controllers/search_controller.rb +149 -0
- data/app/controllers/sessions_controller.rb +21 -0
- data/app/controllers/setup_controller.rb +80 -0
- data/app/controllers/statistics_controller.rb +38 -0
- data/app/controllers/status_group_memberships_controller.rb +28 -0
- data/app/controllers/terms_of_use_controller.rb +35 -0
- data/app/controllers/user_accounts_controller.rb +55 -0
- data/app/controllers/user_group_memberships_controller.rb +75 -0
- data/app/controllers/user_settings_controller.rb +57 -0
- data/app/controllers/users_controller.rb +125 -0
- data/app/controllers/workflows_controller.rb +19 -0
- data/app/helpers/application_helper.rb +25 -0
- data/app/helpers/attachments_helper.rb +2 -0
- data/app/helpers/auto_completion_helper.rb +33 -0
- data/app/helpers/avatar_helper.rb +70 -0
- data/app/helpers/bookmarks_helper.rb +22 -0
- data/app/helpers/box_helper.rb +56 -0
- data/app/helpers/breadcrumbs_helper.rb +62 -0
- data/app/helpers/corporate_vita_helper.rb +34 -0
- data/app/helpers/events_helper.rb +28 -0
- data/app/helpers/flash_helper.rb +60 -0
- data/app/helpers/footer_helper.rb +13 -0
- data/app/helpers/galleria_helper.rb +13 -0
- data/app/helpers/groups_helper.rb +66 -0
- data/app/helpers/horizontal_nav_helper.rb +11 -0
- data/app/helpers/i18n_helper.rb +10 -0
- data/app/helpers/icon_helper.rb +35 -0
- data/app/helpers/mailer_helper.rb +7 -0
- data/app/helpers/map_helper.rb +26 -0
- data/app/helpers/markdown_helper.rb +22 -0
- data/app/helpers/markup_helper.rb +25 -0
- data/app/helpers/officers_helper.rb +13 -0
- data/app/helpers/password_helper.rb +23 -0
- data/app/helpers/profile_field_helper.rb +40 -0
- data/app/helpers/profile_helper.rb +69 -0
- data/app/helpers/quick_link_helper.rb +53 -0
- data/app/helpers/special_pages_helper.rb +9 -0
- data/app/helpers/structureable_helper.rb +11 -0
- data/app/helpers/sublime_helper.rb +16 -0
- data/app/helpers/title_helper.rb +52 -0
- data/app/helpers/tool_buttons_helper.rb +74 -0
- data/app/helpers/unicode_helper.rb +9 -0
- data/app/helpers/users_helper.rb +13 -0
- data/app/helpers/vertical_nav_helper.rb +84 -0
- data/app/helpers/workflows_helper.rb +37 -0
- data/app/mailers/event_mailer.rb +13 -0
- data/app/mailers/post_mailer.rb +11 -0
- data/app/mailers/user_account_mailer.rb +17 -0
- data/app/models/ability.rb +321 -0
- data/app/models/active_record_associations_patches.rb +26 -0
- data/app/models/active_record_cache_extension.rb +152 -0
- data/app/models/active_record_find_by_extension.rb +20 -0
- data/app/models/active_record_json_url_extension.rb +51 -0
- data/app/models/active_record_metric_events_extension.rb +22 -0
- data/app/models/active_record_read_only_extension.rb +35 -0
- data/app/models/active_record_update_attributes_bip_extension.rb +24 -0
- data/app/models/address_label.rb +50 -0
- data/app/models/app_version.rb +49 -0
- data/app/models/array.rb +15 -0
- data/app/models/attachment.rb +76 -0
- data/app/models/bashpass_password.rb +32 -0
- data/app/models/blog_post.rb +2 -0
- data/app/models/bookmark.rb +67 -0
- data/app/models/cache_additions.rb +15 -0
- data/app/models/cache_store_extension.rb +78 -0
- data/app/models/concerns/user_avatar.rb +16 -0
- data/app/models/concerns/user_corporations.rb +44 -0
- data/app/models/concerns/user_date_of_birth.rb +74 -0
- data/app/models/concerns/user_profile.rb +102 -0
- data/app/models/corporation.rb +80 -0
- data/app/models/dag_link.rb +29 -0
- data/app/models/event.rb +235 -0
- data/app/models/flag.rb +18 -0
- data/app/models/flagable.rb +62 -0
- data/app/models/geo_location.rb +92 -0
- data/app/models/group.rb +224 -0
- data/app/models/group_mixins/corporations.rb +141 -0
- data/app/models/group_mixins/developers.rb +41 -0
- data/app/models/group_mixins/everyone.rb +72 -0
- data/app/models/group_mixins/guests.rb +61 -0
- data/app/models/group_mixins/hidden_users.rb +43 -0
- data/app/models/group_mixins/import.rb +321 -0
- data/app/models/group_mixins/memberships.rb +207 -0
- data/app/models/group_mixins/officers.rb +47 -0
- data/app/models/group_mixins/roles.rb +41 -0
- data/app/models/horizontal_nav.rb +32 -0
- data/app/models/last_seen_activity.rb +10 -0
- data/app/models/list_export.rb +359 -0
- data/app/models/may_need_review.rb +54 -0
- data/app/models/metric_logger.rb +83 -0
- data/app/models/nav_node.rb +169 -0
- data/app/models/navable.rb +46 -0
- data/app/models/object_to_b_extension.rb +12 -0
- data/app/models/page.rb +212 -0
- data/app/models/password.rb +28 -0
- data/app/models/post.rb +199 -0
- data/app/models/profile.rb +36 -0
- data/app/models/profile_field.rb +196 -0
- data/app/models/profile_field_mixins/has_child_profile_fields.rb +114 -0
- data/app/models/profile_field_types/about.rb +9 -0
- data/app/models/profile_field_types/academic_degree.rb +10 -0
- data/app/models/profile_field_types/address.rb +88 -0
- data/app/models/profile_field_types/bank_account.rb +12 -0
- data/app/models/profile_field_types/competence.rb +7 -0
- data/app/models/profile_field_types/custom.rb +12 -0
- data/app/models/profile_field_types/date.rb +14 -0
- data/app/models/profile_field_types/description.rb +15 -0
- data/app/models/profile_field_types/email.rb +20 -0
- data/app/models/profile_field_types/employment.rb +24 -0
- data/app/models/profile_field_types/general.rb +9 -0
- data/app/models/profile_field_types/homepage.rb +19 -0
- data/app/models/profile_field_types/name_surrounding.rb +11 -0
- data/app/models/profile_field_types/organization.rb +24 -0
- data/app/models/profile_field_types/phone.rb +37 -0
- data/app/models/profile_field_types/professional_category.rb +8 -0
- data/app/models/profile_field_types/study.rb +18 -0
- data/app/models/profile_section.rb +49 -0
- data/app/models/profileable.rb +58 -0
- data/app/models/profileable_mixins/address.rb +118 -0
- data/app/models/relationship.rb +78 -0
- data/app/models/role.rb +164 -0
- data/app/models/setting.rb +9 -0
- data/app/models/status_group.rb +28 -0
- data/app/models/status_group_membership.rb +189 -0
- data/app/models/status_group_membership_info.rb +54 -0
- data/app/models/structureable.rb +164 -0
- data/app/models/structureable_mixins/has_special_groups.rb +127 -0
- data/app/models/structureable_mixins/roles.rb +275 -0
- data/app/models/user.rb +878 -0
- data/app/models/user_account.rb +162 -0
- data/app/models/user_alias.rb +112 -0
- data/app/models/user_group_membership.rb +300 -0
- data/app/models/user_group_membership_mixins/validity_range.rb +206 -0
- data/app/models/user_group_membership_mixins/validity_range_for_indirect_memberships.rb +160 -0
- data/app/models/user_mixins/identification.rb +36 -0
- data/app/models/user_mixins/memberships.rb +75 -0
- data/app/models/workflow.rb +40 -0
- data/app/models/workflow_kit/add_to_group_brick.rb +21 -0
- data/app/models/workflow_kit/destroy_account_and_end_memberships_if_needed_brick.rb +19 -0
- data/app/models/workflow_kit/last_membership_needs_review_brick.rb +19 -0
- data/app/models/workflow_kit/mark_as_deceased_brick.rb +17 -0
- data/app/models/workflow_kit/remove_from_group_brick.rb +27 -0
- data/app/models/workflow_kit/test_brick.rb +13 -0
- data/app/pdfs/address_labels_pdf.rb +157 -0
- data/app/presenters/base_presenter.rb +52 -0
- data/app/presenters/horizontal_nav_presenter.rb +106 -0
- data/app/uploaders/attachment_uploader.rb +148 -0
- data/app/views/activities/index.html.haml +25 -0
- data/app/views/attachments/_attachment.html.haml +20 -0
- data/app/views/attachments/_description.html.haml +11 -0
- data/app/views/attachments/_documents.html.haml +17 -0
- data/app/views/attachments/_drop_field.html.haml +46 -0
- data/app/views/attachments/_picture.html.haml +2 -0
- data/app/views/attachments/_pictures.html.haml +10 -0
- data/app/views/attachments/_video.html.haml +8 -0
- data/app/views/attachments/create.js.erb +1 -0
- data/app/views/attachments/destroy.js.erb +1 -0
- data/app/views/blog_posts/create.js.erb +17 -0
- data/app/views/bookmarks/_list.html.haml +7 -0
- data/app/views/bookmarks/update.js.erb +4 -0
- data/app/views/devise/mailer/reset_password_instructions.html.haml +8 -0
- data/app/views/devise/passwords/edit.html.haml +1 -0
- data/app/views/devise/passwords/new.html.haml +12 -0
- data/app/views/devise/registrations/edit.html.haml +1 -0
- data/app/views/devise/sessions/new.html.haml +14 -0
- data/app/views/devise/shared/_links.haml +26 -0
- data/app/views/errors/show.html.haml +5 -0
- data/app/views/errors/unauthorized.html.haml +7 -0
- data/app/views/event_mailer/invitation_email.html.erb +63 -0
- data/app/views/events/_event_details.html.haml +54 -0
- data/app/views/events/_events_lis.html.haml +29 -0
- data/app/views/events/_invitation_text.html.erb +8 -0
- data/app/views/events/_pictures.html.haml +5 -0
- data/app/views/events/_public_index.html.haml +16 -0
- data/app/views/events/index.html.haml +24 -0
- data/app/views/events/show.html.haml +50 -0
- data/app/views/groups/_address_labels_modal.html.haml +27 -0
- data/app/views/groups/_export_button.html.haml +66 -0
- data/app/views/groups/_group_list.html.haml +25 -0
- data/app/views/groups/_member_avatars.html.haml +4 -0
- data/app/views/groups/_member_list.html.haml +15 -0
- data/app/views/groups/index.html.erb +11 -0
- data/app/views/groups/index_mine.html.haml +7 -0
- data/app/views/groups/show.html.haml +79 -0
- data/app/views/last_seen_activities/_index.html.haml +19 -0
- data/app/views/layouts/_add_structureable_additions.html.haml +15 -0
- data/app/views/layouts/_box.html.haml +16 -0
- data/app/views/layouts/_help_button.html.haml +1 -0
- data/app/views/layouts/_role_preview_switcher.html.haml +20 -0
- data/app/views/layouts/_session_bar_avatar.html.haml +1 -0
- data/app/views/layouts/_vertical_nav.html.haml +5 -0
- data/app/views/layouts/bootstrap.html.haml +146 -0
- data/app/views/layouts/mercury.html.erb +23 -0
- data/app/views/officers/_history_notice.html.haml +4 -0
- data/app/views/officers/_officers_box.html.haml +33 -0
- data/app/views/officers/_officers_group_entry.html.haml +45 -0
- data/app/views/pages/_attachments.html.haml +21 -0
- data/app/views/pages/_page.html.haml +28 -0
- data/app/views/pages/_pictures.html.haml +2 -0
- data/app/views/pages/_videos.html.erb +8 -0
- data/app/views/pages/show.html.haml +39 -0
- data/app/views/post_mailer/post_email.html.erb +17 -0
- data/app/views/posts/_new_post_template_text.html.haml +6 -0
- data/app/views/posts/_post.html.haml +13 -0
- data/app/views/posts/_post_quote.html.haml +18 -0
- data/app/views/posts/_posts.html.haml +6 -0
- data/app/views/posts/index.html.haml +9 -0
- data/app/views/posts/new.html.haml +42 -0
- data/app/views/posts/show.html.haml +8 -0
- data/app/views/profile_fields/_postal_address_flag_switch.html.haml +21 -0
- data/app/views/profile_fields/_profile_field.html.haml +41 -0
- data/app/views/profile_fields/create.js.erb +26 -0
- data/app/views/profile_fields/destroy.js.erb +3 -0
- data/app/views/profiles/_add_profile_field_button.html.haml +15 -0
- data/app/views/profiles/_profile_section_ul.html.haml +8 -0
- data/app/views/profiles/_section.html.haml +28 -0
- data/app/views/profiles/_send_group_message_button.html.haml +4 -0
- data/app/views/root/_latest_members_box.html.haml +19 -0
- data/app/views/root/_start_page_elements.html.haml +0 -0
- data/app/views/root/_what_is_new.html.haml +21 -0
- data/app/views/search/_preview_blog_post.html.haml +1 -0
- data/app/views/search/_preview_corporation.html.haml +5 -0
- data/app/views/search/_preview_group.html.haml +4 -0
- data/app/views/search/_preview_page.html.haml +11 -0
- data/app/views/search/_preview_user.html.haml +14 -0
- data/app/views/search/index.html.haml +42 -0
- data/app/views/setup/index.html.haml +56 -0
- data/app/views/shared/_add_structureable.html.haml +22 -0
- data/app/views/shared/_authorization_info.html.haml +22 -0
- data/app/views/shared/_flags.html.haml +5 -0
- data/app/views/shared/_markdown_help.html.haml +4 -0
- data/app/views/shared/_search_box.html.haml +2 -0
- data/app/views/shared/_upcoming_events.html.haml +33 -0
- data/app/views/statistics/index.html.haml +16 -0
- data/app/views/statistics/show.html.haml +13 -0
- data/app/views/terms_of_use/_checkbox.html.haml +1 -0
- data/app/views/terms_of_use/_terms.html.haml +1 -0
- data/app/views/terms_of_use/index.html.haml +19 -0
- data/app/views/user_account_mailer/welcome_email.html.erb +32 -0
- data/app/views/user_accounts/_change_password.html.haml +149 -0
- data/app/views/user_accounts/_user_account.html.haml +39 -0
- data/app/views/user_group_memberships/_list_item.html.haml +9 -0
- data/app/views/user_group_memberships/_memberships_table.html.haml +56 -0
- data/app/views/user_group_memberships/_new.html.haml +18 -0
- data/app/views/user_group_memberships/create.js.erb +9 -0
- data/app/views/user_group_memberships/index.html.haml +5 -0
- data/app/views/user_settings/show.html.haml +36 -0
- data/app/views/users/_avatar.html.haml +16 -0
- data/app/views/users/_communication_box.html.haml +8 -0
- data/app/views/users/_corporate_vita.html.haml +23 -0
- data/app/views/users/_dead_badge.html.haml +3 -0
- data/app/views/users/_deceased_modal.html.haml +24 -0
- data/app/views/users/_hidden_badge.html.haml +4 -0
- data/app/views/users/_hidden_flag_switch.html.haml +20 -0
- data/app/views/users/_special_general_info_fields.html.haml +10 -0
- data/app/views/users/_user_corporation_attribute.html.haml +6 -0
- data/app/views/users/_user_name_attribute.html.haml +4 -0
- data/app/views/users/_user_title.html.haml +5 -0
- data/app/views/users/_workflow_triggers.html.haml +23 -0
- data/app/views/users/new.html.haml +55 -0
- data/app/views/users/show.html.haml +79 -0
- data/config/environment.rb +5 -0
- data/config/initializers/active_record_cache_extension.rb +1 -0
- data/config/initializers/active_record_find_by_extension.rb +1 -0
- data/config/initializers/active_record_flagable_extension.rb +2 -0
- data/config/initializers/active_record_json_url_extension.rb +1 -0
- data/config/initializers/active_record_may_need_review_extension.rb +2 -0
- data/config/initializers/active_record_metric_events_extension.rb +1 -0
- data/config/initializers/active_record_navable_extension.rb +6 -0
- data/config/initializers/active_record_profileable_extension.rb +4 -0
- data/config/initializers/active_record_read_only_extension.rb +1 -0
- data/config/initializers/active_record_structureable_extension.rb +3 -0
- data/config/initializers/active_record_update_attributes_bip_extension.rb +1 -0
- data/config/initializers/array_extension.rb +1 -0
- data/config/initializers/best_in_place_display_definitions.rb +31 -0
- data/config/initializers/cache_store_extension.rb +1 -0
- data/config/initializers/devise.rb +240 -0
- data/config/initializers/fnordmetric.rb +14 -0
- data/config/initializers/formtastic.rb +76 -0
- data/config/initializers/group_type_column_patches.rb +11 -0
- data/config/initializers/mime_types.rb +1 -0
- data/config/initializers/mini_profiler.rb +32 -0
- data/config/initializers/object_to_b_extension.rb +1 -0
- data/config/initializers/refile.rb +22 -0
- data/config/initializers/sidekiq.rb +12 -0
- data/config/locales/attachments/de.yml +33 -0
- data/config/locales/bookmarks/de.yml +3 -0
- data/config/locales/bookmarks/en.yml +3 -0
- data/config/locales/common_expressions/de.yml +5 -0
- data/config/locales/common_expressions/en.yml +5 -0
- data/config/locales/companies/de.yml +4 -0
- data/config/locales/companies/en.yml +4 -0
- data/config/locales/de.yml +30 -0
- data/config/locales/devise/de.yml +60 -0
- data/config/locales/devise/en.yml +62 -0
- data/config/locales/en.yml +25 -0
- data/config/locales/events/de.yml +34 -0
- data/config/locales/events/en.yml +34 -0
- data/config/locales/forms/de.yml +3 -0
- data/config/locales/groups/de.yml +56 -0
- data/config/locales/groups/en.yml +47 -0
- data/config/locales/officers/de.yml +10 -0
- data/config/locales/pages/de.yml +15 -0
- data/config/locales/pages/en.yml +14 -0
- data/config/locales/pagination/de.yml +6 -0
- data/config/locales/pagination/en.yml +5 -0
- data/config/locales/password_strength/de.yml +9 -0
- data/config/locales/password_strength/en.yml +9 -0
- data/config/locales/posts/de.yml +9 -0
- data/config/locales/profile_fields/de.yml +78 -0
- data/config/locales/profile_fields/en.yml +22 -0
- data/config/locales/profiles/de.yml +47 -0
- data/config/locales/profiles/en.yml +44 -0
- data/config/locales/roles/de.yml +9 -0
- data/config/locales/root/de.yml +3 -0
- data/config/locales/root/en.yml +3 -0
- data/config/locales/search/de.yml +11 -0
- data/config/locales/search/en.yml +11 -0
- data/config/locales/sessions/de.yml +37 -0
- data/config/locales/sessions/en.yml +37 -0
- data/config/locales/setup/de.yml +26 -0
- data/config/locales/setup/en.yml +26 -0
- data/config/locales/statistics/de.yml +6 -0
- data/config/locales/terms_of_use/de.yml +6 -0
- data/config/locales/tools/de.yml +9 -0
- data/config/locales/tools/en.yml +9 -0
- data/config/locales/user_accounts/de.yml +16 -0
- data/config/locales/user_accounts/en.yml +13 -0
- data/config/locales/user_settings/de.yml +9 -0
- data/config/locales/users/de.yml +82 -0
- data/config/locales/users/en.yml +51 -0
- data/config/locales/workflows/de.yml +4 -0
- data/config/locales/workflows/en.yml +4 -0
- data/config/routes.rb +104 -0
- data/db/migrate/20120403002734_create_users.rb +12 -0
- data/db/migrate/20120403011601_create_profile_fields.rb +11 -0
- data/db/migrate/20120403161549_remove_user_email_column.rb +5 -0
- data/db/migrate/20120405222050_encrypt_password.rb +8 -0
- data/db/migrate/20120425161138_create_dag_links.rb +14 -0
- data/db/migrate/20120425162644_create_pages.rb +10 -0
- data/db/migrate/20120426023322_create_groups.rb +9 -0
- data/db/migrate/20120426090436_create_nav_nodes.rb +18 -0
- data/db/migrate/20120427021934_create_user_accounts.rb +12 -0
- data/db/migrate/20120427044338_add_foreign_key_to_user_accounts.rb +7 -0
- data/db/migrate/20120427150156_add_group_token.rb +8 -0
- data/db/migrate/20120507165551_make_profile_fields_polymorphic.rb +11 -0
- data/db/migrate/20120508130729_add_profile_field_acts_as_tree.rb +9 -0
- data/db/migrate/20120508152233_change_profile_field_value_to_text.rb +9 -0
- data/db/migrate/20120508201550_add_group_internal_token.rb +11 -0
- data/db/migrate/20120511090234_create_workflows.rb +9 -0
- data/db/migrate/20120701115059_add_password_digest_to_user_accounts.rb +5 -0
- data/db/migrate/20120710193308_remove_salt_from_user_accounts.rb +5 -0
- data/db/migrate/20120713102445_add_deleted_at_to_dag_links.rb +5 -0
- data/db/migrate/20120722005022_create_workflow_kit_workflows.workflow_kit.rb +11 -0
- data/db/migrate/20120722005023_create_workflow_kit_steps.workflow_kit.rb +12 -0
- data/db/migrate/20120722005024_create_workflow_kit_parameters.workflow_kit.rb +12 -0
- data/db/migrate/20120723165226_add_female_to_users.rb +5 -0
- data/db/migrate/20120811140509_create_flags.rb +11 -0
- data/db/migrate/20120814100529_create_attachments.rb +13 -0
- data/db/migrate/20120815205610_add_content_type_and_file_size_to_attachments.rb +6 -0
- data/db/migrate/20130118220014_add_relationships_table_without_dag.rb +10 -0
- data/db/migrate/20130207214331_create_events.rb +12 -0
- data/db/migrate/20130208215253_create_status_group_membership_infos.rb +11 -0
- data/db/migrate/20130220184943_create_stars.rb +11 -0
- data/db/migrate/20130309193623_add_devise_to_user_accounts.rb +72 -0
- data/db/migrate/20130310003840_rename_stars_to_bookmarks.rb +9 -0
- data/db/migrate/20130310004622_fix_column_names_for_bookmarks.rb +6 -0
- data/db/migrate/20130313211414_create_geo_infos.rb +13 -0
- data/db/migrate/20130313234131_create_geo_locations.rb +16 -0
- data/db/migrate/20130314011638_drop_geo_infos.rb +5 -0
- data/db/migrate/20130315072759_add_invalid_to_geo_location.rb +5 -0
- data/db/migrate/20130315073149_exchange_invalid_for_queried_at_in_geo_location.rb +8 -0
- data/db/migrate/20130320003051_add_redirect_to_to_page.rb +5 -0
- data/db/migrate/20130329231657_create_posts.rb +15 -0
- data/db/migrate/20130404223735_add_entire_message_to_posts.rb +5 -0
- data/db/migrate/20130409192959_add_author_to_page.rb +5 -0
- data/db/migrate/20130908011215_add_type_to_pages.rb +5 -0
- data/db/migrate/20131115114715_validity_range_for_dag_links.rb +16 -0
- data/db/migrate/20140611170430_create_activities.rb +23 -0
- data/db/migrate/20140808223512_create_last_seen_activities.rb +12 -0
- data/db/migrate/20141008101744_add_location_to_events.rb +5 -0
- data/db/migrate/20141010130344_add_publish_on_website_to_events.rb +6 -0
- data/db/migrate/20141010134227_add_auth_token_to_user_accounts.rb +5 -0
- data/db/migrate/20141018143323_add_accepted_terms_to_users.rb +6 -0
- data/db/migrate/20141018221659_add_author_to_attachments.rb +5 -0
- data/db/migrate/20141102223954_add_body_to_groups.rb +5 -0
- data/db/migrate/20141110193830_create_settings.rb +17 -0
- data/db/migrate/20141202140522_add_indices.rb +6 -0
- data/db/migrate/20141209161946_add_keys.rb +20 -0
- data/db/migrate/20150127013809_add_incognito_to_users.rb +5 -0
- data/db/migrate/20150129194501_add_indices_for_polymorphic_references.rb +13 -0
- data/db/migrate/20150304192448_add_type_to_groups.rb +5 -0
- data/db/migrate/20150313221004_add_avatar_id_to_users.rb +5 -0
- data/lib/best_in_place/controller_extensions.rb +25 -0
- data/lib/best_in_place/helper.rb +127 -0
- data/lib/tasks/db_bootstrap.rake +37 -0
- data/lib/tasks/your_platform_tasks.rake +4 -0
- data/lib/templates/erb/scaffold/_form.html.erb +11 -0
- data/lib/your_platform.rb +6 -2
- data/lib/your_platform/engine.rb +127 -0
- data/lib/your_platform/version.rb +1 -1
- data/spec/factories/attachment.rb +12 -0
- data/spec/factories/blog_post.rb +10 -0
- data/spec/factories/company.rb +7 -0
- data/spec/factories/corporation.rb +20 -0
- data/spec/factories/event.rb +13 -0
- data/spec/factories/group.rb +36 -0
- data/spec/factories/html_email.eml +1059 -0
- data/spec/factories/mail_message.rb +30 -0
- data/spec/factories/page.rb +10 -0
- data/spec/factories/relationship.rb +13 -0
- data/spec/factories/status_group_membership.rb +21 -0
- data/spec/factories/user.rb +97 -0
- data/spec/factories/workflow.rb +44 -0
- data/spec/features/blog_post_spec.rb +46 -0
- data/spec/features/corporate_vita_events_spec.rb +114 -0
- data/spec/features/corporate_vita_spec.rb +258 -0
- data/spec/features/edit_mode_after_clicking_a_link_spec.rb +20 -0
- data/spec/features/events_spec.rb +356 -0
- data/spec/features/group_export_spec.rb +19 -0
- data/spec/features/group_post_spec.rb +89 -0
- data/spec/features/groups_of_groups_page_spec.rb +67 -0
- data/spec/features/groups_page_spec.rb +66 -0
- data/spec/features/groups_table_spec.rb +32 -0
- data/spec/features/help_page_spec.rb +22 -0
- data/spec/features/intranet_root_page_spec.rb +18 -0
- data/spec/features/locales_spec.rb +36 -0
- data/spec/features/maps_spec.rb +53 -0
- data/spec/features/mini_profiler_spec.rb +37 -0
- data/spec/features/officers_spec.rb +61 -0
- data/spec/features/page_redirects_spec.rb +23 -0
- data/spec/features/page_spec.rb +20 -0
- data/spec/features/postal_address_flag_spec.rb +46 -0
- data/spec/features/relationships_on_user_page_spec.rb +78 -0
- data/spec/features/review_membership_spec.rb +44 -0
- data/spec/features/search_field_spec.rb +121 -0
- data/spec/features/setup_spec.rb +63 -0
- data/spec/features/user_change_date_of_birth_spec.rb +26 -0
- data/spec/features/vertical_nav_spec.rb +27 -0
- data/spec/features/what_is_new_box_spec.rb +33 -0
- data/spec/helpers/attachments_helper_spec.rb +15 -0
- data/spec/models/ability_spec.rb +93 -0
- data/spec/models/active_record_cache_extension_spec.rb +177 -0
- data/spec/models/active_record_find_by_extension_spec.rb +26 -0
- data/spec/models/active_record_json_url_extension_spec.rb +79 -0
- data/spec/models/address_label_spec.rb +144 -0
- data/spec/models/app_version_spec.rb +38 -0
- data/spec/models/attachment_spec.rb +5 -0
- data/spec/models/bookmark_spec.rb +70 -0
- data/spec/models/concerns/user_corporations_spec.rb +71 -0
- data/spec/models/corporation_spec.rb +128 -0
- data/spec/models/dag_link_spec.rb +48 -0
- data/spec/models/event_spec.rb +267 -0
- data/spec/models/flag_spec.rb +20 -0
- data/spec/models/flagable_spec.rb +55 -0
- data/spec/models/geo_location_spec.rb +126 -0
- data/spec/models/group_mixins/corporations_spec.rb +95 -0
- data/spec/models/group_mixins/everyone_spec.rb +64 -0
- data/spec/models/group_mixins/guests_spec.rb +75 -0
- data/spec/models/group_mixins/hidden_users_spec.rb +21 -0
- data/spec/models/group_mixins/import_spec.rb +93 -0
- data/spec/models/group_mixins/memberships_spec.rb +303 -0
- data/spec/models/group_mixins/officers_spec.rb +63 -0
- data/spec/models/group_mixins/roles_spec.rb +46 -0
- data/spec/models/group_spec.rb +341 -0
- data/spec/models/list_export_spec.rb +155 -0
- data/spec/models/may_need_review_spec.rb +114 -0
- data/spec/models/nav_node_spec.rb +277 -0
- data/spec/models/navable_spec.rb +54 -0
- data/spec/models/page_spec.rb +185 -0
- data/spec/models/post_spec.rb +271 -0
- data/spec/models/profile_field_mixins/has_child_profile_fields_spec.rb +73 -0
- data/spec/models/profile_field_spec.rb +482 -0
- data/spec/models/profile_section_spec.rb +89 -0
- data/spec/models/profile_spec.rb +74 -0
- data/spec/models/profileable_mixins/adress_spec.rb +93 -0
- data/spec/models/profileable_spec.rb +152 -0
- data/spec/models/relationship_spec.rb +113 -0
- data/spec/models/status_group_membership_spec.rb +350 -0
- data/spec/models/status_group_spec.rb +103 -0
- data/spec/models/structureable_mixins/has_special_groups_spec.rb +479 -0
- data/spec/models/structureable_mixins/roles_spec.rb +517 -0
- data/spec/models/structureable_spec.rb +128 -0
- data/spec/models/user_account_spec.rb +142 -0
- data/spec/models/user_alias_spec.rb +57 -0
- data/spec/models/user_group_membership_mixins/validity_range_for_indirect_memberships_spec.rb +291 -0
- data/spec/models/user_group_membership_mixins/validity_range_spec.rb +293 -0
- data/spec/models/user_group_membership_spec.rb +428 -0
- data/spec/models/user_mixins/identification_spec.rb +27 -0
- data/spec/models/user_mixins/memberships_spec.rb +138 -0
- data/spec/models/user_spec.rb +1794 -0
- data/spec/old_yp_spec_helper.rb +46 -0
- data/spec/spec_helper.rb +350 -0
- data/spec/support/auto_complete.rb +22 -0
- data/spec/support/capybara/flash_helpers.rb +37 -0
- data/spec/support/capybara/profile_steps.rb +73 -0
- data/spec/support/capybara/session_steps.rb +53 -0
- data/spec/support/capybara/user_account_helpers.rb +15 -0
- data/spec/support/debug.rb +8 -0
- data/spec/support/devise-controller_macros.rb +15 -0
- data/spec/support/geocoder/stubs.rb +60 -0
- data/spec/support/press_enter.rb +15 -0
- data/spec/support/time_travel.rb +9 -0
- data/spec/support/uploads/image-upload.png +0 -0
- data/spec/support/uploads/pdf-upload.pdf +0 -0
- data/spec/support/wait_for_ajax.rb +39 -0
- data/spec/support/wait_for_cache.rb +7 -0
- data/spec/uploaders/attachment_uploader_spec.rb +47 -0
- data/vendor/assets/images/flags.png +0 -0
- data/vendor/assets/images/galleria/classic-loader.gif +0 -0
- data/vendor/assets/images/galleria/classic-map.png +0 -0
- data/vendor/assets/javascripts/best_in_place_datetime.js.coffee +45 -0
- data/vendor/assets/javascripts/galleria-classic.js +100 -0
- data/vendor/assets/javascripts/galleria.js +6919 -0
- data/vendor/assets/javascripts/gmaps4rails.js +2 -0
- data/vendor/assets/javascripts/gmaps4rails/all.js +1 -0
- data/vendor/assets/javascripts/gmaps4rails/base.coffee +1 -0
- data/vendor/assets/javascripts/gmaps4rails/base/common.coffee +43 -0
- data/vendor/assets/javascripts/gmaps4rails/base/configuration.coffee +7 -0
- data/vendor/assets/javascripts/gmaps4rails/base/gmaps.coffee +13 -0
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/basic_interface.coffee +15 -0
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/controller_interface.coffee +15 -0
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/map_interface.coffee +27 -0
- data/vendor/assets/javascripts/gmaps4rails/base/interfaces/marker_interface.coffee +15 -0
- data/vendor/assets/javascripts/gmaps4rails/base/main.coffee +124 -0
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/circle_controller.coffee +29 -0
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/kml_controller.coffee +5 -0
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/marker_controller.coffee +76 -0
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/polygon_controller.coffee +29 -0
- data/vendor/assets/javascripts/gmaps4rails/base/main_controller_extensions/polyline_controller.coffee +29 -0
- data/vendor/assets/javascripts/gmaps4rails/base/objects/circle.coffee +12 -0
- data/vendor/assets/javascripts/gmaps4rails/base/objects/kml.coffee +8 -0
- data/vendor/assets/javascripts/gmaps4rails/base/objects/map.coffee +62 -0
- data/vendor/assets/javascripts/gmaps4rails/base/objects/marker.coffee +24 -0
- data/vendor/assets/javascripts/gmaps4rails/base/objects/polygon.coffee +11 -0
- data/vendor/assets/javascripts/gmaps4rails/base/objects/polyline.coffee +11 -0
- data/vendor/assets/javascripts/gmaps4rails/bing.coffee +1 -0
- data/vendor/assets/javascripts/gmaps4rails/bing/main.coffee +29 -0
- data/vendor/assets/javascripts/gmaps4rails/bing/objects/map.coffee +63 -0
- data/vendor/assets/javascripts/gmaps4rails/bing/objects/marker.coffee +78 -0
- data/vendor/assets/javascripts/gmaps4rails/bing/shared.coffee +20 -0
- data/vendor/assets/javascripts/gmaps4rails/google.coffee +1 -0
- data/vendor/assets/javascripts/gmaps4rails/google/main.coffee +47 -0
- data/vendor/assets/javascripts/gmaps4rails/google/objects/circle.coffee +38 -0
- data/vendor/assets/javascripts/gmaps4rails/google/objects/kml.coffee +16 -0
- data/vendor/assets/javascripts/gmaps4rails/google/objects/map.coffee +71 -0
- data/vendor/assets/javascripts/gmaps4rails/google/objects/marker.coffee +114 -0
- data/vendor/assets/javascripts/gmaps4rails/google/objects/polygon.coffee +38 -0
- data/vendor/assets/javascripts/gmaps4rails/google/objects/polyline.coffee +49 -0
- data/vendor/assets/javascripts/gmaps4rails/google/shared.coffee +27 -0
- data/vendor/assets/javascripts/gmaps4rails/openlayers.coffee +1 -0
- data/vendor/assets/javascripts/gmaps4rails/openlayers/main.coffee +138 -0
- data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/map.coffee +49 -0
- data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/marker.coffee +68 -0
- data/vendor/assets/javascripts/gmaps4rails/openlayers/objects/polyline.coffee +39 -0
- data/vendor/assets/javascripts/gmaps4rails/openlayers/shared.coffee +19 -0
- data/vendor/assets/javascripts/jquery-ui-timepicker-addon.js +2223 -0
- data/vendor/assets/javascripts/jquery-ui-timepicker-de.js +26 -0
- data/vendor/assets/javascripts/jquery.ui.datepicker-de.js +23 -0
- data/vendor/assets/javascripts/password_strength.js +149 -0
- data/vendor/assets/javascripts/zxcvbn.js +43 -0
- data/vendor/assets/stylesheets/flags.css.scss +259 -0
- data/vendor/assets/stylesheets/galleria-classic.css.scss +239 -0
- data/vendor/assets/stylesheets/gmaps4rails.css +24 -0
- data/vendor/assets/stylesheets/mercury.css +24 -0
- data/vendor/scripts/bashpass/README.md +29 -0
- data/vendor/scripts/bashpass/bashpass +124 -0
- data/vendor/scripts/bashpass/bashpass-APACHE-LICENSE +201 -0
- data/vendor/scripts/bashpass/german.dic +40794 -0
- metadata +1540 -16
- data/.gitignore +0 -17
- data/Gemfile +0 -4
- data/LICENSE.txt +0 -4
- data/your_platform.gemspec +0 -19
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
|
2
|
+
ENV["RAILS_ENV"] ||= 'test'
|
|
3
|
+
|
|
4
|
+
#require File.expand_path("../../config/environment", __FILE__)
|
|
5
|
+
#require File.expand_path("../../test_app/config/environment", __FILE__) # TODO: use this when the test_app is ready
|
|
6
|
+
require File.expand_path("../../../../../config/environment", __FILE__) # this refers to the wingolfsplattform # TODO: remove this
|
|
7
|
+
|
|
8
|
+
require 'rails/all'
|
|
9
|
+
require 'your_platform'
|
|
10
|
+
require 'rspec/rails'
|
|
11
|
+
require 'rspec/autorun'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
|
15
|
+
# in spec/support/ and its subdirectories.
|
|
16
|
+
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
|
|
17
|
+
Dir[Rails.root.join("spec/factories/*.rb")].each {|f| require f}
|
|
18
|
+
|
|
19
|
+
RSpec.configure do |config|
|
|
20
|
+
# ## Mock Framework
|
|
21
|
+
#
|
|
22
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
|
23
|
+
#
|
|
24
|
+
# config.mock_with :mocha
|
|
25
|
+
# config.mock_with :flexmock
|
|
26
|
+
# config.mock_with :rr
|
|
27
|
+
|
|
28
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
|
29
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
|
30
|
+
|
|
31
|
+
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
|
32
|
+
# examples within a transaction, remove the following line or assign false
|
|
33
|
+
# instead of true.
|
|
34
|
+
config.use_transactional_fixtures = true
|
|
35
|
+
|
|
36
|
+
# If true, the base class of anonymous controllers will be inferred
|
|
37
|
+
# automatically. This will be the default behavior in future versions of
|
|
38
|
+
# rspec-rails.
|
|
39
|
+
config.infer_base_class_for_anonymous_controllers = false
|
|
40
|
+
|
|
41
|
+
# FactoryGirl syntax helper
|
|
42
|
+
config.include FactoryGirl::Syntax::Methods
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
#
|
|
2
|
+
# This file contains the configuration of our test suite.
|
|
3
|
+
# We are using the following tools:
|
|
4
|
+
#
|
|
5
|
+
# RSpec Defining test-driven or behavior-driven specifications of
|
|
6
|
+
# software components.
|
|
7
|
+
# http://rspec.info/
|
|
8
|
+
#
|
|
9
|
+
# rspec-rails Integration of RSpec into Rails, providing generators, et cetera.
|
|
10
|
+
# https://github.com/rspec/rspec-rails
|
|
11
|
+
#
|
|
12
|
+
# Guard Detecting changed files and running corresponding tests in the
|
|
13
|
+
# background during development.
|
|
14
|
+
# https://github.com/guard/guard
|
|
15
|
+
#
|
|
16
|
+
# Spork Keeping some less frequently changing components in memory
|
|
17
|
+
# in order to increase test performance, i.e. minimize the time
|
|
18
|
+
# Guard needs to restart the tests.
|
|
19
|
+
# https://github.com/sporkrb/spork
|
|
20
|
+
#
|
|
21
|
+
# Capybara Simulating user interaction in order to write high level
|
|
22
|
+
# integration tests.
|
|
23
|
+
# https://github.com/jnicklas/capybara
|
|
24
|
+
#
|
|
25
|
+
# PhantomJS Simulated browser for running integration tests headless,
|
|
26
|
+
# including the execution of JavaScript and AJAX requests.
|
|
27
|
+
# http://phantomjs.org/
|
|
28
|
+
#
|
|
29
|
+
# poltergeist Driver to use PhantomJS with Capybara.
|
|
30
|
+
# https://github.com/jonleighton/poltergeist
|
|
31
|
+
#
|
|
32
|
+
# FactoryGirls Library to provide test data objects.
|
|
33
|
+
# https://github.com/thoughtbot/factory_girl
|
|
34
|
+
#
|
|
35
|
+
# SimpleCov Tool to detect the test coverage of our code.
|
|
36
|
+
# https://github.com/colszowka/simplecov
|
|
37
|
+
#
|
|
38
|
+
# Coveralls Tool to add a code coverage badge.
|
|
39
|
+
# https://coveralls.io/docs/ruby
|
|
40
|
+
#
|
|
41
|
+
|
|
42
|
+
# Test Coverage
|
|
43
|
+
# ===========================================================================
|
|
44
|
+
#
|
|
45
|
+
# This uses simplecov, coveralls and codeclimate.
|
|
46
|
+
# See https://gist.github.com/jaryl/6554599
|
|
47
|
+
#
|
|
48
|
+
# Resource on using SimpleCov together with Spork:
|
|
49
|
+
# https://github.com/colszowka/simplecov/issues/42#issuecomment-4440284
|
|
50
|
+
#
|
|
51
|
+
require "codeclimate-test-reporter"
|
|
52
|
+
require 'simplecov' unless ENV['DRB']
|
|
53
|
+
require 'coveralls'
|
|
54
|
+
formatters = [SimpleCov::Formatter::HTMLFormatter]
|
|
55
|
+
formatters << Coveralls::SimpleCov::Formatter if ENV['COVERALLS_REPO_TOKEN']
|
|
56
|
+
formatters << CodeClimate::TestReporter::Formatter if ENV['CODECLIMATE_REPO_TOKEN']
|
|
57
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[*formatters]
|
|
58
|
+
SimpleCov.start 'rails'
|
|
59
|
+
CodeClimate::TestReporter.start
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
# Required Basic Libraries
|
|
63
|
+
# ==========================================================================================
|
|
64
|
+
|
|
65
|
+
# These libraries are required to load Spork. Since every test requires, i.e. loads
|
|
66
|
+
# this spec helper, they are loaded separately for each test run.
|
|
67
|
+
#
|
|
68
|
+
# In order to increase performance, loading of the other libraries takes place within
|
|
69
|
+
# the `Spork.prefork` block. This causes the libraries being cached in memory rather
|
|
70
|
+
# than being loaded for each run separately.
|
|
71
|
+
#
|
|
72
|
+
require 'rubygems'
|
|
73
|
+
require 'spork'
|
|
74
|
+
# uncomment the following line to use spork with the debugger
|
|
75
|
+
# require 'spork/ext/ruby-debug'
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
# Requirements and Configurations Cached by Spork
|
|
79
|
+
# ==========================================================================================
|
|
80
|
+
|
|
81
|
+
# These requirements and configurations are loaded by Spork. Spork will cache them
|
|
82
|
+
# in memory.
|
|
83
|
+
#
|
|
84
|
+
# Remember to restart Spork (kill and restart guard) whenever you need to reload one
|
|
85
|
+
# of the components. If you find yourself to often restarting guard because of this,
|
|
86
|
+
# you should probably move the concerning component into the `Spork.each_run` block.
|
|
87
|
+
#
|
|
88
|
+
Spork.prefork do
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
# Required Application Environment
|
|
92
|
+
# ----------------------------------------------------------------------------------------
|
|
93
|
+
ENV['RAILS_ENV'] ||= 'test'
|
|
94
|
+
require File.expand_path('../../demo_app/my_platform/config/environment', __FILE__)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# Required Libraries
|
|
98
|
+
# ----------------------------------------------------------------------------------------
|
|
99
|
+
|
|
100
|
+
require 'rspec/rails'
|
|
101
|
+
require 'rspec/autorun'
|
|
102
|
+
require 'nokogiri'
|
|
103
|
+
require 'capybara/poltergeist'
|
|
104
|
+
require 'rspec/expectations'
|
|
105
|
+
require 'sidekiq/testing'
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
# Required Support Files (that help you testing)
|
|
109
|
+
# ----------------------------------------------------------------------------------------
|
|
110
|
+
|
|
111
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
|
112
|
+
# in spec/support/ and its subdirectories.
|
|
113
|
+
Dir[Rails.root.join('../../spec/support/**/*.rb')].each {|f| require f}
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
# Factories, Stubs and Mocks
|
|
117
|
+
# ----------------------------------------------------------------------------------------
|
|
118
|
+
|
|
119
|
+
# Mock objects are simplified objects ("stub") that are used rather than the
|
|
120
|
+
# real, more complex objects, e.g. in order to increase performance.
|
|
121
|
+
#
|
|
122
|
+
# Rather than `rspec-mocks` fixtures, we use FactoryGirl instead.
|
|
123
|
+
#
|
|
124
|
+
FactoryGirl.definition_file_paths = %w(spec/factories)
|
|
125
|
+
|
|
126
|
+
# In order to not hit the geocoding API, we use stub data for geocoding.
|
|
127
|
+
#
|
|
128
|
+
Geocoder.configure( lookup: :test )
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
# Capybara & Poltergeist Configuration
|
|
132
|
+
# ----------------------------------------------------------------------------------------
|
|
133
|
+
|
|
134
|
+
Capybara.register_driver :poltergeist do |app|
|
|
135
|
+
|
|
136
|
+
# The `inspector: true` argument gives you the possibility to stop the execution
|
|
137
|
+
# of the tests using `page.driver.debug` in your spec code. This will open an
|
|
138
|
+
# inspector in the browser that allows you to see the current DOM structure and
|
|
139
|
+
# other information useful for debugging tests.
|
|
140
|
+
#
|
|
141
|
+
Capybara::Poltergeist::Driver.new(app, inspector: true, js_errors: (not ENV['NO_JS_ERRORS'].present?))
|
|
142
|
+
end
|
|
143
|
+
Capybara.javascript_driver = :poltergeist
|
|
144
|
+
|
|
145
|
+
# Set the time that Capybara should wait for ajax requests to be finished.
|
|
146
|
+
# The default is 2 seconds.
|
|
147
|
+
#
|
|
148
|
+
# See: https://github.com/jnicklas/capybara#asynchronous-javascript-ajax-and-friends
|
|
149
|
+
#
|
|
150
|
+
Capybara.default_wait_time = 15
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
# Background Jobs:
|
|
154
|
+
# Perform all background jobs immediately.
|
|
155
|
+
#
|
|
156
|
+
Sidekiq::Testing.inline!
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
# Rspec Configuration
|
|
160
|
+
# ----------------------------------------------------------------------------------------
|
|
161
|
+
|
|
162
|
+
RSpec.configure do |config|
|
|
163
|
+
|
|
164
|
+
# Inclusion of helper methods.
|
|
165
|
+
# ......................................................................................
|
|
166
|
+
#
|
|
167
|
+
# The methods contained in the modules marked to be included here, will be
|
|
168
|
+
# available in the spec code, without being prefixed.
|
|
169
|
+
#
|
|
170
|
+
# For example, including the url_helpers allows to use `url_for(some_object)`
|
|
171
|
+
# in the specs.
|
|
172
|
+
#
|
|
173
|
+
config.include RSpec::Matchers
|
|
174
|
+
config.include Rails.application.routes.url_helpers
|
|
175
|
+
config.include FactoryGirl::Syntax::Methods
|
|
176
|
+
config.include EmailSpec::Helpers
|
|
177
|
+
config.include EmailSpec::Matchers
|
|
178
|
+
|
|
179
|
+
# TimeTravel abilities: time_travel 2.seconds
|
|
180
|
+
# This can be used for caching, validity range, etc.
|
|
181
|
+
#
|
|
182
|
+
config.include TimeTravel
|
|
183
|
+
|
|
184
|
+
# This introduces the method `wait_for_ajax`, which can be used when the Capybara
|
|
185
|
+
# matchers do not wait properly for ajax code to be finished.
|
|
186
|
+
# This is just a sleep command with a time determined by a simple benchmark.
|
|
187
|
+
#
|
|
188
|
+
# see spec/support/wait_for_ajax.rb
|
|
189
|
+
#
|
|
190
|
+
config.include WaitForAjax
|
|
191
|
+
|
|
192
|
+
# Also, wait for the cache to invalidate.
|
|
193
|
+
# This can be done with time_travel.
|
|
194
|
+
#
|
|
195
|
+
config.include WaitForCache
|
|
196
|
+
|
|
197
|
+
# This introduces the methods `send_key(field_id, key)` and `press_enter(field_id)`.
|
|
198
|
+
#
|
|
199
|
+
config.include PressEnter
|
|
200
|
+
|
|
201
|
+
# Auto complete fields
|
|
202
|
+
#
|
|
203
|
+
config.include AutoComplete
|
|
204
|
+
|
|
205
|
+
# Debug
|
|
206
|
+
# Call `debug` to enter pry.
|
|
207
|
+
#
|
|
208
|
+
config.include Debug
|
|
209
|
+
|
|
210
|
+
# Devise test helper for controller tests
|
|
211
|
+
config.include Devise::TestHelpers, :type => :controller
|
|
212
|
+
config.extend ControllerMacros, :type => :controller
|
|
213
|
+
#
|
|
214
|
+
# TODO: When upgrading rspec, use this instead:
|
|
215
|
+
# config.include ControllerMacros
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
# Database Wiping Policy
|
|
219
|
+
# ......................................................................................
|
|
220
|
+
|
|
221
|
+
# For each separate test, the test database is wiped. There are several ways
|
|
222
|
+
# to acomplish this. But, in high level integration tests, especially when
|
|
223
|
+
# using AJAX requests, there may be complications:
|
|
224
|
+
# a) Several components are hitting the database: The test code as well as
|
|
225
|
+
# the simulated browser through Capybara.
|
|
226
|
+
# b) There may be cases when asynchronous requests hit the database
|
|
227
|
+
# after passing on to the next test, when the database is wiped again
|
|
228
|
+
# already. Beware of these cases, which really produce strange errors.
|
|
229
|
+
#
|
|
230
|
+
# Some resources on this topic:
|
|
231
|
+
# * http://stackoverflow.com/questions/8178120/
|
|
232
|
+
# * http://stackoverflow.com/questions/10692161/
|
|
233
|
+
# * http://p373.net/2012/08/07/capybara-ajax-requirejs-and-how-to-pull-your-hair-out-in-8-easy-hours/
|
|
234
|
+
|
|
235
|
+
config.use_transactional_fixtures = false
|
|
236
|
+
|
|
237
|
+
config.before(:suite) do
|
|
238
|
+
DatabaseCleaner.clean
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
config.before(:each) do
|
|
242
|
+
|
|
243
|
+
# This distinction reduces the run time of the test suite by over a factor of 4:
|
|
244
|
+
# From 40 to a couple of minutes, since the truncation method, which is slower,
|
|
245
|
+
# is only used when needed by Capybara, i.e. when running integration tests,
|
|
246
|
+
# possibly with asynchronous requests.
|
|
247
|
+
#
|
|
248
|
+
if Capybara.current_driver == :rack_test
|
|
249
|
+
DatabaseCleaner.strategy = :transaction
|
|
250
|
+
else
|
|
251
|
+
DatabaseCleaner.strategy = :truncation
|
|
252
|
+
end
|
|
253
|
+
DatabaseCleaner.start
|
|
254
|
+
|
|
255
|
+
# Clear the cache.
|
|
256
|
+
Rails.cache.clear
|
|
257
|
+
|
|
258
|
+
# create the basic objects that are needed for all specs
|
|
259
|
+
Group.find_or_create_everyone_group
|
|
260
|
+
Group.find_or_create_corporations_parent_group
|
|
261
|
+
Page.create_root
|
|
262
|
+
Page.create_intranet_root
|
|
263
|
+
Workflow.find_or_create_mark_as_deceased_workflow
|
|
264
|
+
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
config.after(:each) do
|
|
268
|
+
DatabaseCleaner.clean
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
config.after(:suite) do
|
|
272
|
+
DatabaseCleaner.clean
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
# Spec Filtering: Focus on Current Specs
|
|
277
|
+
# ......................................................................................
|
|
278
|
+
|
|
279
|
+
# By including the `focus: true` in `describe` or `it` calls in the spec code,
|
|
280
|
+
# cause the test suite to focus on these blocks, i.e. run only them. This can be
|
|
281
|
+
# useful if are working on a tricky one.
|
|
282
|
+
#
|
|
283
|
+
# BUT REMEMBER to reove the `focus: true` before comitting the spec code.
|
|
284
|
+
# Otherwise you prevent other tests from being run regularly.
|
|
285
|
+
#
|
|
286
|
+
# config.filter_run :focus => true
|
|
287
|
+
#
|
|
288
|
+
# EDIT: The filter is not set here, but using guar (i.e. in the Guardfile).
|
|
289
|
+
# Thus, when using `bundle exec rake`, always all specs run,
|
|
290
|
+
# which is important on the server.
|
|
291
|
+
#
|
|
292
|
+
config.run_all_when_everything_filtered = true
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
# Further Rspec Configuration
|
|
296
|
+
# ......................................................................................
|
|
297
|
+
|
|
298
|
+
# If true, the base class of anonymous controllers will be inferred
|
|
299
|
+
# automatically. This will be the default behavior in future versions of
|
|
300
|
+
# rspec-rails.
|
|
301
|
+
#
|
|
302
|
+
config.infer_base_class_for_anonymous_controllers = false
|
|
303
|
+
|
|
304
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
|
305
|
+
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
|
|
309
|
+
# Internationalization Settings
|
|
310
|
+
# ----------------------------------------------------------------------------------------
|
|
311
|
+
|
|
312
|
+
# Set the default locale.
|
|
313
|
+
# Notice: This has to be set to the same value as in config/application.rb.
|
|
314
|
+
# Because, in tests withs :js => true, the setting from config/application.rb is used.
|
|
315
|
+
#
|
|
316
|
+
I18n.default_locale = :de
|
|
317
|
+
I18n.locale = :de
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
# Request Host
|
|
321
|
+
# ----------------------------------------------------------------------------------------
|
|
322
|
+
|
|
323
|
+
# Override the request.host to be http://example.com rather than the default
|
|
324
|
+
# http://www.example.com. Otherwise, each spec would first trigger the non-www redirect
|
|
325
|
+
# in the your_platform application controller.
|
|
326
|
+
#
|
|
327
|
+
# http://stackoverflow.com/questions/6536503
|
|
328
|
+
#
|
|
329
|
+
# Edit: Does not work for all specs.
|
|
330
|
+
# For the moment, I've just deactivated the www redirect in the test env. --Fiedl
|
|
331
|
+
#
|
|
332
|
+
# Capybara.app_host = "http://localhost"
|
|
333
|
+
|
|
334
|
+
end
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
# Requirements and Configurations NOT Cached by Spork
|
|
338
|
+
# ==========================================================================================
|
|
339
|
+
|
|
340
|
+
# These requirements and configurations are loaded on each run of the test suite
|
|
341
|
+
# without being cached by Spork.
|
|
342
|
+
#
|
|
343
|
+
Spork.each_run do
|
|
344
|
+
|
|
345
|
+
# There are some actions FactoryGirl needs to perform on every run.
|
|
346
|
+
#
|
|
347
|
+
FactoryGirl.reload
|
|
348
|
+
Dir[Rails.root.join('../../spec/support/**/*.rb')].each {|f| require f}
|
|
349
|
+
|
|
350
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module AutoComplete
|
|
2
|
+
|
|
3
|
+
# Example:
|
|
4
|
+
#
|
|
5
|
+
# fill_autocomplete :user_group_membership_user_title, with: "Max", select: @user.title
|
|
6
|
+
# find('.user-select-input').value.should == @user.title
|
|
7
|
+
#
|
|
8
|
+
def fill_autocomplete(field, options = {})
|
|
9
|
+
# This method is taken from:
|
|
10
|
+
# https://github.com/joneslee85/ruby-journal-source/blob/master/source/_posts/2013-09-12-how-to-do-jqueryui-autocomplete-with-capybara-2.markdown
|
|
11
|
+
|
|
12
|
+
fill_in field, with: options[:with]
|
|
13
|
+
|
|
14
|
+
page.execute_script %Q{ $('##{field}').trigger('focus') }
|
|
15
|
+
page.execute_script %Q{ $('##{field}').trigger('keydown') }
|
|
16
|
+
selector = %Q{ul.ui-autocomplete li.ui-menu-item a:contains("#{options[:select]}")}
|
|
17
|
+
|
|
18
|
+
page.should have_selector('ul.ui-autocomplete li.ui-menu-item a')
|
|
19
|
+
page.execute_script %Q{ $('#{selector}').trigger('mouseenter').click() }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
module FlashHelpers
|
|
2
|
+
|
|
3
|
+
def has_notice?(message)
|
|
4
|
+
has_selector?('div.alert.alert-info', :text => message)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def has_no_notice?(message)
|
|
8
|
+
has_no_selector?('div.alert.alert-info', :text => message)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def has_error_message?(message)
|
|
12
|
+
has_selector?('div.alert.alert-danger', :text => message)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def has_no_error_message?(message)
|
|
16
|
+
has_no_selector?('div.alert.alert-danger', :text => message)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def has_warning?(message)
|
|
20
|
+
has_selector?('div.alert.alert-warning', :text => message)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def has_no_warning?(message)
|
|
24
|
+
has_no_selector?('div.alert.alert-warning', :text => message)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def has_validation_errors?
|
|
28
|
+
has_selector?('.field_with_errors')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def has_no_validation_errors?
|
|
32
|
+
has_no_selector?('.field_with_errors')
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
Capybara::Session.send(:include, FlashHelpers)
|