Plugin Directory

Changeset 2727307


Ignore:
Timestamp:
05/20/2022 10:06:32 AM (4 years ago)
Author:
hamworks
Message:

Update to version 1.0.6 from GitHub

Location:
schedule-terms
Files:
22 edited
1 copied

Legend:

Unmodified
Added
Removed
  • schedule-terms/tags/1.0.6/build/editor.asset.php

    r2727088 r2727307  
    1 <?php return array('dependencies' => array('moment', 'wp-components', 'wp-core-data', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-plugins'), 'version' => '9027589ef94f28d15116b2c1f812c571');
     1<?php return array('dependencies' => array('moment', 'wp-components', 'wp-core-data', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-plugins'), 'version' => 'adc00d5a0f4b33a08cf7e8b839bf3064');
  • schedule-terms/tags/1.0.6/build/editor.js

    r2727088 r2727307  
    1 !function(){"use strict";var e={n:function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,n=window.wp.plugins,r=window.wp.data,o=window.wp.coreData,l=window.wp.editor,a=window.wp.editPost,s=window.wp.i18n,i=window.wp.components,u=window.wp.date,m=window.moment,c=e.n(m);const d="YYYY-MM-DDTHH:mm:ss",p=e=>{let{term:n,taxonomy:r,label:l,postType:a,type:m}=e;const[p,g]=(0,o.useEntityProp)("postType",a,"meta"),f=(0,t.useRef)(),w=(0,u.__experimentalGetSettings)(),[y=w.formats.date]=(0,o.useEntityProp)("root","site","date_format"),[h=w.formats.time]=(0,o.useEntityProp)("root","site","time_format"),v=()=>{const{timezone:e}=w,[t,n]=e.offset.toString().split(".");return`${Number(t)>0?"+":"-"}${String(Math.abs(t)).padStart(2,"0")}:${String(Math.floor(60*Number(`0.${n||0}`))).padStart(2,"0")}`},_=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d;const r=null==p||null===(e=p.schedule_terms)||void 0===e?void 0:e.find((e=>e.term===n&&e.type===m));if(null!=r&&r.datetime)return c()(r.datetime).utcOffset(v()).format(t)}();return(0,t.createElement)(i.PanelRow,{ref:f},(0,t.createElement)("span",null,l),(0,t.createElement)(i.Dropdown,{popoverProps:{anchorRef:f.current},position:"bottom left",renderToggle:e=>{let{onToggle:n,isOpen:r}=e;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(i.Button,{onClick:n,"aria-expanded":r,variant:"tertiary"},_?(0,u.dateI18n)(`${y} ${h}`,_):(0,s.__)("none","schedule-terms")))},renderContent:()=>(0,t.createElement)("div",null,(0,t.createElement)(i.DateTimePicker,{currentDate:_,onChange:e=>(e=>{var t;const o=(null==p||null===(t=p.schedule_terms)||void 0===t?void 0:t.filter((e=>!(e.term===n&&e.type===m))))||[];g({...p,schedule_terms:[...o,e?{term:n,taxonomy:r,type:m,datetime:c()(`${e}${v()}`).utc().format()}:null].filter((e=>null!==e))})})(e)}))}))},g=e=>{let{taxonomies:n,terms:r,currentPostType:o}=e;return(0,t.createElement)("div",null,null==n?void 0:n.map((e=>{var n;return(0,t.createElement)("div",{key:e.slug},r[e.slug]&&r[e.slug].length>0&&(null===(n=r[e.slug])||void 0===n?void 0:n.map((n=>(0,t.createElement)("div",{key:n.id},(0,t.createElement)("h4",null,e.slug,": ",n.name),(0,t.createElement)(p,{label:(0,s.__)("Attach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"attach",postType:o}),(0,t.createElement)(p,{label:(0,s.__)("Detach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"detach",postType:o}))))))})))};(0,n.registerPlugin)("schedule-terms",{render:()=>{const{postType:e,taxonomies:n,terms:i}=(0,r.useSelect)((e=>{const{getTaxonomies:t,getEntityRecords:n}=e(o.store),r=e(l.store).getCurrentPostType(),a=(t({per_page:-1})||[]).filter((e=>e.types.includes(r))),s=Object.fromEntries(a.map((e=>{var t;const r=null===(t=n("taxonomy",e.slug,{per_page:-1}))||void 0===t?void 0:t.filter((e=>{let{meta:{schedule_terms_active:t}}=e;return t}));return[e.slug,r]})));return{postType:r,taxonomies:a,terms:s}}));return(0,t.createElement)(a.PluginDocumentSettingPanel,{name:"schedule-terms",title:(0,s.__)("Schedule Terms","schedule-terms"),className:"schedule-terms"},(0,t.createElement)(g,{currentPostType:e,taxonomies:n,terms:i}))},icon:"clock"})}();
     1!function(){"use strict";var e={n:function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,n=window.wp.plugins,r=window.wp.data,o=window.wp.coreData,l=window.wp.editor,a=window.wp.editPost,s=window.wp.i18n,i=window.wp.components,m=window.wp.date,u=window.moment,c=e.n(u);const d="YYYY-MM-DDTHH:mm:ss",p=e=>{let{term:n,taxonomy:r,label:l,postType:a,type:u}=e;const[p,g]=(0,o.useEntityProp)("postType",a,"meta"),y=(0,t.useRef)(),f=(0,m.__experimentalGetSettings)(),[w=f.formats.date]=(0,o.useEntityProp)("root","site","date_format"),[h=f.formats.time]=(0,o.useEntityProp)("root","site","time_format"),v=()=>{const{timezone:e}=f,[t,n]=e.offset.toString().split(".");return`${Number(t)>0?"+":"-"}${String(Math.abs(t)).padStart(2,"0")}:${String(Math.floor(60*Number(`0.${n||0}`))).padStart(2,"0")}`},_=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d;const o=null==p||null===(e=p.schedule_terms)||void 0===e?void 0:e.find((e=>e.term===n&&e.type===u&&e.taxonomy===r));if(null!=o&&o.datetime)return c()(o.datetime).utcOffset(v()).format(t)}();return(0,t.createElement)(i.PanelRow,{ref:y},(0,t.createElement)("span",null,l),(0,t.createElement)(i.Dropdown,{popoverProps:{anchorRef:y.current},position:"bottom left",renderToggle:e=>{let{onToggle:n,isOpen:r}=e;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(i.Button,{onClick:n,"aria-expanded":r,variant:"tertiary"},_?(0,m.dateI18n)(`${w} ${h}`,_):(0,s.__)("none","schedule-terms")))},renderContent:()=>(0,t.createElement)("div",null,(0,t.createElement)(i.DateTimePicker,{currentDate:_,onChange:e=>(e=>{var t;const o=(null==p||null===(t=p.schedule_terms)||void 0===t?void 0:t.filter((e=>!(e.term===n&&e.type===u&&e.taxonomy===r))))||[];g({...p,schedule_terms:[...o,e?{term:n,taxonomy:r,type:u,datetime:c()(`${e}${v()}`).utc().format()}:null].filter((e=>null!==e))})})(e)}))}))},g=e=>{let{taxonomies:n,terms:r,currentPostType:o}=e;return(0,t.createElement)("div",null,null==n?void 0:n.map((e=>{var n;return(0,t.createElement)("div",{key:e.slug},r[e.slug]&&r[e.slug].length>0&&(null===(n=r[e.slug])||void 0===n?void 0:n.map((n=>(0,t.createElement)("div",{key:n.id},(0,t.createElement)("h4",null,e.name,": ",n.name),(0,t.createElement)(p,{label:(0,s.__)("Attach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"attach",postType:o}),(0,t.createElement)(p,{label:(0,s.__)("Detach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"detach",postType:o}))))))})))};(0,n.registerPlugin)("schedule-terms",{render:()=>{const{postType:e,taxonomies:n,terms:i}=(0,r.useSelect)((e=>{const{getTaxonomies:t,getEntityRecords:n}=e(o.store),r=e(l.store).getCurrentPostType(),a=(t({per_page:-1})||[]).filter((e=>e.types.includes(r))),s=Object.fromEntries(a.map((e=>{var t;const r=null===(t=n("taxonomy",e.slug,{per_page:-1}))||void 0===t?void 0:t.filter((e=>{let{meta:{schedule_terms_active:t}}=e;return t}));return[e.slug,r]})));return{postType:r,taxonomies:a,terms:s}}));return(0,t.createElement)(a.PluginDocumentSettingPanel,{name:"schedule-terms",title:(0,s.__)("Schedule Terms","schedule-terms"),className:"schedule-terms"},(0,t.createElement)(g,{currentPostType:e,taxonomies:n,terms:i}))},icon:"clock"})}();
  • schedule-terms/tags/1.0.6/includes/Term/UI.php

    r2727069 r2727307  
    105105        add_action( "wp_ajax_{$this->meta_key}_terms", array( $this, 'ajax_update' ) );
    106106
    107         add_filter( 'terms_clauses', array( $this, 'terms_clauses' ), 10, 3 );
    108         add_filter( 'get_terms_orderby', array( $this, 'get_terms_orderby' ), 10, 3 );
    109 
    110107        foreach ( $this->taxonomies as $value ) {
    111108
     
    114111                add_filter( "manage_edit-{$value}_columns", array( $this, 'add_column_header' ) );
    115112                add_filter( "manage_{$value}_custom_column", array( $this, 'add_column_value' ), 10, 3 );
    116                 add_filter( "manage_edit-{$value}_sortable_columns", array( $this, 'sortable_columns' ) );
    117113            }
    118114
     
    144140            add_action( 'quick_edit_custom_box', array( $this, 'quick_edit_meta' ), 10, 3 );
    145141        }
    146     }
    147 
    148     /** Get Terms *************************************************************/
    149 
    150     /**
    151      * Filter `get_terms_orderby` and tweak for meta_query orderby's.
    152      *
    153      * @param string   $orderby `ORDERBY` clause of the terms query.
    154      * @param array    $args An array of term query arguments.
    155      * @param string[] $taxonomies An array of taxonomy names.
    156      *
    157      * @return string
    158      */
    159     public function get_terms_orderby( string $orderby = '', array $args = array(), array $taxonomies = array() ): string {
    160 
    161         // Bail if not a target taxonomy.
    162         if ( ! $this->is_taxonomy( $taxonomies ) ) {
    163             return $orderby;
    164         }
    165 
    166         // Ordering by meta key.
    167         if ( filter_input( INPUT_GET, 'orderby', FILTER_SANITIZE_STRING ) === $this->meta_key ) {
    168             $orderby = 'meta_value';
    169         }
    170 
    171         return $orderby;
    172     }
    173 
    174     /**
    175      * Filter get_terms() and maybe add `meta_query`
    176      *
    177      * @param string[] $clauses Array of query SQL clauses.
    178      * @param string[] $taxonomies An array of taxonomy names.
    179      * @param array    $args An array of term query arguments.
    180      *
    181      * @return string[]
    182      */
    183     public function terms_clauses( array $clauses = array(), array $taxonomies = array(), array $args = array() ): array {
    184         global $wpdb;
    185 
    186         if ( ! $this->is_taxonomy( $taxonomies ) ) {
    187             return $clauses;
    188         }
    189 
    190         // Default allowed keys & primary key.
    191         $allowed_keys = array( $this->meta_key );
    192 
    193         // Set allowed keys.
    194         $allowed_keys[] = 'meta_value';
    195         $allowed_keys[] = 'meta_value_num';
    196 
    197         // Tweak orderby.
    198         $orderby = $args['orderby'] ?? '';
    199 
    200         // Bail if no orderby or allowed_keys.
    201         if ( ! in_array( $orderby, $allowed_keys, true ) ) {
    202             return $clauses;
    203         }
    204 
    205         // Join term meta data.
    206         $clauses['join'] .= " INNER JOIN $wpdb->termmeta AS tm ON t.term_id = tm.term_id";
    207 
    208         // Maybe order by term meta.
    209         switch ( $args['orderby'] ) {
    210             case $this->meta_key:
    211             case 'meta_value':
    212                 if ( ! empty( $this->key_type ) ) {
    213                     $clauses['orderby'] = 'ORDER BY CAST(tm.meta_value AS tm)';
    214                 } else {
    215                     $clauses['orderby'] = 'ORDER BY tm.meta_value';
    216                 }
    217                 $clauses['fields'] .= ', tm.*';
    218                 $clauses['where']  .= " AND tm.meta_key = '$this->meta_key'";
    219                 break;
    220             case 'meta_value_num':
    221                 $clauses['orderby'] = 'ORDER BY tm.meta_value+0';
    222                 $clauses['fields'] .= ', tm.*';
    223                 $clauses['where']  .= " AND tm.meta_key = '$this->meta_key'";
    224                 break;
    225         }
    226 
    227         // Return maybe modified clauses.
    228         return $clauses;
    229142    }
    230143
     
    341254    }
    342255
    343     /**
    344      * Allow sorting by this `meta_key`
    345      *
    346      * @param string[] $columns columns.
    347      *
    348      * @return string[]
    349      * @since 2.0.0
    350      */
    351     public function sortable_columns( array $columns = array() ): array {
    352         // phpcs:ignore
    353         $columns[ $this->meta_key ] = $this->meta_key;
    354 
    355         return $columns;
    356     }
    357256
    358257    /**
  • schedule-terms/tags/1.0.6/readme.txt

    r2727106 r2727307  
    77Tested up to:      5.9 
    88Requires PHP:      7.3 
    9 Stable tag:        1.0.5
     9Stable tag:        1.0.6
    1010License:           GPLv2 or later 
    1111License URI:       https://www.gnu.org/licenses/gpl-2.0.html 
  • schedule-terms/tags/1.0.6/schedule-terms.php

    r2727106 r2727307  
    1010 * Text Domain:     schedule-terms
    1111 * Domain Path:     /languages
    12  * Version: 1.0.5
     12 * Version: 1.0.6
    1313 *
    1414 * @package Schedule_Terms
  • schedule-terms/tags/1.0.6/src/editor/components/DatetimeControl.tsx

    r2727088 r2727307  
    8181        const otherItems = meta?.schedule_terms?.filter( ( item ) => {
    8282            return !(
    83                 item.term === term && item.type === type
     83                item.term === term && item.type === type && item.taxonomy === taxonomy
    8484            );
    8585        } ) || [];
     
    107107    const getDatetime = ( format = TIMEZONELESS_FORMAT ) => {
    108108        const val = meta?.schedule_terms?.find( ( item ) => {
    109             return item.term === term && item.type === type;
     109            return item.term === term && item.type === type && item.taxonomy === taxonomy;
    110110        } );
    111111
  • schedule-terms/tags/1.0.6/src/editor/index.tsx

    r2727069 r2727307  
    2424interface Taxonomy {
    2525    slug: string;
     26    name: string;
     27    description: string;
    2628}
    2729
     
    4244                          <div key={ term.id }>
    4345                              <h4>
    44                                   { taxonomy.slug }: { term.name }
     46                                  { taxonomy.name }: { term.name }
    4547                              </h4>
    4648                              <DatetimeControl
  • schedule-terms/tags/1.0.6/vendor/autoload.php

    r2727106 r2727307  
    1010require_once __DIR__ . '/composer/autoload_real.php';
    1111
    12 return ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c::getLoader();
     12return ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2::getLoader();
  • schedule-terms/tags/1.0.6/vendor/composer/autoload_real.php

    r2727106 r2727307  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c
     5class ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::getInitializer($loader));
    3333
    3434        $loader->register(true);
    3535
    36         $includeFiles = \Composer\Autoload\ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$files;
     36        $includeFiles = \Composer\Autoload\ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$files;
    3737        foreach ($includeFiles as $fileIdentifier => $file) {
    38             composerRequire0c63a2f1a92d145f38bf16e4a500e84c($fileIdentifier, $file);
     38            composerRequire3ec1cecb83e54af786b71a28bfc07ff2($fileIdentifier, $file);
    3939        }
    4040
     
    4848 * @return void
    4949 */
    50 function composerRequire0c63a2f1a92d145f38bf16e4a500e84c($fileIdentifier, $file)
     50function composerRequire3ec1cecb83e54af786b71a28bfc07ff2($fileIdentifier, $file)
    5151{
    5252    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • schedule-terms/tags/1.0.6/vendor/composer/autoload_static.php

    r2727106 r2727307  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c
     7class ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2
    88{
    99    public static $files = array (
     
    180180    {
    181181        return \Closure::bind(function () use ($loader) {
    182             $loader->prefixLengthsPsr4 = ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$prefixLengthsPsr4;
    183             $loader->prefixDirsPsr4 = ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$prefixDirsPsr4;
    184             $loader->classMap = ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$classMap;
     182            $loader->prefixLengthsPsr4 = ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$prefixLengthsPsr4;
     183            $loader->prefixDirsPsr4 = ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$prefixDirsPsr4;
     184            $loader->classMap = ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$classMap;
    185185
    186186        }, null, ClassLoader::class);
  • schedule-terms/tags/1.0.6/vendor/composer/installed.php

    r2727106 r2727307  
    11<?php return array(
    22    'root' => array(
    3         'pretty_version' => '1.0.5',
    4         'version' => '1.0.5.0',
     3        'pretty_version' => '1.0.6',
     4        'version' => '1.0.6.0',
    55        'type' => 'library',
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => 'b06b539f0dd04cd7e2cc52cd786e8fe3f85a5c90',
     8        'reference' => '563711b1554200c60d00b8d67d22e8256cf0dd7f',
    99        'name' => 'hamworks/schedule-terms',
    1010        'dev' => false,
     
    1212    'versions' => array(
    1313        'hamworks/schedule-terms' => array(
    14             'pretty_version' => '1.0.5',
    15             'version' => '1.0.5.0',
     14            'pretty_version' => '1.0.6',
     15            'version' => '1.0.6.0',
    1616            'type' => 'library',
    1717            'install_path' => __DIR__ . '/../../',
    1818            'aliases' => array(),
    19             'reference' => 'b06b539f0dd04cd7e2cc52cd786e8fe3f85a5c90',
     19            'reference' => '563711b1554200c60d00b8d67d22e8256cf0dd7f',
    2020            'dev_requirement' => false,
    2121        ),
  • schedule-terms/trunk/build/editor.asset.php

    r2727088 r2727307  
    1 <?php return array('dependencies' => array('moment', 'wp-components', 'wp-core-data', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-plugins'), 'version' => '9027589ef94f28d15116b2c1f812c571');
     1<?php return array('dependencies' => array('moment', 'wp-components', 'wp-core-data', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-i18n', 'wp-plugins'), 'version' => 'adc00d5a0f4b33a08cf7e8b839bf3064');
  • schedule-terms/trunk/build/editor.js

    r2727088 r2727307  
    1 !function(){"use strict";var e={n:function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,n=window.wp.plugins,r=window.wp.data,o=window.wp.coreData,l=window.wp.editor,a=window.wp.editPost,s=window.wp.i18n,i=window.wp.components,u=window.wp.date,m=window.moment,c=e.n(m);const d="YYYY-MM-DDTHH:mm:ss",p=e=>{let{term:n,taxonomy:r,label:l,postType:a,type:m}=e;const[p,g]=(0,o.useEntityProp)("postType",a,"meta"),f=(0,t.useRef)(),w=(0,u.__experimentalGetSettings)(),[y=w.formats.date]=(0,o.useEntityProp)("root","site","date_format"),[h=w.formats.time]=(0,o.useEntityProp)("root","site","time_format"),v=()=>{const{timezone:e}=w,[t,n]=e.offset.toString().split(".");return`${Number(t)>0?"+":"-"}${String(Math.abs(t)).padStart(2,"0")}:${String(Math.floor(60*Number(`0.${n||0}`))).padStart(2,"0")}`},_=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d;const r=null==p||null===(e=p.schedule_terms)||void 0===e?void 0:e.find((e=>e.term===n&&e.type===m));if(null!=r&&r.datetime)return c()(r.datetime).utcOffset(v()).format(t)}();return(0,t.createElement)(i.PanelRow,{ref:f},(0,t.createElement)("span",null,l),(0,t.createElement)(i.Dropdown,{popoverProps:{anchorRef:f.current},position:"bottom left",renderToggle:e=>{let{onToggle:n,isOpen:r}=e;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(i.Button,{onClick:n,"aria-expanded":r,variant:"tertiary"},_?(0,u.dateI18n)(`${y} ${h}`,_):(0,s.__)("none","schedule-terms")))},renderContent:()=>(0,t.createElement)("div",null,(0,t.createElement)(i.DateTimePicker,{currentDate:_,onChange:e=>(e=>{var t;const o=(null==p||null===(t=p.schedule_terms)||void 0===t?void 0:t.filter((e=>!(e.term===n&&e.type===m))))||[];g({...p,schedule_terms:[...o,e?{term:n,taxonomy:r,type:m,datetime:c()(`${e}${v()}`).utc().format()}:null].filter((e=>null!==e))})})(e)}))}))},g=e=>{let{taxonomies:n,terms:r,currentPostType:o}=e;return(0,t.createElement)("div",null,null==n?void 0:n.map((e=>{var n;return(0,t.createElement)("div",{key:e.slug},r[e.slug]&&r[e.slug].length>0&&(null===(n=r[e.slug])||void 0===n?void 0:n.map((n=>(0,t.createElement)("div",{key:n.id},(0,t.createElement)("h4",null,e.slug,": ",n.name),(0,t.createElement)(p,{label:(0,s.__)("Attach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"attach",postType:o}),(0,t.createElement)(p,{label:(0,s.__)("Detach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"detach",postType:o}))))))})))};(0,n.registerPlugin)("schedule-terms",{render:()=>{const{postType:e,taxonomies:n,terms:i}=(0,r.useSelect)((e=>{const{getTaxonomies:t,getEntityRecords:n}=e(o.store),r=e(l.store).getCurrentPostType(),a=(t({per_page:-1})||[]).filter((e=>e.types.includes(r))),s=Object.fromEntries(a.map((e=>{var t;const r=null===(t=n("taxonomy",e.slug,{per_page:-1}))||void 0===t?void 0:t.filter((e=>{let{meta:{schedule_terms_active:t}}=e;return t}));return[e.slug,r]})));return{postType:r,taxonomies:a,terms:s}}));return(0,t.createElement)(a.PluginDocumentSettingPanel,{name:"schedule-terms",title:(0,s.__)("Schedule Terms","schedule-terms"),className:"schedule-terms"},(0,t.createElement)(g,{currentPostType:e,taxonomies:n,terms:i}))},icon:"clock"})}();
     1!function(){"use strict";var e={n:function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},d:function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t=window.wp.element,n=window.wp.plugins,r=window.wp.data,o=window.wp.coreData,l=window.wp.editor,a=window.wp.editPost,s=window.wp.i18n,i=window.wp.components,m=window.wp.date,u=window.moment,c=e.n(u);const d="YYYY-MM-DDTHH:mm:ss",p=e=>{let{term:n,taxonomy:r,label:l,postType:a,type:u}=e;const[p,g]=(0,o.useEntityProp)("postType",a,"meta"),y=(0,t.useRef)(),f=(0,m.__experimentalGetSettings)(),[w=f.formats.date]=(0,o.useEntityProp)("root","site","date_format"),[h=f.formats.time]=(0,o.useEntityProp)("root","site","time_format"),v=()=>{const{timezone:e}=f,[t,n]=e.offset.toString().split(".");return`${Number(t)>0?"+":"-"}${String(Math.abs(t)).padStart(2,"0")}:${String(Math.floor(60*Number(`0.${n||0}`))).padStart(2,"0")}`},_=function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d;const o=null==p||null===(e=p.schedule_terms)||void 0===e?void 0:e.find((e=>e.term===n&&e.type===u&&e.taxonomy===r));if(null!=o&&o.datetime)return c()(o.datetime).utcOffset(v()).format(t)}();return(0,t.createElement)(i.PanelRow,{ref:y},(0,t.createElement)("span",null,l),(0,t.createElement)(i.Dropdown,{popoverProps:{anchorRef:y.current},position:"bottom left",renderToggle:e=>{let{onToggle:n,isOpen:r}=e;return(0,t.createElement)(t.Fragment,null,(0,t.createElement)(i.Button,{onClick:n,"aria-expanded":r,variant:"tertiary"},_?(0,m.dateI18n)(`${w} ${h}`,_):(0,s.__)("none","schedule-terms")))},renderContent:()=>(0,t.createElement)("div",null,(0,t.createElement)(i.DateTimePicker,{currentDate:_,onChange:e=>(e=>{var t;const o=(null==p||null===(t=p.schedule_terms)||void 0===t?void 0:t.filter((e=>!(e.term===n&&e.type===u&&e.taxonomy===r))))||[];g({...p,schedule_terms:[...o,e?{term:n,taxonomy:r,type:u,datetime:c()(`${e}${v()}`).utc().format()}:null].filter((e=>null!==e))})})(e)}))}))},g=e=>{let{taxonomies:n,terms:r,currentPostType:o}=e;return(0,t.createElement)("div",null,null==n?void 0:n.map((e=>{var n;return(0,t.createElement)("div",{key:e.slug},r[e.slug]&&r[e.slug].length>0&&(null===(n=r[e.slug])||void 0===n?void 0:n.map((n=>(0,t.createElement)("div",{key:n.id},(0,t.createElement)("h4",null,e.name,": ",n.name),(0,t.createElement)(p,{label:(0,s.__)("Attach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"attach",postType:o}),(0,t.createElement)(p,{label:(0,s.__)("Detach","schedule-terms"),term:n.slug,taxonomy:e.slug,type:"detach",postType:o}))))))})))};(0,n.registerPlugin)("schedule-terms",{render:()=>{const{postType:e,taxonomies:n,terms:i}=(0,r.useSelect)((e=>{const{getTaxonomies:t,getEntityRecords:n}=e(o.store),r=e(l.store).getCurrentPostType(),a=(t({per_page:-1})||[]).filter((e=>e.types.includes(r))),s=Object.fromEntries(a.map((e=>{var t;const r=null===(t=n("taxonomy",e.slug,{per_page:-1}))||void 0===t?void 0:t.filter((e=>{let{meta:{schedule_terms_active:t}}=e;return t}));return[e.slug,r]})));return{postType:r,taxonomies:a,terms:s}}));return(0,t.createElement)(a.PluginDocumentSettingPanel,{name:"schedule-terms",title:(0,s.__)("Schedule Terms","schedule-terms"),className:"schedule-terms"},(0,t.createElement)(g,{currentPostType:e,taxonomies:n,terms:i}))},icon:"clock"})}();
  • schedule-terms/trunk/includes/Term/UI.php

    r2727069 r2727307  
    105105        add_action( "wp_ajax_{$this->meta_key}_terms", array( $this, 'ajax_update' ) );
    106106
    107         add_filter( 'terms_clauses', array( $this, 'terms_clauses' ), 10, 3 );
    108         add_filter( 'get_terms_orderby', array( $this, 'get_terms_orderby' ), 10, 3 );
    109 
    110107        foreach ( $this->taxonomies as $value ) {
    111108
     
    114111                add_filter( "manage_edit-{$value}_columns", array( $this, 'add_column_header' ) );
    115112                add_filter( "manage_{$value}_custom_column", array( $this, 'add_column_value' ), 10, 3 );
    116                 add_filter( "manage_edit-{$value}_sortable_columns", array( $this, 'sortable_columns' ) );
    117113            }
    118114
     
    144140            add_action( 'quick_edit_custom_box', array( $this, 'quick_edit_meta' ), 10, 3 );
    145141        }
    146     }
    147 
    148     /** Get Terms *************************************************************/
    149 
    150     /**
    151      * Filter `get_terms_orderby` and tweak for meta_query orderby's.
    152      *
    153      * @param string   $orderby `ORDERBY` clause of the terms query.
    154      * @param array    $args An array of term query arguments.
    155      * @param string[] $taxonomies An array of taxonomy names.
    156      *
    157      * @return string
    158      */
    159     public function get_terms_orderby( string $orderby = '', array $args = array(), array $taxonomies = array() ): string {
    160 
    161         // Bail if not a target taxonomy.
    162         if ( ! $this->is_taxonomy( $taxonomies ) ) {
    163             return $orderby;
    164         }
    165 
    166         // Ordering by meta key.
    167         if ( filter_input( INPUT_GET, 'orderby', FILTER_SANITIZE_STRING ) === $this->meta_key ) {
    168             $orderby = 'meta_value';
    169         }
    170 
    171         return $orderby;
    172     }
    173 
    174     /**
    175      * Filter get_terms() and maybe add `meta_query`
    176      *
    177      * @param string[] $clauses Array of query SQL clauses.
    178      * @param string[] $taxonomies An array of taxonomy names.
    179      * @param array    $args An array of term query arguments.
    180      *
    181      * @return string[]
    182      */
    183     public function terms_clauses( array $clauses = array(), array $taxonomies = array(), array $args = array() ): array {
    184         global $wpdb;
    185 
    186         if ( ! $this->is_taxonomy( $taxonomies ) ) {
    187             return $clauses;
    188         }
    189 
    190         // Default allowed keys & primary key.
    191         $allowed_keys = array( $this->meta_key );
    192 
    193         // Set allowed keys.
    194         $allowed_keys[] = 'meta_value';
    195         $allowed_keys[] = 'meta_value_num';
    196 
    197         // Tweak orderby.
    198         $orderby = $args['orderby'] ?? '';
    199 
    200         // Bail if no orderby or allowed_keys.
    201         if ( ! in_array( $orderby, $allowed_keys, true ) ) {
    202             return $clauses;
    203         }
    204 
    205         // Join term meta data.
    206         $clauses['join'] .= " INNER JOIN $wpdb->termmeta AS tm ON t.term_id = tm.term_id";
    207 
    208         // Maybe order by term meta.
    209         switch ( $args['orderby'] ) {
    210             case $this->meta_key:
    211             case 'meta_value':
    212                 if ( ! empty( $this->key_type ) ) {
    213                     $clauses['orderby'] = 'ORDER BY CAST(tm.meta_value AS tm)';
    214                 } else {
    215                     $clauses['orderby'] = 'ORDER BY tm.meta_value';
    216                 }
    217                 $clauses['fields'] .= ', tm.*';
    218                 $clauses['where']  .= " AND tm.meta_key = '$this->meta_key'";
    219                 break;
    220             case 'meta_value_num':
    221                 $clauses['orderby'] = 'ORDER BY tm.meta_value+0';
    222                 $clauses['fields'] .= ', tm.*';
    223                 $clauses['where']  .= " AND tm.meta_key = '$this->meta_key'";
    224                 break;
    225         }
    226 
    227         // Return maybe modified clauses.
    228         return $clauses;
    229142    }
    230143
     
    341254    }
    342255
    343     /**
    344      * Allow sorting by this `meta_key`
    345      *
    346      * @param string[] $columns columns.
    347      *
    348      * @return string[]
    349      * @since 2.0.0
    350      */
    351     public function sortable_columns( array $columns = array() ): array {
    352         // phpcs:ignore
    353         $columns[ $this->meta_key ] = $this->meta_key;
    354 
    355         return $columns;
    356     }
    357256
    358257    /**
  • schedule-terms/trunk/readme.txt

    r2727106 r2727307  
    77Tested up to:      5.9 
    88Requires PHP:      7.3 
    9 Stable tag:        1.0.5
     9Stable tag:        1.0.6
    1010License:           GPLv2 or later 
    1111License URI:       https://www.gnu.org/licenses/gpl-2.0.html 
  • schedule-terms/trunk/schedule-terms.php

    r2727106 r2727307  
    1010 * Text Domain:     schedule-terms
    1111 * Domain Path:     /languages
    12  * Version: 1.0.5
     12 * Version: 1.0.6
    1313 *
    1414 * @package Schedule_Terms
  • schedule-terms/trunk/src/editor/components/DatetimeControl.tsx

    r2727088 r2727307  
    8181        const otherItems = meta?.schedule_terms?.filter( ( item ) => {
    8282            return !(
    83                 item.term === term && item.type === type
     83                item.term === term && item.type === type && item.taxonomy === taxonomy
    8484            );
    8585        } ) || [];
     
    107107    const getDatetime = ( format = TIMEZONELESS_FORMAT ) => {
    108108        const val = meta?.schedule_terms?.find( ( item ) => {
    109             return item.term === term && item.type === type;
     109            return item.term === term && item.type === type && item.taxonomy === taxonomy;
    110110        } );
    111111
  • schedule-terms/trunk/src/editor/index.tsx

    r2727069 r2727307  
    2424interface Taxonomy {
    2525    slug: string;
     26    name: string;
     27    description: string;
    2628}
    2729
     
    4244                          <div key={ term.id }>
    4345                              <h4>
    44                                   { taxonomy.slug }: { term.name }
     46                                  { taxonomy.name }: { term.name }
    4547                              </h4>
    4648                              <DatetimeControl
  • schedule-terms/trunk/vendor/autoload.php

    r2727106 r2727307  
    1010require_once __DIR__ . '/composer/autoload_real.php';
    1111
    12 return ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c::getLoader();
     12return ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2::getLoader();
  • schedule-terms/trunk/vendor/composer/autoload_real.php

    r2727106 r2727307  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c
     5class ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit0c63a2f1a92d145f38bf16e4a500e84c', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit3ec1cecb83e54af786b71a28bfc07ff2', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::getInitializer($loader));
    3333
    3434        $loader->register(true);
    3535
    36         $includeFiles = \Composer\Autoload\ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$files;
     36        $includeFiles = \Composer\Autoload\ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$files;
    3737        foreach ($includeFiles as $fileIdentifier => $file) {
    38             composerRequire0c63a2f1a92d145f38bf16e4a500e84c($fileIdentifier, $file);
     38            composerRequire3ec1cecb83e54af786b71a28bfc07ff2($fileIdentifier, $file);
    3939        }
    4040
     
    4848 * @return void
    4949 */
    50 function composerRequire0c63a2f1a92d145f38bf16e4a500e84c($fileIdentifier, $file)
     50function composerRequire3ec1cecb83e54af786b71a28bfc07ff2($fileIdentifier, $file)
    5151{
    5252    if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
  • schedule-terms/trunk/vendor/composer/autoload_static.php

    r2727106 r2727307  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c
     7class ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2
    88{
    99    public static $files = array (
     
    180180    {
    181181        return \Closure::bind(function () use ($loader) {
    182             $loader->prefixLengthsPsr4 = ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$prefixLengthsPsr4;
    183             $loader->prefixDirsPsr4 = ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$prefixDirsPsr4;
    184             $loader->classMap = ComposerStaticInit0c63a2f1a92d145f38bf16e4a500e84c::$classMap;
     182            $loader->prefixLengthsPsr4 = ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$prefixLengthsPsr4;
     183            $loader->prefixDirsPsr4 = ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$prefixDirsPsr4;
     184            $loader->classMap = ComposerStaticInit3ec1cecb83e54af786b71a28bfc07ff2::$classMap;
    185185
    186186        }, null, ClassLoader::class);
  • schedule-terms/trunk/vendor/composer/installed.php

    r2727106 r2727307  
    11<?php return array(
    22    'root' => array(
    3         'pretty_version' => '1.0.5',
    4         'version' => '1.0.5.0',
     3        'pretty_version' => '1.0.6',
     4        'version' => '1.0.6.0',
    55        'type' => 'library',
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => 'b06b539f0dd04cd7e2cc52cd786e8fe3f85a5c90',
     8        'reference' => '563711b1554200c60d00b8d67d22e8256cf0dd7f',
    99        'name' => 'hamworks/schedule-terms',
    1010        'dev' => false,
     
    1212    'versions' => array(
    1313        'hamworks/schedule-terms' => array(
    14             'pretty_version' => '1.0.5',
    15             'version' => '1.0.5.0',
     14            'pretty_version' => '1.0.6',
     15            'version' => '1.0.6.0',
    1616            'type' => 'library',
    1717            'install_path' => __DIR__ . '/../../',
    1818            'aliases' => array(),
    19             'reference' => 'b06b539f0dd04cd7e2cc52cd786e8fe3f85a5c90',
     19            'reference' => '563711b1554200c60d00b8d67d22e8256cf0dd7f',
    2020            'dev_requirement' => false,
    2121        ),
Note: See TracChangeset for help on using the changeset viewer.