Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 8156 | Rev 8204 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3766 stevensc 1
<?php
1 www 2
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
3
$currentUser    = $this->currentUserHelper();
4
$roleName       = $currentUser->getUserTypeId();
5
 
6
$routeAdd           = $this->url('jobs/add');
7
 
8
$routeDatatable   = $this->url('jobs');
9
 
10
$allowAdd = $acl->isAllowed($roleName, 'jobs/add') ? 1 : 0;
11
$allowDelete = $acl->isAllowed($roleName, 'jobs/delete') ? 1 : 0;
12
$allowEdit = $acl->isAllowed($roleName, 'jobs/edit') ? 1 : 0;
13
$allowUsersWhoApplied = $acl->isAllowed($roleName, 'jobs/users-who-applied') ? 1 : 0;
14
 
15
$this->headLink()->appendStylesheet($this->basePath('plugins/nprogress/nprogress.css'));
16
$this->inlineScript()->appendFile($this->basePath('plugins/nprogress/nprogress.js'));
17
 
18
$this->inlineScript()->appendFile($this->basePath('plugins/ckeditor/ckeditor.js'));
19
 
20
 
21
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap-fileinput/css/fileinput.min.css'));
22
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap-fileinput/themes/explorer-fas/theme.css'));
23
 
24
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/plugins/piexif.js'));
25
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/plugins/sortable.js'));
26
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/fileinput.js'));
27
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/js/locales/es.js'));
28
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/themes/fas/theme.js'));
29
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-fileinput/themes/explorer-fas/theme.js'));
30
 
31
 
32
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/jquery.validate.js'));
33
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/additional-methods.js'));
34
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-validation/localization/messages_es.js'));
35
 
36
$this->headLink()->appendStylesheet($this->basePath('plugins/datatables-bs4/css/dataTables.bootstrap4.min.css'));
37
$this->headLink()->appendStylesheet($this->basePath('plugins/datatables-responsive/css/responsive.bootstrap4.min.css'));
38
 
39
$this->inlineScript()->appendFile($this->basePath('plugins/datatables/jquery.dataTables.min.js'));
40
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-bs4/js/dataTables.bootstrap4.min.js'));
41
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-responsive/js/dataTables.responsive.min.js'));
42
$this->inlineScript()->appendFile($this->basePath('plugins/datatables-responsive/js/responsive.bootstrap4.min.js'));
43
 
44
 
45
 
46
$this->headLink()->appendStylesheet($this->basePath('plugins/select2/css/select2.min.css'));
47
$this->headLink()->appendStylesheet($this->basePath('plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css'));
48
$this->inlineScript()->appendFile($this->basePath('plugins/select2/js/select2.min.js'));
49
 
50
 
51
$this->inlineScript()->appendFile($this->basePath('plugins/jquery-input-number/input-number-format.jquery.min.js'));
52
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-confirmation/dist/bootstrap-confirmation.js'));
53
 
54
 
55
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));
56
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
57
 
58
$this->inlineScript()->appendFile($this->basePath('plugins/moment/moment-with-locales.min.js'));
59
$this->headLink()->appendStylesheet($this->basePath('plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css'));
60
$this->inlineScript()->appendFile($this->basePath('plugins/bootstrap-datetimepicker/js/bootstrap-datetimepicker.min.js'));
61
 
62
 
63
$this->headStyle()->captureStart();
64
echo <<<CSS
65
 
66
 
67
#gridTableUsersWhoApplied {
68
    display: flex;
69
    flex-flow: column;
70
    width: 100%;
71
}
72
 
73
#gridTableUsersWhoApplied thead {
74
    flex: 0 0 auto;
75
}
76
 
77
#gridTableUsersWhoApplied tbody {
78
    flex: 1 1 auto;
79
    display: block;
80
    overflow-y: auto;
81
    overflow-x: hidden;
82
}
83
 
84
#gridTableUsersWhoApplied tr {
85
    width: 100%;
86
    display: table;
87
    table-layout: fixed;
88
}
89
CSS;
90
$this->headStyle()->captureEnd();
91
 
92
$this->inlineScript()->captureStart();
93
echo <<<JS
94
jQuery( document ).ready(function( $ ) {
95
       var route_status = '';
96
       var route_title =  '';
97
       var route_extended =  '';
98
       var route_location =  '';
99
       var route_job_category =  '';
100
       var route_employment_type =  '';
101
       var route_salary =  '';
102
       var route_experience = '';
103
       var route_languages =  '';
104
       var route_degrees = '';
105
       var route_skills =  '';
106
       var route_last_date_of_application =  '';
7783 stevensc 107
 
1 www 108
 
7783 stevensc 109
 
1 www 110
        var allowDelete = $allowDelete;
111
        var allowEdit = $allowEdit;
112
        var allowUsersWhoApplied = $allowUsersWhoApplied;
113
 
7783 stevensc 114
        var gridTable = $('#gridTable').dataTable( {
115
            'processing': true,
116
            'serverSide': true,
117
            'searching': true,
118
            'order': [[ 0, 'desc' ]],
119
            'ordering':  true,
120
            'ordenable' : true,
121
            'responsive': true,
122
            'select' : false,
123
        	'paging': true,
124
            'pagingType': 'simple_numbers',
1 www 125
 
7783 stevensc 126
    		'ajax': {
127
    			'url' : '$routeDatatable',
128
    			'type' : 'get',
129
                'beforeSend': function (request) {
130
                  NProgress.start();
131
                },
132
                'dataFilter': function(response) {
133
                    var response = jQuery.parseJSON( response );
134
 
135
                    var json                = {};
136
                    json.recordsTotal       = 0;
137
                    json.recordsFiltered    = 0;
138
                    json.data               = [];
139
 
140
                    if(response.success) {
141
                        json.recordsTotal       = response.data.total;
142
                        json.recordsFiltered    = response.data.total;
143
                        json.data               = response.data.items;
144
                    } else {
145
                        $.fn.showError(response.data)
146
                    }
147
 
148
                    return JSON.stringify( json );
149
                }
150
    		},
151
            'language' : {
152
                'sProcessing':     'LABEL_DATATABLE_SPROCESSING',
153
                'sLengthMenu':     'LABEL_DATATABLE_SLENGTHMENU',
154
                'sZeroRecords':    'LABEL_DATATABLE_SZERORECORDS',
155
                'sEmptyTable':     'LABEL_DATATABLE_SEMPTYTABLE',
156
                'sInfo':           'LABEL_DATATABLE_SINFO',
157
                'sInfoEmpty':      'LABEL_DATATABLE_SINFOEMPTY',
158
                'sInfoFiltered':   'LABEL_DATATABLE_SINFOFILTERED',
159
                'sInfoPostFix':    '',
160
                'sSearch':         'LABEL_DATATABLE_SSEARCH',
161
                'sUrl':            '',
162
                'sInfoThousands':  ',',
163
                'sLoadingRecords': 'LABEL_DATATABLE_SLOADINGRECORDS',
164
                'oPaginate': {
165
                    'sFirst':    'LABEL_DATATABLE_SFIRST',
166
                    'sLast':     'LABEL_DATATABLE_SLAST',
167
                    'sNext':     'LABEL_DATATABLE_SNEXT',
168
                    'sPrevious': 'LABEL_DATATABLE_SPREVIOUS'
169
                },
170
                'oAria': {
171
                    'sSortAscending':  ': LABEL_DATATABLE_SSORTASCENDING',
172
                    'sSortDescending': ':LABEL_DATATABLE_SSORTDESCENDING'
173
                },
174
            },
175
            'drawCallback': function( settings ) {
176
                NProgress.done();
177
                $('button.btn-delete').confirmation({
178
                    rootSelector: 'button.btn-delete',
179
                    title : 'LABEL_ARE_YOU_SURE',
180
                    singleton : true,
181
                    btnOkLabel: 'LABEL_YES',
182
                    btnCancelLabel: 'LABEL_NO',
183
                    onConfirm: function(value) {
184
                        action = $(this).data('href');
185
                        NProgress.start();
186
                        $.ajax({
187
                            'dataType'  : 'json',
188
                            'accept'    : 'application/json',
189
                            'method'    : 'post',
190
                            'url'       :  action,
191
                        }).done(function(response) {
192
                            if(response['success']) {
193
                                $.fn.showSuccess(response['data']);
194
                                gridTable.api().ajax.reload(null, false);
195
                            } else {
196
                                $.fn.showError(response['data']);
197
                            }
198
                        }).fail(function( jqXHR, textStatus, errorThrown) {
199
                            $.fn.showError(textStatus);
200
                        }).always(function() {
201
                            NProgress.done();
202
                        });
203
                    },
204
                });
205
            },
206
            'aoColumns': [
207
                { 'mDataProp': 'last_date_of_application' },
208
                { 'mDataProp': 'title' },
209
                { 'mDataProp': 'details' },
210
                { 'mDataProp': 'actions' },
211
    	    ],
212
            'columnDefs': [
213
 
214
                {
215
                    'targets': -2,
216
                    'orderable': false,
217
                    'render' : function ( data, type, row ) {
218
                        var s = 'LABEL_STATUS : ' + row['details']['status'] + '<br>';
219
                        s = s + 'LABEL_EMPLOYMENT_TYPE : <br>' + row['details']['employment_type'] + '<br>';
220
                        s = s +  'LABEL_QTY_USERS_WHO_APPLIED : ' + row['details']['users_who_applied'] + '<br>';
221
 
222
                        return s;
223
                    }
224
                },
225
 
226
                {
227
                    'targets': -1,
228
                    'orderable': false,
229
                    'render' : function ( data, type, row ) {
230
                        s = '';
231
 
232
                        if(allowEdit && data['link_edit']  ) {
233
                            s = s + '<button class="btn btn-info btn-sm btn-edit" style="margin-top: 5px" data-href="' + data['link_edit']+ '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pencil"></i> LABEL_EDIT </button><br>';
234
                        }
235
                        if(allowDelete && data['link_delete']  ) {
236
                            s = s + '<button class="btn btn-danger btn-sm btn-delete" style="margin-top: 5px" data-href="' + data['link_delete']+ '" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-trash"></i> LABEL_DELETE </button><br>';
237
                        }
238
                        if(allowUsersWhoApplied && data['link_users_who_applied']  ) {
239
                            s = s + '<button class="btn btn-primary btn-sm btn-users-who-applied" style="margin-top: 5px" data-href="' + data['link_users_who_applied']+ '" data-toggle="tooltip" title="LABEL_USERS_WHO_APPLIED"><i class="fa fa-users"></i> LABEL_USERS_WHO_APPLIED </button><br>';
240
                        }
241
 
242
                        return s;
243
                    }
244
                }
245
              ],
246
        });
247
 
1 www 248
    $.validator.addMethod('greaterThanFloat', function (value, element, param) {
249
        var otherElement = $(param);
250
        return parseFloat(value) > parseFloat(otherElement.val());
251
    }, 'ERROR_INVALID_MINIMUM');
252
 
253
 
254
 
255
    $.validator.addMethod('greaterThan', function (value, element, param) {
256
        var otherElement = $(param);
257
        return parseInt(value, 10) > parseInt(otherElement.val(), 10);
258
    }, 'ERROR_INVALID_MINIMUM');
259
 
260
 
261
    $.validator.addMethod('checkLocation', function (value, element, param) {
262
        var otherElement = $(param);
263
 
264
        return $.trim(otherElement.val()).length > 0;
265
    }, 'ERROR_PLACED_AUTOCOMPLETE_DOES_NOT_CONTAIN_GEOMETRY');
266
 
8197 stevensc 267
    var autocompleteLocation = new google.maps.places.Autocomplete(
268
        (document.getElementById('location_search')),
269
        {types: ['(cities)']}
270
    );
271
 
272
    $.fn.fillInAddressLocation = function() {
273
 
274
        var place = autocompleteLocation.getPlace();
275
        if (!place.geometry) {
276
            $.fn.showError('ERROR_PLACED_AUTOCOMPLETE_DOES_NOT_CONTAIN_GEOMETRY')
277
            return;
278
        } else {
279
            address1 = '';
280
            address2 = '';
281
            city1 = '';
282
            city2 = '';
283
            state = '';
284
            country = '';
285
            postal_code = '';
286
 
287
            formatted_address = place.formatted_address;
288
            latitude = place.geometry.location.lat();
289
            longitude = place.geometry.location.lng();
290
            var arrAddress = place.address_components;
291
 
292
            $.each(arrAddress, function(i, address_component) {
293
                if (address_component.types[0] == "route") {
294
                    address1 = address_component.long_name;
295
                }
296
                if (address_component.types[0] == "sublocality") {
297
                    address2 = address_component.long_name;
298
                }
299
                if (address_component.types[0] == "locality") {
300
                    city1 = address_component.long_name;
301
                }
302
                if (address_component.types[0] == "administrative_area_level_2") {
303
                    city2 = address_component.long_name;
304
                }
305
                if (address_component.types[0] == "administrative_area_level_1") {
306
                    state = address_component.long_name;
307
                }
308
                if (address_component.types[0] == "country") {
309
                    country = address_component.long_name;
310
                }
311
                if (address_component.types[0] == "postal_code") {
312
                    postal_code = address_component.long_name;
313
                }
314
            });
315
 
316
            $('#form-location #formatted_address').val(formatted_address);
317
            $('#form-location #address1').val(address1);
318
            $('#form-location #address2').val(address2);
319
            $('#form-location #city1').val(city1);
320
            $('#form-location #city2').val(city2);
321
            $('#form-location #state').val(state);
322
            $('#form-location #country').val(country);
323
            $('#form-location #postal_code').val(postal_code);
324
            $('#form-location #latitude').val(latitude);
325
            $('#form-location #longitude').val(longitude);
326
        }
327
    }
1 www 328
 
8197 stevensc 329
 
330
    var autocompleteLocationNew = new google.maps.places.Autocomplete(
331
        (document.getElementById('add_location_search')),
332
        {types: ['(cities)']}
333
    );
334
 
335
    $.fn.fillInAddressNewLocation = function() {
336
 
337
 
338
        var place = autocompleteLocationNew.getPlace();
339
        if (!place.geometry) {
340
            $.fn.showError('ERROR_PLACED_AUTOCOMPLETE_DOES_NOT_CONTAIN_GEOMETRY')
341
            return;
342
        } else {
343
            address1 = '';
344
            address2 = '';
345
            city1 = '';
346
            city2 = '';
347
            state = '';
348
            country = '';
349
            postal_code = '';
350
 
351
            formatted_address = place.formatted_address;
352
            latitude = place.geometry.location.lat();
353
            longitude = place.geometry.location.lng();
354
            var arrAddress = place.address_components;
355
 
356
            $.each(arrAddress, function(i, address_component) {
357
                if (address_component.types[0] == "route") {
358
                    address1 = address_component.long_name;
359
                }
360
                if (address_component.types[0] == "sublocality") {
361
                    address2 = address_component.long_name;
362
                }
363
                if (address_component.types[0] == "locality") {
364
                    city1 = address_component.long_name;
365
                }
366
                if (address_component.types[0] == "administrative_area_level_2") {
367
                    city2 = address_component.long_name;
368
                }
369
                if (address_component.types[0] == "administrative_area_level_1") {
370
                    state = address_component.long_name;
371
                }
372
                if (address_component.types[0] == "country") {
373
                    country = address_component.long_name;
374
                }
375
                if (address_component.types[0] == "postal_code") {
376
                    postal_code = address_component.long_name;
377
                }
378
            });
379
 
380
            $('#form-add #formatted_address').val(formatted_address);
381
            $('#form-add #address1').val(address1);
382
            $('#form-add #address2').val(address2);
383
            $('#form-add #city1').val(city1);
384
            $('#form-add #city2').val(city2);
385
            $('#form-add #state').val(state);
386
            $('#form-add #country').val(country);
387
            $('#form-add #postal_code').val(postal_code);
388
            $('#form-add #latitude').val(latitude);
389
            $('#form-add #longitude').val(longitude);
390
        }
391
    }
392
 
1 www 393
 
394
    $.validator.setDefaults({
395
        debug: true,
396
        highlight: function(element) {
397
            $(element).addClass('is-invalid');
398
        },
399
        unhighlight: function(element) {
400
            $(element).removeClass('is-invalid');
401
        },
402
        errorElement: 'span',
403
        errorClass: 'error invalid-feedback',
404
        errorPlacement: function(error, element) {
405
            if(element.parent('.form-group').length) {
406
                error.insertAfter(element);
407
            } else if(element.parent('.toggle').length) {
408
                error.insertAfter(element.parent().parent());
409
            } else {
410
                error.insertAfter(element.parent());
411
            }
412
        }
413
    });
414
 
415
 
416
 
417
    $.fn.showFormErrorValidator = function(fieldname, errors) {
418
        var field = $(fieldname);
419
        if(field) {
420
            $(field).addClass('form-group-has-error');
421
 
422
            var error = $('<div id="' + fieldname +'-error" class="form-group-invalid-feedback">' + errors + '</div>');
423
            if(field.parent('.form-group').length) {
424
                error.insertAfter(field.parent());
425
            } else {
426
                error.insertAfter(field);
427
            }
428
        }
429
    };
430
 
431
    var validatorAdd = $('#form-add').validate({
432
        debug: true,
433
        onclick: false,
434
        onkeyup: false,
435
        onfocusout: false,
436
        ignore: [],
437
        rules: {
438
            'name': {
439
                required: true,
440
                maxlength: 128,
441
            },
442
            'title': {
443
                required: true,
444
            },
445
            'last_date_of_application': {
446
                required: true,
447
            },
448
            'job_category_id' :  {
449
                required: true,
450
            },
451
            'employment_type' : {
452
                required: true,
453
            },
454
            'add_location_search': {
455
                required: true,
456
                checkLocation: '#form-add #latitude'
457
            }
458
        },
459
        submitHandler: function(form)
460
        {
461
            NProgress.start();
462
            $.ajax({
463
                'dataType'  : 'json',
464
                'accept'    : 'application/json',
465
                'method'    : 'post',
466
                'url'       :  '$routeAdd',
467
                'data'      :  $('#form-add').serialize(),
468
            }).done(function(response) {
469
                if(response['success']) {
470
                    $('#add-job-box').modal('hide');
471
                    gridTable.api().ajax.reload(null, false);
472
 
473
                    $('#overview-title').html(response['data']['title']);
474
                    $('#overview-job-category').html(response['data']['job_category']);
475
					$('#overview-last-date-of-application').html(response['data']['last_date_of_application']);
476
					$('#overview-employment-type').html(response['data']['employment_type']);
477
                    $('#overview-location').html(response['data']['location']);
478
 
479
                    $('#overview-status').html(response['data']['status']);
480
                    $('#overview-description').html(response['data']['description']);
481
 
482
                    $('#overview-salary').html(response['data']['salary']);
483
                    $('#overview-experience').html('')
484
 
485
 
486
 
487
 
488
 
489
                    $('list-skills').empty();
490
                    $('list-languages').empty();
491
                    $('list-degrees').empty();
492
 
493
 
494
                    route_status = response['data']['route_status'];
495
                    route_title =  response['data']['route_title'];
496
                    route_extended =  response['data']['route_extended'];
497
                    route_location =  response['data']['route_location'];
498
                    route_job_category =  response['data']['route_job_category'];
499
                    route_employment_type =  response['data']['route_employment_type'];
500
                    route_salary =  response['data']['route_salary'];
501
                    route_experience = response['data']['route_experience'];
502
                    route_languages =  response['data']['route_languages'];
503
                    route_degrees = response['data']['route_degrees'];
504
                    route_skills =  response['data']['route_skills'];
505
                    route_last_date_of_application =  response['data']['route_last_date_of_application'];
506
 
507
                    $('#divListing').hide();
508
                    $('#divEdit').show();
509
 
510
                } else {
511
                    validatorAdd.resetForm();
512
                    if(jQuery.type(response['data']) == 'string') {
513
                        $.fn.showError(response['data']);
514
                    } else  {
515
                        $.each(response['data'], function( fieldname, errors ) {
516
                            $.fn.showFormErrorValidator('#form-add #' + fieldname, errors);
517
                        });
518
                    }
519
                }
520
            }).fail(function( jqXHR, textStatus, errorThrown) {
521
                $.fn.showError(textStatus);
522
            }).always(function() {
523
                NProgress.done();
524
            });
525
            return false;
526
        },
527
        invalidHandler: function(form, validator) {
528
 
529
        }
530
    });
531
 
7783 stevensc 532
    $('body').on('click', 'button.btn-edit', function(e) {
533
        e.preventDefault();
534
 
535
        var href = $(this).data('href');
536
 
537
        NProgress.start();
538
            $.ajax({
539
                'dataType'  : 'json',
540
                'accept'    : 'application/json',
541
                'method'    : 'get',
542
                'url'       :  href,
543
            }).done(function(response) {
544
                if(response['success']) {
545
                    $('#add-job-box').modal('hide');
546
                    gridTable.api().ajax.reload(null, false);
547
 
548
                    $('#overview-title').html(response['data']['title']);
549
                    $('#overview-job-category').html(response['data']['job_category']);
550
					$('#overview-last-date-of-application').html(response['data']['last_date_of_application']);
551
					$('#overview-employment-type').html(response['data']['employment_type']);
552
                    $('#overview-location').html(response['data']['location']);
553
 
554
                    $('#overview-status').html(response['data']['status']);
555
                    $('#overview-description').html(response['data']['description']);
556
 
557
 
558
                    if(response['data']['salary']) {
559
					   $('#overview-salary').html(response['data']['salary']);
560
                    } else {
561
                       $('#overview-salary').html('')
562
                    }
563
 
564
                    if(response['data']['experience']) {
565
					   $('#overview-experience').html(response['data']['experience'] + ' LABEL_YEARS');
566
                    } else {
567
                       $('#overview-experience').html('')
568
                    }
569
 
570
 
571
 
572
                    $('#list-skills').empty();
573
                    $.each(response['data']['skills'], function(i, name) {
574
                        $('#list-skills').append('<li>' + name + '</li>');
575
                    });
576
 
577
                    $('#list-languages').empty();
578
                    $.each(response['data']['languages'], function(i, name) {
579
                        $('#list-languages').append('<li>' + name + '</li>');
580
                    });
581
 
582
                    $('#list-degrees').empty();
583
                    $.each(response['data']['degrees'], function(i, name) {
584
                        $('#list-degrees').append('<li>' + name + '</li>');
585
                    });
586
 
587
 
588
                    route_status =  response['data']['route_status'];
589
                    route_title =   response['data']['route_title'];
590
                    route_extended =   response['data']['route_extended'];
591
                    route_location =   response['data']['route_location'];
592
                    route_job_category =   response['data']['route_job_category'];
593
                    route_employment_type =   response['data']['route_employment_type'];
594
                    route_salary =   response['data']['route_salary'];
595
                    route_experience =  response['data']['route_experience'];
596
                    route_languages =   response['data']['route_languages'];
597
                    route_degrees =  response['data']['route_degrees'];
598
                    route_skills =   response['data']['route_skills'];
599
                    route_last_date_of_application =   response['data']['route_last_date_of_application'];
600
 
601
 
602
                    $('#divListing').hide();
603
                    $('#divEdit').show();
604
 
605
                } else {
606
                    validatorAdd.resetForm();
607
                    if(jQuery.type(response['data']) == 'string') {
608
                        $.fn.showError(response['data']);
609
                    } else  {
610
                        $.each(response['data'], function( fieldname, errors ) {
611
                            $.fn.showFormErrorValidator('#form-add #' + fieldname, errors);
612
                        });
613
                    }
614
                }
615
            }).fail(function( jqXHR, textStatus, errorThrown) {
616
                $.fn.showError(textStatus);
617
            }).always(function() {
618
                NProgress.done();
619
            });
620
            return false;
621
    });
622
 
623
 
624
 
1 www 625
    $(".close-box, .btn-add-job-cancel").on("click", function(e){
626
        e.preventDefault();
627
        $('#add-job-box').modal('hide');
628
        return false;
629
    });
630
 
631
    $('body').on('click', 'button.btn-add', function(e) {
632
        e.preventDefault();
633
 
634
 
635
        $('#form-add #title').val('');
636
        $('#form-add #last_date_of_application').val('');
637
        $('#form-add #employment_type').val('').trigger('change');
638
        $('#form-add #job_category_id').val('').trigger('change');
639
        $('#form-add #formatted_address').val('');
640
        $('#form-add #address1').val('');
641
        $('#form-add #address2').val('');
642
        $('#form-add #country').val('');
643
        $('#form-add #state').val('');
644
        $('#form-add #city1').val('');
645
        $('#form-add #city2').val('');
646
        $('#form-add #postal_code').val('');
647
        $('#form-add #latitude').val('');
648
        $('#form-add #longitude').val('');
649
        $('#form-add #add_location_search').val('');
650
        validatorAdd.resetForm();
651
 
652
        $('#add-job-box').modal('show');
653
        return false;
654
    });
655
 
8197 stevensc 656
    $('#form-add #last_date_of_application').datetimepicker({
657
        //viewMode: 'years',
658
        locale: 'es',
659
        format: 'DD/MM/YYYY'
660
    });
1 www 661
 
8197 stevensc 662
 
1 www 663
    $('body').on('click', 'button.btn-view-profile', function(e) {
664
        e.preventDefault();
665
 
666
        var href = $(this).data('href');
667
        window.open(href, '_blank');
668
 
669
    });
670
 
671
    $('body').on('click', 'button.btn-users-who-applied', function(e) {
672
        e.preventDefault();
673
 
674
        var href = $(this).data('href');
675
        NProgress.start();
676
        $.ajax({
677
            'dataType'  : 'json',
678
            'accept'    : 'application/json',
679
            'method'    : 'get',
680
            'url'       :  href
681
        }).done(function(response) {
682
            if(response['success']) {
683
                $('#gridTableUsersWhoApplied tbody').empty();
684
                $.each(response['data'], function(i, record) {
685
                    var s = '<tr>';
686
                    s = s + '<td>' + record['first_name'] + '</td>';
687
                    s = s + '<td>' + record['last_name'] + '</td>';
688
                    s = s + '<td>' + record['email'] + '</td>';
689
                    s = s + '<td><button class="btn btn-default btn-view-profile" data-href="' + record['link_view']+ '"><i class="fa fa-external-link"></i></button></td>';
690
                    s = s + '<tr>';
691
 
692
                    $('#gridTableUsersWhoApplied tbody').append(s);
693
 
694
                });
695
 
696
 
697
                $('#modalUsersWhoApplied').modal('show');
698
            } else {
699
                $.fn.showError(response['data']);
700
 
701
            }
702
        }).fail(function( jqXHR, textStatus, errorThrown) {
703
            $.fn.showError(textStatus);
704
        }).always(function() {
705
            NProgress.done();
706
        });
707
        return false;
708
 
709
    });
710
 
8197 stevensc 711
 var validatorLocation = $('#form-location').validate({
712
        debug: true,
713
        onclick: false,
714
        onkeyup: false,
715
        onfocusout: false,
716
        ignore: [],
717
        rules: {
718
            'location_search': {
719
                required: true,
720
                checkLocation: '#form-location #latitude'
721
            }
722
        },
723
        submitHandler: function(form)
724
        {
725
            NProgress.start();
726
            $.ajax({
727
                'dataType'  : 'json',
728
                'accept'    : 'application/json',
729
                'method'    : 'post',
730
                'url'       :  route_location,
731
                'data'      :  $('#form-location').serialize(),
732
            }).done(function(response) {
1 www 733
 
8197 stevensc 734
 
735
 
736
                if(response['success']) {
737
                    $('#overview-location').html(response.data);
738
                    $("#location-box").modal('hide');
739
                } else {
740
                    validatorLocation.resetForm();
741
                    $.fn.showError(response['data']);
742
                }
743
            }).fail(function( jqXHR, textStatus, errorThrown) {
744
                $.fn.showError(textStatus);
745
            }).always(function() {
746
                NProgress.done();
747
            });
748
            return false;
749
        },
750
        invalidHandler: function(form, validator) {
751
 
752
        }
753
    });
754
 
755
 
756
    $('body').on('click', 'a.btn-location-edit', function(e) {
757
        e.preventDefault();
758
 
759
        $('#form-location #location_search').val('');
760
        $('#form-location #formatted_address').val('');
761
        $('#form-location #address1').val('');
762
        $('#form-location #address2').val('');
763
        $('#form-location #country').val('');
764
        $('#form-location #state').val('');
765
        $('#form-location #city1').val('');
766
        $('#form-location #city2').val('');
767
        $('#form-location #postal_code').val('');
768
        $('#form-location #latitude').val('');
769
        $('#form-location #longitude').val('');
770
        validatorLocation.resetForm();
771
 
772
        $("#location-box").modal('show');
773
    });
774
 
775
    $('.btn-location-close').on("click", function(e){
776
        e.preventDefault();
777
 
778
        $("#location-box").modal('hide');
779
        return false;
780
    });
781
 
782
 
783
 
784
 
785
    var validatorLastDateOfApplication = $('#form-last-date-of-application').validate({
786
        debug: true,
787
        onclick: false,
788
        onkeyup: false,
789
        onfocusout: false,
790
        ignore: [],
791
        rules: {
792
            'last_date_of_application': {
793
                required: true,
794
            },
795
        },
796
 
797
        submitHandler: function(form)
798
        {
799
            NProgress.start();
800
            $.ajax({
801
                'dataType'  : 'json',
802
                'accept'    : 'application/json',
803
                'method'    : 'post',
804
                'url'       :  route_last_date_of_application,
805
                'data'      :  $('#form-last-date-of-application').serialize()
806
            }).done(function(response) {
807
                if(response['success']) {
808
 
809
                    $('#overview-last-date-of-application').html(response['data']);
810
                    $("#last-date-of-application-box").modal('hide');
811
                } else {
812
                    validatorLastDateOfApplication.resetForm();
813
                    if(jQuery.type(response['data']) == 'string') {
814
                        $.fn.showError(response['data']);
815
                    } else  {
816
                        $.each(response['data'], function( fieldname, errors ) {
817
                            $.fn.showFormErrorValidator('#form-last-date-of-application #' + fieldname, errors);
818
                        });
819
                    }
820
                }
821
            }).fail(function( jqXHR, textStatus, errorThrown) {
822
                $.fn.showError(textStatus);
823
            }).always(function() {
824
                NProgress.done();
825
            });
826
            return false;
827
        },
828
        invalidHandler: function(form, validator) {
829
 
830
        }
831
    });
832
 
833
 
834
    $('.btn-last-date-of-application-edit').on("click", function(e){
835
        e.preventDefault();
836
 
837
        NProgress.start();
838
        $.ajax({
839
            'dataType'  : 'json',
840
            'accept'    : 'application/json',
841
            'method'    : 'get',
842
            'url'       : route_last_date_of_application,
843
        }).done(function(response) {
844
           if(response['success']) {
845
                $('#form-last-date-of-application #last_date_of_application').val(response['data']);
846
                validatorLastDateOfApplication.resetForm();
847
 
848
                $("#last-date-of-application-box").modal('show');
849
            } else {
850
                $.fn.showError(response['data']);
851
            }
852
        }).fail(function( jqXHR, textStatus, errorThrown) {
853
            $.fn.showError(textStatus);
854
        }).always(function() {
855
            NProgress.done();
856
        });
857
        return false;
858
 
859
    });
860
 
861
    $('.btn-last-date-of-application-close').on("click", function(e){
862
        e.preventDefault();
863
 
864
        $("#last-date-of-application-box").modal('hide');
865
        return false;
866
    });
867
 
868
 
869
    var validatorExtended = $('#form-extended').validate({
870
        debug: true,
871
        onclick: false,
872
        onkeyup: false,
873
        onfocusout: false,
874
        ignore: [],
875
        rules: {
876
            'description': {
877
                updateCkeditor:function() {
878
                        CKEDITOR.instances.description.updateElement();
879
                },
880
                required: false,
881
            },
882
        },
883
 
884
        submitHandler: function(form)
885
        {
886
            NProgress.start();
887
            $.ajax({
888
                'dataType'  : 'json',
889
                'accept'    : 'application/json',
890
                'method'    : 'post',
891
                'url'       :  route_extended,
892
                'data'      :  $('#form-extended').serialize()
893
            }).done(function(response) {
894
                if(response['success']) {
895
 
896
                    $('#overview-description').html(response['data']['description']);
897
                    $("#extended-box").modal('hide');
898
                } else {
899
                    validatorExtended.resetForm();
900
                    if(jQuery.type(response['data']) == 'string') {
901
                        $.fn.showError(response['data']);
902
                    } else  {
903
                        $.each(response['data'], function( fieldname, errors ) {
904
                            $.fn.showFormErrorValidator('#form-extended #' + fieldname, errors);
905
                        });
906
                    }
907
                }
908
            }).fail(function( jqXHR, textStatus, errorThrown) {
909
                $.fn.showError(textStatus);
910
            }).always(function() {
911
                NProgress.done();
912
            });
913
            return false;
914
        },
915
        invalidHandler: function(form, validator) {
916
 
917
        }
918
    });
919
 
920
 
921
    $('.btn-extended-edit').on("click", function(e){
922
        e.preventDefault();
923
 
924
        NProgress.start();
925
        $.ajax({
926
            'dataType'  : 'json',
927
            'accept'    : 'application/json',
928
            'method'    : 'get',
929
            'url'       : route_extended,
930
        }).done(function(response) {
931
           if(response['success']) {
932
                CKEDITOR.instances.description.setData(response['data']['description']);
933
                validatorExtended.resetForm();
934
 
935
                $("#extended-box").modal('show');
936
            } else {
937
                $.fn.showError(response['data']);
938
            }
939
        }).fail(function( jqXHR, textStatus, errorThrown) {
940
            $.fn.showError(textStatus);
941
        }).always(function() {
942
            NProgress.done();
943
        });
944
        return false;
945
 
946
    });
947
 
948
    $('.btn-extended-close').on("click", function(e){
949
        e.preventDefault();
950
 
951
        $("#extended-box").modal('hide');
952
        return false;
953
    });
954
 
955
 
956
    var validatorJobCategory = $('#form-job-category').validate({
957
        debug: true,
958
        onclick: false,
959
        onkeyup: false,
960
        ignore: [],
961
        rules: {
962
            'job-category_id': {
963
                required: false,
964
                digits: true
965
            },
966
        },
967
        submitHandler: function(form)
968
        {
969
            NProgress.start();
970
            $.ajax({
971
                'dataType'  : 'json',
972
                'accept'    : 'application/json',
973
                'method'    : 'post',
974
                'url'       :  route_job_category,
975
                'data'      :  $('#form-job-category').serialize()
976
            }).done(function(response) {
977
                if(response['success']) {
978
					$('#overview-job-category').html(response['data']);
979
                    $("#job-category-box").modal('hide');
980
                } else {
981
                    validatorJobCategory.resetForm();
982
                    if(jQuery.type(response['data']) == 'string') {
983
                        $.fn.showError(response['data']);
984
                    } else  {
985
                        $.each(response['data'], function( fieldname, errors ) {
986
                            $.fn.showFormErrorValidator('#form-job-category #' + fieldname, errors);
987
                        });
988
                    }
989
                }
990
            }).fail(function( jqXHR, textStatus, errorThrown) {
991
                $.fn.showError(textStatus);
992
            }).always(function() {
993
                NProgress.done();
994
            });
995
            return false;
996
        },
997
        invalidHandler: function(form, validator) {
998
 
999
        }
1000
    });
1001
 
1002
    $('.btn-job-category-edit').on("click", function(e){
1003
        e.preventDefault();
1004
 
1005
        NProgress.start();
1006
        $.ajax({
1007
            'dataType'  : 'json',
1008
            'accept'    : 'application/json',
1009
            'method'    : 'get',
1010
            'url'       : route_job_category,
1011
        }).done(function(response) {
1012
           if(response['success']) {
1013
                $('#form-job-category #job_category_id').val(response['data']).trigger('change');
1014
                validatorJobCategory.resetForm();
1015
                $("#job-category-box").modal('show');
1016
            } else {
1017
                $.fn.showError(response['data']);
1018
            }
1019
        }).fail(function( jqXHR, textStatus, errorThrown) {
1020
            $.fn.showError(textStatus);
1021
        }).always(function() {
1022
            NProgress.done();
1023
        });
1024
        return false;
1025
 
1026
    });
1027
 
1028
    $('.btn-job-category-close').on("click", function(e){
1029
        e.preventDefault();
1030
 
1031
        $("#job-category-box").modal('hide');
1032
        return false;
1033
    });
1034
 
1035
 
1036
 
1037
    var validatorEmploymentType = $('#form-employment-type').validate({
1038
        debug: true,
1039
        onclick: false,
1040
        onkeyup: false,
1041
        ignore: [],
1042
        rules: {
1043
            'employment_type': {
1044
                required: false,
1045
            },
1046
        },
1047
        submitHandler: function(form)
1048
        {
1049
            NProgress.start();
1050
            $.ajax({
1051
                'dataType'  : 'json',
1052
                'accept'    : 'application/json',
1053
                'method'    : 'post',
1054
                'url'       :  route_employment_type,
1055
                'data'      :  $('#form-employment-type').serialize()
1056
            }).done(function(response) {
1057
                if(response['success']) {
1058
					$('#overview-employment-type').html(response['data']);
1059
                    $("#employment-type-box").modal('hide');
1060
                } else {
1061
                    validatorEmploymentType.resetForm();
1062
                    if(jQuery.type(response['data']) == 'string') {
1063
                        $.fn.showError(response['data']);
1064
                    } else  {
1065
                        $.each(response['data'], function( fieldname, errors ) {
1066
                            $.fn.showFormErrorValidator('#form-employment-type #' + fieldname, errors);
1067
                        });
1068
                    }
1069
                }
1070
            }).fail(function( jqXHR, textStatus, errorThrown) {
1071
                $.fn.showError(textStatus);
1072
            }).always(function() {
1073
                NProgress.done();
1074
            });
1075
            return false;
1076
        },
1077
        invalidHandler: function(form, validator) {
1078
 
1079
        }
1080
    });
1081
 
1082
    $('.btn-employment-type-edit').on("click", function(e){
1083
        e.preventDefault();
1084
 
1085
        NProgress.start();
1086
        $.ajax({
1087
            'dataType'  : 'json',
1088
            'accept'    : 'application/json',
1089
            'method'    : 'get',
1090
            'url'       : route_employment_type,
1091
        }).done(function(response) {
1092
           if(response['success']) {
1093
                $('#form-employment-type #employment_type').val(response['data']).trigger('change');
1094
                validatorEmploymentType.resetForm();
1095
                $("#employment-type-box").modal('show');
1096
            } else {
1097
                $.fn.showError(response['data']);
1098
            }
1099
        }).fail(function( jqXHR, textStatus, errorThrown) {
1100
            $.fn.showError(textStatus);
1101
        }).always(function() {
1102
            NProgress.done();
1103
        });
1104
        return false;
1105
 
1106
    });
1107
 
1108
    $('.btn-employment-type-close').on("click", function(e){
1109
        e.preventDefault();
1110
 
1111
        $("#employment-type-box").modal('hide');
1112
        return false;
1113
    });
1114
 
1 www 1115
    var validatorSalary = $('#form-salary').validate({
1116
        debug: true,
1117
        onclick: false,
1118
        onkeyup: false,
1119
        ignore: [],
1120
        rules: {
1121
            'salary_visible': {
1122
                required: false,
1123
            },
1124
            'salary_min': {
1125
                required:  '#form-salary #salary_visible:checked',
1126
                number: true,
1127
                maxlength: 10,
1128
            },
1129
            'salary currency': {
1130
                required:  '#form-salary #salary_visible:checked',
1131
                maxlength: 5,
1132
            },
1133
            'salary_max': {
1134
                required:  '#form-salary #salary_visible:checked',
1135
                number: true,
1136
                maxlength: 10,
1137
                greaterThanFloat : '#form-salary #salary_min',
1138
            },
1139
        },
1140
        submitHandler: function(form)
1141
        {
1142
            NProgress.start();
1143
            $.ajax({
1144
                'dataType'  : 'json',
1145
                'accept'    : 'application/json',
1146
                'method'    : 'post',
1147
                'url'       :  route_salary,
1148
                'data'      :  $('#form-salary').serialize()
1149
            }).done(function(response) {
1150
                if(response['success']) {
1151
					$('#overview-salary').html(response['data']);
1152
                    $("#salary-box").modal('hide');
1153
                } else {
1154
                    validatorSalary.resetForm();
1155
                    if(jQuery.type(response['data']) == 'string') {
1156
                        $.fn.showError(response['data']);
1157
                    } else  {
1158
                        $.each(response['data'], function( fieldname, errors ) {
1159
                            $.fn.showFormErrorValidator('#form-salary #' + fieldname, errors);
1160
                        });
1161
                    }
1162
                }
1163
            }).fail(function( jqXHR, textStatus, errorThrown) {
1164
                $.fn.showError(textStatus);
1165
            }).always(function() {
1166
                NProgress.done();
1167
            });
1168
            return false;
1169
        },
1170
        invalidHandler: function(form, validator) {
1171
 
1172
        }
1173
    });
1174
 
1175
    $('.btn-salary-edit').on("click", function(e){
1176
        e.preventDefault();
1177
 
1178
        NProgress.start();
1179
        $.ajax({
1180
            'dataType'  : 'json',
1181
            'accept'    : 'application/json',
1182
            'method'    : 'get',
1183
            'url'       : route_salary,
1184
        }).done(function(response) {
1185
           if(response['success']) {
1186
                if(response['data']['salary_visible'] == 'y') {
1187
                    $('#form-salary #salary_visible').bootstrapToggle('on')
1188
                    $('#form-salary #salary_min').val(response['data']['salary_min']);
1189
                    $('#form-salary #salary_min').prop('readonly', false);
1190
                    $('#form-salary #salary_max').val(response['data']['salary_max']);
1191
                    $('#form-salary #salary_max').prop('readonly', false);
1192
                    $('#form-salary #salary_currency').val(response['data']['salary_currency']);
1193
                    $('#form-salary #salary_currency').prop('disable',false);
1194
                } else {
1195
                    $('#form-salary #salary_visible').bootstrapToggle('off')
1196
                    $('#form-salary #salary_min').val('1');
1197
                    $('#form-salary #salary_min').prop('readonly', true);
1198
                    $('#form-salary #salary_max').val('99');
1199
                    $('#form-salary #salary_max').prop('readonly', true);
1200
                    $('#form-salary #salary_currency').val('USD');
1201
                    $('#form-salary #salary_currency').prop('disable',true);
1202
                }
1203
                validatorSalary.resetForm();
1204
                $("#salary-box").modal('show');
1205
            } else {
1206
                $.fn.showError(response['data']);
1207
            }
1208
        }).fail(function( jqXHR, textStatus, errorThrown) {
1209
            $.fn.showError(textStatus);
1210
        }).always(function() {
1211
            NProgress.done();
1212
        });
1213
        return false;
1214
 
1215
    });
1216
 
1217
    $('.btn-salary-close').on("click", function(e){
1218
        e.preventDefault();
1219
 
1220
        $("#salary-box").modal('hide');
1221
        return false;
1222
    });
1223
 
1224
    var validatorExperience = $('#form-experience').validate({
1225
        debug: true,
1226
        onclick: false,
1227
        onkeyup: false,
1228
        ignore: [],
1229
        rules: {
1230
            'experience_visible': {
1231
                required: false,
1232
            },
1233
            'experience_min': {
1234
                required:  '#form-experience #experience_visible:checked',
1235
                digits: true,
1236
                maxlength: 2,
1237
            },
1238
            'experience_max': {
1239
                required:  '#form-experience #experience_visible:checked',
1240
                digits: true,
1241
                maxlength: 4,
1242
                greaterThan : '#form-experience #experience_min',
1243
            },
1244
        },
1245
        submitHandler: function(form)
1246
        {
1247
            NProgress.start();
1248
            $.ajax({
1249
                'dataType'  : 'json',
1250
                'accept'    : 'application/json',
1251
                'method'    : 'post',
1252
                'url'       :  route_experience,
1253
                'data'      :  $('#form-experience').serialize()
1254
            }).done(function(response) {
1255
                if(response['success']) {
1256
					$('#overview-experience').html(response['data']);
1257
                    $("#experience-box").modal('hide');
1258
                } else {
1259
                    validatorExperience.resetForm();
1260
                    if(jQuery.type(response['data']) == 'string') {
1261
                        $.fn.showError(response['data']);
1262
                    } else  {
1263
                        $.each(response['data'], function( fieldname, errors ) {
1264
                            $.fn.showFormErrorValidator('#form-experience #' + fieldname, errors);
1265
                        });
1266
                    }
1267
                }
1268
            }).fail(function( jqXHR, textStatus, errorThrown) {
1269
                $.fn.showError(textStatus);
1270
            }).always(function() {
1271
                NProgress.done();
1272
            });
1273
            return false;
1274
        },
1275
        invalidHandler: function(form, validator) {
1276
 
1277
        }
1278
    });
1279
 
1280
    $('.btn-experience-edit').on("click", function(e){
1281
        e.preventDefault();
1282
 
1283
        NProgress.start();
1284
        $.ajax({
1285
            'dataType'  : 'json',
1286
            'accept'    : 'application/json',
1287
            'method'    : 'get',
1288
            'url'       : route_experience,
1289
        }).done(function(response) {
1290
           if(response['success']) {
1291
                if(response['data']['experience_visible'] == 'y') {
1292
                    $('#form-experience #experience_visible').bootstrapToggle('on')
1293
                    $('#form-experience #experience_min').val(response['data']['experience_min']);
1294
                    $('#form-experience #experience_min').prop('readonly', false);
1295
                    $('#form-experience #experience_max').val(response['data']['experience_max']);
1296
                    $('#form-experience #experience_max').prop('readonly', false);
1297
                } else {
1298
                    $('#form-experience #experience_visible').bootstrapToggle('off')
1299
                    $('#form-experience #experience_min').val('1');
1300
                    $('#form-experience #experience_min').prop('readonly', true);
1301
                    $('#form-experience #experience_max').val('5');
1302
                    $('#form-experience #experience_max').prop('readonly', true);
1303
                }
1304
 
1305
                validatorExperience.resetForm();
1306
                $("#experience-box").modal('show');
1307
            } else {
1308
                $.fn.showError(response['data']);
1309
            }
1310
        }).fail(function( jqXHR, textStatus, errorThrown) {
1311
            $.fn.showError(textStatus);
1312
        }).always(function() {
1313
            NProgress.done();
1314
        });
1315
        return false;
1316
 
1317
    });
1318
 
1319
    $('.btn-experience-close').on("click", function(e){
1320
        e.preventDefault();
1321
 
1322
        $("#experience-box").modal('hide');
1323
        return false;
1324
    });
1325
 
1326
 
1327
    $('.btn-skills-edit').on("click", function(e){
1328
        e.preventDefault();
1329
 
1330
        NProgress.start();
1331
        $.ajax({
1332
            'dataType'  : 'json',
1333
            'accept'    : 'application/json',
1334
            'method'    : 'get',
1335
            'url'       : route_skills,
1336
        }).done(function(response) {
1337
           if(response['success']) {
1338
                $('#form-skill #skills').val(response['data']).trigger('change');
1339
                validatorSkills.resetForm();
1340
 
1341
                $('#skills-box').modal('show');
1342
            } else {
1343
                $.fn.showError(response['data']);
1344
            }
1345
        }).fail(function( jqXHR, textStatus, errorThrown) {
1346
            $.fn.showError(textStatus);
1347
        }).always(function() {
1348
            NProgress.done();
1349
        });
1350
        return false;
1351
 
1352
    });
1353
 
1354
    $('.btn-skills-close').on("click", function(e){
1355
        e.preventDefault();
1356
 
1357
        $('#skills-box').modal('hide');
1358
        return false;
1359
    });
1360
 
1361
    var validatorSkills = $('#form-skill').validate({
1362
        debug: true,
1363
        onclick: false,
1364
        onkeyup: false,
1365
         onfocusout: false,
1366
        ignore: [],
1367
        rules: {
1368
            'skills[]': {
1369
                required: true,
1370
            }
1371
        },
1372
        submitHandler: function(form)
1373
        {
1374
            NProgress.start();
1375
            $.ajax({
1376
                'dataType'  : 'json',
1377
                'accept'    : 'application/json',
1378
                'method'    : 'post',
1379
                'url'       :  route_skills,
1380
                'data'      :  {
1381
                    'skills[]' : $('#form-skill #skills').val()
1382
                },
1383
            }).done(function(response) {
1384
                if(response['success']) {
1385
 
1386
					$('#list-skills').empty();
1387
                    $.each(response['data'], function(index, item) {
1388
                        $('#list-skills').append('<li><a href="#" title="">' + item.label + '</a></li>');
1389
                    });
1390
 
1391
                    $("#skills-box").modal('hide');
1392
                } else {
1393
                    validatorSkills.resetForm();
1394
                    if(jQuery.type(response['data']) == 'string') {
1395
                        $.fn.showError(response['data']);
1396
                    } else  {
1397
                        $.each(response['data'], function( fieldname, errors ) {
1398
                            $.fn.showFormErrorValidator('#form-skill #' + fieldname, errors);
1399
                        });
1400
                    }
1401
                }
1402
            }).fail(function( jqXHR, textStatus, errorThrown) {
1403
                $.fn.showError(textStatus);
1404
            }).always(function() {
1405
                NProgress.done();
1406
            });
1407
            return false;
1408
        },
1409
        invalidHandler: function(form, validator) {
1410
 
1411
        }
1412
    });
1413
 
1414
 
1415
 
1416
    var validatorLanguages = $('#form-language').validate({
1417
        debug: true,
1418
        onclick: false,
1419
        onkeyup: false,
1420
         onfocusout: false,
1421
        ignore: [],
1422
        rules: {
1423
            'languages[]': {
1424
                required: true,
1425
            }
1426
        },
1427
        submitHandler: function(form)
1428
        {
1429
            NProgress.start();
1430
            $.ajax({
1431
                'dataType'  : 'json',
1432
                'accept'    : 'application/json',
1433
                'method'    : 'post',
1434
                'url'       :  route_languages,
1435
                'data'      :  {
1436
                    'languages[]' : $('#form-language #languages').val()
1437
                },
1438
            }).done(function(response) {
1439
                if(response['success']) {
1440
 
1441
					$('#list-languages').empty();
1442
                    $.each(response['data'], function(index, item) {
1443
                        $('#list-languages').append('<li><a href="#" title="">' + item.label + '</a></li>');
1444
                    });
1445
 
1446
                    $("#languages-box").modal('hide');
1447
                } else {
1448
                    validatorLanguages.resetForm();
1449
                    if(jQuery.type(response['data']) == 'string') {
1450
                        $.fn.showError(response['data']);
1451
                    } else  {
1452
                        $.each(response['data'], function( fieldname, errors ) {
1453
                            $.fn.showFormErrorValidator('#form-language #' + fieldname, errors);
1454
                        });
1455
                    }
1456
                }
1457
            }).fail(function( jqXHR, textStatus, errorThrown) {
1458
                $.fn.showError(textStatus);
1459
            }).always(function() {
1460
                NProgress.done();
1461
            });
1462
            return false;
1463
        },
1464
        invalidHandler: function(form, validator) {
1465
 
1466
        }
1467
    });
1468
 
7774 stevensc 1469
    $('.btn-languages-edit').on("click", function(e){
1470
        e.preventDefault();
1 www 1471
 
1472
        NProgress.start();
1473
        $.ajax({
1474
            'dataType'  : 'json',
1475
            'accept'    : 'application/json',
1476
            'method'    : 'get',
1477
            'url'       : route_languages,
1478
        }).done(function(response) {
1479
           if(response['success']) {
1480
                $('#form-language #languages').val(response['data']).trigger('change');
1481
                validatorLanguages.resetForm();
1482
 
1483
                $("#languages-box").modal('show');
1484
            } else {
1485
                $.fn.showError(response['data']);
1486
            }
1487
        }).fail(function( jqXHR, textStatus, errorThrown) {
1488
            $.fn.showError(textStatus);
1489
        }).always(function() {
1490
            NProgress.done();
1491
        });
1492
        return false;
1493
 
1494
    });
1495
 
1496
    $('.btn-languages-close').on("click", function(e){
1497
        e.preventDefault();
1498
 
1499
        $("#languages-box").modal('hide');
1500
        return false;
1501
    });
1502
 
1503
 
1504
    var validatorDegrees = $('#form-degree').validate({
1505
        debug: true,
1506
        onclick: false,
1507
        onkeyup: false,
1508
         onfocusout: false,
1509
        ignore: [],
1510
        rules: {
1511
            'degrees[]': {
1512
                required: true,
1513
            }
1514
        },
1515
        submitHandler: function(form)
1516
        {
1517
            NProgress.start();
1518
            $.ajax({
1519
                'dataType'  : 'json',
1520
                'accept'    : 'application/json',
1521
                'method'    : 'post',
1522
                'url'       :  route_degrees,
1523
                'data'      :  {
1524
                    'degrees[]' : $('#form-degree #degrees').val()
1525
                },
1526
            }).done(function(response) {
1527
                if(response['success']) {
1528
 
1529
					$('#list-degrees').empty();
1530
                    $.each(response['data'], function(index, item) {
1531
                        $('#list-degrees').append('<li><a href="#" title="">' + item.label + '</a></li>');
1532
                    });
1533
 
1534
                    $("#degrees-box").modal('hide');
1535
                } else {
1536
                    validatorDegrees.resetForm();
1537
                    if(jQuery.type(response['data']) == 'string') {
1538
                        $.fn.showError(response['data']);
1539
                    } else  {
1540
                        $.each(response['data'], function( fieldname, errors ) {
1541
                            $.fn.showFormErrorValidator('#form-degree #' + fieldname, errors);
1542
                        });
1543
                    }
1544
                }
1545
            }).fail(function( jqXHR, textStatus, errorThrown) {
1546
                $.fn.showError(textStatus);
1547
            }).always(function() {
1548
                NProgress.done();
1549
            });
1550
            return false;
1551
        },
1552
        invalidHandler: function(form, validator) {
1553
 
1554
        }
1555
    });
1556
 
1557
    $('.btn-degrees-edit').on("click", function(e){
1558
        e.preventDefault();
1559
 
1560
        NProgress.start();
1561
        $.ajax({
1562
            'dataType'  : 'json',
1563
            'accept'    : 'application/json',
1564
            'method'    : 'get',
1565
            'url'       : route_degrees,
1566
        }).done(function(response) {
1567
           if(response['success']) {
1568
                $('#form-degree #degrees').val(response['data']).trigger('change');
1569
                validatorDegrees.resetForm();
1570
 
1571
                $("#degrees-box").modal('show');
1572
            } else {
1573
                $.fn.showError(response['data']);
1574
            }
1575
        }).fail(function( jqXHR, textStatus, errorThrown) {
1576
            $.fn.showError(textStatus);
1577
        }).always(function() {
1578
            NProgress.done();
1579
        });
1580
        return false;
1581
 
1582
    });
1583
 
1584
    $('.btn-degrees-close').on("click", function(e){
1585
        e.preventDefault();
1586
 
1587
        $("#degrees-box").modal('hide');
1588
        return false;
1589
    });
1590
 
1591
 
1592
    $('#form-degree #degrees').select2({
1593
        theme: 'bootstrap4',
1594
        width: '100%',
1595
        placeholder: 'LABEL_SELECT_DEGREE'
1596
    });
1597
 
1598
    $('#form-skill #skills').select2({
1599
        theme: 'bootstrap4',
1600
        width: '100%',
1601
        placeholder: 'LABEL_SELECT_ONE_SKILLS'
1602
    });
1603
 
1604
    $('#form-language #languages').select2({
1605
        theme: 'bootstrap4',
1606
        width: '100%',
1607
        placeholder: 'LABEL_SELECT_ONE_LANGUAGE'
1608
    });
1609
 
1610
 
1611
 
1612
    $('#form-last-date-of-application #last_date_of_application').datetimepicker({
1613
        locale: 'es',
1614
        format: 'DD/MM/YYYY'
1615
    });
1616
 
1617
    $('#form-salary #salary_visible').bootstrapToggle({'on' : 'LABEL_SHOW',  'off' : 'LABEL_NO_SHOW', 'width' : '160px', 'height' : '40px'});
1618
    $('#form-salary #salary_min').inputNumberFormat({ 'decimal': 2 });
1619
    $('#form-salary #salary_max').inputNumberFormat({ 'decimal': 2 });
1620
 
1621
    $('#form-salary #salary_visible').change(function(e) {
1622
        e.preventDefault();
1623
 
1624
        if($(this).prop('checked')) {
1625
            $('#form-salary #salary_min').prop('readonly', false);
1626
            $('#form-salary #salary_max').prop('readonly', false);
1627
            $('#form-salary #salary_currency').prop('disabled', false);
1628
        } else {
1629
            $('#form-salary #salary_min').val('1');
1630
            $('#form-salary #salary_max').val('99');
1631
            $('#form-salary #salary_min').prop('readonly', true);
1632
            $('#form-salary #salary_max').prop('readonly', true);
1633
            $('#form-salary #salary_currency').prop('disabled', true);
1634
        }
1635
    });
1636
 
1637
    $('#form-experience #experience_visible').bootstrapToggle({'on' : 'LABEL_SHOW',  'off' : 'LABEL_NO_SHOW', 'width' : '160px', 'height' : '40px'});
1638
    $('#form-experience #experience_min').inputNumberFormat({ 'decimal': 0 });
1639
    $('#form-experience #experience_max').inputNumberFormat({ 'decimal': 0 });
1640
 
1641
    $('#form-experience #experience_visible').change(function(e) {
1642
        e.preventDefault();
1643
 
1644
        if($(this).prop('checked')) {
1645
            $('#form-experience #experience_min').prop('readonly', false);
1646
            $('#form-experience #experience_max').prop('readonly', false);
1647
        } else {
1648
            $('#form-experience #experience_min').val('1');
1649
            $('#form-experience #experience_max').val('5');
1650
            $('#form-experience #experience_min').prop('readonly', true);
1651
            $('#form-experience #experience_max').prop('readonly', true);
1652
       }
1653
    });
8197 stevensc 1654
 
1655
 
1656
    var validatorStatus = $('#form-status').validate({
1657
        debug: true,
1658
        onclick: false,
1659
        onkeyup: false,
1660
        ignore: [],
1661
        rules: {
1662
            'status': {
1663
                required: false,
1664
            },
1665
        },
1666
        submitHandler: function(form)
1667
        {
1668
            NProgress.start();
1669
            $.ajax({
1670
                'dataType'  : 'json',
1671
                'accept'    : 'application/json',
1672
                'method'    : 'post',
1673
                'url'       :  route_status,
1674
                'data'      :  $('#form-status').serialize()
1675
            }).done(function(response) {
1676
                if(response['success']) {
1677
					$('#overview-status').html(response['data']['status']);
1678
                    $("#status-box").modal('hide');
1679
                } else {
1680
                    validatorStatus.resetForm();
1681
                    if(jQuery.type(response['data']) == 'string') {
1682
                        $.fn.showError(response['data']);
1683
                    } else  {
1684
                        $.each(response['data'], function( fieldname, errors ) {
1685
                            $.fn.showFormErrorValidator('#form-status #' + fieldname, errors);
1686
                        });
1687
                    }
1688
                }
1689
            }).fail(function( jqXHR, textStatus, errorThrown) {
1690
                $.fn.showError(textStatus);
1691
            }).always(function() {
1692
                NProgress.done();
1693
            });
1694
            return false;
1695
        },
1696
        invalidHandler: function(form, validator) {
1697
 
1698
        }
1699
    });
1 www 1700
 
8197 stevensc 1701
    $('.btn-status-edit').on("click", function(e){
1702
        e.preventDefault();
1703
 
1704
        NProgress.start();
1705
        $.ajax({
1706
            'dataType'  : 'json',
1707
            'accept'    : 'application/json',
1708
            'method'    : 'get',
1709
            'url'       : route_status,
1710
        }).done(function(response) {
1711
           if(response['success']) {
1712
                $('#form-status #status').val(response['data']['status']);
1713
                validatorStatus.resetForm();
1714
                $("#status-box").modal('show');
1715
            } else {
1716
                $.fn.showError(response['data']);
1717
            }
1718
        }).fail(function( jqXHR, textStatus, errorThrown) {
1719
            $.fn.showError(textStatus);
1720
        }).always(function() {
1721
            NProgress.done();
1722
        });
1723
        return false;
1724
 
1725
    });
1 www 1726
 
8197 stevensc 1727
    $('.btn-status-close').on("click", function(e){
1728
        e.preventDefault();
1729
 
1730
        $("#status-box").modal('hide');
1731
        return false;
1732
    });
1733
 
1734
 
1735
    var validatorTitle = $('#form-title').validate({
1736
        debug: true,
1737
        onclick: false,
1738
        onkeyup: false,
1739
        ignore: [],
1740
        rules: {
1741
            'title': {
1742
                required: true,
1743
                maxlength: 128,
1744
            },
1745
        },
1746
        submitHandler: function(form)
1747
        {
1748
            NProgress.start();
1749
            $.ajax({
1750
                'dataType'  : 'json',
1751
                'accept'    : 'application/json',
1752
                'method'    : 'post',
1753
                'url'       :  route_title,
1754
                'data'      :  $('#form-title').serialize()
1755
            }).done(function(response) {
1756
                if(response['success']) {
1757
					$('#overview-title').html(response['data']['title']);
1758
                    $("#title-box").modal('hide');
1759
                } else {
1760
                    validatorTitle.resetForm();
1761
                    if(jQuery.type(response['data']) == 'string') {
1762
                        $.fn.showError(response['data']);
1763
                    } else  {
1764
                        $.each(response['data'], function( fieldname, errors ) {
1765
                            $.fn.showFormErrorValidator('#form-title #' + fieldname, errors);
1766
                        });
1767
                    }
1768
                }
1769
            }).fail(function( jqXHR, textTitle, errorThrown) {
1770
                $.fn.showError(textTitle);
1771
            }).always(function() {
1772
                NProgress.done();
1773
            });
1774
            return false;
1775
        },
1776
        invalidHandler: function(form, validator) {
1777
 
1778
        }
1779
    });
1780
 
1781
    $('.btn-title-edit').on("click", function(e){
1782
        e.preventDefault();
1783
 
1784
        NProgress.start();
1785
        $.ajax({
1786
            'dataType'  : 'json',
1787
            'accept'    : 'application/json',
1788
            'method'    : 'get',
1789
            'url'       : route_title,
1790
        }).done(function(response) {
1791
           if(response['success']) {
1792
                $('#form-title #title').val(response['data']['title'] );
1793
                validatorTitle.resetForm();
1794
                $("#title-box").modal('show');
1795
            } else {
1796
                $.fn.showError(response['data']);
1797
            }
1798
        }).fail(function( jqXHR, textTitle, errorThrown) {
1799
            $.fn.showError(textTitle);
1800
        }).always(function() {
1801
            NProgress.done();
1802
        });
1803
        return false;
1804
 
1805
    });
1806
 
1807
    $('.btn-title-close').on("click", function(e){
1808
        e.preventDefault();
1809
 
1810
        $("#title-box").modal('hide');
1811
        return false;
1812
    });
1813
 
1814
    $('h1.btn-edit-back').on("click", function(e){
1815
        e.preventDefault();
1816
 
1817
 
1818
 
1819
        $('#divEdit').hide();
1820
        $('#divListing').show();
1821
        return false;
1822
    });
1823
 
1824
 
1825
    CKEDITOR.replace('description', {
1826
        toolbar: [
1827
            { name: 'editing', items: [ 'Scayt' ] },
1828
            { name: 'links', items: [ 'Link', 'Unlink'] },
1829
            { name: 'paragraph', items: [ 'NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', 'Blockquote' ] },
1830
            { name: 'basicstyles', items: [ 'Bold', 'Italic', 'Strike', 'RemoveFormat' ] },
1831
            '/',
1832
            { name: 'insert', items: [ 'Image', 'Table', 'HorizontalRule', 'SpecialChar' ] },
1833
            { name: 'styles', items: [ 'Styles', 'Format' ] },
1834
            { name: 'tools', items: [ 'Maximize' ] }
1835
        ],
1836
        removePlugins: 'elementspath,Anchor',
1837
        height: 100
1838
    });
1839
 
1840
    autocompleteLocation.addListener('place_changed', $.fn.fillInAddressLocation);
1841
    autocompleteLocationNew.addListener('place_changed', $.fn.fillInAddressNewLocation);
1 www 1842
JS;
1843
$this->inlineScript()->captureEnd();
8141 stevensc 1844
 
1845
$js = <<<JS
1846
const linksVars = {
1847
    link_add:"$routeAdd",
1848
    link_table: "$routeDatatable",
1849
    allowAdd: "$allowAdd",
1850
    allowDelete: "$allowDelete",
1851
    allowEdit: "$allowEdit",
1852
    allowUsersWhoApplied: "$allowUsersWhoApplied",
1853
    googleApi: "$google_map_key"
1854
}
1855
JS;
1856
 
1857
$this->inlineScript()->appendScript($js);
1858
$this->headLink()->appendStylesheet('/react-bundles/jobs/main.css');
1859
$this->inlineScript()->appendFile('/react-bundles/jobs/jobsBundle.js');
1 www 1860
?>
3766 stevensc 1861
 
1 www 1862
<!-- Content Header (Page header) -->
8141 stevensc 1863
<div id="jobs"></div>
1 www 1864
 
8156 stevensc 1865
<section class="content">
1866
        <div class="container-fluid">
1867
            <div class="row">
1868
                <div class="col-lg-3">
1869
                </div>
1870
                <div class="col-lg-6">
1871
                    <div class="main-ws-sec">
1872
                        <!--user-profile-ov end-->
1873
                        <div class="user-profile-ov">
1874
                            <h3>
1875
                                LABEL_EXPERIENCE
1876
                                <a href="#" title="" class="btn-experience-edit"><i class="fa fa-pencil"></i></a>
1877
                            </h3>
1878
                            <span id="overview-experience"> </span>
1879
                        </div>
1880
                        <!--user-profile-ov end-->
1881
                        <div class="user-profile-ov">
1882
                            <h3>
1883
                                LABEL_SALARY
1884
                                <a href="#" title="" class="btn-salary-edit"><i class="fa fa-pencil"></i></a>
1885
                            </h3>
1886
                            <span id="overview-salary"></span>
1887
                        </div>
1888
                        <!--user-profile-ov end-->
1889
                        <div class="user-profile-ov">
1890
                            <h3>
1891
                                LABEL_CATEGORIE
1892
                                <a href="#" title="" class="btn-job-category-edit"><i class="fa fa-pencil"></i></a>
1893
                            </h3>
1894
                            <span id="overview-job-category"></span>
1895
                        </div>
1896
                        <!--user-profile-ov end-->
1897
                        <div class="user-profile-ov">
1898
                            <h3>
1899
                                LABEL_SKILLS <a href="#" title="" class="btn-skills-edit"> <i class="fa fa-pencil"></i></a>
1900
                            </h3>
1901
                            <ul id="list-skills">
1902
                            </ul>
1903
                        </div>
1904
                        <!--user-profile-ov end -->
1905
                        <div class="user-profile-ov">
1906
                            <h3>
1907
                                LABEL_DEGREES <a href="#" title="" class="btn-degrees-edit"> <i class="fa fa-pencil"></i></a>
1908
                            </h3>
1909
                            <ul id="list-degrees">
1910
                            </ul>
1911
                        </div>
1912
                    </div>
1913
                </div>
1914
                <div class="col-lg-3">
1915
                </div>
1916
            </div>
1917
        </div>
1918
    </section>
1919
</div>
3766 stevensc 1920
 
1 www 1921
<div class="modal" tabindex="-1" role="dialog" id="add-job-box">
3766 stevensc 1922
    <div class="modal-dialog" role="document">
1923
        <?php
1924
        $form = $this->formAdd;
1925
        $form->setAttributes([
1926
            'method'    => 'post',
1927
            'name'      => 'form-add',
1928
            'id'        => 'form-add'
1929
        ]);
1930
        $form->prepare();
1931
        echo $this->form()->openTag($form);
1932
 
1933
        $fieldnames = [
1934
            'formatted_address',
1935
            'address1',
1936
            'address2',
1937
            'country',
1938
            'state',
1939
            'city1',
1940
            'city2',
1941
            'postal_code',
1942
            'latitude',
1943
            'longitude',
1944
        ];
1945
 
1946
        foreach ($fieldnames as $fieldname) {
1947
 
1948
            $element = $form->get($fieldname);
1949
            echo $this->formHidden($element);
1950
        }
1951
        ?>
1952
        <div class="modal-content">
1953
            <div class="modal-header">
1954
                <h3 class="modal-title">LABEL_NEW_JOB</h3>
1955
            </div>
1956
            <div class="modal-body">
1957
                <div class="form-group">
1958
                    <?php
1959
                    $element = $form->get('title');
1960
                    $element->setOptions(['label' => 'LABEL_TITLE']);
1961
                    $element->setAttributes(['class' => 'form-control']);
1962
                    echo $this->formLabel($element);
1963
                    echo $this->formText($element);
1 www 1964
                    ?>
3766 stevensc 1965
                </div>
1966
                <div class="form-group">
1967
                    <?php
1968
                    $element = $form->get('employment_type');
1969
                    $element->setAttributes(['class' => 'form-control']);
1970
                    $element->setOptions(['empty_option' => 'LABEL_SELECT_EMPLOYMENT_TYPE', 'label' => 'LABEL_EMPLOYMENT_TYPE']);
1971
                    echo $this->formLabel($element);
1972
                    echo $this->formSelect($element);
1 www 1973
                    ?>
3766 stevensc 1974
                </div>
1975
                <div class="form-group">
1976
                    <?php
1977
                    $element = $form->get('last_date_of_application');
1978
                    $element->setAttributes(['class' => 'form-control']);
1979
                    $element->setOptions(['label' => 'LABEL_LAST_DATE_OF_APPLICATION']);
1980
                    echo $this->formLabel($element);
1981
                    echo $this->formText($element);
1 www 1982
                    ?>
3766 stevensc 1983
                </div>
1984
 
1985
                <div class="form-group">
1986
                    <?php
1987
                    $element = $form->get('job_category_id');
1988
                    $element->setOptions(['empty_option' => 'LABEL_SELECT_JOB_CATEGORY', 'label' => 'LABEL_JOB_CATEGORY']);
1989
                    $element->setAttributes(['class' => 'form-control']);
1990
                    echo $this->formLabel($element);
1991
                    echo $this->formSelect($element);
1 www 1992
                    ?>
3766 stevensc 1993
                </div>
1994
                <div class="form-group">
1995
                    <?php
1996
                    $element = $form->get('location_search');
1997
                    $element->setAttributes(['name' => 'add_location_search',  'id' => 'add_location_search', 'class' => 'form-control']);
1998
                    $element->setOptions(['label' => 'LABEL_LOCATION']);
1999
                    echo $this->formLabel($element);
2000
                    echo $this->formText($element);
1 www 2001
                    ?>
3766 stevensc 2002
                </div>
2003
            </div>
2004
 
2005
            <div class="modal-footer">
2006
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
2007
                <button type="button" class="btn btn-default btn-add-job-cancel">LABEL_CANCEL</button>
2008
            </div>
2009
            <?php echo $this->form()->closeTag($form); ?>
2010
        </div>
2011
    </div>
1 www 2012
</div>
3766 stevensc 2013
 
1 www 2014
<div class="modal" tabindex="-1" role="dialog" id="job-category-box">
3766 stevensc 2015
    <div class="modal-dialog" role="document">
2016
        <?php
1 www 2017
        $form = $this->formJobCategory;
2018
        $form->setAttributes([
2019
            'method' => 'post',
2020
            'name' => 'form-job-category',
2021
            'id' => 'form-job-category'
2022
        ]);
2023
        $form->prepare();
2024
        echo $this->form()->openTag($form);
3766 stevensc 2025
        ?>
2026
        <div class="modal-content">
2027
            <div class="modal-header">
2028
                <h3 class="modal-title">LABEL_JOB_CATEGORY</h3>
2029
            </div>
2030
            <div class="modal-body">
1 www 2031
                <div class="form-group">
3766 stevensc 2032
                    <?php
2033
                    $element = $form->get('job_category_id');
2034
                    $element->setOptions(['label' => 'LABEL_JOB_CATEGORY']);
2035
                    $element->setAttributes(['class' => 'form-control']);
2036
                    echo $this->formLabel($element);
2037
                    echo $this->formSelect($element);
2038
                    ?>
1 www 2039
                </div>
3766 stevensc 2040
            </div>
2041
            <div class="modal-footer">
2042
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
2043
                <button type="button" class="btn btn-default btn-job-category-close">LABEL_CANCEL</button>
2044
            </div>
2045
            <?php echo $this->form()->closeTag($form); ?>
2046
        </div>
2047
    </div>
2048
</div>
1 www 2049
 
2050
<div class="modal" tabindex="-1" role="dialog" id="salary-box">
3766 stevensc 2051
    <div class="modal-dialog" role="document">
2052
        <?php
1 www 2053
        $form = $this->formSalary;
2054
        $form->setAttributes([
2055
            'method' => 'post',
2056
            'name' => 'form-salary',
2057
            'id' => 'form-salary'
2058
        ]);
2059
        $form->prepare();
2060
        echo $this->form()->openTag($form);
3766 stevensc 2061
        ?>
2062
        <div class="modal-content">
2063
            <div class="modal-header">
2064
                <h3 class="modal-title">LABEL_SALARY</h3>
2065
            </div>
2066
            <div class="modal-body">
1 www 2067
                <div class="form-group">
3766 stevensc 2068
                    <?php
2069
                    $element = $form->get('salary_visible');
2070
                    echo $this->formCheckbox($element);
2071
                    ?>
1 www 2072
                </div>
2073
                <div class="form-group">
3766 stevensc 2074
                    <?php
2075
                    $element = $form->get('salary_currency');
2076
                    $element->setAttributes(['class' => 'form-control']);
2077
                    $element->setOptions(['label' => 'LABEL_CURRENCY']);
2078
                    echo $this->formLabel($element);
2079
                    echo $this->formSelect($element);
2080
                    ?>
1 www 2081
                </div>
3766 stevensc 2082
                <div class="form-group">
2083
                    <?php
2084
                    $element = $form->get('salary_min');
2085
                    $element->setOptions(['label' => 'LABEL_MINIMUM']);
2086
                    $element->setAttributes(['class' => 'form-control']);
2087
                    echo $this->formLabel($element);
2088
                    echo $this->formText($element);
2089
                    ?>
1 www 2090
                </div>
2091
                <div class="form-group">
3766 stevensc 2092
                    <?php
2093
                    $element = $form->get('salary_max');
2094
                    $element->setOptions(['label' => 'LABEL_MAXIMUM']);
2095
                    $element->setAttributes(['class' => 'form-control']);
2096
                    echo $this->formLabel($element);
2097
                    echo $this->formText($element);
2098
                    ?>
1 www 2099
                </div>
3766 stevensc 2100
            </div>
2101
            <div class="modal-footer">
2102
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
2103
                <button type="button" class="btn btn-default btn-salary-close">LABEL_CANCEL</button>
2104
            </div>
2105
            <?php echo $this->form()->closeTag($form); ?>
2106
        </div>
2107
    </div>
2108
</div>
1 www 2109
 
2110
<div class="modal" tabindex="-1" role="dialog" id="experience-box">
3766 stevensc 2111
    <div class="modal-dialog" role="document">
2112
        <?php
1 www 2113
        $form = $this->formExperience;
2114
        $form->setAttributes([
2115
            'method' => 'post',
2116
            'name' => 'form-experience',
2117
            'id' => 'form-experience'
2118
        ]);
2119
        $form->prepare();
2120
        echo $this->form()->openTag($form);
3766 stevensc 2121
        ?>
2122
        <div class="modal-content">
2123
            <div class="modal-header">
2124
                <h3 class="modal-title">LABEL_EXPERIENCE</h3>
2125
            </div>
2126
            <div class="modal-body">
1 www 2127
                <div class="form-group">
3766 stevensc 2128
                    <?php
2129
                    $element = $form->get('experience_visible');
2130
 
2131
                    echo $this->formCheckbox($element);
2132
                    ?>
1 www 2133
                </div>
3766 stevensc 2134
                <div class="form-group">
2135
                    <?php
2136
                    $element = $form->get('experience_min');
2137
                    $element->setOptions(['label' => 'LABEL_MINIMUM']);
2138
                    $element->setAttributes(['class' => 'form-control']);
2139
                    echo $this->formLabel($element);
2140
                    echo $this->formText($element);
2141
                    ?>
1 www 2142
                </div>
2143
                <div class="form-group">
3766 stevensc 2144
                    <?php
2145
                    $element = $form->get('experience_max');
2146
                    $element->setOptions(['label' => 'LABEL_MAXIMUM']);
2147
                    $element->setAttributes(['class' => 'form-control']);
2148
                    echo $this->formLabel($element);
2149
                    echo $this->formText($element);
2150
                    ?>
1 www 2151
                </div>
3766 stevensc 2152
            </div>
2153
            <div class="modal-footer">
2154
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
2155
                <button type="button" class="btn btn-default btn-experience-close">LABEL_CANCEL</button>
2156
            </div>
2157
            <?php echo $this->form()->closeTag($form); ?>
2158
        </div>
2159
    </div>
2160
</div>
1 www 2161
 
2162
<div class="modal" tabindex="-1" role="dialog" id="skills-box">
3766 stevensc 2163
    <div class="modal-dialog" role="document">
2164
        <?php
2165
        $form = $this->formSkill;
2166
        $form->setAttributes([
2167
            'method' => 'post',
2168
            'name' => 'form-skill',
2169
            'id' => 'form-skill'
2170
        ]);
2171
        $form->prepare();
2172
        echo $this->form()->openTag($form);
2173
        ?>
2174
        <div class="modal-content">
2175
            <div class="modal-header">
2176
                <h3 class="modal-title">LABEL_SKILLS</h3>
2177
            </div>
2178
            <div class="modal-body">
1 www 2179
                <div class="form-group">
3766 stevensc 2180
                    <?php
1 www 2181
                    $element = $form->get('skills');
2182
                    $element->setOptions(['label' => 'LABEL_SKILLS']);
2183
                    $element->setAttributes(['class' => 'form-control']);
2184
                    echo $this->formLabel($element);
2185
                    echo $this->formSelect($element);
3766 stevensc 2186
                    ?>
1 www 2187
                </div>
3766 stevensc 2188
            </div>
2189
 
2190
 
2191
            <div class="modal-footer">
2192
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
2193
                <button type="button" class="btn btn-default btn-skills-close">LABEL_CANCEL</button>
2194
            </div>
2195
            <?php echo $this->form()->closeTag($form); ?>
2196
        </div>
2197
    </div>
1 www 2198
</div>
2199
 
2200
<div class="modal" tabindex="-1" role="dialog" id="degrees-box">
3766 stevensc 2201
    <div class="modal-dialog" role="document">
2202
        <?php
1 www 2203
        $form = $this->formDegree;
2204
        $form->setAttributes([
2205
            'method' => 'post',
2206
            'name' => 'form-degree',
2207
            'id' => 'form-degree'
2208
        ]);
2209
        $form->prepare();
2210
        echo $this->form()->openTag($form);
3766 stevensc 2211
        ?>
2212
        <div class="modal-content">
2213
            <div class="modal-header">
2214
                <h3 class="modal-title">LABEL_DEGREES</h3>
2215
            </div>
2216
            <div class="modal-body">
1 www 2217
                <div class="form-group">
3766 stevensc 2218
                    <?php
1 www 2219
                    $element = $form->get('degrees');
2220
                    $element->setOptions(['label' => 'LABEL_DEGREES']);
2221
                    $element->setAttributes(['class' => 'form-control']);
2222
                    echo $this->formLabel($element);
2223
                    echo $this->formSelect($element);
3766 stevensc 2224
                    ?>
1 www 2225
                </div>
3766 stevensc 2226
            </div>
2227
            <div class="modal-footer">
2228
                <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
2229
                <button type="button" class="btn btn-default btn-degrees-close">LABEL_CANCEL</button>
2230
            </div>
2231
            <?php echo $this->form()->closeTag($form); ?>
2232
        </div>
2233
    </div>
1 www 2234
</div>