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.

750 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: 0px;
  364. width: 100px;
  365. height: 15px;
  366. padding: 0px;
  367. border-radius: 10px;
  368. background-color: black;
  369. margin:auto;
  370. }
  371. div.weekdays {
  372. position: absolute;
  373. top: 15px;
  374. width: calc(100% - 80px);
  375. height: 55px;
  376. background-color: darkorange;
  377. text-align: center;
  378. }
  379. div.week1,
  380. div.week2 {
  381. display: inline-block;
  382. width: 45%;
  383. height: 55px;
  384. background-color: darkorange;
  385. text-align: justify;
  386. border: 1px dashed lightgrey;
  387. padding-left: 10px;
  388. padding-right: 10px;
  389. }
  390. div.week1:after,
  391. div.week2:after {
  392. content: '';
  393. display: inline-block;
  394. width: 100%;
  395. }
  396. div.week1 {
  397. position: relative;
  398. left: -10px;
  399. }
  400. div.week2 {
  401. position: relative;
  402. left: 10px;
  403. }
  404. div.week1 > div,
  405. div.week2 > div {
  406. display: inline-block;
  407. text-align: center;
  408. width: 10%;
  409. height: 40px;
  410. color: white;
  411. margin-top: 5px;
  412. font-weight: bolder;
  413. border-radius: 10px;
  414. }
  415. div.week1 div:hover,
  416. div.week2 div:hover
  417. {
  418. cursor:pointer;
  419. box-shadow: 0px 0px 10px red;
  420. }
  421. div.week1 > div {
  422. /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#ebe9f9+0,d8d0ef+50,cec7ec+51,c1bfea+100;Purple+3D+%231 */
  423. background: #ebe9f9; /* Old browsers */
  424. background: -moz-linear-gradient(top, #ebe9f9 0%, #d8d0ef 50%, #cec7ec 51%, #c1bfea 100%); /* FF3.6-15 */
  425. background: -webkit-linear-gradient(top, #ebe9f9 0%,#d8d0ef 50%,#cec7ec 51%,#c1bfea 100%); /* Chrome10-25,Safari5.1-6 */
  426. background: linear-gradient(to bottom, #ebe9f9 0%,#d8d0ef 50%,#cec7ec 51%,#c1bfea 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  427. filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebe9f9', endColorstr='#c1bfea',GradientType=0 ); /* IE6-9 */
  428. box-shadow: 0px 0px 10px white inset;
  429. }
  430. div.week2 > div {
  431. background-color: #285c00;
  432. box-shadow: 0px 0px 10px white inset;
  433. /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#627d4d+0,1f3b08+100;Olive+3D */
  434. background: #627d4d; /* Old browsers */
  435. background: -moz-linear-gradient(top, #627d4d 0%, #1f3b08 100%); /* FF3.6-15 */
  436. background: -webkit-linear-gradient(top, #627d4d 0%,#1f3b08 100%); /* Chrome10-25,Safari5.1-6 */
  437. background: linear-gradient(to bottom, #627d4d 0%,#1f3b08 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  438. filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#627d4d', endColorstr='#1f3b08',GradientType=0 ); /* IE6-9 */
  439. }
  440. div.assignment > div {
  441. color: navy;
  442. background-color: white;
  443. font-size: 20px;
  444. font-weight: lighter;
  445. border: 1px dotted lightgrey;
  446. }
  447. /* peple item card*/
  448. .peopleitem div span.checked {
  449. color: orange;
  450. }
  451. .peopleitem div.card div.front > div[name="title"] {
  452. height: auto;
  453. text-align: center;
  454. background-color: lightgrey;
  455. }
  456. div.front > span[name='icon'] {
  457. width: 100%;
  458. height: 15px;
  459. background-color: dimgrey;
  460. color: white;
  461. }
  462. div.back > span.icon {
  463. width: 100%;
  464. background-color: lightgrey;
  465. color: dimgrey;
  466. }
  467. div.front > span.badge,
  468. div.back > span.badge {
  469. border-radius: 50%;
  470. display: inline-block;
  471. padding-left: 8px;
  472. padding-right: 8px;
  473. text-align: center;
  474. position: absolute;
  475. right: -5px;
  476. top: -5px;
  477. }
  478. span.badge.blue {
  479. color: #fff;
  480. box-shadow: 1px 1px 10px black;
  481. background-color: black;
  482. }
  483. span.badge.pink {
  484. color: black;
  485. box-shadow: 1px 1px 10px white;
  486. background-color: white;
  487. }
  488. /* div table */
  489. div.blueTable {
  490. border: 1px solid #1C6EA4;
  491. background-color: #EEEEEE;
  492. width: 100%;
  493. text-align: left;
  494. border-collapse: collapse;
  495. border:0px;
  496. }
  497. .divTable.blueTable .divTableCell,
  498. .divTable.blueTable .divTableHead,
  499. {
  500. border: 1px solid #AAAAAA;
  501. padding: 3px 2px;
  502. }
  503. .divTable.blueTable .divTableBody .divTableCell {
  504. font-size: 15px;
  505. }
  506. .divTable.blueTable .divTableRow:nth-child(even) {
  507. background: #D0E4F5;
  508. }
  509. .divTable.blueTable .divTableHeading {
  510. background: #1C6EA4;
  511. background: -moz-linear-gradient(top, #5592bb 0%, #327cad 66%, #1C6EA4 100%);
  512. background: -webkit-linear-gradient(top, #5592bb 0%, #327cad 66%, #1C6EA4 100%);
  513. background: linear-gradient(to bottom, #5592bb 0%, #327cad 66%, #1C6EA4 100%);
  514. border-bottom: 2px solid #444444;
  515. }
  516. .divTable.blueTable .divTableHeading .divTableHead {
  517. font-size: 15px;
  518. font-weight: bold;
  519. color: #FFFFFF;
  520. border-left: 2px solid #D0E4F5;
  521. }
  522. .divTable.blueTable .divTableHeading .divTableHead:first-child {
  523. border-left: none;
  524. }
  525. .blueTable .tableFootStyle {
  526. font-size: 14px;
  527. font-weight: bold;
  528. color: #FFFFFF;
  529. background: #D0E4F5;
  530. background: -moz-linear-gradient(top, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%);
  531. background: -webkit-linear-gradient(top, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%);
  532. background: linear-gradient(to bottom, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%);
  533. border-top: 2px solid #444444;
  534. }
  535. .blueTable .tableFootStyle {
  536. font-size: 14px;
  537. }
  538. .blueTable .tableFootStyle .links {
  539. text-align: right;
  540. }
  541. .blueTable .tableFootStyle .links a {
  542. display: inline-block;
  543. background: #1C6EA4;
  544. color: #FFFFFF;
  545. padding: 2px 8px;
  546. border-radius: 5px;
  547. }
  548. .blueTable.outerTableFooter {
  549. border-top: none;
  550. }
  551. .blueTable.outerTableFooter .tableFootStyle {
  552. padding: 3px 5px;
  553. }
  554. /* DivTable.com */
  555. .divTable {
  556. display: table;
  557. margin: 3px 0px 3px 0px;
  558. }
  559. .divTable.highlight{
  560. box-shadow: 1px 1px 10px #f50202;
  561. }
  562. .divTableRow {
  563. display: table-row;
  564. }
  565. .divTableHeading {
  566. display: table-header-group;
  567. }
  568. .divTableCell,
  569. .divTableHead {
  570. display: table-cell;
  571. }
  572. .divTableHeading {
  573. display: table-header-group;
  574. }
  575. .divTableFoot {
  576. display: table-footer-group;
  577. }
  578. .divTableBody {
  579. display: table-row-group;
  580. }
  581. /* customized part of div table */
  582. div.sheettableheader {
  583. margin-top: 0px;
  584. height: 26px;
  585. overflow-x: hidden;
  586. overflow-y: scroll;
  587. }
  588. div.btos,
  589. div.bstart,
  590. div.bfinish,
  591. div.brate,
  592. div.bstaff,
  593. div.bclient,
  594. div.bconfirmed,
  595. div.bsave,
  596. div.brating,
  597. div.bdelete {
  598. width: 10%;
  599. height: 30px;
  600. }
  601. div.btos {
  602. width: 15%;
  603. }
  604. div.brate{
  605. width: 20%;
  606. max-width: 20px;
  607. }
  608. .divTable div > select{
  609. width: 100%;
  610. height: 100%;
  611. }
  612. div.bdelete,
  613. div.bsave,
  614. div.bconfirmed {
  615. text-align:center;
  616. width: 5%;
  617. }
  618. div.brating{
  619. text-align: center;
  620. cursor: pointer;
  621. }
  622. .brating {
  623. unicode-bidi: bidi-override;
  624. direction: rtl;
  625. }
  626. .brating > span:hover:before,
  627. .brating > span:hover ~ span:before {
  628. content: "\2605";
  629. position: absolute;
  630. }
  631. div.bsave.saved span{
  632. display: none;
  633. }
  634. /* short code for the table */
  635. div.btos select,
  636. div.bstart input,
  637. div.bfinish input{
  638. width: 100%;
  639. height: 100%;
  640. }
  641. }
  642. /* end of div table */