Индикатор загрузки устанавливается средствами CSS отдельно для каждого файла и отображается в специальном компоненте (например list), с заданным пользовательским типом.
Related sample: Uploader: Progress Bar
Webix.type определяет как будет выглядеть компонент. Здесь вы указываете для какого компонента вы создаете тип, имя типа и свойства элемента.
webix.type(webix.ui.list, {
name:"myUploader",
template: function(f, type){},
status:function(f){},
on_click:{},
height: 35
});
Темплейт:
Как правило, отображаемая информация содержит следующие данные, обернутые в выбранный CSS класс (задается в разделе <head>
):
template:function(f,type){
var html = "<div class='overall'><div class='name'>"+f.name+"</div>";
html += "<div class='remove_file'><span style='color:#AAA'"+
"class='cancel_icon'></span></div>";
html += "<div class='status'>";
html += "<div class='progress "+f.status+"'"+
"style='width:"+(f.status == 'transfer'||f.status=="server"?f.percent+"%": "0px")+"'>"+
"</div>";
html += "<div class='message "+ f.status+"'>"+type.status(f)+"</div>";
html += "</div>";
html += "<div class='size'>"+ f.sizetext+"</div></div>";
return html;
};
Статусы:
Здесь вы помещаете функцию, которая будет задавать отображаемое на индикаторе сообщение:
status:function(f){
var messages = {
server: "Done",
error: "Error",
client: "Ready",
transfer: f.percent+"%"
};
return messages[f.status]
}
Функциональность для иконки "Отмена":
on_click:{ "remove_file":function(ev, id){
$$(this.config.uploader).files.remove(id);}
}
Менее значимые параметры:
Такие, как width и height для каждого элемента списка.
Не забудьте указать созданный тип в конфигурации списка!
{view:"list", id:"mylist", type:"myUploader", ...}
Наверх