34# created wish list buttons for detail page

This commit is contained in:
Eligiusz Kurzawa 2021-01-17 10:12:40 +01:00
parent b9f93a6dc5
commit f75b316e43
7 changed files with 120 additions and 147 deletions

View File

@ -57,6 +57,7 @@ class SingleJobView(SuccessMessageMixin, UpdateView):
context = super(SingleJobView, self).get_context_data(**kwargs)
context['categories'] = Category.objects.all()
context['employee_applied'] = Job.objects.get(pk=self.kwargs['pk']).employee.all().filter(id=self.request.user.id)
context['in_my_list'] = Job.objects.get(pk=self.kwargs['pk']).wish_list.all().filter(user_id=self.request.user.id)
try:
context['applied_employees'] = Job.objects.get(pk=self.kwargs['pk'], employer_id=self.request.user.id).employee.all()
context['employer_id'] = Job.objects.get(pk=self.kwargs['pk']).employer_id

56
static/js/addorremove.js Normal file
View File

@ -0,0 +1,56 @@
function addorremove(id) {
if (id){
var wishlist = $('#jobwl' + id).data('wl');
if(wishlist == 0) {
$.ajax({
url: "/users/add-wishlist/" + id,
method: "GET",
success: function () {
$('#jobwl' + id).removeClass('btn-primary').addClass('btn-danger')
const Toast = Swal.mixin({
toast: true,
position: 'top',
showConfirmButton: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Toast.fire({
icon: 'success',
title: 'Added'
})
$('#jobwl' + id).data('wl', 1);
}
});
}else{
$.ajax({
url:"/users/remove-from-wishlist/" + id,
method:"GET",
success:function () {
$('#jobwl' + id).removeClass('btn-danger').addClass('btn-primary')
const Toast = Swal.mixin({
toast: true,
position: 'top',
showConfirmButton: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Toast.fire({
icon: 'error',
title: 'Removed'
})
$('#jobwl' + id).data('wl', 0);
}
});
}
}
}

View File

@ -0,0 +1,24 @@
function addorremove(id) {
if (id){
$.ajax({
success:function () {
const Toast = Swal.mixin({
toast: true,
position: 'top',
showConfirmButton: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Toast.fire({
icon: 'error',
title: 'You are not an employee!'
})
}
});
}
}

View File

@ -202,13 +202,12 @@
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBVWaKrjvy3MaE7SQ74_uJiULgl1JY0H2s&sensor=false"></script>
<script src="{% static "js/google-map.js" %}"></script>
<script src="{% static "js/main.js" %}"></script>
<script src="{% static "js/main.js" %}"></script>
{% if user.is_authenticated and user.is_employee %}
<script src="{% static "js/addorremove.js" %}"></script>
{% else %}
<script src="{% static "js/addorremove2.js" %}"></script>
<script src="{% static "js/addorremovenotauth.js" %}"></script>
{% endif %}
</body>
</html>

View File

@ -478,91 +478,4 @@
</div>
</section>
{% if user.is_authenticated and user.is_employee%}
<script type="text/javascript">
function addorremove(id) {
if (id){
var wishlist = $('#jobwl' + id).data('wl');
if(wishlist == 0) {
$.ajax({
url: "/users/add-wishlist/" + id,
method: "GET",
success: function () {
$('#jobwl' + id).removeClass('btn-primary').addClass('btn-danger')
const Toast = Swal.mixin({
toast: true,
position: 'top',
showConfirmButton: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Toast.fire({
icon: 'success',
title: 'Added'
})
$('#jobwl' + id).data('wl', 1);
}
});
}else{
$.ajax({
url:"/users/remove-from-wishlist/" + id,
method:"GET",
success:function () {
$('#jobwl' + id).removeClass('btn-danger').addClass('btn-primary')
const Toast = Swal.mixin({
toast: true,
position: 'top',
showConfirmButton: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Toast.fire({
icon: 'error',
title: 'Removed'
})
$('#jobwl' + id).data('wl', 0);
}
});
}
}
}
</script>
{% else %}
<script type="text/javascript">
function addtomywishlist(id) {
if (id){
$.ajax({
success:function () {
const Toast = Swal.mixin({
toast: true,
position: 'top',
showConfirmButton: true,
timer: 3000,
timerProgressBar: true,
didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer)
}
})
Toast.fire({
icon: 'error',
title: 'You are not an employee!'
})
}
});
}
}
</script>
{% endif %}
{% endblock %}

View File

@ -28,9 +28,15 @@
<input type="submit" value="Apply" class="btn btn-primary py-2 mr-1" disabled title="You have already applied.">
{% else %}
<input type="submit" value="Apply" class="btn btn-primary py-2 mr-1">
<a href="#" class="btn btn-danger rounded-circle btn-favorite d-flex align-items-center">
<span class="icon-heart"></span>
</a>
{% if in_my_list %}
<a href="javascripts:void(0);" id="jobwl{{ job.id }}" title="Remove from my wish list" onclick="addorremove({{ job.id }})" class="btn btn-danger rounded-circle btn-favorite d-flex align-items-center">
<span class="icon-heart"></span>
</a>
{% else %}
<a href="javascripts:void(0);" id="jobwl{{ job.id }}" title="Add to my wish list" onclick="addorremove({{ job.id }})" class="btn btn-primary rounded-circle btn-favorite d-flex align-items-center">
<span class="icon-heart"></span>
</a>
{% endif %}
{% endif %}
</div>
{% endif %}

View File

@ -168,11 +168,11 @@
<a href="{% url 'jobs:single_job' job.slug job.pk %}" class="btn btn-primary py-2 mr-1">Apply Job</a>
{% if job.id in wish_list %}
<a href="javascripts:void(0);" id="jobwl{{ job.id }}" title="Remove from my wish list" onclick="removefrommywishlist({{ job.id }})" class="btn btn-danger rounded-circle btn-favorite d-flex align-items-center">
<a href="javascripts:void(0);" id="jobwl{{ job.id }}" title="Remove from my wish list" onclick="addorremove({{ job.id }})" class="btn btn-danger rounded-circle btn-favorite d-flex align-items-center">
<span class="icon-heart"></span>
</a>
{% else %}
<a href="javascripts:void(0);" id="jobwl{{ job.id }}" title="Add to my wish list" onclick="addtomywishlist({{ job.id }})" class="btn btn-primary rounded-circle btn-favorite d-flex align-items-center">
<a href="javascripts:void(0);" id="jobwl{{ job.id }}" title="Add to my wish list" onclick="addorremove({{ job.id }})" class="btn btn-primary rounded-circle btn-favorite d-flex align-items-center">
<span class="icon-heart"></span>
</a>
{% endif %}
@ -196,62 +196,36 @@
</div>
{% endif %}
</div>
<div class="row mt-5">
{% if is_paginated %}
<div class="col text-center">
<div class="block-27">
<ul>
{% if page_obj.has_previous %}
<li><a href="?page={{ page_obj.previous_page_number }}"><</a></li>
{% else %}
<li class="disabled"><span>&lt;</span></li>
{% endif %}
{% for i in paginator.page_range %}
{% if page_obj.number == i %}
<li class="active"><span>{{ i }}</span></li>
{% if user.is_authenticated %}
<div class="row mt-5">
{% if is_paginated %}
<div class="col text-center">
<div class="block-27">
<ul>
{% if page_obj.has_previous %}
<li><a href="?page={{ page_obj.previous_page_number }}"><</a></li>
{% else %}
<li><a href="?page={{ i }}">{{ i }}</a></li>
<li class="disabled"><span>&lt;</span></li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li><a href="?page={{ page_obj.next_page_number }}">&gt;</a></li>
{% else %}
<li class="disabled"><span>&gt;</span></li>
{% endif %}
</ul>
</div>
</div>
{% for i in paginator.page_range %}
{% if page_obj.number == i %}
<li class="active"><span>{{ i }}</span></li>
{% else %}
<li><a href="?page={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if page_obj.has_next %}
<li><a href="?page={{ page_obj.next_page_number }}">&gt;</a></li>
{% else %}
<li class="disabled"><span>&gt;</span></li>
{% endif %}
</ul>
</div>
</div>
{% endif %}
</div>
{% endif %}
</div>
</div>
</section>
<script type="text/javascript">
function addtomywishlist(id) {
if (id){
$.ajax({
url:"/users/add-wishlist/" + id,
method:"GET",
success:function () {
$('#jobwl' + id).removeClass('btn-primary').addClass('btn-danger')
alert("Success")
}
});
}
}
function removefrommywishlist(id) {
if (id){
$.ajax({
url:"/users/remove-from-wishlist/" + id,
method:"GET",
success:function () {
$('#jobwl' + id).removeClass('btn-danger').addClass('btn-primary')
alert("Success")
}
});
}
}
</script>
{% endblock %}