CXM_dropzone.anubis 1.8 KB
  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 calexium_lib/web/CXM_making_a_web_site.anubis
read calexium_lib/web/CXM_jquery.anubis

public define HTML_Partial_Content
  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("js/dropzone.js")), 
      css(css_file("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(dropzone_form_id, [class("dropzone")], submit_action, extra_ops, empty)
  )
.

public define HTML_Partial_Content
  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, [])
.