Jarvis/jarvis/objective/templates/combinations/compose.html

135 lines
5.5 KiB
HTML

{% extends "base.html" %}
<!-- {% block page_title %}.: New Routine :.{% endblock %} -->
<!-- {% block title %}Routine{% endblock %} -->
{% block content %}
<div class="row justify-content-center">
<div class="col-12 col-sm-12 col-md-8 col-lg-8 col-xl-6">
<div class="card">
<div class="card-header">
<h4 class="">Compose Routine : {{ routine.long_label }}</h4>
</div>
<div class="card-body">
<ol>
{% for link in skill_link_list %}
<li>
<div class="form-group row pb-0 mb-0">
<label class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1 col-form-label pt-2 pb-0 text-right">&nbsp;</label>
<div class="col-11 col-sm-11 col-md-11 col-lg-11 col-xl-11 pt-2 text-danger">
{{ link.skill.notation }}
</div>
</div>
</li>
{% endfor %}
<li>
<div class="form-group row pb-0 mb-0">
<label class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1 col-form-label text-right mb-0">&nbsp;</label>
<div class="col-11 col-sm-11 col-md-11 col-lg-11 col-xl-11 mb-0">
<input type="text" name="skill" placeholder="Skill" class="form-control selectpicker" id="id_skill">
</div>
</div>
</li>
</ol>
</div>
<div class="card-footer pt-0">
<a href="{% url 'combination_details' routine.id %}">
<button type="submit" value="add" class="btn btn-icon btn-warning ">
<i class="tim-icons icon-double-left"></i>
</button>
</a>
</div>
</div>
</div>
</div>
{% endblock %}
{% block footerscript %}
<script type="text/javascript" >
const csrf_token = "{{ csrf_token|escapejs }}";
const skill_lookup = "{% url 'skill_lookup' %}";
$(document).ready(function() {
$('#id_skill').focus();
var number_of_skill = {{ number_of_skill }};
function insert_selected_skill(skill_label)
{
$('#minusButton').remove();
$('ol li:last-child').before('<li><div class="form-group row pb-0 mb-0"><label class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1 col-form-label text-right mb-0">&nbsp;</label><div class="col-3 col-sm-3 col-md-3 col-lg-3 col-xl-3 pt-2 mb-0">' + skill_label + '</div><div class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1"><button type="button" class="btn btn-warning btn-sm" id="minusButton">-</button></div></div></li>');
$('#id_skill').val('').focus();
}
$('body').on('click', '#minusButton', function(event){
$.ajax({
url: "{% url 'unlink_skill_from_combination' %}",
method: "POST",
data: {
combination_id: {{ routine.id }},
rank: number_of_skill,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
}).done(function() {
$('ol li:last-child').prev().remove();
});
});
$('#id_skill').autocomplete({
source: function(request, response) {
$.ajax({
url: skill_lookup,
method: "POST",
data: {
pattern: request.term,
csrfmiddlewaretoken: csrf_token
},
dataType: "json",
success: function(data) {
if(data.length != 0) {
response($.map(data, function(item) {
return {
label: item.Name,
value: item.Name,
skillid: item.ID,
notation: item.Notation,
}
}))
} else {
response([{ label: 'No result found.', value: '' }]);
};
},
error: function (exception) {
console.log(exception);
}
});
},
minLength: 3,
select: function (event, ui) {
number_of_skill += 1;
$.ajax({
url: "{% url 'link_skill_to_combination' %}",
method: "POST",
data: {
combination_id: {{ routine.id }},
skill_id: ui.item.skillid,
rank: number_of_skill,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
}).done(function() {
insert_selected_skill(ui.item.notation);
});
},
{% if request.session.template == 0 %}
classes: {
"ui-widget-content": "custom_autocomplete_ul",
"ui-autocomplete": "custom_autocomplete_ul",
"ui-menu-item-wrapper": "custom_autocomplete_li",
"ui-menu-item": "custom_autocomplete_li",
},
{% endif %}
});
});
</script>
{% endblock %}