Sha256: e98838ed571e1d8fb7209e80af47888cdb2ac37882ca75b11b8b0481c03a3d98

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

require_dependency "dashboard-rails/application_controller"

module DashboardRails
  class WidgetsController < ApplicationController

    def load
      widget = DashboardRails::Widget.new(params[:widget_name], self.request)
      content = widget.html(params[:widget_action])
    rescue Exception => e
      content = e.message
    ensure
      render html: content, layout: false
    end

    def user
      user_id = params[:id]
      @widgets_code = DashboardRails::User.where(user_id: user_id).pluck(:widget, :action).map{|r| "#{r[0]}_#{r[1]}"}
      render partial: 'widgets_list'
    end

    def index
      @user_id = params[:user_id] || current_user.id
    end

    def save
      user_id = params[:user_id]
      widgets = params[:widgets]
      widget_name_user = []
      action_user = []
      if user_id.present? && widgets.present?
        widgets.each do |widget|
          widget_name, action = widget.split('|')
          if widget_name && action
            widget_name_user << widget_name
            action_user << action
            DashboardRails::User.find_or_create_by(widget: widget_name, action: action, user_id: user_id)
          end
        end
      end
      DashboardRails::User.where(user_id: user_id).where.not(widget: widget_name_user, action: action_user).destroy_all
      flash[:success] = 'Alterações foram salvas com sucesso!'
      redirect_to dashboard-rails_path(user_id: user_id)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dashboard-rails-1.0.0 app/controllers/dashboard-rails/widgets_controller.rb