31453 31498 code cleanup
[com.zyxware.civiwci.git] / CRM / Wci / Form / ProgressBar.php
index 4b47371f5cd417d47393f924ff96a3dcd81a62e9..948080159f64cec231886092e159a7740b9dac14 100644 (file)
@@ -1,5 +1,26 @@
 <?php
-
+/*
+ +--------------------------------------------------------------------+
+ | CiviCRM Widget Creation Interface (WCI) Version 1.0                |
+ +--------------------------------------------------------------------+
+ | Copyright Zyxware Technologies (c) 2014                            |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM WCI.                                |
+ |                                                                    |
+ | CiviCRM WCI is free software; you can copy, modify, and distribute |
+ | it under the terms of the GNU Affero General Public License        |
+ | Version 3, 19 November 2007.                                       |
+ |                                                                    |
+ | CiviCRM WCI is distributed in the hope that it will be useful,     |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of     |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
+ | See the GNU Affero General Public License for more details.        |
+ |                                                                    |
+ | You should have received a copy of the GNU Affero General Public   |
+ | License along with this program; if not, contact Zyxware           |
+ | Technologies at info[AT]zyxware[DOT]com.                           |
+ +--------------------------------------------------------------------+
+*/
 require_once 'CRM/Core/Form.php';
 require_once 'wci-helper-functions.php';
 require_once 'CRM/Wci/BAO/ProgressBar.php';
@@ -11,20 +32,22 @@ require_once 'CRM/Wci/DAO/ProgressBarFormula.php';
  * @see http://wiki.civicrm.org/confluence/display/CRMDOC43/QuickForm+Reference
  */
 class CRM_Wci_Form_ProgressBar extends CRM_Core_Form {
-  private $_id;  
+  private $_id;
+
   function preProcess() {
     $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE, NULL, 'REQUEST');
-    CRM_Core_Resources::singleton()->addScriptFile('org.civicrm.wci', 'addmore.js');
+    CRM_Core_Resources::singleton()->addScriptFile('org.civicrm.wci', 'js/addmore.js');
     parent::preProcess();
   }
+
   function fillData() {
     $count = 1;
-    if (isset($this->_id)) {  
+    if (isset($this->_id)) {
       /** Updating existing progress bar*/
-      $query = "SELECT * FROM civicrm_wci_progress_bar where id=" . $this->_id;
-      $params = array();
-      
-      $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_WCI_DAO_ProgressBar');
+      $query = "SELECT * FROM civicrm_wci_progress_bar where id=%1";
+      $params = array(1 => array($this->_id, 'Integer'));
+
+      $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_Wci_DAO_ProgressBar');
 
       while ($dao->fetch()) {
         $con_page[$dao->id] = array();
@@ -36,11 +59,11 @@ class CRM_Wci_Form_ProgressBar extends CRM_Core_Form {
         $this->setDefaults(array(
               'goal_amount' => $con_page[$dao->id]['goal_amount']));
       }
-       
-      $query = "SELECT * FROM civicrm_wci_progress_bar_formula WHERE progress_bar_id =" . $this->_id;
-      $params = array();
 
-      $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_WCI_DAO_ProgressBarFormula');
+      $query = "SELECT * FROM civicrm_wci_progress_bar_formula WHERE progress_bar_id =%1";
+      $params = array(1 => array($this->_id, 'Integer'));
+
+      $dao = CRM_Core_DAO::executeQuery($query, $params, TRUE, 'CRM_Wci_DAO_ProgressBarFormula');
 
       while ($dao->fetch()) {
         $for_page[$dao->id] = array();
@@ -51,15 +74,15 @@ class CRM_Wci_Form_ProgressBar extends CRM_Core_Form {
           'contribution_page_'.$count, // field name
           'Contribution page', // field label
           getContributionPageOptions(), // list of options
-          true // is required
+          false // is required
         );
         $this->add(
           'text', // field type
           'percentage_'.$count, // field name
-          'Percentage', // field label
-          true // is required
+          'Percentage of contribution taken', // field label
+          false // is required
         );
-        //save formula id 
+        //save formula id
         $this->addElement('hidden', 'contrib_elem_'.$count , $for_page[$dao->id]['id']);
 
         $this->setDefaults(array(
@@ -69,8 +92,9 @@ class CRM_Wci_Form_ProgressBar extends CRM_Core_Form {
 
         $count++;
       }
+      CRM_Utils_System::setTitle(ts('Edit Progress Bar'));
       $count--; // because last iteration increments it to the next
-    }  
+    }
     else {
       /** New progress bar*/
       $this->add(
@@ -83,51 +107,39 @@ class CRM_Wci_Form_ProgressBar extends CRM_Core_Form {
       $this->add(
         'text', // field type
         'percentage_1', // field name
-        'Percentage', // field label
+        'Percentage of contribution taken', // field label
         true // is required
       );
+      CRM_Utils_System::setTitle(ts('Create Progress Bar'));
     }
-    
+
     $this->addElement('hidden', 'contrib_count', $count);
   }
-  
+
   function buildQuickForm() {
-  
+
     $this->add(
       'text', // field type
       'progressbar_name', // field name
       'Name', // field label
       true // is required
-    );
+    )->setSize(35);
     $this->add(
       'text', // field type
       'starting_amount', // field name
       'Starting amount', // field label
       true // is required
-    );
+    )->setSize(35);
     $this->add(
       'text', // field type
       'goal_amount', // field name
       'Goal amount', // field label
       true // is required
-    );
-/*    $this->add(
-      'select', // field type
-      'contribution_page_1', // field name
-      'Contribution page', // field label
-      getContributionPageOptions(), // list of options
-      true // is required
-    );
-    $this->add(
-      'text', // field type
-      'percentage_1', // field name
-      'Percentage', // field label
-      true // is required
-    );*/
-    
+    )->setSize(35);
+
     $this->fillData();
-    
-    $this->addElement('link', 'addmore_link',' ', 'addmore', 'Add more');
+
+    $this->addElement('link', 'addmore_link',' ', 'addmore', 'Add another contribution page');
 
     $this->addButtons(array(
       array(
@@ -147,63 +159,81 @@ class CRM_Wci_Form_ProgressBar extends CRM_Core_Form {
     $errorScope = CRM_Core_TemporaryErrorScope::useException();
     if (isset($this->_id)) {
       try {
-        $sql = "UPDATE civicrm_wci_progress_bar SET name = '". $_REQUEST['progressbar_name'] . 
-          "', starting_amount = '" . $_REQUEST['starting_amount'] . 
-          "', goal_amount = '" . $_REQUEST['goal_amount'] . 
-          "' where id =".$this->_id;
-
         $transaction = new CRM_Core_Transaction();
-        CRM_Core_DAO::executeQuery($sql);
 
-        for($i = 1; $i <= (int)$_REQUEST['contrib_count']; $i++):
+        $sql = "UPDATE civicrm_wci_progress_bar SET name = %1,
+          starting_amount = %2, goal_amount = %3 where id = %4";
+
+        CRM_Core_DAO::executeQuery($sql,
+              array(1=>array($_REQUEST['progressbar_name'], 'String'),
+              2=>array($_REQUEST['starting_amount'], 'Float'),
+              3=>array($_REQUEST['goal_amount'], 'Float'),
+              4=>array($this->_id, 'Integer'),
+        ));
+        /** Delete existiing formula fields and add fields fresh*/
+        CRM_Core_DAO::executeQuery('DELETE FROM civicrm_wci_progress_bar_formula
+            WHERE progress_bar_id=%1', array(1 => array($this->_id, 'Integer')));
+
+        for($i = 1; $i <= (int)$_REQUEST['contrib_count']; $i++) {
           $page = 'contribution_page_' . (string)$i;
           $perc = 'percentage_' . (string)$i;
-          if (isset($_REQUEST['contrib_elem_'.$i])) {
-            $sql = "UPDATE civicrm_wci_progress_bar_formula SET contribution_page_id = '". $_REQUEST[$page] . "',
-              percentage = '". $_REQUEST[$perc] . "'
-              WHERE id = " . (int)$_REQUEST['contrib_elem_'.$i];
-          } 
-          else {
-            $sql = "INSERT INTO civicrm_wci_progress_bar_formula (contribution_page_id, progress_bar_id, percentage) 
-              VALUES ('" . $_REQUEST[$page] . "','" . $this->_id . "','" . $_REQUEST[$perc] . "')";
-          }
-
-          CRM_Core_DAO::executeQuery($sql);
-        endfor;
+
+          $sql = "INSERT INTO civicrm_wci_progress_bar_formula
+            (contribution_page_id, progress_bar_id, percentage)
+            VALUES (%1, %2, %3)";
+
+          CRM_Core_DAO::executeQuery($sql,
+            array(1 => array($_REQUEST[$page], 'Integer'),
+            2 => array($this->_id, 'Integer'),
+            3 => array($_REQUEST[$perc], 'Float'),
+          ));
+        }
+
         $transaction->commit();
+        CRM_Core_Session::setStatus(ts('Progress bar created successfuly'), '', 'success');
+        CRM_Utils_System::redirect('progress-bar?reset=1');
       }
       catch (Exception $e) {
-        //TODO
-        print_r($e->getMessage());
+        CRM_Core_Session::setStatus(ts('Failed to create progress bar'), '', 'error');
         $transaction->rollback();
       }
-    
-    } 
+
+    }
     else {
-      $sql = "INSERT INTO civicrm_wci_progress_bar (name, starting_amount, goal_amount) 
-      VALUES ('" . $_REQUEST['progressbar_name'] . "','" . $_REQUEST['starting_amount'] . "','" . $_REQUEST['goal_amount'] . "')";
+      $sql = "INSERT INTO civicrm_wci_progress_bar
+              (name, starting_amount, goal_amount) VALUES (%1, %2, %3)";
       try {
         $transaction = new CRM_Core_Transaction();
-        CRM_Core_DAO::executeQuery($sql);
+        CRM_Core_DAO::executeQuery($sql,
+          array(1=>array($_REQUEST['progressbar_name'], 'String'),
+          2=>array($_REQUEST['starting_amount'], 'Float'),
+          3=>array($_REQUEST['goal_amount'], 'Float'),
+        ));
         $progressbar_id = CRM_Core_DAO::singleValueQuery('SELECT LAST_INSERT_ID()');
         for($i = 1; $i <= (int)$_REQUEST['contrib_count']; $i++):
           $page = 'contribution_page_' . (string)$i;
           $perc = 'percentage_' . (string)$i;
 
-          $sql = "INSERT INTO civicrm_wci_progress_bar_formula (contribution_page_id, progress_bar_id, percentage) 
-          VALUES ('" . $_REQUEST[$page] . "','" . $progressbar_id . "','" . $_REQUEST[$perc] . "')";
-          
-          CRM_Core_DAO::executeQuery($sql);
+          $sql = "INSERT INTO civicrm_wci_progress_bar_formula
+          (contribution_page_id, progress_bar_id, percentage)
+          VALUES (%1, %2, %3)";
+
+          CRM_Core_DAO::executeQuery($sql,
+          array(1 => array($_REQUEST[$page], 'Integer'),
+          2 => array($progressbar_id, 'Integer'),
+          3 => array($_REQUEST[$perc], 'Float'),
+          ));
         endfor;
         $transaction->commit();
-      }    
+        CRM_Utils_System::redirect('civicrm/wci/progress-bar?reset=1');
+      }
       catch (Exception $e) {
-        //TODO
-        print_r($e->getMessage());
+        CRM_Core_Session::setStatus(ts('Failed to create Progress bar. ') .
+        $e->getMessage(), '', 'error');
         $transaction->rollback();
       }
       $elem = $this->getElement('contrib_count');
-      $elem->setValue('1');    
+      $elem->setValue('1');
     }
     parent::postProcess();
   }
@@ -228,4 +258,3 @@ class CRM_Wci_Form_ProgressBar extends CRM_Core_Form {
     return $elementNames;
   }
 }
-