Sha256: 1c422095660bc46ef63bc6ef29e0a8ee7ea1610952bff5659f6fd045798c2ea4

Contents?: true

Size: 1.55 KB

Versions: 61

Compression:

Stored size: 1.55 KB

Contents

module RocketCMS
  module Menu
    class << self
      def get_menus
        Rails.cache.fetch 'menus', expires_in: 10.minutes do
          if RocketCMS.mongoid?
            ::Menu.all.map { |m| {id: m.id.to_s, name: m.name } }
          else
            ::Menu.all.map { |m| {id: m.id, name: m.name } }
          end
        end
      end

      def btn_js
        <<-END.strip_heredoc.gsub("\n", ' ').gsub(/ +/, ' ')
          var $t = $(this);
          $.ajax({
            type: "POST",
            url: $t.attr("href"),
            data: {ajax: true},
            success: function(r) {
              $t.attr("href", r.href);
              $t.removeClass("btn-success btn-danger");
              $t.addClass(r.class);
            },
            error: function(e) {
              alert(e.responseText);
            }
          });
          return false;
        END
      end

      def build_toggles(view, model, obj, btn_size, btn_style = '')
        ret = []
        get_menus.each do |m|
          if RocketCMS.mongoid?
            on = obj.menu_ids.include?(BSON::ObjectId.from_string(m[:id]))
          else
            on = obj.menu_ids.include?(m[:id].to_i)
          end
          ret << view.link_to(
            m[:name],
            view.toggle_menu_path(model_name: model, id: obj.id, menu: m[:id], on: !on),
            #method: :post,
            title: m[:name],
            class: "btn btn-#{btn_size} #{on ? "btn-success" : "btn-danger"}",
            style: btn_style,
            onclick: btn_js
          )
        end
        ret
      end
    end
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
rocket_cms-0.37.1 lib/rocket_cms/menu.rb
rocket_cms-0.37.0 lib/rocket_cms/menu.rb
rocket_cms-0.36.0 lib/rocket_cms/menu.rb
rocket_cms-0.35.0 lib/rocket_cms/menu.rb
rocket_cms-0.34.0 lib/rocket_cms/menu.rb
rocket_cms-0.33.1 lib/rocket_cms/menu.rb
rocket_cms-0.33.0 lib/rocket_cms/menu.rb
rocket_cms-0.32.0 lib/rocket_cms/menu.rb
rocket_cms-0.31.1 lib/rocket_cms/menu.rb
rocket_cms-0.31.0 lib/rocket_cms/menu.rb
rocket_cms-0.30.0 lib/rocket_cms/menu.rb
rocket_cms-0.29.0 lib/rocket_cms/menu.rb
rocket_cms-0.28.0 lib/rocket_cms/menu.rb
rocket_cms-0.27.8 lib/rocket_cms/menu.rb
rocket_cms-0.27.7 lib/rocket_cms/menu.rb
rocket_cms-0.27.6 lib/rocket_cms/menu.rb
rocket_cms-0.27.5 lib/rocket_cms/menu.rb
rocket_cms-0.27.4 lib/rocket_cms/menu.rb
rocket_cms-0.27.3 lib/rocket_cms/menu.rb
rocket_cms-0.27.2 lib/rocket_cms/menu.rb