public function updatebrowserslistAction()
 {
     $data = array();
     try {
         $projectId = $this->getRequest_ProjectID();
         $planId = $this->getRequest_ID();
         $browsers = json_decode($this->getRequest()->getParam('browsers'));
         $this->getAcl()->checkAvailable(Model_ACL::TASK_QA_TEST_PLAN_EDIT, $projectId);
         $m = Model_DBMapper_ApplicationMapper::get_instance();
         $o = $m->find($projectId);
         if (!isset($o)) {
             throw new Exception('There is no such Application');
         }
         $m = Model_DBMapper_TestPlanMapper::get_instance();
         $o = $m->find($planId);
         if (!isset($o)) {
             throw new Exception('There is no such Test Plan');
         }
         /** @var $m Model_DBMapper_TestPlanBrowserMapMapper */
         $m = Model_DBMapper_TestPlanBrowserMapMapper::get_instance();
         $m->updateBrowsersOfTestPlan($planId, $browsers);
         $data = array("success" => true);
     } catch (Exception $ex) {
         $data = array("success" => false, "error" => $ex->getMessage());
     }
     $this->_helper->json->sendJson($data);
 }
 protected function getTestPlanBrowserMapMapper()
 {
     if (null === $this->_test_plan_browser_map_mapper) {
         $this->setTestPlanBrowserMapMapper(Model_DBMapper_TestPlanBrowserMapMapper::get_instance());
     }
     return $this->_test_plan_browser_map_mapper;
 }