Joywork/js/custom-uploader-new.js
2026-05-22 21:21:54 +03:00

224 lines
9.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$(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();
}
};
// Enable fileuploader plugin
// Global settings for fileuploader plugin
var fileuploaderSettings = {
extensions: ['jpg', 'jpeg', 'png', 'gif', 'bmp'],
changeInput: ' ',
theme: 'thumbnails',
enableApi: true,
addMore: true,
fileMaxSize: 15,
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="Удалить"><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="Изменить порядок"><i class="jw-action-icon-move"></i></a>' +
'<a class="fileuploader-action fileuploader-action-remove" title="Удалить"><i class="jw-action-icon-delete"></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();
});
},
upload : {
// upload URL {String}
url: '/ajax/uploader-object-new.php',
data: null,
type: 'POST',
enctype: 'multipart/form-data',
start: true,
synchron: true,
chunk: false,
onSuccess: function(data, item, listEl, parentEl, newInputEl, inputEl, textStatus, jqXHR) {
//todo
setTimeout(function() {
item.html.find('.progress-holder').remove();
}, 400);
},
onComplete: function(listEl, parentEl, newInputEl, inputEl, jqXHR, textStatus) {
// callback will go here
}
},
dragDrop: {
container: '.main-photo'
},
onRemove: function(item, listEl, p, o, s) {
var id = $('#id_obj').val();
if (id) {
$.ajax({
url: '/ajax/markPhotoToDeleteFromSelectel.php',
method: "post",
data: {
"path": item.name,
"objId": id
},
success: function (data) {
}
});
}
},
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',
removeConfirmation: "Удалить выбранный файл?",
errors: {
filesLimit: 'Только ${limit} файлов можно загрузить.',
filesType: 'Только ${extensions} файлы можно загрузить.',
fileSize: 'Превышение допустимого размера файла. Выберите файл размером не более ${fileMaxSize}MB.',
fileName: 'Файл с именем ${name} уже выбран.'
}
},
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
});
});
}
}
}
var photoSettings = {
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"><div style="position: absolute; top: 5px; left: 5px; z-index: 1"><input style="margin: 0 !important" type="checkbox" /></div>${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="Удалить"><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"><div style="position: absolute; top: 5px; left: 5px; z-index: 1"><input style="margin: 0 !important" type="checkbox" /></div>${image}</div>' +
'<div class="actions-holder">' +
'<a class="fileuploader-action fileuploader-action-sort" title="test порядок"><i class="jw-action-icon-move"></i></a>' +
'<a class="fileuploader-action fileuploader-action-remove" title="Удалить"><i class="jw-action-icon-delete"></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();
}
}
},
}
$('input#upload-object-edit').fileuploader(fileuploaderSettings);
$('input#upload-object-view').fileuploader({...fileuploaderSettings, ...photoSettings});
// Unique settings for plan uploader
var planSettings = {
dragDrop:{
container:'.plan-photo'
}
};
$('input[name="img_plan"]').fileuploader({...fileuploaderSettings, ...planSettings});
});