enju_bookmark 0.2.2 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +14 -0
- data/Rakefile +2 -2
- data/app/assets/config/enju_bookmark_manifest.js +0 -0
- data/app/controllers/bookmarks_controller.rb +2 -2
- data/app/controllers/tags_controller.rb +6 -6
- data/app/models/bookmark.rb +7 -7
- data/app/models/bookmark_stat.rb +2 -2
- data/app/models/bookmark_stat_has_manifestation.rb +1 -1
- data/app/models/bookmark_stat_transition.rb +3 -4
- data/app/models/concerns/enju_bookmark/enju_user.rb +1 -1
- data/app/models/tag.rb +8 -9
- data/app/policies/acts_as_taggable_on/tag_policy.rb +21 -0
- data/app/views/tags/index.rss.builder +3 -3
- data/db/migrate/055_create_bookmarks.rb +3 -3
- data/db/migrate/20081212151614_create_bookmark_stats.rb +1 -1
- data/db/migrate/20081212151820_create_bookmark_stat_has_manifestations.rb +3 -3
- data/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb +2 -2
- data/db/migrate/20140524135607_create_bookmark_stat_transitions.rb +1 -1
- data/db/migrate/20140812093836_add_share_bookmarks_to_profile.rb +1 -1
- data/db/migrate/20160815045420_add_most_recent_to_bookmark_stat_transitions.rb +1 -1
- data/db/migrate/20180107172413_add_constraints_to_most_recent_for_bookmark_stat_transitions.rb +1 -1
- data/db/migrate/20180709023035_acts_as_taggable_on_migration.acts_as_taggable_on_engine.rb +36 -0
- data/db/migrate/{20141013152011_add_missing_unique_indices.acts_as_taggable_on_engine.rb → 20180709023036_add_missing_unique_indices.acts_as_taggable_on_engine.rb} +9 -3
- data/db/migrate/{20141013152012_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb → 20180709023037_add_taggings_counter_cache_to_tags.acts_as_taggable_on_engine.rb} +6 -1
- data/db/migrate/{20141013152013_add_missing_taggable_index.acts_as_taggable_on_engine.rb → 20180709023038_add_missing_taggable_index.acts_as_taggable_on_engine.rb} +6 -1
- data/db/migrate/20180709023039_change_collation_for_tag_names.acts_as_taggable_on_engine.rb +15 -0
- data/db/migrate/20180709023040_add_missing_indexes_on_taggings.acts_as_taggable_on_engine.rb +23 -0
- data/db/migrate/20180709161346_add_created_at_to_tag.rb +6 -0
- data/lib/enju_bookmark/bookmark_helper.rb +7 -7
- data/lib/enju_bookmark/bookmark_url.rb +1 -1
- data/lib/enju_bookmark/engine.rb +3 -0
- data/lib/enju_bookmark/expire_tag_cloud.rb +2 -2
- data/lib/enju_bookmark/suggest_tag.rb +1 -1
- data/lib/enju_bookmark/version.rb +1 -1
- data/lib/enju_bookmark.rb +1 -1
- data/spec/controllers/bookmark_stats_controller_spec.rb +47 -47
- data/spec/controllers/bookmarks_controller_spec.rb +94 -94
- data/spec/controllers/manifestations_controller_spec.rb +48 -0
- data/spec/controllers/tags_controller_spec.rb +32 -32
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/models/user.rb +1 -1
- data/spec/dummy/bin/rails +1 -1
- data/spec/dummy/bin/setup +21 -12
- data/spec/dummy/bin/update +29 -0
- data/spec/dummy/bin/yarn +11 -0
- data/spec/dummy/config/application.rb +6 -16
- data/spec/dummy/config/boot.rb +4 -9
- data/spec/dummy/config/cable.yml +10 -0
- data/spec/dummy/config/database.yml +17 -22
- data/spec/dummy/config/environment.rb +4 -4
- data/spec/dummy/config/environments/development.rb +24 -11
- data/spec/dummy/config/environments/production.rb +28 -16
- data/spec/dummy/config/environments/test.rb +6 -8
- data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/spec/dummy/config/initializers/assets.rb +14 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +9 -3
- data/spec/dummy/config/initializers/mime_types.rb +0 -1
- data/spec/dummy/config/initializers/wrap_parameters.rb +5 -5
- data/spec/dummy/config/locales/en.yml +30 -2
- data/spec/dummy/config/puma.rb +56 -0
- data/spec/dummy/config/secrets.yml +32 -0
- data/spec/dummy/config/spring.rb +6 -0
- data/spec/dummy/config/sunspot.yml +23 -0
- data/spec/dummy/db/migrate/001_create_agents.rb +7 -7
- data/spec/dummy/db/migrate/005_create_manifestations.rb +10 -10
- data/spec/dummy/db/migrate/006_create_items.rb +6 -6
- data/spec/dummy/db/migrate/012_create_owns.rb +3 -3
- data/spec/dummy/db/migrate/015_create_creates.rb +3 -3
- data/spec/dummy/db/migrate/029_create_subjects.rb +4 -4
- data/spec/dummy/db/migrate/032_create_checkins.rb +2 -2
- data/spec/dummy/db/migrate/033_create_checkouts.rb +5 -5
- data/spec/dummy/db/migrate/035_create_reserves.rb +6 -6
- data/spec/dummy/db/migrate/041_create_roles.rb +3 -3
- data/spec/dummy/db/migrate/047_create_produces.rb +3 -3
- data/spec/dummy/db/migrate/059_create_libraries.rb +1 -1
- data/spec/dummy/db/migrate/069_create_shelves.rb +1 -1
- data/spec/dummy/db/migrate/073_create_carrier_types.rb +2 -2
- data/spec/dummy/db/migrate/077_create_user_groups.rb +2 -2
- data/spec/dummy/db/migrate/080_create_library_groups.rb +1 -1
- data/spec/dummy/db/migrate/112_create_frequencies.rb +2 -2
- data/spec/dummy/db/migrate/113_create_events.rb +4 -4
- data/spec/dummy/db/migrate/114_create_event_categories.rb +2 -2
- data/spec/dummy/db/migrate/117_create_form_of_works.rb +2 -2
- data/spec/dummy/db/migrate/120_create_baskets.rb +1 -1
- data/spec/dummy/db/migrate/121_create_checked_items.rb +4 -4
- data/spec/dummy/db/migrate/124_create_bookstores.rb +2 -2
- data/spec/dummy/db/migrate/125_create_donates.rb +3 -3
- data/spec/dummy/db/migrate/127_create_use_restrictions.rb +2 -2
- data/spec/dummy/db/migrate/129_create_item_has_use_restrictions.rb +3 -3
- data/spec/dummy/db/migrate/130_create_request_status_types.rb +2 -2
- data/spec/dummy/db/migrate/131_create_request_types.rb +2 -2
- data/spec/dummy/db/migrate/132_create_circulation_statuses.rb +2 -2
- data/spec/dummy/db/migrate/133_create_agent_merges.rb +2 -2
- data/spec/dummy/db/migrate/134_create_agent_merge_lists.rb +1 -1
- data/spec/dummy/db/migrate/142_create_classifications.rb +3 -3
- data/spec/dummy/db/migrate/144_create_classification_types.rb +2 -2
- data/spec/dummy/db/migrate/145_create_subject_heading_types.rb +2 -2
- data/spec/dummy/db/migrate/146_create_subject_types.rb +2 -2
- data/spec/dummy/db/migrate/149_create_message_templates.rb +6 -6
- data/spec/dummy/db/migrate/154_create_messages.rb +3 -3
- data/spec/dummy/db/migrate/20080819181903_create_message_requests.rb +1 -1
- data/spec/dummy/db/migrate/20080830154109_create_realizes.rb +3 -3
- data/spec/dummy/db/migrate/20080830172106_create_exemplifies.rb +4 -4
- data/spec/dummy/db/migrate/20080905191442_create_agent_types.rb +2 -2
- data/spec/dummy/db/migrate/20081006090811_create_subscriptions.rb +1 -1
- data/spec/dummy/db/migrate/20081006093246_create_subscribes.rb +1 -1
- data/spec/dummy/db/migrate/20081023092436_create_search_engines.rb +6 -6
- data/spec/dummy/db/migrate/20081025083323_create_countries.rb +5 -5
- data/spec/dummy/db/migrate/20081025083905_create_languages.rb +6 -6
- data/spec/dummy/db/migrate/20081027150907_create_picture_files.rb +2 -4
- data/spec/dummy/db/migrate/20081028083142_create_agent_import_files.rb +1 -1
- data/spec/dummy/db/migrate/20081028083208_create_resource_import_files.rb +1 -1
- data/spec/dummy/db/migrate/20081030023412_create_checkout_types.rb +2 -2
- data/spec/dummy/db/migrate/20081030023518_create_user_group_has_checkout_types.rb +9 -9
- data/spec/dummy/db/migrate/20081030023615_create_carrier_type_has_checkout_types.rb +4 -4
- data/spec/dummy/db/migrate/20081212075554_create_checkout_stat_has_manifestations.rb +5 -5
- data/spec/dummy/db/migrate/20081212080038_create_manifestation_checkout_stats.rb +1 -1
- data/spec/dummy/db/migrate/20081215094302_create_user_checkout_stats.rb +1 -1
- data/spec/dummy/db/migrate/20081215094955_create_checkout_stat_has_users.rb +4 -4
- data/spec/dummy/db/migrate/20081216190517_create_reserve_stat_has_manifestations.rb +4 -4
- data/spec/dummy/db/migrate/20081216190724_create_manifestation_reserve_stats.rb +1 -1
- data/spec/dummy/db/migrate/20081220023628_create_user_reserve_stats.rb +1 -1
- data/spec/dummy/db/migrate/20081220034117_create_reserve_stat_has_users.rb +3 -3
- data/spec/dummy/db/migrate/20090321130448_add_completed_at_to_user_checkout_stat.rb +1 -1
- data/spec/dummy/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +1 -1
- data/spec/dummy/db/migrate/20090705212043_add_attachments_attachment_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20090719201843_create_extents.rb +2 -2
- data/spec/dummy/db/migrate/20090720091106_create_medium_of_performances.rb +2 -2
- data/spec/dummy/db/migrate/20090720091429_create_content_types.rb +2 -2
- data/spec/dummy/db/migrate/20090812151902_create_agent_relationship_types.rb +2 -2
- data/spec/dummy/db/migrate/20090831220301_create_lending_policies.rb +7 -7
- data/spec/dummy/db/migrate/20091012101112_add_dcndl_schema.rb +1 -1
- data/spec/dummy/db/migrate/20091025080447_create_licenses.rb +2 -2
- data/spec/dummy/db/migrate/20091202124834_create_versions.rb +4 -4
- data/spec/dummy/db/migrate/20091214131723_create_series_statements.rb +1 -1
- data/spec/dummy/db/migrate/20100129142347_create_import_requests.rb +1 -1
- data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +1 -1
- data/spec/dummy/db/migrate/20100314190054_add_opening_hour_to_library.rb +1 -1
- data/spec/dummy/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20100525124311_create_manifestation_relationships.rb +1 -1
- data/spec/dummy/db/migrate/20100606065209_create_user_has_roles.rb +1 -1
- data/spec/dummy/db/migrate/20100606073747_create_agent_relationships.rb +1 -1
- data/spec/dummy/db/migrate/20100607044753_create_manifestation_relationship_types.rb +2 -2
- data/spec/dummy/db/migrate/20100814091104_add_position_to_agent_relationship.rb +1 -1
- data/spec/dummy/db/migrate/20100925043847_create_resource_import_results.rb +1 -1
- data/spec/dummy/db/migrate/20100925074559_create_agent_import_results.rb +1 -1
- data/spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb +1 -1
- data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +2 -2
- data/spec/dummy/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20110301121550_add_birth_date_and_death_date_to_agent.rb +1 -1
- data/spec/dummy/db/migrate/20110301134521_add_expire_date_to_reserve.rb +1 -1
- data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +2 -2
- data/spec/dummy/db/migrate/20110328130826_add_current_checkout_count_to_user_group_has_checkout_type.rb +1 -1
- data/spec/dummy/db/migrate/20110425133109_add_issn_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20110603184217_add_edit_mode_to_resource_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20110618091240_add_periodical_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20110620173525_add_bookstore_id_to_item.rb +1 -1
- data/spec/dummy/db/migrate/20110621093332_remove_expire_date_from_reserve.rb +1 -1
- data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +1 -1
- data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +3 -3
- data/spec/dummy/db/migrate/20110627122938_add_number_of_day_to_notify_overdue_to_user_group.rb +4 -4
- data/spec/dummy/db/migrate/20110820131417_create_series_has_manifestations.rb +1 -1
- data/spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +1 -1
- data/spec/dummy/db/migrate/20110913120629_add_lft_and_rgt_to_classification.rb +1 -1
- data/spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20110918162329_add_note_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20111009183423_add_ndc_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20111124110059_create_create_types.rb +1 -1
- data/spec/dummy/db/migrate/20111124110319_create_realize_types.rb +1 -1
- data/spec/dummy/db/migrate/20111124110355_create_produce_types.rb +1 -1
- data/spec/dummy/db/migrate/20111124112131_add_create_type_to_create.rb +1 -1
- data/spec/dummy/db/migrate/20111201155456_devise_create_users.rb +6 -6
- data/spec/dummy/db/migrate/20111217234412_add_save_checkout_history_to_user.rb +2 -2
- data/spec/dummy/db/migrate/20111218002349_add_checkout_icalendar_token_to_user.rb +2 -2
- data/spec/dummy/db/migrate/20120105074911_add_isil_to_library.rb +1 -1
- data/spec/dummy/db/migrate/20120125050502_add_depth_to_message.rb +1 -1
- data/spec/dummy/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20120129014038_create_budget_types.rb +1 -1
- data/spec/dummy/db/migrate/20120129020544_add_budget_type_id_to_item.rb +1 -1
- data/spec/dummy/db/migrate/20120224094141_create_delayed_jobs.rb +5 -5
- data/spec/dummy/db/migrate/20120319120638_add_content_type_id_to_manifestation.rb +2 -2
- data/spec/dummy/db/migrate/20120319173203_create_accepts.rb +1 -1
- data/spec/dummy/db/migrate/20120406020752_add_url_to_subject.rb +1 -1
- data/spec/dummy/db/migrate/20120410104851_add_year_of_publication_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +1 -1
- data/spec/dummy/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +1 -1
- data/spec/dummy/db/migrate/20120413161340_add_fingerprint_to_resource_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20120413161403_add_fingerprint_to_agent_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20120413170705_add_error_message_to_resource_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20120413170720_add_error_message_to_agent_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20120415164821_add_attachment_meta_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20120418081407_add_month_of_publication_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20120424103932_add_librarian_id_to_checked_item.rb +1 -1
- data/spec/dummy/db/migrate/20120510140958_add_closed_to_shelf.rb +2 -2
- data/spec/dummy/db/migrate/20120511072422_add_agent_identifier_to_agent.rb +1 -1
- data/spec/dummy/db/migrate/20120602141129_add_edit_mode_to_agent_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20120728204337_create_series_statement_relationships.rb +1 -1
- data/spec/dummy/db/migrate/20121116031206_add_fulltext_content_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20121116033446_add_doi_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20130221154434_add_additional_attributes_to_user.rb +4 -4
- data/spec/dummy/db/migrate/20130303124821_add_retained_at_to_reserve.rb +1 -1
- data/spec/dummy/db/migrate/20130304015019_add_postponed_at_to_reserve.rb +1 -1
- data/spec/dummy/db/migrate/20130412083556_add_latitude_and_longitude_to_library.rb +1 -1
- data/spec/dummy/db/migrate/20130416054135_add_circulation_status_id_to_item.rb +3 -3
- data/spec/dummy/db/migrate/20130421093852_add_periodical_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20130421155019_add_creator_string_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20130421164124_add_series_master_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20130429020822_add_root_manifestation_id_to_series_statement.rb +1 -1
- data/spec/dummy/db/migrate/20130504133816_add_manifestation_id_to_subject.rb +1 -1
- data/spec/dummy/db/migrate/20130504143515_add_manifestation_id_to_classification.rb +1 -1
- data/spec/dummy/db/migrate/20130504195916_add_subject_heading_type_id_to_subject.rb +1 -1
- data/spec/dummy/db/migrate/20130506175303_create_identifier_types.rb +1 -1
- data/spec/dummy/db/migrate/20130506175834_create_identifiers.rb +3 -3
- data/spec/dummy/db/migrate/20130509185724_add_statement_of_responsibility_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20130519065638_add_lock_version_to_reserve.rb +2 -2
- data/spec/dummy/db/migrate/20130519065837_add_lock_version_to_checkin.rb +2 -2
- data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +1 -1
- data/spec/dummy/db/migrate/20140110131010_create_user_import_results.rb +1 -1
- data/spec/dummy/db/migrate/20140122054321_create_profiles.rb +2 -2
- data/spec/dummy/db/migrate/20140518050147_create_reserve_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140518111006_create_message_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140518135713_create_message_request_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140519170214_create_resource_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140519171220_create_import_request_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140524020735_create_agent_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140524074813_create_user_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140528045518_create_user_checkout_stat_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140528045539_create_user_reserve_stat_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140528045600_create_manifestation_checkout_stat_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140528045617_create_manifestation_reserve_stat_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140610123439_drop_email_unique_constraint_enju_leaf_rc10.rb +1 -1
- data/spec/dummy/db/migrate/20140614065404_create_resource_export_files.rb +1 -1
- data/spec/dummy/db/migrate/20140614141500_create_resource_export_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20140628073524_add_user_encoding_to_agent_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20140628073535_add_user_encoding_to_resource_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20140709113413_create_user_export_files.rb +1 -1
- data/spec/dummy/db/migrate/20140709113905_create_user_export_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20140720140916_add_binding_item_identifier_to_item.rb +1 -1
- data/spec/dummy/db/migrate/20140720170714_add_default_library_id_to_user_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20140720170735_add_default_user_group_id_to_user_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20140721151416_add_default_shelf_id_to_resource_import_file.rb +1 -1
- data/spec/dummy/db/migrate/20140802082007_add_manifestation_id_to_item.rb +1 -1
- data/spec/dummy/db/migrate/20140810061942_add_user_id_to_user_checkout_stat.rb +1 -1
- data/spec/dummy/db/migrate/20140810091231_add_checkout_icalendar_token_to_profile.rb +2 -2
- data/spec/dummy/db/migrate/20140810091417_add_save_checkout_history_to_profile.rb +2 -2
- data/spec/dummy/db/migrate/20140811031145_add_expired_at_to_profile.rb +1 -1
- data/spec/dummy/db/migrate/20140813182425_add_publication_place_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20140821151023_create_colors.rb +1 -1
- data/spec/dummy/db/migrate/20140822114527_add_error_message_to_resource_import_result.rb +1 -1
- data/spec/dummy/db/migrate/20140823083524_add_extent_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20140823094847_add_dimensions_to_manifestation.rb +1 -1
- data/spec/dummy/db/migrate/20140823095740_rename_manifestation_periodical_to_serial.rb +1 -1
- data/spec/dummy/db/migrate/20141003181336_add_full_name_transcription_to_profile.rb +1 -1
- data/spec/dummy/db/migrate/20141003182825_add_date_of_birth_to_profile.rb +1 -1
- data/spec/dummy/db/migrate/20141014065831_add_shelf_id_to_checkout.rb +1 -1
- data/spec/dummy/db/migrate/20150117111136_add_foreign_key_to_items_referencing_manifestations.rb +1 -1
- data/spec/dummy/db/migrate/20150124152756_add_foreign_key_to_shelves_referencing_libraries.rb +1 -1
- data/spec/dummy/db/migrate/20150221063719_add_settings_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20150506105356_add_error_message_to_user_import_result.rb +1 -1
- data/spec/dummy/db/migrate/20150924115059_create_withdraws.rb +1 -1
- data/spec/dummy/db/migrate/20151125004028_add_profile_id_to_agent.rb +1 -1
- data/spec/dummy/db/migrate/20151213070943_add_translation_table_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20151213072705_add_footer_banner_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20160610093229_add_html_snippet_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20160627232219_add_most_recent_to_user_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160627232316_add_most_recent_to_user_export_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160703185015_add_most_recent_to_message_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160801080612_add_most_recent_to_import_request_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160801080619_add_most_recent_to_resource_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160801080637_add_most_recent_to_resource_export_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160801080643_add_most_recent_to_agent_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160811102604_add_picture_width_to_picture_file.rb +1 -1
- data/spec/dummy/db/migrate/20160813191647_add_max_number_of_results_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20160813191733_add_family_name_first_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20160813192542_add_pub_year_facet_range_interval_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20160813203039_add_user_id_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20160814165332_add_most_recent_to_message_request_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20160820004638_add_attachment_attachment_to_carrier_types.rb +1 -1
- data/spec/dummy/db/migrate/20170305064014_add_csv_charset_conversion_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20171014084528_add_header_logo_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20171119051258_set_not_null_to_manifestation_id_on_items.rb +1 -1
- data/spec/dummy/db/migrate/20171126133835_rename_login_banner_to_old_login_banner.rb +1 -1
- data/spec/dummy/db/migrate/20171126135238_add_foreign_key_to_library_group_id_on_library.rb +1 -1
- data/spec/dummy/db/migrate/20180102162311_add_header_logo_meta_to_library_group.rb +1 -1
- data/spec/dummy/db/migrate/20180107161311_add_constraints_to_most_recent_for_agent_import_file_transitions.rb +13 -0
- data/spec/dummy/db/migrate/20180107161331_add_constraints_to_most_recent_for_resource_import_file_transitions.rb +13 -0
- data/spec/dummy/db/migrate/20180107161347_add_constraints_to_most_recent_for_resource_export_file_transitions.rb +13 -0
- data/spec/dummy/db/migrate/20180107161410_add_constraints_to_most_recent_for_import_request_transitions.rb +13 -0
- data/spec/dummy/db/migrate/20190818075603_add_memo_to_manifestation.rb +5 -0
- data/spec/dummy/db/migrate/20190818075628_add_memo_to_item.rb +5 -0
- data/spec/dummy/db/migrate/20200425072340_create_manifestation_custom_properties.rb +12 -0
- data/spec/dummy/db/migrate/20200425072349_create_item_custom_properties.rb +12 -0
- data/spec/dummy/db/migrate/20200425074758_create_manifestation_custom_values.rb +12 -0
- data/spec/dummy/db/migrate/20200425074822_create_item_custom_values.rb +12 -0
- data/spec/dummy/db/schema.rb +948 -977
- data/spec/factories/bookmark.rb +5 -4
- data/spec/factories/bookmark_stat.rb +2 -2
- data/spec/factories/library.rb +1 -1
- data/spec/factories/manifestation.rb +8 -0
- data/spec/factories/profile.rb +3 -3
- data/spec/factories/user.rb +13 -13
- data/spec/fixtures/frequencies.yml +68 -0
- data/spec/models/bookmark_spec.rb +3 -3
- data/spec/rails_helper.rb +1 -14
- metadata +340 -274
- data/README.rdoc +0 -10
- data/db/migrate/20100525171356_acts_as_taggable_on_migration.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a45a9ed061fe90a32748d0684e801e96c2b493d6d976345a6e4342831c01e086
|
4
|
+
data.tar.gz: 33e7524246b6bb3ad6a4bf489e234487978bafd9a42ea0f65d59959684132fd4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b35e3e4292d17916b3b345e95b91c2326282822c566021482b747e70bfe9c21949401597c2a9c5c26770c0874c56396e381cb96649e1a9fba829c093390f130
|
7
|
+
data.tar.gz: 5fe6dc4dd24a51a1d2050d5b509a440052753c783f34d92d61920cbbc01a021151296bc2663cd28c5169513f13ee63f0eb50378dbab7c8cba23a113c27dc077c
|
data/README.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# EnjuBookmark
|
2
|
+
[<img src="https://travis-ci.com/next-l/enju_bookmark.svg?branch=1.3"
|
3
|
+
alt="Build Status" />](https://travis-ci.com/next-l/enju_bookmark) [<img
|
4
|
+
src="https://coveralls.io/repos/next-l/enju_bookmark/badge.svg?branch=1.3&serv
|
5
|
+
ice=github" alt="Coverage Status"
|
6
|
+
/>](https://coveralls.io/github/next-l/enju_bookmark?branch=1.3) [<img
|
7
|
+
src="https://hakiri.io/github/next-l/enju_bookmark/1.3.svg" alt="security"
|
8
|
+
/>](https://hakiri.io/github/next-l/enju_bookmark/1.3)
|
9
|
+
|
10
|
+
This project rocks and uses MIT-LICENSE.
|
11
|
+
|
12
|
+
## 製作者・貢献者 (Authors and contributors)
|
13
|
+
* [TANABE, Kosuke](https://github.com/nabeta) ([@nabeta](https://twitter.com/nabeta))
|
14
|
+
* [Project Next-L](https://www.next-l.jp) ([@ProjectNextL](https://twitter.com/ProjectNextL))
|
data/Rakefile
CHANGED
@@ -16,7 +16,7 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
16
16
|
rdoc.rdoc_dir = 'rdoc'
|
17
17
|
rdoc.title = 'EnjuBookmark'
|
18
18
|
rdoc.options << '--line-numbers'
|
19
|
-
rdoc.rdoc_files.include('README.
|
19
|
+
rdoc.rdoc_files.include('README.md')
|
20
20
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
21
|
end
|
22
22
|
|
@@ -32,4 +32,4 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
|
|
32
32
|
spec.pattern = FileList['spec/**/*_spec.rb']
|
33
33
|
end
|
34
34
|
|
35
|
-
task :
|
35
|
+
task default: :spec
|
File without changes
|
@@ -6,7 +6,7 @@ class BookmarksController < ApplicationController
|
|
6
6
|
# GET /bookmarks
|
7
7
|
# GET /bookmarks.json
|
8
8
|
def index
|
9
|
-
search = Bookmark.search(:
|
9
|
+
search = Bookmark.search(include: [:manifestation])
|
10
10
|
query = params[:query].to_s.strip
|
11
11
|
unless query.blank?
|
12
12
|
@query = query.dup
|
@@ -103,7 +103,7 @@ class BookmarksController < ApplicationController
|
|
103
103
|
access_denied; return
|
104
104
|
end
|
105
105
|
@bookmark.title = @bookmark.manifestation.try(:original_title)
|
106
|
-
@bookmark.taggings.where(:
|
106
|
+
@bookmark.taggings.where(tagger_id: @bookmark.user.id).map{|t| t.destroy}
|
107
107
|
|
108
108
|
respond_to do |format|
|
109
109
|
if @bookmark.update_attributes(bookmark_params)
|
@@ -6,7 +6,7 @@ class TagsController < ApplicationController
|
|
6
6
|
session[:params] ={} unless session[:params]
|
7
7
|
session[:params][:tag] = params
|
8
8
|
|
9
|
-
sort = {:
|
9
|
+
sort = {sort_by: 'created_at', order: 'desc'}
|
10
10
|
case params[:sort_by]
|
11
11
|
when 'name'
|
12
12
|
sort[:sort_by] = 'name'
|
@@ -20,7 +20,7 @@ class TagsController < ApplicationController
|
|
20
20
|
|
21
21
|
@tags = Tag.search do
|
22
22
|
fulltext query if query.present?
|
23
|
-
paginate :
|
23
|
+
paginate page: page.to_i, per_page: Tag.default_per_page
|
24
24
|
order_by sort[:sort_by], sort[:order]
|
25
25
|
end.results
|
26
26
|
|
@@ -40,11 +40,11 @@ class TagsController < ApplicationController
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def edit
|
43
|
-
|
43
|
+
# @tag = Tag.find(params[:id])
|
44
44
|
end
|
45
45
|
|
46
46
|
def update
|
47
|
-
|
47
|
+
# @tag = Tag.find(params[:id])
|
48
48
|
|
49
49
|
respond_to do |format|
|
50
50
|
if @tag.update_attributes(tag_params)
|
@@ -60,7 +60,7 @@ class TagsController < ApplicationController
|
|
60
60
|
# DELETE /tags/1
|
61
61
|
# DELETE /tags/1.json
|
62
62
|
def destroy
|
63
|
-
|
63
|
+
# @tag = Tag.find(params[:id])
|
64
64
|
@tag.destroy
|
65
65
|
|
66
66
|
respond_to do |format|
|
@@ -80,6 +80,6 @@ class TagsController < ApplicationController
|
|
80
80
|
end
|
81
81
|
|
82
82
|
def tag_params
|
83
|
-
params.require(:tag).permit(:name
|
83
|
+
params.require(:tag).permit(:name)
|
84
84
|
end
|
85
85
|
end
|
data/app/models/bookmark.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
class Bookmark <
|
1
|
+
class Bookmark < ApplicationRecord
|
2
2
|
scope :bookmarked, lambda {|start_date, end_date| where('created_at >= ? AND created_at < ?', start_date, end_date)}
|
3
3
|
scope :user_bookmarks, lambda {|user| where(user_id: user.id)}
|
4
4
|
scope :shared, -> {where(shared: true)}
|
5
|
-
belongs_to :manifestation, touch: true
|
6
|
-
belongs_to :user
|
5
|
+
belongs_to :manifestation, touch: true, optional: true
|
6
|
+
belongs_to :user
|
7
7
|
|
8
8
|
validates_presence_of :user, :title
|
9
9
|
validates_presence_of :url, on: :create
|
@@ -76,15 +76,15 @@ class Bookmark < ActiveRecord::Base
|
|
76
76
|
normalized_url = Addressable::URI.parse(url).normalize.to_s
|
77
77
|
doc = Nokogiri::HTML(Faraday.get(normalized_url).body)
|
78
78
|
# TODO: 日本語以外
|
79
|
-
#charsets = ['iso-2022-jp', 'euc-jp', 'shift_jis', 'iso-8859-1']
|
80
|
-
#if charsets.include?(page.charset.downcase)
|
79
|
+
# charsets = ['iso-2022-jp', 'euc-jp', 'shift_jis', 'iso-8859-1']
|
80
|
+
# if charsets.include?(page.charset.downcase)
|
81
81
|
title = NKF.nkf('-w', CGI.unescapeHTML((doc.at("title").inner_text))).to_s.gsub(/\r\n|\r|\n/, '').gsub(/\s+/, ' ').strip
|
82
82
|
if title.blank?
|
83
83
|
title = url
|
84
84
|
end
|
85
|
-
#else
|
85
|
+
# else
|
86
86
|
# title = (doc/"title").inner_text
|
87
|
-
#end
|
87
|
+
# end
|
88
88
|
title
|
89
89
|
end
|
90
90
|
rescue OpenURI::HTTPError
|
data/app/models/bookmark_stat.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
class BookmarkStat <
|
1
|
+
class BookmarkStat < ApplicationRecord
|
2
2
|
include Statesman::Adapters::ActiveRecordQueries
|
3
3
|
include CalculateStat
|
4
4
|
default_scope { order('bookmark_stats.id DESC') }
|
@@ -21,7 +21,7 @@ class BookmarkStat < ActiveRecord::Base
|
|
21
21
|
self.started_at = Time.zone.now
|
22
22
|
Manifestation.find_each do |manifestation|
|
23
23
|
daily_count = Bookmark.manifestations_count(start_date, end_date, manifestation)
|
24
|
-
#manifestation.update_attributes({:daily_bookmarks_count => daily_count, :total_count => manifestation.total_count + daily_count})
|
24
|
+
# manifestation.update_attributes({:daily_bookmarks_count => daily_count, :total_count => manifestation.total_count + daily_count})
|
25
25
|
if daily_count > 0
|
26
26
|
self.manifestations << manifestation
|
27
27
|
sql = ['UPDATE bookmark_stat_has_manifestations SET bookmarks_count = ? WHERE bookmark_stat_id = ? AND manifestation_id = ?', daily_count, self.id, manifestation.id]
|
@@ -1,9 +1,8 @@
|
|
1
|
-
class BookmarkStatTransition <
|
1
|
+
class BookmarkStatTransition < ApplicationRecord
|
2
2
|
include Statesman::Adapters::ActiveRecordTransition
|
3
3
|
|
4
|
-
|
4
|
+
|
5
5
|
belongs_to :bookmark_stat, inverse_of: :bookmark_stat_transitions
|
6
|
-
#attr_accessible :to_state, :sort_key, :metadata
|
7
6
|
end
|
8
7
|
|
9
8
|
# == Schema Information
|
@@ -17,5 +16,5 @@ end
|
|
17
16
|
# bookmark_stat_id :integer
|
18
17
|
# created_at :datetime
|
19
18
|
# updated_at :datetime
|
20
|
-
# most_recent :boolean
|
19
|
+
# most_recent :boolean not null
|
21
20
|
#
|
data/app/models/tag.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
class Tag <
|
1
|
+
class Tag < ApplicationRecord
|
2
2
|
has_many :taggings, dependent: :destroy, class_name: 'ActsAsTaggableOn::Tagging'
|
3
3
|
validates :name, presence: true
|
4
4
|
after_save :save_taggings
|
@@ -29,7 +29,7 @@ class Tag < ActiveRecord::Base
|
|
29
29
|
tags = Tag.search do
|
30
30
|
with(:bookmark_ids).any_of bookmark_ids
|
31
31
|
order_by :taggings_count, :desc
|
32
|
-
paginate(:
|
32
|
+
paginate(page: 1, per_page: count)
|
33
33
|
end.results
|
34
34
|
end
|
35
35
|
end
|
@@ -39,7 +39,7 @@ class Tag < ActiveRecord::Base
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def tagged(taggable_type)
|
42
|
-
self.taggings.where(:
|
42
|
+
self.taggings.where(taggable_type: taggable_type.to_s).includes(:taggable).collect(&:taggable)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -47,10 +47,9 @@ end
|
|
47
47
|
#
|
48
48
|
# Table name: tags
|
49
49
|
#
|
50
|
-
# id
|
51
|
-
# name
|
52
|
-
#
|
53
|
-
# created_at
|
54
|
-
# updated_at
|
55
|
-
# taggings_count :integer default(0)
|
50
|
+
# id :integer not null, primary key
|
51
|
+
# name :string
|
52
|
+
# taggings_count :integer default(0)
|
53
|
+
# created_at :datetime
|
54
|
+
# updated_at :datetime
|
56
55
|
#
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class ActsAsTaggableOn::TagPolicy < ApplicationPolicy
|
2
|
+
def index?
|
3
|
+
true
|
4
|
+
end
|
5
|
+
|
6
|
+
def show?
|
7
|
+
true
|
8
|
+
end
|
9
|
+
|
10
|
+
def create?
|
11
|
+
user.try(:has_role?, 'Librarian')
|
12
|
+
end
|
13
|
+
|
14
|
+
def update?
|
15
|
+
user.try(:has_role?, 'Librarian')
|
16
|
+
end
|
17
|
+
|
18
|
+
def destroy?
|
19
|
+
user.try(:has_role?, 'Librarian')
|
20
|
+
end
|
21
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
xml.instruct! :xml, :
|
1
|
+
xml.instruct! :xml, version: "1.0"
|
2
2
|
xml.rss('version' => "2.0",
|
3
3
|
'xmlns:opensearch' => "http://a9.com/-/spec/opensearch/1.1/",
|
4
4
|
'xmlns:atom' => "http://www.w3.org/2005/Atom"){
|
@@ -15,14 +15,14 @@ xml.rss('version' => "2.0",
|
|
15
15
|
xml.tag! "opensearch:totalResults", @count[:query_result]
|
16
16
|
xml.tag! "opensearch:startIndex", @tags.offset + 1
|
17
17
|
xml.tag! "opensearch:itemsPerPage", @tags.per_page
|
18
|
-
xml.tag! "opensearch:Query", :
|
18
|
+
xml.tag! "opensearch:Query", role: 'request', searchTerms: h(params[:query]), startPage: (h(params[:page]) || 1)
|
19
19
|
end
|
20
20
|
@tags.each do |tag|
|
21
21
|
xml.item do
|
22
22
|
xml.title tag.name
|
23
23
|
xml.pubDate tag.created_at.utc.rfc822
|
24
24
|
xml.link tag_url(tag.name)
|
25
|
-
xml.guid tag_url(tag.name), :
|
25
|
+
xml.guid tag_url(tag.name), isPermaLink: "true"
|
26
26
|
end
|
27
27
|
end
|
28
28
|
}
|
@@ -1,7 +1,7 @@
|
|
1
|
-
class CreateBookmarks < ActiveRecord::Migration
|
1
|
+
class CreateBookmarks < ActiveRecord::Migration[4.2]
|
2
2
|
def self.up
|
3
|
-
create_table :bookmarks, :
|
4
|
-
t.integer :user_id, :
|
3
|
+
create_table :bookmarks, force: true do |t|
|
4
|
+
t.integer :user_id, null: false
|
5
5
|
t.integer :manifestation_id
|
6
6
|
t.text :title
|
7
7
|
t.string :url
|
@@ -1,8 +1,8 @@
|
|
1
|
-
class CreateBookmarkStatHasManifestations < ActiveRecord::Migration
|
1
|
+
class CreateBookmarkStatHasManifestations < ActiveRecord::Migration[4.2]
|
2
2
|
def change
|
3
3
|
create_table :bookmark_stat_has_manifestations do |t|
|
4
|
-
t.integer :bookmark_stat_id, :
|
5
|
-
t.integer :manifestation_id, :
|
4
|
+
t.integer :bookmark_stat_id, null: false
|
5
|
+
t.integer :manifestation_id, null: false
|
6
6
|
t.integer :bookmarks_count
|
7
7
|
|
8
8
|
t.timestamps
|
@@ -1,6 +1,6 @@
|
|
1
|
-
class AddAllowBookmarkExternalUrlToLibraryGroup < ActiveRecord::Migration
|
1
|
+
class AddAllowBookmarkExternalUrlToLibraryGroup < ActiveRecord::Migration[4.2]
|
2
2
|
def self.up
|
3
|
-
add_column :library_groups, :allow_bookmark_external_url, :boolean, :
|
3
|
+
add_column :library_groups, :allow_bookmark_external_url, :boolean, null: false, default: false
|
4
4
|
end
|
5
5
|
|
6
6
|
def self.down
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# This migration comes from acts_as_taggable_on_engine (originally 1)
|
2
|
+
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
|
3
|
+
class ActsAsTaggableOnMigration < ActiveRecord::Migration[4.2]; end
|
4
|
+
else
|
5
|
+
class ActsAsTaggableOnMigration < ActiveRecord::Migration; end
|
6
|
+
end
|
7
|
+
ActsAsTaggableOnMigration.class_eval do
|
8
|
+
def self.up
|
9
|
+
create_table :tags do |t|
|
10
|
+
t.string :name
|
11
|
+
end
|
12
|
+
|
13
|
+
create_table :taggings do |t|
|
14
|
+
t.references :tag
|
15
|
+
|
16
|
+
# You should make sure that the column created is
|
17
|
+
# long enough to store the required class names.
|
18
|
+
t.references :taggable, polymorphic: true
|
19
|
+
t.references :tagger, polymorphic: true
|
20
|
+
|
21
|
+
# Limit is created to prevent MySQL error on index
|
22
|
+
# length for MyISAM table type: http://bit.ly/vgW2Ql
|
23
|
+
t.string :context, limit: 128
|
24
|
+
|
25
|
+
t.datetime :created_at
|
26
|
+
end
|
27
|
+
|
28
|
+
add_index :taggings, :tag_id
|
29
|
+
add_index :taggings, [:taggable_id, :taggable_type, :context]
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.down
|
33
|
+
drop_table :taggings
|
34
|
+
drop_table :tags
|
35
|
+
end
|
36
|
+
end
|
@@ -1,9 +1,14 @@
|
|
1
1
|
# This migration comes from acts_as_taggable_on_engine (originally 2)
|
2
|
-
|
2
|
+
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
|
3
|
+
class AddMissingUniqueIndices < ActiveRecord::Migration[4.2]; end
|
4
|
+
else
|
5
|
+
class AddMissingUniqueIndices < ActiveRecord::Migration; end
|
6
|
+
end
|
7
|
+
AddMissingUniqueIndices.class_eval do
|
3
8
|
def self.up
|
4
9
|
add_index :tags, :name, unique: true
|
5
10
|
|
6
|
-
remove_index :taggings, :tag_id
|
11
|
+
remove_index :taggings, :tag_id if index_exists?(:taggings, :tag_id)
|
7
12
|
remove_index :taggings, [:taggable_id, :taggable_type, :context]
|
8
13
|
add_index :taggings,
|
9
14
|
[:tag_id, :taggable_id, :taggable_type, :context, :tagger_id, :tagger_type],
|
@@ -14,7 +19,8 @@ class AddMissingUniqueIndices < ActiveRecord::Migration
|
|
14
19
|
remove_index :tags, :name
|
15
20
|
|
16
21
|
remove_index :taggings, name: 'taggings_idx'
|
17
|
-
|
22
|
+
|
23
|
+
add_index :taggings, :tag_id unless index_exists?(:taggings, :tag_id)
|
18
24
|
add_index :taggings, [:taggable_id, :taggable_type, :context]
|
19
25
|
end
|
20
26
|
end
|
@@ -1,5 +1,10 @@
|
|
1
1
|
# This migration comes from acts_as_taggable_on_engine (originally 3)
|
2
|
-
|
2
|
+
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
|
3
|
+
class AddTaggingsCounterCacheToTags < ActiveRecord::Migration[4.2]; end
|
4
|
+
else
|
5
|
+
class AddTaggingsCounterCacheToTags < ActiveRecord::Migration; end
|
6
|
+
end
|
7
|
+
AddTaggingsCounterCacheToTags.class_eval do
|
3
8
|
def self.up
|
4
9
|
add_column :tags, :taggings_count, :integer, default: 0
|
5
10
|
|
@@ -1,5 +1,10 @@
|
|
1
1
|
# This migration comes from acts_as_taggable_on_engine (originally 4)
|
2
|
-
|
2
|
+
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
|
3
|
+
class AddMissingTaggableIndex < ActiveRecord::Migration[4.2]; end
|
4
|
+
else
|
5
|
+
class AddMissingTaggableIndex < ActiveRecord::Migration; end
|
6
|
+
end
|
7
|
+
AddMissingTaggableIndex.class_eval do
|
3
8
|
def self.up
|
4
9
|
add_index :taggings, [:taggable_id, :taggable_type, :context]
|
5
10
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# This migration comes from acts_as_taggable_on_engine (originally 5)
|
2
|
+
# This migration is added to circumvent issue #623 and have special characters
|
3
|
+
# work properly
|
4
|
+
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
|
5
|
+
class ChangeCollationForTagNames < ActiveRecord::Migration[4.2]; end
|
6
|
+
else
|
7
|
+
class ChangeCollationForTagNames < ActiveRecord::Migration; end
|
8
|
+
end
|
9
|
+
ChangeCollationForTagNames.class_eval do
|
10
|
+
def up
|
11
|
+
if ActsAsTaggableOn::Utils.using_mysql?
|
12
|
+
execute("ALTER TABLE tags MODIFY name varchar(255) CHARACTER SET utf8 COLLATE utf8_bin;")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# This migration comes from acts_as_taggable_on_engine (originally 6)
|
2
|
+
if ActiveRecord.gem_version >= Gem::Version.new('5.0')
|
3
|
+
class AddMissingIndexesOnTaggings < ActiveRecord::Migration[4.2]; end
|
4
|
+
else
|
5
|
+
class AddMissingIndexesOnTaggings < ActiveRecord::Migration; end
|
6
|
+
end
|
7
|
+
AddMissingIndexesOnTaggings.class_eval do
|
8
|
+
def change
|
9
|
+
add_index :taggings, :tag_id unless index_exists? :taggings, :tag_id
|
10
|
+
add_index :taggings, :taggable_id unless index_exists? :taggings, :taggable_id
|
11
|
+
add_index :taggings, :taggable_type unless index_exists? :taggings, :taggable_type
|
12
|
+
add_index :taggings, :tagger_id unless index_exists? :taggings, :tagger_id
|
13
|
+
add_index :taggings, :context unless index_exists? :taggings, :context
|
14
|
+
|
15
|
+
unless index_exists? :taggings, [:tagger_id, :tagger_type]
|
16
|
+
add_index :taggings, [:tagger_id, :tagger_type]
|
17
|
+
end
|
18
|
+
|
19
|
+
unless index_exists? :taggings, [:taggable_id, :taggable_type, :tagger_id, :context], name: 'taggings_idy'
|
20
|
+
add_index :taggings, [:taggable_id, :taggable_type, :tagger_id, :context], name: 'taggings_idy'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,31 +1,31 @@
|
|
1
1
|
module EnjuBookmark
|
2
2
|
module BookmarkHelper
|
3
3
|
def link_to_tag(tag)
|
4
|
-
link_to tag, manifestations_path(:
|
4
|
+
link_to tag, manifestations_path(tag: tag.name)
|
5
5
|
end
|
6
6
|
|
7
7
|
def render_tag_cloud(tags, options = {})
|
8
8
|
# TODO: add options to specify different limits and sorts
|
9
|
-
#tags = Tag.all(:limit => 100, :order => 'taggings_count DESC').sort_by(&:name)
|
9
|
+
# tags = Tag.all(:limit => 100, :order => 'taggings_count DESC').sort_by(&:name)
|
10
10
|
|
11
11
|
# TODO: add option to specify which classes you want and overide this if you want?
|
12
12
|
classes = %w(popular v-popular vv-popular vvv-popular vvvv-popular)
|
13
13
|
|
14
14
|
max, min = 0, 0
|
15
15
|
tags.each do |tag|
|
16
|
-
#if options[:max] or options[:min]
|
16
|
+
# if options[:max] or options[:min]
|
17
17
|
# max = options[:max].to_i
|
18
18
|
# min = options[:min].to_i
|
19
|
-
#end
|
19
|
+
# end
|
20
20
|
max = tag.taggings.size if tag.taggings.size > max
|
21
21
|
min = tag.taggings.size if tag.taggings.size < min
|
22
22
|
end
|
23
23
|
divisor = ((max - min).div(classes.size)) + 1
|
24
24
|
|
25
|
-
content_tag :div, :
|
26
|
-
content_tag :ul, :
|
25
|
+
content_tag :div, class: "hTagcloud" do
|
26
|
+
content_tag :ul, class: "popularity" do
|
27
27
|
tags.collect do |tag|
|
28
|
-
concat(content_tag :li, link_to(tag.name, manifestations_path(:
|
28
|
+
concat(content_tag :li, link_to(tag.name, manifestations_path(tag: tag.name), class: classes[(tag.taggings.size - min).div(divisor)]) + "\n")
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -16,7 +16,7 @@ module BookmarkUrl
|
|
16
16
|
if self.my_host?
|
17
17
|
url = ::Addressable::URI.parse(self)
|
18
18
|
path = url.path.split("/").reverse
|
19
|
-
if path[1] == "manifestations" and Manifestation.where(:
|
19
|
+
if path[1] == "manifestations" and Manifestation.where(id: path[0]).first
|
20
20
|
true
|
21
21
|
else
|
22
22
|
false
|
data/lib/enju_bookmark/engine.rb
CHANGED
@@ -2,8 +2,8 @@ module ExpireTagCloud
|
|
2
2
|
def expire_tag_cloud(bookmark)
|
3
3
|
I18n.available_locales.each do |locale|
|
4
4
|
Role.all_cache.each do |role|
|
5
|
-
expire_fragment(:
|
6
|
-
expire_fragment(:
|
5
|
+
expire_fragment(controller: :tags, action: :index, page: 'user_tag_cloud', user_id: bookmark.user.username, locale: locale, role: role.name)
|
6
|
+
expire_fragment(controller: :tags, action: :index, page: 'public_tag_cloud', locale: locale, role: role.name, user_id: nil)
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -2,7 +2,7 @@ module SuggestTag
|
|
2
2
|
def suggest_tags
|
3
3
|
tags = []
|
4
4
|
threshold = (self.strip.split(//).size * 0.2).round
|
5
|
-
Bookmark.tag_counts(:
|
5
|
+
Bookmark.tag_counts(limit: 100).each do |t|
|
6
6
|
distance = Text::Levenshtein.distance(t.name, self)
|
7
7
|
tags << t if distance <= threshold
|
8
8
|
end
|
data/lib/enju_bookmark.rb
CHANGED
@@ -4,7 +4,7 @@ require "enju_bookmark/manifestation"
|
|
4
4
|
require "enju_bookmark/bookmark_url"
|
5
5
|
require "enju_bookmark/expire_tag_cloud"
|
6
6
|
require "enju_bookmark/bookmark_helper"
|
7
|
-
#require "enju_bookmark/suggest_tag"
|
7
|
+
# require "enju_bookmark/suggest_tag"
|
8
8
|
|
9
9
|
module EnjuBookmark
|
10
10
|
end
|