Class: ErpApp::Desktop::UserManagement::ApplicationManagementController

Inherits:
BaseController show all
Defined in:
app/controllers/erp_app/desktop/user_management/application_management_controller.rb

Instance Method Summary collapse

Methods inherited from BaseController

#delete, #get_details, #index, #new

Methods inherited from BaseController

#index

Instance Method Details

#available_applicationsObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/controllers/erp_app/desktop/user_management/application_management_controller.rb', line 6

def available_applications
  user_id = params[:user_id]
  desktop_applications = params[:desktop_applications].present?

  user = User.find(user_id)

  if desktop_applications
    accessible_applications = Application.tools.scope_by_dba(current_user.party.dba_organization)

    current_applications = user.desktop_applications
    available_applications = if current_applications.empty?
                               accessible_applications
                             else
                               accessible_applications.where("applications.id not in (#{current_applications.collect(&:id).join(',')})")
                             end
  else
    accessible_applications = Application.apps.scope_by_dba(current_user.party.dba_organization)

    current_applications = user.apps
    available_applications = if current_applications.empty?
                               accessible_applications
                             else
                               accessible_applications.where("applications.id not in (#{current_applications.collect(&:id).join(',')})")
                             end
  end

  render :json => available_applications.map { |application| {:text => application.description,
                                                              :app_id => application.id,
                                                              :iconCls => application.icon, :leaf => true} }
end

#current_applicationsObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/controllers/erp_app/desktop/user_management/application_management_controller.rb', line 37

def current_applications
  user_id = params[:user_id]
  desktop_applications = params[:desktop_applications].present?

  user = User.find(user_id)

  current_applications = if desktop_applications
                           user.desktop_applications
                         else
                           user.apps
                         end

  render :json => current_applications.map { |application| {:text => application.description,
                                                            :app_id => application.id,
                                                            :iconCls => application.icon,
                                                            :leaf => true} }
end

#save_applicationsObject



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'app/controllers/erp_app/desktop/user_management/application_management_controller.rb', line 55

def save_applications
  app_ids = params[:app_ids]
  user_id = params[:user_id]
  desktop_applications = params[:desktop_applications].present?

  user = User.find(user_id)

  if desktop_applications
    user.desktop_applications = []
  else
    user.apps = []
  end

  unless app_ids.blank?
    app_ids.each do |app_id|
      if desktop_applications
        user.desktop_applications << Application.find(app_id)
      else
        user.apps << Application.find(app_id)
      end
    end
  end
  user.save

  render :json => {:success => true, :message => 'Application(s) Saved'}
end