Make WordPress Core

Ticket #7274: media-upload.patch

File media-upload.patch, 16.7 KB (added by azaozz, 15 years ago)
  • wp-admin/css/media.css

     
    3232.media-upload-form label, .media-upload-form legend {
    3333        display:block;
    3434        font-weight: bold;
     35        font-size: 13px;
    3536        margin-bottom: 0.5em;
    3637        margin: 0 0 0.5em 0;
    3738}
     
    228229}
    229230
    230231.filename {
     232        float: left;
    231233        line-height: 36px;
    232234        margin-left: 10px;
    233         float: left;
     235        overflow: hidden;
     236        max-width: 430px;
    234237}
    235238#media-upload .describe {
    236239        border-top-width: 1px;
     
    276279        display: none;
    277280        margin: 5px 0;
    278281}
     282
     283.menu_order {
     284        float: right;
     285        font-size: 11px;
     286        margin: 10px 10px 0;
     287}
     288
     289.menu_order_input {
     290        border: 1px solid #DDDDDD;
     291        font-size: 10px;
     292        padding: 1px;
     293        width: 23px;
     294}
     295
     296.ui-sortable-helper {
     297        background-color: #fff;
     298        border: 1px solid #aaa;
     299        opacity: 0.6;
     300        filter: alpha(opacity=60);
     301}
     302
     303#media-upload th.order-head {
     304         width: 25%;
     305         text-align: center;
     306}
     307
     308#media-upload .widefat {
     309        width: 626px;
     310        border-style: solid solid none;
     311}
     312
     313.sorthelper {
     314        z-index: -1;
     315}
  • wp-admin/gears-manifest.php

     
    6464?>
    6565{
    6666"betaManifestVersion" : 1,
    67 "version" : "<?php echo $man_version; ?>_20080704",
     67"version" : "<?php echo $man_version; ?>_20080709",
    6868"entries" : [
    6969<?php echo $defaults; ?>
    7070
     
    9999{ "url" : "images/xit.gif" },
    100100{ "url" : "images/loading-publish.gif" },
    101101{ "url" : "images/loading.gif" },
     102{ "url" : "images/required.gif" },
     103{ "url" : "images/no.png" },
     104{ "url" : "images/yes.png" },
    102105
    103106{ "url" : "../wp-includes/images/crystal/archive.png" },
    104107{ "url" : "../wp-includes/images/crystal/audio.png" },
  • wp-admin/includes/media.php

    Cannot display: file marked as a binary type.
    svn:mime-type = application/octet-stream
    
    Property changes on: wp-admin\images\no.png
    ___________________________________________________________________
    Name: svn:mime-type
       + application/octet-stream
    
    Cannot display: file marked as a binary type.
    svn:mime-type = application/octet-stream
    
    Property changes on: wp-admin\images\required.gif
    ___________________________________________________________________
    Name: svn:mime-type
       + application/octet-stream
    
    Cannot display: file marked as a binary type.
    svn:mime-type = application/octet-stream
    
    Property changes on: wp-admin\images\yes.png
    ___________________________________________________________________
    Name: svn:mime-type
       + application/octet-stream
    
     
    2626add_filter('media_upload_tabs', 'update_gallery_tab');
    2727
    2828function the_media_upload_tabs() {
     29        global $redir_tab;
    2930        $tabs = media_upload_tabs();
    3031
    3132        if ( !empty($tabs) ) {
    3233                echo "<ul id='sidemenu'>\n";
    33                 if ( isset($_GET['tab']) && array_key_exists($_GET['tab'], $tabs) )
     34                if ( isset($redir_tab) && array_key_exists($redir_tab, $tabs) )
     35                        $current = $redir_tab;
     36                elseif ( isset($_GET['tab']) && array_key_exists($_GET['tab'], $tabs) )
    3437                        $current = $_GET['tab'];
    3538                else {
    3639                        $keys = array_keys($tabs);
     
    154157                if ( trim($image_meta['caption']) )
    155158                        $content = $image_meta['caption'];
    156159        }
    157        
     160
    158161        $title = @$desc;
    159162
    160163        // Construct the attachment array
     
    325328                        $errors = $return;
    326329        }
    327330
    328         if ( isset($_POST['save']) )
     331        if ( isset($_POST['save']) ) {
    329332                $errors['upload_notice'] = __('Saved.');
     333                return media_upload_gallery();
     334        }
    330335
    331336        return wp_iframe( 'media_upload_type_form', 'image', $errors, $id );
    332337}
     
    336341                $file_array['name'] = basename($file);
    337342                $file_array['tmp_name'] = download_url($file);
    338343                $desc = @$desc;
    339                
     344
    340345                $id = media_handle_sideload($file_array, $post_id, $desc);
    341346                $src = $id;
    342347
     
    385390                        $errors = $return;
    386391        }
    387392
    388         if ( isset($_POST['save']) )
     393        if ( isset($_POST['save']) ) {
    389394                $errors['upload_notice'] = __('Saved.');
     395                return media_upload_gallery();
     396        }
    390397
    391398        return wp_iframe( 'media_upload_type_form', 'audio', $errors, $id );
    392399}
     
    423430                        $errors = $return;
    424431        }
    425432
    426         if ( isset($_POST['save']) )
     433        if ( isset($_POST['save']) ) {
    427434                $errors['upload_notice'] = __('Saved.');
     435                return media_upload_gallery();
     436        }
    428437
    429438        return wp_iframe( 'media_upload_type_form', 'video', $errors, $id );
    430439}
     
    461470                        $errors = $return;
    462471        }
    463472
    464         if ( isset($_POST['save']) )
     473        if ( isset($_POST['save']) ) {
    465474                $errors['upload_notice'] = __('Saved.');
     475                return media_upload_gallery();
     476        }
    466477
    467478        return wp_iframe( 'media_upload_type_form', 'file', $errors, $id );
    468479}
     
    673684}
    674685
    675686function get_media_item( $attachment_id, $args = null ) {
     687        global $redir_tab;
     688
    676689        $default_args = array( 'errors' => null, 'send' => true, 'delete' => true, 'toggle' => true );
    677690        $args = wp_parse_args( $args, $default_args );
    678691        extract( $args, EXTR_SKIP );
     
    720733        }
    721734
    722735        $display_title = ( !empty( $title ) ) ? $title : $filename; // $title shouldn't ever be empty, but just in case
    723         $display_title = wp_html_excerpt($display_title, 100);
     736        $display_title = wp_html_excerpt($display_title, 60);
    724737
     738        $gallery = ( (isset($_REQUEST['tab']) && 'gallery' == $_REQUEST['tab']) || (isset($redir_tab) && 'gallery' == $redir_tab) ) ? true : false;
     739        $order = '';
     740
     741        foreach ( $form_fields as $key => $val ) {
     742                if ( 'menu_order' == $key ) {
     743                        if ( $gallery )
     744                                $order = '<div class="menu_order"> <input class="menu_order_input" type="text" id="attachments['.$attachment_id.'][menu_order]" name="attachments['.$attachment_id.'][menu_order]" value="'.$val['value'].'" /></div>';
     745                        else
     746                                $order = '<input type="hidden" name="attachments['.$attachment_id.'][menu_order]" value="'.$val['value'].'" />';
     747
     748                        unset($form_fields['menu_order']);
     749                        break;
     750                }
     751        }
     752
    725753        $item = "
    726754        $type
    727755        $toggle_links
     756        $order
    728757        <div class='filename new'>$display_title</div>
    729758        <table class='slidetoggle describe $class'>
    730759                <thead class='media-item-info'>
     
    958987<h3><?php _e('From URL'); ?></h3>
    959988</div>
    960989
     990<script type="text/javascript">
     991//<![CDATA[
     992var addExtImage = {
     993
     994        width : '',
     995        height : '',
     996        align : 'alignnone',
     997
     998        insert : function() {
     999                var t = this, html, f = document.forms[0], cls, title = '', alt = '', caption = null;
     1000
     1001                if ( '' == f.src.value || '' == t.width ) return false;
     1002
     1003                if ( f.title.value ) {
     1004                        title = f.title.value.replace(/['"<>]+/g, '');
     1005                        title = ' title="'+title+'"';
     1006                }
     1007
     1008                if ( f.alt.value ) {
     1009                        alt = f.alt.value.replace(/['"<>]+/g, '');
     1010                        caption = f.alt.value.replace(/'/g, '&#39;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
     1011                }
     1012
     1013                cls = caption ? '' : ' class="'+t.align+'"';
     1014
     1015                html = '<img alt="'+alt+'" src="'+f.src.value+'"'+title+cls+' width="'+t.width+'" height="'+t.height+'" />';
     1016
     1017                if ( f.url.value )
     1018                        html = '<a href="'+f.url.value+'">'+html+'</a>';
     1019
     1020                if ( caption )
     1021                        html = '[wp_caption id="" align="'+t.align+'" width="'+t.width+'" caption="'+caption+'"]'+html+'[/wp_caption]';
     1022
     1023                var win = window.dialogArguments || opener || parent || top;
     1024                win.send_to_editor(html);
     1025        },
     1026
     1027        resetImageData : function() {
     1028                var t = addExtImage;
     1029
     1030                t.width = t.height = '';
     1031                document.getElementById('go_button').style.color = '#bbb';
     1032                if ( ! document.forms[0].src.value )
     1033                        document.getElementById('status_img').src = 'images/required.gif';
     1034                else document.getElementById('status_img').src = 'images/no.png';
     1035        },
     1036
     1037        updateImageData : function() {
     1038                var t = addExtImage;
     1039
     1040                t.width = t.preloadImg.width;
     1041                t.height = t.preloadImg.height;
     1042                document.getElementById('go_button').style.color = '#333';
     1043                document.getElementById('status_img').src = 'images/yes.png';
     1044        },
     1045
     1046        getImageData : function() {
     1047                var t = addExtImage, src = document.forms[0].src.value;
     1048
     1049                if ( ! src ) {
     1050                        t.resetImageData();
     1051                        return false;
     1052                }
     1053                document.getElementById('status_img').src = 'images/loading.gif';
     1054                t.preloadImg = new Image();
     1055                t.preloadImg.onload = t.updateImageData;
     1056                t.preloadImg.onerror = t.resetImageData;
     1057                t.preloadImg.src = src;
     1058        }
     1059}
     1060//]]>
     1061</script>
     1062
    9611063<div id="media-items">
    9621064<div class="media-item media-blank">
    9631065<?php echo call_user_func($callback); ?>
     
    9691071}
    9701072
    9711073function media_upload_gallery_form($errors) {
     1074        global $redir_tab;
     1075
     1076        $redir_tab = 'gallery';
    9721077        media_upload_header();
    9731078
    9741079        $post_id = intval($_REQUEST['post_id']);
    975 
    9761080        $form_action_url = admin_url("media-upload.php?type={$GLOBALS['type']}&tab=gallery&post_id=$post_id");
    977 
    9781081?>
    9791082
    9801083<script type="text/javascript">
     
    9921095<form enctype="multipart/form-data" method="post" action="<?php echo attribute_escape($form_action_url); ?>" class="media-upload-form validate" id="gallery-form">
    9931096<?php wp_nonce_field('media-form'); ?>
    9941097<?php //media_upload_form( $errors ); ?>
    995 
     1098<table class="widefat">
     1099<thead><tr>
     1100<th><?php _e('Media'); ?></th>
     1101<th class="order-head"><?php _e('Order'); ?></th>
     1102</tr></thead>
     1103</table>
    9961104<div id="media-items">
    9971105<?php echo get_media_items($post_id, $errors); ?>
    9981106</div>
     1107<p class="ml-submit">
    9991108<input type="submit" class="button savebutton" name="save" value="<?php echo attribute_escape( __( 'Save all changes' ) ); ?>" />
    10001109<input type="submit" class="button insert-gallery" name="insert-gallery" value="<?php echo attribute_escape( __( 'Insert gallery into post' ) ); ?>" />
    10011110<input type="hidden" name="post_id" id="post_id" value="<?php echo (int) $post_id; ?>" />
    10021111<input type="hidden" name="type" value="<?php echo attribute_escape( $GLOBALS['type'] ); ?>" />
    10031112<input type="hidden" name="tab" value="<?php echo attribute_escape( $GLOBALS['tab'] ); ?>" />
     1113</p>
    10041114</form>
    10051115<?php
    10061116}
     
    11551265        return '
    11561266        <table class="describe"><tbody>
    11571267                <tr>
     1268                        <th valign="top" scope="row" class="label" style="width:120px;">
     1269                                <span class="alignleft"><label for="src">' . __('Source') . '</label></span>
     1270                                <span class="alignright"><img id="status_img" src="images/required.gif" title="required" alt="required" /></span>
     1271                        </th>
     1272                        <td class="field"><input id="src" name="src" value="" type="text" aria-required="true" onblur="addExtImage.getImageData()"></td>
     1273                </tr>
     1274
     1275                <tr>
    11581276                        <th valign="top" scope="row" class="label">
    1159                                 <span class="alignleft"><label for="insertonly[src]">' . __('Image URL') . '</label></span>
     1277                                <span class="alignleft"><label for="title">' . __('Image Title') . '</label></span>
    11601278                                <span class="alignright"><abbr title="required" class="required">*</abbr></span>
    11611279                        </th>
    1162                         <td class="field"><input id="insertonly[src]" name="insertonly[src]" value="" type="text" aria-required="true"></td>
     1280                        <td class="field"><p><input id="title" name="title" value="" type="text" aria-required="true" /></p></td>
    11631281                </tr>
     1282
    11641283                <tr>
    11651284                        <th valign="top" scope="row" class="label">
    1166                                 <span class="alignleft"><label for="insertonly[alt]">' . __('Description') . '</label></span>
    1167                                 <span class="alignright"><abbr title="required" class="required">*</abbr></span>
     1285                                <span class="alignleft"><label for="alt">' . __('Image Caption') . '</label></span>
    11681286                        </th>
    1169                         <td class="field"><input id="insertonly[alt]" name="insertonly[alt]" value="" type="text" aria-required="true"></td>
     1287                        <td class="field"><input id="alt" name="alt" value="" type="text" aria-required="true" />
     1288                        <p class="help">' . __('Also used as alternate text for the image') . '</p></td>
    11701289                </tr>
    1171                 <tr><td></td><td class="help">' . __('Alternate text, e.g. "The Mona Lisa"') . '</td></tr>
     1290
    11721291                <tr class="align">
    1173                         <th valign="top" scope="row" class="label"><label for="insertonly[align]">' . __('Alignment') . '</label></th>
     1292                        <th valign="top" scope="row" class="label"><p><label for="align">' . __('Alignment') . '</label></p></th>
    11741293                        <td class="field">
    1175                                 <input name="insertonly[align]" id="image-align-none-0" value="none" type="radio" checked="checked" />
    1176                                 <label for="image-align-none-0" class="align image-align-none-label">' . __('None') . '</label>
    1177                                 <input name="insertonly[align]" id="image-align-left-0" value="left" type="radio" />
    1178                                 <label for="image-align-left-0" class="align image-align-left-label">' . __('Left') . '</label>
    1179                                 <input name="insertonly[align]" id="image-align-center-0" value="center" type="radio" />
    1180                                 <label for="image-align-center-0" class="align image-align-center-label">' . __('Center') . '</label>
    1181                                 <input name="insertonly[align]" id="image-align-right-0" value="right" type="radio" />
    1182                                 <label for="image-align-right-0" class="align image-align-right-label">' . __('Right') . '</label>
     1294                                <input name="align" id="align-none" value="alignnone" onclick="addExtImage.align=this.value" type="radio" checked="checked" />
     1295                                <label for="align-none" class="align image-align-none-label">' . __('None') . '</label>
     1296                                <input name="align" id="align-left" value="alignleft" onclick="addExtImage.align=this.value" type="radio" />
     1297                                <label for="align-left" class="align image-align-left-label">' . __('Left') . '</label>
     1298                                <input name="align" id="align-center" value="aligncenter" onclick="addExtImage.align=this.value" type="radio" />
     1299                                <label for="align-center" class="align image-align-center-label">' . __('Center') . '</label>
     1300                                <input name="align" id="align-right" value="alignright" onclick="addExtImage.align=this.value" type="radio" />
     1301                                <label for="align-right" class="align image-align-right-label">' . __('Right') . '</label>
    11831302                        </td>
    11841303                </tr>
     1304
    11851305                <tr>
     1306                        <th valign="top" scope="row" class="label">
     1307                                <span class="alignleft"><label for="url">' . __('Link URL') . '</label></span>
     1308                        </th>
     1309                        <td class="field"><input id="url" name="url" value="" type="text" /><br />
     1310
     1311                        <button type="button" class="button" value="" onclick="document.forms[0].url.value=null">' . __('None') . '</button>
     1312                        <button type="button" class="button" value="" onclick="document.forms[0].url.value=document.forms[0].src.value">' . __('Link to image') . '</button>
     1313                        <p class="help">' . __('Enter a link URL or click above for presets.') . '</p></td>
     1314                </tr>
     1315
     1316                <tr>
    11861317                        <td></td>
    11871318                        <td>
    1188                                 <input type="submit" class="button" name="insertonlybutton" value="' . attribute_escape(__('Insert into Post')) . '" />
     1319                                <input type="button" class="button" id="go_button" style="color:#bbb;" onclick="addExtImage.insert()" value="' . attribute_escape(__('Insert into Post')) . '" />
    11891320                        </td>
    11901321                </tr>
    11911322        </tbody></table>
  • wp-admin/js/gallery.js

     
    44                gallerySortable = $('#media-items').sortable( {
    55                        items: '.media-item',
    66                        placeholder: 'sorthelper',
     7                        axis: 'y',
     8                        distance: 2,
    79                        update: galleryReorder
    810                } );
    911        }
     
    1113        // When an update has occurred, adjust the order for each item
    1214        var galleryReorder = function(e, sort) {
    1315                jQuery.each(sort['element'].sortable('toArray'), function(i, id) {
    14                         jQuery('#' + id + ' .menu_order input')[0].value = i;
     16                        jQuery('#' + id + ' .menu_order input')[0].value = (1+i);
    1517                });
    1618        }
    1719
    1820        // initialize sortable
    1921        gallerySortableInit();
    2022});
     23
     24jQuery(document).ready(function($){
     25        $('.menu_order_input').each(function(){
     26                if ( this.value == '0' ) this.value = '';
     27        });
     28});
  • wp-includes/script-loader.php

     
    158158                        'cancel' => __('Cancel'),
    159159                        'edit' => __('Edit'),
    160160                ) );
    161                 $scripts->add( 'admin-gallery', '/wp-admin/js/gallery.js', array( 'jquery-ui-sortable' ), '20080705' );
     161                $scripts->add( 'admin-gallery', '/wp-admin/js/gallery.js', array( 'jquery-ui-sortable' ), '20080709' );
    162162                $scripts->add( 'media-upload', '/wp-admin/js/media-upload.js', array( 'thickbox' ), '20080702' );
    163163                $scripts->localize( 'upload', 'uploadL10n', array(
    164164                        'browseTitle' => attribute_escape(__('Browse your files')),
     
    224224        $styles->add_data( 'colors-fresh', 'rtl', true );
    225225
    226226        $styles->add( 'global', '/wp-admin/css/global.css' );
    227         $styles->add( 'media', '/wp-admin/css/media.css', array(), '20080523' );
     227        $styles->add( 'media', '/wp-admin/css/media.css', array(), '20080709' );
    228228        $styles->add( 'widgets', '/wp-admin/css/widgets.css' );
    229229        $styles->add( 'dashboard', '/wp-admin/css/dashboard.css' );
    230230        $styles->add( 'install', '/wp-admin/css/install.css', array(), '20080708' );