ficlatte / main

Ficlatté website main code
GNU Affero General Public License v3.0
2 stars 2 forks source link

Create prequel/sequel links between stories that already exist #26

Open ethel-t-frog opened 7 years ago

ethel-t-frog commented 7 years ago

Sometimes, a user forgets to connect stories as they are being written. At other times, this link cannot be made at creation time, eg. if a story is being entered into a challenge or the user has taken a prompt. A feature I have always wanted is to be able to link stories that have already been written. This is not entirely simple, but would be a valuable feature.

Best guess would be a copy/paste-style system where a user can go to a story and "copy", then go to their prequel/sequel story and hit "paste" to create the link. The UI could be confusing, though, and would probably need some real proper help text.

HSAR commented 7 years ago

I potentially envision a user interface that is a modification of the current "Write a Sequel" button. There could be a link that says "Add a Sequel", where you can give a story ID.

ethel-t-frog commented 7 years ago

I'm not really in favour of anything that involves the user having to remember a story ID themselves, thus the "remember story" button idea.

HSAR commented 7 years ago

From a HCI perspective, the "remember story" idea is a completely new mental model, though.

stitzelj commented 7 years ago

Honestly, I think the UI interface would be pretty simple to build. There's a couple of ways to go about it, but I think the easiest to implement would be to add a field to a story editor that asks if the user would like to include the story in a challenge. If yes, the field would present a list of currently open challenges and they can select the one they'd like to enter it into. It would be easier to do in this direction than the other, and most of the logic needed to implement this solution already exists. I would have to add a little code that polls the database for open challenges and roll them up into a tidy array to present to the user. They'd still have to remember which challenge they want to enter it in, but that's a better solution than having to remember the id of the story they want to quel.

HSAR commented 7 years ago

I thought this issue was about the general case of making Story2 a sequel to Story1 after both have already been posted?

stitzelj commented 7 years ago

Oh, if that's the case, I'm not as much in favor of the idea as I was back in the story. My personal preference is that Challenges and Prompts generate new content rather than recycling old.

That said, if I build the field into the editor, it would technically still exist there if a user wanted to edit the story and add it to a challenge, unless we conditionally filtered out of edits.

ethel-t-frog commented 7 years ago

The flow I envisaged was:

  1. enter challenge with new story
  2. connect story to existing prequel/sequel chain after publication

I had not envisaged a UI that permitted old stories to be entered into challenges.

HSAR commented 7 years ago

In the specific case of "I want to do some combination of prequel/sequel/enter into a challenge at the same time", we can do the Ficly thing of having people modify their URL params. That was an advanced case that was not generally known about, but if you really wanted to do it, then it was possible.

HSAR commented 7 years ago

@ethel-t-frog 's flow also covers later edits, where you suddenly think "It would be nice if old story was connected with new story!".

The problem is that it has a UI design problem associated with it, which our first comments were discussing.

ethel-t-frog commented 7 years ago

I never knew about the Ficly url hack...

HSAR commented 7 years ago

It was not very well known, even among the heavy users of the site. I discovered it independently circa 2013, although I think it had been in limited discussion before that in a wave of users that I never met.

See: http://ficly.com/stories/18959

ethel-t-frog commented 7 years ago

My suggestion also covers storylines that diverge, but then merge again later. I had a storyline on Ficly that told the same story from the perspective of two characters, each with their own chain of sequels, but with the occasional joint story, linking the chains together. That is not possible unless you can add links after publication.

HSAR commented 7 years ago

(Purely to dispute your "that is not possible" claim, you could do it with the Ficly URL hack by doing sequel=oldStory1&sequel=oldStory2. That's how I wrote http://ficly.com/stories/32714, which is exactly what you're talking about.)

stitzelj commented 7 years ago

I don't think I used that mechanism to sequel two stories at once on Ficly. I know I used it once to insert a story as a tie-in between a sequel and a prequel to close a chain. The current mechanics we have in place won't allow something like that, of course, because the quel data gets passed through the view rather than the URL, so we'd have to build some logic specifically to allow something like this and to accept multiple sequel or prequel IDs.

HSAR commented 7 years ago

As far as I can tell, you used to be able to do any arbitrary sequence of actions using the URL hack. My most complex use case (I can't remember which one it was, now), involved a three-action combination of entering a challenge, sequelling an existing story, and sequelling the story itself (by guessing the story ID).

I gathered that the current system wouldn't be amenable to the same treatment, but URL hacking is at least a (little-)known-working flow.

stitzelj commented 7 years ago

Yeah, I don't know how Kevin had his logic built on the backend to facilitate that. As I recall he was as surprised as anyone else by the loophole. We could implement something similar, sure, but my preference would be to create something a little more user-friendly if we're going to be deliberate about it.

ethel-t-frog commented 7 years ago

I'm with Jim there. The Ficly hack looks like a bug exploit rather than an actual feature. Also bear in mind that the Ficlatté database allows a story to be a sequel of exactly 0 or 1 other stories, and the same with prequel. If we are to allow freer linking, we'd need to rework the entire story database.

URL hacks are fine for expert users, as is asking a user to write down a story ID for subsequent link creation, but most of our users are here because they like small stories, not because they are comfortable hacking in the address bar. We need to implement something that can be managed entirely by mouse.

HSAR commented 7 years ago

Depends on whether we expect this feature to be often used or not. If it isn't, simply making it possible to do (no matter how difficult) is sufficient.

stitzelj commented 7 years ago

Honestly, I think the hardest part of this will be adjusting the database to handle multiple quels of the same type. Everything beyond that should be pretty easy to build into a UI that's user-friendly.

ethel-t-frog commented 7 years ago

It is entirely possible to have complex webs of stories using only one prequel and one sequel per story. We can save ourselves added complication if we leave the underlying DB as-is until there is an unavoidable need to change it.