curate 0.6.5 → 0.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +9 -0
- data/app/assets/javascripts/curate.js +2 -0
- data/app/assets/javascripts/curate/link_groups.js.coffee +123 -0
- data/app/assets/javascripts/curate/link_users.js.coffee +29 -10
- data/app/assets/stylesheets/curate.css.scss +1 -0
- data/app/assets/stylesheets/curate/linkedGroups.css.scss +16 -0
- data/app/assets/stylesheets/curate/linkedUsers.css.scss +4 -0
- data/app/assets/stylesheets/modules.scss +2 -1
- data/app/assets/stylesheets/modules/forms.css.scss +5 -0
- data/app/assets/stylesheets/modules/profile.css.scss +51 -0
- data/app/controllers/catalog_controller.rb +37 -7
- data/app/controllers/curate/collections_controller.rb +15 -0
- data/app/controllers/curate/people_controller.rb +17 -4
- data/app/controllers/curation_concern/generic_works_controller.rb +26 -2
- data/app/controllers/curation_concern/linked_resources_controller.rb +1 -1
- data/app/controllers/curation_concern/permissions_controller.rb +2 -1
- data/app/controllers/hydramata/groups_controller.rb +119 -0
- data/app/controllers/registrations_controller.rb +33 -0
- data/app/controllers/users_controller.rb +23 -0
- data/app/helpers/curate/catalog_helper.rb +14 -0
- data/app/helpers/curate/collections_helper.rb +20 -9
- data/app/helpers/curate_helper.rb +12 -5
- data/app/helpers/hydramata/groups_helper.rb +12 -0
- data/app/models/account.rb +17 -0
- data/app/models/concerns/curate/ability.rb +1 -5
- data/app/models/curate/user_behavior/base.rb +6 -5
- data/app/repository_datastreams/group_metadata_datastream.rb +20 -0
- data/app/repository_models/collection.rb +49 -1
- data/app/repository_models/curation_concern/model.rb +5 -1
- data/app/repository_models/curation_concern/with_generic_files.rb +4 -3
- data/app/repository_models/curation_concern/work.rb +38 -1
- data/app/repository_models/curation_concern/work_permission.rb +54 -0
- data/app/repository_models/hydramata/group.rb +87 -0
- data/app/repository_models/hydramata/group_membership_form.rb +72 -0
- data/app/repository_models/person.rb +37 -1
- data/app/repository_models/profile_section.rb +0 -1
- data/app/services/curation_concern/work_permission_action_parser.rb +78 -0
- data/app/services/hydramata/group_membership_action_parser.rb +65 -0
- data/app/views/catalog/_facets.html.erb +3 -1
- data/app/views/catalog/index.html.erb +3 -0
- data/app/views/curate/collections/_form.html.erb +10 -0
- data/app/views/curate/collections/show.html.erb +1 -0
- data/app/views/curate/people/_profile_image.html.erb +2 -2
- data/app/views/curate/people/show.html.erb +46 -34
- data/app/views/curation_concern/articles/_attributes.html.erb +1 -0
- data/app/views/curation_concern/base/_form.html.erb +1 -0
- data/app/views/curation_concern/base/_form_descriptive_fields.erb +9 -0
- data/app/views/curation_concern/base/_linked_editors.html.erb +47 -0
- data/app/views/curation_concern/base/_linked_groups.html.erb +45 -0
- data/app/views/curation_concern/base/_persons_edit_access.html.erb +44 -0
- data/app/views/curation_concern/documents/_attributes.html.erb +1 -0
- data/app/views/curation_concern/etds/_attributes.html.erb +1 -0
- data/app/views/curation_concern/etds/_form_descriptive_fields.erb +2 -0
- data/app/views/curation_concern/generic_works/_attributes.html.erb +1 -0
- data/app/views/{curate/organizations/_organization.html.erb → curation_concern/hydramata/groups/_group.html.erb} +6 -6
- data/app/views/curation_concern/images/_attributes.html.erb +1 -0
- data/app/views/curation_concern/images/_form_descriptive_fields.erb +2 -0
- data/app/views/hydramata/groups/_button_create_group.html.erb +1 -0
- data/app/views/{curate/organizations → hydramata/groups}/_document_list.html.erb +0 -0
- data/app/views/{curate/organizations → hydramata/groups}/_form.html.erb +28 -10
- data/app/views/hydramata/groups/_group.html.erb +24 -0
- data/app/views/hydramata/groups/_linked_members.html.erb +96 -0
- data/app/views/hydramata/groups/edit.html.erb +4 -0
- data/app/views/hydramata/groups/index.html.erb +11 -0
- data/app/views/{curate/organizations → hydramata/groups}/new.html.erb +1 -1
- data/app/views/hydramata/groups/show.html.erb +36 -0
- data/app/views/layouts/boilerplate.html.erb +1 -1
- data/app/views/registrations/_form_account_deactivation.html.erb +1 -1
- data/app/views/registrations/_form_attributes.html.erb +3 -5
- data/app/views/registrations/_form_password_management.html.erb +11 -9
- data/app/views/registrations/edit.html.erb +8 -5
- data/app/views/shared/_add_content.html.erb +1 -1
- data/app/views/shared/_my_actions.html.erb +1 -0
- data/lib/curate/configuration.rb +6 -0
- data/lib/curate/rails/routes.rb +7 -1
- data/lib/curate/spec_support.rb +1 -1
- data/lib/curate/version.rb +1 -1
- data/lib/generators/curate/application_template.rb +10 -2
- data/lib/generators/curate/curate_generator.rb +16 -0
- data/lib/generators/curate/predicate_mapping/predicate_mappings.yml +64 -0
- data/lib/generators/curate/search_config/search_config_generator.rb +177 -0
- data/lib/generators/curate/soft_delete/active_fedora_soft_delete_monkey_patch.rb +14 -4
- data/spec/abilities/generic_file_abilities_spec.rb +1 -0
- data/spec/abilities/generic_work_abilities_spec.rb +1 -0
- data/spec/controllers/catalog_controller_spec.rb +21 -0
- data/spec/controllers/curate/collections_controller_spec.rb +1 -1
- data/spec/controllers/curation_concern/linked_resources_controller_spec.rb +1 -1
- data/spec/controllers/curation_concern/permissions_controller_spec.rb +1 -1
- data/spec/controllers/hydamata/groups_controller_spec.rb +133 -0
- data/spec/factories/group_factory.rb +20 -0
- data/spec/features/article_spec.rb +3 -2
- data/spec/features/catalog_search_spec.rb +19 -2
- data/spec/features/collections_spec.rb +23 -7
- data/spec/features/dataset_spec.rb +3 -2
- data/spec/features/end_to_end_spec.rb +9 -8
- data/spec/features/etd_spec.rb +3 -2
- data/spec/features/generic_work_spec.rb +6 -3
- data/spec/features/image_spec.rb +3 -2
- data/spec/features/manager_profile_workflow_spec.rb +56 -0
- data/spec/features/person_profile_spec.rb +4 -4
- data/spec/features/user_profile_workflow_spec.rb +1 -7
- data/spec/fixtures/cassettes/remotely_identified_doi_mint_generic_work.yml +3 -3
- data/spec/fixtures/cassettes/remotely_identified_doi_mint_spam.yml +47 -0
- data/spec/helpers/curate/catalog_helper.rb +29 -0
- data/spec/internal/Gemfile +23 -4
- data/spec/internal/Gemfile.lock +410 -14
- data/spec/internal/app/assets/images/blacklight/bg.png +0 -0
- data/spec/internal/app/assets/images/blacklight/border.png +0 -0
- data/spec/internal/app/assets/images/blacklight/bul_sq_gry.gif +0 -0
- data/spec/internal/app/assets/images/blacklight/checkmark.gif +0 -0
- data/spec/internal/app/assets/images/blacklight/logo.png +0 -0
- data/spec/internal/app/assets/images/blacklight/magnifying_glass.gif +0 -0
- data/spec/internal/app/assets/images/blacklight/remove.gif +0 -0
- data/spec/internal/app/assets/images/blacklight/separator.gif +0 -0
- data/spec/internal/app/assets/images/blacklight/start_over.gif +0 -0
- data/spec/internal/app/assets/javascripts/application.js +4 -0
- data/spec/internal/app/assets/stylesheets/application.css +1 -0
- data/spec/internal/app/controllers/application_controller.rb +9 -0
- data/spec/internal/app/controllers/curation_concern/spams_controller.rb +6 -0
- data/spec/internal/app/models/ability.rb +20 -0
- data/spec/internal/app/models/solr_document.rb +38 -0
- data/spec/internal/app/models/user.rb +23 -0
- data/spec/internal/app/repository_datastreams/spam_rdf_datastream.rb +78 -0
- data/spec/internal/app/repository_models/spam.rb +47 -0
- data/spec/internal/app/services/curation_concern/spam_actor.rb +6 -0
- data/spec/internal/app/views/curation_concern/spams/_spam.html.erb +2 -0
- data/spec/internal/config/SolrMarc/config-test.properties +37 -0
- data/spec/internal/config/SolrMarc/config.properties +37 -0
- data/spec/internal/config/SolrMarc/index.properties +97 -0
- data/spec/internal/config/SolrMarc/index_scripts/dewey.bsh +47 -0
- data/spec/internal/config/SolrMarc/index_scripts/format.bsh +126 -0
- data/spec/internal/config/SolrMarc/translation_maps/README_MAPS +1 -0
- data/spec/internal/config/SolrMarc/translation_maps/callnumber_map.properties +407 -0
- data/spec/internal/config/SolrMarc/translation_maps/composition_era_map.properties +56 -0
- data/spec/internal/config/SolrMarc/translation_maps/country_map.properties +379 -0
- data/spec/internal/config/SolrMarc/translation_maps/format_map.properties +50 -0
- data/spec/internal/config/SolrMarc/translation_maps/instrument_map.properties +101 -0
- data/spec/internal/config/SolrMarc/translation_maps/language_map.properties +490 -0
- data/spec/internal/config/application.rb +6 -0
- data/spec/internal/config/doi.yml +5 -0
- data/spec/internal/config/environments/test.rb +2 -1
- data/spec/internal/config/fedora.yml +14 -0
- data/spec/internal/config/initializers/action_dispatch_http_upload_monkey_patch.rb +12 -0
- data/spec/internal/config/initializers/curate_config.rb +30 -0
- data/spec/internal/config/initializers/devise.rb +256 -0
- data/spec/internal/config/initializers/hydra-remote_identifier_config.rb +29 -0
- data/spec/internal/config/initializers/hydra_config.rb +28 -0
- data/spec/internal/config/initializers/mailboxer.rb +17 -0
- data/spec/internal/config/initializers/mime_types.rb +8 -1
- data/spec/internal/config/initializers/redis_config.rb +32 -0
- data/spec/internal/config/initializers/resque_admin.rb +10 -0
- data/spec/internal/config/initializers/resque_config.rb +5 -0
- data/spec/internal/config/initializers/secret_token.rb +1 -1
- data/spec/internal/config/initializers/sufia.rb +81 -0
- data/spec/internal/config/jetty.yml +5 -0
- data/spec/internal/config/locales/devise.en.yml +59 -0
- data/spec/internal/config/locales/en.yml +11 -20
- data/spec/internal/config/manager_usernames.yml +9 -0
- data/spec/internal/config/predicate_mappings.yml +64 -0
- data/spec/internal/config/recipients_list.yml +2 -0
- data/spec/internal/config/redis.yml +6 -0
- data/spec/internal/config/role_map_cucumber.yml +10 -0
- data/spec/internal/config/role_map_development.yml +12 -0
- data/spec/internal/config/role_map_production.yml +2 -0
- data/spec/internal/config/role_map_test.yml +15 -0
- data/spec/internal/config/routes.rb +8 -0
- data/spec/internal/config/search_config.yml +9 -0
- data/spec/internal/config/solr.yml +10 -0
- data/spec/internal/db/development.sqlite3 +0 -0
- data/spec/internal/db/migrate/20140328183252_devise_create_users.rb +42 -0
- data/spec/internal/db/migrate/20140328183257_add_devise_guests_to_users.rb +15 -0
- data/spec/internal/db/migrate/20140328183258_create_searches.rb +16 -0
- data/spec/internal/db/migrate/20140328183259_create_bookmarks.rb +18 -0
- data/spec/internal/db/migrate/20140328183260_remove_editable_fields_from_bookmarks.rb +12 -0
- data/spec/internal/db/migrate/20140328183261_add_user_types_to_bookmarks_searches.rb +16 -0
- data/spec/internal/db/migrate/20140328183262_acts_as_follower_migration.rb +17 -0
- data/spec/internal/db/migrate/20140328183263_add_social_to_users.rb +13 -0
- data/spec/internal/db/migrate/20140328183264_create_single_use_links.rb +12 -0
- data/spec/internal/db/migrate/20140328183265_add_ldap_attrs_to_user.rb +27 -0
- data/spec/internal/db/migrate/20140328183266_add_avatars_to_users.rb +9 -0
- data/spec/internal/db/migrate/20140328183267_create_checksum_audit_logs.rb +20 -0
- data/spec/internal/db/migrate/20140328183268_create_version_committers.rb +15 -0
- data/spec/internal/db/migrate/20140328183269_add_groups_to_users.rb +11 -0
- data/spec/internal/db/migrate/20140328183270_create_local_authorities.rb +50 -0
- data/spec/internal/db/migrate/20140328183271_create_trophies.rb +10 -0
- data/spec/internal/db/migrate/20140328183331_create_mailboxer.mailboxer_engine.rb +62 -0
- data/spec/internal/db/migrate/20140328183332_add_notified_object.mailboxer_engine.rb +18 -0
- data/spec/internal/db/migrate/20140328183333_add_notification_code.mailboxer_engine.rb +14 -0
- data/spec/internal/db/migrate/20140328183334_add_attachments.mailboxer_engine.rb +10 -0
- data/spec/internal/db/migrate/20140328183335_rename_receipts_read.mailboxer_engine.rb +10 -0
- data/spec/internal/db/migrate/20140328183336_add_global_notification_support.mailboxer_engine.rb +10 -0
- data/spec/internal/db/migrate/20140328183340_add_terms_of_service_to_user.curate_engine.rb +6 -0
- data/spec/internal/db/migrate/20140328183341_add_user_force_update_profile.curate_engine.rb +9 -0
- data/spec/internal/db/migrate/20140328183342_create_help_requests.curate_engine.rb +23 -0
- data/spec/internal/db/migrate/20140328183343_add_repository_id_to_user.curate_engine.rb +7 -0
- data/spec/internal/db/migrate/20140328183344_create_curate_proxy_deposit_rights.curate_engine.rb +12 -0
- data/spec/internal/db/migrate/20140328183345_change_display_name_to_name.curate_engine.rb +7 -0
- data/spec/internal/db/schema.rb +216 -1
- data/spec/internal/db/test.sqlite3 +0 -0
- data/spec/internal/fedora_conf/conf/development/fedora.fcfg +953 -0
- data/spec/internal/fedora_conf/conf/test/fedora.fcfg +953 -0
- data/spec/internal/lib/generators/test_app_generator.rb +23 -2
- data/spec/internal/log/development.log +322 -4
- data/spec/internal/log/test.log +117837 -0
- data/spec/internal/solr_conf/conf/schema.xml +273 -0
- data/spec/internal/solr_conf/conf/solrconfig.xml +167 -0
- data/spec/internal/solr_conf/solr.xml +35 -0
- data/spec/internal/spec/controllers/curation_concern/spams_controller_spec.rb +7 -0
- data/spec/internal/spec/factories/spams_factory.rb +40 -0
- data/spec/internal/spec/repository_models/spam_spec.rb +16 -0
- data/spec/internal/spec/services/curation_concern/spam_actor_spec.rb +7 -0
- data/spec/internal/test/models/user_test.rb +7 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_blacklight_base.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_bookmark.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_catalog.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_dropdown.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_facets.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_footer.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_group.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_header.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_layout.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_modal.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_print.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_responsive.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/_search_history.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/blacklight.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/0f223a129cc26de35ff59298da93dd57d598447a/blacklight_defaults.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/108fdfe10ba83060a2164fe91a5d70f57ff08f38/linkedGroups.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/108fdfe10ba83060a2164fe91a5d70f57ff08f38/linkedUsers.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/accessibility.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/accordion.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/attributes.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/classify_work.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/collections.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/emphatic_action_area.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/forms.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/multi_value_fields.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/pagination.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/profile.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/search_results.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/site_actions.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/2c6be7e0f6fa11a075d87959732f91fde3df1f13/site_search.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/3540212d3e8f12f14e3d57e312ff13dc248a7b03/bootstrap-modal.cssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/393de91b02495e7f60ccd919368de37af38618da/bootstrap-datepicker.cssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_accordion.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_alerts.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_breadcrumbs.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_button-groups.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_buttons.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_carousel.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_close.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_code.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_component-animations.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_dropdowns.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_forms.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_grid.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_hero-unit.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_labels-badges.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_layouts.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_media.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_mixins.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_modals.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_navbar.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_navs.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_pager.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_pagination.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_popovers.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_progress-bars.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_reset.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-1200px-min.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-767px-max.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-768px-979px.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-navbar.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_responsive-utilities.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_scaffolding.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_sprites.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_tables.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_thumbnails.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_tooltip.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_type.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_utilities.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_variables.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/_wells.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/bootstrap.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/51b00c7d39146f73896d987722a019852fb2ca5e/responsive.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/6a8f3b19bc293c20ed8d8faf81b13284c10818d6/_catalog.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/6a8f3b19bc293c20ed8d8faf81b13284c10818d6/_facets.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/6a8f3b19bc293c20ed8d8faf81b13284c10818d6/_header.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/953d624c1831fcea22a3be549290f4c654726e96/positioning.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/b95751effdfef9cdba38bc1d169b6196172155ed/theme.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/b95751effdfef9cdba38bc1d169b6196172155ed/typography.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/e653ebc579903efbaf96508ec20b97304a2a14a0/token-input-facebook.cssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/e9808fc781dff3e3e7170d18d009c46cb33a75c5/curate.css.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/e9808fc781dff3e3e7170d18d009c46cb33a75c5/global-variables.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/e9808fc781dff3e3e7170d18d009c46cb33a75c5/modules.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/ef004a21da8f6e485bf56e67090fd7b67164e2d4/bootstrap-responsive.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sass/ef004a21da8f6e485bf56e67090fd7b67164e2d4/bootstrap.scssc +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/022df81faa4bf7df68048b690ef7c85c +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/04a9cbc691396f514e6b88c05724f9cc +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/070263a383619079784e4ce15cf15443 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/091e4dfe4ed53798289eecba25675954 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/0b4f161bc175df6a24a070de15ef8070 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/0d6ccd45e1a5bb30040987a5817f5ca7 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1114f56d5a4f05583b0351978456c150 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/163665b72c8e98b0c88c19896f080bc4 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/169842bd6ce5ed610c32403ca2ed06d6 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/19465db808fbe15048554cecb70ad7cf +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1a591a26fdf3ed78b25b5ab792d76b7e +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1c1167e9384b80e15359a663448a3196 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1d084625b16ac691b3ac53f7c3af9383 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1d2f8185792ec3fccced5ea4e4dd7ff2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1eeefbd68878e39bf538ca5fb6816827 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/1f3f013d8df49445e8f6d26abe4bd0c3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/22589c57b7736c35f126b70fa4f6838d +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/2458a8aab642c987741b9e5dbadc40be +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/25c858866fd7a2ca6719b8f57b7da784 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/272deddade92ef016e309a2eb7b775cc +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/293f9259ef62e6c2afde9949c46f0b36 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/2b89cef6265da9c35a9c68f4672c7ff5 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/2e0105bbafec2286e09b62e5471f4c73 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/30980d53fa21cb948c92faff2cf90991 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/30b468617659dbbfc89c910dcb076662 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/31f03bdc9721687fd98c2b12c036e8a2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/3b707f5b5654437450eb8d718b602724 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/4132e961bdf0f2ffa2f96a4c7822e209 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/41dd5dbd03cfa3f49e2d7569ffd03f8d +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/42ad0d7de425a02e6ad4b53f8f96e73a +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/4749d0a94ef75f86eebb5f638b83188c +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/47d1bee927ac2da38db4c61acd85d648 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/483d9b04ae722b59d47428990e5d67a3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/49dddc872622de1d975f563d9d10d6c9 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/49f85e65ad619dd02dc51988e77723d2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/4b1fc3a748e34199e72958c656cc06cf +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/4c5e67849a42922256c692cebe3625ae +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/5141429549bc789c5a18f47a631ee310 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/541a8ef4d67b7e50312977c96e423051 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/55e3bb68ac9cf584a33a458f8a2b1676 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/5d53e364ada0619aa4fb30c112b6b102 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/611235bfd282813bdfbc998bcbe798e8 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/671dbbf33392960f4dfc8dc63bd7019b +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/6e0879a87dae322b4e32263452ba6b4e +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/6ff6303a1f21708f6bd3a328290e5d24 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/72d162018f00a25977df702c0c32873f +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/7685f208e89b90425bf76796648ebc28 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/7d0dafd1bea0f4da00c580f0f6d664b8 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/7d4fe23150294500a7bcd2630667e5c8 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/7e48304ca1d04f24b1a3ddfd0e762248 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/7e6843e999995e7a8a28abe25d44de70 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/7f1cb34f019f0890927d422814194b01 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/80fbd1f419ec2c1133c164b09a4faa41 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/81ecd9c94638acd3ece19ecac462a723 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/82f457826b6170c0fd009ef469f31e16 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/8401fd13fe82bb392806930ed02005e1 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/89051a85201a06056a8d2b0c9f86cc67 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/8b503f71e2ed168eb20ff8cfc20ff3d4 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/8c7f3211b77d6699db8521f074d3e871 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/967c4a151c00ff79d54eab287c5a949b +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/9a96d61233d5cc5799c7fc16fd9655c3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/9c4023aaef54415afaf4892ced299f30 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/9d2b8824bdb90dbf4cc8b238820f5536 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a16e48f0f9253ddceef37908141e96c3 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a58efe476f9446653ee3ae72f0a61fad +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a5b14fb35b6609fda372da27bcd729a7 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a9a428b52df1827450a88aa09e03c638 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/a9e4b0d4e6cb29a1cbc5e016fbcc0fb9 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ada353bb8ffe3eb0f2dd479e6d869a70 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/aed5b98e50f137ce9635dd1ec2e825ae +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/b148a5e98ff09a12b6a2139af1e62e46 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/b3b3d7f6ecf32ce8216b40eccc5da386 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/b9d7d32e6982bd30b74f8e53b9217c17 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/baf77fc130c9f3d5a5aa7fb780485a04 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/bbb1efb94f355bd05863c07b6f552c58 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/bd0dea58c57774fef248f0b0844a4654 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/bd4a5121c6495d513075e759f8cca6ed +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/c052b51dcc86bc3909b8d1f00ec52063 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/c6d2f8432ae24aaa27e3c17827d59e9a +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/c89f789c6b72000300327021b7d4c5c2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/cbb27eb65bd8fb970a233e18ba352e8f +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/cdf8872264f5f8dd811cdf810f6875a7 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d0196b42a14494523f6911335f616faf +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d2473a08bfca80032fc2b63d1b701155 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d510daa6eb0cd4805bff7fd0990dfdb5 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d610f39602b6149ca02638c1728778b5 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/d91f67015353a832fa2e3833f735348c +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/da3f0c774f5df0a1a089c222895df846 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/db2cddc1e711c9846ddae11154b7e021 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/dc85d6ffbe7a752fa33121a762c54962 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e0e4f218b157ae599e12a247a4cf8710 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e1b5310fd1def23fa4153a98c6f4ec94 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e214f7e5fca115c8dd417b1756b6c74e +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e33bc43550b9803eb105d236a57226ae +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e60245101cbc86285dea16c630966171 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/e9c2a0f2fa471ace3f7ed3a1f1b9ffc5 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ea0ece5befbce765051e27cf991cc805 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ea537228e3763da36f19f836971837bf +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/eb8e9f5bc31c8df8014af288cf304fa2 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ee98c5174937598bf3cc6cbd06de1930 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/efcc92e2af63ff01bdb496a5cd405447 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/f43e6de318148b8815fa65c6fd6ea092 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/f4dfad893ed757565a389ceceeadcbc1 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/f96152606fbc5602cd65176f6098f69a +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/fb0dfe7bc7417e1329d9cc6c913584e9 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/fb4a42a3e047a7a0d87f3ad55c8d267a +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/fd9f0ae81e726ff65daa70db0055de1a +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/fecd72966f3f2994e3d5894e05d76bd8 +0 -0
- data/spec/internal/tmp/cache/assets/test/sprockets/ff775ea5449360537913ffb102837dfa +0 -0
- data/spec/repository_models/generic_work_spec.rb +92 -0
- data/spec/repository_models/hydramata/group_membership_form_spec.rb +86 -0
- data/spec/repository_models/hydramata/group_spec.rb +91 -0
- data/spec/repository_models/person_spec.rb +44 -0
- data/spec/support/shared/shared_examples_is_a_curation_concern_controller.rb +23 -1
- data/spec/support/shared/shared_examples_remotely_identified.rb +10 -2
- metadata +640 -21
- data/app/controllers/curate/organizations_controller.rb +0 -96
- data/app/helpers/curate/organizations_helper.rb +0 -13
- data/app/repository_models/organization.rb +0 -17
- data/app/views/curate/organizations/_button_create_organization.html.erb +0 -1
- data/app/views/curate/organizations/edit.html.erb +0 -4
- data/app/views/curate/organizations/index.html.erb +0 -11
- data/app/views/curate/organizations/show.html.erb +0 -27
- data/app/views/organizations/_organization.html.erb +0 -30
- data/spec/controllers/curate/organizations_controller_spec.rb +0 -50
- data/spec/factories/organizations_factory.rb +0 -21
- data/spec/repository_models/organization_spec.rb +0 -66
@@ -0,0 +1,78 @@
|
|
1
|
+
# This module is used to take a params hash from the Work edit form (it uses nested attributes)
|
2
|
+
# and decide what action needs to happen for each editor listed in the Work.
|
3
|
+
# The possibilities are: none, create, destroy
|
4
|
+
|
5
|
+
module CurationConcern::WorkPermissionActionParser
|
6
|
+
|
7
|
+
def self.convert_params( class_name, params )
|
8
|
+
|
9
|
+
action = self.decide_editorship_action( class_name, params )
|
10
|
+
self.build_params( class_name, params, action )
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
# Parse the params from the Work update form and decide the action
|
17
|
+
def self.decide_editorship_action( class_name, params )
|
18
|
+
|
19
|
+
editor_action=[]
|
20
|
+
if !params[class_name]["editors_attributes"].nil?
|
21
|
+
|
22
|
+
params[class_name]["editors_attributes"].each do |key, value|
|
23
|
+
params_action(key, value, editor_action, params)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
group_action=[]
|
28
|
+
if !params[class_name]["editor_groups_attributes"].nil?
|
29
|
+
params[class_name]["editor_groups_attributes"].each do |key, value|
|
30
|
+
params_action(key, value, group_action, params)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
{editors: editor_action, groups: group_action}
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
def self.params_action(key, value, action, params)
|
40
|
+
if !value["id"].nil? and value["id"] != "" and !value["_destroy"].nil? and value["_destroy"] == ""
|
41
|
+
action << "none" if params["commit"].include?("Update")
|
42
|
+
action << "create" if params["commit"].include?("Create")
|
43
|
+
elsif !value["id"].nil? and value["id"] != "" and value["_destroy"].nil?
|
44
|
+
action << "create"
|
45
|
+
elsif !value["id"].nil? and value["id"] != "" and !value["_destroy"].nil?
|
46
|
+
action << "destroy"
|
47
|
+
elsif !value["id"].nil? and value["id"] == "" and value["_destroy"].nil?
|
48
|
+
action << "none"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# Build the param hash to be used by WorkEditorship
|
53
|
+
def self.build_params( class_name, params, action )
|
54
|
+
editor_params_aggregate = []
|
55
|
+
group_params_aggregate = []
|
56
|
+
|
57
|
+
if action.has_key?(:editors)
|
58
|
+
action[:editors].each_with_index do |editor_action, index|
|
59
|
+
person_id = params[class_name]["editors_attributes"][index.to_s]["id"]
|
60
|
+
if person_id
|
61
|
+
editor_params_aggregate << Hash[person_id: person_id, action: editor_action]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
if action.has_key?(:groups)
|
67
|
+
action[:groups].each_with_index do |group_action, index|
|
68
|
+
group_id = params[class_name]["editor_groups_attributes"][index.to_s]["id"]
|
69
|
+
if group_id
|
70
|
+
group_params_aggregate << Hash[group_id: group_id, action: group_action]
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
{ work_id: params[:id], editors: editor_params_aggregate, editor_groups: group_params_aggregate }
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# This module is used to take a params hash from the Group edit form (it uses nested attributes)
|
2
|
+
# and decide what action needs to happen for each member listed in the Group.
|
3
|
+
# The possibilities are: none, create, destroy
|
4
|
+
|
5
|
+
module Hydramata::GroupMembershipActionParser
|
6
|
+
|
7
|
+
def self.convert_params(params, current_user)
|
8
|
+
|
9
|
+
action = self.decide_membership_action(params)
|
10
|
+
self.build_params(params, action, current_user)
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
# Parse the params from the Group update form and decide the action
|
17
|
+
def self.decide_membership_action(params)
|
18
|
+
|
19
|
+
action=[]
|
20
|
+
#validate prescence of required params
|
21
|
+
if !params["hydramata_group"]["title"].nil? and !params["hydramata_group"]["description"].nil? and !params["hydramata_group"]["members_attributes"].nil?
|
22
|
+
|
23
|
+
params["hydramata_group"]["members_attributes"].each do |key, value|
|
24
|
+
if !value["id"].nil? and !value["_destroy"].nil? and value["_destroy"] == ""
|
25
|
+
#do nothing with membership
|
26
|
+
action << "none"
|
27
|
+
elsif !value["id"].nil? and value["id"] != "" and value["_destroy"].nil?
|
28
|
+
#add member
|
29
|
+
action << "create"
|
30
|
+
elsif !value["id"].nil? and value["id"] != "" and !value["_destroy"].nil?
|
31
|
+
#remove member
|
32
|
+
action << "destroy"
|
33
|
+
elsif !value["id"].nil? and value["id"] == "" and value["_destroy"].nil?
|
34
|
+
#empty member field, do nothing with membership
|
35
|
+
action << "none"
|
36
|
+
else
|
37
|
+
raise Exception, "Exception placeholder"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
else
|
42
|
+
raise Exception, "Exception placeholder"
|
43
|
+
end
|
44
|
+
|
45
|
+
action
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
# Build the param hash to be used by GroupMembershipForm
|
50
|
+
def self.build_params(params, action, current_user)
|
51
|
+
new_params_aggregate = []
|
52
|
+
|
53
|
+
action.each_with_index do |member_action, index|
|
54
|
+
person_id = params["hydramata_group"]["members_attributes"][index.to_s]["id"]
|
55
|
+
if person_id
|
56
|
+
role = params["group_member"]["edit_users_ids"].include?(person_id) ? "manager" : "member"
|
57
|
+
new_params_hash = Hash[person_id: person_id, action: member_action, role: role]
|
58
|
+
new_params_aggregate << new_params_hash
|
59
|
+
end
|
60
|
+
end
|
61
|
+
{ group_id: params[:id], current_user: current_user, title: params["hydramata_group"]["title"], description: params["hydramata_group"]["description"], members: new_params_aggregate }
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
end
|
@@ -4,7 +4,9 @@
|
|
4
4
|
|
5
5
|
<label class="search-scope">
|
6
6
|
<%= radio_button_tag 'works', 'mine', params['works'] == 'mine' %>
|
7
|
-
<span class="label-text">Only My
|
7
|
+
<span class="label-text">Only My
|
8
|
+
<%= catalog_type %>
|
9
|
+
</span>
|
8
10
|
</label>
|
9
11
|
|
10
12
|
<label class="search-scope">
|
@@ -37,6 +37,16 @@
|
|
37
37
|
</div>
|
38
38
|
</div>
|
39
39
|
|
40
|
+
<div class="control-group string required collection_description">
|
41
|
+
<%= render :partial => 'catalog/_index_partials/thumbnail_display', locals: {document: @collection} %>
|
42
|
+
<span class="control-label">
|
43
|
+
<%= f.label :avatar %>
|
44
|
+
</span>
|
45
|
+
<div class="controls">
|
46
|
+
<%= f.file_field :file, label: 'Upload the file' %>
|
47
|
+
</div>
|
48
|
+
</div>
|
49
|
+
|
40
50
|
<%= render partial: 'form_permission', locals: {f: f} %>
|
41
51
|
|
42
52
|
<%= hidden_collection_members %>
|
@@ -1,5 +1,6 @@
|
|
1
1
|
<% content_for :page_title, curation_concern_page_title(@collection) %>
|
2
2
|
<% content_for :page_header do %>
|
3
|
+
<%= render :partial => 'catalog/_index_partials/thumbnail_display', locals: {document: @collection} %>
|
3
4
|
<h1> <%= @collection.title %> </h1>
|
4
5
|
<% end %>
|
5
6
|
<% if can? :edit, @collection %>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<%- if person.medium.has_content? -%>
|
2
|
-
<%= image_tag download_path( person.pid, { datastream_id: 'medium' } ) %>
|
2
|
+
<%= image_tag download_path( person.pid, { datastream_id: 'medium' } ), class: 'framed-picture' %>
|
3
3
|
<%- else -%>
|
4
|
-
<%= image_tag person.gravatar_link, class: 'gravatar' %>
|
4
|
+
<%= image_tag person.gravatar_link, class: 'gravatar, framed-picture' %>
|
5
5
|
<%- end -%>
|
@@ -1,50 +1,28 @@
|
|
1
1
|
<% content_for :page_title, "#{person_name_or_stub(@person)} // Curate" %>
|
2
2
|
|
3
3
|
<% content_for :page_header do %>
|
4
|
-
<hgroup>
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
</hgroup>
|
4
|
+
<hgroup>
|
5
|
+
<h1><%= @person.name %></h1>
|
6
|
+
<% unless @person.title.blank? %>
|
7
|
+
<h3><%= @person.title %></h3>
|
8
|
+
<% end %>
|
9
|
+
</hgroup>
|
10
10
|
<% end %>
|
11
|
-
<div class="row">
|
12
11
|
|
13
|
-
|
14
|
-
<div class="profile-picture">
|
15
|
-
<%= render partial: 'profile_image', locals: {person: @person} %>
|
16
|
-
</div>
|
17
|
-
|
18
|
-
<dl class="<%= dom_class(@person) %>">
|
19
|
-
<%# This is where I tell Jeremy I'm sorry. %>
|
20
|
-
<% @person.terms_for_display.reject{|name| name == :name}.each do |attribute_name| %>
|
21
|
-
<% if @person.send(attribute_name).present? %>
|
22
|
-
<dt><%="#{derived_label_for( @person, attribute_name) }:" %></dt>
|
23
|
-
<% [@person.send(attribute_name)].flatten.compact.each do |value| %>
|
24
|
-
<%= auto_link_without_protocols(value) %>
|
25
|
-
<% end %>
|
26
|
-
<% end %>
|
27
|
-
<% end %>
|
28
|
-
</dl>
|
12
|
+
<div class="row">
|
29
13
|
|
30
|
-
|
31
|
-
<div class="form-action">
|
32
|
-
<%= link_to "Update Personal Information", edit_user_registration_path, class: 'btn btn-primary' %>
|
33
|
-
</div>
|
34
|
-
<% end %>
|
35
|
-
</div>
|
14
|
+
<div id="person_profile" class="span8">
|
36
15
|
|
37
|
-
<div id="person_profile" class="span9">
|
38
16
|
<% if profile_has_contents?(@person) %>
|
39
17
|
<% if @person.profile.title == @person.name %>
|
40
|
-
<h3
|
18
|
+
<h3>Selected Works</h3>
|
41
19
|
<% else %>
|
42
20
|
<h3><%= @person.profile.title %></h3>
|
43
21
|
<% end %>
|
44
22
|
<p><%= @person.profile.description %> </p>
|
45
23
|
|
46
24
|
<div id="documents" class="clear">
|
47
|
-
<%= list_items_in_collection(@person.profile) %>
|
25
|
+
<%= list_items_in_collection(@person.profile, terminate=false, options={:display_contributors=>false}) %>
|
48
26
|
</div>
|
49
27
|
<% elsif current_user.respond_to?(:person) && @person == current_user.person %>
|
50
28
|
<p class="center no-documents">
|
@@ -52,11 +30,45 @@
|
|
52
30
|
</p>
|
53
31
|
<% end %>
|
54
32
|
|
55
|
-
<% if can_edit_profile_collection?(@person) %>
|
33
|
+
<% if can_edit_profile_collection?(@person) && @person == current_user.person %>
|
34
|
+
<div class="form-action">
|
35
|
+
<%= link_to 'Add a Section to my Profile', new_collection_path(add_to_profile: true), class: 'btn btn-primary' %>
|
36
|
+
</div>
|
37
|
+
<% end %>
|
38
|
+
</div>
|
39
|
+
|
40
|
+
<div id="profile_details" class="span4, profile-details">
|
41
|
+
<div class="profile-picture">
|
42
|
+
<%= render partial: 'profile_image', locals: {person: @person} %>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
<table class="<%= dom_class(@person) %>">
|
46
|
+
|
47
|
+
<% @person.terms_for_display.reject{|name| name == :name}.each do |attribute_name| %>
|
48
|
+
<% if @person.send(attribute_name).present? %>
|
49
|
+
<tr>
|
50
|
+
<th scope="row"><%="#{derived_label_for( @person, attribute_name) }:" %></th>
|
51
|
+
<td>
|
52
|
+
<% [@person.send(attribute_name)].flatten.compact.each do |value| %>
|
53
|
+
<%= auto_link_without_protocols(value) %>
|
54
|
+
<% end %>
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
<% end %>
|
58
|
+
<% end %>
|
59
|
+
|
60
|
+
</table>
|
61
|
+
|
62
|
+
<% if can? :edit, @person %>
|
56
63
|
<div class="form-action">
|
57
|
-
|
64
|
+
<% if current_user.manager? %>
|
65
|
+
<%= link_to "Update #{@person.name}'s Information", edit_user_path(User.where(repository_id: @person.id).first.id), class: 'btn btn-primary' %>
|
66
|
+
<% else %>
|
67
|
+
<%= link_to "Update Personal Information", edit_user_registration_path, class: 'btn btn-primary' %>
|
68
|
+
<% end %>
|
58
69
|
</div>
|
59
70
|
<% end %>
|
60
71
|
</div>
|
72
|
+
|
61
73
|
</div>
|
62
74
|
|
@@ -3,6 +3,15 @@
|
|
3
3
|
<%= render "form_required_information", curation_concern: curation_concern, f: f %>
|
4
4
|
</div>
|
5
5
|
|
6
|
+
|
7
|
+
<div class="span6" id="required-information">
|
8
|
+
<%= render "linked_editors", curation_concern: curation_concern, f: f %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="span6" id="additional-information">
|
12
|
+
<%= render "linked_groups", curation_concern: curation_concern, f: f %>
|
13
|
+
</div>
|
14
|
+
|
6
15
|
<div class="span6" id="additional-information">
|
7
16
|
<%= render "form_additional_information", curation_concern: curation_concern, f: f %>
|
8
17
|
</div>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<% label ||= 'Editor' %>
|
2
|
+
<div class="control-group required link-users" id="editors">
|
3
|
+
<span class="control-label">
|
4
|
+
<label class="required" for="<%=f.object.class.to_s.downcase%>_editors_attributes_0_name">
|
5
|
+
<%# NOTE: Whenever you just copy the HTML generated by Simple Form it breaks internationalization %>
|
6
|
+
<%= I18n.t('simple_form.required.html', default: '<abbr title="" data-original-title="required">*</abbr>').html_safe %>
|
7
|
+
<%= label %>
|
8
|
+
</label>
|
9
|
+
</span>
|
10
|
+
<div class="controls">
|
11
|
+
<% prefix = f.object.class.to_s.downcase %>
|
12
|
+
|
13
|
+
<script id="entry-template" type="text/x-handlebars-template">
|
14
|
+
<li class="field-wrapper input-append">
|
15
|
+
<input id="<%=prefix %>_editors_attributes_{{index}}_id" name="<%=prefix %>[editors_attributes][{{index}}][id]" type="hidden" value="" />
|
16
|
+
<input class="input-xlarge autocomplete-users" data-url="/people" id="<%=prefix %>_editors_attributes_{{index}}_name" name="<%=prefix %>[editors_attributes][{{index}}][name]" type="text" value="" />
|
17
|
+
<span class="field-controls"><button class="btn btn-success add"><i class="icon-white icon-plus"></i><span>Add</span></button></span>
|
18
|
+
</li>
|
19
|
+
</script>
|
20
|
+
<script id="existing-user-template" type="text/x-handlebars-template">
|
21
|
+
<li class="field-wrapper input-append">
|
22
|
+
<span class="linked-user"><a href="/people/{{value}}" target="_new">{{label}}</a></span>
|
23
|
+
<input type="hidden" name="<%=prefix %>[editors_attributes][{{index}}][id]" value="{{value}}">
|
24
|
+
<span class="field-controls"><button class="btn btn-danger remove"><i class="icon-white icon-minus"></i><span>Remove</span></button></span>
|
25
|
+
</li>
|
26
|
+
</script>
|
27
|
+
<ul class="listing">
|
28
|
+
|
29
|
+
<%= f.fields_for :editors do |editor| %>
|
30
|
+
<li class="field-wrapper input-append">
|
31
|
+
<%= editor.hidden_field :id %>
|
32
|
+
<%= editor.hidden_field :_destroy %>
|
33
|
+
<% if editor.object.persisted? %>
|
34
|
+
<span class="linked-user"><%=link_to editor.object.name, person_path(editor.object), target: '_new' %></span>
|
35
|
+
<% else %>
|
36
|
+
<%= editor.text_field :name,
|
37
|
+
class: 'input-xlarge autocomplete-users', 'data-url' => people_path, required: editor.index == 0 %>
|
38
|
+
<% end %>
|
39
|
+
|
40
|
+
<span class="field-controls"></span>
|
41
|
+
</li>
|
42
|
+
<% end %>
|
43
|
+
|
44
|
+
</ul>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<% label ||= 'Groups' %>
|
2
|
+
<div class="control-group required link-groups" id="groups">
|
3
|
+
<span class="control-label">
|
4
|
+
<label for="<%=f.object.class.to_s.downcase%>_editor_groups_attributes_0_title">
|
5
|
+
<%# NOTE: Whenever you just copy the HTML generated by Simple Form it breaks internationalization %>
|
6
|
+
<%= label %>
|
7
|
+
</label>
|
8
|
+
</span>
|
9
|
+
<div class="controls">
|
10
|
+
<% prefix = f.object.class.to_s.downcase %>
|
11
|
+
|
12
|
+
<script id="entry-template" type="text/x-handlebars-template">
|
13
|
+
<li class="field-wrapper input-append">
|
14
|
+
<input id="<%=prefix %>_editor_groups_attributes_{{index}}_id" name="<%=prefix %>[editor_groups_attributes][{{index}}][id]" type="hidden" value="" />
|
15
|
+
<input class="input-xlarge autocomplete-groups" data-url="/hydramata/groups" id="<%=prefix %>_editor_groups_attributes_{{index}}_title" name="<%=prefix %>[editor_groups_attributes][{{index}}][title]" type="text" value="" />
|
16
|
+
<span class="field-controls"><button class="btn btn-success add"><i class="icon-white icon-plus"></i><span>Add</span></button></span>
|
17
|
+
</li>
|
18
|
+
</script>
|
19
|
+
<script id="existing-group-template" type="text/x-handlebars-template">
|
20
|
+
<li class="field-wrapper input-append">
|
21
|
+
<span class="linked-group"><a href="/hydramata/groups/{{value}}" target="_new">{{label}}</a></span>
|
22
|
+
<input type="hidden" name="<%=prefix %>[editor_groups_attributes][{{index}}][id]" value="{{value}}">
|
23
|
+
<span class="field-controls"><button class="btn btn-danger remove"><i class="icon-white icon-minus"></i><span>Remove</span></button></span>
|
24
|
+
</li>
|
25
|
+
</script>
|
26
|
+
<ul class="listing">
|
27
|
+
|
28
|
+
<%= f.fields_for :editor_groups do |group| %>
|
29
|
+
<li class="field-wrapper input-append">
|
30
|
+
<%= group.hidden_field :id %>
|
31
|
+
<%= group.hidden_field :_destroy %>
|
32
|
+
<% if group.object.persisted? %>
|
33
|
+
<span class="linked-group"><%=link_to group.object.title, hydramata_group_path(group.object), target: '_new' %></span>
|
34
|
+
<% else %>
|
35
|
+
<%= group.text_field :title, class: 'input-xlarge autocomplete-groups', 'data-url' => hydramata_groups_path %>
|
36
|
+
<% end %>
|
37
|
+
|
38
|
+
<span class="field-controls"></span>
|
39
|
+
</li>
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
</ul>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<% label ||= 'People with Edit Access' %>
|
2
|
+
<div class="control-group required link-users" id="editors">
|
3
|
+
<span class="control-label">
|
4
|
+
<label class="required" for="<%=f.object.class.to_s.downcase%>_editors_0_name">
|
5
|
+
<%# NOTE: Whenever you just copy the HTML generated by Simple Form it breaks internationalization %>
|
6
|
+
<%= I18n.t('simple_form.required.html', default: '<abbr title="" data-original-title="required">*</abbr>').html_safe %>
|
7
|
+
<%= label %>
|
8
|
+
</label>
|
9
|
+
</span>
|
10
|
+
<div class="controls">
|
11
|
+
<% prefix = f.object.class.to_s.downcase %>
|
12
|
+
<script id="entry-template" type="text/x-handlebars-template">
|
13
|
+
<li class="field-wrapper input-append">
|
14
|
+
<input id="<%=prefix %>_editors_{{index}}_id" name="<%=prefix %>[editors][{{index}}][id]" type="hidden" value="" />
|
15
|
+
<input class="input-xlarge autocomplete-users" data-url="/people" id="<%=prefix %>_editors_{{index}}_name" name="<%=prefix %>[editors][{{index}}][name]" type="text" value="" />
|
16
|
+
<span class="field-controls"><button class="btn btn-success add"><i class="icon-white icon-plus"></i><span>Add</span></button></span>
|
17
|
+
</li>
|
18
|
+
</script>
|
19
|
+
<script id="existing-user-template" type="text/x-handlebars-template">
|
20
|
+
<li class="field-wrapper input-append">
|
21
|
+
<span class="linked-user"><a href="/people/{{value}}" target="_new">{{label}}</a></span>
|
22
|
+
<input type="hidden" name="<%=prefix %>[editors][{{index}}][id]" value="{{value}}">
|
23
|
+
<span class="field-controls"><button class="btn btn-danger remove"><i class="icon-white icon-minus"></i><span>Remove</span></button></span>
|
24
|
+
</li>
|
25
|
+
</script>
|
26
|
+
<ul class="listing">
|
27
|
+
<%= f.fields_for :editors do |editor| %>
|
28
|
+
<li class="field-wrapper input-append">
|
29
|
+
<%= editor.hidden_field :id %>
|
30
|
+
<%= editor.hidden_field :_destroy %>
|
31
|
+
<% if editor.object.persisted? %>
|
32
|
+
<span class="linked-user"><%=link_to editor.object.name, editor.object, target: '_new' %></span>
|
33
|
+
<% else %>
|
34
|
+
<%= editor.text_field :name,
|
35
|
+
class: 'input-xlarge autocomplete-users', 'data-url' => people_path, required: editor.index == 0 %>
|
36
|
+
<% end %>
|
37
|
+
|
38
|
+
<span class="field-controls"></span>
|
39
|
+
</li>
|
40
|
+
<% end %>
|
41
|
+
</ul>
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
|