timesheet source code
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.

756 satır
15KB

  1. html,
  2. body {
  3. margin: 0px !important;
  4. overflow: hidden;
  5. }
  6. .bts_hidden{
  7. z-index: -1;
  8. }
  9. .blink_me {
  10. animation: blinker 0.3s linear infinite;
  11. }
  12. @keyframes blinker {
  13. 50% { opacity: 0; }
  14. }
  15. .titlebar_gradient {
  16. /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#f6e6b4+0,ed9017+100 */
  17. background: rgb(246,230,180); /* Old browsers */
  18. background: -moz-linear-gradient(top, rgba(246,230,180,1) 0%, rgba(237,144,23,1) 100%); /* FF3.6-15 */
  19. background: -webkit-linear-gradient(top, rgba(246,230,180,1) 0%,rgba(237,144,23,1) 100%); /* Chrome10-25,Safari5.1-6 */
  20. background: linear-gradient(to bottom, rgba(246,230,180,1) 0%,rgba(237,144,23,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  21. filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f6e6b4', endColorstr='#ed9017',GradientType=0 ); /* IE6-9 */
  22. }
  23. .sheettitle h1:hover{
  24. text-decoration: underline;
  25. font-weight: bolder;
  26. cursor: pointer;
  27. animation: blinker 1s linear infinite;
  28. }
  29. .timesheets {
  30. width: calc(100vw - 300px);
  31. height: 100vh;
  32. margin: 0px;
  33. padding: 0px;
  34. left: 150px;
  35. position: fixed;
  36. background-color: red;
  37. overflow: hidden;
  38. }
  39. .peoplebar {
  40. position: fixed;
  41. top: 0px;
  42. width: 150px;
  43. height: 100vh;
  44. background: lightgrey;
  45. overflow: hidden;
  46. }
  47. .peoplebar.left {
  48. border-radius: 5px 0px 0px 0px;
  49. left: 0px;
  50. }
  51. .peoplebar.right {
  52. right: 0px;
  53. border-radius: 0px 5px 0px 0px;
  54. }
  55. .timesheets .sheettitle {
  56. padding-top: 8px;
  57. text-align: center;
  58. background-color: lightgrey;
  59. height: 40px;
  60. text-shadow: 1px 1px 1px #fcfcfc;
  61. }
  62. .timesheets .workspace {
  63. height: calc(100vh - 180px);
  64. background-color: white;
  65. overflow-x: hidden;
  66. overflow-y: scroll;
  67. }
  68. .timesheets .statusbar {
  69. position: relative;
  70. height: 40px;
  71. background-color: ivory;
  72. box-shadow: 1px 1px 10px black;
  73. }
  74. /* staff search bar*/
  75. .b_search {
  76. position: relative;
  77. height: 40px;
  78. }
  79. .b_search input {
  80. margin-top: 5px;
  81. padding-left: 20px;
  82. padding-right: 20px;
  83. border-radius: 20px;
  84. box-shadow: 1px 1px 2px grey inset;
  85. height: 30px;
  86. }
  87. .b_search .ticon-search {
  88. position: absolute;
  89. top: 15px;
  90. left: 5px;
  91. }
  92. .b_search .ticon-times-circle-o {
  93. position: absolute;
  94. top: 15px;
  95. right: 5px;
  96. }
  97. .peoplebar button {
  98. width: 100%;
  99. padding: 0px;
  100. height: 20px;
  101. }
  102. .peoplebar .stafflist,
  103. .peoplebar .clientlist {
  104. height: calc(100vh - 80px);
  105. background-color: dimgrey;
  106. overflow: hidden;
  107. text-align: center;
  108. /* scroll-behavior: smooth; */
  109. }
  110. .peopleitem {
  111. position: relative;
  112. margin-top: 10px;
  113. margin-bottom: 10px;
  114. height: 100px;
  115. background: transparent;
  116. }
  117. /* hover box */
  118. div.peopleitem > label {
  119. -webkit-perspective: 1000px;
  120. perspective: 1000px;
  121. -webkit-transform-style: preserve-3d;
  122. transform-style: preserve-3d;
  123. display: block;
  124. width: 100%;
  125. height: 100px;
  126. position: absolute;
  127. left: 50%;
  128. top: 50%;
  129. -webkit-transform: translate(-50%, -50%);
  130. transform: translate(-50%, -50%);
  131. cursor: pointer;
  132. }
  133. div.peopleitem .card {
  134. position: relative;
  135. height: 100%;
  136. width: 95%;
  137. margin: auto;
  138. -webkit-transform-style: preserve-3d;
  139. transform-style: preserve-3d;
  140. -webkit-transition: all 600ms;
  141. transition: all 600ms;
  142. z-index: 20;
  143. border: 1px solid black;
  144. box-shadow: 1px 1px 10px black;
  145. }
  146. div.peopleitem .card > div {
  147. position: absolute;
  148. height: 100%;
  149. width: 100%;
  150. background: #FFF;
  151. text-align: center;
  152. /* line-height: 200px; */
  153. -webkit-backface-visibility: hidden;
  154. backface-visibility: hidden;
  155. border-radius: 2px;
  156. }
  157. div.peopleitem .card .back {
  158. background: #222;
  159. color: #FFF;
  160. -webkit-transform: rotateX(180deg);
  161. transform: rotateX(180deg);
  162. }
  163. div.peopleitem label:hover .card {
  164. -webkit-transform: rotateX(20deg);
  165. transform: rotateX(20deg);
  166. box-shadow: 0 20px 20px rgba(50,50,50,.2);
  167. }
  168. div.peopleitem input {
  169. display: none;
  170. }
  171. div.peopleitem :checked + .card {
  172. transform: rotateX(180deg);
  173. -webkit-transform: rotateX(180deg);
  174. }
  175. div.peopleitem label:hover :checked + .card {
  176. transform: rotateX(160deg);
  177. -webkit-transform: rotateX(160deg);
  178. box-shadow: 0 20px 20px rgba(255,255,255,.2);
  179. }
  180. /* end of hover box */
  181. .satusbar {
  182. position: relative;
  183. }
  184. .statusbar * {
  185. vertical-align: top;
  186. text-shadow: 1px 1px 1px #fcfcfc;
  187. }
  188. .statusbar div {
  189. position: relative;
  190. display: inline;
  191. }
  192. .statusbar .xero {
  193. width: 40px;
  194. height: 100%;
  195. margin-left: 5px;
  196. margin-right: 5px;
  197. display: inline-block;
  198. background-color: white;
  199. box-shadow: inset 0px 0px 2px dotted white;
  200. border-radius: 100px;
  201. background-image: url(http://acaresydney.com.au/wp-content/uploads/2019/06/xero.png);
  202. background-size: 40px;
  203. box-shadow: 0px 0px 10px white;
  204. }
  205. .statusbar .wifi i,
  206. .statusbar .xero i {
  207. font-size: 20px;
  208. color: red;
  209. position: absolute;
  210. right: 0px;
  211. top: -5px;
  212. }
  213. .statusbar .wifi {
  214. width: 40px;
  215. height: 100%;
  216. margin-left: 0px;
  217. margin-right: 100px;
  218. display: inline-block;
  219. background-color: white;
  220. box-shadow: inset 0px 0px 2px black;
  221. border-radius: 100px;
  222. background-image: url(http://acaresydney.com.au/wp-content/uploads/2019/06/wnet.png);
  223. background-size: 40px;
  224. box-shadow: 0px 0px 10px white;
  225. }
  226. .statusbar .xero:hover,
  227. .statusbar .wifi:hover {
  228. box-shadow: 0px 0px 3px black;
  229. }
  230. .statusbar .wages {
  231. text-align: center;
  232. width: 150px;
  233. height: 100%;
  234. display: inline-block;
  235. background-color: transparent;
  236. font-size: 24px;
  237. font-weight: bold;
  238. color: dimgrey;
  239. border: 1px dotted white;
  240. position: absolute;
  241. right: 400px;
  242. }
  243. .statusbar .workinghours {
  244. background-color: transparent;
  245. width: 175px;
  246. height: 100%;
  247. display: inline-block;
  248. position: absolute;
  249. right: 220px;
  250. }
  251. .workinghours label {
  252. transform: unset;
  253. left: 0;
  254. top: 0;
  255. width: 50px;
  256. height: 100%;
  257. padding: 0.5em;
  258. text-align: left;
  259. display: inline-block;
  260. color: #A974D;
  261. font-weight: bolder;
  262. line-height: 15px;
  263. background-color: transparent;
  264. margin-right: 0px;
  265. }
  266. .statusbar input {
  267. margin: 0px;
  268. width: 115px;
  269. height: 100%;
  270. display: inline-block;
  271. font-size: 24px;
  272. background: transparent;
  273. text-align: center;
  274. }
  275. .statusbar button[name='confirmschedule'] {
  276. margin-top: 5px;
  277. margin-bottom: 5px ;
  278. text-shadow: 0px 0px 2px black;
  279. width: 200px ;
  280. height: calc( 100% - 10px );
  281. font-weight: bolder;
  282. position: absolute;
  283. right: 10px;
  284. }
  285. div.sheetsheader {
  286. height: 100px;
  287. background: darkorange;
  288. position: relative;
  289. }
  290. div.prevweek {
  291. display: inline-block;
  292. height: 70px;
  293. width: 40px;
  294. font-size: 36px;
  295. padding-top: 5px;
  296. padding-left: 2px;
  297. float: left;
  298. background: darkorange;
  299. }
  300. div.prevweek span:hover,
  301. div.nextweek span:hover {
  302. box-shadow: 1px 1px 10px black;
  303. border-radius: 20px;
  304. color: black;
  305. }
  306. div.nextweek {
  307. display: inline-block;
  308. height: 70px;
  309. width: 40px;
  310. font-size: 36px;
  311. padding-top: 5px;
  312. padding-left: 4px;
  313. float: right;
  314. }
  315. div.weekly {
  316. width: calc( 100% - 80px ) ;
  317. display: inline-block;
  318. background-color: black;
  319. height: 70px;
  320. }
  321. div.weekly div {
  322. margin: 0px;
  323. }
  324. div.weekly div.weekname {
  325. position: relative;
  326. width: 130px;
  327. top: -5px;
  328. border: 2px solid grey;
  329. border-radius: 10px;
  330. text-align: center;
  331. background-color: white;
  332. }
  333. div.weekly div.weekname.prev {
  334. position: absolute;
  335. left: 100px;
  336. z-index: 1;
  337. }
  338. div.weekly div.weekname.next {
  339. position: absolute;
  340. right: 100px;
  341. z-index: 1;
  342. }
  343. div.weekly >div.weekname:hover,
  344. div.weekly >div.copyprogress:hover,
  345. div.weekly div[name='copyschedule']:hover
  346. {
  347. cursor: pointer;
  348. box-shadow: 0px 0px 10px red;
  349. }
  350. div.weekly div.copyprogress {
  351. position: absolute;
  352. display: inline-block;
  353. width: calc(100% - 80px);
  354. height: 15px;
  355. background-color: yellow;
  356. top: 0px;
  357. border-radius: 2px;
  358. box-shadow: inset 1px 1px 2px black;
  359. text-align:center;
  360. }
  361. div.copyprogress div[name='copyschedule'] {
  362. position: relative;
  363. top: -5px;
  364. width: 100px;
  365. height: 25px;
  366. padding: 0px;
  367. border-radius: 10px;
  368. background-color: black;
  369. color: white;
  370. margin:auto;
  371. z-index:1;
  372. }
  373. div.weekdays {
  374. position: absolute;
  375. top: 15px;
  376. width: calc(100% - 80px);
  377. height: 55px;
  378. background-color: darkorange;
  379. text-align: center;
  380. }
  381. div.week1,
  382. div.week2 {
  383. display: inline-block;
  384. width: 45%;
  385. height: 55px;
  386. background-color: darkorange;
  387. text-align: justify;
  388. border: 1px dashed lightgrey;
  389. padding-left: 10px;
  390. padding-right: 10px;
  391. }
  392. div.week1:after,
  393. div.week2:after {
  394. content: '';
  395. display: inline-block;
  396. width: 100%;
  397. }
  398. div.week1 {
  399. position: relative;
  400. left: -10px;
  401. }
  402. div.week2 {
  403. position: relative;
  404. left: 10px;
  405. }
  406. div.week1 > div,
  407. div.week2 > div {
  408. display: inline-block;
  409. text-align: center;
  410. width: 10%;
  411. height: 40px;
  412. color: white;
  413. margin-top: 5px;
  414. font-weight: bolder;
  415. border-radius: 10px;
  416. }
  417. div.week1 div:hover,
  418. div.week2 div:hover
  419. {
  420. cursor:pointer;
  421. box-shadow: 0px 0px 10px red;
  422. }
  423. div.week1 > div {
  424. /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ebe9f9+0,d8d0ef+50,cec7ec+51,c1bfea+100;Purple+3D+%231 */
  425. background: #ebe9f9; /* Old browsers */
  426. background: -moz-linear-gradient(top, #ebe9f9 0%, #d8d0ef 50%, #cec7ec 51%, #c1bfea 100%); /* FF3.6-15 */
  427. background: -webkit-linear-gradient(top, #ebe9f9 0%,#d8d0ef 50%,#cec7ec 51%,#c1bfea 100%); /* Chrome10-25,Safari5.1-6 */
  428. background: linear-gradient(to bottom, #ebe9f9 0%,#d8d0ef 50%,#cec7ec 51%,#c1bfea 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  429. filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebe9f9', endColorstr='#c1bfea',GradientType=0 ); /* IE6-9 */
  430. box-shadow: 0px 0px 10px white inset;
  431. }
  432. div.week2 > div {
  433. background-color: #285c00;
  434. box-shadow: 0px 0px 10px white inset;
  435. /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#627d4d+0,1f3b08+100;Olive+3D */
  436. background: #627d4d; /* Old browsers */
  437. background: -moz-linear-gradient(top, #627d4d 0%, #1f3b08 100%); /* FF3.6-15 */
  438. background: -webkit-linear-gradient(top, #627d4d 0%,#1f3b08 100%); /* Chrome10-25,Safari5.1-6 */
  439. background: linear-gradient(to bottom, #627d4d 0%,#1f3b08 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  440. filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#627d4d', endColorstr='#1f3b08',GradientType=0 ); /* IE6-9 */
  441. }
  442. div.assignment > div {
  443. color: navy;
  444. background-color: white;
  445. font-size: 20px;
  446. font-weight: lighter;
  447. border: 1px dotted lightgrey;
  448. }
  449. /* peple item card*/
  450. .peopleitem div span.checked {
  451. color: orange;
  452. }
  453. .peopleitem div.card div.front > div[name="title"] {
  454. height: auto;
  455. text-align: center;
  456. background-color: lightgrey;
  457. }
  458. div.front > span[name='icon'] {
  459. width: 100%;
  460. height: 15px;
  461. background-color: dimgrey;
  462. color: white;
  463. }
  464. div.back > span.icon {
  465. width: 100%;
  466. background-color: lightgrey;
  467. color: dimgrey;
  468. }
  469. div.front > span.badge,
  470. div.back > span.badge {
  471. border-radius: 50%;
  472. display: inline-block;
  473. padding-left: 8px;
  474. padding-right: 8px;
  475. text-align: center;
  476. position: absolute;
  477. right: -5px;
  478. top: -5px;
  479. }
  480. span.badge.blue {
  481. color: #fff;
  482. box-shadow: 1px 1px 10px black;
  483. background-color: black;
  484. }
  485. span.badge.pink {
  486. color: black;
  487. box-shadow: 1px 1px 10px white;
  488. background-color: white;
  489. }
  490. /* div table */
  491. div.blueTable {
  492. border: 1px solid #1C6EA4;
  493. background-color: white;
  494. width: 100%;
  495. text-align: left;
  496. border-collapse: collapse;
  497. border:0px;
  498. }
  499. div.blueTable.emptyrecord{
  500. background-color: #eeeeee;
  501. }
  502. .divTable.blueTable .divTableCell,
  503. .divTable.blueTable .divTableHead,
  504. {
  505. border: 1px solid #AAAAAA;
  506. padding: 3px 2px;
  507. }
  508. .divTable.blueTable .divTableBody .divTableCell {
  509. font-size: 15px;
  510. }
  511. .divTable.blueTable .divTableRow:nth-child(even) {
  512. background: #D0E4F5;
  513. }
  514. .divTable.blueTable .divTableHeading {
  515. background: #1C6EA4;
  516. background: -moz-linear-gradient(top, #5592bb 0%, #327cad 66%, #1C6EA4 100%);
  517. background: -webkit-linear-gradient(top, #5592bb 0%, #327cad 66%, #1C6EA4 100%);
  518. background: linear-gradient(to bottom, #5592bb 0%, #327cad 66%, #1C6EA4 100%);
  519. border-bottom: 2px solid #444444;
  520. }
  521. .divTable.blueTable .divTableHeading .divTableHead {
  522. font-size: 15px;
  523. font-weight: bold;
  524. color: #FFFFFF;
  525. border-left: 2px solid #D0E4F5;
  526. }
  527. .divTable.blueTable .divTableHeading .divTableHead:first-child {
  528. border-left: none;
  529. }
  530. .blueTable .tableFootStyle {
  531. font-size: 14px;
  532. font-weight: bold;
  533. color: #FFFFFF;
  534. background: #D0E4F5;
  535. background: -moz-linear-gradient(top, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%);
  536. background: -webkit-linear-gradient(top, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%);
  537. background: linear-gradient(to bottom, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%);
  538. border-top: 2px solid #444444;
  539. }
  540. .blueTable .tableFootStyle {
  541. font-size: 14px;
  542. }
  543. .blueTable .tableFootStyle .links {
  544. text-align: right;
  545. }
  546. .blueTable .tableFootStyle .links a {
  547. display: inline-block;
  548. background: #1C6EA4;
  549. color: #FFFFFF;
  550. padding: 2px 8px;
  551. border-radius: 5px;
  552. }
  553. .blueTable.outerTableFooter {
  554. border-top: none;
  555. }
  556. .blueTable.outerTableFooter .tableFootStyle {
  557. padding: 3px 5px;
  558. }
  559. /* DivTable.com */
  560. .divTable {
  561. display: table;
  562. margin: 3px 0px 3px 0px;
  563. }
  564. .divTable.highlight{
  565. box-shadow: 1px 1px 10px #f50202;
  566. }
  567. .divTableRow {
  568. display: table-row;
  569. }
  570. .divTableHeading {
  571. display: table-header-group;
  572. }
  573. .divTableCell,
  574. .divTableHead {
  575. display: table-cell;
  576. }
  577. .divTableHeading {
  578. display: table-header-group;
  579. }
  580. .divTableFoot {
  581. display: table-footer-group;
  582. }
  583. .divTableBody {
  584. display: table-row-group;
  585. }
  586. /* customized part of div table */
  587. div.sheettableheader {
  588. margin-top: 0px;
  589. height: 26px;
  590. overflow-x: hidden;
  591. overflow-y: scroll;
  592. }
  593. div.btos,
  594. div.bstart,
  595. div.bfinish,
  596. div.brate,
  597. div.bstaff,
  598. div.bclient,
  599. div.bconfirmed,
  600. div.bsave,
  601. div.brating,
  602. div.bdelete {
  603. width: 10%;
  604. height: 30px;
  605. }
  606. div.btos {
  607. width: 15%;
  608. }
  609. div.brate{
  610. width: 20%;
  611. max-width: 20px;
  612. }
  613. .divTable div > select{
  614. width: 100%;
  615. height: 100%;
  616. }
  617. div.bdelete,
  618. div.bsave,
  619. div.bconfirmed {
  620. text-align:center;
  621. width: 5%;
  622. }
  623. div.brating{
  624. text-align: center;
  625. cursor: pointer;
  626. }
  627. .brating {
  628. unicode-bidi: bidi-override;
  629. direction: rtl;
  630. }
  631. .brating > span:hover:before,
  632. .brating > span:hover ~ span:before {
  633. content: "\2605";
  634. position: absolute;
  635. }
  636. div.bsave.saved span{
  637. display: none;
  638. }
  639. /* short code for the table */
  640. div.btos select,
  641. div.bstart input,
  642. div.bfinish input{
  643. width: 100%;
  644. height: 100%;
  645. }
  646. }
  647. /* end of div table */