protected function addOnloadJs($gender, $sectionsVisibility) { OW::getDocument()->addScript(OW::getPluginManager()->getPlugin('usearch')->getStaticJsUrl() . 'main_search.js'); $accountTypeList = BOL_QuestionService::getInstance()->findAllAccountTypes(); $js = new UTIL_JsGenerator(); $js->newObject('fieldModel', 'USearchFromQuestionModel'); /*@var $dto BOL_QuestionAccountType */ foreach ($accountTypeList as $dto) { $genderAccount = SKADATE_BOL_AccountTypeToGenderService::getInstance()->getGender($dto->name); $questionList = BOL_QuestionService::getInstance()->findSearchQuestionsForAccountType($dto->name); foreach ($questionList as $question) { $js->callFunction('fieldModel.addField', array($question['name'], $genderAccount, $genderAccount == $gender, $question['sectionName'])); } } $js->newObject('sectionModel', 'USearchSectionModel'); foreach ($sectionsVisibility as $section => $visibility) { $js->callFunction('sectionModel.addSection', array($section, $visibility)); } $params = array('gender' => $gender, 'sectionPrefix' => self::SECTION_TR_PREFIX, 'fieldPrefix' => self::QUESTION_TR_PREFIX); $js->addScript('; USearchFromPresenter.init(fieldModel, sectionModel, {$params});', array('params' => $params)); OW::getDocument()->addOnloadScript($js->generateJs()); }
protected function initializeJs($responderController, $dragAndDropJsConstructor, $sharedData = array()) { $baseStaticJsUrl = OW::getPluginManager()->getPlugin('BASE')->getStaticJsUrl(); OW::getDocument()->addScript($baseStaticJsUrl . 'jquery-ui.min.js'); OW::getDocument()->addScript($baseStaticJsUrl . 'drag_and_drop_slider.js'); OW::getDocument()->addScript($baseStaticJsUrl . 'ajax_utils.js'); OW::getDocument()->addScript($baseStaticJsUrl . 'drag_and_drop_handler.js'); OW::getDocument()->addScript($baseStaticJsUrl . 'component_drag_and_drop.js'); OW::getLanguage()->addKeyForJs('base', 'widgets_delete_component_confirm'); OW::getLanguage()->addKeyForJs('base', 'widgets_reset_position_confirm'); $urlAjaxResponder = OW::getRouter()->urlFor($responderController, 'processQueue'); $sharedData = array_merge(array("settingsCmpClass" => $this->settingsCmpClass), $sharedData); $js = new UTIL_JsGenerator(); $js->newObject('handler', 'OW_Components_DragAndDropAjaxHandler', array($urlAjaxResponder, $sharedData)); $js->newObject('dragAndDrop', $dragAndDropJsConstructor); $js->addScript("dragAndDrop.setHandler(handler)"); OW::getDocument()->addOnloadScript($js); }