|
|
|
|
@ -74,7 +74,7 @@ $('[data-tooltip]').tooltip({ |
|
|
|
|
var $specSelect4 = $container.find('.-spec-select-level-4').first() |
|
|
|
|
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4] |
|
|
|
|
|
|
|
|
|
reinitSpecializationsByWorkType($specSelects, null) |
|
|
|
|
reinitSpecializationsByWorkType($specSelect1, null, $container) |
|
|
|
|
|
|
|
|
|
var chosenSpecId = $chosenSpecId.val() |
|
|
|
|
|
|
|
|
|
@ -88,20 +88,29 @@ $('[data-tooltip]').tooltip({ |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function reinitSpecializationsByWorkType($specSelects, workTypeId) { |
|
|
|
|
function reinitSpecializationsByWorkType($specSelect1, workTypeId, $container) { |
|
|
|
|
var $chosenSpecId = $container.find('.-chosen-spec-id').first() |
|
|
|
|
|
|
|
|
|
var $specSelect2 = $container.find('.-spec-select-level-2').first() |
|
|
|
|
var $specSelect3 = $container.find('.-spec-select-level-3').first() |
|
|
|
|
var $specSelect4 = $container.find('.-spec-select-level-4').first() |
|
|
|
|
var specSelects = [$specSelect1, $specSelect2, $specSelect3, $specSelect4] |
|
|
|
|
|
|
|
|
|
$.get('/api/specializations/?parent__name=_root') |
|
|
|
|
.then(function(res) { |
|
|
|
|
var rootSpecs = res.results |
|
|
|
|
|
|
|
|
|
if (workTypeId == null) { |
|
|
|
|
var url = '/api/specializations/' |
|
|
|
|
var specId = null |
|
|
|
|
} else { |
|
|
|
|
var rootSpec = ({1: rootSpecs[0], 2: rootSpecs[1], 3: rootSpecs[2]})[workTypeId] |
|
|
|
|
var specId = rootSpec.id |
|
|
|
|
var url = format('/api/specializations/?lft__gte=%s&rght__lte=%s', rootSpec.lft, rootSpec.rght) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
specSelectOptions.ajax.url = url |
|
|
|
|
$specSelects.select2(specSelectOptions) |
|
|
|
|
$specSelect1.select2(_.merge(specSelectOptions, {ajax: {url: url}})) |
|
|
|
|
updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -110,6 +119,12 @@ $('[data-tooltip]').tooltip({ |
|
|
|
|
|
|
|
|
|
function updateSpecializationWidgets(specId, $container, $chosenSpecId, specSelects) { |
|
|
|
|
return getSpecializationTree(specId).then(function(specs) { |
|
|
|
|
var spec = specs.spec |
|
|
|
|
|
|
|
|
|
specSelects[1].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel2}})) |
|
|
|
|
specSelects[2].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel3}})) |
|
|
|
|
specSelects[3].select2(_.merge(specSelectOptions, {ajax: {url: specs.urlLevel4}})) |
|
|
|
|
|
|
|
|
|
var specLevel1 = specs.specLevel1 |
|
|
|
|
var specLevel2 = specs.specLevel2 |
|
|
|
|
var specLevel3 = specs.specLevel3 |
|
|
|
|
@ -121,10 +136,19 @@ $('[data-tooltip]').tooltip({ |
|
|
|
|
specSelects[3].select2('data', specLevel4 ? {id: specLevel4.id, text: specLevel4.name, origItem: specLevel4} : null) |
|
|
|
|
|
|
|
|
|
$chosenSpecId.val(specId) |
|
|
|
|
|
|
|
|
|
specSelects[1].select2('container').css('display', !specLevel1 || _.isEmpty(specLevel1.children) ? 'none' : 'block') |
|
|
|
|
specSelects[2].select2('container').css('display', !specLevel2 || _.isEmpty(specLevel2.children) ? 'none' : 'block') |
|
|
|
|
specSelects[3].select2('container').css('display', !specLevel3 || _.isEmpty(specLevel3.children) ? 'none' : 'block') |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
window.updateSpecializationWidgets = updateSpecializationWidgets |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//function repopulateSpecializations() {
|
|
|
|
|
//
|
|
|
|
|
//}
|
|
|
|
|
}()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -676,7 +700,9 @@ function loadAllPhotos(portfIds) { |
|
|
|
|
|
|
|
|
|
function getSpecializationTree(specId) { |
|
|
|
|
var specs = { |
|
|
|
|
spec: null, |
|
|
|
|
specLevel1: null, specLevel2: null, specLevel3: null, specLevel4: null, |
|
|
|
|
urlLevel2: null, urlLevel3: null, urlLevel4: null, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (specId === null) { |
|
|
|
|
@ -685,7 +711,11 @@ function getSpecializationTree(specId) { |
|
|
|
|
return $.ajax({url: '/api/specializations/' + specId + '/', method: 'GET', dataType: 'json'}) |
|
|
|
|
.then(function(spec) { |
|
|
|
|
if (spec.level === 1) { |
|
|
|
|
return _.merge(specs, {specLevel1: spec}) |
|
|
|
|
return _.merge(specs, { |
|
|
|
|
spec: spec, |
|
|
|
|
specLevel1: spec, |
|
|
|
|
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', spec.lft, spec.rght), |
|
|
|
|
}) |
|
|
|
|
} else if (spec.level === 2) { |
|
|
|
|
var specLevel2 = spec |
|
|
|
|
|
|
|
|
|
@ -694,8 +724,11 @@ function getSpecializationTree(specId) { |
|
|
|
|
var specLevel1 = spec |
|
|
|
|
|
|
|
|
|
return _.merge(specs, { |
|
|
|
|
spec: specLevel2, |
|
|
|
|
specLevel1: specLevel1, |
|
|
|
|
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght), |
|
|
|
|
specLevel2: specLevel2, |
|
|
|
|
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght), |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
} else if (spec.level === 3) { |
|
|
|
|
@ -710,9 +743,13 @@ function getSpecializationTree(specId) { |
|
|
|
|
var specLevel1 = spec |
|
|
|
|
|
|
|
|
|
return _.merge(specs, { |
|
|
|
|
spec: specLevel3, |
|
|
|
|
specLevel1: specLevel1, |
|
|
|
|
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght), |
|
|
|
|
specLevel2: specLevel2, |
|
|
|
|
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght), |
|
|
|
|
specLevel3: specLevel3, |
|
|
|
|
urlLevel4: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel3.lft, specLevel3.rght), |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
@ -732,9 +769,13 @@ function getSpecializationTree(specId) { |
|
|
|
|
var specLevel1 = spec |
|
|
|
|
|
|
|
|
|
return _.merge(specs, { |
|
|
|
|
spec: specLevel4, |
|
|
|
|
specLevel1: specLevel1, |
|
|
|
|
urlLevel2: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel1.lft, specLevel1.rght), |
|
|
|
|
specLevel2: specLevel2, |
|
|
|
|
urlLevel3: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel2.lft, specLevel2.rght), |
|
|
|
|
specLevel3: specLevel3, |
|
|
|
|
urlLevel4: format('/api/specializations/?lft__gt=%s&rght__lte=%s', specLevel3.lft, specLevel3.rght), |
|
|
|
|
specLevel4: specLevel4, |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|