audit_rails 2.0.3 → 2.0.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e57ca2c04fe002da6cb8926fe248abcd4bcc665
4
- data.tar.gz: 2a74a5654f6c7c14b5eed8eb36010ac6b47f21c1
3
+ metadata.gz: ef20c62dd3cb3e2a5776d7502155c7005b34018a
4
+ data.tar.gz: 77618e157b6e3ac7d9f05f6d6224834aacec7c12
5
5
  SHA512:
6
- metadata.gz: 962fad30c9046a061dc79cf8f481f2c74652317c536461bfbb5268c7265ac515bfd046591879ac03881e06fcbb34beb117b415a7eb67da9f268c13775e6c31d6
7
- data.tar.gz: b9de65ce03984955cf056421bfd3b0df227be48b303b55849f46111e71269bc92a89ac3f953ecff22962a55ea82ca35c9b0a2030c1264a75400b9e9d033c7743
6
+ metadata.gz: 0dd0e22106c23a41f2b12204e09c6cc650868e1624d8bebbbf199d5346a247665d8407ecc47c23df9fe80f2ffe8fa56ebf775ea04d81553d2134859a02696a5f
7
+ data.tar.gz: a7f4fe28afbacdb64d501a1d65f41e58061ec3f0795a57428ccc2ed41758da458b9038534e763c49d09ca592487d6e72a7c2a68f153b54464d5b689d27bcefa5
@@ -12,11 +12,9 @@
12
12
  //
13
13
  //= require jquery
14
14
  //= require jquery_ujs
15
+ //= require sleek_charts
15
16
  //= require audit_rails/jquery-ui
16
17
  //= require audit_rails/date-picker
17
- //= require audit_rails/Chart.min
18
- //= require audit_rails/d3/d3.v3
19
- //= require audit_rails/d3/d3.tip
20
18
  //= require audit_rails/user-counts
21
19
  //= require audit_rails/page-views
22
20
  //= require audit_rails/page-views-for-user
@@ -1,72 +1,17 @@
1
1
  var data = JSON.parse( $('div#hourlyViewsCount').attr('data-visit-count'));
2
2
 
3
- var right = d3.max([20, (900 - data.length * 50)]);
4
- var margin = {top: 40, right: right, bottom: 100, left: 40},
5
- width = 960 - margin.left - margin.right,
6
- height = 360 - margin.top - margin.bottom;
7
-
8
- var x = d3.scale.ordinal()
9
- .rangeRoundBands([0, width], .1);
10
-
11
- var y = d3.scale.linear()
12
- .range([height, 0]);
13
-
14
- var xAxis = d3.svg.axis()
15
- .scale(x)
16
- .orient("bottom");
17
-
18
- var yAxis = d3.svg.axis()
19
- .scale(y)
20
- .orient("left");
21
-
22
- var tip = d3.tip()
23
- .attr('class', 'd3-tip')
24
- .offset([-10, 0])
25
- .html(function(d) {
26
- return "<strong>Page Views:</strong> <span style='color:red'>" + d.count + "</span>";
27
- })
28
-
29
- var svg = d3.select("div#hourlyViewsCount").append("svg")
30
- .attr("width", width + margin.left + margin.right)
31
- .attr("height", height + margin.top + margin.bottom)
32
- .append("g")
33
- .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
34
-
35
- svg.call(tip);
36
-
37
- x.domain(data.map(function(d) { return d.hour; }));
38
- y.domain([0, d3.max(data, function(d) { return d.count; })]);
39
-
40
- svg.append("g")
41
- .attr("class", "x axis")
42
- .attr("transform", "translate(0," + height + ")")
43
- .call(xAxis)
44
- .selectAll("text")
45
- .style("text-anchor", "end")
46
- .attr("dx", "-.8em")
47
- .attr("dy", ".15em")
48
- .attr("transform", function(d) {
49
- return "rotate(-65)"
50
- });
51
-
52
- svg.append("g")
53
- .attr("class", "y axis")
54
- .call(yAxis)
55
- .append("text")
56
- .attr("transform", "rotate(-90)")
57
- .attr("y", -40)
58
- .attr("x", -80)
59
- .attr("dy", "0.71em")
60
- .style("text-anchor", "end")
61
- .text("Page Views");
62
-
63
- svg.selectAll(".bar")
64
- .data(data)
65
- .enter().append("rect")
66
- .attr("class", "bar")
67
- .attr("x", function(d) { return x(d.hour); })
68
- .attr("width", x.rangeBand())
69
- .attr("y", function(d) { return y(d.count); })
70
- .attr("height", function(d) { return height - y(d.count); })
71
- .on('mouseover', tip.show)
72
- .on('mouseout', tip.hide);
3
+ barTip({
4
+ selector: 'div#hourlyViewsCount',
5
+ data: data,
6
+ width: 960,
7
+ height: 360,
8
+ margin: {top: 40, right: 20, bottom: 100, left:40},
9
+ flexRight: true,
10
+ labelAngle: -60,
11
+ xDomain: 'hour',
12
+ yDomain: 'count',
13
+ yAxisText: 'Page Views',
14
+ tipLabel: '',
15
+ tipValue: 'count',
16
+ tipText: 'Page views'
17
+ });
@@ -1,122 +1,20 @@
1
1
  function pageViewsShareByUser(userName) {
2
- var margin = {
3
- top: 40,
4
- right: 40,
5
- bottom: 40,
6
- left: 40
7
- },
8
- width = 500 - margin.left - margin.right,
9
- height = 500 - margin.top - margin.bottom,
10
- inner = 90,
11
- radius = 180, //radius
12
- color = d3.scale.category20c(); //builtin range of colors
13
-
14
- var data = JSON.parse( $('a[data-user="'+ userName +'"]').attr('data-page-visits'));
15
- var total = d3.sum(data, function (d) {
16
- return d3.sum(d3.values(d));
2
+ data = JSON.parse( $('a[data-user="'+ userName +'"]').attr('data-page-visits'));
3
+ donutTip({
4
+ selector: 'div#pageViewsShareByUser',
5
+ data: data,
6
+ width: 500,
7
+ height: 500,
8
+ margin: {top: 40, right: 40, bottom: 40, left:40},
9
+ flexRight: true,
10
+ innerRadius: 90,
11
+ outerRadius: 180,
12
+ color: d3.scale.category20c(),
13
+ xDomain: 'page',
14
+ yDomain: 'count',
15
+ tipLabel: '',
16
+ tipValue: 'count',
17
+ tipText: 'Page Views',
18
+ totalLabel: 'Views'
17
19
  });
18
- var div = d3.select("body").append("div")
19
- .attr("class", "tooltip")
20
- .style("opacity", 0);
21
-
22
- var vis = d3.select("div#pageViewsShareByUser")
23
- .append("svg:svg") //create the SVG element inside the <body>
24
- .data([data]) //associate our data with the document
25
- .attr("width", width + margin.left + margin.right)
26
- .attr("height", height + margin.top + margin.bottom)
27
- .append("svg:g") //make a group to hold our pie chart
28
- .attr("transform", "translate(" + radius * 1.5 + "," + radius * 1.5 + ")");
29
- var textTop = vis.append("text")
30
- .attr("dy", ".35em")
31
- .style("text-anchor", "middle")
32
- .attr("class", "textTop")
33
- .text("TOTAL")
34
- .attr("y", -10),
35
- textBottom = vis.append("text")
36
- .attr("dy", ".35em")
37
- .style("text-anchor", "middle")
38
- .attr("class", "textBottom")
39
- .text(total + " Views")
40
- .attr("y", 10);
41
-
42
- var arc = d3.svg.arc()
43
- .innerRadius(inner)
44
- .outerRadius(radius);
45
- var arcOver = d3.svg.arc()
46
- .innerRadius(inner + 5)
47
- .outerRadius(radius + 5);
48
-
49
- var pie = d3.layout.pie() //this will create arc data for us given a list of values
50
- .value(function (d) {
51
- return d.count;
52
- }); //we must tell it out to access the value of each element in our data array
53
-
54
- var arcs = vis.selectAll("g.slice") //this selects all <g> elements with class slice (there aren't any yet)
55
- .data(pie) //associate the generated pie data (an array of arcs, each having startAngle, endAngle and value properties)
56
- .enter() //this will create <g> elements for every "extra" data element that should be associated with a selection. The result is creating a <g> for every object in the data array
57
- .append("svg:g") //create a group to hold each slice (we will have a <path> and a <text> element associated with each slice)
58
- .attr("class", "slice") //allow us to style things in the slices (like text)
59
- .on('mousemove', function (d, i) {
60
- d3.select(this).select("path").transition()
61
- .duration(200)
62
- .attr("d", arcOver);
63
-
64
- textTop.text(d3.select(this).datum().data.page)
65
- .attr("y", -10);
66
- textBottom.text(d3.select(this).datum().data.count + " Views")
67
- .attr("y", 10);
68
-
69
- div.transition()
70
- .duration(200)
71
- .style("opacity", 0.9);
72
- div.html("<strong>Page Views:</strong> <span style='color:red'>" + d.data.count + "</span>")
73
- .style("left", (d3.event.pageX - 57) + "px")
74
- .style("top", (d3.event.pageY - 50) + "px")
75
- .style("z-index", 10000)
76
- })
77
- .on("mouseout", function (d) {
78
- d3.select(this).select("path").transition()
79
- .duration(100)
80
- .attr("d", arc);
81
-
82
- textTop.text("TOTAL")
83
- .attr("y", -10);
84
- textBottom.text(total + " Views");
85
-
86
- div.transition()
87
- .duration(500)
88
- .style("opacity", 0);
89
- });
90
-
91
- arcs.append("svg:path")
92
- .attr("fill", function (d, i) {
93
- return color(i);
94
- }) //set the color for each slice to be chosen from the color function defined above
95
- .attr("d", arc); //this creates the actual SVG path using the associated data (pie) with the arc drawing function
96
-
97
- var legend = d3.select("div#pageViewsShareByUser").append("svg")
98
- .attr("class", "legend")
99
- .attr("width", radius)
100
- .attr("height", radius * 2)
101
- .selectAll("g")
102
- .data(data)
103
- .enter().append("g")
104
- .attr("transform", function (d, i) {
105
- return "translate(0," + i * 20 + ")";
106
- });
107
-
108
- legend.append("rect")
109
- .attr("width", 18)
110
- .attr("height", 18)
111
- .style("fill", function (d, i) {
112
- return color(i);
113
- });
114
-
115
- legend.append("text")
116
- .attr("x", 24)
117
- .attr("y", 9)
118
- .attr("dy", ".35em")
119
- .text(function (d) {
120
- return d.page;
121
- });
122
20
  }
@@ -1,72 +1,19 @@
1
1
  function pageViewsForUser(userName){
2
-
3
2
  var data = JSON.parse( $('a[data-user="'+ userName +'"]').attr('data-page-visits'));
4
3
 
5
- var right = d3.max([20, (620 - data.length * 50)]);
6
- var margin = {top: 40, right: right, bottom: 100, left: 40},
7
- width = 650 - margin.left - margin.right,
8
- height = 360 - margin.top - margin.bottom;
9
-
10
- var x = d3.scale.ordinal()
11
- .rangeRoundBands([0, width], .1);
12
-
13
- var y = d3.scale.linear()
14
- .range([height, 0]);
15
-
16
- var xAxis = d3.svg.axis()
17
- .scale(x)
18
- .orient("bottom");
19
-
20
- var yAxis = d3.svg.axis()
21
- .scale(y)
22
- .orient("left");
23
-
24
- var tip = d3.tip()
25
- .attr('class', 'd3-tip')
26
- .offset([-10, 0])
27
- .html(function(d) {
28
- return "<strong>Page Views:</strong> <span style='color:red'>" + d.count + "</span>";
29
- })
30
-
31
- var svg = d3.select("div#pageViewsByUser").append("svg")
32
- .attr("width", width + margin.left + margin.right)
33
- .attr("height", height + margin.top + margin.bottom)
34
- .append("g")
35
- .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
36
-
37
- svg.call(tip);
38
-
39
- x.domain(data.map(function(d) { return d.page; }));
40
- y.domain([0, d3.max(data, function(d) { return d.count; })]);
41
-
42
- svg.append("g")
43
- .attr("class", "x axis")
44
- .attr("transform", "translate(0," + height + ")")
45
- .call(xAxis)
46
- .selectAll("text")
47
- .style("text-anchor", "end")
48
- .attr("dx", "-.8em")
49
- .attr("dy", ".15em")
50
- .attr("transform", function(d) {
51
- return "rotate(-65)"
52
- });
53
-
54
- svg.append("g")
55
- .attr("class", "y axis")
56
- .call(yAxis)
57
- .append("text")
58
- .attr("transform", "rotate(-90)")
59
- .attr("y", -40)
60
- .attr("x", -80)
61
-
62
- svg.selectAll(".bar")
63
- .data(data)
64
- .enter().append("rect")
65
- .attr("class", "bar")
66
- .attr("x", function(d) { return x(d.page); })
67
- .attr("width", x.rangeBand())
68
- .attr("y", function(d) { return y(d.count); })
69
- .attr("height", function(d) { return height - y(d.count); })
70
- .on('mouseover', tip.show)
71
- .on('mouseout', tip.hide);
72
- }
4
+ barTip({
5
+ selector: 'div#pageViewsByUser',
6
+ data: data,
7
+ width: 960,
8
+ height: 360,
9
+ margin: {top: 40, right: 20, bottom: 100, left:40},
10
+ flexRight: true,
11
+ labelAngle: -60,
12
+ xDomain: 'page',
13
+ yDomain: 'count',
14
+ yAxisText: 'Page Views',
15
+ tipLabel: '',
16
+ tipValue: 'count',
17
+ tipText: 'Page views'
18
+ });
19
+ }
@@ -1,71 +1,17 @@
1
1
  var data = JSON.parse( $('div#pageViewsCount').attr('data-visit-count'));
2
- var right = d3.max([20, (900 - data.length * 50)]);
3
- var margin = {top: 40, right: right, bottom: 100, left: 40},
4
- width = 960 - margin.left - margin.right,
5
- height = 360 - margin.top - margin.bottom;
6
2
 
7
- var x = d3.scale.ordinal()
8
- .rangeRoundBands([0, width], .1);
9
-
10
- var y = d3.scale.linear()
11
- .range([height, 0]);
12
-
13
- var xAxis = d3.svg.axis()
14
- .scale(x)
15
- .orient("bottom");
16
-
17
- var yAxis = d3.svg.axis()
18
- .scale(y)
19
- .orient("left");
20
-
21
- var tip = d3.tip()
22
- .attr('class', 'd3-tip')
23
- .offset([-10, 0])
24
- .html(function(d) {
25
- return "<strong>Page Views:</strong> <span style='color:red'>" + d.count + "</span>";
26
- })
27
-
28
- var svg = d3.select("div#pageViewsCount").append("svg")
29
- .attr("width", width + margin.left + margin.right)
30
- .attr("height", height + margin.top + margin.bottom)
31
- .append("g")
32
- .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
33
-
34
- svg.call(tip);
35
-
36
- x.domain(data.map(function(d) { return d.page; }));
37
- y.domain([0, d3.max(data, function(d) { return d.count; })]);
38
-
39
- svg.append("g")
40
- .attr("class", "x axis")
41
- .attr("transform", "translate(0," + height + ")")
42
- .call(xAxis)
43
- .selectAll("text")
44
- .style("text-anchor", "end")
45
- .attr("dx", "-.8em")
46
- .attr("dy", ".15em")
47
- .attr("transform", function(d) {
48
- return "rotate(-65)"
49
- });
50
-
51
- svg.append("g")
52
- .attr("class", "y axis")
53
- .call(yAxis)
54
- .append("text")
55
- .attr("transform", "rotate(-90)")
56
- .attr("y", -40)
57
- .attr("x", -80)
58
- .attr("dy", "0.71em")
59
- .style("text-anchor", "end")
60
- .text("Page Views");
61
-
62
- svg.selectAll(".bar")
63
- .data(data)
64
- .enter().append("rect")
65
- .attr("class", "bar")
66
- .attr("x", function(d) { return x(d.page); })
67
- .attr("width", x.rangeBand())
68
- .attr("y", function(d) { return y(d.count); })
69
- .attr("height", function(d) { return height - y(d.count); })
70
- .on('mouseover', tip.show)
71
- .on('mouseout', tip.hide);
3
+ barTip({
4
+ selector: 'div#pageViewsCount',
5
+ data: data,
6
+ width: 960,
7
+ height: 360,
8
+ margin: {top: 40, right: 20, bottom: 100, left:40},
9
+ flexRight: true,
10
+ labelAngle: -60,
11
+ xDomain: 'page',
12
+ yDomain: 'count',
13
+ yAxisText: 'Page Views',
14
+ tipLabel: '',
15
+ tipValue: 'count',
16
+ tipText: 'Page views'
17
+ });
@@ -1,72 +1,17 @@
1
1
  var data = JSON.parse( $('div#userViewsCount').attr('data-visit-count'));
2
2
 
3
- var right = d3.max([20, (900 - data.length * 50)]);
4
- var margin = {top: 40, right: right, bottom: 100, left: 40},
5
- width = 960 - margin.left - margin.right,
6
- height = 360 - margin.top - margin.bottom;
7
-
8
- var x = d3.scale.ordinal()
9
- .rangeRoundBands([0, width], .1);
10
-
11
- var y = d3.scale.linear()
12
- .range([height, 0]);
13
-
14
- var xAxis = d3.svg.axis()
15
- .scale(x)
16
- .orient("bottom");
17
-
18
- var yAxis = d3.svg.axis()
19
- .scale(y)
20
- .orient("left");
21
-
22
- var tip = d3.tip()
23
- .attr('class', 'd3-tip')
24
- .offset([-10, 0])
25
- .html(function(d) {
26
- return "<strong>Page Views:</strong> <span style='color:red'>" + d.count + "</span>";
27
- })
28
-
29
- var svg = d3.select("div#userViewsCount").append("svg")
30
- .attr("width", width + margin.left + margin.right)
31
- .attr("height", height + margin.top + margin.bottom)
32
- .append("g")
33
- .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
34
-
35
- svg.call(tip);
36
-
37
- x.domain(data.map(function(d) { return d.user; }));
38
- y.domain([0, d3.max(data, function(d) { return d.count; })]);
39
-
40
- svg.append("g")
41
- .attr("class", "x axis")
42
- .attr("transform", "translate(0," + height + ")")
43
- .call(xAxis)
44
- .selectAll("text")
45
- .style("text-anchor", "end")
46
- .attr("dx", "-.8em")
47
- .attr("dy", ".15em")
48
- .attr("transform", function(d) {
49
- return "rotate(-65)"
50
- });
51
-
52
- svg.append("g")
53
- .attr("class", "y axis")
54
- .call(yAxis)
55
- .append("text")
56
- .attr("transform", "rotate(-90)")
57
- .attr("y", -40)
58
- .attr("x", -80)
59
- .attr("dy", "0.71em")
60
- .style("text-anchor", "end")
61
- .text("Page Views");
62
-
63
- svg.selectAll(".bar")
64
- .data(data)
65
- .enter().append("rect")
66
- .attr("class", "bar")
67
- .attr("x", function(d) { return x(d.user); })
68
- .attr("width", x.rangeBand())
69
- .attr("y", function(d) { return y(d.count); })
70
- .attr("height", function(d) { return height - y(d.count); })
71
- .on('mouseover', tip.show)
72
- .on('mouseout', tip.hide);
3
+ barTip({
4
+ selector: 'div#userViewsCount',
5
+ data: data,
6
+ width: 960,
7
+ height: 360,
8
+ margin: {top: 40, right: 20, bottom: 100, left:40},
9
+ flexRight: true,
10
+ labelAngle: -60,
11
+ xDomain: 'user',
12
+ yDomain: 'count',
13
+ yAxisText: 'Page Views',
14
+ tipLabel: '',
15
+ tipValue: 'count',
16
+ tipText: 'Page views'
17
+ });