Directly ported the usage gauges from Dashing
This commit is contained in:
parent
0551dc76a8
commit
a45f28a299
BIN
pydashie/assets/images/usage-gauge-background.png
Normal file
BIN
pydashie/assets/images/usage-gauge-background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 976 B |
@ -399,6 +399,445 @@ html {
|
||||
.widget.widget-progress-bars .zebra-stripe {
|
||||
background-color: #57c3dd; }
|
||||
|
||||
.widget-text {
|
||||
background-color: #ec663c; }
|
||||
.widget-text .title {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-text .more-info {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-text .updated-at {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-text.large h3 {
|
||||
font-size: 65px; }
|
||||
|
||||
.widget-usage-gauge {
|
||||
background-color: #ec223f; }
|
||||
.widget-usage-gauge .title {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-usage-gauge .value {
|
||||
font-weight: 600;
|
||||
font-size: 30px; }
|
||||
.widget-usage-gauge .gauge {
|
||||
width: 100px;
|
||||
height: 180px;
|
||||
display: block;
|
||||
margin: 0 auto 10px;
|
||||
position: relative; }
|
||||
.widget-usage-gauge .gauge-meter, .widget-usage-gauge .gauge::after {
|
||||
display: block;
|
||||
background: url("/assets/images/usage-gauge-background.png") repeat-y center bottom; }
|
||||
.widget-usage-gauge .gauge::after {
|
||||
content: "";
|
||||
height: 100%;
|
||||
opacity: 0.15; }
|
||||
.widget-usage-gauge .gauge-meter {
|
||||
width: 100px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
opacity: 0.6; }
|
||||
.widget-usage-gauge .updated-at {
|
||||
color: rgba(255, 255, 255, 0.5); }
|
||||
@-webkit-keyframes status-warning-background {
|
||||
0% {
|
||||
background-color: #e82711; }
|
||||
50% {
|
||||
background-color: #9b2d23; }
|
||||
100% {
|
||||
background-color: #e82711; }
|
||||
}
|
||||
|
||||
@-webkit-keyframes status-danger-background {
|
||||
0% {
|
||||
background-color: #eeae32; }
|
||||
50% {
|
||||
background-color: #ff9618; }
|
||||
100% {
|
||||
background-color: #eeae32; }
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-ms-text-size-adjust: 100%; }
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #222;
|
||||
font-size: 20px;
|
||||
color: #fff;
|
||||
font-family: 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; }
|
||||
|
||||
b, strong {
|
||||
font-weight: bold; }
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: inherit; }
|
||||
|
||||
img {
|
||||
border: 0;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
vertical-align: middle; }
|
||||
|
||||
img, object {
|
||||
max-width: 100%; }
|
||||
|
||||
iframe {
|
||||
max-width: 100%; }
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
width: 100%; }
|
||||
|
||||
td {
|
||||
vertical-align: middle; }
|
||||
|
||||
ul, ol {
|
||||
padding: 0;
|
||||
margin: 0; }
|
||||
|
||||
h1, h2, h3, h4, h5, p {
|
||||
padding: 0;
|
||||
margin: 0; }
|
||||
|
||||
h1 {
|
||||
margin-bottom: 12px;
|
||||
text-align: center;
|
||||
font-size: 30px;
|
||||
font-weight: 400; }
|
||||
|
||||
h2 {
|
||||
text-transform: uppercase;
|
||||
font-size: 50px;
|
||||
font-weight: 700;
|
||||
color: #fff; }
|
||||
|
||||
h3 {
|
||||
font-size: 25px;
|
||||
font-weight: 600;
|
||||
color: #fff; }
|
||||
|
||||
.gridster {
|
||||
margin: 0px auto; }
|
||||
|
||||
.icon-background {
|
||||
width: 100% !important;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
opacity: 0.1;
|
||||
font-size: 275px; }
|
||||
|
||||
.list-nostyle {
|
||||
list-style: none; }
|
||||
|
||||
.gridster ul {
|
||||
list-style: none; }
|
||||
|
||||
.gs_w {
|
||||
width: 100%;
|
||||
display: table;
|
||||
cursor: pointer; }
|
||||
|
||||
.widget {
|
||||
padding: 25px 12px;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
display: table-cell;
|
||||
vertical-align: middle; }
|
||||
|
||||
.widget.status-warning {
|
||||
background-color: #e82711;
|
||||
-webkit-animation: status-warning-background 2s ease infinite;
|
||||
-moz-animation: status-warning-background 2s ease infinite;
|
||||
-ms-animation: status-warning-background 2s ease infinite; }
|
||||
.widget.status-warning .icon-warning-sign {
|
||||
display: inline-block; }
|
||||
.widget.status-warning .title, .widget.status-warning .more-info {
|
||||
color: #fff; }
|
||||
|
||||
.widget.status-danger {
|
||||
color: #fff;
|
||||
background-color: #eeae32;
|
||||
-webkit-animation: status-danger-background 2s ease infinite;
|
||||
-moz-animation: status-danger-background 2s ease infinite;
|
||||
-ms-animation: status-danger-background 2s ease infinite; }
|
||||
.widget.status-danger .icon-warning-sign {
|
||||
display: inline-block; }
|
||||
.widget.status-danger .title, .widget.status-danger .more-info {
|
||||
color: #fff; }
|
||||
|
||||
.more-info {
|
||||
font-size: 15px;
|
||||
position: absolute;
|
||||
bottom: 32px;
|
||||
left: 0;
|
||||
right: 0; }
|
||||
|
||||
.updated-at {
|
||||
font-size: 15px;
|
||||
position: absolute;
|
||||
bottom: 12px;
|
||||
left: 0;
|
||||
right: 0; }
|
||||
|
||||
#save-gridster {
|
||||
display: none;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
margin: 0px auto;
|
||||
left: 50%;
|
||||
z-index: 1000;
|
||||
background: black;
|
||||
width: 190px;
|
||||
text-align: center;
|
||||
border: 1px solid white;
|
||||
border-top: 0px;
|
||||
margin-left: -95px;
|
||||
padding: 15px; }
|
||||
|
||||
#save-gridster:hover {
|
||||
padding-top: 25px; }
|
||||
|
||||
#saving-instructions {
|
||||
display: none;
|
||||
padding: 10px;
|
||||
width: 500px;
|
||||
height: 122px;
|
||||
z-index: 1000;
|
||||
background: white;
|
||||
top: 100px;
|
||||
color: black;
|
||||
font-size: 15px;
|
||||
padding-bottom: 4px; }
|
||||
#saving-instructions textarea {
|
||||
white-space: nowrap;
|
||||
width: 494px;
|
||||
height: 80px; }
|
||||
|
||||
#lean_overlay {
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: #000;
|
||||
display: none; }
|
||||
|
||||
#container {
|
||||
padding-top: 5px; }
|
||||
|
||||
.clearfix:before, .clearfix:after {
|
||||
content: "\0020";
|
||||
display: block;
|
||||
height: 0;
|
||||
overflow: hidden; }
|
||||
|
||||
.clearfix:after {
|
||||
clear: both; }
|
||||
|
||||
.clearfix {
|
||||
zoom: 1; }
|
||||
|
||||
.widget-clock {
|
||||
background-color: #dc5945; }
|
||||
|
||||
.widget-comments {
|
||||
background-color: #eb9c3c; }
|
||||
.widget-comments .title {
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
margin-bottom: 15px; }
|
||||
.widget-comments .name {
|
||||
padding-left: 5px; }
|
||||
.widget-comments .comment-container {
|
||||
display: none; }
|
||||
.widget-comments .more-info {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
|
||||
.widget-graph {
|
||||
background-color: #dc5945;
|
||||
position: relative; }
|
||||
.widget-graph svg {
|
||||
position: absolute;
|
||||
opacity: 0.4;
|
||||
fill-opacity: 0.4;
|
||||
left: 0px;
|
||||
top: 0px; }
|
||||
.widget-graph .title, .widget-graph .value {
|
||||
position: relative;
|
||||
z-index: 99; }
|
||||
.widget-graph .title {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-graph .more-info {
|
||||
color: rgba(255, 255, 255, 0.3);
|
||||
font-weight: 600;
|
||||
font-size: 20px;
|
||||
margin-top: 0; }
|
||||
.widget-graph .x_tick {
|
||||
position: absolute;
|
||||
bottom: 0; }
|
||||
.widget-graph .x_tick .title {
|
||||
font-size: 20px;
|
||||
color: rgba(0, 0, 0, 0.4);
|
||||
opacity: 0.5;
|
||||
padding-bottom: 3px; }
|
||||
.widget-graph .y_ticks {
|
||||
font-size: 20px;
|
||||
fill: rgba(0, 0, 0, 0.4);
|
||||
fill-opacity: 1; }
|
||||
.widget-graph .domain {
|
||||
display: none; }
|
||||
|
||||
.widget-hotness {
|
||||
background-color: #000000;
|
||||
-webkit-transition: background-color 1s linear;
|
||||
-moz-transition: background-color 1s linear;
|
||||
-o-transition: background-color 1s linear;
|
||||
transition: background-color 1s linear; }
|
||||
.widget-hotness .title {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-hotness .value {
|
||||
color: #FFFFFF; }
|
||||
.widget-hotness .updated-at {
|
||||
color: rgba(0, 0, 0, 0.3); }
|
||||
|
||||
.hotness0 {
|
||||
background-color: #00C176; }
|
||||
|
||||
.hotness1 {
|
||||
background-color: #88C100; }
|
||||
|
||||
.hotness2 {
|
||||
background-color: #FABE28; }
|
||||
|
||||
.hotness3 {
|
||||
background-color: #FF8A00; }
|
||||
|
||||
.hotness4 {
|
||||
background-color: #FF003C; }
|
||||
|
||||
.widget-iframe {
|
||||
padding: 3px 0px 0px 0px !important; }
|
||||
.widget-iframe iframe {
|
||||
width: 100%;
|
||||
height: 100%; }
|
||||
|
||||
.widget-image {
|
||||
background-color: #4b4b4b; }
|
||||
|
||||
.widget-list {
|
||||
background-color: #12b0c5;
|
||||
vertical-align: top; }
|
||||
.widget-list .title {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-list ol, .widget-list ul {
|
||||
margin: 0 15px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-list ol {
|
||||
list-style-position: inside; }
|
||||
.widget-list li {
|
||||
margin-bottom: 5px; }
|
||||
.widget-list .list-nostyle {
|
||||
list-style: none; }
|
||||
.widget-list .label {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-list .value {
|
||||
float: right;
|
||||
margin-left: 12px;
|
||||
font-weight: 600;
|
||||
color: #fff; }
|
||||
.widget-list .updated-at {
|
||||
color: rgba(0, 0, 0, 0.3); }
|
||||
.widget-list .more-info {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
|
||||
.widget-meter {
|
||||
background-color: #9c4274; }
|
||||
.widget-meter input.meter {
|
||||
background-color: #662b4c;
|
||||
color: #fff; }
|
||||
.widget-meter .title {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-meter .more-info {
|
||||
color: rgba(255, 255, 255, 0.3); }
|
||||
.widget-meter .updated-at {
|
||||
color: rgba(0, 0, 0, 0.3); }
|
||||
|
||||
;;
|
||||
.widget-number {
|
||||
background-color: #47bbb3; }
|
||||
.widget-number .title {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-number .value {
|
||||
color: #fff; }
|
||||
.widget-number .change-rate {
|
||||
font-weight: 500;
|
||||
font-size: 30px;
|
||||
color: #fff; }
|
||||
.widget-number .more-info {
|
||||
color: rgba(255, 255, 255, 0.7); }
|
||||
.widget-number .updated-at {
|
||||
color: rgba(0, 0, 0, 0.3); }
|
||||
|
||||
.widget.widget-progress-bars {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
position: relative;
|
||||
background-color: #2db4d4;
|
||||
vertical-align: baseline; }
|
||||
.widget.widget-progress-bars * {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
.widget.widget-progress-bars .title {
|
||||
color: #c1e9f2;
|
||||
margin-bottom: 5px; }
|
||||
.widget.widget-progress-bars .rows-container {
|
||||
height: 85%;
|
||||
width: 100%;
|
||||
color: #c1e9f2;
|
||||
font-size: 0.7em;
|
||||
text-align: center; }
|
||||
.widget.widget-progress-bars .row {
|
||||
height: 0%;
|
||||
width: 100%;
|
||||
vertical-align: middle;
|
||||
display: table;
|
||||
transition-property: height;
|
||||
transition-duration: 0.3s;
|
||||
transition-timing-function: linear; }
|
||||
.widget.widget-progress-bars .row-content {
|
||||
padding-left: 5px;
|
||||
display: table-cell;
|
||||
vertical-align: middle; }
|
||||
.widget.widget-progress-bars .project-name {
|
||||
display: inline-block;
|
||||
width: 35%;
|
||||
padding-right: 0.7em;
|
||||
text-align: left;
|
||||
vertical-align: middle;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap; }
|
||||
.widget.widget-progress-bars .outer-progress-bar {
|
||||
display: inline-block;
|
||||
width: 65%;
|
||||
vertical-align: middle;
|
||||
border: 0.23333em solid #2391ab;
|
||||
border-radius: 1.4em;
|
||||
background-color: #97daea; }
|
||||
.widget.widget-progress-bars .outer-progress-bar .inner-progress-bar {
|
||||
background-color: #2391ab;
|
||||
border-radius: 0.35em;
|
||||
color: #ffffff; }
|
||||
.widget.widget-progress-bars .zebra-stripe {
|
||||
background-color: #57c3dd; }
|
||||
|
||||
.widget-text {
|
||||
background-color: #ec663c; }
|
||||
.widget-text .title {
|
||||
@ -3632,6 +4071,367 @@ li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before {
|
||||
transition: all 0s !important;
|
||||
}
|
||||
|
||||
/* Uncomment this if you set helper : "clone" in draggable options */
|
||||
/*.gridster .player {
|
||||
opacity:0;
|
||||
}*/
|
||||
/* Font Awesome
|
||||
the iconic font designed for use with Twitter Bootstrap
|
||||
-------------------------------------------------------
|
||||
The full suite of pictographic icons, examples, and documentation
|
||||
can be found at: http://fortawesome.github.com/Font-Awesome/
|
||||
|
||||
License
|
||||
-------------------------------------------------------
|
||||
The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0:
|
||||
http://creativecommons.org/licenses/by/3.0/ A mention of
|
||||
'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable
|
||||
source code is considered acceptable attribution (most common on the web).
|
||||
If human readable source code is not available to the end user, a mention in
|
||||
an 'About' or 'Credits' screen is considered acceptable (most common in desktop
|
||||
or mobile software).
|
||||
|
||||
Contact
|
||||
-------------------------------------------------------
|
||||
Email: dave@davegandy.com
|
||||
Twitter: http://twitter.com/fortaweso_me
|
||||
Work: http://lemonwi.se co-founder
|
||||
|
||||
*/
|
||||
@font-face {
|
||||
font-family: "FontAwesome";
|
||||
src: url('/assets/fontawesome-webfont.eot');
|
||||
src: url('/assets/fontawesome-webfont.eot?#iefix') format('eot'), url('/assets/fontawesome-webfont.woff') format('woff'), url('/assets/fontawesome-webfont.ttf') format('truetype'), url('/assets/fontawesome-webfont.svg#FontAwesome') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* Font Awesome styles
|
||||
------------------------------------------------------- */
|
||||
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||
font-family: FontAwesome;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
a [class^="icon-"], a [class*=" icon-"] {
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
}
|
||||
/* makes the font 33% larger relative to the icon container */
|
||||
.icon-large:before {
|
||||
vertical-align: top;
|
||||
font-size: 1.3333333333333333em;
|
||||
}
|
||||
.btn [class^="icon-"], .btn [class*=" icon-"] {
|
||||
/* keeps button heights with and without icons the same */
|
||||
|
||||
line-height: .9em;
|
||||
}
|
||||
li [class^="icon-"], li [class*=" icon-"] {
|
||||
display: inline-block;
|
||||
width: 1.25em;
|
||||
text-align: center;
|
||||
}
|
||||
li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] {
|
||||
/* 1.5 increased font size for icon-large * 1.25 width */
|
||||
|
||||
width: 1.875em;
|
||||
}
|
||||
li[class^="icon-"], li[class*=" icon-"] {
|
||||
margin-left: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
li[class^="icon-"]:before, li[class*=" icon-"]:before {
|
||||
text-indent: -2em;
|
||||
text-align: center;
|
||||
}
|
||||
li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before {
|
||||
text-indent: -1.3333333333333333em;
|
||||
}
|
||||
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||
readers do not read off random characters that represent icons */
|
||||
.icon-glass:before { content: "\f000"; }
|
||||
.icon-music:before { content: "\f001"; }
|
||||
.icon-search:before { content: "\f002"; }
|
||||
.icon-envelope:before { content: "\f003"; }
|
||||
.icon-heart:before { content: "\f004"; }
|
||||
.icon-star:before { content: "\f005"; }
|
||||
.icon-star-empty:before { content: "\f006"; }
|
||||
.icon-user:before { content: "\f007"; }
|
||||
.icon-film:before { content: "\f008"; }
|
||||
.icon-th-large:before { content: "\f009"; }
|
||||
.icon-th:before { content: "\f00a"; }
|
||||
.icon-th-list:before { content: "\f00b"; }
|
||||
.icon-ok:before { content: "\f00c"; }
|
||||
.icon-remove:before { content: "\f00d"; }
|
||||
.icon-zoom-in:before { content: "\f00e"; }
|
||||
|
||||
.icon-zoom-out:before { content: "\f010"; }
|
||||
.icon-off:before { content: "\f011"; }
|
||||
.icon-signal:before { content: "\f012"; }
|
||||
.icon-cog:before { content: "\f013"; }
|
||||
.icon-trash:before { content: "\f014"; }
|
||||
.icon-home:before { content: "\f015"; }
|
||||
.icon-file:before { content: "\f016"; }
|
||||
.icon-time:before { content: "\f017"; }
|
||||
.icon-road:before { content: "\f018"; }
|
||||
.icon-download-alt:before { content: "\f019"; }
|
||||
.icon-download:before { content: "\f01a"; }
|
||||
.icon-upload:before { content: "\f01b"; }
|
||||
.icon-inbox:before { content: "\f01c"; }
|
||||
.icon-play-circle:before { content: "\f01d"; }
|
||||
.icon-repeat:before { content: "\f01e"; }
|
||||
|
||||
/* \f020 doesn't work in Safari. all shifted one down */
|
||||
.icon-refresh:before { content: "\f021"; }
|
||||
.icon-list-alt:before { content: "\f022"; }
|
||||
.icon-lock:before { content: "\f023"; }
|
||||
.icon-flag:before { content: "\f024"; }
|
||||
.icon-headphones:before { content: "\f025"; }
|
||||
.icon-volume-off:before { content: "\f026"; }
|
||||
.icon-volume-down:before { content: "\f027"; }
|
||||
.icon-volume-up:before { content: "\f028"; }
|
||||
.icon-qrcode:before { content: "\f029"; }
|
||||
.icon-barcode:before { content: "\f02a"; }
|
||||
.icon-tag:before { content: "\f02b"; }
|
||||
.icon-tags:before { content: "\f02c"; }
|
||||
.icon-book:before { content: "\f02d"; }
|
||||
.icon-bookmark:before { content: "\f02e"; }
|
||||
.icon-print:before { content: "\f02f"; }
|
||||
|
||||
.icon-camera:before { content: "\f030"; }
|
||||
.icon-font:before { content: "\f031"; }
|
||||
.icon-bold:before { content: "\f032"; }
|
||||
.icon-italic:before { content: "\f033"; }
|
||||
.icon-text-height:before { content: "\f034"; }
|
||||
.icon-text-width:before { content: "\f035"; }
|
||||
.icon-align-left:before { content: "\f036"; }
|
||||
.icon-align-center:before { content: "\f037"; }
|
||||
.icon-align-right:before { content: "\f038"; }
|
||||
.icon-align-justify:before { content: "\f039"; }
|
||||
.icon-list:before { content: "\f03a"; }
|
||||
.icon-indent-left:before { content: "\f03b"; }
|
||||
.icon-indent-right:before { content: "\f03c"; }
|
||||
.icon-facetime-video:before { content: "\f03d"; }
|
||||
.icon-picture:before { content: "\f03e"; }
|
||||
|
||||
.icon-pencil:before { content: "\f040"; }
|
||||
.icon-map-marker:before { content: "\f041"; }
|
||||
.icon-adjust:before { content: "\f042"; }
|
||||
.icon-tint:before { content: "\f043"; }
|
||||
.icon-edit:before { content: "\f044"; }
|
||||
.icon-share:before { content: "\f045"; }
|
||||
.icon-check:before { content: "\f046"; }
|
||||
.icon-move:before { content: "\f047"; }
|
||||
.icon-step-backward:before { content: "\f048"; }
|
||||
.icon-fast-backward:before { content: "\f049"; }
|
||||
.icon-backward:before { content: "\f04a"; }
|
||||
.icon-play:before { content: "\f04b"; }
|
||||
.icon-pause:before { content: "\f04c"; }
|
||||
.icon-stop:before { content: "\f04d"; }
|
||||
.icon-forward:before { content: "\f04e"; }
|
||||
|
||||
.icon-fast-forward:before { content: "\f050"; }
|
||||
.icon-step-forward:before { content: "\f051"; }
|
||||
.icon-eject:before { content: "\f052"; }
|
||||
.icon-chevron-left:before { content: "\f053"; }
|
||||
.icon-chevron-right:before { content: "\f054"; }
|
||||
.icon-plus-sign:before { content: "\f055"; }
|
||||
.icon-minus-sign:before { content: "\f056"; }
|
||||
.icon-remove-sign:before { content: "\f057"; }
|
||||
.icon-ok-sign:before { content: "\f058"; }
|
||||
.icon-question-sign:before { content: "\f059"; }
|
||||
.icon-info-sign:before { content: "\f05a"; }
|
||||
.icon-screenshot:before { content: "\f05b"; }
|
||||
.icon-remove-circle:before { content: "\f05c"; }
|
||||
.icon-ok-circle:before { content: "\f05d"; }
|
||||
.icon-ban-circle:before { content: "\f05e"; }
|
||||
|
||||
.icon-arrow-left:before { content: "\f060"; }
|
||||
.icon-arrow-right:before { content: "\f061"; }
|
||||
.icon-arrow-up:before { content: "\f062"; }
|
||||
.icon-arrow-down:before { content: "\f063"; }
|
||||
.icon-share-alt:before { content: "\f064"; }
|
||||
.icon-resize-full:before { content: "\f065"; }
|
||||
.icon-resize-small:before { content: "\f066"; }
|
||||
.icon-plus:before { content: "\f067"; }
|
||||
.icon-minus:before { content: "\f068"; }
|
||||
.icon-asterisk:before { content: "\f069"; }
|
||||
.icon-exclamation-sign:before { content: "\f06a"; }
|
||||
.icon-gift:before { content: "\f06b"; }
|
||||
.icon-leaf:before { content: "\f06c"; }
|
||||
.icon-fire:before { content: "\f06d"; }
|
||||
.icon-eye-open:before { content: "\f06e"; }
|
||||
|
||||
.icon-eye-close:before { content: "\f070"; }
|
||||
.icon-warning-sign:before { content: "\f071"; }
|
||||
.icon-plane:before { content: "\f072"; }
|
||||
.icon-calendar:before { content: "\f073"; }
|
||||
.icon-random:before { content: "\f074"; }
|
||||
.icon-comment:before { content: "\f075"; }
|
||||
.icon-magnet:before { content: "\f076"; }
|
||||
.icon-chevron-up:before { content: "\f077"; }
|
||||
.icon-chevron-down:before { content: "\f078"; }
|
||||
.icon-retweet:before { content: "\f079"; }
|
||||
.icon-shopping-cart:before { content: "\f07a"; }
|
||||
.icon-folder-close:before { content: "\f07b"; }
|
||||
.icon-folder-open:before { content: "\f07c"; }
|
||||
.icon-resize-vertical:before { content: "\f07d"; }
|
||||
.icon-resize-horizontal:before { content: "\f07e"; }
|
||||
|
||||
.icon-bar-chart:before { content: "\f080"; }
|
||||
.icon-twitter-sign:before { content: "\f081"; }
|
||||
.icon-facebook-sign:before { content: "\f082"; }
|
||||
.icon-camera-retro:before { content: "\f083"; }
|
||||
.icon-key:before { content: "\f084"; }
|
||||
.icon-cogs:before { content: "\f085"; }
|
||||
.icon-comments:before { content: "\f086"; }
|
||||
.icon-thumbs-up:before { content: "\f087"; }
|
||||
.icon-thumbs-down:before { content: "\f088"; }
|
||||
.icon-star-half:before { content: "\f089"; }
|
||||
.icon-heart-empty:before { content: "\f08a"; }
|
||||
.icon-signout:before { content: "\f08b"; }
|
||||
.icon-linkedin-sign:before { content: "\f08c"; }
|
||||
.icon-pushpin:before { content: "\f08d"; }
|
||||
.icon-external-link:before { content: "\f08e"; }
|
||||
|
||||
.icon-signin:before { content: "\f090"; }
|
||||
.icon-trophy:before { content: "\f091"; }
|
||||
.icon-github-sign:before { content: "\f092"; }
|
||||
.icon-upload-alt:before { content: "\f093"; }
|
||||
.icon-lemon:before { content: "\f094"; }
|
||||
.icon-phone:before { content: "\f095"; }
|
||||
.icon-check-empty:before { content: "\f096"; }
|
||||
.icon-bookmark-empty:before { content: "\f097"; }
|
||||
.icon-phone-sign:before { content: "\f098"; }
|
||||
.icon-twitter:before { content: "\f099"; }
|
||||
.icon-facebook:before { content: "\f09a"; }
|
||||
.icon-github:before { content: "\f09b"; }
|
||||
.icon-unlock:before { content: "\f09c"; }
|
||||
.icon-credit-card:before { content: "\f09d"; }
|
||||
.icon-rss:before { content: "\f09e"; }
|
||||
|
||||
.icon-hdd:before { content: "\f0a0"; }
|
||||
.icon-bullhorn:before { content: "\f0a1"; }
|
||||
.icon-bell:before { content: "\f0a2"; }
|
||||
.icon-certificate:before { content: "\f0a3"; }
|
||||
.icon-hand-right:before { content: "\f0a4"; }
|
||||
.icon-hand-left:before { content: "\f0a5"; }
|
||||
.icon-hand-up:before { content: "\f0a6"; }
|
||||
.icon-hand-down:before { content: "\f0a7"; }
|
||||
.icon-circle-arrow-left:before { content: "\f0a8"; }
|
||||
.icon-circle-arrow-right:before { content: "\f0a9"; }
|
||||
.icon-circle-arrow-up:before { content: "\f0aa"; }
|
||||
.icon-circle-arrow-down:before { content: "\f0ab"; }
|
||||
.icon-globe:before { content: "\f0ac"; }
|
||||
.icon-wrench:before { content: "\f0ad"; }
|
||||
.icon-tasks:before { content: "\f0ae"; }
|
||||
|
||||
.icon-filter:before { content: "\f0b0"; }
|
||||
.icon-briefcase:before { content: "\f0b1"; }
|
||||
.icon-fullscreen:before { content: "\f0b2"; }
|
||||
|
||||
.icon-group:before { content: "\f0c0"; }
|
||||
.icon-link:before { content: "\f0c1"; }
|
||||
.icon-cloud:before { content: "\f0c2"; }
|
||||
.icon-beaker:before { content: "\f0c3"; }
|
||||
.icon-cut:before { content: "\f0c4"; }
|
||||
.icon-copy:before { content: "\f0c5"; }
|
||||
.icon-paper-clip:before { content: "\f0c6"; }
|
||||
.icon-save:before { content: "\f0c7"; }
|
||||
.icon-sign-blank:before { content: "\f0c8"; }
|
||||
.icon-reorder:before { content: "\f0c9"; }
|
||||
.icon-list-ul:before { content: "\f0ca"; }
|
||||
.icon-list-ol:before { content: "\f0cb"; }
|
||||
.icon-strikethrough:before { content: "\f0cc"; }
|
||||
.icon-underline:before { content: "\f0cd"; }
|
||||
.icon-table:before { content: "\f0ce"; }
|
||||
|
||||
.icon-magic:before { content: "\f0d0"; }
|
||||
.icon-truck:before { content: "\f0d1"; }
|
||||
.icon-pinterest:before { content: "\f0d2"; }
|
||||
.icon-pinterest-sign:before { content: "\f0d3"; }
|
||||
.icon-google-plus-sign:before { content: "\f0d4"; }
|
||||
.icon-google-plus:before { content: "\f0d5"; }
|
||||
.icon-money:before { content: "\f0d6"; }
|
||||
.icon-caret-down:before { content: "\f0d7"; }
|
||||
.icon-caret-up:before { content: "\f0d8"; }
|
||||
.icon-caret-left:before { content: "\f0d9"; }
|
||||
.icon-caret-right:before { content: "\f0da"; }
|
||||
.icon-columns:before { content: "\f0db"; }
|
||||
.icon-sort:before { content: "\f0dc"; }
|
||||
.icon-sort-down:before { content: "\f0dd"; }
|
||||
.icon-sort-up:before { content: "\f0de"; }
|
||||
|
||||
.icon-envelope-alt:before { content: "\f0e0"; }
|
||||
.icon-linkedin:before { content: "\f0e1"; }
|
||||
.icon-undo:before { content: "\f0e2"; }
|
||||
.icon-legal:before { content: "\f0e3"; }
|
||||
.icon-dashboard:before { content: "\f0e4"; }
|
||||
.icon-comment-alt:before { content: "\f0e5"; }
|
||||
.icon-comments-alt:before { content: "\f0e6"; }
|
||||
.icon-bolt:before { content: "\f0e7"; }
|
||||
.icon-sitemap:before { content: "\f0e8"; }
|
||||
.icon-umbrella:before { content: "\f0e9"; }
|
||||
.icon-paste:before { content: "\f0ea"; }
|
||||
|
||||
.icon-user-md:before { content: "\f200"; }
|
||||
|
||||
/*! gridster.js - v0.1.0 - 2012-08-14
|
||||
* http://gridster.net/
|
||||
* Copyright (c) 2012 ducksboard; Licensed MIT */
|
||||
|
||||
.gridster {
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.gridster > * {
|
||||
margin: 0 auto;
|
||||
-webkit-transition: height .4s;
|
||||
-moz-transition: height .4s;
|
||||
-o-transition: height .4s;
|
||||
-ms-transition: height .4s;
|
||||
transition: height .4s;
|
||||
}
|
||||
|
||||
.gridster .gs_w{
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.ready .gs_w:not(.preview-holder) {
|
||||
-webkit-transition: opacity .3s, left .3s, top .3s;
|
||||
-moz-transition: opacity .3s, left .3s, top .3s;
|
||||
-o-transition: opacity .3s, left .3s, top .3s;
|
||||
transition: opacity .3s, left .3s, top .3s;
|
||||
}
|
||||
|
||||
.gridster .preview-holder {
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
border-color: #fff;
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.gridster .player-revert {
|
||||
z-index: 10!important;
|
||||
-webkit-transition: left .3s, top .3s!important;
|
||||
-moz-transition: left .3s, top .3s!important;
|
||||
-o-transition: left .3s, top .3s!important;
|
||||
transition: left .3s, top .3s!important;
|
||||
}
|
||||
|
||||
.gridster .dragging {
|
||||
z-index: 10!important;
|
||||
-webkit-transition: all 0s !important;
|
||||
-moz-transition: all 0s !important;
|
||||
-o-transition: all 0s !important;
|
||||
transition: all 0s !important;
|
||||
}
|
||||
|
||||
/* Uncomment this if you set helper : "clone" in draggable options */
|
||||
/*.gridster .player {
|
||||
opacity:0;
|
||||
|
@ -7,6 +7,7 @@ def run(app, xyzzy):
|
||||
BuzzwordsSampler(xyzzy, 2), # 10
|
||||
ConvergenceSampler(xyzzy, 1),
|
||||
ProgressBarsSampler(xyzzy, 5),
|
||||
UsageGaugeSampler(xyzzy, 3),
|
||||
]
|
||||
|
||||
try:
|
||||
|
@ -80,4 +80,16 @@ class ProgressBarsSampler(DashieSampler):
|
||||
for i in range(5):
|
||||
random_progress.append({'name': "Project %d" % i, 'progress': random.randint(0, 100)})
|
||||
|
||||
return {'title': "Progress Bars Title", 'progress_items': random_progress}
|
||||
return {'title': "Progress Bars Title", 'progress_items': random_progress}
|
||||
|
||||
|
||||
class UsageGaugeSampler(DashieSampler):
|
||||
def __init__(self, *args, **kwargs):
|
||||
DashieSampler.__init__(self, *args, **kwargs)
|
||||
|
||||
def name(self):
|
||||
return 'usage_gauge'
|
||||
|
||||
def sample(self):
|
||||
return {'value': random.randint(0, 100), 'max': 100}
|
||||
|
||||
|
@ -41,6 +41,7 @@ def javascripts():
|
||||
'widgets/number/number.coffee',
|
||||
'widgets/hotness/hotness.coffee',
|
||||
'widgets/progress_bars/progress_bars.coffee',
|
||||
'widgets/usage_gauge/usage_gauge.coffee',
|
||||
]
|
||||
nizzle = True
|
||||
if not nizzle:
|
||||
|
@ -66,6 +66,11 @@
|
||||
<li data-row="4" data-col="2" data-sizex="2" data-sizey="1">
|
||||
<div data-id="progress_bars" data-view="ProgressBars" data-title="Project Bars"></div>
|
||||
</li>
|
||||
|
||||
<li data-row="4" data-col="4" data-sizex="1" data-sizey="1">
|
||||
<!-- <style scoped>.memcached_used_memory .gauge { height: 145px;}</style> -->
|
||||
<div data-id="usage_gauge" data-view="UsageGauge" style="background-color: #3e3735" data-title="Power !!"></div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
5
pydashie/widgets/usage_gauge/attribution
Normal file
5
pydashie/widgets/usage_gauge/attribution
Normal file
@ -0,0 +1,5 @@
|
||||
Direct port of the Usage Gauge Widget from Shopify's Dashie Widget Challenge to pydashie
|
||||
|
||||
All attribution to kamisama -
|
||||
|
||||
https://gist.github.com/kamisama/6587791
|
20
pydashie/widgets/usage_gauge/usage_gauge.coffee
Normal file
20
pydashie/widgets/usage_gauge/usage_gauge.coffee
Normal file
@ -0,0 +1,20 @@
|
||||
class Dashing.UsageGauge extends Dashing.Widget
|
||||
@accessor 'value', Dashing.AnimatedValue
|
||||
|
||||
ready: ->
|
||||
$(@node).find(".value").before("<div class='gauge'></div>")
|
||||
$(@node).find(".gauge").append("<div class='gauge-meter'></div>")
|
||||
@meter = $(@node).find(".gauge-meter");
|
||||
|
||||
onData: (data) ->
|
||||
@meter.animate({height: Batman.mixin Batman.Filters.percentage(data.value, @get("max")) + "%"})
|
||||
|
||||
@accessor "total", ->
|
||||
@get("max")
|
||||
|
||||
@accessor "suffix", ->
|
||||
" %"
|
||||
|
||||
Batman.mixin Batman.Filters,
|
||||
percentage: (n, total) ->
|
||||
Math.round(n * 100 / total)
|
5
pydashie/widgets/usage_gauge/usage_gauge.html
Normal file
5
pydashie/widgets/usage_gauge/usage_gauge.html
Normal file
@ -0,0 +1,5 @@
|
||||
<h1 class="title" data-bind="title"></h1>
|
||||
|
||||
<h2 class="value" data-bind="value | percentage total | append suffix"></h2>
|
||||
|
||||
<p class="updated-at" data-bind="updatedAtMessage"></p>
|
56
pydashie/widgets/usage_gauge/usage_gauge.scss
Normal file
56
pydashie/widgets/usage_gauge/usage_gauge.scss
Normal file
@ -0,0 +1,56 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
// Sass declarations
|
||||
// ----------------------------------------------------------------------------
|
||||
$background-color: #ec223f;
|
||||
|
||||
$title-color: rgba(255, 255, 255, 0.7);
|
||||
$updated-at-color: rgba(255, 255, 255, 0.5);
|
||||
|
||||
$meter-background: darken($background-color, 15%);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Widget-meter styles
|
||||
// ----------------------------------------------------------------------------
|
||||
.widget-usage-gauge {
|
||||
|
||||
background-color: $background-color;
|
||||
|
||||
.title {
|
||||
color: $title-color;
|
||||
}
|
||||
|
||||
.value {
|
||||
font-weight: 600;
|
||||
font-size: 30px
|
||||
}
|
||||
|
||||
.gauge {
|
||||
width: 100px;
|
||||
height: 180px;
|
||||
display: block;
|
||||
margin: 0 auto 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.gauge-meter, .gauge::after {
|
||||
display: block;
|
||||
background: url("/assets/images/usage-gauge-background.png") repeat-y center bottom;
|
||||
}
|
||||
|
||||
.gauge::after {
|
||||
content: "";
|
||||
height: 100%;
|
||||
opacity: 0.15;
|
||||
}
|
||||
|
||||
.gauge-meter {
|
||||
width: 100px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.updated-at {
|
||||
color: $updated-at-color
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user