april / decklist

The code behind decklist.org, which generates DCI Registration Sheets.
https://decklist.org/
MIT License
45 stars 20 forks source link

permalinks: add a few bits to what's accepted in a URL, populate history events, add a copy to clipboard button #57

Open cdanis opened 5 years ago

cdanis commented 5 years ago

Extend permalinks to support deck names and designers. Add a permalink href on the page, auto-populated by making edits.

chrisajimenez commented 5 years ago

How is this coming along? I'm happy to help out here, the ability to generate a permalink would be awesome.

cdanis commented 5 years ago

How is this coming along? I'm happy to help out here, the ability to generate a permalink would be awesome.

Sorry, realized a bunch of this was harder than I expected, then started interviewing for a new job, which I then got (great for everything except this PR ;)

The larger bit of functionality I had wanted to implement -- QR codes that link to a list's permalink, and with said QR code printed on the page, so it's easy to take last week's printout and tweak a few things -- require the use of a link shortener service to get reasonable QR codes. This, of course, brings up a ton of questions: which link shortener? Can decklist.org host its own? Do we need to use an external service that provides an API? If so, how do we manage API keys? etc.

I still want to finish up this PR, because I think permalinks are a useful thing in general, but wasn't sure what the best way was to figure out any of the above stuff...

chrisajimenez commented 5 years ago

Congratulations on the new job! 🔥 🔥

I think it is great that you split up that work into two parts. For now, I think being able to generate the permalink and save it manually somewhere is very useful. There is a popular library, clipboard.js that allows copying to clipboard, as @Nightfirecat suggested. I'm happy to try and implement that on top of this pr, if you don't mind?

FWIW I've been using your generatePermalink function manually in the console to create the links myself, so that works great!

Nightfirecat commented 5 years ago

I don't know that a library would be needed--copying to clipboard using the native Clipboard API is well-supported among major browsers and likely wouldn't need any polyfills to be achieved.

cdanis commented 5 years ago

I believe this is good to go. As requested, it's a button, and I also figured out the History API enough for it to Do The Right Thing on any modification, as far as I can tell.

Demo running at https://decklist.nucleosynth.space/

cdanis commented 5 years ago

friendly ping :)

cdanis commented 5 years ago

@Nightfirecat @april any chance you'll be able to take a look soon?

Once this is merged I'd like to modify PDF output to include a hyperlink to the permalink URL, which is really useful for 'editing' a PDF you saved the other week. I have this code mostly ready-to-go.

april commented 5 years ago

This looks good, but would you be willing to take out the stuff that isn't related to this specific change, e.g. the parts about pulling down the cards and parsing them?

cdanis commented 5 years ago

Are you talking about 81c6883, e8c0353, and ea08763? I think those are appearing here as a result of a merge commit. I don't think they will cause any effect if this is closed as a rebase atop your master branch.

cdanis commented 5 years ago

Oh. Hm. Now I see what you're talking about, and I'm not sure how that happened. I'll fix.

cdanis commented 5 years ago

I've rebased this on your current gh-pages and I think it's good to go now.