Commit Graph

3775 Commits

Author SHA1 Message Date
Bharat Mediratta
4e95ec843a Allow item_rest::put() to replace the current data file. Remove
data_rest::put() altogether; it's no longer necessary.
2010-08-08 01:12:43 -07:00
Bharat Mediratta
7f61f9754e Change file modes to 644. 2010-08-08 00:30:55 -07:00
Bharat Mediratta
20fd987296 A new REST resource that allows access to view and modify the actual
contents of the file, which enables REST viewers to see the actual
data which is useful when the files are privileged.  Currently it
returns the contents of the file in JSON encoded form, which may not
be the best.  Multipart/mime might be much better.

Fixes ticket #1224.
2010-08-07 22:33:01 -07:00
Bharat Mediratta
dfb095a262 Add the ability to replace the source data file in Item_Model::save().
Refactor the rotate code in Quick_Controller to replace the data file,
and then have gallery_event::item_updated_data_file() pick up after
the change is saved, rebuild the image and handle album covers.  This
is much more portable than before and it will allow any mechanism (eg:
REST) to replace the source image.
2010-08-07 22:18:28 -07:00
Bharat Mediratta
1abf43d3f1 Add a max_level to _sanitize_for_dump() so that we don't blow the stack. 2010-08-07 22:06:57 -07:00
Bharat Mediratta
c6ca77377f Whitespace fix. 2010-08-07 18:02:39 -07:00
Bharat Mediratta
779d91cca0 Add an index for left_ptr, since we use that in ORM_MPTT::parents()
which is on every album page.  Bump Gallery module version to 33.
2010-08-07 12:18:43 -07:00
Bharat Mediratta
16ae65464c Oops. Fix the upgrader path to add the weight column to the modules table. 2010-08-07 10:57:18 -07:00
Bharat Mediratta
1b2da1ff70 Add a "weight" column to the module table. This allows us to specify
module ordering, which is currently being done in the moduleorder
contrib module.

By default, the weight will be the same as the id of the row which
means that new modules will get added at the end of the list.  This is
covered in the upgrade case as well.

The one gotcha is that we need to make sure that we don't try to sort
by the weight column if the gallery module version is < 32, which is
something we haven't done before.

Fixes ticket #1272.
2010-08-06 20:19:00 -07:00
Bharat Mediratta
0fe44fe380 Use module::install and module::activate for the gallery module as
well; I've verified that it generates the same installer files.
2010-08-06 10:40:41 -07:00
Bharat Mediratta
8559cdb5b6 Add docs reflecting that we may skip some items that have invalid parent_ids 2010-08-04 21:30:48 -07:00
Bharat Mediratta
3492f1712d Fix the i18n error message for missing/incorrect password. Fixes ticket #1265. 2010-08-01 22:18:22 -07:00
Bharat Mediratta
3e8d683ce4 Use the login/html page for maintenance mode; we don't need the
maintenance controller/view anymore.  Fixes ticket #1267.
2010-08-01 22:09:02 -07:00
Bharat Mediratta
ca54cdd644 While we're cleaning up albums, also find any cases where we have an
album_cover_item_id that points to an invalid item.
2010-08-01 21:44:24 -07:00
Bharat Mediratta
400c248e2d default maintenance_mode from false -> 0 for consistency with the value we set in the db 2010-08-01 21:10:27 -07:00
Bharat Mediratta
c33b24c9fa Make maintenance mode a variable instead of a config. Then create
links on the Admin > Maintenance page to allow you to turn it on and
off.  This should be efficient since we cache all vars and look them
up on every request anyway.

This also allows us to have the Fix task enable maintenance mode while
it's running which greatly reduces the chances that somebody will come
along and hork the database while we're tinkering with MPTT pointers.

Fixes ticket #1259.
2010-08-01 21:00:30 -07:00
Bharat Mediratta
49eb3e32b9 Make the continuation url go to admin/maintenance. 2010-08-01 20:49:14 -07:00
Bharat Mediratta
56ca3b09b6 Focus on the username field by default. Don't use jQuery because we're operating in a very limited context. 2010-08-01 20:48:57 -07:00
Bharat Mediratta
9369fd55a3 Force the response type for uploaded watermarks to text/html.
// Override the application/json mime type.  The dialog based HTML uploader uses an iframe to
// buffer the reply, and on some browsers (Firefox 3.6) it does not know what to do with the
// JSON that it gets back so it puts up a dialog asking the user what to do with it.  So force
// the encoding type back to HTML for the iframe.
// See: http://jquery.malsup.com/form/#file-upload
2010-08-01 10:39:32 -07:00
Bharat Mediratta
bf7115cf5a Write appropriate PHPdoc for json::reply. 2010-08-01 10:19:36 -07:00
Tim Almdal
cd50fde5de Specify the charset on the content type header 2010-08-01 08:57:22 -07:00
Tim Almdal
a453170727 Merge branch 'dialog' of github.com:gallery/gallery3 into dialog 2010-08-01 08:31:09 -07:00
Tim Almdal
fc580037e7 Merge branch 'master' into dialog 2010-08-01 08:26:39 -07:00
Bharat Mediratta
a5f701951e Add a localized error message for missing usernames. Fixes ticket #1266. 2010-08-01 01:33:59 -07:00
Bharat Mediratta
7607e1f932 Full pass over all the JSON encoding and JS dialog code. We now abide
by the following rules:

1) An initial dialog or panel load can take either HTML or JSON, but
   the mime type must accurately reflect its payload.

2) dialog form submits can handle a pure HTML response, but the mime
   type must also be correct.  This properly resolves the problem
   where the reauth code gets a JSON response first from the reauth
   code, and then an HTML response when you reauth and continue on to
   a given form -- try it out with Admin > Settings > Advanced.

3) All JSON replies must set the mime type correctly.  The json::reply
   convenience function does this for us.

4) By default, any HTML content sent back in the JSON response should be
   in the "html" field, no longer the "form" field.

The combination of these allows us to stop doing boilerplate code like
this in our controllers:

  // Print our view, JSON encoded
  json::reply(array("form" => (string) $view));

instead, controllers can just return HTML, eg:

  // Print our view
  print $view;

That's much more intuitive for developers.
2010-07-31 21:16:17 -07:00
Bharat Mediratta
be4ad8e96d "Save" -> "Download" for clarity. 2010-07-31 16:47:14 -07:00
Tim Almdal
a6280641f5 Resend the entire dialog content (including the wrapping view) instead of just the form. 2010-07-31 15:44:56 -07:00
Tim Almdal
0c535c85ed Missing the user name on the reauthenticate form. 2010-07-31 15:44:56 -07:00
Tim Almdal
29f29d2261 When the admin controller redirects to the reauthenticate controller, the value of request::is_ajax() from the original request is lost. This patch stores its value in the session so the reauthenticate controller knows whether its in a dialog/panel or not. 2010-07-31 15:44:56 -07:00
Tim Almdal
09dfe1a91b Convert the admin_theme controller to use the json::reply method 2010-07-31 15:44:55 -07:00
Tim Almdal
91a2c04a24 More patches as part of #1225. Change the 'core' modules to use the json::reply
method to set the content type header and encode the response as a json object
2010-07-31 15:44:55 -07:00
Tim Almdal
89d18c0714 Partial fix for #1225 addresses the issues with the user edit forms. 2010-07-31 15:44:55 -07:00
Tim Almdal
bb04015149 Partial fix for #1225. Create a json reply helper that sets the content type to application/json and then json encodes the reply. 2010-07-31 15:44:55 -07:00
Bharat Mediratta
68f41c7061 Fix typo: ui-corners-all --> ui-corner-all
thanks Lord Beowulf!
2010-07-31 12:12:17 -07:00
Bharat Mediratta
a8bb046209 Use readfile() instead of fopen()/fpassthru()/fclose() for brevity.
I've done some tests on a 60M flv and found that there's no difference
in memory consumption with these three approaches:

  public function test() {
    Kohana::close_buffers(false);
    $file = "/home/bharat/basketball.flv";
    if ($fd = fopen($file, "rb")) {
      while (true) {
        $bits = fread($fd, 65535);
        if (strlen($bits) == 0) {
          break;
        }
        print $bits;
        set_time_limit(30);
      }
      fclose($fd);
    }
    Kohana_Log::add("error","test: " . print_r(array(memory_get_peak_usage(true),memory_get_peak_usage(false)),1));
  }

  public function test2() {
    Kohana::close_buffers(false);
    $file = "/home/bharat/basketball.flv";
    $fd = fopen($file, "rb");
    fpassthru($fd);
    fclose($fd);
    Kohana_Log::add("error","test2: " . print_r(array(memory_get_peak_usage(true),memory_get_peak_usage(false)),1));
  }

  public function test3() {
    Kohana::close_buffers(false);
    $file = "/home/bharat/basketball.flv";
    readfile($file);
    Kohana_Log::add("error","test3: " . print_r(array(memory_get_peak_usage(true),memory_get_peak_usage(false)),1));
  }
2010-07-31 11:51:18 -07:00
Tim Almdal
f50151cf18 Merge branch 'master' into dialog 2010-07-30 05:48:12 -07:00
Bharat Mediratta
7b8ed10796 Add recovery code for dupe slugs and dupe names to the general purpose Fix
task.  Fixes ticket #1260.
2010-07-29 21:49:29 -07:00
Bharat Mediratta
3f48f17e54 We don't care about the name and slug for the root album so don't bother enforcing them. 2010-07-29 19:41:03 -07:00
Bharat Mediratta
ebbb73787d Trap ORM_Validation_Exception specially and report which fields failed validation. 2010-07-29 19:37:38 -07:00
Tim Almdal
21e3e86885 Resend the entire dialog content (including the wrapping view) instead of just the form. 2010-07-29 09:22:32 -07:00
Tim Almdal
6cd31e31af Missing the user name on the reauthenticate form. 2010-07-29 08:57:21 -07:00
Tim Almdal
529b9ac56c Merge branch 'master' into dialog 2010-07-29 06:59:44 -07:00
Bharat Mediratta
b3c1b4633c Combine the Fix MPTT and Fix Permissions tasks into one magical fix-it
task.
2010-07-28 22:42:04 -07:00
Tim Almdal
64eae641e5 When the admin controller redirects to the reauthenticate controller, the value of request::is_ajax() from the original request is lost. This patch stores its value in the session so the reauthenticate controller knows whether its in a dialog/panel or not. 2010-07-28 07:57:27 -07:00
Tim Almdal
c3a92df6e6 Merge branch 'master' into dialog 2010-07-27 21:35:14 -07:00
Bharat Mediratta
dd955781aa "public static" ==> "static" to match code conventions. 2010-07-27 19:54:41 -07:00
Bharat Mediratta
185a736ff9 Revert "Combine all the flex runtime libraries into a single downloadable file. Fixes ticket #1241."
This breaks organize on Chrome 5 (Linux) and Chrome 6 (OSX).  See ticket #1241.

This reverts commit 423fca2d5f.
2010-07-27 11:28:12 -07:00
Bharat Mediratta
bf1e1d3d1f Verified 2010-07-27 11:19:48 -07:00
Bharat Mediratta
84a50e737b Fix the "get flashplayer" button. It was throwing a JS error before.
Not sure why it was done in JS in the first place.  Fixes ticket #1256.
2010-07-27 11:18:55 -07:00
Bharat Mediratta
f9137c756e Updated 2010-07-27 10:53:31 -07:00