$(function () {
    var $body = $("body");
    /**
     * Site selector
     */
    $body.on("change", "#id_mcgdprbanner_site_id", function () {
        /** Removing red color from highlighted fields */
        melisCoreTool.highlightErrors(1, null, "id_melis_cms_gdpr_banner_header");
        melisHelper.zoneReload("id_melis_cms_gdpr_banner_details", "melis_cms_gdpr_banner_details", {siteId: this.value});
        if (this.value > 0) {
            $body.find(".cms-gdpr-save").show();
        } else {
            $body.find(".cms-gdpr-save").hide();
        }
    });
    /**
     * Saves banner contents
     */
    $body.on("click", ".cms-gdpr-save", function () {
        if ($body.find(this).attr('disabled') === undefined) {
            melisCoreTool.pending(".cms-gdpr-save");
            var data = {};
            var languageIds = [];
            /** Get site */
            var site = $body.find("#cms_gdpr_banner_site_filter_form");
            if (site.length > 0) {
                data["filters"] = {"siteId": site.serializeArray()};
            }
            /** Get all the language options offered */
            $body.find(".mcms-gdpr-banner-language").each(function (i, language) {
                languageIds.push($body.find(language).data("langId"));
            });
            /** Get all the form data for the languages */
            var content = [];
            var bannerData = {};
            for (var i = 0; i < languageIds.length; i++) {
                content = $body.find("#id-cms-gdpr-banner-content-form-" + languageIds[i]);
                if (content.length > 0) {
                    bannerData[languageIds[i]] = content.serializeArray();
                }
            }
            data['bannerContent'] = bannerData;
            $.ajax({
                type: 'POST',
                url: '/melis/MelisCms/GdprBanner/saveBanner',
                data: data,
                dataType: 'json',
                encode: true
            }).done(function(data) {
                if (data.success) {
                    melisHelper.melisOkNotification(data.textTitle, data.textMessage);
                    $body.find("#id_mcgdprbanner_site_id").trigger("change");
                }
                else {
                    melisHelper.melisKoNotification(data.textTitle, data.textMessage, data.errors);
                    //highlight errors
                    melisCoreTool.highlightErrors(0, data.errors, "id_melis_cms_gdpr_banner");
                }
                // update flash messenger component
                melisCore.flashMessenger();
                melisCoreTool.done(".cms-gdpr-save");
            }).fail(function(xhr, textStatus, errorThrown) {
                melisCoreTool.done(".cms-gdpr-save");
            });
        }
    });
});
 
  |