Permalink
Browse files

started to move to rickshaw

  • Loading branch information...
1 parent c7c22f8 commit c56d19544c419f32460e29e6d1eabb06ee828d37 @tarekziade tarekziade committed Feb 27, 2013
View
@@ -8,7 +8,7 @@ build
docs/_gh-pages
elasticsearch
include
-lib
+^lib
man
pyramid.log
.DS_Store
View
@@ -1,6 +1,6 @@
[app:main]
use = egg:monolith
-elasticsearch.hosts = localhost:9200
+elasticsearch.hosts = 0.0.0.0:9200
cors.origins = *
[server:main]
View
@@ -65,11 +65,21 @@ app.directive('chart', function() {
// XXX can this be externalized as a template ?
// not an ugly string
template:
- '<div class="droppable chart"><div class="draggable">' +
- '<div id="chart-{{id}}" style="height:300px; margin: 0 auto">' +
+ '<div><div class="chart span12" >' +
+
+ // y axis legend
+ '<div id="y_axis-{{id}}"/>' +
+
+ // actual chart
+ '<div id="chart-{{id}}" style="height:300px; margin: 0 auto"/>' +
+
+ // legend and change button
+ '<div class="span12">' +
+ '<a href="#modal-{{id}}" role="button" class="span2 btn btn-primary" data-toggle="modal">Change</a>' +
+ '<div class="span3 offset7" id="legend-{{id}}"></div>' +
'</div>' +
- '<a href="#modal-{{id}}" role="button" class="span2 offset1 btn btn-primary" data-toggle="modal">Change</a>' +
- '<div style="clear:both"/>' +
+
+ // modal box
'<div id="modal-{{id}}" class="modal hide fade">' +
'<div class="modal-header">' +
'<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>' +
@@ -0,0 +1,73 @@
+.rickshaw_graph .detail {
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ z-index: 2;
+ background: rgba(0, 0, 0, 0.1);
+ bottom: 0;
+ width: 1px;
+ transition: opacity 0.25s linear;
+ -moz-transition: opacity 0.25s linear;
+ -o-transition: opacity 0.25s linear;
+ -webkit-transition: opacity 0.25s linear;
+}
+.rickshaw_graph .detail.inactive {
+ opacity: 0;
+}
+.rickshaw_graph .detail .item.active {
+ opacity: 1;
+}
+.rickshaw_graph .detail .x_label {
+ font-family: Arial, sans-serif;
+ border-radius: 3px;
+ padding: 6px;
+ opacity: 0.5;
+ border: 1px solid #e0e0e0;
+ font-size: 12px;
+ position: absolute;
+ background: white;
+ white-space: nowrap;
+}
+.rickshaw_graph .detail .item {
+ position: absolute;
+ z-index: 2;
+ border-radius: 3px;
+ padding: 0.25em;
+ font-size: 12px;
+ font-family: Arial, sans-serif;
+ opacity: 0;
+ background: rgba(0, 0, 0, 0.4);
+ color: white;
+ border: 1px solid rgba(0, 0, 0, 0.4);
+ margin-left: 1em;
+ margin-top: -1em;
+ white-space: nowrap;
+}
+.rickshaw_graph .detail .item.active {
+ opacity: 1;
+ background: rgba(0, 0, 0, 0.8);
+}
+.rickshaw_graph .detail .item:before {
+ content: "\25c2";
+ position: absolute;
+ left: -0.5em;
+ color: rgba(0, 0, 0, 0.7);
+ width: 0;
+}
+.rickshaw_graph .detail .dot {
+ width: 4px;
+ height: 4px;
+ margin-left: -4px;
+ margin-top: -3px;
+ border-radius: 5px;
+ position: absolute;
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
+ background: white;
+ border-width: 2px;
+ border-style: solid;
+ display: none;
+ background-clip: padding-box;
+}
+.rickshaw_graph .detail .dot.active {
+ display: block;
+}
@@ -0,0 +1,175 @@
+/* graph */
+
+.rickshaw_graph {
+ position: relative;
+}
+.rickshaw_graph svg {
+ display: block;
+ overflow: hidden;
+}
+
+/* ticks */
+
+.rickshaw_graph .x_tick {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 0px;
+ border-left: 1px dotted rgba(0, 0, 0, 0.2);
+ pointer-events: none;
+}
+.rickshaw_graph .x_tick .title {
+ position: absolute;
+ font-size: 12px;
+ font-family: Arial, sans-serif;
+ opacity: 0.5;
+ white-space: nowrap;
+ margin-left: 3px;
+ bottom: 1px;
+}
+
+/* annotations */
+
+.rickshaw_annotation_timeline {
+ height: 1px;
+ border-top: 1px solid #e0e0e0;
+ margin-top: 10px;
+ position: relative;
+}
+.rickshaw_annotation_timeline .annotation {
+ position: absolute;
+ height: 6px;
+ width: 6px;
+ margin-left: -2px;
+ top: -3px;
+ border-radius: 5px;
+ background-color: rgba(0, 0, 0, 0.25);
+}
+.rickshaw_graph .annotation_line {
+ position: absolute;
+ top: 0;
+ bottom: -6px;
+ width: 0px;
+ border-left: 2px solid rgba(0, 0, 0, 0.3);
+ display: none;
+}
+.rickshaw_graph .annotation_line.active {
+ display: block;
+}
+
+.rickshaw_graph .annotation_range {
+ background: rgba(0, 0, 0, 0.1);
+ display: none;
+ position: absolute;
+ top: 0;
+ bottom: -6px;
+ z-index: -10;
+}
+.rickshaw_graph .annotation_range.active {
+ display: block;
+}
+.rickshaw_graph .annotation_range.active.offscreen {
+ display: none;
+}
+
+.rickshaw_annotation_timeline .annotation .content {
+ background: white;
+ color: black;
+ opacity: 0.9;
+ padding: 5px 5px;
+ box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
+ border-radius: 3px;
+ position: relative;
+ z-index: 20;
+ font-size: 12px;
+ padding: 6px 8px 8px;
+ top: 18px;
+ left: -11px;
+ width: 160px;
+ display: none;
+ cursor: pointer;
+}
+.rickshaw_annotation_timeline .annotation .content:before {
+ content: "\25b2";
+ position: absolute;
+ top: -11px;
+ color: white;
+ text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8);
+}
+.rickshaw_annotation_timeline .annotation.active,
+.rickshaw_annotation_timeline .annotation:hover {
+ background-color: rgba(0, 0, 0, 0.8);
+ cursor: none;
+}
+.rickshaw_annotation_timeline .annotation .content:hover {
+ z-index: 50;
+}
+.rickshaw_annotation_timeline .annotation.active .content {
+ display: block;
+}
+.rickshaw_annotation_timeline .annotation:hover .content {
+ display: block;
+ z-index: 50;
+}
+.rickshaw_graph .y_axis,
+.rickshaw_graph .x_axis_d3 {
+ fill: none;
+}
+.rickshaw_graph .y_ticks .tick,
+.rickshaw_graph .x_ticks_d3 .tick {
+ stroke: rgba(0, 0, 0, 0.16);
+ stroke-width: 2px;
+ shape-rendering: crisp-edges;
+ pointer-events: none;
+}
+.rickshaw_graph .y_grid .tick,
+.rickshaw_graph .x_grid_d3 .tick {
+ z-index: -1;
+ stroke: rgba(0, 0, 0, 0.20);
+ stroke-width: 1px;
+ stroke-dasharray: 1 1;
+}
+.rickshaw_graph .y_grid path,
+.rickshaw_graph .x_grid_d3 path {
+ fill: none;
+ stroke: none;
+}
+.rickshaw_graph .y_ticks path,
+.rickshaw_graph .x_ticks_d3 path {
+ fill: none;
+ stroke: #808080;
+}
+.rickshaw_graph .y_ticks text,
+.rickshaw_graph .x_ticks_d3 text {
+ opacity: 0.5;
+ font-size: 12px;
+ pointer-events: none;
+}
+.rickshaw_graph .x_tick.glow .title,
+.rickshaw_graph .y_ticks.glow text {
+ fill: black;
+ color: black;
+ text-shadow:
+ -1px 1px 0 rgba(255, 255, 255, 0.1),
+ 1px -1px 0 rgba(255, 255, 255, 0.1),
+ 1px 1px 0 rgba(255, 255, 255, 0.1),
+ 0px 1px 0 rgba(255, 255, 255, 0.1),
+ 0px -1px 0 rgba(255, 255, 255, 0.1),
+ 1px 0px 0 rgba(255, 255, 255, 0.1),
+ -1px 0px 0 rgba(255, 255, 255, 0.1),
+ -1px -1px 0 rgba(255, 255, 255, 0.1);
+}
+.rickshaw_graph .x_tick.inverse .title,
+.rickshaw_graph .y_ticks.inverse text {
+ fill: white;
+ color: white;
+ text-shadow:
+ -1px 1px 0 rgba(0, 0, 0, 0.8),
+ 1px -1px 0 rgba(0, 0, 0, 0.8),
+ 1px 1px 0 rgba(0, 0, 0, 0.8),
+ 0px 1px 0 rgba(0, 0, 0, 0.8),
+ 0px -1px 0 rgba(0, 0, 0, 0.8),
+ 1px 0px 0 rgba(0, 0, 0, 0.8),
+ -1px 0px 0 rgba(0, 0, 0, 0.8),
+ -1px -1px 0 rgba(0, 0, 0, 0.8);
+}
@@ -3,25 +3,45 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Monolith Dashboard</title>
- <link rel="stylesheet" href="jquery-ui.css" />
- <link rel="stylesheet" href="bootstrap.css" />
- <link rel="stylesheet" href="bootstrap-responsive.css" />
- <link rel="stylesheet" href="monolith.css" />
- <link rel="stylesheet" href="datepicker.css" />
+ <link type="text/css"rel="stylesheet" href="jquery-ui.css" />
+ <link type="text/css" rel="stylesheet" href="bootstrap.css" />
+ <link type="text/css" rel="stylesheet" href="bootstrap-responsive.css" />
+ <link type="text/css" rel="stylesheet" href="monolith.css" />
+ <link type="text/css" rel="stylesheet" href="datepicker.css" />
+ <link type="text/css" rel="stylesheet" href="graph.css">
+ <link type="text/css" rel="stylesheet" href="detail.css">
+ <link type="text/css" rel="stylesheet" href="legend.css">
+ <link type="text/css" rel="stylesheet" href="lines.css">
<script type="text/javascript" src="lib/jquery.min.js"></script>
<script type="text/javascript" src="lib/jquery-ui.js"></script>
<script type="text/javascript" src="lib/jquery.class.js"></script>
<script type="text/javascript" src="lib/angular.min.js"></script>
- <script type="text/javascript" src="http://code.highcharts.com/highcharts.js"></script>
- <script type="text/javascript"
- src="http://code.highcharts.com/modules/exporting.js"></script>
+ <script type="text/javascript" src="lib/d3.v2.js"></script>
+ <script type="text/javascript" src="lib/rickshaw.js"></script>
<script type="text/javascript" src="lib/bootstrap.js"></script>
<script type="text/javascript" src="lib/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="lib/monolith.js"></script>
<script type="text/javascript" src="app.js"></script>
+ <style>
+ .rickshaw_graph .detail .x_label { display: none }
+ .rickshaw_graph .detail .item { line-height: 1.4; padding: 0.5em }
+ .detail_swatch { float: right; display: inline-block; width: 10px; height: 10px; margin: 0 4px 0 0 }
+ .rickshaw_graph .detail .date { color: #a0a0a0 }
+
+#y_axis-chart2 {
+ position: relative;
+ width: 40px;
+ height: 100%;
+ float: right;
+}
+.rickshaw_legend {
+/* float: left;*/
+}
+ </style>
+
</head>
<body ng-app="components" class="preview" data-spy="scroll" data-target=".subnav" data-offset="80">
<div class="navbar navbar-fixed-top">
@@ -39,14 +59,14 @@
</div> <!-- end navbar-->
-<dashboard server="http://166.78.8.5:6543">
+<dashboard server="http://0.0.0.0:6543">
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<div class="span6">
<chart title="Daily Page views"
id="chart2"
- type="aggregate"
+ type="aggregate"
field="pageviews"
interval="day"/>
</div>
Oops, something went wrong.

0 comments on commit c56d195

Please sign in to comment.