Вход Регистрация
Файл: concrete5.7.5.6/concrete/blocks/form/auto.js
Строк: 472
<?php
var miniSurvey = {
    
bid0,
    
serviceURL: $("input[name=miniSurveyServices]").val() + '?block=form&',
    
init: function () {
        
this.tabSetup();

        
/*
         for(var i=0;i<this.answerTypes.length;i++){
         this.answerTypes[i].onclick=function(){miniSurvey.optionsCheck(this);miniSurvey.settingsCheck(this);}
         this.answerTypes[i].onchange=function(){miniSurvey.optionsCheck(this);miniSurvey.settingsCheck(this);}
         }
         for(var i=0;i<this.answerTypesEdit.length;i++){
         this.answerTypesEdit[i].onclick=function(){miniSurvey.optionsCheck(this,'Edit');miniSurvey.settingsCheck(this,'Edit');}
         this.answerTypesEdit[i].onchange=function(){miniSurvey.optionsCheck(this,'Edit');miniSurvey.settingsCheck(this,'Edit');}
         }
         */

        
$("#answerType").change(function (r) {
            
miniSurvey.optionsCheck($('#answerType').get(0));
            
miniSurvey.settingsCheck($('#answerType').get(0));
        }).
trigger('change');

        $(
"#answerTypeEdit").change(function (r) {
            
miniSurvey.optionsCheck($('#answerTypeEdit').get(0), 'Edit');
            
miniSurvey.settingsCheck($('#answerTypeEdit').get(0), 'Edit');
        });

        $(
'#addQuestion').click(function () {
            
miniSurvey.addQuestion();
            return 
false;
        });
        $(
'#editQuestion').click(function () {
            
miniSurvey.addQuestion('Edit');
            return 
false;
        });
        $(
'#cancelEditQuestion').click(function () {
            $(
'#miniSurvey').show();
            $(
'#editQuestionForm').css('display''none');
        });
        
this.serviceURL += 'cID=' this.cID '&arHandle=' this.arHandle '&bID=' this.bID '&btID=' this.btID '&';
        
miniSurvey.refreshSurvey();
        $(
'#emailSettings').hide();
    },
    
tabSetup: function () {
        $(
'ul#ccm-formblock-tabs li a').each(function (numel) {
            
el.onclick = function () {
                var 
pane this.id.replace('ccm-formblock-tab-''');
                
miniSurvey.showPane(pane);
            }
        });
    },
    
showPane: function (pane) {
        $(
'ul#ccm-formblock-tabs li').each(function (numel) {
            $(
el).removeClass('active')
        });
        $(
document.getElementById('ccm-formblock-tab-' pane).parentNode).addClass('active');
        $(
'div.ccm-formBlockPane').each(function (numel) {
            
el.style.display 'none';
        });
        $(
'#ccm-formBlockPane-' pane).css('display''block');
    },
    
refreshSurvey: function () {
        $.
ajax({
            
urlthis.serviceURL 'mode=refreshSurvey&qsID=' parseInt(this.qsID) + '&hide=' miniSurvey.hideQuestions.join(','),
            
success: function (msg) {
                $(
'#miniSurveyPreviewWrap').html(msg);
            }
        });
        $.
ajax({
            
urlthis.serviceURL 'mode=refreshSurvey&qsID=' parseInt(this.qsID) + '&showEdit=1&hide=' miniSurvey.hideQuestions.join(','),
            
success: function (msg) {
                $(
'#miniSurveyWrap').html(msg);
            }
        });
    },
    
optionsCheck: function (radioButtonmode) {
        if (
mode != 'Edit'mode '';
        if (
radioButton.value == 'select' || radioButton.value == 'radios' || radioButton.value == 'checkboxlist') {
            $(
'#answerOptionsArea' mode).css('display''block');
        } else $(
'#answerOptionsArea' mode).css('display''none');

        if (
radioButton.value == 'email') {
            $(
'#emailSettings' mode).show();
        } else {
            $(
'#emailSettings' mode).hide();
        }


        if (
radioButton.value == 'date' || radioButton.value == 'datetime') {
            $(
'#answerDateDefault' mode).show();
        } else {
            $(
'#answerDateDefault' mode).hide();
        }
    },
    
settingsCheck: function (radioButtonmode) {
        if (
mode != 'Edit'mode '';
        if (
radioButton.value == 'text') {
            $(
'#answerSettings' mode).css('display''block');
        } else {
            $(
'#answerSettings' mode).css('display''none');
        }
    },
    
addQuestion: function (mode) {
        var 
msqID 0;
        if (
mode != 'Edit') {
            
mode '';
        } else {
            
msqID parseInt($('#msqID').val(), 10);
        }
        var 
formID '#answerType' mode;
        
answerType = $(formID).val();
        var 
options encodeURIComponent($('#answerOptions' mode).val());
        var 
postStr 'question=' encodeURIComponent($('#question' mode).val()) + '&options=' options;
        
postStr += '&defaultDate=' encodeURIComponent($('#defaultDate' mode).val());
        
postStr += '&width=' escape($('#width' mode).val());
        
postStr += '&height=' escape($('#height' mode).val());
        var 
req = $('input[type="radio"][name="required' mode '"]:checked').val();
        
postStr += '&required=' req;
        
postStr += '&position=' escape($('#position' mode).val());
        var 
form document.getElementById('ccm-block-form');
        
postStr += '&inputType=' answerType;//$('input[name=answerType'+mode+']:checked').val()
        
postStr += '&msqID=' msqID '&qsID=' parseInt(this.qsID);
        if (
answerType == 'email') {
            
postStr += '&send_notification_from=';
            if (
mode == 'Edit') {
                
fieldID "#send_notification_from_edit";
            }
            else {
                
fieldID "#send_notification_from";
            }
            
postStr += $(fieldID).is(':checked') ? "1" "0"
        
}
        $.
ajax({
            
type"POST",
            
datapostStr,
            
urlthis.serviceURL 'mode=addQuestion&qsID=' parseInt(this.qsID),
            
success: function (msg) {
                eval(
'var jsonObj=' msg);
                if (!
jsonObj) {
                    
alert(ccm_t('ajax-error'));
                } else if (
jsonObj.noRequired) {
                    
alert(ccm_t('complete-required'));
                } else {
                    if (
jsonObj.mode == 'Edit') {
                        var 
questionMsg = $('#questionEditedMsg');
                        
questionMsg.fadeIn();
                        
setTimeout(function () {
                            
questionMsg.fadeOut();
                        }, 
5000);
                        if (
jsonObj.hideQID) {
                            
miniSurvey.hideQuestions.push(miniSurvey.edit_qID); //jsonObj.hideQID);
                            
miniSurvey.edit_qID 0;
                        }
                    } else {
                        var 
questionMsg = $('#questionAddedMsg');
                        
questionMsg.fadeIn();
                        
setTimeout(function () {
                            
questionMsg.fadeOut();
                        }, 
5000);
                        
//miniSurvey.saveOrder();
                    
}
                    $(
'#editQuestionForm').css('display''none');
                    $(
'#miniSurvey').show();
                    
miniSurvey.qsID jsonObj.qsID;
                    
miniSurvey.ignoreQuestionId(jsonObj.msqID);
                    $(
'#qsID').val(jsonObj.qsID);
                    
miniSurvey.resetQuestion();
                    
miniSurvey.refreshSurvey();
                    
//miniSurvey.showPane('preview');
                
}
            }
        });
    },
    
//prevent duplication of these questions, for block question versioning
    
ignoreQuestionId: function (msqID) {
        var 
msqIDignoreEl = $('#ccm-ignoreQuestionIDs');
        if (
ignoreEl.val()) msqIDs ignoreEl.val().split(',');
        else 
msqIDs = [];
        
msqIDs.push(parseInt(msqID10));
        
ignoreEl.val(msqIDs.join(','));
    },
    
reloadQuestion: function (qID) {

        $.
ajax({
            
urlthis.serviceURL "mode=getQuestion&qsID=" parseInt(this.qsID) + '&qID=' parseInt(qID),
            
success: function (msg) {
                eval(
'var jsonObj=' msg);
                $(
'#editQuestionForm').css('display''block')
                $(
'#questionEdit').val(jsonObj.question);
                $(
'#answerOptionsEdit').val(jsonObj.optionVals.replace(/%%/g"rn"));
                $(
'#widthEdit').val(jsonObj.width);
                $(
'#heightEdit').val(jsonObj.height);
                $(
'#positionEdit').val(jsonObj.position);
                $(
'#defaultDateEdit').val(jsonObj.defaultDate);
                if (
parseInt(jsonObj.required10) == 1) {
                    $(
'input[name="requiredEdit"][value="1"]').prop('checked'true);
                    $(
'input[name="requiredEdit"][value="0"]').prop('checked'false);
                } else {
                    $(
'input[name="requiredEdit"][value="1"]').prop('checked'false);
                    $(
'input[name="requiredEdit"][value="0"]').prop('checked'true);
                }

                if (
jsonObj.inputType == 'email') {
                    var 
options jsonObj.optionVals.split(";");
                    for (var 
0options.lengthi++) {
                        
key_val options[i].split('::');
                        if (
key_val.length == 2) {
                            if (
key_val[0] == 'send_notification_from') {
                                if (
key_val[1] == 1) {
                                    $(
'.send_notification_from_edit input').prop('checked'true);
                                } else {
                                    $(
'.send_notification_from_edit input').prop('checked'false);
                                }
                            }
                        }
                    }
                }

                $(
'#msqID').val(jsonObj.msqID);
                $(
'#answerTypeEdit').val(jsonObj.inputType);
                $(
'#miniSurvey').hide();
                
miniSurvey.optionsCheck($('#answerTypeEdit').get(0), 'Edit');
                
miniSurvey.settingsCheck($('#answerTypeEdit').get(0), 'Edit');

                if (
parseInt(jsonObj.bID) > 0)
                    
miniSurvey.edit_qID parseInt(qID);
                $(
'.miniSurveyOptions').first().closest('.ui-dialog-content').get(0).scrollTop 0;
            }
        });
    },
    
//prevent duplication of these questions, for block question versioning
    
pendingDeleteQuestionId: function (msqID) {
        var 
msqIDel = $('#ccm-pendingDeleteIDs');
        if (
el.val()) msqIDs el.val().split(',');
        else 
msqIDs = [];
        
msqIDs.push(parseInt(msqID10));
        
el.val(msqIDs.join(','));
    },
    
hideQuestions: [],
    
deleteQuestion: function (elmsqIDqID) {
        if (
confirm(ccm_t('delete-question'))) {
            $.
ajax({
                
urlthis.serviceURL "mode=delQuestion&qsID=" parseInt(this.qsID) + '&msqID=' parseInt(msqID),
                
success: function (msg) {
                    
miniSurvey.resetQuestion();
                    
miniSurvey.refreshSurvey();
                }
            });

            
miniSurvey.ignoreQuestionId(msqID);
            
miniSurvey.hideQuestions.push(qID);
            
miniSurvey.pendingDeleteQuestionId(msqID)
        }
    },
    
resetQuestion: function () {
        $(
'#question').val('');
        $(
'#answerOptions').val('');
        $(
'#width').val('50');
        $(
'#height').val('3');
        $(
'#msqID').val('');
        $(
'#answerType').val('field').change();
        $(
'#answerOptionsArea').hide();
        $(
'#answerSettings').hide();
        $(
'#answerDateDefault').hide();
        $(
'#required input').prop('checked'false);
    },

    
validate: function () {
        var 
failed 0;

        var 
= $('#surveyName');
        if (!
|| parseInt(n.val().length10) == 0) {
            
alert(ccm_t('form-name'));
            
this.showPane('options');
            
n.focus();
            
failed 1;
        }

        var 
Qs = $('.miniSurveyQuestionRow');
        if (!
Qs || parseInt(Qs.length10) < 1) {
            
alert(ccm_t('form-min-1'));
            
failed 1;
        }

        if (
failed) {
            
ccm_isBlockError 1;
            return 
false;
        }
        return 
true;
    },

    
moveUp: function (elthisQID) {
        var 
qIDs this.serialize();
        var 
previousQID 0;
        for (var 
0qIDs.lengthi++) {
            if (
qIDs[i] == thisQID) {
                if (
previousQID == 0) break;
                $(
'#miniSurveyQuestionRow' thisQID).after($('#miniSurveyQuestionRow' previousQID));
                break;
            }
            
previousQID qIDs[i];
        }
        
this.saveOrder();
    },
    
moveDown: function (elthisQID) {
        var 
qIDs this.serialize();
        var 
thisQIDfound 0;
        for (var 
0qIDs.lengthi++) {
            if (
qIDs[i] == thisQID) {
                
thisQIDfound 1;
                continue;
            }
            if (
thisQIDfound) {
                $(
'#miniSurveyQuestionRow' qIDs[i]).after($('#miniSurveyQuestionRow' thisQID));
                break;
            }
        }
        
this.saveOrder();
    },
    
serialize: function () {
        var 
document.getElementById("miniSurveyPreviewTable");
        var 
qIDs = [];
        for (var 
0t.childNodes.lengthi++) {
            if (
t.childNodes[i].className && t.childNodes[i].className.indexOf('miniSurveyQuestionRow') >= 0) {
                var 
qID t.childNodes[i].id.substr('miniSurveyQuestionRow'.length);
                
qIDs.push(qID);
            }
        }
        return 
qIDs;
    },
    
saveOrder: function () {
        var 
postStr 'qIDs=' this.serialize().join(',') + '&qsID=' parseInt(this.qsID);
        $.
ajax({
            
type"POST",
            
datapostStr,
            
urlthis.serviceURL "mode=reorderQuestions",
            
success: function (msg) {
                
miniSurvey.refreshSurvey();
            }
        });
    }
};
ccmValidateBlockForm = function () {
    return 
miniSurvey.validate();
};
$(
document).ready(function () {
    
//miniSurvey.init();
    /* TODO hackzors, this shouldnt be necessary */
    
$('#ccm-block-form').closest('div').addClass('ccm-ui');
});
?>
Онлайн: 2
Реклама