WordPress.org

Make WordPress Core

Changeset 23072


Ignore:
Timestamp:
12/05/12 10:29:24 (17 months ago)
Author:
markjaquith
Message:

Intelligently make media fields readonly when the user cannot update or do anything with them. props koopersmith, helenyhou, nacin. fixes #22613

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/media.php

    r22948 r23072  
    12911291    ); 
    12921292 
     1293    $user_can_edit = current_user_can( 'edit_post', $attachment_id ); 
     1294 
    12931295    $args = wp_parse_args( $args, $default_args ); 
    12941296    $args = apply_filters( 'get_media_item_args', $args ); 
     
    13151317                $values[] = $term->slug; 
    13161318            $t['value'] = join(', ', $values); 
     1319            $t['taxonomy'] = true; 
    13171320 
    13181321            $form_fields[$taxonomy] = $t; 
     
    13641367        } 
    13651368 
     1369        $readonly      = ! $user_can_edit && ! empty( $field['taxonomy'] ) ? " readonly='readonly' " : ''; 
    13661370        $required      = $field['required'] ? '<span class="alignright"><abbr title="required" class="required">*</abbr></span>' : ''; 
    13671371        $aria_required = $field['required'] ? " aria-required='true' " : ''; 
     
    13821386            $item .= "<textarea id='$id_attr' name='$name' $aria_required>" . $field['value'] . '</textarea>'; 
    13831387        } else { 
    1384             $item .= "<input type='text' class='text' id='$id_attr' name='$name' value='" . esc_attr( $field['value'] ) . "' $aria_required />"; 
     1388            $item .= "<input type='text' class='text' id='$id_attr' name='$name' value='" . esc_attr( $field['value'] ) . "' $readonly $aria_required />"; 
    13851389        } 
    13861390        if ( !empty( $field['helps'] ) ) 
  • trunk/wp-includes/js/media-views.js

    r23070 r23072  
    15441544                    editable:   true, 
    15451545 
     1546                    // If the user isn't allowed to edit fields, 
     1547                    // can they still edit it locally? 
     1548                    allowLocalEdits: true, 
     1549 
    15461550                    // Show the attachment display settings. 
    15471551                    displaySettings: true, 
     
    28412845            } 
    28422846 
     2847            if ( this.controller.state().get('allowLocalEdits') ) 
     2848                options.allowLocalEdits = true; 
     2849 
    28432850            this.views.detach(); 
    28442851            this.$el.html( this.template( options ) ); 
  • trunk/wp-includes/media.php

    r23061 r23072  
    16591659            <# } #> 
    16601660        </div> 
    1661         <# if ( data.describe ) { #> 
     1661        <# 
     1662        var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; 
     1663        if ( data.describe ) { #> 
    16621664            <# if ( 'image' === data.type ) { #> 
    16631665                <input type="text" value="{{ data.caption }}" class="describe" data-setting="caption" 
    1664                     placeholder="<?php esc_attr_e('Describe this image&hellip;'); ?>" /> 
     1666                    placeholder="<?php esc_attr_e('Describe this image&hellip;'); ?>" {{ maybeReadOnly }} /> 
    16651667            <# } else { #> 
    16661668                <input type="text" value="{{ data.title }}" class="describe" data-setting="title" 
     
    16711673                    <# } else { #> 
    16721674                        placeholder="<?php esc_attr_e('Describe this media file&hellip;'); ?>" 
    1673                     <# } #> /> 
     1675                    <# } #> {{ maybeReadOnly }} /> 
    16741676            <# } #> 
    16751677        <# } #> 
     
    17141716        </div> 
    17151717 
    1716         <# if ( 'image' === data.type ) { #> 
     1718        <# 
     1719        var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; 
     1720        if ( 'image' === data.type ) { #> 
    17171721            <label class="setting" data-setting="title"> 
    17181722                <span><?php _e('Title'); ?></span> 
    1719                 <input type="text" value="{{ data.title }}" /> 
     1723                <input type="text" value="{{ data.title }}" {{ maybeReadOnly }} /> 
    17201724            </label> 
    17211725            <label class="setting" data-setting="caption"> 
    17221726                <span><?php _e('Caption'); ?></span> 
    1723                 <textarea 
     1727                <textarea {{ maybeReadOnly }} 
    17241728                    placeholder="<?php esc_attr_e('Describe this image&hellip;'); ?>" 
    17251729                    >{{ data.caption }}</textarea> 
     
    17271731            <label class="setting" data-setting="alt"> 
    17281732                <span><?php _e('Alt Text'); ?></span> 
    1729                 <input type="text" value="{{ data.alt }}" /> 
     1733                <input type="text" value="{{ data.alt }}" {{ maybeReadOnly }} /> 
    17301734            </label> 
    17311735        <# } else { #> 
    17321736            <label class="setting" data-setting="title"> 
    17331737                <span><?php _e('Title'); ?></span> 
    1734                 <input type="text" value="{{ data.title }}" 
     1738                <input type="text" value="{{ data.title }}" {{ maybeReadOnly }} 
    17351739                <# if ( 'video' === data.type ) { #> 
    17361740                    placeholder="<?php esc_attr_e('Describe this video&hellip;'); ?>" 
Note: See TracChangeset for help on using the changeset viewer.