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.

688 lines
14KB

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