Advertisement
Guest User

Untitled

a guest
May 5th, 2020
6
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.11 KB | None | 0 0
  1. class WCPFC_FieldRendered extends React.Component
  2. {constructor(props)
  3. {super(props);}
  4. initTimePicker()
  5. {const mySelf=this;jQuery('.wcpfc-time').each(function(index,elem)
  6. {const format=jQuery(elem).data('format')!=""?jQuery(elem).data('format'):"HH:i";const interval=jQuery(elem).data('interval')!=""?parseInt(jQuery(elem).data('interval')):15;const moment_format="HH:mm";const settings={min_type:jQuery(elem).data('min-type'),max_type:jQuery(elem).data('max-type'),min_value:jQuery(elem).data('min-value')?jQuery(elem).data('min-value'):0,max_value:jQuery(elem).data('max-value')?jQuery(elem).data('max-value'):0,min_offset:jQuery(elem).data('min-offset')?parseInt(jQuery(elem).data('min-offset')):0,min_offset_type:jQuery(elem).data('min-offset-type'),max_offset:jQuery(elem).data('max-offset')?parseInt(jQuery(elem).data('max-offset')):0,max_offset_type:jQuery(elem).data('max-offset-type'),min_ca_be_before_now:jQuery(elem).data('min-can-be-before-now'),max_ca_be_before_now:jQuery(elem).data('max-can-be-before-now'),};const variations=['min','max'];let values={min:undefined,max:undefined};variations.forEach(function(variation,index)
  7. {if(settings[variation+"_type"]=='relative')
  8. {const abs_value=Math.abs(settings[variation+"_offset"]);values[variation]=settings[variation+"_offset"]<0?moment(wcpfc_conf_data.current_time,moment_format).subtract(abs_value,settings[variation+"_offset_type"]).format(moment_format):moment(wcpfc_conf_data.current_time,moment_format).add(settings[variation+"_offset"],settings[variation+"_offset_type"]).format(moment_format);values[variation]=values[variation].split(':');}
  9. else
  10. {values[variation]=settings[variation+"_value"]?settings[variation+"_value"].split(':'):undefined;}});jQuery(elem).pickatime({format:format,formatSubmit:'HH:i',hiddenSuffix:'',min:values.min,max:values.max,interval:interval,onSet:(context)=>mySelf.props.onFieldDateTimeValueChange(context,this)});});}
  11. initDatePicker()
  12. {const mySelf=this;jQuery('.wcpfc-date').each(function(index,elem)
  13. {const format=jQuery(elem).data('format')!=""?jQuery(elem).data('format'):"yyyy-mm-dd";const day_values=jQuery(elem).data('days-to-disable')!=""?jQuery(elem).data('days-to-disable').split(','):[];const moment_format="YYYY-MM-DD";const settings={min_type:jQuery(elem).data('min-type'),max_type:jQuery(elem).data('max-type'),min_value:jQuery(elem).data('min-value')?jQuery(elem).data('min-value'):0,max_value:jQuery(elem).data('max-value')?jQuery(elem).data('max-value'):0,min_offset:jQuery(elem).data('min-offset')?parseInt(jQuery(elem).data('min-offset')):0,min_offset_type:jQuery(elem).data('min-offset-type'),max_offset:jQuery(elem).data('max-offset')?parseInt(jQuery(elem).data('max-offset')):0,max_offset_type:jQuery(elem).data('max-offset-type'),};const variations=['min','max'];let values={min:undefined,max:undefined};variations.forEach(function(variation,index)
  14. {if(settings[variation+"_type"]=='relative')
  15. {const abs_value=Math.abs(settings[variation+"_offset"]);values[variation]=settings[variation+"_offset"]<0?moment(wcpfc_conf_data.current_date).subtract(abs_value,settings[variation+"_offset_type"]).format(moment_format):moment(wcpfc_conf_data.current_date).add(settings[variation+"_offset"],settings[variation+"_offset_type"]).format(moment_format);values[variation]=values[variation].split('-');}
  16. else
  17. {values[variation]=settings[variation+"_value"]?settings[variation+"_value"].split('-'):undefined;}
  18. if(typeof values[variation]==='object')
  19. values[variation][1]=parseInt(values[variation][1])-1;if(typeof values[variation]==='object')
  20. values[variation].forEach(function(elem,index)
  21. {values[variation][index]=parseInt(elem);});});let days_to_disable=[];for(var i=0;i<day_values.length;i++)
  22. days_to_disable.push(parseInt(day_values[i]));jQuery(elem).pickadate({firstDay:1,format:format,formatSubmit:'yyyy-mm-dd',hiddenSuffix:'',selectMonths:true,selectYears:true,min:values.min,max:values.max,selectYears:jQuery(elem).data('num-years'),onSet:(context)=>mySelf.props.onFieldDateTimeValueChange(context,this),disable:days_to_disable});});}
  23. escapeDoubleQuotes(str)
  24. {return str.replace(/\\([\s\S])|(")/g,"\\$1$2");}
  25. initSpecialInputElements()
  26. {const mySelf=this;jQuery(".wcpfc-select").each(function(index,elem)
  27. {try
  28. {if(!jQuery(elem).hasClass("select2-hidden-accessible"))
  29. {jQuery(elem).val(null);}
  30. jQuery(elem).selectWoo({width:"",placeholder:jQuery(elem).attr('placeholder')});jQuery(elem).on("select2:select select2:unselecting",mySelf.props.onFieldValueChange);jQuery(elem).trigger("change");}catch(e){}});jQuery(".wcpfc-checkbox").each(function(index,elem)
  31. {if(elem.checked)
  32. {let argument={currentTarget:elem};mySelf.props.onFieldValueChange(argument);}});}
  33. renderOptionsForSelector(field_data,is_multiple)
  34. {const indexes=Object.keys(field_data.options.value_label);let options=[];indexes.forEach(function(elem_key,index)
  35. {options.push(<option key={index}value={field_data.options.value_label[elem_key].value}>{field_data.options.value_label[elem_key].label[wcpfc_conf_data.curr_lang]}</option>);});return options;}
  36. componentDidMount()
  37. {this.initDatePicker();this.initTimePicker();this.initSpecialInputElements();}
  38. render()
  39. {const indexes_array=this.props.indexes_array;const field_data=this.props.field_data;const index=indexes_array.join("-");const id=field_data.id+"_"+index;let output;const placeholder=field_data.options.hasOwnProperty("placeholder")?field_data.options.placeholder[wcpfc_conf_data.curr_lang]:"";const description=field_data.options.hasOwnProperty("description")?field_data.options.description[wcpfc_conf_data.curr_lang]:"";const value=field_data.options.hasOwnProperty("value")?field_data.options.value[wcpfc_conf_data.curr_lang]:"";const minute_interval_timepicker=field_data.options.hasOwnProperty("minute_interval_timepicker")?field_data.options["minute_interval_timepicker"]:"";const min_time_can_be_before_now=field_data.options.hasOwnProperty("min_time_can_be_before_now")?field_data.options["min_time_can_be_before_now"]:"";const max_time_can_be_before_now=field_data.options.hasOwnProperty("max_time_can_be_before_now")?field_data.options["max_time_can_be_before_now"]:"";const date_num_of_years=field_data.options.hasOwnProperty("date_num_of_years")?field_data.options["date_num_of_years"]:"";const is_required=field_data.options.required=='yes';const css_row_style=field_data.options.css_row_classes;const css_input_style=field_data.options.css_input_classes;const type=field_data.type;switch(field_data.type)
  40. {case 'country_state':output=<CountryState key={id}
  41. field_data={field_data}
  42. id={id}
  43. cart_key={this.props.cart_key}
  44. form_type={this.props.form_type}
  45. onFieldValueChange={this.props.onFieldValueChange}
  46. onFieldStateValueChange={this.props.onFieldStateValueChange}/>break;case 'time':case 'date':const format=field_data.options.hasOwnProperty(type+"_frontend_format")?field_data.options[type+"_frontend_format"]:"";const day_to_disable=field_data.options.hasOwnProperty("day_to_disable")?Object.getOwnPropertyNames(field_data.options["day_to_disable"]):"";output=<p key={id}className={"form-row form-row-"+field_data.options.row_width+" "+css_row_style}id={"order_"+id+"_field"}data-priority={"110"}><label htmlFor={"order_"+id}className="">{field_data.name[wcpfc_conf_data.curr_lang]}{is_required&&<abbr className="required"title="required">*</abbr>}</label><span className="woocommerce-input-wrapper"><input type="hidden"name={"order_"+id+"[cart_key]"}value={this.props.cart_key}></input><input type="hidden"name={"order_"+id+"[form_type]"}value={this.props.form_type}></input><input type="hidden"name={"order_"+id+"[field_type]"}value={field_data.type}></input><input className={"input-text wcpfc-field wcpfc-"+type+" "+css_input_style}
  47. name={"order_"+id+"[value]"}
  48. type={"text"}
  49. id={"order_"+id}
  50. data-format={format}
  51. data-interval={minute_interval_timepicker}
  52. data-min-value={field_data.options["min_"+type]}
  53. data-max-value={field_data.options["max_"+type]}
  54. data-min-type={field_data.options["min_"+type+"_type"]}
  55. data-max-type={field_data.options["max_"+type+"_type"]}
  56. data-min-offset={field_data.options["min_"+type+"_offset"]}
  57. data-max-offset={field_data.options["max_"+type+"_offset"]}
  58. data-min-offset-type={field_data.options[type+"_min_offset_type"]}
  59. data-max-offset-type={field_data.options[type+"_max_offset_type"]}
  60. data-min-before-now={field_data.options["min_"+type+"_can_be_before_now"]}
  61. data-max-before-now={field_data.options["max_"+type+"_can_be_before_now"]}
  62. data-min-can-be-before-now={min_time_can_be_before_now}
  63. data-max-can-be-before-now={max_time_can_be_before_now}
  64. data-num-years={date_num_of_years}
  65. data-days-to-disable={day_to_disable}
  66. required={is_required}></input></span>{description!=""&&<span className="description wcpfc-description">{description}</span>}</p>break;case 'checkbox':const label=field_data.options.hasOwnProperty("label")?field_data.options.label[wcpfc_conf_data.curr_lang]:"";const is_checked=field_data.options.hasOwnProperty("is_checked")?field_data.options.is_checked=='yes':false;output=<p key={id}className={"form-row form-row-"+field_data.options.row_width+" "+css_row_style}id={"order_"+id+"_field"}data-priority={"110"}><label htmlFor={"order_"+id}className="">{field_data.name[wcpfc_conf_data.curr_lang]}{is_required&&<abbr className="required"title="required">*</abbr>}</label><span className="woocommerce-input-wrapper"><input type="hidden"name={"order_"+id+"[value]"}value="is_visible"></input><input type="hidden"name={"order_"+id+"[cart_key]"}value={this.props.cart_key}></input><input type="hidden"name={"order_"+id+"[form_type]"}value={this.props.form_type}></input><input type="hidden"name={"order_"+id+"[label]"}value={this.escapeDoubleQuotes(label)}></input><input type="hidden"name={"order_"+id+"[field_type]"}value={field_data.type}></input><input required={is_required}type="checkbox"className="wcpfc-checkbox wcpfc-field"defaultChecked={is_checked}name={"order_"+id+"_checkbox"}id={"order_"+id}value="true"onChange={this.props.onFieldValueChange}></input><label className="wcpfc-checkbox-label"htmlFor={"order_"+id}>{label}</label></span>{description!=""&&<span className="description wcpfc-description">{description}</span>}</p>break;case 'select':output=<p key={id}className={"form-row form-row-"+field_data.options.row_width+" "+css_row_style}id={"order_"+id+"_field"}data-priority={"110"}><label htmlFor={"order_"+id}className="">{field_data.name[wcpfc_conf_data.curr_lang]}{is_required&&<abbr className="required"title="required">*</abbr>}</label><span className="woocommerce-input-wrapper"><input type="hidden"name={"order_"+id+"[cart_key]"}value={this.props.cart_key}></input><input type="hidden"name={"order_"+id+"[form_type]"}value={this.props.form_type}></input><input type="hidden"name={"order_"+id+"[field_type]"}value={field_data.type}></input><select required={is_required}name={"order_"+id+"[value][]"}id={"order_"+id}className={"wcpfc-select wcpfc-field "+css_input_style}multiple={field_data.options.select_multiple_selection=='yes'}placeholder={placeholder}>{this.renderOptionsForSelector(field_data,field_data.options.select_multiple_selection=='yes')}</select></span>{description!=""&&<span className="description wcpfc-description">{description}</span>}</p>break;case 'number':output=<p key={id}className={"form-row form-row-"+field_data.options.row_width+" "+css_row_style}id={"order_"+id+"_field"}data-priority={"110"}><label htmlFor={"order_"+id}className="">{field_data.name[wcpfc_conf_data.curr_lang]}{is_required&&<abbr className="required"title="required">*</abbr>}</label><span className="woocommerce-input-wrapper"><input type="hidden"name={"order_"+id+"[cart_key]"}value={this.props.cart_key}></input><input type="hidden"name={"order_"+id+"[form_type]"}value={this.props.form_type}></input><input type="hidden"name={"order_"+id+"[field_type]"}value={field_data.type}></input><input required={is_required}onChange={this.props.onFieldValueChange}className={"input-text wcpfc-field "+css_input_style}id={"order_"+id}name={"order_"+id+"[value]"}min={field_data.options.min_value}max={field_data.options.max_value}type={"number"}></input></span>{description!=""&&<span className="description wcpfc-description">{description}</span>}</p>break;case 'textarea':output=<p key={id}className={"form-row form-row-"+field_data.options.row_width+" "+css_row_style}id={"order_"+id+"_field"}data-priority={"110"}><label htmlFor={"order_"+id}className="">{field_data.name[wcpfc_conf_data.curr_lang]}{is_required&&<abbr className="required"title="required">*</abbr>}</label><span className="woocommerce-input-wrapper"><input type="hidden"name={"order_"+id+"[cart_key]"}value={this.props.cart_key}></input><input type="hidden"name={"order_"+id+"[form_type]"}value={this.props.form_type}></input><input type="hidden"name={"order_"+id+"[field_type]"}value={field_data.type}></input><textarea required={is_required}onChange={this.props.onFieldValueChange}className={"input-text wcpfc-field "+css_input_style}id={"order_"+id}name={"order_"+id+"[value]"}placeholder={placeholder}></textarea></span>{description!=""&&<span className="description wcpfc-description">{description}</span>}</p>break;case 'html':output=<div key={id}className={"form-row form-row-"+field_data.options.row_width+" "+css_row_style}id={"order_"+id+"_field"}data-priority={"110"}><div dangerouslySetInnerHTML={{__html:value}}/>{description!=""&&<span className="description wcpfc-description">{description}</span>}</div>break;default:output=<p key={id}className={"form-row form-row-"+field_data.options.row_width+" "+css_row_style}id={"order_"+id+"_field"}data-priority={"110"}><label htmlFor={"order_"+id}className="">{field_data.name[wcpfc_conf_data.curr_lang]}{is_required&&<abbr className="required"title="required">*</abbr>}</label><span className="woocommerce-input-wrapper"><input type="hidden"name={"order_"+id+"[cart_key]"}value={this.props.cart_key}></input><input type="hidden"name={"order_"+id+"[form_type]"}value={this.props.form_type}></input><input type="hidden"name={"order_"+id+"[field_type]"}value={field_data.type}></input><input required={is_required}onChange={this.props.onFieldValueChange}className={"input-text wcpfc-field "+css_input_style}id={"order_"+id}name={"order_"+id+"[value]"}placeholder={placeholder}type={"text"}></input></span>{description!=""&&<span className="description wcpfc-description">{description}</span>}</p>break;}
  67. return output;}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement