Changeset 928

Show
Ignore:
Timestamp:
12/15/06 03:56:44 (2 years ago)
Author:
gboggs
Message:

* MT/Asset/Image:
- Don't translate image dimensions if none are given.
* MT/App/CMS:
- Added a 'complete_upload' mode that accepts an asset and builds complete_upload.tmpl.
- Replaced all the %param logic in upload_file() with a call to complete_upload().
- Refactored the way that 'is_image' is handled in upload_file().
* dialog_list_assets.tmpl:
- Changed the "direct insertion" mode from "asset_insert" to "complete_upload."
- Added "entry_insert" and "direct_asset_insert" (=1 boolean) HTML hidden vars, so the backend knows what's up.
* upload_complete.tmpl:
- Conditioned the "file name, file size" string display on NAME=DIRECT_ASSET_INSERT.

BugId: 45620

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/wheeljack/lib/MT/App/CMS.pm

    r925 r928  
    9898        'start_upload' => \&start_upload, 
    9999        'upload_file' => \&upload_file, 
     100        'complete_upload' => \&complete_upload, 
    100101        'start_upload_entry' => \&start_upload_entry, 
    101102        'logout' => \&logout, 
     
    991992                edit_blog_id => $blog_id, 
    992993                edit_field => $app->param('edit_field') || '', 
    993                 dialog_view => ($app->param('dialog_view') ? 1 : 0)
     994                dialog_view => $app->param('dialog_view') ? 1 : 0
    994995            ) : ()), 
    995996            class_loop => \@class_loop, 
     
    91859186} 
    91869187 
     9188sub complete_upload { 
     9189    my ($app, %args) = @_; 
     9190 
     9191    my $asset = $args{asset}; 
     9192    if (!$asset && $app->param('id')) { 
     9193        require MT::Asset; 
     9194        $asset = MT::Asset->load($app->param('id')) || 
     9195            return $app->errtrans("Can't load asset, ". $app->param('id') .'.'); 
     9196    } 
     9197    return $app->errtrans('No asset to upload.') unless $asset; 
     9198 
     9199    $args{is_image} = $asset->isa('MT::Asset::Image') ? 1 : 0 
     9200        unless defined $args{is_image}; 
     9201 
     9202    require MT::Blog; 
     9203    my $blog = $args{blog} || MT::Blog->load($app->param('blog_id')) || 
     9204        return $app->errtrans("Can't load blog, ". $app->param('blog_id') .'.'); 
     9205    my $perms = $args{perms} || $app->{perms} || 
     9206        return $app->errtrans('No permissions'); 
     9207 
     9208    my %param = ( 
     9209        asset_id => $asset->id, 
     9210        bytes => $args{bytes}, 
     9211        direct_asset_insert => scalar $app->param('direct_asset_insert'), 
     9212        edit_field => scalar $app->param('edit_field'), 
     9213        entry_insert => scalar $app->param('entry_insert'), 
     9214        fname => $asset->file_name, 
     9215        height => $asset->image_height, 
     9216        is_image => $args{is_image}, 
     9217        site_path => scalar $app->param('site_path'), 
     9218        url => $asset->url, 
     9219        width => $asset->image_width, 
     9220    ); 
     9221 
     9222    if ($args{is_image}) { 
     9223        eval { require MT::Image; MT::Image->new or die; }; 
     9224        $param{do_thumb} = $@ ? 0 : 1; 
     9225        $param{can_save_image_defaults} = $perms->can_save_image_defaults ? 1 : 0; 
     9226        $param{constrain} = $blog->image_default_constrain ? 1 : 0; 
     9227        $param{popup_image} = $blog->image_default_popup ? 1 : 0; 
     9228        $param{image_defaults} = $blog->image_default_set ? 1 : 0; 
     9229        $param{wrap_text} = $blog->image_default_wrap_text ? 1 : 0; 
     9230        $param{make_thumb} = $blog->image_default_thumb ? 1 : 0; 
     9231        $param{'align_'.$_} = $blog->image_default_align eq $_ ? 1 : 0 for qw(left center right); 
     9232        $param{'unit_w'.$_} = $blog->image_default_wunits eq $_ ? 1 : 0 for qw(percent pixels); 
     9233        $param{'unit_h'.$_} = $blog->image_default_hunits eq $_ ? 1 : 0 for qw(percent pixels); 
     9234        $param{thumb_width} = $blog->image_default_width || $asset->image_width || 0; 
     9235        $param{thumb_height} = $blog->image_default_height || $asset->image_height || 0; 
     9236    } 
     9237 
     9238    $app->build_page('upload_complete.tmpl', \%param); 
     9239} 
     9240 
    91879241sub upload_file { 
    91889242    my $app = shift; 
     
    93059359                    File::Temp::tempfile(DIR => $tmp_dir); 
    93069360            }; 
    9307             if ($@) { #!$tmp_fh) { 
     9361            if ($@) { #!$tmp_fh 
    93089362                return $app->errtrans( 
    93099363                    "Error creating temporary file; please check your TempDir ". 
     
    93739427    $relative_url =~ s!\\!/!g; 
    93749428    $relative_url =~ s!^/!!; 
    9375     my %param = ( width => $w, height => $h, bytes => $bytes, 
    9376                   image_type => $id, fname => $relative_path, 
    9377                   site_path => scalar $q->param('site_path') ); 
    9378     my $url = $q->param('site_path') ? $blog->site_url : $blog->archive_url; 
     9429    my $url = $app->param('site_path') ? $blog->site_url : $blog->archive_url; 
    93799430    $url .= '/' unless $url =~ m!/$!; 
    93809431    $relative_url =~ s!^/!!; 
    93819432    $url .= $relative_url; 
    9382     $param{url} = $url; 
     9433 
    93839434    require File::Basename; 
    93849435    my $local_basename = File::Basename::basename($local_file); 
     
    93879438    # Does the file have dimensions with a recognized image extension? 
    93889439    require MT::Asset::Image; 
    9389     if(defined($w) && defined($h) && MT::Asset::Image->can_handle($local_basename)) { 
    9390         $param{is_image} = 1 
    9391     } 
     9440    my $is_image = defined($w) && defined($h) && MT::Asset::Image->can_handle($local_basename) 
     9441        ? 1 : 0; 
     9442 
    93929443    require MT::Asset; 
    9393     my $img_pkg = MT::Asset->class_handler($param{is_image} ? 'image' : 'file'); 
    9394     my $asset = new $img_pkg
     9444    my $img_pkg = MT::Asset->class_handler($is_image ? 'image' : 'file'); 
     9445    my $asset = $img_pkg->new()
    93959446    my $original = $asset->clone; 
    93969447    $asset->blog_id($blog_id); 
     
    93999450    $asset->file_name($local_basename); 
    94009451    $asset->file_ext($ext); 
    9401     if ($param{is_image}) { 
     9452    if ($is_image) { 
    94029453        $asset->image_width($w); 
    94039454        $asset->image_height($h); 
     
    94079458    MT->run_callbacks('CMSPostSave.asset', $app, $asset, $original); 
    94089459 
    9409     $param{asset_id} = $asset->id; 
    9410  
    9411     $param{edit_field} = $q->param('edit_field'); 
    9412  
    9413     if ($param{is_image}) { 
    9414         eval { require MT::Image; MT::Image->new or die; }; 
    9415         $param{do_thumb} = $@ ? 0 : 1; 
    9416         $param{entry_insert} = $q->param('entry_insert'); 
    9417         # Pass image default settings along. 
    9418         $param{image_defaults} = $blog->image_default_set() ? 1 : 0; 
    9419         $param{make_thumb} = $blog->image_default_thumb() ? 1 : 0; 
    9420         $param{wrap_text} = $blog->image_default_wrap_text() ? 1 : 0; 
    9421         $param{align_left} = $blog->image_default_align() eq 'left' ? 1 : 0; 
    9422         $param{align_center} = $blog->image_default_align() eq 'center' ? 1 : 0; 
    9423         $param{align_right} = $blog->image_default_align() eq 'right' ? 1 : 0; 
    9424         $param{thumb_width} = $blog->image_default_width() || $w; 
    9425         $param{unit_wpixels} = $blog->image_default_wunits() eq 'pixels' ? 1 : 0; 
    9426         $param{unit_wpercent} = $blog->image_default_wunits() eq 'percent' ? 1 : 0; 
    9427         $param{thumb_height} = $blog->image_default_height() || $h; 
    9428         $param{unit_hpixels} = $blog->image_default_hunits() eq 'pixels' ? 1 : 0; 
    9429         $param{unit_hpercent} = $blog->image_default_hunits() eq 'percent' ? 1 : 0; 
    9430         $param{constrain} = $blog->image_default_constrain() ? 1 : 0; 
    9431         $param{popup_image} = $blog->image_default_popup() ? 1 : 0; 
    9432         $param{can_save_image_defaults} = $perms->can_save_image_defaults() ? 1 : 0; 
     9460    if ($is_image) { 
    94339461        MT->run_callbacks('CMSUploadFile', 
    94349462                          File => $local_file, Url => $url, Size => $bytes, 
     
    94509478                          Blog => $blog); 
    94519479    } 
    9452     $app->build_page('upload_complete.tmpl', \%param); 
     9480 
     9481    $app->complete_upload( 
     9482        asset => $asset, 
     9483        blog => $blog, 
     9484        bytes => $bytes, 
     9485        perms => $perms, 
     9486    ); 
    94539487} 
    94549488 
     
    1260812642=item * asset_insert 
    1260912643 
     12644=item * asset_insert_text 
     12645 
    1261012646=item * start_upload_entry 
    1261112647 
     
    1264212678 
    1264312679=item * upload_file 
     12680 
     12681=item * complete_upload 
    1264412682 
    1264512683=item * view_log 
  • branches/wheeljack/lib/MT/Asset/Image.pm

    r899 r928  
    1919    my $obj = shift; 
    2020    my $meta = $obj->SUPER::metadata(@_); 
    21     $meta->{MT->translate("Actual Dimensions")} = MT->translate("[_1] wide x [_2] high", 
    22         $obj->image_width, $obj->image_height); 
     21    $meta->{MT->translate("Actual Dimensions")} = MT->translate( 
     22        "[_1] wide x [_2] high", 
     23        $obj->image_width, $obj->image_height 
     24    ) if defined $obj->image_width && defined $obj->image_height; 
    2325    $meta; 
    2426} 
  • branches/wheeljack/tmpl/cms/dialog_list_assets.tmpl

    r924 r928  
    6464<TMPL_IF NAME=OBJECT_LOOP><TMPL_UNLESS NAME=JSON> 
    6565<form method="post" action="<TMPL_VAR NAME=SCRIPT_URL>" name="select_asset"> 
    66 <input type="hidden" name="__mode" value="asset_insert" /> 
     66<input type="hidden" name="__mode" value="complete_upload" /> 
    6767<input type="hidden" name="_type" value="asset" /> 
    6868<input type="hidden" name="return_args" value="<TMPL_VAR NAME=RETURN_ARGS ESCAPE=HTML>" /> 
     
    7373<input type="hidden" name="id" value="" /> 
    7474<input type="hidden" name="edit_field" value="<TMPL_VAR NAME=EDIT_FIELD>" /> 
     75<input type="hidden" name="entry_insert" value="1" /> 
     76<input type="hidden" name="direct_asset_insert" value="1" /> 
    7577</TMPL_IF> 
    7678</form> 
  • branches/wheeljack/tmpl/cms/upload_complete.tmpl

    r905 r928  
    109109<h2><span class="weblog-title-highlight"><TMPL_VAR NAME=BLOG_NAME ESCAPE=HTML>:</span> <MT_TRANS phrase="Upload File"></h2> 
    110110 
     111<TMPL_UNLESS NAME=DIRECT_ASSET_INSERT> 
    111112<div class="items-wrapper"> 
    112113    <span class="modal_added"><MT_TRANS phrase="The file named '[_1]' has been uploaded. Size: [quant,_2,byte]." params="<TMPL_VAR NAME=FNAME ESCAPE=HTML>%%<TMPL_VAR NAME=BYTES>"></span> 
    113114</div> 
     115</TMPL_UNLESS> 
    114116 
    115117<p class="page-desc"><img border="0" src="<TMPL_VAR NAME=STATIC_URI>images/spacer.gif" width="17" height="5"></p>