135 lines
5.5 KiB
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"> </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"> </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 'routine_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"> </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_routine' %}",
|
|
method: "POST",
|
|
data: {
|
|
routine_id: {{ routine.id }},
|
|
order: 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_routine' %}",
|
|
method: "POST",
|
|
data: {
|
|
routine_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 %} |