card 1.17.4 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/card.gemspec +24 -25
- data/config/initializers/01_init_ruby_extensions.rb +0 -4
- data/config/initializers/inflections.rb +1 -1
- data/config/initializers/notification.rb +2 -2
- data/db/migrate/20110511221913_require_earlier_migrations.rb +3 -3
- data/db/migrate/20120105203350_require_1_8_migrations.rb +3 -3
- data/db/migrate/20121111025347_require_1_10_migrations.rb +3 -3
- data/db/migrate/20130106052640_table_cleanup.rb +4 -4
- data/db/migrate/20130411210957_update_codenames.rb +2 -2
- data/db/migrate/20141001105348_move_revisions_to_actions.rb +4 -4
- data/db/migrate/20141121172918_rename_card_migration_table.rb +2 -2
- data/db/migrate/20141208132159_remove_present_from_reference_table.rb +2 -2
- data/db/migrate/20141216053032_better_index_names.rb +9 -9
- data/db/migrate_core_cards/20120611203506_rails_inflection_updates.rb +29 -32
- data/db/migrate_core_cards/20130411191151_renaming_for_menu.rb +3 -4
- data/db/migrate_core_cards/20130411211600_delete_old_related_tab_cards.rb +1 -1
- data/db/migrate_core_cards/20130419215612_import_help_text.rb +1 -2
- data/db/migrate_core_cards/20130823192433_add_style_cards.rb +3 -3
- data/db/migrate_core_cards/20130910183318_move_styles_to_content.rb +2 -3
- data/db/migrate_core_cards/20130920214038_jsonize_tinymce.rb +2 -2
- data/db/migrate_core_cards/20130920291703_update_stylesheets.rb +1 -2
- data/db/migrate_core_cards/20130927191728_account_events.rb +5 -6
- data/db/migrate_core_cards/20131016172445_common_css_patch.rb +2 -3
- data/db/migrate_core_cards/20140110193325_reset_account_request_type.rb +0 -1
- data/db/migrate_core_cards/20140307231621_user_data_to_cards.rb +23 -32
- data/db/migrate_core_cards/20140317035504_account_requests_to_signups.rb +1 -7
- data/db/migrate_core_cards/20140512155840_add_script_cards.rb +21 -24
- data/db/migrate_core_cards/20140629222005_add_email_cards.rb +17 -22
- data/db/migrate_core_cards/20140725180118_config_card_updates.rb +2 -2
- data/db/migrate_core_cards/20141111083921_delete_machine_output.rb +1 -3
- data/db/migrate_core_cards/20141115034214_config_descriptions_etc.rb +2 -2
- data/db/migrate_core_cards/20141119001955_make_symlinks_relative.rb +3 -3
- data/db/migrate_core_cards/20141120120605_fix_notification_html_message.rb +1 -1
- data/db/migrate_core_cards/20141204061304_watchers_to_following.rb +8 -12
- data/db/migrate_core_cards/20141208162106_add_ace_script.rb +2 -3
- data/db/migrate_core_cards/20141216155251_add_more_following_cards.rb +10 -10
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +10 -12
- data/db/migrate_core_cards/20150220134731_following_to_follow_rule.rb +4 -4
- data/db/migrate_core_cards/20150317162412_bootstrap_themes.rb +3 -3
- data/db/migrate_core_cards/20150326205655_bootswatch_themes.rb +7 -7
- data/db/migrate_core_cards/20150429090551_search_card_context.rb +18 -20
- data/db/migrate_core_cards/20150508212032_menu_compatibility.rb +3 -7
- data/db/migrate_core_cards/20150510031118_fix_skin_images.rb +2 -3
- data/db/migrate_core_cards/20150528084659_add_session_cardtype.rb +3 -3
- data/db/migrate_core_cards/20150601133433_add_recent_setting_session_card.rb +4 -4
- data/db/migrate_core_cards/20150610171702_add_debugger_session_card.rb +4 -4
- data/db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb +5 -11
- data/db/migrate_core_cards/20150724123438_update_file_and_image_cards.rb +29 -35
- data/db/migrate_core_cards/20150824135418_update_file_history.rb +10 -14
- data/db/migrate_core_cards/20150903130006_attachment_upload_cards.rb +1 -1
- data/db/schema.rb +92 -94
- data/db/seed/new/card_actions.yml +461 -469
- data/db/seed/new/card_acts.yml +154 -172
- data/db/seed/new/card_changes.yml +4076 -4031
- data/db/seed/new/card_references.yml +1584 -1927
- data/db/seed/new/cards.yml +2095 -2112
- data/db/seed/test/fixtures/card_actions.yml +1497 -1505
- data/db/seed/test/fixtures/card_acts.yml +454 -472
- data/db/seed/test/fixtures/card_changes.yml +7309 -7263
- data/db/seed/test/fixtures/card_references.yml +2263 -2613
- data/db/seed/test/fixtures/cards.yml +3298 -3316
- data/db/seed/test/seed.rb +3 -0
- data/lib/card.rb +17 -9
- data/lib/card/active_record_ext.rb +6 -8
- data/lib/card/active_record_helper.rb +42 -32
- data/lib/card/auth.rb +3 -3
- data/lib/card/cache.rb +4 -4
- data/lib/card/cache/persistent.rb +9 -5
- data/lib/card/cache/temporary.rb +5 -5
- data/lib/card/chunk.rb +1 -1
- data/lib/card/codename.rb +3 -2
- data/lib/card/content.rb +62 -57
- data/lib/card/core_ext.rb +20 -30
- data/lib/card/diff.rb +88 -76
- data/lib/card/director_register.rb +66 -0
- data/lib/card/env.rb +14 -17
- data/lib/card/exceptions.rb +7 -9
- data/lib/card/format.rb +18 -367
- data/lib/card/format/nest.rb +183 -0
- data/lib/card/format/permission.rb +63 -0
- data/lib/card/format/render.rb +140 -0
- data/lib/card/loader.rb +17 -26
- data/lib/card/location.rb +6 -6
- data/lib/card/mailer.rb +4 -7
- data/lib/card/migration.rb +1 -1
- data/lib/card/name.rb +3 -6
- data/lib/card/query.rb +8 -8
- data/lib/card/query/attributes.rb +6 -6
- data/lib/card/query/clause.rb +10 -10
- data/lib/card/query/join.rb +7 -9
- data/lib/card/query/reference.rb +17 -19
- data/lib/card/query/sql_statement.rb +2 -2
- data/lib/card/query/value.rb +15 -16
- data/lib/card/set.rb +106 -209
- data/lib/card/set/event.rb +126 -0
- data/lib/card/set_pattern.rb +42 -29
- data/lib/card/simplecov_helper.rb +19 -19
- data/lib/card/spec_helper.rb +40 -16
- data/lib/card/stage.rb +72 -0
- data/lib/card/stage_director.rb +231 -0
- data/lib/card/subcards.rb +56 -24
- data/lib/card/subdirector_array.rb +31 -0
- data/lib/card/success.rb +15 -18
- data/lib/card/version.rb +1 -2
- data/lib/card/view_cache.rb +4 -4
- data/lib/card/view_name.rb +10 -8
- data/lib/cardio.rb +1 -1
- data/lib/generators/card.rb +2 -4
- data/lib/generators/card/format/format_generator.rb +4 -4
- data/lib/generators/card/migration/migration_generator.rb +6 -6
- data/lib/generators/card/set/set_generator.rb +5 -6
- data/mod/01_core/chunk/include.rb +2 -1
- data/mod/01_core/chunk/link.rb +2 -2
- data/mod/01_core/chunk/literal.rb +6 -9
- data/mod/01_core/chunk/query_reference.rb +1 -1
- data/mod/01_core/chunk/reference.rb +2 -2
- data/mod/01_core/chunk/uri.rb +52 -63
- data/mod/01_core/format/html_format.rb +8 -12
- data/mod/01_core/format/text_format.rb +1 -1
- data/mod/01_core/set/all/actify.rb +96 -0
- data/mod/01_core/set/all/active_card.rb +7 -7
- data/mod/01_core/set/all/collection.rb +19 -20
- data/mod/01_core/set/all/content.rb +9 -7
- data/mod/01_core/set/all/erb.rb +5 -5
- data/mod/01_core/set/all/event.rb +60 -0
- data/mod/01_core/set/all/fetch.rb +13 -19
- data/mod/01_core/set/all/haml.rb +1 -1
- data/mod/01_core/set/all/initialize.rb +35 -41
- data/mod/01_core/set/all/location_history.rb +3 -5
- data/mod/01_core/set/all/name.rb +19 -68
- data/mod/01_core/set/all/name_validations.rb +56 -0
- data/mod/01_core/set/all/pattern.rb +2 -2
- data/mod/01_core/set/all/permissions.rb +14 -20
- data/mod/01_core/set/all/phases.rb +9 -200
- data/mod/01_core/set/all/references.rb +10 -10
- data/mod/01_core/set/all/rules.rb +3 -4
- data/mod/01_core/set/all/stages.rb +24 -0
- data/mod/01_core/set/all/states.rb +4 -4
- data/mod/01_core/set/all/subcards.rb +16 -26
- data/mod/01_core/set/all/templating.rb +1 -3
- data/mod/01_core/set/all/tracked_attributes.rb +47 -48
- data/mod/01_core/set/all/trash.rb +10 -10
- data/mod/01_core/set/all/type.rb +9 -8
- data/mod/01_core/set/all/utils.rb +10 -14
- data/mod/01_core/set/all/view_cache.rb +2 -2
- data/mod/01_core/set_pattern/01_all.rb +3 -3
- data/mod/01_core/set_pattern/02_all_plus.rb +3 -3
- data/mod/01_core/set_pattern/03_type.rb +2 -2
- data/mod/01_core/set_pattern/04_star.rb +3 -3
- data/mod/01_core/set_pattern/05_rstar.rb +3 -3
- data/mod/01_core/set_pattern/06_right.rb +2 -2
- data/mod/01_core/set_pattern/07_type_plus_right.rb +2 -2
- data/mod/01_core/set_pattern/08_self.rb +1 -1
- data/mod/01_core/spec/chunk/literal_spec.rb +7 -8
- data/mod/01_core/spec/chunk/uri_spec.rb +140 -142
- data/mod/01_core/spec/format/html_format_spec.rb +72 -57
- data/mod/01_core/spec/set/all/collection_spec.rb +63 -43
- data/mod/01_core/spec/set/all/content_spec.rb +4 -4
- data/mod/01_core/spec/set/all/fetch_spec.rb +12 -3
- data/mod/01_core/spec/set/all/name_spec.rb +3 -4
- data/mod/01_core/spec/set/all/pattern_spec.rb +32 -35
- data/mod/01_core/spec/set/all/permissions_spec.rb +17 -5
- data/mod/01_core/spec/set/all/phases_spec.rb +0 -1
- data/mod/01_core/spec/set/all/references_spec.rb +1 -1
- data/mod/01_core/spec/set/all/rules2_spec.rb +79 -91
- data/mod/01_core/spec/set/all/rules_spec.rb +63 -56
- data/mod/01_core/spec/set/all/templating_spec.rb +0 -1
- data/mod/01_core/spec/set/all/tracked_attributes_spec.rb +4 -5
- data/mod/01_core/spec/set/all/trash_spec.rb +23 -1
- data/mod/01_core/spec/set/all/type_spec.rb +2 -5
- data/mod/01_history/lib/card/action.rb +8 -10
- data/mod/01_history/set/all/actions.rb +2 -4
- data/mod/01_history/set/all/content_history.rb +38 -32
- data/mod/01_history/set/all/history.rb +20 -17
- data/mod/02_basic_types/format/rss_format.rb +0 -1
- data/mod/02_basic_types/set/all/all_css.rb +9 -13
- data/mod/02_basic_types/set/all/all_csv.rb +14 -17
- data/mod/02_basic_types/set/all/all_js.rb +3 -4
- data/mod/02_basic_types/set/all/base.rb +2 -2
- data/mod/02_basic_types/set/all/file.rb +2 -5
- data/mod/02_basic_types/set/all/json.rb +19 -18
- data/mod/02_basic_types/set/all/rss.rb +3 -3
- data/mod/02_basic_types/set/all/text.rb +1 -3
- data/mod/02_basic_types/set/type/html.rb +4 -8
- data/mod/02_basic_types/set/type/plain_text.rb +2 -3
- data/mod/02_basic_types/set/type/pointer.rb +82 -92
- data/mod/02_basic_types/spec/set/all/all_css_spec.rb +2 -2
- data/mod/02_basic_types/spec/set/all/all_csv_spec.rb +6 -4
- data/mod/02_basic_types/spec/set/all/base_spec.rb +6 -6
- data/mod/02_basic_types/spec/set/all/json_spec.rb +8 -8
- data/mod/02_basic_types/spec/set/type/plain_text_spec.rb +3 -3
- data/mod/02_basic_types/spec/set/type/pointer_spec.rb +29 -32
- data/mod/03_machines/lib/card/machine.rb +95 -81
- data/mod/03_machines/lib/card/machine_input.rb +35 -34
- data/mod/03_machines/set/right/machine_input.rb +1 -1
- data/mod/03_machines/set/self/script_ace.rb +2 -3
- data/mod/03_machines/set/self/script_card_menu.rb +2 -3
- data/mod/03_machines/set/self/script_jquery_helper.rb +2 -2
- data/mod/03_machines/set/self/script_slot.rb +2 -2
- data/mod/03_machines/set/self/style_bootstrap_compatible.rb +1 -1
- data/mod/03_machines/set/self/style_cards.rb +1 -1
- data/mod/03_machines/set/self/style_jquery_ui_smoothness.rb +0 -1
- data/mod/03_machines/set/type/coffee_script.rb +9 -13
- data/mod/03_machines/set/type/css.rb +12 -13
- data/mod/03_machines/set/type/java_script.rb +6 -8
- data/mod/03_machines/set/type/scss.rb +4 -5
- data/mod/03_machines/set/type/skin.rb +3 -6
- data/mod/03_machines/spec/lib/shared_machine_examples.rb +31 -38
- data/mod/03_machines/spec/lib/shared_machine_input_examples.rb +7 -8
- data/mod/03_machines/spec/set/type/coffeescript_spec.rb +19 -13
- data/mod/03_machines/spec/set/type/css_spec.rb +22 -16
- data/mod/03_machines/spec/set/type/scss_spec.rb +28 -21
- data/mod/03_machines/spec/set/type/skin_spec.rb +28 -30
- data/mod/04_settings/lib/card/setting.rb +4 -4
- data/mod/04_settings/set/abstract/permission.rb +30 -37
- data/mod/04_settings/set/right/add_help.rb +3 -3
- data/mod/04_settings/set/right/script.rb +4 -5
- data/mod/04_settings/set/right/structure.rb +3 -4
- data/mod/04_settings/set/right/style.rb +3 -3
- data/mod/04_settings/set/self/add_help.rb +1 -1
- data/mod/04_settings/set/self/input.rb +1 -1
- data/mod/04_settings/set/self/on_create.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/type/setting.rb +29 -44
- data/mod/04_settings/spec/set/right/comment_spec.rb +9 -12
- data/mod/04_settings/spec/set/right/script_spec.rb +7 -7
- data/mod/04_settings/spec/set/right/structure_spec.rb +13 -12
- data/mod/04_settings/spec/set/right/style_spec.rb +13 -13
- data/mod/04_settings/spec/set/type/setting_spec.rb +1 -1
- data/mod/05_email/format/email_html_format.rb +1 -1
- data/mod/05_email/format/email_text_format.rb +2 -2
- data/mod/05_email/lib/card/follow_option.rb +12 -15
- data/mod/05_email/set/all/email_html.rb +2 -3
- data/mod/05_email/set/all/email_text.rb +3 -3
- data/mod/05_email/set/all/follow.rb +14 -22
- data/mod/05_email/set/all/notify.rb +11 -11
- data/mod/05_email/set/all/observer.rb +7 -8
- data/mod/05_email/set/right/bcc.rb +4 -9
- data/mod/05_email/set/right/follow.rb +26 -39
- data/mod/05_email/set/right/follow_fields.rb +2 -2
- data/mod/05_email/set/right/followers.rb +3 -1
- data/mod/05_email/set/right/following.rb +13 -16
- data/mod/05_email/set/self/always.rb +1 -2
- data/mod/05_email/set/self/created.rb +4 -6
- data/mod/05_email/set/self/edited.rb +3 -7
- data/mod/05_email/set/self/follow_defaults.rb +11 -12
- data/mod/05_email/set/self/never.rb +2 -4
- data/mod/05_email/set/type/email_template.rb +40 -27
- data/mod/05_email/set/type_plus_right/user/follow.rb +159 -157
- data/mod/05_email/spec/set/all/follow_spec.rb +28 -37
- data/mod/05_email/spec/set/all/notify_spec.rb +21 -26
- data/mod/05_email/spec/set/all/observer_spec.rb +58 -37
- data/mod/05_email/spec/set/right/followers_spec.rb +9 -14
- data/mod/05_email/spec/set/right/following_spec.rb +1 -1
- data/mod/05_email/spec/set/self/follow_defaults_spec.rb +1 -1
- data/mod/05_standard/lib/carrier_wave/cardmount.rb +9 -9
- data/mod/05_standard/lib/file_uploader.rb +8 -13
- data/mod/05_standard/lib/image_uploader.rb +8 -9
- data/mod/05_standard/set/abstract/attachment.rb +26 -43
- data/mod/05_standard/set/all/account.rb +2 -2
- data/mod/05_standard/set/all/comment.rb +11 -13
- data/mod/05_standard/set/all/error.rb +18 -18
- data/mod/05_standard/set/all/event_viz.rb +16 -29
- data/mod/05_standard/set/all/links.rb +35 -34
- data/mod/05_standard/set/all/list_changes.rb +10 -12
- data/mod/05_standard/set/all/rich_html/content.rb +13 -13
- data/mod/05_standard/set/all/rich_html/editing.rb +5 -5
- data/mod/05_standard/set/all/rich_html/form.rb +22 -26
- data/mod/05_standard/set/all/rich_html/header.rb +18 -25
- data/mod/05_standard/set/all/rich_html/menu.rb +20 -22
- data/mod/05_standard/set/all/rich_html/modal.rb +3 -3
- data/mod/05_standard/set/all/rich_html/toolbar.rb +49 -58
- data/mod/05_standard/set/all/rich_html/wrapper.rb +40 -41
- data/mod/05_standard/set/right/account.rb +26 -14
- data/mod/05_standard/set/right/email.rb +2 -2
- data/mod/05_standard/set/right/password.rb +6 -5
- data/mod/05_standard/set/right/salt.rb +2 -2
- data/mod/05_standard/set/right/stats.rb +17 -20
- data/mod/05_standard/set/right/token.rb +1 -1
- data/mod/05_standard/set/right/when_created.rb +1 -1
- data/mod/05_standard/set/right/when_last_edited.rb +1 -1
- data/mod/05_standard/set/rstar/rules.rb +3 -3
- data/mod/05_standard/set/rstar/rules_editor.rb +39 -39
- data/mod/05_standard/set/self/account_links.rb +21 -22
- data/mod/05_standard/set/self/admin_info.rb +5 -5
- data/mod/05_standard/set/self/alerts.rb +1 -1
- data/mod/05_standard/set/self/all.rb +1 -1
- data/mod/05_standard/set/self/foot.rb +1 -1
- data/mod/05_standard/set/self/head.rb +19 -22
- data/mod/05_standard/set/self/navbox.rb +3 -7
- data/mod/05_standard/set/self/now.rb +1 -1
- data/mod/05_standard/set/self/recent.rb +19 -25
- data/mod/05_standard/set/self/search.rb +2 -4
- data/mod/05_standard/set/self/signin.rb +6 -6
- data/mod/05_standard/set/self/stats.rb +31 -38
- data/mod/05_standard/set/self/version.rb +1 -2
- data/mod/05_standard/set/type/basic.rb +15 -17
- data/mod/05_standard/set/type/cardtype.rb +3 -3
- data/mod/05_standard/set/type/date.rb +1 -2
- data/mod/05_standard/set/type/file.rb +22 -33
- data/mod/05_standard/set/type/image.rb +30 -23
- data/mod/05_standard/set/type/layout_type.rb +4 -4
- data/mod/05_standard/set/type/list.rb +32 -38
- data/mod/05_standard/set/type/listed_by.rb +11 -13
- data/mod/05_standard/set/type/number.rb +5 -6
- data/mod/05_standard/set/type/phrase.rb +1 -1
- data/mod/05_standard/set/type/search_type.rb +25 -23
- data/mod/05_standard/set/type/session.rb +2 -3
- data/mod/05_standard/set/type/set.rb +46 -51
- data/mod/05_standard/set/type/signup.rb +18 -19
- data/mod/05_standard/set/type/toggle.rb +5 -5
- data/mod/05_standard/set/type/user.rb +6 -6
- data/mod/05_standard/spec/chunk/include_spec.rb +115 -98
- data/mod/05_standard/spec/chunk/link_spec.rb +58 -31
- data/mod/05_standard/spec/chunk/query_reference_spec.rb +12 -14
- data/mod/05_standard/spec/set/all/email_html_spec.rb +3 -3
- data/mod/05_standard/spec/set/all/error_spec.rb +3 -3
- data/mod/05_standard/spec/set/all/history_spec.rb +52 -38
- data/mod/05_standard/spec/set/all/links_spec.rb +2 -2
- data/mod/05_standard/spec/set/all/rich_html/editing_spec.rb +0 -1
- data/mod/05_standard/spec/set/all/rich_html/form_spec.rb +11 -11
- data/mod/05_standard/spec/set/all/rich_html/wrapper_spec.rb +4 -4
- data/mod/05_standard/spec/set/right/email_spec.rb +1 -4
- data/mod/05_standard/spec/set/right/password_spec.rb +4 -7
- data/mod/05_standard/spec/set/right/stats_spec.rb +2 -3
- 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 +6 -6
- data/mod/05_standard/spec/set/self/all_spec.rb +11 -13
- data/mod/05_standard/spec/set/self/head_spec.rb +1 -3
- data/mod/05_standard/spec/set/self/navbox_spec.rb +1 -1
- data/mod/05_standard/spec/set/self/now_spec.rb +2 -2
- data/mod/05_standard/spec/set/self/signin_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 +2 -2
- data/mod/05_standard/spec/set/type/cardtype_spec.rb +3 -4
- data/mod/05_standard/spec/set/type/date_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/email_template_spec.rb +5 -5
- data/mod/05_standard/spec/set/type/file_spec.rb +50 -28
- data/mod/05_standard/spec/set/type/html_spec.rb +12 -7
- data/mod/05_standard/spec/set/type/image_spec.rb +55 -45
- data/mod/05_standard/spec/set/type/layout_type_spec.rb +2 -2
- data/mod/05_standard/spec/set/type/listed_by_spec.rb +2 -2
- data/mod/05_standard/spec/set/type/number_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/phrase_spec.rb +1 -1
- data/mod/05_standard/spec/set/type/search_type_spec.rb +15 -16
- data/mod/05_standard/spec/set/type/set_spec.rb +16 -17
- data/mod/05_standard/spec/set/type/signup_spec.rb +7 -5
- data/mod/05_standard/spec/set/type/toggle_spec.rb +4 -4
- data/mod/05_standard/spec/set/type/uri_spec.rb +11 -11
- data/mod/05_standard/spec/set/type/user_spec.rb +0 -1
- data/mod/06_bootstrap/set/all/bootstrap/form.rb +9 -10
- data/mod/06_bootstrap/set/all/bootstrap/helper.rb +22 -27
- data/mod/06_bootstrap/set/all/bootstrap/wrapper.rb +1 -2
- data/mod/06_bootstrap/set/all/rich_bootstrap.rb +1 -3
- data/mod/06_bootstrap/set/self/bootstrap_cards.rb +2 -2
- data/mod/06_bootstrap/set/self/bootstrap_js.rb +2 -2
- data/mod/06_bootstrap/set/self/bootswatch_shared.rb +19 -19
- data/mod/06_bootstrap/set/self/smartmenu_css.rb +2 -2
- data/mod/06_bootstrap/set/self/smartmenu_js.rb +3 -3
- data/mod/06_bootstrap/spec/set/all/bootstrap/form_spec.rb +5 -5
- data/spec/lib/card/action_spec.rb +4 -4
- data/spec/lib/card/cache_spec.rb +3 -5
- data/spec/lib/card/chunk_spec.rb +6 -8
- data/spec/lib/card/codename_spec.rb +4 -6
- data/spec/lib/card/content_spec.rb +12 -17
- data/spec/lib/card/diff_spec.rb +59 -61
- data/spec/lib/card/format_spec.rb +55 -34
- data/spec/lib/card/loader_spec.rb +35 -37
- data/spec/lib/card/name_spec.rb +159 -145
- data/spec/lib/card/query_spec.rb +4 -4
- data/spec/lib/card/reference_spec.rb +24 -24
- data/spec/lib/card/set_pattern_spec.rb +3 -3
- data/spec/lib/card/stage_director_spec.rb +218 -0
- data/spec/lib/card/subcards_spec.rb +12 -16
- data/spec/lib/card/success_spec.rb +16 -18
- data/spec/lib/card/view_cache_spec.rb +1 -1
- data/spec/mailers/mailer_spec.rb +3 -5
- data/spec/models/card/cardtype_spec.rb +40 -51
- data/spec/models/card/create_spec.rb +58 -39
- data/spec/models/card/trash_spec.rb +23 -32
- data/spec/models/card/type_transition_spec.rb +41 -32
- data/spec/models/card/validation_spec.rb +13 -15
- data/spec/models/card_spec.rb +48 -59
- data/spec/spec_helper.rb +26 -31
- metadata +16 -2
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
class ConfigCardUpdates < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
raw_json = File.read(
|
5
|
+
raw_json = File.read(data_path '1.13_config_text.json')
|
6
6
|
json = JSON.parse raw_json
|
7
|
-
Card.merge_list json[
|
7
|
+
Card.merge_list json['card']['value'], output_file: 'tmp/unmerged_config_text.json'
|
8
8
|
end
|
9
9
|
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
class ConfigDescriptionsEtc < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
raw_json = File.read(
|
5
|
+
raw_json = File.read(data_path '1.14_config_descriptions_etc.json')
|
6
6
|
json = JSON.parse raw_json
|
7
|
-
Card.merge_list json[
|
7
|
+
Card.merge_list json['card']['value'], output_file: 'tmp/unmerged_config_text.json'
|
8
8
|
|
9
9
|
# fix missing +*from card
|
10
10
|
c = Card.fetch "follower notification email+#{Card[:from].name}", new: {}
|
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
class MakeSymlinksRelative < Card::Migration
|
4
4
|
def up
|
5
|
-
Card.paths['files'].each do |file_path|
|
5
|
+
Card.paths['files'].each do |file_path|
|
6
6
|
files = Dir.glob(File.join file_path, '**', '*')
|
7
|
-
symlinks = files.select {|f| File.symlink? f }
|
7
|
+
symlinks = files.select { |f| File.symlink? f }
|
8
8
|
symlinks.each do |symlink|
|
9
|
-
base = File.basename(
|
9
|
+
base = File.basename(File.readlink(symlink))
|
10
10
|
File.delete symlink
|
11
11
|
File.symlink base, symlink
|
12
12
|
end
|
@@ -5,6 +5,6 @@ class FixNotificationHtmlMessage < Card::CoreMigration
|
|
5
5
|
codename = :follower_notification_email
|
6
6
|
dir = File.join data_path, 'mailer'
|
7
7
|
html_message = Card[codename].fetch trait: 'html_message'
|
8
|
-
html_message.update_attributes! content: File.read(
|
8
|
+
html_message.update_attributes! content: File.read(File.join(dir, "#{codename}.html"))
|
9
9
|
end
|
10
10
|
end
|
@@ -2,10 +2,9 @@
|
|
2
2
|
|
3
3
|
class WatchersToFollowing < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
|
6
5
|
follower_hash = Hash.new { |h, v| h[v] = [] }
|
7
6
|
|
8
|
-
#NOTE: this migration must find cards in the trash, because the original (1.14.0) migration attempt
|
7
|
+
# NOTE: this migration must find cards in the trash, because the original (1.14.0) migration attempt
|
9
8
|
# did not successfully migration to the +*following card but did successfully delete +*watchers cards.
|
10
9
|
# Therefore cards migrated using 1.14.0 or 1.14.1 will not have the correct migrations
|
11
10
|
|
@@ -13,19 +12,17 @@ class WatchersToFollowing < Card::CoreMigration
|
|
13
12
|
Card.find_by_sql("select * from cards where right_id = #{watcher_card.id}").each do |card|
|
14
13
|
card.include_set_modules
|
15
14
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
15
|
+
next unless watched = card.left
|
16
|
+
card.item_names.each do |user_name|
|
17
|
+
follower_hash[user_name] << watched.name
|
20
18
|
end
|
21
19
|
end
|
22
20
|
|
23
21
|
follower_hash.each do |user, items|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
22
|
+
next unless (card = Card.fetch(user)) && card.account
|
23
|
+
following = card.fetch trait: 'following', new: { type_code: :pointer }
|
24
|
+
items.each { |item| following.add_item item }
|
25
|
+
following.save!
|
29
26
|
end
|
30
27
|
end
|
31
28
|
|
@@ -33,6 +30,5 @@ class WatchersToFollowing < Card::CoreMigration
|
|
33
30
|
watchers.update_attributes codename: nil
|
34
31
|
watchers.delete!
|
35
32
|
end
|
36
|
-
|
37
33
|
end
|
38
34
|
end
|
@@ -2,9 +2,8 @@
|
|
2
2
|
|
3
3
|
class AddAceScript < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
Card[:all].fetch(trait: :script).add_item!
|
6
|
-
|
7
|
-
Card.create! name: "script: ace",codename: "script_ace",type: "JavaScript"
|
5
|
+
Card[:all].fetch(trait: :script).add_item! 'script: ace'
|
8
6
|
|
7
|
+
Card.create! name: 'script: ace', codename: 'script_ace', type: 'JavaScript'
|
9
8
|
end
|
10
9
|
end
|
@@ -2,23 +2,23 @@
|
|
2
2
|
|
3
3
|
class AddMoreFollowingCards < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
Card.create! name:
|
5
|
+
Card.create! name: '*follow', codename: 'follow', type_code: :setting
|
6
6
|
Card.create! name: '*follow+*right+*default', type_code: :pointer
|
7
|
-
Card.create! name: '*follow+*right+*input', type_code: :pointer, content:
|
7
|
+
Card.create! name: '*follow+*right+*input', type_code: :pointer, content: '[[radio]]'
|
8
8
|
Card.create! name: '*follow+*right+*help', content: 'Get notified about changes', type_code: :phrase
|
9
9
|
|
10
|
-
Card.create! name:
|
11
|
-
Card.create! name:
|
12
|
-
Card.create! name:
|
13
|
-
Card.create! name:
|
14
|
-
Card.create! name:
|
10
|
+
Card.create! name: '*followers', codename: 'followers'
|
11
|
+
Card.create! name: '*follow fields', codename: 'follow_fields', type_code: :setting
|
12
|
+
Card.create! name: '*follow fields+*right+*help', content: ''
|
13
|
+
Card.create! name: '*follow fields+*right+*default', type_code: :pointer
|
14
|
+
Card.create! name: '*all+*follow fields', content: '[[*include]]', type_code: :pointer
|
15
15
|
|
16
16
|
# follow options
|
17
|
-
Card.create! name:
|
18
|
-
Card.create! name:
|
17
|
+
Card.create! name: '*always', codename: 'always'
|
18
|
+
Card.create! name: '*never', codename: 'never'
|
19
19
|
|
20
20
|
# default follow rule
|
21
21
|
Card.create! name: '*follow defaults', codename: 'follow_defaults', type_code: :pointer
|
22
|
-
Card.create! name:
|
22
|
+
Card.create! name: '*all+*all+*follow', type_code: :pointer, content: '[[*never]]'
|
23
23
|
end
|
24
24
|
end
|
@@ -2,23 +2,23 @@
|
|
2
2
|
|
3
3
|
class ImportBootstrapLayout < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
layout = Card.fetch
|
5
|
+
layout = Card.fetch 'Default Layout'
|
6
6
|
if layout
|
7
|
-
layout.name =
|
7
|
+
layout.name = 'Classic Layout'
|
8
8
|
layout.update_referers = true
|
9
9
|
layout.save!
|
10
10
|
end
|
11
11
|
|
12
|
-
import_json
|
12
|
+
import_json 'bootstrap_layout.json' # , pristine: true, output_file: nil
|
13
13
|
if layout && layout.pristine? &&
|
14
|
-
|
14
|
+
all = Card[:all]
|
15
15
|
layout_rule_card = all.fetch trait: :layout
|
16
16
|
style_rule_card = all.fetch trait: :style
|
17
17
|
if layout_rule_card.pristine? && style_rule_card.pristine?
|
18
18
|
layout_rule_card.update_attributes! content: '[[Default Layout]]'
|
19
19
|
if style_rule_card.item_names.first == 'customized classic skin'
|
20
20
|
Card.create! name: 'customized bootstrap skin', type: 'Skin',
|
21
|
-
|
21
|
+
content: "[[classic bootstrap skin]]\n[[*css]]"
|
22
22
|
style_rule_card.update_attributes! content: '[[customized bootstrap skin]]'
|
23
23
|
else
|
24
24
|
style_rule_card.update_attributes! content: '[[classic bootstrap skin]]'
|
@@ -26,7 +26,7 @@ class ImportBootstrapLayout < Card::CoreMigration
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
Card.create! name:
|
29
|
+
Card.create! name: '*header+*self+*read', content: '[[Anyone]]'
|
30
30
|
|
31
31
|
# merge "style: functional" and "style: standard" into "style: cards"
|
32
32
|
old_func = Card[:style_functional]
|
@@ -39,7 +39,6 @@ class ImportBootstrapLayout < Card::CoreMigration
|
|
39
39
|
old_stand.codename = nil
|
40
40
|
old_stand.delete!
|
41
41
|
|
42
|
-
|
43
42
|
# these are hard-coded
|
44
43
|
Card.create! name: 'theme: bootstrap_default', type_code: :css, codename: 'theme_bootstrap_default'
|
45
44
|
Card.create! name: 'style: bootstrap', type_code: :css, codename: 'bootstrap_css'
|
@@ -55,16 +54,15 @@ class ImportBootstrapLayout < Card::CoreMigration
|
|
55
54
|
# retain old behavior (default view was content, now titled)
|
56
55
|
Card.create! name: '*all+*default html view', content: 'content'
|
57
56
|
|
58
|
-
# update layouts to have explicit views in
|
59
|
-
Card.search(
|
57
|
+
# update layouts to have explicit views in nests
|
58
|
+
Card.search(type_id: Card::LayoutTypeID) do |lcard|
|
60
59
|
lcontent = Card::Content.new lcard.content, lcard
|
61
|
-
lcontent.find_chunks(
|
62
|
-
nest.explicit_view = (nest.options[:inc_name]=='_main' ? 'open' : 'core')
|
60
|
+
lcontent.find_chunks(Card::Chunk::Include).each do |nest|
|
61
|
+
nest.explicit_view = (nest.options[:inc_name] == '_main' ? 'open' : 'core')
|
63
62
|
end
|
64
63
|
lcard.update_attributes! content: lcontent.to_s
|
65
64
|
end
|
66
65
|
|
67
66
|
Card::Cache.reset_all
|
68
|
-
|
69
67
|
end
|
70
68
|
end
|
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
class FollowingToFollowRule < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
Card.search(right: {codename: 'following'}, left: {type: 'user'}).each do |following_card|
|
5
|
+
Card.search(right: { codename: 'following' }, left: { type: 'user' }).each do |following_card|
|
6
6
|
user_name = following_card.cardname.left
|
7
7
|
following_card.item_names.each do |followed_set_name|
|
8
8
|
set_card = Card.fetch(followed_set_name, new: {})
|
9
|
-
if
|
9
|
+
if set_card.type_code != :set
|
10
10
|
set_card = set_card.default_follow_set_card
|
11
11
|
end
|
12
|
-
rule = Card.fetch set_card.follow_rule_name(user_name), new: {type: 'pointer'}
|
13
|
-
rule.content =
|
12
|
+
rule = Card.fetch set_card.follow_rule_name(user_name), new: { type: 'pointer' }
|
13
|
+
rule.content = '[[*always]]'
|
14
14
|
rule.save!
|
15
15
|
end
|
16
16
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
class BootstrapThemes < Card::CoreMigration
|
4
4
|
def up
|
5
5
|
Card.create! name: 'themeless bootstrap skin', type_code: :skin, content: "[[style: bootstrap]]\n[[style: jquery-ui-smoothness]]\n[[style: cards]]\n[[style: right sidebar]]\n[[style: bootstrap cards]]"
|
6
|
-
%w
|
6
|
+
%w(cerulean cosmo cyborg darkly flatly journal lumen paper readable sandstone simplex slate spacelab superhero united yeti ).each do |theme|
|
7
7
|
Card.create! name: "theme: #{theme}", type_code: :css, codename: "theme_#{theme}"
|
8
8
|
Card.create! name: "#{theme} skin", type_code: :skin, codename: "#{theme}_skin", content: "[[themeless bootstrap skin]]\n[[theme: #{theme}]]"
|
9
9
|
end
|
@@ -16,7 +16,7 @@ class BootstrapThemes < Card::CoreMigration
|
|
16
16
|
style_right = Card[:style].fetch trait: :right, new: {}
|
17
17
|
|
18
18
|
style_right_options = style_right.fetch trait: :options, new: {}
|
19
|
-
style_right_options.content = %
|
19
|
+
style_right_options.content = %({"type":"Skin","sort":"name"})
|
20
20
|
style_right_options.save!
|
21
21
|
|
22
22
|
style_right_input = style_right.fetch trait: :input, new: {}
|
@@ -30,7 +30,7 @@ class BootstrapThemes < Card::CoreMigration
|
|
30
30
|
import_json 'skin_images.json'
|
31
31
|
|
32
32
|
if sidebar_card = Card['*sidebar']
|
33
|
-
new_content = sidebar_card.content.gsub(
|
33
|
+
new_content = sidebar_card.content.gsub(/(\*(logo|credit))\|content/, '\1|content_panel')
|
34
34
|
sidebar_card.update_attributes! content: new_content
|
35
35
|
end
|
36
36
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
class BootswatchThemes < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
themeless = Card.fetch 'themeless bootstrap skin', new: {type_code: :skin}
|
5
|
+
themeless = Card.fetch 'themeless bootstrap skin', new: { type_code: :skin }
|
6
6
|
themeless.update_attributes! content: "[[style: jquery-ui-smoothness]]\n[[style: cards]]\n[[style: right sidebar]]\n[[style: bootstrap cards]]"
|
7
7
|
bs = Card[:bootstrap_css]
|
8
8
|
bs.update_attributes! codename: nil
|
@@ -10,18 +10,18 @@ class BootswatchThemes < Card::CoreMigration
|
|
10
10
|
|
11
11
|
Card.create! name: 'bootswatch shared', type_code: :scss, codename: 'bootswatch_shared'
|
12
12
|
Card.create! name: 'bootswatch theme+*right+*structure', type_id: Card::ScssID, content: '{{_left+variables}}{{bootswatch shared}}{{_left+style}}'
|
13
|
-
%w
|
13
|
+
%w(bootstrap_default cerulean cosmo cyborg darkly flatly journal lumen paper readable sandstone simplex slate spacelab superhero united yeti ).each do |theme_name|
|
14
14
|
path = data_path "themes/#{theme_name}"
|
15
15
|
theme = Card.fetch "#{theme_name} skin"
|
16
16
|
if theme
|
17
17
|
theme.update_attributes! type_id: Card::SkinID, content: "[[themeless bootstrap skin]]\n[[+bootswatch theme]]", subcards: {
|
18
|
-
|
19
|
-
|
18
|
+
'+variables' => { type_id: Card::ScssID, content: File.read(File.join path, '_variables.scss') },
|
19
|
+
'+style' => { type_id: Card::ScssID, content: File.read(File.join path, '_bootswatch.scss') }
|
20
20
|
}
|
21
21
|
else
|
22
|
-
Card.create! name: "#{theme_name.sub('_',' ')} skin", type_id: Card::SkinID, content: "[[themeless bootstrap skin]]\n[[+bootswatch theme]]", subcards: {
|
23
|
-
|
24
|
-
|
22
|
+
Card.create! name: "#{theme_name.sub('_', ' ')} skin", type_id: Card::SkinID, content: "[[themeless bootstrap skin]]\n[[+bootswatch theme]]", subcards: {
|
23
|
+
'+variables' => { type_id: Card::ScssID, content: File.read(File.join path, '_variables.scss') },
|
24
|
+
'+style' => { type_id: Card::ScssID, content: File.read(File.join path, '_bootswatch.scss') }
|
25
25
|
}
|
26
26
|
end
|
27
27
|
end
|
@@ -2,32 +2,30 @@
|
|
2
2
|
|
3
3
|
class SearchCardContext < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
sep =
|
5
|
+
sep = /\W/
|
6
6
|
replace = [
|
7
|
-
['[lr]+','l\\1'],
|
8
|
-
['[LR]+','L\\1'],
|
9
|
-
['(?=[LR]*[lr]+)(?=[lr]*[LR]+)[lrLR]+','l\\1'], # mix of lowercase and uppercase l's and r's
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
['', 'left']
|
7
|
+
['[lr]+', 'l\\1'],
|
8
|
+
['[LR]+', 'L\\1'],
|
9
|
+
['(?=[LR]*[lr]+)(?=[lr]*[LR]+)[lrLR]+', 'l\\1'], # mix of lowercase and uppercase l's and r's
|
10
|
+
%w(left LL),
|
11
|
+
%w(right LR),
|
12
|
+
%w(self left),
|
13
|
+
['', 'left']
|
14
14
|
]
|
15
15
|
Card.search(type_id: ['in', Card::SearchTypeID, Card::SetID]).each do |card|
|
16
|
-
|
17
|
-
|
16
|
+
next unless card.cardname.junction? && card.real?
|
17
|
+
content = card.content
|
18
|
+
replace.each do |key, val|
|
19
|
+
content.gsub!(/(#{sep})_(#{key})(?=#{sep})/, "\\1_#{val}")
|
20
|
+
end
|
21
|
+
card.update_column :db_content, content
|
22
|
+
card.actions.each do |action|
|
23
|
+
next unless (content_change = action.change_for(:db_content).first)
|
24
|
+
content = content_change.value
|
18
25
|
replace.each do |key, val|
|
19
26
|
content.gsub!(/(#{sep})_(#{key})(?=#{sep})/, "\\1_#{val}")
|
20
27
|
end
|
21
|
-
|
22
|
-
card.actions.each do |action|
|
23
|
-
if (content_change = action.change_for(:db_content).first)
|
24
|
-
content = content_change.value
|
25
|
-
replace.each do |key, val|
|
26
|
-
content.gsub!(/(#{sep})_(#{key})(?=#{sep})/, "\\1_#{val}")
|
27
|
-
end
|
28
|
-
content_change.update_column :value, content
|
29
|
-
end
|
30
|
-
end
|
28
|
+
content_change.update_column :value, content
|
31
29
|
end
|
32
30
|
end
|
33
31
|
end
|
@@ -2,11 +2,10 @@
|
|
2
2
|
|
3
3
|
class MenuCompatibility < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
|
6
5
|
# Add bootswatch shared to old skins so that menu works
|
7
6
|
bootswatch_shared = Card[:bootswatch_shared]
|
8
7
|
Card.search(type_id: Card::SkinID) do |skin|
|
9
|
-
if skin.item_cards.find { |item_card| item_card.codename.to_s == 'style_bootstrap_compatible'}
|
8
|
+
if skin.item_cards.find { |item_card| item_card.codename.to_s == 'style_bootstrap_compatible' }
|
10
9
|
skin.add_item! bootswatch_shared.name
|
11
10
|
end
|
12
11
|
end
|
@@ -16,11 +15,8 @@ class MenuCompatibility < Card::CoreMigration
|
|
16
15
|
[:style, :script].each do |setting|
|
17
16
|
Card.search(
|
18
17
|
right_id: Card::MachineOutputID,
|
19
|
-
left: { right: {codename: setting.to_s } }
|
20
|
-
).each
|
21
|
-
output_card.delete!
|
22
|
-
end
|
18
|
+
left: { right: { codename: setting.to_s } }
|
19
|
+
).each(&:delete!)
|
23
20
|
end
|
24
|
-
|
25
21
|
end
|
26
22
|
end
|
@@ -2,12 +2,11 @@
|
|
2
2
|
|
3
3
|
class FixSkinImages < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
|
6
5
|
# This is needed because the bootswatch_themes migration removed codenames.
|
7
6
|
# They were no longer needed for style handling but are still needed for images
|
8
|
-
%w
|
7
|
+
%w(bootstrap_default cerulean cosmo cyborg darkly flatly journal lumen paper readable sandstone simplex slate spacelab superhero united yeti ).each do |theme_name|
|
9
8
|
theme_name = "#{theme_name}_skin"
|
10
|
-
Card.fetch(
|
9
|
+
Card.fetch(theme_name).update_attributes! codename: theme_name
|
11
10
|
end
|
12
11
|
end
|
13
12
|
end
|
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
class AddSessionCardtype < Card::CoreMigration
|
4
4
|
def up
|
5
|
-
session_card_name = Card.exists?(
|
5
|
+
session_card_name = Card.exists?('Session') ? 'BrowserSession' : 'Session'
|
6
6
|
Card.create! name: session_card_name, type_code: :cardtype, codename: 'session',
|
7
|
-
|
7
|
+
subcards: { '+description' => { content: 'Session cards are for non-permanent content.
|
8
8
|
They are not stored in the database and can have different values for different users.
|
9
9
|
You can use a Session card to keep track of certain state of a particular user like the content
|
10
|
-
of shopping basket.'}}
|
10
|
+
of shopping basket.' } }
|
11
11
|
Card::Cache.reset_all
|
12
12
|
Card.create! name: '*edit toolbar pinned', type_code: :session, codename: 'edit_toolbar_pinned'
|
13
13
|
Card.create! name: '*toolbar pinned', type_code: :session, codename: 'toolbar_pinned'
|
@@ -3,10 +3,10 @@
|
|
3
3
|
class AddRecentSettingSessionCard < Card::CoreMigration
|
4
4
|
def up
|
5
5
|
Card.create! name: '*recent settings', codename: 'recent_settings', type_code: :pointer, subcards: {
|
6
|
-
'+*self+*options' => {type_code: :search_type, content: '{"type":"setting"}'},
|
7
|
-
'+*self+*update' => {content: '[[Anyone]]'},
|
8
|
-
'+*self**create' => {content: '[[Anyone]]'},
|
9
|
-
'+*self**read' => {content: '[[Anyone]]'}
|
6
|
+
'+*self+*options' => { type_code: :search_type, content: '{"type":"setting"}' },
|
7
|
+
'+*self+*update' => { content: '[[Anyone]]' },
|
8
|
+
'+*self**create' => { content: '[[Anyone]]' },
|
9
|
+
'+*self**read' => { content: '[[Anyone]]' }
|
10
10
|
}
|
11
11
|
end
|
12
12
|
end
|
@@ -3,9 +3,9 @@
|
|
3
3
|
class AddDebuggerSessionCard < Card::CoreMigration
|
4
4
|
def up
|
5
5
|
Card.create! name: '*debugger', type_code: :session, codename: 'debugger',
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
subcards: {
|
7
|
+
'+*self+*options' => '[[on]]',
|
8
|
+
'+*self+*input' => '[[checkbox]]',
|
9
|
+
'+*self+*help' => 'show more useful error pages' }
|
10
10
|
end
|
11
11
|
end
|