WordPress.org

Make WordPress Core

Ticket #37571: document-inline-edit-tax.patch

File document-inline-edit-tax.patch, 12.2 KB (added by atimmer, 5 years ago)
  • src/wp-admin/js/inline-edit-tax.js

    From 69caadb5602b09bf4cb3514bf89de4292814bc00 Mon Sep 17 00:00:00 2001
    From: Anton Timmermans <email@atimmer.com>
    Date: Thu, 14 Jul 2016 16:40:31 +0200
    Subject: [PATCH 1/3] Document src/wp-admin/js/inline-edit-tax.js
    
    ---
     src/wp-admin/js/inline-edit-tax.js | 86 ++++++++++++++++++++++++++++++++++++--
     1 file changed, 83 insertions(+), 3 deletions(-)
    
    diff --git a/src/wp-admin/js/inline-edit-tax.js b/src/wp-admin/js/inline-edit-tax.js
    index 3bbf4fb..49e3137 100644
    a b  
    11/* global inlineEditL10n, ajaxurl */
    22window.wp = window.wp || {};
    33
     4/**
     5 * Consists of functions relevant to the inline taxonomy editor.
     6 *
     7 * @namespace inlineEditTax
     8 *
     9 * @property {string} type The type of inline edit we are currently on.
     10 * @property {string} what The type property with a hash prefixed and a dash suffixed.
     11 */
    412var inlineEditTax;
     13
    514( function( $, wp ) {
     15
    616inlineEditTax = {
    717
     18        /**
     19         * Initializes the inline taxonomy editor, adds event handlers to be able to quick edit.
     20         *
     21         * @this inlineEditTax
     22         * @memberof inlineEditTax
     23         */
    824        init : function() {
    925                var t = this, row = $('#inline-edit');
    1026
    inlineEditTax = { 
    1632                        return false;
    1733                });
    1834
    19                 // prepare the edit row
     35                /*
     36                 * Prepare the edit row.
     37                 *
     38                 * @param {Object} e The keyup event that has been triggered.
     39                 */
    2040                row.keyup( function( e ) {
     41                        // 27 = [escape]
    2142                        if ( e.which === 27 ) {
    2243                                return inlineEditTax.revert();
    2344                        }
    inlineEditTax = { 
    2647                $( '.cancel', row ).click( function() {
    2748                        return inlineEditTax.revert();
    2849                });
     50
    2951                $( '.save', row ).click( function() {
    3052                        return inlineEditTax.save(this);
    3153                });
     54
    3255                $( 'input, select', row ).keydown( function( e ) {
     56                        // 13 = [enter]
    3357                        if ( e.which === 13 ) {
    3458                                return inlineEditTax.save( this );
    3559                        }
    inlineEditTax = { 
    4064                });
    4165        },
    4266
     67        /**
     68         * Toggles the quick edit based on if it is currently shown or hidden.
     69         *
     70         * @this inlineEditTax
     71         * @memberof inlineEditTax
     72         *
     73         * @param {HTMLElement} el An element within the table row or the table row itself that we want to quick edit.
     74         */
    4375        toggle : function(el) {
    4476                var t = this;
     77
    4578                $(t.what+t.getId(el)).css('display') === 'none' ? t.revert() : t.edit(el);
    4679        },
    4780
     81        /**
     82         * Shows the quick editor
     83         *
     84         * @this inlineEditTax
     85         * @memberof inlineEditTax
     86         *
     87         * @param {string|HTMLElement} id The ID of the term we want to quick edit or an element within the table row or the
     88         * table row itself.
     89         * @returns {boolean} Always returns false.
     90         */
    4891        edit : function(id) {
    4992                var editRow, rowData, val,
    5093                        t = this;
    5194                t.revert();
    5295
     96                // Makes sure we can pass an HTMLElement as the ID.
    5397                if ( typeof(id) === 'object' ) {
    5498                        id = t.getId(id);
    5599                }
    inlineEditTax = { 
    75119                return false;
    76120        },
    77121
     122        /**
     123         * Saves the quick edit data to the server and replaces the table row with the HTML retrieved from the server.
     124         *
     125         * @this inlineEditTax
     126         * @memberof inlineEditTax
     127         *
     128         * @param {string|HTMLElement} id The ID of the term we want to quick edit or an element within the table row or the
     129         * table row itself.
     130         * @returns {boolean} Always returns false.
     131         */
    78132        save : function(id) {
    79133                var params, fields, tax = $('input[name="taxonomy"]').val() || '';
    80134
     135                // Makes sure we can pass an HTMLElement as the ID.
    81136                if( typeof(id) === 'object' ) {
    82137                        id = this.getId(id);
    83138                }
    inlineEditTax = { 
    94149                fields = $('#edit-'+id).find(':input').serialize();
    95150                params = fields + '&' + $.param(params);
    96151
    97                 // make ajax request
     152                // Do the ajax request to save the data to the server.
    98153                $.post( ajaxurl, params,
     154                        /**
     155                         * Handles the response from the server, replaces the table row with the response from the server.
     156                         *
     157                         * @param {string} r The string with which to replace the table row.
     158                         */
    99159                        function(r) {
    100160                                var row, new_id, option_value,
    101161                                        $errorSpan = $( '#edit-' + id + ' .inline-edit-save .error' );
    inlineEditTax = { 
    137197                                }
    138198                        }
    139199                );
     200
    140201                // Prevent submitting the form when pressing Enter on a focused field.
    141202                return false;
    142203        },
    143204
     205        /**
     206         * Closes the quick edit form.
     207         *
     208         * @this inlineEditTax
     209         * @memberof inlineEditTax
     210         */
    144211        revert : function() {
    145212                var id = $('table.widefat tr.inline-editor').attr('id');
    146213
    inlineEditTax = { 
    148215                        $( 'table.widefat .spinner' ).removeClass( 'is-active' );
    149216                        $('#'+id).siblings('tr.hidden').addBack().remove();
    150217                        id = id.substr( id.lastIndexOf('-') + 1 );
     218
    151219                        // Show the taxonomy row and move focus back to the Quick Edit link.
    152220                        $( this.what + id ).show().find( '.editinline' ).focus();
    153221                }
    154222        },
    155223
     224        /**
     225         * Retrieves the ID of the term of the element inside the table row.
     226         *
     227         * @memberof inlineEditTax
     228         *
     229         * @param {HTMLElement} o An element within the table row or the table row itself.
     230         * @returns {string} The ID of the term based on the element.
     231         */
    156232        getId : function(o) {
    157233                var id = o.tagName === 'TR' ? o.id : $(o).parents('tr').attr('id'), parts = id.split('-');
     234
    158235                return parts[parts.length - 1];
    159236        }
    160237};
    161238
    162 $(document).ready(function(){inlineEditTax.init();});
     239$(document).ready(function(){
     240        inlineEditTax.init();
     241});
     242
    163243})( jQuery, window.wp );
  • src/wp-admin/js/inline-edit-tax.js

    From 243a2919ffd527b286b5f0bd45f5b97119b125ca Mon Sep 17 00:00:00 2001
    From: Anton Timmermans <email@atimmer.com>
    Date: Thu, 4 Aug 2016 16:28:33 +0200
    Subject: [PATCH 2/3] Process feedback and follow WP guidelines
    
    ---
     src/wp-admin/js/inline-edit-tax.js | 44 ++++++++++++++++++++++++++++++++------
     1 file changed, 38 insertions(+), 6 deletions(-)
    
    diff --git a/src/wp-admin/js/inline-edit-tax.js b/src/wp-admin/js/inline-edit-tax.js
    index 49e3137..50fcaa8 100644
    a b  
    11/* global inlineEditL10n, ajaxurl */
     2/**
     3 * This file is used on the term overview page to power quick-editing terms.
     4 */
     5
    26window.wp = window.wp || {};
    37
    48/**
    window.wp = window.wp || {}; 
    711 * @namespace inlineEditTax
    812 *
    913 * @property {string} type The type of inline edit we are currently on.
    10  * @property {string} what The type property with a hash prefixed and a dash suffixed.
     14 * @property {string} what The type property with a hash prefixed and a dash
     15 *                         suffixed.
    1116 */
    1217var inlineEditTax;
    1318
    var inlineEditTax; 
    1621inlineEditTax = {
    1722
    1823        /**
    19          * Initializes the inline taxonomy editor, adds event handlers to be able to quick edit.
     24         * @summary Initializes the inline taxonomy editor.
     25         *
     26         * Adds event handlers to be able to quick edit.
     27         *
     28         * @since 2.7.0
    2029         *
    2130         * @this inlineEditTax
    2231         * @memberof inlineEditTax
     32         * @returns {void}
    2333         */
    2434        init : function() {
    2535                var t = this, row = $('#inline-edit');
    inlineEditTax = { 
    3343                });
    3444
    3545                /*
    36                  * Prepare the edit row.
     46                 * @summary Cancels inline editing when pressing escape inside the inline editor.
    3747                 *
    3848                 * @param {Object} e The keyup event that has been triggered.
    3949                 */
    inlineEditTax = { 
    4454                        }
    4555                });
    4656
     57                /**
     58                 * @summary Cancels inline editing when clicking the cancel button.
     59                 */
    4760                $( '.cancel', row ).click( function() {
    4861                        return inlineEditTax.revert();
    4962                });
    5063
     64                /**
     65                 * @summary Saves the inline edits when clicking the save button.
     66                 */
    5167                $( '.save', row ).click( function() {
    5268                        return inlineEditTax.save(this);
    5369                });
    5470
     71                /**
     72                 * @summary Saves the inline edits when pressing enter inside the inline editor.
     73                 */
    5574                $( 'input, select', row ).keydown( function( e ) {
    5675                        // 13 = [enter]
    5776                        if ( e.which === 13 ) {
    inlineEditTax = { 
    5978                        }
    6079                });
    6180
     81                /**
     82                 * @summary Saves the inline edits on submitting the inline edit form.
     83                 */
    6284                $( '#posts-filter input[type="submit"]' ).mousedown( function() {
    6385                        t.revert();
    6486                });
    inlineEditTax = { 
    6789        /**
    6890         * Toggles the quick edit based on if it is currently shown or hidden.
    6991         *
     92         * @since 2.7.0
     93         *
    7094         * @this inlineEditTax
    7195         * @memberof inlineEditTax
    7296         *
    7397         * @param {HTMLElement} el An element within the table row or the table row itself that we want to quick edit.
     98         * @returns {void}
    7499         */
    75100        toggle : function(el) {
    76101                var t = this;
    inlineEditTax = { 
    81106        /**
    82107         * Shows the quick editor
    83108         *
     109         * @since 2.7.0
     110         *
    84111         * @this inlineEditTax
    85112         * @memberof inlineEditTax
    86113         *
    inlineEditTax = { 
    122149        /**
    123150         * Saves the quick edit data to the server and replaces the table row with the HTML retrieved from the server.
    124151         *
     152         * @since 2.7.0
     153         *
    125154         * @this inlineEditTax
    126155         * @memberof inlineEditTax
    127156         *
    inlineEditTax = { 
    205234        /**
    206235         * Closes the quick edit form.
    207236         *
     237         * @since 2.7.0
     238         *
    208239         * @this inlineEditTax
    209240         * @memberof inlineEditTax
     241         * @returns {void}
    210242         */
    211243        revert : function() {
    212244                var id = $('table.widefat tr.inline-editor').attr('id');
    inlineEditTax = { 
    224256        /**
    225257         * Retrieves the ID of the term of the element inside the table row.
    226258         *
     259         * @since 2.7.0
     260         *
    227261         * @memberof inlineEditTax
    228262         *
    229263         * @param {HTMLElement} o An element within the table row or the table row itself.
    inlineEditTax = { 
    236270        }
    237271};
    238272
    239 $(document).ready(function(){
    240         inlineEditTax.init();
    241 });
     273$(document).ready(function(){inlineEditTax.init();});
    242274
    243275})( jQuery, window.wp );
  • src/wp-admin/js/inline-edit-tax.js

    From 81e73e00e2d3500fa28386ce9f5a91c5b53aaa8f Mon Sep 17 00:00:00 2001
    From: Anton Timmermans <email@atimmer.com>
    Date: Thu, 4 Aug 2016 16:31:40 +0200
    Subject: [PATCH 3/3] Adhere to the line limit
    
    ---
     src/wp-admin/js/inline-edit-tax.js | 24 ++++++++++++++++++------
     1 file changed, 18 insertions(+), 6 deletions(-)
    
    diff --git a/src/wp-admin/js/inline-edit-tax.js b/src/wp-admin/js/inline-edit-tax.js
    index 50fcaa8..daad73f 100644
    a b inlineEditTax = { 
    9494         * @this inlineEditTax
    9595         * @memberof inlineEditTax
    9696         *
    97          * @param {HTMLElement} el An element within the table row or the table row itself that we want to quick edit.
     97         * @param {HTMLElement} el An element within the table row or the table row
     98         *                         itself that we want to quick edit.
    9899         * @returns {void}
    99100         */
    100101        toggle : function(el) {
    inlineEditTax = { 
    111112         * @this inlineEditTax
    112113         * @memberof inlineEditTax
    113114         *
    114          * @param {string|HTMLElement} id The ID of the term we want to quick edit or an element within the table row or the
     115         * @param {string|HTMLElement} id The ID of the term we want to quick edit or an
     116         *                                element within the table row or the
    115117         * table row itself.
    116118         * @returns {boolean} Always returns false.
    117119         */
    inlineEditTax = { 
    147149        },
    148150
    149151        /**
    150          * Saves the quick edit data to the server and replaces the table row with the HTML retrieved from the server.
     152         * @summary Saves the quick edit data.
     153         *
     154         * Saves the quick edit data to the server and replaces the table row with the
     155         * HTML retrieved from the server.
    151156         *
    152157         * @since 2.7.0
    153158         *
    154159         * @this inlineEditTax
    155160         * @memberof inlineEditTax
    156161         *
    157          * @param {string|HTMLElement} id The ID of the term we want to quick edit or an element within the table row or the
     162         * @param {string|HTMLElement} id The ID of the term we want to quick edit or an
     163         *                                element within the table row or the
    158164         * table row itself.
    159165         * @returns {boolean} Always returns false.
    160166         */
    inlineEditTax = { 
    181187                // Do the ajax request to save the data to the server.
    182188                $.post( ajaxurl, params,
    183189                        /**
    184                          * Handles the response from the server, replaces the table row with the response from the server.
     190                         * @summary Handles the response from the server.
     191                         *
     192                         * Handles the response from the server, replaces the table row with the response
     193                         * from the server.
    185194                         *
    186195                         * @param {string} r The string with which to replace the table row.
    187196                         */
    inlineEditTax = { 
    217226
    218227                                        } else {
    219228                                                $errorSpan.html( r ).show();
    220                                                 // Some error strings may contain HTML entities (e.g. `&#8220`), let's use the HTML element's text.
     229                                                /*
     230                                                 * Some error strings may contain HTML entities (e.g. `&#8220`), let's use
     231                                                 * the HTML element's text.
     232                                                 */
    221233                                                wp.a11y.speak( $errorSpan.text() );
    222234                                        }
    223235                                } else {