mezuro_plugin_myprofile_controller.rb
8.45 KB
1
2
3
4
5
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
class MezuroPluginMyprofileController < ProfileController
append_view_path File.join(File.dirname(__FILE__) + '/../views')
def choose_base_tool
@configuration_name = params[:configuration_name]
@tool_names = Kalibro::Client::BaseToolClient.new
end
def choose_metric
@configuration_name = params[:configuration_name]
@collector_name = params[:collector_name]
@collector = Kalibro::Client::BaseToolClient.new.base_tool(@collector_name)
end
def new_metric_configuration
metric_name = params[:metric_name]
collector_name = params[:collector_name]
collector = Kalibro::Client::BaseToolClient.new.base_tool(collector_name)
@metric = collector.supported_metrics.find {|metric| metric.name == metric_name}
@configuration_name = params[:configuration_name]
end
def new_compound_metric_configuration
@configuration_name = params[:configuration_name]
@metric_configurations = Kalibro::Client::ConfigurationClient.new.configuration(@configuration_name).metric_configurations
end
def edit_metric_configuration
metric_name = params[:metric_name]
@configuration_name = params[:configuration_name]
@metric_configuration = Kalibro::Client::MetricConfigurationClient.new.metric_configuration(@configuration_name, metric_name)
@metric = @metric_configuration.metric
end
def edit_compound_metric_configuration
metric_name = params[:metric_name]
@configuration_name = params[:configuration_name]
@metric_configuration = Kalibro::Client::MetricConfigurationClient.new.metric_configuration(@configuration_name, metric_name)
@metric_configurations = Kalibro::Client::ConfigurationClient.new.configuration(@configuration_name).metric_configurations
@metric = @metric_configuration.metric
end
def create_metric_configuration
generic_metric_configuration_creation(new_metric_configuration_instance)
redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}"
end
def create_compound_metric_configuration
generic_metric_configuration_creation(new_compound_metric_configuration_instance)
redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}"
end
def update_metric_configuration
auxiliar_update_metric_configuration(MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE)
redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}"
end
def update_compound_metric_configuration
auxiliar_update_metric_configuration(MezuroPlugin::MetricConfigurationContent::COMPOUND_TYPE)
redirect_to "/#{profile.identifier}/#{@configuration_name.downcase.gsub(/\s/, '-')}"
end
def new_range
@metric_name = params[:metric_name]
@configuration_name = params[:configuration_name]
end
def edit_range
@metric_name = params[:metric_name]
@configuration_name = params[:configuration_name]
@beginning_id = params[:beginning_id]
metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new
metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, @metric_name)
@range = metric_configuration.ranges.find{ |range| range.beginning == @beginning_id.to_f }
end
def create_range
@range = new_range_instance
configuration_name = params[:configuration_name]
metric_name = params[:metric_name]
beginning_id = params[:beginning_id]
metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new
metric_configuration = metric_configuration_client.metric_configuration(configuration_name, metric_name)
metric_configuration.add_range(@range)
metric_configuration_client.save(metric_configuration, configuration_name)
end
def update_range
metric_name = params[:metric_name]
configuration_name = params[:configuration_name]
beginning_id = params[:beginning_id]
metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new
metric_configuration = metric_configuration_client.metric_configuration(configuration_name, metric_name)
index = metric_configuration.ranges.index{ |range| range.beginning == beginning_id.to_f }
metric_configuration.ranges[index] = new_range_instance
Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, configuration_name)
end
def remove_range
configuration_name = params[:configuration_name]
metric_name = params[:metric_name]
beginning_id = params[:range_beginning]
metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new
metric_configuration = metric_configuration_client.metric_configuration(configuration_name, metric_name)
metric_configuration.ranges.delete_if { |range| range.beginning == beginning_id.to_f }.inspect
Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, configuration_name)
formatted_configuration_name = configuration_name.gsub(/\s/, '+')
formatted_metric_name = metric_name.gsub(/\s/, '+')
if metric_configuration.metric.class == Kalibro::Entities::CompoundMetric
redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_compound_metric_configuration?configuration_name=#{formatted_configuration_name}&metric_name=#{formatted_metric_name}"
else
redirect_to "/myprofile/#{profile.identifier}/plugin/mezuro/edit_metric_configuration?configuration_name=#{formatted_configuration_name}&metric_name=#{formatted_metric_name}"
end
end
def remove_metric_configuration
configuration_name = params[:configuration_name]
metric_name = params[:metric_name]
Kalibro::Client::MetricConfigurationClient.new.remove(configuration_name, metric_name)
redirect_to "/#{profile.identifier}/#{configuration_name.downcase.gsub(/\s/, '-')}"
end
private
def new_metric_configuration_instance
metric_configuration = Kalibro::Entities::MetricConfiguration.new
metric_configuration.metric = Kalibro::Entities::NativeMetric.new
assign_metric_configuration_instance(metric_configuration, MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE)
end
def new_compound_metric_configuration_instance
metric_configuration = Kalibro::Entities::MetricConfiguration.new
metric_configuration.metric = Kalibro::Entities::CompoundMetric.new
assign_metric_configuration_instance(metric_configuration, MezuroPlugin::MetricConfigurationContent::COMPOUND_TYPE)
end
def assign_metric_configuration_instance(metric_configuration, type=MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE)
metric_configuration.metric.name = params[:metric_configuration][:metric][:name]
metric_configuration.metric.description = params[:metric_configuration][:metric][:description]
metric_configuration.metric.scope = params[:metric_configuration][:metric][:scope]
metric_configuration.code = params[:metric_configuration][:code]
metric_configuration.weight = params[:metric_configuration][:weight]
metric_configuration.aggregation_form = params[:metric_configuration][:aggregation_form]
if type == MezuroPlugin::MetricConfigurationContent::NATIVE_TYPE
metric_configuration.metric.origin = params[:metric_configuration][:metric][:origin]
metric_configuration.metric.language = params[:metric_configuration][:metric][:language]
elsif type == MezuroPlugin::MetricConfigurationContent::COMPOUND_TYPE
metric_configuration.metric.script = params[:metric_configuration][:metric][:script]
end
end
def generic_metric_configuration_creation(metric_configuration)
@configuration_name = params[:configuration_name]
Kalibro::Client::MetricConfigurationClient.new.save(metric_configuration, @configuration_name)
end
def auxiliar_update_metric_configuration(type)
@configuration_name = params[:configuration_name]
metric_name = params[:metric_configuration][:metric][:name]
metric_configuration_client = Kalibro::Client::MetricConfigurationClient.new
metric_configuration = metric_configuration_client.metric_configuration(@configuration_name, metric_name)
metric_configuration = assign_metric_configuration_instance(metric_configuration, type)
metric_configuration_client.save(metric_configuration, @configuration_name)
end
def new_range_instance
range = Kalibro::Entities::Range.new
range.beginning = params[:range][:beginning]
range.end = params[:range][:end]
range.label = params[:range][:label]
range.grade = params[:range][:grade]
range.color = params[:range][:color]
range.comments = params[:range][:comments]
range
end
end