120 lines
4.2 KiB
JavaScript
120 lines
4.2 KiB
JavaScript
/**
|
|
* @package JEM
|
|
* @copyright (C) 2013-2024 joomlaeventmanager.net
|
|
* @copyright (C) 2005-2009 Christoph Lukes
|
|
* @license https://www.gnu.org/licenses/gpl-3.0 GNU/GPL
|
|
*/
|
|
|
|
/**
|
|
* this file manages the js script for adding/removing attachements in event
|
|
*/
|
|
// window.addEvent('domready', function() {
|
|
jQuery(document).ready(function ($) {
|
|
|
|
$('.attach-field').on('change', addattach);
|
|
$('.clear-attach-field').on('click', clearattach);
|
|
|
|
$('.attach-remove').on('click', function (event) {
|
|
var event = event || window.event;
|
|
// $(event.target).style.cursor = 'wait'; /* indicate server request */
|
|
// $(event.target).style.cursor = 'wait'; /* indicate server request */
|
|
$(this).css({'cursor': 'wait'})
|
|
var clickednode = event.target;
|
|
if (!clickednode.hasAttribute('id')) {
|
|
clickednode = $(this).parent();
|
|
}
|
|
var url = '';
|
|
// var pos = clickednode.id.indexOf(':');
|
|
var pos = $(this).attr('id').indexOf(':');
|
|
if (pos >= 0) {
|
|
// var id = clickednode.id.substring(13, pos);
|
|
// var token = clickednode.id.substr(pos+1);
|
|
var id = $(this).attr('id').substring(13, pos);
|
|
var token = $(this).attr('id').substr(pos + 1);
|
|
url = 'index.php?option=com_jem&task=ajaxattachremove&format=raw&id=' + id + '&' + token + '=1';
|
|
} else {
|
|
// var id = clickednode.id.substr(13);
|
|
var id = $(this).attr('id').substr(13);
|
|
url = 'index.php?option=com_jem&task=ajaxattachremove&format=raw&id=' + id;
|
|
}
|
|
|
|
// var theAjax = new Request( {
|
|
// url : url,
|
|
// method: 'post',
|
|
// postBody : ''
|
|
// });
|
|
|
|
// theAjax.addEventListener('onSuccess', function(response) {
|
|
// /* server sends 1 on success, 0 on error */
|
|
// if (response.indexOf('1') > -1) {
|
|
// $(clickednode).getParent().getParent().dispose();
|
|
// } else {
|
|
// $(clickednode).style.cursor = 'not-allowed'; /* remove failed - how to show? */
|
|
// }
|
|
// }.bind(this));
|
|
// theAjax.send();
|
|
|
|
$.ajax({
|
|
url: url,
|
|
method: 'post',
|
|
data: '',
|
|
success: function (response) {
|
|
|
|
if (response.indexOf('1') > -1) {
|
|
// $(clickednode).getParent().getParent().dispose();
|
|
$(clickednode).parent().parent().remove();
|
|
} else {
|
|
// $(clickednode).style.cursor = 'not-allowed'; /* remove failed - how to show? */
|
|
$(clickednode).css({'cursor': 'not-allowed'})
|
|
}
|
|
}
|
|
})
|
|
});
|
|
});
|
|
|
|
function addattach() {
|
|
// var tbody = $('#el-attachments').getElement('tbody');
|
|
var tbody = $('#el-attachments tbody');
|
|
// var rows = tbody.getElements('tr');
|
|
var rows = tbody.find('tr');
|
|
var emptyRows = [];
|
|
|
|
/* do we have empty rows? */
|
|
for (var i = 0; i < rows.length; i++) {
|
|
// var af = rows[i].getElement('.attach-field');
|
|
var af = $(rows[i]).find('.attach-field')[0];
|
|
if (af && !(af.files.length > 0)) {
|
|
emptyRows.push(af);
|
|
break; /* one is enough, so we can break */
|
|
}
|
|
}
|
|
|
|
|
|
/* if not create one */
|
|
if (emptyRows.length < 1) {
|
|
var row = $(rows[rows.length - 1]).clone();
|
|
// row.getElement('.attach-field').on('change', addattach).value = '';
|
|
// row.getElement('.clear-attach-field').on('click', clearattach).value = '';
|
|
row.find('.attach-field').on('change', addattach).val('');
|
|
row.find('.clear-attach-field').on('click', clearattach).val('');
|
|
// row.inject(tbody);
|
|
tbody.append(row);
|
|
}
|
|
}
|
|
|
|
function clearattach(event) {
|
|
var event = event || window.event;
|
|
|
|
// var grandpa = $(event.target).getParent().getParent();
|
|
var grandpa = $(this).parent().parent();
|
|
// var af = grandpa.getElement('.attach-field');
|
|
var af = grandpa.find('.attach-field')[0];
|
|
if (af) af.value = '';
|
|
// var an = grandpa.getElement('.attach-name');
|
|
var an = grandpa.find('.attach-name')[0];
|
|
if (an) an.value = '';
|
|
// var ad = grandpa.getElement('.attach-desc');
|
|
var ad = grandpa.find('.attach-desc')[0];
|
|
if (ad) ad.value = '';
|
|
}
|