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
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
describe Card::Set::Type::Pointer do
|
3
3
|
describe "item_names" do
|
4
|
-
it "
|
4
|
+
it "returns array of names of items referred to by a pointer" do
|
5
5
|
card = Card.new(type: "Pointer", content: "[[Busy]]\n[[Body]]")
|
6
6
|
card.item_names.should == %w(Busy Body)
|
7
7
|
end
|
@@ -133,7 +133,7 @@ describe Card::Set::Type::Pointer do
|
|
133
133
|
end
|
134
134
|
end
|
135
135
|
|
136
|
-
it "
|
136
|
+
it "includes nonexisting card in radio options" do
|
137
137
|
common_html =
|
138
138
|
'input[class="pointer-radio-button"]'\
|
139
139
|
'[checked="checked"]'\
|
@@ -146,7 +146,7 @@ describe Card::Set::Type::Pointer do
|
|
146
146
|
assert_view_select @inherit_pointer.format.render_radio, option_html
|
147
147
|
end
|
148
148
|
|
149
|
-
it "
|
149
|
+
it "includes nonexisting card in checkbox options" do
|
150
150
|
option_html =
|
151
151
|
'input[class="pointer-checkbox-button"]'\
|
152
152
|
'[checked="checked"]'\
|
@@ -157,14 +157,14 @@ describe Card::Set::Type::Pointer do
|
|
157
157
|
assert_view_select @inherit_pointer.format.render_checkbox, option_html
|
158
158
|
end
|
159
159
|
|
160
|
-
it "
|
160
|
+
it "includes nonexisting card in select options" do
|
161
161
|
option_html = "option[value='#{@card_name}'][selected='selected']"
|
162
162
|
assert_view_select @pointer.format.render_select, option_html, @card_name
|
163
163
|
assert_view_select @inherit_pointer.format.render_select, option_html,
|
164
164
|
@card_name
|
165
165
|
end
|
166
166
|
|
167
|
-
it "
|
167
|
+
it "includes nonexisting card in multiselect options" do
|
168
168
|
option_html = "option[value='#{@card_name}'][selected='selected']"
|
169
169
|
assert_view_select @pointer.format.render_multiselect, option_html,
|
170
170
|
@card_name
|
@@ -178,7 +178,7 @@ describe Card::Set::Type::Pointer do
|
|
178
178
|
@css = "#box { display: block }"
|
179
179
|
Card.create name: "my css", content: @css
|
180
180
|
end
|
181
|
-
it "
|
181
|
+
it "renders CSS of items" do
|
182
182
|
css_list = render_card(
|
183
183
|
:content,
|
184
184
|
{ type: Card::PointerID, name: "my style list", content: "[[my css]]" },
|
@@ -191,7 +191,7 @@ describe Card::Set::Type::Pointer do
|
|
191
191
|
end
|
192
192
|
|
193
193
|
describe "#standardize_item" do
|
194
|
-
it "
|
194
|
+
it "handles unlinked items" do
|
195
195
|
pointer1 = Card.create!(
|
196
196
|
name: "pointer1", type: "Pointer", content: "bracketme"
|
197
197
|
)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
format :html do
|
2
|
-
view :editor do
|
3
|
-
wrap_with
|
4
|
-
hidden_field
|
2
|
+
view :editor do
|
3
|
+
wrap_with :div, id: unique_id, class: "prosemirror-editor" do
|
4
|
+
hidden_field :content, class: "card-content", value: card.raw_content
|
5
5
|
end
|
6
6
|
end
|
7
7
|
end
|
@@ -5,37 +5,37 @@ def standardize_items
|
|
5
5
|
end
|
6
6
|
|
7
7
|
format :html do
|
8
|
-
view :pointer_core do
|
9
|
-
|
8
|
+
view :pointer_core do
|
9
|
+
wrap_with :div, pointer_items, class: "pointer-list"
|
10
10
|
end
|
11
11
|
|
12
|
-
view :core do
|
12
|
+
view :core do
|
13
13
|
if card.content == "_left"
|
14
|
-
core_inherit_content
|
14
|
+
core_inherit_content
|
15
15
|
else
|
16
|
-
render :pointer_core
|
16
|
+
render :pointer_core
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
view :closed_content do
|
21
|
-
|
22
|
-
render_core args
|
20
|
+
view :closed_content do
|
21
|
+
render_core items: { view: :link }
|
23
22
|
end
|
24
23
|
|
25
|
-
view :editor do
|
24
|
+
view :editor do
|
26
25
|
item_names = inheriting? ? [] : card.item_names
|
27
26
|
%(
|
28
27
|
#{hidden_field :content, class: 'card-content'}
|
29
28
|
<div class="perm-editor">
|
30
|
-
#{inheritance_checkbox
|
29
|
+
#{inheritance_checkbox}
|
31
30
|
<div class="perm-group perm-vals perm-section">
|
32
|
-
<h5>Groups</h5>
|
31
|
+
<h5 class="text-muted">Groups</h5>
|
33
32
|
#{groups item_names}
|
34
33
|
</div>
|
35
34
|
|
36
35
|
<div class="perm-indiv perm-vals perm-section">
|
37
|
-
<h5>Individuals</h5>
|
38
|
-
#{_render_list item_list: item_names,
|
36
|
+
<h5 class="text-muted">Individuals</h5>
|
37
|
+
#{_render_list item_list: item_names,
|
38
|
+
extra_css_class: 'perm-indiv-ul'}
|
39
39
|
</div>
|
40
40
|
</div>
|
41
41
|
)
|
@@ -46,10 +46,17 @@ format :html do
|
|
46
46
|
def groups item_names
|
47
47
|
group_options.map do |option|
|
48
48
|
checked = !item_names.delete(option.name).nil?
|
49
|
-
|
49
|
+
icon = glyphicon "question-sign", "link-muted"
|
50
|
+
option_link = link_to_card option.name, icon, target: "wagn_role"
|
50
51
|
box = check_box_tag "#{option.key}-perm-checkbox",
|
51
52
|
option.name, checked, class: "perm-checkbox-button"
|
52
|
-
|
53
|
+
<<-HTML
|
54
|
+
<div class="form-check checkbox">
|
55
|
+
<label class="form-check-label">
|
56
|
+
#{box} #{option.name} #{option_link}
|
57
|
+
</label>
|
58
|
+
</div>
|
59
|
+
HTML
|
53
60
|
end * "\n"
|
54
61
|
end
|
55
62
|
|
@@ -73,14 +80,14 @@ format :html do
|
|
73
80
|
@inheriting ||= inheritable? && card.content == "_left"
|
74
81
|
end
|
75
82
|
|
76
|
-
def inheritance_checkbox
|
83
|
+
def inheritance_checkbox
|
77
84
|
return unless inheritable?
|
78
85
|
<<-HTML
|
79
86
|
<div class="perm-inheritance perm-section">
|
80
87
|
#{check_box_tag 'inherit', 'inherit', inheriting?}
|
81
88
|
<label>
|
82
|
-
#{core_inherit_content
|
83
|
-
#{
|
89
|
+
#{core_inherit_content target: 'wagn_role'}
|
90
|
+
#{wrap_with(:a, title: "use left's #{card.cardname.tag} rule") { '?' }}
|
84
91
|
</label>
|
85
92
|
</div>
|
86
93
|
HTML
|
@@ -1,6 +1,5 @@
|
|
1
|
-
|
2
1
|
format :rss do
|
3
|
-
def raw_feed_items
|
2
|
+
def raw_feed_items
|
4
3
|
[card]
|
5
4
|
end
|
6
5
|
end
|
@@ -11,9 +10,9 @@ end
|
|
11
10
|
|
12
11
|
event :update_structurees_references, :integrate,
|
13
12
|
when: proc { |c| c.db_content_changed? || c.action == :delete } do
|
14
|
-
return unless (
|
13
|
+
return unless (query = structuree_query)
|
15
14
|
Auth.as_bot do
|
16
|
-
|
15
|
+
query.run.each(&:update_references_out)
|
17
16
|
end
|
18
17
|
end
|
19
18
|
|
@@ -29,12 +28,9 @@ event :update_structurees_type, :finalize,
|
|
29
28
|
end
|
30
29
|
|
31
30
|
def structuree_names
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
else
|
37
|
-
[]
|
31
|
+
return [] unless (query = structuree_query(return: :name))
|
32
|
+
Auth.as_bot do
|
33
|
+
query.run
|
38
34
|
end
|
39
35
|
end
|
40
36
|
|
@@ -43,19 +39,17 @@ def update_structurees args
|
|
43
39
|
# for example, if someone were to change the type of a
|
44
40
|
# +*right+*structure rule that was overridden
|
45
41
|
# by a +*type plus right+*structure rule, the override would not be respected.
|
42
|
+
return unless (query = structuree_query(return: :id))
|
46
43
|
|
47
|
-
statement = structuree_statement
|
48
|
-
return unless statement
|
49
44
|
Auth.as_bot do
|
50
|
-
|
51
|
-
Card::Query.run(statement).each_slice(100) do |id_batch|
|
45
|
+
query.run.each_slice(100) do |id_batch|
|
52
46
|
Card.where(id: id_batch).update_all args
|
53
47
|
end
|
54
48
|
end
|
55
49
|
end
|
56
50
|
|
57
|
-
def
|
51
|
+
def structuree_query args={}
|
58
52
|
set_card = trunk
|
59
53
|
return unless set_card.type_id == SetID
|
60
|
-
set_card.
|
54
|
+
set_card.fetch_query args
|
61
55
|
end
|
@@ -9,7 +9,7 @@ describe Card::Set::Right::Comment do
|
|
9
9
|
content: "[[Anyone Signed In]]"
|
10
10
|
end
|
11
11
|
|
12
|
-
it "
|
12
|
+
it "has appender immediately" do
|
13
13
|
expect(Card["a"].ok?(:comment)).not_to be_truthy
|
14
14
|
Card::Auth.as_bot do
|
15
15
|
@rule.save!
|
@@ -17,7 +17,7 @@ describe Card::Set::Right::Comment do
|
|
17
17
|
expect(Card["a"].ok?(:comment)).to be_truthy
|
18
18
|
end
|
19
19
|
|
20
|
-
it "
|
20
|
+
it "has appender immediately" do
|
21
21
|
Card::Auth.as_bot do
|
22
22
|
expect(Card["a"].ok?(:comment)).not_to be_truthy
|
23
23
|
@rule.save!
|
@@ -27,7 +27,7 @@ describe Card::Set::Right::Comment do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
context "comment addition" do
|
30
|
-
it "
|
30
|
+
it "combines content after save" do
|
31
31
|
Card::Auth.as_bot do
|
32
32
|
Card.create name: "basicname+*self+*comment",
|
33
33
|
content: "[[Anyone Signed In]]"
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
2
|
|
3
3
|
describe Card::Set::Right::Create do
|
4
|
-
it "
|
4
|
+
it "renders the perm editor" do
|
5
5
|
Card::Auth.as_bot do
|
6
6
|
card = Card.new name: "A+B+*self+*create"
|
7
7
|
assert_view_select card.format._render_editor, "div[class=perm-editor]"
|
@@ -13,9 +13,9 @@ card_accessor :solid_cache, type: :html
|
|
13
13
|
def self.included host_class
|
14
14
|
host_class.format(host_class.try(:cached_format) || :base) do
|
15
15
|
view :core do |args|
|
16
|
-
return super(
|
16
|
+
return super() unless args[:solid_cache]
|
17
17
|
card.update_solid_cache if card.solid_cache_card.new?
|
18
|
-
subformat(card.solid_cache_card)._render_core
|
18
|
+
subformat(card.solid_cache_card)._render_core
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -100,8 +100,8 @@ end
|
|
100
100
|
|
101
101
|
def generate_content_for_cache changed_card=nil
|
102
102
|
format_type = try(:cached_format) || :base
|
103
|
-
format(format_type)._render_core
|
104
|
-
changed_card: changed_card
|
103
|
+
format(format_type)._render_core solid_cache: false,
|
104
|
+
changed_card: changed_card
|
105
105
|
end
|
106
106
|
|
107
107
|
def updated_content_for_cache _changed_card=nil
|
@@ -11,20 +11,19 @@ def clean_html?
|
|
11
11
|
end
|
12
12
|
|
13
13
|
format :html do
|
14
|
-
view :core do
|
15
|
-
return super(
|
16
|
-
|
14
|
+
view :core do
|
15
|
+
return super() unless card.new_card?
|
16
|
+
@denied_view = :core
|
17
|
+
_render_missing
|
17
18
|
end
|
18
19
|
|
19
|
-
view :missing do
|
20
|
-
if @card.new_card? &&
|
21
|
-
(l = @card.left) &&
|
22
|
-
l.solid_cache?
|
20
|
+
view :missing do
|
21
|
+
if @card.new_card? && (l = @card.left) && l.solid_cache?
|
23
22
|
l.update_solid_cache
|
24
|
-
@card = Card.fetch
|
25
|
-
render
|
23
|
+
@card = Card.fetch card.name
|
24
|
+
render @denied_view
|
26
25
|
else
|
27
|
-
super(
|
26
|
+
super()
|
28
27
|
end
|
29
28
|
end
|
30
29
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
format do
|
2
|
+
def search_params
|
3
|
+
@search_params ||= begin
|
4
|
+
p = default_search_params.clone
|
5
|
+
offset_and_limit_search_params p if focal?
|
6
|
+
p
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def default_search_params
|
11
|
+
{ limit: default_limit }
|
12
|
+
end
|
13
|
+
|
14
|
+
def default_limit
|
15
|
+
100
|
16
|
+
end
|
17
|
+
|
18
|
+
def offset_and_limit_search_params hash
|
19
|
+
[:offset, :limit].each do |key|
|
20
|
+
hash[key] = params[key].to_i if params[key]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
format :html do
|
26
|
+
def default_limit
|
27
|
+
20
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
format :json do
|
32
|
+
def default_limit
|
33
|
+
0
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
format :rss do
|
38
|
+
def default_limit
|
39
|
+
25
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
include_set Abstract::SearchParams
|
2
|
+
|
3
|
+
def search _args={}
|
4
|
+
raise Error, "search not overridden"
|
5
|
+
end
|
6
|
+
|
7
|
+
def cached_search args={}
|
8
|
+
@search_results ||= {}
|
9
|
+
@search_results[args.to_s] ||= search args
|
10
|
+
end
|
11
|
+
|
12
|
+
def returning item, args
|
13
|
+
args[:return] = item
|
14
|
+
yield
|
15
|
+
end
|
16
|
+
|
17
|
+
def item_cards args={}
|
18
|
+
returning(:card, args) { search args }
|
19
|
+
end
|
20
|
+
|
21
|
+
def item_names args={}
|
22
|
+
args[:limit] = 0
|
23
|
+
returning(:name, args) { search args }
|
24
|
+
end
|
25
|
+
|
26
|
+
def count args={}
|
27
|
+
args[:offset] = 0
|
28
|
+
args[:limit] = 0
|
29
|
+
returning(:count, args) { search args }
|
30
|
+
end
|
31
|
+
|
32
|
+
def item_type
|
33
|
+
type = wql_hash[:type]
|
34
|
+
return if type.is_a?(Array) || type.is_a?(Hash)
|
35
|
+
type
|
36
|
+
end
|
37
|
+
|
38
|
+
def each_item_name_with_options _content=nil
|
39
|
+
options = {}
|
40
|
+
item = fetch_query.statement[:view]
|
41
|
+
options[:view] = item if item
|
42
|
+
item_names.each do |name|
|
43
|
+
yield name, options
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
format do
|
48
|
+
view :search_count, cache: :never do
|
49
|
+
search_with_params.to_s
|
50
|
+
end
|
51
|
+
|
52
|
+
view :search_error, cache: :never do
|
53
|
+
sr_class = search_with_params.class.to_s
|
54
|
+
%(#{sr_class} :: #{search_with_params.message} :: #{card.raw_content})
|
55
|
+
end
|
56
|
+
|
57
|
+
view :card_list, cache: :never do
|
58
|
+
if search_with_params.empty?
|
59
|
+
"no results"
|
60
|
+
else
|
61
|
+
search_with_params.map do |item_card|
|
62
|
+
nest_item item_card
|
63
|
+
end.join "\n"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def search_with_params args={}
|
68
|
+
query_args = search_params.merge args
|
69
|
+
card.cached_search query_args
|
70
|
+
rescue Error::BadQuery => e
|
71
|
+
e
|
72
|
+
end
|
73
|
+
|
74
|
+
def count_with_params args={}
|
75
|
+
search_with_params args.merge return: :count
|
76
|
+
end
|
77
|
+
|
78
|
+
def implicit_item_view
|
79
|
+
view = voo_items_view || query_with_params.statement[:item] ||
|
80
|
+
default_item_view
|
81
|
+
Card::View.canonicalize view
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
format :data do
|
86
|
+
view :card_list do |_args|
|
87
|
+
search_with_params.map do |item_card|
|
88
|
+
nest_item item_card
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
format :csv do
|
94
|
+
view :card_list do |args|
|
95
|
+
items = super args
|
96
|
+
if @depth.zero?
|
97
|
+
render_csv_title_row + items
|
98
|
+
else
|
99
|
+
items
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
format :html do
|
105
|
+
view :card_list do
|
106
|
+
return render_no_search_results if search_with_params.empty?
|
107
|
+
search_result_list do
|
108
|
+
search_with_params.map do |item_card|
|
109
|
+
nest_item item_card, size: voo.size do |rendered, item_view|
|
110
|
+
klass = "search-result-item item-#{item_view}"
|
111
|
+
%(<div class="#{klass}">#{rendered}</div>)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def search_result_list
|
118
|
+
with_paging do
|
119
|
+
wrap_with :div, class: "search-result-list" do
|
120
|
+
yield
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def closed_limit
|
126
|
+
[search_params[:limit].to_i, Card.config.closed_search_limit].min
|
127
|
+
end
|
128
|
+
|
129
|
+
view :no_search_results do
|
130
|
+
wrap_with :div, "", class: "search-no-results"
|
131
|
+
end
|
132
|
+
end
|