#ARC-11 #ARC-4

remotes/origin/setup
ArturBaybulatov 10 years ago
parent 9635e0041b
commit 2768661140
  1. 68
      assets/index.js
  2. 9
      users/templates/user_profile_edit.html

@ -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,
})
}
})
}

@ -46,10 +46,17 @@
<p class="name-edit-p">Специализации</p>
<div id="simpleSpecContainer">
<div class="polsF1 pols-edit disTab -simple-spec-widget" style="display: none">
<div class="i polsF1 pols-edit disTab -simple-spec-widget" style="display: none">
<input type="hidden" class="-simple-spec-select" style="width: 100%">
<input type="hidden" class="-chosen-simple-spec-id" name="{{ form.contractor_specializations.html_name }}">
</div>
{% for spec_id in form.contractor_specializations.value %}
<div class="polsF1 pols-edit disTab -simple-spec-widget">
<input type="hidden" class="-simple-spec-select" style="width: 100%">
<input type="hidden" class="-chosen-simple-spec-id" name="{{ form.contractor_specializations.html_name }}" value="{{ spec_id }}">
</div>
{% endfor %}
</div>
<a href="#" onclick="return false" class="add-edit" id="addSpec">

Loading…
Cancel
Save