|
|
|
|
@ -24,8 +24,8 @@ var specSelectOptions = { |
|
|
|
|
return { |
|
|
|
|
results: _.map(function(item) { |
|
|
|
|
return { |
|
|
|
|
text: item.name, |
|
|
|
|
id: item.id, |
|
|
|
|
text: item.name, |
|
|
|
|
origItem: item, |
|
|
|
|
} |
|
|
|
|
}, data.results), |
|
|
|
|
@ -99,38 +99,62 @@ var simpleSpecSelectsOptions = { |
|
|
|
|
allowClear: true, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var $simpleSpecContainer = $('#simpleSpecContainer') |
|
|
|
|
var $emptySimpleSpecWidget = $simpleSpecContainer.find('.-simple-spec-widget').first() |
|
|
|
|
|
|
|
|
|
$simpleSpecContainer.find('.-chosen-simple-spec-id').each(function(i, el) { |
|
|
|
|
var $el = $(el) |
|
|
|
|
var specId = Number($el.val()) |
|
|
|
|
|
|
|
|
|
if (specId) |
|
|
|
|
initSimpleSpecSelect2($el.closest('.-simple-spec-widget').find('.-simple-spec-select').first(), specId) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
$('#addSpec').on('click', function($evt) { |
|
|
|
|
var $simpleSpecContainer = $('#simpleSpecContainer') |
|
|
|
|
var $simpleSpecWidget = $simpleSpecContainer.find('.-simple-spec-widget').first() |
|
|
|
|
var $newSimpleSpecWidget = $simpleSpecWidget.clone() |
|
|
|
|
var $newSimpleSpecWidget = $emptySimpleSpecWidget.clone() |
|
|
|
|
$simpleSpecContainer.append($newSimpleSpecWidget) |
|
|
|
|
var $newSimpleSpecSelect = $newSimpleSpecWidget.find('.-simple-spec-select').first() |
|
|
|
|
|
|
|
|
|
var $simpleSpecSelect = $newSimpleSpecWidget.find('.-simple-spec-select').first() |
|
|
|
|
//var $chosenSimpleSpecId = $newSimpleSpecWidget.find('.-chosen-simple-spec-id').first()
|
|
|
|
|
|
|
|
|
|
$.ajax({url: '/api/specializations/', method: 'GET', dataType: 'json'}) |
|
|
|
|
.then(function(res) { |
|
|
|
|
$simpleSpecSelect.select2(_.merge(simpleSpecSelectsOptions, { |
|
|
|
|
data: _.map(function(item) { |
|
|
|
|
return { |
|
|
|
|
text: _.repeat(item.level-1, '---') + item.name, |
|
|
|
|
id: item.id, |
|
|
|
|
origItem: item, |
|
|
|
|
} |
|
|
|
|
}, res.results), |
|
|
|
|
})) |
|
|
|
|
|
|
|
|
|
$newSimpleSpecWidget.css('display', 'block') |
|
|
|
|
}) |
|
|
|
|
initSimpleSpecSelect2($newSimpleSpecSelect).then(function() { |
|
|
|
|
$newSimpleSpecWidget.css('display', 'block') |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$('#simpleSpecContainer').on('change', '.-simple-spec-select', function($evt) { |
|
|
|
|
$simpleSpecContainer.on('change', '.-simple-spec-select', function($evt) { |
|
|
|
|
if ($evt.added) |
|
|
|
|
$(this).parent().children('.-chosen-simple-spec-id').first().val($evt.added.id) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function initSimpleSpecSelect2($select, specId) { |
|
|
|
|
return $.ajax({url: '/api/specializations/', method: 'GET', dataType: 'json'}) |
|
|
|
|
.then(function(res) { |
|
|
|
|
var specs = res.results |
|
|
|
|
|
|
|
|
|
$select.select2(_.merge(simpleSpecSelectsOptions, { |
|
|
|
|
data: _.map(function(spec) { |
|
|
|
|
return { |
|
|
|
|
id: spec.id, |
|
|
|
|
text: _.repeat(spec.level-1, '---') + spec.name, |
|
|
|
|
origItem: spec, |
|
|
|
|
} |
|
|
|
|
}, specs), |
|
|
|
|
})) |
|
|
|
|
|
|
|
|
|
if (specId) { |
|
|
|
|
var spec = _.find({id: specId}, specs) |
|
|
|
|
|
|
|
|
|
$select.select2('data', { |
|
|
|
|
id: spec.id, |
|
|
|
|
text: _.repeat(spec.level-1, '---') + spec.name, |
|
|
|
|
origItem: spec, |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|