2012-07-03 03:38:28 +04:00
|
|
|
Priority work
|
2012-10-04 15:13:50 +04:00
|
|
|
[_] 82% Preview II
|
|
|
|
|
[_] structure sorting to be persistent...
|
2012-09-24 00:44:52 +04:00
|
|
|
[_] 43% native client
|
|
|
|
|
[_] make cache generator accept command-line args...
|
2012-09-10 05:22:38 +04:00
|
|
|
[_] 0% Generic
|
|
|
|
|
[_] default settings in platform-specific JSON file
|
|
|
|
|
| this file should be auto-loaded on first run -- when no
|
|
|
|
|
| other settings are present...
|
2012-09-10 17:01:20 +04:00
|
|
|
|
|
|
|
|
|
| should be something like:
|
|
|
|
|
| loadDefaultSettings()
|
|
|
|
|
|
|
|
|
|
|
| that will load:
|
|
|
|
|
| cef-defaults.json - for CEF
|
|
|
|
|
| phonegap-defaults.json - for, you guessed it...
|
|
|
|
|
| ...
|
|
|
|
|
[_] make platform detection an issue for the abstraction layer
|
|
|
|
|
| as it is now the case with dumbJSONFile(...)
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] 50% Windows (CEF / CEFPython)
|
2012-09-10 05:22:38 +04:00
|
|
|
[_] package a portable exe
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] 50% basic wrapper
|
|
|
|
|
[X] JSON reader/writer
|
|
|
|
|
[_] directory lister
|
|
|
|
|
[X] basic test
|
2012-09-10 05:22:38 +04:00
|
|
|
[_] 66% Android (PhoneGap)
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] 0% basic wrapper
|
|
|
|
|
[_] JSON reader/writer
|
|
|
|
|
[_] directory lister
|
2012-09-10 05:22:38 +04:00
|
|
|
[X] basic test
|
|
|
|
|
[X] disable transitions...
|
2012-09-24 00:44:52 +04:00
|
|
|
[X] 100% Standalone utils
|
|
|
|
|
[X] generate cache
|
|
|
|
|
| resize images and put them into .ImageGrid.cache/<size>px directory
|
|
|
|
|
|
|
|
|
|
|
| should rebuild JSON
|
|
|
|
|
[X] generate JSON
|
|
|
|
|
| build JSON data from a directory...
|
|
|
|
|
[_] make loading of different resolution images smooth...
|
|
|
|
|
| can be done in several ways:
|
|
|
|
|
| - cache images before loading...
|
|
|
|
|
| - two layers...
|
|
|
|
|
| - always keep the lowest res image loaded...
|
|
|
|
|
[X] load sorted images from JSON data
|
2012-09-22 03:21:55 +04:00
|
|
|
| curently the sort is as in file...
|
2012-09-24 00:44:52 +04:00
|
|
|
[X] fix image ordering...
|
2012-09-24 19:40:06 +04:00
|
|
|
[X] add basic image info display...
|
2012-09-10 03:51:39 +04:00
|
|
|
[X] 100% dynamic loading of images
|
|
|
|
|
[X] 100% stream on navigate
|
2012-09-03 22:03:43 +04:00
|
|
|
| parameters that affect loading:
|
|
|
|
|
| - current view size -> image size must be closest
|
|
|
|
|
| above this
|
|
|
|
|
| - viewer width in images -> number of widths (2-3)
|
|
|
|
|
| distance is used to trigger
|
|
|
|
|
| loading or unloading of images
|
|
|
|
|
| depending on direction
|
|
|
|
|
| NOTE: this is done for each
|
|
|
|
|
| image size in use.
|
|
|
|
|
|
|
|
|
|
|
| NOTE: here the trigger must be proximity to the view as we
|
|
|
|
|
| can reach an image not just by navigating close but
|
|
|
|
|
| also by scrolling/dragging to it (without changing the
|
|
|
|
|
| current image)...
|
2012-09-04 03:50:16 +04:00
|
|
|
[X] store structure separately from ui (mirror context)
|
2012-09-03 22:03:43 +04:00
|
|
|
| an alternative would be to store the whole thing (sans images)
|
|
|
|
|
| in DOM, but that ma get very big.
|
|
|
|
|
|
|
|
|
|
|
| storing the structure will enable us to have partial structures
|
|
|
|
|
| thus updating the structure of a very big set without the user
|
|
|
|
|
| noticing.
|
2012-09-10 03:51:39 +04:00
|
|
|
[X] 100% sync context (handle edit events)
|
2012-09-03 22:03:43 +04:00
|
|
|
[X] identify action position
|
|
|
|
|
| use id...
|
2012-09-04 03:50:16 +04:00
|
|
|
[X] update ui structure (handle navigate/move events)
|
2012-09-05 19:49:59 +04:00
|
|
|
[X] sizes on zoom
|
|
|
|
|
| still needs work...
|
2012-09-07 13:48:47 +04:00
|
|
|
[X] make shift up/down direction-aware...
|
2012-09-01 02:39:10 +04:00
|
|
|
| i.e. if we are going through images in a direction select the
|
|
|
|
|
| next image in that direction when shifting...
|
2012-09-10 03:51:39 +04:00
|
|
|
[X] 100% load state
|
|
|
|
|
[X] load mechanics
|
|
|
|
|
[X] auto-load last state on startup
|
|
|
|
|
[X] manual (console)
|
|
|
|
|
| loadJSON(loadJSONFile(...))
|
|
|
|
|
[X] 100% load folder
|
|
|
|
|
[X] drag'n'drop
|
|
|
|
|
[X] 100% save state
|
2012-08-29 17:07:26 +04:00
|
|
|
[X] minimal: Local Storage (manual)
|
2012-08-29 17:02:40 +04:00
|
|
|
| works across all targets (CEF, PhoneGap, browser)
|
2012-09-09 17:53:27 +04:00
|
|
|
[X] manual local JSON (file)
|
2012-09-01 02:39:10 +04:00
|
|
|
[X] 100% autosave
|
2012-08-30 03:43:24 +04:00
|
|
|
[X] on edit
|
2012-08-30 18:44:07 +04:00
|
|
|
[X] on navigate
|
2012-08-30 03:43:24 +04:00
|
|
|
| only save position to save time...
|
2012-08-30 18:44:07 +04:00
|
|
|
[X] on timer
|
2012-09-01 02:39:10 +04:00
|
|
|
[X] on unload
|
2012-08-30 03:43:24 +04:00
|
|
|
[X] manual incremental save
|
2012-09-09 17:53:27 +04:00
|
|
|
[X] manual named save
|
2012-08-29 18:39:13 +04:00
|
|
|
[X] versions/history
|
2012-08-22 19:39:20 +04:00
|
|
|
[X] 100% UI
|
|
|
|
|
[X] 100% disable opacity for current ribbon
|
|
|
|
|
[X] 1.0 opacity for current ribbon mode
|
2012-08-20 20:07:45 +04:00
|
|
|
| automatically turned on for magnifications over 2 images
|
|
|
|
|
| per screen....
|
2012-08-22 19:39:20 +04:00
|
|
|
[X] current image indicator
|
2012-08-20 20:07:45 +04:00
|
|
|
| this can be:
|
|
|
|
|
| - rectangle (not border)
|
|
|
|
|
| - underline
|
|
|
|
|
| - corner icon
|
2012-08-20 02:24:20 +04:00
|
|
|
[X] 100% settings/help screen
|
|
|
|
|
[X] keyboard config/help
|
2012-08-17 06:33:01 +04:00
|
|
|
[X] auto-generated settings interface
|
2012-08-15 03:42:46 +04:00
|
|
|
[X] "hide other ribbons" mode
|
2012-08-14 22:08:18 +04:00
|
|
|
[X] fix single image mode
|
|
|
|
|
| need to center the image correctly...
|
|
|
|
|
[X] 100% add screen buttons for all actions...
|
|
|
|
|
[X] navigation
|
|
|
|
|
[X] actions
|
|
|
|
|
[X] zooming
|
|
|
|
|
[X] 100% zoom presets
|
|
|
|
|
[X] single
|
|
|
|
|
[X] three
|
|
|
|
|
[X] wide
|
|
|
|
|
| toggle...
|
|
|
|
|
[X] 100% control single-image mode animations
|
|
|
|
|
[X] scroll
|
|
|
|
|
[X] switch (no transition)
|
|
|
|
|
[X] 100% layout
|
|
|
|
|
[X] 100% tablet
|
|
|
|
|
[X] stretch to full screen
|
|
|
|
|
| NOTE: viewer 0% sizes may break things...
|
|
|
|
|
[X] make buttons semi-transparent and same color as bg in all modes
|
|
|
|
|
| just like single image mode...
|
|
|
|
|
[X] make bg color switching in all modes
|
|
|
|
|
| black, white, gray
|
|
|
|
|
[X] 100% PC
|
|
|
|
|
[X] stretch to full screen
|
|
|
|
|
[X] make view correctly resizable
|
|
|
|
|
| appears to work correctly but need to click an image onResize...
|
|
|
|
|
|
|
|
|
|
|
| XXX find a way around always clicking things...
|
|
|
|
|
[X] hide buttons for keyboard actions
|
|
|
|
|
[X] web
|
|
|
|
|
| is this is the same as the above two? (with auto-select)
|
|
|
|
|
[X] add screen-width images next/prev navigation...
|
|
|
|
|
[X] 100% debug mode
|
|
|
|
|
[X] toggle cross-hair
|
2012-07-31 20:31:21 +04:00
|
|
|
[X] 100% sorted images in ribbons
|
2012-07-31 11:37:18 +04:00
|
|
|
[X] 100% stage I: position the promoted/demoted image correctly
|
|
|
|
|
| and correct positioning on promote/demote
|
|
|
|
|
|
|
|
|
|
|
| input:
|
|
|
|
|
| [01][02][03][04][05][06][07][08][09][10][11] ... [19][20]
|
|
|
|
|
|
|
|
|
|
|
| single ribbon, nothing special here.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| general sort:
|
|
|
|
|
| [05] [10][11][12] [15] [19][20]
|
|
|
|
|
| [01] [04] [06][07][08] [13][14] [18]
|
|
|
|
|
| [02][03] [09] [16][17]
|
|
|
|
|
|
|
|
|
|
|
| each strip is positioned above or below the place it was
|
|
|
|
|
| shifted from.
|
|
|
|
|
| if there is not enough space use weights to balance the
|
|
|
|
|
| thing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| selected [08]:
|
|
|
|
|
| [05] [10][11][12] [15] [19][20]
|
|
|
|
|
| [01] [04] [06][07][[08]] [13][14] [18]
|
|
|
|
|
| [02][03] [09] [16][17]
|
|
|
|
|
|
|
|
|
|
|
| above and below images are centered around the current
|
|
|
|
|
| image as axis, the rule is that the strips left are coming
|
|
|
|
|
| from the left of the axis and likewise for the right side.
|
|
|
|
|
|
|
2012-07-31 20:31:21 +04:00
|
|
|
[X] 100% stage II: scroll ribbons correctly
|
|
|
|
|
| this is simple:
|
|
|
|
|
| - center the right edge of image returned
|
|
|
|
|
| by getImageBefore in all ribbons other than current...
|
|
|
|
|
| - center current-image in current ribbon
|
|
|
|
|
| - vertically center the current ribbon (negative margin?)
|
2012-07-19 14:15:26 +04:00
|
|
|
[X] prototype and basic API
|
2012-07-31 11:37:18 +04:00
|
|
|
[X] 100% migrate main code to the new system
|
2012-07-24 15:53:34 +04:00
|
|
|
[X] basic navigation
|
|
|
|
|
[X] basic actions
|
|
|
|
|
[X] zooming
|
2012-07-31 20:31:21 +04:00
|
|
|
[X] position other ribbons...
|
|
|
|
|
| only prev/next for now...
|
|
|
|
|
[X] 100% correct zooming and modes
|
2012-07-30 16:20:41 +04:00
|
|
|
[X] zooming in ribbon view
|
2012-07-31 11:37:18 +04:00
|
|
|
[X] 100% zoom presets for ribbon view
|
|
|
|
|
| other possible presets:
|
|
|
|
|
| - five
|
|
|
|
|
| - all
|
|
|
|
|
| - group
|
|
|
|
|
| - day/month
|
|
|
|
|
| - shoot
|
|
|
|
|
| - tag
|
|
|
|
|
| ...
|
2012-07-30 16:20:41 +04:00
|
|
|
[X] three
|
|
|
|
|
[X] one (with zooming)
|
2012-07-31 20:31:21 +04:00
|
|
|
[X] single image mode with zooming
|
2012-07-03 03:38:28 +04:00
|
|
|
| ribbons are hidden
|
2012-08-04 20:35:54 +04:00
|
|
|
[X] 100% fix layout and animations
|
2012-08-01 01:45:21 +04:00
|
|
|
[X] zooming
|
|
|
|
|
[X] navigation
|
2012-08-04 20:35:54 +04:00
|
|
|
[X] 100% actions
|
|
|
|
|
[X] bug: shifting up to new ribbon pushes the current row down...
|
2012-08-03 17:56:24 +04:00
|
|
|
| before starting on a fix, need to cleanup the code from old hacks and workarounds...
|
2012-09-10 03:02:34 +04:00
|
|
|
[_] 39% Preview II (optional features)
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] undo last action (action log)
|
|
|
|
|
[_] mark positions and jump between marks (a-la vim's "m"/"'" commands)
|
|
|
|
|
[_] 14% make things modular and reusable (independent widget)
|
2012-09-10 03:02:34 +04:00
|
|
|
[X] make the keyboard handler local to selector (mode-aware)
|
2012-09-10 02:08:44 +04:00
|
|
|
[_] prefix an ID to all selectors to make their actions "local"
|
|
|
|
|
[_] avoid use of id html attr
|
|
|
|
|
[_] avoid use of globals
|
|
|
|
|
| ImageGrid.XXX is a primery target...
|
|
|
|
|
[_] split as much of the work into events as possible
|
|
|
|
|
| one example is the stuff that's done on $('.current.image').click(),
|
|
|
|
|
| thinks like aligning ribbons, centering, etc.
|
|
|
|
|
[_] make sets of actions for combination via $.update(...)
|
|
|
|
|
| make things modular...
|
|
|
|
|
[_] organize things into "features"
|
|
|
|
|
| this will enable reuse as simple as combining only the desired
|
|
|
|
|
| features into a final entity...
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] handle edit events to update the internal state state -- sync with DOM (???)
|
|
|
|
|
| this is needed only for keeping the state in order...
|
|
|
|
|
|
|
|
|
|
|
| NOTE: this is not that important as buildJSON(...)
|
|
|
|
|
| already does the job correctly...
|
2012-09-10 02:08:44 +04:00
|
|
|
[_] try a coffee-script version
|
2012-08-22 19:39:20 +04:00
|
|
|
[_] 0% PhoneGap + Android Issues:
|
2012-08-28 02:45:32 +04:00
|
|
|
[_] scrolling in overlays does not work
|
2012-08-22 06:50:41 +04:00
|
|
|
[_] half the keyboard is not working...
|
|
|
|
|
[_] screen buttons are very laggy
|
|
|
|
|
| while swipe works super fast...
|
|
|
|
|
[_] .dblclick(...) does not work...
|
|
|
|
|
[_] .dragable(...) does not work...
|
2012-08-20 02:24:20 +04:00
|
|
|
[_] slideshow...
|
2012-08-17 22:23:48 +04:00
|
|
|
| this is needed to disable navigation keys in setup-mode, for example...
|
2012-09-07 13:48:47 +04:00
|
|
|
[X] 100% serialization/deserialization
|
2012-08-10 21:07:21 +04:00
|
|
|
[X] JSON loader/unloader
|
2012-09-07 13:48:47 +04:00
|
|
|
[X] file reader/writer
|
2012-08-28 02:45:32 +04:00
|
|
|
[X] flip ribbons relative to current -- reverse order
|
2012-08-06 18:35:20 +04:00
|
|
|
[_] fade transition in single image mode...
|
2012-08-15 03:42:46 +04:00
|
|
|
[_] "show all promoted/demoted images" mode
|
|
|
|
|
| display images below or above but in a more transparent
|
|
|
|
|
| fashion...
|
|
|
|
|
|
|
|
|
|
|
| XXX should they be skipped on navigation?
|
2012-08-04 20:35:54 +04:00
|
|
|
[_] 80% drag/move action...
|
|
|
|
|
[X] basic infrastructure
|
|
|
|
|
[X] action: center current image
|
|
|
|
|
[X] while zoomed more than the screen
|
|
|
|
|
[X] while zoomed out (ribbon view)
|
|
|
|
|
[_] 0% cleanup...
|
|
|
|
|
[_] disable click events while dragging
|
|
|
|
|
[_] differentiate with gestures
|
|
|
|
|
| might be nice to add a Ps-like "space-dragging"
|
|
|
|
|
| feature to differentiate nav gestures and
|
|
|
|
|
| dragging...
|
|
|
|
|
| ...this may not work for tablets
|
|
|
|
|
|
|
|
|
|
|
| for tablets might be good to add a small timeout to
|
|
|
|
|
| both gestures and dragging, small enough for things
|
|
|
|
|
| to feel natural...
|
|
|
|
|
|
|
|
|
|
|
| another way is to start dragging anyway but if the
|
|
|
|
|
| eventual action resembles a gesture then exec that.
|
|
|
|
|
| ...this will need careful setup of timeouts and
|
|
|
|
|
| dynamic disabling/enabling of both drag and gestures
|
|
|
|
|
| e.g. of large zooms dragging takes priority.
|
2012-08-06 18:35:20 +04:00
|
|
|
[_] 50% return to current image / home (after drag)
|
2012-08-04 20:35:54 +04:00
|
|
|
[_] button
|
2012-08-06 18:35:20 +04:00
|
|
|
[X] keyboard
|
2012-08-28 02:45:32 +04:00
|
|
|
[X] double tap/click to zoom (a-la iPad)
|
|
|
|
|
| ribbon <-> single image mode
|
|
|
|
|
|
|
|
|
|
|
| XXX does not work in android...
|
2012-08-04 20:35:54 +04:00
|
|
|
[_] pinch to zoom
|
2012-08-22 21:46:37 +04:00
|
|
|
[X] BUG: rendering error when current ribbon images opacity is 1...
|
|
|
|
|
| This happens when:
|
|
|
|
|
| - opcity of .current.ribbon .image is 1
|
|
|
|
|
| - there is atleast a ribbon above
|
|
|
|
|
| - the view is zoomed-out a bit ~70%
|
|
|
|
|
|
|
|
|
|
|
| the view is partially re-rendered when navigating images...
|
|
|
|
|
|
|
|
|
|
|
| since this is a browser render error, think of a way to work
|
|
|
|
|
| around this.
|
|
|
|
|
|
|
|
|
|
|
| WORKAROUND: set the opacity to 0.9999 instead of 1 forces the
|
|
|
|
|
| browser to re-render the whole set correctly. need to find a
|
|
|
|
|
| better way...
|
2012-08-14 20:12:30 +04:00
|
|
|
[X] 100% add sort/re-sort capability...
|
2012-08-10 21:07:21 +04:00
|
|
|
[X] abstract out image id
|
2012-08-14 20:12:30 +04:00
|
|
|
[X] replace id (use something else like filename)
|
|
|
|
|
[X] re-arrange ribbons (reverse)
|
|
|
|
|
[X] in-place sort images in ribbons
|
2012-08-08 23:35:20 +04:00
|
|
|
[_] 50% option to disable processor intensive features
|
|
|
|
|
[X] global transitions
|
|
|
|
|
[_] global opacity -- do a layout without opacity
|
2012-09-07 13:48:47 +04:00
|
|
|
[X] 100% refactoring (low priority)
|
2012-08-05 23:18:41 +04:00
|
|
|
[X] cleanup legacy workarounds
|
2012-08-10 21:07:21 +04:00
|
|
|
[X] ui.js, gallery-prototype.js either merge or revise split logic
|
2012-09-07 13:48:47 +04:00
|
|
|
[_] make scrolling of other ribbons proportional to the gap...
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] 3% Preview III
|
2012-09-10 17:03:40 +04:00
|
|
|
[_] use Caps Lock for edit mode...
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] infinite ribbons - dynamic structure construction and partial state
|
2012-09-10 18:28:33 +04:00
|
|
|
| one way to do this is by:
|
|
|
|
|
| - limiting the number of images per field
|
|
|
|
|
| - adding new images to new fields to the left and right of current
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] 0% state
|
|
|
|
|
[_] 0% save state
|
|
|
|
|
[_] named manual
|
|
|
|
|
[_] CouchDB
|
|
|
|
|
[_] 0% export state
|
|
|
|
|
[_] JSON file
|
|
|
|
|
[_] directory tree
|
|
|
|
|
[_] XMP
|
|
|
|
|
[_] 0% load state
|
|
|
|
|
[_] named manual
|
|
|
|
|
[_] 25% directory browser
|
|
|
|
|
[_] browser mode/ui
|
|
|
|
|
[_] 50% import directory
|
|
|
|
|
[_] build/rebuild cache
|
|
|
|
|
[X] create JSON from cache
|
2012-08-10 21:07:21 +04:00
|
|
|
[_] collection management
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] archive management
|
2012-07-03 03:38:28 +04:00
|
|
|
[_] 0% native client
|
|
|
|
|
[_] android
|
2012-08-08 23:35:20 +04:00
|
|
|
[_] restrict layout to horizontal
|
|
|
|
|
| leave doing a different vertical layout for later versions...
|
2012-07-30 16:20:41 +04:00
|
|
|
[_] windows
|
2012-07-03 03:38:28 +04:00
|
|
|
[_] MacOS (low priority)
|
|
|
|
|
[_] iOS (low priority)
|
2012-09-10 05:22:38 +04:00
|
|
|
[_] 0% unified build system
|
2012-08-04 20:35:54 +04:00
|
|
|
[_] 0% bugs:
|
|
|
|
|
[_] adding a new ribbon above the current is still jumpy...
|
2012-09-10 05:22:38 +04:00
|
|
|
[_] 0% Preview III (optional features)
|
2012-07-14 00:21:52 +04:00
|
|
|
[_] 0% Pre-Alpha
|
|
|
|
|
[_] 0% finalize UI logic
|
2012-07-03 03:38:28 +04:00
|
|
|
[_] unsorted images
|
2012-08-04 14:49:41 +04:00
|
|
|
[_] 0% Alpha
|
|
|
|
|
[_] 0% Beta
|
|
|
|
|
[_] 0% 1.0
|
2012-07-03 03:38:28 +04:00
|
|
|
|
|
|
|
|
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] 38% Main workflow
|
2012-08-14 17:26:46 +04:00
|
|
|
[_] 33% image viewing
|
|
|
|
|
[X] viewer
|
|
|
|
|
[_] select source
|
|
|
|
|
[_] slideshow
|
2012-08-14 17:38:04 +04:00
|
|
|
[X] 100% image sorting
|
2012-08-14 17:26:46 +04:00
|
|
|
[X] ribbon navigation
|
|
|
|
|
[X] shift image between ribbons
|
2012-08-14 17:38:04 +04:00
|
|
|
[X] 100% basic large scale operations
|
|
|
|
|
[X] sort all images
|
|
|
|
|
[X] reverse all images
|
|
|
|
|
[X] reverse ribbons
|
2012-08-14 17:26:46 +04:00
|
|
|
[_] 0% metadata
|
|
|
|
|
[_] tag filtering
|
|
|
|
|
[_] tag editing
|
|
|
|
|
[_] EXIF/IPTC
|
2012-09-10 03:51:39 +04:00
|
|
|
[_] 20% image/export export
|
|
|
|
|
[X] JSON
|
2012-08-14 17:26:46 +04:00
|
|
|
[_] XMP metadata
|
|
|
|
|
[_] fav dirs
|
|
|
|
|
[_] file list
|
|
|
|
|
[_] image set
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 03:38:28 +04:00
|
|
|
Goals:
|
|
|
|
|
main ribbon always consistent
|
|
|
|
|
fast sorting via several simple passes
|
|
|
|
|
binary
|
|
|
|
|
| items are split into two ribbons.
|
|
|
|
|
|
|
|
|
|
|
| this can be done either by mandatorily shifting either up or
|
|
|
|
|
| down or by restricting shifting to just one direction.
|
|
|
|
|
|
|
|
|
|
|
| this is a bit too restrictive.
|
|
|
|
|
|
|
|
|
|
|
| essentially this is a combination in the ternary approach
|
|
|
|
|
| below as we can still shift images between levels.
|
|
|
|
|
ternary
|
|
|
|
|
| current ribbon and items are either sifted up, shifted down
|
|
|
|
|
| relative to it or left on, unshifted.
|
|
|
|
|
|
|
|
|
|
|
| main ribbon consistency is not always obvious, especially on
|
|
|
|
|
| partially sorted sets. e.g. while sorting part of the set where
|
|
|
|
|
| should the unsorted part be?
|
|
|
|
|
|
|
|
|
|
|
| sorted section
|
|
|
|
|
| +-------------------+
|
|
|
|
|
|
|
|
|
|
|
| oooooooooooooooooooooooooooooooo
|
|
|
|
|
| - oooooooooooooooooooooooooooo
|
|
|
|
|
| > oooooooooooooooooooooxxxxxxxxxxxxxxxxxxxxxxxxxxx... <
|
|
|
|
|
| + oooooooooooooooo
|
|
|
|
|
| oooo
|
|
|
|
|
|
|
|
|
|
|
| +----------------------------+
|
|
|
|
|
| which level should this go to?
|
|
|
|
|
|
|
|
|
|
|
| in the illustration, the ribbon marked by ">" and "<" is where
|
|
|
|
|
| the sorting started.
|
|
|
|
|
|
|
|
|
|
|
| there is also a question of how do we define the border between
|
|
|
|
|
| sorted and unsorted zones and when?
|
|
|
|
|
| ...after the sort is done, and when is that?
|
|
|
|
|
|
|
|
|
|
|
| possible ways to go around this:
|
|
|
|
|
| before sorting select the working batch
|
|
|
|
|
| - adds an extra step
|
|
|
|
|
| - restricts later sorting
|
|
|
|
|
| restrict promotion over the main ribbon
|
|
|
|
|
| + sorting can be refined later in the same mode
|
|
|
|
|
| - prevents the user to select the better images on first pass
|
|
|
|
|
| split the sorted and unsorted batches and never mix them
|
|
|
|
|
| - restricts later sorting
|
|
|
|
|
| main ribbon always shows all the better images (from better levels)
|
|
|
|
|
| o needs a way to move whole topologies up/down relative
|
|
|
|
|
| to the main ribbon...
|
|
|
|
|
| one way to do this is select and shift multiple images
|
|
|
|
|
| will shift the whole pyramid (with all the "worse" images in between)
|
|
|
|
|
| - introduces modes: sorting / viewing
|
|
|
|
|
| - adds a separate stage -- move the topology to a correct
|
|
|
|
|
| main ribbon position
|
|
|
|
|
|
|
|
|
|
|
| Q: is this system applicable to sorting search results?
|
|
|
|
|
| A: likely yes, but the farther one gets from the main ribbon
|
|
|
|
|
| the more the difference can get between adjacent images.
|
|
|
|
|
images are always sortable
|
|
|
|
|
all levels always browsable
|
|
|
|
|
make all the steps except the actual sorting implicit
|
|
|
|
|
| i.e. no jumping through hoops for the human...
|
2012-08-04 14:49:41 +04:00
|
|
|
use the same mechanism as used for sorting, for image selection
|
|
|
|
|
| this can be used for tagging, exhibitions, ...etc.
|
|
|
|
|
context
|
|
|
|
|
| a context consists of two things:
|
|
|
|
|
| - image selection (might be a product of another context, search or selection)
|
|
|
|
|
| - a way the levels are interpreted within this context
|
|
|
|
|
|
|
|
|
|
|
| default contexts:
|
|
|
|
|
| - full view rating context
|
|
|
|
|
| this incorporates ALL the archive and the levels are interpreted as ratings.
|
|
|
|
|
| - selection rating context
|
|
|
|
|
| same as full view but only part of the archive is rated
|
|
|
|
|
| XXX this will need to be merged correctly back into the archive...
|
|
|
|
|
| - selection context
|
|
|
|
|
| this simply takes one set of images as input and shows a subset as output.
|
|
|
|
|
|
|
|
|
|
|
| contexts are persistent, much like a catalogue.
|
|
|
|
|
|
|
|
|
|
|
| a context can be cloned and re-used.
|
|
|
|
|
|
|
|
|
|
|
| contexts can be used to mark:
|
|
|
|
|
| - shoots
|
|
|
|
|
| - subjects
|
|
|
|
|
| - exhibitions/shows
|
|
|
|
|
| - portfolios
|
|
|
|
|
| - ...
|
2012-07-03 03:38:28 +04:00
|
|
|
|
|
|
|
|
|
2012-08-04 14:49:41 +04:00
|
|
|
[[controls.otl]]
|
2012-07-03 03:38:28 +04:00
|
|
|
|
2012-06-08 21:07:27 +04:00
|
|
|
|
|
|
|
|
|
2012-08-03 17:56:24 +04:00
|
|
|
[_] 38% features
|
|
|
|
|
[_] 55% views
|
|
|
|
|
[_] 60% ribbon-based view
|
2012-08-04 14:49:41 +04:00
|
|
|
[_] show all (very zoomed out view)
|
2012-06-08 21:07:27 +04:00
|
|
|
| might be good to not show any images here at all, just replace them with their average color
|
|
|
|
|
[X] show map
|
|
|
|
|
[X] fit to ribbon
|
2012-08-03 17:56:24 +04:00
|
|
|
[X] fit to image (square)
|
2012-06-08 21:07:27 +04:00
|
|
|
[_] ribbon with promoted/demoted images
|
|
|
|
|
| show semi-transparent images that were demoted/promoted from current ribbon
|
|
|
|
|
[_] 50% single image view
|
|
|
|
|
[_] image fit to screen
|
|
|
|
|
[X] image fit to square
|
|
|
|
|
| show parts of upper and lower ribbons
|
2012-08-03 17:56:24 +04:00
|
|
|
[X] image zooming
|
2012-06-08 21:07:27 +04:00
|
|
|
| fast zooming to stages:
|
|
|
|
|
| fit
|
|
|
|
|
| 100%
|
|
|
|
|
| 200%
|
|
|
|
|
| ...
|
|
|
|
|
[_] basic editing and manipulation
|
|
|
|
|
| image unchanged, data saved to json...
|
|
|
|
|
[_] crop
|
|
|
|
|
[_] rotate
|
|
|
|
|
|
2012-08-04 14:49:41 +04:00
|
|
|
|
|
|
|
|
|
2012-08-03 17:56:24 +04:00
|
|
|
[_] 38% General ToDo
|
|
|
|
|
[_] 80% image sorting
|
2012-06-08 21:07:27 +04:00
|
|
|
[_] will affect:
|
2012-08-03 17:56:24 +04:00
|
|
|
[X] promote
|
|
|
|
|
[X] demote
|
|
|
|
|
[X] shift up
|
|
|
|
|
[X] shift down
|
2012-06-08 21:07:27 +04:00
|
|
|
[_] ribbon merging
|
|
|
|
|
[_] add promote/demote events (to attach structure editors)...
|
2012-06-13 21:49:52 +04:00
|
|
|
| enable extension and use as a generic widget...
|
2012-06-08 21:07:27 +04:00
|
|
|
[X] add real images...
|
|
|
|
|
[_] make all the code relative to the current selection (multiple instances on a page support)
|
2012-08-03 17:56:24 +04:00
|
|
|
[X] add ribbon relative scrolling...
|
2012-06-13 21:49:52 +04:00
|
|
|
| each ribbon is positioned relative to the current selected image
|
|
|
|
|
| below-left: closest image to the left of the current
|
|
|
|
|
| bolow-right: same as above but right...
|
|
|
|
|
|
|
|
|
|
|
| this will demote/promote the image directly up or down...
|
2012-06-08 21:07:27 +04:00
|
|
|
[_] make this into a jquery plugin...
|
|
|
|
|
[_] add dynamic loading and unloading for very large sets...
|
2012-06-17 16:52:40 +04:00
|
|
|
[X] gesture support...
|
2012-06-08 21:07:27 +04:00
|
|
|
[_] add basic actions:
|
|
|
|
|
[_] rotate left
|
|
|
|
|
[_] rotate right
|
|
|
|
|
[_] crop
|
|
|
|
|
...
|
|
|
|
|
[_] add info:
|
|
|
|
|
[_] number of images in ribbon
|
|
|
|
|
[_] position in ribbon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[_] % ISSUES and BUGS:
|
|
|
|
|
[_] jumping on focus up/down...
|
|
|
|
|
[_] demoting a first element (a ribbon is created) positions the field incorrectly (see demoteImage() for details)...
|
|
|
|
|
|
|
|
|
|
.
|
|
|
|
|
| vim:set spell :
|