You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

728 lines
13 KiB

10 years ago
10 years ago
10 years ago
  1. /* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
  2. This file is licensed under the Affero General Public License version 3 or later.
  3. See the COPYING-README file. */
  4. select#languageinput, select#timezone { width:15em; }
  5. input#openid, input#webdav { width:20em; }
  6. /* PERSONAL */
  7. #avatar {
  8. display: inline-block;
  9. float: left;
  10. width: 160px;
  11. padding-right: 0;
  12. }
  13. #avatar .avatardiv {
  14. margin-bottom: 10px;
  15. }
  16. #avatar .warning {
  17. width: 100%;
  18. }
  19. #uploadavatarbutton,
  20. #selectavatar,
  21. #removeavatar {
  22. width: 33px;
  23. height: 33px;
  24. }
  25. .jcrop-holder {
  26. z-index: 500;
  27. }
  28. #avatar #cropper {
  29. float: left;
  30. z-index: 500;
  31. /* float cropper above settings page to prevent unexpected flowing from dynamically sized element */
  32. position: fixed;
  33. background-color: rgba(0, 0, 0, .2);
  34. box-sizing: border-box;
  35. top: 45px;
  36. left: 0;
  37. width: 100%;
  38. height: calc(100% - 45px);
  39. }
  40. #avatar #cropper .inner-container {
  41. z-index: 2001; /* above the top bar if needed */
  42. position: absolute;
  43. top: 50%;
  44. left: 50%;
  45. transform: translate(-50%, -50%);
  46. background: #fff;
  47. color: #333;
  48. border-radius: 3px;
  49. box-shadow: 0 0 7px #888;
  50. padding: 15px;
  51. }
  52. #avatar #cropper .inner-container .jcrop-holder {
  53. box-shadow: 0 0 7px #888;
  54. }
  55. #avatar #cropper .inner-container .button {
  56. margin-top: 15px;
  57. }
  58. #avatar #cropper .inner-container .primary {
  59. float: right;
  60. }
  61. #displaynameform,
  62. #lostpassword,
  63. #groups,
  64. #passwordform {
  65. display: inline-block;
  66. margin-bottom: 0;
  67. padding-bottom: 0;
  68. padding-right: 0;
  69. min-width: 60%;
  70. }
  71. #avatar,
  72. #passwordform {
  73. margin-bottom: 0;
  74. padding-bottom: 0;
  75. }
  76. #groups {
  77. overflow-wrap: break-word;
  78. max-width: 75%;
  79. }
  80. .clientsbox img {
  81. height: 60px;
  82. }
  83. #sslCertificate tr.expired {
  84. background-color: rgba(255, 0, 0, 0.5);
  85. }
  86. #sslCertificate td {
  87. padding: 5px;
  88. }
  89. #displaynameerror {
  90. display: none;
  91. }
  92. #displaynamechanged {
  93. display: none;
  94. }
  95. input#identity {
  96. width: 20em;
  97. }
  98. #displayName,
  99. #email {
  100. width: 17em;
  101. }
  102. #showWizard {
  103. display: inline-block;
  104. }
  105. .msg.success {
  106. color: #fff;
  107. background-color: #47a447;
  108. padding: 3px;
  109. }
  110. .msg.error {
  111. color: #fff;
  112. background-color: #d2322d;
  113. padding: 3px;
  114. }
  115. .password-state {
  116. display: inline-block;
  117. }
  118. table.nostyle label { margin-right: 2em; }
  119. table.nostyle td { padding: 0.2em 0; }
  120. #sessions table,
  121. #apppasswords table {
  122. width: 100%;
  123. min-height: 50px;
  124. padding-top: 5px;
  125. max-width: 580px;
  126. }
  127. #sessions table th,
  128. #apppasswords table th {
  129. opacity: .5;
  130. }
  131. #sessions table th,
  132. #sessions table td,
  133. #apppasswords table th,
  134. #apppasswords table td {
  135. padding: 10px 10px 10px 0;
  136. }
  137. #sessions .token-list td.icon,
  138. #apppasswords .token-list td.icon {
  139. width: 16px;
  140. padding: 10px;
  141. }
  142. #sessions .token-list td,
  143. #apppasswords .token-list td {
  144. border-top: 1px solid #DDD;
  145. text-overflow: ellipsis;
  146. max-width: 200px;
  147. white-space: nowrap;
  148. overflow: hidden;
  149. vertical-align: top;
  150. position: relative;
  151. }
  152. #sessions tr>*:nth-child(2),
  153. #apppasswords tr>*:nth-child(2) {
  154. text-align: right;
  155. }
  156. #sessions .token-list a.icon,
  157. #apppasswords .token-list a.icon {
  158. opacity: 0.6;
  159. margin-top: 4px;
  160. display: none;
  161. }
  162. #sessions .token-list tr:hover a.icon,
  163. #apppasswords .token-list tr:hover a.icon {
  164. display: block;
  165. }
  166. #sessions .token-list td div.configure,
  167. #apppasswords .token-list td div.configure {
  168. display: none;
  169. height: 18px;
  170. }
  171. #sessions .token-list tr.active div.configure,
  172. #apppasswords .token-list tr.active div.configure {
  173. display: block;
  174. padding-left: 10px;
  175. }
  176. #sessions .token-list tr.active .token-name,
  177. #apppasswords .token-list tr.active .token-name {
  178. display: none;
  179. }
  180. #new-app-login-name,
  181. #new-app-password {
  182. width: 186px;
  183. font-family: monospace;
  184. background-color: lightyellow;
  185. }
  186. .app-password-row {
  187. display: table-row;
  188. }
  189. .app-password-row .icon {
  190. background-size: 16px 16px;
  191. display: inline-block;
  192. position: relative;
  193. top: 3px;
  194. margin-left: 5px;
  195. margin-right: 8px;
  196. }
  197. .app-password-label {
  198. display: table-cell;
  199. padding-right: 1em;
  200. }
  201. .social-button {
  202. padding-left: 0;
  203. margin-left: -10px
  204. }
  205. .social-button img {
  206. padding: 10px;
  207. }
  208. /* USERS */
  209. #newgroup-init a span { margin-left: 20px; }
  210. #newgroup-init a span:before {
  211. position: absolute; left: 12px; top:-2px;
  212. content: '+'; font-weight: bold; font-size: 150%;
  213. }
  214. #newgroup-form {
  215. height: 44px;
  216. }
  217. #newgroupname {
  218. margin: 0;
  219. width: 100%;
  220. padding: 12px 40px 12px 12px;
  221. box-sizing: border-box;
  222. background-color: transparent;
  223. border: none;
  224. border-bottom: 1px solid #eee;
  225. border-radius: 0;
  226. }
  227. #newgroup-form .button {
  228. position: absolute;
  229. right: 0;
  230. top: 0;
  231. padding: 10px 20px;
  232. background-color: transparent;
  233. border: none;
  234. opacity: .5;
  235. }
  236. .isgroup .groupname {
  237. width: 85%;
  238. display: block;
  239. overflow: hidden;
  240. text-overflow: ellipsis;
  241. }
  242. .isgroup.active .groupname {
  243. width: 65%;
  244. }
  245. .usercount { float: left; margin: 5px; }
  246. li.active span.utils .delete {
  247. float: left; position: relative; opacity: 0.5;
  248. top: -7px; left: 7px; width: 44px; height: 44px;
  249. }
  250. li.active .rename {
  251. padding: 8px 14px 20px 14px;
  252. top: 0px; position: absolute; width: 16px; height: 16px;
  253. opacity: 0.5;
  254. display: inline-block !important;
  255. }
  256. li.active span.utils .delete img { margin: 14px; }
  257. li.active .rename { opacity: 0.5; }
  258. li.active span.utils .delete:hover, li.active .rename:hover { opacity: 1; }
  259. span.utils .delete, .rename { display: none; }
  260. #app-navigation ul li.active > span.utils .delete,
  261. #app-navigation ul li.active > span.utils .rename { display: block; }
  262. #usersearchform {
  263. position: absolute;
  264. top: 2px;
  265. right: 0;
  266. }
  267. #usersearchform input {
  268. width: 150px;
  269. }
  270. #usersearchform label { font-weight: 700; }
  271. /* display table at full width */
  272. table.grid {
  273. width: 100%;
  274. }
  275. table.grid th {
  276. height: 2em;
  277. color: #999;
  278. }
  279. table.grid th, table.grid td {
  280. border-bottom: 1px solid #eee;
  281. padding: 0 .5em;
  282. padding-left: .8em;
  283. text-align: left;
  284. font-weight: normal;
  285. }
  286. td.name, td.password { padding-left:.8em; }
  287. td.password>img,td.displayName>img, td.remove>a, td.quota>img { visibility:hidden; }
  288. td.password, td.quota, td.displayName { width:12em; cursor:pointer; }
  289. td.password>span, td.quota>span, rd.displayName>span { margin-right: 1.2em; color: #C7C7C7; }
  290. span.usersLastLoginTooltip { white-space: nowrap; }
  291. /* dropdowns will be relative to this element */
  292. #userlist {
  293. position: relative;
  294. }
  295. #userlist .mailAddress,
  296. #userlist .storageLocation,
  297. #userlist .userBackend,
  298. #userlist .lastLogin {
  299. display : none;
  300. }
  301. /* because of accessibility the name cell is <th> - therefore we enforce the black color */
  302. #userlist th.name {
  303. color: #000;
  304. }
  305. /* use same height as in files app */
  306. #userlist tr {
  307. height: 51px;
  308. }
  309. #userlist .mailAddress .loading-small {
  310. width: 16px;
  311. height: 16px;
  312. margin-left: -26px;
  313. position: relative;
  314. top: 3px;
  315. }
  316. #newuser .groups {
  317. display: inline;
  318. }
  319. #newuser .groupsListContainer.hidden,
  320. #userlist .groupsListContainer.hidden {
  321. display: none;
  322. }
  323. tr:hover>td.password>span, tr:hover>td.displayName>span { margin:0; cursor:pointer; }
  324. tr:hover>td.remove>a, tr:hover>td.password>img,tr:hover>td.displayName>img, tr:hover>td.quota>img { visibility:visible; cursor:pointer; }
  325. td.remove {
  326. width: 25px;
  327. }
  328. tr:hover>td.remove>a {
  329. float: left;
  330. }
  331. div.recoveryPassword { left:50em; display:block; position:absolute; top:-1px; }
  332. input#recoveryPassword {width:15em;}
  333. #controls select.quota {
  334. margin: 3px;
  335. margin-right: 10px;
  336. height: 37px;
  337. }
  338. select.quota-user { position:relative; left:0; top:0; width:10em; }
  339. select.quota.active { background: #fff; }
  340. input.userFilter {width: 200px;}
  341. /* positioning fixes */
  342. #newuser {
  343. padding-left: 3px;
  344. }
  345. #newuser .multiselect {
  346. min-width: 150px !important;
  347. }
  348. #newuser .multiselect,
  349. #newusergroups + input[type='submit'] {
  350. position: relative;
  351. top: -1px;
  352. }
  353. #headerGroups,
  354. #headerSubAdmins,
  355. #headerQuota {
  356. padding-left: 18px;
  357. }
  358. #headerAvatar {
  359. width: 32px;
  360. }
  361. /* used to highlight a user row in red */
  362. #userlist tr.row-warning {
  363. background-color: #FDD;
  364. }
  365. /* APPS */
  366. .appinfo { margin: 1em 40px; }
  367. #app-navigation .appwarning {
  368. background: #fcc;
  369. }
  370. #app-navigation.appwarning:hover {
  371. background: #fbb;
  372. }
  373. span.version {
  374. margin-left: 1em;
  375. margin-right: 1em;
  376. color: #555;
  377. }
  378. #app-navigation .app-external,
  379. .app-version {
  380. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  381. filter: alpha(opacity=50);
  382. opacity: .5;
  383. }
  384. .app-level {
  385. margin-top: 8px;
  386. }
  387. .app-level span {
  388. color: #555;
  389. background-color: transparent;
  390. border: 1px solid #555;
  391. border-radius: 3px;
  392. padding: 3px 6px;
  393. }
  394. .app-level .official {
  395. border-color: #37ce02;
  396. background-position: left center;
  397. background-position: 5px center;
  398. padding-left: 25px;
  399. }
  400. .app-score {
  401. position: relative;
  402. top: 4px;
  403. }
  404. #apps-list {
  405. position: relative;
  406. height: 100%;
  407. display: flex;
  408. flex-wrap: wrap;
  409. align-content: flex-start;
  410. }
  411. #apps-list .section {
  412. position: relative;
  413. flex: 1 0 330px;
  414. margin: 0;
  415. padding-right: 50px;
  416. }
  417. #apps-list .section.apps-experimental {
  418. flex-basis: 90%;
  419. }
  420. .section h2.app-name {
  421. margin-bottom: 8px;
  422. display: inline;
  423. }
  424. .followupsection {
  425. display: block;
  426. padding: 0 30px 30px 30px;
  427. color: #555;
  428. margin-bottom: 24px;
  429. margin-top: -30px;
  430. position: relative;
  431. }
  432. .app-image {
  433. float: left;
  434. padding-right: 10px;
  435. width: 80px;
  436. height: 80px;
  437. opacity: 0.8;
  438. }
  439. .app-name,
  440. .app-version,
  441. .app-score,
  442. .app-level {
  443. display: inline-block;
  444. }
  445. .app-description-toggle-show,
  446. .app-description-toggle-hide {
  447. clear: both;
  448. padding: 7px 0;
  449. cursor: pointer;
  450. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  451. opacity: .5;
  452. }
  453. .app-description-container {
  454. clear: both;
  455. position: relative;
  456. top: 7px;
  457. }
  458. .app-description {
  459. clear: both;
  460. }
  461. .app-description pre {
  462. white-space: pre-line;
  463. }
  464. #app-category-1 {
  465. margin-bottom: 18px;
  466. }
  467. /* capitalize "Other" category */
  468. #app-category-925 {
  469. text-transform: capitalize;
  470. }
  471. .app-dependencies {
  472. color: #ce3702;
  473. }
  474. .missing-dependencies {
  475. list-style: initial;
  476. list-style-type: initial;
  477. list-style-position: inside;
  478. }
  479. /* Transition to complete width! */
  480. .app:hover, .app:active { max-width: inherit; }
  481. .appslink { text-decoration: underline; }
  482. .score { color:#666; font-weight:bold; font-size:0.8em; }
  483. .appinfo .documentation {
  484. margin-top: 1em;
  485. margin-bottom: 1em;
  486. }
  487. /* LOG */
  488. #log {
  489. white-space:normal;
  490. margin-bottom: 14px;
  491. }
  492. #lessLog { display:none; }
  493. table.grid td.date{
  494. white-space: nowrap;
  495. }
  496. #log-section p {
  497. margin-top:20px;
  498. }
  499. /* ADMIN */
  500. #security-warning li {
  501. list-style: initial;
  502. margin: 10px 0;
  503. }
  504. #security-warning-state span {
  505. padding-left: 25px;
  506. background-position: 5px center;
  507. margin-left: -5px;
  508. }
  509. #shareAPI p { padding-bottom: 0.8em; }
  510. #shareAPI input#shareapiExpireAfterNDays {width: 25px;}
  511. #shareAPI .indent {
  512. padding-left: 28px;
  513. }
  514. #shareAPI .double-indent {
  515. padding-left: 56px;
  516. }
  517. #fileSharingSettings h3 {
  518. display: inline-block;
  519. }
  520. #publicShareDisclaimerText {
  521. width: calc(100% - 23px); /* 20 px left margin, 3 px right margin */
  522. max-width: 600px;
  523. height: 150px;
  524. margin-left: 20px;
  525. box-sizing: border-box;
  526. }
  527. /* correctly display help icons next to headings */
  528. .icon-info {
  529. padding: 11px 20px;
  530. vertical-align: text-bottom;
  531. }
  532. #shareAPI h2,
  533. #encryptionAPI h2,
  534. #mail_general_settings h2 {
  535. display: inline-block;
  536. }
  537. #encryptionAPI li {
  538. list-style-type: initial;
  539. margin-left: 20px;
  540. padding: 5px 0;
  541. }
  542. .mail_settings p label:first-child {
  543. display: inline-block;
  544. width: 300px;
  545. text-align: right;
  546. }
  547. .mail_settings p select:nth-child(2) {
  548. width: 143px;
  549. }
  550. #mail_smtpport {
  551. width: 40px;
  552. }
  553. .cronlog {
  554. margin-left: 10px;
  555. }
  556. .status {
  557. display: inline-block;
  558. height: 16px;
  559. width: 16px;
  560. vertical-align: text-bottom;
  561. }
  562. .status.success {
  563. border-radius: 50%;
  564. }
  565. #selectGroups select {
  566. -moz-box-sizing: border-box;
  567. -webkit-box-sizing: border-box;
  568. box-sizing: border-box;
  569. display: inline-block;
  570. height: 36px;
  571. padding: 7px 10px
  572. }
  573. #log .log-message {
  574. word-break: break-all;
  575. min-width: 180px;
  576. }
  577. span.success {
  578. background: #37ce02;
  579. border-radius: 3px;
  580. }
  581. span.error {
  582. background: #ce3702;
  583. }
  584. span.indeterminate {
  585. background: #e6db00;
  586. border-radius: 40% 0;
  587. }
  588. /* PASSWORD */
  589. #passwordform .strengthify-wrapper {
  590. position: absolute;
  591. left: 186px;
  592. width: 131px;
  593. margin-top: -7px;
  594. }
  595. /* OPERA hack for strengthify*/
  596. doesnotexist:-o-prefocus, .strengthify-wrapper {
  597. left: 185px;
  598. width: 129px;
  599. }
  600. .trusted-domain-warning {
  601. color: #fff;
  602. padding: 5px;
  603. background: #ce3702;
  604. border-radius: 5px;
  605. font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  606. }
  607. /* HELP */
  608. .help-includes {
  609. overflow: hidden !important;
  610. }
  611. .help-iframe {
  612. width: 100%;
  613. height: 100%;
  614. margin: 0;
  615. padding: 0;
  616. border: 0;
  617. overflow: auto;
  618. }
  619. #postsetupchecks .loading {
  620. height: 50px;
  621. background-position: left center;
  622. }
  623. #postsetupchecks .errors,
  624. #postsetupchecks .warnings,
  625. #security-warning > ul {
  626. color: #ce3702;
  627. }
  628. #admin-tips li {
  629. list-style: initial;
  630. }
  631. #admin-tips li a {
  632. display: inline-block;
  633. padding: 3px 0;
  634. }
  635. #selectEncryptionModules {
  636. margin-left: 30px;
  637. padding: 10px;
  638. }
  639. #encryptionModules {
  640. padding: 10px;
  641. }
  642. #warning {
  643. color: red;
  644. }