Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 3671 | Rev 4700 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3671 Rev 4179
Línea 8... Línea 8...
8
use Laminas\Mvc\Controller\AbstractActionController;
8
use Laminas\Mvc\Controller\AbstractActionController;
9
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
9
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
10
use Laminas\Log\LoggerInterface;
10
use Laminas\Log\LoggerInterface;
11
use Laminas\View\Model\ViewModel;
11
use Laminas\View\Model\ViewModel;
12
use Laminas\View\Model\JsonModel;
12
use Laminas\View\Model\JsonModel;
-
 
13
use LeadersLinked\Mapper\CalendarEventMapper;
13
use LeadersLinked\Mapper\CompanyFollowerMapper;
14
use LeadersLinked\Mapper\CompanyFollowerMapper;
14
use LeadersLinked\Mapper\QueryMapper;
15
use LeadersLinked\Mapper\QueryMapper;
15
use LeadersLinked\Mapper\UserMapper;
16
use LeadersLinked\Mapper\UserMapper;
-
 
17
use LeadersLinked\Mapper\ZoomMeetingMapper;
16
use LeadersLinked\Library\Functions;
18
use LeadersLinked\Library\Functions;
17
use LeadersLinked\Mapper\UserPasswordMapper;
19
use LeadersLinked\Mapper\UserPasswordMapper;
18
use LeadersLinked\Form\AccountSetting\NotificationSettingForm;
20
use LeadersLinked\Form\AccountSetting\NotificationSettingForm;
19
use LeadersLinked\Mapper\UserNotificationSettingMapper;
21
use LeadersLinked\Mapper\UserNotificationSettingMapper;
Línea 20... Línea 22...
20
 
22
 
21
use LeadersLinked\Form\AccountSetting\ChangePasswordForm;
23
use LeadersLinked\Form\AccountSetting\ChangePasswordForm;
22
use LeadersLinked\Form\AccountSetting\ChangeImageForm;
24
use LeadersLinked\Form\AccountSetting\ChangeImageForm;
23
use LeadersLinked\Library\Image;
25
use LeadersLinked\Library\Image;
-
 
26
use LeadersLinked\Form\AccountSetting\LocationForm;
24
use LeadersLinked\Form\AccountSetting\LocationForm;
27
use LeadersLinked\Model\CalendarEvent;
25
use LeadersLinked\Model\Location;
28
use LeadersLinked\Model\Location;
26
use LeadersLinked\Model\User;
29
use LeadersLinked\Model\User;
27
use LeadersLinked\Mapper\LocationMapper;
30
use LeadersLinked\Mapper\LocationMapper;
28
use LeadersLinked\Form\AccountSetting\PrivacySettingForm;
31
use LeadersLinked\Form\AccountSetting\PrivacySettingForm;
Línea 1631... Línea 1634...
1631
        } else {
1634
        } else {
1632
            return new JsonModel([
1635
            return new JsonModel([
1633
                'success' => false,
1636
                'success' => false,
1634
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1637
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1635
            ]);
1638
            ]);
-
 
1639
        }
-
 
1640
    }
-
 
1641
    
-
 
1642
    public function nextEventsAction()
-
 
1643
    {
-
 
1644
        $request = $this->getRequest();
-
 
1645
        if($request->isGet()) {
-
 
1646
            
-
 
1647
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1648
            $currentUser = $currentUserPlugin->getUser();
-
 
1649
            
-
 
1650
            $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
1651
            $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
1652
            
-
 
1653
 
-
 
1654
            
-
 
1655
            $dt = new \DateTime();
-
 
1656
            $dt->setTime(0, 0, 0);
-
 
1657
            $start = $dt->format('Y-m-d H:i:s');
-
 
1658
            
-
 
1659
            $dt->add(new \DateInterval('P30D'));
-
 
1660
            $dt->setTime(23, 59, 59);
-
 
1661
            $end = $dt->format('Y-m-d H:i:s');
-
 
1662
            
-
 
1663
          
-
 
1664
            
-
 
1665
            
-
 
1666
            $events = [];
-
 
1667
            
-
 
1668
            
-
 
1669
            
-
 
1670
            //3 días
-
 
1671
            $expirePeriod = 86400 * 3;
-
 
1672
            $t1 = time();
-
 
1673
            
-
 
1674
            
-
 
1675
            $zoomMeetingMapper = ZoomMeetingMapper::getInstance($this->adapter);
-
 
1676
            
-
 
1677
            $calendarEventMapper = CalendarEventMapper::getInstance($this->adapter);
-
 
1678
            $records = $calendarEventMapper->fetchAllByUserIdAndStartTimeAndEndTime($currentUser->id, $start, $end);
-
 
1679
            foreach($records as $record)
-
 
1680
            {
-
 
1681
                switch($record->type)
-
 
1682
                {
-
 
1683
                    case CalendarEvent::TYPE_ZOOM :
-
 
1684
                        $zoomMeeting = $zoomMeetingMapper->fetchOne($record->relational_id);
-
 
1685
                        if($zoomMeeting) {
-
 
1686
                            
-
 
1687
                            $backgroundColor = $currentNetwork->css_calendar_zoom_bg_color ;
-
 
1688
                            $textColor = $currentNetwork->css_calendar_zoom_text_color;
-
 
1689
                            
-
 
1690
                            $dtStart = \DateTime::createFromFormat('Y-m-d H:i:s', $zoomMeeting->start_time);
-
 
1691
                            $t2 = $dtStart->getTimestamp();
-
 
1692
                            
-
 
1693
                            if($t2 > $t1) {
-
 
1694
                                
-
 
1695
                                $t3 = $t1 + $expirePeriod;
-
 
1696
                                if($t3 > $t2) {
-
 
1697
                                    $backgroundColor = $currentNetwork->css_calendar_expire_bg_color;
-
 
1698
                                    $textColor = $currentNetwork->css_calendar_expire_text_color;
-
 
1699
                                }
-
 
1700
                                
-
 
1701
                            }
-
 
1702
                            
-
 
1703
                            
-
 
1704
                            
-
 
1705
                            if($currentUser->timezone && $currentUser->timezone != $zoomMeeting->timezone) {
-
 
1706
                                
-
 
1707
                                $start =  str_replace(' ', 'T', Functions::convertDateTimeBetweenTimeZones($zoomMeeting->start_time, $zoomMeeting->timezone, $currentUser->timezone));
-
 
1708
                                $end =  str_replace(' ', 'T', Functions::convertDateTimeBetweenTimeZones($zoomMeeting->end_time, $zoomMeeting->timezone, $currentUser->timezone));
-
 
1709
                                
-
 
1710
                                
-
 
1711
                                
-
 
1712
                                
-
 
1713
                                
-
 
1714
                            } else {
-
 
1715
                                $start = str_replace(' ', 'T', $zoomMeeting->start_time);
-
 
1716
                                $end = str_replace(' ', 'T', $zoomMeeting->end_time);
-
 
1717
                            }
-
 
1718
                            
-
 
1719
                            
-
 
1720
                            
-
 
1721
                            
-
 
1722
                            
-
 
1723
                            
-
 
1724
                            $agenda = "<a href=\"{$zoomMeeting->join_url}\" target=\"_blank\">" .  $zoomMeeting->agenda . "<br>" .
-
 
1725
                                " LABEL_ZOOM_MEETING_START_DATE : " . $dtStart->format('Y-m-d') . "<br>" .
-
 
1726
                                " LABEL_ZOOM_MEETING_START_TIME : " . $dtStart->format('H:i a') . "<br>" .
-
 
1727
                                " LABEL_ZOOM_MEETING_TIMEZONE : " . $zoomMeeting->timezone . "<br>" .
-
 
1728
                                " LABEL_ZOOM_MEETING_TITLE :  " . $zoomMeeting->topic  . "<br>" .
-
 
1729
                                " LABEL_ZOOM_MEETING_URL : " . $zoomMeeting->join_url . "<br>" .
-
 
1730
                                " LABEL_ZOOM_MEETING_PASSWORD : " . $zoomMeeting->password . "<br>" .
-
 
1731
                                "</a>";
-
 
1732
                            
-
 
1733
                            array_push($events, [
-
 
1734
                                'id'                => $zoomMeeting->id,
-
 
1735
                                'title'             => $zoomMeeting->topic,
-
 
1736
                                'agenda'            => $agenda,
-
 
1737
                                'start'             => $start,
-
 
1738
                                'end'               => $end,
-
 
1739
                                'url'               => $zoomMeeting->join_url,
-
 
1740
                                'backgroundColor'   => $backgroundColor,
-
 
1741
                                'textColor'         => $textColor,
-
 
1742
                            ]);
-
 
1743
                        }
-
 
1744
                        break;
-
 
1745
                        
-
 
1746
                        
-
 
1747
                }
-
 
1748
                
-
 
1749
                
-
 
1750
                
-
 
1751
            }
-
 
1752
            
-
 
1753
            
-
 
1754
            
-
 
1755
            return new JsonModel([
-
 
1756
                'success' => true,
-
 
1757
                'data' => $events
-
 
1758
            ]);
-
 
1759
            
-
 
1760
            
-
 
1761
        } else {
-
 
1762
            return new JsonModel([
-
 
1763
                'success' => false,
-
 
1764
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1765
            ]);
1636
        }
1766
        }
1637
    }
1767
    }
Línea 1638... Línea 1768...
1638
    
1768