Make WordPress Core

Changeset 23072


Ignore:
Timestamp:
12/05/2012 10:29:24 AM (12 years 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.