From 89e0458500c571e1dd4bd9372b6230fb7f7aae57 Mon Sep 17 00:00:00 2001 From: denise Date: Mon, 3 Dec 2012 17:15:47 -0500 Subject: [PATCH] CC-4728: Support Feedback save action does not use ajax -done --- .../controllers/PreferenceController.php | 15 +++++++++++---- .../scripts/preference/support-setting.phtml | 9 ++++----- .../js/airtime/preferences/support-setting.js | 17 ++++++++++++++++- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/airtime_mvc/application/controllers/PreferenceController.php b/airtime_mvc/application/controllers/PreferenceController.php index 6337c0edb..ff68d84dd 100644 --- a/airtime_mvc/application/controllers/PreferenceController.php +++ b/airtime_mvc/application/controllers/PreferenceController.php @@ -81,7 +81,7 @@ class PreferenceController extends Zend_Controller_Action public function supportSettingAction() { global $CC_CONFIG; - + $request = $this->getRequest(); $baseUrl = Application_Common_OsPath::getBaseDir(); @@ -89,10 +89,15 @@ class PreferenceController extends Zend_Controller_Action $this->view->headScript()->appendFile($baseUrl.'/js/airtime/preferences/support-setting.js?'.$CC_CONFIG['airtime_version'],'text/javascript'); $this->view->statusMsg = ""; - $form = new Application_Form_SupportSettings(); if ($request->isPost()) { - $values = $request->getPost(); + $postData = $request->getPost(); + $values = array(); + //put postData in array format isValid() expects it to be in + foreach ($postData["data"] as $field) { + $values[$field["name"]] = $field["value"]; + } + if ($form->isValid($values)) { if ($values["Publicise"] != 1) { Application_Model_Preference::SetSupportFeedback($values["SupportFeedback"]); @@ -133,7 +138,9 @@ class PreferenceController extends Zend_Controller_Action $this->view->privacyChecked = $privacyChecked; $this->view->section_title = _('Support Feedback'); $this->view->form = $form; - //$form->render($this->view); + if ($request->isPost()) { + die(json_encode(array("html"=>$this->view->render('preference/support-setting.phtml')))); + } } public function directoryConfigAction() diff --git a/airtime_mvc/application/views/scripts/preference/support-setting.phtml b/airtime_mvc/application/views/scripts/preference/support-setting.phtml index d4889103a..bbfd05fd9 100644 --- a/airtime_mvc/application/views/scripts/preference/support-setting.phtml +++ b/airtime_mvc/application/views/scripts/preference/support-setting.phtml @@ -1,13 +1,12 @@ -
+

section_title?>

-
enctype="multipart/form-data"> +
statusMsg ?> form ?>
-
- form->getElement('submit') ?> -
+
+
diff --git a/airtime_mvc/public/js/airtime/preferences/support-setting.js b/airtime_mvc/public/js/airtime/preferences/support-setting.js index 0e72daf9f..2fe35e4ce 100644 --- a/airtime_mvc/public/js/airtime/preferences/support-setting.js +++ b/airtime_mvc/public/js/airtime/preferences/support-setting.js @@ -11,8 +11,23 @@ function showErrorSections() { } $(document).ready(function() { + setUpEventListeners(); +}); + +function setUpEventListeners() { var form = $("form"); + $("#support_save").click( function() { + var data = $("#support-feedback-form").serializeArray(); + var url = baseUrl+'/Preference/support-setting'; + + $.post(url, {format:"json", data: data}, function(data){ + var json = $.parseJSON(data); + $("#support-feedback-view").parent().empty().append(json.html); + setUpEventListeners(); + }); + }); + $("#SupportFeedback").click( function(){ var pub = $("#Publicise"); if( !$(this).is(':checked') ){ @@ -81,4 +96,4 @@ $(document).ready(function() { logoEl.find(".errors").remove(); } }); -}); +}