rails_admin-0.7.0/0000755000076400007640000000000012570225417013041 5ustar pravipravirails_admin-0.7.0/app/0000755000076400007640000000000012570225417013621 5ustar pravipravirails_admin-0.7.0/app/views/0000755000076400007640000000000012570225417014756 5ustar pravipravirails_admin-0.7.0/app/views/kaminari/0000755000076400007640000000000012570225417016551 5ustar pravipravirails_admin-0.7.0/app/views/kaminari/twitter-bootstrap/0000755000076400007640000000000012570225417022266 5ustar pravipravirails_admin-0.7.0/app/views/kaminari/twitter-bootstrap/_next_page.html.haml0000644000076400007640000000026712570225417026212 0ustar pravipravi- if current_page.last? %li.next.disabled= link_to raw(t 'admin.pagination.next'), '#' - else %li.next= link_to raw(t 'admin.pagination.next'), url, class: (remote ? 'pjax' : '') rails_admin-0.7.0/app/views/kaminari/twitter-bootstrap/_page.html.haml0000644000076400007640000000022112570225417025142 0ustar pravipravi- if page.current? %li.active= link_to page, url, class: (remote ? 'pjax' : '') - else %li= link_to page, url, class: (remote ? 'pjax' : '') rails_admin-0.7.0/app/views/kaminari/twitter-bootstrap/_paginator.html.haml0000644000076400007640000000037612570225417026225 0ustar pravipravi= paginator.render do %ul.pagination = prev_page_tag - each_page do |page| - if page.left_outer? or page.right_outer? or page.inside_window? = page_tag page - elsif !page.was_truncated? = gap_tag = next_page_tag rails_admin-0.7.0/app/views/kaminari/twitter-bootstrap/_gap.html.haml0000644000076400007640000000010112570225417024772 0ustar pravipravi%li.disabled %a{href: '#'}= raw(t 'admin.pagination.truncate') rails_admin-0.7.0/app/views/kaminari/twitter-bootstrap/_prev_page.html.haml0000644000076400007640000000030012570225417026174 0ustar pravipravi- if current_page.first? %li.prev.disabled= link_to raw(t 'admin.pagination.previous'), '#' - else %li.prev= link_to raw(t 'admin.pagination.previous'), url, class: (remote ? 'pjax' : '') rails_admin-0.7.0/app/views/rails_admin/0000755000076400007640000000000012570225417017240 5ustar pravipravirails_admin-0.7.0/app/views/rails_admin/main/0000755000076400007640000000000012570225417020164 5ustar pravipravirails_admin-0.7.0/app/views/rails_admin/main/_form_boolean.html.haml0000644000076400007640000000035312570225417024574 0ustar pravipravi.checkbox %label{ style: 'display: block;' } = form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({ value: field.form_value, checked: field.form_value.in?([true, '1']), required: field.required}) rails_admin-0.7.0/app/views/rails_admin/main/_form_nested_many.html.haml0000644000076400007640000000200512570225417025457 0ustar pravipravi.controls.col-sm-10{data: { nestedmany: true }} .btn-group %a.btn.btn-info.toggler{:'data-toggle' => "button", :'data-target' => "#{form.jquery_namespace(field)} > .tab-content, #{form.jquery_namespace(field)} > .controls > .nav", class: (field.active? ? 'active' : '')} %i.icon-white - unless field.nested_form[:update_only] || !field.inline_add = form.link_to_add " #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".html_safe, field.name, { class: 'btn btn-info' } = form.errors_for(field) = form.help_for(field) %ul.nav.nav-tabs .tab-content = form.fields_for field.name do |nested_form| - if field.nested_form[:allow_destroy] || nested_form.options[:child_index] == "new_#{field.name}" = nested_form.link_to_remove ''.html_safe = nested_form.generate({action: :nested, model_config: field.associated_model_config, nested_in: field }) rails_admin-0.7.0/app/views/rails_admin/main/_form_filtering_select.html.haml0000644000076400007640000000455112570225417026503 0ustar pravipravi:ruby config = field.associated_model_config related_id = params[:associations] && params[:associations][field.name.to_s] source_abstract_model = RailsAdmin.config(form.object.class).abstract_model if form.object.new_record? && related_id.present? && related_id != 'new' selected = config.abstract_model.get(related_id) selected_id = selected.send(field.associated_primary_key) selected_name = selected.send(field.associated_object_label_method) else selected_id = field.selected_id selected_name = field.formatted_value end current_action = params[:action].in?(['create', 'new']) ? 'create' : 'update' edit_url = authorized?(:edit, config.abstract_model) ? edit_path(model_name: config.abstract_model.to_param, modal: true, id: '__ID__') : '' xhr = !field.associated_collection_cache_all collection = xhr ? [[selected_name, selected_id]] : controller.list_entries(config, :index, field.associated_collection_scope, false).map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] } js_data = { xhr: xhr, remote_source: index_path(config.abstract_model.to_param, source_object_id: form.object.id, source_abstract_model: source_abstract_model.to_param, associated_collection: field.name, current_action: current_action, compact: true) } - selected_id = (hdv = field.form_default_value).nil? ? selected_id : hdv = form.select field.method_name, collection, { selected: selected_id, include_blank: true }, field.html_attributes.reverse_merge({ data: { filteringselect: true, options: js_data.to_json }, placeholder: t('admin.misc.search') }) - if authorized?(:new, config.abstract_model) && field.inline_add - path_hash = { model_name: config.abstract_model.to_param, modal: true } - path_hash.merge!({ associations: { field.inverse_of => (form.object.persisted? ? form.object.id : 'new') } }) if field.inverse_of = link_to " ".html_safe + wording_for(:link, :new, config.abstract_model), '#', data: { link: new_path(path_hash) }, class: "btn btn-info create", style: 'margin-left:10px' - if edit_url.present? && field.inline_edit = link_to " ".html_safe + wording_for(:link, :edit, config.abstract_model), '#', data: { link: edit_url }, class: "btn btn-info update #{field.value.nil? && 'disabled'}", style: 'margin-left:10px' rails_admin-0.7.0/app/views/rails_admin/main/edit.html.haml0000644000076400007640000000037712570225417022726 0ustar pravipravi= rails_admin_form_for @object, url: edit_path(@abstract_model, @object.id), as: @abstract_model.param_key, html: { method: "put", multipart: true, class: "form-horizontal denser", data: { title: @page_name } } do |form| = form.generate action: :update rails_admin-0.7.0/app/views/rails_admin/main/_form_field.html.haml0000644000076400007640000000024312570225417024236 0ustar pravipravi= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({ value: field.form_value, class: 'form-control', required: field.required}) rails_admin-0.7.0/app/views/rails_admin/main/new.html.haml0000644000076400007640000000037012570225417022563 0ustar pravipravi= rails_admin_form_for @object, url: new_path(model_name: @abstract_model.to_param), as: @abstract_model.param_key, html: { multipart: true, class: "form-horizontal denser", data: { title: @page_name } } do |form| = form.generate action: :create rails_admin-0.7.0/app/views/rails_admin/main/delete.html.haml0000644000076400007640000000156412570225417023242 0ustar pravipravi%h4 = t("admin.form.are_you_sure_you_want_to_delete_the_object", model_name: @abstract_model.pretty_name.downcase) “ %strong>= @model_config.with(object: @object).object_label \” %span> = t("admin.form.all_of_the_following_related_items_will_be_deleted") %ul= render partial: "delete_notice", object: @object = form_for(@object, url: delete_path(model_name: @abstract_model.to_param, id: @object.id), html: {method: "delete"}) do %input{type: :hidden, name: 'return_to', value: (params[:return_to].presence || request.referer)} .form-actions %button.btn.btn-danger{type: "submit", :'data-disable-with' => t("admin.form.confirmation")} %i.icon-white.icon-ok = t("admin.form.confirmation") %button.btn{type: "submit", name: "_continue", :'data-disable-with' => t("admin.form.cancel")} %i.icon-remove = t("admin.form.cancel") rails_admin-0.7.0/app/views/rails_admin/main/_form_datetime.html.haml0000644000076400007640000000031412570225417024746 0ustar pravipravi.form-inline = form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({ value: field.form_value, data: { datetimepicker: true, options: field.js_plugin_options.to_json } }) rails_admin-0.7.0/app/views/rails_admin/main/_form_colorpicker.html.haml0000644000076400007640000000026112570225417025467 0ustar pravipravi= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({value: field.form_value, style: "background-color: #{field.color}", data: {color: true}}) rails_admin-0.7.0/app/views/rails_admin/main/_form_text.html.haml0000644000076400007640000000032412570225417024137 0ustar pravipravi= form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: false, options: {}.to_json }).reverse_merge({ value: field.form_value, class: 'form-control', required: field.required }) rails_admin-0.7.0/app/views/rails_admin/main/index.html.haml0000644000076400007640000002066012570225417023105 0ustar pravipravi:ruby require 'rails_admin/config/fields/types/datetime.rb' query = params[:query] params = request.params.except(:authenticity_token, :action, :controller, :utf8, :bulk_export, :_pjax) params.delete(:query) if params[:query].blank? params.delete(:sort_reverse) unless params[:sort_reverse] == 'true' sort_reverse = params[:sort_reverse] sort = params[:sort] params.delete(:sort) if params[:sort] == @model_config.list.sort_by.to_s export_action = RailsAdmin::Config::Actions.find(:export, { controller: self.controller, abstract_model: @abstract_model }) export_action = nil unless export_action && authorized?(export_action.authorization_key, @abstract_model) description = RailsAdmin.config(@abstract_model.model_name).description properties = @model_config.list.with(controller: self.controller, view: self, object: @abstract_model.model.new).visible_fields # columns paginate @filterable_fields = @model_config.list.fields.select(&:filterable?) sets = get_column_sets(properties) properties = sets[params[:set].to_i] || [] other_left = ((params[:set].to_i - 1) >= 0) && sets[params[:set].to_i - 1].present? other_right = sets[params[:set].to_i + 1].present? @index = 0 @ordered_filters = (params[:f] || @model_config.list.filters).inject({}) { |memo, filter| field_name = filter.is_a?(Array) ? filter.first : filter (filter.is_a?(Array) ? filter.last : { (@index += 1) => { "v" => '' } }) .each do |index, filter_hash| unless filter_hash['disabled'] memo[index] = { field_name => filter_hash } else params[:f].delete(field_name) end end memo }.to_a.sort_by(&:first) @ordered_filter_string = @ordered_filters.map do |duplet| filter_index = duplet[0] filter_for_field = duplet[1] filter_name = filter_for_field.keys.first filter_hash = filter_for_field.values.first field = @filterable_fields.find{ |field| field.name == filter_name.to_sym } unless field fail "#{filter_name} is not currently filterable; filterable fields are #{@filterable_fields.map(&:name).join(', ')}" end field_options = case field.type when :enum options_for_select(field.with(object: @abstract_model.model.new).enum, filter_hash['v']) else '' end %{ $.filters.append(#{field.label.to_json}, #{field.name.to_json}, #{field.type.to_json}, #{filter_hash['v'].to_json}, #{filter_hash['o'].to_json}, #{field_options.to_json}, #{filter_index.to_json}); } end.join.html_safe if @ordered_filters = content_for :contextual_tabs do = bulk_menu - if @filterable_fields.present? %li.dropdown{style: 'float:right'} %a.dropdown-toggle{href: '#', :'data-toggle' => "dropdown"} = t('admin.misc.add_filter') %b.caret %ul.dropdown-menu#filters{style: 'left:auto; right:0;'} - @filterable_fields.each do |field| - field_options = case field.type - when :enum - options_for_select(field.with(object: @abstract_model.model.new).enum) - else - '' %li %a{href: '#', :"data-field-label" => field.label, :"data-field-name" => field.name, :"data-field-options" => field_options.html_safe, :"data-field-type" => field.type, :"data-field-value" => ""}= capitalize_first_letter(field.label) #list %script jQuery(function($) { $.filters.options.regional = { datePicker: { dateFormat: #{raw I18n.t("admin.misc.filter_date_format", default: I18n.t("admin.misc.filter_date_format", locale: :en)).to_json}, dayNames: #{raw RailsAdmin::Config::Fields::Types::Datetime.day_names.to_json}, dayNamesShort: #{raw RailsAdmin::Config::Fields::Types::Datetime.abbr_day_names.to_json}, dayNamesMin: #{raw RailsAdmin::Config::Fields::Types::Datetime.abbr_day_names.to_json}, firstDay: "1", monthNames: #{raw RailsAdmin::Config::Fields::Types::Datetime.month_names.to_json}, monthNamesShort: #{raw RailsAdmin::Config::Fields::Types::Datetime.abbr_month_names.to_json} } } = @ordered_filter_string }); %style - properties.select{ |p| p.column_width.present? }.each do |property| = "#list th.#{property.css_class} { width: #{property.column_width}px; min-width: #{property.column_width}px; }" = "#list td.#{property.css_class} { max-width: #{property.column_width}px; }" = form_tag(index_path(params.except(*%w[page f query])), method: :get, class: "pjax-form form-inline") do .well %span#filters_box %hr.filters_box{style: "display:#{@ordered_filters.empty? ? 'none' : 'block'}"} .input-group %input.form-control.input-small{name: "query", type: "search", value: query, placeholder: t("admin.misc.filter")} %span.input-group-btn %button.btn.btn-primary{type: "submit", :'data-disable-with' => " ".html_safe + t("admin.misc.refresh")} %i.icon-white.icon-refresh = t("admin.misc.refresh") %button#remove_filter.btn.btn-info{title: "Reset filters"} %i.icon-white.icon-remove - if export_action %span{style: 'float:right'}= link_to wording_for(:link, export_action), export_path(params.except('set').except('page')), class: 'btn btn-info' - unless @model_config.list.scopes.empty? %ul.nav.nav-tabs#scope_selector - @model_config.list.scopes.each_with_index do |scope, index| - scope = '_all' if scope.nil? %li{class: "#{'active' if scope.to_s == params[:scope] || (params[:scope].blank? && index == 0)}"} %a{href: index_path(params.merge(scope: scope, page: nil)), class: 'pjax'}= I18n.t("admin.scopes.#{@abstract_model.to_param}.#{scope}", default: I18n.t("admin.scopes.#{scope}", default: scope.to_s.titleize)) = form_tag bulk_action_path(model_name: @abstract_model.to_param), method: :post, id: "bulk_form", class: "form" do = hidden_field_tag :bulk_action - if description.present? #{description} %table.table.table-condensed.table-striped %thead %tr %th.shrink %input.toggle{type: "checkbox"} - if other_left %th.other.left.shrink= "..." - properties.each do |property| - selected = (sort == property.name.to_s) - if property.sortable - sort_location = index_path params.except('sort_reverse').except('page').merge(sort: property.name).merge(selected && sort_reverse != "true" ? {sort_reverse: "true"} : {}) - sort_direction = (sort_reverse == 'true' ? "headerSortUp" : "headerSortDown" if selected) %th{class: "#{property.sortable && "header pjax" || nil} #{sort_direction if property.sortable && sort_direction} #{property.css_class} #{property.type_css_class}", :'data-href' => (property.sortable && sort_location), rel: "tooltip", title: "#{property.hint}"}= capitalize_first_letter(property.label) - if other_right %th.other.right.shrink= "..." %th.last.shrink %tbody - @objects.each do |object| %tr{class: "#{@abstract_model.param_key}_row"} %td = check_box_tag "bulk_ids[]", object.id, false - if @other_left_link ||= other_left && index_path(params.except('set').merge(params[:set].to_i != 1 ? {set: (params[:set].to_i - 1)} : {})) %td.other.left= link_to "...", @other_left_link, class: 'pjax' - properties.map{ |property| property.bind(:object, object) }.each do |property| - value = property.pretty_value %td{class: "#{property.css_class} #{property.type_css_class}", title: strip_tags(value.to_s)}= value - if @other_right_link ||= other_right && index_path(params.merge(set: (params[:set].to_i + 1))) %td.other.right= link_to "...", @other_right_link, class: 'pjax' %td.last.links %ul.inline.list-inline= menu_for :member, @abstract_model, object, true - if @objects.respond_to?(:total_count) - total_count = @objects.total_count.to_i .row .col-md-6= paginate(@objects, theme: 'twitter-bootstrap', remote: true) .row .col-md-6= link_to(t("admin.misc.show_all"), index_path(params.merge(all: true)), class: "show-all btn btn-default clearfix pjax") unless total_count > 100 || total_count <= @objects.to_a.size .clearfix.total-count= "#{total_count} #{@model_config.pluralize(total_count).downcase}" - else .clearfix.total-count= "#{@objects.size} #{@model_config.pluralize(@objects.size).downcase}" rails_admin-0.7.0/app/views/rails_admin/main/_form_file_upload.html.haml0000644000076400007640000000157012570225417025442 0ustar pravipravi- file = form.object.send(field.method_name).presence .toggle{style: ('display:none;' if file && field.delete_method && form.object.send(field.delete_method) == '1')} - if value = field.pretty_value = value = form.file_field(field.name, field.html_attributes.reverse_merge({ data: { fileupload: true }})) - if field.optional? && field.errors.blank? && file && field.delete_method %a.btn.btn-info.btn-remove-image{href: '#', :'data-toggle' => 'button', role: 'button', onclick: "$(this).siblings('[type=checkbox]').click(); $(this).siblings('.toggle').toggle('slow'); jQuery(this).toggleClass('btn-danger btn-info'); return false;"} %i.icon-white.icon-trash = I18n.t('admin.actions.delete.menu').capitalize + " #{field.label.downcase}" = form.check_box(field.delete_method, style: 'display:none;') - if field.cache_method = form.hidden_field(field.cache_method) rails_admin-0.7.0/app/views/rails_admin/main/export.html.haml0000644000076400007640000001235112570225417023315 0ustar pravipravi- params = request.params.except(:action, :controller, :utf8, :page, :per_page, :format, :authenticity_token) - visible_fields = @model_config.export.with(view: self, object: @abstract_model.model.new, controller: self.controller).visible_fields = form_tag export_path(params.merge(all: true)), method: 'post', class: 'form-horizontal denser' do %input{name: "send_data", type: "hidden", value: "true"}/ %fieldset{id: 'fields_to_export'} %legend %i.icon-chevron-down = t('admin.export.select') .form-group.control-group .controls .col-sm-2 %label.col-sm-10.checkbox{for: 'check_all'} = check_box_tag 'all', 'all', true, { id: 'check_all' } = t('admin.export.select_all_fields') .form-group.control-group %label.col-sm-2.control-label{rel: 'tooltip', :'data-original-title' => t('admin.export.click_to_reverse_selection'), onclick: 'jQuery(this).siblings(".controls").find("input").click()'}= t('admin.export.fields_from', name: @model_config.label_plural.downcase) .col-sm-10.controls - visible_fields.select{ |f| !f.association? || f.association.polymorphic? }.each do |field| - list = field.virtual? ? 'methods' : 'only' - if field.association? && field.association.polymorphic? %label.checkbox{for: "schema_#{list}_#{field.method_name}"} = check_box_tag "schema[#{list}][]", field.method_name, true, { id: "schema_#{list}_#{field.method_name}" } = field.label + " [id]" - polymorphic_type_column_name = @abstract_model.properties.detect {|p| field.association.foreign_type == p.name }.name %label.checkbox{for: "schema_#{list}_#{polymorphic_type_column_name}"} = check_box_tag "schema[#{list}][]", polymorphic_type_column_name, true, { id: "schema_#{list}_#{polymorphic_type_column_name}" } = capitalize_first_letter(field.label) + " [type]" - else %label.checkbox{for: "schema_#{list}_#{field.name}"} = check_box_tag "schema[#{list}][]", field.name, true, { id: "schema_#{list}_#{field.name}" } = capitalize_first_letter(field.label) - visible_fields.select{ |f| f.association? && !f.association.polymorphic? }.each do |field| - fields = field.associated_model_config.export.with(controller: self.controller, view: self, object: (associated_model = field.associated_model_config.abstract_model.model).new).visible_fields.select{ |f| !f.association? } .form-group.control-group %label.col-sm-2.control-label{rel: 'tooltip', :'data-original-title' => t('admin.export.click_to_reverse_selection'), onclick: 'jQuery(this).siblings(".controls").find("input").click()'}= t('admin.export.fields_from_associated', name: field.label.downcase) .col-sm-10.controls - fields.each do |associated_model_field| - list = associated_model_field.virtual? ? 'methods' : 'only' %label.checkbox{for: "schema_include_#{field.name}_#{list}_#{associated_model_field.name}"} = check_box_tag "schema[include][#{field.name}][#{list}][]", associated_model_field.name, true, { id: "schema_include_#{field.name}_#{list}_#{associated_model_field.name}" } = capitalize_first_letter(associated_model_field.label) %fieldset %legend %i.icon-chevron-down = t('admin.export.options_for', name: 'csv') .form-group.control-group - guessed_encoding = @abstract_model.encoding %label.col-sm-2.control-label{for: "csv_options_encoding_to"}= t('admin.export.csv.encoding_to') .col-sm-10.controls -# from http://books.google.com/support/partner/bin/answer.py?answer=30990 : = select_tag 'csv_options[encoding_to]', options_for_select(RailsAdmin::CSVConverter::TARGET_ENCODINGS), include_blank: true %p.help-block= t('admin.export.csv.encoding_to_help', name: guessed_encoding) .form-group.control-group %label.col-sm-2.control-label{for: "csv_options_skip_header"}= t('admin.export.csv.skip_header') .col-sm-10.controls %label.checkbox = check_box_tag 'csv_options[skip_header]', 'true' %p.help-block= t('admin.export.csv.skip_header_help') .form-group.control-group %label.col-sm-2.control-label{for: "csv_options_generator_col_sep"}= t('admin.export.csv.col_sep') .col-sm-10.controls = select_tag 'csv_options[generator][col_sep]', options_for_select({ '' => t('admin.export.csv.default_col_sep'), " ','" => ',', " ';'" => ';', '' => "'\t'" }) %p.help-block= t('admin.export.csv.col_sep_help', value: t('admin.export.csv.default_col_sep')) .form-group.form-actions .col-sm-offset-2.col-sm-10 %input{type: :hidden, name: 'return_to', value: (params[:return_to].presence || request.referer)} %button.btn.btn-primary{type: "submit", name: 'csv'} %i.icon-white.icon-ok = t("admin.export.confirmation", name: 'csv') %button.btn.btn-info{type: "submit", name: 'json'} = t("admin.export.confirmation", name: 'json') %button.btn.btn-info{type: "submit", name: 'xml'} = t("admin.export.confirmation", name: 'xml') %button.btn{type: "submit", name: "_continue"} %i.icon-remove = t("admin.form.cancel") rails_admin-0.7.0/app/views/rails_admin/main/bulk_delete.html.haml0000644000076400007640000000120412570225417024246 0ustar pravipravi%h4= I18n.t('admin.form.bulk_delete') %ul= render partial: "delete_notice", collection: @objects = form_tag bulk_delete_path(model_name: @abstract_model.to_param, bulk_ids: @objects.map(&:id)), method: :delete do .form-actions %input{type: :hidden, name: 'return_to', value: (params[:return_to].presence || request.referer)} %button.btn.btn-danger{type: "submit", :'data-disable-with' => t("admin.form.confirmation")} %i.icon-white.icon-ok = t("admin.form.confirmation") %button.btn{type: "submit", name: "_continue", :'data-disable-with' => t("admin.form.cancel")} %i.icon-remove = t("admin.form.cancel") rails_admin-0.7.0/app/views/rails_admin/main/dashboard.html.haml0000644000076400007640000000365112570225417023726 0ustar pravipravi- if @abstract_models %table.table.table-condensed.table-striped %thead %tr %th.shrink.model-name= t "admin.table_headers.model_name" %th.shrink.last-used= t "admin.table_headers.last_used" %th.records= t "admin.table_headers.records" %th.shrink.controls %tbody - @abstract_models.each do |abstract_model| - if authorized? :index, abstract_model - index_path = index_path(model_name: abstract_model.to_param) - row_class = "#{cycle("odd", "even")}#{" link" if index_path} #{abstract_model.param_key}_links" %tr{class: row_class, :"data-link" => index_path} - last_used = @most_recent_changes[abstract_model.model.name] - active = last_used.try(:today?) %td %span.show= link_to capitalize_first_letter(abstract_model.config.label_plural), index_path, class: 'pjax' %td - if last_used = time_ago_in_words last_used = t "admin.misc.ago" %td - count = @count[abstract_model.model.name] - percent = count > 0 ? (@max <= 1 ? count : ((Math.log(count+1) * 100.0) / Math.log(@max+1)).to_i) : -1 .progress{style: "margin-bottom:0px", class: "progress-#{get_indicator(percent)} #{active && 'active progress-striped'}" } .progress-bar.animate-width-to{:class => "progress-bar-#{get_indicator(percent)}", :'data-animate-length' => ([1.0, percent].max.to_i * 20), :'data-animate-width-to' => "#{[2.0, percent].max.to_i}%", style: "width:2%"} = @count[abstract_model.model.name] %td.links %ul.inline.list-inline= menu_for :collection, abstract_model, nil, true - if @auditing_adapter && authorized?(:history_index) #block-tables.block .content %h2= t("admin.actions.history_index.menu") = render partial: 'rails_admin/main/dashboard_history' rails_admin-0.7.0/app/views/rails_admin/main/_form_filtering_multiselect.html.haml0000644000076400007640000000505212570225417027553 0ustar pravipravi:ruby related_id = params[:associations] && params[:associations][field.name.to_s] config = field.associated_model_config source_abstract_model = RailsAdmin.config(form.object.class).abstract_model if form.object.new_record? && related_id.present? && related_id != 'new' selected = [config.abstract_model.get(related_id)] else selected = form.object.send(field.name) end selected_ids = selected.map{|s| s.send(field.associated_primary_key)} current_action = params[:action].in?(['create', 'new']) ? 'create' : 'update' xhr = !field.associated_collection_cache_all collection = if xhr selected.map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] } else i = 0 controller.list_entries(config, :index, field.associated_collection_scope, false).map { |o| [o.send(field.associated_object_label_method), o.send(field.associated_primary_key)] }.sort_by {|a| [selected_ids.index(a[1]) || selected_ids.size, i+=1] } end js_data = { xhr: xhr, :'edit-url' => (authorized?(:edit, config.abstract_model) ? edit_path(model_name: config.abstract_model.to_param, id: '__ID__') : ''), remote_source: index_path(config.abstract_model, source_object_id: form.object.id, source_abstract_model: source_abstract_model.to_param, associated_collection: field.name, current_action: current_action, compact: true), sortable: !!field.orderable, cacheAll: !!field.associated_collection_cache_all, regional: { chooseAll: t("admin.misc.chose_all"), chosen: t("admin.misc.chosen", name: config.label_plural), clearAll: t("admin.misc.clear_all"), search: t("admin.misc.search"), up: t("admin.misc.up"), down: t("admin.misc.down") } } %input{name: form.dom_name(field), type: "hidden", value: ""} - selected_ids = (hdv = field.form_default_value).nil? ? selected_ids : hdv = form.select field.method_name, collection, { selected: selected_ids, object: form.object }, field.html_attributes.reverse_merge({data: { filteringmultiselect: true, options: js_data.to_json }, multiple: true}) - if authorized?(:new, config.abstract_model) && field.inline_add - path_hash = { model_name: config.abstract_model.to_param, modal: true } - path_hash.merge!({ associations: { field.inverse_of => (form.object.persisted? ? form.object.id : 'new') } }) if field.inverse_of = link_to " ".html_safe + wording_for(:link, :new, config.abstract_model), '#', data: { link: new_path(path_hash) }, class: "create btn btn-info", style: 'margin-left:10px' rails_admin-0.7.0/app/views/rails_admin/main/_form_froala.html.haml0000644000076400007640000000047512570225417024426 0ustar pravipravi:ruby js_data = { csspath: field.css_location, jspath: field.js_location, config_options: field.config_options.to_json } = form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: 'froala-wysiwyg', options: js_data.to_json }).reverse_merge({ value: field.form_value }) rails_admin-0.7.0/app/views/rails_admin/main/_delete_notice.html.haml0000644000076400007640000000170112570225417024733 0ustar pravipravi- object = delete_notice %li{style: 'display:block; margin-top:10px'} %span.label.label-default= @abstract_model.pretty_name - wording = object.send(@model_config.object_label_method) - if show_action = action(:show, @abstract_model, object) = link_to(wording, url_for(action: show_action.action_name, model_name: @abstract_model.to_param, id: object.id), class: 'pjax') - else = wording %ul - @abstract_model.each_associated_children(object) do |association, child| %li - child_config = RailsAdmin.config(child) = @abstract_model.model.human_attribute_name association.name - wording = child.send(child_config.object_label_method) - if child.id && (show_action = action(:show, child_config.abstract_model, child)) = link_to(wording, url_for(action: show_action.action_name, model_name: child_config.abstract_model.to_param, id: child.id), class: 'pjax') - else = wording rails_admin-0.7.0/app/views/rails_admin/main/_submit_buttons.html.haml0000644000076400007640000000167212570225417025220 0ustar pravipravi.form-group.form-actions .col-sm-offset-2.col-sm-10 %input{type: :hidden, name: 'return_to', value: (params[:return_to].presence || request.referer)} %button.btn.btn-primary{type: "submit", name: "_save", :'data-disable-with' => t("admin.form.save")} %i.icon-white.icon-ok = t("admin.form.save") %span.extra_buttons - if authorized? :new, @abstract_model %button.btn.btn-info{type: "submit", name: "_add_another", :'data-disable-with' => t("admin.form.save_and_add_another")} = t("admin.form.save_and_add_another") - if authorized? :edit, @abstract_model %button.btn.btn-info{type: "submit", name: "_add_edit", :'data-disable-with' => t("admin.form.save_and_edit")} = t("admin.form.save_and_edit") %button.btn{type: "submit", name: "_continue", :'data-disable-with' => t("admin.form.cancel"), :formnovalidate => true} %i.icon-remove = t("admin.form.cancel") rails_admin-0.7.0/app/views/rails_admin/main/_form_nested_one.html.haml0000644000076400007640000000213612570225417025301 0ustar pravipravi.controls.col-sm-10{data: { nestedone: true }} %ul.nav{style: 'margin-bottom:0px; display:none'} .btn-group %a.btn.btn-info.toggler{:'data-toggle' => "button", :'data-target' => "#{form.jquery_namespace(field)} > .tab-content", class: (field.active? ? 'active' : '') } %i.icon-white - unless field.nested_form[:update_only] || !field.inline_add = form.link_to_add " #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".html_safe, field.name, { class: 'btn btn-info', :'data-add-label' => " #{wording_for(:link, :new, field.associated_model_config.abstract_model)}".gsub("\n", "") } = form.errors_for(field) = form.help_for(field) .tab-content = form.fields_for field.name do |nested_form| - if field.nested_form[:allow_destroy] = nested_form.link_to_remove ''.html_safe = nested_form.generate({action: :nested, model_config: field.associated_model_config, nested_in: field }) rails_admin-0.7.0/app/views/rails_admin/main/_dashboard_history.html.haml0000644000076400007640000000160212570225417025640 0ustar pravipravi%table.table.table-condensed.table-striped %thead %tr %th.shrink.user= t("admin.table_headers.username") %th.shrink.items= t("admin.table_headers.item") %th.changes= t("admin.table_headers.changes") %tbody - @history.each do |t| - abstract_model = RailsAdmin.config(t.table).abstract_model %tr %td= t.try :username - if o = abstract_model.try(:get, t.item) - label = o.send(abstract_model.config.object_label_method) - if show_action = action(:show, abstract_model, o) %td= link_to(label, url_for(action: show_action.action_name, model_name: abstract_model.to_param, id: o.id), class: 'pjax') - else %td= label - else - label = Object.const_defined?(t.table) ? t.table.constantize.model_name.human : t.table %td= "#{label} ##{t.item}" %td= t.message rails_admin-0.7.0/app/views/rails_admin/main/_form_enumeration.html.haml0000644000076400007640000000153212570225417025503 0ustar pravipravi- unless field.multiple? = form.select field.method_name, field.enum, { include_blank: true }.reverse_merge({ selected: field.form_value }), field.html_attributes.reverse_merge({ data: { enumeration: true }, placeholder: t('admin.misc.search') }) - else :ruby js_data = { xhr: false, sortable: false, cacheAll: true, regional: { chooseAll: t("admin.misc.chose_all"), chosen: t("admin.misc.chosen", name: config.label_plural), clearAll: t("admin.misc.clear_all"), search: t("admin.misc.search"), up: t("admin.misc.up"), down: t("admin.misc.down") } } = form.select field.method_name, field.enum, { selected: field.form_value, object: form.object }, field.html_attributes.reverse_merge({data: { filteringmultiselect: true, options: js_data.to_json }, multiple: true}) rails_admin-0.7.0/app/views/rails_admin/main/history.html.haml0000644000076400007640000000577212570225417023506 0ustar pravipravi- params = request.params.except(:action, :controller, :model_name) - query = params[:query] - filter = params[:filter] - sort = params[:sort] - sort_reverse = params[:sort_reverse] - path_method = params[:id] ? "history_show_path" : "history_index_path" = form_tag("", method: "get", class: "search pjax-form form-inline") do .well .input-group %input.form-control.input-small{name: "query", type: "search", value: query, placeholder: "#{t("admin.misc.filter")}", class: 'input-small'} %span.input-group-btn %button.btn.btn-primary{type: "submit", :'data-disable-with' => " ".html_safe + t("admin.misc.refresh")} %i.icon-white.icon-refresh = t("admin.misc.refresh") %table#history.table.table-striped.table-condensed %thead %tr - columns = [] - columns << { property_name: "created_at", css_class: "created_at",link_text: t('admin.table_headers.created_at') } - columns << { property_name: "username", css_class: "username", link_text: t('admin.table_headers.username') } - columns << { property_name: "item", css_class: "item", link_text: t('admin.table_headers.item') } if @general - columns << { property_name: "message", css_class: "message", link_text: t('admin.table_headers.message') } - columns.each do |column| - property_name = column[:property_name] - selected = (sort == property_name) - sort_direction = (sort_reverse ? "headerSortUp" : "headerSortDown" if selected) - sort_location = send(path_method, params.except("sort_reverse").merge(model_name: @abstract_model.to_param, sort: property_name).merge(selected && sort_reverse != "true" ? {sort_reverse: "true"} : {})) %th{class: "header pjax #{column[:css_class]} #{sort_direction if selected}", :'data-href' => sort_location}= column[:link_text] %tbody - @history.each_with_index do |object, index| %tr - unless object.created_at.nil? %td= l(object.created_at, format: :long, default: l(object.created_at, format: :long, locale: :en)) %td= object.username - if @general - if o = @abstract_model.get(object.item) - label = o.send(@abstract_model.config.object_label_method) - if show_action = action(:show, @abstract_model, o) %td= link_to(label, url_for(action: show_action.action_name, model_name: @abstract_model.to_param, id: o.id), class: 'pjax') - else %td= label - else %td= "#{@abstract_model.config.label} ##{object.item}" %td= object.message.in?(['delete', 'new']) ? t("admin.actions.#{object.message}.done").capitalize : object.message - unless params[:all] || !@history.respond_to?(:current_page) = paginate(@history, theme: 'twitter-bootstrap', remote: true) = link_to(t("admin.misc.show_all"), send(path_method, params.merge(all: true)), class: "show-all btn pjax") unless (tc = @history.total_count) <= @history.size || tc > 100 rails_admin-0.7.0/app/views/rails_admin/main/_form_polymorphic_association.html.haml0000644000076400007640000000132612570225417030117 0ustar pravipravi:ruby type_collection = field.polymorphic_type_collection type_column = field.association.foreign_type.to_s selected_type = field.bindings[:object].send(type_column) collection = field.associated_collection(selected_type) selected = field.bindings[:object].send(field.association.name) column_type_dom_id = form.dom_id(field).sub(field.method_name.to_s, type_column) .form-inline = form.select type_column, type_collection, {include_blank: true, selected: selected_type}, class: "form-control", id: column_type_dom_id, data: { polymorphic: true, urls: field.polymorphic_type_urls.to_json } = form.select field.method_name, collection, {include_blank: true, selected: selected.try(:id)}, class: "form-control" rails_admin-0.7.0/app/views/rails_admin/main/show.html.haml0000644000076400007640000000145512570225417022757 0ustar pravipravi- @model_config.show.with(object: @object, view: self, controller: self.controller).visible_groups.each do |fieldset| - unless (fields = fieldset.with(object: @object, view: self, controller: self.controller).visible_fields).empty? - if !(values = fields.map{ |f| f.formatted_value.presence }).compact.empty? || !RailsAdmin::config.compact_show_view .fieldset %h4 = fieldset.label - if fieldset.help %p= fieldset.help %dl - fields.each_with_index do |field, index| - unless values[index].nil? && RailsAdmin::config.compact_show_view %dt %span.label.label-info{class: "#{field.type_css_class} #{field.css_class}"} = field.label %dd.well = field.pretty_value rails_admin-0.7.0/app/views/rails_admin/main/_form_wysihtml5.html.haml0000644000076400007640000000050212570225417025116 0ustar pravipravi:ruby js_data = { csspath: field.css_location, jspath: field.js_location, config_options: field.config_options.to_json } = form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: 'bootstrap-wysihtml5', options: js_data.to_json }).reverse_merge({ value: field.form_value }) rails_admin-0.7.0/app/views/rails_admin/main/_form_ck_editor.html.haml0000644000076400007640000000066012570225417025121 0ustar pravipravi:ruby js_data = { jspath: field.location ? field.location : field.base_location + "ckeditor.js", base_location: field.base_location, options: { customConfig: field.config_js ? field.config_js : field.base_location + "config.js" } } = form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: 'ckeditor', options: js_data.to_json }).reverse_merge({ value: field.form_value }) rails_admin-0.7.0/app/views/rails_admin/main/_form_code_mirror.html.haml0000644000076400007640000000047712570225417025470 0ustar pravipravi:ruby js_data = { csspath: field.css_location, jspath: field.js_location, options: field.config, locations: field.assets } = form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: 'codemirror', options: js_data.to_json }).reverse_merge({ value: field.form_value }) rails_admin-0.7.0/app/views/layouts/0000755000076400007640000000000012570225417016456 5ustar pravipravirails_admin-0.7.0/app/views/layouts/rails_admin/0000755000076400007640000000000012570225417020740 5ustar pravipravirails_admin-0.7.0/app/views/layouts/rails_admin/pjax.html.haml0000644000076400007640000000123312570225417023507 0ustar pravipravi:javascript $('.nav.nav-pills li.active').removeClass('active'); $('.nav.nav-pills li[data-model="#{@abstract_model.to_param}"]').addClass('active'); %title= "#{@abstract_model.try(:pretty_name) || @page_name} | #{[_get_plugin_name[0] || 'Rails', _get_plugin_name[1] || 'Admin'].join(' ')}" .page-header %h1= @page_name - flash && flash.each do |key, value| .alert{class: flash_alert_class(key)} %a.close{href: '#', :'data-dismiss' => "alert"} × = value = breadcrumb %ul.nav.nav-tabs = menu_for((@abstract_model ? (@object.try(:persisted?) ? :member : :collection) : :root), @abstract_model, @object) = content_for :contextual_tabs = yield rails_admin-0.7.0/app/views/layouts/rails_admin/_sidebar_navigation.html.haml0000644000076400007640000000013712570225417026536 0ustar pravipravi%ul.nav.nav-pills.nav-stacked= main_navigation %ul.nav.nav-pills.nav-stacked= static_navigationrails_admin-0.7.0/app/views/layouts/rails_admin/application.html.haml0000644000076400007640000000177712570225417025065 0ustar pravipravi!!! 5 %html %head %meta{content: "IE=edge", "http-equiv" => "X-UA-Compatible"} %meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"} %meta{content: "NONE,NOARCHIVE", name: "robots"} = csrf_meta_tag = stylesheet_link_tag "rails_admin/rails_admin.css", media: :all = javascript_include_tag "rails_admin/rails_admin.js" -# Initialize JS simple i18n :javascript RailsAdmin.I18n.init(JSON.parse("#{j I18n.t("admin.js").to_json}")) %body.rails_admin #loading.label.label-warning{style: 'display:none; position:fixed; right:20px; bottom:20px; z-index:100000'}= t('admin.loading') %nav.navbar.navbar-default.navbar-fixed-top = render "layouts/rails_admin/navigation" .container-fluid .row .col-sm-3.col-md-2.sidebar-nav = render "layouts/rails_admin/sidebar_navigation" .col-sm-9.col-sm-offset-3.col-md-10.col-md-offset-2 .content{:'data-pjax-container' => true}= render template: 'layouts/rails_admin/pjax' rails_admin-0.7.0/app/views/layouts/rails_admin/_navigation.html.haml0000644000076400007640000000077512570225417025055 0ustar pravipravi.container-fluid .navbar-header %button.navbar-toggle.collapsed{ type: 'button', data: { toggle: 'collapse', target: '#secondary-navigation' } } %span.sr-only= t('admin.toggle_navigation') %span.icon-bar %span.icon-bar %span.icon-bar %a.navbar-brand.pjax{href: dashboard_path} = _get_plugin_name[0] || 'Rails' %small= _get_plugin_name[1] || 'Admin' .collapse.navbar-collapse#secondary-navigation = render partial: 'layouts/rails_admin/secondary_navigation' rails_admin-0.7.0/app/views/layouts/rails_admin/_secondary_navigation.html.haml0000644000076400007640000000115512570225417027115 0ustar pravipravi%ul.nav.navbar-nav.navbar-right.root_links - actions(:root).each do |action| %li{class: "#{action.action_name}_root_link"}= link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, class: "pjax" - if main_app_root_path = (main_app.root_path rescue false) %li= link_to t('admin.home.name'), main_app_root_path - if _current_user - if user_link = edit_user_link %li.edit_user_root_link= user_link - if logout_path.present? %li= link_to content_tag('span', t('admin.misc.log_out'), class: 'label label-danger'), logout_path, method: logout_method rails_admin-0.7.0/app/controllers/0000755000076400007640000000000012570225417016167 5ustar pravipravirails_admin-0.7.0/app/controllers/rails_admin/0000755000076400007640000000000012570225417020451 5ustar pravipravirails_admin-0.7.0/app/controllers/rails_admin/main_controller.rb0000644000076400007640000001615712570225417024177 0ustar pravipravimodule RailsAdmin class MainController < RailsAdmin::ApplicationController include ActionView::Helpers::TextHelper include RailsAdmin::MainHelper include RailsAdmin::ApplicationHelper layout :get_layout before_filter :get_model, except: RailsAdmin::Config::Actions.all(:root).collect(&:action_name) before_filter :get_object, only: RailsAdmin::Config::Actions.all(:member).collect(&:action_name) before_filter :check_for_cancel RailsAdmin::Config::Actions.all.each do |action| class_eval <<-EOS, __FILE__, __LINE__ + 1 def #{action.action_name} action = RailsAdmin::Config::Actions.find('#{action.action_name}'.to_sym) @authorization_adapter.try(:authorize, action.authorization_key, @abstract_model, @object) @action = action.with({controller: self, abstract_model: @abstract_model, object: @object}) fail(ActionNotAllowed) unless @action.enabled? @page_name = wording_for(:title) instance_eval &@action.controller end EOS end def bulk_action send(params[:bulk_action]) if params[:bulk_action].in?(RailsAdmin::Config::Actions.all(controller: self, abstract_model: @abstract_model).select(&:bulkable?).collect(&:route_fragment)) end def list_entries(model_config = @model_config, auth_scope_key = :index, additional_scope = get_association_scope_from_params, pagination = !(params[:associated_collection] || params[:all] || params[:bulk_ids])) scope = model_config.abstract_model.scoped if auth_scope = @authorization_adapter && @authorization_adapter.query(auth_scope_key, model_config.abstract_model) scope = scope.merge(auth_scope) end scope = scope.instance_eval(&additional_scope) if additional_scope get_collection(model_config, scope, pagination) end private def get_layout "rails_admin/#{request.headers['X-PJAX'] ? 'pjax' : 'application'}" end def back_or_index params[:return_to].presence && params[:return_to].include?(request.host) && (params[:return_to] != request.fullpath) ? params[:return_to] : index_path end def get_sort_hash(model_config) abstract_model = model_config.abstract_model params[:sort] = params[:sort_reverse] = nil unless model_config.list.fields.collect { |f| f.name.to_s }.include? params[:sort] params[:sort] ||= model_config.list.sort_by.to_s params[:sort_reverse] ||= 'false' field = model_config.list.fields.detect { |f| f.name.to_s == params[:sort] } column = begin if field.nil? || field.sortable == true # use params[:sort] on the base table "#{abstract_model.table_name}.#{params[:sort]}" elsif field.sortable == false # use default sort, asked field is not sortable "#{abstract_model.table_name}.#{model_config.list.sort_by}" elsif (field.sortable.is_a?(String) || field.sortable.is_a?(Symbol)) && field.sortable.to_s.include?('.') # just provide sortable, don't do anything smart field.sortable elsif field.sortable.is_a?(Hash) # just join sortable hash, don't do anything smart "#{field.sortable.keys.first}.#{field.sortable.values.first}" elsif field.association? # use column on target table "#{field.associated_model_config.abstract_model.table_name}.#{field.sortable}" else # use described column in the field conf. "#{abstract_model.table_name}.#{field.sortable}" end end reversed_sort = (field ? field.sort_reverse? : model_config.list.sort_reverse?) {sort: column, sort_reverse: (params[:sort_reverse] == reversed_sort.to_s)} end def redirect_to_on_success notice = t('admin.flash.successful', name: @model_config.label, action: t("admin.actions.#{@action.key}.done")) if params[:_add_another] redirect_to new_path(return_to: params[:return_to]), flash: {success: notice} elsif params[:_add_edit] redirect_to edit_path(id: @object.id, return_to: params[:return_to]), flash: {success: notice} else redirect_to back_or_index, flash: {success: notice} end end def sanitize_params_for!(action, model_config = @model_config, target_params = params[@abstract_model.param_key]) return unless target_params.present? fields = model_config.send(action).with(controller: self, view: view_context, object: @object).visible_fields allowed_methods = fields.collect(&:allowed_methods).flatten.uniq.collect(&:to_s) << 'id' << '_destroy' fields.each { |f| f.parse_input(target_params) } target_params.slice!(*allowed_methods) target_params.permit! if target_params.respond_to?(:permit!) fields.select(&:nested_form).each do |association| children_params = association.multiple? ? target_params[association.method_name].try(:values) : [target_params[association.method_name]].compact (children_params || []).each do |children_param| sanitize_params_for!(:nested, association.associated_model_config, children_param) end end end def handle_save_error(whereto = :new) flash.now[:error] = t('admin.flash.error', name: @model_config.label, action: t("admin.actions.#{@action.key}.done").html_safe).html_safe flash.now[:error] += %(
- #{@object.errors.full_messages.join('
- ')}).html_safe respond_to do |format| format.html { render whereto, status: :not_acceptable } format.js { render whereto, layout: false, status: :not_acceptable } end end def check_for_cancel return unless params[:_continue] || (params[:bulk_action] && !params[:bulk_ids]) redirect_to(back_or_index, notice: t('admin.flash.noaction')) end def get_collection(model_config, scope, pagination) associations = model_config.list.fields.select { |f| f.type == :belongs_to_association && !f.polymorphic? }.collect { |f| f.association.name } options = {} options = options.merge(page: (params[Kaminari.config.param_name] || 1).to_i, per: (params[:per] || model_config.list.items_per_page)) if pagination options = options.merge(include: associations) unless associations.blank? options = options.merge(get_sort_hash(model_config)) options = options.merge(query: params[:query]) if params[:query].present? options = options.merge(filters: params[:f]) if params[:f].present? options = options.merge(bulk_ids: params[:bulk_ids]) if params[:bulk_ids] model_config.abstract_model.all(options, scope) end def get_association_scope_from_params return nil unless params[:associated_collection].present? source_abstract_model = RailsAdmin::AbstractModel.new(to_model_name(params[:source_abstract_model])) source_model_config = source_abstract_model.config source_object = source_abstract_model.get(params[:source_object_id]) action = params[:current_action].in?(%w(create update)) ? params[:current_action] : 'edit' @association = source_model_config.send(action).fields.detect { |f| f.name == params[:associated_collection].to_sym }.with(controller: self, object: source_object) @association.associated_collection_scope end end end rails_admin-0.7.0/app/controllers/rails_admin/application_controller.rb0000644000076400007640000000410112570225417025540 0ustar pravipravirequire 'rails_admin/abstract_model' module RailsAdmin class ModelNotFound < ::StandardError end class ObjectNotFound < ::StandardError end class ActionNotAllowed < ::StandardError end class ApplicationController < Config.parent_controller.constantize newrelic_ignore if defined?(NewRelic) before_filter :_authenticate! before_filter :_authorize! before_filter :_audit! helper_method :_current_user, :_get_plugin_name attr_reader :object, :model_config, :abstract_model, :authorization_adapter def get_model @model_name = to_model_name(params[:model_name]) fail(RailsAdmin::ModelNotFound) unless (@abstract_model = RailsAdmin::AbstractModel.new(@model_name)) fail(RailsAdmin::ModelNotFound) if (@model_config = @abstract_model.config).excluded? @properties = @abstract_model.properties end def get_object fail(RailsAdmin::ObjectNotFound) unless (@object = @abstract_model.get(params[:id])) end def to_model_name(param) param.split('~').collect(&:camelize).join('::') end def _current_user instance_eval(&RailsAdmin::Config.current_user_method) end private def _get_plugin_name @plugin_name_array ||= [RailsAdmin.config.main_app_name.is_a?(Proc) ? instance_eval(&RailsAdmin.config.main_app_name) : RailsAdmin.config.main_app_name].flatten end def _authenticate! instance_eval(&RailsAdmin::Config.authenticate_with) end def _authorize! instance_eval(&RailsAdmin::Config.authorize_with) end def _audit! instance_eval(&RailsAdmin::Config.audit_with) end def user_for_paper_trail _current_user.try(:id) || _current_user end rescue_from RailsAdmin::ObjectNotFound do flash[:error] = I18n.t('admin.flash.object_not_found', model: @model_name, id: params[:id]) params[:action] = 'index' index end rescue_from RailsAdmin::ModelNotFound do flash[:error] = I18n.t('admin.flash.model_not_found', model: @model_name) params[:action] = 'dashboard' dashboard end end end rails_admin-0.7.0/app/helpers/0000755000076400007640000000000012570225417015263 5ustar pravipravirails_admin-0.7.0/app/helpers/rails_admin/0000755000076400007640000000000012570225417017545 5ustar pravipravirails_admin-0.7.0/app/helpers/rails_admin/application_helper.rb0000644000076400007640000001750112570225417023740 0ustar pravipravirequire 'rails_admin/i18n_support' module RailsAdmin module ApplicationHelper include RailsAdmin::I18nSupport def capitalize_first_letter(wording) return nil unless wording.present? && wording.is_a?(String) wording = wording.dup wording[0] = wording[0].mb_chars.capitalize.to_s wording end def authorized?(action_name, abstract_model = nil, object = nil) object = nil if object.try :new_record? action(action_name, abstract_model, object).try(:authorized?) end def current_action?(action, abstract_model = @abstract_model, object = @object) @action.custom_key == action.custom_key && abstract_model.try(:to_param) == @abstract_model.try(:to_param) && (@object.try(:persisted?) ? @object.id == object.try(:id) : !object.try(:persisted?)) end def action(key, abstract_model = nil, object = nil) RailsAdmin::Config::Actions.find(key, controller: controller, abstract_model: abstract_model, object: object) end def actions(scope = :all, abstract_model = nil, object = nil) RailsAdmin::Config::Actions.all(scope, controller: controller, abstract_model: abstract_model, object: object) end def edit_user_link return nil unless _current_user.respond_to?(:email) return nil unless abstract_model = RailsAdmin.config(_current_user.class).abstract_model return nil unless (edit_action = RailsAdmin::Config::Actions.find(:edit, controller: controller, abstract_model: abstract_model, object: _current_user)).try(:authorized?) link_to url_for(action: edit_action.action_name, model_name: abstract_model.to_param, id: _current_user.id, controller: 'rails_admin/main') do html = [] html << image_tag("#{(request.ssl? ? 'https://secure' : 'http://www')}.gravatar.com/avatar/#{Digest::MD5.hexdigest _current_user.email}?s=30", alt: '') if _current_user.email.present? html << content_tag(:span, _current_user.email) html.join.html_safe end end def logout_path if defined?(Devise) scope = Devise::Mapping.find_scope!(_current_user) main_app.send("destroy_#{scope}_session_path") rescue false else main_app.logout_path if main_app.respond_to?(:logout_path) end end def logout_method return [Devise.sign_out_via].flatten.first if defined?(Devise) :delete end def wording_for(label, action = @action, abstract_model = @abstract_model, object = @object) model_config = abstract_model.try(:config) object = abstract_model && object.is_a?(abstract_model.model) ? object : nil action = RailsAdmin::Config::Actions.find(action.to_sym) if action.is_a?(Symbol) || action.is_a?(String) capitalize_first_letter I18n.t( "admin.actions.#{action.i18n_key}.#{label}", model_label: model_config && model_config.label, model_label_plural: model_config && model_config.label_plural, object_label: model_config && object.try(model_config.object_label_method), ) end def main_navigation nodes_stack = RailsAdmin::Config.visible_models(controller: controller) node_model_names = nodes_stack.collect { |c| c.abstract_model.model_name } nodes_stack.group_by(&:navigation_label).collect do |navigation_label, nodes| nodes = nodes.select { |n| n.parent.nil? || !n.parent.to_s.in?(node_model_names) } li_stack = navigation nodes_stack, nodes label = navigation_label || t('admin.misc.navigation') %(#{li_stack}) if li_stack.present? end.join.html_safe end def static_navigation li_stack = RailsAdmin::Config.navigation_static_links.collect do |title, url| content_tag(:li, link_to(title.to_s, url, target: '_blank')) end.join label = RailsAdmin::Config.navigation_static_label || t('admin.misc.navigation_static_label') li_stack = %(#{li_stack}).html_safe if li_stack.present? li_stack end def navigation(nodes_stack, nodes, level = 0) nodes.collect do |node| model_param = node.abstract_model.to_param url = url_for(action: :index, controller: 'rails_admin/main', model_name: model_param) level_class = " nav-level-#{level}" if level > 0 nav_icon = node.navigation_icon ? %().html_safe : '' li = content_tag :li, data: {model: model_param} do link_to nav_icon + capitalize_first_letter(node.label_plural), url, class: "pjax#{level_class}" end li + navigation(nodes_stack, nodes_stack.select { |n| n.parent.to_s == node.abstract_model.model_name }, level + 1) end.join.html_safe end def breadcrumb(action = @action, _acc = []) begin (parent_actions ||= []) << action end while action.breadcrumb_parent && (action = action(*action.breadcrumb_parent)) # rubocop:disable Loop content_tag(:ol, class: 'breadcrumb') do parent_actions.collect do |a| am = a.send(:eval, 'bindings[:abstract_model]') o = a.send(:eval, 'bindings[:object]') content_tag(:li, class: current_action?(a, am, o) && 'active') do crumb = begin if !current_action?(a, am, o) if a.http_methods.include?(:get) link_to url_for(action: a.action_name, controller: 'rails_admin/main', model_name: am.try(:to_param), id: (o.try(:persisted?) && o.try(:id) || nil)), class: 'pjax' do wording_for(:breadcrumb, a, am, o) end else content_tag(:span, wording_for(:breadcrumb, a, am, o)) end else wording_for(:breadcrumb, a, am, o) end end crumb end end.reverse.join.html_safe end end # parent => :root, :collection, :member def menu_for(parent, abstract_model = nil, object = nil, only_icon = false) # perf matters here (no action view trickery) actions = actions(parent, abstract_model, object).select { |a| a.http_methods.include?(:get) } actions.collect do |action| wording = wording_for(:menu, action) %( ) end.join.html_safe end def bulk_menu(abstract_model = @abstract_model) actions = actions(:bulkable, abstract_model) return '' if actions.empty? content_tag :li, class: 'dropdown', style: 'float:right' do content_tag(:a, class: 'dropdown-toggle', data: {toggle: 'dropdown'}, href: '#') { t('admin.misc.bulk_menu_title').html_safe + ''.html_safe } + content_tag(:ul, class: 'dropdown-menu', style: 'left:auto; right:0;') do actions.collect do |action| content_tag :li do link_to wording_for(:bulk_link, action), '#', onclick: "jQuery('#bulk_action').val('#{action.action_name}'); jQuery('#bulk_form').submit(); return false;" end end.join.html_safe end end.html_safe end def flash_alert_class(flash_key) case flash_key.to_s when 'error' then 'alert-danger' when 'alert' then 'alert-warning' when 'notice' then 'alert-info' else "alert-#{flash_key}" end end end end rails_admin-0.7.0/app/helpers/rails_admin/main_helper.rb0000644000076400007640000000234212570225417022356 0ustar pravipravirequire 'builder' module RailsAdmin module MainHelper def rails_admin_form_for(*args, &block) options = args.extract_options!.reverse_merge(builder: RailsAdmin::FormBuilder) (options[:html] ||= {})[:novalidate] ||= !RailsAdmin::Config.browser_validations form_for(*(args << options), &block) << after_nested_form_callbacks end def get_indicator(percent) return '' if percent < 0 # none return 'info' if percent < 34 # < 1/100 of max return 'success' if percent < 67 # < 1/10 of max return 'warning' if percent < 84 # < 1/3 of max 'danger' # > 1/3 of max end def get_column_sets(properties) sets = [] property_index = 0 set_index = 0 while property_index < properties.length current_set_width = 0 loop do sets[set_index] ||= [] sets[set_index] << properties[property_index] current_set_width += (properties[property_index].column_width || 120) property_index += 1 break if current_set_width >= RailsAdmin::Config.total_columns_width || property_index >= properties.length end set_index += 1 end sets end end end rails_admin-0.7.0/app/helpers/rails_admin/form_builder.rb0000644000076400007640000001201712570225417022544 0ustar pravipravimodule RailsAdmin class FormBuilder < ::ActionView::Helpers::FormBuilder include ::NestedForm::BuilderMixin include ::RailsAdmin::ApplicationHelper def generate(options = {}) without_field_error_proc_added_div do options.reverse_merge!( action: @template.controller.params[:action], model_config: @template.instance_variable_get(:@model_config), nested_in: false, ) object_infos + visible_groups(options[:model_config], generator_action(options[:action], options[:nested_in])).collect do |fieldset| fieldset_for fieldset, options[:nested_in] end.join.html_safe + (options[:nested_in] ? '' : @template.render(partial: 'rails_admin/main/submit_buttons')) end end def fieldset_for(fieldset, nested_in) return unless (fields = fieldset.with(form: self, object: @object, view: @template, controller: @template.controller).visible_fields).length > 0 @template.content_tag :fieldset do contents = [] contents << @template.content_tag(:legend, %( #{fieldset.label}).html_safe, style: "#{fieldset.name == :default ? 'display:none' : ''}") contents << @template.content_tag(:p, fieldset.help) if fieldset.help.present? contents << fields.collect { |field| field_wrapper_for(field, nested_in) }.join contents.join.html_safe end end def field_wrapper_for(field, nested_in) if field.label # do not show nested field if the target is the origin unless nested_field_association?(field, nested_in) @template.content_tag(:div, class: "form-group control-group #{field.type_css_class} #{field.css_class} #{'error' if field.errors.present?}", id: "#{dom_id(field)}_field") do label(field.method_name, capitalize_first_letter(field.label), class: 'col-sm-2 control-label') + (field.nested_form ? field_for(field) : input_for(field)) end end else field.nested_form ? field_for(field) : input_for(field) end end def input_for(field) css = 'col-sm-10 controls' css += ' has-error' if field.errors.present? @template.content_tag(:div, class: css) do field_for(field) + errors_for(field) + help_for(field) end end def errors_for(field) field.errors.present? ? @template.content_tag(:span, field.errors.to_sentence, class: 'help-inline text-danger') : ''.html_safe end def help_for(field) field.help.present? ? @template.content_tag(:span, field.help, class: 'help-block') : ''.html_safe end def field_for(field) field.read_only? ? @template.content_tag(:div, field.pretty_value, class: 'form-control-static') : field.render end def object_infos model_config = RailsAdmin.config(object) model_label = model_config.label object_label = begin if object.new_record? I18n.t('admin.form.new_model', name: model_label) else object.send(model_config.object_label_method).presence || "#{model_config.label} ##{object.id}" end end %().html_safe end def jquery_namespace(field) %(#{'#modal ' if @template.controller.params[:modal]}##{dom_id(field)}_field) end def dom_id(field) (@dom_id ||= {})[field.name] ||= [ @object_name.to_s.gsub(/\]\[|[^-a-zA-Z0-9:.]/, '_').sub(/_$/, ''), options[:index], field.method_name, ].reject(&:blank?).join('_') end def dom_name(field) (@dom_name ||= {})[field.name] ||= %(#{@object_name}#{options[:index] && "[#{options[:index]}]"}[#{field.method_name}]#{field.is_a?(Config::Fields::Association) && field.multiple? ? '[]' : ''}) end protected def generator_action(action, nested) if nested action = :nested elsif @template.request.format == 'text/javascript' action = :modal end action end def visible_groups(model_config, action) model_config.send(action).with( form: self, object: @object, view: @template, controller: @template.controller, ).visible_groups end def without_field_error_proc_added_div default_field_error_proc = ::ActionView::Base.field_error_proc begin ::ActionView::Base.field_error_proc = proc { |html_tag, _instance| html_tag } yield ensure ::ActionView::Base.field_error_proc = default_field_error_proc end end private def nested_field_association?(field, nested_in) field.inverse_of.presence && nested_in.presence && field.inverse_of == nested_in.name && (@template.instance_variable_get(:@model_config).abstract_model == field.associated_model_config.abstract_model || field.name == nested_in.inverse_of) end end end rails_admin-0.7.0/app/assets/0000755000076400007640000000000012570225417015123 5ustar pravipravirails_admin-0.7.0/app/assets/stylesheets/0000755000076400007640000000000012570225417017477 5ustar pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/0000755000076400007640000000000012570225417021761 5ustar pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/ra.calendar-additions.scss0000644000076400007640000000170212570225417027004 0ustar pravipravi.ui-timepicker-table table th.periods { z-index: 3!important; padding:0; } .ui-datepicker { /* fix glitches */ border-width:0px; z-index: 1051!important; table{ margin:0px; } /* make present day stand out */ td.ui-datepicker-today { background:#ccc; -webkit-box-shadow:inset 0 1px 1px #333; -moz-box-shadow:inset 0 1px 1px #333; box-shadow:0 1px 1px #333 inset; .ui-state-highlight{ background:transparent; border:none; -webkit-box-shadow:none; -moz-box-shadow:none; box-shadow:none; } } } /* span for disabled cells */ .ui-timepicker-table td span { width: auto; } /* anchors for clickable cells */ .ui-timepicker-table td a { width: auto; } .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { background-color: transparent; cursor: pointer; } rails_admin-0.7.0/app/assets/stylesheets/rails_admin/ra.widgets.scss0000644000076400007640000000022412570225417024723 0ustar pravipraviiframe.wysihtml5-sandbox{ height: 250px !important; width: 75% !important; } .controls img.preview{ max-height: 200px; max-width: 300px; } rails_admin-0.7.0/app/assets/stylesheets/rails_admin/aristo/0000755000076400007640000000000012570225417023262 5ustar pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/aristo/images/0000755000076400007640000000000012570225417024527 5ustar pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/aristo/images/progress_bar.gif0000644000076400007640000000075612570225417027716 0ustar pravipraviGIF87a8 ֖٫ܵ,8@pH,Ȥr8ШtJR/cz8| zn~c,   8*\Ȱ"JHŋ3" Ǐ CI(S\ɲ˗@ȜI͛8s@ JhH*]ʴ ;rails_admin-0.7.0/app/assets/stylesheets/rails_admin/aristo/images/bg_fallback.png0000644000076400007640000000040112570225417027437 0ustar pravipraviPNG  IHDRdn;PLTEʅˇ͊όяӒؘ֕ڛݞߡĨa8IDAT8cc@,|FCτg$ φIge>+IENDB`rails_admin-0.7.0/app/assets/stylesheets/rails_admin/aristo/images/icon_sprite.png0000644000076400007640000000514412570225417027557 0ustar pravipraviPNG  IHDR jfk +IDATxĖ{L麶KziVS[Zm+4K5B9fI-xQ.5x/s:AEE)0z_xAtT8) 9B#;rsK>|wL_22t/%%x7xy,cGooڻ g'@Aڦ^I7uM:j_, ƅG&;cG^~UV-[brDz"wNOO_KNN19jܾ}{ի;V\)k*QC.]h:&M)SD@pk~jΝSf[N6lƍQC$%%EӦM5c brРuα]xqmGM6@;v접19jh #h2sLq+++K䨡A/ ڵkcm޼Yvb]~]%%%XРŃVX'--MsQffX Zx˗Ţ- 0t֭1Hno4`-0v67oCSSX@HΫŃC}w^m۶M~_"&G -[ܗ!z…qy~brРp 0X:pӄbwƴ|.%ߞO80-Y+䨡A;w\ PVVp:tyq_Ӏ= [uy9jhqTZZ\f8A/@-Z˗s@̢- <<`v@/ooL6稹o><)-C8oOYҀ{޿> x:;\ޞ@Lm.yCTUUUU=cǎE@͛7/Ń7oB-# G ~Ujf$+Wt9s?4brVIh㷿|*++ˌJaB7'ѝWœY ,)*R CR/uOMVrx?3.YS6ou:݌N'alZN|h~6\6q3^_Ŝ81ظAwH<1]z?|v}noޣ+rZ[ayxh̼=`o3h8rseޞ^J݀~>(-ǥ>\a?P(K!p !Ҡ~ \lX{3/rv\~vˏϼx{dk? jifd.q6,-^1O#0>Sr .\8D?z@ r` 8mi]-^trrЬr!W9f9(4Af=TMj9@D9 GnI8Q:38f@G`{Q $Ճ!%1?-fЀ@sx8)Q Gg9047sf99yp4 Z؍D r@-h>r|x(uF0Q:`uF0Q:`uW 8IENDB`rails_admin-0.7.0/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_454545_256x240.png0000644000076400007640000000716612570225417030641 0ustar pravipraviPNG  IHDRIJPLTEDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDDFDm:NtRNS2P."Tp@f` <BHJZ&0R,4j8D|($ blߝF>n~hhH IDATx^0 E8 av߄44z,͗lKV'4MQ_?u9(RP1 `2/@A:d @sxX.^@кR]B<ñToCT|", 5;vc_iiM"T}@BP(6'7j<< P!_1ݍ+҈R>e*Mw~;k@?iiy\j0xI8׿>X}6ݱ: Y㗈XArb?nqN 8@vffsvU~18Ét!C`\СC˾UEx~L6M4M\Y*\@/fjd#IPi!n0]H&-VTL@u @bw)EPA; c=Po50BJN {eawn:s ?aO$-i"(в$!N1/r+Iߑΰ50#v>JW,~LHȘ`)˜6@ĔdT_Y "K_aCxB0`z+6(} d` @S&TȲ|>JXN db~HU9$4{b 5Imn@ETxpFf9 @,8g =ʲLVǕ0Eh4Fbf9nR7x zWڍ@OP'2ɴB-1A <~dYϼAxT3*XŒbe~tfqYAL: IMTrY?$49' )`\@z8=eg 2LM q@}Uf8 ONi@O{)5L۳ɅKY=SHUU&[ 8,rl3=zWmz#,=EQ\AK J8SM1G:?P-?XīÉAW7L*Pe{ *uSS+N9 IjLZ<.w Etu羭vԸHSQ9{$0)]x]:}/׬zVi:`_PW|"wA O& qs|#`ڛq_2I+B;ty\ LY^/ 4_>?7k=cBme[t,LWTq_@rNB U> zDZ?q۩4EN{1%npgXHź2eu%~yOsߊoIP@J C}7v:r_&[#oSkU y*H~M *KVl|jq?)V96!λ;E ݆WvG nK+^ ߰,ׯׯH. * Xڡ1O`rvJWd4{jw{H_d5:{2vA:b,tbQ*)1^E=5Sxә^.69 yrrɡ4\q п,V5VGs{{{A{~qa>dX.gY_b=,;;9{=o#npN`[]$PW? K|; %ch:XփoAVRSs%&`o@7K<2 `,BA*0:|:j%ٲՁ`!8<."x,iXEeYDͷٲ8!e5qGYmZNMm/mv7IlVm,QsmΖz,ڈ%)A;Tqd`cʐGs+(}c [<٢>)"gЧ {ٲTu*2NVy̡ |ybYlŏx&Rޡ2 /YV`X$6Pڽ$Yupen=ي'Ao$p: \:R\Ga%INpe9]O|NY\3k+ݽtl->s8_0zGO)3]~'Uv>}lٷs> J|$pYKy ԧNjk[iSFQj݀ul;1o3Dg1QپeRס8w9oji!u\:G i\:gO~"w~wi*%g <-Nsk\:I=Ztg.7|ը^-΁YK޷iy'[ew׼B&>iq}V;T}O ^и`>s\kg]"pN$ ?y*>Oso@/bz_Wy~IENDB`rails_admin-0.7.0/app/assets/stylesheets/rails_admin/aristo/images/ui-icons_222222_256x240.png0000644000076400007640000000716612570225417030622 0ustar pravipraviPNG  IHDRIJPLTE$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$$"$ÈNtRNS2P."Tp@f` <BHJZ&0R,4j8D|($ blߝF>n~hhH IDATx^0 E8 av߄44z,͗lKV'4MQ_?u9(RP1 `2/@A:d @sxX.^@кR]B<ñToCT|", 5;vc_iiM"T}@BP(6'7j<< P!_1ݍ+҈R>e*Mw~;k@?iiy\j0xI8׿>X}6ݱ: Y㗈XArb?nqN 8@vffsvU~18Ét!C`\СC˾UEx~L6M4M\Y*\@/fjd#IPi!n0]H&-VTL@u @bw)EPA; c=Po50BJN {eawn:s ?aO$-i"(в$!N1/r+Iߑΰ50#v>JW,~LHȘ`)˜6@ĔdT_Y "K_aCxB0`z+6(} d` @S&TȲ|>JXN db~HU9$4{b 5Imn@ETxpFf9 @,8g =ʲLVǕ0Eh4Fbf9nR7x zWڍ@OP'2ɴB-1A <~dYϼAxT3*XŒbe~tfqYAL: IMTrY?$49' )`\@z8=eg 2LM q@}Uf8 ONi@O{)5L۳ɅKY=SHUU&[ 8,rl3=zWmz#,=EQ\AK J8SM1G:?P-?XīÉAW7L*Pe{ *uSS+N9 IjLZ<.w Etu羭vԸHSQ9{$0)]x]:}/׬zVi:`_PW|"wA O& qs|#`ڛq_2I+B;ty\ LY^/ 4_>?7k=cBme[t,LWTq_@rNB U> zDZ?q۩4EN{1%npgXHź2eu%~yOsߊoIP@J C}7v:r_&[#oSkU y*H~M *KVl|jq?)V96!λ;E ݆WvG nK+^ ߰,ׯׯH. * Xڡ1O`rvJWd4{jw{H_d5:{2vA:b,tbQ*)1^E=5Sxә^.69 yrrɡ4\q п,V5VGs{{{A{~qa>dX.gY_b=, li > a, .navbar .navbar-brand { text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); } @media (max-width: $grid-float-breakpoint-max) { .navbar { .dropdown-header { color: #fff; } } } // Buttons ==================================================================== .btn { text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1); .caret { border-top-color: #fff; } } .btn-default { @include btn-shadow($btn-default-bg); &:hover { color: $btn-default-color; } .caret { border-top-color: $text-color; } } .btn-default { @include btn-shadow($btn-default-bg); } .btn-primary { @include btn-shadow($btn-primary-bg); } .btn-success { @include btn-shadow($btn-success-bg); } .btn-info { @include btn-shadow($btn-info-bg); } .btn-warning { @include btn-shadow($btn-warning-bg); } .btn-danger { @include btn-shadow($btn-danger-bg); } // Typography ================================================================= // Tables ===================================================================== table, .table { > thead > tr > th { color: $headings-color; } } // Forms ====================================================================== // Navs ======================================================================= // Indicators ================================================================= // Progress bars ============================================================== // Containers ================================================================= .panel-primary, .panel-success, .panel-warning, .panel-danger, .panel-info { .panel-heading, .panel-title { color: #fff; } } rails_admin-0.7.0/app/assets/stylesheets/rails_admin/themes/cerulean/variables.scss0000644000076400007640000006436712570225417027731 0ustar pravipravi// Cerulean 3.3.1 // Variables // // -------------------------------------------------- //== Colors // //## Gray and brand colors for use across Bootstrap. $gray-base: #000; $gray-darker: lighten($gray-base, 13.5%); // #222 $gray-dark: lighten($gray-base, 20%); // #333 $gray: lighten($gray-base, 33.5%); // #555 $gray-light: lighten($gray-base, 60%); // #999 $gray-lighter: lighten($gray-base, 93.5%); // #eee $brand-info: #2FA4E7; // default $brand-primary $brand-success: #73A839; $brand-primary: #033C73; // default $brand-info $brand-warning: #DD5600; $brand-danger: #C71C22; //== Scaffolding // //## Settings for some of the most global styles. //** Background color for ``. $body-bg: #fff; //** Global text color on ``. $text-color: $gray; //** Global textual link color. $link-color: $brand-primary; //** Link hover color set via `darken()` function. $link-hover-color: darken($link-color, 15%); //** Link hover decoration. $link-hover-decoration: underline; //== Typography // //## Font, line-height, and color for body text, headings, and more. $font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; $font-family-serif: Georgia, "Times New Roman", Times, serif; //** Default monospace fonts for ``, ``, and `
`.
$font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace;
$font-family-base:        $font-family-sans-serif;

$font-size-base:          14px;
$font-size-large:         ceil(($font-size-base * 1.25)); // ~18px
$font-size-small:         ceil(($font-size-base * 0.85)); // ~12px

$font-size-h1:            floor(($font-size-base * 2.6)); // ~36px
$font-size-h2:            floor(($font-size-base * 2.15)); // ~30px
$font-size-h3:            ceil(($font-size-base * 1.7)); // ~24px
$font-size-h4:            ceil(($font-size-base * 1.25)); // ~18px
$font-size-h5:            $font-size-base;
$font-size-h6:            ceil(($font-size-base * 0.85)); // ~12px

//** Unit-less `line-height` for use in components like buttons.
$line-height-base:        1.428571429; // 20/14
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
$line-height-computed:    floor(($font-size-base * $line-height-base)); // ~20px

//** By default, this inherits from the ``.
$headings-font-family:    $font-family-base;
$headings-font-weight:    500;
$headings-line-height:    1.1;
$headings-color:          #317EAC;


//== Iconography
//
//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.

//** Load fonts from this directory.
$icon-font-path:          "../fonts/";
//** File name for all font files.
$icon-font-name:          "glyphicons-halflings-regular";
//** Element ID within SVG icon file.
$icon-font-svg-id:        "glyphicons_halflingsregular";


//== Components
//
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).

$padding-base-vertical:     8px;
$padding-base-horizontal:   12px;

$padding-large-vertical:    14px;
$padding-large-horizontal:  16px;

$padding-small-vertical:    5px;
$padding-small-horizontal:  10px;

$padding-xs-vertical:       1px;
$padding-xs-horizontal:     5px;

$line-height-large:         1.33;
$line-height-small:         1.5;

$border-radius-base:        0px;
$border-radius-large:       0px;
$border-radius-small:       0px;

//** Global color for active items (e.g., navs or dropdowns).
$component-active-color:    #fff;
//** Global background color for active items (e.g., navs or dropdowns).
$component-active-bg:       $brand-primary;

//** Width of the `border` for generating carets that indicator dropdowns.
$caret-width-base:          4px;
//** Carets increase slightly in size for larger components.
$caret-width-large:         5px;


//== Tables
//
//## Customizes the `.table` component with basic values, each used across all table variations.

//** Padding for ``s and ``s.
$table-cell-padding:            8px;
//** Padding for cells in `.table-condensed`.
$table-condensed-cell-padding:  5px;

//** Default background color used for all tables.
$table-bg:                      transparent;
//** Background color used for `.table-striped`.
$table-bg-accent:               #f9f9f9;
//** Background color used for `.table-hover`.
$table-bg-hover:                #f5f5f5;
$table-bg-active:               $table-bg-hover;

//** Border color for table and cell borders.
$table-border-color:            #ddd;


//== Buttons
//
//## For each of Bootstrap's buttons, define text, background and border color.

$btn-font-weight:                normal;

$btn-default-color:              $text-color;
$btn-default-bg:                 #fff;
$btn-default-border:             rgba(0, 0, 0, 0.1);

$btn-primary-color:              #fff;
$btn-primary-bg:                 $brand-primary;
$btn-primary-border:             $btn-primary-bg;

$btn-success-color:              #fff;
$btn-success-bg:                 $brand-success;
$btn-success-border:             $btn-success-bg;

$btn-info-color:                 #fff;
$btn-info-bg:                    $brand-info;
$btn-info-border:                $btn-info-bg;

$btn-warning-color:              #fff;
$btn-warning-bg:                 $brand-warning;
$btn-warning-border:             $btn-warning-bg;

$btn-danger-color:               #fff;
$btn-danger-bg:                  $brand-danger;
$btn-danger-border:              $btn-danger-bg;

$btn-link-disabled-color:        $gray-light;


//== Forms
//
//##

//** `` background color
$input-bg:                       #fff;
//** `` background color
$input-bg-disabled:              $gray-lighter;

//** Text color for ``s
$input-color:                    $text-color;
//** `` border color
$input-border:                   #ccc;

// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
//** Default `.form-control` border radius
$input-border-radius:            $border-radius-base;
//** Large `.form-control` border radius
$input-border-radius-large:      $border-radius-large;
//** Small `.form-control` border radius
$input-border-radius-small:      $border-radius-small;

//** Border color for inputs on focus
$input-border-focus:             #66afe9;

//** Placeholder text color
$input-color-placeholder:        $gray-light;

//** Default `.form-control` height
$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2);
//** Large `.form-control` height
$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2);
//** Small `.form-control` height
$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2);

$legend-color:                   $text-color;
$legend-border-color:            #e5e5e5;

//** Background color for textual input addons
$input-group-addon-bg:           $gray-lighter;
//** Border color for textual input addons
$input-group-addon-border-color: $input-border;

//** Disabled cursor for form controls and buttons.
$cursor-disabled:                not-allowed;


//== Dropdowns
//
//## Dropdown menu container and contents.

//** Background for the dropdown menu.
$dropdown-bg:                    #fff;
//** Dropdown menu `border-color`.
$dropdown-border:                rgba(0,0,0,.15);
//** Dropdown menu `border-color` **for IE8**.
$dropdown-fallback-border:       #ccc;
//** Divider color for between dropdown items.
$dropdown-divider-bg:            #e5e5e5;

//** Dropdown link text color.
$dropdown-link-color:            $gray-dark;
//** Hover color for dropdown links.
$dropdown-link-hover-color:      #fff;
//** Hover background for dropdown links.
$dropdown-link-hover-bg:         $component-active-bg;

//** Active dropdown menu item text color.
$dropdown-link-active-color:     #fff;
//** Active dropdown menu item background color.
$dropdown-link-active-bg:        $component-active-bg;

//** Disabled dropdown menu item background color.
$dropdown-link-disabled-color:   $gray-light;

//** Text color for headers within dropdown menus.
$dropdown-header-color:          $gray-light;

//** Deprecated `$dropdown-caret-color` as of v3.1.0
$dropdown-caret-color:           #000;


//-- Z-index master list
//
// Warning: Avoid customizing these values. They're used for a bird's eye view
// of components dependent on the z-axis and are designed to all work together.
//
// Note: These variables are not generated into the Customizer.

$zindex-navbar:            1000;
$zindex-dropdown:          1000;
$zindex-popover:           1060;
$zindex-tooltip:           1070;
$zindex-navbar-fixed:      1030;
$zindex-modal:             1040;


//== Media queries breakpoints
//
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.

// Extra small screen / phone
//** Deprecated `$screen-xs` as of v3.0.1
$screen-xs:                  480px;
//** Deprecated `$screen-xs-min` as of v3.2.0
$screen-xs-min:              $screen-xs;
//** Deprecated `$screen-phone` as of v3.0.1
$screen-phone:               $screen-xs-min;

// Small screen / tablet
//** Deprecated `$screen-sm` as of v3.0.1
$screen-sm:                  768px;
$screen-sm-min:              $screen-sm;
//** Deprecated `$screen-tablet` as of v3.0.1
$screen-tablet:              $screen-sm-min;

// Medium screen / desktop
//** Deprecated `$screen-md` as of v3.0.1
$screen-md:                  992px;
$screen-md-min:              $screen-md;
//** Deprecated `$screen-desktop` as of v3.0.1
$screen-desktop:             $screen-md-min;

// Large screen / wide desktop
//** Deprecated `$screen-lg` as of v3.0.1
$screen-lg:                  1200px;
$screen-lg-min:              $screen-lg;
//** Deprecated `$screen-lg-desktop` as of v3.0.1
$screen-lg-desktop:          $screen-lg-min;

// So media queries don't overlap when required, provide a maximum
$screen-xs-max:              ($screen-sm-min - 1);
$screen-sm-max:              ($screen-md-min - 1);
$screen-md-max:              ($screen-lg-min - 1);


//== Grid system
//
//## Define your custom responsive grid.

//** Number of columns in the grid.
$grid-columns:              12;
//** Padding between columns. Gets divided in half for the left and right.
$grid-gutter-width:         30px;
// Navbar collapse
//** Point at which the navbar becomes uncollapsed.
$grid-float-breakpoint:     $screen-sm-min;
//** Point at which the navbar begins collapsing.
$grid-float-breakpoint-max: ($grid-float-breakpoint - 1);


//== Container sizes
//
//## Define the maximum width of `.container` for different screen sizes.

// Small screen / tablet
$container-tablet:             (720px + $grid-gutter-width);
//** For `$screen-sm-min` and up.
$container-sm:                 $container-tablet;

// Medium screen / desktop
$container-desktop:            (940px + $grid-gutter-width);
//** For `$screen-md-min` and up.
$container-md:                 $container-desktop;

// Large screen / wide desktop
$container-large-desktop:      (1140px + $grid-gutter-width);
//** For `$screen-lg-min` and up.
$container-lg:                 $container-large-desktop;


//== Navbar
//
//##

// Basics of a navbar
$navbar-height:                    50px;
$navbar-margin-bottom:             $line-height-computed;
$navbar-border-radius:             $border-radius-base;
$navbar-padding-horizontal:        floor(($grid-gutter-width / 2));
$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2);
$navbar-collapse-max-height:       340px;

$navbar-default-color:             #ddd;
$navbar-default-bg:                $brand-primary;
$navbar-default-border:            darken($navbar-default-bg, 6.5%);

// Navbar links
$navbar-default-link-color:                #fff;
$navbar-default-link-hover-color:          #fff;
$navbar-default-link-hover-bg:             darken($navbar-default-bg, 10%);
$navbar-default-link-active-color:         #fff;
$navbar-default-link-active-bg:            darken($navbar-default-bg, 10%);
$navbar-default-link-disabled-color:       #ddd;
$navbar-default-link-disabled-bg:          transparent;

// Navbar brand label
$navbar-default-brand-color:               $navbar-default-link-color;
$navbar-default-brand-hover-color:         #fff;
$navbar-default-brand-hover-bg:            none;

// Navbar toggle
$navbar-default-toggle-hover-bg:           darken($navbar-default-bg, 10%);
$navbar-default-toggle-icon-bar-bg:        #fff;
$navbar-default-toggle-border-color:       darken($navbar-default-bg, 10%);


// Inverted navbar
// Reset inverted navbar basics
$navbar-inverse-color:                      #fff;
$navbar-inverse-bg:                         $brand-info;
$navbar-inverse-border:                     darken($navbar-inverse-bg, 5%);

// Inverted navbar links
$navbar-inverse-link-color:                 #fff;
$navbar-inverse-link-hover-color:           #fff;
$navbar-inverse-link-hover-bg:              darken($navbar-inverse-bg, 5%);
$navbar-inverse-link-active-color:          #fff;
$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 5%);
$navbar-inverse-link-disabled-color:        #ccc;
$navbar-inverse-link-disabled-bg:           transparent;

// Inverted navbar brand label
$navbar-inverse-brand-color:                $navbar-inverse-link-color;
$navbar-inverse-brand-hover-color:          #fff;
$navbar-inverse-brand-hover-bg:             none;

// Inverted navbar toggle
$navbar-inverse-toggle-hover-bg:            darken($navbar-inverse-bg, 5%);
$navbar-inverse-toggle-icon-bar-bg:         #fff;
$navbar-inverse-toggle-border-color:        darken($navbar-inverse-bg, 5%);


//== Navs
//
//##

//=== Shared nav styles
$nav-link-padding:                          10px 15px;
$nav-link-hover-bg:                         $gray-lighter;

$nav-disabled-link-color:                   $gray-light;
$nav-disabled-link-hover-color:             $gray-light;

//== Tabs
$nav-tabs-border-color:                     #ddd;

$nav-tabs-link-hover-border-color:          $gray-lighter;

$nav-tabs-active-link-hover-bg:             $body-bg;
$nav-tabs-active-link-hover-color:          $gray;
$nav-tabs-active-link-hover-border-color:   #ddd;

$nav-tabs-justified-link-border-color:            #ddd;
$nav-tabs-justified-active-link-border-color:     $body-bg;

//== Pills
$nav-pills-border-radius:                   $border-radius-base;
$nav-pills-active-link-hover-bg:            $component-active-bg;
$nav-pills-active-link-hover-color:         $component-active-color;


//== Pagination
//
//##

$pagination-color:                     $link-color;
$pagination-bg:                        #fff;
$pagination-border:                    #ddd;

$pagination-hover-color:               $link-hover-color;
$pagination-hover-bg:                  $gray-lighter;
$pagination-hover-border:              #ddd;

$pagination-active-color:              $gray-light;
$pagination-active-bg:                 #f5f5f5;
$pagination-active-border:             $pagination-hover-border;

$pagination-disabled-color:            $gray-light;
$pagination-disabled-bg:               #fff;
$pagination-disabled-border:           #ddd;


//== Pager
//
//##

$pager-bg:                             $pagination-bg;
$pager-border:                         $pagination-border;
$pager-border-radius:                  15px;

$pager-hover-bg:                       $pagination-hover-bg;

$pager-active-bg:                      $pagination-active-bg;
$pager-active-color:                   $pagination-active-color;

$pager-disabled-color:                 $gray-light;


//== Jumbotron
//
//##

$jumbotron-padding:              30px;
$jumbotron-color:                inherit;
$jumbotron-bg:                   $gray-lighter;
$jumbotron-heading-color:        inherit;
$jumbotron-font-size:            ceil(($font-size-base * 1.5));


//== Form states and alerts
//
//## Define colors for form feedback states and, by default, alerts.

$state-success-text:             #468847;
$state-success-bg:               #dff0d8;
$state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%);

$state-info-text:                #3a87ad;
$state-info-bg:                  #d9edf7;
$state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%);

$state-warning-text:             #c09853;
$state-warning-bg:               #fcf8e3;
$state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 3%);

$state-danger-text:              #b94a48;
$state-danger-bg:                #f2dede;
$state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 3%);


//== Tooltips
//
//##

//** Tooltip max width
$tooltip-max-width:           200px;
//** Tooltip text color
$tooltip-color:               #fff;
//** Tooltip background color
$tooltip-bg:                  rgba(0,0,0,.9);
$tooltip-opacity:             .9;

//** Tooltip arrow width
$tooltip-arrow-width:         5px;
//** Tooltip arrow color
$tooltip-arrow-color:         $tooltip-bg;


//== Popovers
//
//##

//** Popover body background color
$popover-bg:                          #fff;
//** Popover maximum width
$popover-max-width:                   276px;
//** Popover border color
$popover-border-color:                rgba(0,0,0,.2);
//** Popover fallback border color
$popover-fallback-border-color:       #ccc;

//** Popover title background color
$popover-title-bg:                    darken($popover-bg, 3%);

//** Popover arrow width
$popover-arrow-width:                 10px;
//** Popover arrow color
$popover-arrow-color:                 $popover-bg;

//** Popover outer arrow width
$popover-arrow-outer-width:           ($popover-arrow-width + 1);
//** Popover outer arrow color
$popover-arrow-outer-color:           fadein($popover-border-color, 5%);
//** Popover outer arrow fallback color
$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%);


//== Labels
//
//##

//** Default label background color
$label-default-bg:            $gray-light;
//** Primary label background color
$label-primary-bg:            $brand-primary;
//** Success label background color
$label-success-bg:            $brand-success;
//** Info label background color
$label-info-bg:               $brand-info;
//** Warning label background color
$label-warning-bg:            $brand-warning;
//** Danger label background color
$label-danger-bg:             $brand-danger;

//** Default label text color
$label-color:                 #fff;
//** Default text color of a linked label
$label-link-hover-color:      #fff;


//== Modals
//
//##

//** Padding applied to the modal body
$modal-inner-padding:         20px;

//** Padding applied to the modal title
$modal-title-padding:         15px;
//** Modal title line-height
$modal-title-line-height:     $line-height-base;

//** Background color of modal content area
$modal-content-bg:                             #fff;
//** Modal content border color
$modal-content-border-color:                   rgba(0,0,0,.2);
//** Modal content border color **for IE8**
$modal-content-fallback-border-color:          #999;

//** Modal backdrop background color
$modal-backdrop-bg:           #000;
//** Modal backdrop opacity
$modal-backdrop-opacity:      .5;
//** Modal header border color
$modal-header-border-color:   #e5e5e5;
//** Modal footer border color
$modal-footer-border-color:   $modal-header-border-color;

$modal-lg:                    900px;
$modal-md:                    600px;
$modal-sm:                    300px;


//== Alerts
//
//## Define alert colors, border radius, and padding.

$alert-padding:               15px;
$alert-border-radius:         $border-radius-base;
$alert-link-font-weight:      bold;

$alert-success-bg:            $state-success-bg;
$alert-success-text:          $state-success-text;
$alert-success-border:        $state-success-border;

$alert-info-bg:               $state-info-bg;
$alert-info-text:             $state-info-text;
$alert-info-border:           $state-info-border;

$alert-warning-bg:            $state-warning-bg;
$alert-warning-text:          $state-warning-text;
$alert-warning-border:        $state-warning-border;

$alert-danger-bg:             $state-danger-bg;
$alert-danger-text:           $state-danger-text;
$alert-danger-border:         $state-danger-border;


//== Progress bars
//
//##

//** Background color of the whole progress component
$progress-bg:                 #f5f5f5;
//** Progress bar text color
$progress-bar-color:          #fff;
//** Variable for setting rounded corners on progress bar.
$progress-border-radius:      $border-radius-base;

//** Default progress bar color
$progress-bar-bg:             $brand-primary;
//** Success progress bar color
$progress-bar-success-bg:     $brand-success;
//** Warning progress bar color
$progress-bar-warning-bg:     $brand-warning;
//** Danger progress bar color
$progress-bar-danger-bg:      $brand-danger;
//** Info progress bar color
$progress-bar-info-bg:        $brand-info;


//== List group
//
//##

//** Background color on `.list-group-item`
$list-group-bg:                 #fff;
//** `.list-group-item` border color
$list-group-border:             #ddd;
//** List group border radius
$list-group-border-radius:      $border-radius-base;

//** Background color of single list items on hover
$list-group-hover-bg:           #f5f5f5;
//** Text color of active list items
$list-group-active-color:       $component-active-color;
//** Background color of active list items
$list-group-active-bg:          $component-active-bg;
//** Border color of active list elements
$list-group-active-border:      $list-group-active-bg;
//** Text color for content within active list items
$list-group-active-text-color:  lighten($list-group-active-bg, 40%);

//** Text color of disabled list items
$list-group-disabled-color:      $gray-light;
//** Background color of disabled list items
$list-group-disabled-bg:         $gray-lighter;
//** Text color for content within disabled list items
$list-group-disabled-text-color: $list-group-disabled-color;

$list-group-link-color:         #555;
$list-group-link-hover-color:   $list-group-link-color;
$list-group-link-heading-color: #333;


//== Panels
//
//##

$panel-bg:                    #fff;
$panel-body-padding:          15px;
$panel-heading-padding:       10px 15px;
$panel-footer-padding:        $panel-heading-padding;
$panel-border-radius:         $border-radius-base;

//** Border color for elements within panels
$panel-inner-border:          #ddd;
$panel-footer-bg:             #f5f5f5;

$panel-default-text:          $text-color;
$panel-default-border:        #ddd;
$panel-default-heading-bg:    #f5f5f5;

$panel-primary-text:          #fff;
$panel-primary-border:        $panel-default-border;
$panel-primary-heading-bg:    $brand-primary;

$panel-success-text:          $state-success-text;
$panel-success-border:        $panel-default-border;
$panel-success-heading-bg:    $brand-success;

$panel-info-text:             $state-info-text;
$panel-info-border:           $panel-default-border;
$panel-info-heading-bg:       $brand-info;

$panel-warning-text:          $state-warning-text;
$panel-warning-border:        $panel-default-border;
$panel-warning-heading-bg:    $brand-warning;

$panel-danger-text:           $state-danger-text;
$panel-danger-border:         $panel-default-border;
$panel-danger-heading-bg:     $brand-danger;


//== Thumbnails
//
//##

//** Padding around the thumbnail image
$thumbnail-padding:           4px;
//** Thumbnail background color
$thumbnail-bg:                $body-bg;
//** Thumbnail border color
$thumbnail-border:            #ddd;
//** Thumbnail border radius
$thumbnail-border-radius:     $border-radius-base;

//** Custom text color for thumbnail captions
$thumbnail-caption-color:     $text-color;
//** Padding around the thumbnail caption
$thumbnail-caption-padding:   9px;


//== Wells
//
//##

$well-bg:                     #f5f5f5;
$well-border:                 darken($well-bg, 7%);


//== Badges
//
//##

$badge-color:                 #fff;
//** Linked badge text color on hover
$badge-link-hover-color:      #fff;
$badge-bg:                    $brand-primary;

//** Badge text color in active nav link
$badge-active-color:          $link-color;
//** Badge background color in active nav link
$badge-active-bg:             #fff;

$badge-font-weight:           bold;
$badge-line-height:           1;
$badge-border-radius:         10px;


//== Breadcrumbs
//
//##

$breadcrumb-padding-vertical:   8px;
$breadcrumb-padding-horizontal: 15px;
//** Breadcrumb background color
$breadcrumb-bg:                 #f5f5f5;
//** Breadcrumb text color
$breadcrumb-color:              #ccc;
//** Text color of current page in the breadcrumb
$breadcrumb-active-color:       $gray-light;
//** Textual separator for between breadcrumb elements
$breadcrumb-separator:          "/";


//== Carousel
//
//##

$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);

$carousel-control-color:                      #fff;
$carousel-control-width:                      15%;
$carousel-control-opacity:                    .5;
$carousel-control-font-size:                  20px;

$carousel-indicator-active-bg:                #fff;
$carousel-indicator-border-color:             #fff;

$carousel-caption-color:                      #fff;


//== Close
//
//##

$close-font-weight:           bold;
$close-color:                 #000;
$close-text-shadow:           0 1px 0 #fff;


//== Code
//
//##

$code-color:                  #c7254e;
$code-bg:                     #f9f2f4;

$kbd-color:                   #fff;
$kbd-bg:                      #333;

$pre-bg:                      #f5f5f5;
$pre-color:                   $gray-dark;
$pre-border-color:            #ccc;
$pre-scrollable-max-height:   340px;


//== Type
//
//##

//** Horizontal offset for forms and lists.
$component-offset-horizontal: 180px;
//** Text muted color
$text-muted:                  $gray-light;
//** Abbreviations and acronyms border color
$abbr-border-color:           $gray-light;
//** Headings small color
$headings-small-color:        $gray-light;
//** Blockquote small color
$blockquote-small-color:      $gray-light;
//** Blockquote font size
$blockquote-font-size:        ($font-size-base * 1.25);
//** Blockquote border color
$blockquote-border-color:     $gray-lighter;
//** Page header border color
$page-header-border-color:    $gray-lighter;
//** Width of horizontal description list titles
$dl-horizontal-offset:        $component-offset-horizontal;
//** Horizontal line color.
$hr-border:                   $gray-lighter;
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/themes/cerulean/mixins.scss0000644000076400007640000000000012570225417027236 0ustar  pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/jquery.colorpicker.scss0000644000076400007640000000736712570225417026525 0ustar  pravipravi.colorSelector {
	display: inline-block;
    position: relative;
    width: 36px;
    height: 36px;
    background: image-url('rails_admin/colorpicker/select2.png');
}

.colorSelector div {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 30px;
    height: 30px;
    background: image-url('rails_admin/colorpicker/select2.png') center;
}

.colorpicker {
	width: 356px;
	height: 176px;
	overflow: hidden;
	position: absolute;
	background: image-url('rails_admin/colorpicker/custom_background.png');
	font-family: Arial, Helvetica, sans-serif;
	display: none;
	z-index:11000; /* bootstrap + 1 */
}
.colorpicker_color {
	width: 150px;
	height: 150px;
	left: 14px;
	top: 13px;
	position: absolute;
	background: #f00;
	overflow: hidden;
	cursor: crosshair;
}
.colorpicker_color div {
	position: absolute;
	top: 0;
	left: 0;
	width: 150px;
	height: 150px;
	background: image-url('rails_admin/colorpicker/colorpicker_overlay.png');
}
.colorpicker_color div div {
	position: absolute;
	top: 0;
	left: 0;
	width: 11px;
	height: 11px;
	overflow: hidden;
	background: image-url('rails_admin/colorpicker/colorpicker_select.gif');
	margin: -5px 0 0 -5px;
}
.colorpicker_hue {
	position: absolute;
	top: 13px;
	left: 171px;
	width: 35px;
	height: 150px;
	cursor: n-resize;
}
.colorpicker_hue div {
	position: absolute;
	width: 35px;
	height: 9px;
	overflow: hidden;
	background: image-url('rails_admin/colorpicker/custom_indic.gif') left top;
	margin: -4px 0 0 0;
	left: 0px;
}
.colorpicker_new_color {
	position: absolute;
	width: 60px;
	height: 30px;
	left: 213px;
	top: 13px;
	background: #f00;
}
.colorpicker_current_color {
	position: absolute;
	width: 60px;
	height: 30px;
	left: 283px;
	top: 13px;
	background: #f00;
}
.colorpicker input {
	background-color: transparent !important;
	border: 1px solid transparent !important;
	position: absolute !important;
	font-size: 10px !important;
	font-family: Arial, Helvetica, sans-serif !important;
	color: #898989 !important;
	top: 4px !important;
	right: 11px !important;
	text-align: right !important;
	margin: 0 !important;
	padding: 0 !important;
	height: 11px !important;
	width: auto !important;
  line-height: normal !important;
}
.colorpicker_hex {
	position: absolute;
	width: 72px;
	height: 22px;
	background: image-url('rails_admin/colorpicker/custom_hex.png') top;
	left: 212px;
	top: 142px;
}
.colorpicker_hex input {
	right: 6px;
}
.colorpicker_field {
	height: 22px;
	width: 62px;
	background-position: top;
	position: absolute;
}
.colorpicker_field span {
	position: absolute;
	width: 12px;
	height: 22px;
	overflow: hidden;
	top: 0;
	right: 0;
	cursor: n-resize;
}
.colorpicker_rgb_r {
	background-image: image-url('rails_admin/colorpicker/custom_rgb_r.png');
	top: 52px;
	left: 212px;
}
.colorpicker_rgb_g {
	background-image: image-url('rails_admin/colorpicker/custom_rgb_g.png');
	top: 82px;
	left: 212px;
}
.colorpicker_rgb_b {
	background-image: image-url('rails_admin/colorpicker/custom_rgb_b.png');
	top: 112px;
	left: 212px;
}
.colorpicker_hsb_h {
	background-image: image-url('rails_admin/colorpicker/custom_hsb_h.png');
	top: 52px;
	left: 282px;
}
.colorpicker_hsb_s {
	background-image: image-url('rails_admin/colorpicker/custom_hsb_s.png');
	top: 82px;
	left: 282px;
}
.colorpicker_hsb_b {
	background-image: image-url('rails_admin/colorpicker/custom_hsb_b.png');
	top: 112px;
	left: 282px;
}
.colorpicker_submit {
	display: none;
	position: absolute;
	width: 22px;
	height: 22px;
	background: image-url('rails_admin/colorpicker/custom_submit.png') top;
	left: 322px;
	top: 142px;
	overflow: hidden;
}
.colorpicker_focus {
	background-position: center;
}
.colorpicker_hex.colorpicker_focus {
	background-position: bottom;
}
.colorpicker_submit.colorpicker_focus {
	background-position: bottom;
}
.colorpicker_slider {
	background-position: bottom;
}
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/base/0000755000076400007640000000000012570225417022673 5ustar  pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/base/theming.scss0000644000076400007640000001455512570225417025235 0ustar  pravipravi/*
  RailsAdmin main CSS
  Keep it clean, people
*/

$avatar-size: 30px;

body.rails_admin {

  .thumbnail {
    display:inline-block;
  }

  /* room for upper navbar */
  padding-top: $navbar-height;

  .navbar {
    .edit_user_root_link {
      position: relative;

      img {
        position: absolute;
        top: ((40px - $avatar-size) / 2);

        & + span {
          margin-left: ($avatar-size + 5px);
        }
      }
    }
  }

  .sidebar-nav {
    padding: 0;
    background-color: $navbar-default-bg;

    .dropdown-header {
      padding: ($grid-gutter-width / 2) ($grid-gutter-width / 2) 3px;
      font-weight: bold;
      color: $gray;
      text-transform: uppercase;
    }

    > .nav-stacked > li > a {
      padding: $padding-base-vertical ($grid-gutter-width / 2);
      border-radius: 0;

      &.nav-level-1 {
        padding-left: $grid-gutter-width;
      }

      &.nav-level-2 {
        padding-left: ($grid-gutter-width * 1.5);
      }

      &.nav-level-3 {
        padding-left: ($grid-gutter-width * 2);
      }
    }
  }

  /* fat labels in forms */
  .label.form-label {
    padding: 7px 7px 8px 7px;
  }

  /* new/edit/export forms */
  .form-horizontal {
    /* hide hidden fields controls by default */
    .control-group .hidden_type {
      display:none;
    }

    .control-group {
      .img-thumbnail {
        margin-bottom: 10px;
      }

      .btn-remove-image {
        &.btn-info {
          margin-top: 10px;
        }
      }
    }

    legend {
      cursor:pointer;
      i {
        vertical-align: inherit !important;
      }
    }

    &.denser {
      margin-top: 30px;
      .controls .nav {
        margin: 30px 0 0;
      }
      .remove_nested_fields,
      .remove_nested_one_fields {
        position:absolute;
      }
      p {
        font-size: 12px;
        line-height: 16px;
      }
      .help-block {
        // margin-top: 0px;
      }
      .input-prepend, .input-append {
        margin-bottom: 0px;
        label {
          margin-bottom: 0px;
        }
      }
      legend {
        margin-bottom: 30px;
      }
    }

    /* We want input size to be used, unfixate input width */
    input, textarea {
      width:auto;
    }
    .help-block {
      clear:left;
    }
    input[type=file] {
      display:block;
    }

    /* Put form controls above siblings to make them accessible */
    .controls {
      z-index: 1;
    }

    /* nested forms */
    .tab-content {
      clear: both;

      .tab-pane {
        @include clearfix;
        border-left: 5px solid #049cdb;
        position: relative;

        fieldset {
          padding-top: 30px;
        }

        .form-group {
          margin-right: 0;
          margin-left: -5px; /* Balance border-left */
        }

        & > .remove_nested_fields,
        & > .remove_nested_one_fields {
          display:block;
          opacity: 0;
          position: absolute;
          top: 0px;
          left: 5px;
          -webkit-transition: opacity .15s ease;
          transition: opacity .15s ease;
        }
        &:hover > .remove_nested_fields,
        &:hover > .remove_nested_one_fields,
        & > .remove_nested_one_fields.active {
          opacity: 1;
        }
      }
    }

    /* double nesting, guys. Easy. */
    .tab-content .tab-content .tab-pane {
      border-color: lighten(#049cdb, 20%);
      margin-left: 10px;

      .form-group {
        margin-left: -15px; /* Balance border-left */
      }
    }

    /* triple nesting!*/
    .tab-content .tab-content .tab-content .tab-pane {
      border-color:lighten(#049cdb, 30%);
      margin-left: 20px;

      .form-group {
        margin-left: -25px; /* Balance border-left */
      }
    }

    /* totally awesome! nesting on 4 levels! */
    .tab-content .tab-content .tab-content  .tab-content .tab-pane {
      border-color:lighten(#049cdb, 40%);
      margin-left: 30px;

      .form-group {
        margin-left: -35px; /* Balance border-left */
      }
    }
  }

  // .modal {
  //   width: 750px;
  //   margin-left: -375px;
  // }

  /* nested nav */
  .nav {
    .nav-level-1 {
      padding-left:30px;
    }
    .nav-level-2 {
      padding-left:60px;
    }
    .nav-level-3 {
      padding-left:90px;
    }
  }

  /* tab links should match icon color */
  .nav.nav-tabs {
    margin-bottom: 20px;

    li.icon a {
      color: #000;
    }
  }

  /* Table cells behaviour */
  .table {
    // Cells
    > thead,
    > tbody,
    > tfoot {
      > tr {
        > th {
          border-bottom: 0px;
        }
      }
    }
    .thumbnail {
      float:left;
      & + * {
        clear:left;
      }
    }
    /* backport of Bootstrap 1.4 table headers */
    .header {
      cursor: pointer;
      &:after {
        content: "";
        float: right;
        margin-top: 7px;
        border-width: 0 4px 4px;
        border-style: solid;
        border-color: #000 transparent;
        visibility: hidden;
      }
    }
    .headerSortUp,
    .headerSortDown {
      background-color: rgba(141,192,219,.25);
      text-shadow: 0 1px 1px rgba(255,255,255,.75);
    }
    .header:hover {
      &:after {
        visibility:visible;
      }
    }
    .headerSortDown,
    .headerSortDown:hover {
      &:after {
        visibility:visible;
        @include opacity(60);
      }
    }
    .headerSortUp {
      &:after {
        border-bottom: none;
        border-left: 4px solid transparent;
        border-right: 4px solid transparent;
        border-top: 4px solid #000;
        visibility:visible;
        @include box-shadow(none);
        @include opacity(60);
      }
    }

    /* text-overflow when cell content > 150px */
    td {
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width:150px;
    }

    /* icons */
    td.links {
      max-width: none;
      .list-inline {
        margin:0px;
        li { display:inline-block; }
      }
    }

    /* Shrink to content width */
    .shrink {
      width:1px;
      white-space:nowrap;
    }

    /* History */
    th.created_at {
      width:160px;
    }
    th.username {
      width:140px;
    }
    th.item {
      width:60px;
    }
  }
}

@media screen and (min-width: $grid-float-breakpoint) {
  body.rails_admin {
    .navbar {
      .edit_user_root_link {
        img {
          top: (($navbar-height - $avatar-size) / 2);
        }
      }
    }

    .sidebar-nav {
      position: fixed;
      top: $navbar-height;
      bottom: 0;
      overflow-y: scroll;
    }
  }
}
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/base/font-awesome-4-compability.scss0000644000076400007640000002071312570225417030652 0ustar  pravipravi[class^="icon-"],
[class*=" icon-"] {
  @extend .fa !optional;
}

.icon-glass              { @extend .fa-glass !optional; }
.icon-music              { @extend .fa-music !optional; }
.icon-search             { @extend .fa-search !optional; }
.icon-envelope           { @extend .fa-envelope !optional; }
.icon-heart              { @extend .fa-heart !optional; }
.icon-star               { @extend .fa-star !optional; }
.icon-star-empty         { @extend .fa-star-o !optional; }
.icon-user               { @extend .fa-user !optional; }
.icon-film               { @extend .fa-film !optional; }
.icon-th-large           { @extend .fa-th-large !optional; }
.icon-th                 { @extend .fa-th !optional; }
.icon-th-list            { @extend .fa-th-list !optional; }
.icon-ok                 { @extend .fa-check !optional; }
.icon-remove             { @extend .fa-times !optional; }
.icon-zoom-in            { @extend .fa-search-plus !optional; }
.icon-zoom-out           { @extend .fa-search-minus !optional; }
.icon-off                { @extend .fa-power-off !optional; }
.icon-signal             { @extend .fa-signal !optional; }
.icon-cog                { @extend .fa-cog !optional; }
.icon-trash              { @extend .fa-trash-o !optional; }

.icon-home               { @extend .fa-home !optional; }
.icon-file               { @extend .fa-file !optional; }
.icon-time               { @extend .fa-clock-o !optional; }
.icon-road               { @extend .fa-road !optional; }
.icon-download-alt       { @extend .fa-download !optional; }
.icon-download           { @extend .fa-download !optional; }
.icon-upload             { @extend .fa-upload !optional; }
.icon-inbox              { @extend .fa-inbox !optional; }
.icon-play-circle        { @extend .fa-play-circle !optional; }
.icon-repeat             { @extend .fa-repeat !optional; }
.icon-refresh            { @extend .fa-refresh !optional; }
.icon-list-alt           { @extend .fa-list-alt !optional; }
.icon-lock               { @extend .fa-lock !optional; }
.icon-flag               { @extend .fa-flag !optional; }
.icon-headphones         { @extend .fa-headphones !optional; }
.icon-volume-off         { @extend .fa-volume-off !optional; }
.icon-volume-down        { @extend .fa-volume-down !optional; }
.icon-volume-up          { @extend .fa-volume-up !optional; }
.icon-qrcode             { @extend .fa-qrcode !optional; }
.icon-barcode            { @extend .fa-barcode !optional; }

.icon-tag                { @extend .fa-tag !optional; }
.icon-tags               { @extend .fa-tags !optional; }
.icon-book               { @extend .fa-book !optional; }
.icon-bookmark           { @extend .fa-bookmark !optional; }
.icon-print              { @extend .fa-print !optional; }
.icon-camera             { @extend .fa-camera !optional; }
.icon-font               { @extend .fa-font !optional; }
.icon-bold               { @extend .fa-bold !optional; }
.icon-italic             { @extend .fa-italic !optional; }
.icon-text-height        { @extend .fa-text-height !optional; }
.icon-text-width         { @extend .fa-text-width !optional; }
.icon-align-left         { @extend .fa-align-left !optional; }
.icon-align-center       { @extend .fa-align-center !optional; }
.icon-align-right        { @extend .fa-align-right !optional; }
.icon-align-justify      { @extend .fa-align-justify !optional; }
.icon-list               { @extend .fa-list !optional; }
.icon-indent-left        { @extend .fa-indent !optional; }
.icon-indent-right       { @extend .fa-dedent !optional; }
.icon-facetime-video     { @extend .fa-video-camera !optional; }
.icon-picture            { @extend .fa-picture-o !optional; }

.icon-pencil             { @extend .fa-pencil !optional; }
.icon-map-marker         { @extend .fa-map-marker !optional; }
.icon-adjust             { @extend .fa-adjust !optional; }
.icon-tint               { @extend .fa-tint !optional; }
.icon-edit               { @extend .fa-edit !optional; }
.icon-share              { @extend .fa-share-square-o !optional; }
.icon-check              { @extend .fa-check !optional; }
.icon-move               { @extend .fa-arrows !optional; }
.icon-step-backward      { @extend .fa-step-backward !optional; }
.icon-fast-backward      { @extend .fa-fast-backward !optional; }
.icon-backward           { @extend .fa-backward !optional; }
.icon-play               { @extend .fa-play !optional; }
.icon-pause              { @extend .fa-pause !optional; }
.icon-stop               { @extend .fa-stop !optional; }
.icon-forward            { @extend .fa-forward !optional; }
.icon-fast-forward       { @extend .fa-fast-forward !optional; }
.icon-step-forward       { @extend .fa-step-forward !optional; }
.icon-eject              { @extend .fa-eject !optional; }
.icon-chevron-left       { @extend .fa-chevron-left !optional; }
.icon-chevron-right      { @extend .fa-chevron-right !optional; }

.icon-plus-sign          { @extend .fa-plus-circle !optional; }
.icon-minus-sign         { @extend .fa-minus-circle !optional; }
.icon-remove-sign        { @extend .fa-times-circle !optional; }
.icon-ok-sign            { @extend .fa-check-circle !optional; }
.icon-question-sign      { @extend .fa-question-circle !optional; }
.icon-info-sign          { @extend .fa-info-circle !optional; }
.icon-screenshot         { @extend .fa-crosshairs !optional; }
.icon-remove-circle      { @extend .fa-times-circle-o !optional; }
.icon-ok-circle          { @extend .fa-check-circle-o !optional; }
.icon-ban-circle         { @extend .fa-ban !optional; }
.icon-arrow-left         { @extend .fa-arrow-left !optional; }
.icon-arrow-right        { @extend .fa-arrow-right !optional; }
.icon-arrow-up           { @extend .fa-arrow-up !optional; }
.icon-arrow-down         { @extend .fa-arrow-down !optional; }
.icon-share-alt          { @extend .fa-share !optional; }
.icon-resize-full        { @extend .fa-expand !optional; }
.icon-resize-small       { @extend .fa-compress !optional; }
.icon-plus               { @extend .fa-plus !optional; }
.icon-minus              { @extend .fa-minus !optional; }
.icon-asterisk           { @extend .fa-asterisk !optional; }

.icon-exclamation-sign   { @extend .fa-exclamation-circle !optional; }
.icon-gift               { @extend .fa-gift !optional; }
.icon-leaf               { @extend .fa-leaf !optional; }
.icon-fire               { @extend .fa-fire !optional; }
.icon-eye-open           { @extend .fa-eye !optional; }
.icon-eye-close          { @extend .fa-eye-slash !optional; }
.icon-warning-sign       { @extend .fa-warning !optional; }
.icon-plane              { @extend .fa-plane !optional; }
.icon-calendar           { @extend .fa-calendar !optional; }
.icon-random             { @extend .fa-random !optional; }
.icon-comment            { @extend .fa-comment !optional; }
.icon-magnet             { @extend .fa-magnet !optional; }
.icon-chevron-up         { @extend .fa-chevron-up !optional; }
.icon-chevron-down       { @extend .fa-chevron-down !optional; }
.icon-retweet            { @extend .fa-retweet !optional; }
.icon-shopping-cart      { @extend .fa-shopping-cart !optional; }
.icon-folder-close       { @extend .fa-folder !optional; }
.icon-folder-open        { @extend .fa-folder-open !optional; }
.icon-resize-vertical    { @extend .fa-arrows-v !optional; }
.icon-resize-horizontal  { @extend .fa-arrows-h !optional; }

.icon-hdd                { @extend .fa-hdd-o !optional; }
.icon-bullhorn           { @extend .fa-bullhorn !optional; }
.icon-bell               { @extend .fa-bell !optional; }
.icon-certificate        { @extend .fa-certificate !optional; }
.icon-thumbs-up          { @extend .fa-thumbs-up !optional; }
.icon-thumbs-down        { @extend .fa-thumbs-down !optional; }
.icon-hand-right         { @extend .fa-hand-o-right !optional; }
.icon-hand-left          { @extend .fa-hand-o-left !optional; }
.icon-hand-up            { @extend .fa-hand-o-up !optional; }
.icon-hand-down          { @extend .fa-hand-o-down !optional; }
.icon-circle-arrow-right { @extend .fa-arrow-circle-right !optional; }
.icon-circle-arrow-left  { @extend .fa-arrow-circle-left !optional; }
.icon-circle-arrow-up    { @extend .fa-arrow-circle-up !optional; }
.icon-circle-arrow-down  { @extend .fa-arrow-circle-down !optional; }
.icon-globe              { @extend .fa-globe !optional; }
.icon-wrench             { @extend .fa-wrench !optional; }
.icon-tasks              { @extend .fa-tasks !optional; }
.icon-filter             { @extend .fa-filter !optional; }
.icon-briefcase          { @extend .fa-briefcase !optional; }
.icon-fullscreen         { @extend .fa-arrows-alt !optional; }

.icon-white              { color:white; }
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/base/README.txt0000644000076400007640000000020512570225417024366 0ustar  pravipraviFor RailsAdmin developers:
We should use sass variables & mixins as much as possible so that themers/users can override them cleanly
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/base/variables.scss0000644000076400007640000000004012570225417025532 0ustar  pravipravi/* RailsAdmin SASS variables */
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/base/mixins.scss0000644000076400007640000000003512570225417025075 0ustar  pravipravi/* RailsAdmin SASS mixins */
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/ra.filtering-multiselect.scss0000644000076400007640000000441012570225417027571 0ustar  pravipravi.ra-multiselect {

  .ra-multiselect-header {
    margin-bottom: 5px;
    clear: right;
    .help {
      float: left;
      font-size: 10px;
    }
    .ui-icon {
      position: relative;
      top: 10px;
      left: 3px;
    }
  }

  .ra-multiselect-search {
    width: 180px;
  }

  .ra-multiselect-column {
    float: left;
    .wrapper {
      overflow-x: auto;
      select {
        height: auto;
        min-height: 120px;
        margin-bottom: 5px;
        min-width: 200px;
      }
    }
  }

  .ra-multiselect-center {
    width: 30px;
    padding-top: 15px;
    text-align: center;
    .ui-icon {
      margin: 5px auto;
    }
  }

  span.ui-icon {
    margin-right: 4px;
  }
  .ui-icon {
    cursor: pointer;
    display: inline-block;
    vertical-align: top;
    &.ui-icon-circle-triangle-e {
      background-position: -16px -32px !important;
      background-image: image-url("rails_admin/multiselect/icon_sprite.png");
    }
    &.ui-icon-circle-triangle-e:hover {
      background-position: -16px -48px !important;
      background-image: image-url('rails_admin/multiselect/icon_sprite.png');
    }
    &.ui-icon-circle-triangle-w {
      background-position: 0px -32px !important;
      background-image: image-url('rails_admin/multiselect/icon_sprite.png');
    }
    &.ui-icon-circle-triangle-w:hover {
      background-position: 0px -48px !important;
      background-image: image-url('rails_admin/multiselect/icon_sprite.png');
    }
    &.ui-icon-circle-triangle-n {
      background-position: 0px 0px !important;
      margin-left: 1px;
      background-image: image-url('rails_admin/multiselect/ui-icon-circle-triangle-n-light.png');
    }
    &.ui-icon-circle-triangle-n:hover {
      background-position: 0px 0px !important;
      margin-left: 1px;
      background-image: image-url('rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png');
    }
    &.ui-icon-circle-triangle-s {
      background-position: 0px 0px !important;
      margin-left: 1px;
      background-image: image-url('rails_admin/multiselect/ui-icon-circle-triangle-s-light.png');
    }
    &.ui-icon-circle-triangle-s:hover {
      background-position: 0px 0px !important;
      margin-left: 1px;
      background-image: image-url('rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png');
    }
  }
}

rails_admin-0.7.0/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.scss0000644000076400007640000000412112570225417026742 0ustar  pravipravi/*
* Timepicker stylesheet
* Highly inspired from datepicker
* FG - Nov 2010 - Web3R
*
* version 0.0.3 : Fixed some settings, more dynamic
* version 0.0.4 : Removed width:100% on tables
* version 0.1.1 : set width 0 on tables to fix an ie6 bug
*/

.ui-timepicker-inline { display: inline; }

#ui-timepicker-div { padding: 0.2em; background-color: #fff; }
.ui-timepicker-table { display: inline-table; width: 0; }
.ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; }

.ui-timepicker-hours, .ui-timepicker-minutes { padding: 0.2em; }

.ui-timepicker-table .ui-timepicker-title { line-height: 1.8em; text-align: center; }
.ui-timepicker-table td { padding: 0.1em; width: 2.2em; }
.ui-timepicker-table th.periods { padding: 0.1em; width: 2.2em; }

/* span for disabled cells */
.ui-timepicker-table td span {
    display:block;
    padding:0.2em 0.3em 0.2em 0.5em;
    width: 1.2em;
    text-align:right;
    text-decoration:none;
}
/* anchors for clickable cells */
.ui-timepicker-table td a {
    display:block;
    padding:0.2em 0.3em 0.2em 0.5em;
    width: 1.2em;
    cursor: pointer;
    text-align:right;
    text-decoration:none;
}


/* buttons and button pane styling */
.ui-timepicker .ui-timepicker-buttonpane {
    background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0;
}
.ui-timepicker .ui-timepicker-buttonpane button { margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
/* The close button */
.ui-timepicker .ui-timepicker-close { float: right }

/* the now button */
.ui-timepicker .ui-timepicker-now { float: left; }

/* the deselect button */
.ui-timepicker .ui-timepicker-deselect { float: left; }


/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-timepicker-cover {
    display: none; /*sorry for IE5*/
    display/**/: block; /*sorry for IE5*/
    position: absolute; /*must have*/
    z-index: -1; /*must have*/
    filter: mask(); /*must have*/
    top: -4px; /*must have*/
    left: -4px; /*must have*/
    width: 200px; /*must have*/
    height: 200px; /*must have*/
}rails_admin-0.7.0/app/assets/stylesheets/rails_admin/rails_admin.scss.erb0000644000076400007640000001041412570225417025707 0ustar  pravipravi// Issue 1956 (https://github.com/sferik/rails_admin/issues/1956)
//= depend_on_asset "rails_admin/bootstrap/glyphicons-halflings.png"
//= depend_on_asset "rails_admin/bootstrap/glyphicons-halflings-white.png"
//= depend_on_asset "rails_admin/aristo/images/bg_fallback.png"
//= depend_on_asset "rails_admin/aristo/images/ui-icons_222222_256x240.png"
//= depend_on_asset "rails_admin/aristo/images/ui-icons_454545_256x240.png"
//= depend_on_asset "rails_admin/aristo/images/icon_sprite.png"
//= depend_on_asset "rails_admin/aristo/images/slider_handles.png"
//= depend_on_asset "rails_admin/aristo/images/progress_bar.gif"
//= depend_on_asset "rails_admin/multiselect/icon_sprite.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-n-light.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-n-dark.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-s-light.png"
//= depend_on_asset "rails_admin/multiselect/ui-icon-circle-triangle-s-dark.png"
//= depend_on_asset "rails_admin/colorpicker/select2.png"
//= depend_on_asset "rails_admin/colorpicker/custom_background.png"
//= depend_on_asset "rails_admin/colorpicker/colorpicker_overlay.png"
//= depend_on_asset "rails_admin/colorpicker/colorpicker_select.gif"
//= depend_on_asset "rails_admin/colorpicker/custom_indic.gif"
//= depend_on_asset "rails_admin/colorpicker/custom_hex.png"
//= depend_on_asset "rails_admin/colorpicker/custom_rgb_r.png"
//= depend_on_asset "rails_admin/colorpicker/custom_rgb_g.png"
//= depend_on_asset "rails_admin/colorpicker/custom_rgb_b.png"
//= depend_on_asset "rails_admin/colorpicker/custom_hsb_h.png"
//= depend_on_asset "rails_admin/colorpicker/custom_hsb_s.png"
//= depend_on_asset "rails_admin/colorpicker/custom_hsb_b.png"
//= depend_on_asset "rails_admin/colorpicker/custom_submit.png"


@charset "UTF-8";

<%
  theme = ENV['RAILS_ADMIN_THEME'] || :default
%>

/***  Variables  ***/

@import "rails_admin/bootstrap/variables";
@import "rails_admin/base/variables";
@import "rails_admin/themes/<%= theme %>/variables";
@import "rails_admin/custom/variables";

/***  Mixins  ***/

@import "rails_admin/bootstrap/mixins";
@import "rails_admin/base/mixins";
@import "rails_admin/themes/<%= theme %>/mixins";
@import "rails_admin/custom/mixins";

/*** Reset ***/
<%# @import "rails_admin/bootstrap/reset"; %>
/***  Libraries  ***/

@import "rails_admin/aristo/jquery-ui-1.8.7.custom";
@import "rails_admin/jquery.ui.timepicker";
@import "rails_admin/ra.calendar-additions";
@import "rails_admin/ra.filtering-multiselect";
@import "rails_admin/ra.widgets";
@import "rails_admin/jquery.colorpicker";

/*** Font-awesome ***/

@import 'font-awesome';
@import 'rails_admin/base/font-awesome-4-compability';

/***  Bootstrap Theming  ***/

@import "rails_admin/bootstrap/normalize";
@import "rails_admin/bootstrap/scaffolding";
@import "rails_admin/bootstrap/grid";
<%# @import "rails_admin/bootstrap/layouts"; %>
@import "rails_admin/bootstrap/type";
@import "rails_admin/bootstrap/forms";
@import "rails_admin/bootstrap/tables";
@import "rails_admin/bootstrap/dropdowns";
@import "rails_admin/bootstrap/wells";
@import "rails_admin/bootstrap/component-animations";
@import "rails_admin/bootstrap/close";
@import "rails_admin/bootstrap/buttons";
@import "rails_admin/bootstrap/button-groups";
@import "rails_admin/bootstrap/input-groups";
@import "rails_admin/bootstrap/alerts";
@import "rails_admin/bootstrap/navs";
@import "rails_admin/bootstrap/navbar";
@import "rails_admin/bootstrap/breadcrumbs";
@import "rails_admin/bootstrap/pagination";
@import "rails_admin/bootstrap/pager";
@import "rails_admin/bootstrap/modals";
@import "rails_admin/bootstrap/tooltip";
@import "rails_admin/bootstrap/popovers";
@import "rails_admin/bootstrap/thumbnails";
@import "rails_admin/bootstrap/labels";
@import "rails_admin/bootstrap/panels";
@import "rails_admin/bootstrap/badges";
@import "rails_admin/bootstrap/progress-bars";
<%# @import "rails_admin/bootstrap/accordion"; %>
@import "rails_admin/bootstrap/carousel";
<%# @import "rails_admin/bootstrap/hero-unit"; %>
@import "rails_admin/bootstrap/utilities";
@import "rails_admin/bootstrap/responsive-utilities";

/***  RailsAdmin Theming  ***/

@import "rails_admin/base/theming";
@import "rails_admin/themes/<%= theme %>/theming";
@import "rails_admin/custom/theming";



rails_admin-0.7.0/app/assets/stylesheets/rails_admin/custom/0000755000076400007640000000000012570225417023273 5ustar  pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/custom/theming.scss0000644000076400007640000000065412570225417025630 0ustar  pravipravi/*
  Customize RailsAdmin theme here.
  Copy this file to your app/assets/stylesheets/rails_admin/custom/theming.css.scss, leave this one untouched
  Don't require it in your application.rb

  Look at the markup in RailsAdmin and go there to get inspiration from:

  http://getbootstrap.com/2.3.2/

  Test me: (actual color should be the one defined in variables.css.scss if you did)

  body{ background-color: $linkColor; }
*/
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/custom/variables.scss0000644000076400007640000000112312570225417026135 0ustar  pravipravi/*
  Customize Sass variables from Twitter-Bootstrap/RailsAdmin theme or add new ones for your own use.
  Copy this file to your app/assets/rails_admin/custom/variables.css.scss, leave this one untouched
  Don't require it in your application.rb

  Available variables to use/override:

  https://github.com/thomas-mcdonald/bootstrap-sass/blob/master/vendor/assets/stylesheets/bootstrap/_variables.scss
  https://github.com/sferik/rails_admin/blob/master/app/assets/stylesheets/rails_admin/base/variables.css.scss
  Plus the ones from your themes.

  Test me: pink links

  $linkColor: #F0F;
*/
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/custom/mixins.scss0000644000076400007640000000103312570225417025474 0ustar  pravipravi/*
  Customize Sass mixins from Twitter-Bootstrap/RailsAdmin theme or add new ones for your own use.
  Copy this file to your app/assets/rails_admin/custom/mixins.css.scss, leave this one untouched
  Don't require it in your application.rb

  Available mixins to use/override:

  https://github.com/thomas-mcdonald/bootstrap-sass/blob/master/vendor/assets/stylesheets/bootstrap/mixins.css.scss
  https://github.com/sferik/rails_admin/blob/master/app/assets/stylesheets/rails_admin/base/mixins.css.scss
  Plus the ones from your theme.
*/

rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/0000755000076400007640000000000012570225417023776 5ustar  pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_normalize.scss0000644000076400007640000001672312570225417027043 0ustar  pravipravi/*! normalize.css v3.0.1 | MIT License | git.io/normalize */

//
// 1. Set default font family to sans-serif.
// 2. Prevent iOS text size adjust after orientation change, without disabling
//    user zoom.
//

html {
  font-family: sans-serif; // 1
  -ms-text-size-adjust: 100%; // 2
  -webkit-text-size-adjust: 100%; // 2
}

//
// Remove default margin.
//

body {
  margin: 0;
}

// HTML5 display definitions
// ==========================================================================

//
// Correct `block` display not defined for any HTML5 element in IE 8/9.
// Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox.
// Correct `block` display not defined for `main` in IE 11.
//

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block;
}

//
// 1. Correct `inline-block` display not defined in IE 8/9.
// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
//

audio,
canvas,
progress,
video {
  display: inline-block; // 1
  vertical-align: baseline; // 2
}

//
// Prevent modern browsers from displaying `audio` without controls.
// Remove excess height in iOS 5 devices.
//

audio:not([controls]) {
  display: none;
  height: 0;
}

//
// Address `[hidden]` styling not present in IE 8/9/10.
// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
//

[hidden],
template {
  display: none;
}

// Links
// ==========================================================================

//
// Remove the gray background color from active links in IE 10.
//

a {
  background: transparent;
}

//
// Improve readability when focused and also mouse hovered in all browsers.
//

a:active,
a:hover {
  outline: 0;
}

// Text-level semantics
// ==========================================================================

//
// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
//

abbr[title] {
  border-bottom: 1px dotted;
}

//
// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
//

b,
strong {
  font-weight: bold;
}

//
// Address styling not present in Safari and Chrome.
//

dfn {
  font-style: italic;
}

//
// Address variable `h1` font-size and margin within `section` and `article`
// contexts in Firefox 4+, Safari, and Chrome.
//

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

//
// Address styling not present in IE 8/9.
//

mark {
  background: #ff0;
  color: #000;
}

//
// Address inconsistent and variable font size in all browsers.
//

small {
  font-size: 80%;
}

//
// Prevent `sub` and `sup` affecting `line-height` in all browsers.
//

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

// Embedded content
// ==========================================================================

//
// Remove border when inside `a` element in IE 8/9/10.
//

img {
  border: 0;
}

//
// Correct overflow not hidden in IE 9/10/11.
//

svg:not(:root) {
  overflow: hidden;
}

// Grouping content
// ==========================================================================

//
// Address margin not present in IE 8/9 and Safari.
//

figure {
  margin: 1em 40px;
}

//
// Address differences between Firefox and other browsers.
//

hr {
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  height: 0;
}

//
// Contain overflow in all browsers.
//

pre {
  overflow: auto;
}

//
// Address odd `em`-unit font size rendering in all browsers.
//

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}

// Forms
// ==========================================================================

//
// Known limitation: by default, Chrome and Safari on OS X allow very limited
// styling of `select`, unless a `border` property is set.
//

//
// 1. Correct color not being inherited.
//    Known issue: affects color of disabled elements.
// 2. Correct font properties not being inherited.
// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
//

button,
input,
optgroup,
select,
textarea {
  color: inherit; // 1
  font: inherit; // 2
  margin: 0; // 3
}

//
// Address `overflow` set to `hidden` in IE 8/9/10/11.
//

button {
  overflow: visible;
}

//
// Address inconsistent `text-transform` inheritance for `button` and `select`.
// All other form control elements do not inherit `text-transform` values.
// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
// Correct `select` style inheritance in Firefox.
//

button,
select {
  text-transform: none;
}

//
// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
//    and `video` controls.
// 2. Correct inability to style clickable `input` types in iOS.
// 3. Improve usability and consistency of cursor style between image-type
//    `input` and others.
//

button,
html input[type="button"], // 1
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button; // 2
  cursor: pointer; // 3
}

//
// Re-set default cursor for disabled elements.
//

button[disabled],
html input[disabled] {
  cursor: default;
}

//
// Remove inner padding and border in Firefox 4+.
//

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

//
// Address Firefox 4+ setting `line-height` on `input` using `!important` in
// the UA stylesheet.
//

input {
  line-height: normal;
}

//
// It's recommended that you don't attempt to style these elements.
// Firefox's implementation doesn't respect box-sizing, padding, or width.
//
// 1. Address box sizing set to `content-box` in IE 8/9/10.
// 2. Remove excess padding in IE 8/9/10.
//

input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box; // 1
  padding: 0; // 2
}

//
// Fix the cursor style for Chrome's increment/decrement buttons. For certain
// `font-size` values of the `input`, it causes the cursor style of the
// decrement button to change from `default` to `text`.
//

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

//
// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome
//    (include `-moz` to future-proof).
//

input[type="search"] {
  -webkit-appearance: textfield; // 1
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box; // 2
  box-sizing: content-box;
}

//
// Remove inner padding and search cancel button in Safari and Chrome on OS X.
// Safari (but not Chrome) clips the cancel button when the search input has
// padding (and `textfield` appearance).
//

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

//
// Define consistent border, margin, and padding.
//

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}

//
// 1. Correct `color` not being inherited in IE 8/9/10/11.
// 2. Remove padding so people aren't caught out if they zero out fieldsets.
//

legend {
  border: 0; // 1
  padding: 0; // 2
}

//
// Remove default vertical scrollbar in IE 8/9/10/11.
//

textarea {
  overflow: auto;
}

//
// Don't inherit the `font-weight` (applied by a rule above).
// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
//

optgroup {
  font-weight: bold;
}

// Tables
// ==========================================================================

//
// Remove most spacing between table cells.
//

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss0000644000076400007640000001027212570225417031242 0ustar  pravipravi//
// Responsive: Utility classes
// --------------------------------------------------


// IE10 in Windows (Phone) 8
//
// Support for responsive views via media queries is kind of borked in IE10, for
// Surface/desktop in split view and for Windows Phone 8. This particular fix
// must be accompanied by a snippet of JavaScript to sniff the user agent and
// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at
// our Getting Started page for more information on this bug.
//
// For more information, see the following:
//
// Issue: https://github.com/twbs/bootstrap/issues/10497
// Docs: http://getbootstrap.com/getting-started/#support-ie10-width
// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/
// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/

@-ms-viewport {
  width: device-width;
}


// Visibility utilities
// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0

@include responsive-invisibility('.visible-xs, .visible-sm, .visible-md, .visible-lg');

.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
  display: none !important;
}

@media (max-width: $screen-xs-max) {
  @include responsive-visibility('.visible-xs');
}
.visible-xs-block {
  @media (max-width: $screen-xs-max) {
    display: block !important;
  }
}
.visible-xs-inline {
  @media (max-width: $screen-xs-max) {
    display: inline !important;
  }
}
.visible-xs-inline-block {
  @media (max-width: $screen-xs-max) {
    display: inline-block !important;
  }
}

@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
  @include responsive-visibility('.visible-sm');
}
.visible-sm-block {
  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
    display: block !important;
  }
}
.visible-sm-inline {
  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
    display: inline !important;
  }
}
.visible-sm-inline-block {
  @media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
    display: inline-block !important;
  }
}

@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
  @include responsive-visibility('.visible-md');
}
.visible-md-block {
  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
    display: block !important;
  }
}
.visible-md-inline {
  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
    display: inline !important;
  }
}
.visible-md-inline-block {
  @media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
    display: inline-block !important;
  }
}

@media (min-width: $screen-lg-min) {
  @include responsive-visibility('.visible-lg');
}
.visible-lg-block {
  @media (min-width: $screen-lg-min) {
    display: block !important;
  }
}
.visible-lg-inline {
  @media (min-width: $screen-lg-min) {
    display: inline !important;
  }
}
.visible-lg-inline-block {
  @media (min-width: $screen-lg-min) {
    display: inline-block !important;
  }
}

@media (max-width: $screen-xs-max) {
  @include responsive-invisibility('.hidden-xs');
}

@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
  @include responsive-invisibility('.hidden-sm');
}

@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
  @include responsive-invisibility('.hidden-md');
}

@media (min-width: $screen-lg-min) {
  @include responsive-invisibility('.hidden-lg');
}


// Print utilities
//
// Media queries are placed on the inside to be mixin-friendly.

// Note: Deprecated .visible-print as of v3.2.0

@include responsive-invisibility('.visible-print');

@media print {
  @include responsive-visibility('.visible-print');
}
.visible-print-block {
  display: none !important;

  @media print {
    display: block !important;
  }
}
.visible-print-inline {
  display: none !important;

  @media print {
    display: inline !important;
  }
}
.visible-print-inline-block {
  display: none !important;

  @media print {
    display: inline-block !important;
  }
}

@media print {
  @include responsive-invisibility('.hidden-print');
}
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss0000644000076400007640000000170512570225417027054 0ustar  pravipravi//
// Jumbotron
// --------------------------------------------------


.jumbotron {
  padding: $jumbotron-padding;
  margin-bottom: $jumbotron-padding;
  color: $jumbotron-color;
  background-color: $jumbotron-bg;

  h1,
  .h1 {
    color: $jumbotron-heading-color;
  }
  p {
    margin-bottom: ($jumbotron-padding / 2);
    font-size: $jumbotron-font-size;
    font-weight: 200;
  }

  > hr {
    border-top-color: darken($jumbotron-bg, 10%);
  }

  .container & {
    border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
  }

  .container {
    max-width: 100%;
  }

  @media screen and (min-width: $screen-sm-min) {
    padding-top:    ($jumbotron-padding * 1.6);
    padding-bottom: ($jumbotron-padding * 1.6);

    .container & {
      padding-left:  ($jumbotron-padding * 2);
      padding-right: ($jumbotron-padding * 2);
    }

    h1,
    .h1 {
      font-size: ($font-size-base * 4.5);
    }
  }
}
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_close.scss0000644000076400007640000000134012570225417026135 0ustar  pravipravi//
// Close icons
// --------------------------------------------------


.close {
  float: right;
  font-size: ($font-size-base * 1.5);
  font-weight: $close-font-weight;
  line-height: 1;
  color: $close-color;
  text-shadow: $close-text-shadow;
  @include opacity(.2);

  &:hover,
  &:focus {
    color: $close-color;
    text-decoration: none;
    cursor: pointer;
    @include opacity(.5);
  }

  // [converter] extracted button& to button.close
}

// Additional properties for button version
// iOS requires the button element instead of an anchor tag.
// If you want the anchor version, it requires `href="#"`.
button.close {
  padding: 0;
  cursor: pointer;
  background: transparent;
  border: 0;
  -webkit-appearance: none;
}
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_mixins.scss0000644000076400007640000000167512570225417026352 0ustar  pravipravi// Mixins
// --------------------------------------------------

// Utilities
@import "mixins/hide-text";
@import "mixins/opacity";
@import "mixins/image";
@import "mixins/labels";
@import "mixins/reset-filter";
@import "mixins/resize";
@import "mixins/responsive-visibility";
@import "mixins/size";
@import "mixins/tab-focus";
@import "mixins/text-emphasis";
@import "mixins/text-overflow";
@import "mixins/vendor-prefixes";

// Components
@import "mixins/alerts";
@import "mixins/buttons";
@import "mixins/panels";
@import "mixins/pagination";
@import "mixins/list-group";
@import "mixins/nav-divider";
@import "mixins/forms";
@import "mixins/progress-bar";
@import "mixins/table-row";

// Skins
@import "mixins/background-variant";
@import "mixins/border-radius";
@import "mixins/gradients";

// Layout
@import "mixins/clearfix";
@import "mixins/center-block";
@import "mixins/nav-vertical-align";
@import "mixins/grid-framework";
@import "mixins/grid";
rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_list-group.scss0000644000076400007640000000613112570225417027140 0ustar  pravipravi//
// List groups
// --------------------------------------------------


// Base class
//
// Easily usable on 
    ,
      , or
      . .list-group { // No need to set list-style: none; since .list-group-item is block level margin-bottom: 20px; padding-left: 0; // reset padding because ul and ol } // Individual list items // // Use on `li`s or `div`s within the `.list-group` parent. .list-group-item { position: relative; display: block; padding: 10px 15px; // Place the border on the list items and negative margin up for better styling margin-bottom: -1px; background-color: $list-group-bg; border: 1px solid $list-group-border; // Round the first and last items &:first-child { @include border-top-radius($list-group-border-radius); } &:last-child { margin-bottom: 0; @include border-bottom-radius($list-group-border-radius); } // Align badges within list items > .badge { float: right; } > .badge + .badge { margin-right: 5px; } } // Linked list items // // Use anchor elements instead of `li`s or `div`s to create linked list items. // Includes an extra `.active` modifier class for showing selected items. a.list-group-item { color: $list-group-link-color; .list-group-item-heading { color: $list-group-link-heading-color; } // Hover state &:hover, &:focus { text-decoration: none; color: $list-group-link-hover-color; background-color: $list-group-hover-bg; } } .list-group-item { // Disabled state &.disabled, &.disabled:hover, &.disabled:focus { background-color: $list-group-disabled-bg; color: $list-group-disabled-color; // Force color to inherit for custom content .list-group-item-heading { color: inherit; } .list-group-item-text { color: $list-group-disabled-text-color; } } // Active class on item itself, not parent &.active, &.active:hover, &.active:focus { z-index: 2; // Place active items above their siblings for proper border styling color: $list-group-active-color; background-color: $list-group-active-bg; border-color: $list-group-active-border; // Force color to inherit for custom content .list-group-item-heading, .list-group-item-heading > small, .list-group-item-heading > .small { color: inherit; } .list-group-item-text { color: $list-group-active-text-color; } } } // Contextual variants // // Add modifier classes to change text and background color on individual items. // Organizationally, this must come after the `:hover` states. @include list-group-item-variant(success, $state-success-bg, $state-success-text); @include list-group-item-variant(info, $state-info-bg, $state-info-text); @include list-group-item-variant(warning, $state-warning-bg, $state-warning-text); @include list-group-item-variant(danger, $state-danger-bg, $state-danger-text); // Custom content options // // Extra classes for creating well-formatted content within `.list-group-item`s. .list-group-item-heading { margin-top: 0; margin-bottom: 5px; } .list-group-item-text { margin-bottom: 0; line-height: 1.3; } rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_navbar.scss0000644000076400007640000003472312570225417026314 0ustar pravipravi// // Navbars // -------------------------------------------------- // Wrapper and base class // // Provide a static navbar from which we expand to create full-width, fixed, and // other navbar variations. .navbar { position: relative; min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) margin-bottom: $navbar-margin-bottom; border: 1px solid transparent; // Prevent floats from breaking the navbar @include clearfix(); @media (min-width: $grid-float-breakpoint) { border-radius: $navbar-border-radius; } } // Navbar heading // // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy // styling of responsive aspects. .navbar-header { @include clearfix(); @media (min-width: $grid-float-breakpoint) { float: left; } } // Navbar collapse (body) // // Group your navbar content into this for easy collapsing and expanding across // various device sizes. By default, this content is collapsed when <768px, but // will expand past that for a horizontal display. // // To start (on mobile devices) the navbar links, forms, and buttons are stacked // vertically and include a `max-height` to overflow in case you have too much // content for the user's viewport. .navbar-collapse { overflow-x: visible; padding-right: $navbar-padding-horizontal; padding-left: $navbar-padding-horizontal; border-top: 1px solid transparent; box-shadow: inset 0 1px 0 rgba(255,255,255,.1); @include clearfix(); -webkit-overflow-scrolling: touch; &.in { overflow-y: auto; } @media (min-width: $grid-float-breakpoint) { width: auto; border-top: 0; box-shadow: none; &.collapse { display: block !important; height: auto !important; padding-bottom: 0; // Override default setting overflow: visible !important; } &.in { overflow-y: visible; } // Undo the collapse side padding for navbars with containers to ensure // alignment of right-aligned contents. .navbar-fixed-top &, .navbar-static-top &, .navbar-fixed-bottom & { padding-left: 0; padding-right: 0; } } } .navbar-fixed-top, .navbar-fixed-bottom { .navbar-collapse { max-height: $navbar-collapse-max-height; @media (max-width: $screen-xs-min) and (orientation: landscape) { max-height: 200px; } } } // Both navbar header and collapse // // When a container is present, change the behavior of the header and collapse. .container, .container-fluid { > .navbar-header, > .navbar-collapse { margin-right: -$navbar-padding-horizontal; margin-left: -$navbar-padding-horizontal; @media (min-width: $grid-float-breakpoint) { margin-right: 0; margin-left: 0; } } } // // Navbar alignment options // // Display the navbar across the entirety of the page or fixed it to the top or // bottom of the page. // Static top (unfixed, but 100% wide) navbar .navbar-static-top { z-index: $zindex-navbar; border-width: 0 0 1px; @media (min-width: $grid-float-breakpoint) { border-radius: 0; } } // Fix the top/bottom navbars when screen real estate supports it .navbar-fixed-top, .navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: $zindex-navbar-fixed; @include translate3d(0, 0, 0); // Undo the rounded corners @media (min-width: $grid-float-breakpoint) { border-radius: 0; } } .navbar-fixed-top { top: 0; border-width: 0 0 1px; } .navbar-fixed-bottom { bottom: 0; margin-bottom: 0; // override .navbar defaults border-width: 1px 0 0; } // Brand/project name .navbar-brand { float: left; padding: $navbar-padding-vertical $navbar-padding-horizontal; font-size: $font-size-large; line-height: $line-height-computed; height: $navbar-height; &:hover, &:focus { text-decoration: none; } @media (min-width: $grid-float-breakpoint) { .navbar > .container &, .navbar > .container-fluid & { margin-left: -$navbar-padding-horizontal; } } } // Navbar toggle // // Custom button for toggling the `.navbar-collapse`, powered by the collapse // JavaScript plugin. .navbar-toggle { position: relative; float: right; margin-right: $navbar-padding-horizontal; padding: 9px 10px; @include navbar-vertical-align(34px); background-color: transparent; background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214 border: 1px solid transparent; border-radius: $border-radius-base; // We remove the `outline` here, but later compensate by attaching `:hover` // styles to `:focus`. &:focus { outline: 0; } // Bars .icon-bar { display: block; width: 22px; height: 2px; border-radius: 1px; } .icon-bar + .icon-bar { margin-top: 4px; } @media (min-width: $grid-float-breakpoint) { display: none; } } // Navbar nav links // // Builds on top of the `.nav` components with its own modifier class to make // the nav the full height of the horizontal nav (above 768px). .navbar-nav { margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal); > li > a { padding-top: 10px; padding-bottom: 10px; line-height: $line-height-computed; } @media (max-width: $grid-float-breakpoint-max) { // Dropdowns get custom display when collapsed .open .dropdown-menu { position: static; float: none; width: auto; margin-top: 0; background-color: transparent; border: 0; box-shadow: none; > li > a, .dropdown-header { padding: 5px 15px 5px 25px; } > li > a { line-height: $line-height-computed; &:hover, &:focus { background-image: none; } } } } // Uncollapse the nav @media (min-width: $grid-float-breakpoint) { float: left; margin: 0; > li { float: left; > a { padding-top: $navbar-padding-vertical; padding-bottom: $navbar-padding-vertical; } } &.navbar-right:last-child { margin-right: -$navbar-padding-horizontal; } } } // Component alignment // // Repurpose the pull utilities as their own navbar utilities to avoid specificity // issues with parents and chaining. Only do this when the navbar is uncollapsed // though so that navbar contents properly stack and align in mobile. @media (min-width: $grid-float-breakpoint) { .navbar-left { float: left !important; } .navbar-right { float: right !important; } } // Navbar form // // Extension of the `.form-inline` with some extra flavor for optimum display in // our navbars. .navbar-form { margin-left: -$navbar-padding-horizontal; margin-right: -$navbar-padding-horizontal; padding: 10px $navbar-padding-horizontal; border-top: 1px solid transparent; border-bottom: 1px solid transparent; $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1); @include box-shadow($shadow); // Mixin behavior for optimum display @extend .form-inline; .form-group { @media (max-width: $grid-float-breakpoint-max) { margin-bottom: 5px; } } // Vertically center in expanded, horizontal navbar @include navbar-vertical-align($input-height-base); // Undo 100% width for pull classes @media (min-width: $grid-float-breakpoint) { width: auto; border: 0; margin-left: 0; margin-right: 0; padding-top: 0; padding-bottom: 0; @include box-shadow(none); // Outdent the form if last child to line up with content down the page &.navbar-right:last-child { margin-right: -$navbar-padding-horizontal; } } } // Dropdown menus // Menu position and menu carets .navbar-nav > li > .dropdown-menu { margin-top: 0; @include border-top-radius(0); } // Menu position and menu caret support for dropups via extra dropup class .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { @include border-bottom-radius(0); } // Buttons in navbars // // Vertically center a button within a navbar (when *not* in a form). .navbar-btn { @include navbar-vertical-align($input-height-base); &.btn-sm { @include navbar-vertical-align($input-height-small); } &.btn-xs { @include navbar-vertical-align(22); } } // Text in navbars // // Add a class to make any element properly align itself vertically within the navbars. .navbar-text { @include navbar-vertical-align($line-height-computed); @media (min-width: $grid-float-breakpoint) { float: left; margin-left: $navbar-padding-horizontal; margin-right: $navbar-padding-horizontal; // Outdent the form if last child to line up with content down the page &.navbar-right:last-child { margin-right: 0; } } } // Alternate navbars // -------------------------------------------------- // Default navbar .navbar-default { background-color: $navbar-default-bg; border-color: $navbar-default-border; .navbar-brand { color: $navbar-default-brand-color; &:hover, &:focus { color: $navbar-default-brand-hover-color; background-color: $navbar-default-brand-hover-bg; } } .navbar-text { color: $navbar-default-color; } .navbar-nav { > li > a { color: $navbar-default-link-color; &:hover, &:focus { color: $navbar-default-link-hover-color; background-color: $navbar-default-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: $navbar-default-link-active-color; background-color: $navbar-default-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: $navbar-default-link-disabled-color; background-color: $navbar-default-link-disabled-bg; } } } .navbar-toggle { border-color: $navbar-default-toggle-border-color; &:hover, &:focus { background-color: $navbar-default-toggle-hover-bg; } .icon-bar { background-color: $navbar-default-toggle-icon-bar-bg; } } .navbar-collapse, .navbar-form { border-color: $navbar-default-border; } // Dropdown menu items .navbar-nav { // Remove background color from open dropdown > .open > a { &, &:hover, &:focus { background-color: $navbar-default-link-active-bg; color: $navbar-default-link-active-color; } } @media (max-width: $grid-float-breakpoint-max) { // Dropdowns get custom display when collapsed .open .dropdown-menu { > li > a { color: $navbar-default-link-color; &:hover, &:focus { color: $navbar-default-link-hover-color; background-color: $navbar-default-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: $navbar-default-link-active-color; background-color: $navbar-default-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: $navbar-default-link-disabled-color; background-color: $navbar-default-link-disabled-bg; } } } } } // Links in navbars // // Add a class to ensure links outside the navbar nav are colored correctly. .navbar-link { color: $navbar-default-link-color; &:hover { color: $navbar-default-link-hover-color; } } .btn-link { color: $navbar-default-link-color; &:hover, &:focus { color: $navbar-default-link-hover-color; } &[disabled], fieldset[disabled] & { &:hover, &:focus { color: $navbar-default-link-disabled-color; } } } } // Inverse navbar .navbar-inverse { background-color: $navbar-inverse-bg; border-color: $navbar-inverse-border; .navbar-brand { color: $navbar-inverse-brand-color; &:hover, &:focus { color: $navbar-inverse-brand-hover-color; background-color: $navbar-inverse-brand-hover-bg; } } .navbar-text { color: $navbar-inverse-color; } .navbar-nav { > li > a { color: $navbar-inverse-link-color; &:hover, &:focus { color: $navbar-inverse-link-hover-color; background-color: $navbar-inverse-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: $navbar-inverse-link-active-color; background-color: $navbar-inverse-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: $navbar-inverse-link-disabled-color; background-color: $navbar-inverse-link-disabled-bg; } } } // Darken the responsive nav toggle .navbar-toggle { border-color: $navbar-inverse-toggle-border-color; &:hover, &:focus { background-color: $navbar-inverse-toggle-hover-bg; } .icon-bar { background-color: $navbar-inverse-toggle-icon-bar-bg; } } .navbar-collapse, .navbar-form { border-color: darken($navbar-inverse-bg, 7%); } // Dropdowns .navbar-nav { > .open > a { &, &:hover, &:focus { background-color: $navbar-inverse-link-active-bg; color: $navbar-inverse-link-active-color; } } @media (max-width: $grid-float-breakpoint-max) { // Dropdowns get custom display .open .dropdown-menu { > .dropdown-header { border-color: $navbar-inverse-border; } .divider { background-color: $navbar-inverse-border; } > li > a { color: $navbar-inverse-link-color; &:hover, &:focus { color: $navbar-inverse-link-hover-color; background-color: $navbar-inverse-link-hover-bg; } } > .active > a { &, &:hover, &:focus { color: $navbar-inverse-link-active-color; background-color: $navbar-inverse-link-active-bg; } } > .disabled > a { &, &:hover, &:focus { color: $navbar-inverse-link-disabled-color; background-color: $navbar-inverse-link-disabled-bg; } } } } } .navbar-link { color: $navbar-inverse-link-color; &:hover { color: $navbar-inverse-link-hover-color; } } .btn-link { color: $navbar-inverse-link-color; &:hover, &:focus { color: $navbar-inverse-link-hover-color; } &[disabled], fieldset[disabled] & { &:hover, &:focus { color: $navbar-inverse-link-disabled-color; } } } } rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_variables.scss0000644000076400007640000007243212570225417027012 0ustar pravipravi// a flag to toggle asset pipeline / compass integration // defaults to true if twbs-font-path function is present (no function => twbs-font-path('') parsed as string == right side) // in Sass 3.3 this can be improved with: function-exists(twbs-font-path) $bootstrap-sass-asset-helper: (twbs-font-path("") != unquote('twbs-font-path("")')) !default; // // Variables // -------------------------------------------------- //== Colors // //## Gray and brand colors for use across Bootstrap. $gray-darker: lighten(#000, 13.5%) !default; // #222 $gray-dark: lighten(#000, 20%) !default; // #333 $gray: lighten(#000, 33.5%) !default; // #555 $gray-light: lighten(#000, 46.7%) !default; // #777 $gray-lighter: lighten(#000, 93.5%) !default; // #eee $brand-primary: #428bca !default; $brand-success: #5cb85c !default; $brand-info: #5bc0de !default; $brand-warning: #f0ad4e !default; $brand-danger: #d9534f !default; //== Scaffolding // //## Settings for some of the most global styles. //** Background color for ``. $body-bg: #fff !default; //** Global text color on ``. $text-color: $gray-dark !default; //** Global textual link color. $link-color: $brand-primary !default; //** Link hover color set via `darken()` function. $link-hover-color: darken($link-color, 15%) !default; //== Typography // //## Font, line-height, and color for body text, headings, and more. $font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif !default; $font-family-serif: Georgia, "Times New Roman", Times, serif !default; //** Default monospace fonts for ``, ``, and `
      `.
      $font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace !default;
      $font-family-base:        $font-family-sans-serif !default;
      
      $font-size-base:          14px !default;
      $font-size-large:         ceil(($font-size-base * 1.25)) !default; // ~18px
      $font-size-small:         ceil(($font-size-base * 0.85)) !default; // ~12px
      
      $font-size-h1:            floor(($font-size-base * 2.6)) !default; // ~36px
      $font-size-h2:            floor(($font-size-base * 2.15)) !default; // ~30px
      $font-size-h3:            ceil(($font-size-base * 1.7)) !default; // ~24px
      $font-size-h4:            ceil(($font-size-base * 1.25)) !default; // ~18px
      $font-size-h5:            $font-size-base !default;
      $font-size-h6:            ceil(($font-size-base * 0.85)) !default; // ~12px
      
      //** Unit-less `line-height` for use in components like buttons.
      $line-height-base:        1.428571429 !default; // 20/14
      //** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
      $line-height-computed:    floor(($font-size-base * $line-height-base)) !default; // ~20px
      
      //** By default, this inherits from the ``.
      $headings-font-family:    inherit !default;
      $headings-font-weight:    500 !default;
      $headings-line-height:    1.1 !default;
      $headings-color:          inherit !default;
      
      
      //== Iconography
      //
      //## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
      
      //** Load fonts from this directory.
      $icon-font-path: "bootstrap/" !default;
      //** File name for all font files.
      $icon-font-name:          "glyphicons-halflings-regular" !default;
      //** Element ID within SVG icon file.
      $icon-font-svg-id:        "glyphicons_halflingsregular" !default;
      
      
      //== Components
      //
      //## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
      
      $padding-base-vertical:     6px !default;
      $padding-base-horizontal:   12px !default;
      
      $padding-large-vertical:    10px !default;
      $padding-large-horizontal:  16px !default;
      
      $padding-small-vertical:    5px !default;
      $padding-small-horizontal:  10px !default;
      
      $padding-xs-vertical:       1px !default;
      $padding-xs-horizontal:     5px !default;
      
      $line-height-large:         1.33 !default;
      $line-height-small:         1.5 !default;
      
      $border-radius-base:        4px !default;
      $border-radius-large:       6px !default;
      $border-radius-small:       3px !default;
      
      //** Global color for active items (e.g., navs or dropdowns).
      $component-active-color:    #fff !default;
      //** Global background color for active items (e.g., navs or dropdowns).
      $component-active-bg:       $brand-primary !default;
      
      //** Width of the `border` for generating carets that indicator dropdowns.
      $caret-width-base:          4px !default;
      //** Carets increase slightly in size for larger components.
      $caret-width-large:         5px !default;
      
      
      //== Tables
      //
      //## Customizes the `.table` component with basic values, each used across all table variations.
      
      //** Padding for ``s and ``s.
      $table-cell-padding:            8px !default;
      //** Padding for cells in `.table-condensed`.
      $table-condensed-cell-padding:  5px !default;
      
      //** Default background color used for all tables.
      $table-bg:                      transparent !default;
      //** Background color used for `.table-striped`.
      $table-bg-accent:               #f9f9f9 !default;
      //** Background color used for `.table-hover`.
      $table-bg-hover:                #f5f5f5 !default;
      $table-bg-active:               $table-bg-hover !default;
      
      //** Border color for table and cell borders.
      $table-border-color:            #ddd !default;
      
      
      //== Buttons
      //
      //## For each of Bootstrap's buttons, define text, background and border color.
      
      $btn-font-weight:                normal !default;
      
      $btn-default-color:              #333 !default;
      $btn-default-bg:                 #fff !default;
      $btn-default-border:             #ccc !default;
      
      $btn-primary-color:              #fff !default;
      $btn-primary-bg:                 $brand-primary !default;
      $btn-primary-border:             darken($btn-primary-bg, 5%) !default;
      
      $btn-success-color:              #fff !default;
      $btn-success-bg:                 $brand-success !default;
      $btn-success-border:             darken($btn-success-bg, 5%) !default;
      
      $btn-info-color:                 #fff !default;
      $btn-info-bg:                    $brand-info !default;
      $btn-info-border:                darken($btn-info-bg, 5%) !default;
      
      $btn-warning-color:              #fff !default;
      $btn-warning-bg:                 $brand-warning !default;
      $btn-warning-border:             darken($btn-warning-bg, 5%) !default;
      
      $btn-danger-color:               #fff !default;
      $btn-danger-bg:                  $brand-danger !default;
      $btn-danger-border:              darken($btn-danger-bg, 5%) !default;
      
      $btn-link-disabled-color:        $gray-light !default;
      
      
      //== Forms
      //
      //##
      
      //** `` background color
      $input-bg:                       #fff !default;
      //** `` background color
      $input-bg-disabled:              $gray-lighter !default;
      
      //** Text color for ``s
      $input-color:                    $gray !default;
      //** `` border color
      $input-border:                   #ccc !default;
      //** `` border radius
      $input-border-radius:            $border-radius-base !default;
      //** Border color for inputs on focus
      $input-border-focus:             #66afe9 !default;
      
      //** Placeholder text color
      $input-color-placeholder:        $gray-light !default;
      
      //** Default `.form-control` height
      $input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2) !default;
      //** Large `.form-control` height
      $input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2) !default;
      //** Small `.form-control` height
      $input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2) !default;
      
      $legend-color:                   $gray-dark !default;
      $legend-border-color:            #e5e5e5 !default;
      
      //** Background color for textual input addons
      $input-group-addon-bg:           $gray-lighter !default;
      //** Border color for textual input addons
      $input-group-addon-border-color: $input-border !default;
      
      
      //== Dropdowns
      //
      //## Dropdown menu container and contents.
      
      //** Background for the dropdown menu.
      $dropdown-bg:                    #fff !default;
      //** Dropdown menu `border-color`.
      $dropdown-border:                rgba(0,0,0,.15) !default;
      //** Dropdown menu `border-color` **for IE8**.
      $dropdown-fallback-border:       #ccc !default;
      //** Divider color for between dropdown items.
      $dropdown-divider-bg:            #e5e5e5 !default;
      
      //** Dropdown link text color.
      $dropdown-link-color:            $gray-dark !default;
      //** Hover color for dropdown links.
      $dropdown-link-hover-color:      darken($gray-dark, 5%) !default;
      //** Hover background for dropdown links.
      $dropdown-link-hover-bg:         #f5f5f5 !default;
      
      //** Active dropdown menu item text color.
      $dropdown-link-active-color:     $component-active-color !default;
      //** Active dropdown menu item background color.
      $dropdown-link-active-bg:        $component-active-bg !default;
      
      //** Disabled dropdown menu item background color.
      $dropdown-link-disabled-color:   $gray-light !default;
      
      //** Text color for headers within dropdown menus.
      $dropdown-header-color:          $gray-light !default;
      
      //** Deprecated `$dropdown-caret-color` as of v3.1.0
      $dropdown-caret-color:           #000 !default;
      
      
      //-- Z-index master list
      //
      // Warning: Avoid customizing these values. They're used for a bird's eye view
      // of components dependent on the z-axis and are designed to all work together.
      //
      // Note: These variables are not generated into the Customizer.
      
      $zindex-navbar:            1000 !default;
      $zindex-dropdown:          1000 !default;
      $zindex-popover:           1060 !default;
      $zindex-tooltip:           1070 !default;
      $zindex-navbar-fixed:      1030 !default;
      $zindex-modal-background:  1040 !default;
      $zindex-modal:             1050 !default;
      
      
      //== Media queries breakpoints
      //
      //## Define the breakpoints at which your layout will change, adapting to different screen sizes.
      
      // Extra small screen / phone
      //** Deprecated `$screen-xs` as of v3.0.1
      $screen-xs:                  480px !default;
      //** Deprecated `$screen-xs-min` as of v3.2.0
      $screen-xs-min:              $screen-xs !default;
      //** Deprecated `$screen-phone` as of v3.0.1
      $screen-phone:               $screen-xs-min !default;
      
      // Small screen / tablet
      //** Deprecated `$screen-sm` as of v3.0.1
      $screen-sm:                  768px !default;
      $screen-sm-min:              $screen-sm !default;
      //** Deprecated `$screen-tablet` as of v3.0.1
      $screen-tablet:              $screen-sm-min !default;
      
      // Medium screen / desktop
      //** Deprecated `$screen-md` as of v3.0.1
      $screen-md:                  992px !default;
      $screen-md-min:              $screen-md !default;
      //** Deprecated `$screen-desktop` as of v3.0.1
      $screen-desktop:             $screen-md-min !default;
      
      // Large screen / wide desktop
      //** Deprecated `$screen-lg` as of v3.0.1
      $screen-lg:                  1200px !default;
      $screen-lg-min:              $screen-lg !default;
      //** Deprecated `$screen-lg-desktop` as of v3.0.1
      $screen-lg-desktop:          $screen-lg-min !default;
      
      // So media queries don't overlap when required, provide a maximum
      $screen-xs-max:              ($screen-sm-min - 1) !default;
      $screen-sm-max:              ($screen-md-min - 1) !default;
      $screen-md-max:              ($screen-lg-min - 1) !default;
      
      
      //== Grid system
      //
      //## Define your custom responsive grid.
      
      //** Number of columns in the grid.
      $grid-columns:              12 !default;
      //** Padding between columns. Gets divided in half for the left and right.
      $grid-gutter-width:         30px !default;
      // Navbar collapse
      //** Point at which the navbar becomes uncollapsed.
      $grid-float-breakpoint:     $screen-sm-min !default;
      //** Point at which the navbar begins collapsing.
      $grid-float-breakpoint-max: ($grid-float-breakpoint - 1) !default;
      
      
      //== Container sizes
      //
      //## Define the maximum width of `.container` for different screen sizes.
      
      // Small screen / tablet
      $container-tablet:             ((720px + $grid-gutter-width)) !default;
      //** For `$screen-sm-min` and up.
      $container-sm:                 $container-tablet !default;
      
      // Medium screen / desktop
      $container-desktop:            ((940px + $grid-gutter-width)) !default;
      //** For `$screen-md-min` and up.
      $container-md:                 $container-desktop !default;
      
      // Large screen / wide desktop
      $container-large-desktop:      ((1140px + $grid-gutter-width)) !default;
      //** For `$screen-lg-min` and up.
      $container-lg:                 $container-large-desktop !default;
      
      
      //== Navbar
      //
      //##
      
      // Basics of a navbar
      $navbar-height:                    50px !default;
      $navbar-margin-bottom:             $line-height-computed !default;
      $navbar-border-radius:             $border-radius-base !default;
      $navbar-padding-horizontal:        floor(($grid-gutter-width / 2)) !default;
      $navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2) !default;
      $navbar-collapse-max-height:       340px !default;
      
      $navbar-default-color:             #777 !default;
      $navbar-default-bg:                #f8f8f8 !default;
      $navbar-default-border:            darken($navbar-default-bg, 6.5%) !default;
      
      // Navbar links
      $navbar-default-link-color:                #777 !default;
      $navbar-default-link-hover-color:          #333 !default;
      $navbar-default-link-hover-bg:             transparent !default;
      $navbar-default-link-active-color:         #555 !default;
      $navbar-default-link-active-bg:            darken($navbar-default-bg, 6.5%) !default;
      $navbar-default-link-disabled-color:       #ccc !default;
      $navbar-default-link-disabled-bg:          transparent !default;
      
      // Navbar brand label
      $navbar-default-brand-color:               $navbar-default-link-color !default;
      $navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%) !default;
      $navbar-default-brand-hover-bg:            transparent !default;
      
      // Navbar toggle
      $navbar-default-toggle-hover-bg:           #ddd !default;
      $navbar-default-toggle-icon-bar-bg:        #888 !default;
      $navbar-default-toggle-border-color:       #ddd !default;
      
      
      // Inverted navbar
      // Reset inverted navbar basics
      $navbar-inverse-color:                      $gray-light !default;
      $navbar-inverse-bg:                         #222 !default;
      $navbar-inverse-border:                     darken($navbar-inverse-bg, 10%) !default;
      
      // Inverted navbar links
      $navbar-inverse-link-color:                 $gray-light !default;
      $navbar-inverse-link-hover-color:           #fff !default;
      $navbar-inverse-link-hover-bg:              transparent !default;
      $navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color !default;
      $navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%) !default;
      $navbar-inverse-link-disabled-color:        #444 !default;
      $navbar-inverse-link-disabled-bg:           transparent !default;
      
      // Inverted navbar brand label
      $navbar-inverse-brand-color:                $navbar-inverse-link-color !default;
      $navbar-inverse-brand-hover-color:          #fff !default;
      $navbar-inverse-brand-hover-bg:             transparent !default;
      
      // Inverted navbar toggle
      $navbar-inverse-toggle-hover-bg:            #333 !default;
      $navbar-inverse-toggle-icon-bar-bg:         #fff !default;
      $navbar-inverse-toggle-border-color:        #333 !default;
      
      
      //== Navs
      //
      //##
      
      //=== Shared nav styles
      $nav-link-padding:                          10px 15px !default;
      $nav-link-hover-bg:                         $gray-lighter !default;
      
      $nav-disabled-link-color:                   $gray-light !default;
      $nav-disabled-link-hover-color:             $gray-light !default;
      
      $nav-open-link-hover-color:                 #fff !default;
      
      //== Tabs
      $nav-tabs-border-color:                     #ddd !default;
      
      $nav-tabs-link-hover-border-color:          $gray-lighter !default;
      
      $nav-tabs-active-link-hover-bg:             $body-bg !default;
      $nav-tabs-active-link-hover-color:          $gray !default;
      $nav-tabs-active-link-hover-border-color:   #ddd !default;
      
      $nav-tabs-justified-link-border-color:            #ddd !default;
      $nav-tabs-justified-active-link-border-color:     $body-bg !default;
      
      //== Pills
      $nav-pills-border-radius:                   $border-radius-base !default;
      $nav-pills-active-link-hover-bg:            $component-active-bg !default;
      $nav-pills-active-link-hover-color:         $component-active-color !default;
      
      
      //== Pagination
      //
      //##
      
      $pagination-color:                     $link-color !default;
      $pagination-bg:                        #fff !default;
      $pagination-border:                    #ddd !default;
      
      $pagination-hover-color:               $link-hover-color !default;
      $pagination-hover-bg:                  $gray-lighter !default;
      $pagination-hover-border:              #ddd !default;
      
      $pagination-active-color:              #fff !default;
      $pagination-active-bg:                 $brand-primary !default;
      $pagination-active-border:             $brand-primary !default;
      
      $pagination-disabled-color:            $gray-light !default;
      $pagination-disabled-bg:               #fff !default;
      $pagination-disabled-border:           #ddd !default;
      
      
      //== Pager
      //
      //##
      
      $pager-bg:                             $pagination-bg !default;
      $pager-border:                         $pagination-border !default;
      $pager-border-radius:                  15px !default;
      
      $pager-hover-bg:                       $pagination-hover-bg !default;
      
      $pager-active-bg:                      $pagination-active-bg !default;
      $pager-active-color:                   $pagination-active-color !default;
      
      $pager-disabled-color:                 $pagination-disabled-color !default;
      
      
      //== Jumbotron
      //
      //##
      
      $jumbotron-padding:              30px !default;
      $jumbotron-color:                inherit !default;
      $jumbotron-bg:                   $gray-lighter !default;
      $jumbotron-heading-color:        inherit !default;
      $jumbotron-font-size:            ceil(($font-size-base * 1.5)) !default;
      
      
      //== Form states and alerts
      //
      //## Define colors for form feedback states and, by default, alerts.
      
      $state-success-text:             #3c763d !default;
      $state-success-bg:               #dff0d8 !default;
      $state-success-border:           darken(adjust-hue($state-success-bg, -10), 5%) !default;
      
      $state-info-text:                #31708f !default;
      $state-info-bg:                  #d9edf7 !default;
      $state-info-border:              darken(adjust-hue($state-info-bg, -10), 7%) !default;
      
      $state-warning-text:             #8a6d3b !default;
      $state-warning-bg:               #fcf8e3 !default;
      $state-warning-border:           darken(adjust-hue($state-warning-bg, -10), 5%) !default;
      
      $state-danger-text:              #a94442 !default;
      $state-danger-bg:                #f2dede !default;
      $state-danger-border:            darken(adjust-hue($state-danger-bg, -10), 5%) !default;
      
      
      //== Tooltips
      //
      //##
      
      //** Tooltip max width
      $tooltip-max-width:           200px !default;
      //** Tooltip text color
      $tooltip-color:               #fff !default;
      //** Tooltip background color
      $tooltip-bg:                  #000 !default;
      $tooltip-opacity:             .9 !default;
      
      //** Tooltip arrow width
      $tooltip-arrow-width:         5px !default;
      //** Tooltip arrow color
      $tooltip-arrow-color:         $tooltip-bg !default;
      
      
      //== Popovers
      //
      //##
      
      //** Popover body background color
      $popover-bg:                          #fff !default;
      //** Popover maximum width
      $popover-max-width:                   276px !default;
      //** Popover border color
      $popover-border-color:                rgba(0,0,0,.2) !default;
      //** Popover fallback border color
      $popover-fallback-border-color:       #ccc !default;
      
      //** Popover title background color
      $popover-title-bg:                    darken($popover-bg, 3%) !default;
      
      //** Popover arrow width
      $popover-arrow-width:                 10px !default;
      //** Popover arrow color
      $popover-arrow-color:                 #fff !default;
      
      //** Popover outer arrow width
      $popover-arrow-outer-width:           ($popover-arrow-width + 1) !default;
      //** Popover outer arrow color
      $popover-arrow-outer-color:           fade_in($popover-border-color, 0.05) !default;
      //** Popover outer arrow fallback color
      $popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%) !default;
      
      
      //== Labels
      //
      //##
      
      //** Default label background color
      $label-default-bg:            $gray-light !default;
      //** Primary label background color
      $label-primary-bg:            $brand-primary !default;
      //** Success label background color
      $label-success-bg:            $brand-success !default;
      //** Info label background color
      $label-info-bg:               $brand-info !default;
      //** Warning label background color
      $label-warning-bg:            $brand-warning !default;
      //** Danger label background color
      $label-danger-bg:             $brand-danger !default;
      
      //** Default label text color
      $label-color:                 #fff !default;
      //** Default text color of a linked label
      $label-link-hover-color:      #fff !default;
      
      
      //== Modals
      //
      //##
      
      //** Padding applied to the modal body
      $modal-inner-padding:         15px !default;
      
      //** Padding applied to the modal title
      $modal-title-padding:         15px !default;
      //** Modal title line-height
      $modal-title-line-height:     $line-height-base !default;
      
      //** Background color of modal content area
      $modal-content-bg:                             #fff !default;
      //** Modal content border color
      $modal-content-border-color:                   rgba(0,0,0,.2) !default;
      //** Modal content border color **for IE8**
      $modal-content-fallback-border-color:          #999 !default;
      
      //** Modal backdrop background color
      $modal-backdrop-bg:           #000 !default;
      //** Modal backdrop opacity
      $modal-backdrop-opacity:      .5 !default;
      //** Modal header border color
      $modal-header-border-color:   #e5e5e5 !default;
      //** Modal footer border color
      $modal-footer-border-color:   $modal-header-border-color !default;
      
      $modal-lg:                    900px !default;
      $modal-md:                    600px !default;
      $modal-sm:                    300px !default;
      
      
      //== Alerts
      //
      //## Define alert colors, border radius, and padding.
      
      $alert-padding:               15px !default;
      $alert-border-radius:         $border-radius-base !default;
      $alert-link-font-weight:      bold !default;
      
      $alert-success-bg:            $state-success-bg !default;
      $alert-success-text:          $state-success-text !default;
      $alert-success-border:        $state-success-border !default;
      
      $alert-info-bg:               $state-info-bg !default;
      $alert-info-text:             $state-info-text !default;
      $alert-info-border:           $state-info-border !default;
      
      $alert-warning-bg:            $state-warning-bg !default;
      $alert-warning-text:          $state-warning-text !default;
      $alert-warning-border:        $state-warning-border !default;
      
      $alert-danger-bg:             $state-danger-bg !default;
      $alert-danger-text:           $state-danger-text !default;
      $alert-danger-border:         $state-danger-border !default;
      
      
      //== Progress bars
      //
      //##
      
      //** Background color of the whole progress component
      $progress-bg:                 #f5f5f5 !default;
      //** Progress bar text color
      $progress-bar-color:          #fff !default;
      
      //** Default progress bar color
      $progress-bar-bg:             $brand-primary !default;
      //** Success progress bar color
      $progress-bar-success-bg:     $brand-success !default;
      //** Warning progress bar color
      $progress-bar-warning-bg:     $brand-warning !default;
      //** Danger progress bar color
      $progress-bar-danger-bg:      $brand-danger !default;
      //** Info progress bar color
      $progress-bar-info-bg:        $brand-info !default;
      
      
      //== List group
      //
      //##
      
      //** Background color on `.list-group-item`
      $list-group-bg:                 #fff !default;
      //** `.list-group-item` border color
      $list-group-border:             #ddd !default;
      //** List group border radius
      $list-group-border-radius:      $border-radius-base !default;
      
      //** Background color of single list items on hover
      $list-group-hover-bg:           #f5f5f5 !default;
      //** Text color of active list items
      $list-group-active-color:       $component-active-color !default;
      //** Background color of active list items
      $list-group-active-bg:          $component-active-bg !default;
      //** Border color of active list elements
      $list-group-active-border:      $list-group-active-bg !default;
      //** Text color for content within active list items
      $list-group-active-text-color:  lighten($list-group-active-bg, 40%) !default;
      
      //** Text color of disabled list items
      $list-group-disabled-color:      $gray-light !default;
      //** Background color of disabled list items
      $list-group-disabled-bg:         $gray-lighter !default;
      //** Text color for content within disabled list items
      $list-group-disabled-text-color: $list-group-disabled-color !default;
      
      $list-group-link-color:         #555 !default;
      $list-group-link-hover-color:   $list-group-link-color !default;
      $list-group-link-heading-color: #333 !default;
      
      
      //== Panels
      //
      //##
      
      $panel-bg:                    #fff !default;
      $panel-body-padding:          15px !default;
      $panel-heading-padding:       10px 15px !default;
      $panel-footer-padding:        $panel-heading-padding !default;
      $panel-border-radius:         $border-radius-base !default;
      
      //** Border color for elements within panels
      $panel-inner-border:          #ddd !default;
      $panel-footer-bg:             #f5f5f5 !default;
      
      $panel-default-text:          $gray-dark !default;
      $panel-default-border:        #ddd !default;
      $panel-default-heading-bg:    #f5f5f5 !default;
      
      $panel-primary-text:          #fff !default;
      $panel-primary-border:        $brand-primary !default;
      $panel-primary-heading-bg:    $brand-primary !default;
      
      $panel-success-text:          $state-success-text !default;
      $panel-success-border:        $state-success-border !default;
      $panel-success-heading-bg:    $state-success-bg !default;
      
      $panel-info-text:             $state-info-text !default;
      $panel-info-border:           $state-info-border !default;
      $panel-info-heading-bg:       $state-info-bg !default;
      
      $panel-warning-text:          $state-warning-text !default;
      $panel-warning-border:        $state-warning-border !default;
      $panel-warning-heading-bg:    $state-warning-bg !default;
      
      $panel-danger-text:           $state-danger-text !default;
      $panel-danger-border:         $state-danger-border !default;
      $panel-danger-heading-bg:     $state-danger-bg !default;
      
      
      //== Thumbnails
      //
      //##
      
      //** Padding around the thumbnail image
      $thumbnail-padding:           4px !default;
      //** Thumbnail background color
      $thumbnail-bg:                $body-bg !default;
      //** Thumbnail border color
      $thumbnail-border:            #ddd !default;
      //** Thumbnail border radius
      $thumbnail-border-radius:     $border-radius-base !default;
      
      //** Custom text color for thumbnail captions
      $thumbnail-caption-color:     $text-color !default;
      //** Padding around the thumbnail caption
      $thumbnail-caption-padding:   9px !default;
      
      
      //== Wells
      //
      //##
      
      $well-bg:                     #f5f5f5 !default;
      $well-border:                 darken($well-bg, 7%) !default;
      
      
      //== Badges
      //
      //##
      
      $badge-color:                 #fff !default;
      //** Linked badge text color on hover
      $badge-link-hover-color:      #fff !default;
      $badge-bg:                    $gray-light !default;
      
      //** Badge text color in active nav link
      $badge-active-color:          $link-color !default;
      //** Badge background color in active nav link
      $badge-active-bg:             #fff !default;
      
      $badge-font-weight:           bold !default;
      $badge-line-height:           1 !default;
      $badge-border-radius:         10px !default;
      
      
      //== Breadcrumbs
      //
      //##
      
      $breadcrumb-padding-vertical:   8px !default;
      $breadcrumb-padding-horizontal: 15px !default;
      //** Breadcrumb background color
      $breadcrumb-bg:                 #f5f5f5 !default;
      //** Breadcrumb text color
      $breadcrumb-color:              #ccc !default;
      //** Text color of current page in the breadcrumb
      $breadcrumb-active-color:       $gray-light !default;
      //** Textual separator for between breadcrumb elements
      $breadcrumb-separator:          "/" !default;
      
      
      //== Carousel
      //
      //##
      
      $carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6) !default;
      
      $carousel-control-color:                      #fff !default;
      $carousel-control-width:                      15% !default;
      $carousel-control-opacity:                    .5 !default;
      $carousel-control-font-size:                  20px !default;
      
      $carousel-indicator-active-bg:                #fff !default;
      $carousel-indicator-border-color:             #fff !default;
      
      $carousel-caption-color:                      #fff !default;
      
      
      //== Close
      //
      //##
      
      $close-font-weight:           bold !default;
      $close-color:                 #000 !default;
      $close-text-shadow:           0 1px 0 #fff !default;
      
      
      //== Code
      //
      //##
      
      $code-color:                  #c7254e !default;
      $code-bg:                     #f9f2f4 !default;
      
      $kbd-color:                   #fff !default;
      $kbd-bg:                      #333 !default;
      
      $pre-bg:                      #f5f5f5 !default;
      $pre-color:                   $gray-dark !default;
      $pre-border-color:            #ccc !default;
      $pre-scrollable-max-height:   340px !default;
      
      
      //== Type
      //
      //##
      
      //** Horizontal offset for forms and lists.
      $component-offset-horizontal: 180px !default;
      //** Text muted color
      $text-muted:                  $gray-light !default;
      //** Abbreviations and acronyms border color
      $abbr-border-color:           $gray-light !default;
      //** Headings small color
      $headings-small-color:        $gray-light !default;
      //** Blockquote small color
      $blockquote-small-color:      $gray-light !default;
      //** Blockquote font size
      $blockquote-font-size:        ($font-size-base * 1.25) !default;
      //** Blockquote border color
      $blockquote-border-color:     $gray-lighter !default;
      //** Page header border color
      $page-header-border-color:    $gray-lighter !default;
      //** Width of horizontal description list titles
      $dl-horizontal-offset:        $component-offset-horizontal !default;
      //** Horizontal line color.
      $hr-border:                   $gray-lighter !default;
      
      
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_grid.scss0000644000076400007640000000265312570225417025765 0ustar  pravipravi//
      // Grid system
      // --------------------------------------------------
      
      
      // Container widths
      //
      // Set the container width, and override it for fixed navbars in media queries.
      
      .container {
        @include container-fixed();
      
        @media (min-width: $screen-sm-min) {
          width: $container-sm;
        }
        @media (min-width: $screen-md-min) {
          width: $container-md;
        }
        @media (min-width: $screen-lg-min) {
          width: $container-lg;
        }
      }
      
      
      // Fluid container
      //
      // Utilizes the mixin meant for fixed width containers, but without any defined
      // width for fluid, full width layouts.
      
      .container-fluid {
        @include container-fixed();
      }
      
      
      // Row
      //
      // Rows contain and clear the floats of your columns.
      
      .row {
        @include make-row();
      }
      
      
      // Columns
      //
      // Common styles for small and large grid columns
      
      @include make-grid-columns();
      
      
      // Extra small grid
      //
      // Columns, offsets, pushes, and pulls for extra small devices like
      // smartphones.
      
      @include make-grid(xs);
      
      
      // Small grid
      //
      // Columns, offsets, pushes, and pulls for the small device range, from phones
      // to tablets.
      
      @media (min-width: $screen-sm-min) {
        @include make-grid(sm);
      }
      
      
      // Medium grid
      //
      // Columns, offsets, pushes, and pulls for the desktop device range.
      
      @media (min-width: $screen-md-min) {
        @include make-grid(md);
      }
      
      
      // Large grid
      //
      // Columns, offsets, pushes, and pulls for the large desktop device range.
      
      @media (min-width: $screen-lg-min) {
        @include make-grid(lg);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_pagination.scss0000644000076400007640000000375412570225417027174 0ustar  pravipravi//
      // Pagination (multiple pages)
      // --------------------------------------------------
      .pagination {
        display: inline-block;
        padding-left: 0;
        margin: $line-height-computed 0;
        border-radius: $border-radius-base;
      
        > li {
          display: inline; // Remove list-style and block-level defaults
          > a,
          > span {
            position: relative;
            float: left; // Collapse white-space
            padding: $padding-base-vertical $padding-base-horizontal;
            line-height: $line-height-base;
            text-decoration: none;
            color: $pagination-color;
            background-color: $pagination-bg;
            border: 1px solid $pagination-border;
            margin-left: -1px;
          }
          &:first-child {
            > a,
            > span {
              margin-left: 0;
              @include border-left-radius($border-radius-base);
            }
          }
          &:last-child {
            > a,
            > span {
              @include border-right-radius($border-radius-base);
            }
          }
        }
      
        > li > a,
        > li > span {
          &:hover,
          &:focus {
            color: $pagination-hover-color;
            background-color: $pagination-hover-bg;
            border-color: $pagination-hover-border;
          }
        }
      
        > .active > a,
        > .active > span {
          &,
          &:hover,
          &:focus {
            z-index: 2;
            color: $pagination-active-color;
            background-color: $pagination-active-bg;
            border-color: $pagination-active-border;
            cursor: default;
          }
        }
      
        > .disabled {
          > span,
          > span:hover,
          > span:focus,
          > a,
          > a:hover,
          > a:focus {
            color: $pagination-disabled-color;
            background-color: $pagination-disabled-bg;
            border-color: $pagination-disabled-border;
            cursor: not-allowed;
          }
        }
      }
      
      // Sizing
      // --------------------------------------------------
      
      // Large
      .pagination-lg {
        @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large);
      }
      
      // Small
      .pagination-sm {
        @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_buttons.scss0000644000076400007640000000705412570225417026536 0ustar  pravipravi//
      // Buttons
      // --------------------------------------------------
      
      
      // Base styles
      // --------------------------------------------------
      
      .btn {
        display: inline-block;
        margin-bottom: 0; // For input.btn
        font-weight: $btn-font-weight;
        text-align: center;
        vertical-align: middle;
        cursor: pointer;
        background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
        border: 1px solid transparent;
        white-space: nowrap;
        @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base);
        @include user-select(none);
      
        &,
        &:active,
        &.active {
          &:focus {
            @include tab-focus();
          }
        }
      
        &:hover,
        &:focus {
          color: $btn-default-color;
          text-decoration: none;
        }
      
        &:active,
        &.active {
          outline: 0;
          background-image: none;
          @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
        }
      
        &.disabled,
        &[disabled],
        fieldset[disabled] & {
          cursor: not-allowed;
          pointer-events: none; // Future-proof disabling of clicks
          @include opacity(.65);
          @include box-shadow(none);
        }
      }
      
      
      // Alternate buttons
      // --------------------------------------------------
      
      .btn-default {
        @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
      }
      .btn-primary {
        @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
      }
      // Success appears as green
      .btn-success {
        @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
      }
      // Info appears as blue-green
      .btn-info {
        @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
      }
      // Warning appears as orange
      .btn-warning {
        @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
      }
      // Danger and error appear as red
      .btn-danger {
        @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
      }
      
      
      // Link buttons
      // -------------------------
      
      // Make a button look and behave like a link
      .btn-link {
        color: $link-color;
        font-weight: normal;
        cursor: pointer;
        border-radius: 0;
      
        &,
        &:active,
        &[disabled],
        fieldset[disabled] & {
          background-color: transparent;
          @include box-shadow(none);
        }
        &,
        &:hover,
        &:focus,
        &:active {
          border-color: transparent;
        }
        &:hover,
        &:focus {
          color: $link-hover-color;
          text-decoration: underline;
          background-color: transparent;
        }
        &[disabled],
        fieldset[disabled] & {
          &:hover,
          &:focus {
            color: $btn-link-disabled-color;
            text-decoration: none;
          }
        }
      }
      
      
      // Button Sizes
      // --------------------------------------------------
      
      .btn-lg {
        // line-height: ensure even-numbered height of button next to large input
        @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
      }
      .btn-sm {
        // line-height: ensure proper height of button next to small input
        @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
      }
      .btn-xs {
        @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small);
      }
      
      
      // Block button
      // --------------------------------------------------
      
      .btn-block {
        display: block;
        width: 100%;
      }
      
      // Vertically space out multiple block buttons
      .btn-block + .btn-block {
        margin-top: 5px;
      }
      
      // Specificity overrides
      input[type="submit"],
      input[type="reset"],
      input[type="button"] {
        &.btn-block {
          width: 100%;
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_badges.scss0000644000076400007640000000211212570225417026253 0ustar  pravipravi//
      // Badges
      // --------------------------------------------------
      
      
      // Base class
      .badge {
        display: inline-block;
        min-width: 10px;
        padding: 3px 7px;
        font-size: $font-size-small;
        font-weight: $badge-font-weight;
        color: $badge-color;
        line-height: $badge-line-height;
        vertical-align: baseline;
        white-space: nowrap;
        text-align: center;
        background-color: $badge-bg;
        border-radius: $badge-border-radius;
      
        // Empty badges collapse automatically (not available in IE8)
        &:empty {
          display: none;
        }
      
        // Quick fix for badges in buttons
        .btn & {
          position: relative;
          top: -1px;
        }
        .btn-xs & {
          top: 0;
          padding: 1px 5px;
        }
      
        // [converter] extracted a& to a.badge
      
        // Account for badges in navs
        a.list-group-item.active > &,
        .nav-pills > .active > a > & {
          color: $badge-active-color;
          background-color: $badge-active-bg;
        }
        .nav-pills > li > a > & {
          margin-left: 3px;
        }
      }
      
      // Hover state, but only for links
      a.badge {
        &:hover,
        &:focus {
          color: $badge-link-hover-color;
          text-decoration: none;
          cursor: pointer;
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_tables.scss0000644000076400007640000001066112570225417026310 0ustar  pravipravi//
      // Tables
      // --------------------------------------------------
      
      
      table {
        background-color: $table-bg;
      }
      th {
        text-align: left;
      }
      
      
      // Baseline styles
      
      .table {
        width: 100%;
        max-width: 100%;
        margin-bottom: $line-height-computed;
        // Cells
        > thead,
        > tbody,
        > tfoot {
          > tr {
            > th,
            > td {
              padding: $table-cell-padding;
              line-height: $line-height-base;
              vertical-align: top;
              border-top: 1px solid $table-border-color;
            }
          }
        }
        // Bottom align for column headings
        > thead > tr > th {
          vertical-align: bottom;
          border-bottom: 2px solid $table-border-color;
        }
        // Remove top border from thead by default
        > caption + thead,
        > colgroup + thead,
        > thead:first-child {
          > tr:first-child {
            > th,
            > td {
              border-top: 0;
            }
          }
        }
        // Account for multiple tbody instances
        > tbody + tbody {
          border-top: 2px solid $table-border-color;
        }
      
        // Nesting
        .table {
          background-color: $body-bg;
        }
      }
      
      
      // Condensed table w/ half padding
      
      .table-condensed {
        > thead,
        > tbody,
        > tfoot {
          > tr {
            > th,
            > td {
              padding: $table-condensed-cell-padding;
            }
          }
        }
      }
      
      
      // Bordered version
      //
      // Add borders all around the table and between all the columns.
      
      .table-bordered {
        border: 1px solid $table-border-color;
        > thead,
        > tbody,
        > tfoot {
          > tr {
            > th,
            > td {
              border: 1px solid $table-border-color;
            }
          }
        }
        > thead > tr {
          > th,
          > td {
            border-bottom-width: 2px;
          }
        }
      }
      
      
      // Zebra-striping
      //
      // Default zebra-stripe styles (alternating gray and transparent backgrounds)
      
      .table-striped {
        > tbody > tr:nth-child(odd) {
          > td,
          > th {
            background-color: $table-bg-accent;
          }
        }
      }
      
      
      // Hover effect
      //
      // Placed here since it has to come after the potential zebra striping
      
      .table-hover {
        > tbody > tr:hover {
          > td,
          > th {
            background-color: $table-bg-hover;
          }
        }
      }
      
      
      // Table cell sizing
      //
      // Reset default table behavior
      
      table col[class*="col-"] {
        position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
        float: none;
        display: table-column;
      }
      table {
        td,
        th {
          &[class*="col-"] {
            position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
            float: none;
            display: table-cell;
          }
        }
      }
      
      
      // Table backgrounds
      //
      // Exact selectors below required to override `.table-striped` and prevent
      // inheritance to nested tables.
      
      // Generate the contextual variants
      @include table-row-variant('active', $table-bg-active);
      @include table-row-variant('success', $state-success-bg);
      @include table-row-variant('info', $state-info-bg);
      @include table-row-variant('warning', $state-warning-bg);
      @include table-row-variant('danger', $state-danger-bg);
      
      
      // Responsive tables
      //
      // Wrap your tables in `.table-responsive` and we'll make them mobile friendly
      // by enabling horizontal scrolling. Only applies <768px. Everything above that
      // will display normally.
      
      .table-responsive {
        @media screen and (max-width: $screen-xs-max) {
          width: 100%;
          margin-bottom: ($line-height-computed * 0.75);
          overflow-y: hidden;
          overflow-x: auto;
          -ms-overflow-style: -ms-autohiding-scrollbar;
          border: 1px solid $table-border-color;
          -webkit-overflow-scrolling: touch;
      
          // Tighten up spacing
          > .table {
            margin-bottom: 0;
      
            // Ensure the content doesn't wrap
            > thead,
            > tbody,
            > tfoot {
              > tr {
                > th,
                > td {
                  white-space: nowrap;
                }
              }
            }
          }
      
          // Special overrides for the bordered tables
          > .table-bordered {
            border: 0;
      
            // Nuke the appropriate borders so that the parent can handle them
            > thead,
            > tbody,
            > tfoot {
              > tr {
                > th:first-child,
                > td:first-child {
                  border-left: 0;
                }
                > th:last-child,
                > td:last-child {
                  border-right: 0;
                }
              }
            }
      
            // Only nuke the last row's bottom-border in `tbody` and `tfoot` since
            // chances are there will be only one `tr` in a `thead` and that would
            // remove the border altogether.
            > tbody,
            > tfoot {
              > tr:last-child {
                > th,
                > td {
                  border-bottom: 0;
                }
              }
            }
      
          }
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss0000644000076400007640000000434612570225417027632 0ustar  pravipravi//
      // Progress bars
      // --------------------------------------------------
      
      
      // Bar animations
      // -------------------------
      
      // WebKit
      @-webkit-keyframes progress-bar-stripes {
        from  { background-position: 40px 0; }
        to    { background-position: 0 0; }
      }
      
      // Spec and IE10+
      @keyframes progress-bar-stripes {
        from  { background-position: 40px 0; }
        to    { background-position: 0 0; }
      }
      
      
      
      // Bar itself
      // -------------------------
      
      // Outer container
      .progress {
        overflow: hidden;
        height: $line-height-computed;
        margin-bottom: $line-height-computed;
        background-color: $progress-bg;
        border-radius: $border-radius-base;
        @include box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
      }
      
      // Bar of progress
      .progress-bar {
        float: left;
        width: 0%;
        height: 100%;
        font-size: $font-size-small;
        line-height: $line-height-computed;
        color: $progress-bar-color;
        text-align: center;
        background-color: $progress-bar-bg;
        @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
        @include transition(width .6s ease);
      }
      
      // Striped bars
      //
      // `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
      // `.progress-bar-striped` class, which you just add to an existing
      // `.progress-bar`.
      .progress-striped .progress-bar,
      .progress-bar-striped {
        @include gradient-striped();
        background-size: 40px 40px;
      }
      
      // Call animation for the active one
      //
      // `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
      // `.progress-bar.active` approach.
      .progress.active .progress-bar,
      .progress-bar.active {
        @include animation(progress-bar-stripes 2s linear infinite);
      }
      
      // Account for lower percentages
      .progress-bar {
        &[aria-valuenow="1"],
        &[aria-valuenow="2"] {
          min-width: 30px;
        }
      
        &[aria-valuenow="0"] {
          color: $gray-light;
          min-width: 30px;
          background-color: transparent;
          background-image: none;
          box-shadow: none;
        }
      }
      
      
      
      // Variations
      // -------------------------
      
      .progress-bar-success {
        @include progress-bar-variant($progress-bar-success-bg);
      }
      
      .progress-bar-info {
        @include progress-bar-variant($progress-bar-info-bg);
      }
      
      .progress-bar-warning {
        @include progress-bar-variant($progress-bar-warning-bg);
      }
      
      .progress-bar-danger {
        @include progress-bar-variant($progress-bar-danger-bg);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_alerts.scss0000644000076400007640000000301112570225417026317 0ustar  pravipravi//
      // Alerts
      // --------------------------------------------------
      
      
      // Base styles
      // -------------------------
      
      .alert {
        padding: $alert-padding;
        margin-bottom: $line-height-computed;
        border: 1px solid transparent;
        border-radius: $alert-border-radius;
      
        // Headings for larger alerts
        h4 {
          margin-top: 0;
          // Specified for the h4 to prevent conflicts of changing $headings-color
          color: inherit;
        }
        // Provide class for links that match alerts
        .alert-link {
          font-weight: $alert-link-font-weight;
        }
      
        // Improve alignment and spacing of inner content
        > p,
        > ul {
          margin-bottom: 0;
        }
        > p + p {
          margin-top: 5px;
        }
      }
      
      // Dismissible alerts
      //
      // Expand the right padding and account for the close button's positioning.
      
      .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
      .alert-dismissible {
        padding-right: ($alert-padding + 20);
      
        // Adjust close link position
        .close {
          position: relative;
          top: -2px;
          right: -21px;
          color: inherit;
        }
      }
      
      // Alternate styles
      //
      // Generate contextual modifier classes for colorizing the alert.
      
      .alert-success {
        @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
      }
      .alert-info {
        @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
      }
      .alert-warning {
        @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
      }
      .alert-danger {
        @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_panels.scss0000644000076400007640000001311112570225417026311 0ustar  pravipravi//
      // Panels
      // --------------------------------------------------
      
      
      // Base class
      .panel {
        margin-bottom: $line-height-computed;
        background-color: $panel-bg;
        border: 1px solid transparent;
        border-radius: $panel-border-radius;
        @include box-shadow(0 1px 1px rgba(0,0,0,.05));
      }
      
      // Panel contents
      .panel-body {
        padding: $panel-body-padding;
        @include clearfix();
      }
      
      // Optional heading
      .panel-heading {
        padding: $panel-heading-padding;
        border-bottom: 1px solid transparent;
        @include border-top-radius(($panel-border-radius - 1));
      
        > .dropdown .dropdown-toggle {
          color: inherit;
        }
      }
      
      // Within heading, strip any `h*` tag of its default margins for spacing.
      .panel-title {
        margin-top: 0;
        margin-bottom: 0;
        font-size: ceil(($font-size-base * 1.125));
        color: inherit;
      
        > a {
          color: inherit;
        }
      }
      
      // Optional footer (stays gray in every modifier class)
      .panel-footer {
        padding: $panel-footer-padding;
        background-color: $panel-footer-bg;
        border-top: 1px solid $panel-inner-border;
        @include border-bottom-radius(($panel-border-radius - 1));
      }
      
      
      // List groups in panels
      //
      // By default, space out list group content from panel headings to account for
      // any kind of custom content between the two.
      
      .panel {
        > .list-group {
          margin-bottom: 0;
      
          .list-group-item {
            border-width: 1px 0;
            border-radius: 0;
          }
      
          // Add border top radius for first one
          &:first-child {
            .list-group-item:first-child {
              border-top: 0;
              @include border-top-radius(($panel-border-radius - 1));
            }
          }
          // Add border bottom radius for last one
          &:last-child {
            .list-group-item:last-child {
              border-bottom: 0;
              @include border-bottom-radius(($panel-border-radius - 1));
            }
          }
        }
      }
      // Collapse space between when there's no additional content.
      .panel-heading + .list-group {
        .list-group-item:first-child {
          border-top-width: 0;
        }
      }
      .list-group + .panel-footer {
        border-top-width: 0;
      }
      
      // Tables in panels
      //
      // Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
      // watch it go full width.
      
      .panel {
        > .table,
        > .table-responsive > .table,
        > .panel-collapse > .table {
          margin-bottom: 0;
        }
        // Add border top radius for first one
        > .table:first-child,
        > .table-responsive:first-child > .table:first-child {
          @include border-top-radius(($panel-border-radius - 1));
      
          > thead:first-child,
          > tbody:first-child {
            > tr:first-child {
              td:first-child,
              th:first-child {
                border-top-left-radius: ($panel-border-radius - 1);
              }
              td:last-child,
              th:last-child {
                border-top-right-radius: ($panel-border-radius - 1);
              }
            }
          }
        }
        // Add border bottom radius for last one
        > .table:last-child,
        > .table-responsive:last-child > .table:last-child {
          @include border-bottom-radius(($panel-border-radius - 1));
      
          > tbody:last-child,
          > tfoot:last-child {
            > tr:last-child {
              td:first-child,
              th:first-child {
                border-bottom-left-radius: ($panel-border-radius - 1);
              }
              td:last-child,
              th:last-child {
                border-bottom-right-radius: ($panel-border-radius - 1);
              }
            }
          }
        }
        > .panel-body + .table,
        > .panel-body + .table-responsive {
          border-top: 1px solid $table-border-color;
        }
        > .table > tbody:first-child > tr:first-child th,
        > .table > tbody:first-child > tr:first-child td {
          border-top: 0;
        }
        > .table-bordered,
        > .table-responsive > .table-bordered {
          border: 0;
          > thead,
          > tbody,
          > tfoot {
            > tr {
              > th:first-child,
              > td:first-child {
                border-left: 0;
              }
              > th:last-child,
              > td:last-child {
                border-right: 0;
              }
            }
          }
          > thead,
          > tbody {
            > tr:first-child {
              > td,
              > th {
                border-bottom: 0;
              }
            }
          }
          > tbody,
          > tfoot {
            > tr:last-child {
              > td,
              > th {
                border-bottom: 0;
              }
            }
          }
        }
        > .table-responsive {
          border: 0;
          margin-bottom: 0;
        }
      }
      
      
      // Collapsable panels (aka, accordion)
      //
      // Wrap a series of panels in `.panel-group` to turn them into an accordion with
      // the help of our collapse JavaScript plugin.
      
      .panel-group {
        margin-bottom: $line-height-computed;
      
        // Tighten up margin so it's only between panels
        .panel {
          margin-bottom: 0;
          border-radius: $panel-border-radius;
          + .panel {
            margin-top: 5px;
          }
        }
      
        .panel-heading {
          border-bottom: 0;
          + .panel-collapse > .panel-body {
            border-top: 1px solid $panel-inner-border;
          }
        }
        .panel-footer {
          border-top: 0;
          + .panel-collapse .panel-body {
            border-bottom: 1px solid $panel-inner-border;
          }
        }
      }
      
      
      // Contextual variations
      .panel-default {
        @include panel-variant($panel-default-border, $panel-default-text, $panel-default-heading-bg, $panel-default-border);
      }
      .panel-primary {
        @include panel-variant($panel-primary-border, $panel-primary-text, $panel-primary-heading-bg, $panel-primary-border);
      }
      .panel-success {
        @include panel-variant($panel-success-border, $panel-success-text, $panel-success-heading-bg, $panel-success-border);
      }
      .panel-info {
        @include panel-variant($panel-info-border, $panel-info-text, $panel-info-heading-bg, $panel-info-border);
      }
      .panel-warning {
        @include panel-variant($panel-warning-border, $panel-warning-text, $panel-warning-heading-bg, $panel-warning-border);
      }
      .panel-danger {
        @include panel-variant($panel-danger-border, $panel-danger-text, $panel-danger-heading-bg, $panel-danger-border);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_navs.scss0000644000076400007640000001152512570225417026005 0ustar  pravipravi//
      // Navs
      // --------------------------------------------------
      
      
      // Base class
      // --------------------------------------------------
      
      .nav {
        margin-bottom: 0;
        padding-left: 0; // Override default ul/ol
        list-style: none;
        @include clearfix();
      
        > li {
          position: relative;
          display: block;
      
          > a {
            position: relative;
            display: block;
            padding: $nav-link-padding;
            &:hover,
            &:focus {
              text-decoration: none;
              background-color: $nav-link-hover-bg;
            }
          }
      
          // Disabled state sets text to gray and nukes hover/tab effects
          &.disabled > a {
            color: $nav-disabled-link-color;
      
            &:hover,
            &:focus {
              color: $nav-disabled-link-hover-color;
              text-decoration: none;
              background-color: transparent;
              cursor: not-allowed;
            }
          }
        }
      
        // Open dropdowns
        .open > a {
          &,
          &:hover,
          &:focus {
            background-color: $nav-link-hover-bg;
            border-color: $link-color;
          }
        }
      
        // Nav dividers (deprecated with v3.0.1)
        //
        // This should have been removed in v3 with the dropping of `.nav-list`, but
        // we missed it. We don't currently support this anywhere, but in the interest
        // of maintaining backward compatibility in case you use it, it's deprecated.
        .nav-divider {
          @include nav-divider();
        }
      
        // Prevent IE8 from misplacing imgs
        //
        // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989
        > li > a > img {
          max-width: none;
        }
      }
      
      
      // Tabs
      // -------------------------
      
      // Give the tabs something to sit on
      .nav-tabs {
        border-bottom: 1px solid $nav-tabs-border-color;
        > li {
          float: left;
          // Make the list-items overlay the bottom border
          margin-bottom: -1px;
      
          // Actual tabs (as links)
          > a {
            margin-right: 2px;
            line-height: $line-height-base;
            border: 1px solid transparent;
            border-radius: $border-radius-base $border-radius-base 0 0;
            &:hover {
              border-color: $nav-tabs-link-hover-border-color $nav-tabs-link-hover-border-color $nav-tabs-border-color;
            }
          }
      
          // Active state, and its :hover to override normal :hover
          &.active > a {
            &,
            &:hover,
            &:focus {
              color: $nav-tabs-active-link-hover-color;
              background-color: $nav-tabs-active-link-hover-bg;
              border: 1px solid $nav-tabs-active-link-hover-border-color;
              border-bottom-color: transparent;
              cursor: default;
            }
          }
        }
        // pulling this in mainly for less shorthand
        &.nav-justified {
          @extend .nav-justified;
          @extend .nav-tabs-justified;
        }
      }
      
      
      // Pills
      // -------------------------
      .nav-pills {
        > li {
          float: left;
      
          // Links rendered as pills
          > a {
            border-radius: $nav-pills-border-radius;
          }
          + li {
            margin-left: 2px;
          }
      
          // Active state
          &.active > a {
            &,
            &:hover,
            &:focus {
              color: $nav-pills-active-link-hover-color;
              background-color: $nav-pills-active-link-hover-bg;
            }
          }
        }
      }
      
      
      // Stacked pills
      .nav-stacked {
        > li {
          float: none;
          + li {
            margin-top: 2px;
            margin-left: 0; // no need for this gap between nav items
          }
        }
      }
      
      
      // Nav variations
      // --------------------------------------------------
      
      // Justified nav links
      // -------------------------
      
      .nav-justified {
        width: 100%;
      
        > li {
          float: none;
          > a {
            text-align: center;
            margin-bottom: 5px;
          }
        }
      
        > .dropdown .dropdown-menu {
          top: auto;
          left: auto;
        }
      
        @media (min-width: $screen-sm-min) {
          > li {
            display: table-cell;
            width: 1%;
            > a {
              margin-bottom: 0;
            }
          }
        }
      }
      
      // Move borders to anchors instead of bottom of list
      //
      // Mixin for adding on top the shared `.nav-justified` styles for our tabs
      .nav-tabs-justified {
        border-bottom: 0;
      
        > li > a {
          // Override margin from .nav-tabs
          margin-right: 0;
          border-radius: $border-radius-base;
        }
      
        > .active > a,
        > .active > a:hover,
        > .active > a:focus {
          border: 1px solid $nav-tabs-justified-link-border-color;
        }
      
        @media (min-width: $screen-sm-min) {
          > li > a {
            border-bottom: 1px solid $nav-tabs-justified-link-border-color;
            border-radius: $border-radius-base $border-radius-base 0 0;
          }
          > .active > a,
          > .active > a:hover,
          > .active > a:focus {
            border-bottom-color: $nav-tabs-justified-active-link-border-color;
          }
        }
      }
      
      
      // Tabbable tabs
      // -------------------------
      
      // Hide tabbable panes to start, show them when `.active`
      .tab-content {
        > .tab-pane {
          display: none;
        }
        > .active {
          display: block;
        }
      }
      
      
      // Dropdowns
      // -------------------------
      
      // Specific dropdowns
      .nav-tabs .dropdown-menu {
        // make dropdown border overlap tab border
        margin-top: -1px;
        // Remove the top rounded corners here since there is a hard edge above the menu
        @include border-top-radius(0);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss0000644000076400007640000000132512570225417031175 0ustar  pravipravi//
      // Component animations
      // --------------------------------------------------
      
      // Heads up!
      //
      // We don't use the `.opacity()` mixin here since it causes a bug with text
      // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
      
      .fade {
        opacity: 0;
        @include transition(opacity .15s linear);
        &.in {
          opacity: 1;
        }
      }
      
      .collapse {
        display: none;
      
        &.in      { display: block; }
        // [converter] extracted tr&.in to tr.collapse.in
        // [converter] extracted tbody&.in to tbody.collapse.in
      }
      
      tr.collapse.in    { display: table-row; }
      
      tbody.collapse.in { display: table-row-group; }
      
      .collapsing {
        position: relative;
        height: 0;
        overflow: hidden;
        @include transition(height .35s ease);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/_modals.scss0000644000076400007640000000705012570225417026313 0ustar  pravipravi//
      // Modals
      // --------------------------------------------------
      
      // .modal-open      - body class for killing the scroll
      // .modal           - container to scroll within
      // .modal-dialog    - positioning shell for the actual modal
      // .modal-content   - actual modal w/ bg and corners and shit
      
      // Kill the scroll on the body
      .modal-open {
        overflow: hidden;
      }
      
      // Container that the modal scrolls within
      .modal {
        display: none;
        overflow: hidden;
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: $zindex-modal;
        -webkit-overflow-scrolling: touch;
      
        // Prevent Chrome on Windows from adding a focus outline. For details, see
        // https://github.com/twbs/bootstrap/pull/10951.
        outline: 0;
      
        // When fading in the modal, animate it to slide down
        &.fade .modal-dialog {
          @include translate3d(0, -25%, 0);
          @include transition-transform(0.3s ease-out);
        }
        &.in .modal-dialog { @include translate3d(0, 0, 0) }
      }
      .modal-open .modal {
        overflow-x: hidden;
        overflow-y: auto;
      }
      
      // Shell div to position the modal with bottom padding
      .modal-dialog {
        position: relative;
        width: auto;
        margin: 10px;
      }
      
      // Actual modal
      .modal-content {
        position: relative;
        background-color: $modal-content-bg;
        border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
        border: 1px solid $modal-content-border-color;
        border-radius: $border-radius-large;
        @include box-shadow(0 3px 9px rgba(0,0,0,.5));
        background-clip: padding-box;
        // Remove focus outline from opened modal
        outline: 0;
      }
      
      // Modal background
      .modal-backdrop {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: $zindex-modal-background;
        background-color: $modal-backdrop-bg;
        // Fade for backdrop
        &.fade { @include opacity(0); }
        &.in { @include opacity($modal-backdrop-opacity); }
      }
      
      // Modal header
      // Top section of the modal w/ title and dismiss
      .modal-header {
        padding: $modal-title-padding;
        border-bottom: 1px solid $modal-header-border-color;
        min-height: ($modal-title-padding + $modal-title-line-height);
      }
      // Close icon
      .modal-header .close {
        margin-top: -2px;
      }
      
      // Title text within header
      .modal-title {
        margin: 0;
        line-height: $modal-title-line-height;
      }
      
      // Modal body
      // Where all modal content resides (sibling of .modal-header and .modal-footer)
      .modal-body {
        position: relative;
        padding: $modal-inner-padding;
      }
      
      // Footer (for actions)
      .modal-footer {
        padding: $modal-inner-padding;
        text-align: right; // right align buttons
        border-top: 1px solid $modal-footer-border-color;
        @include clearfix(); // clear it in case folks use .pull-* classes on buttons
      
        // Properly space out buttons
        .btn + .btn {
          margin-left: 5px;
          margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
        }
        // but override that for button groups
        .btn-group .btn + .btn {
          margin-left: -1px;
        }
        // and override it for block buttons as well
        .btn-block + .btn-block {
          margin-left: 0;
        }
      }
      
      // Measure scrollbar width for padding body during modal show/hide
      .modal-scrollbar-measure {
        position: absolute;
        top: -9999px;
        width: 50px;
        height: 50px;
        overflow: scroll;
      }
      
      // Scale up the modal
      @media (min-width: $screen-sm-min) {
        // Automatically set modal's width for larger viewports
        .modal-dialog {
          width: $modal-md;
          margin: 30px auto;
        }
        .modal-content {
          @include box-shadow(0 5px 15px rgba(0,0,0,.5));
        }
      
        // Modal sizes
        .modal-sm { width: $modal-sm; }
      }
      
      @media (min-width: $screen-md-min) {
        .modal-lg { width: $modal-lg; }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/0000755000076400007640000000000012570225417025305 5ustar  pravipravirails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss0000644000076400007640000000031212570225417030743 0ustar  pravipravi// Progress bars
      
      @mixin progress-bar-variant($color) {
        background-color: $color;
      
        // Deprecated parent class requirement as of v3.2.0
        .progress-striped & {
          @include gradient-striped();
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss0000644000076400007640000000112112570225417030441 0ustar  pravipravi// List Groups
      
      @mixin list-group-item-variant($state, $background, $color) {
        .list-group-item-#{$state} {
          color: $color;
          background-color: $background;
      
          // [converter] extracted a& to a.list-group-item-#{$state}
        }
      
        a.list-group-item-#{$state} {
          color: $color;
      
          .list-group-item-heading {
            color: inherit;
          }
      
          &:hover,
          &:focus {
            color: $color;
            background-color: darken($background, 5%);
          }
          &.active,
          &.active:hover,
          &.active:focus {
            color: #fff;
            background-color: $color;
            border-color: $color;
          }
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss0000644000076400007640000000617212570225417027274 0ustar  pravipravi// Grid system
      //
      // Generate semantic grid columns with these mixins.
      
      // Centered container element
      @mixin container-fixed($gutter: $grid-gutter-width) {
        margin-right: auto;
        margin-left: auto;
        padding-left:  ($gutter / 2);
        padding-right: ($gutter / 2);
        @include clearfix();
      }
      
      // Creates a wrapper for a series of columns
      @mixin make-row($gutter: $grid-gutter-width) {
        margin-left:  ($gutter / -2);
        margin-right: ($gutter / -2);
        @include clearfix();
      }
      
      // Generate the extra small columns
      @mixin make-xs-column($columns, $gutter: $grid-gutter-width) {
        position: relative;
        float: left;
        width: percentage(($columns / $grid-columns));
        min-height: 1px;
        padding-left:  ($gutter / 2);
        padding-right: ($gutter / 2);
      }
      @mixin make-xs-column-offset($columns) {
        margin-left: percentage(($columns / $grid-columns));
      }
      @mixin make-xs-column-push($columns) {
        left: percentage(($columns / $grid-columns));
      }
      @mixin make-xs-column-pull($columns) {
        right: percentage(($columns / $grid-columns));
      }
      
      // Generate the small columns
      @mixin make-sm-column($columns, $gutter: $grid-gutter-width) {
        position: relative;
        min-height: 1px;
        padding-left:  ($gutter / 2);
        padding-right: ($gutter / 2);
      
        @media (min-width: $screen-sm-min) {
          float: left;
          width: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-sm-column-offset($columns) {
        @media (min-width: $screen-sm-min) {
          margin-left: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-sm-column-push($columns) {
        @media (min-width: $screen-sm-min) {
          left: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-sm-column-pull($columns) {
        @media (min-width: $screen-sm-min) {
          right: percentage(($columns / $grid-columns));
        }
      }
      
      // Generate the medium columns
      @mixin make-md-column($columns, $gutter: $grid-gutter-width) {
        position: relative;
        min-height: 1px;
        padding-left:  ($gutter / 2);
        padding-right: ($gutter / 2);
      
        @media (min-width: $screen-md-min) {
          float: left;
          width: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-md-column-offset($columns) {
        @media (min-width: $screen-md-min) {
          margin-left: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-md-column-push($columns) {
        @media (min-width: $screen-md-min) {
          left: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-md-column-pull($columns) {
        @media (min-width: $screen-md-min) {
          right: percentage(($columns / $grid-columns));
        }
      }
      
      // Generate the large columns
      @mixin make-lg-column($columns, $gutter: $grid-gutter-width) {
        position: relative;
        min-height: 1px;
        padding-left:  ($gutter / 2);
        padding-right: ($gutter / 2);
      
        @media (min-width: $screen-lg-min) {
          float: left;
          width: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-lg-column-offset($columns) {
        @media (min-width: $screen-lg-min) {
          margin-left: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-lg-column-push($columns) {
        @media (min-width: $screen-lg-min) {
          left: percentage(($columns / $grid-columns));
        }
      }
      @mixin make-lg-column-pull($columns) {
        @media (min-width: $screen-lg-min) {
          right: percentage(($columns / $grid-columns));
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss0000644000076400007640000001475612570225417031476 0ustar  pravipravi// Vendor Prefixes
      //
      // All vendor mixins are deprecated as of v3.2.0 due to the introduction of
      // Autoprefixer in our Gruntfile. They will be removed in v4.
      
      // - Animations
      // - Backface visibility
      // - Box shadow
      // - Box sizing
      // - Content columns
      // - Hyphens
      // - Placeholder text
      // - Transformations
      // - Transitions
      // - User Select
      
      
      // Animations
      @mixin animation($animation) {
        -webkit-animation: $animation;
             -o-animation: $animation;
                animation: $animation;
      }
      @mixin animation-name($name) {
        -webkit-animation-name: $name;
                animation-name: $name;
      }
      @mixin animation-duration($duration) {
        -webkit-animation-duration: $duration;
                animation-duration: $duration;
      }
      @mixin animation-timing-function($timing-function) {
        -webkit-animation-timing-function: $timing-function;
                animation-timing-function: $timing-function;
      }
      @mixin animation-delay($delay) {
        -webkit-animation-delay: $delay;
                animation-delay: $delay;
      }
      @mixin animation-iteration-count($iteration-count) {
        -webkit-animation-iteration-count: $iteration-count;
                animation-iteration-count: $iteration-count;
      }
      @mixin animation-direction($direction) {
        -webkit-animation-direction: $direction;
                animation-direction: $direction;
      }
      @mixin animation-fill-mode($fill-mode) {
        -webkit-animation-fill-mode: $fill-mode;
                animation-fill-mode: $fill-mode;
      }
      
      // Backface visibility
      // Prevent browsers from flickering when using CSS 3D transforms.
      // Default value is `visible`, but can be changed to `hidden`
      
      @mixin backface-visibility($visibility){
        -webkit-backface-visibility: $visibility;
           -moz-backface-visibility: $visibility;
                backface-visibility: $visibility;
      }
      
      // Drop shadows
      //
      // Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
      // supported browsers that have box shadow capabilities now support it.
      
      @mixin box-shadow($shadow...) {
        -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1
                box-shadow: $shadow;
      }
      
      // Box sizing
      @mixin box-sizing($boxmodel) {
        -webkit-box-sizing: $boxmodel;
           -moz-box-sizing: $boxmodel;
                box-sizing: $boxmodel;
      }
      
      // CSS3 Content Columns
      @mixin content-columns($column-count, $column-gap: $grid-gutter-width) {
        -webkit-column-count: $column-count;
           -moz-column-count: $column-count;
                column-count: $column-count;
        -webkit-column-gap: $column-gap;
           -moz-column-gap: $column-gap;
                column-gap: $column-gap;
      }
      
      // Optional hyphenation
      @mixin hyphens($mode: auto) {
        word-wrap: break-word;
        -webkit-hyphens: $mode;
           -moz-hyphens: $mode;
            -ms-hyphens: $mode; // IE10+
             -o-hyphens: $mode;
                hyphens: $mode;
      }
      
      // Placeholder text
      @mixin placeholder($color: $input-color-placeholder) {
        &::-moz-placeholder           { color: $color;   // Firefox
                                        opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526
        &:-ms-input-placeholder       { color: $color; } // Internet Explorer 10+
        &::-webkit-input-placeholder  { color: $color; } // Safari and Chrome
      }
      
      // Transformations
      @mixin scale($ratio...) {
        -webkit-transform: scale($ratio);
            -ms-transform: scale($ratio); // IE9 only
             -o-transform: scale($ratio);
                transform: scale($ratio);
      }
      
      @mixin scaleX($ratio) {
        -webkit-transform: scaleX($ratio);
            -ms-transform: scaleX($ratio); // IE9 only
             -o-transform: scaleX($ratio);
                transform: scaleX($ratio);
      }
      @mixin scaleY($ratio) {
        -webkit-transform: scaleY($ratio);
            -ms-transform: scaleY($ratio); // IE9 only
             -o-transform: scaleY($ratio);
                transform: scaleY($ratio);
      }
      @mixin skew($x, $y) {
        -webkit-transform: skewX($x) skewY($y);
            -ms-transform: skewX($x) skewY($y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
             -o-transform: skewX($x) skewY($y);
                transform: skewX($x) skewY($y);
      }
      @mixin translate($x, $y) {
        -webkit-transform: translate($x, $y);
            -ms-transform: translate($x, $y); // IE9 only
             -o-transform: translate($x, $y);
                transform: translate($x, $y);
      }
      @mixin translate3d($x, $y, $z) {
        -webkit-transform: translate3d($x, $y, $z);
                transform: translate3d($x, $y, $z);
      }
      @mixin rotate($degrees) {
        -webkit-transform: rotate($degrees);
            -ms-transform: rotate($degrees); // IE9 only
             -o-transform: rotate($degrees);
                transform: rotate($degrees);
      }
      @mixin rotateX($degrees) {
        -webkit-transform: rotateX($degrees);
            -ms-transform: rotateX($degrees); // IE9 only
             -o-transform: rotateX($degrees);
                transform: rotateX($degrees);
      }
      @mixin rotateY($degrees) {
        -webkit-transform: rotateY($degrees);
            -ms-transform: rotateY($degrees); // IE9 only
             -o-transform: rotateY($degrees);
                transform: rotateY($degrees);
      }
      @mixin perspective($perspective) {
        -webkit-perspective: $perspective;
           -moz-perspective: $perspective;
                perspective: $perspective;
      }
      @mixin perspective-origin($perspective) {
        -webkit-perspective-origin: $perspective;
           -moz-perspective-origin: $perspective;
                perspective-origin: $perspective;
      }
      @mixin transform-origin($origin) {
        -webkit-transform-origin: $origin;
           -moz-transform-origin: $origin;
            -ms-transform-origin: $origin; // IE9 only
                transform-origin: $origin;
      }
      
      
      // Transitions
      
      @mixin transition($transition...) {
        -webkit-transition: $transition;
             -o-transition: $transition;
                transition: $transition;
      }
      @mixin transition-property($transition-property...) {
        -webkit-transition-property: $transition-property;
                transition-property: $transition-property;
      }
      @mixin transition-delay($transition-delay) {
        -webkit-transition-delay: $transition-delay;
                transition-delay: $transition-delay;
      }
      @mixin transition-duration($transition-duration...) {
        -webkit-transition-duration: $transition-duration;
                transition-duration: $transition-duration;
      }
      @mixin transition-timing-function($timing-function) {
        -webkit-transition-timing-function: $timing-function;
                transition-timing-function: $timing-function;
      }
      @mixin transition-transform($transition...) {
        -webkit-transition: -webkit-transform $transition;
           -moz-transition: -moz-transform $transition;
             -o-transition: -o-transform $transition;
                transition: transform $transition;
      }
      
      
      // User select
      // For selecting text on the page
      
      @mixin user-select($select) {
        -webkit-user-select: $select;
           -moz-user-select: $select;
            -ms-user-select: $select; // IE10+
                user-select: $select;
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss0000644000076400007640000000024512570225417030225 0ustar  pravipravi// WebKit-style focus
      
      @mixin tab-focus() {
        // Default
        outline: thin dotted;
        // WebKit
        outline: 5px auto -webkit-focus-ring-color;
        outline-offset: -2px;
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss0000644000076400007640000000071412570225417030474 0ustar  pravipravi// Pagination
      
      @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $border-radius) {
        > li {
          > a,
          > span {
            padding: $padding-vertical $padding-horizontal;
            font-size: $font-size;
          }
          &:first-child {
            > a,
            > span {
              @include border-left-radius($border-radius);
            }
          }
          &:last-child {
            > a,
            > span {
              @include border-right-radius($border-radius);
            }
          }
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss0000644000076400007640000000205412570225417030040 0ustar  pravipravi// Button variants
      //
      // Easily pump out default styles, as well as :hover, :focus, :active,
      // and disabled options for all buttons
      
      @mixin button-variant($color, $background, $border) {
        color: $color;
        background-color: $background;
        border-color: $border;
      
        &:hover,
        &:focus,
        &:active,
        &.active,
        .open > &.dropdown-toggle {
          color: $color;
          background-color: darken($background, 10%);
              border-color: darken($border, 12%);
        }
        &:active,
        &.active,
        .open > &.dropdown-toggle {
          background-image: none;
        }
        &.disabled,
        &[disabled],
        fieldset[disabled] & {
          &,
          &:hover,
          &:focus,
          &:active,
          &.active {
            background-color: $background;
                border-color: $border;
          }
        }
      
        .badge {
          color: $background;
          background-color: $color;
        }
      }
      
      // Button sizes
      @mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
        padding: $padding-vertical $padding-horizontal;
        font-size: $font-size;
        line-height: $line-height;
        border-radius: $border-radius;
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss0000644000076400007640000000112712570225417030235 0ustar  pravipravi// CSS image replacement
      //
      // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
      // mixins being reused as classes with the same name, this doesn't hold up. As
      // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
      //
      // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
      
      // Deprecated as of v3.0.1 (will be removed in v4)
      @mixin hide-text() {
        font: #{0/0} a;
        color: transparent;
        text-shadow: none;
        background-color: transparent;
        border: 0;
      }
      
      // New mixin to use as of v3.0.1
      @mixin text-hide() {
        @include hide-text();
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss0000644000076400007640000000040712570225417027634 0ustar  pravipravi// Alerts
      
      @mixin alert-variant($background, $border, $text-color) {
        background-color: $background;
        border-color: $border;
        color: $text-color;
      
        hr {
          border-top-color: darken($border, 5%);
        }
        .alert-link {
          color: darken($text-color, 10%);
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss0000644000076400007640000000075412570225417031111 0ustar  pravipravi// Single side border-radius
      
      @mixin border-top-radius($radius) {
        border-top-right-radius: $radius;
         border-top-left-radius: $radius;
      }
      @mixin border-right-radius($radius) {
        border-bottom-right-radius: $radius;
           border-top-right-radius: $radius;
      }
      @mixin border-bottom-radius($radius) {
        border-bottom-right-radius: $radius;
         border-bottom-left-radius: $radius;
      }
      @mixin border-left-radius($radius) {
        border-bottom-left-radius: $radius;
           border-top-left-radius: $radius;
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss0000644000076400007640000000103712570225417027624 0ustar  pravipravi// Panels
      
      @mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
        border-color: $border;
      
        & > .panel-heading {
          color: $heading-text-color;
          background-color: $heading-bg-color;
          border-color: $heading-border;
      
          + .panel-collapse > .panel-body {
            border-top-color: $border;
          }
          .badge {
            color: $heading-bg-color;
            background-color: $heading-text-color;
          }
        }
        & > .panel-footer {
          + .panel-collapse > .panel-body {
            border-bottom-color: $border;
          }
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss0000644000076400007640000000131312570225417030233 0ustar  pravipravi// Tables
      
      @mixin table-row-variant($state, $background) {
        // Exact selectors below required to override `.table-striped` and prevent
        // inheritance to nested tables.
        .table > thead > tr,
        .table > tbody > tr,
        .table > tfoot > tr {
          > td.#{$state},
          > th.#{$state},
          &.#{$state} > td,
          &.#{$state} > th {
            background-color: $background;
          }
        }
      
        // Hover states for `.table-hover`
        // Note: this is not available for cells or rows within `thead` or `tfoot`.
        .table-hover > tbody > tr {
          > td.#{$state}:hover,
          > th.#{$state}:hover,
          &.#{$state}:hover > td,
          &:hover > .#{$state},
          &.#{$state}:hover > th {
            background-color: darken($background, 5%);
          }
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss0000644000076400007640000000032412570225417032121 0ustar  pravipravi// Contextual backgrounds
      
      // [converter] $parent hack
      @mixin bg-variant($parent, $color) {
        #{$parent} {
          background-color: $color;
        }
        a#{$parent}:hover {
          background-color: darken($color, 10%);
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss0000644000076400007640000000237712570225417027434 0ustar  pravipravi// Image Mixins
      // - Responsive image
      // - Retina image
      
      
      // Responsive image
      //
      // Keep images from scaling beyond the width of their parents.
      @mixin img-responsive($display: block) {
        display: $display;
        width: 100% \9; // Force IE10 and below to size SVG images correctly
        max-width: 100%; // Part 1: Set a maximum relative to the parent
        height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
      }
      
      
      // Retina image
      //
      // Short retina mixin for setting background-image and -size. Note that the
      // spelling of `min--moz-device-pixel-ratio` is intentional.
      @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
        background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
      
        @media
        only screen and (-webkit-min-device-pixel-ratio: 2),
        only screen and (   min--moz-device-pixel-ratio: 2),
        only screen and (     -o-min-device-pixel-ratio: 2/1),
        only screen and (        min-device-pixel-ratio: 2),
        only screen and (                min-resolution: 192dpi),
        only screen and (                min-resolution: 2dppx) {
          background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
          background-size: $width-1x $height-1x;
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss0000644000076400007640000000114312570225417030135 0ustar  pravipravi// Clearfix
      //
      // For modern browsers
      // 1. The space content is one way to avoid an Opera bug when the
      //    contenteditable attribute is included anywhere else in the document.
      //    Otherwise it causes space to appear at the top and bottom of elements
      //    that are clearfixed.
      // 2. The use of `table` rather than `block` is only necessary if using
      //    `:before` to contain the top-margins of child elements.
      //
      // Source: http://nicolasgallagher.com/micro-clearfix-hack/
      
      @mixin clearfix() {
        &:before,
        &:after {
          content: " "; // 1
          display: table; // 2
        }
        &:after {
          clear: both;
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss0000644000076400007640000000017612570225417030715 0ustar  pravipravi// Center-align a block level element
      
      @mixin center-block() {
        display: block;
        margin-left: auto;
        margin-right: auto;
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss0000644000076400007640000000027512570225417031140 0ustar  pravipravi// Typography
      
      // [converter] $parent hack
      @mixin text-emphasis-variant($parent, $color) {
        #{$parent} {
          color: $color;
        }
        a#{$parent}:hover {
          color: darken($color, 10%);
        }
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss0000644000076400007640000000023012570225417030004 0ustar  pravipravi// Opacity
      
      @mixin opacity($opacity) {
        opacity: $opacity;
        // IE8 filter
        $opacity-ie: ($opacity * 100);
        filter: #{alpha(opacity=$opacity-ie)};
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss0000644000076400007640000000056212570225417032027 0ustar  pravipravi// Navbar vertical align
      //
      // Vertically center elements in the navbar.
      // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
      
      @mixin navbar-vertical-align($element-height) {
        margin-top: (($navbar-height - $element-height) / 2);
        margin-bottom: (($navbar-height - $element-height) / 2);
      }
      rails_admin-0.7.0/app/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss0000644000076400007640000000517312570225417027475 0ustar  pravipravi// Form validation states
      //
      // Used in forms.less to generate the form validation CSS for warnings, errors,
      // and successes.
      
      @mixin form-control-validation($text-color: #555, $border-color: #ccc, $background-color: #f5f5f5) {
        // Color the label and help text
        .help-block,
        .control-label,
        .radio,
        .checkbox,
        .radio-inline,
        .checkbox-inline  {
          color: $text-color;
        }
        // Set the border and box shadow on specific inputs to match
        .form-control {
          border-color: $border-color;
          @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
          &:focus {
            border-color: darken($border-color, 10%);
            $shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten($border-color, 20%);
            @include box-shadow($shadow);
          }
        }
        // Set validation states also for addons
        .input-group-addon {
          color: $text-color;
          border-color: $border-color;
          background-color: $background-color;
        }
        // Optional feedback icon
        .form-control-feedback {
          color: $text-color;
        }
      }
      
      
      // Form control focus state
      //
      // Generate a customized focus state and for any input with the specified color,
      // which defaults to the `$input-border-focus` variable.
      //
      // We highly encourage you to not customize the default value, but instead use
      // this to tweak colors on an as-needed basis. This aesthetic change is based on
      // WebKit's default styles, but applicable to a wider range of browsers. Its
      // usability and accessibility should be taken into account with any change.
      //
      // Example usage: change the default blue border and shadow to white for better
      // contrast against a dark gray background.
      @mixin form-control-focus($color: $input-border-focus) {
        $color-rgba: rgba(red($color), green($color), blue($color), .6);
        &:focus {
          border-color: $color;
          outline: 0;
          @include box-shadow(inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px $color-rgba);
        }
      }
      
      // Form control sizing
      //
      // Relative text size, padding, and border-radii changes for form controls. For
      // horizontal sizing, wrap controls in the predefined grid classes. `')
              .val(value)
              .addClass("form-control ra-filtering-select-input")
              .attr('style', select.attr('style'))
              .show()
              .autocomplete({
                delay: this.options.searchDelay,
                minLength: this.options.minLength,
                source: this._getSourceFunction(this.options.source),
                select: function(event, ui) {
                  var option = $('').attr('value', ui.item.id).attr('selected', 'selected').text(ui.item.value);
                  select.html(option);
                  select.trigger("change", ui.item.id);
                  self._trigger("selected", event, {
                    item: option
                  });
                  $(self.element.parents('.controls')[0]).find('.update').removeClass('disabled');
                },
                change: function(event, ui) {
                  if (!ui.item) {
                    var matcher = new RegExp("^" + $.ui.autocomplete.escapeRegex($(this).val()) + "$", "i"),
                        valid = false;
                    select.children("option").each(function() {
                      if ($(this).text().match(matcher)) {
                        this.selected = valid = true;
                        return false;
                      }
                    });
                    if (!valid || $(this).val() == '') {
                      // remove invalid value, as it didn't match anything
                      $(this).val(null);
                      select.html($(''));
                      input.data("ui-autocomplete").term = "";
                      $(self.element.parents('.controls')[0]).find('.update').addClass('disabled');
                      return false;
                    }
      
                  }
                }
              })
              .keyup(function() {
                /* Clear select options and trigger change if selected item is deleted */
                if ($(this).val().length == 0) {
                  select.html($(''));
                  select.trigger("change");
                }
              })
      
            if(select.attr('placeholder'))
              input.attr('placeholder', select.attr('placeholder'))
      
            input.data("ui-autocomplete")._renderItem = function(ul, item) {
              return $("
    1. ") .data("ui-autocomplete-item", item) .append( $( "" ).html( item.html || item.id ) ) .appendTo(ul); }; var button = this.button = $('') .click(function() { // close if already visible if (input.autocomplete("widget").is(":visible")) { input.autocomplete("close"); return; } // pass empty string as value to search for, displaying all results input.autocomplete("search", ""); input.focus(); }); filtering_select.append(input).append(button).insertAfter(select); }, _getResultSet: function(request, data, xhr) { var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); var highlighter = function(label, word){ if(word.length > 0){ return $.map(label.split(word), function(el, i){ return $('').text(el).html(); }).join($('').text(word)[0].outerHTML); }else{ return $('').text(label).html(); } }; return $.map(data, function(el, i) { // match regexp only for local requests, remote ones are already filtered, and label may not contain filtered term. if ((el.id || el.value) && (xhr || matcher.test(el.label))) { return { html: highlighter(el.label || el.id, request.term), value: el.label || el.id, id: el.id || el.value }; } }); }, _getSourceFunction: function(source) { var self = this, requestIndex = 0; if ($.isArray(source)) { return function(request, response) { response(self._getResultSet(request, source, false)); }; } else if (typeof source === "string") { return function(request, response) { if (this.xhr) { this.xhr.abort(); } this.xhr = $.ajax({ url: source, data: self.options.createQuery(request.term), dataType: "json", autocompleteRequest: ++requestIndex, success: function(data, status) { if (this.autocompleteRequest === requestIndex) { response(self._getResultSet(request, data, true)); } }, error: function() { if (this.autocompleteRequest === requestIndex) { response([]); } } }); }; } else { return source; } }, destroy: function() { this.input.remove(); this.button.remove(); this.element.show(); $.Widget.prototype.destroy.call(this); } }); })(jQuery); rails_admin-0.7.0/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js0000644000076400007640000017405412570225417026375 0ustar pravipravi/* * jQuery UI Timepicker * * Copyright 2010-2013, Francois Gelinas * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://fgelinas.com/code/timepicker * * Depends: * jquery.ui.core.js * jquery.ui.position.js (only if position settngs are used) * * Change version 0.1.0 - moved the t-rex up here * ____ ___ .-~. /_"-._ `-._~-. / /_ "~o\ :Y \ \ / : \~x. ` ') ] Y / | Y< ~-.__j / ! _.--~T : l l< /.-~ / / ____.--~ . ` l /~\ \<|Y / / .-~~" /| . ',-~\ \L| / / / .^ \ Y~Y \.^>/l_ "--' / Y .-"( . l__ j_j l_/ /~_.-~ . Y l / \ ) ~~~." / `/"~ / \.__/l_ | \ _.-" ~-{__ l : l._Z~-.___.--~ | ~---~ / ~~"---\_ ' __[> l . _.^ ___ _>-y~ \ \ . .-~ .-~ ~>--" / \ ~---" / ./ _.-' "-.,_____.,_ _.--~\ _.-~ ~~ ( _} -Row `. ~( ) \ /,`--'~\--'~\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ->T-Rex<- */ (function ($) { $.extend($.ui, { timepicker: { version: "0.3.2"} }); var PROP_NAME = 'timepicker', tpuuid = new Date().getTime(); /* Time picker manager. Use the singleton instance of this class, $.timepicker, to interact with the time picker. Settings for (groups of) time pickers are maintained in an instance object, allowing multiple different settings on the same page. */ function Timepicker() { this.debug = true; // Change this to true to start debugging this._curInst = null; // The current instance in use this._disabledInputs = []; // List of time picker inputs that have been disabled this._timepickerShowing = false; // True if the popup picker is showing , false if not this._inDialog = false; // True if showing within a "dialog", false if not this._dialogClass = 'ui-timepicker-dialog'; // The name of the dialog marker class this._mainDivId = 'ui-timepicker-div'; // The ID of the main timepicker division this._inlineClass = 'ui-timepicker-inline'; // The name of the inline marker class this._currentClass = 'ui-timepicker-current'; // The name of the current hour / minutes marker class this._dayOverClass = 'ui-timepicker-days-cell-over'; // The name of the day hover marker class this.regional = []; // Available regional settings, indexed by language code this.regional[''] = { // Default regional settings hourText: 'Hour', // Display text for hours section minuteText: 'Minute', // Display text for minutes link amPmText: ['AM', 'PM'], // Display text for AM PM closeButtonText: 'Done', // Text for the confirmation button (ok button) nowButtonText: 'Now', // Text for the now button deselectButtonText: 'Deselect' // Text for the deselect button }; this._defaults = { // Global defaults for all the time picker instances showOn: 'focus', // 'focus' for popup on focus, // 'button' for trigger button, or 'both' for either (not yet implemented) button: null, // 'button' element that will trigger the timepicker showAnim: 'fadeIn', // Name of jQuery animation for popup showOptions: {}, // Options for enhanced animations appendText: '', // Display text following the input box, e.g. showing the format beforeShow: null, // Define a callback function executed before the timepicker is shown onSelect: null, // Define a callback function when a hour / minutes is selected onClose: null, // Define a callback function when the timepicker is closed timeSeparator: ':', // The character to use to separate hours and minutes. periodSeparator: ' ', // The character to use to separate the time from the time period. showPeriod: false, // Define whether or not to show AM/PM with selected time showPeriodLabels: true, // Show the AM/PM labels on the left of the time picker showLeadingZero: true, // Define whether or not to show a leading zero for hours < 10. [true/false] showMinutesLeadingZero: true, // Define whether or not to show a leading zero for minutes < 10. altField: '', // Selector for an alternate field to store selected time into defaultTime: 'now', // Used as default time when input field is empty or for inline timePicker // (set to 'now' for the current time, '' for no highlighted time) myPosition: 'left top', // Position of the dialog relative to the input. // see the position utility for more info : http://jqueryui.com/demos/position/ atPosition: 'left bottom', // Position of the input element to match // Note : if the position utility is not loaded, the timepicker will attach left top to left bottom //NEW: 2011-02-03 onHourShow: null, // callback for enabling / disabling on selectable hours ex : function(hour) { return true; } onMinuteShow: null, // callback for enabling / disabling on time selection ex : function(hour,minute) { return true; } hours: { starts: 0, // first displayed hour ends: 23 // last displayed hour }, minutes: { starts: 0, // first displayed minute ends: 55, // last displayed minute interval: 5 // interval of displayed minutes }, rows: 4, // number of rows for the input tables, minimum 2, makes more sense if you use multiple of 2 // 2011-08-05 0.2.4 showHours: true, // display the hours section of the dialog showMinutes: true, // display the minute section of the dialog optionalMinutes: false, // optionally parse inputs of whole hours with minutes omitted // buttons showCloseButton: false, // shows an OK button to confirm the edit showNowButton: false, // Shows the 'now' button showDeselectButton: false // Shows the deselect time button }; $.extend(this._defaults, this.regional['']); this.tpDiv = $(''); } $.extend(Timepicker.prototype, { /* Class name added to elements to indicate already configured with a time picker. */ markerClassName: 'hasTimepicker', /* Debug logging (if enabled). */ log: function () { if (this.debug) console.log.apply('', arguments); }, _widgetTimepicker: function () { return this.tpDiv; }, /* Override the default settings for all instances of the time picker. @param settings object - the new settings to use as defaults (anonymous object) @return the manager object */ setDefaults: function (settings) { extendRemove(this._defaults, settings || {}); return this; }, /* Attach the time picker to a jQuery selection. @param target element - the target input field or division or span @param settings object - the new settings to use for this time picker instance (anonymous) */ _attachTimepicker: function (target, settings) { // check for settings on the control itself - in namespace 'time:' var inlineSettings = null; for (var attrName in this._defaults) { var attrValue = target.getAttribute('time:' + attrName); if (attrValue) { inlineSettings = inlineSettings || {}; try { inlineSettings[attrName] = eval(attrValue); } catch (err) { inlineSettings[attrName] = attrValue; } } } var nodeName = target.nodeName.toLowerCase(); var inline = (nodeName == 'div' || nodeName == 'span'); if (!target.id) { this.uuid += 1; target.id = 'tp' + this.uuid; } var inst = this._newInst($(target), inline); inst.settings = $.extend({}, settings || {}, inlineSettings || {}); if (nodeName == 'input') { this._connectTimepicker(target, inst); // init inst.hours and inst.minutes from the input value this._setTimeFromField(inst); } else if (inline) { this._inlineTimepicker(target, inst); } }, /* Create a new instance object. */ _newInst: function (target, inline) { var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars return { id: id, input: target, // associated target inline: inline, // is timepicker inline or not : tpDiv: (!inline ? this.tpDiv : // presentation div $('
      ')) }; }, /* Attach the time picker to an input field. */ _connectTimepicker: function (target, inst) { var input = $(target); inst.append = $([]); inst.trigger = $([]); if (input.hasClass(this.markerClassName)) { return; } this._attachments(input, inst); input.addClass(this.markerClassName). keydown(this._doKeyDown). keyup(this._doKeyUp). bind("setData.timepicker", function (event, key, value) { inst.settings[key] = value; }). bind("getData.timepicker", function (event, key) { return this._get(inst, key); }); $.data(target, PROP_NAME, inst); }, /* Handle keystrokes. */ _doKeyDown: function (event) { var inst = $.timepicker._getInst(event.target); var handled = true; inst._keyEvent = true; if ($.timepicker._timepickerShowing) { switch (event.keyCode) { case 9: $.timepicker._hideTimepicker(); handled = false; break; // hide on tab out case 13: $.timepicker._updateSelectedValue(inst); $.timepicker._hideTimepicker(); return false; // don't submit the form break; // select the value on enter case 27: $.timepicker._hideTimepicker(); break; // hide on escape default: handled = false; } } else if (event.keyCode == 36 && event.ctrlKey) { // display the time picker on ctrl+home $.timepicker._showTimepicker(this); } else { handled = false; } if (handled) { event.preventDefault(); event.stopPropagation(); } }, /* Update selected time on keyUp */ /* Added verion 0.0.5 */ _doKeyUp: function (event) { var inst = $.timepicker._getInst(event.target); $.timepicker._setTimeFromField(inst); $.timepicker._updateTimepicker(inst); }, /* Make attachments based on settings. */ _attachments: function (input, inst) { var appendText = this._get(inst, 'appendText'); var isRTL = this._get(inst, 'isRTL'); if (inst.append) { inst.append.remove(); } if (appendText) { inst.append = $('' + appendText + ''); input[isRTL ? 'before' : 'after'](inst.append); } input.unbind('focus.timepicker', this._showTimepicker); input.unbind('click.timepicker', this._adjustZIndex); if (inst.trigger) { inst.trigger.remove(); } var showOn = this._get(inst, 'showOn'); if (showOn == 'focus' || showOn == 'both') { // pop-up time picker when in the marked field input.bind("focus.timepicker", this._showTimepicker); input.bind("click.timepicker", this._adjustZIndex); } if (showOn == 'button' || showOn == 'both') { // pop-up time picker when 'button' element is clicked var button = this._get(inst, 'button'); $(button).bind("click.timepicker", function () { if ($.timepicker._timepickerShowing && $.timepicker._lastInput == input[0]) { $.timepicker._hideTimepicker(); } else if (!inst.input.is(':disabled')) { $.timepicker._showTimepicker(input[0]); } return false; }); } }, /* Attach an inline time picker to a div. */ _inlineTimepicker: function(target, inst) { var divSpan = $(target); if (divSpan.hasClass(this.markerClassName)) return; divSpan.addClass(this.markerClassName).append(inst.tpDiv). bind("setData.timepicker", function(event, key, value){ inst.settings[key] = value; }).bind("getData.timepicker", function(event, key){ return this._get(inst, key); }); $.data(target, PROP_NAME, inst); this._setTimeFromField(inst); this._updateTimepicker(inst); inst.tpDiv.show(); }, _adjustZIndex: function(input) { input = input.target || input; var inst = $.timepicker._getInst(input); inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1); }, /* Pop-up the time picker for a given input field. @param input element - the input field attached to the time picker or event - if triggered by focus */ _showTimepicker: function (input) { input = input.target || input; if (input.nodeName.toLowerCase() != 'input') { input = $('input', input.parentNode)[0]; } // find from button/image trigger if ($.timepicker._isDisabledTimepicker(input) || $.timepicker._lastInput == input) { return; } // already here // fix v 0.0.8 - close current timepicker before showing another one $.timepicker._hideTimepicker(); var inst = $.timepicker._getInst(input); if ($.timepicker._curInst && $.timepicker._curInst != inst) { $.timepicker._curInst.tpDiv.stop(true, true); } var beforeShow = $.timepicker._get(inst, 'beforeShow'); extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {})); inst.lastVal = null; $.timepicker._lastInput = input; $.timepicker._setTimeFromField(inst); // calculate default position if ($.timepicker._inDialog) { input.value = ''; } // hide cursor if (!$.timepicker._pos) { // position below input $.timepicker._pos = $.timepicker._findPos(input); $.timepicker._pos[1] += input.offsetHeight; // add the height } var isFixed = false; $(input).parents().each(function () { isFixed |= $(this).css('position') == 'fixed'; return !isFixed; }); var offset = { left: $.timepicker._pos[0], top: $.timepicker._pos[1] }; $.timepicker._pos = null; // determine sizing offscreen inst.tpDiv.css({ position: 'absolute', display: 'block', top: '-1000px' }); $.timepicker._updateTimepicker(inst); // position with the ui position utility, if loaded if ( ( ! inst.inline ) && ( typeof $.ui.position == 'object' ) ) { inst.tpDiv.position({ of: inst.input, my: $.timepicker._get( inst, 'myPosition' ), at: $.timepicker._get( inst, 'atPosition' ), // offset: $( "#offset" ).val(), // using: using, collision: 'flip' }); var offset = inst.tpDiv.offset(); $.timepicker._pos = [offset.top, offset.left]; } // reset clicked state inst._hoursClicked = false; inst._minutesClicked = false; // fix width for dynamic number of time pickers // and adjust position before showing offset = $.timepicker._checkOffset(inst, offset, isFixed); inst.tpDiv.css({ position: ($.timepicker._inDialog && $.blockUI ? 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none', left: offset.left + 'px', top: offset.top + 'px' }); if ( ! inst.inline ) { var showAnim = $.timepicker._get(inst, 'showAnim'); var duration = $.timepicker._get(inst, 'duration'); var postProcess = function () { $.timepicker._timepickerShowing = true; var borders = $.timepicker._getBorders(inst.tpDiv); inst.tpDiv.find('iframe.ui-timepicker-cover'). // IE6- only css({ left: -borders[0], top: -borders[1], width: inst.tpDiv.outerWidth(), height: inst.tpDiv.outerHeight() }); }; // Fixed the zIndex problem for real (I hope) - FG - v 0.2.9 $.timepicker._adjustZIndex(input); //inst.tpDiv.css('zIndex', $.timepicker._getZIndex(input) +1); if ($.effects && $.effects[showAnim]) { inst.tpDiv.show(showAnim, $.timepicker._get(inst, 'showOptions'), duration, postProcess); } else { inst.tpDiv.show((showAnim ? duration : null), postProcess); } if (!showAnim || !duration) { postProcess(); } if (inst.input.is(':visible') && !inst.input.is(':disabled')) { inst.input.focus(); } $.timepicker._curInst = inst; } }, // This is an enhanced copy of the zIndex function of UI core 1.8.?? For backward compatibility. // Enhancement returns maximum zindex value discovered while traversing parent elements, // rather than the first zindex value found. Ensures the timepicker popup will be in front, // even in funky scenarios like non-jq dialog containers with large fixed zindex values and // nested zindex-influenced elements of their own. _getZIndex: function (target) { var elem = $(target); var maxValue = 0; var position, value; while (elem.length && elem[0] !== document) { position = elem.css("position"); if (position === "absolute" || position === "relative" || position === "fixed") { value = parseInt(elem.css("zIndex"), 10); if (!isNaN(value) && value !== 0) { if (value > maxValue) { maxValue = value; } } } elem = elem.parent(); } return maxValue; }, /* Refresh the time picker @param target element - The target input field or inline container element. */ _refreshTimepicker: function(target) { var inst = this._getInst(target); if (inst) { this._updateTimepicker(inst); } }, /* Generate the time picker content. */ _updateTimepicker: function (inst) { inst.tpDiv.empty().append(this._generateHTML(inst)); this._rebindDialogEvents(inst); }, _rebindDialogEvents: function (inst) { var borders = $.timepicker._getBorders(inst.tpDiv), self = this; inst.tpDiv .find('iframe.ui-timepicker-cover') // IE6- only .css({ left: -borders[0], top: -borders[1], width: inst.tpDiv.outerWidth(), height: inst.tpDiv.outerHeight() }) .end() // after the picker html is appended bind the click & double click events (faster in IE this way // then letting the browser interpret the inline events) // the binding for the minute cells also exists in _updateMinuteDisplay .find('.ui-timepicker-minute-cell') .unbind() .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectMinutes, this)) .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectMinutes, this)) .end() .find('.ui-timepicker-hour-cell') .unbind() .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectHours, this)) .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectHours, this)) .end() .find('.ui-timepicker td a') .unbind() .bind('mouseout', function () { $(this).removeClass('ui-state-hover'); if (this.className.indexOf('ui-timepicker-prev') != -1) $(this).removeClass('ui-timepicker-prev-hover'); if (this.className.indexOf('ui-timepicker-next') != -1) $(this).removeClass('ui-timepicker-next-hover'); }) .bind('mouseover', function () { if ( ! self._isDisabledTimepicker(inst.inline ? inst.tpDiv.parent()[0] : inst.input[0])) { $(this).parents('.ui-timepicker-calendar').find('a').removeClass('ui-state-hover'); $(this).addClass('ui-state-hover'); if (this.className.indexOf('ui-timepicker-prev') != -1) $(this).addClass('ui-timepicker-prev-hover'); if (this.className.indexOf('ui-timepicker-next') != -1) $(this).addClass('ui-timepicker-next-hover'); } }) .end() .find('.' + this._dayOverClass + ' a') .trigger('mouseover') .end() .find('.ui-timepicker-now').bind("click", function(e) { $.timepicker.selectNow(e); }).end() .find('.ui-timepicker-deselect').bind("click",function(e) { $.timepicker.deselectTime(e); }).end() .find('.ui-timepicker-close').bind("click",function(e) { $.timepicker._hideTimepicker(); }).end(); }, /* Generate the HTML for the current state of the time picker. */ _generateHTML: function (inst) { var h, m, row, col, html, hoursHtml, minutesHtml = '', showPeriod = (this._get(inst, 'showPeriod') == true), showPeriodLabels = (this._get(inst, 'showPeriodLabels') == true), showLeadingZero = (this._get(inst, 'showLeadingZero') == true), showHours = (this._get(inst, 'showHours') == true), showMinutes = (this._get(inst, 'showMinutes') == true), amPmText = this._get(inst, 'amPmText'), rows = this._get(inst, 'rows'), amRows = 0, pmRows = 0, amItems = 0, pmItems = 0, amFirstRow = 0, pmFirstRow = 0, hours = Array(), hours_options = this._get(inst, 'hours'), hoursPerRow = null, hourCounter = 0, hourLabel = this._get(inst, 'hourText'), showCloseButton = this._get(inst, 'showCloseButton'), closeButtonText = this._get(inst, 'closeButtonText'), showNowButton = this._get(inst, 'showNowButton'), nowButtonText = this._get(inst, 'nowButtonText'), showDeselectButton = this._get(inst, 'showDeselectButton'), deselectButtonText = this._get(inst, 'deselectButtonText'), showButtonPanel = showCloseButton || showNowButton || showDeselectButton; // prepare all hours and minutes, makes it easier to distribute by rows for (h = hours_options.starts; h <= hours_options.ends; h++) { hours.push (h); } hoursPerRow = Math.ceil(hours.length / rows); // always round up if (showPeriodLabels) { for (hourCounter = 0; hourCounter < hours.length; hourCounter++) { if (hours[hourCounter] < 12) { amItems++; } else { pmItems++; } } hourCounter = 0; amRows = Math.floor(amItems / hours.length * rows); pmRows = Math.floor(pmItems / hours.length * rows); // assign the extra row to the period that is more densely populated if (rows != amRows + pmRows) { // Make sure: AM Has Items and either PM Does Not, AM has no rows yet, or AM is more dense if (amItems && (!pmItems || !amRows || (pmRows && amItems / amRows >= pmItems / pmRows))) { amRows++; } else { pmRows++; } } amFirstRow = Math.min(amRows, 1); pmFirstRow = amRows + 1; if (amRows == 0) { hoursPerRow = Math.ceil(pmItems / pmRows); } else if (pmRows == 0) { hoursPerRow = Math.ceil(amItems / amRows); } else { hoursPerRow = Math.ceil(Math.max(amItems / amRows, pmItems / pmRows)); } } html = ''; if (showHours) { html += ''; // Close the Hour td } if (showMinutes) { html += ''; } html += ''; if (showButtonPanel) { var buttonPanel = ''; } html += '
      ' + '
      ' + hourLabel + '
      ' + ''; for (row = 1; row <= rows; row++) { html += ''; // AM if (row == amFirstRow && showPeriodLabels) { html += ''; } // PM if (row == pmFirstRow && showPeriodLabels) { html += ''; } for (col = 1; col <= hoursPerRow; col++) { if (showPeriodLabels && row < pmFirstRow && hours[hourCounter] >= 12) { html += this._generateHTMLHourCell(inst, undefined, showPeriod, showLeadingZero); } else { html += this._generateHTMLHourCell(inst, hours[hourCounter], showPeriod, showLeadingZero); hourCounter++; } } html += ''; } html += '
      ' + amPmText[0] + '' + amPmText[1] + '
      ' + // Close the hours cells table '
      '; html += this._generateHTMLMinutes(inst); html += '
      '; if (showNowButton) { buttonPanel += ''; } if (showDeselectButton) { buttonPanel += ''; } if (showCloseButton) { buttonPanel += ''; } html += buttonPanel + '
      '; return html; }, /* Special function that update the minutes selection in currently visible timepicker * called on hour selection when onMinuteShow is defined */ _updateMinuteDisplay: function (inst) { var newHtml = this._generateHTMLMinutes(inst); inst.tpDiv.find('td.ui-timepicker-minutes').html(newHtml); this._rebindDialogEvents(inst); // after the picker html is appended bind the click & double click events (faster in IE this way // then letting the browser interpret the inline events) // yes I know, duplicate code, sorry /* .find('.ui-timepicker-minute-cell') .bind("click", { fromDoubleClick:false }, $.proxy($.timepicker.selectMinutes, this)) .bind("dblclick", { fromDoubleClick:true }, $.proxy($.timepicker.selectMinutes, this)); */ }, /* * Generate the minutes table * This is separated from the _generateHTML function because is can be called separately (when hours changes) */ _generateHTMLMinutes: function (inst) { var m, row, html = '', rows = this._get(inst, 'rows'), minutes = Array(), minutes_options = this._get(inst, 'minutes'), minutesPerRow = null, minuteCounter = 0, showMinutesLeadingZero = (this._get(inst, 'showMinutesLeadingZero') == true), onMinuteShow = this._get(inst, 'onMinuteShow'), minuteLabel = this._get(inst, 'minuteText'); if ( ! minutes_options.starts) { minutes_options.starts = 0; } if ( ! minutes_options.ends) { minutes_options.ends = 59; } for (m = minutes_options.starts; m <= minutes_options.ends; m += minutes_options.interval) { minutes.push(m); } minutesPerRow = Math.round(minutes.length / rows + 0.49); // always round up /* * The minutes table */ // if currently selected minute is not enabled, we have a problem and need to select a new minute. if (onMinuteShow && (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours , inst.minutes]) == false) ) { // loop minutes and select first available for (minuteCounter = 0; minuteCounter < minutes.length; minuteCounter += 1) { m = minutes[minuteCounter]; if (onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours, m])) { inst.minutes = m; break; } } } html += '
      ' + minuteLabel + '
      ' + ''; minuteCounter = 0; for (row = 1; row <= rows; row++) { html += ''; while (minuteCounter < row * minutesPerRow) { var m = minutes[minuteCounter]; var displayText = ''; if (m !== undefined ) { displayText = (m < 10) && showMinutesLeadingZero ? "0" + m.toString() : m.toString(); } html += this._generateHTMLMinuteCell(inst, m, displayText); minuteCounter++; } html += ''; } html += '
      '; return html; }, /* Generate the content of a "Hour" cell */ _generateHTMLHourCell: function (inst, hour, showPeriod, showLeadingZero) { var displayHour = hour; if ((hour > 12) && showPeriod) { displayHour = hour - 12; } if ((displayHour == 0) && showPeriod) { displayHour = 12; } if ((displayHour < 10) && showLeadingZero) { displayHour = '0' + displayHour; } var html = ""; var enabled = true; var onHourShow = this._get(inst, 'onHourShow'); //custom callback if (hour == undefined) { html = ' '; return html; } if (onHourShow) { enabled = onHourShow.apply((inst.input ? inst.input[0] : null), [hour]); } if (enabled) { html = '' + '' + displayHour.toString() + ''; } else { html = '' + '' + displayHour.toString() + '' + ''; } return html; }, /* Generate the content of a "Hour" cell */ _generateHTMLMinuteCell: function (inst, minute, displayText) { var html = ""; var enabled = true; var onMinuteShow = this._get(inst, 'onMinuteShow'); //custom callback if (onMinuteShow) { //NEW: 2011-02-03 we should give the hour as a parameter as well! enabled = onMinuteShow.apply((inst.input ? inst.input[0] : null), [inst.hours,minute]); //trigger callback } if (minute == undefined) { html = ' '; return html; } if (enabled) { html = '' + '' + displayText + ''; } else { html = '' + '' + displayText + '' + ''; } return html; }, /* Detach a timepicker from its control. @param target element - the target input field or division or span */ _destroyTimepicker: function(target) { var $target = $(target); var inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } var nodeName = target.nodeName.toLowerCase(); $.removeData(target, PROP_NAME); if (nodeName == 'input') { inst.append.remove(); inst.trigger.remove(); $target.removeClass(this.markerClassName) .unbind('focus.timepicker', this._showTimepicker) .unbind('click.timepicker', this._adjustZIndex); } else if (nodeName == 'div' || nodeName == 'span') $target.removeClass(this.markerClassName).empty(); }, /* Enable the date picker to a jQuery selection. @param target element - the target input field or division or span */ _enableTimepicker: function(target) { var $target = $(target), target_id = $target.attr('id'), inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } var nodeName = target.nodeName.toLowerCase(); if (nodeName == 'input') { target.disabled = false; var button = this._get(inst, 'button'); $(button).removeClass('ui-state-disabled').disabled = false; inst.trigger.filter('button'). each(function() { this.disabled = false; }).end(); } else if (nodeName == 'div' || nodeName == 'span') { var inline = $target.children('.' + this._inlineClass); inline.children().removeClass('ui-state-disabled'); inline.find('button').each( function() { this.disabled = false } ) } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value == target_id ? null : value); }); // delete entry }, /* Disable the time picker to a jQuery selection. @param target element - the target input field or division or span */ _disableTimepicker: function(target) { var $target = $(target); var inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } var nodeName = target.nodeName.toLowerCase(); if (nodeName == 'input') { var button = this._get(inst, 'button'); $(button).addClass('ui-state-disabled').disabled = true; target.disabled = true; inst.trigger.filter('button'). each(function() { this.disabled = true; }).end(); } else if (nodeName == 'div' || nodeName == 'span') { var inline = $target.children('.' + this._inlineClass); inline.children().addClass('ui-state-disabled'); inline.find('button').each( function() { this.disabled = true } ) } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value == target ? null : value); }); // delete entry this._disabledInputs[this._disabledInputs.length] = $target.attr('id'); }, /* Is the first field in a jQuery collection disabled as a timepicker? @param target_id element - the target input field or division or span @return boolean - true if disabled, false if enabled */ _isDisabledTimepicker: function (target_id) { if ( ! target_id) { return false; } for (var i = 0; i < this._disabledInputs.length; i++) { if (this._disabledInputs[i] == target_id) { return true; } } return false; }, /* Check positioning to remain on screen. */ _checkOffset: function (inst, offset, isFixed) { var tpWidth = inst.tpDiv.outerWidth(); var tpHeight = inst.tpDiv.outerHeight(); var inputWidth = inst.input ? inst.input.outerWidth() : 0; var inputHeight = inst.input ? inst.input.outerHeight() : 0; var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft(); var viewHeight = document.documentElement.clientHeight + $(document).scrollTop(); offset.left -= (this._get(inst, 'isRTL') ? (tpWidth - inputWidth) : 0); offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0; offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; // now check if datepicker is showing outside window viewport - move to a better place if so. offset.left -= Math.min(offset.left, (offset.left + tpWidth > viewWidth && viewWidth > tpWidth) ? Math.abs(offset.left + tpWidth - viewWidth) : 0); offset.top -= Math.min(offset.top, (offset.top + tpHeight > viewHeight && viewHeight > tpHeight) ? Math.abs(tpHeight + inputHeight) : 0); return offset; }, /* Find an object's position on the screen. */ _findPos: function (obj) { var inst = this._getInst(obj); var isRTL = this._get(inst, 'isRTL'); while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) { obj = obj[isRTL ? 'previousSibling' : 'nextSibling']; } var position = $(obj).offset(); return [position.left, position.top]; }, /* Retrieve the size of left and top borders for an element. @param elem (jQuery object) the element of interest @return (number[2]) the left and top borders */ _getBorders: function (elem) { var convert = function (value) { return { thin: 1, medium: 2, thick: 3}[value] || value; }; return [parseFloat(convert(elem.css('border-left-width'))), parseFloat(convert(elem.css('border-top-width')))]; }, /* Close time picker if clicked elsewhere. */ _checkExternalClick: function (event) { if (!$.timepicker._curInst) { return; } var $target = $(event.target); if ($target[0].id != $.timepicker._mainDivId && $target.parents('#' + $.timepicker._mainDivId).length == 0 && !$target.hasClass($.timepicker.markerClassName) && !$target.hasClass($.timepicker._triggerClass) && $.timepicker._timepickerShowing && !($.timepicker._inDialog && $.blockUI)) $.timepicker._hideTimepicker(); }, /* Hide the time picker from view. @param input element - the input field attached to the time picker */ _hideTimepicker: function (input) { var inst = this._curInst; if (!inst || (input && inst != $.data(input, PROP_NAME))) { return; } if (this._timepickerShowing) { var showAnim = this._get(inst, 'showAnim'); var duration = this._get(inst, 'duration'); var postProcess = function () { $.timepicker._tidyDialog(inst); this._curInst = null; }; if ($.effects && $.effects[showAnim]) { inst.tpDiv.hide(showAnim, $.timepicker._get(inst, 'showOptions'), duration, postProcess); } else { inst.tpDiv[(showAnim == 'slideDown' ? 'slideUp' : (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess); } if (!showAnim) { postProcess(); } this._timepickerShowing = false; this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' }); if ($.blockUI) { $.unblockUI(); $('body').append(this.tpDiv); } } this._inDialog = false; var onClose = this._get(inst, 'onClose'); if (onClose) { onClose.apply( (inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback } } }, /* Tidy up after a dialog display. */ _tidyDialog: function (inst) { inst.tpDiv.removeClass(this._dialogClass).unbind('.ui-timepicker'); }, /* Retrieve the instance data for the target control. @param target element - the target input field or division or span @return object - the associated instance data @throws error if a jQuery problem getting data */ _getInst: function (target) { try { return $.data(target, PROP_NAME); } catch (err) { throw 'Missing instance data for this timepicker'; } }, /* Get a setting value, defaulting if necessary. */ _get: function (inst, name) { return inst.settings[name] !== undefined ? inst.settings[name] : this._defaults[name]; }, /* Parse existing time and initialise time picker. */ _setTimeFromField: function (inst) { if (inst.input.val() == inst.lastVal) { return; } var defaultTime = this._get(inst, 'defaultTime'); var timeToParse = defaultTime == 'now' ? this._getCurrentTimeRounded(inst) : defaultTime; if ((inst.inline == false) && (inst.input.val() != '')) { timeToParse = inst.input.val() } if (timeToParse instanceof Date) { inst.hours = timeToParse.getHours(); inst.minutes = timeToParse.getMinutes(); } else { var timeVal = inst.lastVal = timeToParse; if (timeToParse == '') { inst.hours = -1; inst.minutes = -1; } else { var time = this.parseTime(inst, timeVal); inst.hours = time.hours; inst.minutes = time.minutes; } } $.timepicker._updateTimepicker(inst); }, /* Update or retrieve the settings for an existing time picker. @param target element - the target input field or division or span @param name object - the new settings to update or string - the name of the setting to change or retrieve, when retrieving also 'all' for all instance settings or 'defaults' for all global defaults @param value any - the new value for the setting (omit if above is an object or to retrieve a value) */ _optionTimepicker: function(target, name, value) { var inst = this._getInst(target); if (arguments.length == 2 && typeof name == 'string') { return (name == 'defaults' ? $.extend({}, $.timepicker._defaults) : (inst ? (name == 'all' ? $.extend({}, inst.settings) : this._get(inst, name)) : null)); } var settings = name || {}; if (typeof name == 'string') { settings = {}; settings[name] = value; } if (inst) { if (this._curInst == inst) { this._hideTimepicker(); } extendRemove(inst.settings, settings); this._updateTimepicker(inst); } }, /* Set the time for a jQuery selection. @param target element - the target input field or division or span @param time String - the new time */ _setTimeTimepicker: function(target, time) { var inst = this._getInst(target); if (inst) { this._setTime(inst, time); this._updateTimepicker(inst); this._updateAlternate(inst, time); } }, /* Set the time directly. */ _setTime: function(inst, time, noChange) { var origHours = inst.hours; var origMinutes = inst.minutes; if (time instanceof Date) { inst.hours = time.getHours(); inst.minutes = time.getMinutes(); } else { var time = this.parseTime(inst, time); inst.hours = time.hours; inst.minutes = time.minutes; } if ((origHours != inst.hours || origMinutes != inst.minutes) && !noChange) { inst.input.trigger('change'); } this._updateTimepicker(inst); this._updateSelectedValue(inst); }, /* Return the current time, ready to be parsed, rounded to the closest 5 minute */ _getCurrentTimeRounded: function (inst) { var currentTime = new Date(), currentMinutes = currentTime.getMinutes(), // round to closest 5 adjustedMinutes = Math.round( currentMinutes / 5 ) * 5; currentTime.setMinutes(adjustedMinutes); return currentTime; }, /* * Parse a time string into hours and minutes */ parseTime: function (inst, timeVal) { var retVal = new Object(); retVal.hours = -1; retVal.minutes = -1; if(!timeVal) return ''; var timeSeparator = this._get(inst, 'timeSeparator'), amPmText = this._get(inst, 'amPmText'), showHours = this._get(inst, 'showHours'), showMinutes = this._get(inst, 'showMinutes'), optionalMinutes = this._get(inst, 'optionalMinutes'), showPeriod = (this._get(inst, 'showPeriod') == true), p = timeVal.indexOf(timeSeparator); // check if time separator found if (p != -1) { retVal.hours = parseInt(timeVal.substr(0, p), 10); retVal.minutes = parseInt(timeVal.substr(p + 1), 10); } // check for hours only else if ( (showHours) && ( !showMinutes || optionalMinutes ) ) { retVal.hours = parseInt(timeVal, 10); } // check for minutes only else if ( ( ! showHours) && (showMinutes) ) { retVal.minutes = parseInt(timeVal, 10); } if (showHours) { var timeValUpper = timeVal.toUpperCase(); if ((retVal.hours < 12) && (showPeriod) && (timeValUpper.indexOf(amPmText[1].toUpperCase()) != -1)) { retVal.hours += 12; } // fix for 12 AM if ((retVal.hours == 12) && (showPeriod) && (timeValUpper.indexOf(amPmText[0].toUpperCase()) != -1)) { retVal.hours = 0; } } return retVal; }, selectNow: function(event) { var id = $(event.target).attr("data-timepicker-instance-id"), $target = $(id), inst = this._getInst($target[0]); //if (!inst || (input && inst != $.data(input, PROP_NAME))) { return; } var currentTime = new Date(); inst.hours = currentTime.getHours(); inst.minutes = currentTime.getMinutes(); this._updateSelectedValue(inst); this._updateTimepicker(inst); this._hideTimepicker(); }, deselectTime: function(event) { var id = $(event.target).attr("data-timepicker-instance-id"), $target = $(id), inst = this._getInst($target[0]); inst.hours = -1; inst.minutes = -1; this._updateSelectedValue(inst); this._hideTimepicker(); }, selectHours: function (event) { var $td = $(event.currentTarget), id = $td.attr("data-timepicker-instance-id"), newHours = parseInt($td.attr("data-hour")), fromDoubleClick = event.data.fromDoubleClick, $target = $(id), inst = this._getInst($target[0]), showMinutes = (this._get(inst, 'showMinutes') == true); // don't select if disabled if ( $.timepicker._isDisabledTimepicker($target.attr('id')) ) { return false } $td.parents('.ui-timepicker-hours:first').find('a').removeClass('ui-state-active'); $td.children('a').addClass('ui-state-active'); inst.hours = newHours; // added for onMinuteShow callback var onMinuteShow = this._get(inst, 'onMinuteShow'); if (onMinuteShow) { // this will trigger a callback on selected hour to make sure selected minute is allowed. this._updateMinuteDisplay(inst); } this._updateSelectedValue(inst); inst._hoursClicked = true; if ((inst._minutesClicked) || (fromDoubleClick) || (showMinutes == false)) { $.timepicker._hideTimepicker(); } // return false because if used inline, prevent the url to change to a hashtag return false; }, selectMinutes: function (event) { var $td = $(event.currentTarget), id = $td.attr("data-timepicker-instance-id"), newMinutes = parseInt($td.attr("data-minute")), fromDoubleClick = event.data.fromDoubleClick, $target = $(id), inst = this._getInst($target[0]), showHours = (this._get(inst, 'showHours') == true); // don't select if disabled if ( $.timepicker._isDisabledTimepicker($target.attr('id')) ) { return false } $td.parents('.ui-timepicker-minutes:first').find('a').removeClass('ui-state-active'); $td.children('a').addClass('ui-state-active'); inst.minutes = newMinutes; this._updateSelectedValue(inst); inst._minutesClicked = true; if ((inst._hoursClicked) || (fromDoubleClick) || (showHours == false)) { $.timepicker._hideTimepicker(); // return false because if used inline, prevent the url to change to a hashtag return false; } // return false because if used inline, prevent the url to change to a hashtag return false; }, _updateSelectedValue: function (inst) { var newTime = this._getParsedTime(inst); if (inst.input) { inst.input.val(newTime); inst.input.trigger('change'); } var onSelect = this._get(inst, 'onSelect'); if (onSelect) { onSelect.apply((inst.input ? inst.input[0] : null), [newTime, inst]); } // trigger custom callback this._updateAlternate(inst, newTime); return newTime; }, /* this function process selected time and return it parsed according to instance options */ _getParsedTime: function(inst) { if (inst.hours == -1 && inst.minutes == -1) { return ''; } // default to 0 AM if hours is not valid if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; } // default to 0 minutes if minute is not valid if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; } var period = "", showPeriod = (this._get(inst, 'showPeriod') == true), showLeadingZero = (this._get(inst, 'showLeadingZero') == true), showHours = (this._get(inst, 'showHours') == true), showMinutes = (this._get(inst, 'showMinutes') == true), optionalMinutes = (this._get(inst, 'optionalMinutes') == true), amPmText = this._get(inst, 'amPmText'), selectedHours = inst.hours ? inst.hours : 0, selectedMinutes = inst.minutes ? inst.minutes : 0, displayHours = selectedHours ? selectedHours : 0, parsedTime = ''; // fix some display problem when hours or minutes are not selected yet if (displayHours == -1) { displayHours = 0 } if (selectedMinutes == -1) { selectedMinutes = 0 } if (showPeriod) { if (inst.hours == 0) { displayHours = 12; } if (inst.hours < 12) { period = amPmText[0]; } else { period = amPmText[1]; if (displayHours > 12) { displayHours -= 12; } } } var h = displayHours.toString(); if (showLeadingZero && (displayHours < 10)) { h = '0' + h; } var m = selectedMinutes.toString(); if (selectedMinutes < 10) { m = '0' + m; } if (showHours) { parsedTime += h; } if (showHours && showMinutes && (!optionalMinutes || m != 0)) { parsedTime += this._get(inst, 'timeSeparator'); } if (showMinutes && (!optionalMinutes || m != 0)) { parsedTime += m; } if (showHours) { if (period.length > 0) { parsedTime += this._get(inst, 'periodSeparator') + period; } } return parsedTime; }, /* Update any alternate field to synchronise with the main field. */ _updateAlternate: function(inst, newTime) { var altField = this._get(inst, 'altField'); if (altField) { // update alternate field too $(altField).each(function(i,e) { $(e).val(newTime); }); } }, _getTimeAsDateTimepicker: function(input) { var inst = this._getInst(input); if (inst.hours == -1 && inst.minutes == -1) { return ''; } // default to 0 AM if hours is not valid if ((inst.hours < inst.hours.starts) || (inst.hours > inst.hours.ends )) { inst.hours = 0; } // default to 0 minutes if minute is not valid if ((inst.minutes < inst.minutes.starts) || (inst.minutes > inst.minutes.ends)) { inst.minutes = 0; } return new Date(0, 0, 0, inst.hours, inst.minutes, 0); }, /* This might look unused but it's called by the $.fn.timepicker function with param getTime */ /* added v 0.2.3 - gitHub issue #5 - Thanks edanuff */ _getTimeTimepicker : function(input) { var inst = this._getInst(input); return this._getParsedTime(inst); }, _getHourTimepicker: function(input) { var inst = this._getInst(input); if ( inst == undefined) { return -1; } return inst.hours; }, _getMinuteTimepicker: function(input) { var inst= this._getInst(input); if ( inst == undefined) { return -1; } return inst.minutes; } }); /* Invoke the timepicker functionality. @param options string - a command, optionally followed by additional parameters or Object - settings for attaching new timepicker functionality @return jQuery object */ $.fn.timepicker = function (options) { /* Initialise the time picker. */ if (!$.timepicker.initialized) { $(document).mousedown($.timepicker._checkExternalClick). find('body').append($.timepicker.tpDiv); $.timepicker.initialized = true; } var otherArgs = Array.prototype.slice.call(arguments, 1); if (typeof options == 'string' && (options == 'getTime' || options == 'getTimeAsDate' || options == 'getHour' || options == 'getMinute' )) return $.timepicker['_' + options + 'Timepicker']. apply($.timepicker, [this[0]].concat(otherArgs)); if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') return $.timepicker['_' + options + 'Timepicker']. apply($.timepicker, [this[0]].concat(otherArgs)); return this.each(function () { typeof options == 'string' ? $.timepicker['_' + options + 'Timepicker']. apply($.timepicker, [this].concat(otherArgs)) : $.timepicker._attachTimepicker(this, options); }); }; /* jQuery extend now ignores nulls! */ function extendRemove(target, props) { $.extend(target, props); for (var name in props) if (props[name] == null || props[name] == undefined) target[name] = props[name]; return target; }; $.timepicker = new Timepicker(); // singleton instance $.timepicker.initialized = false; $.timepicker.uuid = new Date().getTime(); $.timepicker.version = "0.3.2"; // Workaround for #4055 // Add another global to avoid noConflict issues with inline event handlers window['TP_jQuery_' + tpuuid] = $; })(jQuery);rails_admin-0.7.0/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js0000644000076400007640000002274712570225417027224 0ustar pravipravi/* * RailsAdmin filtering multiselect @VERSION * * License * * http://www.railsadmin.org * * Depends: * jquery.ui.core.js * jquery.ui.widget.js */ (function($) { $.widget("ra.filteringMultiselect", { _cache: {}, options: { createQuery: function(query) { return { query: query }; }, sortable: false, regional: { up: "Up", down: "Down", add: "Add", chooseAll: "Choose all", chosen: "Chosen records", clearAll: "Clear all", remove: "Remove" }, searchDelay: 400, remote_source: null, xhr: false }, _create: function() { this._cache = {}; this._build(); this._buildCache(); this._bindEvents(); }, _build: function() { var i; this.wrapper = $('
      '); this.wrapper.insertAfter(this.element); this.header = $('
      '); this.filter = $(''); this.header.append(this.filter); this.wrapper.append(this.header); this.columns = { left: $('
      '), center: $('
      '), right: $('
      ') }; for (i in this.columns) { if (this.columns.hasOwnProperty(i)) { this.wrapper.append(this.columns[i]); } } this.collection = $(''); this.collection.addClass("form-control ra-multiselect-collection"); this.addAll = $('' + this.options.regional.chooseAll + ''); this.columns.left.html(this.collection) .append(this.addAll); this.collection.wrap('
      '); this.add = $('' + this.options.regional.add + ''); this.remove = $('' + this.options.regional.remove + ''); this.columns.center.append(this.add).append(this.remove) if (this.options.sortable) { this.up = $('' + this.options.regional.up + ''); this.down = $('' + this.options.regional.down + ''); this.columns.center.append(this.up).append(this.down); } this.selection = $(''); this.removeAll = $('' + this.options.regional.clearAll + ''); this.columns.right.append(this.selection) .append(this.removeAll); this.selection.wrap('
      '); this.element.css({display: "none"}); this.tooManyObjectsPlaceholder = $('').attr('value', matches[i].id).attr('title', matches[i].label).text(matches[i].label) ); } } else { widget.collection.html(widget.noObjectsPlaceholder); } }); }, _buildCache: function(options) { var widget = this; this.element.find("option").each(function(i, option) { if (option.selected) { widget._cache[option.value] = option.innerHTML; $(option).clone().appendTo(widget.selection).attr("selected", false).attr("title", $(option).text()); } else { widget._cache[option.value] = option.innerHTML; $(option).clone().appendTo(widget.collection).attr("selected", false).attr("title", $(option).text()); } }); }, _deSelect: function(options) { var widget = this; options.each(function(i, option) { widget.element.find('option[value="' + option.value + '"]').removeAttr("selected"); }); $(options).appendTo(this.collection).attr('selected', false); }, _query: function(query, success) { var i, matches = []; if (query === "") { if (!this.options.xhr) { for (i in this._cache) { if (this._cache.hasOwnProperty(i)) { matches.push({id: i, label: this._cache[i]}); } } success.apply(this, [matches]); } else { this.collection.html(this.tooManyObjectsPlaceholder); } } else { if (this.options.xhr) { $.ajax({ beforeSend: function(xhr) { xhr.setRequestHeader("Accept", "application/json"); }, url: this.options.remote_source, data: this.options.createQuery(query), success: success }); } else { query = new RegExp(query + '.*', 'i'); for (i in this._cache) { if (this._cache.hasOwnProperty(i) && query.test(this._cache[i])) { matches.push({id: i, label: this._cache[i]}); } } success.apply(this, [matches]); } } }, _select: function(options) { var widget = this; options.each(function(i, option) { var el = widget.element.find('option[value="' + option.value + '"]'); if (el.length) { el.attr("selected", "selected"); } else { widget.element.append($('').attr('value', option.value).attr('selected', "selected")); } }); $(options).appendTo(this.selection).attr('selected', false); }, _move: function(direction, options) { var widget = this; if(direction == 'up') { options.each(function(i, option) { var prev = $(option).prev(); if (prev.length > 0) { var el = widget.element.find('option[value="' + option.value + '"]'); var el_prev = widget.element.find('option[value="' + prev[0].value + '"]'); el_prev.before(el); prev.before($(option)); } }); } else { $.fn.reverse = [].reverse; // needed to lower last items first options.reverse().each(function(i, option) { var next = $(option).next(); if (next.length > 0) { var el = widget.element.find('option[value="' + option.value + '"]'); var el_next = widget.element.find('option[value="' + next[0].value + '"]'); el_next.after(el); next.after($(option)); } }); } }, selected: function(value) { return this.element.find('option[value="' + value + '"]').attr("selected"); }, destroy: function() { this.wrapper.remove(); this.element.css({display: "inline"}); $.Widget.prototype.destroy.apply(this, arguments); } }); })(jQuery); rails_admin-0.7.0/app/assets/javascripts/rails_admin/rails_admin.js0000644000076400007640000000154412570225417024562 0ustar pravipravi//= require 'jquery' //= require 'jquery_ujs' //= require 'rails_admin/jquery.remotipart.fixed' //= require 'jquery-ui/effect' //= require 'jquery-ui/sortable' //= require 'jquery-ui/autocomplete' //= require 'jquery-ui/datepicker' //= require 'rails_admin/jquery.ui.timepicker' //= require 'rails_admin/ra.datetimepicker' //= require 'rails_admin/jquery.colorpicker' //= require 'rails_admin/ra.filter-box' //= require 'rails_admin/ra.filtering-multiselect' //= require 'rails_admin/ra.filtering-select' //= require 'rails_admin/ra.remote-form' //= require 'rails_admin/jquery.pjax' //= require 'jquery_nested_form' //= require 'rails_admin/ra.nested-form-hooks' //= require 'rails_admin/ra.i18n' //= require 'rails_admin/bootstrap/bootstrap' //= require 'rails_admin/ra.widgets' //= require 'rails_admin/ui' //= require 'rails_admin/custom/ui' rails_admin-0.7.0/app/assets/javascripts/rails_admin/ra.i18n.coffee0000644000076400007640000000027712570225417024275 0ustar pravipraviclass @RailsAdmin @RailsAdmin.I18n = class Locale @init: (@locale)-> @t:(key) -> humanize = key.charAt(0).toUpperCase() + key.replace(/_/g, " ").slice(1) @locale[key] || humanize rails_admin-0.7.0/app/assets/javascripts/rails_admin/ui.coffee0000644000076400007640000000746312570225417023536 0ustar pravipravi$ = jQuery $(document).on "click", "#list input.toggle", -> $("#list [name='bulk_ids[]']").prop "checked", $(this).is(":checked") $(document).on 'click', '.pjax', (event) -> if event.which > 1 || event.metaKey || event.ctrlKey return else if $.support.pjax event.preventDefault() $.pjax container: $(this).data('pjax-container') || '[data-pjax-container]' url: $(this).data('href') || $(this).attr('href') timeout: 2000 else if $(this).data('href') # not a native #href, need some help window.location = $(this).data('href') $(document).on 'submit', '.pjax-form', (event) -> if $.support.pjax event.preventDefault() $.pjax container: $(this).data('pjax-container') || '[data-pjax-container]' url: this.action + (if (this.action.indexOf('?') != -1) then '&' else '?') + $(this).serialize() timeout: 2000 $(document) .on 'pjax:start', -> $('#loading').show() .on 'pjax:end', -> $('#loading').hide() $(document).on 'click', '[data-target]', -> if !$(this).hasClass('disabled') if $(this).has('i.icon-chevron-down').length $(this).removeClass('active').children('i').toggleClass('icon-chevron-down icon-chevron-right') $($(this).data('target')).select(':visible').hide('slow') else if $(this).has('i.icon-chevron-right').length $(this).addClass('active').children('i').toggleClass('icon-chevron-down icon-chevron-right') $($(this).data('target')).select(':hidden').show('slow') $(document).on 'click', '.form-horizontal legend', -> if $(this).has('i.icon-chevron-down').length $(this).siblings('.control-group:visible').hide('slow') $(this).children('i').toggleClass('icon-chevron-down icon-chevron-right') else if $(this).has('i.icon-chevron-right').length $(this).siblings('.control-group:hidden').show('slow') $(this).children('i').toggleClass('icon-chevron-down icon-chevron-right') $(document).on 'click', 'form .tab-content .tab-pane a.remove_nested_one_fields', -> $(this).children('input[type="hidden"]').val($(this).hasClass('active')). siblings('i').toggleClass('icon-check icon-trash') $(document).ready -> $(document).trigger('rails_admin.dom_ready') $(document).on 'pjax:end', -> $(document).trigger('rails_admin.dom_ready') $(document).on 'rails_admin.dom_ready', -> $('.animate-width-to').each -> length = $(this).data("animate-length") width = $(this).data("animate-width-to") $(this).animate(width: width, length, 'easeOutQuad') $('.form-horizontal legend').has('i.icon-chevron-right').each -> $(this).siblings('.control-group').hide() $(".table").tooltip selector: "th[rel=tooltip]" # Workaround for jquery-ujs formnovalidate issue: # https://github.com/rails/jquery-ujs/issues/316 $('[formnovalidate]').on 'click', -> $(this).closest('form').attr('novalidate', true) $(document).on 'click', '#fields_to_export label input#check_all', () -> elems = $('#fields_to_export label input') if $('#fields_to_export label input#check_all').is ':checked' $(elems).prop('checked', true) else $(elems).prop('checked',false) # when the user hits the back button, the inline JS