var $ = jQuery; $(document).ready(function() { // assign data attribute to select2 for placeholder $(".select2-placeholder").each(function() { var placeholder = $(this).data('placeholder'); // this will get the placeholder from the control $(this).select2({ placeholder: placeholder }); }); $('body').on('click', '.dev-edit-job', function() { $('#dev-job-name').val($(this).data('name')); $('#dev-job-description').val($(this).data('description')); $('#dev-job-type').val($(this).data('type')); $('#dev-job-id').val($(this).data('id')); $('#others').val($(this).data('type')); $('#dev-other-job-title').val($(this).data('otherJobTitle')); $('#job-confidential').attr('checked', ($(this).data('confidential') === true) ? 'checked' : null); $('#job-is-marketable').attr('checked', ($(this).data('marketable') === true) ? 'checked' : null); let $job_skills_select2 = $('#dev-job-skills'); $job_skills_select2.select2({ language: $job_skills_select2.data('locale'), tokenSeparators: [','], minimumInputLength: 2, ajax: { url: $job_skills_select2.data('url'), dataType: 'json', delay: 250, data: function (params) { return { search_term: params.term // search term }; }, processResults: function (response) { return { results: response }; }, cache: true } }); $('#edit-title-help').hide(); $('#edit-description-help').hide(); $('#edit-type-help').hide(); }); // Disable edit job submit button while selecting from skills drop-down results $('#dev-job-skills').on('select2:opening', function () { $('#edit_job_submit_button').prop( 'disabled', true ); }); // Enable edit job submit button while selecting from skills drop-down results $('#dev-job-skills').on('select2:select select2:close', function () { $('#edit_job_submit_button').prop( 'disabled', false ); }); $( document ).on('shown.bs.modal', "#edit-job-form", function(){ $('#dev-job-skills').trigger('change.select2'); $('#L-job-major').trigger('change.select2'); }); $( document ).on('hidden.bs.modal', '#apply-job-form', function(){ $('#apply-for-job').attr('disabled', 'disabled'); $('#cv').val('').trigger('change'); $('#upload-cv').find('label').text($('#default-label').text()); $('#upload-error').hide(); $('#upload-cv').removeClass('show'); }); $( document ).on('click', '#use-cv-div', function(){ $('#apply-for-job').attr('disabled', 'disabled'); $('#cv').val('').trigger('change'); $('#upload-cv').find('label').text($('#default-label').text()); $('#upload-error').hide(); $('#upload-cv').removeClass('show'); }); $('#delete-job').submit(function(e) { e.preventDefault(); showLoader(); const message = $(this).attr('data-message'); $.ajax({ type: 'POST', url: $(this).prop('action'), data: $(this).serialize(), dataType: 'json' }).done(res => { window.location = res.data.redirect_uri; }).fail(_ => { // Flash messages would handle error messages if (_.status === 403) { hideLoader(); $("#delete-job-form").modal('hide'); $(".container.employer-dashboard").prepend(`
${message}
`); } else { window.location.reload(); } }); }); $("#hide-job-action").submit(function(e) { e.preventDefault(); showLoader(); $.ajax({ type: 'POST', url: $(this).prop('action'), data: $(this).find('input').serialize(), // Select only this form fields dataType: 'json', error: editSubmissionError }).then(function (_) { window.location.reload(); }).fail(function (_) { // Flash messages would display the error message window.location.reload(); }); }); $("#cancel-delete-job").click(function(event) { $("#delete-job-form").modal('hide'); }); $("#cancel-hide-job").click(function(event) { $("#hide-job-form").modal('hide'); }); $('.help').hide(); jQuery('#edit-job').submit(function(e) { $('.help').hide(); e.preventDefault(); const message = $(this).attr('data-message'); showLoader(); $.ajax({ type: 'POST', url: $(this).prop('action'), data: $(this).serialize(), dataType: 'json' }).done(function (res) { window.location = res.message; }).fail(function (e) { hideLoader(); if (e.responseJSON && e.responseJSON.errors && 422 === e.status) { let errors = e.responseJSON.errors; for (let key in e.responseJSON.errors) { let $help = $('#edit-' + key + '-help'); $help.text(errors[key]); $help.show(); } } else if (e.status === 403) { hideLoader(); $("#edit-job-form").modal('hide'); $(".container.employer-dashboard").prepend(`
${message}
`); } else { $('#edit-job-form').modal('toggle'); } }); }); $(".cancel_create_job").click(function(event) { let $new_job = $('#new_job'); if ($new_job.length) { $new_job[0].reset(); } $('#job_skills').val(null).trigger('change'); $('.help').hide(); }); $('#new-job-form').on('hidden.bs.modal', function (e) { $('#job_skills').val(null).trigger('change'); $('#new-job')[0].reset(); $('.help').hide(); }); $('#edit-job-form').on('hidden.bs.modal', function (e) { $('.help').hide(); }); $('#new-job-form, #edit-job-form').on('hidden.bs.modal', function (e) { $('.input-error').removeClass('input-error'); }); $("#showjobs").click(function(event) { jQuery.ajax({ type: "POST", url: ajax_object.ajax_url, data: project_id = "project_id=" + $(this).data("project_id") + '&action=loadAll-jobs', success: function(response) { response = JSON.parse(response); $('#showjobs').hide(); $('#replace_jobs').replaceWith(response.html); }, }); }); $('.help').hide(); jQuery('#new-job').submit(function(e) { $('.help').hide(); e.preventDefault(); showLoader(); $.ajax({ type: 'POST', url: $(this).prop('action'), data: $(this).serialize(), dataType: 'json', success: function () { location.reload() } }).fail(function (e) { hideLoader(); if (e.responseJSON && e.responseJSON.errors && 422 === e.status) { let errors = e.responseJSON.errors; for (let key in e.responseJSON.errors) { let $help = $('#' + key + '-help'); if (key == 'city_key') { $('#L-job-major').addClass('was-validated'); } $help.text(errors[key]); $help.show(); } } else if (403 === e.status) { let message = e.responseJSON.errors.message; $(".container.employer-dashboard") .prepend(`
${message}
`); $('#new-job-form').modal('hide'); } else { $('#edit-job-form').modal('toggle'); } }); }); jQuery('#apply-form').submit(function(e) { // handle Apply job submit form e.preventDefault(); showLoader(); $.ajax({ method: 'POST', url: $(this).attr('action'), dataType: 'json', data: new FormData(this), contentType: false, cache: false, processData:false }) .then(_ => { $('#apply-job-form').modal('hide'); window.location.reload(); }) .fail(error => { hideLoader(); if (error.responseJSON) { if (error.responseJSON.message !== '' && error.responseJSON.status === 422) { // Map validation error messages to their fields let errorContainer = $('#upload-error'); errorContainer.text(error.responseJSON.message); errorContainer.show(); } else { // Reload to display the flash message if any $('#apply-job-form').modal('hide'); window.location.reload(); } } }); }); $("#cancel-apply-job").click(function(event) { $("#apply-job-form").modal('hide'); }); $('.L-delete-contract-btn').click(function(e) { e.preventDefault(); let message = $(this).data('message'); let that = this; confirmModal(message, function () { $(that).parents('.L-delete-contract-form').submit(); }); }); $('body').on('click', '.contract-renew-button', function(e) { e.preventDefault(); let message = $(this).data('message'); const applicationId = $(this).data('application-id'); confirmModal(message, function () { $('#contract-renew-' + applicationId).submit(); }); }); $('.loadmore-pending-jobs-teleworker-button').click(function() { var button_selector = ".loadmore-pending-jobs-teleworker-button"; var action = $(button_selector).data('action'); var count = $(button_selector).data('count'); var records_per_page = $(button_selector).data('records-per-page'); return load_more_func(action, count, records_per_page, '.pending-jobs-teleworker-container', button_selector); }()); $(".loadmore-rejected-jobs-teleworker-button").click(function() { var button_selector = ".loadmore-pending-jobs-teleworker-button"; var action = $(button_selector).data('action'); var count = $(button_selector).data('count'); var records_per_page = $(button_selector).data('records-per-page'); return load_more_func(action, count, records_per_page, '.rejected-jobs-teleworker-container', button_selector); }()); $(".loadmore-pending-on-others-jobs-teleworker-button").click(function() { var button_selector = ".loadmore-pending-on-others-jobs-teleworker-button"; var action = $(button_selector).data('action'); var count = $(button_selector).data('count'); var records_per_page = $(button_selector).data('records-per-page'); return load_more_func(action, count, records_per_page, '.pending-on-others-jobs-teleworker-container', button_selector); }()); $('.L-cv-missing').on('click', function(e) { e.preventDefault(); $('#warning-modal').modal('show'); }); $(document).ready(function() { $('.L-inactive-user').on('click', function(e) { e.preventDefault(); $('#L-inactive-user-warning-modal').modal('show'); }); }); }); function submissionSuccess(res) { hideLoader() location.reload(); } function newSubmissionError(err) { hideLoader() var errors = err.responseJSON.data; for (var key in errors) { if (errors.hasOwnProperty(key)) { let titleSmall = $('#' + key + '-help'); titleSmall.show(); titleSmall.text(errors[key]); } } } function editSubmissionError(err) { hideLoader(); var errors = err.responseJSON.data; for (var key in errors) { $('#edit-' + key + '-help').html(errors[key]).show(); } } function load_job_query(form) { return arrayToObject($(form).serializeArray()); } function arrayToObject(arr) { obj = {} for (var i in arr) { name = arr[i]['name']; if (!obj.hasOwnProperty(name)) { obj[name] = arr[i]['value']; } else { if (!Array.isArray(obj[name])) { obj[name] = [obj[name]]; } obj[name].push(arr[i]['value']); } } return obj; } function initialize_view() { $('.single-job').remove(); } function request_teleworker_job_contract_deletion(data, success_fn, error_fn) { showLoader() $.ajax({ url: ajax_object.ajax_url, data: data, method: 'POST', success: success_fn, error: error_fn, dataType: 'json', contentType: false, processData: false, }); } function handle_company_send_offer_success(res) { hideLoader() location.reload(); } function dataToFormData(data) { var form_data = new FormData(); for (var i in data) { form_data.append(data[i]['name'], data[i]['value']); } return form_data; } function apply_job_success_function(response) { if (response.indexOf("projectAddedSuccessfully") > -1) { $("#apply-job-form").modal('hide'); window.location.reload(); } }