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; @@ -225,24 +250,26 @@ const MetadataEditor = createClass({ render : function(){ return
+

Brew

+
this.handleFieldChange('title', e)} />
-