|
@@ -1,12 +1,16 @@
|
|
|
var _textarea_class = "materialize-textarea "
|
|
|
var _input_class = "validate "
|
|
|
-var _button_class = "waves-effect waves-light btn ";
|
|
|
+var _button_class = "input-field btn ";
|
|
|
var _icon_class = "material-icons "
|
|
|
var _row_class = "row "
|
|
|
var _subcat_class = "subCat col s12 ";
|
|
|
var _areapicker_class = "areaPicker "
|
|
|
-var _switch_class = "switch "
|
|
|
+var _switch_class = "input-field switch "+_col_class()
|
|
|
var _lever_class = "lever "
|
|
|
+var _file_input_class = "file-field input-field "
|
|
|
+var _file_path_wrapper_class = "file-path-wrapper "
|
|
|
+var _file_path_class = "file-path-wrapper "
|
|
|
+var _inline_fields = "input-field "+_col_class()
|
|
|
function mergeCalss(obj={}, classes="", id=undefined)
|
|
|
{
|
|
|
obj.id=id;
|
|
@@ -16,6 +20,11 @@ function mergeCalss(obj={}, classes="", id=undefined)
|
|
|
}
|
|
|
var mc = mergeCalss;
|
|
|
|
|
|
+function setDef(obj, field, value)
|
|
|
+{
|
|
|
+ if(obj[field]==undefined) obj[field]=value;
|
|
|
+}
|
|
|
+
|
|
|
function _col_class(size, offset)
|
|
|
{
|
|
|
var out = "col "
|
|
@@ -56,17 +65,10 @@ class HTMLBuilder {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- static elem(elem, prop)
|
|
|
- {
|
|
|
- var o = $('<'+elem+'></'+elem+'>')
|
|
|
- this.setAttr(o, prop)
|
|
|
- return o;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- static div(obj={}, son=undefined)
|
|
|
+ static elem(elem, prop, son=undefined)
|
|
|
{
|
|
|
- var d = this.elem('div', obj);;
|
|
|
+ var d = $('<'+elem+'></'+elem+'>')
|
|
|
+ this.setAttr(d, prop)
|
|
|
if(son)
|
|
|
{
|
|
|
if(son instanceof String) d.html(son);
|
|
@@ -77,16 +79,15 @@ class HTMLBuilder {
|
|
|
}
|
|
|
|
|
|
|
|
|
- static span(obj={}, son=undefined)
|
|
|
+ static div(obj={}, son=undefined)
|
|
|
{
|
|
|
- var d = this.elem('span', obj);;
|
|
|
- if(son)
|
|
|
- {
|
|
|
- if(son instanceof String) d.html(son);
|
|
|
- else d.append(son);
|
|
|
- }
|
|
|
+ return this.elem('div', obj, son);
|
|
|
+ }
|
|
|
|
|
|
- return d;
|
|
|
+
|
|
|
+ static span(obj={}, son=undefined)
|
|
|
+ {
|
|
|
+ return this.elem('span', obj, son);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -254,7 +255,7 @@ class HTMLBuilder {
|
|
|
*/
|
|
|
static switch(data={}, prop={}, iprop={})
|
|
|
{
|
|
|
- var div = HTMLBuilder.div(mc(prop, _switch_class));
|
|
|
+ var div = HTMLBuilder.div(mc(prop, _switch_class+_col_class(2)));
|
|
|
//div.append(HTMLBuilder.br());
|
|
|
var lbl = HTMLBuilder.elem('label');
|
|
|
div.append(lbl);
|
|
@@ -278,4 +279,62 @@ class HTMLBuilder {
|
|
|
lbl.append(HTMLBuilder.span({}, data.label));
|
|
|
return p;
|
|
|
}
|
|
|
+
|
|
|
+ static p(text, prop={})
|
|
|
+ {
|
|
|
+ return this.elem('p', prop, text);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*
|
|
|
+ * data {
|
|
|
+ id,
|
|
|
+ btnLabel,
|
|
|
+ placeholder
|
|
|
+ }
|
|
|
+ props:{
|
|
|
+ form:
|
|
|
+ fileDiv:
|
|
|
+ }
|
|
|
+ *
|
|
|
+ */
|
|
|
+ static file(data={}, props={})
|
|
|
+ {
|
|
|
+ /*<form action="#">
|
|
|
+ <div class="file-field input-field">
|
|
|
+ <div class="btn">
|
|
|
+ <span>File</span>
|
|
|
+ <input type="file">
|
|
|
+ </div>
|
|
|
+ <div class="file-path-wrapper">
|
|
|
+ <input class="file-path validate" type="text">
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </form>*/
|
|
|
+ setDef(data, "btnLabel", "Ouvrir")
|
|
|
+ setDef(props, "form", {})
|
|
|
+ setDef(props, "btnDiv", {})
|
|
|
+ var form = HTMLBuilder.elem('form', props.form);
|
|
|
+ var wrapperDiv= HTMLBuilder.div({class: _row_class+_inline_fields});
|
|
|
+
|
|
|
+ if(data.placeholder)
|
|
|
+ {
|
|
|
+ wrapperDiv.append(HTMLBuilder.div({class:_col_class()+_inline_fields},
|
|
|
+ HTMLBuilder.p(data.placeholder)));
|
|
|
+ }
|
|
|
+ var fileDiv = HTMLBuilder.div(mc(props.fileDiv, _file_input_class+_col_class()))
|
|
|
+ var btnDiv= HTMLBuilder.div({class: "btn "});
|
|
|
+ btnDiv.append(HTMLBuilder.span({}, data.btnLabel));
|
|
|
+ btnDiv.append(HTMLBuilder.input('file', {id: data.id+"_f"}));
|
|
|
+ fileDiv.append(btnDiv);
|
|
|
+
|
|
|
+ var textDiv = HTMLBuilder.div({class: _file_path_wrapper_class});
|
|
|
+ textDiv.append(HTMLBuilder.input('text',
|
|
|
+ {id: data.id+"_fp", class: _file_path_class})
|
|
|
+ );
|
|
|
+ fileDiv.append(textDiv);
|
|
|
+ wrapperDiv.append(fileDiv);
|
|
|
+ wrapperDiv.append(HTMLBuilder.iconButton('cloud_upload', {class: _col_class()+_inline_fields}));
|
|
|
+ form.append(wrapperDiv);
|
|
|
+ return form;
|
|
|
+ }
|
|
|
}
|