From 541c166863fa785cbb855e8af33dae1fca501de0 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Fri, 26 Jan 2024 14:03:32 +0000 Subject: [PATCH] Error handling for bag and recipe handling --- .../MultiWikiServer Administration.tid | 44 ++++++++++++++++--- .../multiwikiserver/admin-ui/Styles.tid | 6 +++ 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/plugins/tiddlywiki/multiwikiserver/admin-ui/MultiWikiServer Administration.tid b/plugins/tiddlywiki/multiwikiserver/admin-ui/MultiWikiServer Administration.tid index 309dc29c3..75140884f 100644 --- a/plugins/tiddlywiki/multiwikiserver/admin-ui/MultiWikiServer Administration.tid +++ b/plugins/tiddlywiki/multiwikiserver/admin-ui/MultiWikiServer Administration.tid @@ -1,10 +1,20 @@ title: MultiWikiServer Administration -\procedure createBag(name,description) +\procedure createBag(name,description,errorTiddler) \procedure completion-createBag() \import [subfilter{$:/core/config/GlobalImportFilter}] - <$action-log msg="In completion-createBag"/> - <$action-log/> + <$action-log + status=<> + statusText=<> + error=<> + data=<> + headers=<> + /> + <%if [match[]] %> + <$action-setfield $tiddler=<> text=""/> + <%else%> + <$action-setfield $tiddler=<> text=<>/> + <%endif%> \end completion-createBag <$action-sendmessage $message="tm-http-request" @@ -12,6 +22,7 @@ title: MultiWikiServer Administration method="PUT" body=`{"description":"${ [encodeuricomponent[]] }$"}` oncompletion=<> + var-errorTiddler=<> /> \end createBag @@ -35,12 +46,20 @@ title: MultiWikiServer Administration <$edit-text tiddler="$:/state/NewBagDescription" tag="input" placeholder="(description)" class="mws-form-field-input"/> +
+ <%if [[$:/state/NewBagError]get[text]else[]!match[]] %> +
+ <$text text={{$:/state/NewBagError}}/> +
+ <%endif%> +
<$button class="mws-form-button"> <$transclude $variable="createBag" name={{$:/state/NewBagName}} description={{$:/state/NewBagDescription}} + errorTiddler="$:/state/NewBagError" /> Create Bag @@ -48,23 +67,26 @@ title: MultiWikiServer Administration \end createBagButton -\procedure createRecipe(name,bag_names,description) +\procedure createRecipe(name,bag_names,description,errorTiddler) \procedure completion-createRecipe() \import [subfilter{$:/core/config/GlobalImportFilter}] - <$action-log msg="In completion-createRecipe"/> - <$action-log/> + <%if [match[]] %> + <$action-setfield $tiddler=<> text=""/> + <%else%> + <$action-setfield $tiddler=<> text=<>/> + <%endif%> \end completion-createRecipe \procedure emptyArray() [] \function createRecipeJson() [enlist-input[]] :reduce[!match[]elsejsonset,] \end createRecipeJson - <$action-log message="Sending" body=<>/> <$action-sendmessage $message="tm-http-request" url=`/wiki/$(name)$/recipes/$(name)$` method="PUT" body=`{"bag_names":${ [] }$,"description":"${ [encodeuricomponent[]] }$"}` oncompletion=<> + var-errorTiddler=<> /> \end createRecipe @@ -94,6 +116,13 @@ title: MultiWikiServer Administration <$edit-text tiddler="$:/state/NewRecipeDescription" tag="input" placeholder="(description)" class="mws-form-field-input"/>
+
+ <%if [[$:/state/NewRecipeError]get[text]else[]!match[]] %> +
+ <$text text={{$:/state/NewRecipeError}}/> +
+ <%endif%> +
<$button class="mws-form-button"> <$transclude @@ -101,6 +130,7 @@ title: MultiWikiServer Administration name={{$:/state/NewRecipeName}} bag_names={{$:/state/NewRecipeBagNames}} description={{$:/state/NewRecipeDescription}} + errorTiddler="$:/state/NewRecipeError" /> Create Recipe diff --git a/plugins/tiddlywiki/multiwikiserver/admin-ui/Styles.tid b/plugins/tiddlywiki/multiwikiserver/admin-ui/Styles.tid index d522eb01f..3eed1717a 100644 --- a/plugins/tiddlywiki/multiwikiserver/admin-ui/Styles.tid +++ b/plugins/tiddlywiki/multiwikiserver/admin-ui/Styles.tid @@ -12,6 +12,12 @@ Styles specific to the full screen layout } +.mws-form-error { + border: 2px solid red; + padding: 1em; + margin: 1em; +} + .mws-wiki-card { display: flex; margin: 1em 0;