Commit Graph

189 Commits

Author SHA1 Message Date
Tim Almdal
b07bc1af08 Allow the administrator to set the number of tags to display in the cloud via the advanced settings. Fixes ticket #1649. 2011-04-22 16:15:56 -07:00
Bharat Mediratta
8cf066b838 Use Tag_Model::url() instead of hand creating tag urls, since the API
changed and that broke.  Fixe #1680.
2011-04-21 15:43:48 -07:00
Bharat Mediratta
5b927a7083 Guard against registered users removing tags from items they don't own. Fixes #1671. 2011-04-04 17:45:09 -07:00
Joe7
074f801acd Fix against Ticket #1666 2011-04-02 18:52:54 +02:00
Bharat Mediratta
fa6f233603 Centralize our encoding code into a new helpers and use
mb_convert_encoding if possible.  Build on the work in
c791ae96d5 by momo-i.  Fixes #1660.
2011-03-27 11:31:34 -07:00
Bharat Mediratta
423daa52d5 Update copyright to 2011. 2011-01-21 23:01:06 -08:00
Bharat Mediratta
ee13b934f4 Fix all the head() and admin_head() theme callbacks to return the
results of the $theme->css() and $theme->script() calls.  This handles
the case where combining scripts/css returns HTML instead of putting
it in the queue for combination.  Fixes #1611.
2011-01-15 13:14:43 -08:00
Bharat Mediratta
966dee8628 Move tag count management into the model. Fixes #1586. 2011-01-07 23:38:08 -08:00
Bharat Mediratta
4756db435c Minor style cleanup 2011-01-07 20:09:27 -08:00
Chad Kieffer
06d94065ce Updates per Bharat's pull request review. Renamed info_block_metadata event to info_block_get_metadata. 2011-01-06 21:03:19 -07:00
Chad Kieffer
2e5d4a59b1 Display an item's tags in the info block. 2011-01-04 19:52:25 -07:00
Bharat Mediratta
b42fcb9cda Use db::expr instead of "new Database_Expression". Resolves #1560. 2010-12-28 23:10:05 -08:00
Bharat Mediratta
add586bbb1 Create a task to clean up tag counts and delete tag with no associated
items.  Fixes #1488.
2010-11-14 15:53:30 -08:00
Bharat Mediratta
d49a6dcc99 Create a new task to resync tag task counts and delete tags that have
no associated items.
2010-11-14 15:45:30 -08:00
Bharat Mediratta
7efa9a5b87 Fix two issues with item deletion:
1) We're compacting tags on every deletion which is slow.  Since we delete
   albums in batch, we should just do one tag compaction at the end.  Fixes
   #1487.

2) Issue introduced in 3d952f41c8 where
   we trigger an item_related_update in tag::clear_all().  Since
   tag::clear_all() is called when we delete an item, this causes
   the search module to attempt to index a deleted item.  Move that
   triggering upstream.
2010-11-14 15:01:29 -08:00
Bharat Mediratta
3d952f41c8 Fix a bug in the way that we add tags that causes it to be really slow
when adding a tag to lots of items.  Tag_Model::save() would call
item_related_update for every tag related to an item upon save which
is an O(N!) operation.  Fixes ticket #1412.
2010-11-08 22:16:57 -08:00
Bharat Mediratta
db75ac642a Use the title of the root album as the site title for all RSS feeds.
Fixes ticket #1307.
2010-09-04 13:40:39 -07:00
Bharat Mediratta
5eb4b8ff6c Check for the existence of uploadify() in the add_photos_form. The HTML uploader won't have that field. 2010-07-13 12:16:52 -07:00
Bharat Mediratta
f75ce45b6b When detecting encodings, give priority to ISO-8859-1 which seems to
solve the umlaut problem in IPTC data.  Fixes ticket #1144.
2010-06-27 12:14:56 -07:00
Bharat Mediratta
5335e4c0b4 Fix the autocomplete callback in item_edit_form(). We were
incorrectly matching the form input in the jQuery selector.  Did this
ever work?  Fixes ticket #1168
2010-06-27 11:25:31 -07:00
Bharat Mediratta
48af5e6b50 Rename "children" to "items" in our feed view because it makes more
semantic sense.
2010-06-20 17:25:23 -07:00
Bharat Mediratta
f451804c6d $request->params might not exist. 2010-06-19 15:00:44 -07:00
Tim Almdal
84c8d1c79a Fix ticket #1155. For compatibility with gallery2 increase the size of the tag name field from 64 bytes to 128 bytes. 2010-06-18 06:51:02 -07:00
Bharat Mediratta
bd496cc95c Add start/num query parameters to tags::get() 2010-06-16 16:09:29 -07:00
Chad Kieffer
67ced571c7 HTML validation and accessibility fix, add id attr to add tag input. 2010-04-21 22:48:33 -06:00
Bharat Mediratta
5679e30ef6 REST changes: Allow PUT and POST requests to modify members, not
just entity.

TESTS ARE NOT UPDATED YET.

- Fix item_rest::get() to maintain the proper sort order, which
  requires duplicating some Item_Model code.

- Elide "weight" from the REST version of item

- Adjust the weight of members according to the order they're returned
  from the client.  You can't add or remove members here, you can only
  reorder them.

- Changed the wire protocol to handle more complex values.
  Now "entity" and "members" are JSON encoded.  The Gallery3
  helper does this correctly.

- Changed the wire protocol for tag_item -- now it stores the
  tag and item urls in the entity, not as members.  This is more
  consistent.

- Added missing security for renaming and deleting tags.

- Got rid of vestigial tag_rest::post().  We add/remove tags
  via the relationship.
2010-04-04 11:55:54 -07:00
Bharat Mediratta
c3c2b45280 Update the copyright to 2010. It's only 3 months into the year :-) 2010-03-03 10:15:34 -08:00
Andy Staudacher
7099fc71f1 Fix for ticket 1004: Replace all uses of split with explode (none actually required regular expressions). Thanks to Brian Hartsock for providing a patch! 2010-02-06 13:05:44 -08:00
Bharat Mediratta
c050acf30a Fix lots of warnings that pop up when we're in E_STRICT mode. They're
mostly issues around uninitialized variables, calling non-static
functions in a static context, calling Session functions directly
instead of on its singleton, passing non-variables by reference, and
subclasses not using the same interface as the parent class.
2010-01-31 16:07:41 -08:00
Bharat Mediratta
923a515ffb The user must have some edit permission somewhere to create a tag 2010-01-30 11:48:43 -08:00
Bharat Mediratta
a04d0d2789 Add missing permission checks.
Make the tag relationship an associative array.
2010-01-29 19:42:38 -08:00
Bharat Mediratta
4b32a71afc Convert back to using ORM::factory(..., $id) instead of calling where(). 2010-01-27 22:34:11 -08:00
Bharat Mediratta
ec0f89f10a Change "resource" to "entity" in REST responses. They're all
resources, but we differentiate resources as collections and entities.
2010-01-27 21:40:48 -08:00
Bharat Mediratta
f268128043 Add support for adding tags in the item_tags and tag_items
relationship collections.
2010-01-26 00:24:10 -08:00
Bharat Mediratta
cc79abd0af Simplify tag::add(). 2010-01-24 14:00:07 -08:00
Bharat Mediratta
a609694018 Update tests for recent REST changes. 2010-01-23 12:13:14 -08:00
Bharat Mediratta
eea27c39f1 Create symmetrical relationship collections: item_tags and tag_items
Now when we represent a relationship collection we can refer to it in
proper semantic terms.
2010-01-22 09:43:02 -08:00
Bharat Mediratta
a445a64bcb Return the url of the newly created item from post(). 2010-01-22 01:10:00 -08:00
Bharat Mediratta
bcf1caad14 Reshape the rest code to be more consistent with regards to
relationships.  Now when you view a resource, it has 4 top level
elements:

url: the url of this resource
resource: array of key value pairs describing the resource
members: array of urls to members of this collection
relationships: array of array of members.

Relationships are a special type of collection that links two
different resources together.  To remove a relationship, just
DELETE its url.  To create a relationship, POST to its
collection.

Individual modules can add their own relationships to any
resource via a callback mechanism.

Example:
  Array(
    [url] => http://g3.com/rest/item/1
    [resource] => Array (
      [id] => 1
      [album_cover_item_id] => 4
      [captured] =>
      [created] => 1264056417
      [description] =>
      [height] =>
      ...
    )
    [members] => Array(
      [0] => http://g3.com/rest/item/2
      [1] => http://g3.com/rest/item/3
      [2] => http://g3.com/rest/item/4
      [3] => http://g3.com/rest/item/5
      ...
    )
    [relationships] => Array(
      [tags] => Array (
      [0] => http://g3.com/rest/tag_item/2,1
      [1] => http://g3.com/rest/tag_item/23,1
      )
    )
  )
2010-01-22 00:27:00 -08:00
Bharat Mediratta
3665391f8b Guard against division by zero. 2010-01-21 21:29:42 -08:00
Bharat Mediratta
3d4a6d6336 Remove unused untagging code from put()
Add access permissions to delete()
Remove unnecessary return value from delete()
2010-01-20 21:14:40 -08:00
Bharat Mediratta
0b5ce9dbc1 Fix a typo: $item -> $tag. 2010-01-19 01:36:15 -08:00
Bharat Mediratta
549b88643a Fix a typo "tags" -> "tag" 2010-01-19 01:35:59 -08:00
Bharat Mediratta
c590fed132 Change rest::url() to take a module name and a resource. The module
does the rest.  This function is symmetrical to rest::resolve.
2010-01-19 01:33:57 -08:00
Bharat Mediratta
9e9c5397b7 Qualify the Bad Request output when the name is missing 2010-01-17 16:59:25 -08:00
Bharat Mediratta
bb79a1455a Remove unnecessary comment. 2010-01-17 16:55:11 -08:00
Bharat Mediratta
31454d37b3 Improve REST tag support.
- Add support for retrieving a list of members from a collection
- Implement put(), post() and delete() for tags.
- Use tag_rest::delete() as a way to remove members from the tag collection
2010-01-05 13:41:06 -08:00
Bharat Mediratta
3fffa18e65 Further progress on refining the REST server side code.
1) Deal in fully qualified URL resources through the rest
   interface.  All rest methods are now passed the complete url in
   request->url.

2) Create rest::resolve() which lets individual resource definition
   code convert a full url into the appropriate matching resource.
   Implement gallery_rest::resolve() and tag_rest::resolve()

3) Reimplement tag_rest's get() and post() methods.  They're much
   simpler now.

4) Implement the tags_rest helper which supports working with the
   entire tags collection.
2010-01-04 21:48:21 -08:00
Bharat Mediratta
0e3327bca7 Simplify the REST API code. Here's what I did:
1) Simplify gallery_rest to return flat models, no children and do no
   validation for now.
2) Flatten the REST replies and use HTTP codes to indicate
   success/failure instead of additional status messages.
3) Use the message and error code support in the base Exception class,
   instead of brewing our own in Rest_Exception.
4) Get rid of rest::success() and rest::fail() -- we only need
   rest::reply() since all failures are covered by throwing an
   exception.
5) Get rid of /rest/access_key and just use /rest for authentication.
6) Inline and simplify rest::normalize_request since we only use it once
7) Change rest::set_active_user to succeed or throw an exception
8) Extract Rest_Exception::sendHeaders into rest::send_headers()

Here's what's currently broken:
1) Data validation.  There currently is none
2) Logging.  That's gone too
3) image block and tag code is broken
4) Tests are broken
5) No movie support
2010-01-03 20:30:35 -08:00
Tim Almdal
5b9801092b Remove the Rest_Exception::trigger method. 2010-01-02 16:55:06 -08:00