mountain-goat 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mountain_goat/public/mg.css +75 -3
- data/lib/mountain_goat/public/mg.js +15 -0
- data/lib/mountain_goat/version.rb +1 -1
- data/lib/mountain_goat/views/mountain_goat/layouts/mountain_goat.html.erb +1 -0
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/_convert_form.html.erb +2 -2
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/edit.html.erb +1 -1
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/index.html.erb +2 -2
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/show.html.erb +41 -27
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/_metric_variant_form.html.erb +16 -12
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/edit.html.erb +1 -1
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/new.html.erb +1 -1
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/show.html.erb +24 -6
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/_metric_form.html.erb +2 -2
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/edit.html.erb +1 -1
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/index.html.erb +5 -19
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/show.html.erb +1 -1
- data/mountain-goat-0.0.5.gem +0 -0
- metadata +6 -11
- data/lib/mountain_goat/views/mountain_goat/layouts/.tmp_mountain_goat.html.erb.2801~ +0 -53
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/.tmp_index.html.erb.67861~ +0 -33
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/.tmp_index.html.erb.97796~ +0 -49
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/.tmp__metric_variant_form.html.erb.87465~ +0 -27
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/.tmp_show.html.erb.24381~ +0 -14
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/.tmp_show.html.erb.21427~ +0 -59
- data/lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/.tmp_show.html.erb.65988~ +0 -59
@@ -82,6 +82,8 @@ a:hover {
|
|
82
82
|
background: url(/mg/public/containerbg_png);
|
83
83
|
min-height: 520px;
|
84
84
|
padding: 30px;
|
85
|
+
display: inline-block;
|
86
|
+
width: 900px;
|
85
87
|
}
|
86
88
|
|
87
89
|
h1 {
|
@@ -120,7 +122,7 @@ h1 {
|
|
120
122
|
margin-top: 50px;
|
121
123
|
}
|
122
124
|
|
123
|
-
.conversions .converts h2 {
|
125
|
+
.conversions .converts h2, h2 {
|
124
126
|
padding: 6px 18px;
|
125
127
|
width: 40%;
|
126
128
|
margin: 10px auto 10px auto;
|
@@ -132,7 +134,8 @@ h1 {
|
|
132
134
|
width: 100%;
|
133
135
|
}
|
134
136
|
|
135
|
-
.mt-metrics .metric-category {
|
137
|
+
.mt-metrics .metric-category, .mt-converts.show .metric-category {
|
138
|
+
float: left;
|
136
139
|
padding: 50px 0;
|
137
140
|
}
|
138
141
|
|
@@ -204,10 +207,19 @@ h1 {
|
|
204
207
|
}
|
205
208
|
|
206
209
|
.button {
|
210
|
+
height: 30px;
|
211
|
+
}
|
212
|
+
|
213
|
+
form input[type='submit'] {
|
214
|
+
width: 170px;
|
215
|
+
height: 40px;
|
216
|
+
padding-top:0px;
|
217
|
+
}
|
218
|
+
|
219
|
+
.button, input[type="submit"] {
|
207
220
|
display: block;
|
208
221
|
color: white;
|
209
222
|
width: 170px;
|
210
|
-
height: 30px;
|
211
223
|
font-size: 20px;
|
212
224
|
box-shadow: 0px 0px 3px rgba(222,222,222,0.2) inset;
|
213
225
|
margin-right: 6px;
|
@@ -332,3 +344,63 @@ h1 {
|
|
332
344
|
font-size: 12px;
|
333
345
|
}
|
334
346
|
|
347
|
+
input[type="text"], input[type="password"] {
|
348
|
+
background: url("/images/bg-input-shadow.jpg") repeat-x scroll left top #F7F7F7;
|
349
|
+
border: 1px solid #CCCCCC;
|
350
|
+
display: block;
|
351
|
+
padding: 5px 9px 0;
|
352
|
+
width: 280px;
|
353
|
+
height: 32px;
|
354
|
+
color: #777777;
|
355
|
+
font-size: 16px;
|
356
|
+
}
|
357
|
+
input[type="text"]:focus, input[type="password"]:focus {
|
358
|
+
background-color: #DDEEFF;
|
359
|
+
border: 1px solid #AACCFF;
|
360
|
+
color: #333333;
|
361
|
+
}
|
362
|
+
textarea {
|
363
|
+
background: #F7F7F7;
|
364
|
+
border: 1px solid #CCCCCC;
|
365
|
+
display: block;
|
366
|
+
padding: 5px 0px 0px 9px;
|
367
|
+
width: 289px;
|
368
|
+
height: 60px;
|
369
|
+
color: #666666;
|
370
|
+
font: 14px Calibri,Helvetica,Arial;
|
371
|
+
}
|
372
|
+
|
373
|
+
label {
|
374
|
+
color: #999999;
|
375
|
+
display: block;
|
376
|
+
font-size: 16px;
|
377
|
+
margin: 5px 0 2px;
|
378
|
+
text-transform: uppercase;
|
379
|
+
}
|
380
|
+
|
381
|
+
input[type="checkbox"]{
|
382
|
+
float: left;
|
383
|
+
margin-top: 5px;
|
384
|
+
margin-left:20px;
|
385
|
+
}
|
386
|
+
input[type="checkbox"] + label {
|
387
|
+
margin: 0px 0px 0px 6px;
|
388
|
+
float: left;
|
389
|
+
clear: right;
|
390
|
+
height: 30px;
|
391
|
+
}
|
392
|
+
|
393
|
+
.item {
|
394
|
+
clear: left;
|
395
|
+
margin: 20px;
|
396
|
+
}
|
397
|
+
|
398
|
+
.item.priority input {
|
399
|
+
width: 25px;
|
400
|
+
}
|
401
|
+
|
402
|
+
.mt-metrics form, .mt-metric-variants form, .mt-converts form {
|
403
|
+
width: 400px;
|
404
|
+
margin: 0 auto;
|
405
|
+
padding-right: 200px;
|
406
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/**
|
2
|
+
* @author Geoff
|
3
|
+
*/
|
4
|
+
|
5
|
+
(function() {
|
6
|
+
$(document).ready(function () {
|
7
|
+
$('input.slider[type="checkbox"]').change(function() {
|
8
|
+
if ($(this).is(':checked')) {
|
9
|
+
$($(this).data('slider')).slideDown();
|
10
|
+
} else {
|
11
|
+
$($(this).data('slider')).slideUp();
|
12
|
+
}
|
13
|
+
}).change();
|
14
|
+
});
|
15
|
+
})();
|
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
|
20
20
|
<script src="/mg/public/jquery_flot_js" type="text/javascript"></script>
|
21
|
+
<script src="/mg/public/mg_js" type="text/javascript"></script>
|
21
22
|
|
22
23
|
</head>
|
23
24
|
|
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
<% if f.object.new_record? %>
|
4
4
|
<div class="item type">
|
5
|
-
<%= f.label :convert_type, 'Type' %><br />
|
5
|
+
<%= f.label :convert_type, 'Type (this is technical)' %><br />
|
6
6
|
<%= f.text_field :convert_type %>
|
7
7
|
</div>
|
8
8
|
<% else %>
|
9
|
-
<
|
9
|
+
<h2><%= f.object.convert_type %></h2>
|
10
10
|
<% end %>
|
11
11
|
|
12
12
|
<div class="item name">
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<div id="container-main" class="mt-converts">
|
4
4
|
<div class="mountain-goat-panel centered">
|
5
|
-
<
|
5
|
+
<h1>Edit <%=h @convert.name %></h1>
|
6
6
|
|
7
7
|
<% form_for :convert, @convert, :url => mountain_goat_convert_url(:id => @convert.id), :html => { :method => :put } do |f| %>
|
8
8
|
<%= f.error_messages %>
|
@@ -3,35 +3,39 @@
|
|
3
3
|
<% def chart(*args); 'Please install Flotilla plugin (http://flotilla.rubyforge.org/) for charts'; end; %>
|
4
4
|
<% end %>
|
5
5
|
|
6
|
-
<div id="container-main" class="mt-converts">
|
6
|
+
<div id="container-main" class="mt-converts show">
|
7
7
|
<div class="mountain-goat-panel centered">
|
8
|
-
<
|
9
|
-
|
8
|
+
<ul class="nav">
|
9
|
+
<li><a href="<%= mountain_goat_converts_url %>">Goals</a></li>
|
10
|
+
<li><a href="<%= mountain_goat_convert_url @convert.id %>"><%=h @convert.name %> Goal</a></li>
|
11
|
+
</ul>
|
10
12
|
|
11
|
-
<
|
13
|
+
<h1><%=h @convert.name %></h1>
|
12
14
|
|
13
|
-
<div class="
|
14
|
-
<div class="
|
15
|
-
<
|
15
|
+
<div class="statpads">
|
16
|
+
<div class="flyer-analysis statpad">
|
17
|
+
<div class="title">Conversions by Day</div>
|
18
|
+
<div class="statbody">
|
16
19
|
<%= chart("analysis_graph#{@convert.id}",
|
17
20
|
{ "Conversions" => { :collection => @results_per_day, :x => :date, :y => :val } },
|
18
|
-
{ :xaxis => {:
|
21
|
+
{ :xaxis => {:mode => 'time', :timeformat => "%b %d" }, :yaxis => { :min => 0, :minTickSize => 1 }, :lines => { :show => true }, :legend => { :position => "ne" }, :grid => { :hoverable => true, :clickable => true }, :inline => false }, :placeholder_size => "420x260", :pie_hover => true, :line_hover_absolute => true, :item_title => "view(s)") %>
|
22
|
+
</div>
|
19
23
|
</div>
|
20
|
-
|
24
|
+
|
21
25
|
<% @convert.convert_meta_types.each do |cmt| %>
|
22
|
-
|
23
|
-
|
24
|
-
<
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
26
|
+
<div class="flyer-analysis statpad">
|
27
|
+
<div class="title">Conversions by <%=h cmt.name %></div>
|
28
|
+
<div class="statbody">
|
29
|
+
<% if cmt.meta_type == 'ci_meta' %>
|
30
|
+
<%= chart("analysis_graph#{cmt.id}",
|
31
|
+
{ "Conversions" => { :collection => @results_by_cmt[cmt.id], :x => :name, :y => :val } },
|
32
|
+
{ :xaxis => {:autoscaleMargin => 1, :minTickSize => 1 }, :yaxis => { :min => 0, :minTickSize => 1 }, :bars => { :show => true, :align => 'center', :barWidth => 1 }, :legend => { :position => "ne" }, :grid => { :hoverable => true, :clickable => true }, :inline => false }, :placeholder_size => "420x260", :pie_hover => true, :line_hover_absolute => true, :item_title => "view(s)") %>
|
33
|
+
<% elsif cmt.meta_type == 'cs_meta' %>
|
34
|
+
<%= chart("analysis_graph#{cmt.id}",
|
35
|
+
{ "Conversions" => { :collection => @results_by_cmt[cmt.id], :x => :name, :y => :val } },
|
36
|
+
{ :xaxis => {:autoscaleMargin => 0.1, :ticks => @results_by_cmt_titles[cmt.id].map { |i,t| [i + 0.5, t] }.sort }, :yaxis => { :min => 0, :minTickSize => 1 }, :bars => { :show => true }, :legend => { :position => "ne" }, :grid => { :hoverable => true, :clickable => true }, :inline => false }, :placeholder_size => "420x260", :pie_hover => true, :line_hover_absolute => true, :item_title => "view(s)") %>
|
37
|
+
<% end %>
|
38
|
+
</div>
|
35
39
|
</div>
|
36
40
|
<% end %>
|
37
41
|
</div>
|
@@ -44,16 +48,26 @@
|
|
44
48
|
<% else %>
|
45
49
|
<% metric.metric_variants.each do |mv| %>
|
46
50
|
<div class="item rate">
|
47
|
-
<span class="
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
+
<span class="rate-holder">
|
52
|
+
<span class="title"><a href="<%= mountain_goat_metric_variant_url mv %>"><%=h mv.name %></a></span>
|
53
|
+
<span class="rates" style="width:<%= number_to_percentage(mv.conversion_rate, :precision => 0) %>"></span>
|
54
|
+
</span>
|
55
|
+
|
56
|
+
<span class="percent-holder">
|
57
|
+
<span class="val"><%= number_to_percentage(mv.conversion_rate, :precision => 0) %></span>
|
58
|
+
(<span class="conversions"><%= mv.conversions %></span> /
|
59
|
+
<span class="served"><%= mv.served %></span>)
|
60
|
+
</span>
|
51
61
|
</div>
|
52
62
|
<% end %>
|
53
63
|
<% end %>
|
54
64
|
</div>
|
55
65
|
<% end %>
|
56
66
|
|
57
|
-
<
|
67
|
+
<div class="actions">
|
68
|
+
<a class="button" href="<%= edit_mountain_goat_convert_url :id => @convert.id %>">Edit</a>
|
69
|
+
<a class="button" href="<%= new_mountain_goat_convert_mountain_goat_metric_url :mountain_goat_convert_id => @convert.id %>">New Metric</a>
|
70
|
+
</div>
|
71
|
+
|
58
72
|
</div>
|
59
73
|
</div>
|
@@ -7,29 +7,33 @@
|
|
7
7
|
<% end %>
|
8
8
|
|
9
9
|
<div class="item name">
|
10
|
-
<%= f.label :name, '
|
10
|
+
<%= f.label :name, 'Name (whatever you want)' %>
|
11
11
|
<%= f.text_field :name %>
|
12
12
|
</div>
|
13
13
|
|
14
14
|
<% if !f.object.metric.is_switch %>
|
15
15
|
<div class="item value">
|
16
|
-
<%= f.label :value, '
|
16
|
+
<%= f.label :value, 'What\'s displayed' %>
|
17
17
|
<%= f.text_area :value %>
|
18
18
|
</div>
|
19
19
|
|
20
|
-
<
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
<input type='checkbox' id="my_slider" class='slider' data-slider='.options' />
|
21
|
+
<label for="my_slider">Add optional variants</label>
|
22
|
+
<div class="options" style="display:none;">
|
23
|
+
<div class="item opt1">
|
24
|
+
<%= f.label :opt1, 'Option 1' %>
|
25
|
+
<%= f.text_area :opt1 %>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="item opt2">
|
29
|
+
<%= f.label :opt2, 'Option 2' %>
|
30
|
+
<%= f.text_area :opt2 %>
|
31
|
+
</div>
|
28
32
|
</div>
|
29
33
|
<% end %>
|
30
34
|
<div class="item priority">
|
31
|
-
<%= f.label :priority, 'Priority'
|
32
|
-
<%= f.text_field :priority %>
|
35
|
+
<%= f.label :priority, 'Priority' %>
|
36
|
+
<%= f.text_field :priority, :class => 'priority' %>
|
33
37
|
</div>
|
34
38
|
|
35
39
|
<div class="item submit">
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<div id="container-main" class="mt-metric-variants">
|
4
4
|
<div class="mountain-goat-panel centered">
|
5
|
-
<
|
5
|
+
<h1>Edit <%=h @metric_variant.name %></h1>
|
6
6
|
|
7
7
|
<% form_for :metric_variant, @metric_variant, :url => mountain_goat_metric_variant_url(:id => @metric_variant.id), :html => { :method => :put } do |f| %>
|
8
8
|
<%= f.error_messages %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<div id="container-main" class="mt-metric-variants">
|
4
4
|
<div class="mountain-goat-panel cenetered">
|
5
|
-
<
|
5
|
+
<h1>New Variant for <%=h @metric.title %></h1>
|
6
6
|
|
7
7
|
<% form_for :metric_variant, @metric_variant, :url => mountain_goat_metric_variants_url do |f| %>
|
8
8
|
<%= f.error_messages %>
|
@@ -2,13 +2,31 @@
|
|
2
2
|
|
3
3
|
<div id="container-main" class="mt-metric-variants">
|
4
4
|
<div class="mountain-goat-panel cenetered">
|
5
|
-
<
|
5
|
+
<ul class="nav">
|
6
|
+
<li><a href="<%= mountain_goat_converts_url %>">Goals</a></li>
|
7
|
+
<li><a href="<%= mountain_goat_convert_url :id => @metric_variant.metric.convert.id %>"><%=h @metric_variant.metric.convert.name %> Goal</a></li>
|
8
|
+
<li><a href="<%= mountain_goat_metric_url :id => @metric_variant.metric.id %>"><%=h @metric_variant.metric.title %></a></li>
|
9
|
+
</ul>
|
6
10
|
|
7
|
-
<
|
11
|
+
<h1><%=h @metric_variant.name %></h1>
|
8
12
|
|
9
|
-
<div class="
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
+
<div class="metric-category">
|
14
|
+
<div class="item rate">
|
15
|
+
<span class="rate-holder">
|
16
|
+
<span class="title"><a href="<%= mountain_goat_metric_variant_url @metric_variant %>"><%=h @metric_variant.name %></a></span>
|
17
|
+
<span class="rates" style="width:<%= number_to_percentage(@metric_variant.conversion_rate, :precision => 0) %>"></span>
|
18
|
+
</span>
|
19
|
+
|
20
|
+
<span class="percent-holder">
|
21
|
+
<span class="val"><%= number_to_percentage(@metric_variant.conversion_rate, :precision => 0) %></span>
|
22
|
+
(<span class="conversions"><%= @metric_variant.conversions %></span> /
|
23
|
+
<span class="served"><%= @metric_variant.served %></span>)
|
24
|
+
</span>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="actions">
|
29
|
+
<a class="button" href="<%= edit_mountain_goat_metric_variant_url :id => @metric_variant.id %>">Edit</a>
|
30
|
+
</div>
|
13
31
|
</div>
|
14
32
|
</div>
|
@@ -4,11 +4,11 @@
|
|
4
4
|
|
5
5
|
<% if f.object.new_record? %>
|
6
6
|
<div class="item metric-type">
|
7
|
-
<%= f.label :metric_type %>
|
7
|
+
<%= f.label :metric_type, 'Type (this is technical)' %>
|
8
8
|
<%= f.text_field :metric_type %>
|
9
9
|
</div>
|
10
10
|
<% else %>
|
11
|
-
<
|
11
|
+
<h2><%= f.object.metric_type %></h2>
|
12
12
|
<% end %>
|
13
13
|
|
14
14
|
<div class="item title">
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<div id="container-main" class="mt-metrics">
|
4
4
|
<div class="mountain-goat-panel centered">
|
5
|
-
<
|
5
|
+
<h1>Edit <%= @metric.title %></h1>
|
6
6
|
|
7
7
|
<% form_for :metric, @metric, :url => mountain_goat_metric_url(:id => @metric.id), :html => { :method => :put } do |f| %>
|
8
8
|
<%= f.error_messages %>
|
@@ -2,28 +2,14 @@
|
|
2
2
|
|
3
3
|
<div id="container-main" class="mt-metrics">
|
4
4
|
<div class="mountain-goat-panel">
|
5
|
-
<
|
5
|
+
<h1>All metrics</h1>
|
6
6
|
|
7
|
-
<table>
|
8
|
-
<tr>
|
9
|
-
<th>Type</th>
|
10
|
-
<th>Title</th>
|
11
|
-
<th>Convert</th>
|
12
|
-
</tr>
|
13
|
-
|
14
7
|
<% @metrics.each do |metric| %>
|
15
|
-
|
16
|
-
<td><%=h metric.metric_type %></td>
|
17
|
-
<td><%=h metric.title %></td>
|
18
|
-
<td><%=h metric.convert_id %></td>
|
19
|
-
<td><a href="<%= mountain_goat_metric_url metric %>">Details</a></td>
|
20
|
-
<td><a href="<%= edit_mountain_goat_metric_url(metric)%>">Edit</a></td>
|
21
|
-
</tr>
|
8
|
+
<h2><a href="<%= mountain_goat_metric_url metric %>"><%=h metric.title %> </a> for <%=h metric.convert.name %></h2>
|
22
9
|
<% end %>
|
23
|
-
</table>
|
24
10
|
|
25
|
-
<
|
26
|
-
|
27
|
-
|
11
|
+
<span class="actions">
|
12
|
+
<a class="button" href="<%= new_mountain_goat_metric_url %>">New metric</a>
|
13
|
+
</span>
|
28
14
|
</div>
|
29
15
|
</div>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<li><a href="<%= mountain_goat_metric_url :id => @metric.id %>"><%=h @metric.title %></a></li>
|
12
12
|
</ul>
|
13
13
|
|
14
|
-
<h1><%=h @metric.title %>
|
14
|
+
<h1><%=h @metric.title %> Metric</h1>
|
15
15
|
|
16
16
|
<div class="variants">
|
17
17
|
<% if @metric.metric_variants.count == 0 %>
|
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mountain-goat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 6
|
10
|
+
version: 0.0.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Geoffrey Hayes
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-07-
|
19
|
+
date: 2011-07-09 00:00:00 -05:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -91,29 +91,23 @@ files:
|
|
91
91
|
- lib/mountain_goat/public/dottedblue.png
|
92
92
|
- lib/mountain_goat/public/jquery.flot.js
|
93
93
|
- lib/mountain_goat/public/mg.css
|
94
|
+
- lib/mountain_goat/public/mg.js
|
94
95
|
- lib/mountain_goat/public/mg.png
|
95
96
|
- lib/mountain_goat/public/raster.png
|
96
97
|
- lib/mountain_goat/switch_variant.rb
|
97
98
|
- lib/mountain_goat/version.rb
|
98
|
-
- lib/mountain_goat/views/mountain_goat/layouts/.tmp_mountain_goat.html.erb.2801~
|
99
99
|
- lib/mountain_goat/views/mountain_goat/layouts/mountain_goat.html.erb
|
100
|
-
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/.tmp_index.html.erb.67861~
|
101
|
-
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/.tmp_index.html.erb.97796~
|
102
100
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/_convert_form.html.erb
|
103
101
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/_convert_meta_type_form.html.erb
|
104
102
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/edit.html.erb
|
105
103
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/index.html.erb
|
106
104
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/new.html.erb
|
107
105
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_converts/show.html.erb
|
108
|
-
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/.tmp__metric_variant_form.html.erb.87465~
|
109
|
-
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/.tmp_show.html.erb.24381~
|
110
106
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/_metric_variant_form.html.erb
|
111
107
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/edit.html.erb
|
112
108
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/index.html.erb
|
113
109
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/new.html.erb
|
114
110
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/show.html.erb
|
115
|
-
- lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/.tmp_show.html.erb.21427~
|
116
|
-
- lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/.tmp_show.html.erb.65988~
|
117
111
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/_metric_form.html.erb
|
118
112
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/edit.html.erb
|
119
113
|
- lib/mountain_goat/views/mountain_goat/mountain_goat_metrics/index.html.erb
|
@@ -124,6 +118,7 @@ files:
|
|
124
118
|
- mountain-goat-0.0.2.gem
|
125
119
|
- mountain-goat-0.0.3.gem
|
126
120
|
- mountain-goat-0.0.4.gem
|
121
|
+
- mountain-goat-0.0.5.gem
|
127
122
|
- mountain-goat.gemspec
|
128
123
|
has_rdoc: true
|
129
124
|
homepage: http://github.com/hayesgm/mountain-goat
|
@@ -1,53 +0,0 @@
|
|
1
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
-
|
3
|
-
<% is_mobile = false if local_assigns[:is_mobile].nil? %>
|
4
|
-
|
5
|
-
<html xmlns="http://www.w3.org/1999/xhtml">
|
6
|
-
|
7
|
-
<head>
|
8
|
-
<title>Mountain Goat <% if @title %> - <%=h @title %><% end %></title>
|
9
|
-
|
10
|
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
11
|
-
|
12
|
-
<%# These are mobile specific settings. We are disabling zooming and fixing the width. %>
|
13
|
-
<meta content='True' name='HandheldFriendly' />
|
14
|
-
<!--<meta content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;' name='viewport' />-->
|
15
|
-
<meta name="viewport" content="width=device-width" />
|
16
|
-
|
17
|
-
|
18
|
-
</head>
|
19
|
-
|
20
|
-
<body>
|
21
|
-
|
22
|
-
<% if !flash[:message].blank? %>
|
23
|
-
<div class="ocelot-flash message">
|
24
|
-
<div class="message"><%= flash[:message] %></div>
|
25
|
-
</div>
|
26
|
-
<% end %>
|
27
|
-
|
28
|
-
<% if !flash[:model].blank? %>
|
29
|
-
<div class="ocelot-flash-model model">
|
30
|
-
<div class="jqmWindow" id="dialog">
|
31
|
-
<a href="#" class="jqmClose">Close</a>
|
32
|
-
<div class="model"><%= flash[:model] %></div>
|
33
|
-
</div>
|
34
|
-
</div>
|
35
|
-
<% end %>
|
36
|
-
|
37
|
-
<% if !flash[:notice].blank? || !flash[:error].blank? %>
|
38
|
-
<div class="ocelot-flash">
|
39
|
-
<% if !flash[:error].blank? %><div class="error"><%= flash[:error] %></div><% end %>
|
40
|
-
<% if !flash[:notice].blank? %><div class="notice"><%= flash[:notice] %></div><% end %>
|
41
|
-
</div>
|
42
|
-
<% end %>
|
43
|
-
|
44
|
-
<div id="ocelot-main">
|
45
|
-
<%= yield %>
|
46
|
-
|
47
|
-
<div id="container-footer">
|
48
|
-
|
49
|
-
</div>
|
50
|
-
</div>
|
51
|
-
</body>
|
52
|
-
|
53
|
-
</html>
|
data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/.tmp_index.html.erb.67861~
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<div id="container-main" class="mt-converts">
|
4
|
-
<div class="mountain-goat-panel centered">
|
5
|
-
|
6
|
-
<h2>Conversion Goals</h2>
|
7
|
-
<span class="explanation">Below are a list of conversion goals. Each goal has a set of metrics designed to achieve that goal. For each metric, there is a list of variants, each coupled with its conversation rate.</span>
|
8
|
-
<% @converts.each do |convert| %>
|
9
|
-
<h2><a href="<%= mountain_goat_convert_url :id => convert.id %>"><%=h convert.name %></a></h2>
|
10
|
-
<% convert.metrics.each do |metric| %>
|
11
|
-
<div class="metric-category">
|
12
|
-
<span class="metric"><a href="<%= mountain_goat_metric_url :id => metric.id %>"><%= metric.title %></a></span>
|
13
|
-
<% if metric.metric_variants.count == 0 %>
|
14
|
-
<span class="none">No metric variants [<a href="<%= new_mountain_goat_metric_mountain_goat_metric_variant_url :mountain_goat_metric_id => metric.id %>">Add one</a>]</span>
|
15
|
-
<% else %>
|
16
|
-
<% metric.metric_variants.each do |mv| %>
|
17
|
-
<div class="item rate">
|
18
|
-
<span class="rates"><%=h mv.name %></span>:
|
19
|
-
<span class="conversions"><%= mv.conversions %></span> /
|
20
|
-
<span class="served"><%= mv.served %></span>
|
21
|
-
(<span class="val"><%= number_to_percentage(mv.conversion_rate, :precision => 0) %></span>)
|
22
|
-
</div>
|
23
|
-
<% end %>
|
24
|
-
<% end %>
|
25
|
-
</div>
|
26
|
-
<% end %>
|
27
|
-
<% end %>
|
28
|
-
|
29
|
-
<div class="new">
|
30
|
-
<a href="<%= new_mountain_goat_convert_url %>">New conversation type</a>
|
31
|
-
</div>
|
32
|
-
</div>
|
33
|
-
</div>
|
data/lib/mountain_goat/views/mountain_goat/mountain_goat_converts/.tmp_index.html.erb.97796~
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<div id="container-main" class="mt-converts">
|
4
|
-
<div class="mountain-goat-panel centered">
|
5
|
-
|
6
|
-
<h1>Conversion Goals</h1>
|
7
|
-
|
8
|
-
<div class="conversions">
|
9
|
-
<div class="explanation">
|
10
|
-
<span class="inner">
|
11
|
-
Below are a list of conversion goals. Each goal has a set of metrics designed to achieve that goal. For each metric, there is a list of variants, each coupled with its conversation rate.</span>
|
12
|
-
</span>
|
13
|
-
</div>
|
14
|
-
|
15
|
-
<div class="converts">
|
16
|
-
<% @converts.each do |convert| %>
|
17
|
-
<h2><a href="<%= mountain_goat_convert_url :id => convert.id %>"><%=h convert.name %></a></h2>
|
18
|
-
<% convert.metrics.each do |metric| %>
|
19
|
-
<div class="metric-category">
|
20
|
-
<span class="metric"><a href="<%= mountain_goat_metric_url :id => metric.id %>"><%= metric.title %></a></span>
|
21
|
-
<% if metric.metric_variants.count == 0 %>
|
22
|
-
<span class="none">No metric variants [<a href="<%= new_mountain_goat_metric_mountain_goat_metric_variant_url :mountain_goat_metric_id => metric.id %>">Add one</a>]</span>
|
23
|
-
<% else %>
|
24
|
-
<% metric.metric_variants.each do |mv| %>
|
25
|
-
<div class="item rate">
|
26
|
-
<span class="rate-holder">
|
27
|
-
<span class="title"><%=h mv.name %></span>
|
28
|
-
<span class="rates" style="width:<%= number_to_percentage(mv.conversion_rate, :precision => 0) %>"></span>
|
29
|
-
</span>
|
30
|
-
|
31
|
-
<span class="percent-holder">
|
32
|
-
<span class="val"><%= number_to_percentage(mv.conversion_rate, :precision => 0) %></span>
|
33
|
-
(<span class="conversions"><%= mv.conversions %></span> /
|
34
|
-
<span class="served"><%= mv.served %></span>)
|
35
|
-
</span>
|
36
|
-
</div>
|
37
|
-
<% end %>
|
38
|
-
<% end %>
|
39
|
-
</div>
|
40
|
-
<% end %>
|
41
|
-
<% end %>
|
42
|
-
</div>
|
43
|
-
</div>
|
44
|
-
|
45
|
-
<div class="new">
|
46
|
-
<a href="<%= new_mountain_goat_convert_url %>">New conversation type</a>
|
47
|
-
</div>
|
48
|
-
</div>
|
49
|
-
</div>
|
@@ -1,27 +0,0 @@
|
|
1
|
-
<%# locals => f %>
|
2
|
-
|
3
|
-
<%= f.hidden_field :metric_id %>
|
4
|
-
|
5
|
-
<% if f.object.metric.is_switch %>
|
6
|
-
<span class="switch-type"><%=h f.object.switch_type %></span>
|
7
|
-
<% end %>
|
8
|
-
|
9
|
-
<div class="item name">
|
10
|
-
<%= f.label :name, 'Variant name' %><br />
|
11
|
-
<%= f.text_field :name %>
|
12
|
-
</div>
|
13
|
-
|
14
|
-
<% if !f.object.metric.is_switch %>
|
15
|
-
<div class="item value">
|
16
|
-
<%= f.label :value, 'Metric value' %><br />
|
17
|
-
<%= f.text_area :value %>
|
18
|
-
</div>
|
19
|
-
<% end %>
|
20
|
-
<div class="item priority">
|
21
|
-
<%= f.label :priority, 'Priority' %><br />
|
22
|
-
<%= f.text_field :priority %>
|
23
|
-
</div>
|
24
|
-
|
25
|
-
<div class="item submit">
|
26
|
-
<%= f.submit 'Submit' %>
|
27
|
-
</div>
|
data/lib/mountain_goat/views/mountain_goat/mountain_goat_metric_variants/.tmp_show.html.erb.24381~
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<div id="container-main" class="mt-metric-variants">
|
4
|
-
<div class="mountain-goat-panel cenetered">
|
5
|
-
<a href="<%= mountain_goat_converts_url %>">Goals</a> > <a href="<%= mountain_goat_convert_url :id => @metric_variant.metric.convert.id %>"><%=h @metric_variant.metric.convert.name %> Goal</a> > <a href="<%= mountain_goat_metric_url :id => @metric_variant.metric.id %>"><%=h @metric_variant.metric.title %></a>
|
6
|
-
|
7
|
-
<h2><%=h @metric_variant.name %></h2>
|
8
|
-
|
9
|
-
<div class="value"><%=h @metric_variant.value %></div>
|
10
|
-
<div class="serves-converts"><%=h @metric_variant.served %> / <%=h @metric_variant.conversions %> (<%=h number_to_percentage(@metric_variant.conversion_rate, :precision => 0) %>)</div>
|
11
|
-
|
12
|
-
<a href="<%= edit_mountain_goat_metric_variant_url :id => @metric_variant.id %>">Edit</a>
|
13
|
-
</div>
|
14
|
-
</div>
|
@@ -1,59 +0,0 @@
|
|
1
|
-
|
2
|
-
<% if !respond_to?(:chart) %>
|
3
|
-
<% def chart(*args); 'Please install Flotilla plugin (http://flotilla.rubyforge.org/) for charts'; end; %>
|
4
|
-
<% end %>
|
5
|
-
|
6
|
-
<div id="container-main" class="mt-metrics">
|
7
|
-
<div class="mountain-goat-panel cenetered">
|
8
|
-
<a href="<%= mountain_goat_converts_url %>">Goals</a> > <a href="<%= mountain_goat_convert_url :id => @metric.convert.id %>"><%=h @metric.convert.name %> Goal</a> > <span class="metric-type"><%=h @metric.metric_type %></span>
|
9
|
-
|
10
|
-
<h2><%=h @metric.title %></h2>
|
11
|
-
|
12
|
-
<div class="variants">
|
13
|
-
<% if @metric.metric_variants.count == 0 %>
|
14
|
-
<span class="none">No metric variants</span>
|
15
|
-
<% else %>
|
16
|
-
<div class="flyer-analysis countbar">
|
17
|
-
<div class="title">Conversion Rates</div>
|
18
|
-
<div class="graph">
|
19
|
-
<%= chart("analysis_graph#{@metric.id}",
|
20
|
-
{ "Served" => { :collection => @rates[:served], :x => :variant_type, :y => :value },
|
21
|
-
"Conversions" => { :collection => @rates[:conversions], :x => :variant_type, :y => :value } },
|
22
|
-
{ :xaxis => {:autoscaleMargin => 0.1, :ticks => @rates[:titles].map { |i,t| [i + 0.5, t] }.sort }, :yaxis => { :min => 0, :minTickSize => 1 }, :bars => { :show => true }, :legend => { :position => "ne" } }, :placeholder_size => "300x200") %>
|
23
|
-
|
24
|
-
</div>
|
25
|
-
<div class="graph">
|
26
|
-
<%= chart("analysis_conv_graph#{@metric.id}",
|
27
|
-
{ "Conversion Rate (%)" => { :collection => @rates[:conversion_rates], :x => :variant_type, :y => :value } },
|
28
|
-
{ :xaxis => {:autoscaleMargin => 0.1, :ticks => @rates[:titles].map { |i,t| [i + 0.5, t] }.sort }, :yaxis => { :min => 0, :minTickSize => 1 }, :bars => { :show => true }, :legend => { :position => "ne" } }, :placeholder_size => "300x200") %>
|
29
|
-
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
<% @metric.metric_variants.each do |mv| %>
|
33
|
-
<div class="metric-variant">
|
34
|
-
<div class="item name">
|
35
|
-
<span class="desc">Name</span>
|
36
|
-
<span class="val"><a href="<%= mountain_goat_metric_variant_url mv %>"><%= mv.name %></a> [<a href="<%= edit_mountain_goat_metric_variant_url :id => mv.id %>">Edit</a>]</span>
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<div class="item value">
|
40
|
-
<span class="desc">Value</span>
|
41
|
-
<span class="val"><%= mv.value %></span>
|
42
|
-
</div>
|
43
|
-
|
44
|
-
<div class="item rate">
|
45
|
-
<span class="rates">Conversion:</span>
|
46
|
-
<span class="conversions"><%= mv.conversions %></span> /
|
47
|
-
<span class="served"><%= mv.served %></span>
|
48
|
-
(<span class="val"><%= number_to_percentage(mv.conversion_rate, :precision => 0) %></span>)
|
49
|
-
</div>
|
50
|
-
</div>
|
51
|
-
|
52
|
-
<% end %>
|
53
|
-
<% end %>
|
54
|
-
</div>
|
55
|
-
|
56
|
-
<a href="<%= edit_mountain_goat_metric_url :id => @metric %>">Edit Metric</a> |
|
57
|
-
<a href="<%= new_mountain_goat_metric_mountain_goat_metric_variant_url :mountain_goat_metric_id => @metric.id %>">New Variant</a>
|
58
|
-
</div>
|
59
|
-
</div>
|
@@ -1,59 +0,0 @@
|
|
1
|
-
|
2
|
-
<% if !respond_to?(:chart) %>
|
3
|
-
<% def chart(*args); 'Please install Flotilla plugin (http://flotilla.rubyforge.org/) for charts'; end; %>
|
4
|
-
<% end %>
|
5
|
-
|
6
|
-
<div id="container-main" class="mt-metrics">
|
7
|
-
<div class="mountain-goat-panel cenetered">
|
8
|
-
<a href="<%= mountain_goat_converts_url %>">Goals</a> > <a href="<%= mountain_goat_convert_url :id => @metric.convert.id %>"><%=h @metric.convert.name %> Goal</a> > <span class="metric-type"><%=h @metric.metric_type %></span>
|
9
|
-
|
10
|
-
<h2><%=h @metric.title %></h2>
|
11
|
-
|
12
|
-
<div class="variants">
|
13
|
-
<% if @metric.metric_variants.count == 0 %>
|
14
|
-
<span class="none">No metric variants</span>
|
15
|
-
<% else %>
|
16
|
-
<div class="flyer-analysis countbar">
|
17
|
-
<div class="title">Conversion Rates</div>
|
18
|
-
<div class="graph">
|
19
|
-
<%= chart("analysis_graph#{@metric.id}",
|
20
|
-
{ "Served" => { :collection => @rates[:served], :x => :variant_type, :y => :value },
|
21
|
-
"Conversions" => { :collection => @rates[:conversions], :x => :variant_type, :y => :value } },
|
22
|
-
{ :xaxis => {:autoscaleMargin => 0.1, :ticks => @rates[:titles].map { |i,t| [i + 0.5, t] }.sort }, :yaxis => { :min => 0, :minTickSize => 1 }, :bars => { :show => true }, :legend => { :position => "ne" } }, :placeholder_size => "300x200") %>
|
23
|
-
|
24
|
-
</div>
|
25
|
-
<div class="graph">
|
26
|
-
<%= chart("analysis_conv_graph#{@metric.id}",
|
27
|
-
{ "Conversion Rate (%)" => { :collection => @rates[:conversion_rates], :x => :variant_type, :y => :value } },
|
28
|
-
{ :xaxis => {:autoscaleMargin => 0.1, :ticks => @rates[:titles].map { |i,t| [i + 0.5, t] }.sort }, :yaxis => { :min => 0, :minTickSize => 1 }, :bars => { :show => true }, :legend => { :position => "ne" } }, :placeholder_size => "300x200") %>
|
29
|
-
|
30
|
-
</div>
|
31
|
-
</div>
|
32
|
-
<% @metric.metric_variants.each do |mv| %>
|
33
|
-
<div class="metric-variant">
|
34
|
-
<div class="item name">
|
35
|
-
<span class="desc">Name</span>
|
36
|
-
<span class="val"><a href="<%= mountain_goat_metric_variant_url mv %>"><%= mv.name %></a> [<a href="<%= edit_mountain_goat_metric_variant_url :id => mv.id %>">Edit</a>]</span>
|
37
|
-
</div>
|
38
|
-
|
39
|
-
<div class="item value">
|
40
|
-
<span class="desc">Value</span>
|
41
|
-
<span class="val"><%= mv.value %></span>
|
42
|
-
</div>
|
43
|
-
|
44
|
-
<div class="item rate">
|
45
|
-
<span class="rates">Conversion:</span>
|
46
|
-
<span class="conversions"><%= mv.conversions %></span> /
|
47
|
-
<span class="served"><%= mv.served %></span>
|
48
|
-
(<span class="val"><%= number_to_percentage(mv.conversion_rate, :precision => 0) %></span>)
|
49
|
-
</div>
|
50
|
-
</div>
|
51
|
-
|
52
|
-
<% end %>
|
53
|
-
<% end %>
|
54
|
-
</div>
|
55
|
-
|
56
|
-
<a href="<%= edit_mountain_goat_metric_url :id => @metric %>">Edit Metric</a> |
|
57
|
-
<a href="<%= new_mountain_goat_metric_mountain_goat_metric_variant_url :mountain_goat_metric_id => @metric.id %>">New Variant</a>
|
58
|
-
</div>
|
59
|
-
</div>
|