UNPKG

pm2-gui-fr

Version:

Une interface web et terminal élégante pour Unitech / PM2.

672 lines (553 loc) 10.6 kB
/***************** COMMON ******************/ html, body { background-color: #000; font-family: Consolas, Menlo, Monaco, monospace; letter-spacing: 0.5px; height: 100%; -webkit-text-size-adjust: none; } .load { background: url(/img/ajax-loading.gif) no-repeat center center; width: 20px; height: 20px; display: block; } /***************** END OF COMMON ******************/ /***************** SPINNER ******************/ .spinner { z-index: 9999; text-align: center; position: absolute; top: 50%; left: 50%; margin-left: -50px; margin-top: -20px; width: 100px; height: 40px; } @-webkit-keyframes stretchdelay { 0%, 40%, 100% { -webkit-transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1.0) } } @-moz-keyframes stretchdelay { 0%, 40%, 100% { -webkit-transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1.0) } } @-o-keyframes stretchdelay { 0%, 40%, 100% { -webkit-transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1.0) } } @keyframes stretchdelay { 0%, 40%, 100% { transform: scaleY(0.4); -moz-transform: scaleY(0.4); -o-transform: scaleY(0.4); -webkit-transform: scaleY(0.4); } 20% { transform: scaleY(1.0); -moz-transform: scaleY(1.0); -o-transform: scaleY(1.0); -webkit-transform: scaleY(1.0); } } .spinner > div { background-color: #f0f0f0; height: 100%; display: inline-block; width: 8px; margin: auto 2px; -webkit-animation: stretchdelay 1.1s infinite ease-in-out; -moz-animation: stretchdelay 1.1s infinite ease-in-out; -o-animation: stretchdelay 1.1s infinite ease-in-out; animation: stretchdelay 1.1s infinite ease-in-out; } .spinner > div:nth-child(1) { -webkit-animation-delay: 0s; -moz-animation-delay: 0s; -o-animation-delay: 0s; animation-delay: 0s; } .spinner > div:nth-child(2) { -webkit-animation-delay: 0.1s; -moz-animation-delay: 0.1s; -o-animation-delay: 0.1s; animation-delay: 0.1s; } .spinner > div:nth-child(3) { -webkit-animation-delay: 0.2s; -moz-animation-delay: 0.2s; -o-animation-delay: 0.2s; animation-delay: 0.2s; } .spinner > div:nth-child(4) { -webkit-animation-delay: 0.3s; -moz-animation-delay: 0.3s; -o-animation-delay: 0.3s; animation-delay: 0.3s; } .spinner > div:nth-child(5) { -webkit-animation-delay: 0.4s; -moz-animation-delay: 0.4s; -o-animation-delay: 0.4s; animation-delay: 0.4s; } /***************** END OF SPINNER ******************/ /***************** MEM && CPU ******************/ .polar-usage { margin: 0 auto; position: relative; } .polar-usage text { text-anchor: middle; font-size: 10px; fill: #fff; } .polar-usage .chooser { position: absolute; z-index: 99; text-align: center; vertical-align: middle; } .polar-usage .chooser button { padding: 3px 6px 2px; background: transparent; border-color: transparent; } .polar-usage .chooser button:hover { background-color: #3071a9; border-color: #285e8e; } .polar-usage .chooser button .glyphicon { top: 2px; } .polar-usage .chooser .dropdown-menu { min-width: 100px; background-color: #41497a; opacity: 0.8; } .polar-usage .chooser.open .dropdown-menu:before { left: 35px; width: 14px; right: auto; position: absolute; top: -7px; display: inline-block; border-right: 7px solid rgba(0, 0, 0, 0); border-bottom: 7px solid #41497a; border-left: 7px solid rgba(0, 0, 0, 0); border-bottom-color: rgba(0, 0, 0, 0.2); content: ''; } .polar-usage .chooser.open .dropdown-menu:after { width: 12px; left: 36px; right: auto; position: absolute; top: -6px; display: inline-block; border-right: 6px solid rgba(0, 0, 0, 0); border-bottom: 6px solid #41497a; border-left: 6px solid rgba(0, 0, 0, 0); content: ''; } .polar-usage .chooser .dropdown-menu li { margin: 0 5px; padding-left: 2px; } .polar-usage .chooser .dropdown-menu li > a { padding-left: 0; padding-right: 0; color: #f0f0f0; font-style: 12px; font-weight: normal; text-shadow: none; } .polar-usage .chooser .dropdown-menu li:hover > a { color: #f6e800; } .polar-usage .chooser .dropdown-menu li.active > a { color: #0bab24; } .polar-usage .chooser .dropdown-menu li:hover > a, .polar-usage .chooser .dropdown-menu li.active > a { background-color: transparent; font-weight: bold; } .system-info { width: 200px; margin: 0 auto; display: none; } .system-info dl * { width: 95px; height: 20px; line-height: 20px; display: inline-block; margin: 0; font-weight: normal; } .system-info dl dt { padding-right: 5px; text-align: right; color: #fff; } .system-info dl dd { text-align: left; padding-left: 5px; color: #ccc; } .procs-hint-container { position: absolute; bottom: -1px; left: 50%; margin-left: -50px; width: 100px; height: 50px; background: #3b4163; border-radius: 50px 50px 0 0; box-shadow: 0 -2px 3px #272e44; -moz-box-shadow: 0 -2px 3px #272e44; -o-box-shadow: 0 -2px 3px #272e44; } .procs-hint-container div { width: 100%; line-height: 65px; text-align: center; font-size: 16px; color: #8e99bb; text-shadow: 1px 1px 1px #000; } .procs-hint-container div span { color: #c1ccec; } /***************** END OF MEM && CPU ******************/ /***************** REPO && VER ******************/ .repo { width: 100px; text-align: center; position: absolute; left: 50%; top: 3px; margin-left: -50px; } .repo a { display: block; color: #666; } .repo a:hover { color: #fff; } .repo span { display: block; color: #888; font-size: 10px; } /***************** END OF REPO && VER ******************/ /***************** PROCESSES ******************/ .procs, .slimScrollDiv { width: 720px; margin: 0 auto; } .procs .proc-div { height: 1px; margin: 5px auto; width: 95%; background: -webkit-gradient(linear, 0% 0%, 100% 100%, color-stop(0, #3b4163), color-stop(0.3, rgb(255, 255, 255)), color-stop(0.9, #3b4163)); background: -moz-linear-gradient(left, #3b4163, rgb(255, 255, 255), #3b4163); background: -o-linear-gradient(left, #3b4163, rgb(255, 255, 255), #3b4163); filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#3b4163, endColorstr=#fff, GradientType=1); } .procs .proc { height: 50px; position: relative; left: 20px; right: 20px; } .procs .proc-stop .proc-info { opacity: 0.8; } .procs .proc .proc-col { display: table-cell; } .procs .proc .proc-status { text-align: center; width: 50px; height: 50px; } .procs .proc .proc-status i { font-size: 16px; top: -18px; color: #5fe210; } .procs .proc-empty .proc-status i { color: #fddf68 } .procs .proc-stop .proc-status i { color: #e98080; } .procs .proc .proc-info { width: 600px; } .proc-info ul, .proc-info ul li { list-style: none; list-style-position: outside; margin: 0; padding: 0; } .proc-info > ul { display: block; height: 30px; } .proc-info > ul.proc-content { height: 20px; } .proc-info ul.proc-title > li { height: 30px; line-height: 30px; font-size: 16px; color: #fff; float: left; } .proc-info ul.proc-title li.proc-name { color: #73cce5; cursor: pointer; margin: 0 4px 0 2px; } .proc-info ul.proc-title li.proc-alert { color: #fff; margin: 0 4px 0 2px; } .proc-info ul.proc-title li sup { font-size: 10px; color: #4b8698; } .proc-info ul.proc-title li.proc-ops { width: 70px; float: right; text-align: right; position: relative; } .proc-ops ul, .proc-ops .load { position: absolute; right: 0; top: 0; } .proc-ops ul li { float: left; padding: 0 2px; } .proc-ops ul li i { font-size: 12px; color: #fff; cursor: pointer; opacity: 0.7; } .proc-ops ul li i:hover { opacity: 0.8; } .proc-ops ul li i:active { opacity: 1; } .proc-info ul.proc-content { height: 20px; } .proc-info ul.proc-content li { color: #ccc; height: 20px; line-height: 20px; font-size: 12px; float: left; text-align: left; padding-left: 5px; } .proc-info ul.proc-content li.proc-file { width: 300px; padding-left: 0; } .proc-info ul.proc-content li.proc-mem { color: #5cb85c; width: 35px; } .proc-info ul.proc-content li.proc-restart { color: #f0ad4e; width: 30px; } .proc-info ul.proc-content li.proc-uptime { color: #888; float: right; text-align: right; width: 150px; } .proc-info ul.proc-content li.proc-mode { width: 70px; } .proc-info ul.proc-content li.proc-mode span { border-radius: 3px; padding: 3px 5px; } .proc-info ul.proc-content li.proc-mode-fork span { color: #fff; background: #323332; } .proc-info ul.proc-content li.proc-mode-cluster span { color: #fff; background: #426dbe; } /***************** END OF PROCESSES ******************/ /***************** POPUP ******************/ .proc-popup { color: #555; -webkit-border-radius: 5px; -moz-border-radius: 5px; -o-border-radius: 5px; border-radius: 5px; } #popup { height: 330px; width: 100%; position: relative; } #popup .load { background-image: url(/img/ajax-loading-invert.gif); position: absolute; left: 50%; top: 50%; margin-left: -10px; margin-top: -10px; } #popup pre { background: transparent; border: 0; border-radius: 0; } #popup .nav { padding-left: 10px; } #popup .nav > li > a { padding: 5px 15px; } #popup .nav > li:hover > a { border-bottom: solid 1px #fff; } #popup .nav-tabs > li { margin-bottom: -2px; margin-right: 5px; } #log { padding: 5px; } #log span { font-size: 12px; } #log > span { padding: 2px; display: block; } /***************** END OF POPUP ******************/ /***************** GRAPH ******************/ .graph svg { font-size: 10px; margin: 20px auto 0 20px; } .graph .line { fill: none; stroke-width: 2px; } .graph .axis path, .graph .axis line { fill: none; stroke: #999999; shape-rendering: crispEdges; } .graph .axis text { fill: #999999 } .graph ul, .graph ul li { list-style: none; padding: 0; margin: 0; } .graph ul { position: absolute; right: 10px; top: 10px; } .graph ul li { height: 18px; line-height: 18px; list-style-type: square; font-size: 10px; font-weight: normal; } .graph ul li span { width: 10px; height: 5px; display: block; } .graph span { padding-top: 100px; display: block; text-align: center; } /***************** END OF GRAPH ******************/ #procs_action { position: absolute; left: 50%; margin-left: -140px; bottom: -145px; display: none; }