Example #1
0
function _options_for_ajax($options)
{
    $js_options = _build_callbacks($options);
    $js_options['asynchronous'] = isset($options['type']) && $options['type'] == 'synchronous' ? false : true;
    if (isset($options['method'])) {
        $js_options['method'] = _array_or_string_for_javascript($options['method']);
    }
    if (isset($options['position'])) {
        $js_options['insertion'] = "Insertion." . sfInflector::camelize($options['position']);
    }
    $js_options['evalScripts'] = !isset($options['script']) || $options['script'] == '0' || $options['script'] == false ? false : true;
    if (isset($options['form'])) {
        $js_options['parameters'] = 'Form.serialize(this)';
    } else {
        if (isset($options['submit'])) {
            $js_options['parameters'] = "Form.serialize(document.getElementById('{$options['submit']}'))";
        } else {
            if (isset($options['with'])) {
                $js_options['parameters'] = $options['with'];
            }
        }
    }
    return _options_for_javascript($js_options);
}
Example #2
0
/**
 * wrapper for script.aculo.us/prototype Ajax.Autocompleter.
 * @param string id value of input field
 * @param string url of module/action to execute for autocompletion
 * @param array completion options
 * @return string javascript tag for Ajax.Autocompleter
 */
function _auto_complete_field($field_id, $url, $options = array())
{
    $javascript = "new Ajax.Autocompleter(";
    $javascript .= "'" . get_id_from_name($field_id) . "', ";
    if (isset($options['update'])) {
        $javascript .= "'" . $options['update'] . "', ";
    } else {
        $javascript .= "'" . get_id_from_name($field_id) . "_auto_complete', ";
    }
    $javascript .= "'" . url_for($url) . "'";
    $js_options = array();
    if (isset($options['tokens'])) {
        $js_options['tokens'] = _array_or_string_for_javascript($options['tokens']);
    }
    if (isset($options['with'])) {
        $js_options['callback'] = "function(element, value) { return" . $options['with'] . "}";
    }
    if (isset($options['indicator'])) {
        $js_options['indicator'] = "'" . $options['indicator'] . "'";
    }
    if (isset($options['on_show'])) {
        $js_options['onShow'] = $options['on_show'];
    }
    if (isset($options['on_hide'])) {
        $js_options['onHide'] = $options['on_hide'];
    }
    if (isset($options['min_chars'])) {
        $js_options['minChars'] = $options['min_chars'];
    }
    if (isset($options['frequency'])) {
        $js_options['frequency'] = $options['frequency'];
    }
    if (isset($options['update_element'])) {
        $js_options['updateElement'] = $options['update_element'];
    }
    if (isset($options['after_update_element'])) {
        $js_options['afterUpdateElement'] = $options['after_update_element'];
    }
    $javascript .= ', ' . _options_for_javascript($js_options) . ');';
    return javascript_tag($javascript);
}
function _auto_complete_field($field_id, $url, $options = array())
{
    $javascript = "new Ajax.Autocompleter(";
    $javascript .= "'{$field_id}', ";
    if (isset($options['update'])) {
        $javascript .= "'" . $options['update'] . "', ";
    } else {
        $javascript .= "'{$field_id}_auto_complete', ";
    }
    $javascript .= "'" . system_url($url) . "'";
    $js_options = array();
    if (isset($options['tokens'])) {
        $js_options['tokens'] = _array_or_string_for_javascript($options['tokens']);
    }
    if (isset($options['with'])) {
        $js_options['callback'] = "function(element, value) { return" . $options['with'] . "}";
    }
    if (isset($options['indicator'])) {
        $js_options['indicator'] = "'" . $options['indicator'] . "'";
    }
    if (isset($options['on_show'])) {
        $js_options['onShow'] = $options['on_show'];
    }
    if (isset($options['on_hide'])) {
        $js_options['onHide'] = $options['on_hide'];
    }
    if (isset($options['min_chars'])) {
        $js_options['min_chars'] = $options['min_chars'];
    }
    $javascript .= ', ' . _options_for_javascript($js_options) . ');';
    return javascript_tag($javascript);
}