Compare commits
709 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 80183be124 | |||
| 861b9c8083 | |||
| c71d623ef4 | |||
| 15bbcb3286 | |||
| 1bb9a90dbd | |||
| aa08829bb6 | |||
| 2c5eddd2d7 | |||
| 4bac2e5ab9 | |||
| 42b3b6bb99 | |||
| 033c2e1a4a | |||
| 92a323131d | |||
| 66d58b1e38 | |||
| 2dbddd8ff7 | |||
| 1af52cd415 | |||
| 39e47f74fd | |||
| 6533e34618 | |||
| f2689641d5 | |||
| 5e701c7bf4 | |||
| 7bbaa8f94f | |||
| 058c0aaa68 | |||
| 6a3845ce85 | |||
| 7d02018a5b | |||
| d25a2fa916 | |||
| c17b58af7a | |||
| b5c78f74c9 | |||
| a136e6919a | |||
| c3760af954 | |||
| 0a53fdc3d8 | |||
| 2bb93512c1 | |||
| be61cc7bea | |||
| 8a7e5999b8 | |||
| 4995258542 | |||
| 4a72e718e6 | |||
| a7d153408c | |||
| a66c9519c9 | |||
| 4b8408be23 | |||
| 245b3a029f | |||
| 56281b94e5 | |||
| b716c3cfcd | |||
| 98e2208fda | |||
| 83e04c44eb | |||
| 4747642911 | |||
| 5e905cfeac | |||
| 7c7c0c8d34 | |||
| 85a5167227 | |||
| fd4625140b | |||
| 4c2fcf2ba2 | |||
| 3cc22f03e5 | |||
| 54828ac617 | |||
| 751b30e66b | |||
| 2ac902c1e7 | |||
| 7e986a090e | |||
| 2a3753f3dd | |||
| ad6ea1c125 | |||
| a25bbc87ca | |||
| 1df81e22fc | |||
| 102e437501 | |||
| cfb4b4c55a | |||
| 08c434adee | |||
| 1e9b146e8b | |||
| a956c7b069 | |||
| dcce0fbc37 | |||
| d9cca766b4 | |||
| 655bedb36a | |||
| b9897db04f | |||
| ae9bf567eb | |||
| e4306fe1b0 | |||
| 3da50b6630 | |||
| 3aff498b72 | |||
| 8ffe1f117c | |||
| 07fd1db10d | |||
| db8114cd18 | |||
| 9e75cc33c4 | |||
| 8bd94e4aea | |||
| b1293646e4 | |||
| 02c04a632b | |||
| 513f5dfabb | |||
| 2ac5e72643 | |||
| 4386f91c65 | |||
| ffd892ffde | |||
| 98f5204785 | |||
| 8cd0a39aaf | |||
| fbc3a584d1 | |||
| 6c2e073160 | |||
| 2d3f91107b | |||
| 466b68493b | |||
| 85f2dcc85a | |||
| 7ddb80155a | |||
| 0dc2279883 | |||
| cb68e65459 | |||
| eef8b7b147 | |||
| 6f2daaf18c | |||
| 5de0f21842 | |||
| 1c56b9f815 | |||
| 817e4a0455 | |||
| e477b619b9 | |||
| 0f8a374eaf | |||
| 634873234d | |||
| 6bb8a4d4df | |||
| a399781065 | |||
| f19b22e735 | |||
| 3300e665b8 | |||
| e495d8dfe2 | |||
| 5b0624269f | |||
| a51019c41f | |||
| 0c72ac5abe | |||
| ab5ce5db70 | |||
| 6c83696102 | |||
| 740613816a | |||
| dfc585d25f | |||
| 74c3734251 | |||
| 7641c5d43a | |||
| 8e0fe0f879 | |||
| ecc2aa8bc4 | |||
| dbeb875a6e | |||
| 4f43aa65e6 | |||
| cdcc0511da | |||
| e10581ef6e | |||
| ba7c82f9ca | |||
| 551d6be656 | |||
| 9cf90b1345 | |||
| 303b9219b9 | |||
| 80991f155c | |||
| 28754a2cc4 | |||
| 5818c41562 | |||
| 5b03c33afd | |||
| 8aae0e448e | |||
| ce6785d158 | |||
| c3fd57bb03 | |||
| b109c3afa1 | |||
| fafc13ef0f | |||
| 93bb794ebc | |||
| 8a0f371531 | |||
| 142e1926f3 | |||
| a542d9adb4 | |||
| 4203285f93 | |||
| 52e49eda47 | |||
| 8b206151f6 | |||
| c5b9af9192 | |||
| 440fd9ba93 | |||
| 9334afe66d | |||
| b343d51cec | |||
| bbf2badab2 | |||
| 54f0228dae | |||
| 541bd54521 | |||
| 5e01f93371 | |||
| 8715fed0c8 | |||
| b79366cd57 | |||
| 45a01ad2e7 | |||
| d32d8dc2bb | |||
| bbc1a00b0b | |||
| 9323cba5ce | |||
| 32019a2154 | |||
| 8179f5a36e | |||
| ae9b5e9048 | |||
| 7f16f62bf9 | |||
| 5aec6d4fd6 | |||
| e805794f6a | |||
| 7d672611e3 | |||
| fbf686a3e3 | |||
| 411b8d5251 | |||
| cd9a0b7bec | |||
| 824105a55d | |||
| 974fb8f81c | |||
| 4c46bb0b44 | |||
| 589a0fae21 | |||
| a7e9aeb94d | |||
| 3b431bbe7a | |||
| 036e4bf4cf | |||
| 9e446190e4 | |||
| fd3c2bcd7b | |||
| f37934ab02 | |||
| b08d95f495 | |||
| 14b8ae3a8a | |||
| 4c47b11082 | |||
| d4f100f6fe | |||
| 69c01d069b | |||
| 233e02f517 | |||
| 8df32a06f7 | |||
| 5e9fd47f7a | |||
| f1b0a2fc7d | |||
| 817384b0cf | |||
| fe93610d45 | |||
| 691b220adc | |||
| 6e4984c494 | |||
| 93e407da5c | |||
| f7bedfce2e | |||
| 4bb2eeda11 | |||
| 73fff57983 | |||
| 934bb55eb3 | |||
| 6e43928d5a | |||
| 0b4c41a0f3 | |||
| 6a5c652b8c | |||
| 1610fec9d5 | |||
| af37ec360c | |||
| 8b72e0ed98 | |||
| 1f1eba95c9 | |||
| 5629ad4634 | |||
| 99f72bd1d4 | |||
| 89a5083fd5 | |||
| 947a42a8ee | |||
| 0b766bfca1 | |||
| 291683a34d | |||
| d56ace8073 | |||
| ab8499cd65 | |||
| d8c756ce26 | |||
| b7c7f309ce | |||
| 873c4db156 | |||
| 1c8813dac4 | |||
| 38627b6e5c | |||
| 658e544fb7 | |||
| dc72c8fe68 | |||
| b8efe6e952 | |||
| e9f8f794b1 | |||
| d6b461ec75 | |||
| d32b3784d6 | |||
| d1ba86082d | |||
| 98331e1f4c | |||
| fb3df148f7 | |||
| 5272847007 | |||
| ef065c392c | |||
| b934fa8da8 | |||
| a524b273c8 | |||
| 87a0b2cb6c | |||
| 34a490fad2 | |||
| b48d3563d5 | |||
| 69195b8ee4 | |||
| 30ce7badb7 | |||
| 2c2f1a6dbe | |||
| 8a48c4c8cb | |||
| e88ae86f8f | |||
| ea3001ceb6 | |||
| c76115b964 | |||
| 5b329dcdad | |||
| 8cc96486e0 | |||
| 8ff0eb83ca | |||
| 582441cf0f | |||
| 0de766217d | |||
| 15312b376c | |||
| 97b9ed8034 | |||
| e4f286f114 | |||
| 6aa41ecbfc | |||
| 0031d8de5d | |||
| 78f104b68b | |||
| f5833b7f1d | |||
| a8e34d850e | |||
| 8d3616fd3a | |||
| 299d2f544d | |||
| ac88abfa4b | |||
| d18d59deff | |||
| d03b078ad6 | |||
| 05f3db3d35 | |||
| 538eecd2db | |||
| 942a066873 | |||
| 714cf317cf | |||
| 7f7d5109db | |||
| 2e3f82e0b8 | |||
| 007132bda9 | |||
| 71d5600b85 | |||
| 9e90574012 | |||
| 923f5804fc | |||
| af1641fa66 | |||
| 63a6589128 | |||
| ad8538aa76 | |||
| ee5e5cfb24 | |||
| 56e1fb07a7 | |||
| 64fa0109ef | |||
| 6bf5338a37 | |||
| 6bdf1f840a | |||
| a9afbe2d9a | |||
| 66bbea9fbb | |||
| 66fc093cc4 | |||
| 3ae6a2b39b | |||
| 8b49c8e06a | |||
| 98c79bc967 | |||
| 98c9283e5f | |||
| 69d8936be7 | |||
| be7a6b7ed6 | |||
| 27d74b624a | |||
| 555b71c0cd | |||
| 66b49058f2 | |||
| 1c910f8b5a | |||
| b4f2da5056 | |||
| e154d33a8a | |||
| d44743b573 | |||
| 87c3ad1d34 | |||
| 8bbca4e0e0 | |||
| a6d36ea62c | |||
| b6f35afe8e | |||
| 28156b4e46 | |||
| 11fc39e8ff | |||
| 0d3f52199a | |||
| cf50baa528 | |||
| 651ff4d7b5 | |||
| ce664be496 | |||
| f3a455878a | |||
| 3d6fc9fbbb | |||
| 6d4e10715c | |||
| 6571be3116 | |||
| 4b6c24b337 | |||
| bdbdb24ed7 | |||
| e187cac29c | |||
| a9be9180d8 | |||
| 599be2a9e2 | |||
| d2f9db139d | |||
| ed72d3132d | |||
| af72aa2020 | |||
| d99d5f8530 | |||
| d1090fd62f | |||
| aa2901aa0f | |||
| 2bf6b3adbb | |||
| a550a396d9 | |||
| 23a79fbfaa | |||
| 73b41a66e1 | |||
| d1c0aa6b02 | |||
| 8aa2c698f2 | |||
| 7a65f48d41 | |||
| cf661c2193 | |||
| e33715fb81 | |||
| d67f96ca76 | |||
| 0458eb9ec2 | |||
| 16f2f26f8a | |||
| c168e805dc | |||
| 0b394af71d | |||
| b81b70885c | |||
| 79eb60c046 | |||
| 47d7f0c0fc | |||
| 8839499f51 | |||
| 680b2b0058 | |||
| 39ffd113bd | |||
| 8ed3397084 | |||
| 491b41fd8c | |||
| e6d7a1ec32 | |||
| 2eb6359e98 | |||
| 3054d765f0 | |||
| 5de9dfda40 | |||
| 0eff441d78 | |||
| 6dd9cc29cb | |||
| 82eb2cc0f8 | |||
| bfb8c43134 | |||
| febd890be5 | |||
| da76782be9 | |||
| db2589f7b7 | |||
| f521c47613 | |||
| 4f7e868668 | |||
| 7e02aa62e6 | |||
| 06a5dd6878 | |||
| b7505edcf5 | |||
| f088c4f7c4 | |||
| 86a5e2d2a9 | |||
| deeac91746 | |||
| 982d77a719 | |||
| 1dfdffc8a0 | |||
| 95d8f74be2 | |||
| a452d853db | |||
| 55e4952244 | |||
| 88e23c55c9 | |||
| fb0810538e | |||
| 3ae23c3c55 | |||
| 0357fa2b2e | |||
| e108646ca5 | |||
| 6ee3aa2bf1 | |||
| 5a1dbc57b6 | |||
| d1ed24b561 | |||
| e146adf31d | |||
| 233d9c9cfc | |||
| 55cd0e1a6d | |||
| b4aae791d8 | |||
| 09e4437864 | |||
| 7ed831ff9d | |||
| 354a0f3d81 | |||
| 2a4adfd700 | |||
| 9d65583737 | |||
| 4d6a22f6f1 | |||
| f8814c2d46 | |||
| a77b7bb07a | |||
| 1975f571aa | |||
| dbf3dc79af | |||
| 01ac60c3c9 | |||
| c18082e8ce | |||
| caefd8d8e2 | |||
| 636333019e | |||
| 22d214451b | |||
| 41c33707ca | |||
| ee49e60fbc | |||
| d25f6b1e4a | |||
| af2fb61b30 | |||
| e3bc958693 | |||
| 2636db91bc | |||
| 5ce3f40d08 | |||
| 2a9d075491 | |||
| fa1b9825d5 | |||
| 9560e6060f | |||
| 52faf399ac | |||
| efcb1a48fd | |||
| 86b71502fa | |||
| 221ae7f273 | |||
| d574f7420e | |||
| a1cc947576 | |||
| 0e684b2a0b | |||
| 8121ec658e | |||
| 1bd3bd6933 | |||
| dc70af29de | |||
| ac3ea2b630 | |||
| 6e74e5dfea | |||
| 7dc9494a81 | |||
| 870696b048 | |||
| b4c2c34665 | |||
| 05ae1a3cff | |||
| 71d2c21c21 | |||
| 76a8aa1ea3 | |||
| d203ff9962 | |||
| fe66a6f9c2 | |||
| 8af88b6fd5 | |||
| bc09d74d32 | |||
| b564e19df7 | |||
| 1100829658 | |||
| 77eabba1ec | |||
| 67458858ad | |||
| 694424a837 | |||
| 44f8894f3d | |||
| 217354db27 | |||
| aec1e5f03c | |||
| 14b52b4bd6 | |||
| 6e6ca584c2 | |||
| 4bfde10d5a | |||
| ade8bf335f | |||
| 2ea859d01a | |||
| 812d290c07 | |||
| be47d7c8bd | |||
| 7663a3116d | |||
| 2280b1edca | |||
| 6a0c604635 | |||
| 26fb97fa69 | |||
| f8c731018a | |||
| 1a8ec1888a | |||
| 5382588277 | |||
| 840471694f | |||
| c26fe206d1 | |||
| 72b8229d95 | |||
| cfad2b4deb | |||
| e06f13c251 | |||
| febf7dc4cb | |||
| 4a0610cf0b | |||
| c212e35b00 | |||
| bdf35642ba | |||
| f6cef5cd9c | |||
| eced2f4cca | |||
| ab7ff165f7 | |||
| 9977b89741 | |||
| b303554358 | |||
| 5939194abf | |||
| 4f421f45bb | |||
| f9bbb55fdb | |||
| c8265d9ae3 | |||
| 68ad17adda | |||
| de1f0043bb | |||
| b601dbd0de | |||
| 0496b76c2f | |||
| 14f4dc3e53 | |||
| 58a17aa423 | |||
| b2dde3987a | |||
| c96aa8f44b | |||
| 4a01ac1224 | |||
| 44e22a497b | |||
| 32219761ea | |||
| 5c1af4b9da | |||
| 22ee394c98 | |||
| 1925ea8543 | |||
| 09262a29aa | |||
| 1a81e50196 | |||
| 33e25e3487 | |||
| d18bcc5c2a | |||
| 17c3e464e0 | |||
| 98ece88fac | |||
| 6855f299b4 | |||
| c29b6bd686 | |||
| 3f1a1e7eba | |||
| 7c531950a0 | |||
| aa53cf0688 | |||
| 303733e0ed | |||
| e63c293fa5 | |||
| 7af8f7fcb5 | |||
| 490535e2e9 | |||
| 99dea16e49 | |||
| 73bf5defd0 | |||
| 24256492ae | |||
| 56f7253408 | |||
| ea8a755001 | |||
| ce1465c38b | |||
| b18960763d | |||
| c42e95a405 | |||
| b3c9ca7772 | |||
| 2a1b6a49a8 | |||
| a69e1528c6 | |||
| 29b51c2404 | |||
| 2e7b5f6a28 | |||
| 15e2081665 | |||
| 9152c4087d | |||
| b394f31d4c | |||
| dff2ee559d | |||
| d8bf8555d8 | |||
| 5a055fcbe4 | |||
| 7df0c4b4a1 | |||
| 74d97adb50 | |||
| b7c37da24b | |||
| 6319743253 | |||
| 4482349bf9 | |||
| 89b7f99270 | |||
| b6f51b9812 | |||
| 1372c3ed13 | |||
| db2aacc7e9 | |||
| f78e907f8c | |||
| 3dce5699fd | |||
| e3059b6d29 | |||
| 42dfcc7637 | |||
| 1273e0b3a5 | |||
| 6facd7a00f | |||
| 9d1f5f75c1 | |||
| bcfc1e2049 | |||
| 18e9a66f18 | |||
| d933e9dba8 | |||
| 5e608d18a9 | |||
| 276704c497 | |||
| 0e81f3f576 | |||
| 05c7dae9d8 | |||
| bbc3b224e2 | |||
| 32003f7cd7 | |||
| e01bd10286 | |||
| 6f28be3659 | |||
| 480adf667f | |||
| 80b2f59aa6 | |||
| 2c53183408 | |||
| 7587bf34a0 | |||
| 9963b22317 | |||
| 6f40214277 | |||
| 697f02b0e6 | |||
| 66a3efae64 | |||
| 90d4ed100b | |||
| b56a1156e8 | |||
| bd61d09b7a | |||
| 817bfc6f31 | |||
| d9e773b20a | |||
| f69cdaad00 | |||
| f4e4b87f9c | |||
| 63dfdaa83a | |||
| 8839579578 | |||
| 4ce061bcd4 | |||
| a03c137a9b | |||
| 89355ae64c | |||
| 46c9ecda4a | |||
| 7ec59ed3fb | |||
| 7ce0b887a8 | |||
| d1d1faa531 | |||
| 791f772b93 | |||
| a65d935a8a | |||
| df35730c9f | |||
| dc49a284d9 | |||
| 9ae6168971 | |||
| 378fa94468 | |||
| 7b20359e86 | |||
| 4a7bc29016 | |||
| e303ed94bd | |||
| 5fbdfaf5c3 | |||
| 29c0c30b39 | |||
| fc7272333f | |||
| 585d8500d5 | |||
| d6aee872cd | |||
| 2b95d72138 | |||
| 506d511439 | |||
| f7f556dfa1 | |||
| 0a10898425 | |||
| ff7fc5d87b | |||
| 42243d11e1 | |||
| 314d0768d0 | |||
| 194219381f | |||
| 0cdf0a3b62 | |||
| 3be594fd25 | |||
| c3a28f2c45 | |||
| 8f95ce9548 | |||
| 51b3e30307 | |||
| c16795f48d | |||
| 5f838e7f62 | |||
| 84bff6e7d1 | |||
| a9f8ad9b5f | |||
| 6c75dd1aaf | |||
| 3ff0b663ec | |||
| 84d7f4b1c6 | |||
| 979f3865c1 | |||
| 3b5e69202e | |||
| 4973175853 | |||
| c5c99f2d41 | |||
| a1519d4d88 | |||
| 9678635011 | |||
| 646a0ba473 | |||
| 669f88774e | |||
| daf80a4bb0 | |||
| 046a532831 | |||
| 0a8108c595 | |||
| b07df9c7cc | |||
| d5f8927b91 | |||
| 7e6d610716 | |||
| 319a2b513b | |||
| ade10dc120 | |||
| 3a429b860e | |||
| 644643418b | |||
| 80b3367fc9 | |||
| a78d69e896 | |||
| d0f63e8ba5 | |||
| 8153b289b3 | |||
| 3b51b1dd10 | |||
| 892590d9ca | |||
| 3e71c9cbb2 | |||
| fd106bb361 | |||
| 3f9b38c802 | |||
| 02b0e06bff | |||
| ccaf95faa9 | |||
| 317cbe7b41 | |||
| bb62d7ed8d | |||
| ae80e5244d | |||
| c1410f183e | |||
| 33ba56019d | |||
| 0b3da3f4f6 | |||
| 2106ecf60f | |||
| 58a5e09603 | |||
| 4d6a966919 | |||
| a93ec7ef17 | |||
| f41961876b | |||
| 88ecdd42bb | |||
| f65ed3c9c2 | |||
| 7d16eb9619 | |||
| 214e37532a | |||
| 09096b2326 | |||
| 556c13bb3f | |||
| d895527c64 | |||
| d35110168b | |||
| b40b067757 | |||
| 24cef5f87b | |||
| d6ea0b5cca | |||
| 255596eb9b | |||
| 3b63f37c05 | |||
| e8b925f9bf | |||
| 20de58b7ae | |||
| 9753fd262c | |||
| 018dbb0fdf | |||
| c982eea8c9 | |||
| 50cd4e0616 | |||
| 28f005f9be | |||
| 2d22d3c311 | |||
| 992e81a88b | |||
| 9866567755 | |||
| 6ae5e29df7 | |||
| 1a1f8001f1 | |||
| d6c097cb3b | |||
| 108d79d19f | |||
| 0dd88c997f | |||
| 767a032a73 | |||
| a63be04b5d | |||
| c33ba77aad | |||
| 628eb3e99d | |||
| aeee9f5b14 | |||
| 985b3d1766 | |||
| f5e9250485 | |||
| 01be84bf76 | |||
| 4f181f1fea | |||
| 813590727d | |||
| 1dcc9b8b0a | |||
| 32b30c9579 | |||
| 98bb333f8c | |||
| b0560e8f90 | |||
| 9bc251df4d | |||
| b9a08ad20b | |||
| 4ae40beed8 | |||
| b582a6272d | |||
| 850e46412f | |||
| 9469411c7f | |||
| 989fce0137 | |||
| c4ce88ba03 | |||
| 82f5434e6b | |||
| 1b339dfc80 | |||
| d685b80cc6 | |||
| d89473bcbe | |||
| 4c1afd8525 | |||
| afe850df0d | |||
| 5bb18dbaa8 | |||
| 9b4c9cb10f | |||
| 9a36d2e405 | |||
| 02336bfca9 | |||
| b1f3810483 | |||
| f9b796f2c5 | |||
| 4e59f515ad | |||
| 66772918b7 | |||
| 945fc7c8f2 | |||
| 8eb05cffe8 | |||
| bf62caaec0 | |||
| 28f56aa2e6 | |||
| 253e215e7a | |||
| ed5730f63a | |||
| f03016a4f0 | |||
| b2889eaaac | |||
| 62bed7934d | |||
| 9d66e36794 | |||
| 5430bf98b6 | |||
| 3fdab3bb66 | |||
| 7f48ef7e19 | |||
| 3a1ad0fe43 | |||
| 6f6030b05a | |||
| 8ee1d05cb0 | |||
| 2acad399d8 |
@@ -0,0 +1,3 @@
|
||||
# All changes to legal material have to be approved
|
||||
/legal/ @odoo/legal
|
||||
/legal.rst @odoo/legal
|
||||
@@ -2,117 +2,157 @@
|
||||
host = https://www.transifex.com
|
||||
type = PO
|
||||
|
||||
[odoo-11-doc.accounting]
|
||||
[odoo-13-doc.accounting]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/accounting.po
|
||||
source_file = locale/sources/accounting.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.applications]
|
||||
[odoo-13-doc.applications]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/applications.po
|
||||
source_file = locale/sources/applications.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.crm]
|
||||
[odoo-13-doc.crm]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/crm.po
|
||||
source_file = locale/sources/crm.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.db_management]
|
||||
[odoo-13-doc.db_management]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/db_management.po
|
||||
source_file = locale/sources/db_management.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.discuss]
|
||||
[odoo-13-doc.discuss]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/discuss.po
|
||||
source_file = locale/sources/discuss.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.ecommerce]
|
||||
[odoo-13-doc.ecommerce]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/ecommerce.po
|
||||
source_file = locale/sources/ecommerce.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.expenses]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/expenses.po
|
||||
source_file = locale/sources/expenses.pot
|
||||
[odoo-13-doc.email_marketing]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/email_marketing.po
|
||||
source_file = locale/sources/email_marketing.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.general]
|
||||
[odoo-13-doc.expense]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/expense.po
|
||||
source_file = locale/sources/expense.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.fsm]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/fsm.po
|
||||
source_file = locale/sources/fsm.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.general]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/general.po
|
||||
source_file = locale/sources/general.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.getting_started]
|
||||
[odoo-13-doc.getting_started]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/getting_started.po
|
||||
source_file = locale/sources/getting_started.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.helpdesk]
|
||||
[odoo-13-doc.helpdesk]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/helpdesk.po
|
||||
source_file = locale/sources/helpdesk.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.index]
|
||||
[odoo-13-doc.index]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/index.po
|
||||
source_file = locale/sources/index.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.inventory]
|
||||
[odoo-13-doc.inventory]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/inventory.po
|
||||
source_file = locale/sources/inventory.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.livechat]
|
||||
[odoo-13-doc.iot]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/iot.po
|
||||
source_file = locale/sources/iot.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.livechat]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/livechat.po
|
||||
source_file = locale/sources/livechat.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.manufacturing]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/manufacturing.po
|
||||
source_file = locale/sources/manufacturing.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.mobile]
|
||||
[odoo-13-doc.mobile]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/mobile.po
|
||||
source_file = locale/sources/mobile.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.point_of_sale]
|
||||
[odoo-13-doc.marketing_automation]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/marketing_automation.po
|
||||
source_file = locale/sources/marketing_automation.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.manufacturing]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/manufacturing.po
|
||||
source_file = locale/sources/manufacturing.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.planning]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/planning.po
|
||||
source_file = locale/sources/planning.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.point_of_sale]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/point_of_sale.po
|
||||
source_file = locale/sources/point_of_sale.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.portal]
|
||||
[odoo-13-doc.portal]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/portal.po
|
||||
source_file = locale/sources/portal.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.practical]
|
||||
[odoo-13-doc.practical]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/practical.po
|
||||
source_file = locale/sources/practical.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.project]
|
||||
[odoo-13-doc.project]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/project.po
|
||||
source_file = locale/sources/project.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.purchase]
|
||||
[odoo-13-doc.purchase]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/purchase.po
|
||||
source_file = locale/sources/purchase.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.recruitment]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/recruitment.po
|
||||
source_file = locale/sources/recruitment.pot
|
||||
[odoo-13-doc.quality]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/quality.po
|
||||
source_file = locale/sources/quality.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.sales]
|
||||
[odoo-13-doc.sales]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/sales.po
|
||||
source_file = locale/sources/sales.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-11-doc.website]
|
||||
[odoo-13-doc.sms_marketing]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/sms_marketing.po
|
||||
source_file = locale/sources/sms_marketing.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.social_marketing]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/social_marketing.po
|
||||
source_file = locale/sources/social_marketing.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.support]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/support.po
|
||||
source_file = locale/sources/support.pot
|
||||
source_lang = en
|
||||
|
||||
[odoo-13-doc.website]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/website.po
|
||||
source_file = locale/sources/website.pot
|
||||
source_lang = en
|
||||
|
||||
@@ -10,7 +10,7 @@ LESSOPTS =
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed; then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively, you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
@@ -27,15 +27,17 @@ _extensions/odoo/static/style.css: $(lessfiles)
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
# Displays list of commands
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " clean to delete the build"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " i18nhtml to make standalone translated HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " htmlhelp to make HTML files and an HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@@ -53,9 +55,11 @@ help:
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
# Deletes the build
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
# These commands are used to create files or run tests
|
||||
html: _extensions/odoo/static/style.css
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@@ -79,23 +83,23 @@ singlehtml:
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
@echo "Build finished. Now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
@echo "Build finished. Now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
@echo "Build finished. Now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
@echo "Build finished. Now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/UnderstandingAccountingForEntrepreneurs.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@@ -118,7 +122,7 @@ epub:
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Build finished. The LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
@@ -126,14 +130,14 @@ latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
@echo "pdflatex finished. The PDF files are in $(BUILDDIR)/latex."
|
||||
cp $(BUILDDIR)/latex/*.pdf $(BUILDDIR)/html/
|
||||
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
@echo "pdflatex finished. The PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@@ -156,7 +160,7 @@ info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
@echo "makeinfo finished. The Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) locale/sources
|
||||
@@ -171,12 +175,12 @@ changes:
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
@echo "Link check complete. Look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
@echo "Testing of doctests in the sources finished. Look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
xml:
|
||||
|
||||
@@ -44,4 +44,11 @@ For contributions to the content of the documentation, please refer to the `Intr
|
||||
<https://www.odoo.com/documentation/user/contributing/documentation/introduction_guide.html>`_.
|
||||
|
||||
To **report a content issue**, **request new content** or **ask a question**, use the `repository's
|
||||
issue tracker <https://github.com/odoo/documentation-user/issues>`_ as usual.
|
||||
issue tracker <https://github.com/odoo/documentation-user/issues>`_ as usual.
|
||||
|
||||
Learn More
|
||||
==========
|
||||
|
||||
To learn more about Odoo, in addition to the documentation, have a look at `the official eLearning
|
||||
<https://odoo.com/slides>`_ and `Scale-up, The Business Game
|
||||
<https://www.odoo.com/page/scale-up-business-game>`_
|
||||
@@ -21,10 +21,6 @@ def setup(app):
|
||||
location="odoo extension")
|
||||
app.config.html_translator_class = 'odoo.translator.BootstrapTranslator'
|
||||
|
||||
add_js_file = getattr(app, 'add_js_file', None) or app.add_javascript
|
||||
for f in ['jquery.min.js', 'bootstrap.js', 'doc.js', 'jquery.noconflict.js']:
|
||||
add_js_file(f)
|
||||
|
||||
switcher.setup(app)
|
||||
app.add_config_value('odoo_cover_default', None, 'env')
|
||||
app.add_config_value('odoo_cover_external', {}, 'env')
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
{% extends "basic/layout.html" %}
|
||||
{%- block scripts %}
|
||||
{{ super() }}
|
||||
<script type="text/javascript" src="{{ pathto('_static/jquery.min.js', 1) }}"></script>
|
||||
<script type="text/javascript" src="{{ pathto('_static/bootstrap.js', 1) }}"></script>
|
||||
<script type="text/javascript" src="{{ pathto('_static/doc.js', 1) }}"></script>
|
||||
<script type="text/javascript" src="{{ pathto('_static/jquery.noconflict.js', 1) }}"></script>
|
||||
{%- endblock %}
|
||||
|
||||
{% set classes = [] %}
|
||||
{% if pagename == master_doc %}
|
||||
@@ -194,16 +201,6 @@
|
||||
<a href="http://www.odoo.com/trial" class="btn btn-primary">Start Now</a>
|
||||
</div>
|
||||
|
||||
<ul class="navbar-nav navbar-right nav o_sub_nav_actions">
|
||||
{% if pagename != master_doc %}
|
||||
<li class="divider"></li>
|
||||
{% endif%}
|
||||
|
||||
{% block switchers_desktop %}
|
||||
{% include "switchers_list.html" %}
|
||||
{% endblock %}
|
||||
</ul>
|
||||
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
{% if languages or versions %}
|
||||
<li class="divider"></li>
|
||||
@@ -217,6 +214,16 @@
|
||||
<li class="divider"></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
<ul class="navbar-nav navbar-right nav o_sub_nav_actions">
|
||||
{% if pagename != master_doc %}
|
||||
<li class="divider"></li>
|
||||
{% endif%}
|
||||
|
||||
{% block switchers_desktop %}
|
||||
{% include "switchers_list.html" %}
|
||||
{% endblock %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -240,10 +247,9 @@
|
||||
{% else %}
|
||||
{% set container = 'container' %}
|
||||
{% endif %}
|
||||
<div class="{{ container}} {{ ' '.join(classes) }}">
|
||||
<main class="container-fluid {{ ' '.join(classes) }}">
|
||||
<main class="container {{ ' '.join(classes) }}">
|
||||
{% if pagename != master_doc %}
|
||||
<div class="row">
|
||||
<div class="o_content row">
|
||||
{% if 'has-toc' not in meta and not (pagename in toc) %}
|
||||
<aside>
|
||||
<div class="navbar-aside text-center">
|
||||
@@ -256,7 +262,7 @@
|
||||
</div>
|
||||
</aside>
|
||||
{% endif %}
|
||||
<article class="doc-body {% if 'has-toc' in meta %}doc-toc{% endif %} {% if pagename in toc%}index-category{% endif %}">
|
||||
<article class="doc-body {% if 'has-toc' in meta %}doc-toc{% endif %}{% if pagename in toc%}index-category{% endif %}">
|
||||
{% endif %}
|
||||
{% block body %} {% endblock %}
|
||||
{% if pagename != master_doc %}</article>
|
||||
@@ -264,7 +270,6 @@
|
||||
{% endif %}
|
||||
<div id="mask"></div>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="floating_action_container">
|
||||
@@ -304,29 +309,33 @@
|
||||
<div class="col-xs-6 col-sm-4">
|
||||
<span class="menu_title">Services</span>
|
||||
<ul>
|
||||
<li><a href="http://www.odoo.com/pricing">Editions</a></li>
|
||||
<li><a href="http://www.odoo.com/pricing-online">Cloud Pricing</a></li>
|
||||
<li><a href="http://www.odoo.com/page/upgrade">Upgrade</a></li>
|
||||
<li><a href="https://www.odoo.sh">Odoo Cloud Platform</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="http://www.odoo.com/help">Support</a></li>
|
||||
<li><a href="https://upgrade.odoo.com">Upgrade</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="http://www.odoo.com/partners">Find a partner</a></li>
|
||||
<li><a href="http://www.odoo.com/page/become-a-partner">Become a partner</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="http://training.odoo.com/courses/odoo-functional">Training Center</a></li>
|
||||
<li><a href="http://www.odoo.com/page/education-program">Education</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="http://www.odoo.com/page/security">Security</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-sm-4 mb64">
|
||||
<div class="col-xs-12 col-sm-4 mb64">
|
||||
<span class="menu_title">About us</span>
|
||||
<ul>
|
||||
<li><a href="http://www.odoo.com/page/about-us">Our company</a></li>
|
||||
<li><a href="http://www.odoo.com/page/contactus">Contact</a></li>
|
||||
<li class="divider" />
|
||||
<li><a href="http://www.odoo.com/event">Events</a></li>
|
||||
<li><a href="http://www.odoo.com/blog/">Blog</a></li>
|
||||
<li><a href="http://www.odoo.com/blog">Blog</a></li>
|
||||
<li><a href="http://www.odoo.com/blog/6">Customers</a></li>
|
||||
<li class="divider" />
|
||||
<li><a href="http://www.odoo.com/jobs">Jobs</a></li>
|
||||
<li class="divider" />
|
||||
<li><a href="http://www.odoo.com/page/legal">Legal</a> | <a href="http://www.odoo.com/privacy">Privacy</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -355,3 +364,4 @@
|
||||
</div>
|
||||
</footer>
|
||||
{%- endblock -%}
|
||||
|
||||
|
||||
@@ -1,113 +1,91 @@
|
||||
// ====== Aside =======
|
||||
// ======================
|
||||
|
||||
aside {
|
||||
.pseudo-col();
|
||||
width: 100%;
|
||||
max-width: 240px;
|
||||
position: static;
|
||||
padding: 0;
|
||||
display: block;
|
||||
border-right: 1px solid @gray-lighter;
|
||||
|
||||
@media (max-width:@screen-md-min) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-aside {
|
||||
position : relative;
|
||||
overflow : hidden;
|
||||
font-family : @headings-font-family;
|
||||
font-size : 0.85em;
|
||||
line-height : 1.5;
|
||||
font-weight : @fw_medium;
|
||||
overflow-y : auto;
|
||||
height : 100%;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
font-family: @headings-font-family;
|
||||
font-size: 0.85em;
|
||||
line-height: 1.5;
|
||||
overflow-y: auto;
|
||||
|
||||
&.affix {
|
||||
z-index : 2;
|
||||
top : @w-sub-nav-height - 1;
|
||||
position : fixed;
|
||||
z-index: 2;
|
||||
top: @w-sub-nav-height - 1;
|
||||
position: fixed;
|
||||
backface-visibility: hidden;
|
||||
|
||||
@media (max-width:@screen-md-min) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
> ul.list-group {
|
||||
margin : 0;
|
||||
z-index : 0;
|
||||
margin: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
> h3 {
|
||||
margin : 0;
|
||||
padding : 15px 0 10px;
|
||||
margin: 0;
|
||||
padding: 15px 0 10px;
|
||||
text-transform: uppercase;
|
||||
font-weight : @fw_semibold;
|
||||
font-size : 16px;
|
||||
color : @text-color;
|
||||
overflow-x : hidden;
|
||||
position : relative;
|
||||
z-index : 1;
|
||||
font-weight: @fw_semibold;
|
||||
font-size: 16px;
|
||||
color: @text-color;
|
||||
overflow-x: hidden;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
.box-shadow(0 10px 9px -10px #d2d2d2);
|
||||
}
|
||||
|
||||
.logo_box {
|
||||
width : 100%;
|
||||
background : rgb(253, 253, 253);
|
||||
position : relative;
|
||||
display : block;
|
||||
padding : 15px 30px 10px;
|
||||
border-bottom: 1px solid fadeout(@text-color, 90%);
|
||||
text-align : center;
|
||||
.box-shadow(inset 0px 0 40px rgba(114, 122, 142, .1));
|
||||
|
||||
.logo {
|
||||
float : left;
|
||||
width : 90%;
|
||||
margin : auto auto 10px 5%;
|
||||
height : 50px;
|
||||
background-image : url('img/odoo_logo_rgb.png');
|
||||
background-repeat : no-repeat;
|
||||
background-position: center center;
|
||||
background-size : contain;
|
||||
text-decoration : none;
|
||||
}
|
||||
}
|
||||
|
||||
.gith-container {
|
||||
margin : 0;
|
||||
z-index : 1;
|
||||
position : relative;
|
||||
margin: 0;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
|
||||
.gith-link {
|
||||
font-weight : 600;
|
||||
color : @text-color;
|
||||
color: @text-color;
|
||||
text-decoration: none;
|
||||
display : inline-block;
|
||||
position : relative;
|
||||
margin : 10px 0;
|
||||
.transition(color .2s);
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
margin: 10px 0;
|
||||
font-family: @font-family-base;
|
||||
|
||||
&:hover {
|
||||
color : @headings-color;
|
||||
color: @headings-color;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
&:before {
|
||||
.size(20px;20px);
|
||||
.opacity(.5);
|
||||
content : '';
|
||||
position : relative;
|
||||
.square(1em);
|
||||
content: '';
|
||||
position: relative;
|
||||
background-image: url('img/github-square_32.png');
|
||||
background-size : 100%;
|
||||
display : inline-block;
|
||||
vertical-align : middle;
|
||||
background-size: 100%;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
.translate(0;-1px);
|
||||
.transition(opacity .2s);
|
||||
}
|
||||
|
||||
&:hover, &:focus {
|
||||
&:before {
|
||||
.opacity(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-- All menu levels
|
||||
ul {
|
||||
padding : 0;
|
||||
position : relative;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
margin-bottom: 0 !important;
|
||||
|
||||
li {
|
||||
@@ -120,37 +98,64 @@
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
overflow : hidden;
|
||||
overflow: hidden;
|
||||
border-radius: 2px 0 0 0;
|
||||
}
|
||||
|
||||
> a {
|
||||
display: block;
|
||||
padding: 5px 15px;
|
||||
color : @text-color;
|
||||
color: @text-color;
|
||||
line-height: 1.2;
|
||||
|
||||
&:hover, &:focus {
|
||||
&:focus, &:hover {
|
||||
color: @headings-color;
|
||||
}
|
||||
}
|
||||
|
||||
&.parent > a:after{
|
||||
content: '\e7c1';
|
||||
font-family: 'Material-Design-Icons';
|
||||
opacity: 0.8;
|
||||
margin-top: -6px;
|
||||
.o-position-absolute(50%, 10px);
|
||||
.rotate(90deg);
|
||||
.transition(transform 0.2s);
|
||||
}
|
||||
|
||||
&.parent.active > a:after{
|
||||
.rotate(0);
|
||||
}
|
||||
}
|
||||
|
||||
//-- Inner menu list
|
||||
ul {
|
||||
max-height : 0;
|
||||
background-color: @gray-lighter;
|
||||
padding-left : 15px;
|
||||
overflow : hidden;
|
||||
max-height: 0;
|
||||
background-color: fade(@gray-light, 20%);
|
||||
padding: 0px;
|
||||
overflow: hidden;
|
||||
margin-left: 0;
|
||||
box-shadow: inset 0 3px 5px -2px @gray-light;
|
||||
.transition(max-height 0.3s @o-ease);
|
||||
|
||||
> li:not(:last-child) {
|
||||
box-shadow: 0 1px 0 fade(black, 4%);
|
||||
|
||||
&.active > ul > li:not(:first-child) {
|
||||
border-top: 1px solid @gray-lighter;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-- Active lis
|
||||
li.active {
|
||||
&, &:hover, &:focus {
|
||||
&, &:focus, &:hover {
|
||||
border-color: @gray-lighter;
|
||||
background : transparent;
|
||||
background: transparent;
|
||||
|
||||
> a {
|
||||
font-weight: bold;
|
||||
color: @headings-color;
|
||||
}
|
||||
}
|
||||
@@ -162,32 +167,44 @@
|
||||
|
||||
// First menu level
|
||||
> ul > li {
|
||||
border-bottom: 1px solid @gray-lighter;
|
||||
background : white;
|
||||
background: white;
|
||||
border-bottom: 1px solid fade(black, 8%);
|
||||
|
||||
> a {
|
||||
padding: 10px 15px;
|
||||
border-left: 3px solid transparent;
|
||||
}
|
||||
|
||||
&:hover, &:focus {
|
||||
&:focus, &:hover {
|
||||
> a {
|
||||
box-shadow : inset 5px 0 0 -3px @gray-light;
|
||||
border-left: 3px solid @gray-light;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
&.active, &.active:hover, &.active:focus{
|
||||
&.active, &.active:focus, &.active:hover {
|
||||
> a {
|
||||
box-shadow : inset 5px 0 0 -3px @brand-primary;
|
||||
border-left: 3px solid @brand-primary;
|
||||
}
|
||||
}
|
||||
|
||||
&.parent {
|
||||
> a:after {
|
||||
content : '\e7c1';
|
||||
font-family: 'Material-Design-Icons';
|
||||
opacity : 0.5;
|
||||
.o-position-absolute(auto, 10px);
|
||||
&.active.parent + li {
|
||||
box-shadow: 0 -3px 5px -4px fade(@gray-darker, 40%);
|
||||
}
|
||||
|
||||
> ul > li {
|
||||
> a {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
> ul > li {
|
||||
> a {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
> ul > li > a {
|
||||
padding-left: 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -195,25 +212,23 @@
|
||||
|
||||
.floating_action_container {
|
||||
position: fixed;
|
||||
right : 8px;
|
||||
bottom : 8px;
|
||||
width : auto;
|
||||
z-index : @zIndex--float_action;
|
||||
|
||||
right: 8px;
|
||||
bottom: 8px;
|
||||
width: auto;
|
||||
z-index: @zIndex--float_action;
|
||||
@media (min-width:@screen-md-min) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
#floating_action {
|
||||
width : 56px;
|
||||
height : 56px;
|
||||
display : inline-block;
|
||||
z-index : 0;
|
||||
.square(56px);
|
||||
display: inline-block;
|
||||
z-index: 0;
|
||||
background-color: transparent;
|
||||
border-radius : 50%;
|
||||
padding : 16px;
|
||||
box-shadow : 0 8px 17px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.05);
|
||||
border-radius: 50%;
|
||||
padding: 16px;
|
||||
box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.05);
|
||||
background-color: @brand-primary;
|
||||
.transition(transform 500ms @o-ease);
|
||||
|
||||
@@ -222,55 +237,52 @@
|
||||
}
|
||||
|
||||
&.active {
|
||||
.transform(~"translateZ(0px) rotateZ(-180deg)");
|
||||
.transform(~ "translateZ(0px) rotateZ(-180deg)");
|
||||
}
|
||||
}
|
||||
|
||||
#floating_action_menu {
|
||||
position : absolute;
|
||||
z-index : 1;
|
||||
overflow : hidden;
|
||||
right : 0;
|
||||
width : 380px;
|
||||
bottom : 0;
|
||||
padding : 0;
|
||||
display : block;
|
||||
.o-position-absolute(auto,0,0);
|
||||
z-index: 1;
|
||||
overflow: hidden;
|
||||
width: 380px;
|
||||
padding: 0;
|
||||
display: block;
|
||||
border-radius: 2px;
|
||||
visibility : hidden;
|
||||
visibility: hidden;
|
||||
.transition(all 0.5s);
|
||||
.box-shadow(0 0 0 transparent);
|
||||
|
||||
.content {
|
||||
margin: 0;
|
||||
.opacity(0);
|
||||
opacity:0;
|
||||
|
||||
li {
|
||||
border : none;
|
||||
border: none;
|
||||
border-top: 1px solid #DDD;
|
||||
|
||||
&:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
display : inline-block;
|
||||
cursor : pointer;
|
||||
color : @headings-color;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
color: @headings-color;
|
||||
text-decoration: none;
|
||||
float : left;
|
||||
width : 100%;
|
||||
padding : 5px 10px;
|
||||
float: left;
|
||||
width: 100%;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.bubble {
|
||||
position : absolute;
|
||||
.size(1px; 1px);
|
||||
background : @brand-primary;
|
||||
content : '';
|
||||
bottom : 28px;
|
||||
right : 28px;
|
||||
color : #fff;
|
||||
.o-position-absolute(auto,28px,28px);
|
||||
.square(1px);
|
||||
background: @brand-primary;
|
||||
content: '';
|
||||
color: #fff;
|
||||
border-radius: 50%;
|
||||
.transition(all 300ms @o-ease);
|
||||
}
|
||||
@@ -281,17 +293,17 @@
|
||||
}
|
||||
|
||||
&.active {
|
||||
display : block;
|
||||
display: block;
|
||||
visibility: visible;
|
||||
.transition(all 500ms @o-ease);
|
||||
|
||||
.bubble, &:before {
|
||||
&:before, .bubble {
|
||||
.size(1000px; 2000px);
|
||||
border-radius: 50%;
|
||||
.opacity(0);
|
||||
margin-right : -500px;
|
||||
opacity: 0;
|
||||
margin-right: -500px;
|
||||
margin-bottom: -500px;
|
||||
display : block;
|
||||
display: block;
|
||||
.transition(all .4s @o-ease);
|
||||
}
|
||||
|
||||
@@ -301,9 +313,27 @@
|
||||
|
||||
.content {
|
||||
position: relative;
|
||||
z-index : 1;
|
||||
z-index: 1;
|
||||
.opacity(1);
|
||||
.transition(all 500ms @ease-material-3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#mask {
|
||||
.opacity(0);
|
||||
position: fixed;
|
||||
z-index: @zIndex--mask;
|
||||
top: 0;
|
||||
left: 0;
|
||||
.size(100%; 0);
|
||||
background-color: fade(black, 20%);
|
||||
.transition(opacity .3s);
|
||||
|
||||
&.active {
|
||||
.opacity(1);
|
||||
display: block;
|
||||
.square(100%);
|
||||
.transition(opacity .3s);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,516 @@
|
||||
// ================================================
|
||||
// ================ Components ====================
|
||||
// ================================================
|
||||
|
||||
// Ripple buttons
|
||||
// ----------------------------------------
|
||||
@-webkit-keyframes ripple {
|
||||
to {
|
||||
opacity: 0;
|
||||
-webkit-transform: scale(2.5);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes ripple {
|
||||
to {
|
||||
opacity: 0;
|
||||
.scale(2.5);
|
||||
}
|
||||
}
|
||||
|
||||
.ripple {
|
||||
z-index: 2;
|
||||
|
||||
.inner-ripple {
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-radius: 100%;
|
||||
opacity: 1;
|
||||
z-index: -1;
|
||||
background: rgba(0, 0, 0, .05);
|
||||
pointer-events: none;
|
||||
.scale(0);
|
||||
|
||||
&.inner-ripple-animated {
|
||||
.animation(ripple 0.35s ease-in);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Code Fields
|
||||
// ----------------------------------------
|
||||
article.doc-body .code-fields {
|
||||
display: table;
|
||||
width: 100%;
|
||||
padding: 5px;
|
||||
font-size: 0.8em;
|
||||
border: 2px solid @gray-lighter;
|
||||
|
||||
.code-field {
|
||||
display: table-row;
|
||||
}
|
||||
|
||||
.code-field-body {
|
||||
display: block;
|
||||
padding-left: 15px;
|
||||
@media screen and (min-width: @screen-md-min) {
|
||||
display: table-cell;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.code-field-name {
|
||||
width: auto;
|
||||
display: block;
|
||||
font-weight: @fw_semibold;
|
||||
color: @headings-color;
|
||||
|
||||
&:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
@media screen and (min-width: @screen-md-min) {
|
||||
text-align: right;
|
||||
width: 20%;
|
||||
padding-right: 10px;
|
||||
display: table-cell;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
margin: 0.2em 0;
|
||||
|
||||
> li {
|
||||
margin: 0 0 8px;
|
||||
padding-left: 0px;
|
||||
line-height: 1.5;
|
||||
|
||||
&:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
strong {
|
||||
color: @headings-color;
|
||||
font-family: @font-family-monospace;
|
||||
}
|
||||
|
||||
em {
|
||||
color: @headings-color;
|
||||
font-family: @font-family-monospace;
|
||||
font-weight: @fw_semibold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Cards
|
||||
// ----------------------------------------
|
||||
.card-img {
|
||||
.o-gradient();
|
||||
.o-position-absolute(0, 0);
|
||||
.translate3d(0;0;0);
|
||||
.square(100%);
|
||||
display: block;
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
}
|
||||
|
||||
.card.top {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
padding: 0 0 2%;
|
||||
.transform-origin(50% 0px 0px);
|
||||
.o-gradient();
|
||||
|
||||
@media screen and (min-width: @screen-sm-min) {
|
||||
padding: 12% 0 5%;
|
||||
}
|
||||
|
||||
@media screen and (min-width: @screen-md-min) {
|
||||
padding: 10% 0 5%;
|
||||
}
|
||||
|
||||
@media screen and (min-width: @screen-lg-min) {
|
||||
padding: 8% 0 4%;
|
||||
}
|
||||
|
||||
&.stacked {
|
||||
background: transparent;
|
||||
.transition(background 1s);
|
||||
}
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
display: block;
|
||||
background-image: url("img/banner_bg.png");
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
.o-position-absolute(0, 0);
|
||||
.square(100%);
|
||||
}
|
||||
|
||||
.card-img {
|
||||
background-image: url("img/banner_bg.png");
|
||||
}
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
font-size: 32px;
|
||||
@media screen and (min-width: @screen-sm-min) {
|
||||
&:not(.o_long_title) {
|
||||
font-size: 40px;
|
||||
}
|
||||
|
||||
&.o_short_title {
|
||||
font-size: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-weight: @fw_light;
|
||||
font-size: 1em;
|
||||
color: white;
|
||||
line-height: 0.9;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.card.top.has_banner {
|
||||
background: @footer-bg-color;
|
||||
|
||||
&:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.card-img {
|
||||
opacity: 0.35;
|
||||
}
|
||||
}
|
||||
|
||||
// Alerts
|
||||
// ----------------------------------------
|
||||
main .alert {
|
||||
padding: 8px 15px;
|
||||
border-radius: 0;
|
||||
margin: 5px auto 15px;
|
||||
border-width: 0 0 0 3px;
|
||||
// 'INFO' is the default style
|
||||
border-color: @brand-info;
|
||||
background-color: lighten(@brand-info, 45%);
|
||||
|
||||
&, p {
|
||||
line-height: 1.3;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 5px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
> ul {
|
||||
margin: 0.5em 0;
|
||||
|
||||
> li {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
h3.alert-title {
|
||||
font-size: 1em;
|
||||
line-height: 1em;
|
||||
margin: 0 0 5px;
|
||||
font-weight: bold;
|
||||
font-family: @font-family-base;
|
||||
color: darken(@brand-info, 5%);
|
||||
|
||||
&:before {
|
||||
.mdi-icon( "\e639");
|
||||
.translate(0, 0.1em);
|
||||
margin-right: 0.2em;
|
||||
}
|
||||
}
|
||||
|
||||
&.alert-info {
|
||||
> h3.alert-title {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.alert-go_to {
|
||||
border-color: @o-violet-dark;
|
||||
background-color: lighten(@o-violet-dark, 52%);
|
||||
color: darken(@o-violet-dark, 5%);
|
||||
|
||||
> h3.alert-title {
|
||||
color: darken(@o-violet-dark, 15%);
|
||||
|
||||
&:before {
|
||||
content: "\e70d";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.alert-success {
|
||||
border-color: lighten(@brand-success, 30%);
|
||||
background-color: lighten(@brand-success, 45%);
|
||||
|
||||
> h3.alert-title {
|
||||
color: darken(@brand-success, 10%);
|
||||
&:before {
|
||||
content: "\e625";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.alert-warning, &.warning {
|
||||
border-color: lighten(@brand-warning, 30%);
|
||||
background-color: lighten(@brand-warning, 35%);
|
||||
|
||||
> h3.alert-title {
|
||||
color: @brand-warning;
|
||||
&:before {
|
||||
content: "\e6a4";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.alert-danger {
|
||||
border-color: lighten(@brand-danger, 30%);
|
||||
background-color: lighten(@brand-danger, 40%);
|
||||
|
||||
> h3.alert-title {
|
||||
color: darken(@brand-danger, 10%);
|
||||
&:before {
|
||||
content: "\e6a4";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.alert-exercise {
|
||||
border-color: lighten(@doc_exercise, 30%);
|
||||
background-color: lighten(@doc_exercise, 40%);
|
||||
color: darken(@doc_exercise, 35%);
|
||||
|
||||
> h3.alert-title {
|
||||
color: @doc_exercise;
|
||||
}
|
||||
|
||||
> h3.alert-title:before {
|
||||
.translate(0;0);
|
||||
top: 28px;
|
||||
content: "\e709";
|
||||
}
|
||||
}
|
||||
|
||||
&.doc-content {
|
||||
@media (min-width: @screen-lg-min) {
|
||||
max-width: 55%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Elements
|
||||
// ----------------------------------------
|
||||
hr.divider {
|
||||
border-color: fadeout(@gray-lightest, 60%);
|
||||
position: absolute;
|
||||
width: 900%;
|
||||
margin-left: -13px;
|
||||
}
|
||||
|
||||
img.img-responsive {
|
||||
box-shadow: 0 3px 15px @gray-lighter;
|
||||
border: 1px solid @gray-lighter;
|
||||
margin-bottom: 25px;
|
||||
|
||||
&:not(:first-child) {
|
||||
margin-top: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.figure {
|
||||
h4 {
|
||||
margin: 0.5em 0 1.5em;
|
||||
padding-left: 1em;
|
||||
font-size: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
.pq-patch {
|
||||
em {
|
||||
display: block;
|
||||
border-radius: 4px 4px 0 0;
|
||||
background: @gray-lighter;
|
||||
padding-left: 10px;
|
||||
font-size: 0.9em;
|
||||
font-weight: @fw_semibold;
|
||||
|
||||
+ .pq-section .highlight {
|
||||
border-radius: 0 0 4px 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
span.menuselection {
|
||||
font-weight: @fw_medium;
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-family: @font-family-serif;
|
||||
font-weight: @fw_semibold;
|
||||
font-style: italic;
|
||||
|
||||
footer {
|
||||
font-family: @font-family-base;
|
||||
background: transparent;
|
||||
text-align: left;
|
||||
color: @text-color;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
cite {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
@media (min-width:@screen-md-min) {
|
||||
border-left: 3px solid fade(@brand-primary, 50%);
|
||||
}
|
||||
}
|
||||
|
||||
.code, code {
|
||||
font-size: 0.8em;
|
||||
font-weight: @fw_semibold;
|
||||
color: darken(@brand-primary, 30%);
|
||||
background-color: lighten(@brand-primary, 50%);
|
||||
}
|
||||
|
||||
.btn {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.table, table {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.code-attribute, .code-class, .code-classmethod, .code-data, .code-function, .code-method, .code-staticmethod {
|
||||
// indents *all* content
|
||||
padding-left: 20px;
|
||||
margin-bottom: 2em;
|
||||
// except for item title which gets dedented back
|
||||
> h6 {
|
||||
margin-left: -20px;
|
||||
margin-bottom: 0.3em;
|
||||
|
||||
.viewcode-link {
|
||||
display: none;
|
||||
float: right;
|
||||
}
|
||||
|
||||
&:hover .viewcode-link {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
article.doc-body {
|
||||
&.index-category {
|
||||
min-height: 300px;
|
||||
min-height: 30vh;
|
||||
|
||||
li.toctree-l1 {
|
||||
padding: 5px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
article.doc-body .content-switcher {
|
||||
margin-top: 0;
|
||||
|
||||
> ul {
|
||||
font-size: 10px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
.transition(all .2s ease);
|
||||
|
||||
> li {
|
||||
font-weight: @fw_semibold;
|
||||
color: @gray-light;
|
||||
border-bottom: 1px solid transparent;
|
||||
margin: 0 20px 0 0;
|
||||
padding-left: 0;
|
||||
font-size: 1.3em;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
list-style: none;
|
||||
.transition(all .2s);
|
||||
opacity: 0.6;
|
||||
|
||||
&:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
&.active {
|
||||
border-bottom: 1px solid @brand-primary;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:hover > ul > li {
|
||||
.opacity(1);
|
||||
}
|
||||
|
||||
> .tabs > * {
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
> .tabs > .active {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.highlight {
|
||||
background: @doc_code-bg;
|
||||
color: @gray-light;
|
||||
border-radius: @border-radius-base;
|
||||
margin-bottom: (@line-height-computed / 2);
|
||||
|
||||
pre {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 0.8em;
|
||||
color: @gray-light;
|
||||
background: @doc_code-bg;
|
||||
font-family: @font-family-monospace;
|
||||
font-weight: @fw_semibold;
|
||||
position: relative;
|
||||
border: none;
|
||||
max-width: 100%;
|
||||
overflow: auto;
|
||||
margin: 0 0 (@line-height-computed / 2);
|
||||
}
|
||||
@@ -1,6 +1,15 @@
|
||||
(function ($) {
|
||||
|
||||
$(document).ready(function () {
|
||||
$(function () {
|
||||
|
||||
// -- Initialize fallbacks for requestAnimationFrame
|
||||
window.requestAnimationFrame = window.requestAnimationFrame
|
||||
|| window.webkitRequestAnimationFrame
|
||||
|| window.mozRequestAnimationFrame
|
||||
|| window.msRequestAnimationFrame
|
||||
|| window.oRequestAnimationFrame
|
||||
|| function (callback) { setTimeout(callback, 10); };
|
||||
|
||||
|
||||
// ======= Define variables =======
|
||||
// =================================
|
||||
@@ -12,14 +21,33 @@
|
||||
win_w = $win.width();
|
||||
|
||||
// -- Main elements
|
||||
var $body = $('body'),
|
||||
$header = $body.find('> header'),
|
||||
$sub_nav = $header.find(".o_sub_nav");
|
||||
$wrap = $body.find('> #wrap'),
|
||||
$card_top = $wrap.find('> .card.top'),
|
||||
$card_top_t = $card_top.find('> .container'),
|
||||
$main = $wrap.find('main'),
|
||||
$footer = $body.find('> footer');
|
||||
var $body = $('body'),
|
||||
$header = $body.find('> header'),
|
||||
$sub_nav = $header.find(".o_sub_nav"),
|
||||
$wrap = $body.find('> #wrap'),
|
||||
$main = $wrap.find('main'),
|
||||
$footer = $body.find('> footer');
|
||||
|
||||
// -- Detect page type
|
||||
var page_type = (function () {
|
||||
if ($wrap.hasClass('index')) {
|
||||
return 'index';
|
||||
} else if ($main.find('article').hasClass('doc-tocindex-category')){
|
||||
return 'category-index';
|
||||
} else {
|
||||
return 'article';
|
||||
}
|
||||
})();
|
||||
|
||||
// -- CP > "Card Top"
|
||||
var $cp = $wrap.find('> .card.top'),
|
||||
$cp_image = $cp.find('> .card-img'),
|
||||
$cp_text = $cp.find('> .container'),
|
||||
|
||||
cp_h = $cp.outerHeight(),
|
||||
has_cp_image = $cp_image.length > 0,
|
||||
cp_image_alpha = has_cp_image ? $cp_image.css('opacity') : undefined,
|
||||
cp_end_point = has_cp_image ? cp_h/2 : undefined;
|
||||
|
||||
// -- Floating action
|
||||
var $mask = $body.find('#mask'),
|
||||
@@ -27,37 +55,34 @@
|
||||
$float_menu = $body.find("#floating_action_menu");
|
||||
|
||||
// -- Elements' heights
|
||||
var body_h = $body.height(),
|
||||
header_h = $header.outerHeight(),
|
||||
sub_nav_h = $sub_nav.height();
|
||||
var body_h = $body.height(),
|
||||
header_h = $header.outerHeight(),
|
||||
main_h = $main.height(),
|
||||
sub_nav_h = $sub_nav.height();
|
||||
|
||||
// -- Aside
|
||||
var $aside = $main.find('aside'),
|
||||
has_aside = $aside.length > 0,
|
||||
$aside_nav = undefined;
|
||||
aside_links = undefined;
|
||||
$aside_nav = has_aside ? $aside.find('> .navbar-aside') : undefined,
|
||||
aside_links = has_aside ? $aside_nav.find("li > a") : undefined;
|
||||
|
||||
|
||||
if (has_aside) {
|
||||
$aside_nav = $aside.find('> .navbar-aside');
|
||||
aside_links = $aside_nav.find("li > a");
|
||||
}
|
||||
|
||||
// ======= Affix =================
|
||||
// ===============================
|
||||
function set_affix(body_h) {
|
||||
var aside_offset = $aside.offset().top - sub_nav_h,
|
||||
aside_width = $aside.width(),
|
||||
main_bottom = 40;
|
||||
function set_affix() {
|
||||
var aside_offset_top = $aside.offset().top - sub_nav_h,
|
||||
aside_offset_bot = parseInt($wrap.css('padding-bottom')),
|
||||
aside_width = $aside.width();
|
||||
|
||||
$aside_nav.css('width', aside_width);
|
||||
$aside_nav.affix({
|
||||
target: window,
|
||||
$aside.css('height', main_h);
|
||||
$aside_nav.css('width', aside_width).affix({
|
||||
offset: {
|
||||
top : aside_offset,
|
||||
bottom : main_bottom
|
||||
top : aside_offset_top,
|
||||
bottom : aside_offset_bot,
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
// ======= Footer animations =====
|
||||
// ===============================
|
||||
@@ -67,22 +92,22 @@
|
||||
if (!footer_effect) {
|
||||
footer_stop();
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
$footer.toggleClass('o_footer_effect', footer_effect);
|
||||
$body.css('padding-bottom', $footer.outerHeight());
|
||||
|
||||
var checkIfSearch = function(e) {
|
||||
var checkIfSearch = function (e) {
|
||||
if ((e.ctrlKey || e.metaKey) && String.fromCharCode(e.which).toLowerCase() === 'f') {
|
||||
footer_stop();
|
||||
}
|
||||
};
|
||||
$win.on('keydown.footer', function(e) {
|
||||
$win.on('keydown.footer', function (e) {
|
||||
checkIfSearch(e);
|
||||
});
|
||||
};
|
||||
|
||||
var footer_stop = function() {
|
||||
var footer_stop = function () {
|
||||
$footer.removeClass('o_footer_effect');
|
||||
$body.css('padding-bottom', 0);
|
||||
$win.off('keydown.footer');
|
||||
@@ -92,24 +117,59 @@
|
||||
// ======= Docs Functions ==========
|
||||
// =================================
|
||||
// -- Layouting
|
||||
var layouting = function () {
|
||||
if ($main.hasClass("index")) {
|
||||
$main.find("#index .index-tree > .row").each(function() {
|
||||
var childs = $(this).find(".col-md-3");
|
||||
if (childs.length == 2) {
|
||||
childs.removeClass("col-md-3").addClass("col-md-6");
|
||||
}
|
||||
if (childs.length == 3) {
|
||||
childs.removeClass("col-md-3").addClass("col-md-4");
|
||||
}
|
||||
})
|
||||
$(".floating_action_container").remove();
|
||||
var init = function () {
|
||||
var $floating_container = $body.find("> .floating_action_container");
|
||||
|
||||
// Adapt Title font size according to its length
|
||||
$cp_text
|
||||
.toggleClass('o_short_title', $cp_text.text().trim().length < 15)
|
||||
.toggleClass('o_long_title', $cp_text.text().trim().length > 45);
|
||||
|
||||
if (page_type == 'index') {
|
||||
var half_cols_selector = '.tutorials,.api';
|
||||
|
||||
$main.find("#index .index-tree").find(half_cols_selector)
|
||||
.wrap('<div class="o_half_col col-sm-6"/>')
|
||||
.find('.col-md-3').removeClass('col-md-3 col-sm-6').addClass('col-sm-12 col-md-6');
|
||||
|
||||
var half_cols_els = $main.find(".o_half_col");
|
||||
for(var i = 0; i < half_cols_els.length; i+=2) {
|
||||
half_cols_els.slice(i, i+2).wrapAll("<div class='row'></div>");
|
||||
}
|
||||
}
|
||||
if (has_aside) { $aside_nav.find("li").has("ul").addClass("parent"); };
|
||||
}
|
||||
|
||||
if (page_type == 'index' || page_type == 'category-index') {
|
||||
$floating_container.add($mask).remove();
|
||||
$main.toggleClass('o_slim_page', page_type == 'category-index');
|
||||
}
|
||||
|
||||
if (page_type == 'article') {
|
||||
attach_permalink_markers();
|
||||
|
||||
// Hide empty-permalink first sections
|
||||
var $f_s = $main.find('article.doc-body > section:first-child');
|
||||
$f_s.toggleClass('hidden', $f_s[0].childElementCount == 1 && $f_s.children().is('i:empty'));
|
||||
|
||||
if (has_aside) {
|
||||
if (aside_links.length < 2) {
|
||||
has_aside = false;
|
||||
$main.addClass("o_aside_removed");
|
||||
$floating_container.add($mask).add($aside).remove();
|
||||
return;
|
||||
}
|
||||
|
||||
floating_menu_layout();
|
||||
set_scroll_to(aside_links);
|
||||
ripple_animation(aside_links);
|
||||
$aside_nav.find("li").has("ul").addClass("parent");
|
||||
}
|
||||
}
|
||||
|
||||
bind_window_events();
|
||||
};
|
||||
|
||||
// -- Float action menu
|
||||
var floating_menu_layout = function() {
|
||||
var floating_menu_layout = function () {
|
||||
var lis = $aside_nav.find("> ul > li").clone(true)
|
||||
.addClass("ripple")
|
||||
.css({
|
||||
@@ -117,53 +177,46 @@
|
||||
overflow: 'hidden'
|
||||
});
|
||||
lis.find("ul").remove().end()
|
||||
.find("a").removeClass("ripple").on("click", function() {
|
||||
floating_menu_toggle();
|
||||
.find("a").removeClass("ripple").on("click", function () {
|
||||
_toggle_float();
|
||||
});
|
||||
$float_menu.find(".content").empty().append(lis);
|
||||
$float.add($mask).on("click", function () {
|
||||
floating_menu_toggle();
|
||||
_toggle_float();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
var floating_menu_toggle = function() {
|
||||
$float.toggleClass("active");
|
||||
setTimeout(function() {
|
||||
$float_menu.toggleClass("active");
|
||||
$mask.toggleClass("active");
|
||||
}, 300);
|
||||
};
|
||||
|
||||
// -- Scroll To
|
||||
var scroll_to = function(el_list) {
|
||||
var offset = 80;
|
||||
el_list.each(function() {
|
||||
var $link = $(this),
|
||||
href = $link.attr("href");
|
||||
var set_scroll_to = function (el_list) {
|
||||
el_list.each(function () {
|
||||
var $link = $(this),
|
||||
target_id = $link.attr("href");
|
||||
|
||||
$link.on("click", function() {
|
||||
var val = $(href).offset().top - 60;
|
||||
$('html, body').animate({
|
||||
scrollTop: val
|
||||
}, 400);
|
||||
$link.on("click", function () {
|
||||
$aside_nav.find("li").removeClass("active");
|
||||
$link.parents("li").addClass("active");
|
||||
window.location.hash = $link.prop('hash');
|
||||
_scroll_and_set_hash(target_id);
|
||||
return false;
|
||||
})
|
||||
})
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$body.scrollspy({
|
||||
target: 'aside',
|
||||
offset: 200,
|
||||
});
|
||||
};
|
||||
|
||||
// -- Ripple buttons
|
||||
var ripple_animation = function(el_list) {
|
||||
el_list.each(function() {
|
||||
var ripple_animation = function (el_list) {
|
||||
el_list.each(function () {
|
||||
var btn = $(this);
|
||||
btn
|
||||
.css({
|
||||
position: 'relative',
|
||||
overflow: 'hidden'
|
||||
})
|
||||
.bind('mousedown', function(e) {
|
||||
.bind('mousedown', function (e) {
|
||||
var ripple;
|
||||
if (btn.find('.inner-ripple').length === 0) {
|
||||
ripple = $('<span class="inner-ripple"/>');
|
||||
@@ -186,43 +239,17 @@
|
||||
top: y + 'px',
|
||||
left: x + 'px'
|
||||
}).addClass('inner-ripple-animated');
|
||||
setTimeout(function() {
|
||||
setTimeout(function () {
|
||||
ripple.removeClass('inner-ripple-animated');
|
||||
}, 351);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
// -- Cards animation
|
||||
var cards_animate = function(type, speed) {
|
||||
type = type || 'in';
|
||||
speed = speed || 2000;
|
||||
var $container = $("main.index"),
|
||||
$cards = $container.find(".card"),
|
||||
$titles = $container.find("h2");
|
||||
|
||||
$cards.each(function() {
|
||||
var $card = $(this),
|
||||
cardOffset = this.getBoundingClientRect(),
|
||||
offset = cardOffset.left * 0.8 + cardOffset.top,
|
||||
delay = parseFloat(offset / speed).toFixed(2);
|
||||
$card.css("transition-delay", delay + "s");
|
||||
});
|
||||
|
||||
if (type === "in") {
|
||||
$titles.fadeTo(0, 0);
|
||||
$titles.fadeTo(1000, 1);
|
||||
$container.addClass("animating");
|
||||
} else {
|
||||
$titles.fadeTo(300, 0);
|
||||
$container.removeClass("animating");
|
||||
}
|
||||
};
|
||||
|
||||
// -- Header buttons
|
||||
var header_buttons = function () {
|
||||
var timer;
|
||||
$header.on('click', '.o_primary_nav .dropdown-toggle', function(e) {
|
||||
$header.on('click', '.o_primary_nav .dropdown-toggle', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $a = $(this);
|
||||
@@ -233,12 +260,12 @@
|
||||
if ($a.closest('.o_primary_nav').children('.open').length > 0) {
|
||||
$header.addClass("o_sub_opened");
|
||||
} else {
|
||||
timer = setTimeout(function() {
|
||||
timer = setTimeout(function () {
|
||||
$header.removeClass("o_sub_opened");
|
||||
}, 200);
|
||||
}
|
||||
});
|
||||
$header.on('click', '.o_primary_nav .o_secondary_nav', function(e) {
|
||||
$header.on('click', '.o_primary_nav .o_secondary_nav', function (e) {
|
||||
if (e.target === e.currentTarget) {
|
||||
$header.find('.open').removeClass('open');
|
||||
$header.find('.o_sub_opened').andSelf().removeClass('o_sub_opened');
|
||||
@@ -246,28 +273,53 @@
|
||||
});
|
||||
|
||||
// -- Mobile menu opening
|
||||
$header.on('click', '.o_mobile_menu_toggle', function(e) {
|
||||
$header.on('click', '.o_mobile_menu_toggle', function (e) {
|
||||
e.preventDefault();
|
||||
$(this).find('i').toggleClass('fa-bars fa-times');
|
||||
$header.toggleClass('o_mobile_menu_opened');
|
||||
});
|
||||
};
|
||||
|
||||
var card_top_animation = function (win_top){
|
||||
var scrollFactor = 1.6,
|
||||
bannerHeight = Math.max(450, $card_top.outerHeight(true) - 60),
|
||||
top = Math.min(win_top, bannerHeight/scrollFactor),
|
||||
base_value = top * (scrollFactor - 1),
|
||||
opacity = top/bannerHeight * scrollFactor;
|
||||
// -- Attach permalink markers to sections' title
|
||||
var attach_permalink_markers = function () {
|
||||
$main.find('article.doc-body > section').each( function () {
|
||||
var $section = $(this),
|
||||
$title = $section.find('> h2, > h3, > h4, > h5, > h6'),
|
||||
target_id = $section.attr('id'),
|
||||
$icon = $('<i/>').addClass('mdi-content-link');
|
||||
|
||||
$card_top.css('transform', 'translateY(' + base_value + 'px)');
|
||||
$card_top_t.css({
|
||||
'transform' : 'translateY( -' + ( base_value - (top/2)) + 'px)',
|
||||
'opacity' : 1 - opacity
|
||||
if ($title.length <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$title.addClass('o_has_permalink_marker').append($icon);
|
||||
|
||||
$icon.on('click', function () {
|
||||
_scroll_and_set_hash("#" + target_id);
|
||||
|
||||
$title.addClass('o_marked').delay(1000).queue(function (){
|
||||
$title.removeClass('o_marked').dequeue();
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$(".content-switcher").each(function(index, switcher) {
|
||||
var cp_animation = function (win_top, cp_end_point){
|
||||
var top = Math.min(win_top, cp_h);
|
||||
|
||||
$cp_image.css({
|
||||
'opacity' : cp_image_alpha - (top * (cp_image_alpha/cp_end_point)),
|
||||
'transform' : 'scale(' + (1 + (top * (0.1/cp_end_point))) +')'
|
||||
});
|
||||
|
||||
$cp_text.css({
|
||||
'transform' : 'translateY(' + (top/4) + 'px)',
|
||||
'opacity' : 1 - (top/cp_h)
|
||||
});
|
||||
};
|
||||
|
||||
$(".content-switcher").each(function (index, switcher) {
|
||||
var $switcher = $(switcher),
|
||||
$links = $switcher.find('> ul > li'),
|
||||
$tabs = $switcher.find('> .tabs > *'),
|
||||
@@ -278,66 +330,77 @@
|
||||
$links.eq(index).add($tabs.eq(index)).addClass('active');
|
||||
}
|
||||
select(0);
|
||||
$switcher.on('click', '> ul > li', function() {
|
||||
$switcher.on('click', '> ul > li', function () {
|
||||
select($(this).index());
|
||||
return false;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// ======= Utils ==================
|
||||
// =================================
|
||||
var _scroll_and_set_hash = function (target_id) {
|
||||
$('html, body').animate({
|
||||
scrollTop: $(target_id).offset().top - 60
|
||||
}, 100);
|
||||
window.location.hash = target_id;
|
||||
};
|
||||
|
||||
var _toggle_float = function () {
|
||||
$float.toggleClass("active");
|
||||
setTimeout(function () {
|
||||
$float_menu.toggleClass("active");
|
||||
$mask.toggleClass("active");
|
||||
}, 300);
|
||||
};
|
||||
|
||||
|
||||
var bind_window_events = function () {
|
||||
// ======= On resize ==============
|
||||
// Update properties and conditionally call functions according to resolution
|
||||
$win.on('resize', function () {
|
||||
// Update size variables
|
||||
win_w = $win.width();
|
||||
body_h = $body.height();
|
||||
cp_h = $cp.outerHeight();
|
||||
main_h = $main.height();
|
||||
cp_end_point = has_cp_image ? cp_h/2 : undefined;
|
||||
|
||||
if (win_w >= screen_md){
|
||||
footer_animation();
|
||||
(has_aside)? set_affix(): '';
|
||||
} else {
|
||||
footer_stop();
|
||||
}
|
||||
});
|
||||
|
||||
// ======= On scroll ==============
|
||||
$win.on('scroll', function () {
|
||||
var win_top = $win.scrollTop();
|
||||
|
||||
$win[0].requestAnimationFrame(function () {
|
||||
cp_animation(win_top, cp_end_point);
|
||||
});
|
||||
|
||||
if (win_w >= screen_md) {
|
||||
$header.toggleClass('o_scrolled', win_top > header_h);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// ======= Onload ==================
|
||||
// =================================
|
||||
// -- Call default functions
|
||||
layouting();
|
||||
cards_animate();
|
||||
init();
|
||||
header_buttons();
|
||||
ripple_animation($(".ripple"));
|
||||
|
||||
if (has_aside) {
|
||||
floating_menu_layout();
|
||||
scroll_to(aside_links);
|
||||
ripple_animation(aside_links);
|
||||
}
|
||||
|
||||
// -- Conditionally call specific functions according to resolution
|
||||
if (win_w >= screen_md){
|
||||
footer_animation();
|
||||
|
||||
if (has_aside) {
|
||||
$win.load(function (){
|
||||
// wait until page load before affix
|
||||
body_h = $body.height();
|
||||
set_affix(body_h);
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
// ======= On resize ==============
|
||||
// ================================
|
||||
// Update properties and conditionally call functions according to resolution
|
||||
$win.on('resize', function () {
|
||||
win_w = $win.width();
|
||||
body_h = $body.height();
|
||||
|
||||
if (win_w >= screen_md){
|
||||
footer_animation();
|
||||
if (has_aside) { set_affix(body_h); };
|
||||
} else {
|
||||
footer_stop();
|
||||
};
|
||||
});
|
||||
|
||||
// ======= On scroll ==============
|
||||
// ================================
|
||||
$win.on('scroll', function () {
|
||||
if (win_w >= screen_md) {
|
||||
var win_top = $win.scrollTop();
|
||||
header_h = $header.outerHeight();
|
||||
|
||||
$header.toggleClass('o_scrolled', win_top > header_h);
|
||||
card_top_animation(win_top);
|
||||
} else {
|
||||
$card_top.css('transform', '');
|
||||
}
|
||||
});
|
||||
(has_aside)? set_affix(): '';
|
||||
}
|
||||
});
|
||||
})(jQuery);
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
z-index: 2;
|
||||
background-color: fade(white, 60%);
|
||||
color: @header-link-normal;
|
||||
font-family: @headings-font-family;
|
||||
font-family: "Work Sans", sans-serif;
|
||||
font-size: 12px;
|
||||
.transition(all .2s ease);
|
||||
.transition-property(~'background, box-shadow' );
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
// ================================================
|
||||
// ======= Index pages (covers and toctree) =======
|
||||
// ================================================
|
||||
|
||||
#wrap.index {
|
||||
@media screen and (min-width: @screen-md-min) {
|
||||
> .card.top {
|
||||
padding: 10% 0 2%;
|
||||
}
|
||||
}
|
||||
|
||||
> main.index {
|
||||
margin: 10px auto;
|
||||
|
||||
.o_content {
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main.index {
|
||||
.toc-section h2 {
|
||||
// section title
|
||||
padding: 0 0 4px;
|
||||
border-bottom: 1px solid @gray-lighter;
|
||||
margin: 1.4em 0 0.8em;
|
||||
font-size: 16px;
|
||||
font-family: @font-family-base;
|
||||
letter-spacing: 0;
|
||||
font-weight: bold;
|
||||
color: @text-muted;
|
||||
}
|
||||
|
||||
.card {
|
||||
border-radius: 4px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin-bottom: @card_margin-bottom;
|
||||
padding-top: 56%;
|
||||
background-color: @doc_paper;
|
||||
.deep-1;
|
||||
|
||||
.card-img {
|
||||
span {
|
||||
display: block;
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
.square(100%);
|
||||
}
|
||||
}
|
||||
|
||||
figcaption {
|
||||
color: @text-color;
|
||||
box-shadow: inset 0 1px 0 @gray-lighter;
|
||||
font-weight: bold;
|
||||
line-height: 1.2;
|
||||
font-size: 14px;
|
||||
background-color: white;
|
||||
padding: 8px 12px 6px;
|
||||
.o-position-absolute(0, -1px, auto, -1px);
|
||||
}
|
||||
}
|
||||
|
||||
.toc-single-entry .card figcaption {
|
||||
@media screen and(min-width: @screen-md) {
|
||||
font-size: 1.5em;
|
||||
padding: 20px 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.toctree-wrapper > ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
line-height: 1.4;
|
||||
|
||||
&.toctree-l1, &.toctree-l3 {
|
||||
padding-left: 0;
|
||||
|
||||
&:before {
|
||||
content: none;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.toctree-l1 {
|
||||
margin: 0 0 15px;
|
||||
|
||||
> span {
|
||||
font-size: 21px;
|
||||
}
|
||||
}
|
||||
|
||||
&.toctree-l2 {
|
||||
> span {
|
||||
font-weight: @fw_medium;
|
||||
}
|
||||
|
||||
> ul {
|
||||
margin: 0 0 15px;
|
||||
|
||||
&:empty {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
a {
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,214 +1,164 @@
|
||||
.pseudo-col(){
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.code-col(){
|
||||
content: "";
|
||||
background: @doc_code-bg;
|
||||
.box-shadow(inset 40px 0 40px -18px rgba(22, 24, 29, 0.3));
|
||||
position: absolute;
|
||||
width: 43%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
// ================================================
|
||||
// ================ Layout =======================
|
||||
// ================================================
|
||||
|
||||
|
||||
// Bootrstrap adaptations
|
||||
// ------------------------------------------------------------------
|
||||
body, header {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
// Index layout
|
||||
#wrap {
|
||||
> .container.index {
|
||||
background-color: @gray-lightest;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
|
||||
> .index {
|
||||
.container;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#main_title {
|
||||
margin: 10px;
|
||||
@media (min-width:@screen-md-min) {
|
||||
margin: 0 0 9px 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.container .container {
|
||||
max-width: 100%;
|
||||
padding:0;
|
||||
margin:0;
|
||||
max-width: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
article.doc-content *[class^="col-"] {
|
||||
padding:0;
|
||||
.img-responsive {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
main{
|
||||
|
||||
aside, article.doc-body, .doc-content, .doc-aside {
|
||||
.pseudo-col();
|
||||
}
|
||||
.doc-content, .doc-aside {
|
||||
position:relative;
|
||||
}
|
||||
aside {
|
||||
width: 25%;
|
||||
max-width: 300px;
|
||||
position:static;
|
||||
padding:0;
|
||||
display:block;
|
||||
float:left;
|
||||
@media (max-width:@screen-md-min) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
article.doc-body {
|
||||
background: @doc_paper;
|
||||
border-left: 1px solid @gray-lighter;
|
||||
padding: 15px 30px;
|
||||
@media (min-width: @screen-md-min) {
|
||||
width: 75%;
|
||||
&.doc-toc {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
> *{
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.img-responsive.center-block {
|
||||
display: block;
|
||||
}
|
||||
|
||||
main.has_code_col{
|
||||
.container;
|
||||
article.doc-content *[class*="col-"] {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
aside {
|
||||
display: none;
|
||||
}
|
||||
|
||||
article.doc-body {
|
||||
width: 100%;
|
||||
// Main Components
|
||||
// ------------------------------------------------------------------
|
||||
#wrap {
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
background: @gray-lightest;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
> *{
|
||||
max-width: 100%;
|
||||
main {
|
||||
position: relative;
|
||||
display: block;
|
||||
|
||||
.o_content {
|
||||
background-color: @doc_paper;
|
||||
.deep-1;
|
||||
|
||||
@media (min-width: @screen-sm-min) {
|
||||
margin: -40px auto 0;
|
||||
border-radius: 2px;
|
||||
}
|
||||
}
|
||||
section {
|
||||
position: relative;
|
||||
display:block;
|
||||
float: left;
|
||||
width: 100%;
|
||||
|
||||
article.doc-body {
|
||||
.pseudo-col();
|
||||
padding: 15px;
|
||||
|
||||
@media (min-width: @screen-sm-min) {
|
||||
padding: 15px 30px;
|
||||
}
|
||||
|
||||
@media (min-width: @screen-md-min) {
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
@media (min-width: @screen-lg-min) {
|
||||
margin-left: 7%;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
> * {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main.o_aside_removed, main.o_slim_page {
|
||||
max-width: 700px;
|
||||
|
||||
@media (min-width: @screen-lg-min) {
|
||||
width: 100%;
|
||||
padding-right: 0;
|
||||
&:before {
|
||||
.code-col();
|
||||
}
|
||||
section {
|
||||
> * {
|
||||
width: 54.633333%;
|
||||
max-width: 600px;
|
||||
float: left;
|
||||
clear: left;
|
||||
}
|
||||
> h1, > h2, > h3, > h4, > h5, > h6 {
|
||||
width: 100%;
|
||||
float: none;
|
||||
clear: none;
|
||||
}
|
||||
.doc-aside {
|
||||
width: 41%;
|
||||
float: none;
|
||||
clear: none;
|
||||
margin-right: 15px;
|
||||
margin-left: 57%;
|
||||
|
||||
.content-switcher{
|
||||
margin-top:0;
|
||||
> ul {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
> ul > li {
|
||||
color: @gray-light;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
max-width: 760px;
|
||||
}
|
||||
|
||||
article.doc-body {
|
||||
@media (min-width: @screen-md-min) {
|
||||
padding-left: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main.index .toctree-wrapper{
|
||||
@media screen and(min-width: @screen-md){
|
||||
main.has_code_col {
|
||||
max-width: 700px;
|
||||
|
||||
> .row:first-child { //trigg first section
|
||||
> .col-md-3:nth-child(3), > .col-md-3:nth-child(5) { //trig cards (title + 2, title + 4)
|
||||
margin-right: 50%;
|
||||
}
|
||||
@media (min-width: @screen-lg-min) {
|
||||
max-width: @container-lg;
|
||||
}
|
||||
position: relative;
|
||||
.toc-single-entry{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 50%;
|
||||
padding-right: floor((@grid-gutter-width / 2)); // compensate bootstrap default gutter
|
||||
> .col-md-3 {
|
||||
width: 100%;
|
||||
}
|
||||
> *[class^="col-"] {
|
||||
padding-left: 0; //remove Bootstrap default gutter
|
||||
}
|
||||
.card {
|
||||
min-height: (@card_min-height * 2 ) + @card_margin-bottom;
|
||||
}
|
||||
|
||||
.doc-aside, .doc-content {
|
||||
.pseudo-col();
|
||||
|
||||
@media (max-width: @screen-md-max) {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
aside {
|
||||
display: none;
|
||||
}
|
||||
|
||||
article.doc-body {
|
||||
> section {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
@media (min-width: @screen-lg-min) {
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
margin:0;
|
||||
|
||||
&:before {
|
||||
.code-col();
|
||||
}
|
||||
|
||||
> section {
|
||||
position: relative;
|
||||
display: block;
|
||||
float: left;
|
||||
width: 100%;
|
||||
|
||||
> * {
|
||||
width: 48%;
|
||||
float: left;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
> h2, > h3, > h4, > h5, > h6, > h1 {
|
||||
width: 48%;
|
||||
float: none;
|
||||
clear: none;
|
||||
}
|
||||
|
||||
.doc-aside {
|
||||
width: 49%;
|
||||
float: none;
|
||||
clear: none;
|
||||
margin-left: 51%;
|
||||
color: @gray-light;
|
||||
font-size: 14px;
|
||||
line-height: 1.45;
|
||||
|
||||
pre {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
article.doc-toc .toctree-wrapper > ul > li > span {
|
||||
display: block;
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.code-fields{
|
||||
display: table;
|
||||
width: 100%;
|
||||
.code-field{
|
||||
display: table-row;
|
||||
}
|
||||
.code-field-body{
|
||||
display: block;
|
||||
padding-left: 15px;
|
||||
@media screen and (min-width: @screen-md-min){
|
||||
display: table-cell;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
.code-field-name{
|
||||
width:auto;
|
||||
display:block;
|
||||
@media screen and (min-width: @screen-md-min){
|
||||
width:20%;
|
||||
padding-right: 20px;
|
||||
display: table-cell;
|
||||
}
|
||||
}
|
||||
ul {
|
||||
margin: .2em 0;
|
||||
padding: 0;
|
||||
}
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,25 @@
|
||||
// ================ Mixins =======================
|
||||
// ================================================
|
||||
|
||||
// Code column layout mixins
|
||||
// ------------------------------------------------------------------
|
||||
.pseudo-col() {
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
float: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.code-col() {
|
||||
content: "";
|
||||
background: @doc_code-bg;
|
||||
.box-shadow(inset 40px 0 40px -18px rgba(22, 24, 29, 0.3));
|
||||
.o-position-absolute(0,0);
|
||||
.size(50%, 100%);
|
||||
}
|
||||
|
||||
// Utilities
|
||||
// ------------------------------------------------------------------
|
||||
.o-no-select {
|
||||
@@ -131,65 +150,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
// Elevation Shadows
|
||||
// Visual cue indicating the amount of separation between surfaces.
|
||||
// An object’s elevation determines the appearance of its shadow.
|
||||
// ------------------------------------------------------------------
|
||||
.deep-1-shadow() {
|
||||
// Shadows
|
||||
// --------------------------------------------------
|
||||
.deep-1() {
|
||||
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.17);
|
||||
}
|
||||
.deep-2-shadow() {
|
||||
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 2px 0 rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.deep-3-shadow() {
|
||||
box-shadow: 0 13px 25px 0 rgba(0, 0, 0, 0.1), 0 11px 7px 0 rgba(0, 0, 0, 0.09);
|
||||
}
|
||||
.deep-4-shadow() {
|
||||
box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.1), 0 14px 12px 0 rgba(0, 0, 0, 0.07);
|
||||
}
|
||||
.deep-5-shadow() {
|
||||
box-shadow: 0 27px 55px 0 rgba(0, 0, 0, 0.1), 0 17px 17px 0 rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.deep-transition() {
|
||||
.o-transition(box-shadow, 0.3s, @o-ease);
|
||||
}
|
||||
|
||||
.deep-1() {
|
||||
.deep-1-shadow();
|
||||
|
||||
&.deep_hover:hover {
|
||||
.deep-transition();
|
||||
.deep-2-shadow();
|
||||
}
|
||||
}
|
||||
.deep-2() {
|
||||
.deep-2-shadow();
|
||||
|
||||
&.deep_hover:hover {
|
||||
.deep-transition();
|
||||
.deep-3-shadow();
|
||||
}
|
||||
}
|
||||
.deep-3() {
|
||||
.deep-3-shadow();
|
||||
|
||||
&.deep_hover:hover {
|
||||
.deep-transition();
|
||||
.deep-4-shadow();
|
||||
}
|
||||
}
|
||||
.deep-4() {
|
||||
.deep-4-shadow();
|
||||
|
||||
&.deep_hover:hover {
|
||||
.deep-transition();
|
||||
.deep-5-shadow();
|
||||
}
|
||||
}
|
||||
.deep-5() {
|
||||
.deep-5-shadow();
|
||||
}
|
||||
|
||||
|
||||
.transform(@args) {
|
||||
-webkit-transform : @args;
|
||||
@@ -199,7 +164,8 @@
|
||||
transform : @args;
|
||||
}
|
||||
|
||||
//-- Material Design Icons
|
||||
// Material Design Icons
|
||||
// --------------------------------------------------
|
||||
.mdi-icon(@content) {
|
||||
font-family: 'Material-Design-Icons';
|
||||
content: @content;
|
||||
@@ -210,13 +176,8 @@
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.keyframes(@name; @arguments) {
|
||||
@-moz-keyframes @name { @arguments(); }
|
||||
@-webkit-keyframes @name { @arguments(); }
|
||||
@keyframes @name { @arguments(); }
|
||||
}
|
||||
|
||||
//-- Documentation Dropdown style
|
||||
// Documentation Dropdown style
|
||||
// --------------------------------------------------
|
||||
.o-doc-dropdown {
|
||||
> a.dropdown-toggle {
|
||||
padding: 0 5px 0 10px;
|
||||
@@ -314,35 +275,3 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Shadows
|
||||
// --------------------------------------------------
|
||||
|
||||
.shadow-none {
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
.deep-1 {
|
||||
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.17);
|
||||
}
|
||||
.deep-2 {
|
||||
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 2px 0 rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
.deep-3 {
|
||||
box-shadow: 0 13px 25px 0 rgba(0, 0, 0, 0.1), 0 11px 7px 0 rgba(0, 0, 0, 0.09);
|
||||
}
|
||||
.deep-4 {
|
||||
box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.1), 0 14px 12px 0 rgba(0, 0, 0, 0.07);
|
||||
}
|
||||
.deep-5 {
|
||||
box-shadow: 0 27px 55px 0 rgba(0, 0, 0, 0.1), 0 17px 17px 0 rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
// overwrite bootstrap inline forcing
|
||||
.img-responsive {
|
||||
display: inline-block;
|
||||
}
|
||||
.img-responsive.center-block {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@@ -5,10 +5,6 @@
|
||||
header, footer{
|
||||
display: none;
|
||||
}
|
||||
.fadeInUp, .fadeIn{
|
||||
.opacity(1)!important;
|
||||
.animation(none);
|
||||
}
|
||||
|
||||
#main_navbar{
|
||||
position: relative;
|
||||
|
||||
@@ -6,9 +6,10 @@
|
||||
@import "variables";
|
||||
|
||||
@import "mixins";
|
||||
@import "animations";
|
||||
@import "typography";
|
||||
@import "components";
|
||||
@import "layout";
|
||||
@import "index";
|
||||
@import "header";
|
||||
@import "footer";
|
||||
@import "aside";
|
||||
@@ -28,6 +29,20 @@
|
||||
background-color: @footer-bg-color;
|
||||
color: @gray-lighter;
|
||||
}
|
||||
|
||||
> .o_sub_nav #o_sub-menu #searchbox {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
> form {
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
> .form-control {
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> .o_sub_nav #o_sub-menu .o_breadcrumb {
|
||||
|
||||
@@ -71,7 +86,6 @@
|
||||
line-height: @w-sub-nav-height;
|
||||
letter-spacing: -0.1px;
|
||||
word-spacing: -1px;
|
||||
font-size: 0.9em;
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
max-width: 80px;
|
||||
@@ -252,587 +266,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
#wrap {
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
background: @gray-lightest;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
main {
|
||||
z-index: 0;
|
||||
position: relative;
|
||||
margin: -10px auto 0;
|
||||
display: block;
|
||||
border-radius: 2px;
|
||||
background-color: @doc_paper;
|
||||
.deep-1;
|
||||
|
||||
@media screen and(min-width: @screen-sm) {
|
||||
margin: -40px auto 0px;
|
||||
}
|
||||
}
|
||||
|
||||
main.index {
|
||||
.box-shadow(none);
|
||||
padding-top: 50px;
|
||||
background:transparent;
|
||||
|
||||
.row > h2 { // section title
|
||||
margin-bottom: 1em;
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
|
||||
.card {
|
||||
border-radius: 2px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin-bottom: @card_margin-bottom;
|
||||
min-height: @card_min-height;
|
||||
background-color: @doc_paper;
|
||||
will-change: transform;
|
||||
.deep-2;
|
||||
.transform(scale3d(0, 0, 0) translate3d(50px, 0, 0));
|
||||
.transition( all .5s @o-ease );
|
||||
|
||||
a, a:hover {
|
||||
color: @text-color;
|
||||
text-decoration: none;
|
||||
border-radius: 2px 2px 0 0;
|
||||
}
|
||||
.card-img{
|
||||
.transition(all .5s @o-ease);
|
||||
overflow:hidden;
|
||||
span {
|
||||
position: relative;
|
||||
display: block;
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
will-change: transform;
|
||||
.square(100%);
|
||||
.transform(scale3d(1, 1, 1) translate3d(0, 0, 0));
|
||||
.transform-origin(50%);
|
||||
.opacity(1);
|
||||
.transition(all .5s @o-ease);
|
||||
}
|
||||
}
|
||||
figcaption {
|
||||
.opacity(1);
|
||||
display: block;
|
||||
font-weight: @fw_regular;
|
||||
font-family: @headings-font-family;
|
||||
color: @headings-color;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
font-size: 1.2em;
|
||||
width: 100%;
|
||||
padding: 8px 12px;
|
||||
.o-position-absolute(0);
|
||||
.transition(all .5s @o-ease );
|
||||
}
|
||||
|
||||
&:hover .card-img span{
|
||||
.transform(scale3d(1.02, 1.02, 1.02) translate3d(0, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
.toc-single-entry .card figcaption {
|
||||
@media screen and(min-width: @screen-md){
|
||||
font-size: 1.5em;
|
||||
padding: 20px 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.col-md-6 .card, .col-md-4 .card{
|
||||
@media screen and(min-width: @screen-md){
|
||||
min-height: 300px;
|
||||
figcaption{
|
||||
font-size: 1.5em;
|
||||
padding: 20px 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.animating .card {
|
||||
.transform(scale3d(1, 1, 1) translate3d(0, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
.card-img {
|
||||
.o-gradient();
|
||||
.o-position-absolute(0, 0);
|
||||
.translate3d(0;0;0);
|
||||
.square(100%);
|
||||
display: block;
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
}
|
||||
|
||||
.card.top {
|
||||
padding: 10% 0 8%;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
.o-gradient();
|
||||
.animation(fadeIn 1s);
|
||||
.box-shadow(none);
|
||||
.transform-origin(50% 0px 0px);
|
||||
|
||||
@media screen and (min-width: @screen-sm-min) and (max-width: (@screen-md-min - 1)) {
|
||||
padding-top: 12%;
|
||||
}
|
||||
|
||||
#wrap.index & {
|
||||
padding: 0 0 4%;
|
||||
|
||||
@media screen and (min-width: @screen-sm-min) {
|
||||
padding-top: 12%;
|
||||
}
|
||||
|
||||
@media screen and (min-width: @screen-lg-min) {
|
||||
padding-top: 8%;
|
||||
}
|
||||
}
|
||||
|
||||
&.stacked{
|
||||
background:transparent;
|
||||
.transition(background 1s);
|
||||
}
|
||||
|
||||
&:before {
|
||||
content:"";
|
||||
display: block;
|
||||
background-image: url("img/banner_bg.png");
|
||||
background-size: cover;
|
||||
background-position: 50%;
|
||||
.o-position-absolute(0, 0);
|
||||
.square(100%);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
.card-img {
|
||||
background-image: url("img/banner_bg.png");
|
||||
}
|
||||
|
||||
@media screen and (min-width: @screen-sm-min) and (max-width: (@screen-md-min - 1)) {
|
||||
padding: 12% 0 8%;
|
||||
|
||||
#wrap.index & {
|
||||
padding: 12% 0 4%;
|
||||
}
|
||||
}
|
||||
|
||||
.container {
|
||||
position: relative;
|
||||
h1 {
|
||||
.h2;
|
||||
color: white;
|
||||
|
||||
@media screen and (min-width: @screen-sm-min) {
|
||||
.h1;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.card.top.has_banner {
|
||||
background: @footer-bg-color;
|
||||
|
||||
&:before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.card-img {
|
||||
opacity: 0.35;
|
||||
}
|
||||
}
|
||||
|
||||
// the first level of an application toctree should look more like sections
|
||||
|
||||
.toctree-wrapper > ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
|
||||
> li.toctree-l1 > span {
|
||||
font-family: @headings-font-family;
|
||||
// copy h2 content :/
|
||||
.h2()
|
||||
}
|
||||
}
|
||||
|
||||
// Elements
|
||||
// -----------------------------------------------
|
||||
|
||||
hr.divider {
|
||||
border-color: fadeout(@gray-lightest, 60%);
|
||||
position: absolute;
|
||||
width: 900%;
|
||||
margin-left: -13px;
|
||||
}
|
||||
|
||||
main .alert {
|
||||
padding: 15px;
|
||||
border-radius: 0;
|
||||
border-width: 0 0 0 3px;
|
||||
position: relative;
|
||||
max-width: 95%;
|
||||
display: inline-block;;
|
||||
@media (min-width: @screen-sm-min){
|
||||
padding-left: 5.5em;
|
||||
}
|
||||
> p, > ul {
|
||||
margin: .5em 0;
|
||||
}
|
||||
.alert-info; // 'INFO' is the default style
|
||||
|
||||
> h3, > .alert-title {
|
||||
font-size: 1.642857143em;
|
||||
line-height: 1em;
|
||||
margin: 0 0 10px 0;
|
||||
font-size: 14px;
|
||||
font-weight: @fw_bold;
|
||||
font-family: @headings-font-family;
|
||||
|
||||
&:before {
|
||||
.mdi-icon("\e639");
|
||||
.o-position-absolute(50%, auto, auto, 6px);
|
||||
.translate(0, -0.15em);
|
||||
font-size: 4em;
|
||||
|
||||
@media (max-width: @screen-sm-min){
|
||||
display:none;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.alert-success {
|
||||
border-color: lighten(@brand-success, 30%);
|
||||
background-color: lighten(@brand-success, 45%);
|
||||
color: darken(@brand-success, 35%);
|
||||
|
||||
> .alert-title, > h3 {
|
||||
color: @brand-success
|
||||
}
|
||||
> .alert-title:before, > h3:before {
|
||||
content: "\e625";
|
||||
}
|
||||
}
|
||||
&.alert-info, &.tip {
|
||||
border-color: lighten(@brand-info, 30%);
|
||||
background-color: lighten(@brand-info, 45%);
|
||||
color: darken(@brand-info, 35%);
|
||||
|
||||
> .alert-title, > h3 {
|
||||
color: @brand-info
|
||||
}
|
||||
> .alert-title:before, > h3:before {
|
||||
content: "\e639";
|
||||
}
|
||||
}
|
||||
&.alert-warning, &.warning {
|
||||
border-color: lighten(@brand-warning, 30%);
|
||||
background-color: lighten(@brand-warning, 35%);
|
||||
color: darken(@brand-warning, 35%);
|
||||
|
||||
> .alert-title, > h3 {
|
||||
color: @brand-warning
|
||||
}
|
||||
> .alert-title:before, > h3:before {
|
||||
content: "\e6a4";
|
||||
}
|
||||
}
|
||||
&.alert-danger {
|
||||
border-color: lighten(@brand-danger, 30%);
|
||||
background-color: lighten(@brand-danger, 40%);
|
||||
color: darken(@brand-danger, 35%);
|
||||
|
||||
> .alert-title, > h3 {
|
||||
color: @brand-danger
|
||||
}
|
||||
> .alert-title:before, > h3:before {
|
||||
content: "\e6a4";
|
||||
}
|
||||
}
|
||||
&.alert-exercise {
|
||||
border-color: lighten(@doc_exercise, 30%);
|
||||
background-color: lighten(@doc_exercise, 40%);
|
||||
color: darken(@doc_exercise, 35%);
|
||||
|
||||
> .alert-title, > h3 {
|
||||
color: @doc_exercise;
|
||||
}
|
||||
> .alert-title:before, > h3:before {
|
||||
.translate(0;0);
|
||||
top: 28px;
|
||||
content: "\e709";
|
||||
}
|
||||
}
|
||||
|
||||
&.alert-go_to {
|
||||
border-color: lighten(@brand-info, 30%);
|
||||
background-color: lighten(@brand-info, 45%);
|
||||
border-width: 2px;
|
||||
margin: 2em auto;
|
||||
a{
|
||||
color: darken(@brand-info, 25%);
|
||||
}
|
||||
> .alert-title, > h3 {
|
||||
color: @brand-info
|
||||
}
|
||||
> .alert-title:before, > h3:before {
|
||||
content: "\e70d";
|
||||
}
|
||||
}
|
||||
|
||||
&.doc-content{
|
||||
@media (min-width: @screen-lg-min) {
|
||||
max-width: 55%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
img.img-responsive {
|
||||
margin-bottom: (@line-height-computed / 2);
|
||||
}
|
||||
|
||||
.figure {
|
||||
h4 {
|
||||
margin: 0.5em 0 1.5em;
|
||||
padding-left: 1em;
|
||||
font-size: 1em;
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
.pq-patch{
|
||||
background: @gray-light;
|
||||
em {padding-left: 10px;}
|
||||
}
|
||||
|
||||
span.menuselection{
|
||||
font-weight: @fw_semibold;
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
border: none;
|
||||
background:transparent;
|
||||
}
|
||||
|
||||
dt { margin: .5em 0 .3em;}
|
||||
|
||||
blockquote {
|
||||
font-family: @font-family-serif;
|
||||
font-weight: @fw_semibold;
|
||||
font-style: italic;
|
||||
|
||||
footer {
|
||||
font-family: @font-family-base;
|
||||
background: transparent;
|
||||
text-align: left;
|
||||
color: @text-color;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
|
||||
cite {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
@media (min-width:@screen-md-min) {
|
||||
border-left: 3px solid fade(@brand-primary, 50%);
|
||||
}
|
||||
}
|
||||
code, .code {
|
||||
font-size: 0.8em;
|
||||
font-weight: @fw_semibold;
|
||||
color: darken(@brand-primary, 30%);
|
||||
background-color: lighten(@brand-primary, 50%);
|
||||
}
|
||||
.btn {
|
||||
border-radius: 0;
|
||||
}
|
||||
dd {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
.code-fields {
|
||||
font-size: .9em;
|
||||
border: 2px solid @gray-light;
|
||||
|
||||
.code-field {
|
||||
}
|
||||
|
||||
.code-field-body {
|
||||
}
|
||||
|
||||
.code-field-name {
|
||||
font-weight: @fw_semibold;
|
||||
color: @headings-color;
|
||||
|
||||
&:after{
|
||||
content:":";
|
||||
}
|
||||
@media screen and (min-width: @screen-md-min){
|
||||
font-size: .9em;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: none;
|
||||
|
||||
strong {
|
||||
color: @headings-color;
|
||||
font-family:@font-family-monospace;
|
||||
}
|
||||
em {
|
||||
color: @headings-color;
|
||||
font-family:@font-family-monospace;
|
||||
font-weight: @fw_semibold;
|
||||
font-size: .9em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table, .table {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
.code-class,
|
||||
.code-staticmethod, .code-classmethod, .code-method, .code-function,
|
||||
.code-attribute, .code-data {
|
||||
// indents *all* content
|
||||
padding-left: 20px;
|
||||
margin-bottom: 2em;
|
||||
// except for item title which gets dedented back
|
||||
> h6 {
|
||||
margin-left: -20px;
|
||||
margin-bottom: 0.3em;
|
||||
.viewcode-link {
|
||||
display: none;
|
||||
float: right
|
||||
}
|
||||
&:hover .viewcode-link {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
p {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
}
|
||||
|
||||
main.has_code_col{
|
||||
@media (min-width: @screen-lg-min) {
|
||||
.doc-aside {
|
||||
color: @gray-light;
|
||||
|
||||
pre{
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
article.doc-body {
|
||||
background: @doc_paper;
|
||||
section.doc-content:first-of-type{
|
||||
> p:first-child{
|
||||
.lead;
|
||||
}
|
||||
}
|
||||
|
||||
&.index-category {
|
||||
min-height: 300px;
|
||||
min-height: 30vh;
|
||||
|
||||
li.toctree-l1 {
|
||||
padding: 5px 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content-switcher {
|
||||
margin-top: 1.5em;
|
||||
> ul {
|
||||
font-size: 10px;
|
||||
padding: 0;
|
||||
margin: 0 0 10px;
|
||||
.transition(all .2s ease);
|
||||
|
||||
> li {
|
||||
color: text-color;
|
||||
font-weight: @fw_semibold;
|
||||
border-bottom: 1px solid transparent;
|
||||
margin: 5px;
|
||||
font-size: 1.3em;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
list-style: none;
|
||||
.transition(all .2s);
|
||||
.opacity(0.6);
|
||||
|
||||
&.active {
|
||||
border-bottom: 1px solid @brand-primary;
|
||||
.opacity(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
&:hover > ul > li {
|
||||
.opacity(1);
|
||||
}
|
||||
> .tabs > * {
|
||||
display: none;
|
||||
max-width: 100%;
|
||||
overflow-x: auto;
|
||||
}
|
||||
> .tabs > .active {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.highlight {
|
||||
background: @doc_code-bg;
|
||||
color: @gray-light;
|
||||
border-radius: @border-radius-base;
|
||||
margin-bottom: (@line-height-computed / 2);
|
||||
pre {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 0.8em;
|
||||
color: @gray-light;
|
||||
background: @doc_code-bg;
|
||||
font-family: @font-family-monospace;
|
||||
font-weight: @fw_semibold;
|
||||
position: relative;
|
||||
border: none;
|
||||
max-width: 100%;
|
||||
overflow: auto;
|
||||
margin: 0;
|
||||
margin-bottom: (@line-height-computed / 2);
|
||||
}
|
||||
|
||||
#mask {
|
||||
.opacity(0);
|
||||
position: fixed;
|
||||
z-index: @zIndex--mask;
|
||||
top: 0;
|
||||
left: 0;
|
||||
.size(100%; 0);
|
||||
background-color: fade(black, 20%);
|
||||
.transition(opacity .3s);
|
||||
|
||||
&.active {
|
||||
.opacity(1);
|
||||
display: block;
|
||||
.square(100%);
|
||||
.transition(opacity .3s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Special Pages
|
||||
@@ -841,5 +274,3 @@ pre {
|
||||
#thinking-modular > .clearfix.themes {
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,21 +1,20 @@
|
||||
// =============================================================================
|
||||
// Typography
|
||||
// =============================================================================
|
||||
@margin-base: 5px;
|
||||
|
||||
// Font rendering
|
||||
// ----------------------------------------
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
text-rendering: optimizeLegibility;
|
||||
}
|
||||
|
||||
// Headings
|
||||
// ----------------------------------------
|
||||
h1, h2, h3, h4, h5, h6,
|
||||
.h1, .h2, .h3, .h4, .h5, .h6 {
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-rendering: geometricPrecision;
|
||||
letter-spacing: -0.01em;
|
||||
line-height: 1.4;
|
||||
|
||||
@media (min-width: @screen-lg-min) {
|
||||
.has_code_col .doc-aside &{
|
||||
@@ -24,35 +23,152 @@ h1, h2, h3, h4, h5, h6,
|
||||
}
|
||||
}
|
||||
|
||||
h1, h2, .h1, .h2 {
|
||||
margin-top: @line-height-computed * 1.5;
|
||||
font-weight: @fw_light;
|
||||
b, strong, a {
|
||||
font-weight: @fw_regular;
|
||||
.headings-margin-small () {
|
||||
> h2, > h3, > h4, > h5, > h6 {
|
||||
margin-top: @margin-base*2;
|
||||
}
|
||||
}
|
||||
|
||||
h3, .h3, h4, .h4, h5, h6, .h5, .h6 {
|
||||
font-weight: @fw_regular;
|
||||
b, strong, a {
|
||||
font-weight: @fw_medium;
|
||||
}
|
||||
}
|
||||
h4, .h4, h5, h6, .h5, .h6 {
|
||||
margin-top: @line-height-computed;
|
||||
margin-bottom: (@line-height-computed / 3);
|
||||
.headings-bordered () {
|
||||
padding-bottom: @margin-base;
|
||||
border-bottom: 2px solid #f4f6f7;
|
||||
}
|
||||
|
||||
// Lists
|
||||
// ----------------------------------------
|
||||
article.doc-body {
|
||||
|
||||
ul, ol {
|
||||
&:not(:empty) {
|
||||
margin-bottom: (@line-height-computed / 2);
|
||||
// Vertical rhythm
|
||||
> section {
|
||||
padding-bottom: @margin-base*2;
|
||||
|
||||
> :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
> h2, > h3, > h4, > h5, > h6 {
|
||||
margin-bottom: @margin-base;
|
||||
margin-top: @margin-base*8;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: -@margin-base*6;
|
||||
.headings-bordered();
|
||||
}
|
||||
}
|
||||
|
||||
> h2 {
|
||||
.headings-bordered();
|
||||
}
|
||||
|
||||
> h5, > h6 {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
&:first-of-type {
|
||||
.headings-margin-small();
|
||||
|
||||
&:empty, &.hidden {
|
||||
display: none;
|
||||
|
||||
+ section {
|
||||
.headings-margin-small();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ul, ol {
|
||||
&:not(:empty) {
|
||||
margin-bottom: (@line-height-computed / 3);
|
||||
|
||||
// Typography components
|
||||
> section {
|
||||
line-height: 26px;
|
||||
}
|
||||
|
||||
a, a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
font-size: 15px;
|
||||
line-height: 26px;
|
||||
&:not(:first-child) {
|
||||
margin-top: 17px;
|
||||
}
|
||||
}
|
||||
|
||||
dl {
|
||||
dt code {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 2px 0 @grid-gutter-width/2 @grid-gutter-width/2;
|
||||
}
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
line-height: 26px;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
counter-reset: a;
|
||||
|
||||
li {
|
||||
margin: 5px 0;
|
||||
position: relative;
|
||||
padding-left: 30px;
|
||||
|
||||
&:before {
|
||||
content: "";
|
||||
display: block;
|
||||
.o-position-absolute(9px, @left: 10px);
|
||||
.square(6px);
|
||||
border-radius: 50%;
|
||||
background: #939da3;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6 {
|
||||
margin-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ol > li:before {
|
||||
counter-increment: a;
|
||||
content: counter(a);
|
||||
color: #fff;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
padding: 4px 0;
|
||||
.square(20px);
|
||||
border-radius: 10px;
|
||||
.o-position-absolute(3px, @left: 0);
|
||||
}
|
||||
|
||||
|
||||
.o_has_permalink_marker {
|
||||
transition: all, 0.3s;
|
||||
padding-left: 0;
|
||||
|
||||
i {
|
||||
cursor: pointer;
|
||||
visibility: hidden;
|
||||
margin-left: 0.1em;
|
||||
font-size: 0.8em;
|
||||
padding: 0.2em;
|
||||
.rotate(-45deg);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
i {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
|
||||
&.o_marked {
|
||||
padding-left: 10px;
|
||||
background-color: #fff7d1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,11 +78,8 @@
|
||||
// Typography
|
||||
// ===============================================
|
||||
|
||||
//== Fonts
|
||||
@import url(https://fonts.googleapis.com/css?family=Work+Sans:300,400,500,600,700&subset=latin,latin-ext);
|
||||
|
||||
//== Font sizes/weigths
|
||||
@font-size-base : 15px;
|
||||
@font-size-base : 16px;
|
||||
|
||||
@fw_light : 300;
|
||||
@fw_regular : 400;
|
||||
@@ -91,19 +88,20 @@
|
||||
@fw_bold : 700;
|
||||
|
||||
//== Paragraphs
|
||||
@font-family-base : -apple-system, BlinkMacSystemFont, Helvetica, "Helvetica Neue", Arial, sans-serif;
|
||||
@text-color : saturate(@gray-dark, 5%);
|
||||
@font-family-base : -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
@text-color : #373e42;
|
||||
|
||||
//== Headings
|
||||
@headings-color : saturate(@gray-darker, 15%);
|
||||
@headings-font-family : "Work Sans", sans-serif;
|
||||
@headings-font-weight : @fw_light;
|
||||
@headings-font-family : @font-family-base;
|
||||
@headings-font-weight : @fw_regular;
|
||||
@headings-small-color : @headings-color;
|
||||
|
||||
@display1-size : 6rem;
|
||||
@display2-size : 5.5rem;
|
||||
@display3-size : 4.5rem;
|
||||
@display4-size : 3.5rem;
|
||||
@font-size-h2: 30px;
|
||||
@font-size-h3: 24px;
|
||||
@font-size-h4: 19px;
|
||||
@font-size-h5: 17px;
|
||||
@font-size-h6: 17px;
|
||||
|
||||
//== Global textual link color.
|
||||
@link-color : @o-violet-dark;
|
||||
@@ -160,8 +158,7 @@
|
||||
|
||||
// Cards
|
||||
// --------------------------------------------------
|
||||
@card_min-height: 200px;
|
||||
@card_margin-bottom: 20px;
|
||||
@card_margin-bottom: 25px;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
{# note: if odoo.com/page/docs sub-menu's structure change, these links have to change as well #}
|
||||
|
||||
<li><a href="https://www.odoo.com/documentation/user/11.0/index.html">User</a></li>
|
||||
<li><a href="https://www.odoo.com/documentation/11.0/index.html">Developer</a></li>
|
||||
<li><a href="https://training.odoo.com/">Training center</a></li>
|
||||
<li><a href="https://www.odoo.com/documentation/11.0/webservices/odoo.html">API</a></li>
|
||||
<li><a href="https://www.odoo.com/documentation/11.0/setup/install.html">Installation</a></li>
|
||||
<li><a href="https://www.odoo.com/documentation/user/13.0/index.html">User</a></li>
|
||||
<li><a href="https://www.odoo.com/documentation/13.0/index.html">Developer</a></li>
|
||||
<li><a href="https://odoo.com/slides">eLearning</a></li>
|
||||
<li><a href="https://www.odoo.com/documentation/13.0/webservices/odoo.html">API</a></li>
|
||||
<li><a href="https://www.odoo.com/documentation/13.0/setup/install.html">Installation</a></li>
|
||||
<li><a href="https://www.odoo.com/page/odoo-white-paper">White Papers</a></li>
|
||||
<li><a href="https://www.odoo.com/page/legal">Legal</a></li>
|
||||
|
||||
{%- if pagename != "search" and builder != "singlehtml" %}
|
||||
<li id="searchbox" style="display: none; margin: 0 0 0 10px;" role="search">
|
||||
<form class="search form-inline" action="{{ pathto('search') }}" method="get">
|
||||
<form class="search form-inline input-group-sm" action="{{ pathto('search') }}" method="get">
|
||||
<input type="text" class="form-control" name="q" id="q" placeholder="Search..." />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<button type="submit" value="Go" class="btn btn-default">Go</button>
|
||||
<button type="submit" value="Go" class="btn btn-default btn-sm">Go</button>
|
||||
</form>
|
||||
</li>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
|
||||
@@ -7,11 +7,7 @@ from docutils import nodes
|
||||
from sphinx import addnodes, util, builders
|
||||
from sphinx.locale import admonitionlabels
|
||||
|
||||
try:
|
||||
from urllib import url2pathname
|
||||
except ImportError:
|
||||
# P3
|
||||
from urllib.request import url2pathname
|
||||
from urllib.request import url2pathname
|
||||
|
||||
|
||||
def _parents(node):
|
||||
@@ -41,7 +37,7 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
|
||||
'<meta name="viewport" content="width=device-width, initial-scale=1">'
|
||||
]
|
||||
|
||||
def __init__(self, document, builder):
|
||||
def __init__(self, builder, document):
|
||||
# order of parameter swapped between Sphinx 1.x and 2.x, check if
|
||||
# we're running 1.x and swap back
|
||||
if not isinstance(builder, builders.Builder):
|
||||
@@ -380,7 +376,11 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
|
||||
"Unsupported alignment value \"%s\"" % node['align'],
|
||||
location=doc
|
||||
)
|
||||
# todo: explicit width/height/scale?
|
||||
attrs['style'] = '; '.join(
|
||||
'%s:%s' % (name, node[name] + ('px' if re.match(r'^[0-9]+$', node[name]) else ''))
|
||||
for name in ['width', 'height']
|
||||
if name in node
|
||||
)
|
||||
self.body.append(self.starttag(node, 'img', **attrs))
|
||||
def depart_image(self, node): pass
|
||||
def visit_figure(self, node):
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
function findAncestor(element, name) {
|
||||
name = name.toUpperCase();
|
||||
while(element && element.nodeName.toUpperCase() !== name) {
|
||||
element = element.parentElement;
|
||||
};
|
||||
return element;
|
||||
}
|
||||
|
||||
function createAtom(val, options) {
|
||||
var watchers = {};
|
||||
var validator = options && options.validator || function () { return true; };
|
||||
|
||||
|
Before Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 387 KiB |
|
Before Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 340 KiB |
|
Before Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 195 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 164 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 208 KiB |
|
After Width: | Height: | Size: 441 KiB |
|
After Width: | Height: | Size: 395 KiB |
|
Before Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
After Width: | Height: | Size: 311 KiB |
|
Before Width: | Height: | Size: 607 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 256 KiB |
|
After Width: | Height: | Size: 335 KiB |
|
After Width: | Height: | Size: 199 KiB |
|
Before Width: | Height: | Size: 508 KiB |
|
After Width: | Height: | Size: 271 KiB |
|
Before Width: | Height: | Size: 374 KiB |
|
Before Width: | Height: | Size: 224 KiB |
|
Before Width: | Height: | Size: 246 KiB |
|
Before Width: | Height: | Size: 285 KiB |
|
After Width: | Height: | Size: 263 KiB |
|
After Width: | Height: | Size: 399 KiB |
|
Before Width: | Height: | Size: 105 KiB |
|
After Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 2.5 MiB |
|
After Width: | Height: | Size: 346 KiB |
|
Before Width: | Height: | Size: 256 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 650 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 272 KiB |
|
Before Width: | Height: | Size: 61 KiB |
|
After Width: | Height: | Size: 189 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 349 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 178 KiB |
|
After Width: | Height: | Size: 442 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 241 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 331 KiB |
|
Before Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 217 KiB |
|
Before Width: | Height: | Size: 531 KiB |
|
After Width: | Height: | Size: 322 KiB |
|
After Width: | Height: | Size: 248 KiB |
|
After Width: | Height: | Size: 238 KiB |
|
After Width: | Height: | Size: 460 KiB |
|
After Width: | Height: | Size: 344 KiB |
|
Before Width: | Height: | Size: 429 KiB |
|
After Width: | Height: | Size: 446 KiB |
@@ -133,7 +133,7 @@
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var chart = document.getElementById('chart-of-accounts');
|
||||
var chart = findAncestor(document.querySelector('.chart-of-accounts'), 'section');
|
||||
if (!chart) { return; }
|
||||
|
||||
var controls = document.createElement('div');
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
data.addWatch('chart', function (k, m, prev, next) {
|
||||
React.render(
|
||||
React.createElement(Controls, {p: next}),
|
||||
document.getElementById('chart-controls'));
|
||||
document.getElementById('chart-controls-anglo-saxon'));
|
||||
React.render(
|
||||
React.createElement(Chart, {p: next}),
|
||||
document.querySelector('.valuation-chart-anglo-saxon'));
|
||||
@@ -137,7 +137,7 @@
|
||||
if (!chart) { return; }
|
||||
|
||||
var controls = document.createElement('div');
|
||||
controls.setAttribute('id', 'chart-controls');
|
||||
controls.setAttribute('id', 'chart-controls-anglo-saxon');
|
||||
chart.parentNode.insertBefore(controls, chart);
|
||||
|
||||
data.reset(Immutable.Map({
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
data.addWatch('chart', function (k, m, prev, next) {
|
||||
React.render(
|
||||
React.createElement(Controls, {p: next}),
|
||||
document.getElementById('chart-controls'));
|
||||
document.getElementById('chart-controls-continental'));
|
||||
React.render(
|
||||
React.createElement(Chart, {p: next}),
|
||||
document.querySelector('.valuation-chart-continental'));
|
||||
@@ -137,7 +137,7 @@
|
||||
if (!chart) { return; }
|
||||
|
||||
var controls = document.createElement('div');
|
||||
controls.setAttribute('id', 'chart-controls');
|
||||
controls.setAttribute('id', 'chart-controls-continental');
|
||||
chart.parentNode.insertBefore(controls, chart);
|
||||
|
||||
data.reset(Immutable.Map({
|
||||
|
||||
@@ -1,270 +0,0 @@
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
var data = createAtom();
|
||||
|
||||
function toKey(s, postfix) {
|
||||
if (postfix) {
|
||||
s += ' ' + postfix;
|
||||
}
|
||||
return s.replace(/[^0-9a-z ]/gi, '').toLowerCase().split(/\s+/).join('-');
|
||||
|
||||
}
|
||||
var Controls = React.createClass({
|
||||
render: function () {
|
||||
var state = this.props.p;
|
||||
return React.DOM.div(null, operations.map(function (op) {
|
||||
var label = op.get('label'), operations = op.get('operations');
|
||||
return React.DOM.label(
|
||||
{
|
||||
key: toKey(label),
|
||||
style: {display: 'block'},
|
||||
className: (operations === state.get('active') ? 'highlight-op' : void 0)
|
||||
},
|
||||
React.DOM.input({
|
||||
type: 'checkbox',
|
||||
checked: state.get('operations').contains(operations),
|
||||
onChange: function (e) {
|
||||
if (e.target.checked) {
|
||||
data.swap(function (d) {
|
||||
return d.set('active', operations)
|
||||
.update('operations', function (ops) {
|
||||
return ops.add(operations)
|
||||
});
|
||||
});
|
||||
} else {
|
||||
data.swap(function (d) {
|
||||
return d.set('active', null) // keep visible in state map
|
||||
.update('operations', function (ops) {
|
||||
return ops.remove(operations);
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
}),
|
||||
" ",
|
||||
label
|
||||
);
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
var Chart = React.createClass({
|
||||
render: function () {
|
||||
var lastop = Immutable.Map(
|
||||
(this.props.p.get('active') || Immutable.List()).map(function (op) {
|
||||
return [op.get('account'), op.has('credit') ? 'credit' : 'debit'];
|
||||
})
|
||||
);
|
||||
return React.DOM.div(
|
||||
null,
|
||||
React.DOM.table(
|
||||
{className: 'table table-condensed'},
|
||||
React.DOM.thead(
|
||||
null,
|
||||
React.DOM.tr(
|
||||
null,
|
||||
React.DOM.th(),
|
||||
React.DOM.th({className: 'text-right'}, "Debit"),
|
||||
React.DOM.th({className: 'text-right'}, "Credit"),
|
||||
React.DOM.th({className: 'text-right'}, "Balance"))
|
||||
),
|
||||
React.DOM.tbody(
|
||||
null,
|
||||
this.accounts().map(function (data) {
|
||||
var highlight = lastop.get(data.get('code'));
|
||||
return React.DOM.tr(
|
||||
{key: data.get('code')},
|
||||
React.DOM.th(null,
|
||||
data.get('level') ? '\u2001 ' : '',
|
||||
data.get('code'), ' ', data.get('label')),
|
||||
React.DOM.td({className: React.addons.classSet({
|
||||
'text-right': true,
|
||||
'highlight-op': highlight === 'debit'
|
||||
})}, format(data.get('debit'))),
|
||||
React.DOM.td({className: React.addons.classSet({
|
||||
'text-right': true,
|
||||
'highlight-op': highlight === 'credit'
|
||||
})}, format(data.get('credit'))),
|
||||
React.DOM.td(
|
||||
{className: 'text-right'},
|
||||
((data.get('debit') || data.get('credit'))
|
||||
? format(data.get('debit') - data.get('credit'), 0)
|
||||
: '')
|
||||
)
|
||||
);
|
||||
})
|
||||
)
|
||||
)
|
||||
);
|
||||
},
|
||||
accounts: function() {
|
||||
var data = this.props.p.get('operations');
|
||||
|
||||
var totals = data.toIndexedSeq().flatten(true).reduce(function (acc, op) {
|
||||
return acc
|
||||
.updateIn([op.get('account'), 'debit'], function (d) {
|
||||
return (d || 0) + op.get('debit', zero)(data);
|
||||
})
|
||||
.updateIn([op.get('account'), 'credit'], function (c) {
|
||||
return (c || 0) + op.get('credit', zero)(data);
|
||||
});
|
||||
}, Immutable.Map());
|
||||
|
||||
return accounts.map(function (account) {
|
||||
// for each account, add sum
|
||||
return account.merge(
|
||||
account.get('accounts').map(function (code) {
|
||||
return totals.get(code, NULL);
|
||||
}).reduce(function (acc, it) {
|
||||
return acc.mergeWith(function (a, b) { return a + b; }, it, NULL);
|
||||
})
|
||||
);
|
||||
});
|
||||
}
|
||||
});
|
||||
data.addWatch('chart', function (k, m, prev, next) {
|
||||
React.render(
|
||||
React.createElement(Controls, {p: next}),
|
||||
document.getElementById('chart-controls'));
|
||||
React.render(
|
||||
React.createElement(Chart, {p: next}),
|
||||
document.querySelector('.valuation-chart'));
|
||||
});
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var chart = document.querySelector('.valuation-chart');
|
||||
if (!chart) { return; }
|
||||
|
||||
var controls = document.createElement('div');
|
||||
controls.setAttribute('id', 'chart-controls');
|
||||
chart.parentNode.insertBefore(controls, chart);
|
||||
|
||||
data.reset(Immutable.Map({
|
||||
// last-selected operation
|
||||
active: null,
|
||||
// set of all currently enabled operations
|
||||
operations: Immutable.OrderedSet()
|
||||
}));
|
||||
});
|
||||
|
||||
var NULL = Immutable.Map({debit: 0, credit: 0});
|
||||
var ASSETS = {
|
||||
code: 1,
|
||||
label: "Assets",
|
||||
BANK: { code: 11000, label: "Cash" },
|
||||
ACCOUNTS_RECEIVABLE: { code: 13100, label: "Accounts Receivable" },
|
||||
STOCK: { code: 14000, label: "Inventory" },
|
||||
RAW_MATERIALS: { code: 14100, label: "Raw Materials Inventory" },
|
||||
STOCK_OUT: { code: 14600, label: "Goods Issued Not Invoiced" },
|
||||
TAXES_PAID: { code: 19000, label: "Deferred Tax Assets" }
|
||||
};
|
||||
var LIABILITIES = {
|
||||
code: 2,
|
||||
label: "Liabilities",
|
||||
ACCOUNTS_PAYABLE: { code: 21000, label: "Accounts Payable" },
|
||||
STOCK_IN: { code: 23000, label: "Goods Received Not Purchased" },
|
||||
TAXES_PAYABLE: { code: 26200, label: "Deferred Tax Liabilities" }
|
||||
};
|
||||
var EQUITY = {
|
||||
code: 3,
|
||||
label: "Equity",
|
||||
CAPITAL: { code: 31000, label: "Common Stock" }
|
||||
};
|
||||
var REVENUE = {
|
||||
code: 4,
|
||||
label: "Revenue",
|
||||
SALES: { code: 41000, label: "Goods" },
|
||||
};
|
||||
var EXPENSES = {
|
||||
code: 5,
|
||||
label: "Expenses",
|
||||
GOODS_SOLD: { code: 51100, label: "Cost of Goods Sold" },
|
||||
MANUFACTURING_OVERHEAD: { code: 52000, label: "Manufacturing Overhead" },
|
||||
PRICE_DIFFERENCE: { code: 53000, label: "Price Difference" }
|
||||
};
|
||||
var categories = Immutable.fromJS([ASSETS, LIABILITIES, EQUITY, REVENUE, EXPENSES], function (k, v) {
|
||||
return Immutable.Iterable.isIndexed(v)
|
||||
? v.toList()
|
||||
: v.toOrderedMap();
|
||||
});
|
||||
var accounts = categories.toSeq().flatMap(function (cat) {
|
||||
return Immutable.Seq.of(cat.set('level', 0)).concat(cat.filter(function (v, k) {
|
||||
return k.toUpperCase() === k;
|
||||
}).toIndexedSeq().map(function (acc) { return acc.set('level', 1) }));
|
||||
}).map(function (account) { // add accounts: Seq<AccountCode> to each account
|
||||
return account.set(
|
||||
'accounts',
|
||||
Immutable.Seq.of(account.get('code')).concat(
|
||||
account.toIndexedSeq().map(function (val) {
|
||||
return Immutable.Map.isMap(val) && val.get('code');
|
||||
}).filter(function (val) { return !!val; })
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
var sale = 100,
|
||||
cor = 50,
|
||||
cor_tax = cor * 0.09,
|
||||
tax = sale * 0.09,
|
||||
total = sale + tax,
|
||||
purchase = 52,
|
||||
purchase_tax = 52 * 0.09;
|
||||
var operations = Immutable.fromJS([{
|
||||
label: "Vendor Bill (PO $50, Invoice $40)",
|
||||
operations: [
|
||||
{account: LIABILITIES.STOCK_IN.code, debit: constant(50)},
|
||||
{account: ASSETS.TAXES_PAID.code, debit: constant(50 * 0.09)},
|
||||
{account: LIABILITIES.ACCOUNTS_PAYABLE.code, credit: constant(50 * 1.09)},
|
||||
]
|
||||
}, {
|
||||
label: "Vendor Goods Reception (PO $50, Invoice $50)",
|
||||
operations: [
|
||||
{account: LIABILITIES.STOCK_IN.code, credit: constant(50)},
|
||||
{account: ASSETS.STOCK.code, debit: constant(50)},
|
||||
]
|
||||
}, {
|
||||
label: "Vendor Bill (PO $48, Invoice $50)",
|
||||
operations: [
|
||||
{account: EXPENSES.PRICE_DIFFERENCE.code, debit: constant(2)},
|
||||
{account: LIABILITIES.STOCK_IN.code, debit: constant(48)},
|
||||
{account: ASSETS.TAXES_PAID.code, debit: constant(50 * 0.09)},
|
||||
{account: LIABILITIES.ACCOUNTS_PAYABLE.code, credit: constant(50 * 1.09)},
|
||||
]
|
||||
}, {
|
||||
label: "Vendor Goods Reception (PO $48, Invoice $50)",
|
||||
operations: [
|
||||
{account: LIABILITIES.STOCK_IN.code, credit: constant(48)},
|
||||
{account: ASSETS.STOCK.code, debit: constant(48)},
|
||||
]
|
||||
}, {
|
||||
label: "Customer Invoice",
|
||||
operations: [
|
||||
{account: ASSETS.ACCOUNTS_RECEIVABLE.code, debit: constant(total)},
|
||||
{account: EXPENSES.GOODS_SOLD.code, debit: constant(cor)},
|
||||
{account: REVENUE.SALES.code, credit: constant(sale)},
|
||||
{account: ASSETS.STOCK_OUT.code, credit: constant(cor)},
|
||||
{account: LIABILITIES.TAXES_PAYABLE.code, credit: constant(tax)}
|
||||
]
|
||||
}, {
|
||||
label: "Customer Shipping",
|
||||
operations: [
|
||||
{account: ASSETS.STOCK_OUT.code, debit: constant(cor)},
|
||||
{account: ASSETS.STOCK.code, credit: constant(cor)}
|
||||
]
|
||||
}, {
|
||||
label: "Production Order",
|
||||
operations: [
|
||||
{account: ASSETS.STOCK.code, debit: constant(50)},
|
||||
{account: EXPENSES.MANUFACTURING_OVERHEAD.code, debit: constant(2)},
|
||||
{account: ASSETS.RAW_MATERIALS.code, credit: constant(52)}
|
||||
]
|
||||
}]);
|
||||
function constant(val) {return function () { return val; };}
|
||||
var zero = constant(0);
|
||||
function format(val, def) {
|
||||
if (!val) { return def === undefined ? '' : def; }
|
||||
if (val % 1 === 0) { return val; }
|
||||
return val.toFixed(2);
|
||||
}
|
||||
})();
|
||||
@@ -11,12 +11,12 @@
|
||||
document.querySelector('.journal-entries'));
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var entries_node = document.getElementById('journal-entries');
|
||||
if (!entries_node) { return; }
|
||||
var entries_section = findAncestor(document.querySelector('.journal-entries'), 'section');
|
||||
if (!entries_section) { return; }
|
||||
|
||||
var controls = document.createElement('div');
|
||||
controls.setAttribute('id', 'entries-control');
|
||||
entries_node.insertBefore(controls, entries_node.lastElementChild);
|
||||
entries_section.insertBefore(controls, entries_section.lastElementChild);
|
||||
|
||||
data.reset(entries.first());
|
||||
});
|
||||
@@ -151,7 +151,7 @@
|
||||
explanation: [
|
||||
"Revenues increase by $100",
|
||||
"A tax to pay at the end of the month of $9",
|
||||
"The customer owns you $109",
|
||||
"The customer owes $109",
|
||||
"The inventory is decreased by $50 (shipping of the goods)",
|
||||
"The cost of goods sold decreases the gross profit by $50"
|
||||
],
|
||||
@@ -172,7 +172,7 @@
|
||||
],
|
||||
explanation: [
|
||||
"The company receives $109 in cash",
|
||||
"The customer owns you $109 less"
|
||||
"The customer owes $109 less"
|
||||
],
|
||||
configuration: [
|
||||
"Cash: defined on the journal used when registering the payment, fields Default Credit Account and Default Debit Account",
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
0000011011172505 00178299 DE MEYER LUC KREDBEBB 00820512013 00000 2
|
||||
12135BE33737018595246 EUR0000000011812700270710NOVIAT NV KBC-Business Comfortrekening 003
|
||||
2100010000OL44483FW SCTOFBIONLO1000000000435000110111001010000MEDEDELING 11011113501 0
|
||||
2200010000 GKCCBEBB 1 0
|
||||
2300010000BE41063012345610 PARTNER 1 0 1
|
||||
3100010001OL44483FW SCTOFBIONLO001010001001PARTNER 1 0 0
|
||||
2100020000OL4414AC8BOVSOVSOVERS0000000003044450110111001500001101240283842818 11011113501 0
|
||||
2200020000 BBRUBEBB 1 0
|
||||
2300020000BE61310126985517 PARTNER 2 0 1
|
||||
3100020001OL4414AC8BOVSOVSOVERS001500001001PARTNER 2 1 0
|
||||
3200020001MOLENSTRAAT 60 9340 LEDE 0 0
|
||||
2100030000AFECA0BIS IKLINNINBIS1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0
|
||||
2100030001AFECA0BIS IKLINNINBIS1000000000419920110111813410660 11011113500 0
|
||||
2100030002AFECA0BIS IKLINNINBIS1000000000059120110111813410020 11011113510 0
|
||||
2100040000AFECA0CVA IKLINNINNIG1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0
|
||||
2100040001AFECA0CVA IKLINNINNIG1000000000419920110111813410660 11011113500 0
|
||||
2100040002AFECA0CVA IKLINNINNIG1000000000059120110111813410020 11011113510 0
|
||||
2100050000AOGM00160BSCTOBOGOVER0000000000063740110111001500000TERUGGAVE 37232481 8400083296 . 11011113501 0
|
||||
2200050000 362/363 KREDBEBB 1 0
|
||||
2300050000BE43730004200601 KBC VERZEKERINGEN NV 0 1
|
||||
3100050001AOGM00160BSCTOBOGOVER001500001001KBC VERZEKERINGEN NV 1 0
|
||||
3200050001VAN OVERSTRAETENPLEIN 2 3000 LEUVEN 0 0
|
||||
8135BE44734024486445 EUR0000000013646050110111 0
|
||||
9 000022000000001393080000000003108190 2
|
||||
@@ -0,0 +1,100 @@
|
||||
<?xml version="1.0" encoding="ASCII"?>
|
||||
<?OFX OFXHEADER="200" VERSION="211" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="NONE"?>
|
||||
<OFX>
|
||||
<SIGNONMSGSRSV1>
|
||||
<SONRS>
|
||||
<STATUS>
|
||||
<CODE>0</CODE>
|
||||
<SEVERITY>INFO</SEVERITY>
|
||||
</STATUS>
|
||||
<DTSERVER>20130831165153.000[-8:PST]</DTSERVER>
|
||||
<LANGUAGE>ENG</LANGUAGE>
|
||||
</SONRS>
|
||||
</SIGNONMSGSRSV1>
|
||||
<BANKMSGSRSV1>
|
||||
<STMTTRNRS>
|
||||
<TRNUID>0</TRNUID>
|
||||
<STATUS>
|
||||
<CODE>0</CODE>
|
||||
<SEVERITY>INFO</SEVERITY>
|
||||
</STATUS>
|
||||
<STMTRS>
|
||||
<CURDEF>USD</CURDEF>
|
||||
<BANKACCTFROM>
|
||||
<BANKID>000000123</BANKID>
|
||||
<ACCTID>123456</ACCTID>
|
||||
<ACCTTYPE>CHECKING</ACCTTYPE>
|
||||
</BANKACCTFROM>
|
||||
<BANKTRANLIST>
|
||||
<DTSTART>20130801</DTSTART>
|
||||
<DTEND>20130831165153.000[-8:PST]</DTEND>
|
||||
<STMTTRN>
|
||||
<TRNTYPE>POS</TRNTYPE>
|
||||
<DTPOSTED>20130824080000</DTPOSTED>
|
||||
<TRNAMT>-80</TRNAMT>
|
||||
<FITID>219378</FITID>
|
||||
<NAME>Agrolait</NAME>
|
||||
</STMTTRN>
|
||||
</BANKTRANLIST>
|
||||
<BANKTRANLIST>
|
||||
<DTSTART>20130801</DTSTART>
|
||||
<DTEND>20130831165153.000[-8:PST]</DTEND>
|
||||
<STMTTRN>
|
||||
<TRNTYPE>POS</TRNTYPE>
|
||||
<DTPOSTED>20130824080000</DTPOSTED>
|
||||
<TRNAMT>-90</TRNAMT>
|
||||
<FITID>219379</FITID>
|
||||
<NAME>China Export</NAME>
|
||||
</STMTTRN>
|
||||
</BANKTRANLIST>
|
||||
<BANKTRANLIST>
|
||||
<DTSTART>20130801</DTSTART>
|
||||
<DTEND>20130831165153.000[-8:PST]</DTEND>
|
||||
<STMTTRN>
|
||||
<TRNTYPE>POS</TRNTYPE>
|
||||
<DTPOSTED>20130824080000</DTPOSTED>
|
||||
<TRNAMT>-100</TRNAMT>
|
||||
<FITID>219380</FITID>
|
||||
<NAME>Axelor Scuba</NAME>
|
||||
</STMTTRN>
|
||||
</BANKTRANLIST>
|
||||
<BANKTRANLIST>
|
||||
<DTSTART>20130801</DTSTART>
|
||||
<DTEND>20130831165153.000[-8:PST]</DTEND>
|
||||
<STMTTRN>
|
||||
<TRNTYPE>POS</TRNTYPE>
|
||||
<DTPOSTED>20130824080000</DTPOSTED>
|
||||
<TRNAMT>-90</TRNAMT>
|
||||
<FITID>219381</FITID>
|
||||
<NAME>China Scuba</NAME>
|
||||
</STMTTRN>
|
||||
</BANKTRANLIST>
|
||||
<LEDGERBAL>
|
||||
<BALAMT>2156.56</BALAMT>
|
||||
<DTASOF>20130831165153</DTASOF>
|
||||
</LEDGERBAL>
|
||||
</STMTRS>
|
||||
</STMTTRNRS>
|
||||
</BANKMSGSRSV1>
|
||||
<CREDITCARDMSGSRSV1>
|
||||
<CCSTMTTRNRS>
|
||||
<TRNUID>0</TRNUID>
|
||||
<STATUS>
|
||||
<CODE>0</CODE>
|
||||
<SEVERITY>INFO</SEVERITY>
|
||||
</STATUS>
|
||||
<CCSTMTRS>
|
||||
<CURDEF>USD</CURDEF>
|
||||
<CCACCTFROM>
|
||||
<ACCTID>123412341234</ACCTID>
|
||||
</CCACCTFROM>
|
||||
<BANKTRANLIST>
|
||||
</BANKTRANLIST>
|
||||
<LEDGERBAL>
|
||||
<BALAMT>-562.00</BALAMT>
|
||||
<DTASOF>20130831165153</DTASOF>
|
||||
</LEDGERBAL>
|
||||
</CCSTMTRS>
|
||||
</CCSTMTTRNRS>
|
||||
</CREDITCARDMSGSRSV1>
|
||||
</OFX>
|
||||
@@ -0,0 +1,21 @@
|
||||
!Type:Bank
|
||||
D8/12/13
|
||||
T-1,000.00
|
||||
PDelta PC
|
||||
^
|
||||
D8/15/13
|
||||
T-75.46
|
||||
PWalts Drugs
|
||||
^
|
||||
D3/3/13
|
||||
T-379.00
|
||||
PEpic Technologies
|
||||
^
|
||||
D3/4/13
|
||||
T-20.28
|
||||
PYOUR LOCAL SUPERMARKET
|
||||
^
|
||||
D3/3/13
|
||||
T-421.35
|
||||
PSPRINGFIELD WATER UTILITY
|
||||
^
|
||||
@@ -0,0 +1,8 @@
|
||||
Vendor,Product Template,Vendor Product Name,Vendor Product Code,Price,Minimal Quantity,Start Date,End Date,Delivery Lead Time
|
||||
ASUSTeK,iMac,"Apple iMac 27""",ART439872,1299,5,,,2
|
||||
Camptocamp,iMac,"Apple iMac 27""",IT98764,1399,1,,,4
|
||||
ASUSTeK,"Switch, 24 ports",Bluetek Switch,ART439456,66,,,,4
|
||||
ASUSTeK,Datacard,LS DC02,ART672098,35,,,,5
|
||||
ASUSTeK,Laptop Customized,Asus ROG CS,ART439870,3300,,01/01/2018,12/31/2018,10
|
||||
ASUSTeK,"Mouse, Wireless",Logitech G950,ART859562,12.5,,,,3
|
||||
ASUSTeK,iPad Mini,Apple iPad Mini 32GB,ART547892,750,,01/01/2018,05/05/2018,3
|
||||
|
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 6.6 KiB |