Commit Graph

3624 Commits

Author SHA1 Message Date
Bharat Mediratta
5a8449f16d Convert Photos_Controller::update() to use model based validation. 2010-01-16 11:12:27 -08:00
Bharat Mediratta
9f6dba7238 Check for illegal extensions in valid_name()
Fix a bug where we were not calling valid_data_file correctly.
2010-01-16 11:12:19 -08:00
Bharat Mediratta
bf085a1a17 Convert photo uploading over to the new model based validation
approach.

- Rearrange Simple_Uploader_Controller::add_photo() to validate
  the form early in the process, and switch to using model based
  validation.

- Move thumbnail generation into gallery_event::item_created() so
  that it's decoupled from the model.

- Delete photo::create() and move all of its logic into
  Item_Model::save().

- Add Item_Model::$data_file to track the data file associated
  with new movies and photos.

- Do some cleanup on the validation callbacks -- it turns out the
  2nd argument is the field name not the value.
2010-01-16 00:51:31 -08:00
Bharat Mediratta
d7eb102312 Merge branch 'master' of git@github.com:gallery/gallery3 into bharat_dev 2010-01-16 00:19:47 -08:00
Bharat Mediratta
2c2c77ea39 Remove debug code. 2010-01-16 00:19:35 -08:00
Bharat Mediratta
434d351b2f Merge branch 'master' of git@github.com:gallery/gallery3 into bharat_dev
Conflicts:
	modules/gallery/models/item.php
2010-01-16 00:15:23 -08:00
Bharat Mediratta
dcf4b5e71a Don't pass MY_ORM::original() to update event handlers, since after
parent::save() it'll be reset.  Clone it first.

This is an alternate fix for #978.
2010-01-16 00:13:28 -08:00
Bharat Mediratta
9f03d36d6e Don't use MY_ORM::original() here since the values may not have
changed since the last save.  Instead, use the original ORM passed in.
2010-01-16 00:10:55 -08:00
Bharat Mediratta
00c73a4b07 Revert "Fix for ticket #978. Don't reset the original property as part of the save processing, because that will overwrite the original values with all the new values. The problem with the original approach is that when changed event handlers used ->original(), it had already been reset as part of the save processing. Went back and forth on either leaving this alone and forcing callers to save the original prior to calling the save function, but there were a few event handlers that used ->original(). This seemed the easier change. So to reset the original you need to call reload() or clear(). There is now an optional parameter on the reload to only reload the original."
This reverts commit daeaca110d.
2010-01-15 23:53:43 -08:00
Bharat Mediratta
99073c3e20 Revert "Did the old commit then save trick"
This reverts commit e41ad23a8e.
2010-01-15 23:53:35 -08:00
Bharat Mediratta
654b103355 Validate the model type. 2010-01-15 13:41:46 -08:00
Bharat Mediratta
916da15cbb Merge branch 'master' of git@github.com:gallery/gallery3 into bharat_dev 2010-01-15 13:36:16 -08:00
Bharat Mediratta
1066e64354 Call parent::save() before releasing the lock to make creating the hole and filling it an atomic operation. 2010-01-15 12:41:22 -08:00
Bharat Mediratta
50e3cc5837 Move model business logic out of album::create() and into
Item_Model::save().  This makes creating albums similar to editing
them and makes it difficult to create an album poorly.  I expect to be
able to remove a lot of code from the photo and movie helper because
it's duplicated here.

In order to do this, I refactored ORM_MPTT::add_to_parent() into
ORM_MPTT::save() so we now add it to the parent when we do save.  This
allows us to call save() only once which saves a database call per
add.

The Albums_Controller logic is roughly the same as before.

Haven't updated the tests yet, they're going to fail miserably since
many of them depend on album::create() which is now gone.
2010-01-15 12:15:20 -08:00
Bharat Mediratta
5809949ae8 Don't use Input directly to get album names, etc. Use the form fields. 2010-01-15 11:28:05 -08:00
Bharat Mediratta
94f58e8b65 Move setting Item_Model::rand_key into Item_Model::save() since it's
business logic.
2010-01-15 10:48:39 -08:00
Bharat Mediratta
1a557ce5a6 Use $value in valid_xxx() functions instead of the member field. They're equivalent, but it's more intuitive this way. 2010-01-15 10:36:56 -08:00
Bharat Mediratta
b3e328c9ff Begin the process of converting to model based validation. Right
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-14 21:04:09 -08:00
Tim Almdal
260660b2f6 Somemore K24 migration holdovers. need to specify the where statement with operands. '=' is no longer assumed. Fixes ticket #979 2010-01-13 12:08:56 -08:00
Tim Almdal
e41ad23a8e Did the old commit then save trick 2010-01-13 11:47:27 -08:00
Tim Almdal
daeaca110d Fix for ticket #978. Don't reset the original property as part of the save processing, because that will overwrite the original values with all the new values. The problem with the original approach is that when changed event handlers used ->original(), it had already been reset as part of the save processing. Went back and forth on either leaving this alone and forcing callers to save the original prior to calling the save function, but there were a few event handlers that used ->original(). This seemed the easier change. So to reset the original you need to call reload() or clear(). There is now an optional parameter on the reload to only reload the original. 2010-01-13 11:27:09 -08:00
Tim Almdal
639f1e741a Put quotes around the item titles in all the messages and more importantly actually display the original's title properly. Fixes ticket #966, but does now show us ticket #978 2010-01-12 11:42:31 -08:00
Tim Almdal
e81acce985 If the user hits enter in the search text field, then cancel the submission, because the search is done in the browser and the the enter will unexpectedly reload the root directory. 2010-01-12 09:42:06 -08:00
Tim Almdal
42d7c9590e Correct the "l10n_client_data[index] is undefined" error. 2010-01-12 08:58:49 -08:00
Tim Almdal
9ff9d70fe2 Some whitespace and syntax corrects 2010-01-12 08:32:33 -08:00
Tim Almdal
3dfac5884f Add a css id attribute to the i10n-edit-translation element. Fixes ticket #969. 2010-01-12 08:31:28 -08:00
Tim Almdal
3b26d87f3a Reformat the string list so that the search box does not get push off the end of the page. 2010-01-11 14:22:16 -08:00
Tim Almdal
2b283f4d01 Remove the translation submit button from translation search form. Fixes ticket #975 2010-01-11 13:26:10 -08:00
Tim Almdal
284e14d50e Remove the automatically marking the resizes dirty line as this could cause alot of pain to some installations 2010-01-11 10:48:27 -08:00
Tim Almdal
3ab6c4915a Fixes ticket #671.
In the graphics_rules table height and width set the maximum height and width
values and should be equal.  Initially, the height on the resize target rule was
less than the height, which artificially constrained images in portrait mode.

**Note"" this fix requires an upgrade to version 22.  All the resizes will be flagged
dirty.
2010-01-11 10:42:39 -08:00
Bharat Mediratta
8fa9ba636b Merge branch 'master' of git@github.com:gallery/gallery3 into bharat_dev 2010-01-10 10:19:46 -08:00
Tim Almdal
a11bf29507 Fix for ticket #972 and more. In Kohana 2.4, ORM::delete_all ignores any where
clauses and deletes all the entries in the table unless an array of id's are
passed as the parameter.  This fix used the Database_builder to specify any where
conditions. Thanks psvo for find the first one. :-)
2010-01-09 23:57:16 -08:00
Bharat Mediratta
5a8d48a869 Merge branch 'master' of git@github.com:gallery/gallery3 into bharat_dev 2010-01-08 15:37:24 -08:00
Bharat Mediratta
9864ab4b27 Move the random image functionality into the gallery REST helper since
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-08 14:56:08 -08:00
Bharat Mediratta
fb65a0a585 Remove debug code. 2010-01-08 14:20:15 -08:00
Bharat Mediratta
ad3e003e48 Remove stray semicolons. 2010-01-08 14:04:41 -08:00
Tim Almdal
bd9f945e3f Remove the display of the "body_attributes" div when in debug mode. debug mode is by default set up to add new div's to display the location of the content. "body_attributes" are attributes on the body tag and trying to add content introduces an extra > in the html stream. 2010-01-08 12:49:16 -08:00
Tim Almdal
2ab6eda728 Change file proxy to url encode the path components instead of the entire path. Otherwise, we will encode the slashes and won't find the item. 2010-01-08 12:18:46 -08:00
Bharat Mediratta
895ac72e70 Add item::random() to return a random Item_Model. 2010-01-08 11:49:18 -08:00
Bharat Mediratta
3fc6dab7ac Expect merge_where and merge_or_where to handle empty tuples. 2010-01-08 11:49:01 -08:00
Bharat Mediratta
2d8843ba4d use item::random() to get the random item. 2010-01-08 11:48:44 -08:00
Bharat Mediratta
a2f5ace493 Change merge_where() and merge_or_where() to ignore empty tuples so that chaining is easier. 2010-01-08 11:47:00 -08:00
Bharat Mediratta
14f6e5f6d3 Allow the "name" param in get() so that you can restrict the query to children with a given name. 2010-01-08 11:12:02 -08:00
Bharat Mediratta
d43badb4ec Change url parsing in resolve() to ignore the query string. 2010-01-08 11:11:38 -08:00
Tim Almdal
46e33f1bbe Fix for ticket #933. Move the inclusion of the piclens script from the theme::header callback to the theme::page_bottom callback. 2010-01-08 11:06:54 -08:00
Tim Almdal
58620c5faa Use rawurlencode to remove any encoding that the browser may have added. Fixes ticket #954. 2010-01-07 10:55:43 -08:00
Bharat Mediratta
c711bf1b1f Merge branch 'master' of git@github.com:gallery/gallery3 into bharat_dev 2010-01-07 10:41:19 -08:00
Bharat Mediratta
10c05c855a Merge branch 'master' of git@github.com:gallery/gallery3 2010-01-06 17:05:00 -08:00
Bharat Mediratta
058a84ed76 Convert ORM::in() to ORM::where(.., "IN", ..) for K24 compatibility. 2010-01-06 17:04:44 -08:00
Tim Almdal
188f418a54 Correct the controller_auth_data golden file to reflect that the csrf is not longer considered dirty in the logout controller. 2010-01-06 11:42:44 -08:00