You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
9.1 KiB
167 lines
9.1 KiB
function init_filer($target) {
|
|
|
|
$.get($target.data('upload-url'), function(response){
|
|
var files = [];
|
|
if (response['success']) {
|
|
files = response['images'];
|
|
}
|
|
|
|
$target.find('.file_uploader').filer({
|
|
limit: null,
|
|
maxSize: null,
|
|
extensions: null,
|
|
changeInput: '<div class="jFiler-input-dragDrop"><div class="jFiler-input-inner"><div class="jFiler-input-icon"><i class="icon-jfi-cloud-up-o"></i></div><div class="jFiler-input-text"><h3>Drag&Drop files here</h3> <span style="display:inline-block; margin: 15px 0">or</span></div><a class="jFiler-input-choose-btn blue">Browse Files</a></div></div>',
|
|
showThumbs: true,
|
|
theme: "dragdropbox",
|
|
afterRender: function(l, p, o, s){
|
|
s[0].name = s[0].name.replace('[]', '')
|
|
},
|
|
templates: {
|
|
box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>',
|
|
item: '<li class="jFiler-item">\
|
|
<div class="jFiler-item-container">\
|
|
<div class="jFiler-item-inner">\
|
|
<a href="javascript:void(0);" class="jFiler-item-thumb">\
|
|
<div class="jFiler-item-status"></div>\
|
|
<div class="jFiler-item-thumb-overlay">\
|
|
<div class="jFiler-item-info">\
|
|
<div style="display:table-cell;vertical-align: middle;">\
|
|
<span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name}}</b></span>\
|
|
<span class="jFiler-item-others">{{fi-size2}}</span>\
|
|
</div>\
|
|
</div>\
|
|
</div>\
|
|
{{fi-image}}\
|
|
</a>\
|
|
<div class="jFiler-item-assets jFiler-row">\
|
|
<ul class="list-inline pull-left">\
|
|
<li>{{fi-progressBar}}</li>\
|
|
</ul>\
|
|
<ul class="list-inline pull-right">\
|
|
<li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
|
|
</ul>\
|
|
</div>\
|
|
</div>\
|
|
</div>\
|
|
</li>',
|
|
itemAppend: '<li class="jFiler-item">\
|
|
<div class="jFiler-item-container">\
|
|
<div class="jFiler-item-inner">\
|
|
<a href="javascript:void(0);" class="jFiler-item-thumb">\
|
|
<div class="jFiler-item-status"></div>\
|
|
<div class="jFiler-item-thumb-overlay">\
|
|
<div class="jFiler-item-info">\
|
|
<div style="display:table-cell;vertical-align: middle;">\
|
|
<span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name}}</b></span>\
|
|
<span class="jFiler-item-others">{{fi-size2}}</span>\
|
|
</div>\
|
|
</div>\
|
|
</div>\
|
|
{{fi-image}}\
|
|
</a>\
|
|
<div class="jFiler-item-assets jFiler-row">\
|
|
<ul class="list-inline pull-left">\
|
|
<li><span class="jFiler-item-others">{{fi-icon}}</span></li>\
|
|
</ul>\
|
|
<ul class="list-inline pull-right">\
|
|
<li><a class="icon-jfi-trash jFiler-item-trash-action"></a>{{fi-remove}}</li>\
|
|
</ul>\
|
|
</div>\
|
|
</div>\
|
|
</div>\
|
|
</li>',
|
|
progressBar: '<div class="bar"></div>',
|
|
itemAppendToEnd: true,
|
|
canvasImage: true,
|
|
removeConfirmation: true,
|
|
_selectors: {
|
|
list: '.jFiler-items-list',
|
|
//item: '.jFiler-item',
|
|
progressBar: '.bar',
|
|
remove: '.jFiler-item-trash-action'
|
|
}
|
|
},
|
|
dragDrop: {
|
|
dragEnter: null,
|
|
dragLeave: null,
|
|
drop: null,
|
|
dragContainer: null
|
|
},
|
|
uploadFile: {
|
|
url: $target.data('upload-url'),
|
|
//data: null,
|
|
type: 'POST',
|
|
enctype: 'multipart/form-data',
|
|
synchron: true,
|
|
beforeSend: function() {},
|
|
success: function(data, itemEl, listEl, boxEl, newInputEl, inputEl, id){
|
|
var parent = itemEl.find(".jFiler-jProgressBar").parent();
|
|
|
|
itemEl.find(".jFiler-jProgressBar").fadeOut("slow", function(){
|
|
$("<div class=\"jFiler-item-others text-success\"><i class=\"icon-jfi-check-circle\"></i> Success</div>").hide().appendTo(parent).fadeIn("slow");
|
|
});
|
|
},
|
|
error: function(el){
|
|
var parent = el.find(".jFiler-jProgressBar").parent();
|
|
el.find(".jFiler-jProgressBar").fadeOut("slow", function(){
|
|
$("<div class=\"jFiler-item-others text-error\"><i class=\"icon-jfi-minus-circle\"></i> Error</div>").hide().appendTo(parent).fadeIn("slow");
|
|
});
|
|
},
|
|
statusCode: null,
|
|
onProgress: null,
|
|
onComplete: null
|
|
},
|
|
files: files,
|
|
addMore: false,
|
|
allowDuplicates: true,
|
|
clipBoardPaste: true,
|
|
excludeName: null,
|
|
beforeRender: null,
|
|
beforeShow: null,
|
|
beforeSelect: null,
|
|
onSelect: null,
|
|
afterShow: null,
|
|
onRemove: function(itemEl, file, id, listEl, boxEl, newInputEl, inputEl){
|
|
var filerKit = inputEl.prop("jFiler"),
|
|
file_name = filerKit.files_list[id].name;
|
|
console.log(itemEl);
|
|
|
|
$.get(itemEl.find('.jFiler-item-trash-action').attr('href'))
|
|
},
|
|
onEmpty: null,
|
|
options: null,
|
|
dialogs: {
|
|
alert: function(text) {
|
|
return alert(text);
|
|
},
|
|
confirm: function (text, callback) {
|
|
confirm(text) ? callback() : null;
|
|
}
|
|
},
|
|
captions: {
|
|
button: "Выберите файлы",
|
|
feedback: "Выберите файлы для загрузки",
|
|
feedback2: "выбранные файлы",
|
|
drop: "Перетяните файлы для загрузки",
|
|
removeConfirmation: "Вы уверены что хотите удалить этот файл?",
|
|
errors: {
|
|
filesLimit: "Only {{fi-limit}} files are allowed to be uploaded.",
|
|
filesType: "Only Images are allowed to be uploaded.",
|
|
filesSize: "{{fi-name}} is too large! Please upload file up to {{fi-maxSize}} MB.",
|
|
filesSizeAll: "Files you've choosed are too large! Please upload files up to {{fi-maxSize}} MB."
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
|
|
var $uploaders = $('.file_upload_container');
|
|
|
|
$uploaders.each(function (i, uploader) {
|
|
var $uploader = $(uploader),
|
|
fields = $uploader.data('fields').split('|'), // Массив названий полей для создания фото
|
|
languages = $uploader.data('languages').split('|'); // Массив языков, будет использоватся для генерации инпутов
|
|
|
|
init_filer($uploader);
|
|
});
|
|
|