mountain-goat 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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>
|