diff --git a/changelog.md b/changelog.md
index 74c8dba99..452705f00 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,13 +1,17 @@
```css
h5 {
font-size: .35cm !important;
- margin-top: 0.3cm;
}
.page ul ul {
margin-left: 0px;
}
+.page .taskList {
+ display:block;
+ break-inside:auto;
+}
+
.taskList li input {
list-style-type : none;
margin-left : -0.52cm;
@@ -36,15 +40,96 @@ pre {
margin-top : 0.1cm;
}
+.page ul + h5 {
+ margin-top: 0.25cm;
+}
+
+.page p + h5 {
+ margin-top: 0.25cm;
+}
+
.page .openSans {
font-family: 'Open Sans';
font-size: 0.9em;
}
+
+
```
## changelog
For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery).
+### Saturday 10/12/2022 - v3.4.2
+{{taskList
+
+##### Jeddai
+
+* [x] Fix broken tags editor
+
+* [x] Reduce server load to fix some saving issues
+
+Fixes issues [#2322](https://github.com/naturalcrit/homebrewery/issues/2322)
+
+##### G-Ambatte
+
+* [x] Account page help link for Google Drive errors
+
+Fixes issues [#2520](https://github.com/naturalcrit/homebrewery/issues/2520)
+}}
+
+### Monday 05/12/2022 - v3.4.1
+{{taskList
+
+##### G-Ambatte
+
+* [x] Fix Account page incorrect last login time
+
+Fixes issues [#2521](https://github.com/naturalcrit/homebrewery/issues/2521)
+
+##### Gazook
+
+* [x] Fix crashing on iOS and Safari browsers
+
+Fixes issues [#2531](https://github.com/naturalcrit/homebrewery/issues/2531)
+}}
+
+### Monday 28/11/2022 - v3.4.0
+{{taskList
+
+##### G-Ambatte
+
+* [x] Fix for Chrome v108 handling of page size
+
+Fixes issues [#2445](https://github.com/naturalcrit/homebrewery/issues/2445), [#2516](https://github.com/naturalcrit/homebrewery/issues/2516)
+
+* [x] New account page with some user info, at {{openSans **USERNAME {{fa,fa-user}} → ACCOUNT {{fa,fa-user}}**}}
+
+Fixes issues [#2049](https://github.com/naturalcrit/homebrewery/issues/2049), [#2043](https://github.com/naturalcrit/homebrewery/issues/2043)
+
+* [x] Fix "Published/Private Brews" buttons on userpage
+
+Fixes issues [#2449](https://github.com/naturalcrit/homebrewery/issues/2449)
+
+##### Gazook
+
+* [x] Make autosave default on for new users
+
+* [x] Added link to our FAQ at {{openSans **NEED HELP? {{fa,fa-question-circle}} → FAQ {{fa,fa-question-circle}}**}}
+
+* [x] Fix curly blocks freezing with long property lists
+
+Fixes issues [#2393](https://github.com/naturalcrit/homebrewery/issues/2393)
+
+* [x] Items can now be removed from {{openSans **RECENT BREWS** {{fas,fa-history}} }}
+
+Fixes issues [#1918](https://github.com/naturalcrit/homebrewery/issues/1918)
+
+* [x] Curly injector syntax `{blue}` highlighting in editor
+
+Fixes issues [#1670](https://github.com/naturalcrit/homebrewery/issues/1670)
+
+}}
+
### Thursday 28/10/2022 - v3.3.1
{{taskList
@@ -90,7 +175,6 @@ Fixes issues [#2135](https://github.com/naturalcrit/homebrewery/issues/2135)
Fixes issues [#2427](https://github.com/naturalcrit/homebrewery/issues/2427)
-
##### Gazook:
* [x] Several updates to bug reporting and error popups
@@ -140,6 +224,10 @@ Fixes issues [#2317](https://github.com/naturalcrit/homebrewery/issues/2317), [
Fixes issues: [#1797](https://github.com/naturalcrit/homebrewery/issues/1797), [#2315](https://github.com/naturalcrit/homebrewery/issues/2315), [#2326](https://github.com/naturalcrit/homebrewery/issues/2326), [#2328](https://github.com/naturalcrit/homebrewery/issues/2328)
}}
+
+
+\page
+
### Wednesday 31/08/2022 - v3.2.1
{{taskList
@@ -166,8 +254,6 @@ Fixes issues [#2317](https://github.com/naturalcrit/homebrewery/issues/2317), [
Fixes issues: [#2301](https://github.com/naturalcrit/homebrewery/issues/2301), [#2303](https://github.com/naturalcrit/homebrewery/issues/2303), [#2121](https://github.com/naturalcrit/homebrewery/issues/2121)
}}
-\page
-
### Saturday 27/08/2022 - v3.2.0
{{taskList
diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx
index 965b42873..75ab08de4 100644
--- a/client/homebrew/editor/editor.jsx
+++ b/client/homebrew/editor/editor.jsx
@@ -139,10 +139,10 @@ const Editor = createClass({
// Highlight injectors {style}
if(line.includes('{') && line.includes('}')){
- const regex = /(?{
+ if(val[fn]) {
+ val[fn](...args);
+ }
+};
+
const MetadataEditor = createClass({
displayName : 'MetadataEditor',
getDefaultProps : function() {
@@ -22,6 +29,7 @@ const MetadataEditor = createClass({
editId : null,
title : '',
description : '',
+ thumbnail : '',
tags : [],
published : false,
authors : [],
@@ -51,11 +59,27 @@ const MetadataEditor = createClass({
},
handleFieldChange : function(name, e){
- this.props.onChange({
- ...this.props.metadata,
- [name] : e.target.value
- });
+ // load validation rules, and check input value against them
+ const inputRules = validations[name] ?? [];
+ const validationErr = inputRules.map((rule)=>rule(e.target.value)).filter(Boolean);
+
+ // if no validation rules, save to props
+ if(validationErr.length === 0){
+ callIfExists(e.target, 'setCustomValidity', '');
+ this.props.onChange({
+ ...this.props.metadata,
+ [name] : e.target.value
+ });
+ } else {
+ // if validation issues, display built-in browser error popup with each error.
+ const errMessage = validationErr.map((err)=>{
+ return `- ${err}`;
+ }).join('\n');
+ callIfExists(e.target, 'setCustomValidity', errMessage);
+ callIfExists(e.target, 'reportValidity');
+ }
},
+
handleSystem : function(system, e){
if(e.target.checked){
this.props.metadata.systems.push(system);
@@ -64,6 +88,7 @@ const MetadataEditor = createClass({
}
this.props.onChange(this.props.metadata);
},
+
handleRenderer : function(renderer, e){
if(e.target.checked){
this.props.metadata.renderer = renderer;
@@ -228,21 +253,21 @@ const MetadataEditor = createClass({
this.handleFieldChange('title', e)} />
-
this.handleFieldChange('thumbnail', e)} />