@ -9,6 +9,7 @@ var STUB_IMAGE_URL = '/static/img/profile.jpg'
// Plugins init --------------------------------------------
// Plugins init --------------------------------------------
$ ( '.datepicker' ) . datepicker ( )
$ ( '.datepicker' ) . datepicker ( )
$ ( '[data-tooltip]' ) . tooltip ( {
$ ( '[data-tooltip]' ) . tooltip ( {
@ -25,6 +26,7 @@ $('[data-tooltip]').tooltip({
// Specialization select -----------------------------------
// Specialization select -----------------------------------
; ( function ( ) {
var specSelectOptions = {
var specSelectOptions = {
language : 'ru' ,
language : 'ru' ,
//minimumInputLength: 1, // Commented out to immediately load remote data
//minimumInputLength: 1, // Commented out to immediately load remote data
@ -32,7 +34,7 @@ var specSelectOptions = {
allowClear : true ,
allowClear : true ,
ajax : {
ajax : {
url : '/api/specializations/' ,
url : null ,
dataType : 'json' ,
dataType : 'json' ,
quietMillis : 250 ,
quietMillis : 250 ,
cache : true ,
cache : true ,
@ -58,21 +60,12 @@ var specSelectOptions = {
}
}
} ,
} ,
} ,
} ,
initSelection : function ( element , callback ) {
var id = $ ( element ) . val ( )
if ( id !== '' ) {
$ . ajax ( { url : '/api/specializations/' + id + '/' , method : 'GET' , dataType : 'json' } )
. then ( function ( data ) { callback ( data ) } )
}
}
}
}
$ ( '.-spec-select-container' ) . each ( function ( i , container ) {
$ ( '.-spec-select-container' ) . each ( function ( i , container ) {
var $container = $ ( container )
var $container = $ ( container )
var $specSelects = $ ( container ) . find ( '.-spec-select' )
var $specSelects = $container . find ( '.-spec-select' )
var $chosenSpecId = $container . find ( '.-chosen-spec-id' ) . first ( )
var $chosenSpecId = $container . find ( '.-chosen-spec-id' ) . first ( )
var $specSelect1 = $container . find ( '.-spec-select-level-1' ) . first ( )
var $specSelect1 = $container . find ( '.-spec-select-level-1' ) . first ( )
@ -82,8 +75,7 @@ $('.-spec-select-container').each(function(i, container) {
var specSelects = [ $specSelect1 , $specSelect2 , $specSelect3 , $specSelect4 ]
var specSelects = [ $specSelect1 , $specSelect2 , $specSelect3 , $specSelect4 ]
reinitSpecializationsByWorkType ( $specSelects , null )
$specSelects . select2 ( specSelectOptions )
var chosenSpecId = $chosenSpecId . val ( )
var chosenSpecId = $chosenSpecId . val ( )
@ -97,12 +89,17 @@ $('.-spec-select-container').each(function(i, container) {
} )
} )
function reinitSpecializationsByWorkType ( $specSelects , workTypeId ) {
$ . get ( '/api/specializations/?parent__name=_root' )
. then ( function ( res ) {
var rootSpecs = res . results
var rootSpec = workTypeId == null ? rootSpecs [ 0 ] : ( { 1 : rootSpecs [ 0 ] , 2 : rootSpecs [ 1 ] , 3 : rootSpecs [ 2 ] } ) [ workTypeId ]
$specSelects . select2 ( _ . merge ( specSelectOptions , {
ajax : { url : format ( '/api/specializations/?lft__gte=%s&rght__lte=%s' , rootSpec . lft , rootSpec . rght ) } ,
} ) )
} )
}
function updateSpecializationWidgets ( specId , $container , $chosenSpecId , specSelects ) {
function updateSpecializationWidgets ( specId , $container , $chosenSpecId , specSelects ) {
@ -122,6 +119,9 @@ function updateSpecializationWidgets(specId, $container, $chosenSpecId, specSele
}
}
window . reinitSpecializationsByWorkType = reinitSpecializationsByWorkType
} ( ) )
@ -134,10 +134,20 @@ function updateSpecializationWidgets(specId, $container, $chosenSpecId, specSele
// Specialization select (simple) -------------------------------
// Specialization select (simple) -------------------------------
; ( function ( ) {
var simpleSpecSelectsOptions = {
var simpleSpecSelectsOptions = {
language : 'ru' ,
language : 'ru' ,
placeholder : 'Выберите специализацию' , // Required by `allowClear`
placeholder : 'Выберите специализацию' , // Required by `allowClear`
allowClear : true ,
allowClear : true ,
//initSelection: function(element, callback) {
// var id = $(element).val()
//
// if (id !== '') {
// $.ajax({url: '/api/specializations/' + id + '/', method: 'GET', dataType: 'json'})
// .then(function(data) {callback(data)})
// }
//}
}
}
var $simpleSpecContainer = $ ( '#simpleSpecContainer' )
var $simpleSpecContainer = $ ( '#simpleSpecContainer' )
@ -194,7 +204,7 @@ function initSimpleSpecSelect2($select, specId) {
}
}
} )
} )
}
}
} ( ) )
@ -208,6 +218,7 @@ function initSimpleSpecSelect2($select, specId) {
// Team invitation contractor select -------------------------------
// Team invitation contractor select -------------------------------
; ( function ( ) {
var contractorSelectOptions = {
var contractorSelectOptions = {
language : 'ru' ,
language : 'ru' ,
placeholder : 'Выберите пользователя' , // Required by `allowClear`
placeholder : 'Выберите пользователя' , // Required by `allowClear`
@ -248,6 +259,8 @@ function initContractorSelect($select, excludeIds) {
return $select . select2 ( contractorSelectOptions )
return $select . select2 ( contractorSelectOptions )
}
}
window . initContractorSelect = initContractorSelect
} ( ) )
@ -303,6 +316,7 @@ function initContractorSelect($select, excludeIds) {
// Location select ----------------------------------------------
// Location select ----------------------------------------------
; ( function ( ) {
var $locationSelects = $ ( '.-location-select' )
var $locationSelects = $ ( '.-location-select' )
var locationSelectOptions = {
var locationSelectOptions = {
@ -388,7 +402,7 @@ function loadRealtyDetails(realtyId) {
} )
} )
. then ( function ( res ) { return res } )
. then ( function ( res ) { return res } )
}
}
} ( ) )
@ -404,7 +418,7 @@ function loadRealtyDetails(realtyId) {
// TODO: Add file number and overall size limit support
// TODO: Add file number and overall size limit support
; ( function ( ) {
var $fileUploadContainer = $ ( '#fileUploadContainer' )
var $fileUploadContainer = $ ( '#fileUploadContainer' )
$ ( '#fileUploadAddBtn' ) . on ( 'click' , function ( $evt ) {
$ ( '#fileUploadAddBtn' ) . on ( 'click' , function ( $evt ) {
@ -440,7 +454,7 @@ $fileUploadContainer.on('click', '.existing-file-remove-btn', function($evt) {
var $btn = $ ( this )
var $btn = $ ( this )
$btn . closest ( '.existing-file-widget' ) . remove ( )
$btn . closest ( '.existing-file-widget' ) . remove ( )
} )
} )
} ( ) )