application.less 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. .gradient(@color: #FAFAFA, @start: #FFFFFF, @stop: #F2F2F2) {
  19. background: @color;
  20. background: -webkit-gradient(linear, left top, left bottom, color-stop(0, @start), color-stop(1, @stop));
  21. background: -ms-linear-gradient(top, @start, @stop);
  22. background: -moz-linear-gradient(center top, @start 0%, @stop 100%);
  23. }
  24. html, body {
  25. height: 100%;
  26. }
  27. #wrapper {
  28. min-height: 100%;
  29. }
  30. @footer-height: 100px;
  31. #main {
  32. overflow: auto;
  33. padding-bottom: @footer-height;
  34. }
  35. footer {
  36. position: relative;
  37. border-top: 1px solid #e5e5e5;
  38. padding: 30px 0;
  39. background-color: #fff;
  40. color: #666666;
  41. margin-top: -1 * @footer-height;
  42. height: @footer-height - 60px;
  43. }
  44. #content {
  45. padding: 40px 0;
  46. }
  47. #top-nav {
  48. .navbar {
  49. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  50. }
  51. .navbar .brand {
  52. color: #666666;
  53. display: block;
  54. font-size: 16px;
  55. font-weight: normal;
  56. line-height: 1;
  57. margin-left: 0;
  58. margin-right: 40px;
  59. margin-top: 3px;
  60. padding: 14px 10px;
  61. }
  62. /*
  63. .navbar-inner {
  64. background: linear-gradient(#FAFAFA, #EAEAEA) repeat scroll 0 0 transparent;
  65. background: -moz-linear-gradient(#FAFAFA, #EAEAEA) repeat scroll 0 0 transparent;
  66. background: -webkit-linear-gradient(#FAFAFA, #EAEAEA) repeat scroll 0 0 transparent;
  67. border-radius: 0;
  68. border: 1px solid #bbb;
  69. border-width: 0 0 1px 0;
  70. }
  71. */
  72. .navbar .nav {
  73. float: none;
  74. overflow: hidden;
  75. }
  76. .navbar .nav .active > a, .navbar .nav .active > a:hover {
  77. /*background-color: #999999;*/
  78. color: #FFFFFF;
  79. text-decoration: none;
  80. }
  81. .navbar .nav > li > a {
  82. border-radius: 8px;
  83. -webkit-border-radius: 8px;
  84. -moz-border-radius: 8px;
  85. font-size: 13px;
  86. font-weight: bold;
  87. line-height: 19px;
  88. margin: 6px 10px 6px 0;
  89. padding: 8px 14px;
  90. text-decoration: none;
  91. text-shadow: none;
  92. }
  93. .navbar .nav > li > a:hover {
  94. background-color: transparent;
  95. color: #999999;
  96. text-decoration: none;
  97. }
  98. .navbar .brand {
  99. margin-right: 40px;
  100. }
  101. .navbar #logo {
  102. float: left;
  103. padding-top: 7px;
  104. height: 36px;
  105. }
  106. .navbar .nav > li.right {
  107. float: right;
  108. }
  109. }
  110. #main-nav {
  111. .brand {
  112. font-size: 17px;
  113. border-right: 1px solid rgba(0, 0, 0, 0.08);
  114. }
  115. li {
  116. font-size: 15px;
  117. border-left: 1px solid #fefefe;
  118. border-right: 1px solid #f0f0f0;
  119. text-align: center;
  120. }
  121. li.span2 {
  122. padding: 0;
  123. margin: 0;
  124. }
  125. margin-bottom: 40px;
  126. }
  127. @green: #69BE28;
  128. h1 {
  129. color: @green;
  130. }
  131. .login.well.span4 {
  132. margin: 20px auto;
  133. padding: 25px;
  134. float: none;
  135. }
  136. .login {
  137. h2 {
  138. margin-top: 0;
  139. margin-bottom: 20px;
  140. }
  141. .btn {
  142. margin-top: 15px;
  143. }
  144. }
  145. #installer {
  146. h2 {
  147. margin-top: 0;
  148. }
  149. .btn.btn-success {
  150. /* float: right; */
  151. }
  152. .btn-area {
  153. margin-top: 20px;
  154. }
  155. #installer-content {
  156. padding: 25px;
  157. background-color: #fff;
  158. }
  159. .nav-header {
  160. font-size: 13px;
  161. padding-left: 0;
  162. }
  163. #installOptions {
  164. #targetHosts {
  165. }
  166. #hostConnectivity {
  167. margin-top: 20px;
  168. .control-group {
  169. margin-bottom: 0;
  170. }
  171. }
  172. #localRepo {
  173. margin-top: 20px;
  174. margin-bottom: 30px;
  175. }
  176. }
  177. #step4, #step6 {
  178. a.selected {
  179. color: #333;
  180. }
  181. a.deselected {
  182. }
  183. }
  184. #serviceConfig {
  185. .accordion-heading {
  186. background-color: #f0f0f0;
  187. }
  188. .accordion-group {
  189. margin-bottom: 20px;
  190. .control-group {
  191. margin: 10px 0;
  192. }
  193. form {
  194. margin-bottom: 0;
  195. }
  196. }
  197. .badge {
  198. margin-left: 4px;
  199. }
  200. .add-slave-component-group {
  201. margin-bottom: 20px;
  202. }
  203. .master-host, .master-hosts, .slave-hosts {
  204. padding-top: 5px;
  205. line-height: 20px;
  206. }
  207. #attention {
  208. margin: 20px 0;
  209. }
  210. .retyped-password {
  211. margin-left: 14px;
  212. }
  213. #slave-hosts-popup {
  214. ul {
  215. list-style-type: none;
  216. }
  217. }
  218. }
  219. }
  220. a:focus {
  221. outline: none;
  222. }
  223. @status-live-marker: url("../img/health-status-live.png");
  224. @status-dead-marker: url("../img/health-status-dead.png");
  225. @status-ok-marker: url("../img/status-ok.jpg");
  226. @status-corrupt-marker: url("../img/status-corrupt.jpg");
  227. @arrow-right: url("../img/arrow-right.png");
  228. /*Rack images*/
  229. @rack-status-live: url("../img/rack-status-live.png");
  230. @rack-status-critical: url("../img/rack-status-critical.png");
  231. @rack-status-dead: url("../img/rack-status-dead.png");
  232. @rack-state-toggler: url("../img/rack-state-toggler.png");
  233. @rack-state-plus: url("../img/rack-state-plus.png");
  234. @rack-state-minus: url("../img/rack-state-minus.png");
  235. /*****start styles for boxes*****/
  236. .box {
  237. border: 1px solid #D4D4D4;
  238. border-radius: 4px;
  239. margin-bottom: 20px;
  240. .box-header {
  241. border-bottom: 1px solid #D4D4D4;
  242. border-radius: 4px 4px 0 0;
  243. }
  244. .box-header,
  245. .box-footer {
  246. padding: 10px;
  247. /*background: #dedede;*/
  248. .gradient(#dedede, #ffffff, #dedede)
  249. }
  250. .box-header:after,
  251. .box-footer:after {
  252. content: "";
  253. display: table;
  254. clear: both;
  255. }
  256. .box-header {
  257. .btn-group {
  258. float: right;
  259. }
  260. h4 {
  261. float: left;
  262. }
  263. }
  264. .box-footer {
  265. hr {
  266. margin: 0px;
  267. }
  268. }
  269. }
  270. /*****end styles for boxes*****/
  271. /*****start styles for dashboard page*****/
  272. /*start services summary*/
  273. .services {
  274. margin-left: 5px;
  275. .tab-marker-position {
  276. padding-left: 25px;
  277. background-position: 6px 5px;
  278. background-repeat: no-repeat;
  279. list-style: none;
  280. }
  281. .health-status-LIVE {
  282. .tab-marker-position;
  283. background-image: @status-live-marker;
  284. }
  285. .health-status-DEAD {
  286. .tab-marker-position;
  287. background-image: @status-dead-marker;
  288. }
  289. dt {
  290. text-align: left;
  291. width: 120px;
  292. }
  293. dd {
  294. margin-left: 145px;
  295. }
  296. }
  297. #summary-info {
  298. margin-top: 20px;
  299. tr td:first-child {
  300. font-weight: bold;
  301. background: #d0d0d0;
  302. }
  303. a {
  304. text-decoration: underline;
  305. &:hover {
  306. text-decoration: none;
  307. }
  308. }
  309. }
  310. /*end services summary*/
  311. /*start alerts summary*/
  312. .alerts {
  313. margin: 0px;
  314. li {
  315. border-bottom: 1px solid #b7b9bb;
  316. list-style: none;
  317. padding: 5px 10px 5px 43px;
  318. background-position: 14px 9px;
  319. background-repeat: no-repeat;
  320. .date-time {
  321. float: right;
  322. }
  323. p {
  324. margin-bottom: 2px;
  325. }
  326. }
  327. li.status-ok {
  328. background-image: @status-ok-marker;
  329. }
  330. li.status-corrupt {
  331. background-image: @status-corrupt-marker;
  332. }
  333. }
  334. .go-to {
  335. float: right;
  336. background-position: right center;
  337. background-repeat: no-repeat;
  338. background-image: @arrow-right;
  339. padding-right: 40px;
  340. margin-top: 10px;
  341. }
  342. /*end alerts summary*/
  343. /*****end styles for dashboard page*****/
  344. /*Services*/
  345. #services-menu {
  346. .nav-list {
  347. .tab-marker-position {
  348. padding-left: 30px;
  349. padding-right: 30px;
  350. background-position: 12px 9px;
  351. background-repeat: no-repeat;
  352. }
  353. .health-status-LIVE {
  354. .tab-marker-position;
  355. background-image: @status-live-marker;
  356. }
  357. .health-status-DEAD {
  358. .tab-marker-position;
  359. background-image: @status-dead-marker;
  360. }
  361. li {
  362. line-height: 24px;
  363. }
  364. }
  365. .add-service-button {
  366. margin: 20px 20px 10px;
  367. }
  368. }
  369. .nav-pills.move {
  370. float: right;
  371. margin-top: -48px;
  372. }
  373. /*End Services*/
  374. /*Hosts*/
  375. #hosts {
  376. .health-status-LIVE {
  377. background-image: @status-live-marker;
  378. }
  379. .health-status-DEAD {
  380. background-image: @status-dead-marker;
  381. }
  382. }
  383. #host-details {
  384. .health-status-LIVE {
  385. background-image: @status-live-marker;
  386. background-repeat: no-repeat;
  387. background-position: 0px 4px;
  388. }
  389. .health-status-DEAD {
  390. background-image: @status-dead-marker;
  391. background-repeat: no-repeat;
  392. background-position: 0px 4px;
  393. }
  394. .back {
  395. display: block;
  396. width: 105px;
  397. margin-bottom: 5px;
  398. }
  399. .box-header .host-title {
  400. margin:0;
  401. padding-left: 17px;
  402. }
  403. .box-header .button-section {
  404. margin-bottom: 5px;
  405. }
  406. hr {
  407. margin-bottom: 0;
  408. clear: both;
  409. }
  410. .content {
  411. padding: 10px;
  412. }
  413. .host-configuration .dl-horizontal dt {
  414. width: 90px;
  415. line-height: 20px;
  416. }
  417. .host-configuration .dl-horizontal dd {
  418. margin-left: 100px;
  419. line-height: 20px;
  420. }
  421. .host-components {
  422. padding: 10px;
  423. padding-bottom: 0;
  424. border: 1px solid #DEDEDE;
  425. border-radius: 4px;
  426. background: #F5F5F5;
  427. }
  428. .host-components .btn-group {
  429. margin:0 5px 10px 0;
  430. }
  431. }
  432. /*End Hosts*/
  433. /*assign masters*/
  434. .assign-masters {
  435. .select-hosts {
  436. width: 50%;
  437. float: left;
  438. white-space: nowrap;
  439. }
  440. .round-corners {
  441. border-radius: 8px;
  442. -webkit-border-radius: 8px;
  443. -moz-border-radius: 8px;
  444. }
  445. .host-assignments {
  446. float: right;
  447. width: 45%;
  448. }
  449. .remaining-hosts {
  450. padding: 25px;
  451. border-top: solid 1px #cccccc;
  452. border-left: solid 1px #cccccc;
  453. border-right: groove 5px #cccccc;
  454. border-bottom: groove 5px #cccccc;
  455. margin-top: 20px;
  456. background-color: #FCF8E3;
  457. color: #C09853;
  458. }
  459. .host-assignments .mapping-box {
  460. border: solid 1px #cccccc;
  461. padding: 8px;
  462. margin-bottom: 10px;
  463. background-color: #fafafa;
  464. }
  465. .host-assignments .assignedService {
  466. padding: 2px 8px;
  467. border: solid 1px #cccccc;
  468. margin: 2px;
  469. background-color: @green;
  470. color: white;
  471. white-space: nowrap;
  472. font-size: 0.9em;
  473. display: inline-block;
  474. }
  475. .form-horizontal .controls {
  476. margin-left: 110px;
  477. }
  478. .form-horizontal .control-label {
  479. width: 100px;
  480. }
  481. .form-horizontal .control-group select {
  482. width: 75%;
  483. min-width: 100px;
  484. max-width: 250px;
  485. }
  486. .hostString {
  487. margin-bottom: 5px;
  488. }
  489. .controls .badge {
  490. background-color: @green;
  491. color: #ffffff;
  492. cursor: pointer;
  493. font-weight: bold;
  494. text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  495. }
  496. .assign-master .controls .badge:hover {
  497. background-color: @green;
  498. }
  499. .alertFlag {
  500. font-size: 1.3em;
  501. color: #B94A48;
  502. font-weight: bold;
  503. vertical-align: middle;
  504. }
  505. }
  506. /*end assign masters*/
  507. /*Dashboard*/
  508. .alerts-count {
  509. margin-left: 5px;
  510. }
  511. ul.filter {
  512. background: #ffffff;
  513. list-style: none;
  514. position: absolute;
  515. padding: 10px;
  516. }
  517. #main-admin-menu {
  518. padding: 8px 0;
  519. ul {
  520. margin-bottom: 0;
  521. li {
  522. line-height: 24px;
  523. }
  524. }
  525. }
  526. #user-auth-method select {
  527. width: 320px;
  528. }
  529. /*start charts rack*/
  530. .rack {
  531. width: 224px;
  532. display: inline-block;
  533. vertical-align: top;
  534. border: 1px solid #D4D4D4;
  535. border-radius: 5px;
  536. margin-right: 4px;
  537. margin-bottom: 10px;
  538. .rackHeader {
  539. background-color: #CDCDCD;
  540. border-top-right-radius: 5px;
  541. border-top-left-radius: 5px;
  542. padding: 5px 5px 5px 10px;
  543. border-bottom: 1px solid #D4D4D4;
  544. .statusName {
  545. font-size: 16px;
  546. color: #006F9F;
  547. text-shadow: #ffffff 0px 0px 1px;
  548. font-weight: bold;
  549. padding-bottom: 8px;
  550. vertical-align: top;
  551. }
  552. .toggler {
  553. background-repeat: no-repeat;
  554. background-image: @rack-state-toggler;
  555. display: block;
  556. height: 22px;
  557. position: relative;
  558. width: 32px;
  559. float: right;
  560. span {
  561. background-repeat: no-repeat;
  562. background-image: @rack-state-plus;
  563. display: block;
  564. height: 17px;
  565. left: 7px;
  566. position: absolute;
  567. top: 3px;
  568. width: 18px;
  569. }
  570. span.isActive {
  571. background-image: @rack-state-minus !important;
  572. top: 10px;
  573. }
  574. }
  575. }
  576. .hostsSummary {
  577. border-left: 1px solid #CDCDCD;
  578. border-right: 1px solid #CDCDCD;
  579. border-bottom: 1px solid #9f9f9f;
  580. background-color: #f7f8fa;
  581. font-size: 12px;
  582. padding: 4px 0 4px 9px;
  583. .textBlock {
  584. color: #000000;
  585. padding-right: 10px;
  586. div {
  587. height: 12px;
  588. margin: 0 3px 0 0;
  589. width: 12px;
  590. display: inline-block;
  591. }
  592. }
  593. }
  594. .indicatorR {
  595. background-color: #E2001A;
  596. }
  597. .indicatorY {
  598. background-color: #F29400;
  599. }
  600. .indicatorG {
  601. background-color: #88BF67;
  602. }
  603. .statusIndicator {
  604. display: inline-block;
  605. width: 20px;
  606. height: 19px;
  607. margin-right: 10px;
  608. margin-top: 4px;
  609. float: left;
  610. background-repeat: no-repeat;
  611. }
  612. .rackName {
  613. margin-top: 4px;
  614. float: left;
  615. }
  616. .statusIndicator.LIVE{
  617. background-image: @rack-status-live;
  618. }
  619. .statusIndicator.CRITICAL{
  620. background-image: @rack-status-critical;
  621. }
  622. .statusIndicator.DEAD{
  623. background-image: @rack-status-dead;
  624. }
  625. .hosts {
  626. padding: 4px;
  627. overflow: hidden;
  628. display: none;
  629. .ember-view {
  630. float: left;
  631. width: 43px;
  632. height: 43px;
  633. .hostBlock {
  634. margin: 4px;
  635. width: 35px;
  636. height: 35px;
  637. position: relative;
  638. }
  639. }
  640. .hostBlock {
  641. border-radius: 4px;
  642. }
  643. .hostBlock.LIVE {
  644. background-color: #87BE73;
  645. }
  646. .hostBlock.DEAD {
  647. background-color: #E40024;
  648. }
  649. .hostBlock.CRITICAL {
  650. background: #F39236;
  651. }
  652. .ember-view:hover {
  653. }
  654. }
  655. .hosts.isActive {
  656. display: block;
  657. }
  658. }
  659. /*Start Heatmap*/
  660. .heatmap {
  661. .rack.rack-5-2 {
  662. .hosts {
  663. height: 86px;
  664. }
  665. }
  666. .rack.rack-5-4 {
  667. .hosts {
  668. height: 172px;
  669. }
  670. }
  671. .rack.rack-5-6 {
  672. .hosts {
  673. height: 258px;
  674. }
  675. }
  676. .rack.rack-5-8 {
  677. .hosts {
  678. height: 344px;
  679. }
  680. }
  681. .rack.rack-5-10 {
  682. .hosts {
  683. height: 430px;
  684. }
  685. }
  686. .heatmap_host_details {
  687. font-size: 12px;
  688. line-height: 1.6em;
  689. border: 1px solid #D9D9D9;
  690. background: #f9f9f9;
  691. width: 100px;
  692. height: 100px;
  693. padding: 10px 10px;
  694. position: absolute;
  695. z-index: 1000;
  696. }
  697. }
  698. /*End Heatmap*/
  699. .noDisplay {
  700. display: none !important;
  701. }
  702. .display {
  703. display: block !important;
  704. }
  705. .displayInline {
  706. display: inline-block !important;
  707. }
  708. /* CHARTS */
  709. .chart {
  710. overflow: hidden;
  711. padding-bottom: 25px;
  712. .attributes {
  713. width: 75px;
  714. float: left;
  715. margin: 45px 0 0 0;
  716. p {
  717. margin-bottom: 9px;
  718. }
  719. }
  720. .hostName {
  721. font-weight: bold;
  722. }
  723. .horizon {
  724. border-bottom: 1px solid #000000;
  725. overflow: hidden;
  726. position: relative;
  727. }
  728. .horizon {
  729. border-bottom: 1px solid #000000;
  730. border-top: 1px solid #000000;
  731. }
  732. .horizon + .horizon {
  733. border-top: medium none;
  734. }
  735. .horizon canvas {
  736. display: block;
  737. }
  738. .horizon .title, .horizon .value {
  739. bottom: 0;
  740. line-height: 30px;
  741. margin: 0 6px;
  742. position: absolute;
  743. text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
  744. white-space: nowrap;
  745. }
  746. .horizon .title {
  747. left: 0;
  748. }
  749. .horizon .value {
  750. right: 0;
  751. }
  752. .rule {
  753. display: none;
  754. width: 30px;
  755. height: 124px;
  756. padding-top: 27px;
  757. position: absolute;
  758. border-left: 1px dashed #a52a2a;
  759. .stateValue {
  760. margin: 15px 0 0 3px;
  761. line-height: 15px;
  762. }
  763. }
  764. .axis {
  765. font: 10px sans-serif;
  766. path {
  767. display: none;
  768. }
  769. line {
  770. shape-rendering: crispedges;
  771. stroke: #000000;
  772. }
  773. }
  774. .line {
  775. background: none repeat scroll 0 0 #000000;
  776. /* opacity: 0.2; */
  777. z-index: 2;
  778. }
  779. }
  780. /* CHARTS END */
  781. ul.noStyle {
  782. list-style: none;
  783. }
  784. ul.inline li {
  785. display: inline;
  786. }