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.

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