/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $ext = FabrikHelperHTML::isDebug() ? '.js' : '-min.js'; $files = array('media/com_fabrik/js/element' . $ext, 'media/com_fabrik/js/elementlist' . $ext); foreach ($files as $file) { if (!in_array($file, $srcs)) { $srcs[] = $file; } } parent::formJavascriptClass($srcs, $script, $shim); }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void|boolean */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $key = FabrikHelperHTML::isDebug() ? 'element/field/field' : 'element/field/field-min'; $params = $this->getParams(); $inputMask = trim($params->get('text_input_mask', '')); $geoComplete = $params->get('autocomplete', '0') === '3'; $s = new stdClass(); // Even though fab/element is now an AMD defined module we should still keep it in here // otherwise (not sure of the reason) jQuery.mask is not defined in field.js // Seems OK now - reverting to empty array $s->deps = array(); if (!empty($inputMask)) { $folder = 'components/com_fabrik/libs/masked_input/'; $s->deps[] = $folder . 'jquery.maskedinput'; } if ($geoComplete) { $folder = 'components/com_fabrik/libs/googlemaps/geocomplete/'; $s->deps[] = $folder . 'jquery.geocomplete'; } if (array_key_exists($key, $shim)) { $shim[$key]->deps = array_merge($shim[$key]->deps, $s->deps); } else { $shim[$key] = $s; } parent::formJavascriptClass($srcs, $script, $shim); // $$$ hugh - added this, and some logic in the view, so we will get called on a per-element basis return false; }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $mediaFolder = FabrikHelperHTML::getMediaFolder(); $files = array('Element' => $mediaFolder . '/element.js', 'ElementList' => $mediaFolder . '/elementlist.js'); $srcs = array_merge($srcs, $files); parent::formJavascriptClass($srcs, $script, $shim); }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { // Whilst link isn't really an element list we can use its js AddNewEvent method $s = new stdClass(); $s->deps = array('fab/elementlist'); $shim['element/link/link'] = $s; parent::formJavascriptClass($srcs, $script, $shim); }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $s = new stdClass(); $s->deps = array('fab/element'); $params = $this->getParams(); if ($params->get('ajax_upload')) { $runtimes = $params->get('ajax_runtime', 'html5'); $folder = 'element/fileupload/lib/plupload/js/'; $plupShim = new stdClass(); $plupShim->deps = array($folder . 'plupload'); $s->deps[] = $folder . 'plupload'; if (strstr($runtimes, 'html5')) { $s->deps[] = $folder . 'plupload.html5'; $shim[$folder . 'plupload.html5'] = $plupShim; } if (strstr($runtimes, 'html4')) { $s->deps[] = $folder . 'plupload.html4'; $shim[$folder . 'plupload.html4'] = $plupShim; } if (strstr($runtimes, 'flash')) { $s->deps[] = $folder . 'plupload.flash'; $shim[$folder . 'plupload.flash'] = $plupShim; } if (strstr($runtimes, 'silverlight')) { $s->deps[] = $folder . 'plupload.silverlight'; $shim[$folder . 'plupload.silverlight'] = $plupShim; } if (strstr($runtimes, 'browserplus')) { $s->deps[] = $folder . 'plupload.browserplus'; $shim[$folder . 'plupload.browserplus'] = $plupShim; } } if (array_key_exists('element/fileupload/fileupload', $shim) && isset($shim['element/fileupload/fileupload']->deps)) { $shim['element/fileupload/fileupload']->deps = array_values(array_unique(array_merge($shim['element/fileupload/fileupload']->deps, $s->deps))); } else { $shim['element/fileupload/fileupload'] = $s; } if ($this->requiresSlideshow()) { FabrikHelperHTML::slideshow(); } parent::formJavascriptClass($srcs, $script, $shim); // $$$ hugh - added this, and some logic in the view, so we will get called on a per-element basis return false; }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $key = FabrikHelperHTML::isDebug() ? 'element/digsig/digsig' : 'element/digsig/digsig-min'; $s = new stdClass(); $s->deps = array(); $folder = 'element/digsig/libs/signature-pad/'; $digsigShim = new stdClass(); $digsigShim->deps = array($folder . 'jquery.signaturepad'); $s->deps[] = $folder . 'jquery.signaturepad'; $s->deps[] = $folder . 'flashcanvas'; $shim[$folder . 'flashcanvas'] = $digsigShim; $s->deps[] = $folder . 'json2'; $shim[$folder . 'json2'] = $digsigShim; $shim[$key] = $s; FabrikHelperHTML::stylesheet(COM_FABRIK_LIVESITE . 'plugins/fabrik_element/digsig/libs/signature-pad/jquery.signaturepad.css'); parent::formJavascriptClass($srcs, $script, $shim); // $$$ hugh - added this, and some logic in the view, so we will get called on a per-element basis return false; }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $params = $this->getParams(); $input_mask = trim($params->get('text_input_mask', '')); if (!empty($input_mask)) { $s = new stdClass(); $s->deps = array('fab/element'); $folder = 'components/com_fabrik/libs/masked_input/'; $s->deps[] = $folder . 'jquery.maskedinput'; $shim['element/field/field'] = $s; } parent::formJavascriptClass($srcs, $script, $shim); // $$$ hugh - added this, and some logic in the view, so we will get called on a per-element basis return false; }
/** * Get the class to manage the form element * to ensure that the file is loaded only once * * @param array &$srcs Scripts previously loaded * @param string $script Script to load once class has loaded * @param array &$shim Dependant class names to load before loading the class - put in requirejs.config shim * * @return void|boolean */ public function formJavascriptClass(&$srcs, $script = '', &$shim = array()) { $params = $this->getParams(); $inputMask = trim($params->get('text_input_mask', '')); $geocomplete = $params->get('autocomplete', '0') === '3'; $s = new stdClass(); $s->deps = array('fab/element'); if (!empty($inputMask)) { $folder = 'components/com_fabrik/libs/masked_input/'; $s->deps[] = $folder . 'jquery.maskedinput'; } if ($geocomplete) { $folder = 'components/com_fabrik/libs/googlemaps/geocomplete/'; $s->deps[] = $folder . 'jquery.geocomplete'; } if (count($s->deps) > 1) { if (array_key_exists('element/field/field', $shim)) { $shim['element/field/field']->deps = array_merge($shim['element/field/field']->deps, $s->deps); } else { $shim['element/field/field'] = $s; } } parent::formJavascriptClass($srcs, $script, $shim); // $$$ hugh - added this, and some logic in the view, so we will get called on a per-element basis return false; }