Make use of the DropzoneJS library (www.dropzonejs.com) to build highly customizable dropzones that provides drag’n’drop file uploads with image previews TODO: Complete dropzone options and features binding Authors: Julien Verneuil (06/04/2016) David René (2017/08/12) read tools/basis.anubis read system/string.anubis read xlib/web/making_a_web_site.anubis read xlib/web/jquery.anubis public define HTML dropzone ( String dropzone_form_name, String dict_default_message, String dict_file_too_big, String param_name, String init, WEB_Action_Name submit_action, List((String,String)) extra_ops, ) = with dropzone_form_id = to_lower(dropzone_form_name+"_"+generate_random_string(15)), partial_content( [ js(js_file("xlib/js/dropzone.js")), css(css_file("xlib/css/dropzone.css")), js_script(" Dropzone.options." + to_Camel_case(dropzone_form_id) + " = { dictDefaultMessage : \"" + dict_default_message + "\", dictFileTooBig : \"" + dict_file_too_big + "\", timeout : 864000, paramName : \"" + param_name + ( if init = "" then "\"" else "\", init: "+init )+" }; $('#"+dropzone_form_id+"').dropzone(); " ) ], form([id(dropzone_form_id), class("dropzone"), action(submit_action, extra_ops)]) ) . public define HTML dropzone ( String dropzone_form_name, String dict_default_message, String dict_file_too_big, String param_name, WEB_Action_Name submit_action )= dropzone(dropzone_form_name, dict_default_message, dict_file_too_big, param_name, "", submit_action, []) .