app/views/layouts/_user_input_filter.html.haml
- url = url_for_only_path(:action => 'quick_search')
#user_input_filter
- if @edit
.modal-dialog.modal-lg
.modal-content
.modal-header
%button.close{"data-dismiss" => "modal"}
%span{"aria-hidden" => "true"}
×
%span.sr-only
Close
%h4.modal-title#qs_label
= @edit.fetch_path(@expkey, :selected, :description)
.modal-body
- if @qs_exp_table
- @qs_exp_table.each do |part|
- if !%w(AND OR NOT ( )).include?([part].flatten.first)
- if part.kind_of?(Array) && part.first == :user_input
- token = part.last
- if @edit[:qs_tokens][token].key?(:field)
- if @edit[:qs_tokens][token][:value_type] == :boolean && @edit[:qs_tokens][token][:value].present?
= select_tag("value_#{token}",
options_for_select([_("<Choose>")] + MiqExpression.get_entry_details(@edit[:qs_tokens][token][:tag]).sort_by { |desc, _name| desc.downcase },
nil),
:multiple => false,
:class => "selectpicker",
"data-miq_sparkle_on" => true,
"data-miq_sparkle_off" => true,
"data-miq_observe" => {:url => url}.to_json)
:javascript
miqInitSelectPicker();
miqSelectPickerEvent("value_#{token}", "#{url}")
- else
- if @edit[:qs_tokens][token][:value_type] == :boolean
= select_tag("value_#{token}",
options_for_select([[_("<Choose>"), nil],[_('False'), false], [_('True'), true]], nil),
:multiple => false,
:class => "selectpicker",
"data-miq_sparkle_on" => true,
"data-miq_sparkle_off" => true,
"data-miq_observe" => {:url => url}.to_json)
:javascript
miqInitSelectPicker();
miqSelectPickerEvent("value_#{token}", "#{url}")
- else
= text_field_tag("value_#{token}", nil,
:maxlength => 500,
:onkeyup => "miqQsEnterEscape(event);",
"data-miq_observe" => {:interval => '.5',
:url => url}.to_json,
:placeholder => ("true/false" if @edit[:qs_tokens][token][:value_type] == :boolean))
- if @edit[:qs_tokens][token][:value_type] == :percent
= "%"
- elsif @edit[:qs_tokens][token][:value_type] == :megabytes
= "MB"
- elsif MiqExpression::FORMAT_SUB_TYPES[@edit[:qs_tokens][token][:value_type]][:units]
= select_tag("suffix_#{token}",
options_for_select(MiqExpression::FORMAT_SUB_TYPES[@edit[:qs_tokens][token][:value_type]][:units],
nil),
:multiple => false,
:class => "selectpicker",
"data-miq_sparkle_on" => true,
"data-miq_sparkle_off" => true,
"data-miq_observe" => {:url => url}.to_json)
:javascript
miqInitSelectPicker();
miqSelectPickerEvent("suffix_#{token}", "#{url}")
- elsif @edit[:qs_tokens][token].key?(:tag)
= select_tag("value_#{token}",
options_for_select([_("<Choose>")] + MiqExpression.get_entry_details(@edit[:qs_tokens][token][:tag]).sort { |a, b| a.first.downcase <=> b.first.downcase },
nil),
:multiple => false,
:class => "selectpicker",
"data-miq_sparkle_on" => true,
"data-miq_sparkle_off" => true,
"data-miq_observe" => {:url => url}.to_json)
:javascript
miqInitSelectPicker();
miqSelectPickerEvent("value_#{token}", "#{url}")
- elsif @edit[:qs_tokens][token].key?(:count)
= text_field_tag("value_#{token}", nil,
:maxlength => 500,
:onkeyup => "miqQsEnterEscape(event);",
"data-miq_observe" => {:interval => '.5',
:url => url}.to_json)
- else
= h([part].flatten.first)
- else
%font{:color => "red"}
%b= h([part].flatten.first)
.modal-footer
%div
%span#quick_search_buttons_off
= button_tag(_("Apply"),
:class => "btn btn-primary disabled",
:alt => t = _("No input to apply"),
:title => t)
%span#quick_search_buttons_on{:style => "display:none;"}
= link_to(_("Apply"),
{:action => "quick_search",
:button => "apply"},
:class => "btn btn-primary",
:alt => t = _("Apply the current filter (Enter)"),
"data-dismiss" => "modal",
"data-miq_sparkle_on" => true,
"data-miq_sparkle_off" => true,
:remote => true,
"data-method" => :post,
:id => "apply_button",
:title => t)
= link_to(_('Cancel'),
{:action => "quick_search",
:button => "cancel"},
:class => "btn btn-default",
:alt => t = _('Cancel (Esc)'),
:remote => true,
"data-method" => :post,
:id => "cancel_button",
:title => t)
:javascript
$(function(){
$('#quicksearchbox').on('shown.bs.modal', function() {
// autofocus, but not a select as focusing hidden select breaks pf-select
$('#value_1').not('select').focus();
});
$('#quicksearchbox').off("click");
$('#quicksearchbox').on('click', '[data-dismiss="modal"]', function(event) {
if (event && event.target && event.target.id == 'apply_button') {
// don't cancel on Apply, but still close the modal
return true;
}
miqJqueryRequest("quick_search?button=cancel", {beforeSend: true});
return true;
});
});