Projekt

Obecné

Profil

<script type="text/javascript">
$(document).ready(function()
{

$("#filter_form").validate({
errorPlacement: function(error, element){}
});

function array_search (needle, haystack)
{
for (var key in haystack)
{
if (haystack[key] == needle)
return key;
}

return false;
}
function update_form ()
{
var i = 0;
$(".t").each(function (){
if (type_options[$(this).val()] != undefined)
{
var value = $(this).next().val();
$(this).next().children().remove();
for (var key in type_options_orders[$(this).val()])
{
$(this).next().append('<option value="'+type_options_orders[$(this).val()][key]+'"'+((type_options_orders[$(this).val()][key] == value) ? ' selected' : '')+'>'+type_options[$(this).val()][type_options_orders[$(this).val()][key]]+'</option>');
}

var values = value_options[$(this).val()];

if (type_values[i] == undefined)
type_values[i] = new Array();

if (type_values[i][$(this).val()] == undefined)
type_values[i][$(this).val()] = (typeof(values[0]) != 'string' && values[0] != undefined) ? values[0][$(this).next().val()] : values[0];

if (values[0] != undefined && array_search (type_values[i][$(this).val()], values) == false)
type_values[i][$(this).val()] = (typeof(values[0]) != 'string' && values[0] != undefined) ? values[0][$(this).next().val()] : values[0];

$(this).next().next().val(type_values[i][$(this).val()]);
var without = withouts[$(this).val()];
if (classes[$(this).val()][$(this).next().val()] != undefined)
$(this).next().next().attr ('class', 'v '+types[$(this).val()]+' '+classes[$(this).val()][$(this).next().val()]);
else if (classes[$(this).val()]['all'] != undefined)
$(this).next().next().attr ('class', 'v '+types[$(this).val()]+' '+classes[$(this).val()]['all']);
else
$(this).next().next().attr ('class', 'v '+types[$(this).val()]);
if (without)
{
$(this).next().next().addClass('without_select_button');
$(this).next().next().next().hide();
}
else
$(this).next().next().next().show();

var callback = callbacks[$(this).val()];
var minlength = minlengths[$(this).val()];
var oper = $(this).next().val();

if (values.length)
{
$(this).next().next().autocomplete({
minLength: minlength,
source: function (request, response){
var arr = new Array();
var x = 0;
for (var i=0;i<count(values);i++)
{
var value = values[i];

if (typeof(value) != 'string')
{
for (var key in value)
if (key == oper)
value = value[key];
}

if (request.term == "" || (strpos(value, request.term) === 0 && value!=request.term))
arr[x++] = value;
}
response(arr);
},
close: function(event, ui) {
$(this).trigger('keyup');
}
});
}
else if (callback != undefined)
{
$(this).next().next().autocomplete({
minLength: minlength,
source: callback,
close: function(event, ui) {
$(this).trigger('keyup');
}
});
}
//else
// $(this).next().next().autocomplete("disable");

$(this).next().next().next().next().val(tables[$(this).val()]);
}
i++;
});
}

$( ".select_button" ).click(function (){
$(this).prev().autocomplete( "search", "" );
$(this).prev().focus();
});

$(".v").keyup(function (){
var i =0;
$(".v").each(function (){
type_values[i][$(this).prev().prev().val()] = $(this).val();
i++;
});
});

$(".delete_button").click(function (){
$(this).parent().hide();
$(this).prev().prev().prev().prev().val("");
$(this).remove();

if ($(".delete_button").length == 1)
$(".delete_button").hide();
});

var type_options = new Array();
var type_options_orders = new Array();
value_options = new Array();
<?php foreach ($js_operation_values as $name => $opers): ?>
type_options['<?php echo $name ?>'] = new Array();
type_options_orders['<?php echo $name ?>'] = new Array();
value_options['<?php echo $name ?>'] = new Array();
<?php foreach ($opers as $key => $val): ?>
type_options['<?php echo $name ?>'][<?php echo $key ?>] = '<?php echo __($val) ?>';
type_options_orders['<?php echo $name ?>'][type_options_orders['<?php echo $name ?>'].length] = <?php echo $key ?>;
<?php endforeach ?>
<?php if (isset ($value_options[$name])) :?>
<?php foreach ($value_options[$name] as $option): ?>
<?php if (is_array($option)): ?>
value_options['<?php echo $name ?>'][value_options['<?php echo $name ?>'].length] = {
<?php foreach ($option as $id => $val): ?>
<?php echo $id ?>: '<?php echo $val ?>',
<?php endforeach ?>
}
<?php else: ?>
value_options['<?php echo $name ?>'][value_options['<?php echo $name ?>'].length] = '<?php echo $option ?>';
<?php endif ?>
<?php endforeach ?>
<?php endif ?>
<?php endforeach ?>

var callbacks = new Array();
<?php foreach ($callbacks as $name => $callback): ?>
callbacks['<?php echo $name ?>'] = '<?php echo $callback ?>';
<?php endforeach ?>

var minlengths = new Array();
<?php foreach ($minlengths as $name => $minlength): ?>
minlengths['<?php echo $name ?>'] = '<?php echo $minlength ?>';
<?php endforeach ?>

var withouts = new Array();
<?php foreach ($withouts as $name => $without): ?>
withouts['<?php echo $name ?>'] = <?php echo $without ?>;
<?php endforeach ?>

var types = new Array();
<?php foreach ($js_types as $name => $js_type): ?>
types['<?php echo $name ?>'] = '<?php echo $js_type ?>';
<?php endforeach ?>

type_values = {
<?php foreach ($types as $i => $type): ?>
<?php echo $i ?>: {
'<?php echo $type ?>': '<?php echo trim($values[$i]) ?>'
},
<?php endforeach ?>
}

var tables = {
<?php foreach ($tables as $name => $table):?>
'<?php echo $name ?>': ["<?php echo $table ?>"],
<?php endforeach; ?>
}
classes = {
<?php foreach ($classes as $name => $oper_class): ?>
'<?php echo $name ?>': {
<?php foreach ($oper_class as $oper => $class): ?>
'<?php echo $oper ?>': ["<?php echo $class ?>"],
<?php endforeach ?>
},
<?php endforeach ?>
}

update_form();
$(".t, .o").change(update_form);
if ($(".delete_button").length == 1)
$(".delete_button").hide();

});
</script>
<?php echo form::open(url::base(TRUE).url::current(FALSE), array('method' => 'get', 'id' => 'filter_form')) ?>

<?php if ($default_count): ?>
<div id="default_filter_div">
<?php endif ?>
<?php foreach ($types as $i => $type): ?>
<div class="filter_div">
<?php echo form::dropdown ('types[]', $type_values, $type, " class='t'") ?>
<?php echo form::dropdown ('opers[]', $operation_values, $operations[$i], " class='o'") ?>
<?php echo form::input(array('name' => 'values[]', 'value' => trim($values[$i]), 'class' => 'v without_select_button')) ?>
<img src='<?php echo url::base() ?>media/images/layout/select.png' class='select_button'>
<?php echo form::hidden('tables[]', $tables[$type]) ?>
<?php echo form::hidden('default[]', $default[$i]) ?>
<img src='<?php echo url::base() ?>media/images/icons/delete.png' class='delete_button' title="<?php echo __('Delete this filter') ?>">
</div>
<?php if ($default_count == ($i+1)): ?>
</div>
<?php endif ?>
<?php endforeach ?>

<div class="filter_div">
<?php echo form::dropdown ('types[]', $type_values, NULL, " class='t'") ?>
<?php echo form::dropdown ('opers[]', $operation_values, NULL, " class='o'") ?>
<?php echo form::input(array('name' => 'values[]', 'class' => 'v without_select_button')) ?>
<img src='<?php echo url::base() ?>media/images/layout/select.png' class='select_button'>
<?php echo form::hidden('tables[]', "") ?>
<?php echo form::hidden('default[]', 0) ?>
<img src='<?php echo url::base() ?>media/images/icons/delete.png' class='delete_button' title="<?php echo __('Delete this filter') ?>">
</div>

<?php foreach ($keys as $name => $keys): ?>
<?php foreach ($keys as $key => $val): ?>
<?php echo form::hidden("keys[$name][]", $val['key']) ?>
<?php echo form::hidden("vals[$name][]", $val['value']) ?>
<?php endforeach ?>
<?php endforeach ?>

<?php echo form::button(array('type' => 'submit', 'class' => 'submit', 'value' => __('Filter'))) ?>
<?php echo form::close() ?>
(1-1/14)