Giter Club home page Giter Club logo

storedown's People

Contributors

foxusa avatar gaby avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

storedown's Issues

Bug -- Import/Export appears to be broken

I have not been able to successfully import/export (Not a huge deal as I can just backup couchdb instead, but having manual backups might be nice once I get thousands of items...). Currently YAML export does not work, JSON export does work.

It looks like the function/method for the yaml.safeDump should now just be yaml.dump. If you edit your:
ImportExport.vue

And update yaml.safeDump to simply yaml.dump

        saveAs(new Blob([yaml.dump(errors)], { type: 'text/plain;charset=utf-8' }), 'importErrors.yml')
        saveAs(new Blob([yaml.dump(data.rows)], { type: 'text/plain;charset=utf-8' }), `${this.exportFileName}.yml`)

However, imports still arent working, but now yaml export is working, and now allows you to download an error file.
I added this change here:
#37

Moving Boxes

Is there a way to move a box from one location to another besides yaml export and search/replace?

Bug - Special password characters break storedown connection strings.

Was having a hell of a time with testing and making this work. I randomly generated a password for "couch" which was

LJvDF9%fmQP9w^R!vpr#

But i would just get the "initial replication..." message permanently. I ended up making a random password with just letters and numbers (Upper-case, lower and numbers) and it all worked instantly, and the DB started populating correctly.

I believe one of the symbols (I would guess the pound?) is breaking the javascript somewhere.

Filter and order item list

Being able to filter and order on columns in the item list (similar to what excel does) would be great.

Mass edit

Being able to edit multiple item by selecting them in the item list would be nice.

Suggestion - Make the item tree into a tree table

Sorry for all the posts. But i love how you handle different items/locations. I think it is simple, smart and a great way to keep it customizable! I have a rather large project i am about to tackle so I am doing a lot of testing.

I was thinking that making your "item" tree into an actual tree diagram might be useful. It could save on clicks and allow for an entire overview.

https://webix.com/widget/treetable/
https://www.jqueryscript.net/demo/Minimal-Tree-Table-jQuery-Plugin-For-Bootstrap-TreeTable/
https://www.jqueryscript.net/demo/jQuery-Plugin-For-Displaying-A-Tree-Of-Data-In-A-Table-treetable/

I also noticed that it doesnt seem to sort the items in a tree. Would be a bit better if all my "stacks" were together.
image

I hope you dont see all of these as negative critiques! As I said I love have you are handling your data. I think it makes a lot of sense and I am excited to keep building out your tool!

Feature Request: Pre-filled picker lists for keys that use a list type

If you have a key called "Manufacturer", it would be great to have the option of prefilling a list of manufacturers you know will appear in the inventory. When creating new items, a drop-down list could be utilized when that field is selected, cutting down on time it takes to add new entries.

Suggestion -- Location autocomplete/suggestions

I am about to tackle a large and messy storage room. I was trying to plan out the best way to do this. The location field seems to work well, but the idea of repetitively typing in similar location strings seems repetitive and superfluous.

I think an autocomplete suggestion solution would work very well here. I have used this library in the past:
https://tarekraafat.github.io/autoComplete.js/#/

Basically pulling all of the existing locations through couch db, and adding that as an array of strings to the autocomplete library, it would make inputting a lot of items a lot easier. For example, if i have multiple initial locations, and I am reorganizing a storage closet (Lets call it Storage Closet 1), simply typing "Storage Closet 1" would give me all of the possible locations in that specific location, and one could simply click it.

I dont do a whole lot in javascript, and even I found this library stupidly easy to use, and I think it could add a lot of utility to StoreDown with very minimal modifications. For my use case, I am importing a moderately large list of users from LDAP (About 1000), and I have an email/username autocomplete. I load the entire list from an API I made and load it into the website and it is quite snappy.

Also thinking about all of these containers and Items I am about to create and go through, having a "use last location" button or maybe after making an asset having a "Add another" which defaults to the previous location could be helpful as well.

stuck on "Initial replication in progress..." when connecting to the database

Perhaps user error, and I have never used couch DB before. I am deploying via kubernetes, and I am not using the --link flag as this is deprecated.

Using curl, I can access the couchdb via http or HTTPS using the username/password I setup. I also verified that this works via CURL from the StorDown container itself, so I know things are connected/working.

After setting up the couchdb connection information, though, a modal pops up that says:
Initial replication in progress...

And it never goes away. So I am not sure what's going on here. Is there more to setup the DB itself other than just creating it through the web gui? Also, I noticed the default DB name in the StoreDown gui defaults to "StoreDown", but couchdb doesnt allow uppercase letters.

Also, while troubleshooting i noticed that kubectl logs couchdb (or docker logs couchdb) returns nothing, but if you set the logging the stderr, it logs for docker as appropriately.

[log]
writer = stderr

While note in the docs for storedown, you should mount your configuration settings as well:

/opt/couchdb/etc/local.d

This not only lets you preserve them, but you can also add these custom settings using vi/vim/nano/whatever easily as well.

--- Update
Still having issues, but it seems that it might be more about the system setup and not necessarily the DB itself. I get this error no matter what I try to do:
image

I think it might be because I am adding HTTPS via a traefik ingress and not the default HTTPS functionality, the JS is probably trying to do HTTP calls instead of HTTPS. Is there a way to force HTTPS calls without configuring the container for HTTPS?

Persist pagination

When I change pagination , click on an item and go back to the item list it goes back to 10 items /page. Having persistency here would be nice.

Fix prefix case sensativity

Throughout the app we don't care about case. So when you enter box01 or Box01 it should find the same prefix.

Suggestion -- Add a simple query language to be able to filter specific column values from List view

I took a stab at this, and it works quite well I think. I am not sure if I did the pull correctly though. I havent done many, sorry about that!

#38

I added a search input on the List.vue page which changes the page to the same URL with a GET variable. I also added some additional methods under the loadData javascript function to add some queries. It also is smart enough where if you dont use the query syntax ( I.E manufacturer:string or location:string, and just type in string, it defaults to searching the name property)
https://github.com/icsy7867/StoreDown/blob/itemTreeSearch/src/views/List.vue
This could also be implemented with your "search" functionality as well.

It seems pretty useful. You can search specifically for a string in each column. So if you want to search for specific Tags, Names, Locations, Price Paid, Manufacturer, acquiredFrom, etc... You can easily do this. However only one at a time! Would be neat to be able to do something like location:house manufacturer:dewalt. But that would add WAY more complexity.

One caveat, though, is this is done in the DATA variable via javascript in the browser. It would be more efficient to let couchDB handle this, but you would need to add variables as indexes, and update all of your database functions to include some sort of search. However, even with 5000 items, I think this would still be decently quick.

--Examples --
I can use:
acquiredfrom:Home Depot
image

Which is helpful, as you entered data as "The Home Depot" and "Home Depot".

Or:
tags:appliance
image

Or:
location:house 1
image

Allow input of ID for new item

once I got couchdb working, I've been having a real good time trying to get myself set up with the basics. Thank you for making the promise of random storage and PWAs finally come true.

Something I noticed with my workflow is that it's easier to pregenerate QR code labels with UUIDs and apply them to items, since my access to a label printer can be intermittent. I can set disabled: false, of course, but this runs the risk of accidentally duplicating an item with an unintentional ID edit. I'd like to allow manual input of IDs for new items only, but I don't think this is currently possible to do with the config (although I could be wrong about this, my webdev skills are nonexistent).

edit: bonus shot of the label design I'm using
PXL_20220516_141142123 MP~2

Hooks

Have two hook types:
1 Notify
Where the rest call is make but return is ignored. The call can fail without harming the app
2 Transform
Where the app waits for the return and uses its output.

Suggestion -- Add table sort

This is built into your tools already and it could be quite helpful for sorting by location or item name.

After doing a test, you simply have to update your List.vue file and change the sortable from false to true:

            this.headers.push({
              text: item.displayName,
              value: item.name,
              align: 'left',
              item: item, // So you can access all the parameters. Above are given in the data table support format.
              sortable: true

Added this change in:
#37

Doesn't seem to actually talk to the database

I set it up on my Synology (I can't use docker-compose but I followed the instructions, btw you missed the step on actually creating the database), but I see no evidence that StoreDown ever communicates with CouchDB, it doesn't throw any error messages but so far the database has literally nothing in it.

UPDATE: I'm already moving onto a different solution.

DB Bug: Items added that use boolean columns, end up in 1 of 3 states (true, false, null)

A boolean (since it uses a toggle switch) that is not toggled on, should always default to false.
Screenshot 2023-11-12 at 8 46 36 PM

In the screenshot attached, there are 3 boolean columns: Factory Second, Retired, and Bagged.

      - name: factory_second
        displayName: Factory Second?
        type: boolean
      - name: retired
        displayName: Retired?
        type: boolean
      - name: bagged
        displayName: Bagged?
        type: boolean

Please add showinList as a flag.

With the way I have configured StoreDown, this will always=true, so I'd like to hide it in list view, if possible (i don't use tree view);
Screenshot 2023-11-11 at 11 49 14 PM

Here's a small snippet from the data I am working with, and showing the unhidable column, FWIW;
Screenshot 2023-11-11 at 11 49 28 PM

Trouble getting docker image to work

I set up couchdb config as described in th einstall doc, When I try to set the connection in StoreDown (using the ip of the couchdb instance, port 5984 and DB name "StoreDown") I get the message "Replication complete" after a while.
But when I try to add a new Item I just get an empty "Item Editor" page with a Save and Discard Button. I also tried importing the demo data which gave me the message that 5 Items were imported, but there were no items in Item List etc.
Neither the StoreDown container nor the couchdb container give me any error messages (in docker logs) during the whole process.
Any help would be appreciated!

Can it possible of add a field for Image.

I have different types of small boxes. Just by writing their name is hard to find them back. Can it be possible to put images and see them as thumbnails in search?

I am not familiar with vue and CouchDB.

I am using https://mementodatabase.com/ now. This is the only feature that is preventing me from switching to StoreDown.

Dropdown lists.

Is it possible to set up drop down lists that I could then make visible in the tree view? My use case would be something like Christmas light string. I could set up a list of length/number of lights and use the drop down instead of typing it. That would avoid issues where I might type "50ft" and my wife my type "50 ft" or "50'". Then in the tree view I wouldn't see all three.
Thank you for developing this. I've tried a bunch and at StoreDown is by far the one that meets my needs the best.
:-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.