noeldemartin / umai Goto Github PK
View Code? Open in Web Editor NEWOffline-first Recipes Manager
Home Page: https://umai.noeldemartin.com
License: GNU General Public License v3.0
Offline-first Recipes Manager
Home Page: https://umai.noeldemartin.com
License: GNU General Public License v3.0
If I paste a link to a recipe directly in a browser where I am not logged in, I get 404: Not Found with a link to go home.
Instead of going home, logging in, and trying again, it would be useful to be offered to login directly on that page.
This assumes the link is indeed valid - if the user has actually pasted a link from someone else's pod instead of using the viewer, then this wouldn't work. Given that the url does not encode any information about the pod, logging in is probably the only way to tell anyway.
After login with another solid pod I was able to create a cookbook but I was not able to save a recipe, also I kept on being disconnected. Any idea why?
Error details:
Error: https://dietercasier.solidcommunity.net/profile/card#me is not a valid webId.
at https://umai.noeldemartin.com/assets/main.8f09a7a2.js:113:43062
at f (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:43188)
at Generator._invoke (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:42976)
at Generator.next (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:43617)
at Gw (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:62078)
at a (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:62284)
When someone creates a new recipe with an uploaded image and makes it public, it will work properly and change both the recipe and the image's permissions. But If the image is updated once the recipe is already public, it won't add the public permissions to new images.
Until this is fixed, a workaround is to make a recipe private and then public again. Or it's always possible to change document/file permissions using other apps.
At the moment, Umai only supports managing permissions using WAC.
The main reason for that is that I've written the communication with the POD myself, and I still haven't gotten around to read the ACP spec (and it looks a lot more complicated than WAC).
As far as I know, ACP is only used by ESS, and the spec is still a draft. So, for the time being, I don't think I'm going to implement it. But I'll leave this issue open in order to track its progress (if any).
This is not necessarily a problem, though. The point of Solid is that you can combine applications to get different capabilities. And I would think that most POD providers have an interface capable of editing permissions for the protocol they are using. If not, I think you should ask your provider for this feature, because in my opinion that's a core necessity for Solid users (regardless of which apps they are using).
If you're going to update permissions outside of Umai, everything you need to know is that publicly-readable recipes will be considered "Unlisted"; and they will be considered "Public" if they point to a schema:ItemList
with a purl:isReferencedBy
property.
Basically, if you enter any Chinese title, it will refuse to save.
For example, put ๅ่ฑ
(potato) there, and click save. Error will show up:
Something went wrong, but it's not your fault. Try again!
Opening details gives:
Failed getting parent directory from 'solid://recipes/'
... (lots of seemingly stack trace text)
But if the title starts with something else, it will not be a problem. Also, turning a title of an existing recipe can save successfully.
Chinese in other fields don't seem to be a problem, at least for now.
I assume this is due to some mechanism related to determining the ID of the recipe node in RDF?
At the moment, you can only share recipes or recipe lists using the viewer. It would be nice if container urls worked as well, reading public recipes (or even private recipes if the user is logged in), as suggested by @timbl.
At the moment, when loading a recipe container there is no easy way of:
I propose that Umai could add a triple to the container metadata:
<> rdf:type ex:RecipeContainer.
This would directly address (1), and allow (2) and (3) to be inferred.
Here are some alternatives:
Using a shape tree assignment: in my opinion this would increase the barrier to interoperability due to its complexity - using a class is substantially simpler. The two could easily co-exist in future, with the shape tree being optional.
Using existing type registrations: this is already more complex as it requires following the path ?container^solid:instance container!solid:forClass and checking that this is equal to schema:Recipe. In addition, it assumes that preferences have been loaded. This then means that it does not yet resolve the issue that when dereferencing the container, one doesn't know it contains recipes.
<#Recipes>
a solid:TypeRegistration;
solid:forClass schema:Recipe;
solid:instanceContainer <https://example.com/private/cookbook/>.
Given the nature of Solid, it is of course possible for a user to use any of these solutions manually now already without Umai support, but Umai is the frontrunner and nicest product in this space, so it would be good to have Umai on board with any strategy.
[Please, explain here what you were trying to do when this error appeared]
Connected to a new account on solidcommunity.net. Accepted the /cookbook/ suggestion to create a cookbook and pressed continue, got this:
Stack trace:
SoukaiError: Error creating container at https://little-ducky.solidcommunity.net/cookbook/, returned 500 status code
at Proxy.value (https://umai.noeldemartin.com/assets/main.1bcb845b.js:99:9402)
at Proxy.<anonymous> (https://umai.noeldemartin.com/assets/main.1bcb845b.js:99:2495)
at tryCatch (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.f4aaecaa.js:4:823)
at Generator.invoke [as _invoke] (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.f4aaecaa.js:4:3070)
at Generator.next (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.f4aaecaa.js:4:1445)
at asyncGeneratorStep (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.f4aaecaa.js:5:13881)
at _next (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.f4aaecaa.js:5:14106)
If app can be configured through uri, by providing storage root, user's webid, etc, then that can serve as an api for integrating, launching the app from many contexts with desired configuration.
Thanks for your work.
This is especially annoying if you import a recipe from the web and then want to add an image. The titles are often quite long and already set from the import. The image upload button is right behind the text and clicking on it will just set the cursor in the text. The button itself is not reachable.
Well, I just published my Ramen recipe and I realized a couple of things are not working as they should ๐ . In particular:
Some websites do not provide JSON-LD data of their recipes and one has to copy the text by hand to Umai.
To simplify this it would be a huge improvement if umai supports adding multiple items (ingredients or instructions) at once.
E.g. if you copy a whole list of incredients they are separated by line break in the clipboard. When pasting them into umai, instead of pasting the whole text in one list item, umai should create a list item for each line in the clipboard.
A similar feature can e.g. be found in Trello checklists and I like it a lot there.
I just tagged the v0.1.0-beta.0
version, and the app is ready for production! You can start using it at umai.noeldemartin.com.
However, there are still some rough edges I'd like to polish before the initial release. I have started using it myself to manage my recipes, and it shouldn't be long before I release it for real. In part, it will depend on the feedback I get about this version. Do you think it's ready?
If you want, I encourage you to start using it and share your feedback in this issue. But I don't think it's ready for prime time, so I would refrain from sharing it with others.
Here's a list of things I'd like to do before the release:
soukai
, @noeldemartin/utils
, etc.).PS: If you want to try the bleeding edge version, you can get it at umai.netlify.app.
Congratulations @NoelDeMartin. Umai has reached 0.1.0. just recently and I'm already able to make good use of it. I'm racking my brains in a panic trying to figure out how to print this to PDF. I exported the json-ld and made use of python3-pygmatize to hightlight the json fields and then was able to output it to some htmo by following the directions here. But in my rush to get this to the chef of our restaurant I thought I'd reach out on this Saturday (no doubt a day off for most) and see if anyone has a quick fix. Also, I thought it would be a nice feature to have in general, so perhaps it's already in the pipeline.
Another enhancement I'm hoping for is functionality that allows pictures for the recipes. If I knew how to program this myself and if I weren't in a tizzy I'd offer this as my contribution. But for now I can only offer it as a suggestion.
After login with my solid pod I was not able to create a cookbook, do you know what went wrong?
Error details:
Error: Can't create type index without a writable profile document
at https://umai.noeldemartin.com/assets/main.8f09a7a2.js:113:46495
at f (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:43188)
at Generator._invoke (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:42976)
at Generator.next (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:43617)
at Gw (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:62078)
at a (https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:62284)
at https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:62345
at new Promise (<anonymous>)
at https://umai.noeldemartin.com/assets/noeldemartin-utils.esm.8b1f171f.js:1:62224
at uh (https://umai.noeldemartin.com/assets/main.8f09a7a2.js:113:47209)
https://umai.noeldemartin.com/recipes/zuumlrcher-geschnetzeltes-cut-meat-zuumlrich-style
Zürcher Geschnetzeltes (Cut Meat Zürich Style)
due to some problem with character encodings when it was imported from
https://www.internationalcuisine.com/zurich-style-veal-in-cream-sauce/
Very nice work! In particular I wanted to highlight that you have great interfaces error handling in Solid.
I have tried this against ESS and CSS. Against CSS this runs very smoothly; but when I try and use this with an ESS instance (using PodSpaces https://login.inrupt.com/) then I get the "Something went wrong" page with the error.
Error: User profile went missing
refreshUserProfile@https://umai.noeldemartin.com/assets/main.952338c0.js:113:302948
I clicked the "Send Error Report" button so hopefully that means you also recieved something in sentry.
I also tried clicking "Report in GitHub" but that just seems to redirect back around to the "Something went wrong!" page after a few redirects.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.