Photo Organizer

This is the bug tracker for Photo Organizer.

ID Task Type  asc Severity Category Summary Status Reported In
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...)

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
Eckhard

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) {

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.place||view_location.city||view_location.state||view_location.country)");

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, location.place, location.city,
COALESCE ( (select value from state where state.identifier=location.state), '' ) as state,
(select value from country where country.identifier=location.country) as country,
users, last_modified_date,
latitude, longitude, private
from location;

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 http://po.shaftnet.org/new_permission_model

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.

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...

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.

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.

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 (http://www.gnu.org/software/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.

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.

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.

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.

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.

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.

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.

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.

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.

239Feature RequestLowBackend / CoreIntegrate full-text searchNewDevel2 Task Description

http://www.sai.msu.su/~megera/wiki/Tsearch_V2_Readme

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.

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.

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.

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.

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.

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.

358Feature RequestLowUser InterfaceAdd a 'fast tagging' UI to the listing pages.New2.354
393Feature RequestLowBackend / CoreUse GPS timestamp when importing, if present.New2.361
395Feature RequestLowBackend / CoreConvert more pages to a POST/REDIRECT/GET output.New2.36
407Feature RequestLowBackend / CoreAdd a 'start/end date' to folder/albumsNew2.361
411Feature RequestLowBackend / CoreOpenID supportNew2.361
464Feature RequestLowBackend / CoreAdd support for "adult" filtersNew2.371
175Feature RequestLowUser Interfaceshow defined keywords in suplemental categoryUnconfirmed2.334
184Feature RequestLowUser InterfaceFormat (film size) editingUnconfirmed2.336
185Feature RequestLowBackend / CoreDevelopment / printing informationUnconfirmed2.333
285Feature RequestLowUser InterfaceAutomatic slideshowUnconfirmedDevel2
315Feature RequestLowBackend / CoreAllow filtering/finding photos matching criteria in Pro...Unconfirmed2.341
327Feature RequestLowBackend / CoreFocal length statisticsUnconfirmed2.342
381Feature RequestLowUser Interface'last X photos'Unconfirmed2.362
390Feature RequestLowBackend / Coregps data in a spatial enabled database?Unconfirmed2.367
397Feature RequestMediumImportImport of metadata from programs like Raw TherapeeUnconfirmed2.367
Showing tasks 1 - 40 of 40 Page 1 of 1

Available keyboard shortcuts

Tasklist

Task Details

Task Editing