card 1.16.6 → 1.16.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardoc/checksums +234 -49
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/VERSION +1 -1
- data/config/initializers/mime_types.rb +3 -3
- data/config/initializers/notification.rb +1 -1
- data/db/migrate/20121118115000_update_link_type.rb +8 -8
- data/db/migrate/20130411210957_update_codenames.rb +2 -2
- data/db/migrate/20140822073704_create_new_revision_tables.rb +12 -13
- data/db/migrate/20141001105348_move_revisions_to_actions.rb +16 -16
- data/db/migrate/20141121172918_rename_card_migration_table.rb +4 -4
- data/db/migrate_core_cards/20130419215612_import_help_text.rb +3 -3
- data/db/migrate_core_cards/20130823192433_add_style_cards.rb +45 -47
- data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +1 -1
- data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +3 -3
- data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +3 -3
- data/db/migrate_core_cards/20130927191728_account_events.rb +6 -6
- data/db/migrate_core_cards/20131016172445_common_css_patch.rb +1 -1
- data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +1 -1
- data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +19 -19
- data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +11 -12
- data/db/migrate_core_cards/20140512155840_add_script_cards.rb +35 -36
- data/db/migrate_core_cards/20140629222005_add_email_cards.rb +55 -55
- data/db/migrate_core_cards/20140725180118_config_card_updates.rb +1 -1
- data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +2 -2
- data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +3 -3
- data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +2 -2
- data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +8 -8
- data/db/migrate_core_cards/20141208162106_add_ace_script.rb +2 -2
- data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +16 -16
- data/db/migrate_core_cards/20141230204340_uri_codename.rb +1 -1
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +19 -19
- data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +3 -3
- data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +15 -15
- data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +11 -11
- data/db/migrate_core_cards/20150331135745_new_card_menu.rb +1 -1
- data/db/migrate_core_cards/20150429090551_search_card_context.rb +1 -1
- data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +3 -3
- data/db/migrate_core_cards/20150510031118_fix_skin_images.rb +1 -1
- data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +4 -4
- data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +5 -5
- data/db/migrate_core_cards/20150605115802_add_performance_log_card.rb +1 -1
- data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +2 -2
- data/db/migrate_core_cards/20150611203506_rails_inflection_updates.rb +5 -5
- data/db/migrate_core_cards/20150627205133_fix_script_bootstrap_card_type.rb +1 -1
- data/db/migrate_core_cards/20150702130543_remove_edit_toolbar_pinned.rb +1 -1
- data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +5 -5
- data/db/migrate_core_cards/20150807205221_create_references_for_search_cards.rb +1 -1
- data/db/migrate_core_cards/20150824135418_update_file_history.rb +3 -3
- data/db/migrate_core_cards/20150903130006_attachment_upload_cards.rb +2 -2
- data/db/migrate_core_cards/20150910085603_remove_performance_log_card.rb +1 -1
- data/lib/card.rb +4 -4
- data/lib/card/active_record_ext.rb +8 -8
- data/lib/card/auth.rb +6 -6
- data/lib/card/cache.rb +1 -1
- data/lib/card/chunk.rb +1 -1
- data/lib/card/content.rb +1 -1
- data/lib/card/diff.rb +10 -10
- data/lib/card/env.rb +1 -1
- data/lib/card/format.rb +12 -12
- data/lib/card/loader.rb +1 -1
- data/lib/card/migration.rb +1 -1
- data/lib/card/name.rb +4 -4
- data/lib/card/query.rb +255 -61
- data/lib/card/query/attributes.rb +310 -0
- data/lib/card/query/clause.rb +12 -15
- data/lib/card/query/join.rb +73 -0
- data/lib/card/query/reference.rb +51 -0
- data/lib/card/query/sql_statement.rb +228 -0
- data/lib/card/query/value.rb +66 -0
- data/lib/card/reference.rb +6 -6
- data/lib/card/set.rb +12 -12
- data/lib/card/set_pattern.rb +9 -9
- data/lib/card/spec_helper.rb +5 -5
- data/lib/card/success.rb +1 -1
- data/lib/cardio.rb +7 -7
- data/lib/generators/card/format/format_generator.rb +3 -3
- data/lib/generators/card/migration/migration_generator.rb +5 -5
- data/lib/generators/card/set/set_generator.rb +4 -4
- data/mod/01_core/chunk/include.rb +4 -4
- data/mod/01_core/chunk/link.rb +5 -5
- data/mod/01_core/chunk/literal.rb +2 -2
- data/mod/01_core/chunk/query_reference.rb +8 -8
- data/mod/01_core/chunk/uri.rb +18 -18
- data/mod/01_core/format/html_format.rb +4 -4
- data/mod/01_core/set/all/active_card.rb +2 -2
- data/mod/01_core/set/all/collection.rb +21 -26
- data/mod/01_core/set/all/content.rb +2 -2
- data/mod/01_core/set/all/fetch.rb +6 -6
- data/mod/01_core/set/all/initialize.rb +4 -4
- data/mod/01_core/set/all/location_history.rb +2 -2
- data/mod/01_core/set/all/name.rb +14 -14
- data/mod/01_core/set/all/pattern.rb +1 -1
- data/mod/01_core/set/all/permissions.rb +12 -12
- data/mod/01_core/set/all/phases.rb +29 -12
- data/mod/01_core/set/all/references.rb +14 -14
- data/mod/01_core/set/all/rules.rb +8 -8
- data/mod/01_core/set/all/templating.rb +10 -9
- data/mod/01_core/set/all/tracked_attributes.rb +7 -7
- data/mod/01_core/set/all/trash.rb +6 -6
- data/mod/01_core/set/all/type.rb +7 -7
- data/mod/01_core/set/all/utils.rb +4 -4
- data/mod/01_core/set/all/view_cache.rb +1 -1
- data/mod/01_core/set_pattern/02_all_plus.rb +2 -2
- data/mod/01_core/set_pattern/03_type.rb +1 -1
- data/mod/01_core/set_pattern/04_star.rb +1 -1
- data/mod/01_core/set_pattern/05_rstar.rb +2 -2
- data/mod/01_core/set_pattern/06_right.rb +4 -4
- data/mod/01_core/set_pattern/07_type_plus_right.rb +4 -4
- data/mod/01_core/set_pattern/08_self.rb +1 -1
- data/mod/01_core/spec/chunk/uri_spec.rb +73 -73
- data/mod/01_core/spec/format/html_format_spec.rb +5 -5
- data/mod/01_core/spec/set/all/attribute_tracking_spec.rb +1 -1
- data/mod/01_core/spec/set/all/collection_spec.rb +22 -22
- data/mod/01_core/spec/set/all/content_spec.rb +1 -1
- data/mod/01_core/spec/set/all/fetch_spec.rb +24 -24
- data/mod/01_core/spec/set/all/initialize_spec.rb +9 -9
- data/mod/01_core/spec/set/all/name_spec.rb +8 -8
- data/mod/01_core/spec/set/all/pattern_spec.rb +10 -10
- data/mod/01_core/spec/set/all/permissions_spec.rb +45 -45
- data/mod/01_core/spec/set/all/references_spec.rb +1 -1
- data/mod/01_core/spec/set/all/rules2_spec.rb +15 -15
- data/mod/01_core/spec/set/all/rules_spec.rb +37 -37
- data/mod/01_core/spec/set/all/templating_spec.rb +21 -21
- data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +55 -55
- data/mod/01_core/spec/set/all/trash_spec.rb +4 -4
- data/mod/01_core/spec/set/all/type_spec.rb +15 -15
- data/mod/01_history/lib/card/act.rb +2 -2
- data/mod/01_history/lib/card/action.rb +22 -22
- data/mod/01_history/lib/card/change.rb +1 -1
- data/mod/01_history/set/all/actions.rb +2 -2
- data/mod/01_history/set/all/content_history.rb +4 -4
- data/mod/01_history/set/all/history.rb +46 -46
- data/mod/02_basic_types/set/all/all_css.rb +10 -10
- data/mod/02_basic_types/set/all/all_csv.rb +7 -7
- data/mod/02_basic_types/set/all/base.rb +25 -25
- data/mod/02_basic_types/set/all/json.rb +16 -16
- data/mod/02_basic_types/set/all/rss.rb +7 -7
- data/mod/02_basic_types/set/type/html.rb +2 -2
- data/mod/02_basic_types/set/type/plain_text.rb +1 -1
- data/mod/02_basic_types/set/type/pointer.rb +39 -31
- data/mod/02_basic_types/spec/set/all/all_css_spec.rb +1 -1
- data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +1 -1
- data/mod/02_basic_types/spec/set/all/base_spec.rb +18 -18
- data/mod/02_basic_types/spec/set/all/json_spec.rb +4 -4
- data/mod/02_basic_types/spec/set/all/rss_spec.rb +8 -2
- data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +1 -1
- data/mod/02_basic_types/spec/set/type/pointer_spec.rb +54 -44
- data/mod/03_machines/lib/card/machine.rb +46 -29
- data/mod/03_machines/lib/card/machine_input.rb +34 -10
- data/mod/03_machines/set/type/coffee_script.rb +3 -3
- data/mod/03_machines/set/type/css.rb +8 -8
- data/mod/03_machines/set/type/java_script.rb +4 -4
- data/mod/03_machines/set/type/scss.rb +2 -2
- data/mod/03_machines/set/type/skin.rb +1 -1
- data/mod/03_machines/spec/lib/shared_machine_examples.rb +27 -27
- data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +8 -8
- data/mod/03_machines/spec/set/type/coffeescript_spec.rb +6 -6
- data/mod/03_machines/spec/set/type/css_spec.rb +9 -9
- data/mod/03_machines/spec/set/type/javascript_spec.rb +6 -6
- data/mod/03_machines/spec/set/type/scss_spec.rb +5 -5
- data/mod/03_machines/spec/set/type/skin_spec.rb +25 -25
- data/mod/04_settings/lib/card/setting.rb +11 -11
- data/mod/04_settings/set/abstract/permission.rb +9 -9
- data/mod/04_settings/set/right/script.rb +1 -1
- data/mod/04_settings/set/right/structure.rb +0 -5
- data/mod/04_settings/set/right/style.rb +2 -2
- data/mod/04_settings/set/self/accountable.rb +1 -1
- data/mod/04_settings/set/self/add_help.rb +1 -1
- data/mod/04_settings/set/self/autoname.rb +1 -1
- data/mod/04_settings/set/self/captcha.rb +1 -1
- data/mod/04_settings/set/self/create.rb +1 -1
- data/mod/04_settings/set/self/default.rb +1 -1
- data/mod/04_settings/set/self/delete.rb +1 -1
- data/mod/04_settings/set/self/help.rb +1 -1
- data/mod/04_settings/set/self/input.rb +1 -1
- data/mod/04_settings/set/self/layout.rb +1 -1
- data/mod/04_settings/set/self/on_create.rb +1 -1
- data/mod/04_settings/set/self/on_delete.rb +1 -1
- data/mod/04_settings/set/self/on_update.rb +1 -1
- data/mod/04_settings/set/self/options.rb +1 -1
- data/mod/04_settings/set/self/options_label.rb +1 -1
- data/mod/04_settings/set/self/read.rb +1 -1
- data/mod/04_settings/set/self/script.rb +1 -1
- data/mod/04_settings/set/self/structure.rb +1 -1
- data/mod/04_settings/set/self/style.rb +1 -1
- data/mod/04_settings/set/self/table_of_contents.rb +1 -1
- data/mod/04_settings/set/self/thanks.rb +1 -1
- data/mod/04_settings/set/self/update.rb +1 -1
- data/mod/04_settings/set/type/setting.rb +14 -14
- data/mod/04_settings/spec/set/right/comment_spec.rb +5 -5
- data/mod/04_settings/spec/set/right/create_spec.rb +1 -1
- data/mod/04_settings/spec/set/right/script_spec.rb +5 -5
- data/mod/04_settings/spec/set/right/structure_spec.rb +4 -2
- data/mod/04_settings/spec/set/right/style_spec.rb +7 -7
- data/mod/04_settings/spec/set/type/setting_spec.rb +2 -2
- data/mod/05_email/lib/card/follow_option.rb +24 -24
- data/mod/05_email/set/all/follow.rb +24 -16
- data/mod/05_email/set/all/notify.rb +25 -23
- data/mod/05_email/set/all/observer.rb +5 -5
- data/mod/05_email/set/right/bcc.rb +8 -8
- data/mod/05_email/set/right/follow.rb +44 -17
- data/mod/05_email/set/right/follow_fields.rb +1 -1
- data/mod/05_email/set/right/following.rb +49 -40
- data/mod/05_email/set/self/always.rb +2 -2
- data/mod/05_email/set/self/created.rb +1 -1
- data/mod/05_email/set/self/edited.rb +4 -4
- data/mod/05_email/set/self/follow.rb +1 -1
- data/mod/05_email/set/self/follow_defaults.rb +9 -9
- data/mod/05_email/set/self/never.rb +1 -1
- data/mod/05_email/set/type/email_template.rb +9 -9
- data/mod/05_email/set/type_plus_right/user/follow.rb +16 -16
- data/mod/05_email/spec/set/all/follow_spec.rb +10 -10
- data/mod/05_email/spec/set/all/notify_spec.rb +82 -82
- data/mod/05_email/spec/set/all/observer_spec.rb +16 -16
- data/mod/05_email/spec/set/right/followers_spec.rb +6 -6
- data/mod/05_email/spec/set/self/follow_defaults_spec.rb +2 -2
- data/mod/05_standard/lib/carrier_wave/cardmount.rb +5 -5
- data/mod/05_standard/lib/image_uploader.rb +8 -8
- data/mod/05_standard/set/abstract/attachment.rb +18 -18
- data/mod/05_standard/set/all/account.rb +5 -5
- data/mod/05_standard/set/all/comment.rb +7 -7
- data/mod/05_standard/set/all/error.rb +25 -25
- data/mod/05_standard/set/all/event_viz.rb +1 -1
- data/mod/05_standard/set/all/links.rb +9 -9
- data/mod/05_standard/set/all/rich_html/content.rb +34 -34
- data/mod/05_standard/set/all/rich_html/editing.rb +35 -35
- data/mod/05_standard/set/all/rich_html/form.rb +20 -20
- data/mod/05_standard/set/all/rich_html/header.rb +8 -8
- data/mod/05_standard/set/all/rich_html/menu.rb +33 -33
- data/mod/05_standard/set/all/rich_html/modal.rb +16 -16
- data/mod/05_standard/set/all/rich_html/toolbar.rb +63 -63
- data/mod/05_standard/set/all/rich_html/wrapper.rb +8 -8
- data/mod/05_standard/set/right/account.rb +27 -27
- data/mod/05_standard/set/right/email.rb +5 -5
- data/mod/05_standard/set/right/password.rb +5 -5
- data/mod/05_standard/set/rstar/rules.rb +52 -52
- data/mod/05_standard/set/self/account_links.rb +27 -27
- data/mod/05_standard/set/self/all.rb +1 -1
- data/mod/05_standard/set/self/head.rb +5 -5
- data/mod/05_standard/set/self/navbox.rb +11 -11
- data/mod/05_standard/set/self/recent.rb +2 -2
- data/mod/05_standard/set/self/search.rb +13 -13
- data/mod/05_standard/set/self/signin.rb +19 -19
- data/mod/05_standard/set/self/stats.rb +2 -2
- data/mod/05_standard/set/type/basic.rb +1 -1
- data/mod/05_standard/set/type/cardtype.rb +5 -5
- data/mod/05_standard/set/type/date.rb +1 -1
- data/mod/05_standard/set/type/file.rb +7 -7
- data/mod/05_standard/set/type/image.rb +8 -8
- data/mod/05_standard/set/type/number.rb +2 -2
- data/mod/05_standard/set/type/phrase.rb +1 -1
- data/mod/05_standard/set/type/search_type.rb +27 -21
- data/mod/05_standard/set/type/session.rb +2 -2
- data/mod/05_standard/set/type/set.rb +37 -37
- data/mod/05_standard/set/type/signup.rb +25 -25
- data/mod/05_standard/set/type/uri.rb +1 -1
- data/mod/05_standard/set/type/user.rb +21 -21
- data/mod/05_standard/spec/chunk/include_spec.rb +16 -16
- data/mod/05_standard/spec/chunk/link_spec.rb +18 -18
- data/mod/05_standard/spec/chunk/query_reference_spec.rb +1 -1
- data/mod/05_standard/spec/set/all/account_spec.rb +7 -7
- data/mod/05_standard/spec/set/all/email_html_spec.rb +3 -3
- data/mod/05_standard/spec/set/all/history_spec.rb +14 -14
- data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +1 -1
- data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +2 -2
- data/mod/05_standard/spec/set/right/account_spec.rb +9 -9
- data/mod/05_standard/spec/set/right/email_spec.rb +8 -8
- data/mod/05_standard/spec/set/right/password_spec.rb +9 -9
- data/mod/05_standard/spec/set/right/stats_spec.rb +1 -1
- data/mod/05_standard/spec/set/right/when_created_spec.rb +1 -1
- data/mod/05_standard/spec/set/right/when_last_edited_spec.rb +1 -1
- data/mod/05_standard/spec/set/rstar/rules_spec.rb +2 -2
- data/mod/05_standard/spec/set/self/account_links_spec.rb +2 -2
- data/mod/05_standard/spec/set/self/all_spec.rb +8 -11
- data/mod/05_standard/spec/set/self/head_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/navbox_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/now_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/stats_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/version_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/email_template_spec.rb +25 -25
- data/mod/05_standard/spec/set/type/file_spec.rb +4 -4
- data/mod/05_standard/spec/set/type/html_spec.rb +3 -3
- data/mod/05_standard/spec/set/type/image_spec.rb +6 -6
- data/mod/05_standard/spec/set/type/layout_type_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/search_type_spec.rb +10 -10
- data/mod/05_standard/spec/set/type/signup_spec.rb +11 -11
- data/mod/05_standard/spec/set/type/toggle_spec.rb +2 -2
- data/mod/05_standard/spec/set/type/uri_spec.rb +9 -9
- data/mod/06_bootstrap/set/all/bootstrap/helper.rb +10 -10
- data/mod/06_bootstrap/set/all/bootstrap/wrapper.rb +4 -4
- data/mod/06_bootstrap/set/all/rich_bootstrap.rb +1 -1
- data/spec/lib/card/action_spec.rb +2 -2
- data/spec/lib/card/cache_spec.rb +7 -7
- data/spec/lib/card/content_spec.rb +31 -37
- data/spec/lib/card/diff_spec.rb +56 -56
- data/spec/lib/card/format_spec.rb +11 -11
- data/spec/lib/card/query_spec.rb +382 -265
- data/spec/lib/card/reference_spec.rb +133 -140
- data/spec/lib/card/set_pattern_spec.rb +10 -9
- data/spec/lib/card/set_spec.rb +11 -11
- data/spec/lib/card/success_spec.rb +16 -8
- data/spec/mailers/mailer_spec.rb +5 -5
- data/spec/models/card/cardtype_spec.rb +20 -20
- data/spec/models/card/create_spec.rb +6 -6
- data/spec/models/card/trash_spec.rb +20 -20
- data/spec/models/card/type_transition_spec.rb +3 -3
- data/spec/models/card/validation_spec.rb +5 -5
- data/spec/models/card_spec.rb +24 -24
- data/spec/spec_helper.rb +5 -5
- data/tmpsets/set/mod001-01_core/all/active_card.rb +2 -2
- data/tmpsets/set/mod001-01_core/all/collection.rb +23 -26
- data/tmpsets/set/mod001-01_core/all/content.rb +2 -2
- data/tmpsets/set/mod001-01_core/all/fetch.rb +6 -6
- data/tmpsets/set/mod001-01_core/all/initialize.rb +8 -4
- data/tmpsets/set/mod001-01_core/all/name.rb +14 -14
- data/tmpsets/set/mod001-01_core/all/pattern.rb +1 -1
- data/tmpsets/set/mod001-01_core/all/permissions.rb +12 -12
- data/tmpsets/set/mod001-01_core/all/phases.rb +31 -13
- data/tmpsets/set/mod001-01_core/all/references.rb +14 -14
- data/tmpsets/set/mod001-01_core/all/rules.rb +8 -10
- data/tmpsets/set/mod001-01_core/all/templating.rb +10 -9
- data/tmpsets/set/mod001-01_core/all/tracked_attributes.rb +7 -7
- data/tmpsets/set/mod001-01_core/all/trash.rb +9 -8
- data/tmpsets/set/mod001-01_core/all/type.rb +7 -7
- data/tmpsets/set/mod001-01_core/all/utils.rb +16 -4
- data/tmpsets/set/mod001-01_core/all/view_cache.rb +1 -1
- data/tmpsets/set/mod002-01_history/all/actions.rb +2 -2
- data/tmpsets/set/mod002-01_history/all/content_history.rb +11 -7
- data/tmpsets/set/mod002-01_history/all/history.rb +46 -46
- data/tmpsets/set/mod003-02_basic_types/all/all_css.rb +10 -10
- data/tmpsets/set/mod003-02_basic_types/all/all_csv.rb +7 -7
- data/tmpsets/set/mod003-02_basic_types/all/base.rb +25 -25
- data/tmpsets/set/mod003-02_basic_types/all/json.rb +16 -16
- data/tmpsets/set/mod003-02_basic_types/all/rss.rb +7 -7
- data/tmpsets/set/mod003-02_basic_types/type/html.rb +2 -2
- data/tmpsets/set/mod003-02_basic_types/type/plain_text.rb +1 -1
- data/tmpsets/set/mod003-02_basic_types/type/pointer.rb +38 -31
- data/tmpsets/set/mod004-03_machines/right/machine_output.rb +4 -0
- data/tmpsets/set/mod004-03_machines/type/coffee_script.rb +3 -3
- data/tmpsets/set/mod004-03_machines/type/css.rb +8 -8
- data/tmpsets/set/mod004-03_machines/type/java_script.rb +4 -4
- data/tmpsets/set/mod004-03_machines/type/scss.rb +2 -2
- data/tmpsets/set/mod004-03_machines/type/skin.rb +1 -1
- data/tmpsets/set/mod005-04_settings/abstract/permission.rb +9 -9
- data/tmpsets/set/mod005-04_settings/right/script.rb +1 -1
- data/tmpsets/set/mod005-04_settings/right/structure.rb +0 -5
- data/tmpsets/set/mod005-04_settings/right/style.rb +2 -2
- data/tmpsets/set/mod005-04_settings/self/accountable.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/add_help.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/autoname.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/captcha.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/create.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/default.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/delete.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/help.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/input.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/layout.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/on_create.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/on_delete.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/on_update.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/options.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/options_label.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/read.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/script.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/structure.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/style.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/table_of_contents.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/thanks.rb +1 -1
- data/tmpsets/set/mod005-04_settings/self/update.rb +1 -1
- data/tmpsets/set/mod005-04_settings/type/setting.rb +14 -14
- data/tmpsets/set/mod006-05_email/all/follow.rb +24 -16
- data/tmpsets/set/mod006-05_email/all/notify.rb +25 -23
- data/tmpsets/set/mod006-05_email/all/observer.rb +8 -8
- data/tmpsets/set/mod006-05_email/right/bcc.rb +8 -8
- data/tmpsets/set/mod006-05_email/right/follow.rb +44 -17
- data/tmpsets/set/mod006-05_email/right/follow_fields.rb +1 -1
- data/tmpsets/set/mod006-05_email/right/following.rb +49 -40
- data/tmpsets/set/mod006-05_email/self/always.rb +2 -2
- data/tmpsets/set/mod006-05_email/self/created.rb +1 -1
- data/tmpsets/set/mod006-05_email/self/edited.rb +4 -4
- data/tmpsets/set/mod006-05_email/self/follow.rb +1 -1
- data/tmpsets/set/mod006-05_email/self/follow_defaults.rb +9 -9
- data/tmpsets/set/mod006-05_email/self/never.rb +1 -1
- data/tmpsets/set/mod006-05_email/type/email_template.rb +9 -9
- data/tmpsets/set/mod006-05_email/type_plus_right/user/follow.rb +17 -17
- data/tmpsets/set/mod007-05_standard/abstract/attachment.rb +98 -46
- data/tmpsets/set/mod007-05_standard/all/account.rb +5 -5
- data/tmpsets/set/mod007-05_standard/all/comment.rb +7 -7
- data/tmpsets/set/mod007-05_standard/all/error.rb +26 -26
- data/tmpsets/set/mod007-05_standard/all/event_viz.rb +1 -1
- data/tmpsets/set/mod007-05_standard/all/links.rb +10 -9
- data/tmpsets/set/mod007-05_standard/all/rich_html/content.rb +34 -34
- data/tmpsets/set/mod007-05_standard/all/rich_html/editing.rb +35 -35
- data/tmpsets/set/mod007-05_standard/all/rich_html/form.rb +20 -20
- data/tmpsets/set/mod007-05_standard/all/rich_html/header.rb +8 -8
- data/tmpsets/set/mod007-05_standard/all/rich_html/menu.rb +33 -33
- data/tmpsets/set/mod007-05_standard/all/rich_html/modal.rb +16 -16
- data/tmpsets/set/mod007-05_standard/all/rich_html/toolbar.rb +63 -63
- data/tmpsets/set/mod007-05_standard/all/rich_html/wrapper.rb +8 -8
- data/tmpsets/set/mod007-05_standard/right/account.rb +27 -27
- data/tmpsets/set/mod007-05_standard/right/email.rb +5 -5
- data/tmpsets/set/mod007-05_standard/right/password.rb +5 -5
- data/tmpsets/set/mod007-05_standard/rstar/rules.rb +52 -52
- data/tmpsets/set/mod007-05_standard/self/account_links.rb +27 -27
- data/tmpsets/set/mod007-05_standard/self/all.rb +1 -1
- data/tmpsets/set/mod007-05_standard/self/head.rb +5 -5
- data/tmpsets/set/mod007-05_standard/self/navbox.rb +11 -11
- data/tmpsets/set/mod007-05_standard/self/recent.rb +2 -2
- data/tmpsets/set/mod007-05_standard/self/search.rb +13 -13
- data/tmpsets/set/mod007-05_standard/self/signin.rb +19 -19
- data/tmpsets/set/mod007-05_standard/self/stats.rb +2 -2
- data/tmpsets/set/mod007-05_standard/type/basic.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/cardtype.rb +5 -5
- data/tmpsets/set/mod007-05_standard/type/date.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/file.rb +23 -8
- data/tmpsets/set/mod007-05_standard/type/image.rb +10 -8
- data/tmpsets/set/mod007-05_standard/type/number.rb +2 -2
- data/tmpsets/set/mod007-05_standard/type/phrase.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/search_type.rb +21 -19
- data/tmpsets/set/mod007-05_standard/type/session.rb +2 -2
- data/tmpsets/set/mod007-05_standard/type/set.rb +37 -37
- data/tmpsets/set/mod007-05_standard/type/signup.rb +25 -25
- data/tmpsets/set/mod007-05_standard/type/uri.rb +1 -1
- data/tmpsets/set/mod007-05_standard/type/user.rb +21 -21
- data/tmpsets/set/mod008-06_bootstrap/all/bootstrap/helper.rb +10 -10
- data/tmpsets/set/mod008-06_bootstrap/all/bootstrap/wrapper.rb +4 -4
- data/tmpsets/set/mod008-06_bootstrap/all/rich_bootstrap.rb +1 -1
- data/tmpsets/set_pattern/101-all_plus.rb +2 -2
- data/tmpsets/set_pattern/102-type.rb +1 -1
- data/tmpsets/set_pattern/103-star.rb +1 -1
- data/tmpsets/set_pattern/104-rstar.rb +2 -2
- data/tmpsets/set_pattern/105-right.rb +4 -4
- data/tmpsets/set_pattern/106-type_plus_right.rb +4 -4
- data/tmpsets/set_pattern/107-self.rb +1 -1
- metadata +7 -5
- data/lib/card/query/card_clause.rb +0 -528
- data/lib/card/query/ref_clause.rb +0 -47
- data/lib/card/query/value_clause.rb +0 -65
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class Card; module Set; module Right; module FollowFields; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/right/follow_fields.rb ~~~~~~~~~~~
|
3
|
-
event :follow_fields_changed, :
|
3
|
+
event :follow_fields_changed, before: :extend do
|
4
4
|
Card.follow_caches_expired
|
5
5
|
end
|
6
6
|
|
@@ -6,51 +6,60 @@ def virtual?; true end
|
|
6
6
|
|
7
7
|
format :html do
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
</
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
9
|
+
view :core do |args|
|
10
|
+
if card.left && Auth.signed_in?
|
11
|
+
render_rule_editor args
|
12
|
+
else
|
13
|
+
fname = "#{card.cardname.left}+#{Card[:followers].name}"
|
14
|
+
fcard = Card.fetch fname
|
15
|
+
nest fcard, view: :titled, item: :link
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
view :status do |args|
|
20
|
+
if (rcard = current_follow_rule_card)
|
21
|
+
rcard.item_cards.map do |item|
|
22
|
+
%{<div class="alert alert-success" role="alert">
|
23
|
+
<strong>#{rcard.rule_set.follow_label}</strong>: #{item.title}
|
24
|
+
</div>}
|
25
|
+
end.join
|
26
|
+
else
|
27
|
+
'No following preference'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
view :closed_content do |args|
|
32
|
+
''
|
33
|
+
end
|
34
|
+
|
34
35
|
=begin
|
35
36
|
view :editor do |args|
|
36
|
-
hidden_field( :content, :
|
37
|
+
hidden_field( :content, class: 'card-content', 'no-autosave'=>true) +
|
37
38
|
(args.delete(:select_list) ? raw(render_rule_editor(args)) : super(args) )
|
38
39
|
end
|
39
40
|
=end
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
41
|
+
|
42
|
+
view :rule_editor do |args|
|
43
|
+
preference_name = [
|
44
|
+
card.left.default_follow_set_card.name,
|
45
|
+
Auth.current.name,
|
46
|
+
Card[:follow].name
|
47
|
+
]*'+'
|
48
|
+
rule_context = Card.fetch preference_name, new: { type_id: PointerID }
|
49
|
+
|
50
|
+
wrap_with :div, class: 'edit-rule' do
|
51
|
+
follow_context = current_follow_rule_card || rule_context
|
52
|
+
subformat(follow_context).render_edit_rule(
|
53
|
+
rule_context: rule_context,
|
54
|
+
success: { view: 'status', id: card.name }
|
55
|
+
)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def current_follow_rule_card
|
60
|
+
card.left.rule_card :follow, user: Auth.current
|
61
|
+
end
|
62
|
+
|
54
63
|
end
|
55
64
|
|
56
65
|
|
@@ -2,9 +2,9 @@
|
|
2
2
|
class Card; module Set; module Self; module Always; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/self/always.rb ~~~~~~~~~~~
|
3
3
|
include Card::FollowOption
|
4
4
|
|
5
|
-
|
5
|
+
follow_opts position: 2
|
6
6
|
|
7
|
-
|
7
|
+
follow_test { |follower_id, accounted_ids| true }
|
8
8
|
|
9
9
|
def title
|
10
10
|
'Following'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
class Card; module Set; module Self; module Created; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/self/created.rb ~~~~~~~~~~~
|
3
3
|
include Card::FollowOption
|
4
4
|
|
5
|
-
self.restrictive_follow_opts :
|
5
|
+
self.restrictive_follow_opts position: 1
|
6
6
|
|
7
7
|
self.follower_candidate_ids do |card|
|
8
8
|
[ card.creator_id ]
|
@@ -2,22 +2,22 @@
|
|
2
2
|
class Card; module Set; module Self; module Edited; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/self/edited.rb ~~~~~~~~~~~
|
3
3
|
include Card::FollowOption
|
4
4
|
|
5
|
-
self.restrictive_follow_opts :
|
5
|
+
self.restrictive_follow_opts position: 2
|
6
6
|
|
7
7
|
self.follower_candidate_ids do |card|
|
8
8
|
# FIXME? - could optimize by not using cards table...
|
9
|
-
Card.search :
|
9
|
+
Card.search editor_of: card.name, return: :id
|
10
10
|
end
|
11
11
|
|
12
12
|
|
13
|
-
def title
|
13
|
+
def title
|
14
14
|
'Following content you edited'
|
15
15
|
end
|
16
16
|
|
17
17
|
def label
|
18
18
|
"follow if I edited"
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def description set_card
|
22
22
|
"#{set_card.follow_label} I edited"
|
23
23
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class Card; module Set; module Self; module Follow; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/self/follow.rb ~~~~~~~~~~~
|
3
3
|
extend Card::Setting
|
4
|
-
setting_opts :
|
4
|
+
setting_opts group: :other, position: 7, rule_type_editable: false, user_specific: true
|
5
5
|
|
6
6
|
|
7
7
|
# ~~~~~~~~~~~ below autogenerated; above pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/self/follow.rb ~~~~~~~~~~~
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
class Card; module Set; module Self; module FollowDefaults; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/self/follow_defaults.rb ~~~~~~~~~~~
|
3
|
-
event :update_follow_rules, :
|
3
|
+
event :update_follow_rules, after: :store, on: :save, when: proc { |c| c.update_all_users } do
|
4
4
|
defaults = item_names.map do |item|
|
5
5
|
if ((set_card = Card.fetch item.to_name.left) && set_card.type_code == :set)
|
6
6
|
option_card = Card.fetch(item.to_name.right) || Card[item.to_name.right.to_sym]
|
@@ -15,9 +15,9 @@ event :update_follow_rules, :after=>:store, :on=>:save, :when=> proc { |c| c.upd
|
|
15
15
|
end
|
16
16
|
end.compact
|
17
17
|
Auth.as_bot do
|
18
|
-
Card.search(:
|
18
|
+
Card.search(type: 'user').each do |user|
|
19
19
|
defaults.each do |set_card, option|
|
20
|
-
if (follow_rule = Card.fetch(set_card.follow_rule_name(user.name), :
|
20
|
+
if (follow_rule = Card.fetch(set_card.follow_rule_name(user.name), new: {}))
|
21
21
|
follow_rule.drop_item "*never"
|
22
22
|
follow_rule.drop_item "*always"
|
23
23
|
follow_rule.add_item option
|
@@ -30,7 +30,7 @@ event :update_follow_rules, :after=>:store, :on=>:save, :when=> proc { |c| c.upd
|
|
30
30
|
end
|
31
31
|
|
32
32
|
format :html do
|
33
|
-
view :edit, :
|
33
|
+
view :edit, perms: :update, tags: :unknown_ok do |args|
|
34
34
|
frame_and_form :update, args do
|
35
35
|
[
|
36
36
|
_optional_render( :content_formgroup, args ),
|
@@ -55,13 +55,13 @@ format :html do
|
|
55
55
|
def default_edit_args args
|
56
56
|
args[:hidden] ||= {}
|
57
57
|
args[:hidden].reverse_merge!(
|
58
|
-
:
|
59
|
-
:
|
58
|
+
success: '_self',
|
59
|
+
card: { update_all_users: false }
|
60
60
|
)
|
61
61
|
args[:buttons] = %{
|
62
|
-
#{ button_tag 'Submit and update all users', :
|
63
|
-
#{ button_tag 'Submit', :
|
64
|
-
#{ button_tag 'Cancel', :
|
62
|
+
#{ button_tag 'Submit and update all users', disable_with: 'Updating', class: 'follow-updater', situation: 'primary' }
|
63
|
+
#{ button_tag 'Submit', class: 'follow' }
|
64
|
+
#{ button_tag 'Cancel', class: 'slotter', type: 'button', href: path(view: :edit, id: card.id)}
|
65
65
|
}
|
66
66
|
|
67
67
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
class Card; module Set; module Self; module Never; extend Card::Set # ~~~~~~~~~~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/05_email/set/self/never.rb ~~~~~~~~~~~
|
3
3
|
include Card::FollowOption
|
4
4
|
|
5
|
-
self.follow_opts :
|
5
|
+
self.follow_opts position: 3
|
6
6
|
|
7
7
|
self.follow_test { |follower_id, accounted_ids| false }
|
8
8
|
|
@@ -18,7 +18,7 @@ def process_email_field field, config, args
|
|
18
18
|
config[field] =
|
19
19
|
if args[field]
|
20
20
|
args[field]
|
21
|
-
elsif field_card = fetch(:
|
21
|
+
elsif field_card = fetch(trait: field)
|
22
22
|
# configuration can be anything visible to configurer
|
23
23
|
user = ( args[:follower] and Card.fetch(args[:follower]) ) || field_card.updater
|
24
24
|
Auth.as( user ) do
|
@@ -33,7 +33,7 @@ def process_message_field field, config, args, format, special_args=nil
|
|
33
33
|
process_email_field( field, config, args ) do |field_card|
|
34
34
|
content_args = args.clone
|
35
35
|
content_args.merge! special_args if special_args
|
36
|
-
field_card.contextual_content args[:context], { :format
|
36
|
+
field_card.contextual_content args[:context], { format: format }, content_args
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
@@ -43,13 +43,13 @@ def email_config args={}
|
|
43
43
|
|
44
44
|
[:to, :from, :cc, :bcc].each do |field_name|
|
45
45
|
process_email_field( field_name, config, args ) do |field_card|
|
46
|
-
field_card.process_email_addresses args[:context], {:
|
46
|
+
field_card.process_email_addresses args[:context], {format: 'email_text'}, args
|
47
47
|
end
|
48
48
|
end
|
49
49
|
process_email_field( :attach, config, args ) do |field_card|
|
50
50
|
field_card.extended_item_contents args[:context]
|
51
51
|
end
|
52
|
-
process_message_field :subject, config, args, 'email_text', :
|
52
|
+
process_message_field :subject, config, args, 'email_text', content_opts: { chunk_list: :inclusion_only }
|
53
53
|
process_message_field :text_message, config, args, 'email_text'
|
54
54
|
process_message_field :html_message, config, args, 'email_html'
|
55
55
|
config[:html_message] = Card::Mailer.layout config[:html_message] if config[:html_message].present?
|
@@ -68,7 +68,7 @@ end
|
|
68
68
|
|
69
69
|
|
70
70
|
format do
|
71
|
-
view :mail, :
|
71
|
+
view :mail, perms: :none do |args|
|
72
72
|
args = card.email_config(args)
|
73
73
|
text_message = args.delete(:text_message)
|
74
74
|
html_message = args.delete(:html_message)
|
@@ -78,11 +78,11 @@ format do
|
|
78
78
|
if alternative
|
79
79
|
if attachment_list and !attachment_list.empty?
|
80
80
|
content_type 'multipart/mixed'
|
81
|
-
part :
|
82
|
-
copy.part :
|
81
|
+
part content_type: 'multipart/alternative' do |copy|
|
82
|
+
copy.part content_type: 'text/plain' do |plain|
|
83
83
|
plain.body = text_message
|
84
84
|
end
|
85
|
-
copy.part :
|
85
|
+
copy.part content_type: 'text/html' do |html|
|
86
86
|
html.body = html_message
|
87
87
|
end
|
88
88
|
end
|
@@ -104,7 +104,7 @@ format do
|
|
104
104
|
if attachment_list
|
105
105
|
attachment_list.each_with_index do |cardname, i|
|
106
106
|
if c = Card[ cardname ] and c.respond_to?(:attachment)
|
107
|
-
add_file :
|
107
|
+
add_file filename: "attachment-#{i + 1}.#{c.attachment.extension}", content: File.read( c.attachment.path )
|
108
108
|
end
|
109
109
|
end
|
110
110
|
end
|
@@ -77,13 +77,13 @@ format :html do
|
|
77
77
|
|
78
78
|
# returns hashes with existing and suggested follow options
|
79
79
|
# structure:
|
80
|
-
# set_pattern_class => [ {:
|
80
|
+
# set_pattern_class => [ {card: rule_card, options: ['*always', '*created'] },.... ]
|
81
81
|
def followed_by_set
|
82
82
|
res = Hash.new { |h,k| h[k] = [] }
|
83
83
|
never = Card[:never].name
|
84
84
|
card.item_cards.each do |follow_rule|
|
85
85
|
options = follow_rule.item_names.reject { |item| item == never}
|
86
|
-
res[follow_rule.rule_set.subclass_for_set] << { :
|
86
|
+
res[follow_rule.rule_set.subclass_for_set] << { card: follow_rule, options: options }
|
87
87
|
end
|
88
88
|
|
89
89
|
if Auth.signed_in? && Auth.current_id == card.left.id
|
@@ -94,8 +94,8 @@ format :html do
|
|
94
94
|
rule[:options] << option
|
95
95
|
end
|
96
96
|
else
|
97
|
-
rule_card = Card.new(:
|
98
|
-
res[set_card.subclass_for_set] << {:
|
97
|
+
rule_card = Card.new(name: suggested_rule_name)
|
98
|
+
res[set_card.subclass_for_set] << {card: rule_card, options: [option]}
|
99
99
|
end
|
100
100
|
end
|
101
101
|
end
|
@@ -109,15 +109,15 @@ format :html do
|
|
109
109
|
end
|
110
110
|
|
111
111
|
sets = followed_by_set
|
112
|
-
wrap_with :div, :
|
113
|
-
wrap_with :ul, :
|
112
|
+
wrap_with :div, class: 'pointer-list-editor' do
|
113
|
+
wrap_with :ul, class: 'delete-list list-group' do
|
114
114
|
|
115
115
|
Card.set_patterns.select{|p| sets[p]}.reverse.map do |set_pattern|
|
116
116
|
sets[set_pattern].map do |rule|
|
117
117
|
rule[:options].map do |option|
|
118
118
|
|
119
|
-
content_tag :li, :
|
120
|
-
subformat(rule[:card]).render_follow_item :
|
119
|
+
content_tag :li, class: 'list-group-item' do
|
120
|
+
subformat(rule[:card]).render_follow_item condition: option, hide: hide_buttons
|
121
121
|
end
|
122
122
|
|
123
123
|
end.join("\n")
|
@@ -142,12 +142,12 @@ format :html do
|
|
142
142
|
hide_buttons = [:delete_follow_rule_button, :add_follow_rule_button]
|
143
143
|
end
|
144
144
|
never = Card[:never].name
|
145
|
-
wrap_with :div, :
|
146
|
-
wrap_with :ul, :
|
145
|
+
wrap_with :div, class: 'pointer-list-editor' do
|
146
|
+
wrap_with :ul, class: 'delete-list list-group' do
|
147
147
|
|
148
148
|
ignore_list.map do |rule_card|
|
149
|
-
content_tag :li, :
|
150
|
-
subformat(rule_card).render_follow_item :
|
149
|
+
content_tag :li, class: 'list-group-item' do
|
150
|
+
subformat(rule_card).render_follow_item condition: never, hide: hide_buttons
|
151
151
|
end
|
152
152
|
end.join "\n"
|
153
153
|
|
@@ -155,16 +155,16 @@ format :html do
|
|
155
155
|
end
|
156
156
|
end
|
157
157
|
|
158
|
-
view :pointer_items, :
|
159
|
-
super(args.merge(:
|
158
|
+
view :pointer_items, tags: :unknown_ok do |args|
|
159
|
+
super(args.merge(item: :link))
|
160
160
|
end
|
161
161
|
|
162
|
-
view :errors, :
|
162
|
+
view :errors, perms: :none do |args|
|
163
163
|
if card.errors.any?
|
164
164
|
if card.errors.find { |attrib,msg| attrib == :permission_denied }
|
165
|
-
save_interrupted_action(request.env['REQUEST_URI'])
|
165
|
+
Env.save_interrupted_action(request.env['REQUEST_URI'])
|
166
166
|
title = "Problems with #{card.name}"
|
167
|
-
frame args.merge(:
|
167
|
+
frame args.merge(panel_class: "panel panel-warning", title: title, hide: 'menu' ) do
|
168
168
|
"Please #{ link_to 'sign in', card_url(':signin') }" #" #{to_task}"
|
169
169
|
end
|
170
170
|
else
|
@@ -6,82 +6,83 @@ def self.included host_class
|
|
6
6
|
host_class.extend CarrierWave::CardMount
|
7
7
|
end
|
8
8
|
|
9
|
-
event :select_file_revision, :
|
9
|
+
event :select_file_revision, after: :select_action do
|
10
10
|
attachment.retrieve_from_store!(attachment.identifier)
|
11
11
|
end
|
12
12
|
|
13
|
-
event :
|
14
|
-
@store_place = load_from_mod || :deck
|
15
|
-
end
|
16
|
-
|
17
|
-
event :upload_attachment, :before=>:validate_name, :on=>:save, :when=>proc { |c| c.preliminary_upload? } do
|
13
|
+
event :upload_attachment, before: :validate_name, on: :save, when: proc { |c| c.preliminary_upload? } do
|
18
14
|
save_original_filename # save original filename as comment in action
|
19
15
|
write_identifier # set db_content (needs original filename to determine extension)
|
20
16
|
store_attachment!
|
21
17
|
finalize_action # create Card::Change entry for db_content
|
22
|
-
@current_action.update_attributes! :
|
23
|
-
|
18
|
+
@current_action.update_attributes! draft: true, card_id: (new_card? ? upload_cache_card.id : id)
|
24
19
|
success << {
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
20
|
+
target: (new_card? ? upload_cache_card : self),
|
21
|
+
type: type_name,
|
22
|
+
view: 'preview_editor',
|
23
|
+
rev_id: current_action.id
|
29
24
|
}
|
30
25
|
abort :success
|
31
26
|
end
|
32
27
|
|
33
|
-
event :assign_attachment_on_create, :
|
34
|
-
if
|
28
|
+
event :assign_attachment_on_create, after: :prepare, on: :create, when: proc { |c| c.save_preliminary_upload? } do
|
29
|
+
if (action = Card::Action.fetch(Card::Env.params[:cached_upload]))
|
35
30
|
upload_cache_card.selected_action_id = action.id
|
36
31
|
upload_cache_card.select_file_revision
|
37
32
|
assign_attachment upload_cache_card.attachment.file, action.comment
|
38
|
-
action.delete # TODO: delete files too
|
39
33
|
end
|
40
34
|
end
|
41
35
|
|
42
|
-
event :assign_attachment_on_update, :
|
43
|
-
if
|
36
|
+
event :assign_attachment_on_update, after: :prepare, on: :update, when: proc { |c| c.save_preliminary_upload? } do
|
37
|
+
if (action = Card::Action.fetch(Card::Env.params[:cached_upload]))
|
44
38
|
uploaded_file =
|
45
39
|
with_selected_action_id(action.id) do
|
46
40
|
attachment.file
|
47
41
|
end
|
48
42
|
assign_attachment uploaded_file, action.comment
|
49
|
-
action.delete
|
50
43
|
end
|
51
44
|
end
|
52
45
|
|
46
|
+
|
53
47
|
def assign_attachment file, original_filename
|
54
48
|
send "#{attachment_name}=", file
|
55
49
|
write_identifier
|
56
|
-
@current_action.update_attributes! :
|
50
|
+
@current_action.update_attributes! comment: original_filename
|
57
51
|
end
|
58
52
|
|
59
53
|
# we need a card id for the path so we have to update db_content when we got an id
|
60
|
-
event :correct_identifier, :
|
61
|
-
update_column(:db_content,attachment.db_content(:
|
54
|
+
event :correct_identifier, after: :store, on: :create do
|
55
|
+
update_column(:db_content,attachment.db_content(mod: load_from_mod))
|
62
56
|
expire
|
63
57
|
end
|
64
58
|
|
65
|
-
|
66
|
-
event :save_original_filename, :after=>:validate_name, :when => proc {|c| !c.preliminary_upload? && !c.save_preliminary_upload? && c.attachment_changed?} do
|
59
|
+
event :save_original_filename, after: :validate_name, when: proc {|c| !c.preliminary_upload? && !c.save_preliminary_upload? && c.attachment_changed?} do
|
67
60
|
if @current_action
|
68
|
-
@current_action.update_attributes! :
|
61
|
+
@current_action.update_attributes! comment: original_filename
|
69
62
|
end
|
70
63
|
end
|
71
64
|
|
72
|
-
event :
|
73
|
-
|
65
|
+
event :delete_cached_upload_file_on_create, after: :extend, on: :create, when: proc { |c| c.save_preliminary_upload? } do
|
66
|
+
if (action = Card::Action.fetch(Card::Env.params[:cached_upload]))
|
67
|
+
upload_cache_card.delete_files_for_action action
|
68
|
+
action.delete
|
69
|
+
end
|
70
|
+
clear_upload_cache_dir_for_new_cards
|
74
71
|
end
|
75
72
|
|
76
|
-
|
77
|
-
|
78
|
-
|
73
|
+
event :delete_cached_upload_file_on_update, after: :extend, on: :update, when: proc { |c| c.save_preliminary_upload? } do
|
74
|
+
if (action = Card::Action.fetch(Card::Env.params[:cached_upload]))
|
75
|
+
delete_files_for_action action
|
76
|
+
action.delete
|
77
|
+
end
|
79
78
|
end
|
80
79
|
|
81
|
-
|
82
|
-
|
80
|
+
|
81
|
+
event :write_identifier, after: :save_original_filename do
|
82
|
+
self.content = attachment.db_content(mod: load_from_mod)
|
83
83
|
end
|
84
84
|
|
85
|
+
|
85
86
|
def item_names(args={}) # needed for flexmail attachments. hacky.
|
86
87
|
[self.cardname]
|
87
88
|
end
|
@@ -106,12 +107,18 @@ def create_versions?
|
|
106
107
|
true
|
107
108
|
end
|
108
109
|
|
109
|
-
|
110
|
-
|
110
|
+
# used for uploads for new cards until the new card is created
|
111
|
+
def upload_cache_card
|
112
|
+
@upload_cache_card ||= Card["new_#{attachment_name}".to_sym ]
|
111
113
|
end
|
112
114
|
|
115
|
+
|
113
116
|
def load_from_mod= value
|
114
117
|
@mod = value
|
118
|
+
write_identifier
|
119
|
+
if value
|
120
|
+
@store_in_mod = true
|
121
|
+
end
|
115
122
|
end
|
116
123
|
|
117
124
|
def load_from_mod
|
@@ -119,20 +126,52 @@ def load_from_mod
|
|
119
126
|
end
|
120
127
|
|
121
128
|
def store_dir
|
122
|
-
if
|
123
|
-
|
124
|
-
"#{ Card.paths['files'].existent.first }/#{id}"
|
125
|
-
else
|
126
|
-
tmp_store_dir
|
127
|
-
end
|
129
|
+
if @store_in_mod
|
130
|
+
mod_dir
|
128
131
|
else
|
129
|
-
|
132
|
+
upload_dir
|
130
133
|
end
|
131
134
|
end
|
132
135
|
|
136
|
+
def retrieve_dir
|
137
|
+
if mod_file?
|
138
|
+
mod_dir
|
139
|
+
else
|
140
|
+
upload_dir
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
# place for files of regular file cards
|
145
|
+
def upload_dir
|
146
|
+
if id
|
147
|
+
"#{ Card.paths['files'].existent.first }/#{id}"
|
148
|
+
else
|
149
|
+
tmp_upload_dir
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
# place for files if card doesn't have an id yet
|
154
|
+
def tmp_upload_dir action_id=nil
|
155
|
+
"#{ Card.paths['files'].existent.first }/#{upload_cache_card.id}"
|
156
|
+
end
|
157
|
+
|
158
|
+
# place for files of mod file cards
|
159
|
+
def mod_dir
|
160
|
+
mod = @mod || mod_file?
|
161
|
+
Card.paths['mod'].to_a.each do |mod_path|
|
162
|
+
dir = File.join(mod_path, mod, 'file', codename )
|
163
|
+
if Dir.exist? dir
|
164
|
+
return dir
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
|
133
170
|
def mod_file?
|
171
|
+
if @store_in_mod
|
172
|
+
return @mod
|
134
173
|
# when db_content was changed assume that it's no longer a mod file
|
135
|
-
|
174
|
+
elsif !db_content_changed? && content.present?
|
136
175
|
case content
|
137
176
|
when /^:[^\/]+\/([^.]+)/ ; $1 # current mod_file format
|
138
177
|
when /^\~/ ; false # current id file format
|
@@ -152,18 +191,31 @@ def assign_set_specific_attributes
|
|
152
191
|
super
|
153
192
|
end
|
154
193
|
|
155
|
-
def
|
156
|
-
Dir.entries(
|
194
|
+
def clear_upload_cache_dir_for_new_cards
|
195
|
+
Dir.entries(tmp_upload_dir).each do |filename|
|
157
196
|
if filename =~/^\d+/
|
158
|
-
path = File.join(
|
159
|
-
older_than_five_days
|
160
|
-
if older_than_five_days
|
197
|
+
path = File.join(tmp_upload_dir, filename )
|
198
|
+
if older_than_five_days? File.ctime(path)
|
161
199
|
FileUtils.rm path
|
162
200
|
end
|
163
201
|
end
|
164
202
|
end
|
165
203
|
end
|
166
204
|
|
205
|
+
def older_than_five_days? time
|
206
|
+
Time.now - time > 432000
|
207
|
+
end
|
208
|
+
|
209
|
+
def delete_files_for_action action
|
210
|
+
with_selected_action_id(action.id) do
|
211
|
+
FileUtils.rm attachment.file.path
|
212
|
+
attachment.versions.each_value do |version|
|
213
|
+
FileUtils.rm version.path
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
|
167
219
|
def symlink_to(prior_action_id) # create filesystem links to files from prior action
|
168
220
|
if prior_action_id != last_action_id
|
169
221
|
save_action_id = selected_action_id
|