Plugin Directory

Changeset 3034797


Ignore:
Timestamp:
02/12/2024 07:57:44 PM (2 years ago)
Author:
aldeng
Message:

4.5.7

Location:
event-agent/trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • event-agent/trunk/README.txt

    r3033828 r3034797  
    99Requires at least: 4.6
    1010Tested up to:      6.4
    11 Stable tag:        4.5.6
    12 Version:           4.5.6
     11Stable tag:        4.5.7
     12Version:           4.5.7
    1313License:           GPLv2 or later
    1414License URI:       http://www.gnu.org/licenses/gpl-2.0.html
  • event-agent/trunk/admin/js/events-vue.js

    r3033828 r3034797  
    122122            ongoingOrCourse: eaTranslate('Course'),
    123123            oldStartDate: new Date(),
     124            oldTimezone: 'local',
    124125            oldVenueId: 0,
    125126            oldHybridVenueId: 0,
     
    276277                        if (newStartDate.getTime() !== this.oldStartDate.getTime() ||
    277278                            event.venueId !== this.oldVenueId ||
    278                             event.hybridVenueId !== this.oldHybridVenueId) {
     279                            event.hybridVenueId !== this.oldHybridVenueId ||
     280                            event.timeZone !== this.oldTimezone) {
    279281                            var endDate = new Date();
    280282
     
    312314                                    this.oldVenueId = event.venueId;
    313315                                    this.oldHybridVenueId = event.hybridVenueId;
     316                                    this.oldTimezone = event.timeZone;
    314317                                });
    315318                        }
  • event-agent/trunk/event-agent.php

    r3033828 r3034797  
    1111 * Plugin URI:        https://www.eventagent.ai/
    1212 * Description:       EventAgent.ai combines a next generation event management system with AI-powered marketing to maximize your sales.  AI makes all the difference.
    13  * Version:           4.5.6
     13 * Version:           4.5.7
    1414 * Requires at least: 5.0
    1515 * Requires PHP:      7.0
     
    2525}
    2626
    27 define( 'EVENT_AGENT_VERSION', '4.5.6' );
     27define( 'EVENT_AGENT_VERSION', '4.5.7' );
    2828
    2929require_once dirname(__FILE__).'/includes/activate.php';
  • event-agent/trunk/public/js/card-vue.js

    r3032376 r3034797  
    5050                            const dateParts = date[0].split('-');
    5151                            this.event.startDate = this.event.venue.hasOnline ? new Date(this.event.startDate) :
    52                                     new Date(dateParts[0], dateParts[1] - 1, dateParts[2], timeParts[0], timeParts[1]);
     52                                new Date(dateParts[0], dateParts[1] - 1, dateParts[2], timeParts[0], timeParts[1]);
    5353
    5454                            this.event.endDate = new Date(this.event.startDate.getTime() + this.event.duration);
     55
     56                            if (this.event.rrule) {
     57                                this.rrule = new rrule.rrulestr(this.event.rrule);
     58
     59                                let adjustedDate = new Date(new Date(Date.now()).getTime() - new Date(Date.now()).getTimezoneOffset() * 60 * 1000);
     60                                let dates = this.rrule.between(adjustedDate, new Date(adjustedDate.getTime() + 90 * 24 * 3600 * 1000));
     61                                if (dates.length > 0) {
     62                                    this.event.startDate = new Date(dates[0].getTime() + (dates[0].getTimezoneOffset() * 60 * 1000));
     63                                    this.event.endDate = new Date(this.event.startDate.getTime() + this.event.duration);
     64                                }
     65                            }
    5566
    5667                            this.loading = false;
  • event-agent/trunk/public/js/event-vue.js

    r3032376 r3034797  
    185185                    .then(response => {
    186186                        this.event = response.data;
    187                        
     187
    188188                        const date = this.event.startDate.split('T');
    189189                        const timeParts = date[1].split(':');
     
    197197                        this.event.registrationEndDate = new Date(this.event.registrationEndDate);
    198198
    199                         if (this.event.rrule) {
     199                        if (this.event.rrule && !params.get('startDate')) {
    200200                            this.rrule = new rrule.rrulestr(this.event.rrule);
    201201
    202                             if (this.rrule._exdate) {
    203                                 //rrule doesn't provide a count if there's an exdate. need to get it from text rrule
    204                                 let parts = this.event.rrule.split(';');
    205                                 let exdateParts = parts[parts.length - 1].split('\n');
    206                                 let countParts = exdateParts[0].split('=');
    207                                 if (countParts.length === 2 && countParts[0].toLowerCase() === 'count')
    208                                     this.rrule.options.count = countParts[1] - this.rrule._exdate.length;
    209                             }
    210 
    211                             if (this.rrule.options.count) {
    212                                 var coursedates = this.rrule.all();
    213                                 var dateIndex = coursedates.findIndex(x => x.getTime() === parseInt(this.event.startDate.getTime() - this.event.startDate.getTimezoneOffset() * 60 * 1000));
    214                                 if (dateIndex === 0) {
    215                                     this.event.name += " (" + this.rrule.options.count + " " + eaTranslate("sessions") + ")";
    216                                 }
    217                                 else if (dateIndex !== -1) {
    218                                     this.event.name += " (" + (dateIndex + 1) + " " + eaTranslate("of") + " " + this.rrule.options.count + ")";
    219                                 }
    220                             }
    221                             else if (!params.get('startDate')) { // ongoing unspecified occurrence set time based on next occurrence.
    222                                 let adjustedDate = new Date(new Date(Date.now()).getTime() - new Date(Date.now()).getTimezoneOffset() * 60 * 1000);
    223                                 let dates = this.rrule.between(adjustedDate, new Date(adjustedDate.getTime() + 90 * 24 * 3600 * 1000));
    224                                 if (dates.length > 0) {
    225                                     this.event.startDate = new Date(dates[0].getTime() + (dates[0].getTimezoneOffset() * 60 * 1000));
    226                                     this.event.endDate = new Date(this.event.startDate.getTime() + this.event.duration);
    227                                 }
     202                            //if (this.rrule._exdate) {
     203                            //    //rrule doesn't provide a count if there's an exdate. need to get it from text rrule
     204                            //    let parts = this.event.rrule.split(';');
     205                            //    let exdateParts = parts[parts.length - 1].split('\n');
     206                            //    let countParts = exdateParts[0].split('=');
     207                            //    if (countParts.length === 2 && countParts[0].toLowerCase() === 'count')
     208                            //        this.rrule.options.count = countParts[1] - this.rrule._exdate.length;
     209                            //}
     210
     211                            //if (this.rrule.options.count) {
     212                            //    var coursedates = this.rrule.all();
     213                            //    var dateIndex = coursedates.findIndex(x => x.getTime() === parseInt(this.event.startDate.getTime() - this.event.startDate.getTimezoneOffset() * 60 * 1000));
     214                            //    if (dateIndex === 0) {
     215                            //        this.event.name += " (" + this.rrule.options.count + " " + eaTranslate("sessions") + ")";
     216                            //    }
     217                            //    else if (dateIndex !== -1) {
     218                            //        this.event.name += " (" + (dateIndex + 1) + " " + eaTranslate("of") + " " + this.rrule.options.count + ")";
     219                            //    }
     220                            //}
     221                            //else
     222
     223                            let adjustedDate = new Date(new Date(Date.now()).getTime() - new Date(Date.now()).getTimezoneOffset() * 60 * 1000);
     224                            let dates = this.rrule.between(adjustedDate, new Date(adjustedDate.getTime() + 90 * 24 * 3600 * 1000));
     225                            if (dates.length > 0) {
     226                                this.event.startDate = new Date(dates[0].getTime() + (dates[0].getTimezoneOffset() * 60 * 1000));
     227                                this.event.endDate = new Date(this.event.startDate.getTime() + this.event.duration);
    228228                            }
    229229                        }
     230
    230231
    231232                        if (this.event.hasRegistration) {
  • event-agent/trunk/public/js/utilities.js

    r3032376 r3034797  
    1 //function eaSaveUtms() {
    2 //    var params = new URLSearchParams(window.location.search);
    3 
    4 //    if (params.get('utm_source'))
    5 //        eaSessionSet('ea_source', params.get('utm_source'), 20);
    6 
    7 //    if (params.get('utm_medium'))
    8 //        eaSessionSet('ea_medium', params.get('utm_medium'), 20);
    9 //}
    10 
    11 function eaRetrieveUtms(reg) {
     1function eaRetrieveUtms(reg) {
    122    reg.utmSource = eaSessionGet('ea_source');
    133    reg.utmMedium = eaSessionGet('ea_medium');
     
    155
    166function eaLocalizeDay(rule, date) {
     7
     8    var dt1 = luxon.DateTime.fromJSDate(rule.options.dtstart).setZone(rule.options.tzid);
     9    var dt2 = luxon.DateTime.fromJSDate(date);
     10    // change day of week if we've crossed the dateline
     11    if (dt2.weekday !== dt1.weekday) {
     12        // this is reacting into an infinite look on the detail screen without date on param string. works fine everywhere else.
     13        for (var i = 0; i < rule.options.byweekday.length; i++) {
     14            rule.origOptions.byweekday[i].weekday += (dt2.weekday - dt1.weekday) % 7;
     15        }
     16    }
    1717
    1818    var str = rule.toText();
     
    8989
    9090        if (event.type === 'Ongoing') {
    91             //let rule = new rrule.rrulestr(event.rrule);
    92             //let last = new Date(new Date().getTime() + 30 * 24 * 60 * 60 * 1000);
    93             //let dates = rule.between(new Date(), last);
    94             //let sd = event.startDate;
    95             //if (dates.length > 0) {
    96             //    sd = new Date(dates[0].getTime() + dates[0].getTimezoneOffset() * 60 * 1000);
    97             //}
    9891            var params = new URLSearchParams(window.location.search);
    9992            return params.get('startDate') ? dateString + ' (' + ruleString + ')' : ruleString + ' ' +
Note: See TracChangeset for help on using the changeset viewer.