Skip to content

Commit

Permalink
Prepare release 2.1.0 (#60)
Browse files Browse the repository at this point in the history
* Update changelog
* Bump version to 2.1.0
* Rebuild test fixtures and JavaScript legacy bundle for old Sprockets
  • Loading branch information
gael-ian authored Jan 28, 2024
1 parent 738bf3a commit b197ba6
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 7 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),

## [Unreleased]

## Version 2.1.0 (2024-01-28)

### Added

* Add support for custom tag name to container helpers (#55, #56)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
cocooned (2.0.4)
cocooned (2.1.0)
rails (>= 6.0, <= 7.2)

GEM
Expand Down
15 changes: 11 additions & 4 deletions app/assets/javascripts/cocooned.js
Original file line number Diff line number Diff line change
Expand Up @@ -309,17 +309,24 @@

build (id) {
const node = this.#documentFragment.cloneNode(true);
this.#replacements.forEach(replacement => {
node.querySelectorAll(`*[${replacement.attribute}]`).forEach(node => replacement.apply(node, id));
});

this.#applyReplacements(node, id);
return node
}

/* Protected and private attributes and methods */
#association
#documentFragment
#replacements

#applyReplacements(node, id) {
this.#replacements.forEach(replacement => {
node.querySelectorAll(`*[${replacement.attribute}]`).forEach(node => replacement.apply(node, id));
});

node.querySelectorAll('template').forEach(template => {
this.#applyReplacements(template.content, id);
});
}
}

class Traverser {
Expand Down
2 changes: 1 addition & 1 deletion lib/cocooned/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module Cocooned
VERSION = '2.0.4'
VERSION = '2.1.0'
end
2 changes: 1 addition & 1 deletion npm/__tests__/fixtures/rails.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"link":"<form action=\"/lists\" accept-charset=\"UTF-8\" method=\"post\">\n\n <div class=\"field\">\n <label for=\"list_name\">Name</label>\n <input type=\"text\" name=\"list[name]\" id=\"list_name\">\n </div>\n\n <h3>Items</h3>\n <div class=\"cocooned-container\" data-cocooned-container=\"true\" data-cocooned-options='{\"limit\":5,\"reorderable\":true}'>\n \n <div>\n <a partial=\"lists/form/item\" class=\"cocooned-add add_fields\" data-association=\"items\" data-template=\"d0538b04-b402-4987-b919-2096b1aea72b\" data-association-insertion-count=\"1\" data-cocooned-trigger=\"add\" href=\"#\">Add item</a><template data-name=\"d0538b04-b402-4987-b919-2096b1aea72b\"><div class=\"cocooned-item nested-fields\" data-cocooned-item=\"true\">\n <input value=\"false\" autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][_destroy]\" id=\"list_items_attributes_new_items__destroy\"><a class=\"cocooned-remove remove_fields\" data-cocooned-trigger=\"remove\" data-cocooned-persisted=\"false\" href=\"#\">Remove</a>\n <a class=\"cocooned-move-up\" data-cocooned-trigger=\"up\" href=\"#\">Move up</a>\n <a class=\"cocooned-move-down\" data-cocooned-trigger=\"down\" href=\"#\">Move down</a>\n\n <label for=\"list_items_attributes_new_items_label\">Label</label>\n <input type=\"text\" name=\"list[items_attributes][new_items][label]\" id=\"list_items_attributes_new_items_label\">\n <input autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][position]\" id=\"list_items_attributes_new_items_position\">\n</div></template>\n </div>\n</div>\n <div class=\"actions\">\n <input type=\"submit\" name=\"commit\" value=\"Create List\" data-disable-with=\"Create List\">\n </div>\n</form>","button":"<form action=\"/lists\" accept-charset=\"UTF-8\" method=\"post\">\n\n <div class=\"field\">\n <label for=\"list_name\">Name</label>\n <input type=\"text\" name=\"list[name]\" id=\"list_name\">\n </div>\n\n <h3>Items</h3>\n <div class=\"cocooned-container\" data-cocooned-container=\"true\" data-cocooned-options='{\"limit\":5,\"reorderable\":true}'>\n \n <div>\n <button name=\"button\" type=\"button\" partial=\"lists/form/item\" class=\"cocooned-add add_fields\" data-association=\"items\" data-template=\"58b59b86-92ab-42c8-9960-5719e9f086b7\" data-association-insertion-count=\"1\" data-cocooned-trigger=\"add\">Add item</button><template data-name=\"58b59b86-92ab-42c8-9960-5719e9f086b7\"><div class=\"cocooned-item nested-fields\" data-cocooned-item=\"true\">\n <input value=\"false\" autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][_destroy]\" id=\"list_items_attributes_new_items__destroy\"><button name=\"button\" type=\"button\" class=\"cocooned-remove remove_fields\" data-cocooned-trigger=\"remove\" data-cocooned-persisted=\"false\">Remove</button>\n <button name=\"button\" type=\"button\" class=\"cocooned-move-up\" data-cocooned-trigger=\"up\">Move up</button>\n <button name=\"button\" type=\"button\" class=\"cocooned-move-down\" data-cocooned-trigger=\"down\">Move down</button>\n\n <label for=\"list_items_attributes_new_items_label\">Label</label>\n <input type=\"text\" name=\"list[items_attributes][new_items][label]\" id=\"list_items_attributes_new_items_label\">\n <input autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][position]\" id=\"list_items_attributes_new_items_position\">\n</div></template>\n </div>\n</div>\n <div class=\"actions\">\n <input type=\"submit\" name=\"commit\" value=\"Create List\" data-disable-with=\"Create List\">\n </div>\n</form>"}
{"link":"<form action=\"/lists\" accept-charset=\"UTF-8\" method=\"post\">\n\n <div class=\"field\">\n <label for=\"list_name\">Name</label>\n <input type=\"text\" name=\"list[name]\" id=\"list_name\">\n </div>\n\n <h3>Items</h3>\n <div class=\"cocooned-container\" data-cocooned-container=\"true\" data-cocooned-options='{\"limit\":5,\"reorderable\":true}'>\n \n <div>\n <a partial=\"lists/form/item\" class=\"cocooned-add add_fields\" data-association=\"items\" data-template=\"8b8cff5a-6819-4fb0-a9da-c4075e4b1d5a\" data-association-insertion-count=\"1\" data-cocooned-trigger=\"add\" href=\"#\">Add item</a><template data-name=\"8b8cff5a-6819-4fb0-a9da-c4075e4b1d5a\"><div class=\"cocooned-item nested-fields\" data-cocooned-item=\"true\">\n <input value=\"false\" autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][_destroy]\" id=\"list_items_attributes_new_items__destroy\"><a class=\"cocooned-remove remove_fields\" data-cocooned-trigger=\"remove\" data-cocooned-persisted=\"false\" href=\"#\">Remove</a>\n <a class=\"cocooned-move-up\" data-cocooned-trigger=\"up\" href=\"#\">Move up</a>\n <a class=\"cocooned-move-down\" data-cocooned-trigger=\"down\" href=\"#\">Move down</a>\n\n <label for=\"list_items_attributes_new_items_label\">Label</label>\n <input type=\"text\" name=\"list[items_attributes][new_items][label]\" id=\"list_items_attributes_new_items_label\">\n <input autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][position]\" id=\"list_items_attributes_new_items_position\">\n</div></template>\n </div>\n</div>\n <div class=\"actions\">\n <input type=\"submit\" name=\"commit\" value=\"Create List\" data-disable-with=\"Create List\">\n </div>\n</form>","button":"<form action=\"/lists\" accept-charset=\"UTF-8\" method=\"post\">\n\n <div class=\"field\">\n <label for=\"list_name\">Name</label>\n <input type=\"text\" name=\"list[name]\" id=\"list_name\">\n </div>\n\n <h3>Items</h3>\n <div class=\"cocooned-container\" data-cocooned-container=\"true\" data-cocooned-options='{\"limit\":5,\"reorderable\":true}'>\n \n <div>\n <button name=\"button\" type=\"button\" partial=\"lists/form/item\" class=\"cocooned-add add_fields\" data-association=\"items\" data-template=\"a4227ca3-6011-46cc-96c4-6bdca7c06629\" data-association-insertion-count=\"1\" data-cocooned-trigger=\"add\">Add item</button><template data-name=\"a4227ca3-6011-46cc-96c4-6bdca7c06629\"><div class=\"cocooned-item nested-fields\" data-cocooned-item=\"true\">\n <input value=\"false\" autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][_destroy]\" id=\"list_items_attributes_new_items__destroy\"><button name=\"button\" type=\"button\" class=\"cocooned-remove remove_fields\" data-cocooned-trigger=\"remove\" data-cocooned-persisted=\"false\">Remove</button>\n <button name=\"button\" type=\"button\" class=\"cocooned-move-up\" data-cocooned-trigger=\"up\">Move up</button>\n <button name=\"button\" type=\"button\" class=\"cocooned-move-down\" data-cocooned-trigger=\"down\">Move down</button>\n\n <label for=\"list_items_attributes_new_items_label\">Label</label>\n <input type=\"text\" name=\"list[items_attributes][new_items][label]\" id=\"list_items_attributes_new_items_label\">\n <input autocomplete=\"off\" type=\"hidden\" name=\"list[items_attributes][new_items][position]\" id=\"list_items_attributes_new_items_position\">\n</div></template>\n </div>\n</div>\n <div class=\"actions\">\n <input type=\"submit\" name=\"commit\" value=\"Create List\" data-disable-with=\"Create List\">\n </div>\n</form>"}

0 comments on commit b197ba6

Please sign in to comment.