コード例 #1
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 public function executeAddNewSubscriber(sfWebRequest $request)
 {
     $this->minyan = Utils::extractDomainObjectFromRequest($request, 'Minyan', 'minyanId', true);
     $this->form = new SignupForm();
     unset($this->form['password']);
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('signup'));
         if ($this->form->isValid()) {
             $fields = $this->form->getValues();
             $con = Doctrine::getConnectionByTableName('SfGuardUser');
             try {
                 $con->beginTransaction();
                 $this->logMessage("Executing signup for new user for minyan {$this->minyan->getName()}: {$fields['email']}", 'notice');
                 $sgu = new SfGuardUser();
                 $sgu->setFirstName($fields['first_name']);
                 $sgu->setLastName($fields['last_name']);
                 $sgu->setUsername($fields['email']);
                 $sgu->setEmailAddress($fields['email']);
                 $sgu->setPhone($fields['phone']);
                 $sgu->setPassword(sfConfig::get('app_temp_password'));
                 $sgu->setIsActive(true);
                 $sgu->save();
                 $contactMethods = $request->getParameter('contact_method');
                 foreach ($contactMethods as $name => $method) {
                     $contactMethods[$name] = Utils::toBoolean($method);
                 }
                 $minyanUser = new MinyanUser();
                 $minyanUser->setMinyanId($this->minyan->getId());
                 $minyanUser->setUserId($sgu->getId());
                 $minyanUser->setUsePhone($contactMethods['phone']);
                 $minyanUser->setUseSms($contactMethods['text']);
                 $minyanUser->setUseEmail($contactMethods['email']);
                 $minyanUser->save();
                 $con->commit();
             } catch (Exception $e) {
                 $con->rollback();
                 $this->logMessage("Problem when signing up user {$fields['email']}: {$e->getMessage()}", 'notice');
                 throw $e;
             }
             MAMUtils::sendInternalEmail("New Make a Minyan User Alert for minyan {$this->minyan->getName()}! - {$sgu->getFullName()}", "");
             //send email
             $options = array();
             $options['template'] = 'welcomeToMinyan';
             $options['subject'] = 'Welcome!';
             $options['minyan'] = $this->minyan;
             $options['user'] = $sgu;
             $options['minyanUser'] = $minyanUser;
             $options['first_name'] = $sgu->getFirstName();
             $options['to'] = $sgu->getUsername();
             EmailUtils::send($options);
             $this->logMessage('Welcome email sent to ' . $sgu->getUsername(), 'notice');
             $this->getUser()->setFlash('subscribersSuccess', 'Added ' . $sgu->getUsername() . ' successfully!');
             echo Utils::ajaxResponse(true, $this->minyan->getId());
             return sfView::NONE;
         }
     }
 }
コード例 #2
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 public function executeLogout(sfWebRequest $request)
 {
     if ($this->getUser()->isAuthenticated()) {
         AuthenticationUtils::signOut();
         MAMUtils::setView($this, array('title' => 'You have been logged out.', 'mobileTemplate' => 'logoutMobile'));
         return sfView::SUCCESS;
     } else {
         $this->redirect('index/index');
     }
 }
コード例 #3
0
 public static function fireBlast(Blast $blast)
 {
     //dont do anything if we've already fired
     if ($blast->getHasFired()) {
         return;
     }
     $blast->setHasFired(true);
     $blast->save();
     $minyan = $blast->getMinyan();
     //loop through the minyan subscribers, generate a response, and send notifications
     $phoneCounter = 0;
     $emailCounter = 0;
     $textCounter = 0;
     $subscribers = $minyan->getUsers();
     foreach ($subscribers as $subscriber) {
         $response = new BlastResponse();
         $response->setBlastId($blast->getId());
         $response->setUserId($subscriber->getUserId());
         $response->save();
         if ($subscriber->getUsePhone()) {
             self::createPhoneResponse($response);
             $phoneCounter++;
         } else {
             if ($subscriber->getUseSms()) {
                 self::createTextResponse($response);
                 $textCounter++;
             }
         }
         if ($subscriber->getUseEmail()) {
             self::createEmailResponse($response);
             $emailCounter++;
         }
     }
     MAMUtils::sendInternalEmail("Minyan Blast - {$minyan->getName()}", $blast->getTextMessage() . "<br><ul><li>Emails: {$emailCounter}</li><li>Phone Calls: {$phoneCounter}</li><li>Texts: {$textCounter}</li></ul>");
     //update the minyan resource counters
     $minyan->setNumberEmails($minyan->getNumberEmails() + $emailCounter);
     $minyan->setNumberTexts($minyan->getNumberTexts() + $textCounter);
     $minyan->setNumberPhoneCalls($minyan->getNumberPhoneCalls() + $phoneCounter);
     $minyan->save();
     $blast->setNumberEmails($blast->getNumberEmails() + $emailCounter);
     $blast->setNumberTexts($blast->getNumberTexts() + $textCounter);
     $blast->setNumberPhoneCalls($blast->getNumberPhoneCalls() + $phoneCounter);
     $blast->save();
 }
コード例 #4
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 public function executeIndex(sfWebRequest $request)
 {
     $this->blastResponse = Utils::extractDomainObjectFromRequest($request, 'BlastResponse', 'responseId');
     MAMUtils::setView($this, array('title' => 'Thanks for your response!'));
     if ($request->hasParameter('status') && array_search($request->getParameter('status'), array('yes', 'no', 'maybe')) !== false) {
         $this->blastResponse->setStatus($request->getParameter('status'));
         if ($request->getParameter('status') !== 'yes') {
             $this->blastResponse->setAdditional(0);
         }
         $this->blastResponse->save();
     }
     if ($request->hasParameter('additional') && is_numeric($request->getParameter('additional')) && $request->getParameter('additional') < 10) {
         $this->blastResponse->setAdditional($request->getParameter('additional'));
         $this->blastResponse->save();
         $this->getUser()->setMessage('additionalSuccess', 'Additional number of people stored successfully');
     }
     $this->minyan = $this->blastResponse->getBlast()->getMinyan()->getName();
     $this->eventType = $this->blastResponse->getBlast()->getEventType();
     $this->eventTime = $this->blastResponse->getBlast()->getEventTimeString();
 }
コード例 #5
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $request)
 {
     $this->form = new SignupForm();
     if ($request->isMethod('post')) {
         $this->form->bind($request->getParameter('signup'));
         if ($this->form->isValid()) {
             $fields = $this->form->getValues();
             $con = Doctrine::getConnectionByTableName('SfGuardUser');
             try {
                 $con->beginTransaction();
                 $this->logMessage("Executing signup for new user: {$fields['email']}", 'notice');
                 $sgu = new SfGuardUser();
                 $sgu->setFirstName($fields['first_name']);
                 $sgu->setLastName($fields['last_name']);
                 $sgu->setUsername($fields['email']);
                 $sgu->setEmailAddress($fields['email']);
                 $sgu->setPhone($fields['phone']);
                 $sgu->setPassword($fields['password']);
                 $sgu->setIsActive(true);
                 $sgu->save();
                 $con->commit();
             } catch (Exception $e) {
                 $con->rollback();
                 $this->logMessage("Problem when signing up user {$fields['email']}: {$e->getMessage()}", 'notice');
                 throw $e;
             }
             MAMUtils::sendInternalEmail("New Make a Minyan User Alert! - {$sgu->getFullName()}, Plan: {$this->plan['name']}", "");
             //send email
             $options = array();
             $options['template'] = 'welcome';
             $options['subject'] = 'Welcome!';
             $options['first_name'] = $sgu->getFirstName();
             $options['to'] = $sgu->getUsername();
             EmailUtils::send($options);
             $this->logMessage('Welcome email sent to ' . $sgu->getUsername(), 'notice');
             $this->redirect('signup/thanks');
         }
     }
 }
コード例 #6
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 private function setupView($options = array())
 {
     $options['selected'] = 'Dashboard';
     MAMUtils::setView($this, $options);
 }
コード例 #7
0
<style>
    table.minyanim {
        width: 100%;
        font-size: 16px;
        margin-top: 10px;
    }

    table.minyanim td {
        vertical-align: middle;
    }
</style>

<?php 
echo MAMUtils::writeFlashBlock('dashboard');
?>

<div class="minyanZone" style="margin-bottom: 20px;">
    <? if (count($minyanim) == 0): ?>
        <h3> You are currently not subscribed to any minyan</h3>

    <? else: ?>
        <h3> Your minyanim: </h3>
            <? foreach($minyanim as $minyanUser): ?>
                <h2><?php 
echo link_to($minyanUser->getMinyan()->getName(), 'subscriptions/index?minyanId=' . $minyanUser->getMinyan()->getId());
?>
</h2>

                <? if ($minyanUser->isAdmin()): ?>
                    <?php 
echo link_to('Blast', 'blast/create?minyanId=' . $minyanUser->getMinyan()->getId(), array('class' => 'action'));
コード例 #8
0
<h2 class="centeredTitle">Please log in</h2>

<? MAMUtils::writeFlashBlock('login');?>

<form id="loginForm" method="post" action="<? echo url_for('login/index'); ?>" class="tableless">
    <div class="fieldset">
        <div class="fields">
            <div class="field">
                <input style="font-weight: bold" value="<?php 
echo $sf_request->getParameter('username');
?>
" type="text" name="username" />
                <label>Email or Phone Number</label>
            </div>
            <div class="field">
                <input style="font-weight: bold" type="password" name="password" />
                 <label>Password</label>
            </div>
        </div>
    </div>

    <? Utils::clearDiv(); ?>

    <input type="hidden" name="remember_me" value="true" />
    <input type="hidden" name="redirect" value="<?php 
echo $redirectUrl;
?>
" />

    <div class="centered">
        <button class="greenButtonFixed" type="submit">Login</button>
コード例 #9
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function setupPage($options = array())
 {
     MAMUtils::setView($this, $options);
 }
コード例 #10
0
ファイル: actions.class.php プロジェクト: jnankin/makeaminyan
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 private function setupView($options = array())
 {
     $options['selected'] = 'My Account';
     MAMUtils::setView($this, $options);
 }
コード例 #11
0
ファイル: indexSuccess.php プロジェクト: jnankin/makeaminyan
    }
    div.contact_method p {
        margin-bottom: 20px;
    }

    div.responses {
        float: left;
        width: 640px;
    }
</style>

<h2>Your responses for '<?php 
echo $minyan->getName();
?>
'</h2>
<? MAMUtils::writeFlashBlock('subscriptions'); ?>

<br/>

<div class="responses">
    <? if (count($responses) == 0): ?>
        <h3> This minyan has not yet sent you any requests. </h3>
    <? else: ?>
        <table class="responses">
        <? foreach ($this->minyanResponses as $response): ?>
                <tr>

                </tr>
        <? endforeach; ?>
        </table>
    <? endif; ?>
コード例 #12
0
ファイル: indexSuccess.php プロジェクト: jnankin/makeaminyan
?>
 minyan at <?php 
echo $minyan;
?>
  <?php 
echo $eventTime;
?>
.
</h2>
<br/><br/>
<? if ($blastResponse->getStatus() != 'yes'): ?>
<h3 align="center">No further action is required at this time.</h3>
<? else: ?>

<?php 
echo MAMUtils::writeFlashBlock('additional');
?>
<h3>If you are bringing others besides yourself, <br/>please enter how many you are bringing here: &nbsp;&nbsp;&nbsp;</h3><br/>
<form action="<?php 
echo url_for('emailResponse/index?responseId=' . $blastResponse->getId());
?>
" method="post">
<input type="text" name="additional" value="<?php 
echo $blastResponse->getAdditional();
?>
" />
<button type="submit">Save</button>
</form>

<? endif; ?>
コード例 #13
0
<div style="float: right; padding: 10px; border: 1px solid #EBE6D1; width: 260px;">
    <a href="/files/subscriberForm.pdf">
        <img border="0" src="/images/pdf.png" align="right" style="margin-left: 5px; margin-bottom: 5px" />
        <strong>Download a subscriber form</strong>
    </a>
    <br/><br/>
    Put this handy subscriber form somewhere in your shul to collect emails and phone numbers
    for your minyan.  Then, enter the information on this page using the "Add New Subscriber" button.
</div>
<h2>Subscribers for <?php 
echo $minyan->getName();
?>
</h2><br/>

<?php 
echo MAMUtils::writeFlashBlock('subscribers');
?>

<button onclick="showAddSubscriberForm();" class="fancy">
    Add New Subscriber
</button> 

<button onclick="deleteSubscribers();" class="fancy">
    Delete Subscribers
</button>


<br/><br/>
<strong><?php 
echo count($minyanUsers);
?>