<% OrbitHelper.render_css_in_head(["basic/bootstrap-datetimepicker.css","property_hire_fullcalendar.css","property_hire_calendar"]) %> <%= javascript_include_tag "validator.js" %> <%= javascript_include_tag "basic/jquery.nanoscroller.js" %> <% data = action_data hire = data["hire"] property = data["property"] is_user_manager = data["is_user_manager"] url = data["page"] current_user = data["current_user"] allow_no_logins_user = data["allow_no_logins_user"] all_day_settings = data["all_day_settings"] recover = data["recover"] calendar_type = property.calendar_type.to_i rescue 0 right_col = 12 label_col = 2 input_col = 10 if calendar_type == 0 right_col -= 7 label_col += 2 input_col -= 2 end %> <% if !property.can_be_hired %> <% end %> <% if !allow_no_logins_user && current_user.nil? %> <% else %>

<%= property.title.html_safe %>

<% if property.display_img %>
<%=property.title%> <%=property.title.html_safe%>
<% end %>

<%= property.property_usage.html_safe %>

<% property_carousel_images = property.property_carousel_images %> <% if property_carousel_images.count != 0 %> <% end %>
<%= property.note.html_safe %>
<% if session["hire-save-msg"].present? %> <% session.delete("hire-save-msg") %> <% end %>
<% if property.calendar_type == 0 %>

<%= fields_for :timepicker do |f|%> <%= f.time_picker :timepicker, :no_label => true, :new_record => hire.new_record? && !recover,:format=>"HH:mm", :class => "pull-left", :data=>{"picker-type" => "range", "range" => "end"} %> <% end %>

<% end %>
<% if property.can_reserve === true || is_user_manager %> <%= form_for hire, :url => "/xhr/property_hires/make_booking", html: { class: "form-horizontal", id: "hire_form" } do |f| %> <% if property.set_availability || is_user_manager %>
<%= f.label :date, "*"+t("property_hire.date"), :class => "col-sm-#{label_col} control-label" %>
<% if calendar_type == 0 %> <%= f.text_field :date, :value=>(recover ? f.object.date.to_s : t("property_hire.please_choose_date")),:readonly=>"",:onclick=>"goto_calendar()" %> <% else %> <%= f.datetime_picker :date, :no_label => true, :new_record => hire.new_record? && !recover ,:class => "pull-left", :picker_type => "date", :format=>"yyyy/MM/dd", :data=>{ "fv-validation" => "required;", "fv-messages" => "Cannot be empty;"} %> <% end %>
<%= f.label :time, "*"+t("property_hire.time"), :class => "col-sm-#{label_col} control-label" %>
<% property_day_setting = recover ? hire.property_day_setting : nil %> <% if property_day_setting %> <%= select_tag "#{f.object_name}[time]", options_for_select([[t("property_hire.please_select"),""],[property_day_setting.title,property_day_setting.id.to_s]],hire.property_day_setting_id), :required=>"required" %> <% else %> <% if property.calendar_type == 0 %> <%= f.text_field :time, :value=>t("property_hire.please_choose_date"),:readonly=>"",:onclick=>"goto_calendar()" %> <% else %> <%= select_tag "#{f.object_name}[time]", options_for_select([[t("property_hire.please_choose_date"),""]]), :required=>"required" %> <% end %> <% end %>
<% else %>
<%= f.label :start_time, "*"+t("property_hire.start_time"), :class => "col-sm-#{label_col} control-label" %> <% if property.calendar_type == 0 %>
<%= f.datetime_picker :start_time, :no_label => true, :new_record => hire.new_record? && !recover, :class => "pull-left", :data=>{"picker-type" => "range", "range" => "start", "fv-validation" => "required;", "fv-messages" => "Cannot be empty;"} %>
<% end %>
<%= f.label :end_time, "*"+t("property_hire.end_time"), :class => "col-sm-#{label_col} control-label" %>
<%= f.datetime_picker :end_time, :no_label => true, :new_record => hire.new_record? && !recover,:class => "pull-left", :data=>{"picker-type" => "range", "range" => "end","fv-validation" => "required;", "fv-messages" => "Cannot be empty;"} %>
<% end %> <% if property.recurring_enable %>
<%= f.label :recurring, t("property_hire.recurring"), :class => "col-sm-#{label_col} control-label" %>
<%= f.check_box :recurring %>
>
<%= f.label :recurring_interval, t("property_hire.recurring_interval"), :class => "col-sm-#{label_col} control-label" %>
<%= f.select :recurring_interval, PHire::INTERVALS.collect{|int| [t("property_hire.recurring_interval_types.#{int}"), int] }, {:prompt => t('property_hire.select_interval'),:data=>{"fv-validation"=> "requiredifrecurring;", "fv-messages"=> "Cannot be empty;"}} %>
<%= f.label :recurring_end_date, "*"+t("property_hire.recurring_end_date"), :class => "col-sm-#{label_col} control-label" %>
<%= f.datetime_picker :recurring_end_date, :no_label => true, :new_record => hire.new_record? && !recover, :class=>"pull-left", :data=>{"fv-validation" => "requiredifrecurring;", "fv-messages" => "Cannot be empty;"} %> <% if calendar_type == 0 %> <% end %>
<% end %>
<% if property.set_unavailibility %>
<%= t("property_hire.Unavailibility_Schedule") %>
<%= property.render_unavailable_message%>
<% end %>
<% default_values = {"hiring_person_email" => ( current_user.member_profile.email rescue ""), "hiring_person_number" => ( current_user.member_profile.mobile_no rescue ""), "hiring_person_name" => ( current_user.name rescue "") } %> <% if recover default_values = default_values.merge(Property::FIELDSNAME.map{|f| [f,hire.send(f)]}.to_h) end %> <%= f.hidden_field :hiring_person_id, :value => (current_user.member_profile.id.to_s rescue "") %> <% custom_field_inputs = {} %> <% custom_field_type = {"note_for_hire"=>"text_area"} %> <% if(property.enable_notes_selector rescue false) %> <% custom_field_inputs["note_for_hire"] = render(:partial=>"property_hires/notes_selector",:locals=>{:f=>f,:property=>property,:label_col=>label_col,:input_col=>input_col,:hire=>nil}) %> <% end %> <% fields_name = property.get_all_fields %> <% has_p_hire_fields = property.p_hire_fields_enabled.count != 0 p_hire_fields = {} if has_p_hire_fields p_hire_fields = property.p_hire_fields_enabled.map{|rf| [rf.id.to_s,rf]}.to_h end %> <% @form_index = 0 %> <% fields_name.each do |field_name| %> <% if has_p_hire_fields && field_name.include?("p_hire_fields") %>
<% rf = p_hire_fields[field_name.sub("p_hire_fields.",'')] %> <% next if rf.nil? %> <%= rf.block_helper(property,@form_index,false,"p_hire",hire, rf.to_require,label_col) %>
<% @form_index = @form_index +1 %> <% else %> <% if(property[field_name]["enable"] == "1" rescue true) %> <% required = (property[field_name]["required"] == "true" rescue false) %> <% if custom_field_inputs[field_name] %> <%= custom_field_inputs[field_name] %> <% else %>
<%= f.label field_name, (required ? "*" : "") + property.custom_text(field_name,"name"), :class => "col-sm-#{label_col} control-label" %>
<% placeholder = property.custom_text(field_name,"placeholder") %> <% if custom_field_type[field_name] %> <%= f.send(custom_field_type[field_name], field_name , {:class => "form-control", :placeholder => placeholder, :value => default_values[field_name], :required=>(required ? 'required' : nil)}) %> <% else %> <%= f.text_field field_name, :class => "form-control", :placeholder => placeholder, :value => default_values[field_name], :required=>(required ? 'required' : nil) %> <% end %>
<% end %> <% end %> <% end %> <% end %> <% if allow_no_logins_user && current_user.nil? %>
<%= gotcha_error %> <%= gotcha %>
<% end %>
<% if f.object.id.present? %> <%= f.hidden_field :id %> <% end %>
<%= f.submit t("property_hire.save"), :class => "btn btn-primary" %> <%= f.hidden_field :property_id, :value => property.id %>
<% end %> <% end %>
<% end %>