summaryrefslogtreecommitdiff
path: root/modules/gallery/helpers/item.php
AgeCommit message (Collapse)Author
2010-07-27Don't invoke a graphics toolkit when setting the album cover from aBharat Mediratta
clean thumbnail; we can just copy it over. Should be a decent perf improvement in many cases. Fixes ticket #1255.
2010-07-10Pass along the from_id in item::get_delete_form() and then check toBharat Mediratta
see if we're deleting the album we're inside in quick::delete. If we delete the album we're currently viewing, redirect to the parent. This fixes ticket #1185.
2010-06-20Add a loading indicator to the delete form by tagging some JS on atBharat Mediratta
the end which triggers .gallery_show_loading(). Not a complete fix for #817 but it's a start and it takes care of one place where we have a long running process.
2010-06-15Revert "Change the item rest update processing to call theBharat Mediratta
item::move(source, target) helper when the parent member has changed. Using the move method insures that names and slugs that could conflict in the target album are resolved properly. Changed the item::move method so it returns a message to be displayed if the caller chooses. And changed the move controller to display the message returned by the move if the item name was renamed as part of the move." Rolling this back for a couple of reasons: 1) Bug in move.php ("message.info" is not a function name) 2) Having the message come back from the API call as a side-effect is sloppy. We should find a cleaner way to do this checking. 3) having item::move() call save() on any changed values in the ORM is counter-intuitive. Move should move, save should save. I think the right approach here is to roll the move() code properly into save(). This reverts commit 2492280cc0ec9eb64a8daeccc7b5698ece7fea66.
2010-06-15Revert "Fix for ticket #1118. Create a item::save_with_retries helperBharat Mediratta
method, which encapsulates saving an item and handling name and slug conflicts. Call this instead of doing a save directly." Rolled this back because it fails KISS. We already have an API for saving models with Item_Model::save() that's consistent with all of our other model code. Adding a new way to save items is confusing and inconsistent. This reverts commit 9504f71efcadc7ed27f6f09e5d663e8025bf3b86.
2010-06-15Fix for ticket #1118. Create a item::save_with_retries helper method, which ↵Tim Almdal
encapsulates saving an item and handling name and slug conflicts. Call this instead of doing a save directly.
2010-06-15Change the item rest update processing to call the item::move(source, ↵Tim Almdal
target) helper when the parent member has changed. Using the move method insures that names and slugs that could conflict in the target album are resolved properly. Changed the item::move method so it returns a message to be displayed if the caller chooses. And changed the move controller to display the message returned by the move if the item name was renamed as part of the move.
2010-06-10Change the pattern used to convert the file name to a title. Fixes ticket#1061Tim Almdal
2010-06-05item::random_query() doesn't need to take a "where" clause becauseBharat Mediratta
it's returning a query, so the caller can add the where clause himself. This makes for a cleaner API.
2010-03-03Update the copyright to 2010. It's only 3 months into the year :-)Bharat Mediratta
2010-02-09Rename item name and slug if necessary to avoid a conflict when weBharat Mediratta
move photos. Fixes ticket #957.
2010-01-20Two fixes:Bharat Mediratta
1) Don't call ORM_MPTT::move_to() directly. Use the new model-based-validation approach of changing the parent_id and saving. 2) Item_Model::parent() can return null; check for it.
2010-01-19Don't try to set the album cover for the grandparent if we don't have edit ↵Bharat Mediratta
permissions for it.
2010-01-14Begin the process of converting to model based validation. RightBharat Mediratta
now only Albums_Controller::update() supports the pattern. All form and controller based validation happening when editing an album has been moved over. Model based validation means that our REST controllers share the same validation as web controllers. We'll have consistency enforced at the model level, which is a Good Thing. The basic pattern is now: 1) Rules are in the model 2) ORM::validate() (which is called by ORM::save() but you can call it directly, too) checks the model for all the rules and throws an ORM_Validation_Exception if there are failures 3) Actions are no longer taken when you call Item_Model::__set(). Instead, they're all queued up and executed when you call Item_Model::save(). Notes: - item::validate_xxx() functions are now in Item_Model:: - We still call $form->validate() because the form can have rules (and forms triggered by events will likely continue to have rules.
2010-01-08Move the random image functionality into the gallery REST helper sinceBharat Mediratta
choosing a random image is essentially a function on an item collection. Also implemented a bunch of other query filters for item collections. Created item::random_query() as a way of generating a reasonable starting point for random queries.
2010-01-08Remove debug code.Bharat Mediratta
2010-01-08Add item::random() to return a random Item_Model.Bharat Mediratta
2009-12-30Rollback the refactoring of the update into a helper method. Also remove the ↵Tim Almdal
refactoring for check for commits
2009-12-27Clean up validation the check for duplicate names or slugs, finish ↵Tim Almdal
converting the rest API to Kohana 2.4
2009-12-26Forgot to commit local changes to item helper for K2.4Tim Almdal
2009-12-26Merge branch 'master' into talmdal_devTim Almdal
Conflicts: modules/gallery/controllers/albums.php modules/gallery/controllers/movies.php modules/gallery/controllers/photos.php
2009-12-22Add merge_or_where() to MY_Datatabase_Builder and use that instead ofBharat Mediratta
or_where() for compatibility and convenience. Caught by failing unit tests.
2009-12-09Refactor the code to check for name or slug conflicts and to update code out ↵Tim Almdal
of {Albums|Photos|Movies)_Controller and into the item helper so we can reuse it from the rest put handler.
2009-12-06Remove the hidden form variable _method which was used in the no longer rest ↵Tim Almdal
controllers.
2009-12-06Further simplifications to viewable(). Stop trying to optimize forBharat Mediratta
the case where we just have one restriction, it's unnecessary.
2009-12-06Get rid of unused _method param in the item edit form.Bharat Mediratta
Fix viewable() to properly OR view restrictions together.
2009-11-26Convert some more Database::instance() calls to db::build() form.Bharat Mediratta
2009-11-25ORM::orderby -> ORM::order_byBharat Mediratta
2009-11-25Preliminary work to cut over to Kohana 2.4Bharat Mediratta
- Kohana::log() -> Kohana_Log::add() - Kohana::config_XXX -> Kohana_Config::instance()->XXX - Implement View::set_global in MY_View - Updated Cache_Database_Driver to latest APIs - ORM::$loaded -> ORM::loaded() - Updated item::viewable() to use K2.4 parenthesization
2009-11-17Redesign the way that we consider page types to create buckets of pageBharat Mediratta
types, and a subtype for specifics. Currently the top level bucket collection, item, other Here are the core subtypes so far: collection: album, search, tag item: movie, photo other: login, reset, comment-fragment, comment It's legal to create new page_subtypes whenever you want. Use the appropriate page_type to get the coarse grain behavior that you want.
2009-10-22Change the name of identity library from Identity to IdentityProvider. ↵Tim Almdal
Create a helper class called identity to simplify call the Identity Provider. Move the contents of MY_Session.php to the new helper class and remove the MY_Session class
2009-10-16Remove all non Identity API methods from Identity.php. Created an ↵Tim Almdal
MY_Session class to provide the user state changes in the session and a login.php helper that has the login form.
2009-10-16Start simplifying the interface by moving the static methods from user.php ↵Tim Almdal
and group.php. Tried creating a identity helper, but the helper identity.php was confused with the library Identity.php. So got around this by making the methods on Identity static and calling the instance within the static methods. Also temporarily moved the user.php and group.php back into the user module.
2009-10-04Renamed most, if not all css selectors from gName to g-name. Moved a few ↵Chad Kieffer
shared images from wind to lib. Deleted unused images in the admin_wind. This will likely break a few ajax features.
2009-09-08Fix line > 100 chars.Bharat Mediratta
2009-09-08Replace two preg_replace() calls with a single trim() call.Bharat Mediratta
2009-09-08Update item::convert_filename_to_slug() to eliminate leading andBharat Mediratta
trailing hyphens.
2009-09-08Move specialized (pretty) url generation back into Item_Model so thatBharat Mediratta
we're not relying on overriding url::site() to do tricks around item urls. This means that you won't get item urls by doing url::site("albums/37"), for example, but it also means that we won't get pretty urls where we don't expect them (like in the action of a <form> element). Incidentally, this will help us move over to using the slug format because if you've got a bad character in a url, the edit forms will now work on it since they'll be id based.
2009-09-07Remove unused item::validate_no_name_conflict() and a debug line.Bharat Mediratta
2009-09-07Add item::validate_url_safe() with a test.Bharat Mediratta
2009-09-07Add support for a per-item "slug" which will be the user-visible urlBharat Mediratta
component for that given item. Album hierarchies are represented by nested slugs. By default, we convert the filename to a slug when you create an album, photo or movie.
2009-08-29Fix for 641... extend viewable functionality to comments. Viewable unit test ↵Tim Almdal
is not working.
2009-08-19Change the setting of page type from "item" to "photo". Thre is no page typeTim Almdal
of item. All other references use photo for non album and non dynamic pages. Signed-off-by: Tim Almdal <tnalmdal@shaw.ca>
2009-08-18Refactor the get maximum weight functionality into a method in the item ↵Tim Almdal
helper, so that we can use it else where (i.e. the new organize module) Signed-off-by: Tim Almdal <tnalmdal@shaw.ca>
2009-07-17Change model_cache::clear() API to clear everything. This preventsBharat Mediratta
old ORM relationships from hanging around, which was causing problems when doing MPTT manipulations (resulting in incorrect permission propagation-- very bad!)
2009-06-14Switch quick delete from JS confirm to jQuery UI dialog, closes ticket #355.Chad Kieffer
2009-06-01Security pass over all controller code. Mostly adding CSRF checkingBharat Mediratta
and verifying user permissions, but there are several above-the-bar changes: 1) Server add is now only available to admins. This is a hard requirement because we have to limit server access (eg: server_add::children) to a user subset and the current permission model doesn't include that. Easiest fix is to restrict to admins. Got rid of the server_add permission. 2) We now know check permissions at every level, which means in controllers AND in helpers. This "belt and suspenders" approach will give us defense in depth in case we overlook it in one area. 3) We now do CSRF checking in every controller method that changes the code, in addition to the Forge auto-check. Again, defense in depth and it makes scanning the code for security much simpler. 4) Moved Simple_Uploader_Controller::convert_filename_to_title to item:convert_filename_to_title 5) Fixed a bug in sending notification emails. 6) Fixed the Organize code to verify that you only have access to your own tasks. In general, added permission checks to organize which had pretty much no validation code. I did my best to verify every feature that I touched.
2009-05-27Restructure things so that the application is now just another module.Bharat Mediratta
Kohana makes this type of transition fairly straightforward in that all controllers/helpers/etc are still located in the cascading filesystem without any extra effort, except that I've temporarily added a hack to force modules/gallery into the module path. Rename what's left of "core" to be "application" so that it conforms more closely to the Kohana standard (basically, just application/config/config.php which is the minimal thing that you need in the application directory) There's still considerable work left to be done here.