Joywork/new/f/custom.js

151 lines
5.4 KiB
JavaScript
Raw Normal View History

2026-05-22 20:21:54 +02:00
$(document).ready(function() {
// editor save function
var saveEditedImage = function(item) {
// if still uploading
// pend and exit
if (item.upload && item.upload.status == 'loading')
return item.editor.isUploadPending = true;
// if not appended or not uploaded
if (!item.appended && !item.uploaded)
return;
// if no editor
if (!item.editor || !item.reader.width)
return;
// if uploaded
// resend upload
if (item.upload && item.upload.resend) {
item.editor._namee = item.name;
item.upload.resend();
}
// if appended
// send request
if (item.appended) {
// hide current thumbnail (this is only animation)
item.imageIsUploading = true;
item.image.addClass('fileuploader-loading').html('');
item.html.find('.fileuploader-action-popup').hide();
$.post('php/ajax_resize_file.php', {_file: item.file, _editor: JSON.stringify(item.editor), fileuploader: 1}, function() {
item.reader.read(function() {
delete item.imageIsUploading;
item.html.find('.fileuploader-action-popup').show();
item.popup.html = item.popup.editor = item.editor.crop = item.editor.rotation = null;
item.renderThumbnail();
}, null, true);
});
}
};
// enable fileuploader plugin
$('input[name="files"]').fileuploader({
extensions: ['jpg', 'jpeg', 'png', 'gif', 'bmp'],
changeInput: ' ',
theme: 'thumbnails',
enableApi: true,
addMore: true,
thumbnails: {
box: '<div class="fileuploader-items">' +
'<ul class="fileuploader-items-list">' +
'<li class="fileuploader-thumbnails-input"><div class="fileuploader-thumbnails-input-inner"><i class="jw-action-icon-plus"></i></div></li>' +
'</ul>' +
'</div>',
item: '<li class="fileuploader-item">' +
'<div class="fileuploader-item-inner">' +
'<div class="thumbnail-holder">${image}</div>' +
'<div class="actions-holder">' +
'<a class="fileuploader-action fileuploader-action-sort" title="Изменить порядок"><i class="jw-action-icon-move"></i></a>' +
'<a class="fileuploader-action fileuploader-action-remove" title="${captions.remove}"><i class="jw-action-icon-delete"></i></a>' +
'<a class="fileuploader-action fileuploader-action-popup" title="Удалить"><i class="jw-action-icon-settings"></i></a>' +
'</div>' +
'<div class="progress-holder">${progressBar}</div>' +
'</div>' +
'</li>',
item2: '<li class="fileuploader-item">' +
'<div class="fileuploader-item-inner">' +
'<div class="thumbnail-holder">${image}</div>' +
'<div class="actions-holder">' +
'<a class="fileuploader-action fileuploader-action-sort" title="${captions.sort}"><i class="jw-action-icon-move"></i></a>' +
'<a class="fileuploader-action fileuploader-action-remove" title="${captions.remove}"><i class="jw-action-icon-delete"></i></a>' +
'<a class="fileuploader-action fileuploader-action-popup" title="Удалить"><i class="jw-action-icon-settings"></i></a>' +
'</div>' +
'</div>' +
'</li>',
startImageRenderer: true,
canvasImage: false,
_selectors: {
list: '.fileuploader-items-list',
item: '.fileuploader-item',
start: '.fileuploader-action-start',
retry: '.fileuploader-action-retry',
remove: '.fileuploader-action-remove',
sorter: '.fileuploader-action-sort'
},
onItemShow: function(item, listEl) {
var plusInput = listEl.find('.fileuploader-thumbnails-input');
plusInput.insertAfter(item.html);
if(item.format == 'image') {
item.html.find('.fileuploader-item-icon').hide();
}
}
},
afterRender: function(listEl, parentEl, newInputEl, inputEl) {
var plusInput = listEl.find('.fileuploader-thumbnails-input'),
api = $.fileuploader.getInstance(inputEl.get(0));
plusInput.on('click', function() {
api.open();
});
},
dragDrop: {
container: '.fileuploader-thumbnails-input'
},
onRemove: function(item) {
$.post('php/upload_remove.php', {
file: item.name
});
},
editor: {
cropper: {
showGrid: true,
},
onSave: function(dataURL, item) {
saveEditedImage(item);
}
},
captions: {
feedback: 'Drag and drop files here',
feedback2: 'Drag and drop files here',
drop: 'Drag and drop files here'
},
sorter: {
selectorExclude: null,
placeholder: '<li class="fileuploader-item fileuploader-sorter-placeholder"><div class="fileuploader-item-inner"></div></li>',
scrollContainer: window,
onSort: function(list, listEl, parentEl, newInputEl, inputEl) {
var api = $.fileuploader.getInstance(inputEl.get(0)),
fileList = api.getFileList(),
_list = [];
$.each(fileList, function(i, item) {
_list.push({
name: item.name,
index: item.index
});
});
$.post('php/ajax_sort_files.php', {
_list: JSON.stringify(_list)
});
}
},
});
});