Photo Organizer

This is the bug tracker for Photo Organizer.

IDTask TypeSeverityCategorySummaryStatusReported In
464Feature RequestLowBackend / CoreAdd support for "adult" filtersNew2.371 Task Description

Users would ahve to explicitly enable "adult" content in order for that to show up in searches, rss feeds, etc etc.

Need to work through use cases of this more carefully.

446Bug ReportLowBackend / Corelocation search always return nothing in Advanced Searc...Unconfirmed2.37 Task Description

Only location in advanced text is not work, others works fine.

I can't find the meaning of ||| by google. But I change ||| to || in file search.text.advanced.php at line 172

$sql_search_string['location'] = build_sql_search_string($keywords['location'], "(||||view_location.state||");

and change view_location all columns NULL value (if any) to '' by sql command, then it seems work.

Here is the sql command to change view_location

create view view_location as
select location.identifier,,,
COALESCE ( (select value from state where state.identifier=location.state), '' ) as state,
(select value from country where as country,
users, last_modified_date,
latitude, longitude, private
from location;

443Bug ReportLowBackend / CoreWrong user name displayedUnconfirmed2.37 Task Description

In tab My Folders or My Datebook, logged in user name displayed instead of owner user name under 'I am a client of the following users', nevertheless the link is correct. Here is my quick and dirty solution.

--- include/contacts.php.orig
+++ include/contacts.php
@@ -117,7 +117,8 @@
$owner = "";

- $all_subscribed_users = pg_query($database, " select identifier, users, last_name, first_name, date_of_creation, value from view_client where client='$my_user_id' and status!='4' $owner ");
+ $all_subscribed_users = pg_query($database, " select view_client.identifier, view_client.users, view_contact_info.last_name, view_contact_info.first_name, view_client.date_of_creation, view_client.value from view_client, view_contact_info where view_client.client='$my_user_id' and view_client.users=view_contact_info.identifier and status!='4' $owner ");
$num_of_subscribed_users = pg_num_rows($all_subscribed_users);

if ($num_of_subscribed_users) {

442Feature RequestLowUser InterfaceUI EnhancementsAssigned2.371 Task Description

This will be a placeholder for the various ideas I have for reworking parts or all of PO's UI. Ideas that are fleshed out can be moved into their own tickets for actual implementation.

* AJAX-ish tabs on the photo page
- instead of a separate page reload for each tab, load all tab info at once and let the UI manage paging.
* Client-side sorting of all tabular data
- eg folder/album listings
* Dynamic client-side pagination of the slide view
- "dump" all slides at once, and let client-side manage their pagination?
- Probably can't sort this way though
* Lightbox-esque view of photos
- Intended for guest access, hiding details of photos.
- Slideshow capabilities
- Easy navigation (eg using left/right arrows)
* Replace ad-hoc toolbars with more coherent ones
* Replace hackish button/checkbox theming script with something saner.
* Replace wz_tooltips and js_calendar with better integrated stuff.
* Modal login/password form
- pops up on top of current page
- Can force current page to reload afterwards
- What to do about 401/403 errors?
* Replace all "confirmation" pages with modal dialogs.

I'm leaning towards Query and jQueryUI for actual implementations.

Initial implementation will probably require current themes to be taken out back and shot.

440Bug ReportMediumBackend / CorePossible to set an album/folder's parent to itself.New2.37 Task Description

We need to enforce that rule to prevent the DB from going nuts.

Either via SQL:

1) Trigger to test that parent != id
2) the (folders|albums)_and_sub(folders|albums) function needs to abort if it sees it

or in PHP:

3) Test the values in the php pages [[ (album|folder).(add|edit).2.php ]] and kick back an error.

I don't think there's another way to mangle things.

This can result in a DoS.

420Bug ReportLowUser InterfaceReally Minor Login Page ProbUnconfirmed2.362 Task Description

It doesn't do any harm, it just bugs if it happens.

If you fill in user name and password and then realize, you don't want the preset language... Switching to another language clears out user name and password and you have to write them again.

Of course, this won't happen often to a new user because it trains to look first after the language, but... I would still call it a bug, even if not really major.

Rock on

411Feature RequestLowBackend / CoreOpenID supportNew2.361 Task Description

PO has hooks for an external authentication mechanism. Once the user is authenticated it creates whatever's needed for local use.

OpenID seems to be a natural offshoot of this; not too useful for a single-user system but it would be quite handy for a site wanting to piggyback onto another user.

407Feature RequestLowBackend / CoreAdd a 'start/end date' to folder/albumsNew2.361 Task Description

In effect, this would merge datebook entries with the folder/album hierarchies.

I don't know if this is ultimately a good idea or not, but I've noticed that a majority of folders are keyed off specific date(s).

It has ramifications for the permission system (do we tie folders to clients, or rely on datebook events?)

It would also allow us to sort folders based on "event date" rather than "date added/changed" which is frankly far more useful for my purposes.

400Feature RequestLowBackend / CoreShopping cart infrastructure/integrationNew2.36 Task Description

PO includes a URL that allows a "buy now" link, but it would be nice to have something more featureful that can be fully automated.

1) Allow any user to purchase, then download any full-res image.
2) Integrate into an external print-ordering service.

Basically the cart needs a way of "authorizing" a single image to be downloadable...

397Feature RequestMediumImportImport of metadata from programs like Raw TherapeeUnconfirmed2.367 Task Description

Some programs like Raw Therapee creates a file to store all metadata to convert a raw file to a jpg file. To repeat the convert process (with or without slightly differences) it would be nice if I'm able to store such metadata with variants at the side of the original picture.

From other programs that storing data in a database, it would be possible to read out the data from the DB and storing metadata into xml-files and backwards.

395Feature RequestLowBackend / CoreConvert more pages to a POST/REDIRECT/GET output.New2.36 Task Description

if all pages are explicit redirects, we can use POSTs everywhere and still have navigability.

393Feature RequestLowBackend / CoreUse GPS timestamp when importing, if present.New2.361 Task Description

If we have a GPS tag, the odds are its timestamp is going to be more accurate than what the camera thinks.

Unfortunately, the GPS timestamp is reported in UTC. All dates in PO are stored sans timezone, but the odds are that you're not in GMT. So we'd need to add some sort of local time zone setting and convert the date/times as appropriate.

390Feature RequestLowBackend / Coregps data in a spatial enabled database?Unconfirmed2.367 Task Description

I think it would be a cool feature to make PO spatial enabled. I mean that it would be possible to use gps data (geolocated images) to search for "photo taken near some point" or "all the photo taken near some street". Or simply to create an interface a la panoramio for look/find for pictures. It should be not to difficult to implement.

381Feature RequestLowUser Interface'last X photos'Unconfirmed2.362 Task Description

> 'last X photos' could easily be implemented as a wrapper in include/site.php, much like the site_display_random_photos() function already is.

369Bug ReportLowBackend / Coreadd a 'ignore' field to profile itemsNew2.35 Task Description

It's possible that you might not have a given piece of equipment (eg lens or body) any more, so add a flag to the equipment tables to have them ignore certian rows.

(This is precipitated by one of my lenses being broken in two; I plan to buy an identical replacement, but it'll have a different serial number...)

362Feature RequestLowBackend / CoreSearch with tag cloudUnconfirmedDevel1 Task Description

The search with tag cloud should only search for master versions or there should be an option to choose this.

358Feature RequestLowUser InterfaceAdd a 'fast tagging' UI to the listing pages.New2.354 Task Description

User would:

* Select some images
* Click on 'add keyword'
[ Window pops up prompting for a keyword ]
* User types in new ketword', clicks 'ok'
[ POST is sent in the background that adds a new keyword ]
* User is happy and sends PO developers lots of money.

327Feature RequestLowBackend / CoreFocal length statisticsUnconfirmed2.342 Task Description

A running statistic of most used focal lengths (can be expanded to any EXIF/IPTC property like most used lens, flash usage and so on).

Something like this:

Invaluable to decide which lens to buy next. :-)

316Feature RequestLowBackend / CoreAllow for sub-albums on the folder listing pages.New2.342 Task Description

My wife asked for this, actually.

Basically, it would be handy to assign an album to be a "child" of a given folder, instead of having a totally separate hierarchy.

I don't think the converse would be as useful.

315Feature RequestLowBackend / CoreAllow filtering/finding photos matching criteria in Pro...Unconfirmed2.341 Task Description

This one probably relates to other search-related Feature Requests. But to be specific.

When I'm displaying my Profile pages, I can see for example how many photos were shot with a specific lens, how many were shot with a certain camera, how many were shot on a particular film. But there is no quick way to display the photos matching the one criterion - it does not need to be a complex search, it should display photos only according to the one condition. It could be accessed by a simple link next to the count of photos (or clicking the count number itself?)

Thanks a lot

Jiri Vasina

312Feature RequestLowPrintSwitch internal barcode generator over to 'barcode writ...New2.33 Task Description

Pure postscript. We can simplify our current printing code a bit with this.

307Feature RequestLowBackend / CoreAdd a 'contact this user' form.NewDevel1 Task Description

It would need a CAPTCHA or the like, to prevent spam..

This way people can easily contact a PO user, without having to publish real contact information.

297Feature RequestLowDocumentationIn code documentation for PHP-Documentor or DoxygenNew2.331 Task Description

It would be great if PO could make use of automated documentation tools such as Doxygen or PHP-Documentor.

It is now a time consuming task to start understanding the inner workings of PO as you need both an overview of the database schema and the logic in the code.

With a bit more documentation about the files and the routines in PO solving bugs or contributing code will become much easier.

285Feature RequestLowUser InterfaceAutomatic slideshowUnconfirmedDevel2 Task Description

I'm very happy to have an automatic slideshow in photoview with the options: interval in seconds (1, 3, 5, 10, 15, 30), start and stop button. The slideshow should start at the current photo after pressing the start-button and automatically stop at the last photo of the current folder/album or by pressing the stop-button.

283Feature RequestLowImportAdd support for GREYCstorationNew2.331 Task Description

"Open source algorithm for image denoising and interpolation, using state-of-the-art image processing techniques."

It is VERY good.

245Feature RequestLowDatabaseMove 'access' and 'original' rights into 'files' table.NewDevel3 Task Description

This way individual versions and scaled resolutions can be given appropriate rights; If we have the individual files with fine-grained permissions, then we can do away with the 'original' field altogether, and the 'access' field can be inferred from these settings (via a DB stored procedure)

The original can be granted to be 'private' or 'protected', for example, while the watermarked preview is 'public', the non-watermarked preview is 'protected', and the thumbnail is 'public'.

If we have the individual files with fine-grained permissions, then we can do away with the 'original' field altogether.

If the viewer can access the thumbnails, then they can see the image on the browser list. If the viewer can access *any* of the preview images, the thumb links to the best-quality preview image. (ie resolution &| watermarking..). While looking at the preview, if they have access to the original, let them have it.

244Feature RequestLowBackend / CoreAllow for custom rendering pathsNew2.334 Task Description

Right now, it's:

thumb = raw -> scale -> colorspace (+extras) -> sharpen
prev = raw-> scale -> colorspace (+extras) -> sharpen -> watermark

IT would be REALLY nice if we could create customized processing paths; that is to say:

type_1 = raw -> scale -> b&w -> normalize -> sharpen
type_2 = raw -> scale -> add_border, add_text -> sharpen

This could either be on-demand, or automatic on uploads.

239Feature RequestLowBackend / CoreIntegrate full-text searchNewDevel2 Task Description

It's supposedly been part of the "core contrib" postgresql stuff since v7.4

This would let us perform a search on specific keywords across *all* indexed fields simultaneously.

216Feature RequestLowBackend / Coreshow disk usage in folder/album stats.NewDevel Task Description

it would be nice if we could show the disk usage for a given album/folder, including all of its subfolders.

Now that we have the files and their sizes stored in the database, this should be easy enough.

for example, folder #602 contains 363 images, taking up 2133MB of disk space.

214Feature RequestLowUser InterfaceSwitch to DHTML "tabs" on main photo page.New2.331 Task Description

To avoid having to do a page load/refresh for each of the sub-photo tabs (ie overview, technical, ratings, etc)

Eventually, I'd love to see the various sub-pages (eg rating.add/del/edit) also become "tabs" of the same master page; the majority of the code (and markup) on each page is duplicated. This may require us to use AJAX-type techniques however.

I'd still prefer basic photo navigation to be okay without javascript enabled.

213Feature RequestLowBackend / Coreadd mechanism for tracking models &| model releasesNew2.33 Task Description

It would be nice to know at a glance whether or not we have a model release for a given person in a given photo.

releases are usually obtained in relation to specific events, so this should tie into the datebook.

200Feature RequestLowImportAdd a 'copyright notice' and 'Original URL' to thumbnai...NewDevel1 Task Description

We already copy over exif metadata to the preview images (#163) but we really need an explicit copyright notice and also a URL.

185Feature RequestLowBackend / CoreDevelopment / printing informationUnconfirmed2.333 Task Description

I capture the majority of photos on film, process it myself, print or scan it myself. A lot of people my do the same. I would like to see an option to note down the way I developed the film. IMO it would be best done in the following fashion:

have a table with development instructions (could have fields like: "id"?, "name", "developer", "dillution", "time", "agitation", "temperature", "notes"). The editing would be done in a similar way as for locations. This info would than be linked (through the id field?) as a technical informaion for the photo.

If there was the possibility to enter these information, I would not have to have a separate database/excel sheets noting this down.

Thanks a lot


184Feature RequestLowUser InterfaceFormat (film size) editingUnconfirmed2.336 Task Description

There is no easy way to add/edit the list of film format sizes appart from editing the database (or using a tool like phpPgAdmin). It would be nice and IMO simple to implement a way to add/edit a Film size option.

180Feature RequestLowDatabaseBreak out the statistics dataNew2.336 Task Description

right now "view counts" are part of the "photo" table.

It might be beneficial to split stats to a separate table.. we can track additional fields (views vs downloads vs ??) and also track it for each photo version etc.

175Feature RequestLowUser Interfaceshow defined keywords in suplemental categoryUnconfirmed2.334 Task Description

it would ease handling, if one could see the yet defined keywords: useless creation according to misspelling (landscape versus landscapes) or different words for the same meaning.

162Feature RequestLowImportPTLens/clens supportNew2.331 Task Description

Adding support for PTLens would be really nice -- we could automagically correct lens distortion etc as part of the image generation workflow.

PTLens needs the camera and lens model and the focal length to work properly.

I think it can use EXIF data directly.

160Feature RequestLowImportbetter watermarkingNewStable5 Task Description

1) Allow per-folder watermarks.
2) When "regenerating thumbnails" on bulk update, allow:
- existing watermark
- remove watermark
- new watermark
3) When performing an image rotation, preserve the existing watermarks.

125Feature RequestLowBackend / CoreXML export should include "human-readable" values.NewStable Task Description

instead of <location id="23" />, we should say something like: <location id="23" name="downtown Nowhere, USA" />

for all non-textual datatypes.

Otherwise, we need to export the database tables for these values to mean anything, and this isn't currently possible.

100Feature RequestLowBackend / CoreContent-based searching that works. :)NewDevel2 Task Description

What we have now is a decent start, but it needs a backand (and instructions for making it all click together)

The eventual goal is to let us "search for images like this one" and have it JustWork(tm).

Right now GNU GIFT ( looks like the best bet as a backend; I just need to figure out how to make it all work.

Note that we really need search result caching to make this usable with a large image database.

89Feature RequestLowBackend / Coreallow advanced search on any database fieldAssignedDevel5 Task Description

RE-do the advanced search so it's more useful -- allow any field to be searched, not just title, caption, etc etc... then build the query on the fly. This is going to be complicated, but necessary...

11Feature RequestLowBackend / CoreClean up database conventionsAssignedDevel6 Task Description

Most database results are being indexed by position in a fixed array, rather than by column name. This may be slightly faster, but is hell to program around, especially when there can be twenty fields being returned.

* Convert all fetch_row() calls to fetch_assoc()

Secondly, using prepared statements would make the code a lot cleaner and eliminate the need to escape strings being passed in to the database. Unfortunately, this may require PHP 5.1 to pull off, depending on the maturity of the postgres bindings for earlier versions.

* Use prepared statements and SQL variables instead of inlined data.

8Feature RequestLowBackend / CoreBetter permission hierarchyAssignedDevel21 Task Description

Right now there are three permissions -- public, private, and "protected", which equates to "public only to all of my clients"

This is pretty lousy; I can certianly envision scenarios where you'd want a client to only see stuff that's specific to that client. To do this now, you have to create separate accounts and mark clients for those specific accounts.

I'd like to see a more generic hierarchical user/group model. Only the photo owner can make changes to their images, but the permission model would break down as follows:

Permissions would be granted on a per-group basis, and individual users can be members of various groups. "Guest" access would just be another group, and would default to assigned.

A permission is inherited; so if "guest" is granted access to the top-level folder, they would be allowed to see everything below it unless a more restrictive permission was specified. This is sort of similar to unix permissions with the "sticky bit" turned on.

This gets a little tricky when talking about folders vs albums, as a user may not be allowed to browse the folder, but the image could be included in a public album. When viewing the image from the folder perspective, it would be disallowed, but from the album perspective, it would be allowed.

EDIT: see

6Feature RequestLowBackend / CoreSpecify/store RAW image parametersNewDevel1 Task Description

Currently the RAW settings are shared across all images. It would be nice if each image would contain with it the settings used to process the image. The problem is that the decoder often has defaults which change over time, and re-generating the same image can result in differences.

Showing tasks 1 - 44 of 44 Page 1 of 1

Available keyboard shortcuts


Task Details

Task Editing