Commit Graph

57 Commits

Author SHA1 Message Date
Bharat Mediratta
c1140b5c0a Add Item_Model::url() and use it where appropriate. Cleans up some
grotty looking stuff in themes.
2008-12-31 07:13:34 +00:00
Bharat Mediratta
1579494ec4 Preliminary "Edit Permissions" dialog. You can't change permissions
yet, but it shows you which items have locked view perms.
2008-12-31 04:05:41 +00:00
Bharat Mediratta
ed8689f768 Expand on the maintenance code to make it more robust and give the
admin more control.  You can now track running tasks, resume stalled
tasks, cancel running tasks, and remove finished tasks.

Added graphics::compose() as a placeholder for future watermark
operations.

Added CSRF protection to maintenance urls.
2008-12-28 23:48:15 +00:00
Bharat Mediratta
74d4e7d505 First round of a task framework. Tasks are job definitions stored in
the database.  They're started with admin/maintenance/start/[task_name]
which sends down some JS/HTML which regularly pings the task at
admin/maintenance/start/[task_id] until its done.

The UI is still very rough.  It works, though!
2008-12-28 10:12:41 +00:00
Bharat Mediratta
dee20ed6a2 Added the concept of "permanent" messages that we show to admins. Use
this to show a "your thumbs/resizes are out of date" message whenever
we change the graphics rules.  Tweak watermark module to add graphics
rules whenever we make a change, which triggers the graphics module to
add the permanent message.
2008-12-26 05:43:06 +00:00
Bharat Mediratta
672eca5337 Lots of deltas rolled up into a bigger change. Sorry for the mess.
1) Deleted in-place-editing.  We'll be replacing this with a real edit
   system that groups settings together and is more coherent.

2) Tweaked the way that dialog boxes work to get the ajax stuff working
   again.  It's imperfect and does not work properly for uploading images.
   This is going to get redone also, but this is a good resting point.

3) Created edit forms for albums and photos.  Moved _update and _create out
   of Items_Controller and into the individual subclasses.

4) Created access::required which is a shorthand for:
    if (!access::can(...)) {
      access::forbidden();
    }

5) Added validation rules to Items_Model

6) Converted login to use the regular modal dialog approach in the theme.
2008-12-24 00:20:26 +00:00
Bharat Mediratta
2502240ce4 Add very simple graphics toolkits.
Track a set of rules in Graphics_Rule_Model which specify how we turn
original images into thumbnails and resizes.  There's one set of rules
that applies to every image in the Gallery.

Track the state of thumbs and resizes with a "dirty" bit.  The new
graphics helper manages the rules and can rebuild the thumbs and
resizes for any images that are considered "dirty".

Introduce the concept of an "album cover" which is an item that an
album points to.  We'll use that item as the source for the album's
thumbnail/resize.

Conflated with this change (sorry!) I also changed the Var table to
use module_name instead of module_id.  This may be marginally less
efficient, but it's much easier to follow in the database.
2008-12-23 04:14:07 +00:00
Bharat Mediratta
3ce32dab55 Report actual log entries in the "log entries" admin block. 2008-12-21 03:56:53 +00:00
Bharat Mediratta
f0b6333344 Add a logging facility, and instrument login/logout to use it. 2008-12-21 03:50:11 +00:00
Bharat Mediratta
99c481897b Add "created" and "updated" timestamps to the items table. 2008-12-20 22:49:32 +00:00
Bharat Mediratta
b37047ff55 Add Item_Model::viewable() which we can use to restrict any query to
just items viewable by the active user.  Ie:

  ORM::factory("item")
    ->where("name", "foo")
    ->find_all()

Would get all items with the name "foo".

  ORM::factory("item")
    ->viewable()
    ->where("name", "foo")
    ->find_all()

Restricts it to just the set of items that the user is allowed to see.
2008-12-17 22:39:33 +00:00
Bharat Mediratta
8630d61051 Change the album thumbnail/resize from _album.jpg to .album.pjg
because the leading underscore confuses the Kohana router.
2008-12-17 04:55:49 +00:00
Bharat Mediratta
fc7b78492b Separate thumbnails out into var/thumbs. This clears up some ambiguity in Item_Model and simplifies
file_proxy.  It also means we can stop munging file names in the var/resizes hierarchy.

In the process, rename "thumbnail" to "thumb" everywhere in honor of
Chad (well, ok because it's shorter)..
2008-12-17 04:45:35 +00:00
Bharat Mediratta
f4c6a20149 Remove error checking; if this fails let it fail noisily for now so that we can find problems faster. 2008-12-16 23:59:33 +00:00
Bharat Mediratta
d9e02a5d0c Various optimizations:
o Add model_cache::get() which caches models avoiding duplicate lookups
o Stop using ORM relationships for Item_Model::owner so that we can use caching
o For Item_Model::xxx_edit fields, don't make them editable for guests
o Other minor stuff.

These optimizations reduce the number of queries for a 9-photos page from ~200
to ~45.  Still way too many!
2008-12-16 04:29:00 +00:00
Tim Almdal
43e626f99e Change the resize option on creating thumbnails and resizes to Image::AUTO which will preserve the aspect ratio of the original image 2008-12-12 21:37:11 +00:00
Bharat Mediratta
2cf3233f54 Get rid of all pseudo users and pseudo groups, while preserving all
other functionality.  This makes our user/group and access code
fully consistent.
2008-12-12 00:59:30 +00:00
Tim Almdal
e84a0ebe46 Change the name of the implmentation of module parameters to module vars 2008-12-11 16:06:22 +00:00
Tim Almdal
7e5935d532 Create a module parameter table. This will be useful if a module wants to store information, but is not enough to warrant a table of its own 2008-12-10 19:44:58 +00:00
Bharat Mediratta
fef188d787 Leave all locking in ORM_MPTT::move_to, don't worry about it in
Item_Model::move_to, unless it turns out that we really need to.
2008-12-07 09:25:40 +00:00
Bharat Mediratta
055aa04497 Rename moveTo to move_to and extend the test a bit. 2008-12-07 08:23:22 +00:00
Tim Almdal
8d1790a0b4 * Add a moveTo unit test
* Pass the module::event(..., $data) by reference to the handlers
2008-12-05 04:56:33 +00:00
Tim Almdal
0f103b1c06 Moving albums around with a drag and drop interface seems to work and preserve the left right pointers.
* changed _lock and _unlock to protected methods lock and lock respectively
* added a moveTo method on the Item_Model
* Corrected the hole closure  on delete.
* added moveTo on the ORM_MTPP class
* Changed the rearrange javascript to do moves with ajax
2008-12-04 20:05:58 +00:00
Tim Almdal
5c095cbd78 Add unit tests to test growing and contracting the left and right pointers
Added a delete method to ORM_MPTT that contracts the tree when an item is deleted
2008-12-04 01:12:44 +00:00
Tim Almdal
9ae6acdc0a Before deleting an item, save the path to the image in the var directory as once the item is deleted, the $item->file_path() is no longer valid. 2008-12-04 00:14:52 +00:00
Bharat Mediratta
ccee9854c2 Rename file::unlink() to dir::unlink(). This creates an API that is
clearer about its actions, otherwise we may accidentally blow away an
entire hierarchy when we think we're deleting a single file (there's a
reason why rm won't let you delete dirs that aren't empty!)

Name it "dir" instead of "directory" because apparently "directory" is
already reserved.

Move the delete call out of Items_Controller and into the model.  The
model is responsible for keeping state integrity, not the controller.
2008-12-03 23:31:10 +00:00
Tim Almdal
3953dde2c6 The rearrange module will now add an album if you drag the "new album" onto the album tree. I haven't had a chance to figure out why the form does get any styling or why a textarea is no included as a list item. 2008-12-02 21:25:15 +00:00
Bharat Mediratta
91c4bda1ec Prototype access control model. There's much left to do, but it's a
working implementation.
2008-12-01 08:50:00 +00:00
Bharat Mediratta
4271f7702a Add access model (not fully baked yet).
Update scaffolding to allow addition of just albums (helpful for testing permissions)
2008-11-29 22:47:15 +00:00
Bharat Mediratta
8e6eff096b Don't add in-place-edit CSS unless there's a logged-in user. 2008-11-25 01:39:20 +00:00
Tim Almdal
d7288d33e6 Remove the has_many_and_belongs_to_many relations from the item model 2008-11-24 05:55:29 +00:00
Tim Almdal
ab20406ef2 Tag module database definitions 2008-11-23 18:00:44 +00:00
Tim Almdal
992cf22c79 Revert module block approach 2008-11-21 07:06:11 +00:00
Tim Almdal
b78cee6395 A look at away to allow modules to define html head contents (links and js) and also allow modules to contribute blocks to the layout. 2008-11-20 17:32:58 +00:00
Tim Almdal
d48d71a705 Correct typo 2008-11-20 00:22:36 +00:00
Bharat Mediratta
4a4eac31ad Create url::abs_site() and url::abs_file() to allow us to generate
full URLs with a clean API, and isolate the cruddy party where we have
to hardcode the server protocol into a single file.
2008-11-19 23:33:50 +00:00
Bharat Mediratta
1b36ce6c7e Fix broken path in url()
Fix some style issues
2008-11-19 22:47:30 +00:00
Tim Almdal
103bd8e8d2 Add the original item height and width to the item table 2008-11-19 22:45:30 +00:00
Tim Almdal
b3314fc1dc Update the media rss template to include the resize and the fullsize
added descendants by type method to the item model to allow for the selection of children by type
2008-11-19 18:23:30 +00:00
Tim Almdal
e14d5574b6 Cleanup media rss feed
added parameters to thumbnail_url and resizes_url to be passed to the url::base call to generate ful urls
2008-11-19 06:05:38 +00:00
Tim Almdal
c7b2090f0c add the mime type column on the item table 2008-11-19 03:29:53 +00:00
Bharat Mediratta
df4832bf6f Change Media_RSS_Controller so that it does not extend REST_Controller, since it
doesn't refer to a fixed resource or collection of resources.

Fix some minor bugs in the code so that we can actually generate a
feed.  It looks pretty cool!  Improved pagination links, but didn't actually test them.
2008-11-19 03:17:56 +00:00
Tim Almdal
ad7ace9b72 The continuing evolution of the slideshow...
1) added a mime_type property to the item module(no database change)
2) created a media_rss module
3) moved most of the functionality for the downloading the images to the media_rss module
2008-11-19 02:31:20 +00:00
Bharat Mediratta
db6061096e Item / Owner changes.
* Hardcode the item has_one owner relationship again
* Overload User_Model::__get to handle missing owners gracefully
* Fix Item_Controller to take the owner_id from the session or
  from the parent album when adding new albums and photos.
2008-11-15 08:44:01 +00:00
Felix Rabinovich
6dbf5ae172 Clean user / item relationship. Upload files gets the ownership of current user; and the views don't break if user module is not installed 2008-11-15 08:19:14 +00:00
Felix Rabinovich
7423c755c0 aliasing owner to user 2008-11-12 08:30:55 +00:00
Bharat Mediratta
950c58e6d3 Add support for in-place editing of data fields. 2008-11-08 09:28:11 +00:00
Bharat Mediratta
418c0aab69 Create permanent owner_id column in the item table, and use a soft
relationship to bind the two.  To do this, I overrode __get in
Item_Model so that $item->owner returns the appropriate User_Model.
2008-11-08 07:48:36 +00:00
Felix Rabinovich
28b739a210 Adding user (owner) to items; info module 2008-11-08 07:18:56 +00:00
Bharat Mediratta
ae00f73944 * Add thumbnail and resize dimensions to the item table and use them
properly in the theme.
* Move thumbnail and resize generation down into the model for
  consistency.
* Add a sample thumbnail for albums
* Fix a bug in the ORM to clear the cache when we reload an object.
* Add Kohana docs to the scaffold.
2008-11-05 09:42:47 +00:00