Commit Graph

1709 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
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
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
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
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
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
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
Bharat Mediratta
dd955781aa "public static" ==> "static" to match code conventions. 2010-07-27 19:54:41 -07:00
Bharat Mediratta
bf1e1d3d1f Verified 2010-07-27 11:19:48 -07:00
Bharat Mediratta
f9137c756e Updated 2010-07-27 10:53:31 -07:00
Bharat Mediratta
52f1c4b8c6 Don't invoke a graphics toolkit when setting the album cover from a
clean thumbnail; we can just copy it over.  Should be a decent perf
improvement in many cases.  Fixes ticket #1255.
2010-07-27 10:49:47 -07:00
Bharat Mediratta
5be9ae3250 Add a new maintenance task that resyncs album .htaccess files with
database access intents.  Use this to fix up .htaccess files after you
relocate your Gallery. Fixes ticket #1252.
2010-07-25 11:10:42 -07:00
Bharat Mediratta
055e115b6a Move the "cancel all" running tasks button up to make it consistent with the "remove all finished" button. 2010-07-25 11:03:32 -07:00
Bharat Mediratta
075cea2a48 Don't use hardcoded id 1 as the everybody group; it won't work with alternative auth schemes. 2010-07-25 10:05:09 -07:00
Bharat Mediratta
108fff735c Initialize $request in submit_translations(). Fixes ticket #1239. 2010-07-22 15:53:00 -07:00
Bharat Mediratta
663f079e85 Properly handle the case where the album_cover_item_id points to an
invalid (probably deleted) item.  Fixes ticket #1238.
2010-07-22 14:08:08 -07:00
Bharat Mediratta
adeea49e0a Catch any exceptions thrown when we try to restore the original
identity provider after we fail to set up a new one.
2010-07-21 11:43:51 -07:00
Bharat Mediratta
2cf5198353 Null out relative_path_cache and relative_url_cache after we update
the pointers in case the hierarchy was adversely affected by actions
when the MPTT pointers were desynced.  Fixes ticket #1235.
2010-07-21 11:34:19 -07:00
Bharat Mediratta
6899af367b Cleanup on the Admin > Languages page.
Hide the fieldset and legend in the theme, since they don't add any value.
Change l10n_client::_server_url() to use the short style GMC urls and make the
API a little tighter.
2010-07-20 12:45:04 -07:00
Bharat Mediratta
9db310186a Use Session::get_once() instead of Session::get() followed by Session::delete(); 2010-07-20 12:22:52 -07:00
Bharat Mediratta
9e9eed1187 Oops! Proper fix for #1201. My last fix just redirected back to the
main site, and didn't actually log you out.
2010-07-20 06:42:20 -07:00
Chad Kieffer
a8c629409b Fix margin: 0 auto; IE issue in the upgrader view by adding a doctype to the template. Minor code refactoring. Also seems to fix #1188. 2010-07-17 15:49:47 -06:00
Chad Kieffer
71e097e47b Fix closing ul on inactive modules list, replaced <i> with <em> in footer. 2010-07-17 15:40:41 -06:00
Bharat Mediratta
5fd166724b Merge branch 'master' of github.com:gallery/gallery3 2010-07-16 11:59:48 -07:00