Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function ($) {
- "use strict";
- function drop_pin_map()
- {
- var selector = $("#map_location");
- if($(selector).length)
- {
- var map = null;
- var endMarker;
- var mapcenter = null;
- var maplocation = $(selector).val();
- if(maplocation === '') {
- mapcenter = [40.712597, -74.003035];
- if (navigator.geolocation) {
- navigator.geolocation.getCurrentPosition(function(position) {
- mapcenter = [position.coords.latitude, position.coords.longitude];
- if(map) {
- map.setCenter({
- lat: mapcenter[0],
- lng: mapcenter[1]
- });
- dropPin();
- }
- });
- }
- } else {
- mapcenter = maplocation.split(',');
- }
- var initialize = function () {
- var paris = new google.maps.LatLng(mapcenter[0], mapcenter[1]);
- var mapOptions = {
- zoom: 16,
- center: paris
- };
- map = new google.maps.Map(document.getElementById("jobmap"), mapOptions);
- dropPin();
- };
- var dropPin = function () {
- // if any previous marker exists, let's first remove it from the map
- if (endMarker) {
- endMarker.setMap(null);
- }
- // create the marker
- endMarker = new google.maps.Marker({
- position: map.getCenter(),
- map: map,
- draggable: true
- });
- copyMarkerpositionToInput();
- google.maps.event.addListener(endMarker, 'dragend', function() {
- copyMarkerpositionToInput();
- });
- };
- var copyMarkerpositionToInput = function() {
- var position = endMarker.getPosition().lat() +','+ endMarker.getPosition().lng();
- $("#map_location").val(position);
- };
- google.maps.event.addDomListener(window, 'load', initialize);
- }
- }
- function do_number ()
- {
- var inputnumber = $('input.number');
- var do_change_number = function(element){
- // format number
- $(element).val(function(index, value) {
- return value
- .replace(/\D/g, "")
- .replace(/\B(?=(\d{3})+(?!\d))/g, ".");
- });
- };
- $(inputnumber).keyup(function(event) {
- // skip for arrow keys
- if(event.which >= 37 && event.which <= 40) return;
- // format number
- do_change_number(this);
- });
- do_change_number(inputnumber);
- }
- function time_picker() {
- // time pick
- $(".datetimepicker").datetimepicker({
- format : joption.date_format,
- timepicker:false,
- scrollInput: false
- });
- $(".monthyearpicker").datetimepicker({
- format : 'F Y',
- timepicker:false,
- scrollInput: false
- });
- }
- function do_choosen()
- {
- // choosen
- $(".chosen-select").chosen({no_results_text: joption.selectNotFound});
- }
- function clone_element()
- {
- // button
- $(".clonable-button").bind('click', function(e){
- e.preventDefault();
- var section = $(this).data('clone');
- var parent = $('[data-id="' + section + '"]');
- var sequence = 0;
- if(!$(this).data('last')) {
- sequence = $(parent).find('.cloneable').last().data('id');
- } else {
- sequence = $(this).data('last');
- }
- $(this).data('last', ++sequence);
- $.ajax({
- url : joption.adminurl,
- type: 'post',
- dataType: "html",
- data: {
- 'action' : 'generate_clone',
- 'section' : section,
- 'sequence' : sequence
- },
- success: function (data) {
- if (data === '') {
- alert('Sometime not right!');
- } else {
- $(parent).append(data);
- $(".monthyearpicker").datetimepicker({
- format : 'F Y',
- timepicker:false,
- scrollInput: false
- });
- // tiny mce
- KIA_metabox.runTinyMCE($(data).find('.wpeditme'));
- }
- }
- });
- });
- $('.clone-wrapper').on('click', '.clone-remove',function(){
- var parent = $(this).parents('.cloneable');
- $(parent).remove();
- });
- }
- function change_application_status_modal()
- {
- $(".application-action > a").bind('click', function(e){
- e.preventDefault();
- var modal = $("#modal-application-status");
- var status = $(this).data('status');
- // see post status
- $(modal).find('.post-status').removeClass('active');
- $(modal).find("[data-status=" + status + "]").addClass('active');
- $(modal).find(".status-change").val(status);
- $(modal).modal('show');
- });
- }
- function do_tooltip()
- {
- $('[data-toggle="tooltip"]').tooltip();
- }
- function remove_attached_resume()
- {
- $(".current-resume i").bind('click', function(){
- var parent = $(this).parents('.current-resume');
- $(parent).find('input').val('');
- $(parent).find('.current-resume-file').remove();
- });
- }
- function delete_notification()
- {
- $(".delete-form").submit(function(){
- var c = confirm(joption.deleteConfirm);
- return c;
- });
- }
- /** job form filter **/
- function form_filter()
- {
- $(document.body).bind('ajax_filter_search', $.debounce(250, change_result));
- $(".search-filter").submit(function(e){
- $(document.body).trigger('ajax_filter_search');
- e.preventDefault();
- });
- }
- var xhr = null;
- function change_result()
- {
- var searchfilter = $(".search-filter");
- var filteroverlay = $(".filter-overlay");
- var boxcontent = $(".box-list-wrapper");
- $(filteroverlay).fadeIn();
- if(xhr !== null) xhr.abort();
- xhr = $.ajax({
- url : jobplanetoption.ajaxurl,
- type: 'post',
- dataType: "html",
- data: $(searchfilter).serialize(),
- success: function (data) {
- $(boxcontent).html(data);
- $(filteroverlay).fadeOut();
- $('html, body').animate({
- scrollTop: $(boxcontent).offset().top
- }, 'fast');
- }
- });
- }
- function autocomplete_location()
- {
- $(".location-form").each(function(){
- var element = this;
- var auto = $(element).find('.location');
- var input = $(element).find('input[name="location"]');
- var currentid = $(input).val();
- $(auto).on('input', function(e){
- $(input).val('');
- if(currentid !== '' ) {
- reset_paging();
- $( document.body ).trigger( 'ajax_filter_search' );
- }
- currentid = '';
- });
- $(auto).autocomplete({
- source : function(request, response){
- $.ajax({
- url : jobplanetoption.ajaxurl,
- type: 'post',
- dataType: "json",
- data: {
- action : 'search_location',
- s : request.term
- },
- success: function (data) {
- response( data );
- }
- });
- },
- minLength: 2,
- select: function( event, ui ) {
- reset_paging();
- $(input).val(ui.item.id);
- if(!$(auto).hasClass('no-ajax')) {
- $(document.body).trigger('ajax_filter_search');
- }
- currentid = ui.item.id;
- },
- open: function() {},
- close: function() {}
- });
- });
- }
- function priceslider()
- {
- $(".jobplanet_price_slider").each(function(){
- var element = this;
- var priceslider = $(element).find('.price_slider');
- var min_input = $(element).find('.price_slider_amount #min_price'),
- max_input = $(element).find('.price_slider_amount #max_price'),
- from = $(element).find('.from'),
- to = $(element).find('.to'),
- min_price = $(min_input).data('min'),
- max_price = $(max_input).data('max'),
- current_min_price = parseInt( min_price, 10 ),
- current_max_price = parseInt( max_price, 10 );
- if(current_max_price > 0 )
- {
- $(priceslider).slider({
- range: true,
- animate: true,
- min: min_price,
- max: max_price,
- values: [ current_min_price, current_max_price ],
- create: function() {
- $( min_input ).val( current_min_price );
- $( max_input ).val( current_max_price );
- $( from ).text( min_price.formatMoney(0, ',', '.') );
- $( to ).text( max_price.formatMoney(0, ',', '.') );
- $( document.body ).trigger( 'price_slider_create', [ current_min_price, current_max_price ] );
- },
- slide: function( event, ui ) {
- $( min_input ).val( ui.values[0] );
- $( max_input ).val( ui.values[1] );
- $( from ).text( ui.values[0].formatMoney(0, ',', '.') );
- $( to ).text( ui.values[1].formatMoney(0, ',', '.') );
- $( document.body ).trigger( 'ajax_filter_search', [ ui.values[0], ui.values[1] ] );
- },
- change: function( event, ui ) {
- $( document.body ).trigger( 'ajax_filter_search', [ ui.values[0], ui.values[1] ] );
- }
- });
- }
- });
- }
- var reset_paging = function()
- {
- $(".search-filter").find(".paged").val(1);
- };
- function hook_element_filter()
- {
- var searchfilter = $(".search-filter");
- var keyword = $("#keyword");
- // keyword
- $(keyword).on('input', function(e){
- if($(keyword).val().length > 2 || $(keyword).val().length == 0) {
- reset_paging();
- $( document.body ).trigger( 'ajax_filter_search' );
- }
- });
- // location
- // autocomplete_location();
- // contract type
- $(".contract-type input").change(function(){
- reset_paging();
- $( document.body ).trigger( 'ajax_filter_search' );
- });
- // category
- $(".categories").change(function(){
- reset_paging();
- $( document.body ).trigger( 'ajax_filter_search' );
- });
- // salary range
- var salaryfilter = $('.salary-filter');
- $(".salary-range").change(function(){
- var range = $(".salary-range").val();
- $(salaryfilter).find('.jobplanet_price_slider').remove();
- reset_paging();
- $.ajax({
- url : jobplanetoption.ajaxurl,
- type: 'post',
- dataType: "html",
- data: {
- action : 'get_price_range',
- range : range
- },
- success: function (data) {
- $(salaryfilter).append(data);
- $( document.body ).trigger( 'ajax_filter_search' );
- priceslider();
- }
- });
- });
- // price slider
- priceslider();
- // paging
- $(".box-list-wrapper").on('click', ".ajax-paging a", function(e){
- var page = $(this).data('page');
- $(searchfilter).find(".paged").val(page);
- $( document.body ).trigger( 'ajax_filter_search' );
- e.preventDefault();
- });
- }
- function sendemailsubmit()
- {
- $('.send-job-form').bind('submit', function(e){
- e.preventDefault();
- var element = this;
- var modal = $('#modal-email');
- var overlay = $(modal).find('.modal-body-overlay');
- var button = $(modal).find('input[type="submit"]');
- $(overlay).show();
- $(button).val(jobplanetoption.sending);
- $.ajax({
- url : jobplanetoption.ajaxurl,
- type: 'post',
- dataType: "html",
- data: $(element).serialize(),
- success: function (data) {
- $(overlay).hide();
- $(button).val(jobplanetoption.send);
- if(data !== '') {
- alert(data);
- } else {
- $(modal).find('input[name="to"]').val('');
- $(modal).find('textarea[name="comment"]').val('');
- alert(jobplanetoption.emailsent);
- }
- }
- });
- });
- }
- function sendemail()
- {
- $(".box-list-wrapper").on('click', ".send-email", function(e){
- e.preventDefault();
- var id = $(this).data('id');
- var modal = $("#modal-email");
- $(modal).find('.job_id').val(id);
- $(modal).modal('show');
- });
- }
- function followcompany()
- {
- $(".box-list-wrapper").on('click', ".follow-company", function(e){
- e.preventDefault();
- var element = this;
- if($(element).attr('data-follow') == 0) {
- var id = $(element).data('id');
- $(element).text(jobplanetoption.loading);
- $.ajax({
- url : jobplanetoption.ajaxurl,
- type: 'post',
- dataType: "html",
- data: {
- 'action' : 'follow_company',
- 'company_id' : id
- },
- success: function (data) {
- if(data == 1) {
- $(element).text(jobplanetoption.companyFollowed).attr('data-follow', 1).addClass('btn-success');
- } else {
- $(element).text(jobplanetoption.failedFollowCompany);
- }
- },
- error : function(){
- $(element).text(jobplanetoption.failedFollowCompany);
- }
- });
- } else {
- alert(jobplanetoption.alreadyFollowCompany);
- }
- });
- }
- function bookmarkjob()
- {
- $(".box-list-wrapper").on('click', ".bookmark-job", function(e){
- e.preventDefault();
- var element = this;
- if($(element).attr('data-bookmarked') == 0) {
- var id = $(element).data('id');
- $(element).text(jobplanetoption.loading);
- $.ajax({
- url : jobplanetoption.ajaxurl,
- type: 'post',
- dataType: "html",
- data: {
- 'action' : 'bookmark_job',
- 'job_id' : id
- },
- success: function (data) {
- if(data == 1) {
- $(element).text(jobplanetoption.jobBookmarked).attr('data-bookmarked', 1).addClass('btn-success');
- } else {
- $(element).text(jobplanetoption.failedBookmark);
- }
- },
- error : function(){
- $(element).text(jobplanetoption.failedBookmark);
- }
- });
- } else {
- alert(jobplanetoption.alredyBookmark);
- }
- });
- }
- function saveresume()
- {
- $(".box-list-wrapper").on('click', ".save-resume", function(e){
- e.preventDefault();
- var element = this;
- if($(element).attr('data-save') == 0) {
- var id = $(element).data('id');
- $(element).text(jobplanetoption.loading);
- $.ajax({
- url : jobplanetoption.ajaxurl,
- type: 'post',
- dataType: "html",
- data: {
- 'action' : 'save_resume',
- 'resume_id' : id
- },
- success: function (data) {
- if(data == 1) {
- $(element).text(jobplanetoption.resumeSaved).attr('data-save', 1).addClass('btn-success');
- } else {
- $(element).text(jobplanetoption.failedSaveResume);
- }
- },
- error : function(){
- $(element).text(jobplanetoption.failedSaveResume);
- }
- });
- } else {
- alert(jobplanetoption.alredySavedResume);
- }
- });
- }
- function job_vc()
- {
- $(".jobplanet-vc-job").on('click', '.pagination a', function(e){
- e.preventDefault();
- var parent = $(this).parents('.jobplanet-vc-job');
- var form = $(parent).find('form');
- var overlay = $(parent).find('.job-vc-overlay');
- var block = $(parent).find('.jobplanet-vc-overwrite');
- $(form).find('input[name=currentpage]').val($(this).data('page'));
- $(overlay).stop().fadeIn();
- $.ajax({
- url : joption.adminurl,
- type: 'post',
- dataType: "html",
- data: $(form).serialize(),
- success: function (data) {
- $(block).html($(data).find('.jobplanet-vc-overwrite'));
- $(overlay).stop().fadeOut();
- }
- });
- });
- }
- function add_job_location()
- {
- $(".add-job-location").bind('click', function(){
- $(".another-job-location").fadeIn();
- });
- }
- function autofilllocation()
- {
- $(".location-autocomplete").each(function(){
- var element = $(this).get(0);
- var autocomplete = new google.maps.places.Autocomplete(
- element ,
- { types: ['geocode'] }
- );
- if($(element).hasClass('filter-location')) {
- google.maps.event.addListener(autocomplete, 'place_changed', function() {
- $( document.body ).trigger( 'ajax_filter_search' );
- });
- }
- });
- }
- function dom_ready()
- {
- // time picker
- time_picker();
- // choosen
- do_choosen();
- // clone element
- clone_element();
- // change application modal
- change_application_status_modal();
- // do tooltip
- do_tooltip();
- // remove attached resume
- remove_attached_resume();
- // maps
- drop_pin_map();
- // number
- do_number();
- // delete notification
- delete_notification();
- // form filter
- form_filter();
- hook_element_filter();
- // job hook
- bookmarkjob();
- sendemail();
- sendemailsubmit();
- // save resume
- saveresume();
- // save resume
- followcompany();
- job_vc();
- // add job location
- add_job_location();
- // autofill location
- autofilllocation();
- }
- $(document).ready(dom_ready);
- })(jQuery);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement