card 1.19.6 → 1.20.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 +8 -7
- data/config/initializers/01_core_extensions/array.rb +4 -0
- data/config/initializers/01_core_extensions/persistent_identifiers.rb +12 -0
- data/config/initializers/02_patches/better_errors.rb +56 -0
- data/config/initializers/core_extensions.rb +13 -18
- data/config/initializers/patches.rb +8 -0
- data/config/locales/de.yml +0 -2
- data/db/migrate_core_cards/20150202143810_import_bootstrap_layout.rb +22 -12
- data/db/migrate_core_cards/20161102202156_tweak_recaptcha_setting_cards.rb +17 -0
- data/db/migrate_core_cards/20161103154836_update_keys.rb +46 -0
- data/lib/card.rb +1 -8
- data/lib/card/act_manager.rb +4 -0
- data/lib/card/auth/permissions.rb +5 -3
- data/lib/card/cache.rb +1 -20
- data/lib/card/cache/persistent.rb +6 -0
- data/lib/card/content/chunk.rb +4 -3
- data/lib/card/content/diff.rb +2 -2
- data/lib/card/content/diff/result.rb +11 -0
- data/lib/card/env/success.rb +4 -0
- data/lib/card/error.rb +2 -0
- data/lib/card/format.rb +14 -17
- data/lib/card/format/content.rb +16 -8
- data/lib/card/format/error.rb +3 -5
- data/lib/card/format/names.rb +22 -16
- data/lib/card/format/nest.rb +67 -61
- data/lib/card/format/nest/fetch.rb +40 -33
- data/lib/card/format/nest/main.rb +39 -19
- data/lib/card/format/nest/subformat.rb +3 -16
- data/lib/card/format/nest/view.rb +23 -32
- data/lib/card/format/permission.rb +49 -34
- data/lib/card/format/registration.rb +12 -6
- data/lib/card/format/render.rb +62 -73
- data/lib/card/migration.rb +14 -10
- data/lib/card/migration/import.rb +20 -19
- data/lib/card/migration/import/import_data.rb +50 -59
- data/lib/card/migration/import/import_data/card_attributes.rb +56 -0
- data/lib/card/migration/import/import_data/card_content.rb +33 -0
- data/lib/card/migration/import/merger.rb +47 -0
- data/lib/card/mod/loader.rb +4 -4
- data/lib/card/model/save_helper.rb +49 -10
- data/lib/card/name.rb +16 -52
- data/lib/card/name/fields_and_traits.rb +67 -0
- data/lib/card/name/variants.rb +17 -0
- data/lib/card/query.rb +6 -2
- data/lib/card/query/attributes.rb +1 -1
- data/lib/card/query/interpretation.rb +3 -3
- data/lib/card/set/event.rb +2 -1
- data/lib/card/set/format.rb +18 -7
- data/lib/card/set_pattern.rb +17 -13
- data/lib/card/tasks/card.rake +1 -1
- data/lib/card/view.rb +55 -0
- data/lib/card/view/cache.rb +90 -0
- data/lib/card/view/fetch.rb +109 -0
- data/lib/card/view/options.rb +164 -0
- data/lib/card/view/stub.rb +30 -0
- data/lib/card/view/visibility.rb +95 -0
- data/lib/cardio.rb +3 -2
- data/lib/cardio/schema.rb +21 -8
- data/lib/generators/card.rb +16 -2
- data/lib/generators/card/format/format_generator.rb +10 -9
- data/lib/generators/card/migration/migration_generator.rb +10 -5
- data/lib/generators/card/set/USAGE +1 -1
- data/lib/generators/card/set/set_generator.rb +11 -9
- data/mod/account/set/right/account.rb +38 -40
- data/mod/account/set/right/token.rb +2 -1
- data/mod/account/set/self/account_links.rb +34 -54
- data/mod/account/set/self/signin.rb +107 -93
- data/mod/account/set/type/signup.rb +33 -32
- data/mod/account/set/type/user.rb +28 -21
- data/mod/account/spec/set/all/account_spec.rb +9 -9
- data/mod/account/spec/set/right/account_spec.rb +23 -14
- data/mod/account/spec/set/right/email_spec.rb +6 -6
- data/mod/account/spec/set/right/password_spec.rb +4 -4
- data/mod/account/spec/set/right/token_spec.rb +3 -3
- data/mod/account/spec/set/self/account_links_spec.rb +3 -3
- data/mod/account/spec/set/self/signin_spec.rb +2 -2
- data/mod/account/spec/set/type/signup_spec.rb +7 -8
- data/mod/ace_editor/set/abstract/ace_editor.rb +1 -4
- data/mod/admin/set/self/admin.rb +2 -2
- data/mod/admin/set/self/admin_info.rb +1 -1
- data/mod/admin/set/self/recaptcha_private_key.rb +3 -0
- data/mod/admin/set/self/recaptcha_proxy.rb +3 -0
- data/mod/admin/set/self/recaptcha_public_key.rb +3 -0
- data/mod/admin/set/self/trash.rb +4 -4
- data/mod/admin/spec/set/self/admin_spec.rb +4 -4
- data/mod/admin/spec/set/self/version_spec.rb +1 -1
- data/mod/basic_formats/set/all/all_css.rb +3 -3
- data/mod/basic_formats/set/all/all_csv.rb +6 -6
- data/mod/basic_formats/set/all/all_js.rb +4 -0
- data/mod/basic_formats/set/all/base.rb +40 -62
- data/mod/basic_formats/set/all/json.rb +34 -39
- data/mod/basic_formats/set/all/rss.rb +6 -6
- data/mod/basic_formats/set/all/text.rb +3 -2
- data/mod/basic_formats/set/self/01_head/javascript.rb +2 -2
- data/mod/basic_formats/set/self/head.rb +6 -10
- data/mod/basic_formats/spec/set/all/all_css_spec.rb +1 -1
- data/mod/basic_formats/spec/set/all/all_csv_spec.rb +1 -1
- data/mod/basic_formats/spec/set/all/base_spec.rb +8 -5
- data/mod/basic_formats/spec/set/all/json_spec.rb +2 -2
- data/mod/basic_formats/spec/set/all/rss_spec.rb +4 -4
- data/mod/basic_types/set/type/plain_text.rb +3 -5
- data/mod/basic_types/spec/set/type/plain_text_spec.rb +2 -2
- data/mod/bootstrap/lib/bootstrap.rb +16 -0
- data/mod/bootstrap/lib/bootstrap/basic_tags.rb +26 -0
- data/mod/bootstrap/lib/bootstrap/component.rb +133 -0
- data/mod/bootstrap/lib/bootstrap/component/form.rb +31 -0
- data/mod/bootstrap/lib/bootstrap/component/horizontal_form.rb +38 -0
- data/mod/bootstrap/lib/bootstrap/component/layout.rb +83 -0
- data/mod/bootstrap/lib/bootstrap/component/panel.rb +9 -0
- data/mod/bootstrap/lib/bootstrap/component_loader.rb +30 -0
- data/mod/bootstrap/lib/bootstrap/delegate.rb +16 -0
- data/mod/bootstrap/lib/bootstrapper.rb +16 -0
- data/mod/bootstrap/lib/stylesheets/bootstrap/_tables.scss +55 -52
- data/mod/bootstrap/lib/stylesheets/bootstrap/mixins/_table-row.scss +12 -12
- data/mod/bootstrap/lib/stylesheets/bootstrap_cards.scss +12 -0
- data/mod/bootstrap/set/all/bootstrap/accordion.rb +63 -0
- data/mod/bootstrap/set/all/bootstrap/helper.rb +7 -140
- data/mod/bootstrap/set/all/bootstrap/navbar.rb +74 -0
- data/mod/bootstrap/set/all/bootstrap/table.rb +76 -46
- data/mod/bootstrap/set/all/bootstrap/tabs.rb +58 -23
- data/mod/bootstrap/set/all/bootstrap/wrapper.rb +14 -8
- data/mod/bootstrap/set/all/rich_bootstrap.rb +5 -3
- data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_builder_spec.rb +31 -0
- data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_spec.rb +20 -0
- data/mod/bootstrap/spec/set/all/bootstrap/form_spec.rb +59 -1
- data/mod/bootstrap/spec/set/all/bootstrap/layout_spec.rb +104 -15
- data/mod/carrierwave/set/abstract/attachment.rb +4 -3
- data/mod/carrierwave/set/abstract/attachment/paths.rb +1 -1
- data/mod/carrierwave/set/abstract/attachment/storage_type.rb +5 -11
- data/mod/carrierwave/set/type/file.rb +39 -32
- data/mod/carrierwave/set/type/image.rb +59 -34
- data/mod/carrierwave/spec/set/type/image_spec.rb +3 -3
- data/mod/core/chunk/link.rb +5 -0
- data/mod/core/chunk/{include.rb → nest.rb} +8 -29
- data/mod/core/chunk/reference.rb +5 -6
- data/mod/core/chunk/view_stub.rb +42 -0
- data/mod/core/format/html_format.rb +23 -26
- data/mod/core/set/abstract/code_file.rb +1 -1
- data/mod/core/set/all/actify.rb +1 -1
- data/mod/core/set/all/active_card.rb +0 -1
- data/mod/core/set/all/{tracked_attributes.rb → assign_attributes.rb} +55 -24
- data/mod/core/set/all/collection.rb +136 -122
- data/mod/core/set/all/content.rb +8 -0
- data/mod/core/set/all/event.rb +5 -2
- data/mod/core/set/all/export.rb +7 -7
- data/mod/core/set/all/fetch.rb +90 -26
- data/mod/core/set/all/initialize.rb +17 -6
- data/mod/core/set/all/name.rb +2 -3
- data/mod/core/set/all/permissions.rb +19 -11
- data/mod/core/set/all/states.rb +12 -2
- data/mod/core/set/all/trash.rb +1 -1
- data/mod/core/set/all/type.rb +2 -0
- data/mod/core/set/all/utils.rb +4 -3
- data/mod/core/spec/chunk/literal_spec.rb +2 -2
- data/mod/core/spec/chunk/uri_spec.rb +17 -17
- data/mod/core/spec/format/html_format_spec.rb +11 -13
- data/mod/core/spec/set/all/attribute_tracking_spec.rb +2 -2
- data/mod/core/spec/set/all/collection_spec.rb +21 -24
- data/mod/core/spec/set/all/content_spec.rb +1 -1
- data/mod/core/spec/set/all/export_spec.rb +3 -3
- data/mod/core/spec/set/all/fetch_spec.rb +5 -5
- data/mod/core/spec/set/all/initialize_spec.rb +4 -4
- data/mod/core/spec/set/all/name_spec.rb +6 -6
- data/mod/core/spec/set/all/permissions_spec.rb +10 -10
- data/mod/core/spec/set/all/references_spec.rb +1 -1
- data/mod/core/spec/set/all/rules2_spec.rb +24 -24
- data/mod/core/spec/set/all/rules_spec.rb +1 -1
- data/mod/core/spec/set/all/templating_spec.rb +8 -8
- data/mod/core/spec/set/all/tracked_attributes_spec.rb +6 -6
- data/mod/core/spec/set/all/type_spec.rb +5 -5
- data/mod/developer/spec/set/all/event_viz_spec.rb +1 -1
- data/mod/developer/spec/set/right/debug_spec.rb +1 -1
- data/mod/email/set/all/email_html.rb +2 -2
- data/mod/email/set/all/notify.rb +8 -3
- data/mod/email/set/right/bcc.rb +3 -3
- data/mod/email/set/right/follow.rb +5 -5
- data/mod/email/set/right/following.rb +1 -1
- data/mod/email/set/self/follow_defaults.rb +27 -16
- data/mod/email/set/type/email_template.rb +1 -1
- data/mod/email/set/type_plus_right/user/follow.rb +10 -9
- data/mod/history/lib/card/act.rb +4 -0
- data/mod/history/lib/card/act/act_renderer.rb +194 -0
- data/mod/history/lib/card/act/act_renderer/absolute_act_renderer.rb +25 -0
- data/mod/history/lib/card/act/act_renderer/relative_act_renderer.rb +41 -0
- data/mod/history/lib/card/action.rb +1 -0
- data/mod/history/lib/card/action/action_renderer.rb +92 -0
- data/mod/history/lib/card/action/differ.rb +6 -1
- data/mod/history/set/all/act_view.rb +64 -0
- data/mod/history/set/all/action_view.rb +65 -0
- data/mod/history/set/all/content_history.rb +44 -37
- data/mod/history/set/all/history.rb +49 -263
- data/mod/machines/lib/stylesheets/style_cards.scss +30 -115
- data/mod/machines/set/abstract/script.rb +42 -7
- data/mod/machines/set/right/machine_input.rb +4 -0
- data/mod/machines/set/type/coffee_script.rb +8 -22
- data/mod/machines/set/type/css.rb +2 -2
- data/mod/machines/set/type/java_script.rb +4 -24
- data/mod/machines/set/type/scss.rb +1 -1
- data/mod/machines/spec/set/type/css_spec.rb +1 -1
- data/mod/machines/spec/set/type/scss_spec.rb +3 -3
- data/mod/machines/spec/set/type/skin_spec.rb +7 -7
- data/mod/pointer/set/abstract/01_pointer.rb +44 -46
- data/mod/pointer/set/abstract/01_pointer/edit.rb +13 -13
- data/mod/pointer/set/right/options.rb +4 -0
- data/mod/pointer/spec/set/type/pointer_spec.rb +7 -7
- data/mod/prosemirror_editor/set/abstract/prosemirror_editor.rb +3 -3
- data/mod/settings/set/abstract/permission.rb +25 -18
- data/mod/settings/set/right/add_help.rb +3 -3
- data/mod/settings/set/right/structure.rb +10 -16
- data/mod/settings/spec/set/right/comment_spec.rb +3 -3
- data/mod/settings/spec/set/right/create_spec.rb +1 -1
- data/mod/settings/spec/set/right/style_spec.rb +1 -1
- data/mod/settings/spec/set/type/setting_spec.rb +1 -1
- data/mod/solid_cache/set/abstract/solid_cache.rb +4 -4
- data/mod/solid_cache/set/right/solid_cache.rb +9 -10
- data/mod/standard/set/abstract/01_search_params.rb +41 -0
- data/mod/standard/set/abstract/search.rb +132 -0
- data/mod/standard/set/abstract/search/paging.rb +81 -0
- data/mod/standard/set/abstract/search/paging/paging_links.rb +90 -0
- data/mod/standard/set/abstract/wql_search.rb +67 -0
- data/mod/standard/set/all/error.rb +89 -82
- data/mod/standard/set/all/links.rb +1 -1
- data/mod/standard/set/all/rich_html/content.rb +125 -141
- data/mod/standard/set/all/rich_html/editing.rb +115 -178
- data/mod/standard/set/all/rich_html/form.rb +111 -131
- data/mod/standard/set/all/rich_html/header.rb +57 -39
- data/mod/standard/set/all/rich_html/menu.rb +94 -94
- data/mod/standard/set/all/rich_html/modal.rb +5 -10
- data/mod/standard/set/all/rich_html/new.rb +103 -0
- data/mod/standard/set/all/rich_html/toolbar.rb +54 -74
- data/mod/standard/set/all/rich_html/wrapper.rb +111 -138
- data/mod/standard/set/rstar/rules.rb +27 -38
- data/mod/standard/set/rstar/rules_editor.rb +298 -277
- data/mod/standard/set/self/navbox.rb +20 -15
- data/mod/standard/set/self/recent.rb +25 -17
- data/mod/standard/set/self/search.rb +25 -4
- data/mod/standard/set/type/cardtype.rb +11 -9
- data/mod/standard/set/type/date.rb +1 -1
- data/mod/standard/set/type/number.rb +1 -1
- data/mod/standard/set/type/phrase.rb +1 -1
- data/mod/standard/set/type/search_type.rb +17 -282
- data/mod/standard/set/type/session.rb +1 -1
- data/mod/standard/set/type/set.rb +155 -131
- data/mod/standard/set/type/toggle.rb +1 -1
- data/mod/standard/set/type/uri.rb +4 -4
- data/mod/standard/spec/chunk/include_spec.rb +13 -31
- data/mod/standard/spec/chunk/link_spec.rb +1 -1
- data/mod/standard/spec/set/all/error_spec.rb +1 -1
- data/mod/standard/spec/set/all/history_spec.rb +2 -2
- data/mod/standard/spec/set/all/rich_html/form_spec.rb +4 -4
- data/mod/standard/spec/set/all/rich_html/toolbar_spec.rb +22 -0
- data/mod/standard/spec/set/all/rich_html/wrapper_spec.rb +3 -2
- data/mod/standard/spec/set/right/when_created_spec.rb +1 -1
- data/mod/standard/spec/set/right/when_last_edited_spec.rb +1 -1
- data/mod/standard/spec/set/rstar/rules_spec.rb +2 -3
- data/mod/standard/spec/set/self/head_spec.rb +2 -2
- data/mod/standard/spec/set/self/navbox_spec.rb +1 -1
- data/mod/standard/spec/set/self/now_spec.rb +1 -1
- data/mod/standard/spec/set/type/date_spec.rb +1 -1
- data/mod/standard/spec/set/type/email_template_spec.rb +1 -1
- data/mod/standard/spec/set/type/layout_type_spec.rb +1 -1
- data/mod/standard/spec/set/type/number_spec.rb +1 -1
- data/mod/standard/spec/set/type/phrase_spec.rb +1 -1
- data/mod/standard/spec/set/type/search_type_spec.rb +2 -2
- data/mod/standard/spec/set/type/set_spec.rb +2 -2
- data/mod/standard/spec/set/type/toggle_spec.rb +2 -2
- data/mod/standard/spec/set/type/uri_spec.rb +3 -1
- data/mod/tinymce_editor/set/abstract/tinymce_editor.rb +1 -1
- data/spec/config/initializers/core_extensions_spec.rb +40 -10
- data/spec/lib/card/auth_spec.rb +8 -8
- data/spec/lib/card/cache_spec.rb +3 -3
- data/spec/lib/card/chunk_spec.rb +4 -4
- data/spec/lib/card/codename_spec.rb +2 -2
- data/spec/lib/card/content_spec.rb +23 -23
- data/spec/lib/card/diff_spec.rb +1 -1
- data/spec/lib/card/format_spec.rb +19 -24
- data/spec/lib/card/loader_spec.rb +4 -4
- data/spec/lib/card/name_spec.rb +16 -16
- data/spec/lib/card/query_spec.rb +80 -80
- data/spec/lib/card/reference_spec.rb +5 -5
- data/spec/lib/card/set_spec.rb +6 -6
- data/spec/lib/card/subcards_spec.rb +14 -0
- data/spec/lib/card/view_cache_spec.rb +5 -5
- data/spec/models/card/cardtype_spec.rb +15 -15
- data/spec/models/card/create_spec.rb +2 -2
- data/spec/models/card/trash_spec.rb +24 -24
- data/spec/models/card/type_transition_spec.rb +8 -8
- data/spec/models/card/validation_spec.rb +5 -5
- data/spec/models/card_spec.rb +14 -14
- data/spec/spec_helper.rb +6 -2
- data/spec/support/card_spec_helper.rb +21 -11
- data/spec/support/helper/card_helper.rb +11 -4
- metadata +73 -15
- data/lib/card/cache/view_cache.rb +0 -103
- data/mod/bootstrap/set/all/bootstrap/layout.rb +0 -58
- data/mod/core/set/all/view_cache.rb +0 -9
@@ -6,14 +6,13 @@ describe Card::Set::Type::Signup do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
context "signup form form" do
|
9
|
-
|
10
|
-
|
11
|
-
@form = card.format.render_new
|
9
|
+
subject do
|
10
|
+
Card.new(type_id: Card::SignupID).format.render :new
|
12
11
|
end
|
13
12
|
|
14
13
|
it "prompts to signup" do
|
15
14
|
Card::Auth.as :anonymous do
|
16
|
-
expect(
|
15
|
+
expect(subject.match(/Sign up/)).to be_truthy
|
17
16
|
end
|
18
17
|
end
|
19
18
|
end
|
@@ -106,7 +105,7 @@ describe Card::Set::Type::Signup do
|
|
106
105
|
@account = @signup.account
|
107
106
|
end
|
108
107
|
|
109
|
-
it "
|
108
|
+
it "creates all the necessary cards, but no token" do
|
110
109
|
expect(@signup.type_id).to eq(Card::SignupID)
|
111
110
|
expect(@account.email).to eq("wolf@wagn.org")
|
112
111
|
expect(@account.status).to eq("pending")
|
@@ -114,7 +113,7 @@ describe Card::Set::Type::Signup do
|
|
114
113
|
expect(@account.password.length).to be > 10 # encrypted
|
115
114
|
end
|
116
115
|
|
117
|
-
it "
|
116
|
+
it "does not create a token" do
|
118
117
|
expect(@account.token).not_to be_present
|
119
118
|
end
|
120
119
|
|
@@ -133,7 +132,7 @@ describe Card::Set::Type::Signup do
|
|
133
132
|
end
|
134
133
|
|
135
134
|
context "approval with token" do
|
136
|
-
it "
|
135
|
+
it "creates token" do
|
137
136
|
Card::Env.params[:approve_with_token] = true
|
138
137
|
Card::Auth.as "joe_admin"
|
139
138
|
|
@@ -144,7 +143,7 @@ describe Card::Set::Type::Signup do
|
|
144
143
|
end
|
145
144
|
|
146
145
|
context "approval without token" do
|
147
|
-
it "
|
146
|
+
it "creates token" do
|
148
147
|
Card::Env.params[:approve_without_token] = true
|
149
148
|
Card::Auth.as "joe_admin"
|
150
149
|
|
data/mod/admin/set/self/admin.rb
CHANGED
@@ -8,7 +8,7 @@ event :admin_tasks, :initialize, on: :update do
|
|
8
8
|
case task.to_sym
|
9
9
|
when :clear_cache then Card::Cache.reset_all
|
10
10
|
when :repair_references then Card::Reference.repair_all
|
11
|
-
when :clear_view_cache then Card::
|
11
|
+
# when :clear_view_cache then Card::View.reset
|
12
12
|
when :delete_old_revisions then Card::Action.delete_old
|
13
13
|
when :repair_permissions then Card.repair_all_permissions
|
14
14
|
when :clear_solid_cache then Card.clear_solid_cache
|
@@ -60,7 +60,7 @@ format :html do
|
|
60
60
|
]
|
61
61
|
return stats unless Card.config.view_cache
|
62
62
|
stats << { title: "view cache",
|
63
|
-
count: Card::
|
63
|
+
count: Card::View,
|
64
64
|
link_text: "clear view cache",
|
65
65
|
task: "clear_view_cache" }
|
66
66
|
end
|
data/mod/admin/set/self/trash.rb
CHANGED
@@ -24,17 +24,17 @@ format :html do
|
|
24
24
|
def restored
|
25
25
|
return unless (res_id = Env.params[:restore]) &&
|
26
26
|
(res_card = Card[res_id.to_i])
|
27
|
-
alert :success,
|
28
|
-
|
27
|
+
alert :success, true do
|
28
|
+
wrap_with(:h5, "restored") + subformat(res_card).render_closed
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
def empty_trash_link
|
33
|
-
|
33
|
+
wrap_with(
|
34
34
|
:p,
|
35
35
|
button_link("empty trash",
|
36
36
|
btn_type: :default,
|
37
|
-
path: {
|
37
|
+
path: { mark: :admin, action: :update, task: :empty_trash,
|
38
38
|
success: { id: "~#{card.id}" } },
|
39
39
|
"data-confirm" => "Are you sure you want to delete "\
|
40
40
|
"all cards in the trash?")
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
3
|
describe Card::Set::Self::Admin do
|
4
|
-
it "
|
4
|
+
it "renders a table" do
|
5
5
|
Card::Auth.as_bot do
|
6
6
|
@core = render_card :core, name: :admin
|
7
7
|
end
|
@@ -13,7 +13,7 @@ describe Card::Set::Self::Admin do
|
|
13
13
|
@admin = Card[:admin]
|
14
14
|
end
|
15
15
|
|
16
|
-
it "
|
16
|
+
it "triggers empty trash (with right params)" do
|
17
17
|
Card::Auth.as_bot do
|
18
18
|
Card["A"].delete!
|
19
19
|
expect(Card.where(trash: true)).not_to be_empty
|
@@ -23,7 +23,7 @@ describe Card::Set::Self::Admin do
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
it "
|
26
|
+
it "triggers deleting old revisions (with right params)" do
|
27
27
|
Card::Auth.as_bot do
|
28
28
|
a = Card["A"]
|
29
29
|
a.update_attributes! content: "a new day"
|
@@ -35,7 +35,7 @@ describe Card::Set::Self::Admin do
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
# it '
|
38
|
+
# it 'is trigger reference repair' do
|
39
39
|
# Card::Auth.as_bot do
|
40
40
|
# a = Card['A']
|
41
41
|
# puts a.references_out.count
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
format :css do
|
3
|
-
def
|
4
|
-
|
3
|
+
def default_nest_view
|
4
|
+
:raw
|
5
5
|
end
|
6
6
|
|
7
7
|
def show view, args
|
@@ -22,7 +22,7 @@ format :css do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
view :import do |_args|
|
25
|
-
%{\n@import url("#{_render_url
|
25
|
+
%{\n@import url("#{_render_url items: { view: :import }}");\n}
|
26
26
|
end
|
27
27
|
|
28
28
|
view :url, perms: :none do |args|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require "csv"
|
2
2
|
|
3
3
|
format :csv do
|
4
|
-
def
|
5
|
-
|
4
|
+
def default_nest_view
|
5
|
+
:core
|
6
6
|
end
|
7
7
|
|
8
8
|
def default_item_view
|
9
|
-
@depth
|
9
|
+
@depth.zero? ? :csv_row : :name
|
10
10
|
end
|
11
11
|
|
12
12
|
view :csv_row do |_args|
|
@@ -25,19 +25,19 @@ format :csv do
|
|
25
25
|
view :csv_title_row do |_args|
|
26
26
|
# NOTE: assumes all cards have the same structure!
|
27
27
|
begin
|
28
|
-
card1 =
|
28
|
+
card1 = search_with_params.first
|
29
29
|
|
30
30
|
parsed_content = Card::Content.new card1.raw_content, self
|
31
31
|
if parsed_content.__getobj__.is_a? String
|
32
32
|
""
|
33
33
|
else
|
34
34
|
titles = parsed_content.map do |chunk|
|
35
|
-
next if chunk.class != Card::Content::Chunk::
|
35
|
+
next if chunk.class != Card::Content::Chunk::Nest
|
36
36
|
opts = chunk.options
|
37
37
|
if %w(name link).member? opts[:view]
|
38
38
|
opts[:view]
|
39
39
|
else
|
40
|
-
opts[:
|
40
|
+
opts[:nest_name].to_name.tag
|
41
41
|
end
|
42
42
|
end.compact
|
43
43
|
CSV.generate_line titles.map { |title| title.to_s.upcase }
|
@@ -5,48 +5,27 @@ format do
|
|
5
5
|
end
|
6
6
|
|
7
7
|
# NAME VIEWS
|
8
|
-
view :name, closed: true, perms: :none do
|
9
|
-
|
10
|
-
args[:variant].split(/[\s,]+/).inject(card.name) do |name, variant|
|
11
|
-
case variant.to_sym
|
12
|
-
when :capitalized
|
13
|
-
name.capitalize
|
14
|
-
when :singular
|
15
|
-
name.singularize
|
16
|
-
when :plural
|
17
|
-
name.pluralize
|
18
|
-
when :title
|
19
|
-
name.titleize
|
20
|
-
else
|
21
|
-
if ::Set.new([
|
22
|
-
:downcase, :upcase, :swapcase, :reverse, :succ
|
23
|
-
]).include?(variant.to_sym)
|
24
|
-
name.send variant
|
25
|
-
else
|
26
|
-
name
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
8
|
+
view :name, closed: true, perms: :none do
|
9
|
+
voo.variant ? card.cardname.vary(voo.variant) : card.name
|
30
10
|
end
|
31
11
|
|
32
12
|
view(:key, closed: true, perms: :none) { card.key }
|
33
13
|
view(:linkname, closed: true, perms: :none) { card.cardname.url_key }
|
34
14
|
view(:url, closed: true, perms: :none) { card_url _render_linkname }
|
35
15
|
|
36
|
-
view :title, closed: true, perms: :none do
|
37
|
-
|
16
|
+
view :title, closed: true, perms: :none do
|
17
|
+
raw_title = voo.title || card.name
|
18
|
+
voo.variant ? raw_title.to_name.vary(voo.variant) : raw_title
|
38
19
|
end
|
39
20
|
|
40
21
|
view :url_link, closed: true, perms: :none do
|
41
22
|
link_to_resource card_url(_render_linkname)
|
42
23
|
end
|
43
24
|
|
44
|
-
view :link, closed: true, perms: :none do
|
45
|
-
title = showname
|
25
|
+
view :link, closed: true, perms: :none do
|
26
|
+
title = showname voo.title
|
46
27
|
opts = { known: card.known? }
|
47
|
-
|
48
|
-
opts[:path] = { card: { type: args[:type] } }
|
49
|
-
end
|
28
|
+
opts[:path] = { card: { type: voo.type } } if voo.type && !opts[:known]
|
50
29
|
link_to_card card.name, title, opts
|
51
30
|
end
|
52
31
|
|
@@ -62,25 +41,25 @@ format do
|
|
62
41
|
|
63
42
|
# CONTENT VIEWS
|
64
43
|
|
65
|
-
view :raw do
|
66
|
-
scard =
|
44
|
+
view :raw do
|
45
|
+
scard = voo.structure ? Card[voo.structure] : card
|
67
46
|
scard ? scard.raw_content : _render_blank
|
68
47
|
end
|
69
48
|
|
70
|
-
view :core do
|
71
|
-
process_content _render_raw
|
49
|
+
view :core, closed: true do
|
50
|
+
process_content _render_raw
|
72
51
|
end
|
73
52
|
|
74
|
-
view :content do
|
75
|
-
_render_core
|
53
|
+
view :content do
|
54
|
+
_render_core
|
76
55
|
end
|
77
56
|
|
78
|
-
view :open_content do
|
79
|
-
_render_core
|
57
|
+
view :open_content do
|
58
|
+
_render_core
|
80
59
|
end
|
81
60
|
|
82
|
-
view :closed_content, closed: true do
|
83
|
-
Card::Content.smart_truncate _render_core
|
61
|
+
view :closed_content, closed: true do
|
62
|
+
Card::Content.smart_truncate _render_core
|
84
63
|
end
|
85
64
|
|
86
65
|
view :blank, closed: true, perms: :none do
|
@@ -94,45 +73,44 @@ format do
|
|
94
73
|
|
95
74
|
# NAME + CONTENT VIEWS
|
96
75
|
|
97
|
-
view :titled do
|
98
|
-
"#{card.name}\n\n#{_render_core
|
76
|
+
view :titled do
|
77
|
+
"#{card.name}\n\n#{_render_core}"
|
99
78
|
end
|
100
79
|
view :open, :titled
|
101
80
|
|
102
|
-
view :labeled do
|
103
|
-
"#{card.name}: #{_render_closed_content
|
81
|
+
view :labeled do
|
82
|
+
"#{card.name}: #{_render_closed_content}"
|
104
83
|
end
|
105
84
|
view :closed, :labeled
|
106
85
|
|
107
86
|
# SPECIAL VIEWS
|
108
87
|
|
109
|
-
view :array do
|
88
|
+
view :array, cache: :never do
|
110
89
|
card.item_cards(limit: 0).map do |item_card|
|
111
|
-
subformat(item_card)._render_core
|
90
|
+
subformat(item_card)._render_core
|
112
91
|
end.inspect
|
113
92
|
end
|
114
93
|
|
115
94
|
# none of the below belongs here!!
|
116
95
|
|
117
|
-
view :template_rule, tags: :unknown_ok do
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
96
|
+
view :template_rule, cache: :never, tags: :unknown_ok do
|
97
|
+
return "" unless voo.nest_name
|
98
|
+
if voo.nest_name.to_name.simple_relative?
|
99
|
+
set_card = Card.fetch template_link_set_name
|
100
|
+
subformat(set_card).render_template_link
|
101
|
+
else
|
102
|
+
"{{#{voo.nest_syntax}}}"
|
103
|
+
end
|
104
|
+
end
|
122
105
|
|
123
|
-
|
124
|
-
|
125
|
-
|
106
|
+
def template_link_set_name
|
107
|
+
name = voo.nest_name.to_name
|
108
|
+
if name.absolute?
|
109
|
+
name.trait_name :self
|
110
|
+
elsif (type = on_type_set)
|
111
|
+
[type, name].to_name.trait_name :type_plus_right
|
126
112
|
else
|
127
|
-
|
128
|
-
if name.absolute?
|
129
|
-
"#{name}+#{Card[:self].name}" # *self set
|
130
|
-
elsif (type = on_type_set)
|
131
|
-
"#{type}#{name}+#{Card[:type_plus_right].name}" # *type plus right
|
132
|
-
else
|
133
|
-
"#{stripped.gsub(/^\+/, '')}+#{Card[:right].name}" # *right
|
134
|
-
end
|
135
|
-
subformat(Card.fetch(set_name)).render_template_link args
|
113
|
+
name.stripped.gsub(/^\+/, "").to_name.trait_name :right
|
136
114
|
end
|
137
115
|
end
|
138
116
|
|
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
1
|
format :json do
|
3
|
-
def
|
4
|
-
|
2
|
+
def default_nest_view
|
3
|
+
:atom
|
5
4
|
end
|
6
5
|
|
7
6
|
def default_item_view
|
@@ -15,55 +14,51 @@ format :json do
|
|
15
14
|
def show view, args
|
16
15
|
view ||= :content
|
17
16
|
raw = render view, args
|
18
|
-
if raw.is_a?
|
19
|
-
|
20
|
-
|
21
|
-
JSON(raw)
|
22
|
-
else
|
23
|
-
JSON.pretty_generate raw
|
24
|
-
end
|
17
|
+
return raw if raw.is_a? String
|
18
|
+
method = params[:compress] ? :generate : :pretty_generate
|
19
|
+
JSON.send method, raw
|
25
20
|
end
|
26
21
|
|
27
|
-
view :name_complete do
|
28
|
-
|
29
|
-
|
22
|
+
view :name_complete, cache: :never do
|
23
|
+
# context is "" so that term will not be interpreted in the context
|
24
|
+
# of search card name. However, this can break searches where the
|
25
|
+
# search card name is required (eg found_by)
|
26
|
+
card.search complete: params["term"], limit: 8, sort: "name",
|
27
|
+
return: "name", context: ""
|
30
28
|
end
|
31
29
|
|
32
|
-
view :status, tags: :unknown_ok, perms: :none do
|
33
|
-
status =
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
# post...
|
38
|
-
when !card.ok?(:read) then :unknown
|
39
|
-
when card.real? then :real
|
40
|
-
when card.virtual? then :virtual
|
41
|
-
else :wtf
|
42
|
-
end
|
43
|
-
|
44
|
-
hash = { key: card.key, url_key: card.cardname.url_key, status: status }
|
30
|
+
view :status, tags: :unknown_ok, perms: :none, cache: :never do
|
31
|
+
status = card.state
|
32
|
+
hash = { key: card.key,
|
33
|
+
url_key: card.cardname.url_key,
|
34
|
+
status: status }
|
45
35
|
hash[:id] = card.id if status == :real
|
46
|
-
|
47
36
|
hash
|
48
37
|
end
|
49
38
|
|
50
|
-
view :content do
|
39
|
+
view :content, cache: :never do
|
51
40
|
req = controller.request
|
52
|
-
{
|
53
|
-
url: (req && req.original_url),
|
41
|
+
{ url: (req && req.original_url),
|
54
42
|
timestamp: Time.now.to_s,
|
55
|
-
card: _render_atom
|
56
|
-
}
|
43
|
+
card: _render_atom }
|
57
44
|
end
|
58
45
|
|
59
|
-
view :atom do
|
60
|
-
h = {
|
61
|
-
name: card.name,
|
62
|
-
type: card.type_name
|
63
|
-
}
|
46
|
+
view :atom, cache: :never do
|
47
|
+
h = { name: card.name, type: card.type_name }
|
64
48
|
h[:content] = card.content unless card.structure
|
65
|
-
h[:codename] = card.codename
|
66
|
-
h[:value] = _render_core
|
49
|
+
h[:codename] = card.codename if card.codename
|
50
|
+
h[:value] = _render_core if @depth < max_depth
|
67
51
|
h
|
68
52
|
end
|
53
|
+
|
54
|
+
# minimum needed to re-fetch card
|
55
|
+
view :cast, cache: :never do
|
56
|
+
card.cast
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# TODO: perhaps this should be in a general "data" module.
|
61
|
+
def cast
|
62
|
+
real? ? { id: id } : { name: name, type_id: type_id, content: db_content }
|
69
63
|
end
|
64
|
+
|