Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce4d4ca31d | ||
|
|
adca37f7fd | ||
|
|
3ebd8ee769 | ||
|
|
e93777ede3 | ||
|
|
433a7d73cb | ||
|
|
44b0837d4d | ||
|
|
0966f63c34 | ||
|
|
a8a3c0865d | ||
|
|
d9456fd688 | ||
|
|
8b55dbdaaf | ||
|
|
c12562561b | ||
|
|
42492ae193 | ||
|
|
5426d15927 | ||
|
|
c4bd81a2d6 | ||
|
|
57f7f94164 | ||
|
|
1ba7fe2973 | ||
|
|
50fe08be90 | ||
|
|
48e7cabc18 | ||
|
|
2aa0d5aac8 | ||
|
|
be6e71cd04 | ||
|
|
6f16f9b3b6 | ||
|
|
6a0d998272 | ||
|
|
5001fc090e | ||
|
|
8e5e836bf8 | ||
|
|
d6e33b36bd | ||
|
|
7c2cf98a73 | ||
|
|
819929f073 | ||
|
|
0c03bb906e | ||
|
|
2c7712b621 | ||
|
|
e817d41837 | ||
|
|
980746e9ff | ||
|
|
30ebde8536 | ||
|
|
d760743749 | ||
|
|
bbc06d99a0 | ||
|
|
564bac6e63 | ||
|
|
0e599bdd28 | ||
|
|
c18cbd1f09 | ||
|
|
8e9f49f4ae | ||
|
|
ffa5b6db61 | ||
|
|
ce756cedf2 | ||
|
|
4e0147de02 | ||
|
|
68bd1e9038 | ||
|
|
0ce1a91dec | ||
|
|
3b0e04fb78 | ||
|
|
9e5f899bbd | ||
|
|
ae06d046c5 | ||
|
|
a9f1377529 | ||
|
|
60406bc239 | ||
|
|
8258e6a399 | ||
|
|
5eb348f815 | ||
|
|
c6fa40d389 | ||
|
|
899765beb6 | ||
|
|
cb1a8e85b6 | ||
|
|
140c02340c | ||
|
|
f525701838 | ||
|
|
04959f5786 | ||
|
|
27aed693bc | ||
|
|
6c75b4e681 | ||
|
|
b03579428b | ||
|
|
3e1a0187e3 | ||
|
|
72aafd7471 | ||
|
|
2a5f58bd50 | ||
|
|
42f66f9f47 | ||
|
|
e23e40a698 | ||
|
|
5290062b24 | ||
|
|
53416b6797 | ||
|
|
2bbb555797 | ||
|
|
64b5021843 | ||
|
|
2807e24cfa | ||
|
|
7f3ee457fc | ||
|
|
dd496b9acf | ||
|
|
d6bfaf99ac | ||
|
|
ee51c8d3e1 | ||
|
|
2ddfde7b9e | ||
|
|
939a4ae669 | ||
|
|
0a3158f919 | ||
|
|
a0a3ea61e9 | ||
|
|
2ba812f1c4 | ||
|
|
6835978712 | ||
|
|
645bef8f5d | ||
|
|
84047260c6 | ||
|
|
9bb2552d77 | ||
|
|
2ffe1d141f | ||
|
|
579485c6a5 | ||
|
|
6969fd5568 | ||
|
|
839a424491 | ||
|
|
ed91fa03fb | ||
|
|
b46da55552 | ||
|
|
9c3600b598 | ||
|
|
70870ac6e8 | ||
|
|
bd221d6fcf | ||
|
|
83aa796c1e | ||
|
|
1252496db4 | ||
|
|
6ccb2cfcd3 | ||
|
|
daf0de5692 | ||
|
|
a9a259ebd0 | ||
|
|
8d989cc6f6 | ||
|
|
0327f751c3 | ||
|
|
2226781a98 | ||
|
|
417afd70ab | ||
|
|
c0dfb4831c | ||
|
|
1a7b51c4bf | ||
|
|
73563e4f31 | ||
|
|
c8c475cdda | ||
|
|
d7f1ebaf3f | ||
|
|
97d888e4d3 | ||
|
|
a9c771c514 | ||
|
|
8387529110 | ||
|
|
ec919bb375 | ||
|
|
0597613139 | ||
|
|
1c686274be | ||
|
|
9447284d2b | ||
|
|
639ca24ffb | ||
|
|
2cda8b1b24 | ||
|
|
4917628f9e | ||
|
|
c2cbc7580a | ||
|
|
ca227013bf | ||
|
|
59e7675a3e | ||
|
|
4a6a39d07e | ||
|
|
ca9e13ed7f | ||
|
|
5a8245956c | ||
|
|
f268af9b85 | ||
|
|
9037e6f448 | ||
|
|
f1e3c9500e | ||
|
|
50e4fc1222 | ||
|
|
e3b482dd57 | ||
|
|
d739c5193f | ||
|
|
b881bf7e71 | ||
|
|
f389df59c4 | ||
|
|
a7e47bba3a | ||
|
|
f5186a81f0 | ||
|
|
ec214ae744 | ||
|
|
70404e1931 | ||
|
|
82441292d1 | ||
|
|
fa0444a90c | ||
|
|
a563e47c1a | ||
|
|
4b5e1e9702 | ||
|
|
4a4cd11790 | ||
|
|
6df77e3bba | ||
|
|
fa701fbbee | ||
|
|
2059823748 | ||
|
|
2437d5b441 | ||
|
|
edcce20d60 | ||
|
|
6204bbb8b1 | ||
|
|
5e459e4541 | ||
|
|
acbac8302f | ||
|
|
95ac339f61 | ||
|
|
7efee37123 | ||
|
|
a1b20d4b9d | ||
|
|
30a6f4267b | ||
|
|
bb75e6eea8 | ||
|
|
683edca122 | ||
|
|
618112b51c | ||
|
|
67620bb895 | ||
|
|
083b4a3b53 | ||
|
|
fbb884b6ea | ||
|
|
022eefd7e8 | ||
|
|
0711859244 | ||
|
|
71ad26a243 | ||
|
|
a9bcdedfee | ||
|
|
1ad3a3149f | ||
|
|
c00149aa89 | ||
|
|
9f1f97f3af | ||
|
|
22284a85ff | ||
|
|
13c95d00d7 | ||
|
|
3e323e496f | ||
|
|
677516d84a | ||
|
|
297f9b57c7 | ||
|
|
6245d219a9 | ||
|
|
4e150e5aba | ||
|
|
1cbb0f990f | ||
|
|
87e5279642 | ||
|
|
ed4c9fa148 | ||
|
|
7b3d7f263a | ||
|
|
2f142e8966 | ||
|
|
50f49781b0 | ||
|
|
4f8559f365 | ||
|
|
d89e79b218 | ||
|
|
4f037efecb | ||
|
|
e5f02d5f5d | ||
|
|
2ecf517aba | ||
|
|
e7e865f596 | ||
|
|
5140e97dbd | ||
|
|
f9e9f1be67 | ||
|
|
3edab6e2e6 | ||
|
|
a8b0037fab | ||
|
|
1a6752f9d9 | ||
|
|
2e3a4fd55f | ||
|
|
94f0c9ee90 | ||
|
|
db23dce2d2 | ||
|
|
1caffd5cc4 | ||
|
|
da8f99bab7 | ||
|
|
76a6e8a502 | ||
|
|
f9dbfd9dbd | ||
|
|
675ae1a8d4 | ||
|
|
2a7907c6c1 | ||
|
|
ce93e0505f | ||
|
|
e7e46cb067 | ||
|
|
30050d403d | ||
|
|
75a5cd588d | ||
|
|
ab32d53575 | ||
|
|
f43452e844 | ||
|
|
eeaaac060e | ||
|
|
c217eaae4d | ||
|
|
d9ec7d5e2a | ||
|
|
fcf1c1d13b | ||
|
|
3461316067 | ||
|
|
b40c92465a | ||
|
|
ea82fc981d | ||
|
|
bedf94056b | ||
|
|
b17f9c343a | ||
|
|
069cf4c880 | ||
|
|
4f1eed7170 | ||
|
|
85b0b654bf | ||
|
|
480819dde8 | ||
|
|
92f7631fe3 | ||
|
|
a512c9d5eb | ||
|
|
6efe71d303 | ||
|
|
164dbca04a | ||
|
|
f1b5e5eb07 | ||
|
|
c6d4eee407 | ||
|
|
b6d8223192 | ||
|
|
66ca203a32 | ||
|
|
64ece7f978 | ||
|
|
22afe47966 | ||
|
|
d94fd873be | ||
|
|
7fe4b6a079 | ||
|
|
c817554dbf | ||
|
|
894e74d127 | ||
|
|
919f127aed | ||
|
|
72daa89abc | ||
|
|
ac211252bb | ||
|
|
fb404c2a04 | ||
|
|
e3dc568092 | ||
|
|
47e7025d06 | ||
|
|
b3d9cfaac5 | ||
|
|
e257403b7d | ||
|
|
a879d0e485 | ||
|
|
ceac20aafc | ||
|
|
f7f708225f | ||
|
|
ccaad576a2 | ||
|
|
41e8996761 | ||
|
|
d524bdd512 | ||
|
|
f419dc9a8b | ||
|
|
6f5e2a4e70 | ||
|
|
3c219d545e | ||
|
|
c2d601496e | ||
|
|
bf19ad47df | ||
|
|
a3c6ce1c30 | ||
|
|
aa92fa55a9 | ||
|
|
61f6015aba | ||
|
|
e6923620ea | ||
|
|
523abbf722 | ||
|
|
ea2c36b100 | ||
|
|
227821b234 | ||
|
|
6792eb88d7 | ||
|
|
52a7918dba | ||
|
|
6975e30861 | ||
|
|
86b52ed60b | ||
|
|
43d284b166 | ||
|
|
925e413683 | ||
|
|
a63b85e281 | ||
|
|
620d43a544 | ||
|
|
534eafef83 | ||
|
|
00dba4727b | ||
|
|
06fcf29136 | ||
|
|
ffda171914 | ||
|
|
05bd51b425 | ||
|
|
b43808c9d5 | ||
|
|
1d89fa9288 | ||
|
|
006cd7a186 | ||
|
|
f73821eabf | ||
|
|
98004c4e87 | ||
|
|
4dfa354322 | ||
|
|
1bb2dfc1cd | ||
|
|
16a862fe56 | ||
|
|
27b047a2a6 | ||
|
|
09c1c1db0a | ||
|
|
617569a234 | ||
|
|
4e3706072e | ||
|
|
c92497dba0 | ||
|
|
3bcfdcff60 | ||
|
|
a8fe152a43 | ||
|
|
3302fd388f | ||
|
|
a82d5b8609 | ||
|
|
ed1fa65569 | ||
|
|
046ab46985 | ||
|
|
d837e40307 | ||
|
|
a016457f5a | ||
|
|
337f6d9c7a | ||
|
|
81dd1bb6a2 | ||
|
|
de382fdb0c | ||
|
|
ec8d141525 | ||
|
|
b1b960db0a | ||
|
|
e3ff22c96f | ||
|
|
39720eca3a | ||
|
|
afc7cbc645 | ||
|
|
ab52cc5156 | ||
|
|
2fa56879c3 | ||
|
|
fe27e1e1d8 | ||
|
|
9a5d3466cb | ||
|
|
ed830b2809 | ||
|
|
6e8df15dcb | ||
|
|
2a0805c66a | ||
|
|
fbd4b0342a | ||
|
|
0719e04858 | ||
|
|
746cf0ee1e | ||
|
|
4eb27dfcfa | ||
|
|
bb8e587572 | ||
|
|
a60ae79ca0 | ||
|
|
1c66a85246 | ||
|
|
62d8487f14 | ||
|
|
8bfa3d13a3 | ||
|
|
78edbafb56 | ||
|
|
be5722ee0b | ||
|
|
3d9159d9d3 | ||
|
|
495e7801d7 | ||
|
|
d77f0562e8 | ||
|
|
55c99fe718 | ||
|
|
1abc0ad1fa | ||
|
|
2886583689 | ||
|
|
342bdac02c | ||
|
|
721cfa1a1c | ||
|
|
230d7b0dac | ||
|
|
be76d63ef6 | ||
|
|
8e4c7234a4 | ||
|
|
c817b0dedc | ||
|
|
a7ea1d98b4 | ||
|
|
e199ee2bf5 | ||
|
|
32a8151751 | ||
|
|
66bf311168 | ||
|
|
697b85811d | ||
|
|
871955a559 | ||
|
|
b74fa4eef7 | ||
|
|
095e0e529f | ||
|
|
535ce58f17 | ||
|
|
72ca67e7c9 | ||
|
|
ebc91f17f2 | ||
|
|
7053678526 | ||
|
|
c7c674b8c9 | ||
|
|
e7b7ba4843 | ||
|
|
f7203b5cd2 | ||
|
|
403f53cc57 | ||
|
|
6c67053e1f | ||
|
|
2a39ef3fec | ||
|
|
cc7ca0ccd6 | ||
|
|
b0d492830a | ||
|
|
e4c2f5fe77 | ||
|
|
f0210825de | ||
|
|
fe9af29bf5 | ||
|
|
bb009aa276 | ||
|
|
bf8d6c6c03 | ||
|
|
d297e190e6 | ||
|
|
37ad9321e9 | ||
|
|
0972b69f89 | ||
|
|
091caed234 | ||
|
|
c54cee0406 | ||
|
|
fad158f409 | ||
|
|
58e169e9eb | ||
|
|
597c48b66b | ||
|
|
8e7d5f5f14 | ||
|
|
4b84a04de7 | ||
|
|
0cf5a81e7a | ||
|
|
2b21959ca6 | ||
|
|
023350fa4d | ||
|
|
bc0a3b5b04 | ||
|
|
33679aa1c9 | ||
|
|
2d7089ec60 | ||
|
|
e32fc6e761 | ||
|
|
77efbb1012 | ||
|
|
6c77ef5e33 | ||
|
|
ec289350a4 | ||
|
|
20fac5cc53 | ||
|
|
7fb8b0f155 | ||
|
|
b1b4f78764 | ||
|
|
f172ca8672 | ||
|
|
2d2ee2939c | ||
|
|
d13d2e70f7 | ||
|
|
ea79dc2aa2 | ||
|
|
e3e858458d | ||
|
|
9cd9caac5e | ||
|
|
445562ea01 | ||
|
|
47e59eb792 | ||
|
|
8618f1468d | ||
|
|
cd5fa5c1ff | ||
|
|
9ac5e3808d | ||
|
|
ae5a2d908c | ||
|
|
0114a96141 | ||
|
|
6890fc4324 | ||
|
|
c5133aed04 | ||
|
|
4c57c9090d | ||
|
|
ebc88d5f92 | ||
|
|
6ee612109c | ||
|
|
cf8a6390ca | ||
|
|
c52b806702 | ||
|
|
5af65e317c | ||
|
|
e9d6a2ffea | ||
|
|
a0c01fae5c | ||
|
|
9c71217751 | ||
|
|
4b6b37f0f6 | ||
|
|
042bb5e2c0 | ||
|
|
21d02ad22c | ||
|
|
84130d221f | ||
|
|
1e102a36e4 | ||
|
|
41b6abaa88 | ||
|
|
d2fbee8852 | ||
|
|
a3fd7c06be | ||
|
|
36f5a6addc | ||
|
|
7b60b140c0 | ||
|
|
306f3abd01 | ||
|
|
f049dca048 | ||
|
|
2d396891b8 | ||
|
|
99fbd648a0 | ||
|
|
283ac0f8bb | ||
|
|
4913762d70 | ||
|
|
c338aee30a | ||
|
|
9935654a22 | ||
|
|
063533ab1e | ||
|
|
f165e04436 | ||
|
|
84e12210cc | ||
|
|
32ff947a87 | ||
|
|
5f1b719810 | ||
|
|
0801ef1b30 | ||
|
|
5182055c1f | ||
|
|
4d60d19fd9 | ||
|
|
14dc963f3d | ||
|
|
9daf562e54 | ||
|
|
c39e6f3f5d | ||
|
|
af2f29322e | ||
|
|
e84f09b55e | ||
|
|
4dcd03f13c | ||
|
|
2211fe947f | ||
|
|
6cb621c6a3 | ||
|
|
3e04d97b8b | ||
|
|
dae9db51be | ||
|
|
3255904acc | ||
|
|
3c7e357bd1 | ||
|
|
ab50490617 | ||
|
|
75ffd7c41b | ||
|
|
0b22891858 | ||
|
|
c4cab2e007 | ||
|
|
b66a7a93c2 | ||
|
|
91b40c88bf | ||
|
|
363e8a0081 | ||
|
|
9aa371617d | ||
|
|
e3f002179f | ||
|
|
51d21522ce | ||
|
|
43550a9a52 | ||
|
|
c469240c65 | ||
|
|
ef0b2b8aea | ||
|
|
93803fb519 | ||
|
|
a75dca13c9 | ||
|
|
edd9dda7ce | ||
|
|
08c99f2929 | ||
|
|
0cfc375a27 | ||
|
|
3f32c012f2 | ||
|
|
e2a5fe8e12 | ||
|
|
5ef38e2a57 | ||
|
|
8cda91a377 | ||
|
|
2596aba875 | ||
|
|
1611340dca | ||
|
|
6454b87672 | ||
|
|
898bfb4eae | ||
|
|
0820e70499 | ||
|
|
ffd58ccd9f | ||
|
|
3af7ff4e9b | ||
|
|
758d63c0fa | ||
|
|
7649f03c70 | ||
|
|
7ea7850331 | ||
|
|
5e89b0a417 | ||
|
|
7646d41774 | ||
|
|
7851d3bdfb | ||
|
|
9a516b1058 | ||
|
|
f92c35d797 | ||
|
|
4413c7c88b | ||
|
|
e30f4e329b | ||
|
|
7d2a7b71d0 | ||
|
|
7a33b08185 | ||
|
|
23a0a492d4 | ||
|
|
50708d4097 | ||
|
|
ca1863984b | ||
|
|
9ab27bf83b | ||
|
|
3ea4b0d109 | ||
|
|
75d4f05185 | ||
|
|
7f6803f9f6 | ||
|
|
6c2eac9e05 | ||
|
|
f5233fbe7c | ||
|
|
05ea21690d | ||
|
|
443043a8e2 | ||
|
|
151677fb7e | ||
|
|
10629b16b8 | ||
|
|
7c45e78e95 | ||
|
|
7ffb2403a2 | ||
|
|
55d2141476 | ||
|
|
a70f7eb58f | ||
|
|
aed80fc725 | ||
|
|
ea4a4cd464 | ||
|
|
28b722b92d | ||
|
|
15fcf1ed85 | ||
|
|
fe6c5895b2 | ||
|
|
7b22c6af1b | ||
|
|
82f60dcb2b | ||
|
|
fc52d200a0 | ||
|
|
8921b1ad21 | ||
|
|
b438b9789e | ||
|
|
28bbb019a1 | ||
|
|
dff65e6e91 | ||
|
|
fcddb03ef1 | ||
|
|
3b3c2e5d34 | ||
|
|
b2e0f437f4 | ||
|
|
3831a02ede | ||
|
|
471a6b42d0 | ||
|
|
1e81d9d11f | ||
|
|
05dcde4c8e | ||
|
|
84e89b35ee | ||
|
|
dab835a646 | ||
|
|
7ade71945e | ||
|
|
aa9246dde4 | ||
|
|
86f826a79b | ||
|
|
878d9f08ca | ||
|
|
e3ddcad88e | ||
|
|
dd7724eca2 | ||
|
|
df18fdebea | ||
|
|
636903bbc7 | ||
|
|
2763d925f0 | ||
|
|
c7914367b7 | ||
|
|
e2b781a221 | ||
|
|
9424539930 | ||
|
|
e76a27ddd3 | ||
|
|
f688a96e9a | ||
|
|
5a72efc387 | ||
|
|
ad98b811b3 | ||
|
|
ab79b26bec | ||
|
|
b308d97bed | ||
|
|
1a05aadca7 | ||
|
|
79362d7086 | ||
|
|
d094925c42 | ||
|
|
84a5c369f6 | ||
|
|
3facab1e18 | ||
|
|
34c8cfdec4 | ||
|
|
c4106617ba | ||
|
|
25627dac07 | ||
|
|
e8636a1dcc | ||
|
|
0455cb90ce | ||
|
|
af487de69a | ||
|
|
ac0fbecc4b | ||
|
|
f266ad2a99 | ||
|
|
3ce8c12ae6 | ||
|
|
e2ae70a2dd | ||
|
|
3e827c230e | ||
|
|
f00a355110 | ||
|
|
d9154a75e1 | ||
|
|
6e539f5000 | ||
|
|
c0203ec342 | ||
|
|
f694f76b17 | ||
|
|
a2f40fbf67 | ||
|
|
6d95cd5dd3 | ||
|
|
61c2ed3240 | ||
|
|
1fa604645c | ||
|
|
e8caa9997b | ||
|
|
f3b57fda0a | ||
|
|
471aadc513 | ||
|
|
a0d5485088 | ||
|
|
f83716b6bd | ||
|
|
5b26bd6c03 | ||
|
|
47cee7bb1e | ||
|
|
bfe900f7cf | ||
|
|
1272506afd | ||
|
|
bd00f36ff1 | ||
|
|
9a097d05da | ||
|
|
56d98f2734 | ||
|
|
c3874bdaed | ||
|
|
efe5323e1a | ||
|
|
ba6921c91d | ||
|
|
8a6d766b06 | ||
|
|
8350859c0c | ||
|
|
59bad09650 | ||
|
|
032af37136 | ||
|
|
331e6d4668 | ||
|
|
9ab7b6cfc1 | ||
|
|
099e88eef3 | ||
|
|
503eca8315 | ||
|
|
bb6ce5dc64 | ||
|
|
d0e60f9201 | ||
|
|
7e570b6724 | ||
|
|
0bbf52b4aa | ||
|
|
8b5cad3c5a | ||
|
|
d4e8e21e50 | ||
|
|
c8f3c25d84 | ||
|
|
780a4be62c | ||
|
|
9d5322103e | ||
|
|
3c9cbb25b0 | ||
|
|
01fe16ccb9 | ||
|
|
949d620277 | ||
|
|
c7d957f26b | ||
|
|
fdadfbd836 | ||
|
|
a257311f5f | ||
|
|
f1644e48a6 | ||
|
|
0a0a450b45 | ||
|
|
1c06a07156 | ||
|
|
19e0bdeb3d | ||
|
|
db6cd7e318 | ||
|
|
8f77d6db9f | ||
|
|
9690c20cbc | ||
|
|
cec4bd7a15 | ||
|
|
820e981012 | ||
|
|
e54b557f82 | ||
|
|
1c0823bc23 | ||
|
|
28e99008e0 | ||
|
|
3f329cbf24 | ||
|
|
7368bc7127 | ||
|
|
33f8aa4d3d | ||
|
|
235383e349 | ||
|
|
baa199cf63 | ||
|
|
f460927a3b | ||
|
|
ed324676f0 | ||
|
|
2f31096abd | ||
|
|
af995ad48b | ||
|
|
94030eab5f | ||
|
|
d268ddcab2 | ||
|
|
a9dfc6633e | ||
|
|
aa69ffb174 | ||
|
|
e9065f3b21 | ||
|
|
674571f3e3 | ||
|
|
b1617fa51e | ||
|
|
4bea2c098a | ||
|
|
45445609dc | ||
|
|
e571a35e26 | ||
|
|
2ac7c5baa7 | ||
|
|
723d8ea1f6 | ||
|
|
b21eb6f693 | ||
|
|
eb4b4d083f | ||
|
|
59793536ed | ||
|
|
af9baca35e | ||
|
|
d40ce7f050 | ||
|
|
35b160ca0b | ||
|
|
1e3730b47b | ||
|
|
cfd322c5df | ||
|
|
95c39a9e1d | ||
|
|
761cf8f428 | ||
|
|
542dad0fc5 | ||
|
|
d4d0f5bdc2 | ||
|
|
a577e5561e | ||
|
|
d85bd534d3 | ||
|
|
a9685a64ff | ||
|
|
344f953c0b | ||
|
|
b526a41af1 | ||
|
|
5cd618152d | ||
|
|
9d133576e4 | ||
|
|
8d59facb60 | ||
|
|
6ec5de8a78 | ||
|
|
b269fc19d2 | ||
|
|
585a2e046c | ||
|
|
b1fc20f5b9 | ||
|
|
13b4f939a7 | ||
|
|
74c32fcc23 | ||
|
|
489c8c9afe | ||
|
|
3f7da0aee0 | ||
|
|
edf4274686 | ||
|
|
3a590e7dec | ||
|
|
0b6cae988a | ||
|
|
52d414587f | ||
|
|
f0e89ef9d3 | ||
|
|
050e68e3e4 | ||
|
|
7e58e2254d | ||
|
|
5cfb8b1e17 | ||
|
|
3ccc3a3512 | ||
|
|
a925aa5cc8 | ||
|
|
e4afbc98cd | ||
|
|
cfd686ff59 | ||
|
|
230c9d6bd0 | ||
|
|
c27f663137 | ||
|
|
048151f447 | ||
|
|
0a3b05f156 | ||
|
|
f270163c78 | ||
|
|
8725df9b03 | ||
|
|
fd8c8f5948 | ||
|
|
e2b7935ace | ||
|
|
d01896788c | ||
|
|
b9dec6b109 | ||
|
|
db7545ab89 | ||
|
|
af726ec808 | ||
|
|
d3328826ec | ||
|
|
605aab85fd | ||
|
|
f26b793f49 | ||
|
|
6a75555157 | ||
|
|
3c2503fc79 | ||
|
|
551edbb07a | ||
|
|
919b91ba38 | ||
|
|
1d805510a7 | ||
|
|
3f86dd3e25 | ||
|
|
5dc5615bfd | ||
|
|
f093c8bd79 | ||
|
|
3f7b441a54 | ||
|
|
4537895941 | ||
|
|
cef7bc9af5 | ||
|
|
48e808965d | ||
|
|
d83a7eb16f | ||
|
|
dd73831343 | ||
|
|
3a9949076b | ||
|
|
121e81a733 | ||
|
|
02c239c402 | ||
|
|
6a47c04228 | ||
|
|
42a14b6aae | ||
|
|
bae1417021 | ||
|
|
2a93a1b023 | ||
|
|
cc650da616 | ||
|
|
084830c743 | ||
|
|
a605bf451f | ||
|
|
cd5905dfdb | ||
|
|
12655fc22e | ||
|
|
f09c32181a | ||
|
|
8fd4f7ff8e | ||
|
|
1e228b2193 | ||
|
|
001a95fcf8 | ||
|
|
7accf755d5 | ||
|
|
eafe35e4af | ||
|
|
9c045c63c9 | ||
|
|
269f9e7626 | ||
|
|
5628198bb2 | ||
|
|
880588e635 | ||
|
|
f0e27af884 | ||
|
|
ac1ccfa2b4 | ||
|
|
516bba4180 | ||
|
|
67a6e0cf79 | ||
|
|
8694c7fcc7 | ||
|
|
887490ea5b | ||
|
|
98ee53aa17 | ||
|
|
4342b319e3 | ||
|
|
284d907960 | ||
|
|
91ab6e80ca | ||
|
|
684788f2fd | ||
|
|
ce33e7509c | ||
|
|
9a995b9e30 | ||
|
|
29a5d9dbe7 | ||
|
|
67b7805de3 | ||
|
|
d71f9494b8 | ||
|
|
dd55b367ce | ||
|
|
dbd00b2a32 | ||
|
|
8c1ebd8020 | ||
|
|
dc486bc79f | ||
|
|
71ddd02459 | ||
|
|
31b10acf97 | ||
|
|
5842a0e10b | ||
|
|
289d3b9267 | ||
|
|
b7ac194949 | ||
|
|
decefda7e5 | ||
|
|
7f41373f07 | ||
|
|
6b86b154fb | ||
|
|
7dc9379909 | ||
|
|
a472ec4e08 | ||
|
|
0cd4ee879a | ||
|
|
02d0e858c0 | ||
|
|
35c86d929d | ||
|
|
9fe4820f4c | ||
|
|
4525b87071 | ||
|
|
3fe0aaa88a | ||
|
|
9fe3f6ad05 | ||
|
|
0c179a2a47 | ||
|
|
61eb2a04a0 | ||
|
|
3bd585f7f8 | ||
|
|
f0e9078ee4 | ||
|
|
ffbc57755e | ||
|
|
ceaedd55cd | ||
|
|
983ec7ed74 | ||
|
|
398f7f9ea7 | ||
|
|
f73c41f9c0 | ||
|
|
8dd80a61a1 | ||
|
|
0bab478da3 | ||
|
|
324cea5dd3 | ||
|
|
dd0f0c6f3e | ||
|
|
d9ff7fede2 | ||
|
|
3d1643a84e | ||
|
|
ea60555a9b | ||
|
|
35626334e6 | ||
|
|
e9d2aa9711 | ||
|
|
f3c9a86545 | ||
|
|
da3db4bc28 | ||
|
|
0dd79314b1 | ||
|
|
9bd507d626 | ||
|
|
f5f024af53 | ||
|
|
b620d6a039 | ||
|
|
7f4bc4785f | ||
|
|
96e56d1e56 | ||
|
|
7fa42f64fa | ||
|
|
0eb6c18f9a | ||
|
|
d5b5ebbb63 | ||
|
|
86570a0a50 | ||
|
|
8be0a72ea9 | ||
|
|
80ec97baaa | ||
|
|
2f608f67e6 | ||
|
|
3c9f9901e6 | ||
|
|
4136d22509 | ||
|
|
2c8feb372c | ||
|
|
7177dc34db | ||
|
|
0de5324c07 | ||
|
|
afd32966f2 | ||
|
|
ea78dff2f2 | ||
|
|
607d4889d6 | ||
|
|
28b1db78e0 | ||
|
|
ba55d47143 | ||
|
|
f290814ea3 | ||
|
|
105dfb9ad5 | ||
|
|
361634ecaa | ||
|
|
ebbbe6b436 | ||
|
|
162d26d4dc | ||
|
|
e787fac396 | ||
|
|
8ed5a281d5 | ||
|
|
da0b478421 | ||
|
|
17b2fe1cba | ||
|
|
c23093d6f8 | ||
|
|
2b6a96afbd | ||
|
|
7b33bb1718 | ||
|
|
d2acfdf48e | ||
|
|
5032a1e189 | ||
|
|
0c67821171 | ||
|
|
d414f33d01 | ||
|
|
32be137dd8 | ||
|
|
6fabb04bbe | ||
|
|
5eeda60b60 | ||
|
|
cbc8cc38a9 | ||
|
|
b96645084a | ||
|
|
d7480aa0ff | ||
|
|
096615a465 | ||
|
|
8d3ab52904 | ||
|
|
c007cdd82c | ||
|
|
6c1ba0f23f | ||
|
|
79c193f74b | ||
|
|
1cfd71001c | ||
|
|
7f5d4fb10f | ||
|
|
651aac6afa | ||
|
|
c4fac4aad8 | ||
|
|
b1cf276104 | ||
|
|
4b32841dd4 | ||
|
|
4960f859ed | ||
|
|
8d08b62c8d | ||
|
|
7dca404669 | ||
|
|
f218ab0cd7 | ||
|
|
8c35de5642 | ||
|
|
70de5e8899 | ||
|
|
cc13810673 | ||
|
|
d03d99ccce | ||
|
|
40af708cab | ||
|
|
689eaf2603 | ||
|
|
14c65f8de6 | ||
|
|
7448e2f1e0 | ||
|
|
6a9129c7b9 | ||
|
|
400825207a | ||
|
|
89cb62f3e2 | ||
|
|
f55c93508a | ||
|
|
ad3dcb8d13 | ||
|
|
0650bd8643 | ||
|
|
0415ac8eab | ||
|
|
819223b2be | ||
|
|
e64737bb51 | ||
|
|
84f4ce3513 | ||
|
|
9bc91af2de | ||
|
|
863a325e1d | ||
|
|
11562eba1d | ||
|
|
cfd2c3f5a8 | ||
|
|
78b5fba358 | ||
|
|
e14cb98d66 | ||
|
|
b22de39a25 | ||
|
|
69eeca4c47 | ||
|
|
ca202ee3ed | ||
|
|
d658142432 | ||
|
|
1618e58176 | ||
|
|
c214904bd4 | ||
|
|
e7fafa3a86 | ||
|
|
ae260c189f | ||
|
|
8a02c85bde | ||
|
|
7237d9baa3 | ||
|
|
b5e904be60 | ||
|
|
cb58270bf6 | ||
|
|
bd27233cfc | ||
|
|
c11fbe8bfc | ||
|
|
524413f7c3 | ||
|
|
202e1f5594 | ||
|
|
429b91d357 | ||
|
|
e54ed1254a | ||
|
|
72e897b44b | ||
|
|
18ac940566 | ||
|
|
c4e7d0ec25 | ||
|
|
403c87b887 | ||
|
|
2fb9a018c7 | ||
|
|
5e369b9f66 | ||
|
|
3c20e4eeef | ||
|
|
dfd1a596ab | ||
|
|
abd69fbebd | ||
|
|
3b1ff1e30f | ||
|
|
ae8572187e | ||
|
|
3b6a621635 | ||
|
|
c28c49ba67 | ||
|
|
de07b9d4f1 | ||
|
|
f144b4c425 | ||
|
|
80d710da48 | ||
|
|
d1af8a615f | ||
|
|
4b565fe7bc | ||
|
|
7b0b23c6f1 | ||
|
|
eec418c192 | ||
|
|
78be94481d | ||
|
|
9dc962be1f | ||
|
|
2cf95cd866 | ||
|
|
64a3b6570d | ||
|
|
84ed939e82 | ||
|
|
5e84b3b1d6 | ||
|
|
4463d8850c | ||
|
|
a99b56e123 | ||
|
|
21869e4939 | ||
|
|
c19f4b47a9 | ||
|
|
b472d6a8b1 | ||
|
|
1de7bb5ebc | ||
|
|
f7e8f04121 | ||
|
|
5a6b74ef75 | ||
|
|
36a10bb5ec | ||
|
|
157604b40e | ||
|
|
98a50dfd68 | ||
|
|
2eeda93617 | ||
|
|
885bab26ef | ||
|
|
32b8005e0e | ||
|
|
74ab1ba874 | ||
|
|
15e691ded9 | ||
|
|
b131121072 | ||
|
|
feebedad65 | ||
|
|
78f3b29b4c | ||
|
|
44866a90f7 | ||
|
|
5efb313177 | ||
|
|
9d83cbbc52 | ||
|
|
db6e70d24b | ||
|
|
e3e32bcddf | ||
|
|
02818ac867 | ||
|
|
885af4271c | ||
|
|
106cff20aa | ||
|
|
adecfe26cf | ||
|
|
05eef13110 | ||
|
|
b9e5db3563 | ||
|
|
4394535139 | ||
|
|
bc0562d9b3 | ||
|
|
ec5c8cccef | ||
|
|
cb74c40afa | ||
|
|
ee05e0b451 | ||
|
|
186c2bcfef | ||
|
|
65442c2da8 | ||
|
|
a947bd3598 | ||
|
|
dbdec516b9 | ||
|
|
b7444dd9b0 | ||
|
|
82d02c5c1b | ||
|
|
dfc0808167 | ||
|
|
1ced0ac405 | ||
|
|
d509c44d69 | ||
|
|
8525397067 | ||
|
|
ee0e343e1e | ||
|
|
f9930c1bcf | ||
|
|
dc698782b9 | ||
|
|
0c90679515 | ||
|
|
2195c2e885 | ||
|
|
f45c75988c | ||
|
|
9d6d791e21 | ||
|
|
8902d8f5de | ||
|
|
a3c0ff5c18 | ||
|
|
e16e772057 | ||
|
|
22fa6ed63a | ||
|
|
177e30ee62 | ||
|
|
b8a38cd5e5 | ||
|
|
e013122afc | ||
|
|
73b3ccbd0e | ||
|
|
76d8c70b91 | ||
|
|
c3eab4e6e3 | ||
|
|
831330b6d0 | ||
|
|
f26c9f7055 | ||
|
|
e64fa65552 | ||
|
|
80f05956b4 | ||
|
|
1654757c22 | ||
|
|
cc00442e0b | ||
|
|
e85af204dd | ||
|
|
72d0d46535 | ||
|
|
eaf1649ef3 | ||
|
|
22b5c7a14c | ||
|
|
ecc8939840 | ||
|
|
7aa7f26bbb | ||
|
|
b39fd5b634 | ||
|
|
640e834c22 | ||
|
|
5a8264f70e | ||
|
|
ed0001ba0e | ||
|
|
d6f3149a38 | ||
|
|
faaabcef3a | ||
|
|
3cb64cdca8 | ||
|
|
195fdc3cf8 | ||
|
|
5130269f31 | ||
|
|
c9b5830a37 | ||
|
|
27e79a3e76 | ||
|
|
d44673c260 | ||
|
|
8717839809 | ||
|
|
895f8a1cfc | ||
|
|
4ff2cf30e2 | ||
|
|
307f236771 | ||
|
|
e82148677d | ||
|
|
e67832d384 | ||
|
|
843795738d | ||
|
|
cc6b54c5d9 | ||
|
|
b77aeb39e7 | ||
|
|
937cd509d0 | ||
|
|
92c2ddc33e | ||
|
|
e9eedee5c6 | ||
|
|
602ad1bc53 | ||
|
|
de8d8370e3 | ||
|
|
4053d84a5f | ||
|
|
76315be47d | ||
|
|
85e4a29af4 | ||
|
|
0bfee44e9b | ||
|
|
41f9e3cccc | ||
|
|
895531c2e3 | ||
|
|
d1e11f4172 | ||
|
|
e473f9dc89 | ||
|
|
a65e69cb53 | ||
|
|
be7e9ace36 | ||
|
|
39c8d33169 | ||
|
|
5729db8f7f | ||
|
|
40ca8a2da4 | ||
|
|
4ac6d346f4 | ||
|
|
715277d9ac | ||
|
|
f4af5277e6 | ||
|
|
74f9fb1b8e | ||
|
|
f0e2aa6cc9 | ||
|
|
60f4c76fa2 | ||
|
|
2aca380484 | ||
|
|
4a47edc39c | ||
|
|
33b9e80028 | ||
|
|
e0c6468c77 | ||
|
|
57e349a280 | ||
|
|
84e484bb64 | ||
|
|
c5daf38878 | ||
|
|
84fc198a6d | ||
|
|
664359e681 | ||
|
|
99c1cb5642 | ||
|
|
822fa7c06c | ||
|
|
04c39a72e0 | ||
|
|
b793b9d068 | ||
|
|
0ff9363d72 | ||
|
|
ab67c786b0 | ||
|
|
cc97dcddbd | ||
|
|
bc7178ae2e | ||
|
|
d9ff065f4f | ||
|
|
fd386c5bc6 | ||
|
|
62a95c936b | ||
|
|
4d5c28ad3a | ||
|
|
fc55aba6b3 | ||
|
|
01ef775491 | ||
|
|
d5aa7067ea | ||
|
|
72662bcf06 | ||
|
|
392e9eb399 | ||
|
|
7eb8015aee | ||
|
|
bde4b1bf10 | ||
|
|
621bf1e1e9 | ||
|
|
928a437f48 | ||
|
|
8bf8e92e3c | ||
|
|
a0bf429b4c | ||
|
|
0e8f335607 | ||
|
|
5fc7dd6874 | ||
|
|
997da5170d | ||
|
|
f7c54e9b88 | ||
|
|
03a72b8319 | ||
|
|
6faed565f4 | ||
|
|
decb51eac7 | ||
|
|
7710544936 | ||
|
|
cff726a4bb | ||
|
|
4e1b72ab60 | ||
|
|
ded6869a2a | ||
|
|
4a0ce62361 | ||
|
|
1021b6d178 | ||
|
|
31bcba8d5d | ||
|
|
f4f5544060 | ||
|
|
0246d96e4c | ||
|
|
828cb1ac08 | ||
|
|
10ea4333c4 | ||
|
|
332892266f | ||
|
|
e8a79a8cea | ||
|
|
252aacee41 | ||
|
|
8ed9d8958d | ||
|
|
1000c1b5cb | ||
|
|
89b3eb0a34 | ||
|
|
aaca511c75 | ||
|
|
5c958bd7fb | ||
|
|
5d7343f10a | ||
|
|
e813e1c5c2 | ||
|
|
8dffe6639b | ||
|
|
2f21e623af | ||
|
|
536cc48d85 | ||
|
|
0e6db6397c | ||
|
|
7f3cdb6d71 | ||
|
|
6fa47010cf | ||
|
|
2e19025f9b | ||
|
|
2e1a53e5a3 | ||
|
|
65e570cdd8 | ||
|
|
714937ff5f | ||
|
|
d4c923bef3 | ||
|
|
d8454fc826 | ||
|
|
79395f14c6 | ||
|
|
61b367ed84 | ||
|
|
c5bbe7b04e | ||
|
|
8c66825e84 | ||
|
|
4c22713a1a | ||
|
|
20601749e2 | ||
|
|
3e1e89147b | ||
|
|
6a0182456b | ||
|
|
373a39ade3 | ||
|
|
8fac92d170 | ||
|
|
b34b257d33 | ||
|
|
415540e4a6 | ||
|
|
452fbfac80 | ||
|
|
d770c8a236 | ||
|
|
2fad4320d6 | ||
|
|
4eeebeb00a | ||
|
|
0e59cc5f59 | ||
|
|
4db9a7ff63 | ||
|
|
3a39dfc81f | ||
|
|
5180a376d6 | ||
|
|
d8e7b6f801 | ||
|
|
e278b66a62 | ||
|
|
c1c36b8ce0 | ||
|
|
86bb86af16 | ||
|
|
aa18f9c63a | ||
|
|
092b26356c | ||
|
|
388aef3a92 | ||
|
|
7b6832eea7 | ||
|
|
ba89c29c0b | ||
|
|
4951f81d0d | ||
|
|
e1780c8819 | ||
|
|
b3140d9bd9 | ||
|
|
95062b7f46 | ||
|
|
dd9984daee | ||
|
|
1acd60d7f2 | ||
|
|
93e3c62b99 | ||
|
|
d4c7950cc5 | ||
|
|
29624713c4 | ||
|
|
cd2db0b267 | ||
|
|
19ab02a4f9 | ||
|
|
201f4a5e51 | ||
|
|
9e07b3e092 | ||
|
|
e35b889f88 | ||
|
|
f7c6f61bf2 | ||
|
|
14d314bf1a | ||
|
|
289b2df9a1 | ||
|
|
faee673b42 | ||
|
|
590621ea7f | ||
|
|
81eda27f5d | ||
|
|
78fef48559 | ||
|
|
a2f2659ab1 | ||
|
|
c93e16c4af | ||
|
|
88743af243 | ||
|
|
f5598a2c0f | ||
|
|
448ddfd721 | ||
|
|
a86890002f | ||
|
|
41c17c3190 | ||
|
|
c97a254188 | ||
|
|
90dd4afd06 | ||
|
|
db7255febc | ||
|
|
f416756809 | ||
|
|
eee2ba4d69 | ||
|
|
463ea1fe7e | ||
|
|
2df26a9076 | ||
|
|
651e03c697 | ||
|
|
6aadb54c9f | ||
|
|
6554f43114 | ||
|
|
c89ae3241b | ||
|
|
23c2345258 | ||
|
|
3cf0e7885f | ||
|
|
adb32a3457 | ||
|
|
2e0bef5800 | ||
|
|
9b5fb6504c | ||
|
|
a6f4c7993d | ||
|
|
a73c2e4738 | ||
|
|
ee58b80110 | ||
|
|
f9ecd4b622 | ||
|
|
cfa76465b5 | ||
|
|
097bb20005 | ||
|
|
a0ae11f268 | ||
|
|
4d87d2633c | ||
|
|
702d033bff | ||
|
|
60ccf59ae5 | ||
|
|
516155c6ee | ||
|
|
96efa177ba | ||
|
|
5a5e7a21c4 | ||
|
|
4288649573 | ||
|
|
041b58b942 | ||
|
|
0d098f1901 | ||
|
|
bbc1cbe2ff | ||
|
|
f666baabda | ||
|
|
c848744e28 | ||
|
|
30b8dcfb91 | ||
|
|
2d4ec91a5c | ||
|
|
a34b5a81d2 | ||
|
|
a4d42cc47e | ||
|
|
4d9ebb4f44 | ||
|
|
ef199c8916 | ||
|
|
f63381fed3 | ||
|
|
65c272b347 | ||
|
|
54cd19ea0d | ||
|
|
8b5d1709a2 | ||
|
|
976f411e6f | ||
|
|
a3a96eb0ec | ||
|
|
2d92101438 | ||
|
|
d877d02187 | ||
|
|
dee5d46be5 | ||
|
|
8fd1fab200 | ||
|
|
fda3aff955 | ||
|
|
1fbfa95b3f | ||
|
|
21da8c7023 | ||
|
|
de3221ca69 | ||
|
|
ec9371d3b1 | ||
|
|
11e31e85ac | ||
|
|
20a57037f7 | ||
|
|
51f8fd39c2 | ||
|
|
f4745ff717 | ||
|
|
38c01a138b | ||
|
|
e6389a7956 | ||
|
|
a92ebe3e2c | ||
|
|
2630bebae0 | ||
|
|
3c1671d09f | ||
|
|
2d92327fbc | ||
|
|
d2ca05978f | ||
|
|
82db7fea55 | ||
|
|
0666614be7 | ||
|
|
3cb078cbd5 | ||
|
|
4482d18e17 | ||
|
|
1f56b4f6f2 | ||
|
|
2830bf2b48 | ||
|
|
cd23d4897b | ||
|
|
e6467ad077 | ||
|
|
bb3d5fdfcc | ||
|
|
e1cd505aad | ||
|
|
8e341f96b7 | ||
|
|
cdee00aca2 | ||
|
|
59b0a9ff43 | ||
|
|
719fdfe2ae | ||
|
|
0601324851 | ||
|
|
1f42fe835f | ||
|
|
fa053d2754 | ||
|
|
6f5c7f7da7 | ||
|
|
8e89ceb395 | ||
|
|
ecc078b891 | ||
|
|
92ca9d7571 | ||
|
|
a9401d21d7 | ||
|
|
43fae0c326 | ||
|
|
bad9d747e1 | ||
|
|
57a846f40a | ||
|
|
d62c45712d | ||
|
|
322d90f43b | ||
|
|
7ad5262678 | ||
|
|
e7a0c6c05b | ||
|
|
4f4fe6c0de | ||
|
|
a93872a0f3 | ||
|
|
e5d6be61f8 | ||
|
|
ccbed9cb95 | ||
|
|
5bb4021b2a | ||
|
|
a5cad3488a | ||
|
|
f8d04b5cb8 | ||
|
|
82eb6e17ac | ||
|
|
b9ff5b1525 | ||
|
|
4bbae0e46a | ||
|
|
cf03abcbc9 | ||
|
|
5d654d402a | ||
|
|
51f66f1a6a | ||
|
|
65ff7340af | ||
|
|
b601402ea5 | ||
|
|
c1afa6513c | ||
|
|
fdb8704bac | ||
|
|
31005bf939 | ||
|
|
4bb1c0aa92 | ||
|
|
d76757ddb4 | ||
|
|
6980bb62d6 | ||
|
|
bc2d7167e6 | ||
|
|
1fc5fb437b | ||
|
|
269a1ab6f5 | ||
|
|
de61d7158b | ||
|
|
4fcdd8c4a6 | ||
|
|
12e9764fdd | ||
|
|
9b93a812d3 | ||
|
|
91e8abf8a5 | ||
|
|
98dbe59e64 | ||
|
|
09b2e33e01 | ||
|
|
38a8c3e3b1 | ||
|
|
cc83bbbfb9 | ||
|
|
353725291a | ||
|
|
134ba5bf2e | ||
|
|
b4a5fc91f0 | ||
|
|
0e966f706e | ||
|
|
f7afd1fa75 | ||
|
|
e45dc665c9 | ||
|
|
f7d357e8fc | ||
|
|
3a64dd25f4 | ||
|
|
0e866008b1 | ||
|
|
b1db247a63 | ||
|
|
32bbce8ccd | ||
|
|
e5a77a60f6 | ||
|
|
dbb1644136 | ||
|
|
a76fa8d0c7 | ||
|
|
b772d6e06a | ||
|
|
be27f43978 | ||
|
|
96241bd77b | ||
|
|
d02640b6d1 | ||
|
|
67ae0e5b1e | ||
|
|
46229b2e27 | ||
|
|
ea591bfb17 | ||
|
|
c2e361e7e4 | ||
|
|
6ff73c4e36 | ||
|
|
91934419c0 | ||
|
|
fe73500545 | ||
|
|
044307661b | ||
|
|
8a2309ee37 | ||
|
|
1e7ab9f847 | ||
|
|
1b71908bca | ||
|
|
644fff5f18 | ||
|
|
bc3dc4a516 | ||
|
|
9147ce859b | ||
|
|
8499a0f660 | ||
|
|
482c2ae5b8 | ||
|
|
7481e7d462 | ||
|
|
94955b5450 | ||
|
|
52bff9e90e | ||
|
|
2d217e17e6 | ||
|
|
975572e858 | ||
|
|
41903670ed | ||
|
|
8bedb03d1d | ||
|
|
f4553d967f | ||
|
|
90bf38e3c6 | ||
|
|
a217f2e853 | ||
|
|
346722a391 | ||
|
|
d42fa602ed | ||
|
|
2c6a5a2abf | ||
|
|
c438b7d145 | ||
|
|
caa3dfd8eb | ||
|
|
3c33baa69c | ||
|
|
332c9e63cf | ||
|
|
82447881a5 | ||
|
|
0f0763f86d | ||
|
|
ec6b6d98f2 | ||
|
|
37d2d7b809 | ||
|
|
2c81ff26dc | ||
|
|
ee1c98b8a0 | ||
|
|
f1cc01eb1a | ||
|
|
f7280f13d7 | ||
|
|
36404caad8 | ||
|
|
32f6024520 | ||
|
|
defdec493e | ||
|
|
03f890f4ad | ||
|
|
0ffca35214 | ||
|
|
170f7bf196 | ||
|
|
d190e4419b | ||
|
|
c9e23628d7 | ||
|
|
a6712e151a | ||
|
|
ed6ffd03fa | ||
|
|
dc90fd866d | ||
|
|
40ed6ed31a | ||
|
|
bd578a1c0d | ||
|
|
173b630b2d | ||
|
|
792715f210 | ||
|
|
a24e3f9360 | ||
|
|
00bd848ab4 | ||
|
|
22c32f4c92 | ||
|
|
9ddc1cb487 | ||
|
|
4358bb9f94 | ||
|
|
6cc3ec2eff | ||
|
|
cb82d9f3f4 | ||
|
|
946d020aff | ||
|
|
5d6af8923f | ||
|
|
6d1689467e | ||
|
|
2bc697d1e3 | ||
|
|
d3b7efa0a6 | ||
|
|
a40c865c1a | ||
|
|
addf9169f7 | ||
|
|
7c40164022 | ||
|
|
feff543aaa | ||
|
|
878a1de804 | ||
|
|
f7e9a34a10 | ||
|
|
0725bfe33d | ||
|
|
cf5d847c32 | ||
|
|
2fe71bfe4e | ||
|
|
b6999bb56f | ||
|
|
1488420292 | ||
|
|
e6a4b8dc45 | ||
|
|
32c53eba82 | ||
|
|
d5670b65b7 | ||
|
|
f2e6f0aa45 | ||
|
|
600db1596e | ||
|
|
ed2a5bcdff | ||
|
|
4f883d6c8c | ||
|
|
2cbfb7111a | ||
|
|
4ad90670ce | ||
|
|
a9a4b40a01 | ||
|
|
348189d100 | ||
|
|
ad55a28e08 | ||
|
|
ff36ddaa00 | ||
|
|
85a000ce67 | ||
|
|
b0ca451c78 | ||
|
|
4942b84a56 | ||
|
|
911f9aa75e | ||
|
|
667afeb861 | ||
|
|
a65a35f011 | ||
|
|
00a547b2bd | ||
|
|
0f86d84dca | ||
|
|
e3b4abc1e0 | ||
|
|
aaa64bed8e | ||
|
|
449a0d73a3 | ||
|
|
84ee76afa7 | ||
|
|
444c8f95e1 | ||
|
|
223d41a99d | ||
|
|
45a6c0c108 | ||
|
|
ef7e3964a1 | ||
|
|
3a9834bcfb | ||
|
|
8ade35b5f2 | ||
|
|
c2d1ff911b | ||
|
|
a8da5e869c | ||
|
|
ed32c1fc86 | ||
|
|
4162b123da | ||
|
|
563f8e263d | ||
|
|
741d192f1f | ||
|
|
640101c13a | ||
|
|
90872feeb4 | ||
|
|
ef921f22c3 | ||
|
|
62082a4737 | ||
|
|
d81e18258c | ||
|
|
a37e3b1210 | ||
|
|
18aca697c9 | ||
|
|
842d1490be | ||
|
|
4aa97cff03 | ||
|
|
510916e1ee | ||
|
|
254dffd0cd | ||
|
|
d0c8fd056b | ||
|
|
97ced02208 | ||
|
|
63a0f4b27a | ||
|
|
c9d7b00c0c | ||
|
|
2898d122cc | ||
|
|
41cfe9f4c9 | ||
|
|
8d6ffbeaec | ||
|
|
16870116e6 | ||
|
|
7e2e5a6ec0 | ||
|
|
933baf8d2e | ||
|
|
87983a0aa7 | ||
|
|
11f294160d | ||
|
|
92e084fcf7 | ||
|
|
f49bef24d6 | ||
|
|
5a71d8f3bc | ||
|
|
ec020e8e3b | ||
|
|
8797caa2db | ||
|
|
602fa041d6 | ||
|
|
019c78285a | ||
|
|
5950c7711a | ||
|
|
f1984dad87 | ||
|
|
4c47a396a8 | ||
|
|
8b4c5c4ebe | ||
|
|
9eef80afb0 | ||
|
|
edae9faaec | ||
|
|
d82ce1e9a5 | ||
|
|
8058cea0ca | ||
|
|
b346dce2b3 | ||
|
|
7ea583bedd | ||
|
|
64c9c08744 | ||
|
|
156006567a | ||
|
|
5e23fa5fcb | ||
|
|
80fb5916cd | ||
|
|
6f3bec036e | ||
|
|
2e214a1248 | ||
|
|
c7afce1592 | ||
|
|
123e376aba | ||
|
|
6b3aee848d | ||
|
|
1195448f14 | ||
|
|
47cdc1e54d | ||
|
|
bfb7f1536b | ||
|
|
2f0496d0a3 | ||
|
|
abf785be5e | ||
|
|
2a7bf82cf5 | ||
|
|
af7348a987 | ||
|
|
3f48a504d4 | ||
|
|
b13c731aa5 | ||
|
|
45673e847d | ||
|
|
05cbb506de | ||
|
|
184c6821a7 | ||
|
|
a309e858d3 | ||
|
|
7751be7308 | ||
|
|
e34993ce31 | ||
|
|
ce6f6f8d1a | ||
|
|
0060b078df | ||
|
|
6e2d7fb591 | ||
|
|
7dc9530ddb | ||
|
|
30336981f2 | ||
|
|
93da88b588 | ||
|
|
596f61dfd9 | ||
|
|
2e8bd59aa2 | ||
|
|
713758ebcc | ||
|
|
88df89c508 | ||
|
|
195afaa5b9 | ||
|
|
bee797007d | ||
|
|
aa8109903b | ||
|
|
90ac188e8b | ||
|
|
5f1b4a792a | ||
|
|
fdd7aefc20 | ||
|
|
ef846ce384 | ||
|
|
842b88d244 | ||
|
|
7bcb629547 | ||
|
|
56796d57b4 | ||
|
|
4ee8ac2585 | ||
|
|
71c790a261 | ||
|
|
8317f579c2 | ||
|
|
0b2ad1df35 | ||
|
|
5b2bc78108 | ||
|
|
a213f92f0d | ||
|
|
07673be08c | ||
|
|
7022c9af5a | ||
|
|
066bb30604 | ||
|
|
bdd0f5e1b6 | ||
|
|
b589411473 | ||
|
|
6f671d8bff | ||
|
|
7355adfc04 | ||
|
|
8551a0b071 | ||
|
|
1830e2b943 | ||
|
|
d38785740e | ||
|
|
1c4f827bf8 | ||
|
|
1b89239323 | ||
|
|
d5c9c5114a | ||
|
|
dad21d1e2f | ||
|
|
800e8ebefb | ||
|
|
9274d74dc1 | ||
|
|
1871c6ced4 | ||
|
|
a6f7093bae | ||
|
|
8be61709b8 | ||
|
|
d69f8a6d3c | ||
|
|
31fe15e782 | ||
|
|
8babc69dc5 | ||
|
|
8d92b5d634 | ||
|
|
8a657250b1 | ||
|
|
8d3657f54a | ||
|
|
97fd387c34 | ||
|
|
8a15aaffb7 | ||
|
|
4805c3c7f0 | ||
|
|
cfb33ec1a2 | ||
|
|
576db27e9d | ||
|
|
b095c6b606 | ||
|
|
014f8e61f1 | ||
|
|
eeb150f1e3 | ||
|
|
c72d40aa07 | ||
|
|
ea996cf6dd | ||
|
|
3c52f7016b | ||
|
|
5171b3748d | ||
|
|
11ac0f1551 | ||
|
|
331a947ea4 | ||
|
|
e4d05f301a | ||
|
|
b2ed5d1cbb | ||
|
|
bf12a2bc67 | ||
|
|
d6d5ecdf5d | ||
|
|
d72ed91f21 | ||
|
|
1118ce449c | ||
|
|
6da7f78cba | ||
|
|
61ec1c1b48 | ||
|
|
7ded76695a | ||
|
|
3489276fa1 | ||
|
|
789158aca5 | ||
|
|
8a42966c1f | ||
|
|
beb8b8e3ab | ||
|
|
337ba6b22a | ||
|
|
c0f9559f8c | ||
|
|
e7d62cf9b1 | ||
|
|
2d6a319c13 | ||
|
|
b059bdec66 | ||
|
|
c830311aca | ||
|
|
90488ce14b | ||
|
|
3cbc012f6f | ||
|
|
dce0b82155 | ||
|
|
54cc6cbff3 | ||
|
|
986022cee1 | ||
|
|
5e96f8a72e | ||
|
|
72cfc3f826 | ||
|
|
e0e3cee255 | ||
|
|
80b2b351e6 | ||
|
|
e85b4be7d6 | ||
|
|
e4898df12d | ||
|
|
56cf1b02ab | ||
|
|
aa7928d35d | ||
|
|
f275843556 | ||
|
|
3cd6622c8f | ||
|
|
beae0b9319 | ||
|
|
83c853726d | ||
|
|
720664818f | ||
|
|
0819f447e1 | ||
|
|
e1c33c4d3e | ||
|
|
69eed4f7f2 | ||
|
|
a9b7b43ffb | ||
|
|
92f435d45b | ||
|
|
acc6a652eb | ||
|
|
276052d231 | ||
|
|
d3bd2b6692 | ||
|
|
bb9403e2b2 | ||
|
|
2147f72176 | ||
|
|
d8346a705f | ||
|
|
87d2cfb301 | ||
|
|
a1d44d0246 | ||
|
|
1c05879f62 | ||
|
|
16c2843073 | ||
|
|
a36a8b72b8 | ||
|
|
ae11d8b484 | ||
|
|
b1d07b8e70 | ||
|
|
c2fb186edc | ||
|
|
b6fb46b760 | ||
|
|
c1345ca64c | ||
|
|
00d958aaed | ||
|
|
d4688589d8 | ||
|
|
37e7ead1e2 | ||
|
|
ad83d84778 | ||
|
|
74330122bd | ||
|
|
6e0b8ccf86 | ||
|
|
06d0db3b6a | ||
|
|
c01e9860bf | ||
|
|
47a3a7ad0f | ||
|
|
28c609d4c7 | ||
|
|
ca88f37bb6 | ||
|
|
73886e9232 | ||
|
|
e7dc1a7bc4 | ||
|
|
5115cd13e4 | ||
|
|
fbbd9d9c6e | ||
|
|
6bff90419e | ||
|
|
16a5665e3e | ||
|
|
f7474ddade | ||
|
|
81ebdd97cc | ||
|
|
7a7696224d | ||
|
|
af0b308b1e | ||
|
|
432a05c64b | ||
|
|
2dd365f8bc | ||
|
|
242abf9f69 |
@@ -0,0 +1,15 @@
|
||||
# Make Github recognise Gramps as a Python project,
|
||||
# by marking .sql files as text files!
|
||||
# See: https://github.com/github/linguist/issues/2462
|
||||
# https://github.com/github/linguist/blob/master/README.md
|
||||
*.sql linguist-language=txt
|
||||
|
||||
# Have Github ignore js vendored files.
|
||||
# https://github.com/gramps-project/gramps/tree/master/data/javascript
|
||||
#data/javascript/*.js linguist-vendored
|
||||
|
||||
# don't mess with line endings for test files
|
||||
*.vcs -text
|
||||
*.ged -text
|
||||
*.GED -text
|
||||
*.csv -text
|
||||
@@ -8,7 +8,7 @@ dist/
|
||||
|
||||
# Gramps
|
||||
data/tips.xml
|
||||
gramps/plugins/lib/holidays.xml
|
||||
data/holidays.xml
|
||||
po/.intltool-merge-cache
|
||||
docs/_build/
|
||||
|
||||
@@ -18,4 +18,10 @@ tags
|
||||
|
||||
# Testing
|
||||
test/data
|
||||
gramps/webapp/grampsdb/fixtures/initial_data.json
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# Glade temp files
|
||||
*~
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<benny.malengier@gramps-project.org> <benny.malengier@gmail.com>
|
||||
<doug.blank@gmail.com> <dsblank@bitbucket.org>
|
||||
<doug.blank@gmail.com> <dblank@cs.brynmawr.edu>
|
||||
<beernarrd@gmail.com> <beernarrd@users.sourceforge.net>
|
||||
<igal.shapira@gmail.com> <igalshapira@users.sourceforge.net>
|
||||
<romjerome@yahoo.fr> <romjerome@users.noreply.github.com>
|
||||
<jralls@ceridwen.us> <john@aeolus.local>
|
||||
<josip@pisoj.com> <bpisoj@gmail.com>
|
||||
Josip Pisoj <josip@pisoj.com>
|
||||
Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
<martin.hawlisch@gmx.de> <loshawlos@users.sourceforge.net>
|
||||
Matti Niemelä <matti.u.niemela@gmail.com>
|
||||
<nick-h@gramps-project.org> <nick__hall@hotmail.com>
|
||||
<nick-h@gramps-project.org> <Nick-Hall@users.noreply.github.com>
|
||||
Ondrej Krč-Jediný <hou@centrum.sk>
|
||||
<hou@centrum.sk> <ondrisko@users.sourceforge.com>
|
||||
Pierre Bélissent <pierre.belissent@gmail.com>
|
||||
Serge Noiraud <Serge.Noiraud@free.fr>
|
||||
<Serge.Noiraud@free.fr> <serge.noiraud@free.fr>
|
||||
<Serge.Noiraud@free.fr> <serge.noiraud@laposte.net>
|
||||
Zdeněk Hataš <zdenek.hatas@gmail.com>
|
||||
<zdenek.hatas@gmail.com> <zdenek.hatas@hp.com>
|
||||
<zdenek.hatas@gmail.com> <zenhas@users.sourceforge.net>
|
||||
<gerald@gkunzmann.de> <g.kunzmann@arcor.de>
|
||||
Tim G L Lyons <tim.g.lyons@gmail.com>
|
||||
<tim.g.lyons@gmail.com> <guy.linton@gmail.com>
|
||||
Elder Evans <elderamevans@gmail.com>
|
||||
|
||||
@@ -0,0 +1,378 @@
|
||||
[MASTER]
|
||||
|
||||
# Specify a configuration file.
|
||||
#rcfile=
|
||||
|
||||
# Python code to execute, usually for sys.path manipulation such as
|
||||
# pygtk.require().
|
||||
#init-hook=
|
||||
|
||||
# Add files or directories to the blacklist. They should be base names, not
|
||||
# paths.
|
||||
ignore=CVS
|
||||
|
||||
# Pickle collected data for later comparisons.
|
||||
persistent=yes
|
||||
|
||||
# List of plugins (as comma separated values of python modules names) to load,
|
||||
# usually to register additional checkers.
|
||||
load-plugins=
|
||||
|
||||
# Use multiple processes to speed up Pylint.
|
||||
jobs=1
|
||||
|
||||
# Allow loading of arbitrary C extensions. Extensions are imported into the
|
||||
# active Python interpreter and may run arbitrary code.
|
||||
unsafe-load-any-extension=no
|
||||
|
||||
# A comma-separated list of package or module names from where C extensions may
|
||||
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||
# run arbitrary code
|
||||
extension-pkg-whitelist=
|
||||
|
||||
# Allow optimization of some AST trees. This will activate a peephole AST
|
||||
# optimizer, which will apply various small optimizations. For instance, it can
|
||||
# be used to obtain the result of joining multiple strings with the addition
|
||||
# operator. Joining a lot of strings can lead to a maximum recursion error in
|
||||
# Pylint and this flag can prevent that. It has one side effect, the resulting
|
||||
# AST will be different than the one from reality.
|
||||
optimize-ast=no
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Only show warnings with the listed confidence levels. Leave empty to show
|
||||
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
|
||||
confidence=
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
# either give multiple identifier separated by comma (,) or put this option
|
||||
# multiple time. See also the "--disable" option for examples.
|
||||
#enable=
|
||||
|
||||
# Disable the message, report, category or checker with the given id(s). You
|
||||
# can either give multiple identifiers separated by comma (,) or put this
|
||||
# option multiple times (only on the command line, not in the configuration
|
||||
# file where it should appear only once).You can also use "--disable=all" to
|
||||
# disable everything first and then reenable specific checks. For example, if
|
||||
# you want to run only the similarities checker, you can use "--disable=all
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use"--disable=all --enable=classes
|
||||
# --disable=W"
|
||||
disable=suppressed-message,intern-builtin,round-builtin,unicode-builtin,range-builtin-not-iterating,long-builtin,basestring-builtin,setslice-method,print-statement,reload-builtin,metaclass-assignment,raising-string,next-method-called,import-star-module-level,xrange-builtin,getslice-method,zip-builtin-not-iterating,reduce-builtin,dict-iter-method,delslice-method,using-cmp-argument,hex-method,buffer-builtin,old-ne-operator,nonzero-method,backtick,parameter-unpacking,indexing-exception,file-builtin,filter-builtin-not-iterating,raw_input-builtin,execfile-builtin,oct-method,cmp-method,coerce-builtin,long-suffix,cmp-builtin,input-builtin,dict-view-method,standarderror-builtin,apply-builtin,old-raise-syntax,unichr-builtin,old-division,coerce-method,unpacking-in-except,useless-suppression,no-absolute-import,map-builtin-not-iterating,old-octal-literal
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
||||
# Set the output format. Available formats are text, parseable, colorized, msvs
|
||||
# (visual studio) and html. You can also give a reporter class, eg
|
||||
# mypackage.mymodule.MyReporterClass.
|
||||
output-format=text
|
||||
|
||||
# Put messages in a separate file for each module / package specified on the
|
||||
# command line instead of printing them on stdout. Reports (if any) will be
|
||||
# written in a file name "pylint_global.[txt|html]".
|
||||
files-output=no
|
||||
|
||||
# Tells whether to display a full report or only the messages
|
||||
reports=yes
|
||||
|
||||
# Python expression which should return a note less than 10 (10 is the highest
|
||||
# note). You have access to the variables errors warning, statement which
|
||||
# respectively contain the number of errors / warnings messages and the total
|
||||
# number of statements analyzed. This is used by the global evaluation report
|
||||
# (RP0004).
|
||||
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
|
||||
|
||||
# Template used to display messages. This is a python new-style format string
|
||||
# used to format the message information. See doc for all details
|
||||
#msg-template=
|
||||
|
||||
|
||||
[BASIC]
|
||||
|
||||
# List of builtins function names that should not be used, separated by a comma
|
||||
bad-functions=map,filter
|
||||
|
||||
# Good variable names which should always be accepted, separated by a comma
|
||||
good-names=i,j,k,ex,Run,_,db
|
||||
|
||||
# Bad variable names which should always be refused, separated by a comma
|
||||
bad-names=foo,bar,baz,toto,tutu,tata
|
||||
|
||||
# Colon-delimited sets of names that determine each other's naming style when
|
||||
# the name regexes allow several styles.
|
||||
name-group=
|
||||
|
||||
# Include a hint for the correct naming format with invalid-name
|
||||
include-naming-hint=no
|
||||
|
||||
# Regular expression matching correct argument names
|
||||
argument-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for argument names
|
||||
argument-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct module names
|
||||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
||||
|
||||
# Naming hint for module names
|
||||
module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
||||
|
||||
# Regular expression matching correct class attribute names
|
||||
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
|
||||
|
||||
# Naming hint for class attribute names
|
||||
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
|
||||
|
||||
# Regular expression matching correct function names
|
||||
function-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for function names
|
||||
function-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct inline iteration names
|
||||
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
|
||||
|
||||
# Naming hint for inline iteration names
|
||||
inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$
|
||||
|
||||
# Regular expression matching correct constant names
|
||||
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
|
||||
|
||||
# Naming hint for constant names
|
||||
const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$
|
||||
|
||||
# Regular expression matching correct method names
|
||||
method-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for method names
|
||||
method-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct class names
|
||||
class-rgx=[A-Z_][a-zA-Z0-9]+$
|
||||
|
||||
# Naming hint for class names
|
||||
class-name-hint=[A-Z_][a-zA-Z0-9]+$
|
||||
|
||||
# Regular expression matching correct variable names
|
||||
variable-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for variable names
|
||||
variable-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct attribute names
|
||||
attr-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for attribute names
|
||||
attr-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression which should only match function or class names that do
|
||||
# not require a docstring.
|
||||
no-docstring-rgx=^_
|
||||
|
||||
# Minimum line length for functions/classes that require docstrings, shorter
|
||||
# ones are exempt.
|
||||
docstring-min-length=-1
|
||||
|
||||
|
||||
[ELIF]
|
||||
|
||||
# Maximum number of nested blocks for function / method body
|
||||
max-nested-blocks=5
|
||||
|
||||
|
||||
[LOGGING]
|
||||
|
||||
# Logging modules to check that the string format arguments are in logging
|
||||
# function parameter format
|
||||
logging-modules=logging
|
||||
|
||||
|
||||
[SPELLING]
|
||||
|
||||
# Spelling dictionary name. Available dictionaries: none. To make it working
|
||||
# install python-enchant package.
|
||||
spelling-dict=
|
||||
|
||||
# List of comma separated words that should not be checked.
|
||||
spelling-ignore-words=
|
||||
|
||||
# A path to a file that contains private dictionary; one word per line.
|
||||
spelling-private-dict-file=
|
||||
|
||||
# Tells whether to store unknown words to indicated private dictionary in
|
||||
# --spelling-private-dict-file option instead of raising a message.
|
||||
spelling-store-unknown-words=no
|
||||
|
||||
|
||||
[MISCELLANEOUS]
|
||||
|
||||
# List of note tags to take in consideration, separated by a comma.
|
||||
notes=FIXME,XXX,TODO
|
||||
|
||||
|
||||
[TYPECHECK]
|
||||
|
||||
# Tells whether missing members accessed in mixin class should be ignored. A
|
||||
# mixin class is detected if its name ends with "mixin" (case insensitive).
|
||||
ignore-mixin-members=yes
|
||||
|
||||
# List of module names for which member attributes should not be checked
|
||||
# (useful for modules/projects where namespaces are manipulated during runtime
|
||||
# and thus existing member attributes cannot be deduced by static analysis. It
|
||||
# supports qualified module names, as well as Unix pattern matching.
|
||||
ignored-modules=
|
||||
|
||||
# List of classes names for which member attributes should not be checked
|
||||
# (useful for classes with attributes dynamically set). This supports can work
|
||||
# with qualified names.
|
||||
ignored-classes=
|
||||
|
||||
# List of members which are set dynamically and missed by pylint inference
|
||||
# system, and so shouldn't trigger E1101 when accessed. Python regular
|
||||
# expressions are accepted.
|
||||
generated-members=
|
||||
|
||||
|
||||
[SIMILARITIES]
|
||||
|
||||
# Minimum lines number of a similarity.
|
||||
min-similarity-lines=4
|
||||
|
||||
# Ignore comments when computing similarities.
|
||||
ignore-comments=yes
|
||||
|
||||
# Ignore docstrings when computing similarities.
|
||||
ignore-docstrings=yes
|
||||
|
||||
# Ignore imports when computing similarities.
|
||||
ignore-imports=no
|
||||
|
||||
|
||||
[FORMAT]
|
||||
|
||||
# Maximum number of characters on a single line.
|
||||
max-line-length=80
|
||||
|
||||
# Regexp for a line that is allowed to be longer than the limit.
|
||||
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
|
||||
|
||||
# Allow the body of an if to be on the same line as the test if there is no
|
||||
# else.
|
||||
single-line-if-stmt=no
|
||||
|
||||
# List of optional constructs for which whitespace checking is disabled. `dict-
|
||||
# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
|
||||
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
|
||||
# `empty-line` allows space-only lines.
|
||||
no-space-check=trailing-comma,dict-separator
|
||||
|
||||
# Maximum number of lines in a module
|
||||
max-module-lines=1000
|
||||
|
||||
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
|
||||
# tab).
|
||||
indent-string=' '
|
||||
|
||||
# Number of spaces of indent required inside a hanging or continued line.
|
||||
indent-after-paren=4
|
||||
|
||||
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
|
||||
expected-line-ending-format=
|
||||
|
||||
|
||||
[VARIABLES]
|
||||
|
||||
# Tells whether we should check for unused import in __init__ files.
|
||||
init-import=no
|
||||
|
||||
# A regular expression matching the name of dummy variables (i.e. expectedly
|
||||
# not used).
|
||||
dummy-variables-rgx=_$|dummy
|
||||
|
||||
# List of additional names supposed to be defined in builtins. Remember that
|
||||
# you should avoid to define new builtins when possible.
|
||||
additional-builtins=
|
||||
|
||||
# List of strings which can identify a callback function by name. A callback
|
||||
# name must start or end with one of those strings.
|
||||
callbacks=cb_,_cb
|
||||
|
||||
|
||||
[CLASSES]
|
||||
|
||||
# List of method names used to declare (i.e. assign) instance attributes.
|
||||
defining-attr-methods=__init__,__new__,setUp
|
||||
|
||||
# List of valid names for the first argument in a class method.
|
||||
valid-classmethod-first-arg=cls
|
||||
|
||||
# List of valid names for the first argument in a metaclass class method.
|
||||
valid-metaclass-classmethod-first-arg=mcs
|
||||
|
||||
# List of member names, which should be excluded from the protected access
|
||||
# warning.
|
||||
exclude-protected=_asdict,_fields,_replace,_source,_make
|
||||
|
||||
|
||||
[IMPORTS]
|
||||
|
||||
# Deprecated modules which should not be used, separated by a comma
|
||||
deprecated-modules=optparse
|
||||
|
||||
# Create a graph of every (i.e. internal and external) dependencies in the
|
||||
# given file (report RP0402 must not be disabled)
|
||||
import-graph=
|
||||
|
||||
# Create a graph of external dependencies in the given file (report RP0402 must
|
||||
# not be disabled)
|
||||
ext-import-graph=
|
||||
|
||||
# Create a graph of internal dependencies in the given file (report RP0402 must
|
||||
# not be disabled)
|
||||
int-import-graph=
|
||||
|
||||
|
||||
[DESIGN]
|
||||
|
||||
# Maximum number of arguments for function / method
|
||||
max-args=5
|
||||
|
||||
# Argument names that match this expression will be ignored. Default to name
|
||||
# with leading underscore
|
||||
ignored-argument-names=_.*
|
||||
|
||||
# Maximum number of locals for function / method body
|
||||
max-locals=15
|
||||
|
||||
# Maximum number of return / yield for function / method body
|
||||
max-returns=6
|
||||
|
||||
# Maximum number of branch for function / method body
|
||||
max-branches=12
|
||||
|
||||
# Maximum number of statements in function / method body
|
||||
max-statements=50
|
||||
|
||||
# Maximum number of parents for a class (see R0901).
|
||||
max-parents=7
|
||||
|
||||
# Maximum number of attributes for a class (see R0902).
|
||||
max-attributes=7
|
||||
|
||||
# Minimum number of public methods for a class (see R0903).
|
||||
min-public-methods=2
|
||||
|
||||
# Maximum number of public methods for a class (see R0904).
|
||||
max-public-methods=20
|
||||
|
||||
# Maximum number of boolean expressions in a if statement
|
||||
max-bool-expr=5
|
||||
|
||||
|
||||
[EXCEPTIONS]
|
||||
|
||||
# Exceptions that will emit a warning when being caught. Defaults to
|
||||
# "Exception"
|
||||
overgeneral-exceptions=Exception
|
||||
@@ -1,29 +1,112 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2015-2015 Doug Blank
|
||||
# Copyright (C) 2016 DaAwesomeP
|
||||
# Copyright (C) 2016 QuLogic
|
||||
# Copyright (C) 2016 Tim G L Lyons
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
# After changing this file, check it on:
|
||||
# http://lint.travis-ci.org/
|
||||
|
||||
sudo: required
|
||||
dist: trusty
|
||||
language: python
|
||||
python:
|
||||
- 3.3 # This is irrelevant, because the virtualenv is not used at all
|
||||
|
||||
language: c
|
||||
#python:
|
||||
# - 3.3
|
||||
# - 3.4
|
||||
# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment
|
||||
# for Python 3.2 should be added to this environment which is Python 3.3. It
|
||||
# will not be possible to run coverage under Python 3.2, because coverage is
|
||||
# Python 3.3 (or above) only.
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- gir1.2-pango-1.0
|
||||
- gir1.2-gtk-3.0
|
||||
- xdg-utils
|
||||
- librsvg2-common
|
||||
- libglib2.0-dev
|
||||
- intltool
|
||||
# - python3-gobject Provided by python3-gi
|
||||
- python3-gi
|
||||
- python3-cairo
|
||||
- python3-gi-cairo
|
||||
- python3-bsddb3
|
||||
- python3-dev
|
||||
- python3-nose
|
||||
- python3-mock
|
||||
- python3-pyicu
|
||||
- python3-coverage
|
||||
|
||||
before_install:
|
||||
|
||||
install:
|
||||
- git clone --depth=50 --branch=master git://github.com/gramps-project/gramps.git gramps-project/gramps
|
||||
- cd gramps-project/gramps
|
||||
- time sudo apt-get update
|
||||
- travis_retry sudo apt-get install gir1.2-pango gir1.2-gtk xdg-utils librsvg2-common libglib2.0-dev intltool
|
||||
- travis_retry sudo apt-get install python3-gobject python3-gi python3-cairo python3-gi-cairo python3-bsddb3 python3-dev python3-nose
|
||||
# The working directory is set to /home/travis/build/gramps-project/gramps
|
||||
# by the automatic git checkout.
|
||||
|
||||
- travis_retry curl https://bootstrap.pypa.io/get-pip.py | sudo python3
|
||||
- travis_retry sudo pip3 install Django==1.7
|
||||
- travis_retry sudo pip3 install pyicu==1.8
|
||||
- travis_retry sudo pip3 install mock
|
||||
- python3 setup.py build
|
||||
# Download Sean Ross-Ross's Pure Python module containing a framework to
|
||||
# manipulate and analyze python ast�s and bytecode. This is loaded to
|
||||
# /home/travis/build/gramps-project/gramps/meta
|
||||
# FIXME: This should be loaded from the release directory at
|
||||
# https://pypi.python.org/pypi/meta
|
||||
- git clone -b master https://github.com/srossross/meta
|
||||
|
||||
#before_script:
|
||||
# - sudo Xvfb :99 -ac &
|
||||
# - export DISPLAY=:99
|
||||
# Build Gramps package. This seems to copy everything to
|
||||
# /home/travis/build/scripts-3.3
|
||||
- python setup.py build
|
||||
|
||||
before_script:
|
||||
# Create the Gramps database directory.
|
||||
- mkdir -p ~/.gramps/grampsdb/
|
||||
# set PYTHONPATH so the directly installed module (meta) is picked up from
|
||||
# /home/travis/build/gramps-project/gramps/meta
|
||||
- export PYTHONPATH=meta
|
||||
# set module exclusions. --exclude=TestUser because of older version of mock
|
||||
# without configure_mock
|
||||
- export EXCLUDE="--exclude=TestcaseGenerator --exclude=vcard
|
||||
--exclude=merge_ref_test --exclude=user_test"
|
||||
# set GRAMPS_RESOURCES for locale, data,image and documentation
|
||||
- export GRAMPS_RESOURCES=.
|
||||
|
||||
script:
|
||||
- mkdir -p /home/travis/.gramps/grampsdb/
|
||||
- DJANGO_SETTINGS_MODULE=gramps.webapp.settings nosetests3 --exclude=TestcaseGenerator --exclude=vcard --exclude=merge_ref_test gramps
|
||||
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
|
||||
# from /usr/bin. Use libraries from /usr/lib/python3.4,
|
||||
# /usr/local/lib/python3.4/dist-packages and /usr/lib/python3/dist-packages
|
||||
- nosetests3 --nologcapture --with-coverage --cover-package=gramps $EXCLUDE
|
||||
gramps test test/GrampsLogger
|
||||
# FIXME: This should have run from the current directory, rather than from
|
||||
# gramps, because there is some test code in that directory.
|
||||
|
||||
# give an error for any trailing whitespace
|
||||
- if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
|
||||
echo "ERROR - Trailing whitespace found in source file(s)";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
after_success:
|
||||
# apt-get installs python3-coverage, but codecov only invokes coverage, so make
|
||||
# a link
|
||||
- sudo ln /usr/bin/python3-coverage /usr/bin/coverage
|
||||
|
||||
# We have to use the bash script because the apt-get coverage does not install
|
||||
# codecov. If we used pip to install codecov, it would run inside the
|
||||
# virtualenv, and that doesn't work. Change the path to ensure that codecov
|
||||
# picks up coverage from /usr/bin, rather than from
|
||||
# /home/travis/virtualenv/python3.3.6/bin/
|
||||
- PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)
|
||||
|
||||
@@ -212,7 +212,7 @@ their own plugins which could be new reports, charts, or research tools.
|
||||
|
||||
18. In what formats can Gramps output its reports?
|
||||
|
||||
Text reports are available in HTML, PDF, ODT, LaTeX, and RTF formats. Graphical reports (charts and diagrams) are available in PostScript, PDF, SVG, ODS, and GraphViz formats.
|
||||
Text reports are available in HTML, PDF, ODT, LaTeX, and RTF formats. Graphical reports (charts and diagrams) are available in PostScript, PDF, SVG, ODS, and Graphviz formats.
|
||||
|
||||
|
||||
19. How can I change the default language in reports?
|
||||
|
||||
@@ -25,7 +25,5 @@ able to run gramps from the source directory without setting PYTHONPATH
|
||||
|
||||
From this position, import gramps works great
|
||||
"""
|
||||
import os
|
||||
os.environ['GRAMPS_RESOURCES'] = os.path.dirname(os.path.abspath(__file__))
|
||||
import gramps.grampsapp as app
|
||||
app.main()
|
||||
|
||||
@@ -91,12 +91,6 @@ alternative location on windows, supply the --root argument to setup.py
|
||||
|
||||
For example:
|
||||
python setup.py install --root ~/test
|
||||
or
|
||||
python setup.py install --root ~/test --enable-packager-mode
|
||||
|
||||
The last option, --enable-packager-mode, is needed if you want to disable
|
||||
execution of post-install mime processing. If you don't have root/admin
|
||||
access, this will be needed
|
||||
|
||||
Packager's issues
|
||||
------------------
|
||||
@@ -104,3 +98,9 @@ There is a MANIFEST.in file to indicate the work needed.
|
||||
To create a source distribution run:
|
||||
|
||||
python setup.py sdist
|
||||
|
||||
If Gramps is built outside of the source tree in a temporary location (e.g. when
|
||||
packaging for a distribution), the --resourcepath option can be used to specify
|
||||
the path to the installed location of the Gramps resources (e.g. /usr/share):
|
||||
|
||||
python setup.py install --resourcepath=/usr/share
|
||||
|
||||
@@ -22,11 +22,9 @@ recursive-include windows *
|
||||
|
||||
# Remove files created in the build
|
||||
exclude data/tips.xml
|
||||
exclude gramps/plugins/lib/holidays.xml
|
||||
exclude data/holidays.xml
|
||||
exclude po/.intltool-merge-cache
|
||||
global-exclude *.pyc
|
||||
global-exclude *.pyo
|
||||
|
||||
# Remove directories which should not be included in the distribution
|
||||
prune gramps/guiQML
|
||||
#prune gramps/webapp
|
||||
|
||||
@@ -1,3 +1,189 @@
|
||||
2015-05-01
|
||||
Version 4.1.3, "Thou shalt not count to five", a maintenance release.
|
||||
* Fix db upgrade failure
|
||||
* GtkDialog mapped without a transient parent
|
||||
* [Gedcom} SUBN and SUBM record handling
|
||||
* [Gedcom] Import/export round trip causes lost information
|
||||
* [Gedcom] Entering a witness to an event such as marriage might be ignored
|
||||
* [Gedcom] Gramps can't import estim. date period exported by itself
|
||||
* [Gedcom] 1/4 and 1/2 ANSEL characters not supported on importing ANSEL
|
||||
* [Gedcom] Importing file containing multibyte UTF-8 characters fails
|
||||
* [Gedcom] Import fails for ANSI file under python 3
|
||||
* [Gedcom] Failure importing ANSEL encoded gedcom file.
|
||||
* [Gedcom] Characters ignored on a Gedcom encoded ANSI (cp1252 West Europe, USA)
|
||||
* [Gedcom] NameError in importer
|
||||
* [Gedcom] Event address is lost on import, i.e. disconnected from event
|
||||
* Crash on geneweb export with python3
|
||||
* GuiColorOption missing avail-changed event handler
|
||||
* Bad generation of [timeline report] ODT files since 4.0.0
|
||||
* Fix bad handle in explanation note for unknown event
|
||||
* Fix spurious generation of empty 'Alternative Name' in place.merge()
|
||||
* Support creating directories in various scenarios
|
||||
* Attempting to add a bookmark causes an error
|
||||
* Long series of "unhandled exception" popup boxes while doing a check & repair
|
||||
* Crash when trying to link existing place as an enclosing place using P0001 number
|
||||
* HTML view fails to load
|
||||
* Relationship Graph crashes
|
||||
* Python3 needs new_subpixbuf not subpixbuf
|
||||
* Regression: running gramps from crontab fails
|
||||
* tag_map is not initialized
|
||||
* Some labels now fit better on citations sidebar filter
|
||||
* Event columns in web narrative are too narrow
|
||||
* Problem by start program (launcher)
|
||||
* Translation string missing in Not Related tool for help and close button
|
||||
* Date format month/year is not well reported at editing time [in Italian]
|
||||
* Fix unknown gender relationships handler for the french locale
|
||||
* Fix a handle type bug on sidebar filter
|
||||
* Tidy up About dialog
|
||||
* Cleanup on some man files
|
||||
* Convert some remaining unicode literals
|
||||
* Fix mac menubar setting
|
||||
* Enable python3 to run po/update_po.py
|
||||
* Updated translations: cs, de, fr, is, nl
|
||||
|
||||
2015-02-28
|
||||
Version 4.1.2, "That's no ordinary rabbit", a maintenance release.
|
||||
* Error converting python2 utf-8 strings to python3 str when loading data from database
|
||||
* Removing a parent place from a place leaves a dangling reference
|
||||
* Error during checking the database
|
||||
* Stubborn blank space in database won't be removed, fix removing rows in flat list views
|
||||
* Database upgrade fails if default media path is not set
|
||||
* Error converting database after upgrade to Gramps 4.1.1
|
||||
* Error in a single place within the places section
|
||||
* Entries from the add-or-choose selector of Place/Source/Media/Note cannot be dragged
|
||||
* Enclosing places tab should work like other similar tabs, new place reference editor
|
||||
* Association editor refuses dropped persons
|
||||
* Error on opening twice an object from clipboard
|
||||
* Incorrect spacing in export assistant file chooser
|
||||
* New Event types are saved as a disordered list
|
||||
* Always display main participants
|
||||
* Place titles can now be generated on-the-fly by a place displayer, default is still to use the place title field
|
||||
* GEDCOM import of embedded notes attached to media does not work
|
||||
* Crash on Ancestry.com .ged import; consistent.
|
||||
* Errors handling owner/submitter information in GEDCOM files.
|
||||
Only import researcher from GEDCOM or XML if the family tree was originally empty.
|
||||
* GEDCOM export does not export media attached to citations.
|
||||
* The fanchart view crashes if max generation is set to 1 away.
|
||||
* Sidebar Filters do not match placetypes in new placeview, two new filter rules (HasTitle, HasData)
|
||||
* Fix bug when family has no parents
|
||||
* Fix bad handle in explanation note for unknown event
|
||||
* Some labels now fit better on citations sidebar filter
|
||||
* Views in Geography should not always use the last option set by the user
|
||||
* Request for keyboard-controlled zoom on Geography view
|
||||
* Error geography view - Displaying main menu
|
||||
* Configure screen needs a file selector to select directory for "offline mode" files
|
||||
* Filter panel on geography view displays improperly
|
||||
* Detailed descendant report crashes, bibliography (citations)
|
||||
* Can't disable box shadow in SVG descendant tree
|
||||
* Descendant tree graphical report, syntax error in svg output
|
||||
* Regression: Complete Individual report has partially-untranslated output
|
||||
* Events Page in Narrative Report not working
|
||||
* Gramps freeze after defining a report style with German cm values
|
||||
* Various problems with docgen.TextDoc.add_media_object
|
||||
* Report event attribute name is not translated
|
||||
* Records Gramplet uses wrong text
|
||||
* Closing detached gramplet causes python to crash
|
||||
* Cannot reduce size of gramplets detached from a gramplet bar
|
||||
* Gramplets don't fill window when detached from dashboard
|
||||
* ImageMetadata doesn't show metadata
|
||||
* typo on GLib call, used by an addon only
|
||||
* Fix error setting gramplet tab label
|
||||
* Check for active person in session log gramplet
|
||||
* Spurious spaces in CLI List Family Trees, tab delimited output.
|
||||
Print statements changed to assemble the whole line before output.
|
||||
* Gtk3 warning and custom undoableentry widget, see bugzilla_id 644927
|
||||
* Warnings: deprecated Gtk properties and errors loading theme icon.
|
||||
Fix: database manager dialog is inconsistent for older gtk+3 versions.
|
||||
Warnings: deprecated Gtk properties and errors loading theme icon.
|
||||
Fix: Error loading theme icon 'gtk-apply'
|
||||
* gramps fails to start with gtk+-3.13.3
|
||||
* Places in data.gramps are not in the new Place hierarchy
|
||||
* Upgrade the version of some dependencies for Mac OS and Windows OS.
|
||||
* Keywords entry in gramps.desktop does not work
|
||||
* 'Available Gramps Updates for Addons' window not on top
|
||||
* Some text not translatable in context menu fancharts
|
||||
* Fix for Unit test
|
||||
* date inflections in _datehandler.py, update for Ukrainian, Russian, Croatian
|
||||
* Better support for Serbian and Turkish locales
|
||||
* New translation: Icelandic
|
||||
* Re-enable Turkish support after a major review. Thank you Uğur.
|
||||
* Updated translations: cs, de, eo, fi, fr, hr, hu, it, nb, nn, ru, sk, sr, sv, uk, zh_CN
|
||||
|
||||
2014-10-24
|
||||
Version 4.1.1, "MachineThatGoes...Ping!", a maintenance release.
|
||||
* Fix custom place types in the place editor
|
||||
* Allow place type combobox to receive focus.
|
||||
* Store custom place types in the metadata table
|
||||
* Fix place type for places without a main location
|
||||
* Fix bug adding parent places to a new place
|
||||
* Prevent user creating a cycle in the place hierarchy
|
||||
* Avoid infinite loop when place cycle encountered
|
||||
* Prevent creation of a place cycle when merging
|
||||
* Fix error when no place is selected
|
||||
* Check that a place has been selected when saving.
|
||||
* Use the standard place selection widget to be consistent.
|
||||
* Add a new Top Level place through the Place Reference Editor
|
||||
* Fix backlinks code in place report
|
||||
* Backlinks for places can now also be places as well as events.
|
||||
* Fix check and repair tool for empty placerefs
|
||||
* Update location utilities to work with proxies
|
||||
* Place report does not run
|
||||
* Update place details gramplet
|
||||
* Locations are now displayed in a new separate gramplet.
|
||||
* Add check for empty handle in gramplets
|
||||
* Check DB lock on the recent opened trees list
|
||||
* Sidebarfilter gramplet does not fit well into People, Events or Media views
|
||||
* Fix new event default type considering existing events with *default* role
|
||||
* Rebuild secondary indexes after database upgrade
|
||||
* Importing gedcom files containing multibyte UTF-8 characters fails
|
||||
* Ahnentafel Report did not use Christening Date if no Birth Date
|
||||
* [Narweb:] Missing webpage for media under some circumstances
|
||||
* Fix narrated web report with gendex option enabled
|
||||
* Tweak to "default" CSS choice for the narrated web report
|
||||
* Invalid link for Merge citation Help button
|
||||
* Fix 'todo' gramplet
|
||||
* Fix path when using drag & drop to add media
|
||||
* Limit the number of generations displayed in the ancestor gramplet
|
||||
* Export of a subset of the tree failed
|
||||
* Fix issues in python3, and bytes-string mismatch with ICU
|
||||
* Fix url/uri handling with non-ascii characters under linux and mac
|
||||
* Fix name format on graphical reports
|
||||
* Fix name format on textual reports
|
||||
* Better GUI support for embeded custom attributes list on media object
|
||||
* Better keys for search under linux shells (.desktop file)
|
||||
* 'Unknown' person in detailed ancestor report can not be translated
|
||||
* Translations don't show in many labels
|
||||
* Ensure python text domain gets the right encoding.
|
||||
* Translate some punctuation marks
|
||||
* Various fixes around Geography and osmgpsmap
|
||||
* Allow gramplets to be displayed in the dashboard only
|
||||
* Update FSF address
|
||||
* Add Arabic-script, Islamic-date, Thai script, Married Name and more dates examples
|
||||
* Fix on czech date handler for calculated and estimated dates
|
||||
* Enhance Serbian date handler to handle Cyrillic dates
|
||||
* Simplify Canadian Ash Wednesday holiday
|
||||
* Re-enable Esperanto support (for non-Windows OS only) after a large review
|
||||
* New translation: Serbian
|
||||
* Various fixes in German and Czech
|
||||
* Updated translations: ar, cs, de, fi, fr, it, sv
|
||||
|
||||
2014-06-15
|
||||
Version 4.1.0, the "Name go in book", new major release.
|
||||
* GEP 006: Better Place handling
|
||||
* New Tags support on Event, Place, Repository, Source, and Citation
|
||||
* Source/Citation Data becomes Attributes
|
||||
* Add optional support for checksum on Media object
|
||||
* New place hierarchies model
|
||||
* By default, you can choose navigator modes with a drop down.
|
||||
* New Place editor
|
||||
* Enhanced MediaReference Editor
|
||||
* Some debug tools move to new gramplets
|
||||
* Full Python 3 support
|
||||
* New functions and widgets related to Place and Media selections
|
||||
* Enhancements on to_struct()
|
||||
* New methods on Date handlers
|
||||
* Better support on translation for inflection rules
|
||||
|
||||
2014-05-22
|
||||
Version 4.0.4, "Not the comfy chair", a maintenance release.
|
||||
* Upgrade to db version 17 fails in Python 3 due to use of iteritems
|
||||
@@ -174,8 +360,8 @@ Version 3.4.3 of Gramps! "Whenever life gets you down, Mrs. Brown", a maintenanc
|
||||
* GEDCOM Repositories not imported correctly from FTM for Windows and Heredis.
|
||||
* Fixes to a number of errors in filtering notes.
|
||||
* Fix some errors in determining whether someone is alive (e.g. for filtering out alive people).
|
||||
* Make availability of GraphViz settings depend on output format
|
||||
* Improve the descriptions and tooltip for GraphViz aspect ratio option
|
||||
* Make availability of Graphviz settings depend on output format
|
||||
* Improve the descriptions and tooltip for Graphviz aspect ratio option
|
||||
* Fixed update problems with citation bottombar gramplet (bug #6336)
|
||||
* Fixed Open Document Text output in Book report (bug #6457)
|
||||
* A number of changes to Narrative Web:
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
Please read the COPYING file first.
|
||||
|
||||
Please read the INSTALL file if you intend to build from source.
|
||||
|
||||
Requirements
|
||||
--------------------------------
|
||||
The following packages *MUST* be installed in order for Gramps to work:
|
||||
Python 3.2 or greater
|
||||
GTK 3.10 or greater
|
||||
pygobject 3.3.2 or greater
|
||||
cairo, pango, pangocairo with introspection bindings (the gi packages)
|
||||
librsvg2 (svg icon view)
|
||||
xdg-utils
|
||||
bsddb3
|
||||
|
||||
The following package is needed for full translation of the interface
|
||||
to your language:
|
||||
language-pack-gnome-xx
|
||||
Translation of GTK elements to your language, with
|
||||
xx your language code; e.g. for Dutch you need
|
||||
language-pack-gnome-nl. The translation of the
|
||||
Gramps strings is included with the gramps source.
|
||||
|
||||
|
||||
The following packages are *STRONGLY RECOMMENDED* to be installed:
|
||||
|
||||
osmgpsmap Used to show maps in the geography view.
|
||||
It may be osmgpsmap, osm-gps-map, or python-osmgpsmap,
|
||||
but the Python bindings for this must also be present.
|
||||
Without this the GeoView will not be active, see
|
||||
http://gramps-project.org/wiki/index.php?title=Gramps_4.1_Wiki_Manual_-_Main_Window#Geography_Category
|
||||
|
||||
GraphViz Enable creation of graphs using GraphViz engine.
|
||||
Without this, three reports cannot be run.
|
||||
Obtain it from: http://www.graphviz.org
|
||||
|
||||
PyICU Improves localised sorting in Gramps. In particular, this
|
||||
applies to sorting in the various views and in the
|
||||
Narrative Web output. It is particularly helpful for
|
||||
non-Latin characters, for non-English locales and on MS
|
||||
Windows and Mac OS X platforms. If it is not available,
|
||||
sorting is done through built-in libraries. PyICU is
|
||||
fairly widely available through the package managers of
|
||||
distributions. See http://pyicu.osafoundation.org/
|
||||
(These are Python bindings for the ICU package.)
|
||||
|
||||
The following packages are optional
|
||||
|
||||
gtkspell Enable spell checking in the notes. Gtkspell depends on
|
||||
enchant. A version of gtkspell with gobject introspection
|
||||
is needed, so minimally version 3.0.0
|
||||
|
||||
rcs The GNU Revision Control System (RCS) can be used to manage
|
||||
multiple revisions of your family trees. See info at
|
||||
http://www.gramps-project.org/wiki/index.php?title=Gramps_4.1_Wiki_Manual_-_Manage_Family_Trees#Archiving_a_Family_Tree
|
||||
Only rcs is needed, NO python bindings are required
|
||||
|
||||
PIL Python Image Library is needed to crop
|
||||
images and also to convert non-JPG images to
|
||||
JPG so as to include them in LaTeX output.
|
||||
(For Python3 a different source may be needed,
|
||||
python-imaging or python-pillow or python3-pillow)
|
||||
|
||||
GExiv2 Enables Gramps to manage Exif metadata embedded in your
|
||||
media. Gramps needs version 0.5 or greater.
|
||||
See http://www.gramps-project.org/wiki/index.php?title=GEPS_029:_GTK3-GObject_introspection_Conversion#GExiv2_for_Image_metadata
|
||||
|
||||
ttf-freefont More font support in the reports
|
||||
|
||||
gir-webkit Required for the (user-downloadable) HtmlView plugin
|
||||
|
||||
goocanvas2 Required for the (user-downloadable) GraphView plugin
|
||||
|
||||
No longer needed in 4.1:
|
||||
?
|
||||
No longer needed in 4.0:
|
||||
pygoocanvas, pygtk, pyexiv2
|
||||
No longer needed in 3.3:
|
||||
python-enchant Enchant
|
||||
No longer needed in 3.2:
|
||||
python glade bindings
|
||||
No longer needed in 3.1:
|
||||
yelp Gnome help browser. No offline help is shipped see Gramps website for User manual
|
||||
|
||||
|
||||
Documentation
|
||||
---------------------------------
|
||||
The User Manual is maintained on the Gramps website,
|
||||
http://www.gramps-project.org/wiki/index.php?title=User_manual
|
||||
|
||||
--------------------------------
|
||||
The Gramps Project
|
||||
http://gramps-project.org
|
||||
@@ -0,0 +1,147 @@
|
||||
The Gramps Project ( https://gramps-project.org ) [](https://travis-ci.org/gramps-project/gramps)[](https://codecov.io/github/gramps-project/gramps?branch=master)
|
||||
===================
|
||||
We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.
|
||||
|
||||
Please read the **COPYING** file first.
|
||||
|
||||
Please read the **INSTALL** file if you intend to build from source.
|
||||
|
||||
Requirements
|
||||
============
|
||||
The following packages **MUST** be installed in order for Gramps to work:
|
||||
|
||||
* **Python** 3.2 or greater - The programming language used by Gramps. https://www.python.org/
|
||||
* **GTK** 3.10 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
|
||||
* **pygobject** 3.12 or greater - Python Bindings for GLib/GObject/GIO/GTK+ https://wiki.gnome.org/Projects/PyGObject
|
||||
|
||||
The following three packages with GObject Introspection bindings (the gi packages)
|
||||
|
||||
* **cairo** - a 2D graphics library with support for multiple output devices. http://cairographics.org/
|
||||
* **pango** - a library for laying out and rendering of text, with an emphasis on internationalization. http://www.pango.org/
|
||||
* **pangocairo** - Allows you to use Pango with Cairo http://www.pango.org/
|
||||
|
||||
* **librsvg2** - (SVG icon view) a library to render SVG files using cairo. http://live.gnome.org/LibRsvg
|
||||
* **xdg-utils** - Desktop integration utilities from freedesktop.org
|
||||
* **bsddb3** - Python bindings for Oracle Berkeley DB https://pypi.python.org/pypi/bsddb3/
|
||||
|
||||
|
||||
The following package is needed for full translation of the interface
|
||||
to your language:
|
||||
|
||||
* **language-pack-gnome-xx**
|
||||
|
||||
Translation of GTK elements to your language, with
|
||||
xx your language code; e.g. for Dutch you need
|
||||
language-pack-gnome-nl. The translation of the
|
||||
Gramps strings is included with the gramps source.
|
||||
|
||||
|
||||
The following packages are **STRONGLY RECOMMENDED** to be installed:
|
||||
--------------------------------------------------------------------
|
||||
* **osmgpsmap**
|
||||
|
||||
Used to show maps in the geography view.
|
||||
It may be osmgpsmap, osm-gps-map, or python-osmgpsmap,
|
||||
but the Python bindings for this must also be present.
|
||||
Without this the GeoView will not be active, see
|
||||
https://gramps-project.org/wiki/index.php?title=Gramps_4.2_Wiki_Manual_-_Categories#Geography_Category
|
||||
|
||||
* **Graphviz**
|
||||
|
||||
Enable creation of graphs using Graphviz engine.
|
||||
Without this, three reports cannot be run.
|
||||
Obtain it from: http://www.graphviz.org
|
||||
|
||||
* **PyICU**
|
||||
|
||||
Improves localised sorting in Gramps. In particular, this
|
||||
applies to sorting in the various views and in the
|
||||
Narrative Web output. It is particularly helpful for
|
||||
non-Latin characters, for non-English locales and on MS
|
||||
Windows and Mac OS X platforms. If it is not available,
|
||||
sorting is done through built-in libraries. PyICU is
|
||||
fairly widely available through the package managers of
|
||||
distributions. See http://pyicu.osafoundation.org/
|
||||
(These are Python bindings for the ICU package.
|
||||
https://pypi.python.org/pypi/PyICU/)
|
||||
|
||||
The following packages are optional:
|
||||
------------------------------------
|
||||
* **gtkspell**
|
||||
|
||||
Enable spell checking in the notes. Gtkspell depends on
|
||||
enchant. A version of gtkspell with gobject introspection
|
||||
is needed, so minimally version 3.0.0
|
||||
|
||||
* **rcs**
|
||||
|
||||
The GNU Revision Control System (RCS) can be used to manage
|
||||
multiple revisions of your family trees. See info at
|
||||
https://gramps-project.org/wiki/index.php?title=Gramps_4.2_Wiki_Manual_-_Manage_Family_Trees#Archiving_a_Family_Tree
|
||||
Only rcs is needed, NO python bindings are required
|
||||
|
||||
* **PIL**
|
||||
|
||||
Python Image Library is needed to crop
|
||||
images and also to convert non-JPG images to
|
||||
JPG so as to include them in LaTeX output.
|
||||
(For Python3 a different source may be needed,
|
||||
python-imaging or python-pillow or python3-pillow)
|
||||
|
||||
* **GExiv2**
|
||||
|
||||
Enables Gramps to manage Exif metadata embedded in your
|
||||
media. Gramps needs version 0.5 or greater.
|
||||
See https://www.gramps-project.org/wiki/index.php?title=GEPS_029:_GTK3-GObject_introspection_Conversion#GExiv2_for_Image_metadata
|
||||
|
||||
* **ttf-freefont**
|
||||
|
||||
More font support in the reports
|
||||
|
||||
* **Meta**
|
||||
|
||||
Required for experimental "where" clause creation. This functionality
|
||||
is not yet in main-line code so it is not needed by users. If the package
|
||||
will be used by gramps developers, to support further development, then
|
||||
it may be included. Install with pypi: https://pypi.python.org/pypi/meta.
|
||||
|
||||
Optional packages required by Third-party Addons
|
||||
------------------------------------------------
|
||||
|
||||
**Third-party Addons are written by users and developers and unless stated are not officially part of Gramps.**
|
||||
For more information about Addons see: https://gramps-project.org/wiki/index.php?title=Third-party_Plugins
|
||||
|
||||
Prerequistes required for the following Addons to work:
|
||||
|
||||
* **Family Sheet** - Requires: PIL (Python Imaging Library) or PILLOW.
|
||||
( https://gramps-project.org/wiki/index.php?title=Family_Sheet )
|
||||
|
||||
* **Graph View** - Requires: PyGoocanvas and Goocanvas.
|
||||
( https://gramps-project.org/wiki/index.php?title=Graph_View )
|
||||
|
||||
* **PedigreeChart** - Can optionally use - numpy if installed
|
||||
( https://gramps-project.org/wiki/index.php?title=PedigreeChart )
|
||||
|
||||
No longer needed:
|
||||
-----------------
|
||||
* Since Gramps 4.2:
|
||||
**gir-webkit**
|
||||
|
||||
* Since Gramps 4.0:
|
||||
**pygoocanvas, pygtk, pyexiv2**
|
||||
|
||||
* Since Gramps 3.3:
|
||||
**python-enchant Enchant**
|
||||
|
||||
* Since Gramps 3.2:
|
||||
**python glade bindings**
|
||||
|
||||
* Since Gramps 3.1:
|
||||
**yelp** - Gnome help browser. No offline help is shipped see Gramps website for User manual
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
The User Manual is maintained on the Gramps website:
|
||||
|
||||
* https://www.gramps-project.org/wiki/index.php?title=User_manual
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
_gramps()
|
||||
{
|
||||
local cur prev opts
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
opts="--action --config --create --databases --debug --export --format --help --import --open --options --quiet --remove --show --usage --version --yes -? -C -L -O -a -b -c -d -e -f -i -l -p -q -r -s -t -u -v -y"
|
||||
if [[ ${cur} == -* ]] ; then
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
return 0
|
||||
elif [[ ${cur} == --open ]] ; then
|
||||
local IFS=$'\n'
|
||||
local names=($( gramps -l | grep \" | cut -d\ -f4- ))
|
||||
COMPREPLY=( $(compgen --W "${names[*]}" -- ${cur}) )
|
||||
return 0
|
||||
else
|
||||
local IFS=$'\n'
|
||||
local names=($( gramps -l | grep \" | cut -d\ -f4- ))
|
||||
COMPREPLY=( $(compgen -W "${names[*]}" -- ${cur}) )
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
complete -F _gramps gramps
|
||||
@@ -1,18 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<application>
|
||||
<id type="desktop">gramps.desktop</id>
|
||||
<licence>CC0</licence>
|
||||
<description>
|
||||
<_p>Gramps is a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.</_p>
|
||||
<_p>It gives you the ability to record the many details of the life of an individual as well as the complex relationships between various people, places and events.</_p>
|
||||
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
|
||||
</description>
|
||||
<url type="homepage">http://gramps-project.org/</url>
|
||||
<screenshots>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/5f/AppData1.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData2.png</screenshot>
|
||||
<screenshot type="default" width="1226" height="740">http://www.gramps-project.org/wiki/images/e/e9/AppData3.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData4.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/50/AppData5.png</screenshot>
|
||||
</screenshots>
|
||||
</application>
|
||||
<component type="desktop">
|
||||
<id>gramps.desktop</id>
|
||||
<metadata_license>CC0</metadata_license>
|
||||
<name>Gramps</name>
|
||||
<summary>Genealogical research program</summary>
|
||||
|
||||
<description>
|
||||
<_p>Gramps is a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.</_p>
|
||||
<_p>It gives you the ability to record the many details of the life of an individual as well as the complex relationships between various people, places and events.</_p>
|
||||
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
|
||||
</description>
|
||||
|
||||
<url type="homepage">https://gramps-project.org/</url>
|
||||
<url type="bugtracker">https://gramps-project.org/bugs/</url>
|
||||
<url type="help">https://gramps-project.org/wiki/index.php?title=Main_page</url>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<developer_name>Gramps Development Team</developer_name>
|
||||
|
||||
<screenshots>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/5f/AppData1.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData2.png</screenshot>
|
||||
<screenshot type="default" width="1226" height="740">http://www.gramps-project.org/wiki/images/e/e9/AppData3.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData4.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/50/AppData5.png</screenshot>
|
||||
</screenshots>
|
||||
|
||||
<provides>
|
||||
<binary>gramps</binary>
|
||||
</provides>
|
||||
|
||||
</component>
|
||||
|
||||
@@ -25,15 +25,15 @@
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the Document Type Definition file for v1.6.0
|
||||
This is the Document Type Definition file for v1.7.1
|
||||
of the GRAMPS XML genealogy data format.
|
||||
Please use the following formal public identifier to identify it:
|
||||
|
||||
"-//GRAMPS//DTD GRAMPS XML V1.6.0//EN"
|
||||
"-//GRAMPS//DTD GRAMPS XML V1.7.1//EN"
|
||||
|
||||
For example:
|
||||
<!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.6.0//EN"
|
||||
"http://gramps-project.org/xml/1.6.0/grampsxml.dtd"
|
||||
<!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.7.1//EN"
|
||||
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd"
|
||||
[...]>
|
||||
-->
|
||||
|
||||
@@ -62,7 +62,7 @@ DATABASE
|
||||
<!ELEMENT database (header, name-formats?, tags?, events?, people?, families?,
|
||||
citations?, sources?, places?, objects?, repositories?,
|
||||
notes?, bookmarks?, namemaps?)>
|
||||
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.6.0/">
|
||||
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.7.1/">
|
||||
|
||||
|
||||
<!-- ************************************************************
|
||||
@@ -122,6 +122,7 @@ GENDER has values of M, F, or U.
|
||||
|
||||
<!ELEMENT name (first?, call?, surname*, suffix?, title?, nick?, familynick?, group?,
|
||||
(daterange|datespan|dateval|datestr)?, noteref*, citationref*)>
|
||||
<!-- (Unknown|Also Know As|Birth Name|Married Name|Other Name) -->
|
||||
<!ATTLIST name
|
||||
alt (0|1) #IMPLIED
|
||||
type CDATA #IMPLIED
|
||||
@@ -138,6 +139,8 @@ GENDER has values of M, F, or U.
|
||||
<!ELEMENT familynick (#PCDATA)>
|
||||
<!ELEMENT group (#PCDATA)>
|
||||
<!ELEMENT surname (#PCDATA)>
|
||||
<!-- (Unknown|Inherited|Given|Taken|Patronymic|Matronymic|Feudal|
|
||||
Pseudonym|Patrilineal|Matrilineal|Occupation|Location) -->
|
||||
<!ATTLIST surname
|
||||
prefix CDATA #IMPLIED
|
||||
prim (1|0) #IMPLIED
|
||||
@@ -196,12 +199,13 @@ FAMILY
|
||||
<!ELEMENT mother EMPTY>
|
||||
<!ATTLIST mother hlink IDREF #REQUIRED>
|
||||
|
||||
<!-- (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) -->
|
||||
<!ELEMENT childref (citationref*,noteref*)>
|
||||
<!ATTLIST childref
|
||||
hlink IDREF #REQUIRED
|
||||
priv (0|1) #IMPLIED
|
||||
mrel (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
|
||||
frel (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
|
||||
mrel CDATA #IMPLIED
|
||||
frel CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT type (#PCDATA)>
|
||||
@@ -248,20 +252,25 @@ PLACES
|
||||
|
||||
<!ELEMENT places (placeobj)*>
|
||||
|
||||
<!ELEMENT placeobj (ptitle?, code?, alt_name*, coord?, placeref*, location*,
|
||||
<!ELEMENT placeobj (ptitle?, pname+, code?, coord?, placeref*, location*,
|
||||
objref*, url*, noteref*, citationref*, tagref*)>
|
||||
<!ATTLIST placeobj
|
||||
id CDATA #IMPLIED
|
||||
handle ID #REQUIRED
|
||||
priv (0|1) #IMPLIED
|
||||
change CDATA #REQUIRED
|
||||
name CDATA #REQUIRED
|
||||
type CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT pname (daterange|datespan|dateval|datestr)?>
|
||||
|
||||
<!ATTLIST pname
|
||||
lang CDATA #IMPLIED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT ptitle (#PCDATA)>
|
||||
<!ELEMENT code (#PCDATA)>
|
||||
<!ELEMENT alt_name (#PCDATA)>
|
||||
|
||||
<!ELEMENT coord EMPTY>
|
||||
<!ATTLIST coord
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the RELAX NG schema for the Gramps XML genealogy data format.
|
||||
This is the RELAX NG schema for the GRAMPS XML genealogy data format.
|
||||
-->
|
||||
|
||||
|
||||
<grammar
|
||||
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
|
||||
ns="http://gramps-project.org/xml/1.6.0/"
|
||||
ns="http://gramps-project.org/xml/1.7.1/"
|
||||
xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
|
||||
<start><element name="database">
|
||||
@@ -210,16 +210,7 @@
|
||||
</define>
|
||||
|
||||
<define name="child-rel">
|
||||
<choice>
|
||||
<value>Birth</value>
|
||||
<value>Adopted</value>
|
||||
<value>Stepchild</value>
|
||||
<value>Sponsored</value>
|
||||
<value>Foster</value>
|
||||
<value>None</value>
|
||||
<value>Other</value>
|
||||
<value>Unknown</value>
|
||||
</choice>
|
||||
<text/>
|
||||
</define>
|
||||
|
||||
<define name="name-content">
|
||||
@@ -230,13 +221,7 @@
|
||||
<optional><attribute name="priv">
|
||||
<ref name="priv-content"/>
|
||||
</attribute></optional>
|
||||
<optional><attribute name="type"><choice>
|
||||
<value>Unknown</value>
|
||||
<value>Also Known As</value>
|
||||
<value>Birth Name</value>
|
||||
<value>Married Name</value>
|
||||
<value>Other Name</value>
|
||||
</choice></attribute></optional>
|
||||
<optional><attribute name="type"><text/></attribute></optional>
|
||||
<optional><attribute name="sort"><text/></attribute></optional>
|
||||
<optional><attribute name="display"><text/></attribute></optional>
|
||||
<optional><element name="first"><text/></element></optional>
|
||||
@@ -265,20 +250,7 @@
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</choice></attribute></optional>
|
||||
<optional><attribute name="derivation"><choice>
|
||||
<value>Unknown</value>
|
||||
<value>Inherited</value>
|
||||
<value>Given</value>
|
||||
<value>Taken</value>
|
||||
<value>Patronymic</value>
|
||||
<value>Matronymic</value>
|
||||
<value>Feudal</value>
|
||||
<value>Pseudonym</value>
|
||||
<value>Patrilineal</value>
|
||||
<value>Matrilineal</value>
|
||||
<value>Occupation</value>
|
||||
<value>Location</value>
|
||||
</choice></attribute></optional>
|
||||
<optional><attribute name="derivation"><text/></attribute></optional>
|
||||
<optional><attribute name="connector"><text/></attribute></optional>
|
||||
</define>
|
||||
|
||||
@@ -479,11 +451,12 @@
|
||||
|
||||
<define name="place-content">
|
||||
<ref name="primary-object"/>
|
||||
<attribute name="name"><text/></attribute>
|
||||
<attribute name="type"><text/></attribute>
|
||||
<optional><element name="ptitle"><text/></element></optional>
|
||||
<oneOrMore><element name="pname">
|
||||
<ref name="placename-content"/>
|
||||
</element></oneOrMore>
|
||||
<optional><element name="code"><text/></element></optional>
|
||||
<zeroOrMore><element name="alt_name"><text/></element></zeroOrMore>
|
||||
<optional><element name="coord">
|
||||
<attribute name="long"><text/></attribute>
|
||||
<attribute name="lat"><text/></attribute>
|
||||
@@ -772,6 +745,12 @@
|
||||
<text/>
|
||||
</define>
|
||||
|
||||
<define name="placename-content">
|
||||
<attribute name="value"><text/></attribute>
|
||||
<optional><attribute name="lang"><text/></attribute></optional>
|
||||
<optional><ref name="date-content"/></optional>
|
||||
</define>
|
||||
|
||||
<define name="placeref-content">
|
||||
<attribute name="hlink"><data type="IDREF"/></attribute>
|
||||
<optional><ref name="date-content"/></optional>
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<date name="Възнесение господне" value="2010/5/13" type="religious" />
|
||||
<date name="Възнесение господне" value="2011/6/2" type="religious" />
|
||||
<date name="Възнесение господне" value="2012/5/24" type="religious" />
|
||||
</country>
|
||||
</country>
|
||||
<country _name="Canada">
|
||||
<date name="New Year's Day" value="*/1/1" type="national" />
|
||||
<date name="Groundhog Day" value="*/2/2" type="secular" />
|
||||
@@ -117,14 +117,14 @@
|
||||
<date name="Día de la Raza" value="*/10/12" type="national" />
|
||||
<date name="Todos los Santos" value="*/11/1" type="religious" />
|
||||
<date name="Inmaculada Concepción" value="*/12/8" type="religious" />
|
||||
<date name="Navidad" value="*/12/25" type="national" />
|
||||
<date name="Navidad" value="*/12/25" type="national" />
|
||||
</country>
|
||||
<country _name="China">
|
||||
<date name="Chinese New Year" value="2006/1/29" type="national" />
|
||||
</country>
|
||||
<country _name="Croatia">
|
||||
<date name="Nova godina" value="*/1/1" type="national" />
|
||||
<date name="Sveta tri kralja" value="*/1/6" type="national" />
|
||||
<date name="Sveta tri kralja" value="*/1/6" type="national" />
|
||||
<date name="Uskrs" value="> easter(y)" type="national" />
|
||||
<date name="Uskršnji ponedjeljak" value="> easter(y)" offset="1" type="national" />
|
||||
<date name="Dan rada" value="*/5/1" type="national" />
|
||||
@@ -169,113 +169,98 @@
|
||||
<date name="Remembrance Sunday" value="*/2/sun/nov" type="secular" />
|
||||
</country>
|
||||
<country _name="Finland">
|
||||
<date name="Loppiainen" value="*/1/6" type="religious" />
|
||||
<date name="Pyhäinpäivä" value="*/10/1" type="religious" />
|
||||
<date name="Loppiainen" value="*/1/6" type="religious" if="not(y>=1973)" />
|
||||
<date name="Loppiainen" value="*/1/6" offset="sat" type="religious" if="(y>=1973) and not(y>=1992)" />
|
||||
<date name="Loppiainen" value="*/1/6" type="religious" if="(y>=1992)" />
|
||||
<date name="Knud" value="*/1/7" type="religious" if="not(y>=1708)" />
|
||||
<date name="Knud" value="*/1/13" type="religious" if="(y>=1708) and not(y>=1885)" />
|
||||
<date name="Nuutti" value="*/1/13" type="religious" if="(y>=1885)" />
|
||||
<date name="Pyhän Henrikin muistopäivä" value="*/1/20" type="religious" if="not(y>=1699)" />
|
||||
<date name="Pyhän Henrikin muistopäivä" value="*/1/19" type="religious" if="(y>=1699)" />
|
||||
<date name="Laskiaissunnuntai" type="religious" value="> easter(y)" offset="-49"/>
|
||||
<date name="Laskiaistiistai" type="religious" value="> easter(y)" offset="-47"/>
|
||||
<date name="Tuhkakeskiviikko" type="religious" value="> easter(y)" offset="-46" />
|
||||
<!--
|
||||
# Candlemas Day was February 2, before the year 1774.
|
||||
# From 1774 Candlemas Day was February 2, if it is Sunday, otherwise the next Sunday.
|
||||
# If this day is Shrove Sunday, Candlemas Day is the week before.
|
||||
-->
|
||||
<date name="Kynttilänpäivä" value="*/2/2" type="religious" if="not(y>=1774)" />
|
||||
<!--
|
||||
# Before the year 1955, Annunciation day was 25 March.
|
||||
# If the day is a week before Passover, the holy day was Palm Sunday preceding Saturday.
|
||||
# If it occurred on Easter Sunday, Annunciation day was Easter the following Tuesday.
|
||||
#
|
||||
# From 1955 has been the Annunciation on Sunday, no earlier than March 22 and no later than March 28,
|
||||
# if this Sunday is Palm Sunday or Easter, Annunciation day is the Sunday before Palm Sunday.
|
||||
-->
|
||||
<date name="Palmusunnuntai" type="religious" value="> easter(y)" offset="-7" />
|
||||
<date name="Kiirastorstai" type="religious" value="> easter(y)" offset="-3" />
|
||||
<date name="Pitkäperjantai" type="religious" value="> easter(y)" offset="-2" />
|
||||
<date name="Lankalauantai" type="religious" value="> easter(y)" offset="-1" />
|
||||
<date name="Pääsiäispäivä" type="religious" value="> easter(y)" />
|
||||
<date name="2. Pääsiäispäivä" type="religious" value="> easter(y)" offset="1" />
|
||||
<date name="Helatorstai" type="religious" value="> easter(y)" offset="39" if="not(y>=1973)" />
|
||||
<date name="Kristuksen taivaaseenastumisen päivä." type="religious" value="> easter(y)" offset="34" if="(y>=1973) and not(y>=1992)" />
|
||||
<date name="Helatorstai" type="religious" value="> easter(y)" offset="39" if="(y>=1992)" />
|
||||
<date name="Helluntaipäivä" value="easter(y)" offset="49" type="religious" />
|
||||
<date name="Pyhän Kolminaisuuden päivä" value="easter(y)" offset="56" type="religious" />
|
||||
<date name="Apostolienpäivä" value="easter(y)" offset="91" type="religious" />
|
||||
<date name="Kirkastussunnuntai." value="easter(y)" offset="105" type="religious" />
|
||||
<date name="Juhannusaatto" value="*/jun/19" offset="fri" type="religious" if="(y>=1955)" />
|
||||
<date name="Juhannusaatto" value="*/jun/23" type="religious" if="not(y>=1955)" />
|
||||
<date name="Juhannuspäivä" value="*/jun/20" offset="sat" type="religious" if="(y>=1955)" />
|
||||
<date name="Juhannuspäivä" value="*/jun/24" type="religious" if="not(y>=1955)" />
|
||||
<date name="Pyhäinmiestenpäivä" value="*/nov/1" type="religious" if="not(y>=1774)" />
|
||||
<date name="Pyhäinmiestenpäivä" value="*/nov/1" offset="sun" type="religious" if="(y>=1774) and not(y>=1955)" />
|
||||
<date name="Pyhäinpäivä" value="*/oct/31" offset="sat" type="religious" if="(y>=1955)" />
|
||||
<date name="1. Adventti" value="*/nov/27" offset="sun" type="religious" />
|
||||
<date name="2. Adventti" value="*/dec/4" offset="sun" type="religious" />
|
||||
<date name="3. Adventti" value="*/dec/11" offset="sun" type="religious" />
|
||||
<date name="4. Adventti" value="*/dec/18" offset="sun" type="religious" />
|
||||
<date name="Lucian päivä" value="*/12/13" type="religious" />
|
||||
<date name="Tuomaan päivä" value="*/12/21" type="religious" />
|
||||
<date name="Jouluaatto" value="*/12/24" type="religious" />
|
||||
<date name="Joulupäivä" value="*/12/25" type="religious" />
|
||||
<date name="Tapaninpäivä" value="*/12/26" type="religious" />
|
||||
<date name="Johannes Evankelistan päivä" value="*/dec/27" type="religious" if="not(y>=1774)" />
|
||||
<date name="Apostoli Johanneksen päivä." value="*/dec/27" type="religious" if="dow(y, m, d) == 7 and (y>=2000)" />
|
||||
<date name="Viattomien lasten päivä" value="*/12/28" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2000/4/21" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2001/4/13" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2002/3/29" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2003/4/18" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2004/4/9" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2005/3/25" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2006/4/14" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2007/4/6" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2008/3/21" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2009/4/10" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2010/4/2" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2011/4/22" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2012/4/6" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2013/3/29" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2014/4/18" type="religious" />
|
||||
<date name="Pitkäperjantai" value="2015/4/3" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2000/4/23" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2001/4/15" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2002/3/31" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2003/4/20" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2004/4/11" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2005/3/27" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2006/4/16" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2007/4/8" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2008/3/23" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2009/4/12" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2010/4/4" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2011/4/24" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2012/4/8" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2013/3/31" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2014/4/20" type="religious" />
|
||||
<date name="Pääsiäispäivä" value="2015/4/5" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2000/4/24" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2001/4/15" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2002/4/1" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2003/4/21" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2004/4/12" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2005/3/28" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2006/4/17" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2007/4/9" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2008/3/24" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2009/4/13" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2010/4/5" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2011/4/25" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2012/4/9" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2013/4/1" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2014/4/21" type="religious" />
|
||||
<date name="2. Pääsiäispäivä" value="2015/4/6" type="religious" />
|
||||
<date name="Helatorstai" value="2000/6/1" type="religious" />
|
||||
<date name="Helatorstai" value="2001/5/24" type="religious" />
|
||||
<date name="Helatorstai" value="2002/5/9" type="religious" />
|
||||
<date name="Helatorstai" value="2003/5/29" type="religious" />
|
||||
<date name="Helatorstai" value="2004/5/20" type="religious" />
|
||||
<date name="Helatorstai" value="2005/5/5" type="religious" />
|
||||
<date name="Helatorstai" value="2006/5/25" type="religious" />
|
||||
<date name="Helatorstai" value="2007/5/17" type="religious" />
|
||||
<date name="Helatorstai" value="2008/5/1" type="religious" />
|
||||
<date name="Helatorstai" value="2009/5/21" type="religious" />
|
||||
<date name="Helatorstai" value="2010/5/13" type="religious" />
|
||||
<date name="Helatorstai" value="2011/6/2" type="religious" />
|
||||
<date name="Helatorstai" value="2012/5/17" type="religious" />
|
||||
<date name="Helatorstai" value="2013/5/9" type="religious" />
|
||||
<date name="Helatorstai" value="2014/5/29" type="religious" />
|
||||
<date name="Helatorstai" value="2015/5/14" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2000/6/11" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2001/6/3" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2002/5/19" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2003/6/8" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2004/5/30" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2005/5/15" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2006/6/4" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2007/5/27" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2008/5/11" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2009/5/31" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2010/5/23" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2011/6/12" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2012/5/27" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2013/5/19" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2014/6/8" type="religious" />
|
||||
<date name="Helluntaipäivä" value="2015/5/24" type="religious" />
|
||||
<date name="Uudenvuodenpäivä" value="*/1/1" type="national" />
|
||||
<date name="Vainojen uhrien muistopäivä" value="*/1/27" type="national" />
|
||||
<date name="J. L. Runebergin päivä" value="*/2/5" type="national" />
|
||||
<date name="Ystävänpäivä" value="*/2/14" type="national" />
|
||||
<date name="Kalevalan päivä" value="*/2/28" type="national" />
|
||||
<date name="Minna Canthin päivä" value="*/3/19" type="national" />
|
||||
<date name="Mikael Agricolan päivä" value="*/4/9" type="national" />
|
||||
<date name="Veteraanipäivä" value="*/4/27" type="national" />
|
||||
<date name="Vainojen uhrien muistopäivä" value="*/1/27" type="national" if="(y>=2002)" />
|
||||
<date name="J.L. Runebergin päivä" value="*/2/5" type="national" if="(y>=1854)" />
|
||||
<date name="Saamelaisten kansallis päivä" value="*/2/6" type="religious" if="(y>=2004)" />
|
||||
<date name="Ystävänpäivä" value="*/2/14" type="national" if="(y>=1987)" />
|
||||
<date name="Kalevalan päivä" value="*/2/28" type="national" if="(y>=1978)" />
|
||||
<date name="Naistenpäivä" value="*/3/8" type="national" if="(y>=1975)" />
|
||||
<date name="Minna Canthin päivä" value="*/3/19" type="national" if="(y>=2003)" />
|
||||
<date name="Kesäaika alkaa" value="*/-1/sun/mar" type="informational" if="(y>=1981)" />
|
||||
<date name="Romanien kansallispäivä" value="*/4/8" type="national" if="(y>=2014)" />
|
||||
<date name="Mikael Agricolan päivä" value="*/4/9" type="national" if="(y>=1960)" />
|
||||
<date name="Veteraanipäivä" value="*/4/27" type="national" if="(y>=1987)" />
|
||||
<date name="Vappuaatto" value="*/4/30" type="national" />
|
||||
<date name="Vappu" value="*/5/1" type="national" />
|
||||
<date name="Eurooppa-päivä" value="*/9/5" type="national" />
|
||||
<date name="J. V. Snelmannin päivä" value="*/5/12" type="national" />
|
||||
<date name="Puolustusvoimain lippujuhlan päivä" value="*/6/4" type="national" />
|
||||
<date name="Eino Leinon päivä" value="*/7/6" type="national" />
|
||||
<date name="Aleksis Kiven päivä" value="*/10/10" type="national" />
|
||||
<date name="YK:n päivä" value="*/10/24" type="national" />
|
||||
<date name="Ruotsalaisuuden päivä" value="*/11/6" type="national" />
|
||||
<date name="Lasten oikeuksien päivä" value="*/11/20" type="national" />
|
||||
<date name="Itsenäisyyspäivä" value="*/12/6" type="national" />
|
||||
<date name="Äitienpäivä" value="*/2/sun/may" type="national" />
|
||||
<date name="Juhannuspäivä" value="*/3/sat/jun" type="national" />
|
||||
<date name="Isänpäivä" value="*/2/sun/nov" type="national" />
|
||||
<date name="Kaatuneiden muistopäivä" value="*/3/sun/may" type="national" />
|
||||
<date name="Eurooppa-päivä" value="*/5/9" type="national" if="(y>=1950)" />
|
||||
<date name="J.V. Snelmannin päivä" value="*/5/12" type="national" if="(y>=1952)" />
|
||||
<date name="Äitienpäivä" value="*/2/sun/may" type="national" if="(y>=1927)" />
|
||||
<date name="Kaatuneiden muistopäivä" value="*/3/sun/may" type="national" if="(y>=1947)" />
|
||||
<date name="Puolustusvoimien lippujuhla" value="*/6/4" type="national" if="(y>=1951)" />
|
||||
<date name="Eino Leinon päivä" value="*/7/6" type="national" if="(y>=1998)" />
|
||||
<date name="Unikeonpäivä" value="*/6/27" type="national" if="not(y>=1720)" />
|
||||
<date name="Unikeonpäivä" value="*/7/27" type="national" if="(y>=1720)" />
|
||||
<date name="Yrittäjänpäivä" value="*/9/5" type="national" if="(y>=2010)" />
|
||||
<date name="Mikkelinpäivä" value="*/9/29" type="national" if="not(y>=1774)" />
|
||||
<date name="Mikkelinpäivä" value="*/9/29" offset="sun" type="national" if="(y>=1774)" />
|
||||
<date name="Aleksis Kiven päivä" value="*/10/10" type="national" if="(y>=1950)" />
|
||||
<date name="YK:n päivä" value="*/10/24" type="national" if="(y>=1968)" />
|
||||
<date name="Halloween" value="*/10/31" type="secular" if="(y>=1950)" />
|
||||
<date name="Talviaika alkaa" value="*/-1/sun/oct" type="informational" if="(y>=1981)" />
|
||||
<date name="Ruotsalaisuuden päivä" value="*/11/6" type="national" if="(y>=1979)" />
|
||||
<date name="Isänpäivä" value="*/2/sun/nov" type="national" if="(y>=1987)" />
|
||||
<date name="Lapsen oikeukeuksien päivä" value="*/11/20" type="national" if="(y>=2002)" />
|
||||
<date name="Itsenäisyyspäivä" value="*/12/6" type="national" if="(y>=1917)" />
|
||||
<date name="Jean Sibeliuksen päivä" value="*/12/8" type="national" if="(y>=2011)" />
|
||||
<date name="Uudenvuodenaatto" value="*/12/31" type="national" if="(y>=1846)" />
|
||||
</country>
|
||||
<country _name="France">
|
||||
<date name="Jour de l'an" value="*/1/1" type="national" />
|
||||
@@ -371,20 +356,31 @@
|
||||
<date name="Druhý sviatok vianočný" value="*/12/26" type="national" />
|
||||
</country>
|
||||
<country _name="Sweden">
|
||||
<date name="Nyårsdagen" value="*/1/1" type="religious" />
|
||||
<date name="Trettondagen" value="*/1/6" type="religious" />
|
||||
<date name="Långfredagen" type="religious" value="> easter(y)" offset="-2" />
|
||||
<date name="Påskdagen" type="religious" value="> easter(y)" />
|
||||
<date name="Annandag Påsk" type="religious" value="> easter(y)" offset="2" />
|
||||
<date name="Första Maj" value="*/5/1" type="secular" />
|
||||
<date name="Kristi Himmelfärdsdag" type="religious" value="> easter(y)" offset="+39" />
|
||||
<date name="Annandag Pingst" value="easter(y)" offset="50" type="secular" if="not(y>=2006)" />
|
||||
<date name="Nationaldagen" value="*/6/6" type="secular" if="(y>=2006)" />
|
||||
<date name="Midsommardagen" value="*/jun/20" offset="sat" type="religious" if="(y>=1953)" />
|
||||
<date name="Midsommardagen" value="*/jun/24" type="religious" if="not(y>=1953)" />
|
||||
<date name="Allahelgonadagen" value="*/1/sat/nov" type="religious" />
|
||||
<date name="Nyårsafton" value="*/12/31" type="national" />
|
||||
<date name="Trettondedag jul" value="*/1/6" type="religious" />
|
||||
<date name="Alla helgons dag" value="*/oct/31" offset="sat" type="religious" if="(y>=1953)" />
|
||||
<date name="Lucia" value="*/12/13" type="religious" />
|
||||
<date name="Julafton" value="*/12/24" type="religious" />
|
||||
<date name="Juldagen" value="*/12/25" type="religious" />
|
||||
<date name="Annandag Jul" value="*/12/26" type="religious" />
|
||||
<date name="Skärtorsdagen" type="religious" value="> easter(y)" offset="-3" />
|
||||
<date name="Långfredagen" type="religious" value="> easter(y)" offset="-2" />
|
||||
<date name="Påsk" type="religious" value="> easter(y)" />
|
||||
<date name="Annandag Påsk" type="religious" value="> easter(y)" offset="1" />
|
||||
<date name="Kristi Himmelsfärdsdag" type="religious" value="> easter(y)" offset="39" />
|
||||
<date name="Pingstdagen" value="easter(y)" offset="49" type="secular" />
|
||||
<date name="Annandag pingst" value="easter(y)" offset="50" type="secular" />
|
||||
<date name="Nyårsdagen" value="*/1/1" type="national" />
|
||||
<date name="Alla hjärtans dag" value="*/2/14" type="national" />
|
||||
<date name="1. april" value="*/4/1" type="national" />
|
||||
<date name="Första Maj" value="*/5/1" type="national" />
|
||||
<date name="Nationaldagen" value="*/6/6" type="national" />
|
||||
<date name="Mors dag" value="*/may/25" offset="sun" type="religious" />
|
||||
<date name="Midsommarafton" value="*/jun/19" offset="fri" type="religious" if="(y>=1953)" />
|
||||
<date name="Midsommarafton" value="*/jun/23" type="religious" if="not(y>=1953)" />
|
||||
<date name="Midsommardagen" value="*/jun/20" offset="sat" type="religious" if="(y>=1953)" />
|
||||
<date name="Midsommardagen" value="*/jun/24" type="religious" if="not(y>=1953)" />
|
||||
<date name="Fars dag" value="*/2/sun/nov" type="national" />
|
||||
</country>
|
||||
<country _name="United States of America">
|
||||
<date name="New Year's Eve" value="*/12/31" type="national" />
|
||||
@@ -404,7 +400,7 @@
|
||||
<date name="Ash Wednesday" value="> easter(y)" type="religious" offset="-46" />
|
||||
<date name="Mardi Gras" value="> easter(y)" type="religious" offset="-47" />
|
||||
<date name="Daylight Saving begins" value="> dst(y)[0]" type="informational" />
|
||||
<date name="Income Taxes due" value="*/4/15" type="national" if="date.weekday().__cmp__(4)-1" />
|
||||
<date name="Income Taxes due" value="*/4/15" type="national" if="cmp(date.weekday(),4)-1"/>
|
||||
<date name="Income Taxes due" value="*/4/16" type="national" if="date.weekday() == 0" />
|
||||
<date name="Income Taxes due" value="*/4/17" type="national" if="date.weekday() == 0" />
|
||||
<date name="Daylight Saving ends" value="> dst(y)[1]" type="informational" />
|
||||
@@ -481,7 +477,7 @@
|
||||
<date value="*/dec/26" type="national" name="Boxing Day"/>
|
||||
<date value="*/dec/25" type="national" offset="+2" name="Christmas Day Holiday" if="dow(y, m, d) > 5"/>
|
||||
<date value="*/dec/26" type="national" offset="+2" name="Boxing Day Holiday" if="dow(y, m, d) > 5"/>
|
||||
</country>
|
||||
</country>
|
||||
<country _name="Ukraine">
|
||||
<date value="*/1/1" type="national" name="Новий Рік"/>
|
||||
<date value="*/1/6" type="religious" name="Святий Вечір"/>
|
||||
@@ -1,859 +0,0 @@
|
||||
/*!
|
||||
* jQuery FlexBox $Version: 0.9.6 $
|
||||
*
|
||||
* Copyright (c) 2008-2010 Noah Heldman and Fairway Technologies (http://www.fairwaytech.com/flexbox)
|
||||
* Licensed under Ms-PL (http://www.codeplex.com/flexbox/license)
|
||||
*
|
||||
* $Date: 2010-11-24 01:02:00 PM $
|
||||
* $Rev: 0.9.6.1 $
|
||||
*/
|
||||
(function($) {
|
||||
$.flexbox = function(div, o) {
|
||||
|
||||
// TODO: in straight type-ahead mode (showResults: false), if noMatchingResults, dropdown appears after new match
|
||||
// TODO: consider having options.mode (select, which replaces html select; combobox; suggest; others?)
|
||||
// TODO: on resize (at least when wrapping within a table), the arrow is pushed down to the next line
|
||||
// TODO: check for boundary/value problems (such as minChars of -1) and alert them
|
||||
// TODO: add options for advanced paging template
|
||||
// TODO: general cleanup and refactoring, commenting
|
||||
// TODO: detailed Exception handling, logging
|
||||
// TODO: FF2, up arrow from bottom has erratic scroll behavior (if multiple flexboxes on page)
|
||||
// TODO: FF2 (and maybe IE7): if maxVisibleRows == number of returned rows, height is a bit off (maybe set to auto?)
|
||||
// TODO: escape key only works from input box (this might be okay)
|
||||
// TODO: make .getJSON parameters (object and callback function) configurable (e.g. when calling yahoo image search)
|
||||
// TODO: escape key reverts to previous value (FF only?) (is this a good thing?)
|
||||
|
||||
// TEST: highlightMatches uses the case of whatever you typed in to replace the match string, which can look funny
|
||||
// TEST: handle pageDown and pageUp keys when scrolling through results
|
||||
// TEST: allow client-side paging (return all data initially, set paging:{pageSize:#}, and ensure maxCacheBytes is > 0)
|
||||
// TEST: accept json object as first parameter to flexbox instead of page source, and have it work like a combobox
|
||||
// TEST: implement no results template
|
||||
// TEST: implement noResultsText and class
|
||||
// TEST: watermark color should be configurable (and so should default input color)
|
||||
// TEST: exception handling and alerts for common mistakes
|
||||
// TEST: first example should use defaults ONLY
|
||||
// TEST: add property initialValue, so you can set it when the flexbox loads
|
||||
// TEST: handle hidden input value for form submissions
|
||||
// TEST: how can we allow programmatically setting the field value (and therefore hidden value). add jquery function?
|
||||
// TEST: use pageSize parameter as threshold to switch from no paging to paging based on results
|
||||
// TEST: if you type in an input value that matches the html, it might display html code (try typing "class" in the input box)
|
||||
// TEST: don't require all paging subprops (let default override)
|
||||
// TEST: when tabbing from one ffb to another, the previous ffb results flash...
|
||||
// TEST: IE7: when two non-paging ffbs right after each other, with only a clear-both div between them, the bottom ffb jumps down when selecting a value, then jumps back up on mouseover
|
||||
// TEST: FF2, make sure we scroll to top before showing results (maxVisibleRows only)
|
||||
// TEST: if maxVisibleRows is hiding the value the user types in to the input, scroll to that value (is this even possible?)
|
||||
// TEST: make sure caching supports multiple ffbs uniquely
|
||||
// TEST: when entering a number in the paging input box, the results are displayed twice
|
||||
|
||||
var timeout = false, // hold timeout ID for suggestion results to appear
|
||||
cache = [], // simple array with cacheData key values, MRU is the first element
|
||||
cacheData = [], // associative array holding actual cached data
|
||||
cacheSize = 0, // size of cache in bytes (cache up to o.maxCacheBytes bytes)
|
||||
delim = '\u25CA', // use an obscure unicode character (lozenge) as the cache key delimiter
|
||||
scrolling = false,
|
||||
pageSize = o.paging && o.paging.pageSize ? o.paging.pageSize : 0,
|
||||
retrievingRemoteData = false,
|
||||
$div = $(div).css('position', 'relative').css('z-index', 0);
|
||||
|
||||
// The hiddenField MUST be appended to the div before the input, or IE7 does not shift the dropdown below the input field (it overlaps)
|
||||
var $hdn = $('<input type="hidden"/>')
|
||||
.attr('id', $div.attr('id') + '_hidden')
|
||||
.attr('name', $div.attr('id'))
|
||||
.val(o.initialId)
|
||||
.appendTo($div);
|
||||
var $input = $('<input/>')
|
||||
.attr('id', $div.attr('id') + '_input')
|
||||
.attr('autocomplete', 'off')
|
||||
.addClass(o.inputClass)
|
||||
.css('width', o.width + 'px')
|
||||
.appendTo($div)
|
||||
.click(function(e) {
|
||||
if (o.watermark !== '' && this.value === o.watermark)
|
||||
this.value = '';
|
||||
else
|
||||
this.select();
|
||||
})
|
||||
.focus(function(e) {
|
||||
$(this).removeClass('watermark');
|
||||
})
|
||||
.blur(function(e) {
|
||||
if (this.value === '') $hdn.val('');
|
||||
setTimeout(function() { if (!$input.data('active')) hideResults(); }, 200);
|
||||
})
|
||||
.keydown(processKeyDown);
|
||||
|
||||
if (o.initialValue !== '')
|
||||
$input.val(o.initialValue).removeClass('watermark');
|
||||
else
|
||||
$input.val(o.watermark).addClass('watermark');
|
||||
|
||||
var arrowWidth = 0;
|
||||
if (o.showArrow && o.showResults) {
|
||||
var arrowClick = function() {
|
||||
if ($ctr.is(':visible')) {
|
||||
hideResults();
|
||||
}
|
||||
else {
|
||||
$input.focus();
|
||||
if (o.watermark !== '' && $input.val() === o.watermark)
|
||||
$input.val('');
|
||||
else
|
||||
$input.select();
|
||||
if (timeout)
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(function() { flexbox(1, true, o.arrowQuery); }, o.queryDelay);
|
||||
}
|
||||
};
|
||||
var $arrow = $('<span></span>')
|
||||
.attr('id', $div.attr('id') + '_arrow')
|
||||
.addClass(o.arrowClass)
|
||||
.addClass('out')
|
||||
.hover(function() {
|
||||
$(this).removeClass('out').addClass('over');
|
||||
}, function() {
|
||||
$(this).removeClass('over').addClass('out');
|
||||
})
|
||||
.mousedown(function() {
|
||||
$(this).removeClass('over').addClass('active');
|
||||
})
|
||||
.mouseup(function() {
|
||||
$(this).removeClass('active').addClass('over');
|
||||
})
|
||||
.click(arrowClick)
|
||||
.appendTo($div);
|
||||
arrowWidth = $arrow.width();
|
||||
$input.css('width', (o.width - arrowWidth) + 'px');
|
||||
}
|
||||
if (!o.allowInput) { o.selectFirstMatch = false; $input.click(arrowClick); } // simulate <select> behavior
|
||||
|
||||
// Handle presence of CSS Universal Selector (*) that defines padding by verifying what the browser thinks the outerHeight is.
|
||||
// In FF, the outerHeight() will not pick up the correct input field padding
|
||||
var inputPad = $input.outerHeight() - $input.height() - 2;
|
||||
var inputWidth = $input.outerWidth() - 2;
|
||||
var top = $input.outerHeight();
|
||||
|
||||
if (inputPad === 0) {
|
||||
inputWidth += 4;
|
||||
top += 4;
|
||||
}
|
||||
else if (inputPad !== 4) {
|
||||
inputWidth += inputPad;
|
||||
top += inputPad;
|
||||
}
|
||||
|
||||
var $ctr = $('<div></div>')
|
||||
.attr('id', $div.attr('id') + '_ctr')
|
||||
.css('width', inputWidth + arrowWidth)
|
||||
.css('top', top)
|
||||
.css('left', 0)
|
||||
.addClass(o.containerClass)
|
||||
.appendTo($div)
|
||||
.mousedown(function(e) {
|
||||
$input.data('active', true);
|
||||
})
|
||||
.hide();
|
||||
|
||||
var $content = $('<div></div>')
|
||||
.addClass(o.contentClass)
|
||||
.appendTo($ctr)
|
||||
.scroll(function() {
|
||||
scrolling = true;
|
||||
});
|
||||
|
||||
var $paging = $('<div></div>').appendTo($ctr);
|
||||
$div.css('height', $input.outerHeight());
|
||||
|
||||
function processKeyDown(e) {
|
||||
// handle modifiers
|
||||
var mod = 0;
|
||||
if (typeof (e.ctrlKey) !== 'undefined') {
|
||||
if (e.ctrlKey) mod |= 1;
|
||||
if (e.shiftKey) mod |= 2;
|
||||
} else {
|
||||
if (e.modifiers & Event.CONTROL_MASK) mod |= 1;
|
||||
if (e.modifiers & Event.SHIFT_MASK) mod |= 2;
|
||||
}
|
||||
// if the keyCode is one of the modifiers, bail out (we'll catch it on the next keypress)
|
||||
if (/16$|17$/.test(e.keyCode)) return; // 16 = Shift, 17 = Ctrl
|
||||
|
||||
var tab = e.keyCode === 9, esc = e.keyCode === 27;
|
||||
var tabWithModifiers = e.keyCode === 9 && mod > 0;
|
||||
var backspace = e.keyCode === 8; // we will end up extending the delay time for backspaces...
|
||||
|
||||
// tab is a special case, since we want to bubble events...
|
||||
if (tab) if (getCurr()) selectCurr();
|
||||
|
||||
// handling up/down/escape/right arrow/left arrow requires results to be visible
|
||||
// handling enter requires that AND a result to be selected
|
||||
if ((/27$|38$|33$|34$/.test(e.keyCode) && $ctr.is(':visible')) ||
|
||||
(/13$|40$/.test(e.keyCode)) || !o.allowInput) {
|
||||
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
if (e.stopPropagation) e.stopPropagation();
|
||||
|
||||
e.cancelBubble = true;
|
||||
e.returnValue = false;
|
||||
|
||||
switch (e.keyCode) {
|
||||
case 38: // up arrow
|
||||
prevResult();
|
||||
break;
|
||||
case 40: // down arrow
|
||||
if ($ctr.is(':visible')) nextResult();
|
||||
else flexboxDelay(true);
|
||||
break;
|
||||
case 13: // enter
|
||||
if (getCurr()) selectCurr();
|
||||
else flexboxDelay(true);
|
||||
break;
|
||||
case 27: // escape
|
||||
hideResults();
|
||||
break;
|
||||
case 34: // page down
|
||||
if (!retrievingRemoteData) {
|
||||
if (o.paging) $('#' + $div.attr('id') + 'n').click();
|
||||
else nextPage();
|
||||
}
|
||||
break;
|
||||
case 33: // page up
|
||||
if (!retrievingRemoteData) {
|
||||
if (o.paging) $('#' + $div.attr('id') + 'p').click();
|
||||
else prevPage();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (!o.allowInput) { return; }
|
||||
}
|
||||
} else if (!esc && !tab && !tabWithModifiers) { // skip esc and tab key and any modifiers
|
||||
flexboxDelay(false, backspace);
|
||||
}
|
||||
}
|
||||
|
||||
function flexboxDelay(simulateArrowClick, increaseDelay) {
|
||||
if (timeout) clearTimeout(timeout);
|
||||
var delay = increaseDelay ? o.queryDelay * 5 : o.queryDelay;
|
||||
timeout = setTimeout(function() { flexbox(1, simulateArrowClick, ''); }, delay);
|
||||
}
|
||||
|
||||
function flexbox(p, arrowOrPagingClicked, prevQuery) {
|
||||
if (arrowOrPagingClicked) prevQuery = '';
|
||||
var q = prevQuery && prevQuery.length > 0 ? prevQuery : $.trim($input.val());
|
||||
|
||||
if (q.length >= o.minChars || arrowOrPagingClicked) {
|
||||
// If we are getting data from the server, set the height of the content box so it doesn't shrink when navigating between pages, due to the $content.html('') below...
|
||||
if ($content.outerHeight() > 0)
|
||||
$content.css('height', $content.outerHeight());
|
||||
$content.html('').attr('scrollTop', 0);
|
||||
|
||||
var cached = checkCache(q, p);
|
||||
if (cached) {
|
||||
$content.css('height', 'auto');
|
||||
displayItems(cached.data, q);
|
||||
showPaging(p, cached.t);
|
||||
}
|
||||
else {
|
||||
var params = { q: q, p: p, s: pageSize, contentType: 'application/json; charset=utf-8' };
|
||||
var callback = function(data, overrideQuery) {
|
||||
if (overrideQuery === true) q = overrideQuery; // must compare to boolean because by default, the string value "success" is passed when the jQuery $.getJSON method's callback is called
|
||||
var totalResults = parseInt(data[o.totalProperty]);
|
||||
|
||||
// Handle client-side paging, if any paging configuration options were specified
|
||||
if (isNaN(totalResults) && o.paging) {
|
||||
if (o.maxCacheBytes <= 0) alert('The "maxCacheBytes" configuration option must be greater\nthan zero when implementing client-side paging.');
|
||||
totalResults = data[o.resultsProperty].length;
|
||||
|
||||
var pages = totalResults / pageSize;
|
||||
if (totalResults % pageSize > 0) pages = parseInt(++pages);
|
||||
|
||||
for (var i = 1; i <= pages; i++) {
|
||||
var pageData = {};
|
||||
pageData[o.totalProperty] = totalResults;
|
||||
pageData[o.resultsProperty] = data[o.resultsProperty].splice(0, pageSize);
|
||||
if (i === 1) totalSize = displayItems(pageData, q);
|
||||
updateCache(q, i, pageSize, totalResults, pageData, totalSize);
|
||||
}
|
||||
}
|
||||
else {
|
||||
var totalSize = displayItems(data, q);
|
||||
updateCache(q, p, pageSize, totalResults, data, totalSize);
|
||||
}
|
||||
showPaging(p, totalResults);
|
||||
$content.css('height', 'auto');
|
||||
retrievingRemoteData = false;
|
||||
};
|
||||
if (typeof (o.source) === 'object') {
|
||||
if (o.allowInput) callback(filter(o.source, params));
|
||||
else callback(o.source);
|
||||
}
|
||||
else {
|
||||
retrievingRemoteData = true;
|
||||
if (o.method.toUpperCase() == 'POST') $.post(o.source, params, callback, 'json');
|
||||
else $.getJSON(o.source, params, callback);
|
||||
}
|
||||
}
|
||||
} else
|
||||
hideResults();
|
||||
}
|
||||
|
||||
function filter(data, params) {
|
||||
var filtered = {};
|
||||
filtered[o.resultsProperty] = [];
|
||||
filtered[o.totalProperty] = 0;
|
||||
var index = 0;
|
||||
|
||||
for (var i=0; i < data[o.resultsProperty].length; i++) {
|
||||
var indexOfMatch = data[o.resultsProperty][i][o.displayValue].toLowerCase().indexOf(params.q.toLowerCase());
|
||||
if ((o.matchAny && indexOfMatch !== -1) || (!o.matchAny && indexOfMatch === 0)) {
|
||||
filtered[o.resultsProperty][index++] = data[o.resultsProperty][i];
|
||||
filtered[o.totalProperty] += 1;
|
||||
}
|
||||
}
|
||||
if (o.paging) {
|
||||
var start = (params.p - 1) * params.s;
|
||||
var howMany = (start + params.s) > filtered[o.totalProperty] ? filtered[o.totalProperty] - start : params.s;
|
||||
filtered[o.resultsProperty] = filtered[o.resultsProperty].splice(start, howMany);
|
||||
}
|
||||
return filtered;
|
||||
}
|
||||
|
||||
function showPaging(p, totalResults) {
|
||||
$paging.html('').removeClass(o.paging.cssClass); // clear out for threshold scenarios
|
||||
if (o.showResults && o.paging && totalResults > pageSize) {
|
||||
var pages = totalResults / pageSize;
|
||||
if (totalResults % pageSize > 0) pages = parseInt(++pages);
|
||||
outputPagingLinks(pages, p, totalResults);
|
||||
}
|
||||
}
|
||||
|
||||
function handleKeyPress(e, page, totalPages) {
|
||||
if (/^13$|^39$|^37$/.test(e.keyCode)) {
|
||||
if (e.preventDefault)
|
||||
e.preventDefault();
|
||||
if (e.stopPropagation)
|
||||
e.stopPropagation();
|
||||
|
||||
e.cancelBubble = true;
|
||||
e.returnValue = false;
|
||||
|
||||
switch (e.keyCode) {
|
||||
case 13: // Enter
|
||||
if (/^\d+$/.test(page) && page > 0 && page <= totalPages)
|
||||
flexbox(page, true);
|
||||
else
|
||||
alert('Please enter a page number between 1 and ' + totalPages);
|
||||
// TODO: make this alert a function call, and a customizable parameter
|
||||
break;
|
||||
case 39: // right arrow
|
||||
$('#' + $div.attr('id') + 'n').click();
|
||||
break;
|
||||
case 37: // left arrow
|
||||
$('#' + $div.attr('id') + 'p').click();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function handlePagingClick(e) {
|
||||
flexbox(parseInt($(this).attr('page')), true, $input.attr('pq')); // pq == previous query
|
||||
return false;
|
||||
}
|
||||
|
||||
function outputPagingLinks(totalPages, currentPage, totalResults) {
|
||||
// TODO: make these configurable images
|
||||
var first = '<<',
|
||||
prev = '<',
|
||||
next = '>',
|
||||
last = '>>',
|
||||
more = '...';
|
||||
|
||||
$paging.addClass(o.paging.cssClass);
|
||||
|
||||
// set up our base page link element
|
||||
var $link = $('<a/>')
|
||||
.attr('href', '#')
|
||||
.addClass('page')
|
||||
.click(handlePagingClick),
|
||||
$span = $('<span></span>').addClass('page'),
|
||||
divId = $div.attr('id');
|
||||
|
||||
// show first page
|
||||
if (currentPage > 1) {
|
||||
$link.clone(true).attr('id', divId + 'f').attr('page', 1).html(first).appendTo($paging);
|
||||
$link.clone(true).attr('id', divId + 'p').attr('page', currentPage - 1).html(prev).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$span.clone(true).html(first).appendTo($paging);
|
||||
$span.clone(true).html(prev).appendTo($paging);
|
||||
}
|
||||
|
||||
if (o.paging.style === 'links') {
|
||||
var maxPageLinks = o.paging.maxPageLinks;
|
||||
// show page numbers
|
||||
if (totalPages <= maxPageLinks) {
|
||||
for (var i = 1; i <= totalPages; i++) {
|
||||
if (i === currentPage) {
|
||||
$span.clone(true).html(currentPage).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$link.clone(true).attr('page', i).html(i).appendTo($paging);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((currentPage + parseInt(maxPageLinks / 2)) > totalPages) {
|
||||
startPage = totalPages - maxPageLinks + 1;
|
||||
}
|
||||
else {
|
||||
startPage = currentPage - parseInt(maxPageLinks / 2);
|
||||
}
|
||||
|
||||
if (startPage > 1) {
|
||||
$link.clone(true).attr('page', startPage - 1).html(more).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
startPage = 1;
|
||||
}
|
||||
|
||||
for (var i = startPage; i < startPage + maxPageLinks; i++) {
|
||||
if (i === currentPage) {
|
||||
$span.clone(true).html(i).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$link.clone(true).attr('page', i).html(i).appendTo($paging);
|
||||
}
|
||||
}
|
||||
|
||||
if (totalPages > (startPage + maxPageLinks)) {
|
||||
$link.clone(true).attr('page', i).html(more).appendTo($paging);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (o.paging.style === 'input') {
|
||||
var $pagingBox = $('<input/>')
|
||||
.addClass('box')
|
||||
.click(function(e) {
|
||||
this.select();
|
||||
})
|
||||
.keypress(function(e) {
|
||||
return handleKeyPress(e, this.value, totalPages);
|
||||
})
|
||||
.val(currentPage)
|
||||
.appendTo($paging);
|
||||
}
|
||||
|
||||
if (currentPage < totalPages) {
|
||||
$link.clone(true).attr('id', divId + 'n').attr('page', +currentPage + 1).html(next).appendTo($paging);
|
||||
$link.clone(true).attr('id', divId + 'l').attr('page', totalPages).html(last).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$span.clone(true).html(next).appendTo($paging);
|
||||
$span.clone(true).html(last).appendTo($paging);
|
||||
}
|
||||
var startingResult = (currentPage - 1) * pageSize + 1;
|
||||
var endingResult = (startingResult > (totalResults - pageSize)) ? totalResults : startingResult + pageSize - 1;
|
||||
|
||||
if (o.paging.showSummary) {
|
||||
var summaryData = {
|
||||
"start": startingResult,
|
||||
"end": endingResult,
|
||||
"total": totalResults,
|
||||
"page": currentPage,
|
||||
"pages": totalPages
|
||||
};
|
||||
var html = o.paging.summaryTemplate.applyTemplate(summaryData);
|
||||
$('<br/>').appendTo($paging);
|
||||
$('<span></span>')
|
||||
.addClass(o.paging.summaryClass)
|
||||
.html(html)
|
||||
.appendTo($paging);
|
||||
}
|
||||
}
|
||||
|
||||
function checkCache(q, p) {
|
||||
var key = q + delim + p; // use null character as delimiter
|
||||
if (cacheData[key]) {
|
||||
for (var i = 0; i < cache.length; i++) { // TODO: is it possible to not loop here?
|
||||
if (cache[i] === key) {
|
||||
// pull out the matching element (splice), and add it to the beginning of the array (unshift)
|
||||
cache.unshift(cache.splice(i, 1)[0]);
|
||||
return cacheData[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateCache(q, p, s, t, data, size) {
|
||||
if (o.maxCacheBytes > 0) {
|
||||
while (cache.length && (cacheSize + size > o.maxCacheBytes)) {
|
||||
var cached = cache.pop();
|
||||
cacheSize -= cached.size;
|
||||
}
|
||||
var key = q + delim + p; // use null character as delimiter
|
||||
cacheData[key] = {
|
||||
q: q,
|
||||
p: p,
|
||||
s: s,
|
||||
t: t,
|
||||
size: size,
|
||||
data: data
|
||||
}; // add the data to the cache at the hash key location
|
||||
cache.push(key); // add the key to the MRU list
|
||||
cacheSize += size;
|
||||
}
|
||||
}
|
||||
|
||||
function displayItems(d, q) {
|
||||
var totalSize = 0, itemCount = 0;
|
||||
|
||||
if (!d)
|
||||
return;
|
||||
|
||||
$hdn.val($input.val());
|
||||
if (parseInt(d[o.totalProperty]) === 0 && o.noResultsText && o.noResultsText.length > 0) {
|
||||
$content.addClass(o.noResultsClass).html(o.noResultsText);
|
||||
$ctr.show();
|
||||
return;
|
||||
} else $content.removeClass(o.noResultsClass);
|
||||
|
||||
for (var i = 0; i < d[o.resultsProperty].length; i++) {
|
||||
var data = d[o.resultsProperty][i],
|
||||
result = o.resultTemplate.applyTemplate(data),
|
||||
exactMatch = q === result,
|
||||
selectedMatch = false,
|
||||
hasHtmlTags = false,
|
||||
match = data[o.displayValue];
|
||||
|
||||
if (!exactMatch && o.highlightMatches && q !== '') {
|
||||
var pattern = q,
|
||||
highlightStart = match.toLowerCase().indexOf(q.toLowerCase()),
|
||||
replaceString = '<span class="' + o.matchClass + '">' + match.substr(highlightStart,q.length) + '</span>';
|
||||
if (result.match('<(.|\n)*?>')) { // see if the content contains html tags
|
||||
hasHtmlTags = true;
|
||||
pattern = '(>)([^<]*?)(' + q + ')((.|\n)*?)(<)'; // TODO: look for a better way
|
||||
replaceString = '$1$2<span class="' + o.matchClass + '">$3</span>$4$6';
|
||||
}
|
||||
result = result.replace(new RegExp(pattern.replace("[", "\\["), o.highlightMatchesRegExModifier), replaceString);
|
||||
}
|
||||
|
||||
// write the value of the first match to the input box, and select the remainder,
|
||||
// but only if autoCompleteFirstMatch is set, and there are no html tags in the response
|
||||
if (o.autoCompleteFirstMatch && !hasHtmlTags && i === 0) {
|
||||
if (q.length > 0 && match.toLowerCase().indexOf(q.toLowerCase()) === 0) {
|
||||
$input.attr('pq', q); // pq == previous query
|
||||
$hdn.val(data[o.hiddenValue]);
|
||||
$input.val(data[o.displayValue]);
|
||||
selectedMatch = selectRange(q.length, $input.val().length);
|
||||
}
|
||||
}
|
||||
|
||||
if (!o.showResults) return;
|
||||
|
||||
$row = $('<div></div>')
|
||||
.attr('id', data[o.hiddenValue])
|
||||
.attr('val', data[o.displayValue])
|
||||
.addClass('row')
|
||||
.html(result)
|
||||
.appendTo($content);
|
||||
|
||||
if (exactMatch || (++itemCount == 1 && o.selectFirstMatch) || selectedMatch) {
|
||||
$row.addClass(o.selectClass);
|
||||
}
|
||||
totalSize += result.length;
|
||||
}
|
||||
|
||||
if (totalSize === 0) {
|
||||
hideResults();
|
||||
return;
|
||||
}
|
||||
|
||||
$ctr.parent().css('z-index', 11000);
|
||||
$ctr.show();
|
||||
|
||||
$content
|
||||
.children('div')
|
||||
.mouseover(function() {
|
||||
$content.children('div').removeClass(o.selectClass);
|
||||
$(this).addClass(o.selectClass);
|
||||
})
|
||||
.mouseup(function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
selectCurr();
|
||||
});
|
||||
|
||||
if (o.maxVisibleRows > 0) {
|
||||
var maxHeight = $row.outerHeight() * o.maxVisibleRows;
|
||||
$content.css('max-height', maxHeight);
|
||||
}
|
||||
|
||||
return totalSize;
|
||||
}
|
||||
|
||||
function selectRange(s, l) {
|
||||
var tb = $input[0];
|
||||
if (tb.createTextRange) {
|
||||
var r = tb.createTextRange();
|
||||
r.moveStart('character', s);
|
||||
r.moveEnd('character', l - tb.value.length);
|
||||
r.select();
|
||||
} else if (tb.setSelectionRange) {
|
||||
tb.setSelectionRange(s, l);
|
||||
}
|
||||
tb.focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
String.prototype.applyTemplate = function(d) {
|
||||
try {
|
||||
if (d === '') return this;
|
||||
return this.replace(/{([^{}]*)}/g,
|
||||
function(a, b) {
|
||||
var r;
|
||||
if (b.indexOf('.') !== -1) { // handle dot notation in {}, such as {Thumbnail.Url}
|
||||
var ary = b.split('.');
|
||||
var obj = d;
|
||||
for (var i = 0; i < ary.length; i++)
|
||||
obj = obj[ary[i]];
|
||||
r = obj;
|
||||
}
|
||||
else
|
||||
r = d[b];
|
||||
if (typeof r === 'string' || typeof r === 'number') return r; else throw (a);
|
||||
}
|
||||
);
|
||||
} catch (ex) {
|
||||
alert('Invalid JSON property ' + ex + ' found when trying to apply resultTemplate or paging.summaryTemplate.\nPlease check your spelling and try again.');
|
||||
}
|
||||
};
|
||||
|
||||
function hideResults() {
|
||||
$input.data('active', false); // for input blur
|
||||
$div.css('z-index', 0);
|
||||
$ctr.hide();
|
||||
}
|
||||
|
||||
function getCurr() {
|
||||
if (!$ctr.is(':visible'))
|
||||
return false;
|
||||
|
||||
var $curr = $content.children('div.' + o.selectClass);
|
||||
|
||||
if (!$curr.length)
|
||||
$curr = false;
|
||||
|
||||
return $curr;
|
||||
}
|
||||
|
||||
function selectCurr() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr) {
|
||||
$hdn.val($curr.attr('id'));
|
||||
$input.val($curr.attr('val')).focus();
|
||||
hideResults();
|
||||
|
||||
if (o.onSelect) {
|
||||
o.onSelect.apply($input[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function supportsGetBoxObjectFor() {
|
||||
try {
|
||||
document.getBoxObjectFor(document.body);
|
||||
return true;
|
||||
}
|
||||
catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function supportsGetBoundingClientRect() {
|
||||
try {
|
||||
document.body.getBoundingClientRect();
|
||||
return true;
|
||||
}
|
||||
catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function nextPage() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.next().length > 0) {
|
||||
$curr.removeClass(o.selectClass);
|
||||
|
||||
for (var i = 0; i < o.maxVisibleRows; i++) {
|
||||
if ($curr.next().length > 0) {
|
||||
$curr = $curr.next();
|
||||
}
|
||||
}
|
||||
|
||||
$curr.addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop');
|
||||
$content.attr('scrollTop', scrollPos + $content.height());
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:first-child').addClass(o.selectClass);
|
||||
}
|
||||
|
||||
function prevPage() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.prev().length > 0) {
|
||||
$curr.removeClass(o.selectClass);
|
||||
|
||||
for (var i = 0; i < o.maxVisibleRows; i++) {
|
||||
if ($curr.prev().length > 0) {
|
||||
$curr = $curr.prev();
|
||||
}
|
||||
}
|
||||
|
||||
$curr.addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop');
|
||||
$content.attr('scrollTop', scrollPos - $content.height());
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:last-child').addClass(o.selectClass);
|
||||
}
|
||||
|
||||
function nextResult() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.next().length > 0) {
|
||||
$curr.removeClass(o.selectClass).next().addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop'),
|
||||
curr = $curr[0], parentBottom, bottom, height;
|
||||
if (supportsGetBoxObjectFor()) {
|
||||
parentBottom = document.getBoxObjectFor($content[0]).y + $content.attr('offsetHeight');
|
||||
bottom = document.getBoxObjectFor(curr).y + $curr.attr('offsetHeight');
|
||||
height = document.getBoxObjectFor(curr).height;
|
||||
}
|
||||
else if (supportsGetBoundingClientRect()) {
|
||||
parentBottom = $content[0].getBoundingClientRect().bottom;
|
||||
var rect = curr.getBoundingClientRect();
|
||||
bottom = rect.bottom;
|
||||
height = bottom - rect.top;
|
||||
}
|
||||
if (bottom >= parentBottom)
|
||||
$content.attr('scrollTop', scrollPos + height);
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:first-child').addClass(o.selectClass);
|
||||
}
|
||||
|
||||
function prevResult() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.prev().length > 0) {
|
||||
$curr.removeClass(o.selectClass).prev().addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop'),
|
||||
curr = $curr[0],
|
||||
parent = $curr.parent()[0],
|
||||
parentTop, top, height;
|
||||
if (supportsGetBoxObjectFor()) {
|
||||
height = document.getBoxObjectFor(curr).height;
|
||||
parentTop = document.getBoxObjectFor($content[0]).y - (height * 2); // TODO: this is not working when i add another control...
|
||||
top = document.getBoxObjectFor(curr).y - document.getBoxObjectFor($content[0]).y;
|
||||
}
|
||||
else if (supportsGetBoundingClientRect()) {
|
||||
parentTop = parent.getBoundingClientRect().top;
|
||||
var rect = curr.getBoundingClientRect();
|
||||
top = rect.top;
|
||||
height = rect.bottom - top;
|
||||
}
|
||||
if (top <= parentTop)
|
||||
$content.attr('scrollTop', scrollPos - height);
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:last-child').addClass(o.selectClass);
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.flexbox = function(source, options) {
|
||||
if (!source)
|
||||
return;
|
||||
|
||||
try {
|
||||
var defaults = $.fn.flexbox.defaults;
|
||||
var o = $.extend({}, defaults, options);
|
||||
|
||||
for (var prop in o) {
|
||||
if (defaults[prop] === undefined) throw ('Invalid option specified: ' + prop + '\nPlease check your spelling and try again.');
|
||||
}
|
||||
o.source = source;
|
||||
|
||||
if (options) {
|
||||
o.paging = (options.paging || options.paging == null) ? $.extend({}, defaults.paging, options.paging) : false;
|
||||
|
||||
for (var prop in o.paging) {
|
||||
if (defaults.paging[prop] === undefined) throw ('Invalid option specified: ' + prop + '\nPlease check your spelling and try again.');
|
||||
}
|
||||
|
||||
if (options.displayValue && !options.hiddenValue) {
|
||||
o.hiddenValue = options.displayValue;
|
||||
}
|
||||
}
|
||||
|
||||
this.each(function() {
|
||||
new $.flexbox(this, o);
|
||||
});
|
||||
|
||||
return this;
|
||||
} catch (ex) {
|
||||
if (typeof ex === 'object') alert(ex.message); else alert(ex);
|
||||
}
|
||||
};
|
||||
|
||||
// plugin defaults - added as a property on our plugin function so they can be set independently
|
||||
$.fn.flexbox.defaults = {
|
||||
method: 'GET', // One of 'GET' or 'POST'
|
||||
queryDelay: 100, // num of milliseconds before query is run.
|
||||
allowInput: true, // set to false to disallow the user from typing in queries
|
||||
containerClass: 'ffb',
|
||||
contentClass: 'content',
|
||||
selectClass: 'ffb-sel',
|
||||
inputClass: 'ffb-input',
|
||||
arrowClass: 'ffb-arrow',
|
||||
matchClass: 'ffb-match',
|
||||
noResultsText: 'No matching results', // text to show when no results match the query
|
||||
noResultsClass: 'ffb-no-results', // class to apply to noResultsText
|
||||
showResults: true, // whether to show results at all, or just typeahead
|
||||
selectFirstMatch: true, // whether to highlight the first matching value
|
||||
autoCompleteFirstMatch: false, // whether to complete the first matching value in the input box
|
||||
highlightMatches: true, // whether all matches within the string should be highlighted with matchClass
|
||||
highlightMatchesRegExModifier: 'i', // 'i' for case-insensitive, 'g' for global (all occurrences), or combine
|
||||
matchAny: true, // for client-side filtering ONLY, match any occurrence of the search term in the result (e.g. "ar" would find "area" and "cart")
|
||||
minChars: 1, // the minimum number of characters the user must enter before a search is executed
|
||||
showArrow: true, // set to false to simulate google suggest
|
||||
arrowQuery: '', // the query to run when the arrow is clicked
|
||||
onSelect: false, // function to run when a result is selected
|
||||
maxCacheBytes: 32768, // in bytes, 0 means caching is disabled
|
||||
resultTemplate: '{name}', // html template for each row (put json properties in curly braces)
|
||||
displayValue: 'name', // json element whose value is displayed on select
|
||||
hiddenValue: 'id', // json element whose value is submitted when form is submitted
|
||||
initialValue: '', // what should the value of the input field be when the form is loaded?
|
||||
initialId: '', // what should the value of the hidden field be when the form is loaded?
|
||||
watermark: '', // text that appears when flexbox is loaded, if no initialValue is specified. style with css class '.ffb-input.watermark'
|
||||
width: 200, // total width of flexbox. auto-adjusts based on showArrow value
|
||||
resultsProperty: 'results', // json property in response that references array of results
|
||||
totalProperty: 'total', // json property in response that references the total results (for paging)
|
||||
maxVisibleRows: 0, // default is 0, which means it is ignored. use either this, or paging.pageSize
|
||||
paging: {
|
||||
style: 'input', // or 'links'
|
||||
cssClass: 'paging', // prefix with containerClass (e.g. .ffb .paging)
|
||||
pageSize: 10, // acts as a threshold. if <= pageSize results, paging doesn't appear
|
||||
maxPageLinks: 5, // used only if style is 'links'
|
||||
showSummary: true, // whether to show 'displaying 1-10 of 200 results' text
|
||||
summaryClass: 'summary', // class for 'displaying 1-10 of 200 results', prefix with containerClass
|
||||
summaryTemplate: 'Displaying {start}-{end} of {total} results' // can use {page} and {pages} as well
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.setValue = function(val) {
|
||||
var id = '#' + this.attr('id');
|
||||
$(id + '_hidden,' + id + '_input').val(val).removeClass('watermark');
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -1,36 +0,0 @@
|
||||
<%@ Page Language="VB" ValidateRequest="false" AutoEventWireup="false" CodeFile="AutoPostTest.aspx.vb" Inherits="PostTest" %>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head id="Head1" runat="server">
|
||||
<title></title>
|
||||
<script type="text/javascript" src="scripts/jquery-1.3.2.js"></script>
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.css" />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("textarea").htmlarea(); // Initialize jHtmlArea's with all default values
|
||||
|
||||
//window.setTimeout(function() { $("form").submit(); }, 3000);
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<div>
|
||||
<asp:ScriptManager runat="server" ID="sm1"></asp:ScriptManager>
|
||||
|
||||
<asp:Literal runat="server" ID="litText"></asp:Literal><br />
|
||||
|
||||
<textarea runat="server" id="txtText" cols="50" rows="15"></textarea>
|
||||
<input type="submit" value='manual submit' />
|
||||
<br />
|
||||
|
||||
<asp:Button runat="server" ID="btnSubmit" Text="asp:Button" />
|
||||
<asp:LinkButton runat="server" ID="lbSubmit" Text="asp:LinkButton"></asp:LinkButton>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
Partial Class PostTest
|
||||
Inherits System.Web.UI.Page
|
||||
|
||||
Public Sub PostTest_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
|
||||
txtText.Value = Request("txtText")
|
||||
litText.Text = txtText.Value
|
||||
End Sub
|
||||
End Class
|
||||
@@ -1,89 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title></title>
|
||||
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea-0.7.0.min.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.css" />
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea.ColorPickerMenu-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.ColorPickerMenu.css" />
|
||||
|
||||
<style type="text/css">
|
||||
div.jHtmlArea { border: solid 1px #ccc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h3>jHtmlArea Live Demo - jHtmlAreaColorPickerMenu Example</h3>
|
||||
<p>The jHtmlAreaColorPickerMenu plugin/extension allows you to show a simple Color Picker Menu when the user clicks on the "forecolor" Toolbar Button.</p>
|
||||
|
||||
<p>
|
||||
<a href="http://jhtmlarea.codeplex.com">jHtmlArea Project Homepage</a>
|
||||
|
|
||||
<a href="http://jhtmlarea.codeplex.com/Release/ProjectReleases.aspx">Downloads</a>
|
||||
|
|
||||
<a href="http://jhtmlarea.codeplex.com/Thread/List.aspx">Discussions</a>
|
||||
|
|
||||
<a href="http://jhtmlarea.codeplex.com/WorkItem/List.aspx">Issue Tracker</a>
|
||||
</p>
|
||||
|
||||
<script type="text/javascript">
|
||||
//// You can also override the "default" colors option of the jHtmlAreaColorPickerMenu
|
||||
//// to show only the specific colors you want.
|
||||
// jHtmlAreaColorPickerMenu.defaultOptions.colors = ["red", "yellow", "blue", "green", "purple", "white", "black"];
|
||||
|
||||
// The followin creates a jHtmlArea and adds a custom list of toolbar buttons.
|
||||
// Among the buttons is the "forecolor" button that will automatically take
|
||||
// advantage of the jHtmlAreaColorPickerMenu plugin.
|
||||
$(function() {
|
||||
$("#Textarea1").htmlarea({
|
||||
toolbar: ["html", "|",
|
||||
"forecolor", // <-- Add the "forecolor" Toolbar Button
|
||||
"|", "bold", "italic", "underline", "|", "p", "h1", "h2", "h3", "|", "link", "unlink"] // Overrides/Specifies the Toolbar buttons to show
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<textarea id="Textarea1" cols="50" rows="15"><p><h3>Another TextArea</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
|
||||
|
||||
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
|
||||
The jHtmlAreaColorPickerMenu object can also be reused for other purposes. For example clicking on the button below will allow you to change the background color of the page.
|
||||
<br />
|
||||
<input id="choosecolor" type="button" value="Choose Color..." />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#choosecolor").click(function() {
|
||||
jHtmlAreaColorPickerMenu(this, {
|
||||
colorChosen: function(color) {
|
||||
$(document.body).css('background-color', color);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<br /><br /><br /><br /><br />
|
||||
<hr />
|
||||
<div style="position: relative;border: solid 30px #cccccc;">
|
||||
<h3>Editor within a "position: relative" DIV element.</h3>
|
||||
<textarea id="txtInDiv" cols="50" rows="15">Some <b>Test</b> content.</textarea>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#txtInDiv").htmlarea({
|
||||
toolbar: ["html", "|",
|
||||
"forecolor", // <-- Add the "forecolor" Toolbar Button
|
||||
"|", "bold", "italic", "underline", "|", "p", "h1", "h2", "h3", "|", "link", "unlink"] // Overrides/Specifies the Toolbar buttons to show
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,128 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title></title>
|
||||
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
|
||||
<script type="text/javascript" src="scripts/jquery-ui-1.7.2.custom.min.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jqueryui/ui-lightness/jquery-ui-1.7.2.custom.css" />
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.css" />
|
||||
|
||||
<style type="text/css">
|
||||
/* body { background: #ccc;} */
|
||||
div.jHtmlArea .ToolBar ul li a.custom_disk_button
|
||||
{
|
||||
background: url(images/disk.png) no-repeat;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
div.jHtmlArea { border: solid 1px #ccc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
// You can do this to perform a global override of any of the "default" options
|
||||
// jHtmlArea.fn.defaultOptions.css = "jHtmlArea.Editor.css";
|
||||
|
||||
$(function() {
|
||||
//$("textarea").htmlarea(); // Initialize all TextArea's as jHtmlArea's with default values
|
||||
|
||||
$("#txtDefaultHtmlArea").htmlarea(); // Initialize jHtmlArea's with all default values
|
||||
|
||||
$("#txtCustomHtmlArea").htmlarea({
|
||||
// Override/Specify the Toolbar buttons to show
|
||||
toolbar: [
|
||||
["bold", "italic", "underline", "|", "forecolor"],
|
||||
["p", "h1", "h2", "h3", "h4", "h5", "h6"],
|
||||
["link", "unlink", "|", "image"],
|
||||
[{
|
||||
// This is how to add a completely custom Toolbar Button
|
||||
css: "custom_disk_button",
|
||||
text: "Save",
|
||||
action: function(btn) {
|
||||
// 'this' = jHtmlArea object
|
||||
// 'btn' = jQuery object that represents the <A> "anchor" tag for the Toolbar Button
|
||||
alert('SAVE!\n\n' + this.toHtmlString());
|
||||
}
|
||||
}]
|
||||
],
|
||||
|
||||
// Override any of the toolbarText values - these are the Alt Text / Tooltips shown
|
||||
// when the user hovers the mouse over the Toolbar Buttons
|
||||
// Here are a couple translated to German, thanks to Google Translate.
|
||||
toolbarText: $.extend({}, jHtmlArea.defaultOptions.toolbarText, {
|
||||
"bold": "fett",
|
||||
"italic": "kursiv",
|
||||
"underline": "unterstreichen"
|
||||
}),
|
||||
|
||||
// Specify a specific CSS file to use for the Editor
|
||||
css: "style//jHtmlArea.Editor.css",
|
||||
|
||||
// Do something once the editor has finished loading
|
||||
loaded: function() {
|
||||
//// 'this' is equal to the jHtmlArea object
|
||||
//alert("jHtmlArea has loaded!");
|
||||
//this.showHTMLView(); // show the HTML view once the editor has finished loading
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<textarea id="txtDefaultHtmlArea" cols="50" rows="15"><p><h3>Test H3</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
|
||||
<input type="button" value="Alert HTML" onclick="alert($('#txtDefaultHtmlArea').htmlarea('toHtmlString'));" />
|
||||
<input type="button" value="Change Color to Blue" onclick="$('#txtDefaultHtmlArea').htmlarea('forecolor', 'blue');" />
|
||||
|
||||
<br /><hr /><br />
|
||||
|
||||
|
||||
<textarea id="txtCustomHtmlArea" cols="50" rows="15"><p><h3>Another TextArea</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
|
||||
|
||||
<input type="button" id="btnRemoveCustomHtmlArea" value="Remove jHtmlArea" />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#btnRemoveCustomHtmlArea").click(function() {
|
||||
$("#txtCustomHtmlArea").htmlarea("dispose");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<input type="button" id="btnResetCustomHtmlArea" value="Reset To Default Options" />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#btnResetCustomHtmlArea").click(function() {
|
||||
$("#txtCustomHtmlArea").htmlarea("dispose");
|
||||
$("#txtCustomHtmlArea").htmlarea();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<br /><hr /><br />
|
||||
|
||||
<h3>Use jHtmlArea within jQuery UI Dialog</h3>
|
||||
<script type="text/javascript">
|
||||
$.ui.dialog.defaults.bgiframe = true;
|
||||
$(function() {
|
||||
$("#dialogShowButton").click(function() {
|
||||
$("#dialog").dialog({width: 420});
|
||||
$("#dialogEditor").htmlarea();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<input type="button" id="dialogShowButton" value="Show Dialog with jHtmlArea Editor" />
|
||||
|
||||
<div id="dialog" title="Basic dialog" style="display: none">
|
||||
Basic jHtmlArea within jQuery UI Dialog
|
||||
<br />
|
||||
<textarea id="dialogEditor" rows="10" style="width: 400px">Some <b>Basic</b> text.</textarea>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>To see a "proper" example of the "Font Color" button, you'll want to see the "<a href="ColorPickerMenu.htm">jHtmlAreaColorPickerMenu</a>" in action here: <a href="ColorPickerMenu.htm">ColorPickerMenu.htm</a></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,117 +0,0 @@
|
||||
/* jHtmlArea - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
|
||||
EXAMPLE USAGE:
|
||||
-----------------------
|
||||
See "Default.htm" for example usages.
|
||||
Or, check out http://jhtmlarea.codeplex.com
|
||||
|
||||
|
||||
CHANGE LOG
|
||||
-----------------------
|
||||
v0.7.0
|
||||
- Fixed ColorPickerMenu positioning when placed within a "position: relative"
|
||||
div element.
|
||||
|
||||
- Fixed ColorPickerMenu to auto-hide after a short delay (1 second) once the
|
||||
user moves the mouse off the menu.
|
||||
|
||||
- Fixed Form Submit issue that caused the text to not be posted. Also fixed a
|
||||
related issue with ASP.NET Postbacks.
|
||||
|
||||
- Added jHtmlArea.p method and "paragraph" functionality + toolbar button
|
||||
This allows the user to change the formatting from <H1>, <H2>, etc. to <P>
|
||||
|
||||
- Added an "Automatic" color option to the ColorPickerMenu.
|
||||
|
||||
|
||||
v0.6.0
|
||||
- Hide All Toolbar buttons except the "html" button when entering
|
||||
HTML Source view (via clicking "html" button or executing
|
||||
jHtmlArea.showHTMLView). When toggling view back to the WYSIWYG editor
|
||||
all other buttons will then be shown again.
|
||||
|
||||
- Added jHtmlArea.dispose method - Allows you to remove the WYSIWYG
|
||||
editor, and go back to having a plain TextArea. Beware, there is a
|
||||
memory leak when using this method; it's not too bad, but you want
|
||||
to call this as few a number of times if you can. The memory leak
|
||||
is due to the way the browsers handle removing DOM Elements.
|
||||
|
||||
- Added Indent and Outdent functionality - This includes toolbar buttons
|
||||
and jHtmlArea.indent and jHtmlArea.outdent buttons.
|
||||
|
||||
- Added justifyLeft, justifyCenter, justifyRight functionality and toolbar
|
||||
buttons.
|
||||
|
||||
- Added insertHorizontalRule functionality and toolbar button. This adds a
|
||||
<hr> tag to the currently selected area.
|
||||
|
||||
- Added an "alias" method for jHtmlArea.execCommand named "ec" to help reduce the
|
||||
file size of the script.
|
||||
|
||||
- Added increaseFontSize and decreaseFontSize functionality and toolbar buttons.
|
||||
The increaseFontSize and decreaseFontSize doesn't currently work in Safari.
|
||||
|
||||
- Added forecolor functionality - Changes a font color for the selection or at the
|
||||
insertion point. Requires a color value string to be passed in as a value argument.
|
||||
|
||||
- Fixed bug in jHtmlArea.toString method
|
||||
|
||||
- Added jHtmlArea.queryCommandValue method and it's alias "jHtmlArea.qc"
|
||||
|
||||
- Added the jHtmlAreaColorPickerMenu plugin/extension that resides within the
|
||||
"jHtmlAreaColorPickerMenu.js" file. This file includes a somewhat generic color
|
||||
picker menu that can be used for any purpose, plus it includes the code to wire
|
||||
up and override the "stock" jHtmlColor.forecolor functionality and inject the new
|
||||
Color Picker Menu functionality in it's place when you click on the "forecolor"
|
||||
toolbar button.
|
||||
|
||||
- Changed the "execCommand" and "ec" second parameter to default to "false" if not
|
||||
specified, and third parameter to default to "null" if not specified. This helps to
|
||||
reduce the overall file size of the script.
|
||||
|
||||
- Added support for Toolbar Button Grouping, now with the additional buttons included
|
||||
in this release, or even when any custom buttons are used, they will be able to display
|
||||
nicely by "auto-wrapping" to the next line.
|
||||
|
||||
- Added a gradient background to the Toolbar Button Groups, with a slight reverse
|
||||
gradient on the Buttons when the mouse is hovered over.
|
||||
|
||||
|
||||
v0.5.0 - Initial Release
|
||||
|
||||
|
||||
|
||||
|
||||
ICONS / IMAGES:
|
||||
-----------------------
|
||||
|
||||
Some of the Icons within the jHtmlArea.png file are from the
|
||||
Silk icon set at www.famfamfam.com.
|
||||
They are licensed under the following license:
|
||||
|
||||
Silk icon set 1.3
|
||||
_________________________________________
|
||||
Mark James
|
||||
http://www.famfamfam.com/lab/icons/silk/
|
||||
_________________________________________
|
||||
|
||||
This work is licensed under a
|
||||
Creative Commons Attribution 2.5 License.
|
||||
[ http://creativecommons.org/licenses/by/2.5/ ]
|
||||
|
||||
This means you may use it for any purpose,
|
||||
and make any changes you like.
|
||||
All I ask is that you include a link back
|
||||
to this page in your credits.
|
||||
|
||||
Are you using this icon set? Send me an email
|
||||
(including a link or picture if available) to
|
||||
mjames@gmail.com
|
||||
|
||||
Any other questions about this icon set please
|
||||
contact mjames@gmail.com
|
||||
|
Before Width: | Height: | Size: 620 B |
@@ -1,365 +0,0 @@
|
||||
/*
|
||||
* This file has been commented to support Visual Studio Intellisense.
|
||||
* You should not use this file at runtime inside the browser--it is only
|
||||
* intended to be used only for design-time IntelliSense. Please use the
|
||||
* standard jHtmlArea library for all production use.
|
||||
*/
|
||||
|
||||
/*
|
||||
* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.htmlarea = function(options) {
|
||||
/// <summary>
|
||||
/// 1: (options) - Convert all TextArea DOM Elements to be displayed as jHtmlArea WYSIWYG Editors.
|
||||
/// 2: (string, arguments) - This function accepts a string containing the method name that you want to execute against the jHtmlArea object.
|
||||
/// </summary>
|
||||
/// <param name="options" type="Object">
|
||||
/// 1: options - The custom options you want applied to the jHtmlArea's that are created.
|
||||
/// 2: string - The name of the jHtmlArea object method to be executed. The results of the method call are then returned instead of the jQuery object.
|
||||
/// </param>
|
||||
};
|
||||
var jHtmlArea = window.jHtmlArea = function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor. Required.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// The custom options you want applied to the jHtmlArea that is created. Optional.
|
||||
/// </param>
|
||||
/// <field name="defaultOptions" Type="Object">
|
||||
/// The Default Options that are used for configuring the jHtmlArea WYSIWYG Editor upon creation.
|
||||
/// </field>
|
||||
/// <returns type="jHtmlArea" />
|
||||
};
|
||||
jHtmlArea.fn = jHtmlArea.prototype = {
|
||||
|
||||
// The current version of jHtmlArea being used
|
||||
jhtmlarea: "0.7.0",
|
||||
|
||||
init: function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// Required. The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// Optional. The custom options you want applied to the jHtmlArea that is created.
|
||||
/// </param>
|
||||
/// <returns type="jHtmlArea" />
|
||||
},
|
||||
execCommand: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
ec: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range. An alias for the "execCommand" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
queryCommandValue: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
qc: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command. An alias for the "queryCommandValue" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
getSelectedHTML: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML that is currently selected within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
getSelection: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Selection object that represents the currently selected region of the editor.
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
getRange: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Range object that represents the currently selected region of the editor. (This uses the "getSelection" method internally.)
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
html: function(v) {
|
||||
/// <summary>
|
||||
/// 1: () Returns the HTML text value contained within the editor. 2: (v) Sets the editors value to the HTML text passed in.
|
||||
/// </summary>
|
||||
/// <param name="v" type="String">
|
||||
/// The HTML text to set the editors value to.
|
||||
/// </param>
|
||||
},
|
||||
pasteHTML: function(html) {
|
||||
/// <summary>
|
||||
/// Pastes HTML text into the editor, replacing any currently selected text and HTML elements.
|
||||
/// </summary>
|
||||
/// <param name="html" type="String">
|
||||
/// The HTML text to paste/insert.
|
||||
/// </param>
|
||||
},
|
||||
cut: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard and then deletes it.
|
||||
/// </summary>
|
||||
},
|
||||
copy: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard.
|
||||
/// </summary>
|
||||
},
|
||||
paste: function() {
|
||||
/// <summary>
|
||||
/// Overwrites the contents of the clipboard on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
bold: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between bold and nonbold.
|
||||
/// </summary>
|
||||
},
|
||||
italic: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between italic and nonitalic.
|
||||
/// </summary>
|
||||
},
|
||||
underline: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between underlined and not underlined.
|
||||
/// </summary>
|
||||
},
|
||||
strikeThrough: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already striked, the strikethrough will be removed. Otherwise, all selected characters will have a line drawn through them.
|
||||
/// </summary>
|
||||
},
|
||||
image: function(url) {
|
||||
/// <summary>
|
||||
/// This command will insert an image (referenced by url) at the insertion point.
|
||||
/// If no URL is specified, a prompt will be displayed to the user.
|
||||
/// </summary>
|
||||
/// <param name="url" type="String">
|
||||
/// The URL to the Image to be inserted. If no URL is specified, a prompt will be shown.
|
||||
/// </param>
|
||||
},
|
||||
removeFormat: function() {
|
||||
/// <summary>
|
||||
/// Removes the formatting tags from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
link: function() {
|
||||
/// <summary>
|
||||
/// Inserts a hyperlink on the current selection, or displays a dialog box enabling the user to specify a URL to insert as a hyperlink on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
unlink: function() {
|
||||
/// <summary>
|
||||
/// Removes any hyperlink from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
orderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an ordered list.
|
||||
/// </summary>
|
||||
},
|
||||
unorderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an unordered list.
|
||||
/// </summary>
|
||||
},
|
||||
superscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already superscripted, the superscript will be removed. Otherwise, all selected characters will be drawn slightly higher than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
subscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already subscripted, the subscript will be removed. Otherwise, all selected characters will be drawn slightly lower than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
p: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <P>.
|
||||
/// </summary>
|
||||
},
|
||||
h1: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H1>.
|
||||
/// </summary>
|
||||
},
|
||||
h2: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H2>.
|
||||
/// </summary>
|
||||
},
|
||||
h3: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H3>.
|
||||
/// </summary>
|
||||
},
|
||||
h4: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H4>.
|
||||
/// </summary>
|
||||
},
|
||||
h5: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H5>.
|
||||
/// </summary>
|
||||
},
|
||||
h6: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H6>.
|
||||
/// </summary>
|
||||
},
|
||||
heading: function(h) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H?> tag.
|
||||
/// Example: Calling jHtmlArea.heading(2) will be the same as calling jHtmlArea.h2()
|
||||
/// </summary>
|
||||
/// <param name="h" type="Number">
|
||||
/// The Number of Header (<H?>) tag to format the current block with.
|
||||
/// For Example: Passing a 2 or "2" will cause the current block to be formatted with a <H2> tag.
|
||||
/// </param>
|
||||
},
|
||||
|
||||
indent: function() {
|
||||
/// <summary>
|
||||
/// Indents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
outdent: function() {
|
||||
/// <summary>
|
||||
/// Outdents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
insertHorizontalRule: function() {
|
||||
/// <summary>
|
||||
/// Inserts a horizontal rule at the insertion point (deletes selection).
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
justifyLeft: function() {
|
||||
/// <summary>
|
||||
/// Justifies the selection or insertion point to the left.
|
||||
/// </summary>
|
||||
},
|
||||
justifyCenter: function() {
|
||||
/// <summary>
|
||||
/// Centers the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
justifyRight: function() {
|
||||
/// <summary>
|
||||
/// Right-justifies the selection or the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
increaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Increases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
decreaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Decreases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
forecolor: function(c) {
|
||||
/// <summary>
|
||||
/// Changes a font color for the selection or at the insertion point. Requires a color value string to be passed in as a value argument.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
formatBlock: function(v) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
showHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Shows the HTML/Source View (TextArea DOM Element) within the Editor and hides the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
hideHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Hides the HTML/Source View (TextArea DOM Element) within the Editor and displays the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
toggleHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Toggles between HTML/Source View (TextArea DOM Element) and the WYSIWYG interface within the Editor.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
toHtmlString: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML text contained within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
toString: function() {
|
||||
/// <summary>
|
||||
/// Return the Text contained within the editor, with all HTML tags removed.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
|
||||
updateTextArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the TextArea DOM Element to by sync'd with the contents of the HTML WYSIWYG Editor.
|
||||
/// </summary>
|
||||
},
|
||||
updateHtmlArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the HTML WYSIWYG Editor to be sync'd with the contents of the TextArea DOM Element.
|
||||
/// </summary>
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn.init.prototype = jHtmlArea.fn;
|
||||
})(jQuery);
|
||||
@@ -1,403 +0,0 @@
|
||||
/*
|
||||
* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.htmlarea = function(opts) {
|
||||
if (opts && typeof (opts) === "string") {
|
||||
var args = [];
|
||||
for (var i = 1; i < arguments.length; i++) { args.push(arguments[i]); }
|
||||
var htmlarea = jHtmlArea(this[0]);
|
||||
var f = htmlarea[opts];
|
||||
if (f) { return f.apply(htmlarea, args); }
|
||||
}
|
||||
return this.each(function() { jHtmlArea(this, opts); });
|
||||
};
|
||||
var jHtmlArea = window.jHtmlArea = function(elem, options) {
|
||||
if (elem.jquery) {
|
||||
return jHtmlArea(elem[0]);
|
||||
}
|
||||
if (elem.jhtmlareaObject) {
|
||||
return elem.jhtmlareaObject;
|
||||
} else {
|
||||
return new jHtmlArea.fn.init(elem, options);
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn = jHtmlArea.prototype = {
|
||||
|
||||
// The current version of jHtmlArea being used
|
||||
jhtmlarea: "0.7.0",
|
||||
|
||||
init: function(elem, options) {
|
||||
if (elem.nodeName.toLowerCase() === "textarea") {
|
||||
var opts = $.extend({}, jHtmlArea.defaultOptions, options);
|
||||
elem.jhtmlareaObject = this;
|
||||
|
||||
var textarea = this.textarea = $(elem);
|
||||
var container = this.container = $("<div/>").addClass("jHtmlArea").width(textarea.width()).insertAfter(textarea);
|
||||
|
||||
var toolbar = this.toolbar = $("<div/>").addClass("ToolBar").appendTo(container);
|
||||
priv.initToolBar.call(this, opts);
|
||||
|
||||
var iframe = this.iframe = $("<iframe/>").height(textarea.height());
|
||||
iframe.width(textarea.width() - ($.browser.msie ? 0 : 4));
|
||||
var htmlarea = this.htmlarea = $("<div/>").append(iframe);
|
||||
|
||||
container.append(htmlarea).append(textarea.hide());
|
||||
|
||||
priv.initEditor.call(this, opts);
|
||||
priv.attachEditorEvents.call(this);
|
||||
|
||||
// Fix total height to match TextArea
|
||||
iframe.height(iframe.height() - toolbar.height());
|
||||
toolbar.width(textarea.width() - 2);
|
||||
|
||||
if (opts.loaded) { opts.loaded.call(this); }
|
||||
}
|
||||
},
|
||||
dispose: function() {
|
||||
this.textarea.show().insertAfter(this.container);
|
||||
this.container.remove();
|
||||
this.textarea[0].jhtmlareaObject = null;
|
||||
},
|
||||
execCommand: function(a, b, c) {
|
||||
this.iframe[0].contentWindow.focus();
|
||||
this.editor.execCommand(a, b || false, c || null);
|
||||
this.updateTextArea();
|
||||
},
|
||||
ec: function(a, b, c) {
|
||||
this.execCommand(a, b, c);
|
||||
},
|
||||
queryCommandValue: function(a) {
|
||||
this.iframe[0].contentWindow.focus();
|
||||
return this.editor.queryCommandValue(a);
|
||||
},
|
||||
qc: function(a) {
|
||||
return this.queryCommandValue(a);
|
||||
},
|
||||
getSelectedHTML: function() {
|
||||
if ($.browser.msie) {
|
||||
return this.getRange().htmlText;
|
||||
} else {
|
||||
var elem = this.getRange().cloneContents();
|
||||
return $("<p/>").append($(elem)).html();
|
||||
}
|
||||
},
|
||||
getSelection: function() {
|
||||
if ($.browser.msie) {
|
||||
//return (this.editor.parentWindow.getSelection) ? this.editor.parentWindow.getSelection() : this.editor.selection;
|
||||
return this.editor.selection;
|
||||
} else {
|
||||
return this.iframe[0].contentDocument.defaultView.getSelection();
|
||||
}
|
||||
},
|
||||
getRange: function() {
|
||||
var s = this.getSelection();
|
||||
if (!s) { return null; }
|
||||
//return (s.rangeCount > 0) ? s.getRangeAt(0) : s.createRange();
|
||||
return (s.getRangeAt) ? s.getRangeAt(0) : s.createRange();
|
||||
},
|
||||
html: function(v) {
|
||||
if (v) {
|
||||
this.pastHTML(v);
|
||||
} else {
|
||||
return toHtmlString();
|
||||
}
|
||||
},
|
||||
pasteHTML: function(html) {
|
||||
this.iframe[0].contentWindow.focus();
|
||||
var r = this.getRange();
|
||||
if ($.browser.msie) {
|
||||
r.pasteHTML(html);
|
||||
} else if ($.browser.mozilla) {
|
||||
r.deleteContents();
|
||||
r.insertNode($((html.indexOf("<") != 0) ? $("<span/>").append(html) : html)[0]);
|
||||
} else { // Safari
|
||||
r.deleteContents();
|
||||
r.insertNode($(this.iframe[0].contentWindow.document.createElement("span")).append($((html.indexOf("<") != 0) ? "<span>" + html + "</span>" : html))[0]);
|
||||
}
|
||||
r.collapse(false);
|
||||
r.select();
|
||||
},
|
||||
cut: function() {
|
||||
this.ec("cut");
|
||||
},
|
||||
copy: function() {
|
||||
this.ec("copy");
|
||||
},
|
||||
paste: function() {
|
||||
this.ec("paste");
|
||||
},
|
||||
bold: function() { this.ec("bold"); },
|
||||
italic: function() { this.ec("italic"); },
|
||||
underline: function() { this.ec("underline"); },
|
||||
strikeThrough: function() { this.ec("strikethrough"); },
|
||||
image: function(url) {
|
||||
if ($.browser.msie && !url) {
|
||||
this.ec("insertImage", true);
|
||||
} else {
|
||||
this.ec("insertImage", false, (url || prompt("Image URL:", "http://")));
|
||||
}
|
||||
},
|
||||
removeFormat: function() {
|
||||
this.ec("removeFormat", false, []);
|
||||
this.unlink();
|
||||
},
|
||||
link: function() {
|
||||
if ($.browser.msie) {
|
||||
this.ec("createLink", true);
|
||||
} else {
|
||||
this.ec("createLink", false, prompt("Link URL:", "http://"));
|
||||
}
|
||||
},
|
||||
unlink: function() { this.ec("unlink", false, []); },
|
||||
orderedList: function() { this.ec("insertorderedlist"); },
|
||||
unorderedList: function() { this.ec("insertunorderedlist"); },
|
||||
superscript: function() { this.ec("superscript"); },
|
||||
subscript: function() { this.ec("subscript"); },
|
||||
|
||||
p: function() {
|
||||
this.formatBlock("<p>");
|
||||
},
|
||||
h1: function() {
|
||||
this.heading(1);
|
||||
},
|
||||
h2: function() {
|
||||
this.heading(2);
|
||||
},
|
||||
h3: function() {
|
||||
this.heading(3);
|
||||
},
|
||||
h4: function() {
|
||||
this.heading(4);
|
||||
},
|
||||
h5: function() {
|
||||
this.heading(5);
|
||||
},
|
||||
h6: function() {
|
||||
this.heading(6);
|
||||
},
|
||||
heading: function(h) {
|
||||
this.formatBlock($.browser.msie ? "Heading " + h : "h" + h);
|
||||
},
|
||||
|
||||
indent: function() {
|
||||
this.ec("indent");
|
||||
},
|
||||
outdent: function() {
|
||||
this.ec("outdent");
|
||||
},
|
||||
|
||||
insertHorizontalRule: function() {
|
||||
this.ec("insertHorizontalRule", false, "ht");
|
||||
},
|
||||
|
||||
justifyLeft: function() {
|
||||
this.ec("justifyLeft");
|
||||
},
|
||||
justifyCenter: function() {
|
||||
this.ec("justifyCenter");
|
||||
},
|
||||
justifyRight: function() {
|
||||
this.ec("justifyRight");
|
||||
},
|
||||
|
||||
increaseFontSize: function() {
|
||||
if ($.browser.msie) {
|
||||
this.ec("fontSize", false, this.qc("fontSize") + 1);
|
||||
} else if ($.browser.safari) {
|
||||
this.getRange().surroundContents($(this.iframe[0].contentWindow.document.createElement("span")).css("font-size", "larger")[0]);
|
||||
} else {
|
||||
this.ec("increaseFontSize", false, "big");
|
||||
}
|
||||
},
|
||||
decreaseFontSize: function() {
|
||||
if ($.browser.msie) {
|
||||
this.ec("fontSize", false, this.qc("fontSize") - 1);
|
||||
} else if ($.browser.safari) {
|
||||
this.getRange().surroundContents($(this.iframe[0].contentWindow.document.createElement("span")).css("font-size", "smaller")[0]);
|
||||
} else {
|
||||
this.ec("decreaseFontSize", false, "small");
|
||||
}
|
||||
},
|
||||
|
||||
forecolor: function(c) {
|
||||
this.ec("foreColor", false, c || prompt("Enter HTML Color:", "#"));
|
||||
},
|
||||
|
||||
formatBlock: function(v) {
|
||||
this.ec("formatblock", false, v || null);
|
||||
},
|
||||
|
||||
showHTMLView: function() {
|
||||
this.updateTextArea();
|
||||
this.textarea.show();
|
||||
this.htmlarea.hide();
|
||||
$("ul li:not(li:has(a.html))", this.toolbar).hide();
|
||||
$("ul:not(:has(:visible))", this.toolbar).hide();
|
||||
$("ul li a.html", this.toolbar).addClass("highlighted");
|
||||
},
|
||||
hideHTMLView: function() {
|
||||
this.updateHtmlArea();
|
||||
this.textarea.hide();
|
||||
this.htmlarea.show();
|
||||
$("ul", this.toolbar).show();
|
||||
$("ul li", this.toolbar).show().find("a.html").removeClass("highlighted");
|
||||
},
|
||||
toggleHTMLView: function() {
|
||||
(this.textarea.is(":hidden")) ? this.showHTMLView() : this.hideHTMLView();
|
||||
},
|
||||
|
||||
toHtmlString: function() {
|
||||
return this.editor.body.innerHTML;
|
||||
},
|
||||
toString: function() {
|
||||
return this.editor.body.innerText;
|
||||
},
|
||||
|
||||
updateTextArea: function() {
|
||||
this.textarea.val(this.toHtmlString());
|
||||
},
|
||||
updateHtmlArea: function() {
|
||||
this.editor.body.innerHTML = this.textarea.val();
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn.init.prototype = jHtmlArea.fn;
|
||||
|
||||
jHtmlArea.defaultOptions = {
|
||||
toolbar: [
|
||||
["html"], ["bold", "italic", "underline", "strikethrough", "|", "subscript", "superscript"],
|
||||
["increasefontsize", "decreasefontsize"],
|
||||
["orderedlist", "unorderedlist"],
|
||||
["indent", "outdent"],
|
||||
["justifyleft", "justifycenter", "justifyright"],
|
||||
["link", "unlink", "image", "horizontalrule"],
|
||||
["p", "h1", "h2", "h3", "h4", "h5", "h6"],
|
||||
["cut", "copy", "paste"]
|
||||
],
|
||||
css: null,
|
||||
toolbarText: {
|
||||
bold: "Bold", italic: "Italic", underline: "Underline", strikethrough: "Strike-Through",
|
||||
cut: "Cut", copy: "Copy", paste: "Paste",
|
||||
h1: "Heading 1", h2: "Heading 2", h3: "Heading 3", h4: "Heading 4", h5: "Heading 5", h6: "Heading 6", p: "Paragraph",
|
||||
indent: "Indent", outdent: "Outdent", horizontalrule: "Insert Horizontal Rule",
|
||||
justifyleft: "Left Justify", justifycenter: "Center Justify", justifyright: "Right Justify",
|
||||
increasefontsize: "Increase Font Size", decreasefontsize: "Decrease Font Size", forecolor: "Text Color",
|
||||
link: "Insert Link", unlink: "Remove Link", image: "Insert Image",
|
||||
orderedlist: "Insert Ordered List", unorderedlist: "Insert Unordered List",
|
||||
subscript: "Subscript", superscript: "Superscript",
|
||||
html: "Show/Hide HTML Source View"
|
||||
}
|
||||
};
|
||||
var priv = {
|
||||
toolbarButtons: {
|
||||
strikethrough: "strikeThrough", orderedlist: "orderedList", unorderedlist: "unorderedList",
|
||||
horizontalrule: "insertHorizontalRule",
|
||||
justifyleft: "justifyLeft", justifycenter: "justifyCenter", justifyright: "justifyRight",
|
||||
increasefontsize: "increaseFontSize", decreasefontsize: "decreaseFontSize",
|
||||
html: function(btn) {
|
||||
this.toggleHTMLView();
|
||||
}
|
||||
},
|
||||
initEditor: function(options) {
|
||||
var edit = this.editor = this.iframe[0].contentWindow.document;
|
||||
edit.designMode = 'on';
|
||||
edit.open();
|
||||
edit.write(this.textarea.val());
|
||||
edit.close();
|
||||
if (options.css) {
|
||||
var e = edit.createElement('link'); e.rel = 'stylesheet'; e.type = 'text/css'; e.href = options.css; edit.getElementsByTagName('head')[0].appendChild(e);
|
||||
}
|
||||
},
|
||||
initToolBar: function(options) {
|
||||
var that = this;
|
||||
|
||||
var menuItem = function(className, altText, action) {
|
||||
return $("<li/>").append($("<a href='javascript:void(0);'/>").addClass(className).attr("title", altText).click(function() { action.call(that, $(this)); }));
|
||||
};
|
||||
|
||||
function addButtons(arr) {
|
||||
var ul = $("<ul/>").appendTo(that.toolbar);
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
var e = arr[i];
|
||||
if ((typeof (e)).toLowerCase() === "string") {
|
||||
if (e === "|") {
|
||||
ul.append($('<li class="separator"/>'));
|
||||
} else {
|
||||
var f = (function(e) {
|
||||
// If button name exists in priv.toolbarButtons then call the "method" defined there, otherwise call the method with the same name
|
||||
var m = priv.toolbarButtons[e] || e;
|
||||
if ((typeof (m)).toLowerCase() === "function") {
|
||||
return function(btn) { m.call(this, btn); };
|
||||
} else {
|
||||
return function() { this[m](); this.editor.body.focus(); };
|
||||
}
|
||||
})(e.toLowerCase());
|
||||
var t = options.toolbarText[e.toLowerCase()];
|
||||
ul.append(menuItem(e.toLowerCase(), t || e, f));
|
||||
}
|
||||
} else {
|
||||
ul.append(menuItem(e.css, e.text, e.action));
|
||||
}
|
||||
}
|
||||
};
|
||||
if (options.toolbar.length !== 0 && priv.isArray(options.toolbar[0])) {
|
||||
for (var i = 0; i < options.toolbar.length; i++) {
|
||||
addButtons(options.toolbar[i]);
|
||||
}
|
||||
} else {
|
||||
addButtons(options.toolbar);
|
||||
}
|
||||
},
|
||||
attachEditorEvents: function() {
|
||||
var t = this;
|
||||
|
||||
var fnHA = function() {
|
||||
t.updateHtmlArea();
|
||||
};
|
||||
|
||||
this.textarea.click(fnHA).
|
||||
keyup(fnHA).
|
||||
keydown(fnHA).
|
||||
mousedown(fnHA).
|
||||
blur(fnHA);
|
||||
|
||||
|
||||
|
||||
var fnTA = function() {
|
||||
t.updateTextArea();
|
||||
};
|
||||
|
||||
$(this.editor.body).click(fnTA).
|
||||
keyup(fnTA).
|
||||
keydown(fnTA).
|
||||
mousedown(fnTA).
|
||||
blur(fnTA);
|
||||
|
||||
$('form').submit(function() { t.toggleHTMLView(); t.toggleHTMLView(); });
|
||||
//$(this.textarea[0].form).submit(function() { //this.textarea.closest("form").submit(function() {
|
||||
|
||||
|
||||
// Fix for ASP.NET Postback Model
|
||||
if (window.__doPostBack) {
|
||||
var old__doPostBack = __doPostBack;
|
||||
window.__doPostBack = function() {
|
||||
if (t) {
|
||||
if (t.toggleHTMLView) {
|
||||
t.toggleHTMLView();
|
||||
t.toggleHTMLView();
|
||||
}
|
||||
}
|
||||
return old__doPostBack.apply(window, arguments);
|
||||
};
|
||||
}
|
||||
|
||||
},
|
||||
isArray: function(v) {
|
||||
return v && typeof v === 'object' && typeof v.length === 'number' && typeof v.splice === 'function' && !(v.propertyIsEnumerable('length'));
|
||||
}
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -1,357 +0,0 @@
|
||||
/*
|
||||
* This file has been commented to support Visual Studio Intellisense.
|
||||
* You should not use this file at runtime inside the browser--it is only
|
||||
* intended to be used only for design-time IntelliSense. Please use the
|
||||
* standard jHtmlArea library for all production use.
|
||||
*/
|
||||
|
||||
/*
|
||||
* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.htmlarea = function(options) {
|
||||
/// <summary>
|
||||
/// 1: (options) - Convert all TextArea DOM Elements to be displayed as jHtmlArea WYSIWYG Editors.
|
||||
/// 2: (string, arguments) - This function accepts a string containing the method name that you want to execute against the jHtmlArea object.
|
||||
/// </summary>
|
||||
/// <param name="options" type="Object">
|
||||
/// 1: options - The custom options you want applied to the jHtmlArea's that are created.
|
||||
/// 2: string - The name of the jHtmlArea object method to be executed. The results of the method call are then returned instead of the jQuery object.
|
||||
/// </param>
|
||||
};
|
||||
var jHtmlArea = window.jHtmlArea = function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor. Required.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// The custom options you want applied to the jHtmlArea that is created. Optional.
|
||||
/// </param>
|
||||
/// <field name="defaultOptions" Type="Object">
|
||||
/// The Default Options that are used for configuring the jHtmlArea WYSIWYG Editor upon creation.
|
||||
/// </field>
|
||||
/// <returns type="jHtmlArea" />
|
||||
};
|
||||
jHtmlArea.fn = jHtmlArea.prototype = {
|
||||
|
||||
// The current version of jHtmlArea being used
|
||||
jhtmlarea: "0.7.0",
|
||||
|
||||
init: function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// Required. The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// Optional. The custom options you want applied to the jHtmlArea that is created.
|
||||
/// </param>
|
||||
/// <returns type="jHtmlArea" />
|
||||
},
|
||||
execCommand: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
ec: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range. An alias for the "execCommand" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
queryCommandValue: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
qc: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command. An alias for the "queryCommandValue" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
getSelectedHTML: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML that is currently selected within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
getSelection: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Selection object that represents the currently selected region of the editor.
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
getRange: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Range object that represents the currently selected region of the editor. (This uses the "getSelection" method internally.)
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
pasteHTML: function(html) {
|
||||
/// <summary>
|
||||
/// Pastes HTML text into the editor, replacing any currently selected text and HTML elements.
|
||||
/// </summary>
|
||||
/// <param name="html" type="String">
|
||||
/// The HTML text to paste/insert.
|
||||
/// </param>
|
||||
},
|
||||
cut: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard and then deletes it.
|
||||
/// </summary>
|
||||
},
|
||||
copy: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard.
|
||||
/// </summary>
|
||||
},
|
||||
paste: function() {
|
||||
/// <summary>
|
||||
/// Overwrites the contents of the clipboard on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
bold: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between bold and nonbold.
|
||||
/// </summary>
|
||||
},
|
||||
italic: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between italic and nonitalic.
|
||||
/// </summary>
|
||||
},
|
||||
underline: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between underlined and not underlined.
|
||||
/// </summary>
|
||||
},
|
||||
strikeThrough: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already striked, the strikethrough will be removed. Otherwise, all selected characters will have a line drawn through them.
|
||||
/// </summary>
|
||||
},
|
||||
image: function(url) {
|
||||
/// <summary>
|
||||
/// This command will insert an image (referenced by url) at the insertion point.
|
||||
/// If no URL is specified, a prompt will be displayed to the user.
|
||||
/// </summary>
|
||||
/// <param name="url" type="String">
|
||||
/// The URL to the Image to be inserted. If no URL is specified, a prompt will be shown.
|
||||
/// </param>
|
||||
},
|
||||
removeFormat: function() {
|
||||
/// <summary>
|
||||
/// Removes the formatting tags from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
link: function() {
|
||||
/// <summary>
|
||||
/// Inserts a hyperlink on the current selection, or displays a dialog box enabling the user to specify a URL to insert as a hyperlink on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
unlink: function() {
|
||||
/// <summary>
|
||||
/// Removes any hyperlink from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
orderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an ordered list.
|
||||
/// </summary>
|
||||
},
|
||||
unorderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an unordered list.
|
||||
/// </summary>
|
||||
},
|
||||
superscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already superscripted, the superscript will be removed. Otherwise, all selected characters will be drawn slightly higher than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
subscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already subscripted, the subscript will be removed. Otherwise, all selected characters will be drawn slightly lower than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
p: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <P>.
|
||||
/// </summary>
|
||||
},
|
||||
h1: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H1>.
|
||||
/// </summary>
|
||||
},
|
||||
h2: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H2>.
|
||||
/// </summary>
|
||||
},
|
||||
h3: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H3>.
|
||||
/// </summary>
|
||||
},
|
||||
h4: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H4>.
|
||||
/// </summary>
|
||||
},
|
||||
h5: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H5>.
|
||||
/// </summary>
|
||||
},
|
||||
h6: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H6>.
|
||||
/// </summary>
|
||||
},
|
||||
heading: function(h) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H?> tag.
|
||||
/// Example: Calling jHtmlArea.heading(2) will be the same as calling jHtmlArea.h2()
|
||||
/// </summary>
|
||||
/// <param name="h" type="Number">
|
||||
/// The Number of Header (<H?>) tag to format the current block with.
|
||||
/// For Example: Passing a 2 or "2" will cause the current block to be formatted with a <H2> tag.
|
||||
/// </param>
|
||||
},
|
||||
|
||||
indent: function() {
|
||||
/// <summary>
|
||||
/// Indents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
outdent: function() {
|
||||
/// <summary>
|
||||
/// Outdents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
insertHorizontalRule: function() {
|
||||
/// <summary>
|
||||
/// Inserts a horizontal rule at the insertion point (deletes selection).
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
justifyLeft: function() {
|
||||
/// <summary>
|
||||
/// Justifies the selection or insertion point to the left.
|
||||
/// </summary>
|
||||
},
|
||||
justifyCenter: function() {
|
||||
/// <summary>
|
||||
/// Centers the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
justifyRight: function() {
|
||||
/// <summary>
|
||||
/// Right-justifies the selection or the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
increaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Increases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
decreaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Decreases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
forecolor: function(c) {
|
||||
/// <summary>
|
||||
/// Changes a font color for the selection or at the insertion point. Requires a color value string to be passed in as a value argument.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
formatBlock: function(v) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
showHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Shows the HTML/Source View (TextArea DOM Element) within the Editor and hides the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
hideHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Hides the HTML/Source View (TextArea DOM Element) within the Editor and displays the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
toggleHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Toggles between HTML/Source View (TextArea DOM Element) and the WYSIWYG interface within the Editor.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
toHtmlString: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML text contained within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
toString: function() {
|
||||
/// <summary>
|
||||
/// Return the Text contained within the editor, with all HTML tags removed.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
|
||||
updateTextArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the TextArea DOM Element to by sync'd with the contents of the HTML WYSIWYG Editor.
|
||||
/// </summary>
|
||||
},
|
||||
updateHtmlArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the HTML WYSIWYG Editor to be sync'd with the contents of the TextArea DOM Element.
|
||||
/// </summary>
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn.init.prototype = jHtmlArea.fn;
|
||||
})(jQuery);
|
||||
@@ -1,189 +0,0 @@
|
||||
/*
|
||||
* jHtmlAreaColorPickerMenu 0.7.0 - A Color Picker Extension to jHtmlArea
|
||||
* Part of the jHtmlArea Project
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
if (jHtmlArea) {
|
||||
var oldForecolor = jHtmlArea.fn.forecolor;
|
||||
jHtmlArea.fn.forecolor = function(c) {
|
||||
if (c) {
|
||||
// If color is specified, then use the "default" method functionality
|
||||
oldForecolor.call(this, c);
|
||||
} else {
|
||||
// If no color is specified, then display color picker ui
|
||||
var that = this;
|
||||
var rng = this.getRange();
|
||||
jHtmlAreaColorPickerMenu($(".forecolor", this.toolbar), {
|
||||
colorChosen: function(color) {
|
||||
if ($.browser.msie) {
|
||||
rng.execCommand("ForeColor", false, color);
|
||||
} else {
|
||||
that.forecolor(color);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
var menu = window.jHtmlAreaColorPickerMenu = function(ownerElement, options) {
|
||||
return new jHtmlAreaColorPickerMenu.fn.init(ownerElement, options);
|
||||
};
|
||||
menu.fn = menu.prototype = {
|
||||
jhtmlareacolorpickermenu: "0.7.0",
|
||||
|
||||
init: function(ownerElement, options) {
|
||||
var opts = $.extend({}, menu.defaultOptions, options);
|
||||
var that = this;
|
||||
var owner = this.owner = $(ownerElement);
|
||||
var position = owner.position();
|
||||
|
||||
if (menu.instance) {
|
||||
menu.instance.hide();
|
||||
}
|
||||
jHtmlAreaColorPickerMenu.instance = this;
|
||||
|
||||
var picker = this.picker = $("<div/>").css({
|
||||
position: "absolute",
|
||||
left: position.left + opts.offsetLeft,
|
||||
top: position.top + owner.height() + opts.offsetTop,
|
||||
"z-index": opts["z-index"]
|
||||
}).addClass("jHtmlAreaColorPickerMenu");
|
||||
|
||||
for (var i = 0; i < opts.colors.length; i++) {
|
||||
var c = opts.colors[i];
|
||||
$("<div/>").css("background-color", c).appendTo(picker).click(
|
||||
(function(color) {
|
||||
return function() {
|
||||
if (opts.colorChosen) {
|
||||
opts.colorChosen.call(this, color);
|
||||
}
|
||||
that.hide();
|
||||
};
|
||||
})(c)
|
||||
);
|
||||
}
|
||||
|
||||
$("<div/>").html("<div></div>Automatic").addClass("automatic").appendTo(picker).click(
|
||||
function() {
|
||||
if (opts.colorChosen) {
|
||||
opts.colorChosen.call(this, null);
|
||||
}
|
||||
that.hide();
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
var autoHide = false;
|
||||
picker.appendTo(owner.parent()).
|
||||
show().
|
||||
mouseout(function() {
|
||||
autoHide = true;
|
||||
that.currentTimeout = window.setTimeout(function() { if (autoHide === true) { that.hide(); } }, 1000);
|
||||
}).
|
||||
mouseover(function() {
|
||||
if (that.currentTimeout) {
|
||||
window.clearTimeout(that.currentTimeout);
|
||||
that.currentTimeout = null;
|
||||
}
|
||||
autoHide = false;
|
||||
});
|
||||
},
|
||||
hide: function() {
|
||||
this.picker.hide();
|
||||
this.picker.remove();
|
||||
}
|
||||
};
|
||||
menu.fn.init.prototype = menu.fn;
|
||||
|
||||
menu.defaultOptions = {
|
||||
"z-index": 0,
|
||||
offsetTop: 0,
|
||||
offsetLeft: 0,
|
||||
colors: [
|
||||
"#ffffff",
|
||||
"#cccccc",
|
||||
"#c0c0c0",
|
||||
"#999999",
|
||||
"#666666",
|
||||
"#333333",
|
||||
"#000000",
|
||||
|
||||
"#ffcccc",
|
||||
"#ff6666",
|
||||
"#ff0000",
|
||||
"#cc0000",
|
||||
"#990000",
|
||||
"#660000",
|
||||
"#330000",
|
||||
|
||||
"#ffcc99",
|
||||
"#ff9966",
|
||||
"#ff9900",
|
||||
"#ff6600",
|
||||
"#cc6600",
|
||||
"#993300",
|
||||
"#663300",
|
||||
|
||||
"#ffff99",
|
||||
"#ffff66",
|
||||
"#ffcc66",
|
||||
"#ffcc33",
|
||||
"#cc9933",
|
||||
"#996633",
|
||||
"#663333",
|
||||
|
||||
"#ffffcc",
|
||||
"#ffff33",
|
||||
"#ffff00",
|
||||
"#ffcc00",
|
||||
"#999900",
|
||||
"#666600",
|
||||
"#333300",
|
||||
|
||||
"#99ff99",
|
||||
"#66ff99",
|
||||
"#33ff33",
|
||||
"#33cc00",
|
||||
"#009900",
|
||||
"#006600",
|
||||
"#003300",
|
||||
|
||||
"#99FFFF",
|
||||
"#33FFFF",
|
||||
"#66CCCC",
|
||||
"#00CCCC",
|
||||
"#339999",
|
||||
"#336666",
|
||||
"#003333",
|
||||
|
||||
"#CCFFFF",
|
||||
"#66FFFF",
|
||||
"#33CCFF",
|
||||
"#3366FF",
|
||||
"#3333FF",
|
||||
"#000099",
|
||||
"#000066",
|
||||
|
||||
"#CCCCFF",
|
||||
"#9999FF",
|
||||
"#6666CC",
|
||||
"#6633FF",
|
||||
"#6600CC",
|
||||
"#333399",
|
||||
"#330099",
|
||||
|
||||
"#FFCCFF",
|
||||
"#FF99FF",
|
||||
"#CC66CC",
|
||||
"#CC33CC",
|
||||
"#993399",
|
||||
"#663366",
|
||||
"#330033"
|
||||
],
|
||||
colorChosen: null
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -1,8 +0,0 @@
|
||||
// jHtmlArea - http://jhtmlarea.codeplex.com - (c)2009 Chris Pietschmann
|
||||
(function($){if(jHtmlArea){var oldForecolor=jHtmlArea.fn.forecolor;jHtmlArea.fn.forecolor=function(c){if(c){oldForecolor.call(this,c);}else{var that=this;var rng=this.getRange();jHtmlAreaColorPickerMenu($(".forecolor",this.toolbar),{colorChosen:function(color){if($.browser.msie){rng.execCommand("ForeColor",false,color);}else{that.forecolor(color);}}});}};}
|
||||
var menu=window.jHtmlAreaColorPickerMenu=function(ownerElement,options){return new jHtmlAreaColorPickerMenu.fn.init(ownerElement,options);};menu.fn=menu.prototype={jhtmlareacolorpickermenu:"0.7.0",init:function(ownerElement,options){var opts=$.extend({},menu.defaultOptions,options);var that=this;var owner=this.owner=$(ownerElement);var position=owner.position();if(menu.instance){menu.instance.hide();}
|
||||
jHtmlAreaColorPickerMenu.instance=this;var picker=this.picker=$("<div/>").css({position:"absolute",left:position.left+opts.offsetLeft,top:position.top+owner.height()+opts.offsetTop,"z-index":opts["z-index"]}).addClass("jHtmlAreaColorPickerMenu");for(var i=0;i<opts.colors.length;i++){var c=opts.colors[i];$("<div/>").css("background-color",c).appendTo(picker).click((function(color){return function(){if(opts.colorChosen){opts.colorChosen.call(this,color);}
|
||||
that.hide();};})(c));}
|
||||
$("<div/>").html("<div></div>Automatic").addClass("automatic").appendTo(picker).click(function(){if(opts.colorChosen){opts.colorChosen.call(this,null);}
|
||||
that.hide();});var autoHide=false;picker.appendTo(owner.parent()).show().mouseout(function(){autoHide=true;that.currentTimeout=window.setTimeout(function(){if(autoHide===true){that.hide();}},1000);}).mouseover(function(){if(that.currentTimeout){window.clearTimeout(that.currentTimeout);that.currentTimeout=null;}
|
||||
autoHide=false;});},hide:function(){this.picker.hide();this.picker.remove();}};menu.fn.init.prototype=menu.fn;menu.defaultOptions={"z-index":0,offsetTop:0,offsetLeft:0,colors:["#ffffff","#cccccc","#c0c0c0","#999999","#666666","#333333","#000000","#ffcccc","#ff6666","#ff0000","#cc0000","#990000","#660000","#330000","#ffcc99","#ff9966","#ff9900","#ff6600","#cc6600","#993300","#663300","#ffff99","#ffff66","#ffcc66","#ffcc33","#cc9933","#996633","#663333","#ffffcc","#ffff33","#ffff00","#ffcc00","#999900","#666600","#333300","#99ff99","#66ff99","#33ff33","#33cc00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#330033"],colorChosen:null};})(jQuery);
|
||||
@@ -1,6 +0,0 @@
|
||||
div.jHtmlAreaColorPickerMenu {border: solid 1px #bbb; background-color: #ddd; width: 112px;}
|
||||
div.jHtmlAreaColorPickerMenu div {float: left; margin: 2px; width: 12px; height: 14px;}
|
||||
div.jHtmlAreaColorPickerMenu div:hover {margin: 0px; border: dotted 2px black;}
|
||||
|
||||
div.jHtmlAreaColorPickerMenu div.automatic { width: 104px; height: auto; padding: 2px;}
|
||||
div.jHtmlAreaColorPickerMenu div.automatic div { margin: 2px; width: 12px; height: 14px; border: solid 1px black;}
|
||||
@@ -1,6 +0,0 @@
|
||||
body
|
||||
{
|
||||
background: #000;
|
||||
color: #fff;
|
||||
margin: 2px;
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
div.jHtmlArea { display: inline block; }
|
||||
div.jHtmlArea div { padding: 0px; margin: 0px; }
|
||||
div.jHtmlArea .ToolBar { }
|
||||
div.jHtmlArea .ToolBar ul { border: solid 1px #ccc; margin: 1px; padding: 1px; float: left; background: #fff url(jHtmlArea_Toolbar_Group_BG.png) repeat-x;}
|
||||
div.jHtmlArea .ToolBar ul li { list-style-type: none; float: left; border: none; padding: 1px; margin: 1px; }
|
||||
div.jHtmlArea .ToolBar ul li:hover { border: solid 1px #ccc; background: #ddd url(jHtmlArea_Toolbar_Group__Btn_Select_BG.png); padding: 0; }
|
||||
div.jHtmlArea .ToolBar ul li a { display: block; width: 16px; height: 16px; background: url(jHtmlArea.png) no-repeat -16px -500px; border: none; cursor: pointer; padding: 0px; }
|
||||
div.jHtmlArea .ToolBar ul li a.highlighted { border: solid 1px #aaa; background-color: #bbb; padding: 0; }
|
||||
div.jHtmlArea .ToolBar ul li.separator {height: 16px; margin: 0 2px 0 3px; border-left: 1px solid #ccc;}
|
||||
div.jHtmlArea .ToolBar ul li.separator:hover { padding: 1px; background-color: #fff; border-top:none; border-bottom:none; border-right:none;}
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a:hover { }
|
||||
div.jHtmlArea .ToolBar ul li a.bold { background-position: 0 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.italic { background-position: -16px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.underline { background-position: -32px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.strikethrough { background-position: -48px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.link { background-position: -64px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.unlink { background-position: -80px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.orderedlist { background-position: -96px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.unorderedlist { background-position: -112px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.image { background-position: -128px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.cut { background-position: -144px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.copy { background-position: -160px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.paste { background-position: -176px 0; }
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a.html { background-position: -192px 0; opacity:0.6; filter:alpha(opacity=60);}
|
||||
div.jHtmlArea .ToolBar ul li a.html.highlighted { opacity:1.0; filter:alpha(opacity=100);}
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a.h1 { background-position: 0 -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h2 { background-position: -16px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h3 { background-position: -32px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h4 { background-position: -48px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h5 { background-position: -64px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h6 { background-position: -80px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.subscript { background-position: -96px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.superscript { background-position: -112px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.indent { background-position: -128px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.outdent { background-position: -144px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.horizontalrule { background-position: -160px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.p { background-position: -176px -16px;}
|
||||
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a.justifyleft { background-position: 0 -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.justifycenter { background-position: -16px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.justifyright { background-position: -32px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.increasefontsize { background-position: -48px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.decreasefontsize { background-position: -64px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.forecolor { background-position: -80px -32px;}
|
||||
|
Before Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 964 B |
|
Before Width: | Height: | Size: 942 B |
|
Before Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 178 B |
|
Before Width: | Height: | Size: 104 B |
|
Before Width: | Height: | Size: 125 B |
|
Before Width: | Height: | Size: 105 B |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 90 B |
|
Before Width: | Height: | Size: 129 B |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
@@ -1,406 +0,0 @@
|
||||
/*
|
||||
* jQuery UI CSS Framework
|
||||
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden { display: none; }
|
||||
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
|
||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
||||
.ui-helper-clearfix { display: inline-block; }
|
||||
/* required comment for clearfix to work in Opera \*/
|
||||
* html .ui-helper-clearfix { height:1%; }
|
||||
.ui-helper-clearfix { display:block; }
|
||||
/* end clearfix */
|
||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled { cursor: default !important; }
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* jQuery UI CSS Framework
|
||||
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
|
||||
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
|
||||
.ui-widget-content a { color: #333333; }
|
||||
.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
|
||||
.ui-widget-header a { color: #ffffff; }
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; outline: none; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; outline: none; }
|
||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; outline: none; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; outline: none; }
|
||||
.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; outline: none; }
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; outline: none; text-decoration: none; }
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
|
||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; }
|
||||
.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
|
||||
.ui-state-error a, .ui-widget-content .ui-state-error a { color: #ffffff; }
|
||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #ffffff; }
|
||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
|
||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
|
||||
.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
|
||||
.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
|
||||
.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
|
||||
.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
|
||||
.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
|
||||
.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
|
||||
.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
|
||||
.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
|
||||
.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; }/* Accordion
|
||||
----------------------------------*/
|
||||
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
||||
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
||||
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
||||
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
|
||||
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
||||
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
|
||||
.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
|
||||
----------------------------------*/
|
||||
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
|
||||
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
||||
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
||||
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
||||
.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
|
||||
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||
.ui-datepicker select.ui-datepicker-month,
|
||||
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
|
||||
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
||||
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
||||
.ui-datepicker td { border: 0; padding: 1px; }
|
||||
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
||||
|
||||
/* with multiple calendars */
|
||||
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
||||
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
||||
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
||||
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
||||
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
||||
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
||||
.ui-datepicker-row-break { clear:both; width:100%; }
|
||||
|
||||
/* RTL support */
|
||||
.ui-datepicker-rtl { direction: rtl; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
|
||||
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||
.ui-datepicker-cover {
|
||||
display: none; /*sorry for IE5*/
|
||||
display/**/: block; /*sorry for IE5*/
|
||||
position: absolute; /*must have*/
|
||||
z-index: -1; /*must have*/
|
||||
filter: mask(); /*must have*/
|
||||
top: -4px; /*must have*/
|
||||
left: -4px; /*must have*/
|
||||
width: 200px; /*must have*/
|
||||
height: 200px; /*must have*/
|
||||
}/* Dialog
|
||||
----------------------------------*/
|
||||
.ui-dialog { position: relative; padding: .2em; width: 300px; }
|
||||
.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
|
||||
.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
|
||||
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
||||
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
||||
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
||||
.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
||||
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
||||
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
|
||||
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||
/* Progressbar
|
||||
----------------------------------*/
|
||||
.ui-progressbar { height:2em; text-align: left; }
|
||||
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable
|
||||
----------------------------------*/
|
||||
.ui-resizable { position: relative;}
|
||||
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
||||
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
|
||||
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
|
||||
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
|
||||
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider
|
||||
----------------------------------*/
|
||||
.ui-slider { position: relative; text-align: left; }
|
||||
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
|
||||
|
||||
.ui-slider-horizontal { height: .8em; }
|
||||
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||
|
||||
.ui-slider-vertical { width: .8em; height: 100px; }
|
||||
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
||||
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||
.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
|
||||
----------------------------------*/
|
||||
.ui-tabs { padding: .2em; zoom: 1; }
|
||||
.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
|
||||
.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
|
||||
.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
|
||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||
@@ -474,6 +474,9 @@
|
||||
<code>TORON</code>
|
||||
<code>TORNO</code>
|
||||
<code>TR</code>
|
||||
<temple name="Trujillo, Peru">
|
||||
<code>TRUJI</code>
|
||||
</temple>
|
||||
</temple>
|
||||
<temple name="Tuxtla Gutierrez, Mexico">
|
||||
<code>TGUTI</code>
|
||||
|
||||
@@ -13,8 +13,8 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**SYNOPSIS**
|
||||
**gramps** [**-?** | **--help**] [**--usage**] [**--version**]
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *DATABASE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *...*]
|
||||
[**-f** | **--format=** *FORMAT*] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**--remove=** *FAMILY_TREE_PATTERN*]
|
||||
[**-e** | **--export=** *FILE* [**-f** | **--format=** *FORMAT*]]
|
||||
[**-a** | **--action=** *ACTION*] [*-p* | **--options=** *OPTION‐
|
||||
STRING*]] [*FILE*] [**--version**]
|
||||
@@ -50,23 +50,23 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
Formats available for export are **gramps-xml** (guessed if *FILE*
|
||||
ends with **.gramps** ), **gedcom** (guessed if *FILE* ends with
|
||||
**.ged** ), or any file export available through the Gramps plugin
|
||||
**.ged** ), or any file export available through the Gramps plugin
|
||||
system.
|
||||
|
||||
Formats available for import are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** (guessed if *FILE* ends with **.gpkg** ),
|
||||
and **geneweb** (guessed if *FILE* ends with **.gw** ).
|
||||
|
||||
Formats available for export are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** , **wft** (guessed if *FILE* ends with **.wft** ),
|
||||
Formats available for export are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** , **wft** (guessed if *FILE* ends with **.wft** ),
|
||||
**geneweb**.
|
||||
|
||||
|
||||
**-l**
|
||||
**-l**
|
||||
Print a list of known family trees.
|
||||
|
||||
|
||||
**-L**
|
||||
|
||||
|
||||
**-L**
|
||||
Print a detailed list of known family trees.
|
||||
|
||||
|
||||
@@ -88,16 +88,16 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
When more than one input file is given, each has to be preceded
|
||||
by **-i** flag. The files are imported in the specified order, i.e.
|
||||
**-i** *FILE1* **-i** *FILE2* and **-i** *FILE2* **-i** *FILE1*
|
||||
**-i** *FILE1* **-i** *FILE2* and **-i** *FILE2* **-i** *FILE1*
|
||||
might produce different gramps IDs in the resulting database.
|
||||
|
||||
|
||||
**-e** , **--export=** *FICHIER*
|
||||
Export data into *FILE* . For **gramps-xml** , **gedcom**
|
||||
, **wft** , **gramps-pkg** , et **geneweb** , the *FILE* is the
|
||||
|
||||
|
||||
**-e** , **--export=** *FILE*
|
||||
Export data into *FILE* . For **gramps-xml** , **gedcom**
|
||||
, **wft** , **gramps-pkg** , and **geneweb** , the *FILE* is the
|
||||
name of the resulting file.
|
||||
|
||||
When more than one output file is given, each has to be preceded
|
||||
|
||||
When more than one output file is given, each has to be preceded
|
||||
by **-e** flag. The files are written one by one, in the specified order.
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
|
||||
With or without the **-O** flag, there could be multiple imports, exports,
|
||||
and actions specified further on the command line by using **-i** ,
|
||||
and actions specified further on the command line by using **-i** ,
|
||||
**-e** , and **-a** flags.
|
||||
|
||||
|
||||
@@ -194,46 +194,46 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**EXAMPLES**
|
||||
To open an existing family tree and import an xml file into it, one
|
||||
may type:
|
||||
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
The above changes the opened family tree, to do the same, but import
|
||||
both in a temporary family tree and start an interactive session, one
|
||||
may type:
|
||||
|
||||
|
||||
**gramps -i** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
To import four databases (whose formats can be determined from their
|
||||
names) and then check the resulting database for errors, one may type:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
**-i** *file4.wft* **-a** *check*
|
||||
|
||||
To explicitly specify the formats in the above example, append file‐
|
||||
names with appropriate **-f** options:
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
*gramps-pkg* **-i** *~/db3.gramps* **-f** *gramps-xml* **-i** *file4.wft*
|
||||
**-f** *wft* **-a** *check*
|
||||
|
||||
To record the database resulting from all imports, supply **-e** flag (use
|
||||
**-f** if the filename does not allow gramps to guess the format):
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-e** *~/new-package*
|
||||
**-f** *gramps-pkg*
|
||||
|
||||
To import three databases and start interactive gramps session with the
|
||||
result:
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
To run the Verify tool from the commandline and output the result to
|
||||
stdout:
|
||||
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-a** *tool* **-p name=** *verify*
|
||||
|
||||
Finally, to start normal interactive session type:
|
||||
|
||||
|
||||
**gramps**
|
||||
|
||||
|
||||
@@ -257,20 +257,20 @@ gramps(1) @VERSION@ gramps(1)
|
||||
modification of the main program.
|
||||
|
||||
In addition to generating direct printer output, report generators also
|
||||
target other systems, such as *LibreOffice.org* , *AbiWord* , *HTML*,
|
||||
target other systems, such as *LibreOffice.org* , *AbiWord* , *HTML*,
|
||||
or *LaTeX* to allow the users to modify the format to suit their needs.
|
||||
|
||||
|
||||
**KNOWN BUGS AND LIMITATIONS**
|
||||
|
||||
**FILES**
|
||||
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
|
||||
*${PREFIX}/lib/python3/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
@@ -290,8 +290,8 @@ gramps(1) @VERSION@ gramps(1)
|
||||
The user documentation is available through standard web browser
|
||||
in the form of Gramps Manual.
|
||||
|
||||
The developer documentation can be found on the
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
The developer documentation can be found on the
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
portal.
|
||||
|
||||
|
||||
|
||||
@@ -13,11 +13,10 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
**SYNOPSIS**
|
||||
**gramps** [**-?** | **--help**] [**--usage**] [**--version**]
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *BASE_DE_DONNEES*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *...*]
|
||||
[**-e** | **--export=** *FICHIER* [**-f** | **--format=** *FORMAT*]]
|
||||
[**-a** | **--action=** *ACTION*] [*-p* | **--options=** *CHAÎNE‐
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *BASE_DE_DONNEES*]
|
||||
[**-f** | **--format=** *FORMAT*] [**-i** | **--import=** *FICHIER*]
|
||||
[**-e** | **--export=** *FICHIER*] [**--remove=** *FAMILY_TREE_PATTERN*]
|
||||
[**-a** | **--action=** *ACTION* [*-p* | **--options=** *CHAÎNE‐
|
||||
OPTION*]] [*FICHIER*] [**--version**]
|
||||
|
||||
|
||||
@@ -61,7 +60,7 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**geneweb** .
|
||||
|
||||
|
||||
**-l**
|
||||
**-l**
|
||||
Imprime une liste des arbres familiaux disponibles.
|
||||
|
||||
|
||||
@@ -92,11 +91,11 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
|
||||
**-e** , **--export=** *FICHIER*
|
||||
Exporter des données dans un *FICHIER* . Pour les fichiers **gramps-xml**
|
||||
, **gedcom** , **wft** , **gramps-pkg** , et **geneweb** , le
|
||||
Exporter des données dans un *FICHIER* . Pour les fichiers **gramps-xml**
|
||||
, **gedcom** , **wft** , **gramps-pkg** , et **geneweb** , le
|
||||
*FICHIER* est le nom du fichier de sortie.
|
||||
|
||||
Quand plus d'un fichier doit être exporté, chacun doit être
|
||||
|
||||
Quand plus d'un fichier doit être exporté, chacun doit être
|
||||
précédé par la commande **-e** . Ces fichiers sont importés dans le
|
||||
même ordre.
|
||||
|
||||
@@ -121,7 +120,7 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
**name=name**
|
||||
Cette option est obligatoire, elle détermine quel rapport ou
|
||||
outil sera utilisé. Si le name saisi ne correspond à aucun
|
||||
outil sera utilisé. Si le name saisi ne correspond à aucun
|
||||
module disponible, un message d'erreur sera ajouté.
|
||||
|
||||
**show=all**
|
||||
@@ -184,54 +183,54 @@ gramps(1) @VERSION@ gramps(1)
|
||||
Les erreurs rencontrées lors d'importation, d'exportation, ou d'action, seront
|
||||
mémorisées en *stdout* (si elles sont le fait de la manipulation par
|
||||
gramps) ou en *stderr* (si elles ne sont pas le fait d'une manipulation).
|
||||
Utilisez les shell de redirection de *stdout* et *stderr* pour sauver
|
||||
Utilisez les shell de redirection de *stdout* et *stderr* pour sauver
|
||||
les messages et les erreurs dans les fichiers.
|
||||
|
||||
|
||||
**EXEMPLES**
|
||||
Pour ouvrir un arbre familial et y importer un fichier XML, on peut
|
||||
saisir:
|
||||
|
||||
|
||||
**gramps -O** *'Mon Arbre Familial'* **-i** *~/db3.gramps*
|
||||
|
||||
Ceci ouvre un arbre familial, pour faire la même chose, mais importer
|
||||
dans un arbre familial temporaire et démarrer une session interactive,
|
||||
on peut saisir :
|
||||
|
||||
|
||||
**gramps -i** *'Mon Arbre Familial'* **-i** *~/db3.gramps*
|
||||
|
||||
Lecture de quatre bases de données dont les formats peuvent être
|
||||
devinés d'après les noms, puis vérification des données:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
**-i** *file4.wft* **-a** *check*
|
||||
|
||||
|
||||
Si vous voulez préciser lesformats de fichiers dans l'exemple ci-
|
||||
dessus, complétez les noms de fichiers par les options -f appropriées:
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
*gramps-pkg* **-i** *~/db3.gramps* **-f** *gramps-xml* **-i** *file4.wft*
|
||||
**-f** *wft* **-a** *check*
|
||||
|
||||
Pour enregistrer le résultat des lectures, donnez l'option **-e**
|
||||
|
||||
Pour enregistrer le résultat des lectures, donnez l'option **-e**
|
||||
(utiliser -f si le nom de fichier ne permet pas à gramps de deviner le
|
||||
format):
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-e** *~/new-package*
|
||||
**-f** *gramps-pkg*
|
||||
|
||||
Pour lire trois ensembles de données puis lancer une session
|
||||
|
||||
Pour lire trois ensembles de données puis lancer une session
|
||||
interactive de gramps sur le tout :
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
Pour lancer l'outil de vérification de la base de données depuis la
|
||||
ligne de commande et obtenir le résultat :
|
||||
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-a** *tool* **-p name=** *verify*
|
||||
|
||||
Enfin, pour lancer une session interactive normale, entrer :
|
||||
|
||||
Enfin, pour lancer une session interactive normale, entrer :
|
||||
|
||||
**gramps**
|
||||
|
||||
|
||||
@@ -265,11 +264,11 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**FICHIERS**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
|
||||
*${PREFIX}/lib/python3/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
.TH "GRAMPS" "1" "09 March 2015" "4.2" "Gramps"
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH FRENCH "" "" ""
|
||||
.SH NAME
|
||||
gramps \- Gramps Documentation
|
||||
French \-
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -28,8 +30,6 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.\" Man page generated from reStructeredText.
|
||||
.
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.INDENT 0.0
|
||||
@@ -42,11 +42,10 @@ données généalogiques)
|
||||
.TP
|
||||
.B \fBSYNOPSIS\fP
|
||||
\fBgramps\fP [\fB\-?\fP | \fB\-\-help\fP] [\fB\-\-usage\fP] [\fB\-\-version\fP]
|
||||
[\fB\-l\fP] [\fB\-L\fP] [\fB\-u\fP | \fB\-\-force\-unlock\fP] [\fB\-O\fP | \fB\-\-open=\fP \fIBASE_DE_DONNEES\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]] [\fB\-i\fP | \fB\-\-import=\fP \fIFILE\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]] [\fB\-i\fP | \fB\-\-import=\fP \fI...\fP]
|
||||
[\fB\-e\fP | \fB\-\-export=\fP \fIFICHIER\fP [\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]]
|
||||
[\fB\-a\fP | \fB\-\-action=\fP \fIACTION\fP] [\fI\-p\fP | \fB\-\-options=\fP \fICHAÎNE‐
|
||||
[\fB\-l\fP] [\fB\-L\fP] [\fB\-u\fP | \fB\-\-force\-unlock\fP] [\fB\-O\fP | \fB\-\-open=\fP \fIBASE_DE_DONNEES\fP]
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP] [\fB\-i\fP | \fB\-\-import=\fP \fIFICHIER\fP]
|
||||
[\fB\-e\fP | \fB\-\-export=\fP \fIFICHIER\fP] [\fB\-\-remove=\fP \fIFAMILY_TREE_PATTERN\fP]
|
||||
[\fB\-a\fP | \fB\-\-action=\fP \fIACTION\fP [\fI\-p\fP | \fB\-\-options=\fP \fICHAÎNE‐
|
||||
OPTION\fP]] [\fIFICHIER\fP] [\fB\-\-version\fP]
|
||||
.TP
|
||||
.B \fBDESCRIPTION\fP
|
||||
@@ -76,16 +75,16 @@ Le format spécifique du \fIFICHIER\fP est précédé par les arguments
|
||||
alors le format sera celui de l\(aqextension ou du type\-MIME.
|
||||
.sp
|
||||
Les formats de sortie disponibles sont \fBgramps\-xml\fP (deviné si
|
||||
\fIFICHIER\fP se termine par \fB.gramps\fP ), et \fBgedcom\fP (deviné si \fIFICHIER\fP se
|
||||
termine par \fB.ged\fP ), ou tout autre fichier d\(aqexportation
|
||||
\fIFICHIER\fP se termine par \fB\&.gramps\fP ), et \fBgedcom\fP (deviné si \fIFICHIER\fP se
|
||||
termine par \fB\&.ged\fP ), ou tout autre fichier d\(aqexportation
|
||||
disponible dans le système de plugin Gramps.
|
||||
.sp
|
||||
Les formats disponibles pour l\(aqimportation sont \fBgrdb\fP ,
|
||||
\fBgramps\-xml\fP , \fBgedcom\fP , \fBgramps\-pkg\fP (deviné si \fIFICHIER\fP se termine par
|
||||
\fB.gpkg\fP ), et \fBgeneweb\fP (deviné si \fIFICHIER\fP se termine par \fB.gw\fP ).
|
||||
\fB\&.gpkg\fP ), et \fBgeneweb\fP (deviné si \fIFICHIER\fP se termine par \fB\&.gw\fP ).
|
||||
.sp
|
||||
Les formats disponibles pour l\(aqexportation sont \fBgramps\-xml\fP , \fBged‐
|
||||
com\fP , \fBgramps\-pkg\fP , \fBwft\fP (deviné si \fIFICHIER\fP se termine par \fB.wft\fP ),
|
||||
com\fP , \fBgramps\-pkg\fP , \fBwft\fP (deviné si \fIFICHIER\fP se termine par \fB\&.wft\fP ),
|
||||
\fBgeneweb\fP .
|
||||
.TP
|
||||
.B \fB\-l\fP
|
||||
@@ -193,7 +192,7 @@ fenêtre et demarrera avec une base vide, puisqu\(aqil n\(aqy a pas données.
|
||||
.sp
|
||||
Si aucune option \fB\-e\fP ou \fB\-a\fP n\(aqest donnée, gramps lancera sa propre
|
||||
fenêtre et démarrera avec la base de données issue de tout les imports.
|
||||
Cette base sera \fBimport_db.grdb\fP dans le répertoire \fB~/.gramps/import\fP.
|
||||
Cette base sera \fBimport_db.grdb\fP dans le répertoire \fB~/.gramps/import\fP\&.
|
||||
.sp
|
||||
Les erreurs rencontrées lors d\(aqimportation, d\(aqexportation, ou d\(aqaction, seront
|
||||
mémorisées en \fIstdout\fP (si elles sont le fait de la manipulation par
|
||||
@@ -302,7 +301,7 @@ besoins
|
||||
.INDENT 3.5
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.sp
|
||||
\fI${PREFIX}/lib/python/dist\-packages/gramps/\fP
|
||||
\fI${PREFIX}/lib/python3/dist\-packages/gramps/\fP
|
||||
.sp
|
||||
\fI${PREFIX}/share/\fP
|
||||
.sp
|
||||
@@ -334,10 +333,5 @@ La documentation pour développeur est disponible sur le site
|
||||
.UNINDENT
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.SH AUTHOR
|
||||
Jerome Rapinat
|
||||
.SH COPYRIGHT
|
||||
2015, Gramps project
|
||||
.\" Generated by docutils manpage writer.
|
||||
.\"
|
||||
.
|
||||
|
||||
@@ -1,332 +1,335 @@
|
||||
.TH gramps 1 "@VERSION@" "December 2012" "@VERSION@"
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH ENGLISH "" "" ""
|
||||
.SH NAME
|
||||
gramps \- Genealogical Research and Analysis Management Programming System.
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B gramps
|
||||
.RB [ \-?|\-\^\-help ]
|
||||
.RB [ \-\^\-usage ]
|
||||
.RB [ \-\^\-version ]
|
||||
.RB [ \-l ]
|
||||
.RB [ \-u|\-\^\-force-unlock ]
|
||||
.RB [ \-O|\-\^\-open=
|
||||
.IR DATABASE
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR FILE
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-i|\-\^\-import=
|
||||
.IR ... ]
|
||||
.RB [ \-e|\-\^\-export=
|
||||
.IR FILE
|
||||
.RB [ \-f|\-\^\-format=
|
||||
.IR FORMAT ]]
|
||||
.RB [ \-a|\-\^\-action=
|
||||
.IR ACTION ]
|
||||
.RB [ \-p|\-\^\-options=
|
||||
.IR OPTIONSTRING ]]
|
||||
.RB [
|
||||
.IR FILE
|
||||
.RB ]
|
||||
.if 0 .RB [ bonobo\ options ]
|
||||
.if 0 .RB [ sound\ options ]
|
||||
.RB [ \-\-version ]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\fIGramps\fP is a Free/OpenSource genealogy program. It is written in Python,
|
||||
using the GTK+/GNOME interface.
|
||||
Gramps should seem familiar to anyone who has used other genealogy programs
|
||||
before such as \fIFamily Tree Maker (TM)\fR, \fIPersonal Ancestral
|
||||
Files (TM)\fR, or the GNU Geneweb.
|
||||
It supports importing of the ever popular GEDCOM format which is used world
|
||||
wide by almost all other genealogy software.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BI gramps " FILE"
|
||||
When \fIFILE\fR is given (without any flags) as a family tree name or as
|
||||
a family tree database directory, then it is opened and an interactive
|
||||
session is started. If FILE is a file format understood by Gramps, an empty
|
||||
family tree is created whose name is based on the \fIFILE\fP name
|
||||
and the data is imported into it. The rest of the
|
||||
options is ignored. This way of launching is suitable for using gramps
|
||||
as a handler for genealogical data in e.g. web browsers. This invocation
|
||||
can accept any data format native to gramps, see below.
|
||||
.br
|
||||
|
||||
.TP
|
||||
.BI \-f,\-\^\-format= " FORMAT"
|
||||
Explicitly specify format of \fIFILE\fR given by preceding
|
||||
.ig
|
||||
\fB\-O\fR,
|
||||
English \-
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
.de1 rstReportMargin
|
||||
\\$1 \\n[an-margin]
|
||||
level \\n[rst2man-indent-level]
|
||||
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
-
|
||||
\\n[rst2man-indent0]
|
||||
\\n[rst2man-indent1]
|
||||
\\n[rst2man-indent2]
|
||||
..
|
||||
\fB\-i\fR, or
|
||||
\fB\-e\fR option. If the \fB\-f\fR option is not given for any \fIFILE\fR,
|
||||
the format of that file is guessed according to its extension or MIME-type.
|
||||
.br
|
||||
|
||||
Formats
|
||||
available for export are \fBgramps\-xml\fR (guessed if \fIFILE\fR ends with
|
||||
\fB.gramps\fR), \fBgedcom\fR (guessed if \fIFILE\fR ends with \fB.ged\fR), or
|
||||
any file export available through the Gramps plugin system.
|
||||
.br
|
||||
|
||||
Formats
|
||||
available for import are \fBgrdb\fR, \fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBgramps\-pkg\fR (guessed if \fIFILE\fR ends with \fB.gpkg\fR), and
|
||||
\fBgeneweb\fR (guessed if \fIFILE\fR ends with \fB.gw\fR).
|
||||
.br
|
||||
|
||||
Formats available for export are
|
||||
.ig
|
||||
\fBgrdb\fR,
|
||||
.de1 INDENT
|
||||
.\" .rstReportMargin pre:
|
||||
. RS \\$1
|
||||
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
||||
. nr rst2man-indent-level +1
|
||||
.\" .rstReportMargin post:
|
||||
..
|
||||
\fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBgramps\-pkg\fR, \fBwft\fR (guessed if \fIFILE\fR ends with \fB.wft\fR),
|
||||
\fBgeneweb\fR, and \fBiso\fR (never guessed, always specify with
|
||||
\fB\-f\fR option).
|
||||
|
||||
.TP
|
||||
.BI \-l
|
||||
.de UNINDENT
|
||||
. RE
|
||||
.\" indent \\n[an-margin]
|
||||
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.nr rst2man-indent-level -1
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \fBNAME\fP
|
||||
gramps \- Genealogical Research and Analysis Management Programming Sys‐
|
||||
tem.
|
||||
.TP
|
||||
.B \fBSYNOPSIS\fP
|
||||
\fBgramps\fP [\fB\-?\fP | \fB\-\-help\fP] [\fB\-\-usage\fP] [\fB\-\-version\fP]
|
||||
[\fB\-l\fP] [\fB\-L\fP] [\fB\-u\fP | \fB\-\-force\-unlock\fP] [\fB\-O\fP | \fB\-\-open=\fP \fIDATABASE\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP] [\fB\-i\fP | \fB\-\-import=\fP \fIFILE\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]] [\fB\-\-remove=\fP \fIFAMILY_TREE_PATTERN\fP]
|
||||
[\fB\-e\fP | \fB\-\-export=\fP \fIFILE\fP [\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]]
|
||||
[\fB\-a\fP | \fB\-\-action=\fP \fIACTION\fP] [\fI\-p\fP | \fB\-\-options=\fP \fIOPTION‐
|
||||
STRING\fP]] [\fIFILE\fP] [\fB\-\-version\fP]
|
||||
.TP
|
||||
.B \fBDESCRIPTION\fP
|
||||
Gramps is a Free/OpenSource genealogy program. It is written in Python,
|
||||
using the GTK+/GNOME interface. Gramps should seem familiar to anyone
|
||||
who has used other genealogy programs before such as Family Tree Maker
|
||||
(TM), Personal Ancestral Files (TM), or the GNU Geneweb. It supports
|
||||
importing of the ever popular GEDCOM format which is used world wide by
|
||||
almost all other genealogy software.
|
||||
.TP
|
||||
.B \fBOPTIONS\fP
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
.B \fBgramps\fP \fIFILE\fP
|
||||
When \fIFILE\fP is given (without any flags) as a family tree name or
|
||||
as a family tree database directory, then it is opened and an
|
||||
interactive session is started. If \fIFILE\fP is a file format under‐
|
||||
stood by Gramps, an empty family tree is created whose name is
|
||||
based on the \fIFILE\fP name and the data is imported into it. The
|
||||
rest of the options is ignored. This way of launching is suit‐
|
||||
able for using gramps as a handler for genealogical data in e.g.
|
||||
web browsers. This invocation can accept any data format native
|
||||
to gramps, see below.
|
||||
.TP
|
||||
.B \fB\-f\fP , \fB\-\-format=\fP \fIFORMAT\fP
|
||||
Explicitly specify format of \fIFILE\fP given by preceding \fB\-i\fP ,
|
||||
or \fB\-e\fP option. If the \fB\-f\fP option is not given for any
|
||||
\fIFILE\fP , the format of that file is guessed according to its extension
|
||||
or MIME\-type.
|
||||
.sp
|
||||
Formats available for export are \fBgramps\-xml\fP (guessed if \fIFILE\fP
|
||||
ends with \fB\&.gramps\fP ), \fBgedcom\fP (guessed if \fIFILE\fP ends with
|
||||
\fB\&.ged\fP ), or any file export available through the Gramps plugin
|
||||
system.
|
||||
.sp
|
||||
Formats available for import are \fBgramps\-xml\fP , \fBgedcom\fP ,
|
||||
\fBgramps\-pkg\fP (guessed if \fIFILE\fP ends with \fB\&.gpkg\fP ),
|
||||
and \fBgeneweb\fP (guessed if \fIFILE\fP ends with \fB\&.gw\fP ).
|
||||
.sp
|
||||
Formats available for export are \fBgramps\-xml\fP , \fBgedcom\fP ,
|
||||
\fBgramps\-pkg\fP , \fBwft\fP (guessed if \fIFILE\fP ends with \fB\&.wft\fP ),
|
||||
\fBgeneweb\fP\&.
|
||||
.TP
|
||||
.B \fB\-l\fP
|
||||
Print a list of known family trees.
|
||||
|
||||
.TP
|
||||
.BI \-u,\-\^\-force-unlock
|
||||
.B \fB\-L\fP
|
||||
Print a detailed list of known family trees.
|
||||
.TP
|
||||
.B \fB\-u\fP , \fB\-\-force\-unlock\fP
|
||||
Unlock a locked database.
|
||||
|
||||
.TP
|
||||
.BI \-O,\-\^\-open= " DATABASE"
|
||||
Open \fIDATABASE\fR which must be an existing database directory or existing family tree name.
|
||||
If no action, import or export options are given on the command line then an interactive session is started using that database.
|
||||
|
||||
.TP
|
||||
.BI \-i,\-\^\-import= " FILE"
|
||||
Import data from \fIFILE\fR. If you haven't specified a database, then an empty database is created for you called Family Tree x (where x is an incrementing number).
|
||||
.br
|
||||
|
||||
When more than one input file is given, each has to be preceded by \fB\-i\fR
|
||||
flag. The files are imported in the specified order,
|
||||
i.e. \fB\-i\fR \fIFILE1\fR \fB\-i\fR \fIFILE2\fR
|
||||
and \fB\-i\fR \fIFILE2\fR \fB\-i\fR \fIFILE1\fR might produce different
|
||||
gramps IDs in the resulting database.
|
||||
|
||||
.TP
|
||||
.BI \-e,\-\^\-export= " FILE"
|
||||
Export data into \fIFILE\fR. For \fBgramps\-xml\fR, \fBgedcom\fR,
|
||||
\fBwft\fR, \fBgramps\-pkg\fR, and \fBgeneweb\fR, the \fIFILE\fR is
|
||||
the name of the resulting file.
|
||||
.br
|
||||
|
||||
When more than one output file is given, each has to be preceded
|
||||
by \fB\-e\fR flag. The files are written one by one, in the specified order.
|
||||
|
||||
.TP
|
||||
.BI \-a,\-\^\-action= " ACTION"
|
||||
Perform \fIACTION\fR on the imported data. This is done after all imports
|
||||
are successfully completed. Currently available actions are
|
||||
\fBsummary\fR (same as Reports->View->Summary),
|
||||
\fBcheck\fR (same as Tools->Database Processing->Check and Repair),
|
||||
\fBreport\fR (generates report), and
|
||||
\fBtool\fR (runs a plugin tool).
|
||||
Both \fBreport\fR and \fBtool\fR need the \fIOPTIONSTRING\fR supplied by the
|
||||
\fB\-p\fR flag).
|
||||
.br
|
||||
|
||||
The \fIOPTIONSTRING\fR should satisfy the following conditions:
|
||||
.br
|
||||
It must not contain any spaces.
|
||||
If some arguments need to include spaces, the string should
|
||||
be enclosed with quotation marks, i.e., follow the shell syntax.
|
||||
Option string is a list of pairs with name and value (separated by the
|
||||
equality sign). The name and value pairs must be separated by commas.
|
||||
.br
|
||||
|
||||
Most of the report or tools options are specific for each report or tool.
|
||||
However, there are some common options.
|
||||
|
||||
.BI "name=name"
|
||||
.br
|
||||
This mandatory option determines which report or tool will be run.
|
||||
If the supplied \fIname\fR does not correspond to any available report or
|
||||
tool, an error message will be printed followed by the list of
|
||||
available reports or tools (depending on the \fIACTION\fR).
|
||||
|
||||
.BI "show=all"
|
||||
.br
|
||||
This will produce the list of names for all options available for a given
|
||||
report or tool.
|
||||
|
||||
.BI "show="optionname
|
||||
.br
|
||||
This will print the description of
|
||||
the functionality supplied by \fIoptionname\fR, as well as what are the
|
||||
acceptable types and values for this option.
|
||||
|
||||
.br
|
||||
Use the above options to find out
|
||||
everything about a given report.
|
||||
|
||||
.LP
|
||||
When more than one output action is given, each has to be preceded
|
||||
by \fB\-a\fR flag. The actions are performed one by one, in the specified order.
|
||||
|
||||
.TP
|
||||
.BI \-d,\-\^\-debug= " LOGGER_NAME"
|
||||
Enables debug logs for development and testing. Look at the source code for details
|
||||
.TP
|
||||
.BI \-\^\-version
|
||||
.B \fB\-O\fP , \fB\-\-open=\fP \fIDATABASE\fP
|
||||
Open \fIDATABASE\fP which must be an existing database directory or
|
||||
existing family tree name. If no action, import or export
|
||||
options are given on the command line then an interactive ses‐
|
||||
sion is started using that database.
|
||||
.TP
|
||||
.B \fB\-i\fP , \fB\-\-import=\fP \fIFILE\fP
|
||||
Import data from \fIFILE\fP . If you haven\(aqt specified a database, then
|
||||
an empty database is created for you called Family Tree x
|
||||
(where x is an incrementing number).
|
||||
.sp
|
||||
When more than one input file is given, each has to be preceded
|
||||
by \fB\-i\fP flag. The files are imported in the specified order, i.e.
|
||||
\fB\-i\fP \fIFILE1\fP \fB\-i\fP \fIFILE2\fP and \fB\-i\fP \fIFILE2\fP \fB\-i\fP \fIFILE1\fP
|
||||
might produce different gramps IDs in the resulting database.
|
||||
.TP
|
||||
.B \fB\-e\fP , \fB\-\-export=\fP \fIFILE\fP
|
||||
Export data into \fIFILE\fP . For \fBgramps\-xml\fP , \fBgedcom\fP
|
||||
, \fBwft\fP , \fBgramps\-pkg\fP , and \fBgeneweb\fP , the \fIFILE\fP is the
|
||||
name of the resulting file.
|
||||
.sp
|
||||
When more than one output file is given, each has to be preceded
|
||||
by \fB\-e\fP flag. The files are written one by one, in the specified order.
|
||||
.TP
|
||||
.B \fB\-a\fP , \fB\-\-action=\fP \fIACTION\fP
|
||||
Perform \fIACTION\fP on the imported data. This is done after all
|
||||
imports are successfully completed. Currently available actions
|
||||
are \fBsummary\fP (same as Reports\->View\->Summary), \fBcheck\fP (same as
|
||||
Tools\->Database Processing\->Check and Repair), \fBreport\fP (generates
|
||||
report), and tool (runs a plugin tool). Both \fBreport\fP and \fBtool\fP
|
||||
need the \fIOPTIONSTRING\fP supplied by the \fB\-p\fP flag).
|
||||
.sp
|
||||
The \fIOPTIONSTRING\fP should satisfy the following conditions:
|
||||
It must not contain any spaces. If some arguments need to
|
||||
include spaces, the string should be enclosed with quotation
|
||||
marks, i.e., follow the shell syntax. Option string is a list
|
||||
of pairs with name and value (separated by the equality sign).
|
||||
The name and value pairs must be separated by commas.
|
||||
.sp
|
||||
Most of the report or tools options are specific for each report
|
||||
or tool. However, there are some common options.
|
||||
.sp
|
||||
\fBname=name\fP
|
||||
This mandatory option determines which report or tool will be
|
||||
run. If the supplied name does not correspond to any available
|
||||
report or tool, an error message will be printed followed by the
|
||||
list of available reports or tools (depending on the \fIACTION\fP ).
|
||||
.sp
|
||||
\fBshow=all\fP
|
||||
This will produce the list of names for all options available
|
||||
for a given report or tool.
|
||||
.sp
|
||||
\fBshow=optionname\fP
|
||||
This will print the description of the functionality supplied by
|
||||
\fIoptionname\fP, as well as what are the acceptable types and values
|
||||
for this option.
|
||||
.sp
|
||||
Use the above options to find out everything about a given
|
||||
report.
|
||||
.UNINDENT
|
||||
.sp
|
||||
When more than one output action is given, each has to be preceded by
|
||||
\fB\-a\fP flag. The actions are performed one by one, in the specified order.
|
||||
.INDENT 7.0
|
||||
.TP
|
||||
.B \fB\-d\fP , \fB\-\-debug=\fP \fILOGGER_NAME\fP
|
||||
Enables debug logs for development and testing. Look at the
|
||||
source code for details
|
||||
.TP
|
||||
.B \fB\-\-version\fP
|
||||
Prints the version number of gramps and then exits
|
||||
\" change 0 to 1 to enable output of OAF options
|
||||
.if 0 \{
|
||||
.PP
|
||||
The following options are used for Bonobo activation.
|
||||
.TP
|
||||
.BI \-\^\-oaf-ior-fd= "FD"
|
||||
File descriptor to print the OAF IOR on
|
||||
.TP
|
||||
.BI \-\^\-oaf-activate-iid= " IID"
|
||||
OAF IID to activate
|
||||
.TP
|
||||
.BI \-\^\-oaf-private
|
||||
Prevent registering of server with OAF
|
||||
\}
|
||||
\" change 0 to 1 to enable output of Gnome sound options
|
||||
.if 0 \{
|
||||
.PP
|
||||
The following options are used for controlling sound using the Gnome Library.
|
||||
.UNINDENT
|
||||
.TP
|
||||
.BI \-\^\-disable-sound
|
||||
Disable sound server usage
|
||||
.B \fBOperation\fP
|
||||
If the first argument on the command line does not start with dash
|
||||
(i.e. no flag), gramps will attempt to open the file with the name
|
||||
given by the first argument and start interactive session, ignoring the
|
||||
rest of the command line arguments.
|
||||
.sp
|
||||
If the \fB\-O\fP flag is given, then gramps will try opening the supplied
|
||||
database and then work with that data, as instructed by the further
|
||||
command line parameters.
|
||||
.sp
|
||||
With or without the \fB\-O\fP flag, there could be multiple imports, exports,
|
||||
and actions specified further on the command line by using \fB\-i\fP ,
|
||||
\fB\-e\fP , and \fB\-a\fP flags.
|
||||
.sp
|
||||
The order of \fB\-i\fP , \fB\-e\fP , or \fB\-a\fP options does not matter. The actual order
|
||||
always is: all imports (if any) \-> all actions (if any) \-> all exports
|
||||
(if any). But opening must always be first!
|
||||
.sp
|
||||
If no \fB\-O\fP or \fB\-i\fP option is given, gramps will launch its main window and
|
||||
start the usual interactive session with the empty database, since
|
||||
there is no data to process, anyway.
|
||||
.sp
|
||||
If no \fB\-e\fP or \fB\-a\fP options are given, gramps will launch its main window
|
||||
and start the usual interactive session with the database resulted from
|
||||
all imports. This database resides in the \fBimport_db.grdb\fP under
|
||||
\fB~/.gramps/import\fP directory.
|
||||
.sp
|
||||
The error encountered during import, export, or action, will be either
|
||||
dumped to stdout (if these are exceptions handled by gramps) or to
|
||||
\fIstderr\fP (if these are not handled). Use usual shell redirections of
|
||||
\fIstdout\fP and \fIstderr\fP to save messages and errors in files.
|
||||
.TP
|
||||
.BI \-\^\-enable-sound
|
||||
Enable sound server usage
|
||||
.B \fBEXAMPLES\fP
|
||||
To open an existing family tree and import an xml file into it, one
|
||||
may type:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-O\fP \fI\(aqMy Family Tree\(aq\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
The above changes the opened family tree, to do the same, but import
|
||||
both in a temporary family tree and start an interactive session, one
|
||||
may type:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fI\(aqMy Family Tree\(aq\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
To import four databases (whose formats can be determined from their
|
||||
names) and then check the resulting database for errors, one may type:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
\fB\-i\fP \fIfile4.wft\fP \fB\-a\fP \fIcheck\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
To explicitly specify the formats in the above example, append file‐
|
||||
names with appropriate \fB\-f\fP options:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-f\fP \fIgedcom\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-f\fP
|
||||
\fIgramps\-pkg\fP \fB\-i\fP \fI~/db3.gramps\fP \fB\-f\fP \fIgramps\-xml\fP \fB\-i\fP \fIfile4.wft\fP
|
||||
\fB\-f\fP \fIwft\fP \fB\-a\fP \fIcheck\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
To record the database resulting from all imports, supply \fB\-e\fP flag (use
|
||||
\fB\-f\fP if the filename does not allow gramps to guess the format):
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-e\fP \fI~/new\-package\fP
|
||||
\fB\-f\fP \fIgramps\-pkg\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
To import three databases and start interactive gramps session with the
|
||||
result:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-i\fP \fIfile1.ged\fP \fB\-i\fP \fIfile2.tgz\fP \fB\-i\fP \fI~/db3.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
To run the Verify tool from the commandline and output the result to
|
||||
stdout:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps \-O\fP \fI\(aqMy Family Tree\(aq\fP \fB\-a\fP \fItool\fP \fB\-p name=\fP \fIverify\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.sp
|
||||
Finally, to start normal interactive session type:
|
||||
.INDENT 7.0
|
||||
.INDENT 3.5
|
||||
\fBgramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.TP
|
||||
.BI \-\^\-espeaker= " HOSTNAME:PORT"
|
||||
Host:port on which the sound server to use is running
|
||||
\}
|
||||
|
||||
.SH "Operation"
|
||||
.br
|
||||
If the first argument on the command line does not start with dash (i.e. no
|
||||
flag), gramps will attempt to open the file with the name given by the first
|
||||
argument and start interactive session, ignoring the rest of the command line
|
||||
arguments.
|
||||
|
||||
.LP
|
||||
If the \fB\-O\fR flag is given, then gramps will try opening
|
||||
the supplied database and then work with that data, as instructed by the
|
||||
further command line parameters.
|
||||
|
||||
.LP
|
||||
With or without the \fB\-O\fR flag, there could be multiple imports,
|
||||
exports, and actions specified further on the command line by using \fB\-i\fR,
|
||||
\fB\-e\fR, and \fB\-a\fR flags.
|
||||
|
||||
.LP
|
||||
The order of \fB\-i\fR, \fB\-e\fR, or \fB\-a\fR options does not matter. The
|
||||
actual order always is: all imports (if any) -> all actions (if any)
|
||||
-> all exports (if any). But opening must always be first!
|
||||
|
||||
.LP
|
||||
If no \fB\-O\fR or \fB\-i\fR option is given, gramps will launch its main
|
||||
window and start the usual interactive session with the empty database,
|
||||
since there is no data to process, anyway.
|
||||
|
||||
.LP
|
||||
If no \fB\-e\fR or \fB\-a\fR options are given, gramps will launch its main
|
||||
window and start the usual interactive session with the database resulted
|
||||
from all imports. This database resides in the \fBimport_db.grdb\fR
|
||||
under \fB~/.gramps/import\fR directory.
|
||||
|
||||
.LP
|
||||
The error encountered during import, export, or action, will be either
|
||||
dumped to \fIstdout\fR (if these are exceptions handled by gramps) or
|
||||
to \fIstderr\fR (if these are not handled). Use usual shell redirections
|
||||
of \fIstdout\fR and \fIstderr\fR to save messages and errors in files.
|
||||
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
To open an existing family tree and import an xml file into it, one may type:
|
||||
\fBgramps\fR \fB\-O\fR \fI'My Family Tree'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
The above changes the opened family tree, to do the same, but import both in a temporary family tree and start an interactive session, one may type:
|
||||
\fBgramps\fR \fB\-i\fR \fI'My Family Tree'\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
To import four databases (whose formats can be determined from their names) and then check the resulting database for errors, one may type:
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-i\fR \fIfile4.wft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
To explicitly specify the formats in the above example, append filenames with appropriate \fB\-f\fR options:
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-f\fR \fIgedcom\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-f\fR \fIgramps-pkg\fR \fB\-i\fR \fI~/db3.gramps\fR \fB\-f\fR \fIgramps-xml\fR \fB\-i\fR \fIfile4.wft\fR \fB\-f\fR \fIwft\fR \fB\-a\fR \fIcheck\fR
|
||||
.TP
|
||||
To record the database resulting from all imports, supply \fB\-e\fR flag (use \fB\-f\fR if the filename does not allow gramps to guess the format):
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-e\fR \fI~/new-package\fR \fB\-f\fR \fIgramps-pkg\fR
|
||||
.TP
|
||||
To import three databases and start interactive gramps session with the result:
|
||||
\fBgramps\fR \fB\-i\fR \fIfile1.ged\fR \fB\-i\fR \fIfile2.tgz\fR \fB\-i\fR \fI~/db3.gramps\fR
|
||||
.TP
|
||||
To run the Verify tool from the commandline and output the result to stdout:
|
||||
\fBgramps\fR \fB\-O\fR \fI'My Family Tree'\fR \fB-a\fR \fItool\fR \fB-p\fR \fBname\fR=\fIverify\fR
|
||||
.TP
|
||||
Finally, to start normal interactive session type:
|
||||
\fBgramps\fR
|
||||
|
||||
.SH ENVIRONMENT VARIABLES
|
||||
.B \fBENVIRONMENT VARIABLES\fP
|
||||
The program checks whether these environment variables are set:
|
||||
|
||||
\fBLANG\fR - describe, which language to use:
|
||||
Ex.: for polish language this variable has to be set to pl_PL.UTF-8.
|
||||
|
||||
\fBGRAMPSHOME\fR - if set, force Gramps to use the specified directory to keep
|
||||
program settings and databases there. By default, this variable is not set and
|
||||
gramps assumes that the folder with all databases and profile settings
|
||||
should be created within the user profile folder (described by environment
|
||||
variable HOME for Linux or USERPROFILE for Windows 2000/XP).
|
||||
|
||||
.SH CONCEPTS
|
||||
Supports a python\-based plugin system, allowing import and export writers,
|
||||
report generators, tools, and display filters to be added without modification
|
||||
of the main program.
|
||||
.LP
|
||||
In addition to generating direct printer output, report generators also
|
||||
target other systems, such as \fIOpenOffice.org\fR, \fIAbiWord\fR, HTML,
|
||||
or LaTeX to allow the users to modify the format to suit their needs.
|
||||
|
||||
.SH KNOWN BUGS AND LIMITATIONS
|
||||
|
||||
.SH FILES
|
||||
.LP
|
||||
.sp
|
||||
\fBLANG\fP \- describe, which language to use: Ex.: for polish language this
|
||||
variable has to be set to pl_PL.UTF\-8.
|
||||
.sp
|
||||
\fBGRAMPSHOME\fP \- if set, force Gramps to use the specified directory to
|
||||
keep program settings and databases there. By default, this variable is
|
||||
not set and gramps assumes that the folder with all databases and pro‐
|
||||
file settings should be created within the user profile folder
|
||||
(described by environment variable HOME for Linux or USERPROFILE for
|
||||
Windows 2000/XP).
|
||||
.TP
|
||||
.B \fBCONCEPTS\fP
|
||||
Supports a python\-based plugin system, allowing import and export writ‐
|
||||
ers, report generators, tools, and display filters to be added without
|
||||
modification of the main program.
|
||||
.sp
|
||||
In addition to generating direct printer output, report generators also
|
||||
target other systems, such as \fILibreOffice.org\fP , \fIAbiWord\fP , \fIHTML\fP,
|
||||
or \fILaTeX\fP to allow the users to modify the format to suit their needs.
|
||||
.UNINDENT
|
||||
.sp
|
||||
\fBKNOWN BUGS AND LIMITATIONS\fP
|
||||
.sp
|
||||
\fBFILES\fP
|
||||
.INDENT 0.0
|
||||
.INDENT 3.5
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.br
|
||||
\fI${PREFIX}/lib/python/dist\-packages/gramps/\fP
|
||||
.br
|
||||
.sp
|
||||
\fI${PREFIX}/lib/python3/dist\-packages/gramps/\fP
|
||||
.sp
|
||||
\fI${PREFIX}/share/\fP
|
||||
.br
|
||||
\fI${HOME}/.gramps\fP
|
||||
|
||||
.SH AUTHORS
|
||||
Donald Allingham \fI<don@gramps-project.org>\fR
|
||||
.br
|
||||
\fIhttp://gramps.sourceforge.net\fR
|
||||
.LP
|
||||
.sp
|
||||
\fI${HOME}/.gramps\fP
|
||||
.UNINDENT
|
||||
.UNINDENT
|
||||
.INDENT 0.0
|
||||
.TP
|
||||
.B \fBAUTHORS\fP
|
||||
Donald Allingham <\fI\%don@gramps\-project.org\fP>
|
||||
\fI\%http://gramps\-project.org/\fP
|
||||
.sp
|
||||
This man page was originally written by:
|
||||
.br
|
||||
Brandon L. Griffith \fI<brandon@debian.org>\fR
|
||||
.br
|
||||
Brandon L. Griffith <\fI\%brandon@debian.org\fP>
|
||||
for inclusion in the Debian GNU/Linux system.
|
||||
.LP
|
||||
.sp
|
||||
This man page is currently maintained by:
|
||||
.br
|
||||
Gramps project \fI<xxx@gramps-project.org>\fR
|
||||
.br
|
||||
|
||||
.SH DOCUMENTATION
|
||||
The user documentation is available through standard GNOME Help browser
|
||||
in the form of Gramps Manual. The manual is also available in XML format
|
||||
as \fBgramps-manual.xml\fR under \fIdoc/gramps-manual/$LANG\fR in the official
|
||||
source distribution.
|
||||
.LP
|
||||
Gramps project <\fI\%xxx@gramps\-project.org\fP>
|
||||
.TP
|
||||
.B \fBDOCUMENTATION\fP
|
||||
The user documentation is available through standard web browser
|
||||
in the form of Gramps Manual.
|
||||
.sp
|
||||
The developer documentation can be found on the
|
||||
\fIhttp://developers.gramps-project.org\fR site.
|
||||
\fI\%http://www.gramps\-project.org/wiki/index.php?title=Portal:Developers\fP
|
||||
portal.
|
||||
.UNINDENT
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.\" Generated by docutils manpage writer.
|
||||
.
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"""
|
||||
update_man.py for command line documentation.
|
||||
|
||||
Examples:
|
||||
Examples:
|
||||
python update_man.py -t
|
||||
|
||||
Tests if 'sphinx' and 'python' are well configured.
|
||||
@@ -43,13 +43,13 @@ except:
|
||||
DOCUTILS = False
|
||||
|
||||
LANGUAGES = ['sv', 'nl', 'pl', 'cs', 'pt_BR', 'fr']
|
||||
VERSION = '4.2.0'
|
||||
VERSION = '5.0.0'
|
||||
DATE = ''
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXBUILD = 'sphinx-build'
|
||||
|
||||
if sys.platform == 'win32':
|
||||
if sys.platform == 'win32':
|
||||
pythonCmd = os.path.join(sys.prefix, 'bin', 'python.exe')
|
||||
sphinxCmd = os.path.join(sys.prefix, 'bin', 'sphinx-build.exe')
|
||||
elif sys.platform in ['linux2', 'darwin', 'cygwin']:
|
||||
@@ -70,13 +70,13 @@ def tests():
|
||||
os.system('''%(program)s -V''' % {'program': pythonCmd})
|
||||
except:
|
||||
print ('Please, install python')
|
||||
|
||||
|
||||
try:
|
||||
print("\n=================='Shpinx-build'=============================\n")
|
||||
print("\n=================='Sphinx-build'=============================\n")
|
||||
os.system('''%(program)s''' % {'program': sphinxCmd})
|
||||
except:
|
||||
print ('Please, install sphinx')
|
||||
|
||||
|
||||
if not DOCUTILS:
|
||||
print('\nNo docutils support, cannot use -m/--man and -o/--odt arguments.')
|
||||
|
||||
@@ -85,49 +85,49 @@ def main():
|
||||
The utility for handling documentation stuff.
|
||||
What is need by Gramps, nothing more.
|
||||
"""
|
||||
|
||||
parser = ArgumentParser(
|
||||
description='This program aims to handle documentation'
|
||||
' and realted translated versions.',
|
||||
|
||||
parser = ArgumentParser(
|
||||
description='This program aims to handle documentation'
|
||||
' and related translated versions.',
|
||||
)
|
||||
|
||||
|
||||
parser.add_argument("-t", "--test",
|
||||
action="store_true", dest="test", default=True,
|
||||
help="test if 'python' and 'sphinx' are properly installed")
|
||||
|
||||
|
||||
parser.add_argument("-b", "--build",
|
||||
action="store_true", dest="build", default=False,
|
||||
help="build man documentation (via sphinx-build)")
|
||||
|
||||
|
||||
parser.add_argument("-m", "--man",
|
||||
action="store_true", dest="man", default=False,
|
||||
help="build man documentation (via docutils)")
|
||||
|
||||
|
||||
parser.add_argument("-o", "--odt",
|
||||
action="store_true", dest="odt", default=False,
|
||||
help="build odt documentation (via docutils)")
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
||||
if args.test:
|
||||
tests()
|
||||
|
||||
|
||||
if args.build:
|
||||
build()
|
||||
|
||||
|
||||
if args.man and DOCUTILS:
|
||||
man()
|
||||
|
||||
|
||||
if args.odt and DOCUTILS:
|
||||
odt()
|
||||
|
||||
|
||||
def build():
|
||||
"""
|
||||
Build documentation.
|
||||
"""
|
||||
|
||||
|
||||
# testing stage
|
||||
|
||||
|
||||
os.system('''%(program)s -b html . _build/html''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b htmlhelp . _build/htmlhelp''' % {'program': sphinxCmd})
|
||||
if DOCUTILS:
|
||||
@@ -136,48 +136,48 @@ def build():
|
||||
os.system('''%(program)s -b changes . _build/changes''' % {'program': sphinxCmd})
|
||||
#os.system('''%(program)s -b linkcheck . _build/linkcheck''' % {'program': sphinxCmd})
|
||||
os.system('''%(program)s -b gettext . _build/gettext''' % {'program': sphinxCmd})
|
||||
|
||||
|
||||
for lang in LANGUAGES:
|
||||
os.system('''%(program)s -b html -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
os.system('''%(program)s -b html -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
os.system('''%(program)s -b htmlhelp -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
os.system('''%(program)s -b htmlhelp -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
if DOCUTILS:
|
||||
os.system('''%(program)s -b man %(lang)s %(lang)s'''
|
||||
os.system('''%(program)s -b man %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
os.system('''%(program)s -b text -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
os.system('''%(program)s -b text -D language="%(lang)s" master_doc="%(lang)s" %(lang)s %(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
# for update/migration
|
||||
os.system('''%(program)s -b gettext -D language="%(lang)s" master_doc="%(lang)s" . _build/gettext/%(lang)s'''
|
||||
os.system('''%(program)s -b gettext -D language="%(lang)s" master_doc="%(lang)s" . _build/gettext/%(lang)s'''
|
||||
% {'lang': lang, 'program': sphinxCmd})
|
||||
|
||||
|
||||
def man():
|
||||
"""
|
||||
man file generation via docutils (python)
|
||||
|
||||
|
||||
from docutils.core import publish_cmdline, default_description
|
||||
from docutils.writers import manpage
|
||||
"""
|
||||
|
||||
os.system('''rst2man en.rst gramps.1''')
|
||||
|
||||
|
||||
os.system('''rst2man en.rst gramps.1''')
|
||||
|
||||
for lang in LANGUAGES:
|
||||
os.system('''rst2man %(lang)s/%(lang)s.rst -l %(lang)s %(lang)s/gramps.1'''
|
||||
os.system('''rst2man %(lang)s/%(lang)s.rst -l %(lang)s %(lang)s/gramps.1'''
|
||||
% {'lang': lang})
|
||||
|
||||
|
||||
def odt():
|
||||
"""
|
||||
odt file generation via docutils (python)
|
||||
|
||||
|
||||
from docutils.core import publish_cmdline_to_binary, default_description
|
||||
from docutils.writers.odf_odt import Writer, Reader
|
||||
"""
|
||||
|
||||
os.system('''rst2odt en.rst gramps.odt''')
|
||||
|
||||
|
||||
os.system('''rst2odt en.rst gramps.odt''')
|
||||
|
||||
for lang in LANGUAGES:
|
||||
os.system('''rst2odt %(lang)s/%(lang)s.rst -l %(lang)s %(lang)s/gramps.odt'''
|
||||
os.system('''rst2odt %(lang)s/%(lang)s.rst -l %(lang)s %(lang)s/gramps.odt'''
|
||||
% {'lang': lang})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
{% extends "admin/base_site.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{% trans 'Page not found' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<h2>{% trans 'Page not found' %}</h2>
|
||||
|
||||
<p>{% trans "We're sorry, but the requested page could not be found." %}</p>
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,12 +0,0 @@
|
||||
{% extends "admin/base_site.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans "Home" %}</a> › {% trans "Server error" %}</div>{% endblock %}
|
||||
|
||||
{% block title %}{% trans 'Server error (500)' %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>{% trans 'Server Error <em>(500)</em>' %}</h1>
|
||||
<p>{% trans "There's been an error. It's been reported to the site administrators via e-mail and should be fixed shortly. Thanks for your patience." %}</p>
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,21 +0,0 @@
|
||||
{% extends "admin/base.html" %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block title %}{{ title }} | Adminstration{% endblock %}
|
||||
|
||||
{% block branding %}
|
||||
<h1 id="site-name">Administration</h1>
|
||||
{% endblock %}
|
||||
|
||||
{% block nav-global %}
|
||||
{% if user.is_staff %}
|
||||
<style type="text/css">
|
||||
.ml {margin:0 10px 10px;display:block;float:left}
|
||||
</style>
|
||||
|
||||
<a href="/" clas="ml">Home</a>
|
||||
<a href="/admin/" class="ml">Administration home</a>
|
||||
<a href="/admin/auth/user/?is_active__exact=0" class="ml">New Users</a>
|
||||
<a href="/admin/auth/user/" class="ml">All Users</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,30 +0,0 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}{{sitename}}{% endblock %}
|
||||
{% block heading %}{{sitename}}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p id="description">
|
||||
Database information:</p>
|
||||
|
||||
<table class="infolist surname">
|
||||
<tr>
|
||||
<th>Item</th>
|
||||
<th>Count</th>
|
||||
</tr>
|
||||
{% for view in views %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
{% if view.2 %}
|
||||
<td align="left"><a href="/{{view.1}}">{{view.0}}</a></td>
|
||||
<td align="left"><a href="/{{view.1}}">{{view.1|table_count}}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
{% load my_tags %}
|
||||
{% filter breadcrumb %}
|
||||
{% format "/browse|Browse" %}||
|
||||
{% format "/%s/%s|%s" view args tviews %}
|
||||
{% if object.gramps_id %}
|
||||
|| {% format "/%s/%s|%s [%s]" view object.handle tview object.gramps_id %}
|
||||
{% else %}
|
||||
{% if object.name %}
|
||||
|| {% format "/%s/%s|%s [%s]" view object.handle tview object.name %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfilter %}
|
||||
@@ -1,399 +0,0 @@
|
||||
{% load my_tags %}
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
|
||||
<head>
|
||||
<title>{% block title %}{{sitename}}{% endblock %}</title>
|
||||
{% block meta %}
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
|
||||
<meta http-equiv="Content-Style-Type" content="text/css" />
|
||||
<meta name="generator" content="Gramps 3.2.0-0.SVN12859M http://gramps-project.org/" />
|
||||
<meta name="author" content="" />
|
||||
{% endblock %}
|
||||
<link href="/images/ped24.ico" type="image/x-icon" rel="shortcut icon" />
|
||||
{% block css %}
|
||||
<link media="screen" href="/styles/css/{{css_theme}}" type="text/css" rel="stylesheet" />
|
||||
<link media="print" href="/styles/css/Web_Print-Default.css" type="text/css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="/styles/javascript/jquery-1.3.2.min.js"></script>
|
||||
<script type="text/javascript" src="/styles/javascript/jquery-ui-1.7.2.custom.min.js"></script>
|
||||
<script type="text/javascript" src="/styles/jhtmlarea/scripts/jHtmlArea-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="/styles/jhtmlarea/style/jHtmlArea.css" />
|
||||
<script type="text/javascript" src="/styles/javascript/jquery.flexbox.min.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="/styles/css/jquery.flexbox.css" />
|
||||
{% endblock %}
|
||||
|
||||
<style type="text/css">
|
||||
table td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
div.content {
|
||||
background: none;
|
||||
}
|
||||
.content {
|
||||
padding: 0px 0px 10px;
|
||||
}
|
||||
.browsecell {
|
||||
display: block;
|
||||
}
|
||||
#subtitle {
|
||||
font-weight: bold;
|
||||
font-style: italic;
|
||||
border-top: 1px solid;
|
||||
}
|
||||
td.ColumnAttribute {
|
||||
text-align: right;
|
||||
}
|
||||
#error {
|
||||
color: red;
|
||||
}
|
||||
{% if action == "edit" or action == "add" %}
|
||||
{% else %}
|
||||
#rowspace {
|
||||
height: 3px;
|
||||
}
|
||||
#data {
|
||||
border: 1px solid;
|
||||
background-color: white;
|
||||
color: brown;
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
/* Component containers */
|
||||
.ui-widget {
|
||||
font-family: Georgia,serif;
|
||||
font-size: small;
|
||||
}
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button {
|
||||
font-family: Georgia,serif;
|
||||
font-size: small;
|
||||
}
|
||||
.ui-widget-content {
|
||||
border: 1px solid #7D5925;
|
||||
color: #7D5925;
|
||||
float: left;
|
||||
width: 98%;
|
||||
}
|
||||
.ui-widget-content a {
|
||||
color: #7D5925;
|
||||
}
|
||||
.ui-widget-header {
|
||||
color: #ffffff;
|
||||
}
|
||||
.ui-widget-header a {
|
||||
color: #7D5925;
|
||||
}
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay {
|
||||
background: #aaaaaa;
|
||||
opacity: .30;
|
||||
}
|
||||
|
||||
.ui-widget-shadow {
|
||||
margin: -8px 0 0 -8px;
|
||||
padding: 8px;
|
||||
opacity: .30;
|
||||
-webkit-border-radius: 8px;
|
||||
}
|
||||
|
||||
/* Interaction states */
|
||||
.ui-state-default {
|
||||
border: 1px solid #7D5925;
|
||||
background: #FFF2C6;
|
||||
font-weight: normal;
|
||||
color: #7D5925;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited {
|
||||
color: #7D5925;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-hover, .ui-state-focus {
|
||||
border: 1px solid #f5ad66;
|
||||
background: #f5f0e5;
|
||||
font-weight: normal;
|
||||
color: #a46313;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-hover a, .ui-state-hover a:hover {
|
||||
color: #a46313;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-active {
|
||||
border: 1px solid #7D5925;
|
||||
background: #f4f0ec;
|
||||
font-weight: normal;
|
||||
color: #b85700;
|
||||
outline: none;
|
||||
}
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
|
||||
color: #b85700;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Interaction Cues */
|
||||
.ui-state-highlight {
|
||||
border: 1px solid #d9bb73;
|
||||
background: #f5f5b5;
|
||||
color: #060200;
|
||||
}
|
||||
.ui-state-highlight a {
|
||||
color: #060200;
|
||||
}
|
||||
.ui-state-error {
|
||||
border: 1px solid #f8893f;
|
||||
background: #fee4bd;
|
||||
color: #dd4e2c;
|
||||
}
|
||||
.ui-state-error a {
|
||||
color: #dd4e2c;
|
||||
}
|
||||
.ui-state-error-text {
|
||||
color: #dd4e2c;
|
||||
}
|
||||
.ui-state-disabled {
|
||||
opacity: .35;
|
||||
background-image: none;
|
||||
}
|
||||
.ui-priority-primary {
|
||||
font-weight: bold;
|
||||
}
|
||||
.ui-priority-secondary {
|
||||
opacity: .7;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
.ui-tabs {
|
||||
padding: .2em;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav {
|
||||
list-style: none;
|
||||
position: relative;
|
||||
padding: .2em .2em 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li {
|
||||
position: relative;
|
||||
float: left;
|
||||
margin: .2em .2em -1px 0;
|
||||
padding: 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li a {
|
||||
float: left;
|
||||
text-decoration: none;
|
||||
padding: .5em 1em;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected {
|
||||
padding-bottom: 1px;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a {
|
||||
cursor: text;
|
||||
}
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
|
||||
cursor: pointer;
|
||||
} /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel {
|
||||
padding: 1em 1.4em;
|
||||
display: block;
|
||||
border-width: 0;
|
||||
background: none;
|
||||
}
|
||||
.ui-tabs .ui-tabs-hide {
|
||||
display: none !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<SCRIPT LANGUAGE="JavaScript">
|
||||
<!--
|
||||
var timerId=0 ;
|
||||
|
||||
function clearTimer() {
|
||||
if (timerId!=0) {
|
||||
clearTimeout(timerId); timerId=0; }}
|
||||
|
||||
function startTimer() {
|
||||
clearTimer(); timerId=setTimeout('timerId=0;hideMenus()',200);
|
||||
}
|
||||
|
||||
function showMenu(menuNum) {
|
||||
clearTimer(); hideMenus();
|
||||
document.getElementById('menu_'+menuNum).style.display="";
|
||||
}
|
||||
|
||||
function hideMenus() {
|
||||
document.getElementById('menu_browse').style.display="none";
|
||||
}
|
||||
|
||||
function hiLite(theOption) {
|
||||
clearTimer();
|
||||
document.getElementById('opt_'+theOption).style.background='#9090FF';
|
||||
}
|
||||
|
||||
function unLite(theOption) {
|
||||
startTimer();
|
||||
document.getElementById('opt_'+theOption).style.background='#D0D0FF';
|
||||
}
|
||||
|
||||
function optClick(theOption) {
|
||||
document.location.href=theOption;
|
||||
}
|
||||
|
||||
function setHasData(classname, value) {
|
||||
var elems = document.getElementsByTagName('*'), i;
|
||||
for (i in elems) {
|
||||
if((" " + elems[i].className + " ").indexOf(" " + classname + " ") > -1) {
|
||||
if (value) {
|
||||
elems[i].style.fontWeight = "bold";
|
||||
elems[i].style.fontStyle = "italic";
|
||||
} else {
|
||||
elems[i].style.fontWeight = "";
|
||||
elems[i].style.fontStyle = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function setReturnValues() {
|
||||
var elems = document.getElementsByTagName('*'), i;
|
||||
for (i in elems) {
|
||||
if ((" " + elems[i].name + " ").indexOf("_return ") > -1) {
|
||||
var pos = (" " + elems[i].name + " ").indexOf("_return ");
|
||||
var s = elems[i].name.substring(0, pos - 1);
|
||||
var v = document.getElementsByName(s)[0];
|
||||
elems[i].value = v.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function buttonOver(button) {
|
||||
button.style.backgroundColor = "white";
|
||||
button.style.border = "1px solid gray";
|
||||
}
|
||||
|
||||
function buttonOut(button) {
|
||||
button.style.backgroundColor = "lightgray";
|
||||
button.style.border = "1px solid lightgray";
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
|
||||
<STYLE TYPE="text/css">
|
||||
<!--
|
||||
.popupMenu {
|
||||
// font-family : Verdana,Tahoma,Helvetica,sans-serif;
|
||||
// font-size : 12px;
|
||||
color : #111111;
|
||||
position : absolute;
|
||||
// top : 72px;
|
||||
border : 1px;
|
||||
padding : 3px;
|
||||
z-index : 16;
|
||||
background-color: #D0D0FF;
|
||||
cursor : pointer; }
|
||||
-->
|
||||
</STYLE>
|
||||
</head>
|
||||
<body onclick="hideMenus()"
|
||||
onload="if (document.getElementById('get_focus')) {document.getElementById('get_focus').focus();}"
|
||||
>
|
||||
<div id="header" style="padding-top: 1em; background-position:0px -32px;">
|
||||
<h1 id="SiteTitle" style="margin-left: 0em;">{% block heading %}{{sitename}}{% endblock %}</h1>
|
||||
</div>
|
||||
|
||||
<div class="wrapper" role="navigation" id="nav">
|
||||
{% block navigation %}
|
||||
<div class="container">
|
||||
<ul class="menu" id="dropmenu">
|
||||
<li {{ tview|currentSection:"home" }}><a href="/">Home</a></li>
|
||||
{% for title in menu %}
|
||||
{# (<Nice name>, /<path>/, <Model> | None, Need authentication ) #}
|
||||
{% if title.3 %}
|
||||
{% if user.is_authenticated %}
|
||||
<li {{tview|currentSection:title.1 }}>
|
||||
{% if title.1 %}
|
||||
<a href="/{{title.1}}/">{{title.0}}</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<a href="/">{{title.0}}</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{# don't show #}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<li {{tview|currentSection:title.1 }}>
|
||||
{% if title.1 %}
|
||||
<a href="/{{title.1}}/"
|
||||
onmouseover="showMenu('{{title.1}}')"
|
||||
onmouseout="startTimer()"
|
||||
style="cursor:pointer"
|
||||
href="/browse/">{{title.0}}</a>
|
||||
<DIV CLASS="popupMenu" ID="menu_browse" STYLE="display:none;">
|
||||
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
|
||||
<TR ID="opt_person"><TD><A ONMOUSEOVER="hiLite('person')" ONMOUSEOUT="unLite('person')" ONCLICK="optClick('/person/')">People</A></TD></TR>
|
||||
<TR ID="opt_family"><TD><A ONMOUSEOVER="hiLite('family')" ONMOUSEOUT="unLite('family')" ONCLICK="optClick('/family/')">Families</A></TD></TR>
|
||||
<TR ID="opt_event"><TD><A ONMOUSEOVER="hiLite('event')" ONMOUSEOUT="unLite('event')" ONCLICK="optClick('/event/')">Events</A></TD></TR>
|
||||
<TR ID="opt_note"><TD><A ONMOUSEOVER="hiLite('note')" ONMOUSEOUT="unLite('note')" ONCLICK="optClick('/note/')">Note</A></TD></TR>
|
||||
<TR ID="opt_media"><TD><A ONMOUSEOVER="hiLite('media')" ONMOUSEOUT="unLite('media')" ONCLICK="optClick('/media/')">Media</A></TD></TR>
|
||||
<TR ID="opt_citation"><TD><A ONMOUSEOVER="hiLite('citation')" ONMOUSEOUT="unLite('citation')" ONCLICK="optClick('/citation/')">Citations</A></TD></TR>
|
||||
<TR ID="opt_source"><TD><A ONMOUSEOVER="hiLite('source')" ONMOUSEOUT="unLite('source')" ONCLICK="optClick('/source/')">Sources</A></TD></TR>
|
||||
<TR ID="opt_place"><TD><A ONMOUSEOVER="hiLite('place')" ONMOUSEOUT="unLite('place')" ONCLICK="optClick('/place/')">Places</A></TD></TR>
|
||||
<TR ID="opt_repository"><TD><A ONMOUSEOVER="hiLite('repsoitory')" ONMOUSEOUT="unLite('repository')" ONCLICK="optClick('/repository/')">Repository</A></TD></TR>
|
||||
<TR ID="opt_tag"><TD><A ONMOUSEOVER="hiLite('tag')" ONMOUSEOUT="unLite('tag')" ONCLICK="optClick('/tag/')">Tags</A></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
</li>
|
||||
{% else %}
|
||||
<a href="/">{{title.0}}</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% if user.is_authenticated %}
|
||||
{% if next %}
|
||||
<li><a href="/logout/?next={{next}}">Logout</a></li>
|
||||
{% else %}
|
||||
<li><a href="/logout">Logout</a></li>
|
||||
{% endif %}
|
||||
{% if user.is_superuser %}
|
||||
<li><a href="/admin">Admin</a></li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if next %}
|
||||
<li><a href="/login/?next={{next}}">Login</a></li>
|
||||
{% else %}
|
||||
<li><a href="/login/">Login</a></li>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="grampsweb">
|
||||
{% for message in messages %}
|
||||
<font color="red">{{message}}</font><br/>
|
||||
{% endfor %}
|
||||
{% if message %}
|
||||
<div id="system_message" class="{{ message_type }}">
|
||||
<font color="red">{{message}}</font><br/>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
<div class="content">
|
||||
</div>
|
||||
</div>
|
||||
<div id="footer">
|
||||
{% block footer %}
|
||||
<p id="createdate">
|
||||
<a href="http://www.gramps-project.org/wiki/index.php?title=Gramps-Connect">Gramps-Connect, version {{gramps_version}}</a>.
|
||||
</p>
|
||||
<p id="copyright">© 2009-2015 <a href="http://www.gramps-project.org/">www.gramps-project.org</a>
|
||||
</p>
|
||||
{% endblock %}
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,38 +0,0 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}{{sitename}}{% endblock %}
|
||||
{% block heading %}{{sitename}}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p id="description">Welcome to <b>{{sitename}}</b>, a new web-based collaboration tool.
|
||||
|
||||
{% if user.is_authenticated %}
|
||||
You are now logged in
|
||||
as <a href="/user/{{user.username}}">{{user.username}}</a>.
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<p id="description">
|
||||
Database information:</p>
|
||||
|
||||
<table class="infolist surname">
|
||||
<tr>
|
||||
<th>Item</th>
|
||||
<th>Count</th>
|
||||
</tr>
|
||||
{% for view in views %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
{% if view.2 %}
|
||||
<td align="left"><a href="/{{view.1}}">{{view.0}}</a></td>
|
||||
<td align="left"><a href="/{{view.1}}">{{view.1|table_count}}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
<div class="pagination">
|
||||
<span class="step-links">
|
||||
<form method="post">{% csrf_token %}
|
||||
<div id="alphanav" style="padding: 0pt 0 0pt 0;">
|
||||
<ul>
|
||||
{% ifequal page.number 1 %}
|
||||
<li><input type="button" value="<<" disabled="disabled"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value="<<" onclick="document.location.href='?page=1{{search_query}}'"></li>
|
||||
{% endifequal %}
|
||||
{% if page.has_previous %}
|
||||
<li><input type="button" value="<" onclick="document.location.href='?page={{page.previous_page_number}}{{search_query}}'"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value="<" disabled="disabled"></li>
|
||||
{% endif %}
|
||||
|
||||
<span class="current">
|
||||
<li>Page {{ page.number }} of {{ page.paginator.num_pages }}</li>
|
||||
</span>
|
||||
|
||||
{% if page.has_next %}
|
||||
<li><input type="button" value=">" onclick="document.location.href='?page={{page.next_page_number}}{{search_query}}'"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value=">" disabled="disabled"></li>
|
||||
{% endif %}
|
||||
{% ifequal page.number page.paginator.num_pages %}
|
||||
<li><input type="button" value=">>" disabled="disabled"></li>
|
||||
{% else %}
|
||||
<li><input type="button" value=">>" onclick="document.location.href='?page={{page.paginator.num_pages}}{{search_query}}'"></li>
|
||||
{% endifequal %}
|
||||
<b>Matches</b>: {{page.paginator.count}}/{{total}} <b>Showing</b>: {{results_this_page}}
|
||||
</ul>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 4 cols {% endcomment %}
|
||||
<tbody>
|
||||
{% if pickform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{pickform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Pick:</td>
|
||||
{% if user.is_authenticated %}
|
||||
<td class="ColumnValue" id="data">{{pickform.picklist}}</td>
|
||||
{% else %}
|
||||
<td class="ColumnValue" id="data"></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% make_button "Cancel" "/%s/%s" object_type object_handle args %}
|
||||
<input type="hidden" name="action" value="save-share"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
<h2>Temporary Reference Detail</h2>
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<trbody>
|
||||
{% if form.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{form.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
|
||||
{% for f in form.forms %}
|
||||
<tr>
|
||||
{{f}}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{% make_button "Go to reference" url %}
|
||||
{% make_button "Go back" referenced_by %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
|
||||
{% block title %}Gramps Connect - login {% endblock %}
|
||||
{% block heading %}Gramps - login {% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h2>User Login</h2>
|
||||
{% if form.errors %}
|
||||
<p id="description">Your username or password were not valid. Please try again.</p>
|
||||
{% else %}
|
||||
<p id="description">Enter your login ID and password below. </p>
|
||||
{% endif %}
|
||||
<form method="post" action=".">{% csrf_token %}
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="id_username">Username: </label>
|
||||
</td>
|
||||
<td>
|
||||
{{form.username}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label for="id_password">Password: </label>
|
||||
</td>
|
||||
<td>
|
||||
{{form.password}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% if next %}
|
||||
<input type="hidden" name="next" value="{{next}}" />
|
||||
{% else %}
|
||||
<input type="hidden" name="next" value="/" />
|
||||
{% endif %}
|
||||
<input type="submit" value="Login" />
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,5 +0,0 @@
|
||||
{% for header in headers %}<th{{ header.class_attr }}>
|
||||
{% if header.sortable %}<a href="{{ header.url|escape }}">{% endif %}
|
||||
{{ header.text }}
|
||||
{% if header.sortable %}</a>{% endif %}
|
||||
</th>{% endfor %}
|
||||
@@ -1,47 +0,0 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}{{sitename}} - user page {% endblock %}
|
||||
{% block heading %}{{sitename}} - user page {% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p id="description">Details for <b>{{user.first_name}} {{user.last_name}}</b> ({{user.username}}):</p>
|
||||
|
||||
<p id="description">
|
||||
<table>
|
||||
<tr>
|
||||
<td width="30%">User name: </td><td><em>{{user.username}}</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Email: </td><td><a href="mailto:{{user.email}}"><em>{{user.email}}</a></em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Type: </td>
|
||||
<td>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
<em>Administrator</em>
|
||||
{% else %}
|
||||
<em>User</em>
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Last login: </td><td><em>{{user.last_login}}</em></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% make_button "Edit Profile" "/admin/grampsdb/profile/%s" user.id %}
|
||||
{% make_button "Edit User" "/admin/auth/user/%s" user.id %}
|
||||
{% else %}
|
||||
<em>User</em>
|
||||
{% endif %}
|
||||
|
||||
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
$('#shared-tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
{% if citationform.errors or sourceform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{citationform.errors}}</div>
|
||||
<div id="error">{{sourceform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
|
||||
<!-- Tabs -->
|
||||
<h2>Citation information</h2>
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-general" href="#tab-general">General</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-data" href="#tab-data">Data</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-general" style="background-color: #f4f0ec;">
|
||||
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.text.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render citationform.text user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render citationform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{citationform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render citationform.private user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.page.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render citationform.page user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{citationform.confidence.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render citationform.confidence user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table citation user action "/note/$act/citation/%s" citation.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table citation user action "/media/$act/citation/%s" citation.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-data" style="background-color: #f4f0ec;">
|
||||
{% data_table citation user action "/data/$act/citation/%s" citation.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% citation_reference_table citation user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table citation user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Note: Any changes in the shared citation information will be reflected
|
||||
in the citation itself, for all items that reference the citation.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<h2>Source information (shared)</h2>
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="shared-tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-shared-general" href="#tab-shared-general">General</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-notes" href="#tab-shared-notes">Notes</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-media" href="#tab-shared-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-repositories" href="#tab-shared-repositories">Repositories</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-references" href="#tab-shared-references">References</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-shared-history" href="#tab-shared-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-shared-general" style="background-color: #f4f0ec;">
|
||||
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.title.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.title user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.author.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.author user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render sourceform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{sourceform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render sourceform.private user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.abbrev.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.abbrev user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{sourceform.pubinfo.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3"> {% render sourceform.pubinfo user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table source user action "/note/$act/source/%s" source.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-media" style="background-color: #f4f0ec;">
|
||||
{% media_table source user action "/media/$act/source/%s" source.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-repositories" style="background-color: #f4f0ec;">
|
||||
{% repository_table source user action "/repository/$act/source/%s" source.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-references" style="background-color: #f4f0ec;">
|
||||
{% citation_reference_table source user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-shared-history" style="background-color: #f4f0ec;">
|
||||
{% history_table source user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Note: Any changes in the shared source information will be reflected
|
||||
in the source itself, for all items that reference the source.
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/citation/%s" citation.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/citation/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Citation" "/citation/add" args %}
|
||||
{% make_button "?Edit Citation" "/citation/%s/edit" citation.handle args %}
|
||||
{% make_button "-Delete Citation" "/citation/%s/delete" citation.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,48 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="90%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Title</th>
|
||||
<th>Pub Info</th>
|
||||
<th>Author</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for source in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>
|
||||
<span class="grampsid">[{{source.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or source.public %}
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>{{source.title|escape|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>{{source.pubinfo|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{source.handle|escape}}{{args}}" class="browsecell"
|
||||
>{{source.author|nbsp}}</a>
|
||||
{% else %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Citation" "/citation/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,137 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<trbody>
|
||||
{% if eventform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{eventform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post" onsubmit="setReturnValues()">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{eventform.event_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render eventform.event_type user action %}</td>
|
||||
<td class="ColumnAttribute">{{eventform.text.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render eventform.text user action %}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Description:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render eventform.description user action %}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">ID:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render eventform.gramps_id user action %}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Place:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">
|
||||
{% if action != "view" %}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('#place').flexbox('/json/?field=place', {
|
||||
watermark: 'Place',
|
||||
width: 600,
|
||||
paging: {
|
||||
pageSize: 10
|
||||
},
|
||||
initialValue: '{{event.place.get_selection_string}}',
|
||||
initialId: '{{event.place.handle}}'
|
||||
});
|
||||
});
|
||||
// </script>
|
||||
<div id="place"></div>
|
||||
{% else %}
|
||||
<a href="/place/?search={{event.place}}">{{event.place}}</a>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render eventform.private user action %}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/event/%s" event.handle args %}
|
||||
<input type="hidden" id="place_return" name="place_return" value=""/>
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/event/" args %}
|
||||
<input type="hidden" id="place_return" name="place_return" value=""/>
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Event" "/event/add" args %}
|
||||
{% make_button "?Edit Event" "/event/%s/edit" event.handle args %}
|
||||
{% make_button "-Delete Event" "/event/%s/delete" event.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tab-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tab-selected ui-state-active"><a class="tab-sources" href="#tab-sources">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom" id="tab-sources" style="background-color: #f4f0ec;">
|
||||
{% citation_table event user action "/citation/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table event user action "/note/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table event user action "/media/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table event user action "/attribute/$act/event/%s" event.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% event_reference_table event user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table event user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Event Type</th>
|
||||
<th>Description</th>
|
||||
<th>Date</th>
|
||||
<th>Place</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for event in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="noThumb browsecell">
|
||||
<span class="grampsid">[{{event.gramps_id}}]</span></a>
|
||||
|
||||
{% if user.is_authenticated or event.public %}
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event.event_type|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event.description|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event|date_as_text:user}}</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">{{event.place.title|nbsp}}</a>
|
||||
{% else %}
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
<td><a href="/{{view}}/{{event.handle|escape}}{{args}}" class="browsecell">[Private]</a>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Event" "/event/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,71 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Father</th>
|
||||
<th>Mother</th>
|
||||
<th>Relationship</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for family in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{ forloop.counter|row_count:page }}</a></td>
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
><span class="grampsid">[{{family.gramps_id}}]</span></a>
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{family.father|make_name:user|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{family.mother|make_name:user|nbsp}}</a>
|
||||
{% if user.is_authenticated or family.public %}
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{family.family_rel_type|escape|nbsp}}</a>
|
||||
{% else %}
|
||||
<td><a href="/{{view}}/{{family.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if family.tags.all %}
|
||||
style="color: {{family.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>
|
||||
{% if not family.public %}
|
||||
[Private]
|
||||
{% else %}
|
||||
{{family.family_rel_type}}
|
||||
{% endif %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Family" "/family/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,205 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<h2><a href="/person/{{family.father.handle}}">{{family.father|render_name:user}}</a> and <a href="/person/{{family.mother.handle}}">{{family.mother|render_name:user}}</a></h2>
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 4 cols {% endcomment %}
|
||||
<tbody>
|
||||
{% if familyform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{familyform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post" onsubmit="setReturnValues()">{% csrf_token %}
|
||||
<tr>
|
||||
<th colspan="2">Father</th>
|
||||
<th colspan="2">Mother</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Name:</td>
|
||||
{% if user.is_authenticated or father.probably_alive %}
|
||||
<td class="ColumnValue" id="data">
|
||||
{% if action != "view" %}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('#father').flexbox('/json/?field=father', {
|
||||
watermark: 'Father',
|
||||
width: 300,
|
||||
paging: {
|
||||
pageSize: 10
|
||||
},
|
||||
initialValue: '{{family.father.get_selection_string}}',
|
||||
initialId: '{{family.father.handle}}'
|
||||
});
|
||||
});
|
||||
// </script>
|
||||
<div id="father"></div>
|
||||
{% else %}
|
||||
{{family.father|render_name:user}}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% else %}
|
||||
{{family.father|render_name:user}}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="ColumnAttribute">Name:</td>
|
||||
{% if user.is_authenticated or family.mother.probably_alive %}
|
||||
<td class="ColumnValue" id="data">
|
||||
{% if action != "view" %}
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('#mother').flexbox('/json/?field=mother', {
|
||||
watermark: 'Mother',
|
||||
width: 300,
|
||||
paging: {
|
||||
pageSize: 10
|
||||
},
|
||||
initialValue: '{{family.mother.get_selection_string}}',
|
||||
initialId: '{{family.mother.handle}}'
|
||||
});
|
||||
});
|
||||
// </script>
|
||||
<div id="mother"></div>
|
||||
{% else %}
|
||||
{{family.mother|render_name:user}}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{family.mother|render_name:user}}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% if user.is_authenticated or not familyform.father.probably_alive %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Birth:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.father.birth|date_as_text:user}}</td>
|
||||
<td class="ColumnAttribute">Birth:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.mother.birth|date_as_text:user}}</td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.father.death|date_as_text:user}}</td>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.mother.death|date_as_text:user}}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.father.death|date_as_text:user}}</td>
|
||||
<td class="ColumnAttribute">Death:</td>
|
||||
<td class="ColumnValue" id="data">{{familyform.mother.death|date_as_text:user}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="infolist">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th colspan="4">Relationship information</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{familyform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{familyform.family_rel_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.family_rel_type user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{familyform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.tags user action %}</td>
|
||||
<td class="ColumnAttribute">{{familyform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render familyform.private user action %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/family/%s" family.handle args %}
|
||||
<input type="hidden" id="father_return" name="father_return" value=""/>
|
||||
<input type="hidden" id="mother_return" name="mother_return" value=""/>
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/family/" args %}
|
||||
<input type="hidden" id="father_return" name="father_return" value=""/>
|
||||
<input type="hidden" id="mother_return" name="mother_return" value=""/>
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Family" "/family/add" args %}
|
||||
{% make_button "?Edit Family" "/family/%s/edit" family.handle args %}
|
||||
{% make_button "-Delete Family" "/family/%s/delete" family.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-children" href="#tab-children">Children</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-events" href="#tab-events">Event</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-citations" href="#tab-citations">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-lds" href="#tab-lds">LDS</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-children" style="background-color: #f4f0ec;">
|
||||
<!-- Events -->
|
||||
{% children_table family user action "/person/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-events" style="background-color: #f4f0ec;">
|
||||
{% event_table family user action "/event/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-citations" style="background-color: #f4f0ec;">
|
||||
{% citation_table family user action "/citation/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table family user action "/attribute/add/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table family user action "/note/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table family user action "/media/$act/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-lds" style="background-color: #f4f0ec;">
|
||||
{% lds_table family user action "/lds/add/family/%s" family.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table family user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Description</th>
|
||||
<th>File</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for media in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{media.handle|escape}}{{args}}" class="noThumb browsecell"
|
||||
{% if media.tags.all %}
|
||||
style="color: {{media.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>
|
||||
<span class="grampsid">[{{media.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or media.public %}
|
||||
<td><a href="/{{view}}/{{media.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if media.tags.all %}
|
||||
style="color: {{media.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{media.desc|escape}}</a>
|
||||
<td><a href="/{{view}}/{{media.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if media.tags.all %}
|
||||
style="color: {{media.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{media.path|escape}}</a>
|
||||
{% else %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Media" "/media/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,110 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tbody>
|
||||
{% if mediaform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{mediaform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.desc.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.desc user action %}</td>
|
||||
<td rowspan="5">{% media_link media.handle user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render mediaform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{mediaform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render mediaform.private user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.text.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.text user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.path.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.path user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{mediaform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">{% render mediaform.tags user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/media/%s" media.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/media/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Media" "/media/add" args %}
|
||||
{% make_button "?Edit Media" "/media/%s/edit" media.handle args %}
|
||||
{% make_button "-Delete Media" "/media/%s/delete" media.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-sources" href="#tab-sources" style=":hover {color: black;}">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-sources" style="background-color: #f4f0ec;">
|
||||
{% citation_table media user action "/citation/$act/media/%s" media.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table media user action "/note/$act/media/%s" media.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table media user action "/attribute/add/media/%s" media.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% media_reference_table media user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table media user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% filter breadcrumb %}
|
||||
{% format "/browse|Browse" %} ||
|
||||
{% format "/person|People" %} ||
|
||||
{% format "/person/%s|Person [%s]" object.handle object.gramps_id %} ||
|
||||
{% format "/person/%s/name/%s|Name #%s" object.handle order order %}
|
||||
{% endfilter %}
|
||||
|
||||
<h3>{{nameform.model|make_name:user}} [{{person.gramps_id}}]</h3>
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 4 cols {% endcomment %}
|
||||
<tbody>
|
||||
|
||||
{% for error in nameform.errors %}
|
||||
<p id="error">{{error}}</a><br>
|
||||
{% endfor %}
|
||||
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{surnameform.name_origin_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.name_origin_type user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.name_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.name_type user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{surnameform.surname.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.surname user action "get_focus" %}</td>
|
||||
<td class="ColumnAttribute">{{surnameform.prefix.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.prefix user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.first_name.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.first_name user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.nick.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.nick user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.title.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.title user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.suffix.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.suffix user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute"></td>
|
||||
<td class="ColumnValue" id="data"></td>
|
||||
<td class="ColumnAttribute">{{nameform.call.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.call user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.preferred.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.preferred user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.private user action %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-general" href="#tab-general">General</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-surnames" href="#tab-surnames">Surname</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-names" href="#tab-names">Alternate Names</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-citations" href="#tab-citations">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom"
|
||||
id="tab-general" style="background-color: #f4f0ec;">
|
||||
<div style="overflow: auto; height:150px;">
|
||||
<table border="1">
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.group_as.label}}: </td>
|
||||
<td>{% render nameform.group_as user action %}</td>
|
||||
</tr>
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.sort_as.label}}: </td>
|
||||
<td>{% render nameform.sort_as user action %}</td>
|
||||
</tr>
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.display_as.label}}: </td>
|
||||
<td>{% render nameform.display_as user action %}</td>
|
||||
</tr>
|
||||
<tr><td style="background-color: #FFF2C5;">{{nameform.text.label}}: </td>
|
||||
<td>{% render nameform.text user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-surnames" style="background-color: #f4f0ec;">
|
||||
{% surname_table person user action "/person/%s/name/%s/surname/add" person.handle nameform.model.order %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-names" style="background-color: #f4f0ec;">
|
||||
{% name_table person user action "/person/%s/name" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-citations" style="background-color: #f4f0ec;">
|
||||
{% citation_table nameform.model user action "/citation/add/person/%s/name/%s" person.handle nameform.model.order %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom
|
||||
ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table nameform.model user action "/note/$act/person/%s/name/%s" person.handle nameform.model.order %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/person/%s" person.handle args "#tab-names" %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
{% ifequal action "edit" %}
|
||||
{% make_button "Cancel" "/person/" args "#tab-names" %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Name" "/person/%s/name/add" person.handle args %}
|
||||
{% make_button "?Edit Name" "/person/%s/name/%s/edit" person.handle order args %}
|
||||
{% make_button "-Delete Name" "/person/%s/name/%s/delete" person.handle order args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endifequal %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
$('.wysiwyg').htmlarea({
|
||||
toolbar: [
|
||||
"bold", "italic", "underline",
|
||||
"|", "forecolor", "superscript", "p",
|
||||
"|", "link", "unlink",
|
||||
"|", "html"
|
||||
]
|
||||
});
|
||||
// FIXME: add font, fontsize, backcolor
|
||||
// FIXME: find easier way:
|
||||
$('.jHtmlArea').contents().find('iframe').contents().find('body').css({"background-color": "white"});
|
||||
});
|
||||
function setnotetext() {
|
||||
document.getElementById('notetext').value = $('.jHtmlArea').contents().find('iframe').contents().find('body').html();
|
||||
}
|
||||
</script>
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tbody>
|
||||
{% if noteform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{noteform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post" onsubmit="setnotetext()">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{noteform.notetext.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="3">
|
||||
{% if action == "edit" or action == "add" %}
|
||||
<input type="hidden" id="notetext" name="notetext" value=""></input>
|
||||
{% render noteform.notetext user action %}
|
||||
{% else %}
|
||||
<div style="overflow-y: scroll; height: 100px;">{{notetext|safe}}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="ColumnAttribute">{{noteform.preformatted.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render noteform.preformatted user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{noteform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data"> {% render noteform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{noteform.note_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render noteform.note_type user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{noteform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="4">{% render noteform.tags user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/note/%s" note.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/note/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Note" "/note/add" args %}
|
||||
{% make_button "?Edit Note" "/note/%s/edit" note.handle args %}
|
||||
{% make_button "-Delete Note" "/note/%s/delete" note.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% note_reference_table note user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table note user action %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Note Type</th>
|
||||
<th>Text</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for note in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{note.handle|escape}}{{args}}" class="noThumb browsecell"
|
||||
{% if note.tags.all %}
|
||||
style="color: {{note.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>
|
||||
<span class="grampsid">[{{note.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or note.public %}
|
||||
<td><a href="/{{view}}/{{note.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if note.tags.all %}
|
||||
style="color: {{note.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{note.note_type|escape|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{note.handle|escape}}{{args}}" class="browsecell"
|
||||
{% if note.tags.all %}
|
||||
style="color: {{note.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{note.text|preview:70|nbsp}}</a>
|
||||
{% else %}
|
||||
<td>[Private]</td>
|
||||
<td>[Private]</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Note" "/note/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,28 +0,0 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block title %}{{sitename}}: {{tview}} view {% endblock %}
|
||||
{% block heading %}{{sitename}}: {{tview}} view {% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div id="description" style="padding: 10pt 10pt 10pt 10pt;">
|
||||
<form name="SearchForm">
|
||||
{% if tview != "Report" %}
|
||||
{% filter breadcrumb %}
|
||||
{% format "/browse|Browse" %} ||
|
||||
{% format "/%s|%s" view tviews %}
|
||||
{% endfilter %}
|
||||
{% endif %}
|
||||
<input type="submit" value="Search:"></input>
|
||||
<input autocomplete="off" name="search" id="get_focus" type="text" size="50" value="{{search}}"></input>
|
||||
<br/><i>Available search terms</i>: <b>{{search_terms}}</b>
|
||||
</form>
|
||||
</div>
|
||||
{% paginator %}
|
||||
<div style="overflow:auto; height:300px;width:800px;">
|
||||
{% block table_data %} <table></table> {% endblock %}
|
||||
</div>
|
||||
{% include "paginator.html" %}
|
||||
{% block admin_functions %}{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -1,6 +0,0 @@
|
||||
{% extends "gramps-base.html" %}
|
||||
{% load my_tags %}
|
||||
{% block title %}{{sitename}}: {{tview}} detail {% endblock %}
|
||||
{% block heading %}{{sitename}}: {{tview}} detail {% endblock %}
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
@@ -1,68 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Name</th>
|
||||
<th>ID</th>
|
||||
<th>Gender</th>
|
||||
<th>Birth Date</th>
|
||||
<th>Death Date</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for name in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}" style="">
|
||||
{% if name.person %}
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{ forloop.counter|row_count:page }}</a>
|
||||
</td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name|make_name:user}} </a>
|
||||
</td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="grampsid browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>[{{name.person.gramps_id}}]</a></td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name.person.gender_type}} </a></td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name.person.birth|date_as_text:user}} </a></td>
|
||||
<td><a href="{{name.person.handle}}/{{args}}" class="noThumb browsecell"
|
||||
{% if name.person.tags.all %}
|
||||
style="color: {{name.person.tags.all.0.color|format_color}};"
|
||||
{% endif %}
|
||||
>{{name.person.death|date_as_text:user}} </a></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Person" "/person/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,175 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
<table class="infolist" style="width:90%;"> {% comment %} 5 cols {% endcomment %}
|
||||
<tbody>
|
||||
{% if personform.errors or nameform.errors or surnameform.errors or logform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">
|
||||
{{personform.errors}}
|
||||
{{nameform.errors}}
|
||||
{{surnameform.errors}}
|
||||
{{logform.errors}}
|
||||
</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td colspan="4" id="subtitle">{{nameform|render_name:user}}</td>
|
||||
<td class="ColumnAttribute">{{nameform.name_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.name_type user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.title.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.title user action "get_focus" %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.nick.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.nick user action %}</td>
|
||||
<td class="ColumnAttribute">{{nameform.call.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.call user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{nameform.first_name.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="4">{% render nameform.first_name user action None "/person/?search=given%%3D%s" nameform.model.first_name %}</td>
|
||||
<td class="ColumnValue" id="data">{% render nameform.suffix user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{surnameform.surname.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render surnameform.prefix user action %}
|
||||
<td class="ColumnValue" id="data" colspan="2">{% render surnameform.surname user action None "/person/?search=surname%%3D%s" surnameform.model.surname %}</td>
|
||||
<td class="ColumnAttribute">{{surnameform.name_origin_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data" colspan="2">{% render surnameform.name_origin_type user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{personform.gender_type.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render personform.gender_type user action None "/person/?search=gender%%3D%s" personform.model.gender_type %}</td>
|
||||
<td class="ColumnAttribute">{{personform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render personform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{personform.tags.label}}:</td>
|
||||
<td class="ColumnValue" id="data" rowspan="3">{% render personform.tags user action %}</td>
|
||||
</tr>
|
||||
<tr><td id="rowspace"></td></tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{personform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render personform.private user action %}</td>
|
||||
<td class="ColumnAttribute">{{personform.probably_alive.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% if person.probably_alive %}Yes{% else %}No{% endif %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if logform %}
|
||||
<table>
|
||||
{{logform.as_table}}
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/person/%s" person.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/person/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Person" "/person/add" args %}
|
||||
{% make_button "?Edit Person" "/person/%s/edit" person.handle args %}
|
||||
{% make_button "-Delete Person" "/person/%s/delete" person.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-events" href="#tab-events">Event</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Family</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-names" href="#tab-names">Name</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-citations" href="#tab-citations">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-attributes" href="#tab-attributes">Attribute</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-addresses" href="#tab-addresses">Address</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-internet" href="#tab-internet">Internet</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-association" href="#tab-association">Association</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-lds" href="#tab-lds">LDS</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom" id="tab-events" style="background-color: #f4f0ec;">
|
||||
<!-- Events -->
|
||||
{% event_table person user action "/event/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-names" style="background-color: #f4f0ec;">
|
||||
{% name_table person user action "/person/%s/name" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-citations" style="background-color: #f4f0ec;">
|
||||
{% citation_table person user action "/citation/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-attributes" style="background-color: #f4f0ec;">
|
||||
{% attribute_table person user action "/attribute/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-addresses" style="background-color: #f4f0ec;">
|
||||
{% address_table person user action "/place/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom
|
||||
ui-tabs-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table person user action "/note/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table person user action "/media/$act/person/%s" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-internet" style="background-color: #f4f0ec;">
|
||||
{% internet_table person user action "/person/%s/$act/internet" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-association" style="background-color: #f4f0ec;">
|
||||
{% association_table person user action "/person/%s/$act/association" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-lds" style="background-color: #f4f0ec;">
|
||||
{% lds_table person user action "/person/%s/$act/lds" person.handle %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% person_reference_table person user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table person user action %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,148 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#tabs').tabs({
|
||||
'select': function(event, ui){
|
||||
document.location.hash = ui.panel.id;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
|
||||
<table class="infolist" style="width:90%;">
|
||||
<trbody>
|
||||
{% if placeform.errors %}
|
||||
<hr>
|
||||
<p id="error">The following fields have errors. Please correct and try again.</p>
|
||||
<div id="error">{{placeform.errors}}</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{placeform.title.label}}:</td>
|
||||
<td class="Columnvalue" id="data" colpan="3"> {% render placeform.title user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{placeform.lat.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render placeform.lat user action %}</td>
|
||||
<td class="ColumnAttribute">{{placeform.long.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render placeform.long user action %}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">{{placeform.gramps_id.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render placeform.gramps_id user action %}</td>
|
||||
<td class="ColumnAttribute">{{placeform.private.label}}:</td>
|
||||
<td class="ColumnValue" id="data">{% render placeform.private user action %}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- Tabs -->
|
||||
|
||||
<div class="ui-tabs ui-widget ui-widget-content ui-corner-all" id="tabs" style="border: none;">
|
||||
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
|
||||
<li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"><a class="tab-locations" href="#tab-locations">Location</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-alternatelocations" href="#tab-alternatelocations">Alternate Locations</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-citations" href="#tab-citations">Citation</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-notes" href="#tab-notes">Note</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-media" href="#tab-media">Media</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-internet" href="#tab-internet">Internet</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-references" href="#tab-references">Reference</a></li>
|
||||
<li class="ui-corner-top ui-state-default"><a class="tab-history" href="#tab-history">History</a></li>
|
||||
</ul>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom" id="tab-locations" style="background-color: #f4f0ec;">
|
||||
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Street:</td>
|
||||
<td class="Columnvalue" id="data" colspan="3"> FIXME </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Locality:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
<td class="ColumnAttribute">Church parish:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">City:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
<td class="ColumnAttribute">State:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">County:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
<td class="ColumnAttribute">ZIP/Postal code:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Country:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
<td class="ColumnAttribute">Phone:</td>
|
||||
<td class="Columnvalue" id="data"> FIXME </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-alternatelocations" style="background-color: #f4f0ec;">
|
||||
{% location_table place user action "/location/$act/place/%s" place.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-citations" style="background-color: #f4f0ec;">
|
||||
{% citation_table place user action "/citation/$act/place/%s" place.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-notes" style="background-color: #f4f0ec;">
|
||||
{% note_table place user action "/note/$act/place/%s" place.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-media" style="background-color: #f4f0ec;">
|
||||
{% media_table place user action "/media/$act/place/%s" place.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-internet" style="background-color: #f4f0ec;">
|
||||
{% internet_table place user action "/internet/$act/place/%s" place.handle %}
|
||||
</div>
|
||||
<div class="ui-tab-panel ui-widget-content ui-corner-bottom ui-tab-hide" id="tab-references" style="background-color: #f4f0ec;">
|
||||
{% place_reference_table place user action %}
|
||||
</div>
|
||||
<div class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" id="tab-history" style="background-color: #f4f0ec;">
|
||||
{% history_table place user action %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if user.is_superuser %}
|
||||
{% if action == "edit" %}
|
||||
{% make_button "Cancel" "/place/%s" place.handle args %}
|
||||
<input type="hidden" name="action" value="save"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Save"/>
|
||||
{% else %}
|
||||
{% ifequal action "add" %}
|
||||
{% make_button "Cancel" "/place/" args %}
|
||||
<input type="hidden" name="action" value="create"/>
|
||||
<input type="hidden" name="search" value="{{search}}"/>
|
||||
<input type="hidden" name="page" value="{{page}}"/>
|
||||
<input type="submit" value="Create"/>
|
||||
{% else %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px; clear: both;">
|
||||
{% make_button "+Add Place" "/place/add" args %}
|
||||
{% make_button "?Edit Place" "/place/%s/edit" place.handle args %}
|
||||
{% make_button "-Delete Place" "/place/%s/delete" place.handle args %}
|
||||
</div>
|
||||
{% endifequal %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% endif %}
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Title</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for place in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{place.handle|escape}}{{args}}" class="noThumb browsecell">
|
||||
<span class="grampsid">[{{place.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or place.public %}
|
||||
<td><a href="/{{view}}/{{place.handle|escape}}{{args}}" class="browsecell">{{place.title|escape|nbsp}}</a>
|
||||
{% else %}
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Places" "/place/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
@@ -1,35 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Report Name</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for report in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{report.handle|escape}}" class="noThumb browsecell">
|
||||
<span class="grampsid">{{report.name}}</span></a>
|
||||
{% if user.is_authenticated %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% else %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
{% extends "view_page_detail.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<div class="content" id="IndividualDetail">
|
||||
|
||||
{% include "detail_breadcrumb.html" %}
|
||||
|
||||
<div id="summaryarea">
|
||||
|
||||
<form name="RunForm" action="/report/{{report.handle}}/run">
|
||||
<table class="infolist" style="width:90%;">
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Name:</td>
|
||||
<td class="ColumnValue" id="data" colspan="5">{{report.name}} </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Type:</td>
|
||||
<td class="ColumnValue" id="data">{{report.report_type}}</td>
|
||||
</tr>
|
||||
<td class="ColumnAttribute">Options:</td>
|
||||
<td class="ColumnValue" id="data">
|
||||
<textarea autocomplete="off" name="options" id="get_focus" cols="70" rows="20">
|
||||
{% if report.options %}{{report.options}}{% else %}{% endif %}
|
||||
</textarea>
|
||||
<br>
|
||||
<i>Hint</i>: use Gramps CLI options such as output file format <b>off=pdf</b>, <b>off=ged</b>, or <b>off=gramps</b>
|
||||
</td>
|
||||
</tr>
|
||||
<td class="ColumnValue">
|
||||
<input type="submit" value="Run"></input>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</form>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="ColumnAttribute">Help:</td>
|
||||
<td class="ColumnValue" id="data">
|
||||
{{help|safe}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
{% extends "view_page.html" %}
|
||||
{% load my_tags %}
|
||||
|
||||
{% block table_data %}
|
||||
|
||||
<table cellspacing="0" class="infolist surname" width="95%">
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>ID</th>
|
||||
<th>Type</th>
|
||||
<th>Name</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for repository in page.object_list %}
|
||||
<tr class="{% cycle odd,even %}">
|
||||
<td>{{ forloop.counter|row_count:page }}</td>
|
||||
<td><a href="/{{view}}/{{repository.handle|escape}}{{args}}" class="noThumb browsecell">
|
||||
<span class="grampsid">[{{repository.gramps_id}}]</span></a>
|
||||
{% if user.is_authenticated or repository.public %}
|
||||
<td><a href="/{{view}}/{{repository.handle|escape}}{{args}}" class="browsecell">{{repository.repository_type|escape|nbsp}}</a>
|
||||
<td><a href="/{{view}}/{{repository.handle|escape}}{{args}}" class="browsecell">{{repository.name|escape|nbsp}}</a>
|
||||
{% else %}
|
||||
<td></td>
|
||||
<td></td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block admin_functions %}
|
||||
{% if user.is_superuser %}
|
||||
<div style="background-color: lightgray; padding: 2px 0px 0px 2px">
|
||||
{% make_button "+Add Repository" "/repository/add" args %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||