HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/javago-portal-updates/public/assets/js/cafe/addEditStamp.js
$(function () {

    function formatState(state) {
        if (!state.id) {
            return state.text;
        }
        var $state = $(
            '<span><img src="' + $(state.element).attr('data-src') + '" class="img-flag my-auto" /> ' + state.text +
            '</span>'
        );
        return $state;
    };
    $('#stamp_color').select2({
        minimumResultsForSearch: false,
        templateResult: formatState,
        templateSelection: formatState,
    });

    $('#stamp_no').select2({
        minimumResultsForSearch: Infinity,
    });

    $('#discount_type').select2({
        minimumResultsForSearch: Infinity,
    });

    $('#exclude_item').select2({
        minimumResultsForSearch: false,
        placeholder: selectExcludedItem,
    });
    $("#stamp_applicable_to").select2({
        minimumResultsForSearch: false,
        placeholder: "select categories stamp applies to",
    });

    $('.select2').removeClass('mb-4');

    $('#cafe_loyalty_stamp_form').validate({
        ignore: [],
        rules: {
            stamp_color: {
                required: true,
            },
            stamp_no: {
                required: true,
            },
            discount_type: {
                required: true,
            },
            discount: {
                required: true,
                maxlength: 6,
            },
            min_order_value: {
                required: true,
                maxlength: 6,
            },
            offer_text: {
                required: true,
                // minlength: 5,
                maxlength: 80,
            },
            stamp_expires_in: {
                required: false,
                // minlength: 1,
                maxlength: 2,
            },
        },
        messages: {
            stamp_color: {
                required: validation.stamp_color_required,
            },
            stamp_no: {
                required: validation.stamp_no_required,
            },
            discount_type: {
                required: validation.discount_type_required,
            },
            discount: {
                required: validation.discount_required,
                maxlength: validation.discount_maxlength,
            },
            min_order_value: {
                required: validation.min_order_value_required,
                maxlength: validation.min_order_value_maxlength,
            },
            offer_text: {
                required: validation.offer_text_required,
                minlength: validation.offer_text_minlength,
                maxlength: validation.offer_text_maxlength,
            },
            stamp_expires_in: {
                required: validation.stamp_expires_in_required,
                minlength: validation.stamp_expires_in_minlength,
                maxlength: validation.stamp_expires_in_maxlength,
            },
        },
        errorElement: 'span',
        errorPlacement: function (error, element) {
            error.addClass('invalid-feedback');
            if (element.attr("name") == "profile_picture") {
                error.appendTo("#profile_picture_error")
            } else {
                element.closest('.form-group').append(error);
            }
        },
        highlight: function (element, errorClass, validClass) {
            $(element).addClass('is-invalid');
        },
        unhighlight: function (element, errorClass, validClass) {
            $(element).removeClass('is-invalid');
        }
    });

    $('#discount_type').change(function(){
        $('#discount_type').valid();
    });
    $('#stamp_no').change(function(){
        $('#stamp_no').valid();
    });

});