Вход Регистрация
Файл: source/public/media/js/options/select-options.js
Строк: 366
<?php
var selectOption = function(field,object){
    if (
ScrudCForm.elements[field].db_options == undefined){
        
ScrudCForm.elements[field].db_options = {}
    }
    if (
ScrudCForm.elements[field].def_val == undefined){
        
ScrudCForm.elements[field].def_val = [];
    }
    var 
so = $('<div id="select-options" style="margin-top:5px; display:none;"></div>');
    var 
sd = $('<div id="select-database" style="margin-top:5px; display:none;"></div>');
    
object.html('');
    
object.append('<label><b>Options</b></label>');
    var 
too1 = $('<input name="type-of-options" value="default" type="radio">');
    if (
ScrudCForm.elements[field].list_choose == 'default'){
        
too1.attr({
            
checked:'checked'
        
});
        
so.show();
        
sd.hide();
    }
    
too1.click(function(){
        
ScrudCForm.elements[field].list_choose 'default';
        
ScrudCForm.changeFieldToForm(field);
        
so.show();
        
sd.hide();
        $(
'#form-preview').css({
            
height:'auto'
        
});
        $(
'#form-preview').height($('#form-preview').height());
    });
    
    
object.append($('<label class="radio inline"></label>').append(too1).append(' Default '));
    
    var 
too2 = $('<input name="type-of-options" value="database"  type="radio">');
    if (
ScrudCForm.elements[field].list_choose == 'database'){
        
too2.attr({
            
checked:'checked'
        
});
        
so.hide();
        
sd.show();
    }
    
too2.click(function(){
        
ScrudCForm.elements[field].list_choose 'database';
        
ScrudCForm.changeFieldToForm(field);
        
so.hide();
        
sd.show();
    });
    
    
object.append($('<label class="radio inline"></label>').append(too2).append(' Database '));
    
    
object.append(so).append(sd);
    if (
ScrudCForm.elements[field].options == undefined){
        
ScrudCForm.elements[field].options = [];
    }
    if (
ScrudCForm.elements[field].options.length 0){
        
so.html('');
        var 
opts ScrudCForm.elements[field].options;
        var 
defs ScrudCForm.elements[field].def_val;
        for(var 
i in opts){
            var 
_def = (defs[i] != undefined)?defs[i]:'';
            
so.append(__scrudOption(field,opts[i],_def));
        }
    }else{
        
so.append(__scrudOption(field));
    }
    
    var 
tbl = $('<select style="width:176px;"></select>');
    
tbl.append('<option></option>');
    for(var 
i in ScrudCForm.tables){
        
tbl.append('<option value="'+ScrudCForm.tables[i]+'">'+ScrudCForm.tables[i]+'</option>');
    }
    
sd.append($('<label>Table &nbsp; </label>').append(tbl));
    
    var 
osd = $('<div></div>');
    
sd.append(osd);
    
    
tbl.change(function(){
        if ($.
trim($(this).val()) != ''){
            
__scrudDbOption(osd,$(this).val(),field);
            
ScrudCForm.elements[field].db_options.table = $(this).val();
        }else{
            
ScrudCForm.elements[field].db_options.table '';
            
ScrudCForm.elements[field].db_options.key '';
            
ScrudCForm.elements[field].db_options.value '';
            
osd.html('');
        }
    });
    
    if (
ScrudCForm.elements[field].list_choose == 'database'){
        if (
ScrudCForm.elements[field].db_options != undefined){
            if (
ScrudCForm.elements[field].db_options.table != undefined && ScrudCForm.elements[field].db_options.table != ''){
                
tbl.val(ScrudCForm.elements[field].db_options.table);
                
__scrudDbOption(osd,ScrudCForm.elements[field].db_options.table,field);
            }
        }
    }
    
    if (
ScrudCForm.elements[field].type == 'select'){
        var 
multiple = $('<input type="checkbox" />');
        
object.append($('<label class="checkbox"> multiple</label>').prepend(multiple));
        
multiple.click(function(){
            if ($(
this).attr("checked")) {
                
ScrudCForm.elements[field].multiple 'multiple';
                $(
'#preview_field_'+field).find('.controls').children('select').attr('multiple','multiple');
            }else{
                
ScrudCForm.elements[field].multiple null;
                $(
'#preview_field_'+field).find('.controls').children('select').attr('multiple',null);
            }
        });
        
        if (
ScrudCForm.elements[field].multiple != undefined && ScrudCForm.elements[field].multiple == 'multiple'){
            
multiple.attr('checked','checked');
        }
    }
    
    
};

var 
__scrudOption = function(field,val,_def){
    
val = (val == undefined)?"":val;
    var 
= $('<div></div>');
    var 
= $('<input type="text"  style="width:160px;" value="'+val+'" />');
    var 
def = $('<input type="radio" name="r_defaut"/>');
    if (
_def == val){
        
def.attr({checked:'checked'});
    }
    
def.click(function(){
        
ScrudCForm.elements[field].def_val = [];
        $(
'#select-options').find('input[type="text"]').each(function(index){
            if ($.
trim($(this).val()) != ''){
                if ($($(
'input[name="r_defaut"]').get(index)).is(':checked')){
                    
ScrudCForm.elements[field].def_val[index] = $(this).val();
                }
            }
        });
    });
    
t.keyup(function(){
        
ScrudCForm.elements[field].options = [];
        $(
'#preview_field_'+field).find('.controls').children('select').html('');
        $(
'#preview_field_'+field).find('.controls').children('select').append($('<option></option>'));
        $(
'#select-options').find('input[type="text"]').each(function(){
            if ($.
trim($(this).val()) != ''){
                $(
'#preview_field_'+field).find('.controls').children('select').append($('<option>'+$(this).val()+'</option>'));
                
ScrudCForm.elements[field].options[ScrudCForm.elements[field].options.length] = $(this).val();
            }
        });
    });
    var 
ab = $('<a style="margin-bottom:10px; cursor:pointer;"><i class="icon-plus"></i></a>');
    
ab.click(function(){
        
__scrudOption(field).insertAfter($(this).parent());
    });
    var 
db = $('<a style="margin-bottom:10px; cursor:pointer;"><i class="icon-minus"></i></a>');
    
db.click(function(){
        if ($(
'#select-options').children('div[class!="deleted"]').length 1){
            $(
this).parent().hide();
            $(
this).parent().addClass('deleted');
            $(
this).parent().find('input[type="text"]').val('');
            
            
ScrudCForm.elements[field].options = [];
            $(
'#preview_field_'+field).find('.controls').children('select').html('');
            $(
'#preview_field_'+field).find('.controls').children('select').append($('<option></option>'));
            $(
'#select-options').find('input[type="text"]').each(function(){
                if ($.
trim($(this).val()) != ''){
                    $(
'#preview_field_'+field).find('.controls').children('select').append($('<option>'+$(this).val()+'</option>'));
                    
ScrudCForm.elements[field].options[ScrudCForm.elements[field].options.length] = $(this).val();
                }
            });
        }
    });
    
o.append(def).append(' ').append(t).append(' ').append(ab).append(' ').append(db);
    return 
o;
};

var 
__scrudDbOption = function(osd,table,field){
    
osd.html('');
    $.
get(ScrudCForm.urlGetFields+table,{},function(json){
        var 
value = $('<select style="width:176px;"></select>');
        
value.append('<option></option>');
        
osd.append($('<label>Value  &nbsp; </label>').append(value));
        for(var 
i in json){
            
value.append('<option value="'+json[i]+'">'+json[i]+'</option>');
        }
        if (
ScrudCForm.elements[field].db_options.key != undefined && ScrudCForm.elements[field].db_options.key != ''){
            
value.val(ScrudCForm.elements[field].db_options.key);
        }
        
value.change(function(){
            
ScrudCForm.elements[field].db_options.key = $(this).val();
            
ScrudCForm.changeFieldToForm(field);
        });
        
        var 
option = $('<select  style="width:176px;"></select>');
        
option.append('<option></option>');
        
osd.append($('<label>Option </label>').append(option));
        for(var 
i in json){
            
option.append('<option value="'+json[i]+'">'+json[i]+'</option>');
        }
        if (
ScrudCForm.elements[field].db_options.value != undefined && ScrudCForm.elements[field].db_options.value != ''){
            
option.val(ScrudCForm.elements[field].db_options.value);
        }
        
option.change(function(){
            
ScrudCForm.elements[field].db_options.value = $(this).val();
            
ScrudCForm.changeFieldToForm(field);
        });
        
        var 
order = $('<select  style="width:158px;"></select>');
        
order.append('<option></option>');
        
osd.append($('<label>Order &nbsp </label>')).append(order);
        
        for(var 
i in json){
            
order.append('<option value="'+json[i]+'">'+json[i]+'</option>');
        }
        
        if (
ScrudCForm.elements[field].db_options.order != undefined && ScrudCForm.elements[field].db_options.order != ''){
            
order.val(ScrudCForm.elements[field].db_options.order);
        }
        
        
order.change(function(){
            
ScrudCForm.elements[field].db_options.order = $(this).val();
            if (
ScrudCForm.elements[field].db_options.order_type == undefined || ScrudCForm.elements[field].db_options.order_type == ''){
                
ScrudCForm.elements[field].db_options.order_type 'asc';
                
order_type.val(ScrudCForm.elements[field].db_options.order_type);
            }
            
ScrudCForm.changeFieldToForm(field);
        });
        
        var 
order_type = $('<select  style="width:70px; margin-left:2px;"></select>');
        
order_type.append('<option></option>');
        
order_type.append('<option value="asc">ASC</option>');
        
order_type.append('<option value="desc">DESC</option>');
        
osd.append(order_type);
        
        if (
ScrudCForm.elements[field].db_options.order_type != undefined && ScrudCForm.elements[field].db_options.order_type != ''){
            
order_type.val(ScrudCForm.elements[field].db_options.order_type);
        }
        
        
order_type.change(function(){
            
ScrudCForm.elements[field].db_options.order_type = $(this).val();
            
ScrudCForm.changeFieldToForm(field);
        });
        
        $(
'#form-preview').css({
            
height:'auto'
        
});
        $(
'#form-preview').height($('#form-preview').height());
    },
'json');
}
?>
Онлайн: 2
Реклама