Photos


Implementation Stories, in priority order

I can have a better workflow in newer browsers: Chrome supports a very different tech standard than the other browsers, the new getUserMedia API. That needs an entirely separate code path. The results are probably slicker, but it's not critical.
In Chrome, I can control which camera I use: Probably strictly necessary for Chrome Mobile, since it appears to default to the less-useful front camera.
When I upload an Image, the page should just refresh the images, not reload the whole thing: Currently, when I upload a photo, it hard-reloads the entire page in order to display that photo. That's crude: we should instead be refreshing just the relevant images on the page.
I should be able to rearrange a List of Photos: This probably calls for a custom control that lets me drag-and-drop thumbnails. Not too different from the way Lists work normally, but it'll need custom back end work.
I should be able to delete a Photo: Most important for Lists and Sets, but should also be true for Optional.
I should be able to put a Photo in a Model Type: As with a number of other stories, this doesn't yet work because Photos aren't compatible with editInternal() -- they are special snowflakes.
I should be able to make my photos upright: I'm going to call this a usability bug. It appears that each mobile device has its own notion of the orientation of photos; sadly, this doesn't appear to always be the way you took the photo. So pictures often come out sideways.
I should be able to keep my Photos properly private: At the moment, photos are purely security-through-obscurity, with long random filenames. That isn't really secure in any meaningful sense. We should be able to set them to be genuinely secure, using Amazon's Secure Token Service.
I should be able to use GIF or PNG images: The internals of Photos are written more neutrally as Images, but there are a few places where we are assuming that the MIME type is JPEG. Figure out how to detect the actual MIME type of the source image, and use that.

Also referred to by

I should be able to put a Photo in a Model Type: As with a number of other stories, this doesn't yet work because Photos aren't compatible with editInternal() -- they are special snowflakes.
I should be able to rearrange a List of Photos: This probably calls for a custom control that lets me drag-and-drop thumbnails. Not too different from the way Lists work normally, but it'll need custom back end work.
The "take photo" button should show that it has focus: For example, edit this Issue, and Tab down to "Screenshots". There is no visible indication that the button has focus.
We need more robust feedback when uploading a Photo: Kate has observed that it's very hard to know how the upload is going, and whether it has failed. She's right -- the feedback so far is still pretty weak.
After I Add a Photo, button should change to "Replace Photo": In general, this is probably a symptom of the weakness of the Photo-editing UI. If I'm in the Instance Editor and have an empty Optional Photo, I click the "Add Photo" button to fill it. But after the upload is complete, it still says "Add Photo" -- indeed, there is no feedback that it has worked until I say Done.
I can edit a photo that I have uploaded into Querki: From a conversation about Kate's Craft Gallery: one friend remarks that she likes to do some simple editing of her photos, in iPhoto. Ideally, it would be good if we could do something similar with Querki.
I can have a better workflow in newer browsers: Chrome supports a very different tech standard than the other browsers, the new getUserMedia API. That needs an entirely separate code path. The results are probably slicker, but it's not critical.
I should be able to keep my Photos properly private: At the moment, photos are purely security-through-obscurity, with long random filenames. That isn't really secure in any meaningful sense. We should be able to set them to be genuinely secure, using Amazon's Secure Token Service.
I should be able to make my photos upright: I'm going to call this a usability bug. It appears that each mobile device has its own notion of the orientation of photos; sadly, this doesn't appear to always be the way you took the photo. So pictures often come out sideways.
I should be able to retrieve a disconnected Photo: Especially because of Old editor loses photos, it is very easy currently to "orphan" a photo -- not deleting it, just winding up with nothing pointing to it. We should have a way to re-add an existing Photo to the Thing that it is for.
I should be able to show a List of Photos as a slideshow: Currently, a List of Photos renders as a non-animated carousel. Users should be able to turn animation on.
I should be able to store a full-sized photo in Querki: Now that disk prices in the cloud are getting so cheap, there is no longer a good reason not to allow full-sized photos.
I should be able to use GIF or PNG images: The internals of Photos are written more neutrally as Images, but there are a few places where we are assuming that the MIME type is JPEG. Figure out how to detect the actual MIME type of the source image, and use that.
I should be able to use thumbnails with my photo carousels: The original design for Photos was thumbnail-centric; now, we're focused on carousels. Ideally, we should have both available and easy to use.
In Chrome, I can control which camera I use: Probably strictly necessary for Chrome Mobile, since it appears to default to the less-useful front camera.
When I upload an Image, the page should just refresh the images, not reload the whole thing: Currently, when I upload a photo, it hard-reloads the entire page in order to display that photo. That's crude: we should instead be refreshing just the relevant images on the page.

Closed Issues

I can upload a single photo in an Optional Property: The base story for loading a photo. (Not yet displaying it.)
I can display a photo in an Optional Property: Having uploaded a photo, now we need to be able to display it.
When I add a photo, I automatically get a thumbnail as well: Basically, when we process the photo, we should also process a second copy at a standard size.
I can specify the desired size of my photos: Initially, we'll be clamping all photos to 1000 pixels on a side, and that should remain the maximum. But we should provide a way to specify a smaller size, to save space and screen real estate.
I can replace the photo in an Optional Property: Currently, we let you take a photo, but we don't let you replace it with a new one.
I can click on a thumbnail to see the full-size picture: Same as in most photo galleries: we encourage folks to show thumbnails, and you can click through to see the full-size.
I can specify a Property as a List of Photos: Highly desireable, but not necessarily critical for Pennsic. Definitely critical for the Crafts Gallery Use Case, though.
When I am editing a Thing, show the current thumbnails for my photos: This needs some design, but is clearly right: we should show the thumbnails inline while editing, and use them to select/edit/delete/etc.
I can see useful feedback during the photo-upload process: Not trivial, since we don't have all the needed infrastructure, but it would be hugely helpful to show a true progress bar, showing all the steps we are going through.
When editing images, I should see the thumbnail of the existing image: At the moment, we just show a simple "Add/Replace Image" button, which is mediocre from a usability perspective. It would be more useful to show the current thumbnail(s), as a clickable image that you can use to delete, rearrange or replace.
I can specify a Caption for a photograph: This should probably be possible both at upload time and editing later, which suggests that the Upload Image and View Image dialogs should be unified in some fashion.
I should be able to set Preferred Image Size when I create a Photo Property: This is one symptom of a much more general problem, that it is extremely awkward to deal with most meta-Properties. Currently, you have to find and edit the Property using the old-fashioned Editor. You should be prompted for this when you say that you're creating a Photo Property.
I can specify a Target for showing full-size Images: A better way to deal with clicking on Thumbnails. I can say "My List of Photos -> _imageTarget", and this will display the first item in the List, full-sized. Moreover, it will be tagged with the Property info so that, when I click on a thumbnail, the full-sized version of that Thumbnail replaces this Target.
Upload progress bar doesn't work in Android Browser: It simply never moves, which makes the process frustrating.
Clicking on a thumbnail without a target doesn't work?: On the front page of the Cross-Stitch Gallery, if I click on the thumbnail for a Project, nothing happens. It should pop up a modal display of the photo. Did that not get implemented yet?
Photo upload feedback is failing?: Kate has also reported this. I don't know if it's consistent, but I've observed the upload process getting going, and then appearing to hang in the UI.
Photo display targets aren't working right?: I notice that, on this page, if I click on a thumbnail it isn't rendering the image in the expected target. What's up?
I can specify a Property as a List of Photos: Highly desireable, but not necessarily critical for Pennsic. Definitely critical for the Crafts Gallery Use Case, though.
Photos are too big: Even if I put a photo inside, eg, col-md-6, it is still shown full-sized.
Old editor loses photos: If a record has photos, and you edit it in the old editor, they get lost.
I can click on a thumbnail to see the full-size picture: Same as in most photo galleries: we encourage folks to show thumbnails, and you can click through to see the full-size.
Uploading photos frequently failing: Anecdotally, it seems like when I am creating photos in my Vacation Photos Space, half the time it is uploading, getting to the "Processing..." stage, and then hanging. Notably, it seems to always succeed the second time I try. If things are deterministic, this might suggest that it is uploading the first time, but not reporting back?
Shouldn't be able to upload a partial photo: See this page -- Xavier apparently had the upload fail mid-stream, and wound up with half a photo.
I can specify the desired size of my photos: Initially, we'll be clamping all photos to 1000 pixels on a side, and that should remain the maximum. But we should provide a way to specify a smaller size, to save space and screen real estate.
When editing images, I should see the thumbnail of the existing image: At the moment, we just show a simple "Add/Replace Image" button, which is mediocre from a usability perspective. It would be more useful to show the current thumbnail(s), as a clickable image that you can use to delete, rearrange or replace.
I should be able to set Preferred Image Size when I create a Photo Property: This is one symptom of a much more general problem, that it is extremely awkward to deal with most meta-Properties. Currently, you have to find and edit the Property using the old-fashioned Editor. You should be prompted for this when you say that you're creating a Photo Property.
Upload progress bar doesn't work in Android Browser: It simply never moves, which makes the process frustrating.
I can specify a Caption for a photograph: This should probably be possible both at upload time and editing later, which suggests that the Upload Image and View Image dialogs should be unified in some fashion.
When I am editing a Thing, show the current thumbnails for my photos: This needs some design, but is clearly right: we should show the thumbnails inline while editing, and use them to select/edit/delete/etc.
I can see useful feedback during the photo-upload process: Not trivial, since we don't have all the needed infrastructure, but it would be hugely helpful to show a true progress bar, showing all the steps we are going through.
I can display a photo in an Optional Property: Having uploaded a photo, now we need to be able to display it.
I can replace the photo in an Optional Property: Currently, we let you take a photo, but we don't let you replace it with a new one.
I can specify a Target for showing full-size Images: A better way to deal with clicking on Thumbnails. I can say "My List of Photos -> _imageTarget", and this will display the first item in the List, full-sized. Moreover, it will be tagged with the Property info so that, when I click on a thumbnail, the full-sized version of that Thumbnail replaces this Target.
Uploading photos from Kate's Mac is failing: She tried to upload several photos; they are now consistently failing.
I should be able to add an arbitrary caption to a Photo in a carousel: Needed for the Crafts Gallery's Completed Projects carousel: need to display the name, copyright, and link to the main Project page for each Photo.
When I add a photo, I automatically get a thumbnail as well: Basically, when we process the photo, we should also process a second copy at a standard size.
Photo uploading should happen in the background: Since we have a proper client now, there is no reason we can't run photo uploading in the background, I think.
Add Photo button should activate on Enter: This is slowly driving me nuts as I build the documentation. In the Instance Editor, the Add Photo button doesn't react to the Enter key -- I have to take my hands off the keyboard and use the mouse to activate it. That's just dumb.
I can upload a single photo in an Optional Property: The base story for loading a photo. (Not yet displaying it.)
Photo controls don't encapsulate right: See the Lochleven inventory space. If I do "Create another Item" from an Item, and take a photo in that editor, the photo gets attached to the originating Thing, not the one being edited. That is, we're using the page identity, not the editor one, and they might be different.