HEX
Server: Apache/2.4.25 (Debian)
System: Linux server17 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
User: web37 (1062)
PHP: 7.4.30
Disabled: show_source, highlight_file, apache_child_terminate, apache_get_modules, apache_note, apache_setenv, virtual, dl, disk_total_space, posix_getpwnam, posix_getpwuid, posix_mkfifo, posix_mknod, posix_setpgid, posix_setsid, posix_setuid, posix_uname, proc_nice, openlog, syslog, pfsockopen
Upload Files
File: /var/www/web37/htdocs/fickanzeiger/javascript/jquery/jquery.itemEditor.js
(function($){

    $.fn.itemEditor = function(params){
    
        var that = {
            form: $("#itemForm")[0],
            __construct: function(){
                var defaults = {
                    mode: "user",
                    captchaEnabled: false,
                    extraFieldTooltipsEnabled: true,
                    data: null,
                    categoryChainSelect: true
                };
                
                params = $.extend(defaults, params);

                var url = AppRouter.getRewrittedUrl("/category/getChildsOptionList");
                var selectedId = setting.item ? setting.item.categoryId : undefined;
                 
                if(params.categoryChainSelect)
                {
                    $("#itemForm input[name=categoryId]").chainSelect({
                        url: url, 
                        selectedId: selectedId, 
                        defaultOption: {
                            value: "",
                            label: " - "
                        },
                        fade: true,
                        change: that.onCategoryIdChange
                    });
                }
                
                var rules = {
                    webmasterEmail: {required: true, email: true},
                    categoryId: "required",
                    siteTitle: "required"
                };

                if (params.mode == 'user' || params.mode == 'newUser') {
                    rules.countryCode = 'required';

                    if (setting.siteDescriptionMinLength > 0) {
                        rules.description = "required";
                    }
                }
                
                if (params.captchaEnabled) 
                    rules = $.extend(rules, {
                        privateCode: "required"
                    });
                
                if (setting.backLinkMandatory) 
                    rules = $.extend(rules, {
                        returnBond: "required"
                    });
                
                if (setting.urlMandatory) 
                    rules = $.extend(rules, {
                        url: {
                            required: true,
                            url: true
                        }
                    });
                
                var validator = $("#itemForm").validate({
                    rules: rules,
                    messages: {
                        privateCode: _t("Please enter captcha code"),
                        webmasterEmail: {
                            required: _t("Please enter your email"),
                            email: _t("Your email must be in format - name@domain.com"),
                            remote: _t("Email was used earlier")
                        }
                    },
                    submitHandler: function(form){
                        if (typeof(tinyMCE) != 'undefined') {
                            tinyMCE.triggerSave(true,true);
                        }
                        $(form).ajaxSubmit({
                            dataType: 'json',
                            success: function(response){
                                if (response.status == "error") {
                                    $.alertDialog(response.message);
                                    $("a.linkGenerateNewCaptchaImg", $(form)).click();
                                }
                                
                                if (response.status == "ok") {
                                
                                    if (response.message) {
                                        $.alertDialog(response.message, function(){
                                        
                                            if (response.redirectUrl) {
                                                location.href = response.redirectUrl;
                                            }
                                        });
                                    }
                                    else {
                                        if (response.redirectUrl) {
                                            location.href = response.redirectUrl;
                                        }
                                        
                                    }
                                }
                            }
                        });
                        return false;
                    }
                });

            validator.focusInvalid = function() {
                // put focus on tinymce on submit validation
                if( this.settings.focusInvalid ) {
                    try {
                        var toFocus = $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []);
                        if (toFocus.is("textarea") && typeof(tinyMCE) != 'undefined' && tinyMCE.get(toFocus.attr("id"))) {
                            // scroll window to textarea
                            toFocus.show().focus().hide();

                            // focus tinyMCE window
                            tinyMCE.get(toFocus.attr("id")).focus();
                        } else {
                            toFocus.filter(":visible").focus();
                        }
                    } catch(e) {
                        // ignore IE throwing errors when focusing hidden elements
                    }
                }
            }
                
                $("#itemForm input[name=previewAd]").click(function(){
                    $("#itemForm input[name=preview]").val("1");
                });
                
                $("#itemForm select[name=priceType]").change(function(){
                    $("#itemForm input[name=price]").valid();
                });
                
                var options = {
                    saveUrl: AppRouter.getRewrittedUrl('/photo/save'),
                    deleteUrl: AppRouter.getRewrittedUrl('/photo/delete'),
                    filesMaxCount: setting.itemGalleryImagesMaxCount,
                    $uploadButton: $('#uploadGalleryImageButton')
                };

                if (params.item) {
                    if (params.item) {
                        options['data'] = {
                            itemId: params.item.siteId
                        };
                    }
                    
                    if (params.item.photos) {
                        $.each(params.item.photos, function() {
                            this.uniqueId = this.photoId;
                        });
                        options['files'] = params.item.photos;
                    }
                    
                    $("#itemForm").autoFill(params.item);
                    
                    if (that.form.countryCode) {
                        that.onCountryCodeChange();
                    }
                    
                    if (that.form.backLinkCode2) {
                        that.onCategoryIdChange();
                    }
                }
                else {
                    if (params.tempId) {
                        options['data'] = {
                            tempId: params.tempId
                        };
                    }
                }
                
                if (params.categoryId) 
                    that.loadCategoryExtraFields(params.categoryId);
                if (params.item && params.item.categoryId) 
                    that.loadCategoryExtraFields(params.item.categoryId);
                
                $("#fileUploadPanel").fileUploader(options);
                $("#itemForm").keywordSelector({
                    keywordIds: params.item ? params.item.keywordIds : new Array()
                });
                
                if($("#descriptionCharsLeftCounter").length)
                {
                    $("#itemForm textarea[name=description]").charCounter(setting.siteDescriptionMaxLength, {
                        container: "#descriptionCharsLeftCounter",
                        format: "%1",
                        min: setting.siteDescriptionMinLength,
                        ignoreHtmlTags: true
                    });
                }
                
                $(that.form.metaTagButton).click(that.onMetaTagButtonClick);
                $(that.form.countryCode).change(that.onCountryCodeChange);
                $(that.form.categoryId).change(that.onCategoryIdChange);
                $(that.form.categoryId).change(that.onCategoryIdChange);

                $('input[name=descriptionDisplayMethod]', that.form).change(
                    function()
                    {
                        if ($(this).val() == 'text') {
                            tinyMCE.execCommand('mceRemoveControl', false, 'itemDescription');
                        } else {
                            tinyMCE.execCommand('mceAddControl', false, 'itemDescription');
                        }
                    }
                );

                if (params.item && params.item.descriptionDisplayMethod != 'text') {
                    tinyMCE.execCommand('mceAddControl', false, 'itemDescription');
                }

                window.setInterval(that.updateTextarea, 200);

            },
            updateTextarea: function()
            {
                if (typeof(tinyMCE) != 'undefined') {
                    tinyMCE.triggerSave(true,true);
                }
                 $("#itemForm textarea[name=description]").trigger('paste');
            },
            loadCategoryExtraFields: function(categoryId){
                $.post(AppRouter.getRewrittedUrl("/category/isPossibleSubmission"), {
                    categoryId: categoryId
                }, function(response){
                
                    if (response.status == "ok") {
                        $("#newItemStepsDiv").show();
                        $("#selectOtherCategoryDiv").hide();
                    }
                    else {
                        $("#newItemStepsDiv").hide();
                        $("#selectOtherCategoryDiv").show();
                    }
                }, "json");
                
                var url = "";
                
                switch (params.mode) {
                    case "admin":
                        url = AppRouter.getRewrittedUrl("/admin/extraField/getByCategoryId");
                        break;
                    case "moderator":
                        url = AppRouter.getRewrittedUrl("/moderation/extraField/getByCategoryId");
                        break;
                    default:
                        url = AppRouter.getRewrittedUrl("/extraField/getByCategoryId");
                }
                
                $.post(url, {
                    categoryId: categoryId
                }, function(response){
                
                    $("#itemFormExtraFields").html(response);
                    
                    if (params.item) {
                        params.item.categoryId = categoryId;
                        $("#itemForm").autoFill(params.item);

                        $('.extraField_file_manage_area input.extraField_file_fileSrc').each(
                            function()
                            {
                                var fileSrc = $(this).val();
                                if (fileSrc) {
                                    var fileDownloadUrl = AppRouter.getRewrittedUrl('/uploads/files/' + fileSrc);
                                    var parent = $(this).parent();
                                    parent.find('.extraField_file_download_link')
                                        .attr('href', fileDownloadUrl)
                                        .show();

                                    parent.find('input[type=file]').hide();

                                    var fieldId = parent.find('.extraField_file_fieldId').val();
                                    var fileDeleteUrl = AppRouter.getRewrittedUrl('/extraField/deleteExtraFieldValue/' + params.item.siteId + '/' + fieldId);
                                    parent.find('.extraField_file_delete_link').click(
                                        function ()
                                        {
                                            $.post(fileDeleteUrl, function()
                                            {
                                                parent.find('input[type=file]').show();
                                                parent.find('.extraField_file_delete_link').hide();
                                                parent.find('.extraField_file_download_link').hide();
                                            });
                                            return false;
                                        }
                                    ).show();
                                }
                            }
                        );
                    }
                });
            },
            onMetaTagButtonClick: function(){
                //ajax.set("onLoading", this.onMetaDataLoading.handler(this));
                $.post(setting.metaDataUrl, {
                    url: this.form.url.value
                }, function(metaData){
                    that.form.description.value = metaData.description;
                    that.form.siteTitle.value = metaData.title;
                    //that.counter.updateStringLength();
                }, "json");
            },
            
            onCategoryIdChange: function(){
            
                var categoryId = that.form.categoryId.value;
                that.loadCategoryExtraFields(categoryId);
                
                if (setting.backLinkCodeDataUrl && that.form.backLinkCode2) {
                
                    if (categoryId) {
                        $.post(setting.backLinkCodeDataUrl, {
                            "categoryId": categoryId
                        }, function(resp){
                            that.form.backLinkCode2.value = resp.categoryBackLinkCode;
                        }, "json");
                    }
                    else {
                        that.form.backLinkCode2.value = "";
                    }
                }
            },
            
            onCountryCodeChange: function(){
                var countryCode = that.form.countryCode.value;
                var countryFlagImage = $("#countryFlagImage");
                
                if (countryCode) {
                    countryFlagImage.show();
                    countryFlagImage.attr("src", setting.siteRootUrl + "/templates/arfooo/images/flags/" + countryCode + ".png");
                }
                else {
                    countryFlagImage.hide();
                }
                
            }
        };
        
        that.__construct();
    }
    
})(jQuery);