card-mod-bootstrap 0.16.0 → 0.17.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65c3edd6e18e607b53c39c1a815386fb26af21c2d628dd93dd8b870742610525
4
- data.tar.gz: 503036793a7ba7e553f34682bc522713f9c440fe01a9abde020c0d2889aebb85
3
+ metadata.gz: e75d49334750d08d7281d83ae2df00c09b9efa388ce1de84912d6530cd7e8813
4
+ data.tar.gz: 16435f680eac6f6eab99cefb7fa05687726a27d124ab98de8acf2e632208b808
5
5
  SHA512:
6
- metadata.gz: b738342bfbb3a06fe1ec7296a0412dbc5882e0281fee6013e016a2cd370010fd66b34243c2ac28cb06f66c3db65198ccf721b2d44d35f5fa94aa7a9182656b02
7
- data.tar.gz: d93b189158a69ebebd467716eea64eda38209f75fe599b42e5e4a2ce94b860afd5d1b8ff30a084d60eb6fae120716f288fda2c6a192b29bd1fbfe78ac5d4d4fd
6
+ metadata.gz: 7f8088224e8c574c4087bb432a642ed2fb38313268f3fc41095a51256c2dbb0ed1fe5f13c65026579f66bcc5e7eaa8c336ec23f09eaa3a7ad9fb7bc11bcfa658
7
+ data.tar.gz: 73cc985c31dd5692fba9525e7341ed9399619a888d37c30d88c686f7ad63f5c20582db5da3072af158cdcc10b3cd8a273ddfaf26e7a321981ead35343092123f
@@ -13,25 +13,11 @@ $.extend decko,
13
13
  if elem.length == 0
14
14
  return
15
15
  else if elem.length > 1
16
- decko.initSelect2($(single_el)) for single_el in elem
16
+ initSingleSelect2($(single_el)) for single_el in elem
17
17
  else
18
- opts = {
19
- dropdownAutoWidth: "true",
20
- # containerCssClass: ":all:",
21
- width: "auto",
22
- dropdownParent: elem.parent()
23
- }
18
+ initSingleSelect2 elem
24
19
 
25
- elem.attr "id", decko.uniqSelect2Id(elem.attr("id"))
26
20
 
27
- if elem.hasClass("tags")
28
- opts.tags = "true"
29
- if elem.data("placeholder")
30
- opts.placeholder = elem.data("placeholder")
31
- if elem.data("minimum-results-for-search")?
32
- opts.minimumResultsForSearch = elem.data("minimum-results-for-search")
33
-
34
- elem.select2(opts)
35
21
 
36
22
  uniqSelect2Id: (id) ->
37
23
  return id unless $("[data-select2-id=" + id + "]").length > 0
@@ -64,3 +50,38 @@ $.fn.extend
64
50
  @select2 "destroy"
65
51
  @removeAttr "data-select2-id"
66
52
  @find("option").removeAttr "data-select2-id"
53
+
54
+
55
+ initSingleSelect2 = (elem) ->
56
+ opts = {
57
+ dropdownAutoWidth: "true",
58
+ # containerCssClass: ":all:",
59
+ width: "auto",
60
+ dropdownParent: elem.parent()
61
+ }
62
+
63
+ elem.attr "id", decko.uniqSelect2Id(elem.attr("id"))
64
+
65
+ if elem.hasClass("tags")
66
+ opts.tags = "true"
67
+ if elem.data("placeholder")
68
+ opts.placeholder = elem.data("placeholder")
69
+ if elem.data("minimum-results-for-search")?
70
+ opts.minimumResultsForSearch = elem.data("minimum-results-for-search")
71
+ if elem.data("options-card")
72
+ opts.ajax =
73
+ delay: 200
74
+ cache: true
75
+ url: decko.path elem.data("options-card")
76
+ processResults: (data) ->
77
+ results: $.map(data, (card, i) ->
78
+ { id: "~" + card.id, text: card.name }
79
+ )
80
+ data: (params) ->
81
+ term: params.term
82
+ format: "json"
83
+ view: "name_match"
84
+ slot: { items: { view: "nucleus" } }
85
+
86
+
87
+ elem.select2(opts)
data/config/admin.yml ADDED
@@ -0,0 +1,5 @@
1
+ cardtypes:
2
+ styling:
3
+ - bootswatch_skin
4
+ views:
5
+ - carousel
@@ -12,7 +12,7 @@ const i=this._directionToOrder(t),n=Ce.findOne(ai,this._element),s=this._getItem
12
12
  // decko_popover.js.coffee
13
13
  (function(){$(window).ready(function(){return $("body").on("show.bs.popover","._card-menu-popover",function(){return $(this).closest(".card-menu._show-on-hover").removeClass("_show-on-hover").addClass("_show-on-hover-disabled")}),$("body").on("hide.bs.popover","._card-menu-popover",function(){return $(this).closest(".card-menu._show-on-hover-disabled").removeClass("_show-on-hover-disabled").addClass("_show-on-hover")})}),decko.slot.ready(function(o){return o.find('[data-tooltip="true"]').tooltip(),o.find('[data-bs-toggle="popover"]').popover({html:!0})})}).call(this);
14
14
  // script_load_select2.js.coffee
15
- (function(){$.fn.select2.defaults.set("theme","bootstrap-5"),decko.slot.ready(function(e){return e.find("select:not(._no-select2):not(._no-select2-init)").each(function(){return decko.initSelect2($(this))})}),decko.slot.destroy(function(e){return e.find("select:not(._no-select2)").each(function(){return $(this).deInitSelect2()})}),$.extend(decko,{initSelect2:function(e){var t,n,i,c,o;if(0!==e.length){if(e.length>1){for(c=[],t=0,n=e.length;t<n;t++)o=e[t],c.push(decko.initSelect2($(o)));return c}return i={dropdownAutoWidth:"true",width:"auto",dropdownParent:e.parent()},e.attr("id",decko.uniqSelect2Id(e.attr("id"))),e.hasClass("tags")&&(i.tags="true"),e.data("placeholder")&&(i.placeholder=e.data("placeholder")),null!=e.data("minimum-results-for-search")&&(i.minimumResultsForSearch=e.data("minimum-results-for-search")),e.select2(i)}},uniqSelect2Id:function(e){return $("[data-select2-id="+e+"]").length>0?decko.uniqSelect2Id(e+"1"):e}}),$(window).ready(function(){return $("body").on("select2:select","._go-to-selected",function(){var e;if(""!==(e=$(this).val()))return window.location=decko.path(escape(e))}),$("body").on("select2:select","._submit-on-select",function(e){return $(e.target).closest("form").submit()})}),$.fn.extend({cloneSelect2:function(e,t){var n,i;return(i=this.is("select")?this:this.find("select")).deInitSelect2(),n=this.clone(e,t),decko.initSelect2(i),n.is("select")?decko.initSelect2(n):decko.initSelect2(n.find("select")),n},deInitSelect2:function(){if(this.attr("data-select2-id"))return this.select2("destroy"),this.removeAttr("data-select2-id"),this.find("option").removeAttr("data-select2-id")}})}).call(this);
15
+ (function(){var t;$.fn.select2.defaults.set("theme","bootstrap-5"),decko.slot.ready(function(t){return t.find("select:not(._no-select2):not(._no-select2-init)").each(function(){return decko.initSelect2($(this))})}),decko.slot.destroy(function(t){return t.find("select:not(._no-select2)").each(function(){return $(this).deInitSelect2()})}),$.extend(decko,{initSelect2:function(e){var n,i,c,o;if(0!==e.length){if(e.length>1){for(c=[],n=0,i=e.length;n<i;n++)o=e[n],c.push(t($(o)));return c}return t(e)}},uniqSelect2Id:function(t){return $("[data-select2-id="+t+"]").length>0?decko.uniqSelect2Id(t+"1"):t}}),$(window).ready(function(){return $("body").on("select2:select","._go-to-selected",function(){var t;if(""!==(t=$(this).val()))return window.location=decko.path(escape(t))}),$("body").on("select2:select","._submit-on-select",function(t){return $(t.target).closest("form").submit()})}),$.fn.extend({cloneSelect2:function(t,e){var n,i;return(i=this.is("select")?this:this.find("select")).deInitSelect2(),n=this.clone(t,e),decko.initSelect2(i),n.is("select")?decko.initSelect2(n):decko.initSelect2(n.find("select")),n},deInitSelect2:function(){if(this.attr("data-select2-id"))return this.select2("destroy"),this.removeAttr("data-select2-id"),this.find("option").removeAttr("data-select2-id")}}),t=function(t){var e;return e={dropdownAutoWidth:"true",width:"auto",dropdownParent:t.parent()},t.attr("id",decko.uniqSelect2Id(t.attr("id"))),t.hasClass("tags")&&(e.tags="true"),t.data("placeholder")&&(e.placeholder=t.data("placeholder")),null!=t.data("minimum-results-for-search")&&(e.minimumResultsForSearch=t.data("minimum-results-for-search")),t.data("options-card")&&(e.ajax={delay:200,cache:!0,url:decko.path(t.data("options-card")),processResults:function(t){return{results:$.map(t,function(t){return{id:"~"+t.id,text:t.name}})}},data:function(t){return{term:t.term,format:"json",view:"name_match",slot:{items:{view:"nucleus"}}}}}),t.select2(e)}}).call(this);
16
16
  // bootstrap-colorpicker.min.js
17
17
  /*!
18
18
  * Bootstrap Colorpicker v2.5.2
@@ -9,7 +9,7 @@ class RemoveCustomizedBootswatchSkins < Cardio::Migration::Transform
9
9
  end
10
10
 
11
11
  def convert_bootswatch_skins
12
- Card.search(type_id: ::Card::CustomizedBootswatchSkinID) do |card|
12
+ Card.search(type: :customized_bootswatch_skin) do |card|
13
13
  update_args = { type_id: Card::BootswatchSkinID, skip: :asset_input_changed }
14
14
  parent = find_parent(card.name)
15
15
  if parent && parent.id != card.id
@@ -12,7 +12,7 @@ class Card
12
12
  @items = []
13
13
  instance_exec(&block)
14
14
 
15
- @html.div class: "carousel slide", id: id, "data-ride" => "carousel" do
15
+ @html.div class: "carousel slide", id: id, "data-bs-ride" => "true" do
16
16
  indicators
17
17
  items
18
18
  control_prev
@@ -25,7 +25,7 @@ class Card
25
25
  end
26
26
 
27
27
  def items
28
- @html.div class: "carousel-inner", role: "listbox" do
28
+ @html.div class: "carousel-inner" do
29
29
  @items.each_with_index do |item, index|
30
30
  carousel_item item, carousel_item_opts(index)
31
31
  end
@@ -46,31 +46,35 @@ class Card
46
46
  end
47
47
 
48
48
  def control_prev
49
- @html.a class: "carousel-control-prev", href: "##{@id}", role: "button",
50
- "data-slide" => "prev" do
51
- @html.span class: "carousel-control-prev-icon", "aria-hidden" => "true"
52
- @html.span "Previous", class: "sr-only"
53
- end
49
+ control_button :prev, "Previous"
54
50
  end
55
51
 
56
52
  def control_next
57
- @html.a class: "carousel-control-next", href: "##{@id}", role: "button",
58
- "data-slide": "next" do
59
- @html.span class: "carousel-control-next-icon", "aria-hidden" => "true"
60
- @html.span "Next", class: "sr-only"
53
+ control_button :next, "Next"
54
+ end
55
+
56
+ def control_button direction, description
57
+ @html.button class: "carousel-control-#{direction}",
58
+ "data-bs-target": "##{@id}", type: "button" do
59
+ @html.span class: "carousel-control-#{direction}-icon",
60
+ "aria-hidden": "true" do
61
+ ""
62
+ end
63
+ @html.span description, class: "visually-hidden"
61
64
  end
62
65
  end
63
66
 
64
67
  def indicators
65
- @html.ol class: "carousel-indicators" do
68
+ @html.div class: "carousel-indicators" do
66
69
  @items.size.times { |i| indicator i }
67
70
  end
68
71
  end
69
72
 
70
73
  def indicator index
71
- html_opts = { "data-slide-to" => index, "data-bs-target": "##{@id}" }
74
+ html_opts = { "data-bs-slide-to": index, "data-bs-target": "##{@id}",
75
+ type: "button", "aria-label": "Slide #{index + 1}" }
72
76
  add_class html_opts, "active" if index == @active_item_index
73
- @html.li html_opts
77
+ @html.button html_opts
74
78
  end
75
79
  end
76
80
  end
@@ -1,4 +1,4 @@
1
- %span.labeled-badge{ class: klass, title: title }
1
+ %span.labeled-badge{ class: klass, title: title, "data-bs-toggle": "tooltip", "data-bs-placement": "bottom" }
2
2
  %label
3
3
  = label
4
4
  %span.badge{ class: "bg-#{color}" }
@@ -85,6 +85,17 @@ basket[:icons] = {
85
85
  format :html do
86
86
  view :icons, template: :haml
87
87
 
88
+ # Generates an HTML tag for an icon with optional parameters.
89
+ #
90
+ # @param [String] icon_key The key representing the desired icon.
91
+ # @param [Hash] opts The options for the icon tag.
92
+ # @option opts [String] :class Additional CSS classes for the icon tag.
93
+ # @option opts [String] :style Additional inline styles for the icon tag.
94
+ #
95
+ # @return [String] The HTML code for the icon tag.
96
+ #
97
+ # @example
98
+ # icon_tag(:heart, class: 'favorite-icon', style: 'color: red')
88
99
  def icon_tag icon_key, opts={}
89
100
  return "" unless icon_key.present?
90
101
 
@@ -40,6 +40,9 @@ format :html do
40
40
  end
41
41
  end
42
42
 
43
+ # Generates HTML markup for a breadcrumb trail.
44
+ # @param items [list]: A list of items representing the breadcrumb trail.
45
+ # @return [String] HTML markup for the breadcrumb trail.
43
46
  def breadcrumb items
44
47
  wrap_with :ol, class: "breadcrumb" do
45
48
  items.map do |item|
@@ -63,11 +63,11 @@ def virtual?
63
63
  new?
64
64
  end
65
65
 
66
- def ok_to_create
66
+ def ok_to_create?
67
67
  left.parent? && super
68
68
  end
69
69
 
70
- def ok_to_update
70
+ def ok_to_update?
71
71
  left.parent? && super
72
72
  end
73
73
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card-mod-bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-11-18 00:00:00.000000000 Z
13
+ date: 2024-06-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: card
@@ -18,70 +18,70 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.106.0
21
+ version: 1.107.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 1.106.0
28
+ version: 1.107.0
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: card-mod-edit
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.16.0
35
+ version: 0.17.0
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.16.0
42
+ version: 0.17.0
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: card-mod-bar_and_box
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - '='
48
48
  - !ruby/object:Gem::Version
49
- version: 0.16.0
49
+ version: 0.17.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - '='
55
55
  - !ruby/object:Gem::Version
56
- version: 0.16.0
56
+ version: 0.17.0
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: card-mod-style
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - '='
62
62
  - !ruby/object:Gem::Version
63
- version: 0.16.0
63
+ version: 0.17.0
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - '='
69
69
  - !ruby/object:Gem::Version
70
- version: 0.16.0
70
+ version: 0.17.0
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: card-mod-script
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - '='
76
76
  - !ruby/object:Gem::Version
77
- version: 0.16.0
77
+ version: 0.17.0
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
82
  - - '='
83
83
  - !ruby/object:Gem::Version
84
- version: 0.16.0
84
+ version: 0.17.0
85
85
  description: ''
86
86
  email:
87
87
  - info@decko.org
@@ -102,6 +102,7 @@ files:
102
102
  - assets/style/font_awesome.css
103
103
  - assets/style/manifest.yml
104
104
  - assets/style/material_icons.css
105
+ - config/admin.yml
105
106
  - config/locales/de.yml
106
107
  - config/locales/en.yml
107
108
  - data/files/cerulean_skin_image/image-icon.png
@@ -3952,14 +3953,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
3952
3953
  requirements:
3953
3954
  - - ">="
3954
3955
  - !ruby/object:Gem::Version
3955
- version: '2.5'
3956
+ version: '3.0'
3956
3957
  required_rubygems_version: !ruby/object:Gem::Requirement
3957
3958
  requirements:
3958
3959
  - - ">="
3959
3960
  - !ruby/object:Gem::Version
3960
3961
  version: '0'
3961
3962
  requirements: []
3962
- rubygems_version: 3.4.10
3963
+ rubygems_version: 3.5.10
3963
3964
  signing_key:
3964
3965
  specification_version: 4
3965
3966
  summary: Bootstrap