Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
40abab3
Bump http-proxy-middleware from 2.0.9 to 2.0.10
dependabot[bot] Jun 28, 2026
384a274
Bump undici from 6.26.0 to 6.27.0
dependabot[bot] Jun 28, 2026
2399de4
Bump launch-editor from 2.14.0 to 2.14.1
dependabot[bot] Jun 28, 2026
9c0ff73
Filter unpublished/viewless content from the public Relation API
Vondry Jun 11, 2026
b0d60f6
Fix SQL injection in ListFormatHelper
Vondry Jun 11, 2026
89a8796
Prevent SSRF in embed endpoint and add controller-level SSRF tests
Vondry Jun 11, 2026
919691e
Prevent SSRF in upload-from-URL endpoint
Vondry Jun 11, 2026
96bc054
Add conflict on broken api-platform dependency
bobvandevijver Jul 4, 2026
395a2bb
Block open redirect on login endpoint
bobvandevijver Jul 4, 2026
b1480e8
Add 6.1.4 changelog
bobvandevijver Jul 4, 2026
9703d9c
Set ECS to a fixed version
bobvandevijver Jul 4, 2026
93c3b51
Add github handle for security report
bobvandevijver Jul 4, 2026
044ebc7
Release 6.1.4
bobvandevijver Jul 4, 2026
934eede
feat: initial vue upgrade
Vondry Jul 6, 2026
0424479
TypeScript improvements across editor and listing assets
Vondry Jul 7, 2026
40d3470
Fix image extra-field values leaking base record keys
Vondry Jul 7, 2026
fcb3936
Hide listing status links when statusLink is unavailable
Vondry Jul 7, 2026
9f24333
Surface server error message on file-browser failures
Vondry Jul 7, 2026
8a8b199
Fix Select handling of a numeric 0 value and single-select tagging
Vondry Jul 7, 2026
e286000
Avoid flatpickr invalid-locale error for the default locale
Vondry Jul 7, 2026
6c244b5
Emit camelCase update:modelValue in Language test
Vondry Jul 7, 2026
8d54e75
Fix single-select initialization to a single value in Select
Vondry Jul 7, 2026
2f840c0
Declare props that Twig usage passes to editor/listing fields
Vondry Jul 7, 2026
d65ea77
Fix console errors and warnings
Vondry Jul 7, 2026
c0560d7
Fix accessibility issues across Vue components
Vondry Jul 7, 2026
05b1380
Fix Vue test suites broken by accessibility fixes
Vondry Jul 7, 2026
6dcae56
Use existing dashboard logo asset
Vondry Jul 7, 2026
7450e40
Keep media crop values numeric
Vondry Jul 7, 2026
699254a
Loosen toolbar logo test assertion
Vondry Jul 7, 2026
fd2c12a
chore: enabled unit test coverage in ci
Vondry Jul 7, 2026
e1f8e61
Tighten TypeScript compiler checks
Vondry Jul 7, 2026
4a5c159
Fix toolbar logo in Vitest
Vondry Jul 7, 2026
37b95ad
Fix Date field flashing validation popup on mount
Vondry Jul 7, 2026
3778f43
Add regression guards for slug scoping and collection reorder
Vondry Jul 7, 2026
fd7d02f
Fix lint issues
Vondry Jul 7, 2026
acb148c
Improve Vue component test coverage
Vondry Jul 7, 2026
ebbbb28
chore: updated dev deps
Vondry Jul 9, 2026
ccafced
Fix backend asset packages
Vondry Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/assets_code_analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ jobs:
- name: Lint on SCSS files
run: npm run stylelint

- name: UI Unit Tests
run: npm run test:coverage

- name: Type Check
run: npm run typecheck

- name: Build for production
run: npm run build

Expand Down
34 changes: 32 additions & 2 deletions .stylelintrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,39 @@
"stylelint-config-standard",
"stylelint-config-recommended-scss"
],
"syntax": "scss",
"customSyntax": "postcss-scss",
"ignoreFiles": [
"assets/scss/vendor/**/*.scss"
],
"plugins": ["stylelint-scss"],
"rules": {
"no-descending-specificity": null
"alpha-value-notation": null,
"color-function-alias-notation": null,
"color-function-notation": null,
"custom-property-pattern": null,
"declaration-block-no-redundant-longhand-properties": null,
"font-family-name-quotes": null,
"function-url-quotes": null,
"import-notation": null,
"keyframes-name-pattern": null,
"no-descending-specificity": null,
"no-invalid-position-at-import-rule": null,
"number-max-precision": null,
"property-no-deprecated": null,
"property-no-vendor-prefix": null,
"scss/at-extend-no-missing-placeholder": null,
"scss/comment-no-empty": null,
"scss/load-no-partial-leading-underscore": null,
"scss/load-partial-extension": null,
"scss/no-global-function-names": null,
"scss/operator-no-unspaced": null,
"selector-attribute-quotes": null,
"selector-class-pattern": null,
"selector-id-pattern": null,
"selector-not-notation": null,
"shorthand-property-no-redundant-values": null,
"unit-no-unknown": null,
"value-keyword-case": null,
"value-no-vendor-prefix": null
}
}
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,20 @@ Released: Not yet released

- The default query limit can now be configured. Thanks @Vondry! (https://github.com/bolt/core/pull/3727)


## 6.1.4

Released: 2026-07-04

This release includes several security-related fixes. Our thanks to @Vondry and @0xmgaye for identifying these issues and disclosing them to us responsibly! 👏🙏

### 🔐 Security related changes

- Fix SQL injection in ListFormatHelper (@Vondry)
- Prevent SSRF in upload-from-URL and embed endpoint (@Vondry)
- Filter unpublished/viewless content from the public Relation API (@Vondry)
- Block open redirect on login endpoint (@0xmgaye, fix by @bobvandevijver)

## 6.1.3

Released: 2026-05-16
Expand Down
5 changes: 4 additions & 1 deletion assets/js/app/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,10 @@ $(document).ready(function () {
/*
** Copy text to clipboard. Used in filemanager actions.
*/
new ClipboardJS('*[data-clipboard-text]');
const clipboard = new ClipboardJS('*[data-clipboard-text]');
clipboard.on('success', function (event) {
event.clearSelection();
});
/* End of copy text to clipboard */

/*
Expand Down
50 changes: 16 additions & 34 deletions assets/js/app/editor/Components/Checkbox.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
:checked="value"
type="checkbox"
:readonly="readonly"
@change="liveValue = $event.target.checked"
@change="liveValue = ($event.target as HTMLInputElement).checked"
/>
<label class="custom-control-label form-label" :for="name">{{ label }}</label>
<label class="custom-control-label form-label" :for="id">{{ label }}</label>

<!-- This hidden input is actually what gets submitted. It submits "true" when checked, and "false" when not checked -->
<!-- It exists because we need an "unchecked" value submitted. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox -->
Expand All @@ -19,36 +19,18 @@
</div>
</template>

<script>
export default {
name: 'EditorCheckbox',
props: {
value: {
type: Boolean,
},
name: {
type: String,
},
id: {
type: String,
},
required: {
type: Boolean,
},
readonly: {
type: Boolean,
},
label: {
type: String,
},
mode: {
type: String,
},
},
data() {
return {
liveValue: this.value,
};
},
};
<script setup lang="ts">
import { ref } from 'vue';

const props = defineProps<{
value?: boolean;
name?: string;
id?: string;
required?: boolean;
readonly?: boolean;
label?: string;
mode?: string;
}>();

const liveValue = ref(props.value);
</script>
Loading
Loading