card 1.20.4 → 1.21.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/card.gemspec +9 -9
- data/db/migrate_core_cards/20170515101262_add_advanced_edit_cards.rb +20 -0
- data/db/migrate_core_cards/20170608083819_add_full_width_layout_card.rb +23 -0
- data/db/migrate_core_cards/20170608200649_add_input_options_codename.rb +8 -0
- data/db/seed/new/card_actions.yml +783 -791
- data/db/seed/new/card_acts.yml +65 -47
- data/db/seed/new/card_changes.yml +3198 -3177
- data/db/seed/new/card_references.yml +604 -534
- data/db/seed/new/cards.yml +2355 -2256
- data/db/seed/test/fixtures/card_actions.yml +1795 -1803
- data/db/seed/test/fixtures/card_acts.yml +264 -246
- data/db/seed/test/fixtures/card_changes.yml +6275 -6184
- data/db/seed/test/fixtures/card_references.yml +1305 -1263
- data/db/seed/test/fixtures/cards.yml +3393 -3298
- data/db/seed/test/seed.rb +2 -2
- data/db/version_core_cards.txt +1 -1
- data/lib/card.rb +4 -0
- data/lib/card/act_manager/subdirector_array.rb +1 -0
- data/lib/card/auth/current.rb +7 -3
- data/lib/card/env.rb +5 -0
- data/lib/card/env/success.rb +1 -1
- data/lib/card/format/names.rb +3 -13
- data/lib/card/model/save_helper.rb +4 -6
- data/lib/card/query.rb +2 -1
- data/lib/card/query/attributes.rb +34 -14
- data/lib/card/query/value.rb +3 -4
- data/lib/card/set/format.rb +29 -4
- data/lib/card/set/format/haml_views.rb +25 -13
- data/lib/card/set/trait.rb +1 -0
- data/lib/card/set_pattern.rb +17 -1
- data/lib/card/subcards.rb +3 -2
- data/lib/generators/card/format/format_generator.rb +2 -0
- data/lib/generators/card/set/set_generator.rb +2 -0
- data/lib/generators/card/template/USAGE +10 -0
- data/lib/generators/card/template/template_generator.rb +46 -0
- data/lib/generators/card/template/templates/haml_template.erb +1 -0
- data/mod/Modfile +1 -1
- data/mod/account/set/all/account.rb +9 -5
- data/mod/account/set/right/account.rb +17 -5
- data/mod/account/set/self/account_links.rb +1 -2
- data/mod/account/set/type/signup.rb +4 -5
- data/mod/account/set/type/user.rb +1 -1
- data/mod/account/spec/set/all/account_spec.rb +2 -2
- data/mod/account/spec/set/right/account_spec.rb +2 -2
- data/mod/account/spec/set/right/email_spec.rb +1 -1
- data/mod/account/spec/set/right/password_spec.rb +1 -1
- data/mod/account/spec/set/self/signin_spec.rb +2 -2
- data/mod/account/spec/set/type/signup_spec.rb +4 -0
- data/mod/ace_editor/set/abstract/ace_editor.rb +6 -3
- data/mod/ace_editor/set/self/script_ace.rb +1 -0
- data/mod/admin/set/self/admin.rb +1 -1
- data/mod/admin/set/self/version.rb +1 -0
- data/mod/basic_formats/format/css_format.rb +1 -0
- data/mod/basic_formats/format/csv_format.rb +1 -0
- data/mod/basic_formats/format/file_format.rb +1 -0
- data/mod/basic_formats/format/js_format.rb +1 -0
- data/mod/basic_formats/format/json_format.rb +1 -0
- data/mod/basic_formats/format/rss_format.rb +1 -0
- data/mod/basic_formats/format/xml_format.rb +1 -0
- data/mod/basic_formats/set/all/all_csv.rb +1 -1
- data/mod/basic_formats/set/all/base.rb +11 -3
- data/mod/basic_formats/set/all/json.rb +50 -8
- data/mod/basic_formats/set/all/rss.rb +21 -7
- data/mod/basic_formats/set/self/01_head/javascript.rb +1 -1
- data/mod/basic_formats/set/self/head.rb +1 -1
- data/mod/basic_formats/spec/set/all/base_spec.rb +13 -0
- data/mod/basic_types/set/type/html.rb +6 -2
- data/mod/basic_types/set/type/plain_text.rb +2 -3
- data/mod/bootstrap/lib/bootstrap.rb +2 -2
- data/mod/bootstrap/lib/bootstrap/basic_tags.rb +1 -1
- data/mod/bootstrap/lib/bootstrap/component.rb +2 -3
- data/mod/bootstrap/lib/bootstrap/component/form.rb +6 -5
- data/mod/bootstrap/lib/bootstrap/component/horizontal_form.rb +1 -1
- data/mod/bootstrap/lib/bootstrap/component/layout.rb +3 -3
- data/mod/bootstrap/lib/bootstrap/component_loader.rb +0 -2
- data/mod/bootstrap/lib/bootstrap/delegate.rb +2 -2
- data/mod/bootstrap/lib/bootstrapper.rb +1 -1
- data/mod/bootstrap/set/all/bootstrap/accordion.rb +1 -1
- data/mod/bootstrap/set/all/bootstrap/form.rb +2 -2
- data/mod/bootstrap/set/all/bootstrap/helper.rb +1 -0
- data/mod/bootstrap/set/all/bootstrap/wrapper.rb +1 -1
- data/mod/bootstrap/set/self/bootstrap_js.rb +1 -1
- data/mod/bootstrap/set/self/bootswatch_shared.rb +6 -6
- data/mod/bootstrap/set/self/script_mods.rb +1 -1
- data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_builder_spec.rb +7 -6
- data/mod/bootstrap/spec/set/all/bootstrap/bootstrap_spec.rb +2 -1
- data/mod/bootstrap/spec/set/all/bootstrap/form_spec.rb +6 -3
- data/mod/bootstrap/spec/set/all/bootstrap/layout_spec.rb +3 -2
- data/mod/carrierwave/set/abstract/attachment.rb +1 -3
- data/mod/carrierwave/set/abstract/attachment/paths.rb +1 -1
- data/mod/carrierwave/set/abstract/attachment/storage_type.rb +11 -1
- data/mod/carrierwave/set/type/file.rb +3 -3
- data/mod/carrierwave/spec/lib/carrier_wave/file_card_uploader_spec.rb +3 -0
- data/mod/carrierwave/spec/set/type/file_spec.rb +24 -6
- data/mod/carrierwave/spec/set/type/image_spec.rb +3 -0
- data/mod/core/chunk/link.rb +1 -1
- data/mod/core/chunk/nest.rb +2 -1
- data/mod/core/chunk/query_reference.rb +1 -1
- data/mod/core/chunk/reference.rb +1 -0
- data/mod/core/chunk/uri.rb +4 -3
- data/mod/core/set/abstract/lock.rb +26 -0
- data/mod/core/set/all/assign_attributes.rb +8 -4
- data/mod/core/set/all/collection.rb +16 -7
- data/mod/core/set/all/content.rb +6 -0
- data/mod/core/set/all/event.rb +1 -1
- data/mod/core/set/all/fetch.rb +2 -2
- data/mod/core/set/all/haml.rb +5 -15
- data/mod/core/set/all/initialize.rb +2 -2
- data/mod/core/set/all/name.rb +1 -1
- data/mod/core/set/all/permissions.rb +28 -16
- data/mod/core/set/all/rules.rb +1 -2
- data/mod/core/set/all/subcards.rb +3 -3
- data/mod/core/set/all/templating.rb +5 -1
- data/mod/core/set/all/trash.rb +1 -1
- data/mod/core/set/all/utils.rb +1 -1
- data/mod/core/spec/set/all/actify_spec.rb +1 -1
- data/mod/core/spec/set/all/assign_attributes_spec.rb +2 -2
- data/mod/core/spec/set/all/collection_spec.rb +6 -3
- data/mod/core/spec/set/all/export_spec.rb +40 -112
- data/mod/core/spec/set/all/name_spec.rb +1 -1
- data/mod/core/spec/set/all/permissions_spec.rb +7 -7
- data/mod/core/spec/set/all/rules2_spec.rb +25 -25
- data/mod/core/spec/set/all/rules_spec.rb +2 -7
- data/mod/developer/set/all/event_viz.rb +1 -1
- data/mod/developer/set/right/debug.rb +1 -1
- data/mod/history/lib/card/act.rb +1 -0
- data/mod/history/lib/card/act/act_renderer.rb +23 -20
- data/mod/history/lib/card/act/act_renderer/absolute_act_renderer.rb +0 -1
- data/mod/history/lib/card/act/act_renderer/relative_act_renderer.rb +1 -0
- data/mod/history/lib/card/action.rb +1 -1
- data/mod/history/lib/card/action/action_renderer.rb +2 -2
- data/mod/history/lib/card/change.rb +2 -1
- data/mod/history/set/all/action_view.rb +1 -1
- data/mod/history/set/all/content_history.rb +7 -4
- data/mod/history/set/all/history.rb +6 -6
- data/mod/machines/file/all_script_machine_output/file.js +50 -34
- data/mod/machines/file/all_style_machine_output/file.css +1 -1
- data/mod/machines/lib/javascript/wagn.js.coffee +29 -18
- data/mod/machines/lib/javascript/wagn_layout.js.coffee +7 -3
- data/mod/machines/lib/stylesheets/style_cards.scss +10 -10
- data/mod/machines/set/abstract/machine.rb +5 -28
- data/mod/machines/set/abstract/script.rb +7 -4
- data/mod/machines/set/all/reset_machines.rb +1 -1
- data/mod/machines/set/self/script_jquery_helper.rb +2 -2
- data/mod/machines/set/self/script_slot.rb +1 -1
- data/mod/machines/set/type/coffee_script.rb +3 -2
- data/mod/machines/set/type/css.rb +7 -3
- data/mod/machines/set/type/scss.rb +7 -1
- data/mod/machines/spec/set/type/coffeescript_spec.rb +1 -1
- data/mod/machines/spec/set/type/javascript_spec.rb +1 -1
- data/mod/machines/spec/set/type/scss_spec.rb +3 -2
- data/mod/machines/spec/set/type/skin_spec.rb +1 -1
- data/mod/machines/spec/shared_examples/machine.rb +5 -3
- data/mod/machines/spec/shared_examples/machine_input.rb +1 -0
- data/mod/notifications/format/email_html_format.rb +1 -0
- data/mod/notifications/set/all/follow.rb +1 -1
- data/mod/notifications/set/all/observer.rb +1 -1
- data/mod/notifications/set/all/send_notifications.rb +2 -2
- data/mod/notifications/set/self/follow_defaults.rb +3 -8
- data/mod/notifications/set/type/email_template/email_config.rb +2 -2
- data/mod/notifications/set/type_plus_right/user/follow.rb +2 -2
- data/mod/notifications/spec/set/all/follow_spec.rb +7 -0
- data/mod/notifications/spec/set/all/notify_spec.rb +3 -0
- data/mod/notifications/spec/set/all/observer_spec.rb +1 -1
- data/mod/notifications/spec/set/right/followers_spec.rb +1 -0
- data/mod/pointer/set/abstract/00_paging_params.rb +11 -0
- data/mod/pointer/set/abstract/{00_paging.rb → 01_paging.rb} +10 -6
- data/mod/pointer/set/abstract/{00_paging → 01_paging}/paging_links.rb +0 -0
- data/mod/pointer/set/abstract/{01_pointer.rb → 02_pointer.rb} +26 -5
- data/mod/pointer/set/abstract/{01_pointer → 02_pointer}/edit.rb +3 -5
- data/mod/pointer/set/self/input_options.rb +12 -0
- data/mod/pointer/spec/set/self/input_options_spec.rb +8 -0
- data/mod/pointer/spec/set/type/pointer_spec.rb +3 -2
- data/mod/prosemirror_editor/set/abstract/prosemirror_editor.rb +1 -1
- data/mod/prosemirror_editor/set/self/script_prosemirror.rb +1 -0
- data/mod/settings/lib/card/setting.rb +1 -2
- data/mod/settings/set/abstract/permission.rb +1 -1
- data/mod/settings/set/self/add_help.rb +1 -1
- data/mod/settings/set/self/autoname.rb +1 -1
- data/mod/settings/set/self/csv_structure.rb +2 -0
- data/mod/settings/set/self/help.rb +1 -1
- data/mod/settings/set/self/input.rb +1 -2
- data/mod/settings/set/self/options.rb +2 -2
- data/mod/settings/set/self/options_label.rb +2 -2
- data/mod/settings/set/type/setting.rb +1 -1
- data/mod/settings/spec/set/right/script_spec.rb +1 -1
- data/mod/settings/spec/set/right/style_spec.rb +1 -1
- data/mod/solid_cache/set/abstract/solid_cache.rb +5 -3
- data/mod/solid_cache/spec/set/abstract/solid_cache_spec.rb +4 -3
- data/mod/standard/set/abstract/01_search_params.rb +4 -3
- data/mod/standard/set/abstract/search.rb +2 -1
- data/mod/standard/set/abstract/toolbar_split_button.rb +22 -0
- data/mod/standard/set/all/links.rb +3 -3
- data/mod/standard/set/all/rich_html/classy.rb +37 -0
- data/mod/standard/set/all/rich_html/editing.rb +6 -2
- data/mod/standard/set/all/rich_html/editor.rb +50 -0
- data/mod/standard/set/all/rich_html/form.rb +19 -12
- data/mod/standard/set/all/rich_html/form_elements.rb +2 -2
- data/mod/standard/set/all/rich_html/formgroup.rb +2 -1
- data/mod/standard/set/all/rich_html/header.rb +2 -27
- data/mod/standard/set/all/rich_html/menu.rb +1 -1
- data/mod/standard/set/all/rich_html/new.rb +5 -1
- data/mod/standard/set/all/rich_html/toolbar.rb +15 -60
- data/mod/standard/set/all/rich_html/wrapper.rb +6 -3
- data/mod/standard/set/right/when_created.rb +2 -2
- data/mod/standard/set/rstar/rules_editor.rb +10 -7
- data/mod/standard/set/self/activity_toolbar_button.rb +14 -0
- data/mod/standard/set/self/recent.rb +7 -2
- data/mod/standard/set/self/rules_toolbar_button.rb +42 -0
- data/mod/standard/set/self/search.rb +19 -6
- data/mod/standard/set/type/basic.rb +6 -6
- data/mod/standard/set/type/cardtype.rb +7 -3
- data/mod/standard/set/type/date.rb +2 -4
- data/mod/standard/set/type/layout_type.rb +1 -0
- data/mod/standard/set/type/list.rb +1 -1
- data/mod/standard/set/type/listed_by.rb +1 -2
- data/mod/standard/set/type/number.rb +4 -2
- data/mod/standard/set/type/phrase.rb +4 -2
- data/mod/standard/set/type/search_type.rb +11 -3
- data/mod/standard/set/type/set.rb +8 -8
- data/mod/standard/set/type/toggle.rb +1 -3
- data/mod/standard/set/type/uri.rb +6 -2
- data/mod/standard/spec/chunk/include_spec.rb +3 -2
- data/mod/standard/spec/chunk/query_reference_spec.rb +2 -2
- data/mod/standard/spec/set/all/history_spec.rb +1 -0
- data/mod/standard/spec/set/all/links_spec.rb +1 -0
- data/mod/standard/spec/set/all/rich_html/toolbar_spec.rb +2 -0
- data/mod/standard/spec/set/self/activity_toolbar_button_spec.rb +22 -0
- data/mod/standard/spec/set/type/email_template/email_config_spec.rb +10 -8
- data/mod/standard/spec/set/type/email_template_spec.rb +1 -0
- data/mod/standard/spec/set/type/list_spec.rb +2 -0
- data/mod/standard/spec/set/type/listed_by_spec.rb +5 -0
- data/mod/standard/spec/set/type/search_type_spec.rb +1 -1
- data/mod/standard/spec/set/type/toggle_spec.rb +1 -2
- data/mod/standard/spec/set/type/uri_spec.rb +0 -1
- data/mod/tinymce_editor/db/migrate_cards/20160804112560_add_tinymce_cards.rb +3 -1
- data/mod/tinymce_editor/set/abstract/tinymce_editor.rb +1 -1
- data/mod/tinymce_editor/set/self/script_tinymce.rb +1 -0
- data/mod/twitter/db/migrate_cards/20170305112346_add_twitter_cards.rb +1 -1
- data/mod/twitter/set/type/twitter_template.rb +1 -1
- data/spec/lib/card/format_spec.rb +26 -7
- data/spec/lib/card/loader_spec.rb +96 -35
- data/spec/lib/card/query_spec.rb +0 -1
- data/spec/support/card_spec_loader.rb +1 -0
- data/spec/support/helper/card_helper.rb +0 -36
- data/spec/support/helper/set_helper.rb +80 -0
- data/spec/support/matchers.rb +74 -0
- data/tmpsets/set/mod001-core/all/actify.rb +5 -6
- data/tmpsets/set/mod001-core/all/fetch.rb +14 -12
- data/tmpsets/set/mod001-core/all/name.rb +1 -1
- data/tmpsets/set/mod001-core/all/permissions.rb +12 -22
- data/tmpsets/set/mod001-core/all/tracked_attributes.rb +76 -0
- data/tmpsets/set/mod001-core/all/utils.rb +40 -3
- data/tmpsets/set/mod002-history/all/history.rb +1 -2
- data/tmpsets/set/mod008-solid_cache/abstract/solid_cache.rb +1 -1
- data/tmpsets/set/mod013-carrierwave/abstract/attachment.rb +282 -0
- data/tmpsets/set/mod013-carrierwave/type/file.rb +155 -0
- data/tmpsets/set/mod013-carrierwave/type/image.rb +96 -0
- data/tmpsets/set/mod014-admin/self/admin.rb +113 -0
- data/tmpsets/set/mod014-admin/self/admin_info.rb +110 -0
- data/tmpsets/set/mod014-admin/self/version.rb +15 -0
- data/tmpsets/set/mod015-developer/all/event_viz.rb +59 -0
- data/tmpsets/set/mod015-developer/all/view_viz.rb +30 -0
- data/tmpsets/set/mod015-developer/right/debug.rb +96 -0
- metadata +52 -22
@@ -1,3 +1,8 @@
|
|
1
|
+
include_set Abstract::WqlSearch
|
2
|
+
|
3
|
+
def wql_hash
|
4
|
+
{ type_id: id }
|
5
|
+
end
|
1
6
|
|
2
7
|
format :html do
|
3
8
|
view :type do |args|
|
@@ -31,7 +36,7 @@ format :html do
|
|
31
36
|
card_url _render_add_path(args)
|
32
37
|
end
|
33
38
|
|
34
|
-
view :add_path do |
|
39
|
+
view :add_path do |_args|
|
35
40
|
path_args = {}
|
36
41
|
if voo.params
|
37
42
|
context = ((@parent && @parent.card) || card).name
|
@@ -62,8 +67,7 @@ def default_follow_set_card
|
|
62
67
|
end
|
63
68
|
|
64
69
|
def cards_of_type_exist?
|
65
|
-
|
66
|
-
!new_card? && Auth.as_bot { Card.count_by_wql type_id: id } > 0
|
70
|
+
!new_card? && Card.where(trash: false, type_id: id).exists?
|
67
71
|
end
|
68
72
|
|
69
73
|
def create_ok?
|
@@ -58,7 +58,7 @@ event :update_related_listed_by_card_on_content_update, :finalize,
|
|
58
58
|
end
|
59
59
|
|
60
60
|
event :update_related_listed_by_card_on_name_and_type_changes, :finalize,
|
61
|
-
on: :update, changed: [
|
61
|
+
on: :update, changed: %i[name type_id] do
|
62
62
|
update_all_items
|
63
63
|
end
|
64
64
|
|
@@ -60,8 +60,7 @@ end
|
|
60
60
|
def listed_by
|
61
61
|
Card.search(
|
62
62
|
{ type: "list", right: trunk.type_name,
|
63
|
-
left: { type: cardname.tag }, refer_to: cardname.trunk, return: :name
|
64
|
-
}, "listed_by" # better wql comment would be...better
|
63
|
+
left: { type: cardname.tag }, refer_to: cardname.trunk, return: :name }, "listed_by" # better wql comment would be...better
|
65
64
|
)
|
66
65
|
end
|
67
66
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
include_set Abstract::AceEditor
|
2
1
|
include_set Abstract::WqlSearch
|
3
2
|
|
4
3
|
format do
|
@@ -53,6 +52,11 @@ format :rss do
|
|
53
52
|
end
|
54
53
|
|
55
54
|
format :html do
|
55
|
+
view :closed do
|
56
|
+
voo.hide :closed_content
|
57
|
+
super()
|
58
|
+
end
|
59
|
+
|
56
60
|
view :closed_content, cache: :never do
|
57
61
|
if @depth > max_depth
|
58
62
|
"..."
|
@@ -64,7 +68,11 @@ format :html do
|
|
64
68
|
end
|
65
69
|
end
|
66
70
|
|
67
|
-
def
|
68
|
-
|
71
|
+
def editor
|
72
|
+
:ace_editor
|
73
|
+
end
|
74
|
+
|
75
|
+
def ace_mode
|
76
|
+
:json
|
69
77
|
end
|
70
78
|
end
|
@@ -3,9 +3,9 @@ include_set Type::SearchType
|
|
3
3
|
|
4
4
|
format :html do
|
5
5
|
COMMON_RULE_SETTINGS =
|
6
|
-
[
|
6
|
+
%i[create read update delete structure default style].freeze
|
7
7
|
|
8
|
-
view :core, cache: :never do
|
8
|
+
view :core, cache: :never do
|
9
9
|
voo.show :set_label, :rule_navbar
|
10
10
|
voo.hide :set_navbar
|
11
11
|
rule_view = params[:rule_view] || :common_rules
|
@@ -59,10 +59,10 @@ format :html do
|
|
59
59
|
|
60
60
|
view :field_related_rules do
|
61
61
|
with_label_and_navbars :field_related_rules do
|
62
|
-
field_settings = [
|
62
|
+
field_settings = %i[default help structure]
|
63
63
|
if card.type_id == PointerID
|
64
64
|
# FIXME: should be done with override in pointer set module
|
65
|
-
field_settings += [
|
65
|
+
field_settings += %i[input options options_label]
|
66
66
|
end
|
67
67
|
settings = card.visible_setting_codenames & field_settings
|
68
68
|
rules_table settings
|
@@ -127,7 +127,7 @@ format :html do
|
|
127
127
|
|
128
128
|
def rules_table_headings
|
129
129
|
wrap_with :tr, class: "rule-group" do
|
130
|
-
wrap_each_with :th, %w
|
130
|
+
wrap_each_with :th, %w[Trait Content Set], class: "rule-heading"
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -180,7 +180,7 @@ format :html do
|
|
180
180
|
""
|
181
181
|
end
|
182
182
|
|
183
|
-
view :set_navbar do |
|
183
|
+
view :set_navbar do |_args|
|
184
184
|
id = "rule-navbar-#{card.cardname.safe_key}-#{voo.home_view}"
|
185
185
|
related_sets = card.related_sets(true)
|
186
186
|
return "" if related_sets.size <= 1
|
@@ -329,8 +329,8 @@ end
|
|
329
329
|
|
330
330
|
def visible_setting_codenames
|
331
331
|
@visible_settings ||=
|
332
|
-
Card::Setting.groups.values.flatten.compact.
|
333
|
-
|
332
|
+
Card::Setting.groups.values.flatten.compact.select do |setting|
|
333
|
+
setting.applies_to_cardtype(prototype.type_id)
|
334
334
|
end.map(&:codename)
|
335
335
|
end
|
336
336
|
|
@@ -11,6 +11,7 @@ describe Card::Content::Chunk::Nest, "Inclusion" do
|
|
11
11
|
end
|
12
12
|
let(:options) { instance.options }
|
13
13
|
let(:name) { instance.name }
|
14
|
+
|
14
15
|
it "ignores invisible comments" do
|
15
16
|
expect(render_content("{{## now you see nothing}}")).to eq("")
|
16
17
|
end
|
@@ -94,9 +95,9 @@ describe Card::Content::Chunk::Nest, "Inclusion" do
|
|
94
95
|
expect { |b| instance.send(:each_option, "", &b) }.not_to yield_control
|
95
96
|
expect { |b| instance.send(:each_option, nil, &b) }.not_to yield_control
|
96
97
|
expect { |b| instance.send(:each_option, "a:b;c:4", &b) }
|
97
|
-
.to yield_successive_args(%w
|
98
|
+
.to yield_successive_args(%w[a b], %w[c 4])
|
98
99
|
expect { |b| instance.send(:each_option, "d:b;e:4; ", &b) }
|
99
|
-
.to yield_successive_args(%w
|
100
|
+
.to yield_successive_args(%w[d b], %w[e 4])
|
100
101
|
end
|
101
102
|
end
|
102
103
|
|
@@ -6,13 +6,13 @@ describe Card::Content::Chunk::QueryReference, "QueryReference" do
|
|
6
6
|
@class = Card::Content::Chunk::QueryReference
|
7
7
|
end
|
8
8
|
|
9
|
+
subject { query_refs.first.name }
|
10
|
+
|
9
11
|
let :query_refs do
|
10
12
|
content = Card::Content.new @content, Card.new(type: "Search")
|
11
13
|
content.find_chunks(Card::Content::Chunk::QueryReference)
|
12
14
|
end
|
13
15
|
|
14
|
-
subject { query_refs.first.name }
|
15
|
-
|
16
16
|
it "handles simple search" do
|
17
17
|
@content = '{"name":"Waldo"}'
|
18
18
|
is_expected.to eq "Waldo"
|
@@ -3,6 +3,7 @@ describe Card::Set::All::RichHtml::Toolbar do
|
|
3
3
|
subject do
|
4
4
|
render_content "{{A|edit}}"
|
5
5
|
end
|
6
|
+
|
6
7
|
it "renders toolbar" do
|
7
8
|
is_expected.to have_tag "div", with: { class: "SELF-a edit-view" } do
|
8
9
|
with_tag "nav", with: { class: "toolbar" }
|
@@ -13,6 +14,7 @@ describe Card::Set::All::RichHtml::Toolbar do
|
|
13
14
|
subject do
|
14
15
|
render_content "{{A|edit; hide: toolbar}}"
|
15
16
|
end
|
17
|
+
|
16
18
|
it "hides toolbar" do
|
17
19
|
is_expected.to have_tag "div", with: { class: "SELF-a edit-view" } do
|
18
20
|
without_tag "nav", with: { class: "toolbar" }
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
describe Card::Set::Self::ActivityToolbarButton do
|
4
|
+
subject do
|
5
|
+
render_view :edit, name: "A"
|
6
|
+
end
|
7
|
+
|
8
|
+
it "is rendered in toolbar" do
|
9
|
+
is_expected.to include "activity"
|
10
|
+
end
|
11
|
+
|
12
|
+
it "can be hidden with read rule" do
|
13
|
+
Card::Auth.as_bot do
|
14
|
+
ensure_card %i[activity_toolbar_button self read],
|
15
|
+
content: "Administrator"
|
16
|
+
end
|
17
|
+
|
18
|
+
with_user "Joe User" do
|
19
|
+
is_expected.not_to include "activity"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# -*- encoding : utf-8 -*-
|
2
|
+
|
2
3
|
require "card/mailer"
|
3
4
|
|
4
5
|
describe Card::Set::Type::EmailTemplate::EmailConfig do
|
@@ -143,6 +144,7 @@ describe Card::Set::Type::EmailTemplate::EmailConfig do
|
|
143
144
|
|
144
145
|
context "with context card" do
|
145
146
|
subject(:config) { mailconfig(context: context_card) }
|
147
|
+
|
146
148
|
let(:context_card) do
|
147
149
|
file = File.new(File.join(FIXTURES_PATH, "mao2.jpg"))
|
148
150
|
Card.create(
|
@@ -202,14 +204,14 @@ describe Card::Set::Type::EmailTemplate::EmailConfig do
|
|
202
204
|
end
|
203
205
|
|
204
206
|
it "handles inline image nests in html message" do
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
207
|
+
update_field "*html message", content: "Triggered by {{:logo|inline}}"
|
208
|
+
mail = email.format.render_mail context: context_card
|
209
|
+
expect(mail.parts[0].mime_type).to eq "image/png"
|
210
|
+
url = mail.parts[0].url
|
211
|
+
expect(mail.parts[2].mime_type).to eq "text/html"
|
212
|
+
expect(mail.parts[2].body.raw_source).to include('<img src="cid:')
|
213
|
+
expect(mail.parts[2].body.raw_source).to include("<img src=\"#{url}\"")
|
214
|
+
end
|
213
215
|
|
214
216
|
it "handles image nests in html message in default view" do
|
215
217
|
update_field "*html message", content: "Triggered by {{:logo|core}}"
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
describe Card::Set::Type::List do
|
4
4
|
subject { Card.fetch("Parry Hotter+authors").item_names.sort }
|
5
|
+
|
5
6
|
before do
|
6
7
|
Card::Auth.as_bot do
|
7
8
|
Card.create! name: "Stam Broker+books", type: "listed by"
|
@@ -60,6 +61,7 @@ describe Card::Set::Type::List do
|
|
60
61
|
subject do
|
61
62
|
Card.fetch("Parry Moppins+authors").item_names.sort
|
62
63
|
end
|
64
|
+
|
63
65
|
it { is_expected.to eq ["Darles Chickens", "Stam Broker"] }
|
64
66
|
end
|
65
67
|
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
describe Card::Set::Type::ListedBy do
|
4
4
|
let(:listed_by) { Card.fetch("Darles Chickens+books").item_names.sort }
|
5
|
+
|
5
6
|
before do
|
6
7
|
Card::Auth.as_bot do
|
7
8
|
Card.create!(
|
@@ -28,6 +29,7 @@ describe Card::Set::Type::ListedBy do
|
|
28
29
|
"Parry Hotter" and "50 grades of shy"' do
|
29
30
|
describe "Darles Chickens+books" do
|
30
31
|
subject { listed_by }
|
32
|
+
|
31
33
|
it { is_expected.to eq ["50 grades of shy", "Parry Hotter"] }
|
32
34
|
|
33
35
|
it "is recorded in the reference table" do
|
@@ -122,6 +124,7 @@ describe Card::Set::Type::ListedBy do
|
|
122
124
|
)
|
123
125
|
end
|
124
126
|
subject { Card.fetch("Darles Eggs+books").item_names.sort }
|
127
|
+
|
125
128
|
it { is_expected.to eq ["50 grades of shy", "Parry Hotter"] }
|
126
129
|
end
|
127
130
|
context "when the cartype of Darles Chickens changed" do
|
@@ -133,6 +136,7 @@ describe Card::Set::Type::ListedBy do
|
|
133
136
|
end
|
134
137
|
context "when the name of Darles Chickens+books changed" do
|
135
138
|
subject { Card.fetch("Darles Chickens+authors").item_names.sort }
|
139
|
+
|
136
140
|
before do
|
137
141
|
Card["Darles Chickens+books"].update_attributes!(
|
138
142
|
name: "Darles Chickens+authors"
|
@@ -145,6 +149,7 @@ describe Card::Set::Type::ListedBy do
|
|
145
149
|
Card["book"].update_attributes! name: "literature"
|
146
150
|
end
|
147
151
|
subject { Card.fetch("Darles Chickens+literature").item_names.sort }
|
152
|
+
|
148
153
|
it { is_expected.to eq ["50 grades of shy", "Parry Hotter"] }
|
149
154
|
end
|
150
155
|
context "when the name of the cardtype authors changed" do
|
@@ -89,7 +89,7 @@ describe Card::Set::Type::SearchType do
|
|
89
89
|
subject do
|
90
90
|
Card::Env.params[:item] = :name_with_fields
|
91
91
|
render_card_with_args :core, { name: "Book+*type+by name" },
|
92
|
-
|
92
|
+
{ format: :csv }, items: { view: :name_with_fields }
|
93
93
|
end
|
94
94
|
|
95
95
|
it "has title row item name and field names" do
|
@@ -13,6 +13,7 @@ describe Card::Set::Type::Toggle do
|
|
13
13
|
|
14
14
|
describe "view :labeled_editor" do
|
15
15
|
subject { render_view :labeled_editor, type: :toggle, name: "A+toggle" }
|
16
|
+
|
16
17
|
it "has checkbox label" do
|
17
18
|
is_expected.to have_tag("label", with: { for: "card_content" }) do
|
18
19
|
with_text "toggle"
|
@@ -20,5 +21,3 @@ describe Card::Set::Type::Toggle do
|
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
23
|
-
|
24
|
-
|
@@ -25,13 +25,15 @@ class AddTinymceCards < Card::Migration
|
|
25
25
|
ensure_card name: "*TinyMCE", type_id: Card::PlainTextID,
|
26
26
|
codename: "tiny_mce",
|
27
27
|
content: TINYMCE_CONFIG
|
28
|
+
Card::Cache.reset_all
|
28
29
|
create_or_update(
|
29
30
|
name: "*TinyMCE+*self+*help",
|
30
31
|
content: "Configure [[http://tinymce.com|TinyMCE]], Wagn's default "\
|
31
32
|
"[[http://en.wikipedia.org/wiki/Wysiwyg|wysiwyg]] editor. "\
|
32
33
|
"[[http://wagn.org/TinyMCE|more]]"
|
33
34
|
)
|
34
|
-
ensure_card name: "script: tinymce",
|
35
|
+
ensure_card name: "script: tinymce",
|
36
|
+
type_id: Card::JavaScriptID,
|
35
37
|
codename: "script_tinymce"
|
36
38
|
ensure_card name: "script: tinymce config",
|
37
39
|
type_id: Card::CoffeeScriptID,
|