Compare commits
3749 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4eebaab5e6 | ||
|
|
ddec589b37 | ||
|
|
7b03f08adc | ||
|
|
3208a4bdf2 | ||
|
|
9e608f168d | ||
|
|
f91bc6e50e | ||
|
|
b5c282872d | ||
|
|
37b37425af | ||
|
|
f7eccb611f | ||
|
|
f453f92a32 | ||
|
|
b6d7e60624 | ||
|
|
6b269291ae | ||
|
|
9e80367822 | ||
|
|
2bcb91c15c | ||
|
|
215f2bf28d | ||
|
|
6543e5bb49 | ||
|
|
9940b59d38 | ||
|
|
2c48d5c8cb | ||
|
|
1ef412c1ee | ||
|
|
70d6ecb6dc | ||
|
|
43617a9729 | ||
|
|
30d35b42eb | ||
|
|
7e7f519caf | ||
|
|
62d74b444c | ||
|
|
7d0ac791aa | ||
|
|
8e25f9c027 | ||
|
|
4fa78dad3a | ||
|
|
58203c0989 | ||
|
|
aec1b4464d | ||
|
|
c7f4687a2f | ||
|
|
7455c536ac | ||
|
|
033c44d473 | ||
|
|
81fcfb05f0 | ||
|
|
8eb8226da2 | ||
|
|
6f59e5771b | ||
|
|
640edd8a79 | ||
|
|
b825310d30 | ||
|
|
4c4da4113f | ||
|
|
db925cd1e8 | ||
|
|
d535175dc1 | ||
|
|
1401b51648 | ||
|
|
629af711e2 | ||
|
|
d4de267db2 | ||
|
|
1ba9ddf351 | ||
|
|
2d2958e07b | ||
|
|
72fd49401f | ||
|
|
d2a87abfb5 | ||
|
|
2a128bc539 | ||
|
|
c4536c0807 | ||
|
|
53298b4aab | ||
|
|
24830cb70b | ||
|
|
50bf470a63 | ||
|
|
a715c720ca | ||
|
|
6656f45b04 | ||
|
|
c0493d45ab | ||
|
|
d499edb1f3 | ||
|
|
fcaeb143ba | ||
|
|
1ac0d04f2e | ||
|
|
42b75058c5 | ||
|
|
d4aed51fdf | ||
|
|
591cf88d5e | ||
|
|
3dffb8a7ba | ||
|
|
e0c8c84c72 | ||
|
|
0020e55ea0 | ||
|
|
d8600b8a2a | ||
|
|
229e55811e | ||
|
|
c0fea1c230 | ||
|
|
645ff855aa | ||
|
|
36e8f4214c | ||
|
|
a0b6f03c71 | ||
|
|
8a5e21bc46 | ||
|
|
30a620c94a | ||
|
|
447e203174 | ||
|
|
ebaf3f2b1a | ||
|
|
0621ebf4fd | ||
|
|
8a98c718fa | ||
|
|
207bdece2a | ||
|
|
5f7bd9d805 | ||
|
|
1a61da2ae2 | ||
|
|
567cfdcd5d | ||
|
|
677b629c66 | ||
|
|
f83b4e55b1 | ||
|
|
659e7cec50 | ||
|
|
eae06bd4c9 | ||
|
|
8ac5578200 | ||
|
|
01b47592b8 | ||
|
|
20fa8d11c1 | ||
|
|
6109598791 | ||
|
|
30d8937204 | ||
|
|
1035069d92 | ||
|
|
f0402ac0a2 | ||
|
|
abbc4fe786 | ||
|
|
144ef4639a | ||
|
|
94ff1ea828 | ||
|
|
f9153dbc2d | ||
|
|
3f1252330e | ||
|
|
c517e82938 | ||
|
|
2389aa2af7 | ||
|
|
4c11525cd5 | ||
|
|
c5ae22a932 | ||
|
|
527633324b | ||
|
|
e6638eb94f | ||
|
|
4b0f1c5fd4 | ||
|
|
6afd3cbbdc | ||
|
|
b04566d564 | ||
|
|
71625ac383 | ||
|
|
8ec390ba26 | ||
|
|
977806268b | ||
|
|
079855bc39 | ||
|
|
706601018c | ||
|
|
429fce1cea | ||
|
|
2888ff2fde | ||
|
|
45a28bba09 | ||
|
|
1c6e028da6 | ||
|
|
63d5a06051 | ||
|
|
b65826fc07 | ||
|
|
1a769c6b9a | ||
|
|
612d5d04e5 | ||
|
|
2da83c27aa | ||
|
|
068c9cd6b9 | ||
|
|
026c81ff9e | ||
|
|
3b295c0266 | ||
|
|
661825ace9 | ||
|
|
26efff7397 | ||
|
|
bc8bdf9b8b | ||
|
|
7b4c5a0faf | ||
|
|
778a58f118 | ||
|
|
f90e8cb048 | ||
|
|
1333da31a0 | ||
|
|
402ee61976 | ||
|
|
4599933038 | ||
|
|
44f85081d2 | ||
|
|
fe6f3b9820 | ||
|
|
6424f38e7d | ||
|
|
e313e6ca6e | ||
|
|
33a05836db | ||
|
|
0a8ce9502c | ||
|
|
05889fe8f2 | ||
|
|
eacf21a118 | ||
|
|
667d847235 | ||
|
|
a3527da443 | ||
|
|
670742ab67 | ||
|
|
0c56678ce1 | ||
|
|
ab9aa0112f | ||
|
|
c14706e8b5 | ||
|
|
7090bd8ed6 | ||
|
|
189bca3111 | ||
|
|
1ba3b15159 | ||
|
|
7f1d94b438 | ||
|
|
23fe1bca42 | ||
|
|
3dedbaf786 | ||
|
|
c5c9228380 | ||
|
|
d89ed8113d | ||
|
|
866d831ae2 | ||
|
|
7bb35e8071 | ||
|
|
685ac13b54 | ||
|
|
08f6dd339c | ||
|
|
bfd2fc43d4 | ||
|
|
7ed5fcd158 | ||
|
|
3e7bc7ac15 | ||
|
|
1ccdbafac0 | ||
|
|
f3ca28486d | ||
|
|
904e8ea272 | ||
|
|
49edd34bf9 | ||
|
|
6ac53939f4 | ||
|
|
91eb84b1a5 | ||
|
|
48364fe3ac | ||
|
|
0bf12a512b | ||
|
|
47eeafdb82 | ||
|
|
dd465dc183 | ||
|
|
994a58c8b1 | ||
|
|
a583b7c660 | ||
|
|
03b08f66ff | ||
|
|
68785c15c7 | ||
|
|
7fdea4c431 | ||
|
|
5505fb3f47 | ||
|
|
8824d7c2e2 | ||
|
|
1f3ef9cad0 | ||
|
|
dcfd33c6b8 | ||
|
|
cf63f9d025 | ||
|
|
f9bd914de6 | ||
|
|
90d92080ed | ||
|
|
0a9db1eb01 | ||
|
|
bc41924978 | ||
|
|
8f74869195 | ||
|
|
5c220f02ed | ||
|
|
27aa5774ae | ||
|
|
40c26705a5 | ||
|
|
7a9b82681a | ||
|
|
ec48177e38 | ||
|
|
099d789ed0 | ||
|
|
d322a28da0 | ||
|
|
668876eef4 | ||
|
|
694d83bc64 | ||
|
|
e0a12021ca | ||
|
|
7ad35050a0 | ||
|
|
038167bbff | ||
|
|
2736cfed1b | ||
|
|
b58e53f3fa | ||
|
|
8abdd4993e | ||
|
|
04d9d59b5c | ||
|
|
521f6e80e0 | ||
|
|
a790b3322d | ||
|
|
af095f9d31 | ||
|
|
06c7b64544 | ||
|
|
2b9cc0f0bd | ||
|
|
665012cebd | ||
|
|
e09d06b5cc | ||
|
|
49be95dff3 | ||
|
|
4395af1008 | ||
|
|
ac7d6a1dd1 | ||
|
|
562cea6df6 | ||
|
|
6f3414e98f | ||
|
|
b43b6ce74f | ||
|
|
66419325ce | ||
|
|
362b1b0dd2 | ||
|
|
d84dae68ac | ||
|
|
10aaea7958 | ||
|
|
e0cc0d96e0 | ||
|
|
fae6b2ff5a | ||
|
|
188898e1a7 | ||
|
|
d855278570 | ||
|
|
fd0b278f9d | ||
|
|
8a3abfeb47 | ||
|
|
367fdab130 | ||
|
|
77c8bd1d71 | ||
|
|
cdbcfb4e24 | ||
|
|
b4977d2a97 | ||
|
|
d826505f9b | ||
|
|
b3553013cf | ||
|
|
fe64f41b88 | ||
|
|
0d9b07a6e4 | ||
|
|
b797fe25a3 | ||
|
|
d545f86c3b | ||
|
|
7efe1b6e15 | ||
|
|
a83c32c793 | ||
|
|
4b8abce439 | ||
|
|
5c00b9fa57 | ||
|
|
f555773a1e | ||
|
|
937f4d3e42 | ||
|
|
1c6d91074f | ||
|
|
89abc1b364 | ||
|
|
15b76b68b2 | ||
|
|
b71562f1a8 | ||
|
|
1c0465e27d | ||
|
|
1f708c1d2f | ||
|
|
2e04d92d0b | ||
|
|
679ab93d2f | ||
|
|
d57f114315 | ||
|
|
f11da151d7 | ||
|
|
158cd48e0b | ||
|
|
63d942c238 | ||
|
|
d6636e0592 | ||
|
|
8e5cffa29f | ||
|
|
f6a25870be | ||
|
|
e8ecd37bd6 | ||
|
|
70164ae210 | ||
|
|
5245b4247d | ||
|
|
7d6f4dbd8c | ||
|
|
b3f1a3d677 | ||
|
|
d7187b9b8c | ||
|
|
7e7e72e1f3 | ||
|
|
7cb996c360 | ||
|
|
e096d0cddb | ||
|
|
550c2cbcd2 | ||
|
|
b7ee795365 | ||
|
|
a77f70553b | ||
|
|
1689451752 | ||
|
|
8662ab8fa4 | ||
|
|
352ff51e1a | ||
|
|
db97a50ca5 | ||
|
|
235af538e8 | ||
|
|
749ba979f4 | ||
|
|
a3812a8c3c | ||
|
|
54c94998eb | ||
|
|
eebf427798 | ||
|
|
f3c7f5cfc9 | ||
|
|
39f5ce8539 | ||
|
|
21be71a26d | ||
|
|
e1c10bdbce | ||
|
|
dbf81d215e | ||
|
|
68249ee817 | ||
|
|
02f73bb277 | ||
|
|
a9a8d18b62 | ||
|
|
0318db3fc2 | ||
|
|
9e3da1a47e | ||
|
|
cb40109089 | ||
|
|
201f5b9b64 | ||
|
|
f10e32be60 | ||
|
|
3e76a33453 | ||
|
|
4967ec3263 | ||
|
|
306fdd4f30 | ||
|
|
0d24b79e2e | ||
|
|
fb1b85ce19 | ||
|
|
b0b11f7eed | ||
|
|
90c15e4c0a | ||
|
|
2d68439336 | ||
|
|
6cd8c1a318 | ||
|
|
16f0e09949 | ||
|
|
1595ba125b | ||
|
|
fc154f4923 | ||
|
|
8f88e5b12d | ||
|
|
6ca40588d8 | ||
|
|
d20b161909 | ||
|
|
e249c54bdb | ||
|
|
9f8af133ac | ||
|
|
b77d633402 | ||
|
|
dc284b212d | ||
|
|
f07a4ec7fb | ||
|
|
e61d9657c0 | ||
|
|
c11b0c102d | ||
|
|
8428e51e6b | ||
|
|
e8a57204a4 | ||
|
|
e9c2445afe | ||
|
|
b45ad86ace | ||
|
|
9ee7a7054f | ||
|
|
c1541633e1 | ||
|
|
84a35ed8b9 | ||
|
|
e51c80a284 | ||
|
|
4001ad958c | ||
|
|
c47703abfc | ||
|
|
40e5fa6dbf | ||
|
|
517835a6cd | ||
|
|
18e8daf898 | ||
|
|
8e05cb20d1 | ||
|
|
66788a4d72 | ||
|
|
4821cab7ee | ||
|
|
6b072a7e68 | ||
|
|
95fabab303 | ||
|
|
6743f5b7a4 | ||
|
|
11aadcd058 | ||
|
|
d7da31bfad | ||
|
|
06b7ad2adf | ||
|
|
fa6b8122e6 | ||
|
|
db25f52a41 | ||
|
|
bed3ba49cd | ||
|
|
ed1187a2df | ||
|
|
f5065e33b9 | ||
|
|
17cdbebc04 | ||
|
|
5eb0125fce | ||
|
|
a02f73ce7a | ||
|
|
793a308847 | ||
|
|
0c9511419b | ||
|
|
00b63283bd | ||
|
|
7b7a579320 | ||
|
|
c161b84cfd | ||
|
|
b924cac46a | ||
|
|
36b3af56b8 | ||
|
|
1a586a055c | ||
|
|
66171b77bf | ||
|
|
7991f899ac | ||
|
|
b37004f2ea | ||
|
|
662f6e05f5 | ||
|
|
b5e37f2aed | ||
|
|
5a661caaf6 | ||
|
|
77bd151be0 | ||
|
|
be6a97cf5f | ||
|
|
0632518f84 | ||
|
|
3536d0cf71 | ||
|
|
47e7fc1062 | ||
|
|
3d6a2fd0be | ||
|
|
00848880c0 | ||
|
|
ca6e904630 | ||
|
|
6a399a49a3 | ||
|
|
11ec0a349c | ||
|
|
cc74ab53e1 | ||
|
|
c7722c4009 | ||
|
|
8ed062a35d | ||
|
|
e3499ad0b4 | ||
|
|
5ff1d0f48b | ||
|
|
b662f8bdc7 | ||
|
|
daa36e10ed | ||
|
|
388bf95abf | ||
|
|
77365fe93d | ||
|
|
0417cd8dd3 | ||
|
|
bc60fbac77 | ||
|
|
805691b9f5 | ||
|
|
4d39466042 | ||
|
|
e015767597 | ||
|
|
55dda4ad47 | ||
|
|
773b3fcc64 | ||
|
|
f5f90b6948 | ||
|
|
d01c04938f | ||
|
|
f35f86c5bf | ||
|
|
4e91fb42a3 | ||
|
|
71c45112b1 | ||
|
|
5a8dac6e71 | ||
|
|
e9e7ee438a | ||
|
|
ecd29e789a | ||
|
|
7c584932a0 | ||
|
|
24b2153d40 | ||
|
|
02ffa3f480 | ||
|
|
13df97c68f | ||
|
|
d937172a52 | ||
|
|
65e7054b54 | ||
|
|
db55d9bdec | ||
|
|
a912f90ef5 | ||
|
|
42b903f3ec | ||
|
|
9a038b86fa | ||
|
|
40bdd4b160 | ||
|
|
c6079a7467 | ||
|
|
6c10117086 | ||
|
|
221a7dcbff | ||
|
|
be8613dc7f | ||
|
|
2b10181a65 | ||
|
|
6d7e7bc7a6 | ||
|
|
11110cd2ac | ||
|
|
327b4ae3f3 | ||
|
|
5b1022ae0c | ||
|
|
36aad573b6 | ||
|
|
881ff7a96d | ||
|
|
d3f902979a | ||
|
|
b754493691 | ||
|
|
ade9cbd6b8 | ||
|
|
cd0be026e1 | ||
|
|
f817e0d722 | ||
|
|
9f9b75f227 | ||
|
|
3a86a6c41a | ||
|
|
22ef02834b | ||
|
|
631460edf5 | ||
|
|
9350a5e089 | ||
|
|
b680a27c2e | ||
|
|
ab3bb5a4e3 | ||
|
|
e5b7031495 | ||
|
|
634c0b6895 | ||
|
|
e754875081 | ||
|
|
c6026fca56 | ||
|
|
8099221efb | ||
|
|
7e9ccd694a | ||
|
|
55f2c25475 | ||
|
|
8fd396814c | ||
|
|
9093eab85f | ||
|
|
024adfe49c | ||
|
|
a7b640b741 | ||
|
|
148c8a5891 | ||
|
|
a3ce08a602 | ||
|
|
18a49b3479 | ||
|
|
a2fb77792d | ||
|
|
097e2276cb | ||
|
|
477c0431dd | ||
|
|
98a418f7e3 | ||
|
|
4e43a14ffd | ||
|
|
fe4ee5a4cb | ||
|
|
f4aacf7030 | ||
|
|
06deb0f09d | ||
|
|
d1d3275331 | ||
|
|
2dfad6b6fa | ||
|
|
664daf1183 | ||
|
|
8e6ad3b0c6 | ||
|
|
0ade982566 | ||
|
|
badb54db7f | ||
|
|
6a6042c457 | ||
|
|
ef1fc5d703 | ||
|
|
e0e426d40e | ||
|
|
de208a40b0 | ||
|
|
9026fc0c29 | ||
|
|
a5917e5a36 | ||
|
|
d1ca05f2e4 | ||
|
|
4894bfd853 | ||
|
|
3d66ce521b | ||
|
|
84f70be31d | ||
|
|
4d55d56aa5 | ||
|
|
e045c0f41c | ||
|
|
50ae0992d4 | ||
|
|
05c0ccbfc3 | ||
|
|
ea5a4eb28e | ||
|
|
75433b9a94 | ||
|
|
c6b2d2b403 | ||
|
|
32a47d0866 | ||
|
|
b6bda16dad | ||
|
|
cfdfe3f49a | ||
|
|
b5374af7ce | ||
|
|
68a9a83041 | ||
|
|
8ca7d5ca94 | ||
|
|
26267635f9 | ||
|
|
116375c46a | ||
|
|
7bec2b7b13 | ||
|
|
b3803f0978 | ||
|
|
e05a09086b | ||
|
|
74fbbcbc1e | ||
|
|
f56de4ea12 | ||
|
|
0afcd11cfb | ||
|
|
92ee3ddbbb | ||
|
|
a2cddc8deb | ||
|
|
67c6cbb90f | ||
|
|
7bf7e8cc59 | ||
|
|
288ddae9f8 | ||
|
|
5c5ffb447a | ||
|
|
1aa51adb56 | ||
|
|
6c9af60c8d | ||
|
|
652a342983 | ||
|
|
b2fc41911a | ||
|
|
55f3b79061 | ||
|
|
eaa7ff43c6 | ||
|
|
15e9c655f9 | ||
|
|
3dbd3ba7f7 | ||
|
|
793f350a07 | ||
|
|
d0413a7115 | ||
|
|
ea3165e491 | ||
|
|
59ee428d0c | ||
|
|
6e279d6b34 | ||
|
|
48972b04e7 | ||
|
|
f7de33d2c8 | ||
|
|
e2889c06c3 | ||
|
|
200acbcc4f | ||
|
|
31ba6dde66 | ||
|
|
9e9470315e | ||
|
|
d4df9cfe48 | ||
|
|
320d33f675 | ||
|
|
d619ecfdc5 | ||
|
|
02d81d88d3 | ||
|
|
e00199071e | ||
|
|
12002da31f | ||
|
|
a57b309b16 | ||
|
|
bd35c960e5 | ||
|
|
c39cee6880 | ||
|
|
45aea82e9f | ||
|
|
e42018745a | ||
|
|
2c433a9621 | ||
|
|
7a9876b22a | ||
|
|
81ee3235a6 | ||
|
|
7ed712e31b | ||
|
|
d75c7a45f1 | ||
|
|
3378fa50a1 | ||
|
|
1d6612ea78 | ||
|
|
3926dfc8ae | ||
|
|
2ff9f8537f | ||
|
|
4c36aee79f | ||
|
|
3b557d5fbd | ||
|
|
832f9e76c1 | ||
|
|
932ea3b87d | ||
|
|
cee46a080b | ||
|
|
361161478b | ||
|
|
ff5b1cf090 | ||
|
|
bf13a6f9eb | ||
|
|
7cf219c500 | ||
|
|
12df71d28c | ||
|
|
6bd9d991ee | ||
|
|
a78dceb1a3 | ||
|
|
ac2b0546c9 | ||
|
|
b161cf23e1 | ||
|
|
f85aaa8955 | ||
|
|
6fb230f393 | ||
|
|
05a3e13e47 | ||
|
|
43018a168c | ||
|
|
618553a03d | ||
|
|
9b132e7a4f | ||
|
|
31c5c43e80 | ||
|
|
80065ba3ec | ||
|
|
5410b4e89a | ||
|
|
be66e0fcf0 | ||
|
|
e3114cfa83 | ||
|
|
df94b96b72 | ||
|
|
9e9e35b2fc | ||
|
|
a08b4737d5 | ||
|
|
208eebcd14 | ||
|
|
51bac7324a | ||
|
|
fe0ab8706b | ||
|
|
02a88b340a | ||
|
|
cd7551f898 | ||
|
|
a8cf3113f0 | ||
|
|
171e28af36 | ||
|
|
2af2ef0c6f | ||
|
|
f047d7ffe7 | ||
|
|
c31017def8 | ||
|
|
ebd2481c59 | ||
|
|
5f51a2c7b1 | ||
|
|
22cdd218f2 | ||
|
|
937fb92e2c | ||
|
|
06ef607ed0 | ||
|
|
69d47e82c9 | ||
|
|
e1c6a8baf5 | ||
|
|
0cd2fa52a6 | ||
|
|
34b3a968d3 | ||
|
|
d69654ea1f | ||
|
|
2db9b044c5 | ||
|
|
32166fefe7 | ||
|
|
5911d9f348 | ||
|
|
9027653d77 | ||
|
|
da98262a38 | ||
|
|
906da95cd4 | ||
|
|
a86fe8a7f6 | ||
|
|
75d6ab646f | ||
|
|
752038c2f4 | ||
|
|
ec328dd48e | ||
|
|
57a17401bf | ||
|
|
be0a6628e3 | ||
|
|
ddf0541ef2 | ||
|
|
224482cd47 | ||
|
|
02cff6f9d5 | ||
|
|
f8c92f4b70 | ||
|
|
83e174c0e1 | ||
|
|
b176e9a862 | ||
|
|
b188798121 | ||
|
|
bd299ddf4a | ||
|
|
15dc19bc33 | ||
|
|
f2e0c106d2 | ||
|
|
16e0580acc | ||
|
|
d3d9d42686 | ||
|
|
b1443b22f8 | ||
|
|
b372667e66 | ||
|
|
8009cfd918 | ||
|
|
57f3d5e436 | ||
|
|
713eb1f972 | ||
|
|
33a09c8629 | ||
|
|
a7944cfa79 | ||
|
|
e1767db5f6 | ||
|
|
73e3b370a5 | ||
|
|
74721b22f1 | ||
|
|
2e43d25387 | ||
|
|
0c543de506 | ||
|
|
6c79e087d7 | ||
|
|
d3d7636b47 | ||
|
|
c590641e42 | ||
|
|
9d3508dc4b | ||
|
|
287c956f50 | ||
|
|
654f14192f | ||
|
|
42e2ae9277 | ||
|
|
36d8b85807 | ||
|
|
568a2d300b | ||
|
|
79428de692 | ||
|
|
8955051b35 | ||
|
|
14442d55d8 | ||
|
|
393a5fb7ee | ||
|
|
ee6448c8c5 | ||
|
|
ad77c48841 | ||
|
|
83fb5c21a3 | ||
|
|
f8249a4106 | ||
|
|
87caaddd4c | ||
|
|
272f4e8a92 | ||
|
|
f9c7cc34a2 | ||
|
|
7d5602841d | ||
|
|
03afbac58f | ||
|
|
6c8da1d7d9 | ||
|
|
836e3bd251 | ||
|
|
218f6c4925 | ||
|
|
251d07e1c9 | ||
|
|
a0be79bdee | ||
|
|
434493654e | ||
|
|
821819c906 | ||
|
|
2a55a454c5 | ||
|
|
74041ab373 | ||
|
|
2fdde0255c | ||
|
|
6e34174770 | ||
|
|
f9cb4eca1a | ||
|
|
fa26dae5ab | ||
|
|
4c5913ad4d | ||
|
|
3cef4b1a74 | ||
|
|
415933f591 | ||
|
|
3a6bdbf219 | ||
|
|
b3669e3750 | ||
|
|
72ab73d0f3 | ||
|
|
730ea07cc6 | ||
|
|
66dc610faf | ||
|
|
f17c824f1e | ||
|
|
955f60e672 | ||
|
|
0b824b9dcb | ||
|
|
e4e7fb0c0d | ||
|
|
3e5533fe06 | ||
|
|
9566b6d0cc | ||
|
|
c97440e676 | ||
|
|
b9ba820887 | ||
|
|
704a251941 | ||
|
|
d20c9f86a9 | ||
|
|
bb7f081dcf | ||
|
|
da62161344 | ||
|
|
4afaf8178b | ||
|
|
bdd98d2dbc | ||
|
|
ec50606aa5 | ||
|
|
65d2d1796a | ||
|
|
9763753203 | ||
|
|
06a52933e7 | ||
|
|
9a5a39ab0e | ||
|
|
b4ebaa433c | ||
|
|
15da5e2873 | ||
|
|
2523a493a9 | ||
|
|
03cdfcfe56 | ||
|
|
acf7f5c9b7 | ||
|
|
a981170ba4 | ||
|
|
ff75f55742 | ||
|
|
cbb8545bf7 | ||
|
|
1d2737224f | ||
|
|
57443701d6 | ||
|
|
81e5847eb1 | ||
|
|
8a41cc0904 | ||
|
|
974dbbe9c9 | ||
|
|
2da1de0b03 | ||
|
|
ea86ef5c73 | ||
|
|
98c2b08ec9 | ||
|
|
fe1e736ae4 | ||
|
|
63c83192b6 | ||
|
|
c946104829 | ||
|
|
8b76a04826 | ||
|
|
d5732f21a4 | ||
|
|
2cb80179dd | ||
|
|
e9a0798327 | ||
|
|
f36340aad9 | ||
|
|
2baf5dc760 | ||
|
|
a1bb1a0715 | ||
|
|
f0481bbd77 | ||
|
|
113545bea7 | ||
|
|
b0608d6679 | ||
|
|
54ddb63473 | ||
|
|
4b56a2a2a3 | ||
|
|
9ec4b5c9ec | ||
|
|
6fe2adf8fd | ||
|
|
5afb147034 | ||
|
|
f3b95b90c9 | ||
|
|
9ab5360cb0 | ||
|
|
8657ca0658 | ||
|
|
c28efe955a | ||
|
|
4ea3cd4141 | ||
|
|
78386d2d71 | ||
|
|
4ba813f169 | ||
|
|
4602929b60 | ||
|
|
f12cc5c35e | ||
|
|
554ffe8f51 | ||
|
|
5aaffc94e4 | ||
|
|
b7c3927f94 | ||
|
|
50c5840755 | ||
|
|
c6437146a7 | ||
|
|
8ad9c0296b | ||
|
|
bf0b45cef9 | ||
|
|
9281c8aec0 | ||
|
|
1ea8e4c455 | ||
|
|
7a8469925e | ||
|
|
3225ab3d0a | ||
|
|
6ba323697a | ||
|
|
1f15df4fee | ||
|
|
1817bb2142 | ||
|
|
4eb121d956 | ||
|
|
a8afe5ce92 | ||
|
|
a3d90a727a | ||
|
|
bd778681b3 | ||
|
|
55951deaf9 | ||
|
|
ab0d4a4982 | ||
|
|
7a52d21254 | ||
|
|
fe4cc16171 | ||
|
|
b51fd11bf2 | ||
|
|
3a58c8e9f3 | ||
|
|
4f21c9eb56 | ||
|
|
1eba533dd9 | ||
|
|
30d8c1b4f8 | ||
|
|
b68c5a7f0c | ||
|
|
f2d4e4b2a3 | ||
|
|
fa5908bfa5 | ||
|
|
ad7418728a | ||
|
|
1164206055 | ||
|
|
a8a99875aa | ||
|
|
6a0509e1ea | ||
|
|
757470702d | ||
|
|
abd7a711b1 | ||
|
|
22384cf91e | ||
|
|
4f9d1d36ba | ||
|
|
ef00b3c7b6 | ||
|
|
9050e375d2 | ||
|
|
8a6b2a003c | ||
|
|
3eb8eb0201 | ||
|
|
aaf5c48990 | ||
|
|
146f8348a8 | ||
|
|
18211b280a | ||
|
|
9357bc445a | ||
|
|
38d6c01c35 | ||
|
|
63c39b1e87 | ||
|
|
4b22947f81 | ||
|
|
2eda10c7f6 | ||
|
|
ba4e125ba1 | ||
|
|
4142f62895 | ||
|
|
c4d35e03a8 | ||
|
|
42a1e0e1ee | ||
|
|
a0b1880e8d | ||
|
|
d113b0d474 | ||
|
|
e5b1a073f9 | ||
|
|
6fcb7f478e | ||
|
|
5f743d0645 | ||
|
|
614a9fa1cc | ||
|
|
30a5baea55 | ||
|
|
afcf5b68f7 | ||
|
|
40061edafa | ||
|
|
3300e6c82c | ||
|
|
378c4f3431 | ||
|
|
4ec247d6ce | ||
|
|
1e0e6b95d3 | ||
|
|
4e1839eaf3 | ||
|
|
b0c8e11fca | ||
|
|
ede44512e5 | ||
|
|
fd386eea95 | ||
|
|
5ab9ea3550 | ||
|
|
0f883b3c4e | ||
|
|
affb23683a | ||
|
|
3c6b0aa81c | ||
|
|
610b24415f | ||
|
|
8ab0cb8d10 | ||
|
|
962c7193ee | ||
|
|
46d22a499f | ||
|
|
4c7fffd844 | ||
|
|
764822fde2 | ||
|
|
3495a86038 | ||
|
|
bc7d529819 | ||
|
|
b5ab67917b | ||
|
|
db1e6c4496 | ||
|
|
3e2782e12f | ||
|
|
abae3c7a49 | ||
|
|
453c1e4e8d | ||
|
|
3202694bd9 | ||
|
|
9bd6fc37cc | ||
|
|
1d126c12c6 | ||
|
|
2d167d2405 | ||
|
|
2993cc8bc5 | ||
|
|
c0ebd82c05 | ||
|
|
feb8ba0b56 | ||
|
|
936d7d4c50 | ||
|
|
648f0bdec7 | ||
|
|
78e0cbaad7 | ||
|
|
6f22f43245 | ||
|
|
65e574112b | ||
|
|
2e6142d4eb | ||
|
|
06c04a7ac4 | ||
|
|
a872878e9c | ||
|
|
97d3628998 | ||
|
|
ae3960ba0c | ||
|
|
7c7d91998f | ||
|
|
6877a0ad81 | ||
|
|
bfa0b138a5 | ||
|
|
16587b4b44 | ||
|
|
0f986d9775 | ||
|
|
b5455d5825 | ||
|
|
83bf773cf6 | ||
|
|
4d3ce4c3da | ||
|
|
5736d8f92e | ||
|
|
3f7dee3b9e | ||
|
|
748ea8a7a1 | ||
|
|
bc0c5738b1 | ||
|
|
ea6f831a8e | ||
|
|
f1744a3737 | ||
|
|
1697ee0baf | ||
|
|
0c9179f8b5 | ||
|
|
afbcbcac63 | ||
|
|
199903a1f7 | ||
|
|
4a3494641d | ||
|
|
b87cc3160f | ||
|
|
a8df71a54c | ||
|
|
8ed2c5cab2 | ||
|
|
1ddc70848d | ||
|
|
8e1096aa67 | ||
|
|
7aa85ccc59 | ||
|
|
7690bd393a | ||
|
|
aa91f6263c | ||
|
|
503fdc3db7 | ||
|
|
34a466c8c1 | ||
|
|
ac5a4a1018 | ||
|
|
6a2b8157ee | ||
|
|
f5bfbf4e07 | ||
|
|
90e4b2485d | ||
|
|
58100066f9 | ||
|
|
f7bc5f3e26 | ||
|
|
e948eb5461 | ||
|
|
ecda48303b | ||
|
|
42578be4d4 | ||
|
|
4f5ed97786 | ||
|
|
1611a819a4 | ||
|
|
4991f3589f | ||
|
|
d4452051ee | ||
|
|
88e00ac19a | ||
|
|
0c383552ac | ||
|
|
5001643573 | ||
|
|
c6ef192dea | ||
|
|
f394d8117f | ||
|
|
f046177e53 | ||
|
|
3fe450ef0b | ||
|
|
5b424b2a25 | ||
|
|
1d452c9f76 | ||
|
|
9a4de82b56 | ||
|
|
3b9d9925e1 | ||
|
|
d68e7f74b6 | ||
|
|
72ef56710d | ||
|
|
16eeb614fe | ||
|
|
5b2a65d2cb | ||
|
|
6442c8b619 | ||
|
|
bbb3b053f5 | ||
|
|
2e04f94434 | ||
|
|
15f7bb385b | ||
|
|
ad74306672 | ||
|
|
c8e85d1d57 | ||
|
|
748877a10d | ||
|
|
1d5ac86490 | ||
|
|
736af63c30 | ||
|
|
4f85426deb | ||
|
|
b5ade7b338 | ||
|
|
d2696ce618 | ||
|
|
0c09154162 | ||
|
|
e076c46ba8 | ||
|
|
a93e3d4844 | ||
|
|
5334d3e92f | ||
|
|
e9f6f0dd39 | ||
|
|
e099633601 | ||
|
|
40263d2201 | ||
|
|
6c9db53785 | ||
|
|
7d094c88d5 | ||
|
|
bf2216ea8f | ||
|
|
452b02bef4 | ||
|
|
4c665dbe42 | ||
|
|
206e87d7de | ||
|
|
3a2ca8ba8f | ||
|
|
e4de14e31b | ||
|
|
a9f505ac28 | ||
|
|
51dd5071a1 | ||
|
|
92bb952875 | ||
|
|
5d09a47150 | ||
|
|
3da3008ae5 | ||
|
|
23529336df | ||
|
|
402af3bb95 | ||
|
|
34574c079b | ||
|
|
4a66c76aeb | ||
|
|
a0437e9dbc | ||
|
|
60b326c45d | ||
|
|
482ad6d2dd | ||
|
|
36fe63c076 | ||
|
|
ea77aa4b74 | ||
|
|
9fdb3c2edd | ||
|
|
add058bb46 | ||
|
|
b6215b8b12 | ||
|
|
639d19413b | ||
|
|
4166bff167 | ||
|
|
27839caa26 | ||
|
|
0ced8a0c39 | ||
|
|
1b76671d18 | ||
|
|
d8ea92fc40 | ||
|
|
5a730ffccd | ||
|
|
991777e72f | ||
|
|
0a5733c381 | ||
|
|
cb8cf2b5be | ||
|
|
06edc84eed | ||
|
|
a286c79662 | ||
|
|
1f4f904829 | ||
|
|
e7f97aabf2 | ||
|
|
ca5548dfc0 | ||
|
|
c2f7e442d7 | ||
|
|
877e9123a0 | ||
|
|
a5d2333889 | ||
|
|
2f28161b7e | ||
|
|
483b17773d | ||
|
|
158394342f | ||
|
|
d7c2392049 | ||
|
|
037f2b4293 | ||
|
|
b3d2bea619 | ||
|
|
8682735906 | ||
|
|
a2b2c63bd1 | ||
|
|
aecc43472d | ||
|
|
6d5c967499 | ||
|
|
942b25283f | ||
|
|
95234dd34b | ||
|
|
36e36d8faa | ||
|
|
6cf1c83d66 | ||
|
|
f0a725c94a | ||
|
|
5b6d93913c | ||
|
|
05ab7dab7d | ||
|
|
c76fe90d8e | ||
|
|
9cd94b8a44 | ||
|
|
d2a22367ac | ||
|
|
e09ec750d8 | ||
|
|
c252a971b5 | ||
|
|
4e521b0bc6 | ||
|
|
d2f57bb278 | ||
|
|
16c09f3b6a | ||
|
|
68b60ef762 | ||
|
|
5134413258 | ||
|
|
db07317d29 | ||
|
|
98991ae457 | ||
|
|
d00b66b3a6 | ||
|
|
6b5b9b7cc2 | ||
|
|
7c8aa8c28c | ||
|
|
cd903664b0 | ||
|
|
7c35ce4104 | ||
|
|
9a384ac76d | ||
|
|
8a191b4735 | ||
|
|
f4c9bb8e0f | ||
|
|
6cf4f31d14 | ||
|
|
579066ca77 | ||
|
|
3c8cb5806b | ||
|
|
94f19901a1 | ||
|
|
d06eed0083 | ||
|
|
0d58f79dc2 | ||
|
|
0a3f0b973b | ||
|
|
f8b317b69c | ||
|
|
97c461c555 | ||
|
|
11ee072e85 | ||
|
|
c1eda323e4 | ||
|
|
97e7c43e93 | ||
|
|
e4372346d4 | ||
|
|
f80894376a | ||
|
|
b58e49aea1 | ||
|
|
3a2c2513cf | ||
|
|
0edf12b186 | ||
|
|
3bae3965b1 | ||
|
|
e57fed6bc8 | ||
|
|
81de52f79b | ||
|
|
5696c4820d | ||
|
|
c9c77487b7 | ||
|
|
3b7233a5d2 | ||
|
|
dacbc17eca | ||
|
|
89f195e0fd | ||
|
|
da9b57c2d9 | ||
|
|
5b7672aa70 | ||
|
|
ff3081bb91 | ||
|
|
a5af4c395c | ||
|
|
cf2068b7cd | ||
|
|
dd95cc20eb | ||
|
|
4220962c40 | ||
|
|
f18ecb0add | ||
|
|
3f428141d9 | ||
|
|
0e3d49b47d | ||
|
|
f69eb8ddfa | ||
|
|
0f4f400cec | ||
|
|
56f050de03 | ||
|
|
beb902336f | ||
|
|
23d164b015 | ||
|
|
ef7fef6b28 | ||
|
|
ff565dc7de | ||
|
|
49078a7781 | ||
|
|
ea2b7b4b76 | ||
|
|
1dca274559 | ||
|
|
be75271c69 | ||
|
|
4e2c55959a | ||
|
|
0b615353d0 | ||
|
|
98a995a6cc | ||
|
|
af76fc5725 | ||
|
|
b1bca1b0ba | ||
|
|
a3ed7dd01b | ||
|
|
6cd1b4acd3 | ||
|
|
d51be57861 | ||
|
|
d359eb9051 | ||
|
|
7352b055c2 | ||
|
|
132db24cfb | ||
|
|
da0627faa6 | ||
|
|
2ff1941cd2 | ||
|
|
930e73890c | ||
|
|
4a84186fad | ||
|
|
8322d4c19c | ||
|
|
67d02beed0 | ||
|
|
13a79663e6 | ||
|
|
88bba1bb91 | ||
|
|
b0443d517b | ||
|
|
f505bdd807 | ||
|
|
fbbf4d1142 | ||
|
|
0419ed8907 | ||
|
|
f51a11d316 | ||
|
|
35d5c7b1f8 | ||
|
|
6560c83db0 | ||
|
|
fdd92f2797 | ||
|
|
7daad891f8 | ||
|
|
ba973981d7 | ||
|
|
7e20c7eb94 | ||
|
|
0ad0d9fb2e | ||
|
|
7aa1a8d161 | ||
|
|
3021dad626 | ||
|
|
bac4a0ec15 | ||
|
|
5b98b5b183 | ||
|
|
ba66b2522f | ||
|
|
9a8341b85a | ||
|
|
087d04aae3 | ||
|
|
bbf94ac3a1 | ||
|
|
f4075fd6c8 | ||
|
|
7dce541fca | ||
|
|
04dd7951f8 | ||
|
|
bdcaf157a1 | ||
|
|
44013eb572 | ||
|
|
dbd1055e0a | ||
|
|
66f3884542 | ||
|
|
223442c6e9 | ||
|
|
90b1bdc89c | ||
|
|
4444d1d687 | ||
|
|
9922a715c0 | ||
|
|
f4851c2cd1 | ||
|
|
1acbb35cb0 | ||
|
|
d752c2650e | ||
|
|
1b5332c0b2 | ||
|
|
c84abb1d8e | ||
|
|
1c66413ee7 | ||
|
|
0b12fbd422 | ||
|
|
1788f2d4ef | ||
|
|
fe43be62af | ||
|
|
7c117994b8 | ||
|
|
278467b74a | ||
|
|
f85c11b4aa | ||
|
|
8d7da47db2 | ||
|
|
9d0e5525a6 | ||
|
|
c9517c709b | ||
|
|
d660b56975 | ||
|
|
b8f6ae7d3a | ||
|
|
4341ea35c9 | ||
|
|
aad4424ed8 | ||
|
|
a2adc37a34 | ||
|
|
e19540a132 | ||
|
|
1ca8657745 | ||
|
|
a2aade26ef | ||
|
|
c4a91c0659 | ||
|
|
6ee1794862 | ||
|
|
6f203af127 | ||
|
|
a71d39025b | ||
|
|
7a2ac7ce2d | ||
|
|
58c4729ddd | ||
|
|
e50ed3ebcc | ||
|
|
2b5a7a0c6f | ||
|
|
3d419cd23a | ||
|
|
36c64936b0 | ||
|
|
a4d8b2b3ae | ||
|
|
0aea122a82 | ||
|
|
8a04370f3a | ||
|
|
2d04ab6994 | ||
|
|
43fe49e599 | ||
|
|
a61ed63286 | ||
|
|
1ed6a7b830 | ||
|
|
1413c13ded | ||
|
|
821cfc8820 | ||
|
|
eef1a4af56 | ||
|
|
10d7f8c179 | ||
|
|
68397ea56b | ||
|
|
9a492900ab | ||
|
|
f29df7bd0c | ||
|
|
320213a5ae | ||
|
|
6016025565 | ||
|
|
7e9c12061d | ||
|
|
7268073d19 | ||
|
|
ac0e61182b | ||
|
|
85321a07d4 | ||
|
|
c4e2c87505 | ||
|
|
a4dd307dfe | ||
|
|
730da9f345 | ||
|
|
c19fd3b831 | ||
|
|
d655e79be8 | ||
|
|
c9424d153d | ||
|
|
03b86016c5 | ||
|
|
345a86150b | ||
|
|
815f4a5e1a | ||
|
|
51c0fe6650 | ||
|
|
58242acb91 | ||
|
|
74c2e8aba0 | ||
|
|
7e8e35122b | ||
|
|
3c5fc2e301 | ||
|
|
f24977a10d | ||
|
|
912e101051 | ||
|
|
072012284e | ||
|
|
e2706e11ca | ||
|
|
8c45826454 | ||
|
|
89405f0e36 | ||
|
|
614fafae5f | ||
|
|
69c6e33e37 | ||
|
|
4a1ff1cdf4 | ||
|
|
a5b73c927f | ||
|
|
1a4d696ba5 | ||
|
|
74e1c01205 | ||
|
|
49bd75e457 | ||
|
|
00ca582bc5 | ||
|
|
2861432f62 | ||
|
|
92379a3a2d | ||
|
|
352d9d51fa | ||
|
|
62b2f2407f | ||
|
|
a53a2d1098 | ||
|
|
a86b6d45ca | ||
|
|
09fa6f64b9 | ||
|
|
d452e6b67b | ||
|
|
c10d349a19 | ||
|
|
2799aea94f | ||
|
|
576c9a871c | ||
|
|
56a9304306 | ||
|
|
8d61730356 | ||
|
|
f75848d722 | ||
|
|
619499c942 | ||
|
|
9b0fcef925 | ||
|
|
012205e9f1 | ||
|
|
c64539f2ab | ||
|
|
69c95bcb99 | ||
|
|
23b574e448 | ||
|
|
25b48c032e | ||
|
|
ad26e55ef1 | ||
|
|
a8cd33fbdf | ||
|
|
5618e7e590 | ||
|
|
d6948d4445 | ||
|
|
418df1187f | ||
|
|
235ed91542 | ||
|
|
0923b9306f | ||
|
|
6753994332 | ||
|
|
a3933b44c4 | ||
|
|
f41ac4eaef | ||
|
|
6902c6b58b | ||
|
|
bb2e4297f8 | ||
|
|
21a0746dd9 | ||
|
|
3d4796314f | ||
|
|
f1496c9e37 | ||
|
|
d2fbf94976 | ||
|
|
da047e1eaa | ||
|
|
f906543e87 | ||
|
|
3ca7944460 | ||
|
|
9f13fe19e0 | ||
|
|
8ff886f1bd | ||
|
|
43c0fb8b0c | ||
|
|
d54084cdbd | ||
|
|
4c81f1f4c2 | ||
|
|
5c7b3ab04d | ||
|
|
883b955fff | ||
|
|
0cc9581c6d | ||
|
|
3f48ae2f05 | ||
|
|
d2f00b22fd | ||
|
|
cb8f7dc3f3 | ||
|
|
3577d256cf | ||
|
|
4101181092 | ||
|
|
cfab5abd36 | ||
|
|
b44335d903 | ||
|
|
007f260583 | ||
|
|
5147704a86 | ||
|
|
6730c16cee | ||
|
|
331570ddc9 | ||
|
|
d3e8e72843 | ||
|
|
988eaa35ee | ||
|
|
e56390e82b | ||
|
|
81f331fd2a | ||
|
|
ba2a62786d | ||
|
|
acef87970d | ||
|
|
e7cc5fa105 | ||
|
|
55ced1f278 | ||
|
|
692522b586 | ||
|
|
d840f1e9dd | ||
|
|
05996df295 | ||
|
|
da4c5b0e82 | ||
|
|
9503475e69 | ||
|
|
fed5f28bde | ||
|
|
bd481f0b55 | ||
|
|
fc47f0f167 | ||
|
|
bfec2495b8 | ||
|
|
e55935a801 | ||
|
|
b02c7be9c8 | ||
|
|
4b8c86ee2f | ||
|
|
789266d14a | ||
|
|
a219bc4679 | ||
|
|
7bea9234b5 | ||
|
|
115d33659b | ||
|
|
c56c0b47be | ||
|
|
2fe8fb6cfa | ||
|
|
b0e59d6df8 | ||
|
|
3eb7cad42f | ||
|
|
481151875d | ||
|
|
ca553d8017 | ||
|
|
0422d98753 | ||
|
|
a5dfe42751 | ||
|
|
e179f7576e | ||
|
|
19bfe820b9 | ||
|
|
8323ac2934 | ||
|
|
5fca9dce64 | ||
|
|
19c72eea5c | ||
|
|
7a282063ef | ||
|
|
4972e47268 | ||
|
|
4c4e478007 | ||
|
|
162d2ce0f9 | ||
|
|
841084b651 | ||
|
|
8cbbab296e | ||
|
|
469c4108ef | ||
|
|
fab188cb23 | ||
|
|
45186d4a0c | ||
|
|
fe65d82e99 | ||
|
|
d36199c999 | ||
|
|
3de5972440 | ||
|
|
9e8ebfc482 | ||
|
|
a9ae44d49a | ||
|
|
35ff3ec0eb | ||
|
|
e81e88f2a9 | ||
|
|
2992396482 | ||
|
|
a9e204d145 | ||
|
|
8a1b0fe9e9 | ||
|
|
93932c3997 | ||
|
|
a16c403e7f | ||
|
|
f584fd95c2 | ||
|
|
fd72c1d2eb | ||
|
|
46dae57c43 | ||
|
|
d4d0888c23 | ||
|
|
5a235e671e | ||
|
|
476494fc92 | ||
|
|
14502e2895 | ||
|
|
027a1b3a3b | ||
|
|
b3c67e4291 | ||
|
|
ec831ded6a | ||
|
|
e77f9db33d | ||
|
|
f3d066abd1 | ||
|
|
0ace27c7db | ||
|
|
42166e1f8f | ||
|
|
77dbb42e72 | ||
|
|
4c540dcf57 | ||
|
|
66f544bfe1 | ||
|
|
37b0fd88d3 | ||
|
|
0137bb22a4 | ||
|
|
f9571ab875 | ||
|
|
79593595b9 | ||
|
|
6511cfe28a | ||
|
|
9a3a1f1228 | ||
|
|
af011765a4 | ||
|
|
b1a58e9f61 | ||
|
|
c543f139eb | ||
|
|
2c07d642e1 | ||
|
|
28bd751d82 | ||
|
|
3f9c482002 | ||
|
|
83170b1a12 | ||
|
|
65f1dd6b07 | ||
|
|
8763262670 | ||
|
|
dbf08b77bc | ||
|
|
d1c7693830 | ||
|
|
d2c5b7ff1d | ||
|
|
69d286d1d9 | ||
|
|
f91f696cd6 | ||
|
|
d90a5cdd2f | ||
|
|
6bec944f6f | ||
|
|
b58b501303 | ||
|
|
81258c1830 | ||
|
|
0a9bd26c32 | ||
|
|
3aff08333f | ||
|
|
073d8a4e74 | ||
|
|
37c1275b36 | ||
|
|
2e075bcbd3 | ||
|
|
70dfae07ac | ||
|
|
2bfe6b2d2c | ||
|
|
edfb2b9ae6 | ||
|
|
4d5cf5700e | ||
|
|
b97bce4693 | ||
|
|
ad9beca9db | ||
|
|
a1467d131f | ||
|
|
2ac854edc4 | ||
|
|
cc60ecdd54 | ||
|
|
6a637f32e8 | ||
|
|
d7b920f97c | ||
|
|
119d97a873 | ||
|
|
a38dd40749 | ||
|
|
64208635dd | ||
|
|
8d6f5a396e | ||
|
|
0b1b2508d5 | ||
|
|
db0b59354a | ||
|
|
0aff146ac0 | ||
|
|
0342820f94 | ||
|
|
8460de31ad | ||
|
|
9ced8e6376 | ||
|
|
9fc7608193 | ||
|
|
8410640633 | ||
|
|
c47fbe0ff9 | ||
|
|
70f5a0ef62 | ||
|
|
3a774f6546 | ||
|
|
8c8a8c816b | ||
|
|
004667bea9 | ||
|
|
01beabe0b8 | ||
|
|
de669790d1 | ||
|
|
eb5cc65702 | ||
|
|
485e2f4c42 | ||
|
|
336ff3681e | ||
|
|
ce2a9557d1 | ||
|
|
f90820e887 | ||
|
|
d283804675 | ||
|
|
06f3f2c1e7 | ||
|
|
468e51cc8e | ||
|
|
2de78cda79 | ||
|
|
28eb8cac54 | ||
|
|
5bc18dce53 | ||
|
|
3245a11beb | ||
|
|
42164b4ea4 | ||
|
|
b635255954 | ||
|
|
2241438fc7 | ||
|
|
92e95b1509 | ||
|
|
7bba5f4a04 | ||
|
|
99e2630c9e | ||
|
|
e3459aa8f0 | ||
|
|
de1c5ba193 | ||
|
|
84854bc475 | ||
|
|
4ba266c6c7 | ||
|
|
7f3feb26c9 | ||
|
|
368f7306e4 | ||
|
|
8b88e76cb3 | ||
|
|
01c89dbd74 | ||
|
|
876ac7670d | ||
|
|
2dced655d9 | ||
|
|
55247cfbd4 | ||
|
|
0e8b408303 | ||
|
|
27e6b1f414 | ||
|
|
0a813a5d8d | ||
|
|
39060b92f5 | ||
|
|
c1c2e97770 | ||
|
|
4dd6cca71d | ||
|
|
54482a5021 | ||
|
|
a0ce0f13c7 | ||
|
|
63d3ab2968 | ||
|
|
ad084e9656 | ||
|
|
2e000df201 | ||
|
|
9d15df25bc | ||
|
|
76c3e48f1e | ||
|
|
2bf17f6f5a | ||
|
|
4ce698b9b9 | ||
|
|
3925fb7d49 | ||
|
|
c489b65bf2 | ||
|
|
c6a9e1ccbc | ||
|
|
d220dba95c | ||
|
|
b2bdae98da | ||
|
|
30ff4d7191 | ||
|
|
4bfaa5661b | ||
|
|
330376c9b5 | ||
|
|
44700f5f9b | ||
|
|
383c95fc22 | ||
|
|
1ae0f643fb | ||
|
|
0ade2b58c9 | ||
|
|
69ef78f019 | ||
|
|
cf6ce3e212 | ||
|
|
159f0b13ec | ||
|
|
522b23b551 | ||
|
|
f8b74dc0ac | ||
|
|
6499c38105 | ||
|
|
5ba251964a | ||
|
|
d2dc2881cc | ||
|
|
dc15c38338 | ||
|
|
e49e68743c | ||
|
|
f63ce8dc7f | ||
|
|
d150d4af7f | ||
|
|
0f990e649d | ||
|
|
cda3c71b2a | ||
|
|
cc5ce1bfa3 | ||
|
|
52b9578299 | ||
|
|
aefae65811 | ||
|
|
b6eef2f865 | ||
|
|
0434a5eed8 | ||
|
|
12b634323b | ||
|
|
06b3af8e7e | ||
|
|
cb326bee30 | ||
|
|
47f847d3c2 | ||
|
|
116e364efb | ||
|
|
566f58a09b | ||
|
|
071e3e31f3 | ||
|
|
337741f8b0 | ||
|
|
9e75d89bb2 | ||
|
|
ab5241d11a | ||
|
|
88606283b7 | ||
|
|
3be24a48bb | ||
|
|
d2622e2f5a | ||
|
|
5966ec9279 | ||
|
|
534392b9c2 | ||
|
|
412249db4f | ||
|
|
45a6f2a286 | ||
|
|
4549f3556b | ||
|
|
f65ac90534 | ||
|
|
47c582de47 | ||
|
|
316e12098f | ||
|
|
3e6bf06d0e | ||
|
|
65fc046284 | ||
|
|
0da0ae7e67 | ||
|
|
09eeb5ad4f | ||
|
|
5ec92da4be | ||
|
|
ddbf060303 | ||
|
|
dbb5613fe4 | ||
|
|
f52b50ae67 | ||
|
|
fa0679e09e | ||
|
|
bbdec163ad | ||
|
|
8632b2fd96 | ||
|
|
6118c6f232 | ||
|
|
fbefafdd40 | ||
|
|
486ccc7f01 | ||
|
|
6320fc1aae | ||
|
|
8ec3af8500 | ||
|
|
17bbaa0d62 | ||
|
|
66aba2f599 | ||
|
|
356db1de10 | ||
|
|
7f56681957 | ||
|
|
41d3e37774 | ||
|
|
6f26f84a68 | ||
|
|
062d9d3d31 | ||
|
|
bd574ecb36 | ||
|
|
6b9a3e2d24 | ||
|
|
4748c7a6cd | ||
|
|
51f7bb1617 | ||
|
|
e7b1f74f57 | ||
|
|
ee15a53547 | ||
|
|
d289d26bcb | ||
|
|
02ca71358f | ||
|
|
3adfcfd9ce | ||
|
|
2d0e40d9c5 | ||
|
|
c605a302b6 | ||
|
|
d239ff5831 | ||
|
|
090f89c9cb | ||
|
|
62e64eb5b2 | ||
|
|
f9b8beb312 | ||
|
|
1f15e65846 | ||
|
|
1902c2d1f6 | ||
|
|
c44fdfc61e | ||
|
|
9336d891d7 | ||
|
|
5e6752a8fe | ||
|
|
c849c18ce2 | ||
|
|
240c1bc05d | ||
|
|
a22de5f9df | ||
|
|
d65ea6005f | ||
|
|
ca7f37b716 | ||
|
|
18359ef56e | ||
|
|
ce86232347 | ||
|
|
c33d67f792 | ||
|
|
081018e328 | ||
|
|
c0ad3b9938 | ||
|
|
6d0b6bbccf | ||
|
|
5c211f016c | ||
|
|
e856207e21 | ||
|
|
663d39b55c | ||
|
|
ffee243d9e | ||
|
|
0d1bf63050 | ||
|
|
ad0e2d6002 | ||
|
|
6ca7553b3f | ||
|
|
501ef41868 | ||
|
|
f812d0eade | ||
|
|
40d983a66d | ||
|
|
aaeb854bbb | ||
|
|
c7b06d2a9c | ||
|
|
8762bbb0ba | ||
|
|
d53a59f79e | ||
|
|
9457ba1d01 | ||
|
|
7e59e1bfcc | ||
|
|
2b00aa2285 | ||
|
|
d0301ddd49 | ||
|
|
cc2b1309b7 | ||
|
|
d00d8c428d | ||
|
|
9ee95bab6e | ||
|
|
ac1dcce854 | ||
|
|
82fec34f74 | ||
|
|
018cab4c08 | ||
|
|
e95f4f4457 | ||
|
|
0b93ca69e7 | ||
|
|
3f0f2cd2ab | ||
|
|
4d5e925ede | ||
|
|
45221869c7 | ||
|
|
cec7d71b04 | ||
|
|
b222c556e4 | ||
|
|
afa38a73bf | ||
|
|
2c6fd0f3ca | ||
|
|
0f385eaa2c | ||
|
|
3613b107fc | ||
|
|
14cf16f201 | ||
|
|
9ef458336c | ||
|
|
f8051d648c | ||
|
|
44bcda87ed | ||
|
|
ac21d0419b | ||
|
|
e0662ea7ed | ||
|
|
7558acdd76 | ||
|
|
abbe7080d5 | ||
|
|
633b44b7bd | ||
|
|
f2531c0ad7 | ||
|
|
fe722413f1 | ||
|
|
1403deb086 | ||
|
|
7fce35c7d9 | ||
|
|
1c6edcf780 | ||
|
|
e29e00b74e | ||
|
|
ad63fe3e76 | ||
|
|
8c35514ced | ||
|
|
41a4622fb5 | ||
|
|
0dd2e4bc8f | ||
|
|
22a855c9e1 | ||
|
|
a8a11d20db | ||
|
|
c062a743ee | ||
|
|
5d2ea4b6d1 | ||
|
|
207e67b724 | ||
|
|
b36d044620 | ||
|
|
39ecf9170b | ||
|
|
e416bc2de4 | ||
|
|
7259a3f82d | ||
|
|
95291a2e06 | ||
|
|
85f994303f | ||
|
|
b6b95345c8 | ||
|
|
44cd3a6ec1 | ||
|
|
bee53ec94b | ||
|
|
ba25d38c45 | ||
|
|
81a7d8df36 | ||
|
|
7f4cb6a262 | ||
|
|
86a6b68d61 | ||
|
|
34e0c295e1 | ||
|
|
b9d2c851d1 | ||
|
|
06a0f34d49 | ||
|
|
4f4c02aefa | ||
|
|
4ffd60ce86 | ||
|
|
175cdd9fb5 | ||
|
|
9f185109b8 | ||
|
|
7541dac366 | ||
|
|
0d22731567 | ||
|
|
38b36d923d | ||
|
|
7315a797c6 | ||
|
|
7967d2043f | ||
|
|
f2143c7de7 | ||
|
|
6e3665aeca | ||
|
|
5e36ba4ba7 | ||
|
|
a149fb57c3 | ||
|
|
210399a1ff | ||
|
|
2b5d415f43 | ||
|
|
8117d3532d | ||
|
|
f8e430f3a7 | ||
|
|
4a5ce7f6c4 | ||
|
|
981391fe09 | ||
|
|
32f018a950 | ||
|
|
7a88124070 | ||
|
|
c79aa4507e | ||
|
|
6c88c1c30d | ||
|
|
63db8da5d4 | ||
|
|
c89170ce29 | ||
|
|
27343ca36a | ||
|
|
6e30c19e1c | ||
|
|
74ba851ce5 | ||
|
|
eaa1e66d09 | ||
|
|
ddf8b23570 | ||
|
|
8b4b87afac | ||
|
|
6dc7f36d7b | ||
|
|
162e223f68 | ||
|
|
ec4c366bef | ||
|
|
1a016c81bc | ||
|
|
0155bb4fea | ||
|
|
0d3f356c1c | ||
|
|
ce3dbefa74 | ||
|
|
696fee1cbe | ||
|
|
45f830e266 | ||
|
|
cf2f8820b9 | ||
|
|
31f14b3e64 | ||
|
|
de614733c4 | ||
|
|
a0843eb240 | ||
|
|
52a2314f8e | ||
|
|
a402d2efdc | ||
|
|
c90c0ac259 | ||
|
|
ee84a1d160 | ||
|
|
472427df94 | ||
|
|
ad71560b8d | ||
|
|
c043d0c858 | ||
|
|
ab17a7161a | ||
|
|
fc1267c4dd | ||
|
|
3cb046e343 | ||
|
|
a98d599096 | ||
|
|
98ffebb52d | ||
|
|
4f92a75911 | ||
|
|
4cb02aaf9c | ||
|
|
ad011826f8 | ||
|
|
f74ed73317 | ||
|
|
0e36454890 | ||
|
|
966722826f | ||
|
|
49e5d3ff6e | ||
|
|
a183de4c6e | ||
|
|
7d19d36a13 | ||
|
|
abb20fa371 | ||
|
|
9acf7e4d71 | ||
|
|
cde9f19aec | ||
|
|
b70f1fc3ef | ||
|
|
7a5d73624b | ||
|
|
6a3a566830 | ||
|
|
c6edf94028 | ||
|
|
041354c5da | ||
|
|
a14533a9d4 | ||
|
|
6bd49b1c79 | ||
|
|
43b8f75ce1 | ||
|
|
fbe946719b | ||
|
|
462f90788c | ||
|
|
573565ff68 | ||
|
|
0942617e8f | ||
|
|
7c56ea77a1 | ||
|
|
c98e6c6aee | ||
|
|
b6d91237d4 | ||
|
|
1e7a520230 | ||
|
|
1ec8663648 | ||
|
|
d7c727d720 | ||
|
|
b43c6e4037 | ||
|
|
d6640f40f7 | ||
|
|
d6bae44500 | ||
|
|
ebe6e0495f | ||
|
|
d94b41692c | ||
|
|
a503275036 | ||
|
|
32347caa7e | ||
|
|
1ae9e9eb62 | ||
|
|
931ad0b7ec | ||
|
|
44fd700fc3 | ||
|
|
8aa3b4ef40 | ||
|
|
c124383a0f | ||
|
|
c57670fc71 | ||
|
|
9b77089c73 | ||
|
|
68dccf5337 | ||
|
|
21a9d01568 | ||
|
|
547125cb82 | ||
|
|
0d1549e56f | ||
|
|
19960b2305 | ||
|
|
194c8fc32c | ||
|
|
475d42e02f | ||
|
|
9ad2488c51 | ||
|
|
7332c11d5a | ||
|
|
fed5f742e3 | ||
|
|
45863f9a2d | ||
|
|
91f1b77a6c | ||
|
|
39b929a779 | ||
|
|
ccec3e5a4b | ||
|
|
40d55acd90 | ||
|
|
f54cc3e381 | ||
|
|
6f83d76b57 | ||
|
|
4ac9e13874 | ||
|
|
650e2d9e21 | ||
|
|
3099b6befb | ||
|
|
f11ea1159f | ||
|
|
d540b6d879 | ||
|
|
d43ecdfce3 | ||
|
|
146363ddf9 | ||
|
|
a81547d4ae | ||
|
|
48b682c54c | ||
|
|
743cd8a42a | ||
|
|
8d36662f15 | ||
|
|
aae998b37a | ||
|
|
b63cd1be82 | ||
|
|
96efeeb77b | ||
|
|
ba3bfa7b5a | ||
|
|
c4ea47a9e8 | ||
|
|
9f16a3c4d3 | ||
|
|
336e2c449f | ||
|
|
d53adf634d | ||
|
|
0f7cd84acf | ||
|
|
415d9651df | ||
|
|
5aada4b76b | ||
|
|
cc14cd0009 | ||
|
|
b5a1cf5bc5 | ||
|
|
63a2caff72 | ||
|
|
6b88441a1e | ||
|
|
302c220ccf | ||
|
|
2c9e34c1be | ||
|
|
f5cc227192 | ||
|
|
a8ddc013e8 | ||
|
|
d57395905f | ||
|
|
6e699abdae | ||
|
|
a593aa3180 | ||
|
|
3b3f0ef297 | ||
|
|
8395c4d481 | ||
|
|
3884581d0a | ||
|
|
9d65304e46 | ||
|
|
faa2649550 | ||
|
|
e234730e70 | ||
|
|
cd39943c81 | ||
|
|
05b7bc4212 | ||
|
|
49e7293e2b | ||
|
|
04d67d5612 | ||
|
|
3a887a330e | ||
|
|
efa0ca0e65 | ||
|
|
87415ea802 | ||
|
|
0e9e20e0ea | ||
|
|
adc2afabf5 | ||
|
|
b43a9055b3 | ||
|
|
6ea745f969 | ||
|
|
f5c9860cb0 | ||
|
|
245275c571 | ||
|
|
55cf98d14c | ||
|
|
4803f2894a | ||
|
|
ba344265b3 | ||
|
|
77652d3ed4 | ||
|
|
b2ea02033a | ||
|
|
02a84336c7 | ||
|
|
283f1b435d | ||
|
|
44790a8858 | ||
|
|
96c3fafb7f | ||
|
|
a1c702eadc | ||
|
|
4c47fcf862 | ||
|
|
e31f5e0428 | ||
|
|
e8963f24ba | ||
|
|
e88b25522e | ||
|
|
c767b218ef | ||
|
|
9f09bde64e | ||
|
|
4479a75b7c | ||
|
|
aa9b19879d | ||
|
|
03488c6cb7 | ||
|
|
2521b7dd89 | ||
|
|
309562657a | ||
|
|
da7f178202 | ||
|
|
318dc3c66f | ||
|
|
2c64c74979 | ||
|
|
6abc2ae930 | ||
|
|
abe351d408 | ||
|
|
0cc5275625 | ||
|
|
1c17f8bd99 | ||
|
|
bb978b5e90 | ||
|
|
f53869dd77 | ||
|
|
f6d710dc3b | ||
|
|
23d8ac7730 | ||
|
|
30089e7a67 | ||
|
|
b712c6a0ad | ||
|
|
489d352ae8 | ||
|
|
5776e8329b | ||
|
|
3947c42aaf | ||
|
|
1fbd9a4773 | ||
|
|
b5a19477b1 | ||
|
|
eede2b9b06 | ||
|
|
bb6e189217 | ||
|
|
a909192ff7 | ||
|
|
c4c0af3e28 | ||
|
|
15ab72745b | ||
|
|
ffffa133a2 | ||
|
|
e084f223d3 | ||
|
|
b4d1d247ed | ||
|
|
078c7123dd | ||
|
|
46b8b04edf | ||
|
|
eee017bb0b | ||
|
|
27ae2f37a5 | ||
|
|
789314a777 | ||
|
|
a9f254522e | ||
|
|
d40f2cfaf1 | ||
|
|
b8ccb8533f | ||
|
|
0f304cbd6e | ||
|
|
c544e250c5 | ||
|
|
dde8ebb346 | ||
|
|
c08ea9b7d4 | ||
|
|
b0326651d7 | ||
|
|
cab404fc86 | ||
|
|
0d8f4526eb | ||
|
|
eaab1e2fa3 | ||
|
|
e648acfbfc | ||
|
|
7a08143234 | ||
|
|
c2d5af84c8 | ||
|
|
47b5e9d322 | ||
|
|
28322d75f8 | ||
|
|
a7c2add386 | ||
|
|
c482be11c8 | ||
|
|
de2b08f1bf | ||
|
|
aed49ae962 | ||
|
|
429f0ee1f7 | ||
|
|
6803b3250d | ||
|
|
0d68ac8d7f | ||
|
|
5cb7f09c67 | ||
|
|
d6c254f5cf | ||
|
|
175a09345d | ||
|
|
ab17495853 | ||
|
|
38b2b53f19 | ||
|
|
71c275c0c8 | ||
|
|
f405de5f39 | ||
|
|
0c1668aecc | ||
|
|
b5d131193a | ||
|
|
e7e077c76d | ||
|
|
1d9ef74b37 | ||
|
|
a794193cb3 | ||
|
|
b3e7cf5b5c | ||
|
|
0079474f37 | ||
|
|
2e49bc090c | ||
|
|
711066e6d3 | ||
|
|
8a45637f32 | ||
|
|
ca9f247794 | ||
|
|
5d2d58c2ad | ||
|
|
4084696900 | ||
|
|
36388f5360 | ||
|
|
bb40bc8994 | ||
|
|
09b6079ed4 | ||
|
|
d5960dd972 | ||
|
|
9cc7f48f46 | ||
|
|
db8c10ddb3 | ||
|
|
6c458d295b | ||
|
|
6e136ce5a9 | ||
|
|
db6b06735c | ||
|
|
fc6ea3d3da | ||
|
|
fe5a8496cc | ||
|
|
bdd8958932 | ||
|
|
d47fb111df | ||
|
|
63c8a5a355 | ||
|
|
a170b138cb | ||
|
|
9564021a26 | ||
|
|
85957a5190 | ||
|
|
2548540903 | ||
|
|
89a66ab06a | ||
|
|
c2efc7b4a2 | ||
|
|
03b29b84da | ||
|
|
e4044c00b2 | ||
|
|
e71f0b7ec3 | ||
|
|
2d945cc041 | ||
|
|
4ca5bfc23d | ||
|
|
1e5e794c6d | ||
|
|
442b37a0db | ||
|
|
a69310886d | ||
|
|
a6b69ea60c | ||
|
|
9087ba72ae | ||
|
|
ed50edff6c | ||
|
|
b685c527d6 | ||
|
|
334e6e124b | ||
|
|
6c025e2381 | ||
|
|
8574ce4455 | ||
|
|
c4d2ddd032 | ||
|
|
3f9aacd53f | ||
|
|
5f81e7311a | ||
|
|
98ad5de513 | ||
|
|
4d4bcdfb83 | ||
|
|
b955f70022 | ||
|
|
0dfcbd8b53 | ||
|
|
66314773e9 | ||
|
|
0683307502 | ||
|
|
68c72207c8 | ||
|
|
9d3f995be1 | ||
|
|
5329959449 | ||
|
|
b32d8fb121 | ||
|
|
d036f96171 | ||
|
|
980a5b4c2b | ||
|
|
44562bd7d4 | ||
|
|
cebb400c34 | ||
|
|
c9e50231d1 | ||
|
|
96d2d081ed | ||
|
|
d6cab36185 | ||
|
|
21ae03d4b5 | ||
|
|
fca5aa3e6a | ||
|
|
b2a718a974 | ||
|
|
1f2552c531 | ||
|
|
4f49247e7d | ||
|
|
da26003071 | ||
|
|
e14be4baec | ||
|
|
0d62988f44 | ||
|
|
c6c4b0339e | ||
|
|
20dff7b2fb | ||
|
|
ebb71c0e94 | ||
|
|
2c70526032 | ||
|
|
e638c321e7 | ||
|
|
4b3577fa9a | ||
|
|
260b4e7ae1 | ||
|
|
40bf6ae262 | ||
|
|
b062b933d8 | ||
|
|
20516f168d | ||
|
|
b8962989af | ||
|
|
900de8fc1e | ||
|
|
e79216b581 | ||
|
|
f58f86df86 | ||
|
|
95ffddb860 | ||
|
|
a9f740f91a | ||
|
|
b2071e7a1b | ||
|
|
745221087e | ||
|
|
18b1cd9e0e | ||
|
|
261a4dc56e | ||
|
|
521ac275e2 | ||
|
|
9b5420e7b1 | ||
|
|
042f171f2f | ||
|
|
057ecfd3c1 | ||
|
|
ad1608e217 | ||
|
|
e24c4b1c4d | ||
|
|
8de5cf1358 | ||
|
|
52bdff7133 | ||
|
|
bdd9cba9cf | ||
|
|
a44492926c | ||
|
|
b334b929ee | ||
|
|
0dd8b51b84 | ||
|
|
8574d52daf | ||
|
|
aa7d45adac | ||
|
|
45dd83d387 | ||
|
|
c10ed30e3e | ||
|
|
1ee58540b7 | ||
|
|
3734ee09bb | ||
|
|
a0112969ec | ||
|
|
86719091e9 | ||
|
|
1429c2319d | ||
|
|
92203d5ad1 | ||
|
|
58d0e413ae | ||
|
|
f0d7e1b859 | ||
|
|
5d9ab5ec3b | ||
|
|
7dd6e0fd34 | ||
|
|
4f671f5353 | ||
|
|
b829192ed3 | ||
|
|
356bde17f6 | ||
|
|
ec255e2980 | ||
|
|
80d9da58c5 | ||
|
|
579357a0c6 | ||
|
|
9fa762146e | ||
|
|
8e34c3cf97 | ||
|
|
ef47b1dbd5 | ||
|
|
e763fc268f | ||
|
|
0f8a993edb | ||
|
|
3bd597ad69 | ||
|
|
b97eb30141 | ||
|
|
d944a9ea7e | ||
|
|
9bde6e467e | ||
|
|
51942c7e02 | ||
|
|
dc77d400cc | ||
|
|
2b1d3d761b | ||
|
|
03f0a24bfd | ||
|
|
fd2fb44cfd | ||
|
|
9bc347afe2 | ||
|
|
121f8cbbbe | ||
|
|
bd51c09bc3 | ||
|
|
2871048bf0 | ||
|
|
afe935b4a5 | ||
|
|
05961f64ad | ||
|
|
7dd910f13a | ||
|
|
f24dff7c11 | ||
|
|
47e76fb7c9 | ||
|
|
cac5671e26 | ||
|
|
bdd585b26e | ||
|
|
85ce25f505 | ||
|
|
770433bd88 | ||
|
|
140364aeab | ||
|
|
2c3440423d | ||
|
|
feaa638c33 | ||
|
|
4bade4d583 | ||
|
|
15f95b293b | ||
|
|
4b2f5bbcd8 | ||
|
|
c2735e8606 | ||
|
|
f2200af147 | ||
|
|
50e24ddff8 | ||
|
|
f6af5957fe | ||
|
|
558a18ce0a | ||
|
|
e91a68a160 | ||
|
|
25c5b79697 | ||
|
|
db7ba9e448 | ||
|
|
3dabc5a65c | ||
|
|
bc33cb4f42 | ||
|
|
e5c0eef2a8 | ||
|
|
54246a92a9 | ||
|
|
ffadd710c4 | ||
|
|
d1d6d2eea6 | ||
|
|
6e28d2778f | ||
|
|
bb7069283f | ||
|
|
b20b3ceff5 | ||
|
|
696d23deaa | ||
|
|
b9438d60f4 | ||
|
|
7dafcaa3d0 | ||
|
|
6633548659 | ||
|
|
980cfb73f9 | ||
|
|
46099dc36f | ||
|
|
b68e5b68f5 | ||
|
|
0e75d15d57 | ||
|
|
bba242344b | ||
|
|
83d0296511 | ||
|
|
0945dc55ed | ||
|
|
0ccf126f15 | ||
|
|
0a49fe5815 | ||
|
|
05c73a8c2d | ||
|
|
72d4d76172 | ||
|
|
0266eb5723 | ||
|
|
0167225fe7 | ||
|
|
ced7462a9d | ||
|
|
100a69251e | ||
|
|
3b74a3dff3 | ||
|
|
517af51af2 | ||
|
|
be3619a340 | ||
|
|
55cd0c22e5 | ||
|
|
3f2597d5cd | ||
|
|
019a366c08 | ||
|
|
773d4e4895 | ||
|
|
9699804783 | ||
|
|
0cbd309850 | ||
|
|
c8bfe46bdb | ||
|
|
b3ace8f668 | ||
|
|
0880d71532 | ||
|
|
dfc359f0ef | ||
|
|
7680c381b0 | ||
|
|
d4b08a16ed | ||
|
|
a909e7dc5b | ||
|
|
8c00b49718 | ||
|
|
eff237ea21 | ||
|
|
61f6127e7b | ||
|
|
d9c9e17601 | ||
|
|
931d281efa | ||
|
|
1d2a85f662 | ||
|
|
d3d77cdcab | ||
|
|
581c42efd9 | ||
|
|
636ecb60da | ||
|
|
4bed1f8ed6 | ||
|
|
b43516d807 | ||
|
|
66f0444bd0 | ||
|
|
af9bf2d5d4 | ||
|
|
2f5db86f23 | ||
|
|
338b4aed62 | ||
|
|
cd1f2105f2 | ||
|
|
a696863e34 | ||
|
|
a884f49120 | ||
|
|
859f2174e6 | ||
|
|
39d99bc762 | ||
|
|
4b29c97952 | ||
|
|
39731791c8 | ||
|
|
2dd106c435 | ||
|
|
a9e619b4b8 | ||
|
|
87635fde48 | ||
|
|
4583e2014c | ||
|
|
bbda6562e7 | ||
|
|
63e8983359 | ||
|
|
b69e53982e | ||
|
|
01cf4e1eb3 | ||
|
|
df4926136c | ||
|
|
afe26fc355 | ||
|
|
02a98bc463 | ||
|
|
b4e3a2dfa9 | ||
|
|
4d1a464875 | ||
|
|
4e69950665 | ||
|
|
4ac91c3042 | ||
|
|
ddf2be862c | ||
|
|
097f1c7fc1 | ||
|
|
86f10c9133 | ||
|
|
0afd388801 | ||
|
|
4c9680bbd6 | ||
|
|
37ae8429b6 | ||
|
|
4b2fd93bd3 | ||
|
|
68093044d2 | ||
|
|
4e3fcb38aa | ||
|
|
a981c11a80 | ||
|
|
3072b41aa1 | ||
|
|
6cf34a030d | ||
|
|
920d8a5b4f | ||
|
|
c1e74dda56 | ||
|
|
b3e63cd8d3 | ||
|
|
33ca9138e8 | ||
|
|
a6a94faabf | ||
|
|
c31ab9a376 | ||
|
|
a26d99b9a9 | ||
|
|
f217c12799 | ||
|
|
2006aca37d | ||
|
|
2e0693b760 | ||
|
|
4205a29bc3 | ||
|
|
24c3c61ac4 | ||
|
|
a3c56ba8fb | ||
|
|
5ebfe910ce | ||
|
|
79ee683c1e | ||
|
|
1940f6dc12 | ||
|
|
937a34812f | ||
|
|
7826bc75be | ||
|
|
5f50f8c475 | ||
|
|
4aabf72bfb | ||
|
|
ec2ea6e364 | ||
|
|
aac7806d0a | ||
|
|
c9c85e324d | ||
|
|
ed471509c5 | ||
|
|
269d3a0b9a | ||
|
|
359d4d5e42 | ||
|
|
1d646849a0 | ||
|
|
7be53fa5bb | ||
|
|
4d1e132145 | ||
|
|
93db03e848 | ||
|
|
025218b048 | ||
|
|
db4d3ced1f | ||
|
|
f9ca39f6d1 | ||
|
|
bc0564fe2e | ||
|
|
a6d960003c | ||
|
|
d39e4a41c4 | ||
|
|
39780baaef | ||
|
|
d55a8f1d15 | ||
|
|
7713fd33a3 | ||
|
|
4aed655116 | ||
|
|
982ef3d8ee | ||
|
|
836c8997cf | ||
|
|
2013d31d11 | ||
|
|
1ffa8a3ddd | ||
|
|
17de52c919 | ||
|
|
0120d6aaba | ||
|
|
504b44e385 | ||
|
|
26522d4036 | ||
|
|
65e7b0cf47 | ||
|
|
06b42e69d0 | ||
|
|
d7cdb4f2ae | ||
|
|
238470577e | ||
|
|
21fe755801 | ||
|
|
1e55ff2377 | ||
|
|
ac013b0e10 | ||
|
|
bc0426e9b8 | ||
|
|
e7f335b455 | ||
|
|
2f9b24887a | ||
|
|
c8707f2bc5 | ||
|
|
83a5f74c03 | ||
|
|
08ccff10ab | ||
|
|
fbc521f76a | ||
|
|
645e5f8e4c | ||
|
|
bac52377a5 | ||
|
|
125ff2bc5f | ||
|
|
ffbf529fe8 | ||
|
|
217ca16462 | ||
|
|
b217759f82 | ||
|
|
fa8e0584b1 | ||
|
|
33c511c432 | ||
|
|
012371a503 | ||
|
|
8f61492e3b | ||
|
|
a6b41b9c63 | ||
|
|
8bb21c7e04 | ||
|
|
29330e4e33 | ||
|
|
cafc7afb9e | ||
|
|
a98b4b582c | ||
|
|
e15e50d21e | ||
|
|
2c3c790a63 | ||
|
|
e72f0b5ab1 | ||
|
|
45e2307939 | ||
|
|
e4c94a6bfe | ||
|
|
d9d367810f | ||
|
|
3df4bda6c4 | ||
|
|
07d626f6a1 | ||
|
|
c7f78c67db | ||
|
|
01ba97c2f1 | ||
|
|
f7aeef5f23 | ||
|
|
2757411583 | ||
|
|
77a87073b4 | ||
|
|
f1d606304a | ||
|
|
f601862a87 | ||
|
|
96aaa1fb69 | ||
|
|
37d3380967 | ||
|
|
1ff958f7be | ||
|
|
ea5983d06b | ||
|
|
b304b01e9b | ||
|
|
2155d2f117 | ||
|
|
b78ebf3014 | ||
|
|
01f96a456e | ||
|
|
6bd108dd3a | ||
|
|
e3e0b19b69 | ||
|
|
3e18d5191c | ||
|
|
49b2001f3d | ||
|
|
863763a685 | ||
|
|
d6471159ec | ||
|
|
8c554f9f67 | ||
|
|
126ff5e716 | ||
|
|
fda8076ec7 | ||
|
|
ef18d41964 | ||
|
|
ed835111b8 | ||
|
|
73dea87360 | ||
|
|
de72480047 | ||
|
|
6b89e899cb | ||
|
|
4afdde8879 | ||
|
|
494673798c | ||
|
|
424e094be7 | ||
|
|
ea1741982b | ||
|
|
fc7ed0f32c | ||
|
|
3cc96b8714 | ||
|
|
6512b0f254 | ||
|
|
97c43902d3 | ||
|
|
fe0756abdb | ||
|
|
eb8d5b1160 | ||
|
|
198c278c29 | ||
|
|
f881e6ad8e | ||
|
|
4b364e3d23 | ||
|
|
0cb24d8f99 | ||
|
|
1c5b2fe382 | ||
|
|
6ccf918c26 | ||
|
|
5d5717bb41 | ||
|
|
ee55ea6bd9 | ||
|
|
cbc10ef0d1 | ||
|
|
a0672fbe61 | ||
|
|
2aad186cdb | ||
|
|
ead3de7b22 | ||
|
|
167c2b2e26 | ||
|
|
90365d5641 | ||
|
|
fa284ab2c7 | ||
|
|
2498ffd30a | ||
|
|
25a4368e59 | ||
|
|
65515a7629 | ||
|
|
4c26c97ef7 | ||
|
|
592f1cfcd2 | ||
|
|
c1b8e34f9e | ||
|
|
6299ae37d1 | ||
|
|
caa7e0629f | ||
|
|
9e8e78ada2 | ||
|
|
267bb39e98 | ||
|
|
81dcc267ef | ||
|
|
20e9ad355a | ||
|
|
f73b06d373 | ||
|
|
b0a69a7f1d | ||
|
|
e434212883 | ||
|
|
033a57d418 | ||
|
|
70cf0f2578 | ||
|
|
a7924373ac | ||
|
|
df9d25bddc | ||
|
|
75ddc2a5e0 | ||
|
|
02f141629b | ||
|
|
83b2ef677b | ||
|
|
5995a0045a | ||
|
|
e1d90a205f | ||
|
|
ffc66e9818 | ||
|
|
49a92bd956 | ||
|
|
48dc9aefbe | ||
|
|
f612437979 | ||
|
|
d0f3011e6c | ||
|
|
18107d2145 | ||
|
|
5fad9c2ccf | ||
|
|
a1770faac2 | ||
|
|
5e482af818 | ||
|
|
0376167d6d | ||
|
|
29d5328bdd | ||
|
|
96cc359c08 | ||
|
|
23d46ccd95 | ||
|
|
65532efefe | ||
|
|
a6c8396d6a | ||
|
|
fff7a34c53 | ||
|
|
bd89e046e7 | ||
|
|
c1a80a7f74 | ||
|
|
cea7c6c694 | ||
|
|
539f3d6fda | ||
|
|
c71a252a0d | ||
|
|
9ffef82602 | ||
|
|
31aed3acae | ||
|
|
f86ccc0f93 | ||
|
|
6835199df7 | ||
|
|
07af4cd5fd | ||
|
|
82d14abd98 | ||
|
|
b90f49920d | ||
|
|
ba6ae8d647 | ||
|
|
35b6f67f7f | ||
|
|
f453c6a090 | ||
|
|
74d378b1d8 | ||
|
|
3166525572 | ||
|
|
b4550eea82 | ||
|
|
66345944c7 | ||
|
|
8dd2081a7d | ||
|
|
23f93d97b1 | ||
|
|
929978fd50 | ||
|
|
067181a056 | ||
|
|
64f707bc5a | ||
|
|
983c2a94a1 | ||
|
|
2aca892017 | ||
|
|
641b860bde | ||
|
|
f7187db16a | ||
|
|
bb24234ac3 | ||
|
|
f01af017ad | ||
|
|
bac52e24c6 | ||
|
|
4a93e76ec4 | ||
|
|
dde0ad7023 | ||
|
|
be52573ca1 | ||
|
|
e3746cabf0 | ||
|
|
126eaf08e7 | ||
|
|
fd46abba46 | ||
|
|
540a415826 | ||
|
|
af7f3cd9df | ||
|
|
ffd2325f8f | ||
|
|
57937af17a | ||
|
|
85f7f03f0c | ||
|
|
4bd582fc0d | ||
|
|
abb96ec866 | ||
|
|
94f3f4631d | ||
|
|
e1b7a107ca | ||
|
|
a344ed7553 | ||
|
|
84acd68821 | ||
|
|
f7e367e617 | ||
|
|
9dd64b7adf | ||
|
|
2fe8250093 | ||
|
|
3e9469ccbe | ||
|
|
dc9eff36e9 | ||
|
|
f37a5dad5e | ||
|
|
5f2d964632 | ||
|
|
1bad8b07d2 | ||
|
|
3fb196e153 | ||
|
|
ac17a5c8a6 | ||
|
|
739cf52862 | ||
|
|
6f593a0549 | ||
|
|
711c9f0f80 | ||
|
|
308ec711c8 | ||
|
|
a84705121b | ||
|
|
e1ac088efa | ||
|
|
9961257432 | ||
|
|
373bca6c00 | ||
|
|
66840d642d | ||
|
|
3152b56a72 | ||
|
|
d974fcfe16 | ||
|
|
f0b21727cb | ||
|
|
d1bd1c67fa | ||
|
|
c0d55a2aa1 | ||
|
|
1bcb9711e2 | ||
|
|
7257bca7b6 | ||
|
|
96679e292c | ||
|
|
4354a26a9b | ||
|
|
581b7f690f | ||
|
|
43e0c5089b | ||
|
|
6002768cdb | ||
|
|
66d3071f7a | ||
|
|
b28c877fe2 | ||
|
|
c83d0f548a | ||
|
|
32b1aa05c1 | ||
|
|
3a635aaf22 | ||
|
|
8f263e6740 | ||
|
|
f3d55c4c63 | ||
|
|
8ed2d0d652 | ||
|
|
5f8a26cd82 | ||
|
|
30eed54eba | ||
|
|
9fad3bd932 | ||
|
|
b1b9057c31 | ||
|
|
36ae2eeb07 | ||
|
|
c2244cb5a2 | ||
|
|
419b72c6d5 | ||
|
|
df674e1138 | ||
|
|
f29ac8ad47 | ||
|
|
b3a71bc431 | ||
|
|
eb1d1d7191 | ||
|
|
1a7663aba1 | ||
|
|
88397446a0 | ||
|
|
8da52eb9fc | ||
|
|
846ffffa38 | ||
|
|
b94819331f | ||
|
|
b0ec722fd0 | ||
|
|
6abecc9d3c | ||
|
|
526834c8e5 | ||
|
|
32b3aed97c | ||
|
|
06bf57e630 | ||
|
|
b9c54f5fa6 | ||
|
|
f22973f849 | ||
|
|
035acaf1f1 | ||
|
|
dcc7f293be | ||
|
|
0c1fdb277a | ||
|
|
9134607e89 | ||
|
|
4ea96c9d66 | ||
|
|
c40fa6226c | ||
|
|
9a8d28e9ec | ||
|
|
91dca660b0 | ||
|
|
3ece9ea764 | ||
|
|
7cf4da0c75 | ||
|
|
6d8e9fb010 | ||
|
|
e401cbc79e | ||
|
|
4849c1e0ba | ||
|
|
5b24e5a40f | ||
|
|
c94249e1ac | ||
|
|
4942d32dc2 | ||
|
|
f20b85b0a7 | ||
|
|
f6b39aff5a | ||
|
|
9e891d4f3d | ||
|
|
a05d2d9aba | ||
|
|
0c59b54aeb | ||
|
|
d478d44bcd | ||
|
|
45538869ea | ||
|
|
8acc06d03e | ||
|
|
c920f8b925 | ||
|
|
e4a0e692ea | ||
|
|
efc8c4a801 | ||
|
|
e39cc547d7 | ||
|
|
8384644e01 | ||
|
|
7777208da6 | ||
|
|
a8dd0cb89f | ||
|
|
1124c85981 | ||
|
|
00dfb687b2 | ||
|
|
13943632cb | ||
|
|
f0d3467545 | ||
|
|
70754ae4a5 | ||
|
|
37d2eeefa6 | ||
|
|
309f838aea | ||
|
|
e95b5fc0e7 | ||
|
|
3830de776e | ||
|
|
855298eed7 | ||
|
|
5f5b00e0ac | ||
|
|
b33a8971c3 | ||
|
|
a931219c8a | ||
|
|
6afc88e851 | ||
|
|
bab6d85c5b | ||
|
|
18223e75e2 | ||
|
|
6fdca27961 | ||
|
|
071f0aa941 | ||
|
|
d7731ff53e | ||
|
|
84da60c20d | ||
|
|
f79e2b7b43 | ||
|
|
fd76043a07 | ||
|
|
f24d9c2ff4 | ||
|
|
ea31f44d69 | ||
|
|
85063c9990 | ||
|
|
2d39a80846 | ||
|
|
fe1c06a9d2 | ||
|
|
33521295e2 | ||
|
|
2d9a56643e | ||
|
|
db75fdd255 | ||
|
|
f903567389 | ||
|
|
6e7288fa13 | ||
|
|
6438d21602 | ||
|
|
d3c4c325ab | ||
|
|
26f8f43011 | ||
|
|
14e367d6a9 | ||
|
|
b49d3f65c8 | ||
|
|
33cb981ce6 | ||
|
|
975d5cd7ea | ||
|
|
7ab6a9c994 | ||
|
|
2d0c152ee1 | ||
|
|
59a0eca4c9 | ||
|
|
9fc6f39137 | ||
|
|
0af52c1df5 | ||
|
|
9ee2d88654 | ||
|
|
7b59205e2c | ||
|
|
b757e3cbc4 | ||
|
|
e20688f998 | ||
|
|
b05d1922d2 | ||
|
|
e121311296 | ||
|
|
370689fc80 | ||
|
|
68edac0945 | ||
|
|
3bf59d16e9 | ||
|
|
05e4d92dd9 | ||
|
|
c9aa0168e2 | ||
|
|
37330803da | ||
|
|
5c28d34f07 | ||
|
|
e148ad159e | ||
|
|
e05f5216d1 | ||
|
|
2a25dd1ddd | ||
|
|
4b0ed91feb | ||
|
|
2c413a6b82 | ||
|
|
31b58fd67d | ||
|
|
83654aae79 | ||
|
|
3695549003 | ||
|
|
3920fbff5f | ||
|
|
86bdcc5c5c | ||
|
|
5c1ff8633e | ||
|
|
99030e2e8e | ||
|
|
4bfc767a60 | ||
|
|
70a00507d2 | ||
|
|
7f1ddadefa | ||
|
|
74a479045b | ||
|
|
c1978e567e | ||
|
|
b6b126027e | ||
|
|
86a1b56937 | ||
|
|
28f414391e | ||
|
|
e5784c8d01 | ||
|
|
55cbca2a43 | ||
|
|
a0808df23c | ||
|
|
3c2a54e10e | ||
|
|
4a98714e01 | ||
|
|
cf42a046e3 | ||
|
|
9ecc4ff643 | ||
|
|
ff557965c7 | ||
|
|
0abcf31915 | ||
|
|
57b2efa988 | ||
|
|
f516109009 | ||
|
|
498d73b05c | ||
|
|
09e655af18 | ||
|
|
74863d99c6 | ||
|
|
09512b0ccb | ||
|
|
5bb89a54ea | ||
|
|
3c087a71c0 | ||
|
|
b318613837 | ||
|
|
0724928aa0 | ||
|
|
cd16fa0c32 | ||
|
|
05c0d0852f | ||
|
|
938a0e353b | ||
|
|
7b275174bb | ||
|
|
937501deea | ||
|
|
05f2217ac5 | ||
|
|
0df3464cf2 | ||
|
|
f2df650781 | ||
|
|
e9eb999d51 | ||
|
|
cb0547b09b | ||
|
|
62489dfeaf | ||
|
|
f293244d2c | ||
|
|
bad734bf2d | ||
|
|
fb66a79a0f | ||
|
|
7be244bf6e | ||
|
|
cd2ad9b2e6 | ||
|
|
78148155f0 | ||
|
|
b32e012b93 | ||
|
|
fbd70b7b7b | ||
|
|
8bef7f6c15 | ||
|
|
922f0bd3a2 | ||
|
|
3cbb1016b3 | ||
|
|
08a6e095f4 | ||
|
|
6875b60d5e | ||
|
|
6fa0b98d30 | ||
|
|
35431e5e26 | ||
|
|
adefe3f056 | ||
|
|
27d024bde5 | ||
|
|
a69f22b9b4 | ||
|
|
84c3b23622 | ||
|
|
67b8c6bccd | ||
|
|
76fcd7db93 | ||
|
|
faf00a3b37 | ||
|
|
6871cb258c | ||
|
|
598e20d973 | ||
|
|
63460fb958 | ||
|
|
c84a59606c | ||
|
|
72e50cc51f | ||
|
|
37f5d56126 | ||
|
|
594d596619 | ||
|
|
20904787e2 | ||
|
|
cfe8cdab30 | ||
|
|
e1255c470e | ||
|
|
479c5c3fc2 | ||
|
|
554a0713a4 | ||
|
|
d7be7ef76c | ||
|
|
04115b7da6 | ||
|
|
2a1992f7ad | ||
|
|
86da96ba6c | ||
|
|
6c719bcf17 | ||
|
|
602acc7bd0 | ||
|
|
632228477b | ||
|
|
c897796374 | ||
|
|
7e850a9ac0 | ||
|
|
ceaee6161b | ||
|
|
b5eb82d821 | ||
|
|
d6920073de | ||
|
|
1cb133f6bb | ||
|
|
a1fba17d6b | ||
|
|
c7b59c0675 | ||
|
|
ead08997a1 | ||
|
|
a2cb348723 | ||
|
|
a1669cc103 | ||
|
|
962548467f | ||
|
|
d8875ec3b9 | ||
|
|
91c111637a | ||
|
|
288ae7d25c | ||
|
|
eb08feee37 | ||
|
|
68e45180a2 | ||
|
|
ac93b3b4f2 | ||
|
|
e6e7638053 | ||
|
|
7cc2f854e8 | ||
|
|
16bc4c07e7 | ||
|
|
e743fb7412 | ||
|
|
b225d5e196 | ||
|
|
7f9d94270f | ||
|
|
f5f7199978 | ||
|
|
1961715bf3 | ||
|
|
ed68ebbd59 | ||
|
|
9917b1ea4f | ||
|
|
b91210e786 | ||
|
|
e3d3cb8acb | ||
|
|
c5e8d84172 | ||
|
|
efa1e3929a | ||
|
|
b4dd31d900 | ||
|
|
fddc74b658 | ||
|
|
809dc9ebc8 | ||
|
|
2b9dce1765 | ||
|
|
b0247c6e5c | ||
|
|
5be8e0408d | ||
|
|
6fe9faf71e | ||
|
|
b9a3131e2c | ||
|
|
2f5805d3ac | ||
|
|
79ba2a5b7b | ||
|
|
fb3599293b | ||
|
|
116b4e15ab | ||
|
|
205750bb82 | ||
|
|
c1d64aff1e | ||
|
|
15fb1e9dda | ||
|
|
8abe782d9a | ||
|
|
b828bf616f | ||
|
|
b6f00e7b40 | ||
|
|
bf4edf96f3 | ||
|
|
81bb2fd40d | ||
|
|
1b0b18b691 | ||
|
|
ec46276bea | ||
|
|
81870c9806 | ||
|
|
a9d8043996 | ||
|
|
a3e8192289 | ||
|
|
15ab5fad67 | ||
|
|
03c11ac110 | ||
|
|
d81ed7c041 | ||
|
|
c7456297a9 | ||
|
|
dcf9248b29 | ||
|
|
fc085c1334 | ||
|
|
86b44aec90 | ||
|
|
3e582f9c31 | ||
|
|
7c0d2557b2 | ||
|
|
7e66b51d71 | ||
|
|
fb36397fbd | ||
|
|
a8ca0bb10a | ||
|
|
2b31602fa2 | ||
|
|
1a7d36f4d2 | ||
|
|
346ee09460 | ||
|
|
f8d8633ba6 | ||
|
|
e429c6d185 | ||
|
|
bdac3a4521 | ||
|
|
04019e3414 | ||
|
|
c1e5327d47 | ||
|
|
4b1d2b6dc3 | ||
|
|
bd079d4209 | ||
|
|
d05770fe6b | ||
|
|
79bf7d21bb | ||
|
|
160912956e | ||
|
|
9e8fe767db | ||
|
|
8e9d5dcea0 | ||
|
|
09dd592204 | ||
|
|
60c71b27f2 | ||
|
|
58a6d1da3a | ||
|
|
11d39cc414 | ||
|
|
6044b95c2f | ||
|
|
031d71c7d2 | ||
|
|
fc04ff918a | ||
|
|
eec4f09a70 | ||
|
|
e232acc272 | ||
|
|
58968edc9a | ||
|
|
4b1a3e30a0 | ||
|
|
13492a66eb | ||
|
|
3f99cb48e2 | ||
|
|
a8dc7359c1 | ||
|
|
5fb7d4b6e5 | ||
|
|
b9612267af | ||
|
|
690867b159 | ||
|
|
0d93d46c25 | ||
|
|
c435ab3290 | ||
|
|
08c0e09b2d | ||
|
|
adef902106 | ||
|
|
15b48fe3fb | ||
|
|
02a400d75c | ||
|
|
b9fbc6de71 | ||
|
|
76f054f805 | ||
|
|
0e2ca89b9c | ||
|
|
b09f44f94f | ||
|
|
00384385a4 | ||
|
|
4e082900d7 | ||
|
|
1a32346622 | ||
|
|
34a5f2ea76 | ||
|
|
ae6c2fb9b3 | ||
|
|
2af2e913a5 | ||
|
|
c60cf141fe | ||
|
|
ce89046d67 | ||
|
|
513139e5b0 | ||
|
|
27540b7f88 | ||
|
|
c9dc1ee030 | ||
|
|
095c0d624d | ||
|
|
9febde7603 | ||
|
|
187c3f350f | ||
|
|
d937867f96 | ||
|
|
dfc0b39836 | ||
|
|
224366ea99 | ||
|
|
2829c2b6dc | ||
|
|
89a4d1e6d9 | ||
|
|
225c669dd0 | ||
|
|
cd592d564b | ||
|
|
8e10322155 | ||
|
|
24705bec8c | ||
|
|
c45fcb0ca5 | ||
|
|
d899bcabbf | ||
|
|
f15393e4cb | ||
|
|
587f471e38 | ||
|
|
7f34e30e6a | ||
|
|
c5170a238f | ||
|
|
2c5e17fd0c | ||
|
|
535c20743d | ||
|
|
a7a924ce28 | ||
|
|
030972d03a | ||
|
|
48241744f9 | ||
|
|
1851cae765 | ||
|
|
30fd37cd24 | ||
|
|
836acf1698 | ||
|
|
58d4bb70db | ||
|
|
938e916508 | ||
|
|
075f03117a | ||
|
|
9220dcf236 | ||
|
|
71baf5cc3a | ||
|
|
0d28ecc544 | ||
|
|
3a1158abb5 | ||
|
|
aa3eca7715 | ||
|
|
06eb46baca | ||
|
|
7a4bd9484c | ||
|
|
2ef4689acf | ||
|
|
ae611ada76 | ||
|
|
3668ec5305 | ||
|
|
1508b2ee64 | ||
|
|
c37955cdaf | ||
|
|
f4556bd602 | ||
|
|
4037e506be | ||
|
|
eecfd0a5ff | ||
|
|
cd1d4d9ec0 | ||
|
|
18c637cae3 | ||
|
|
b5a77f027e | ||
|
|
ad9a747fc9 | ||
|
|
d1072fd3f9 | ||
|
|
64e02d14d8 | ||
|
|
bb417b0678 | ||
|
|
47788053da | ||
|
|
35319df3f6 | ||
|
|
c3c2519bee | ||
|
|
6d06dc5014 | ||
|
|
c8dfaf3f48 | ||
|
|
9c3b52493e | ||
|
|
23df51e17e | ||
|
|
a160afb03f | ||
|
|
4305fc8eb5 | ||
|
|
4a98b82efc | ||
|
|
a1d1f1f49b | ||
|
|
8a3c065b8c | ||
|
|
b8a2be840a | ||
|
|
63232779e9 | ||
|
|
db6afad24a | ||
|
|
4496b57614 | ||
|
|
d9f719f870 | ||
|
|
ad2fa65fca | ||
|
|
b738928629 | ||
|
|
65171005ae | ||
|
|
0bd8cf3fc9 | ||
|
|
c251fc32d2 | ||
|
|
0c145e9b6f | ||
|
|
a6ecd86bff | ||
|
|
ac96a20e58 | ||
|
|
da148ca430 | ||
|
|
6f16a2329d | ||
|
|
07171b4ee5 | ||
|
|
a8f2db03d8 | ||
|
|
289556cee3 | ||
|
|
12bce4a93a | ||
|
|
ea623be837 | ||
|
|
d68d1d220b | ||
|
|
1ee730337c | ||
|
|
d46607d350 | ||
|
|
8da1200ea1 | ||
|
|
0bd401884e | ||
|
|
78badd1ef3 | ||
|
|
27c29389e0 | ||
|
|
85167c5714 | ||
|
|
112fa9f977 | ||
|
|
c9ed6cbd5b | ||
|
|
f91d785ced | ||
|
|
46c16c2c15 | ||
|
|
afce03a1f9 | ||
|
|
291f2ddb7b | ||
|
|
bfdba1f63e | ||
|
|
901d50cd01 | ||
|
|
23da22da4e | ||
|
|
ec154ba349 | ||
|
|
5ca8b6cff0 | ||
|
|
8b4ba87f21 | ||
|
|
d985c18326 | ||
|
|
4538b6dcb1 | ||
|
|
8f6c1d3fc5 | ||
|
|
d1522af5e6 | ||
|
|
69e72fce51 | ||
|
|
3c29838872 | ||
|
|
f4010ee3d4 | ||
|
|
eff524bcbf | ||
|
|
acd44354ee | ||
|
|
01a5626e17 | ||
|
|
68ad058a65 | ||
|
|
87a608d0af | ||
|
|
40e68b5afb | ||
|
|
bb2abd98f2 | ||
|
|
5d604867a6 | ||
|
|
19617d9943 | ||
|
|
2ff7b2bd99 | ||
|
|
fed051e31a | ||
|
|
7ae7a08e7f | ||
|
|
37bda824ae | ||
|
|
96f81d6c6d | ||
|
|
94fb663a8a | ||
|
|
5e3a91401c | ||
|
|
5f4345679d | ||
|
|
d4d07c2ad1 | ||
|
|
586e3adc23 | ||
|
|
3b2d55b6d5 | ||
|
|
9a5632668f | ||
|
|
56e8820254 | ||
|
|
0772501013 | ||
|
|
2521193023 | ||
|
|
7db1746595 | ||
|
|
a8f1274a24 | ||
|
|
ef34139e9b | ||
|
|
526c098769 | ||
|
|
2001f841f0 | ||
|
|
bd7fb9a4f0 | ||
|
|
dc004c7f09 | ||
|
|
ad35620a2e | ||
|
|
fe1ed7431f | ||
|
|
31ced630ea | ||
|
|
308c43cfb4 | ||
|
|
f399ef6320 | ||
|
|
2b6807a5cf | ||
|
|
2a1ecec65d | ||
|
|
4e29149fb5 | ||
|
|
5d0a1b5e00 | ||
|
|
430c41c9f8 | ||
|
|
113dcc58f1 | ||
|
|
8c8c3c3d0d | ||
|
|
3f3f7b2de7 | ||
|
|
7d148d0240 | ||
|
|
8bf0d510c1 | ||
|
|
1b4cc723ea | ||
|
|
fa025149a0 | ||
|
|
fa9fd8d971 | ||
|
|
ba27f4d38a | ||
|
|
c505cefef7 | ||
|
|
97755f0d79 | ||
|
|
29a065c3bd | ||
|
|
e5c6c96c45 | ||
|
|
dca3fb4386 | ||
|
|
bdae240b6e | ||
|
|
b59b42c2d2 | ||
|
|
501043f04c | ||
|
|
5b6869d265 | ||
|
|
24024fac8f | ||
|
|
3ae962ac11 | ||
|
|
83654a29d6 | ||
|
|
3d60527f99 | ||
|
|
ca20d3b5d4 | ||
|
|
594db69572 | ||
|
|
3356e7c6ac | ||
|
|
ebdde9cd72 | ||
|
|
bd9e655780 | ||
|
|
034fa5a25b | ||
|
|
f16a325683 | ||
|
|
23e780917d | ||
|
|
2cf6fedc50 | ||
|
|
2a7d409989 | ||
|
|
98c06bbac5 | ||
|
|
35e4581405 | ||
|
|
197a0f0fbc | ||
|
|
a957d80cf6 | ||
|
|
203bded1e7 | ||
|
|
d4fb8b4a64 | ||
|
|
40c675765e | ||
|
|
873ac90013 | ||
|
|
ee5dab8cb0 | ||
|
|
ad554061ab | ||
|
|
f18a5efa53 | ||
|
|
5f34dcab62 | ||
|
|
95c56cde77 | ||
|
|
9e891c485b | ||
|
|
10db0f2bf5 | ||
|
|
9fbce74da0 | ||
|
|
858c7a3ad4 | ||
|
|
be3a2277c4 | ||
|
|
f3adaf57d8 | ||
|
|
ffe80f1bee | ||
|
|
46e300676c | ||
|
|
b339afaf68 | ||
|
|
86be010e64 | ||
|
|
8629cf2ad5 | ||
|
|
f37b4ef8e0 | ||
|
|
7b36d55cd1 | ||
|
|
9b0fba8ba6 | ||
|
|
07d6f30377 | ||
|
|
f5674d8b9c | ||
|
|
9472f77ef0 | ||
|
|
1e6f1ea662 | ||
|
|
ae3b076443 | ||
|
|
a17496d941 | ||
|
|
c45f519ca4 | ||
|
|
2101785f41 | ||
|
|
82aa0963ed | ||
|
|
84c0740762 | ||
|
|
14d1610f4c | ||
|
|
47b576f207 | ||
|
|
75aa2d143e | ||
|
|
4c685403d4 | ||
|
|
94aa05aaa7 | ||
|
|
13f8303776 | ||
|
|
588f8cfe8c | ||
|
|
59eaf72070 | ||
|
|
3207023fb3 | ||
|
|
4d3883819e | ||
|
|
d46fac7eff | ||
|
|
ff7af14f69 | ||
|
|
af8ea597ff | ||
|
|
3e6e23e626 | ||
|
|
e89b8fb0d4 | ||
|
|
c3fd5c1b1b | ||
|
|
b4cfd54f03 | ||
|
|
cc11245462 | ||
|
|
7ff2e4b1f2 | ||
|
|
4515e5a14d | ||
|
|
ef9157dc1e | ||
|
|
f1067b9968 | ||
|
|
e5a35881f8 | ||
|
|
c163715dd6 | ||
|
|
75fa8c5c10 | ||
|
|
2d32bc2c34 | ||
|
|
d846aa49c9 | ||
|
|
a6df1332b8 | ||
|
|
b60e13e7ba | ||
|
|
c7ae9fbbf6 | ||
|
|
03069417fb | ||
|
|
ba1f1bfc48 | ||
|
|
858c2e2483 | ||
|
|
907420a123 | ||
|
|
f499d6b05f | ||
|
|
2212b761d4 | ||
|
|
302db500de | ||
|
|
754bc9c8bc | ||
|
|
a6baac27a1 | ||
|
|
5fa14b63fe | ||
|
|
31dcadb289 | ||
|
|
2d9acd6973 | ||
|
|
305e615290 | ||
|
|
79c022cc5d | ||
|
|
9be440c3b3 | ||
|
|
97f607afa9 | ||
|
|
b4991432a5 | ||
|
|
465d5175c1 | ||
|
|
637443b913 | ||
|
|
a111d4b5e8 | ||
|
|
2881ce85fa | ||
|
|
2f868c9780 | ||
|
|
9a19df0254 | ||
|
|
03533acc56 | ||
|
|
ad11eec233 | ||
|
|
4dccf5a7dd | ||
|
|
d92e4f23df | ||
|
|
50ce0cd359 | ||
|
|
e4c58e80bd | ||
|
|
d432262884 | ||
|
|
1c59318682 | ||
|
|
c8691ad743 | ||
|
|
cb100a3c4b | ||
|
|
5d2c680b27 | ||
|
|
aa62d6b8d9 | ||
|
|
21e84003c4 | ||
|
|
e1a268fc5a | ||
|
|
37c834b7e3 | ||
|
|
b50bff460e | ||
|
|
13856835ad | ||
|
|
bef78882d0 | ||
|
|
d87f2970ed | ||
|
|
cb4e35774c | ||
|
|
ccbabe5325 | ||
|
|
e839088079 | ||
|
|
ed5330d63d | ||
|
|
6accdda5f1 | ||
|
|
6429da5c5a | ||
|
|
92814566a1 | ||
|
|
0de7742cfa | ||
|
|
c9db264d51 | ||
|
|
a58589a73a | ||
|
|
0a2d74e72e | ||
|
|
879de8f902 | ||
|
|
bdd326ea12 | ||
|
|
d0a3afa2ad | ||
|
|
ce84feba05 | ||
|
|
78b4d54c4f | ||
|
|
d7a95c1513 | ||
|
|
275ffa752c | ||
|
|
9c36f3bab5 | ||
|
|
d8eb811b74 | ||
|
|
8aa2a51e3d | ||
|
|
301d2955b8 | ||
|
|
e0cca7ad01 | ||
|
|
751fedc663 | ||
|
|
7dee74fdf5 | ||
|
|
7dfae1dbd2 | ||
|
|
1ee32ce40f | ||
|
|
b8b9a523c2 | ||
|
|
ed79e76f30 | ||
|
|
eaa72c5ee1 | ||
|
|
332d220a2d | ||
|
|
7b7be1e191 | ||
|
|
ea3357c6bf | ||
|
|
f6107e516e | ||
|
|
7e661deea3 | ||
|
|
02d46c30d2 | ||
|
|
94f7ec00e9 | ||
|
|
ad52136ece | ||
|
|
d0810f4363 | ||
|
|
a416d583fa | ||
|
|
6dcf5c9711 | ||
|
|
10d8baac50 | ||
|
|
88435fd465 | ||
|
|
f74fccee76 | ||
|
|
3a4c4b1316 | ||
|
|
4fad22e95a | ||
|
|
8585ec5c99 | ||
|
|
3b45745018 | ||
|
|
0c718872a7 | ||
|
|
fc95cbe2e6 | ||
|
|
f85784c49a | ||
|
|
e436fe3876 | ||
|
|
4db1789e8a | ||
|
|
17521b6a47 | ||
|
|
f872be81c9 | ||
|
|
364180395c | ||
|
|
e99807bfc6 | ||
|
|
e337493a96 | ||
|
|
e44c24a564 | ||
|
|
00916345ab | ||
|
|
fb246379b0 | ||
|
|
405f66ea2c | ||
|
|
0c96e16e6a | ||
|
|
f0786bcdd6 | ||
|
|
acbc4f5fd0 | ||
|
|
28c082312a | ||
|
|
a7d388b996 | ||
|
|
6eb6cb1db5 | ||
|
|
8bd16f1719 | ||
|
|
ccec4e0933 | ||
|
|
7f5fe2274f | ||
|
|
9cb43ef525 | ||
|
|
8c55b7cf64 | ||
|
|
e60b20590e | ||
|
|
a7dad54f7b | ||
|
|
1f8765a5de | ||
|
|
cc5fd21f00 | ||
|
|
3688ccec24 | ||
|
|
3c7358f0ad | ||
|
|
f06b098bb0 | ||
|
|
a4d21050a3 | ||
|
|
1a00215605 | ||
|
|
f1421ac2ed | ||
|
|
e4274d24ab | ||
|
|
88a53de319 | ||
|
|
631b5ae79d | ||
|
|
056b0e9a49 | ||
|
|
b1bbf0877e | ||
|
|
d04a355b35 | ||
|
|
9fa4a32813 | ||
|
|
c4002b57e3 | ||
|
|
d80ca330c1 | ||
|
|
f1e88946e5 | ||
|
|
028b9e5ed7 | ||
|
|
4fbedc3b7b | ||
|
|
e0f1100dbf | ||
|
|
b1f5dac8ab | ||
|
|
9dbdea07c3 | ||
|
|
a23285ba06 | ||
|
|
811084848b | ||
|
|
ac851c3951 | ||
|
|
b46d0aef2b | ||
|
|
3557ae1d5a | ||
|
|
5887cb5077 | ||
|
|
605c204bee | ||
|
|
ce7791ea19 | ||
|
|
a68e99b1bd | ||
|
|
633ddd4e9c | ||
|
|
510cfba343 | ||
|
|
bc20db597b | ||
|
|
695fcb78f0 | ||
|
|
99e61ff0b4 | ||
|
|
8ab86fc4ae | ||
|
|
b2777666b8 | ||
|
|
6bc4ef744f | ||
|
|
1e3cc1d85b | ||
|
|
e3af6125dd | ||
|
|
51e2efcf9a | ||
|
|
c5326a95a7 | ||
|
|
89e99a323f | ||
|
|
88026851e6 | ||
|
|
d2ce8e60c4 | ||
|
|
9d2de2698b | ||
|
|
8864d626ae | ||
|
|
7e70f650ca | ||
|
|
8c72339612 | ||
|
|
7dd118d67e | ||
|
|
26b6d2ad18 | ||
|
|
ffd5f7dd39 | ||
|
|
e31fadc861 | ||
|
|
4be8044c9e | ||
|
|
3cd99ddba3 | ||
|
|
776535557f | ||
|
|
56ab2abd02 | ||
|
|
a7311327f8 | ||
|
|
0cd9932c14 | ||
|
|
fc679a0c17 | ||
|
|
26141429b4 | ||
|
|
26825f2722 | ||
|
|
38def0be24 | ||
|
|
a65dfa2408 | ||
|
|
2dd3d0a95b | ||
|
|
1d76b98100 | ||
|
|
19ce9918f3 | ||
|
|
4c345666d5 | ||
|
|
ff53ec1547 | ||
|
|
f0939c6a2b | ||
|
|
afa969e314 | ||
|
|
eb46f4b8d2 | ||
|
|
51fad69da6 | ||
|
|
3fbd41e9f7 | ||
|
|
73e6d1ef6d | ||
|
|
5b937f3802 | ||
|
|
6d4ed35b3d | ||
|
|
82b75a25b9 | ||
|
|
cb7bd14600 | ||
|
|
a160b89aba | ||
|
|
daacb45cea | ||
|
|
79270471bd | ||
|
|
ca4bd0e915 | ||
|
|
f63e61528c | ||
|
|
3d8f6167ed | ||
|
|
b5a11dd6f3 | ||
|
|
c997bc62c8 | ||
|
|
05571638ed | ||
|
|
7523a0078f | ||
|
|
22846ec14a | ||
|
|
3fbb7e7703 | ||
|
|
4163904940 | ||
|
|
c12e2d1525 | ||
|
|
0906dd1885 | ||
|
|
49011b72c3 | ||
|
|
423e6ed83d | ||
|
|
c6423dd844 | ||
|
|
a0280ed55b | ||
|
|
ee4e8ea3a1 | ||
|
|
34a787f85c | ||
|
|
478802ec82 | ||
|
|
6fb9d9e072 | ||
|
|
c7183b6c8b | ||
|
|
59b57b9479 | ||
|
|
232b75bcf4 | ||
|
|
696ed237c3 | ||
|
|
7eb887be42 | ||
|
|
9d7a50136e | ||
|
|
7819049bd6 | ||
|
|
feeb0c528a | ||
|
|
c0dd69a647 | ||
|
|
78cdc5f873 | ||
|
|
c06fc3b034 | ||
|
|
1df4077990 | ||
|
|
687ada7b50 | ||
|
|
28142781ba | ||
|
|
baf37cc490 | ||
|
|
7b57bdb6b7 | ||
|
|
9df3f537c8 | ||
|
|
0c0d9a06b2 | ||
|
|
0b10fb7a52 | ||
|
|
0542c3610e | ||
|
|
bed8b542ac | ||
|
|
34d89a2043 | ||
|
|
62c542cf84 | ||
|
|
49263c3e55 | ||
|
|
b6aa262f2b | ||
|
|
c89bc87017 | ||
|
|
23fb2b0bbf | ||
|
|
563291b195 | ||
|
|
6da800f8c0 | ||
|
|
8221ad5e63 | ||
|
|
fbbeb9fb85 | ||
|
|
f336d0ef0a | ||
|
|
14ff7bfef3 | ||
|
|
f1e8c9cc24 | ||
|
|
0bcadfc32c | ||
|
|
cbd88e8284 | ||
|
|
38f3d5ad37 | ||
|
|
686a648051 | ||
|
|
82e05fb859 | ||
|
|
162864b26b | ||
|
|
683b635d5e | ||
|
|
ca4f5cb820 | ||
|
|
a207366b14 | ||
|
|
5a7421e35d | ||
|
|
a7ec7f759b | ||
|
|
d829a1a4d9 | ||
|
|
6ae57c9311 | ||
|
|
dab047be37 | ||
|
|
4ef1e4068f | ||
|
|
e343a3a4f6 | ||
|
|
704c5a6a00 | ||
|
|
3e30b66193 | ||
|
|
065cb19646 | ||
|
|
2b81097012 | ||
|
|
7649d35980 | ||
|
|
0c09284b3a | ||
|
|
bc739739e0 | ||
|
|
0f76f5833a | ||
|
|
4ed61a579c | ||
|
|
75a5df7f22 | ||
|
|
710ddf98ca | ||
|
|
6272524079 | ||
|
|
90ef8be900 | ||
|
|
75a15ee3d7 | ||
|
|
a16bd4051d | ||
|
|
9bc917c0ac | ||
|
|
7434d944fb | ||
|
|
76bcdea1e8 | ||
|
|
9cc73e6d3a | ||
|
|
4fdafc9d36 | ||
|
|
a9212b73ca | ||
|
|
e927fc0c0e | ||
|
|
2b2b4abec5 | ||
|
|
d611f07cdf | ||
|
|
bbdb119ddd | ||
|
|
e7cfb129c2 | ||
|
|
1b65d263dc | ||
|
|
d25110f142 | ||
|
|
d2e0feb4e4 | ||
|
|
f48e77b9ef | ||
|
|
d964408277 | ||
|
|
7f7e344ed4 | ||
|
|
f85d8e5b69 | ||
|
|
25bf1065a2 | ||
|
|
0550275944 | ||
|
|
88a2406080 | ||
|
|
a507452c7f | ||
|
|
0b1168b64e | ||
|
|
4a1fd64001 | ||
|
|
3940e70940 | ||
|
|
519cba50f9 | ||
|
|
1557321fdf | ||
|
|
190f614f71 | ||
|
|
429b5e0b30 | ||
|
|
f37574d7a6 | ||
|
|
1552d32271 | ||
|
|
369a285d02 | ||
|
|
e60915c95a | ||
|
|
5ea6b266a1 | ||
|
|
3c660d468d | ||
|
|
f057840ee4 | ||
|
|
f2ba9eafde | ||
|
|
5ffb7e8fa0 | ||
|
|
2d08d12cd8 | ||
|
|
e25c7171db | ||
|
|
2855cc0eca | ||
|
|
d8d54bae86 | ||
|
|
c3477a9544 | ||
|
|
e11acfa612 | ||
|
|
fd10ef5ce9 | ||
|
|
2a0ae0db20 | ||
|
|
6e1afc37f3 | ||
|
|
4d68bb6008 | ||
|
|
740acf45fb | ||
|
|
9a9db37aa9 | ||
|
|
43fee71a25 | ||
|
|
8cea823d64 | ||
|
|
934d5f8f2e | ||
|
|
e92ee58308 | ||
|
|
2c88513c96 | ||
|
|
2b4855a407 | ||
|
|
43e4ecc534 | ||
|
|
bd326bcdfa | ||
|
|
fc5dc9e33a | ||
|
|
a29ab88428 | ||
|
|
76a6b27e28 | ||
|
|
d2d85daa82 | ||
|
|
700f58e4db | ||
|
|
d4c5a4f19a | ||
|
|
db71508476 | ||
|
|
5e186ca2a7 | ||
|
|
6e1a6ca1bd | ||
|
|
24a9b14958 | ||
|
|
824b680acb | ||
|
|
824ce12b2d | ||
|
|
8146526660 | ||
|
|
75794623c9 | ||
|
|
f82c125b9f | ||
|
|
d8cb7fb985 | ||
|
|
dc07380894 | ||
|
|
8fca89be95 | ||
|
|
a39d6c3fec | ||
|
|
3a85fbafc8 | ||
|
|
ac1510efb3 | ||
|
|
3eb0713395 | ||
|
|
a9b8163116 | ||
|
|
b9b94a6453 | ||
|
|
b6ee27af27 | ||
|
|
b75d40dda8 | ||
|
|
e6baa3e17d | ||
|
|
96cee56f3e | ||
|
|
8a76723edf | ||
|
|
18af166038 | ||
|
|
379c97835a | ||
|
|
4c5d962c4f | ||
|
|
196ca4ed78 | ||
|
|
7af78ef0d5 | ||
|
|
36f63c87b8 | ||
|
|
efc44fc2e5 | ||
|
|
efd89c3450 | ||
|
|
5de89888bc | ||
|
|
352c381869 | ||
|
|
436fd59aeb | ||
|
|
1acb6447a6 | ||
|
|
7f0c53fb91 | ||
|
|
1efc9a34f8 | ||
|
|
fb484c0965 | ||
|
|
d9622b84eb | ||
|
|
d9757ca68e | ||
|
|
0b791dd4a3 | ||
|
|
7b451f8956 | ||
|
|
62156fb733 | ||
|
|
939027de27 | ||
|
|
d32460ffa8 | ||
|
|
be00f799e3 | ||
|
|
0745e1a040 | ||
|
|
45a3afb1ca | ||
|
|
cfa70568bb | ||
|
|
df78322513 | ||
|
|
bb4bf10ada | ||
|
|
7c4b43cd8b | ||
|
|
9dd6ca7789 | ||
|
|
c579099909 | ||
|
|
ef1a5ffe05 | ||
|
|
28b5a6c4f0 | ||
|
|
adfe945ff0 | ||
|
|
0b5bab8f07 | ||
|
|
e1920d5c2e | ||
|
|
f144a76e1a | ||
|
|
2a43b5935d | ||
|
|
c2aaf5a0f9 | ||
|
|
36135f935a | ||
|
|
a461d454e8 | ||
|
|
c6b8fcdcd6 | ||
|
|
b64876f3d2 | ||
|
|
56288ced09 | ||
|
|
6f62faf5f3 | ||
|
|
735315260c | ||
|
|
ed88e631ab | ||
|
|
f71b939ea1 | ||
|
|
3901cd3d0b | ||
|
|
ba8fd37b3b | ||
|
|
6d67430e62 | ||
|
|
b0160dc0fe | ||
|
|
43491e0115 | ||
|
|
1803cb52a3 | ||
|
|
ba17707ea6 | ||
|
|
4bb198d1f9 | ||
|
|
8dc6d3d280 | ||
|
|
c149e6da48 | ||
|
|
952fba59ba | ||
|
|
960ac1721c | ||
|
|
24f31be6e9 | ||
|
|
933cd07085 | ||
|
|
39239c81f4 | ||
|
|
064e436cd7 | ||
|
|
818122d90e | ||
|
|
caf2805b64 | ||
|
|
80da6912b3 | ||
|
|
7b000e386d | ||
|
|
cfd5638646 | ||
|
|
f66e48f258 | ||
|
|
0f58531403 | ||
|
|
1b508fec3f | ||
|
|
9b74935d32 | ||
|
|
7c32b3067f | ||
|
|
20cfb07621 | ||
|
|
fa601752fe | ||
|
|
d1994295c1 | ||
|
|
238512f1ed | ||
|
|
d978dc52e6 | ||
|
|
9002d44a7f | ||
|
|
903e7862cb | ||
|
|
f3cb1f3e0f | ||
|
|
672145db05 | ||
|
|
6d6088233f | ||
|
|
d429cc027a | ||
|
|
53add1d1d9 | ||
|
|
eb93f3562a | ||
|
|
c5854d891f | ||
|
|
ab98e6cedc | ||
|
|
c1a400019c | ||
|
|
a7fa0baba8 | ||
|
|
5a3eaa2700 | ||
|
|
1130811568 | ||
|
|
00f8ef4d37 | ||
|
|
6c5f96b75b | ||
|
|
811977cb48 | ||
|
|
c69e2cb695 | ||
|
|
d03a11f4cf | ||
|
|
3f097d5bee | ||
|
|
956fcae82f | ||
|
|
b44160b0ca | ||
|
|
dc3febf157 | ||
|
|
f4b5755b36 | ||
|
|
1ae3c2a21b | ||
|
|
ec0bc1b27a | ||
|
|
00e8b9ecd2 | ||
|
|
dea0fb93d5 | ||
|
|
f58b6be9a1 | ||
|
|
03438fd144 | ||
|
|
a9c32f368e | ||
|
|
6592b52fd3 | ||
|
|
286876fe3d | ||
|
|
8fdb2109fe | ||
|
|
aad4885398 | ||
|
|
2b5450de28 | ||
|
|
bff8ccfa38 | ||
|
|
bd0c5fe4a5 | ||
|
|
1167367142 | ||
|
|
0e250bda69 | ||
|
|
d52a37c348 | ||
|
|
c190ee7907 | ||
|
|
45d3ce8e62 | ||
|
|
395445571a | ||
|
|
0cba1c20e0 | ||
|
|
7dcbc69f1b | ||
|
|
4900bdc57b | ||
|
|
46acf8489a | ||
|
|
179aad0d22 | ||
|
|
5a376cc3eb | ||
|
|
7db4733018 | ||
|
|
425b105e8e | ||
|
|
3ab6e18621 | ||
|
|
4d51e1c0ae | ||
|
|
adf7b05b63 | ||
|
|
814483f7a7 | ||
|
|
9ea8dc50b4 | ||
|
|
16fbac78bc | ||
|
|
49471bc4c9 | ||
|
|
cda49d94f8 | ||
|
|
85882cf113 | ||
|
|
b29e98f494 | ||
|
|
b1f9243d8d | ||
|
|
cd7ca2a1a3 | ||
|
|
833530756a | ||
|
|
eb5edfd2b5 | ||
|
|
ce3c2636d8 | ||
|
|
d1c9c8525d | ||
|
|
d93a3740e5 | ||
|
|
4f8c61b246 | ||
|
|
2f5290c191 | ||
|
|
4bba1ab170 | ||
|
|
e19e8eb15a | ||
|
|
9b6f9afe22 | ||
|
|
2839e4ffd0 | ||
|
|
ac7b7ca290 | ||
|
|
4fecc63ba0 | ||
|
|
d769334e38 | ||
|
|
c9b181ea3f | ||
|
|
c532f574c7 | ||
|
|
817d6338f1 | ||
|
|
4ef10c6f06 | ||
|
|
68f8032022 | ||
|
|
8cbdfcedfb | ||
|
|
4054c1f3ec | ||
|
|
6e170edc33 | ||
|
|
f466027c0f | ||
|
|
6a270a5e03 | ||
|
|
1603e3cf9b | ||
|
|
a256c9413b | ||
|
|
a23e816aa4 | ||
|
|
9d9ae009e3 | ||
|
|
b16e82ea2e | ||
|
|
2c5cecd31b | ||
|
|
7211050c0d | ||
|
|
ccdf6d3252 | ||
|
|
0d0e949017 | ||
|
|
bbb0d0d6e2 | ||
|
|
2954b9ded5 | ||
|
|
2ca3b32495 | ||
|
|
0d25adcc5c | ||
|
|
ef74be1d0e | ||
|
|
7dfb96f914 | ||
|
|
ccb74fe46a | ||
|
|
9e73b72c5f | ||
|
|
cb10778723 | ||
|
|
b634ce9493 | ||
|
|
c9aaf283a7 | ||
|
|
9b31aee15b | ||
|
|
90964f12d6 | ||
|
|
55ebf3b23f | ||
|
|
74a0573c2a | ||
|
|
a1c6c18cd6 | ||
|
|
63658df710 | ||
|
|
32a76a6c92 | ||
|
|
4869a9a604 | ||
|
|
5ad86df5d3 | ||
|
|
edf1d0f491 | ||
|
|
6789977f04 | ||
|
|
c27d5bf9d9 | ||
|
|
2407152424 | ||
|
|
a7b08559a2 | ||
|
|
cbf8194dae | ||
|
|
8f8d5e5a49 | ||
|
|
8eb3a3f102 | ||
|
|
be3714bf98 | ||
|
|
dc084a1d0a | ||
|
|
f469783c38 | ||
|
|
764e6c378a | ||
|
|
ed42b9979e | ||
|
|
92bb409c5a | ||
|
|
7ddde2c3fa | ||
|
|
44a1232366 | ||
|
|
5742271ba5 | ||
|
|
3808c46c15 | ||
|
|
c1af534783 | ||
|
|
6fcf934299 | ||
|
|
108ed183d5 | ||
|
|
27f31709c8 | ||
|
|
3f0cc17039 | ||
|
|
511c31886c | ||
|
|
d767fa5399 | ||
|
|
9c3ed7a482 | ||
|
|
f947224a95 | ||
|
|
3e9f3b0b3a | ||
|
|
f1ea7b3d43 | ||
|
|
9cd64f4d33 | ||
|
|
d936e8765e | ||
|
|
eec8783d5b | ||
|
|
cccc76fbc5 | ||
|
|
5aa980df91 | ||
|
|
3cc784cdc6 | ||
|
|
3333037bf7 | ||
|
|
b174f5bbbe | ||
|
|
670f7011e3 | ||
|
|
735228e51d | ||
|
|
eda6510de0 | ||
|
|
e5676c4c7c | ||
|
|
fe1228e9ae | ||
|
|
c4a1999368 | ||
|
|
fd9e0e7fca | ||
|
|
f18b8fea32 | ||
|
|
a012f31c34 | ||
|
|
66b308e733 | ||
|
|
9e89e09b5b | ||
|
|
85aaf2a98e | ||
|
|
33bf343709 | ||
|
|
c28c431471 | ||
|
|
fb61d764e7 | ||
|
|
c7b877ae9a | ||
|
|
ce7962016b | ||
|
|
ebfc5ee7d8 | ||
|
|
4e3d968f26 | ||
|
|
116944b181 | ||
|
|
be8bc7dd42 | ||
|
|
bc746c723e | ||
|
|
50663b460f | ||
|
|
f13673653f | ||
|
|
d330eb0ac1 | ||
|
|
009779620d | ||
|
|
ea6479f18c | ||
|
|
850359ca6d | ||
|
|
b7d44ced9f | ||
|
|
fd1aefd4ae | ||
|
|
9a8a361ab5 | ||
|
|
de564a6968 | ||
|
|
2b95da83d9 | ||
|
|
2417c1d4db | ||
|
|
148bc3e179 | ||
|
|
5a30ae5cc9 | ||
|
|
04020debcb | ||
|
|
9fd2cef3ea | ||
|
|
947dc9635a | ||
|
|
de3786afae | ||
|
|
42c8594563 | ||
|
|
f217483d9d | ||
|
|
5c8af47f25 | ||
|
|
0d666fe210 | ||
|
|
992b831a79 | ||
|
|
3c09b6d325 | ||
|
|
b4c0fd398f | ||
|
|
c18ed375ca | ||
|
|
1199804ae6 | ||
|
|
bad734231e | ||
|
|
0c3a28b536 | ||
|
|
8e67fbc9a5 | ||
|
|
656715a52b | ||
|
|
5abe22fa6e | ||
|
|
16557cd2f8 | ||
|
|
0266091311 | ||
|
|
ef2af067b0 | ||
|
|
b3f4bf0cf8 | ||
|
|
230b553b26 | ||
|
|
3a8bebbaf7 | ||
|
|
6aeda263a8 | ||
|
|
304af6ae6e | ||
|
|
cf48a73019 | ||
|
|
c4e3899ebd | ||
|
|
b7801e5a2e | ||
|
|
68ea36898e | ||
|
|
2e9391d907 | ||
|
|
1b5397d222 | ||
|
|
ab3643fe26 | ||
|
|
39fc15b2cc | ||
|
|
a6134b58a1 | ||
|
|
d509fa991b | ||
|
|
54a3676902 | ||
|
|
c86e2c4402 | ||
|
|
da7a34a4ef | ||
|
|
e5b87b9aa6 | ||
|
|
7310d1dd12 | ||
|
|
dc9668a5b7 | ||
|
|
9dddba2e3f | ||
|
|
7a5eb1f4fa | ||
|
|
de1ac14073 | ||
|
|
7eabfe94af | ||
|
|
2ae5c222f5 | ||
|
|
b8a660068f | ||
|
|
64854721e3 | ||
|
|
3a65ac540f | ||
|
|
ba8133a29b | ||
|
|
79376446c2 | ||
|
|
b1534675c4 | ||
|
|
cc271cd723 | ||
|
|
779f09b295 | ||
|
|
2be31ade1e | ||
|
|
9eeba125d0 | ||
|
|
58276fdf3b | ||
|
|
b5e9e4943f | ||
|
|
1a055fcbcc | ||
|
|
a7c5c47b0b | ||
|
|
f6032f2312 | ||
|
|
1c3224eeeb | ||
|
|
97f7323392 | ||
|
|
88d883163e | ||
|
|
ca5b24d516 | ||
|
|
07417a29d0 | ||
|
|
54e23daafd | ||
|
|
1ca9c3d6a1 | ||
|
|
a520792c55 | ||
|
|
8bf91f4847 | ||
|
|
87413ce121 | ||
|
|
bce1ec7a56 | ||
|
|
defc1d8c8b | ||
|
|
8023a8d892 | ||
|
|
91c9872ffc | ||
|
|
f1f835066e | ||
|
|
0bcce8991c | ||
|
|
79dbe85bdf | ||
|
|
91433816bf | ||
|
|
40933fc590 | ||
|
|
a0ee0e909f | ||
|
|
fe1b82ee8b | ||
|
|
c93bfb68cb | ||
|
|
292a517152 | ||
|
|
35ed597900 | ||
|
|
4a706880e8 | ||
|
|
05c9b13687 | ||
|
|
a791ecdb85 | ||
|
|
147bffff21 | ||
|
|
f910c046b8 | ||
|
|
4940291ce6 | ||
|
|
a443fcfd2a | ||
|
|
a041dddc7b | ||
|
|
d8a24b96c0 | ||
|
|
c55886f6e3 | ||
|
|
dc5268069e | ||
|
|
6506146eab | ||
|
|
68fc002dc3 | ||
|
|
6f4de5a73f | ||
|
|
8e5979570b | ||
|
|
85271a0e0a | ||
|
|
a8579827e0 | ||
|
|
797a657ce5 | ||
|
|
bae484e6a4 | ||
|
|
97c7708d0d | ||
|
|
be57b1fae7 | ||
|
|
3f429b0bc8 | ||
|
|
8e3bc0869a | ||
|
|
b6b8123881 | ||
|
|
cacadc927f | ||
|
|
246295386b | ||
|
|
f28422fb9c | ||
|
|
a113f189f9 | ||
|
|
7719d51d28 | ||
|
|
26b2384ba1 | ||
|
|
be22bc97a5 | ||
|
|
d484103500 | ||
|
|
609cca232b | ||
|
|
56200c7987 | ||
|
|
acb4d52781 | ||
|
|
db54743eca | ||
|
|
9a8a40dd09 | ||
|
|
877ac8f18d | ||
|
|
1eb0264d64 | ||
|
|
a429b83a3d | ||
|
|
897c3ca1ac | ||
|
|
d564b24dd4 | ||
|
|
46ec6ba23c | ||
|
|
2e6bff5c0e | ||
|
|
6dba75830d | ||
|
|
eda1e3804b | ||
|
|
fb57f2d0e2 | ||
|
|
65498d9582 | ||
|
|
e6c67dc0ef | ||
|
|
dad7205a5e | ||
|
|
bb9877ccca | ||
|
|
8bb87afdee | ||
|
|
05099e883c | ||
|
|
72378721fd | ||
|
|
c3cda3280a | ||
|
|
7617a9681e | ||
|
|
a8c09d3200 | ||
|
|
11c999227d | ||
|
|
6939100df7 | ||
|
|
9821b6bcbf | ||
|
|
4a7cbba830 | ||
|
|
fbd4830475 | ||
|
|
5ee4af680e | ||
|
|
eca0abff3b | ||
|
|
9b5f0107e3 | ||
|
|
daa4554bb1 | ||
|
|
529d6c2ad0 | ||
|
|
b42b14903f | ||
|
|
4c3323f12e | ||
|
|
9ec0a305b3 | ||
|
|
15160e4f95 | ||
|
|
41107744fd | ||
|
|
f2f0feda8d | ||
|
|
f120ccf6be | ||
|
|
d57cfedc77 | ||
|
|
e6f2dc1738 | ||
|
|
f151aad64f | ||
|
|
ea6a8da573 | ||
|
|
b53941b2d5 | ||
|
|
504905c38e | ||
|
|
8170df1e9e | ||
|
|
696a43a4f7 | ||
|
|
9b8d68594b | ||
|
|
d115019f7c | ||
|
|
7e14b4bcf5 | ||
|
|
98268676f8 | ||
|
|
88f32b91f6 | ||
|
|
9f5a6f1f6e | ||
|
|
bc30f42a8d | ||
|
|
4d30ec11e6 | ||
|
|
71a6297b38 | ||
|
|
dd22ef6c6a | ||
|
|
1349be4fb3 | ||
|
|
d3ef5bd61c | ||
|
|
1a1e6c6f04 | ||
|
|
4aac4837f2 |
1
.gitignore
vendored
|
|
@ -3,6 +3,7 @@ Thumbs.db
|
|||
.DS_Store
|
||||
/deploy
|
||||
build/node_modules
|
||||
build/plugins/**/node_modules/
|
||||
build/sprites/node_modules/
|
||||
vendor/framework7-react/
|
||||
apps/documenteditor/embed/resources/less/node_modules
|
||||
|
|
|
|||
16
Readme.md
|
|
@ -2,25 +2,23 @@
|
|||
|
||||
## web-apps
|
||||
|
||||
The frontend for [ONLYOFFICE Document Server][2]. Builds the program interface and allows the user create, edit, save and export text, spreadsheet and presentation documents using the common interface of a document editor.
|
||||
The frontend for [ONLYOFFICE Document Server][2] and [ONLYOFFICE Desktop Editors](https://github.com/ONLYOFFICE/DesktopEditors). Builds the program interface and allows the user create, edit, save and export text documents, spreadsheets, and presentations.
|
||||
|
||||
## Previous versions
|
||||
|
||||
Until 2019-10-23 the repository was called web-apps-pro
|
||||
Until 2019-10-23 the repository was called web-apps-pro.
|
||||
|
||||
## Project Information
|
||||
## Project information
|
||||
|
||||
Official website: [http://www.onlyoffice.org](http://onlyoffice.org "http://www.onlyoffice.org")
|
||||
Official website: [https://www.onlyoffice.com/](https://www.onlyoffice.com "https://www.onlyoffice.com")
|
||||
|
||||
Code repository: [https://github.com/ONLYOFFICE/web-apps](https://github.com/ONLYOFFICE/web-apps "https://github.com/ONLYOFFICE/web-apps")
|
||||
|
||||
SaaS version: [http://www.onlyoffice.com](http://www.onlyoffice.com "http://www.onlyoffice.com")
|
||||
## User feedback and support
|
||||
|
||||
## User Feedback and Support
|
||||
If you have any problems with or questions about [ONLYOFFICE Document Server][2], please visit our official forum: [forum.onlyoffice.com][1] or you can ask and answer ONLYOFFICE development questions on [Stack Overflow][3].
|
||||
|
||||
If you have any problems with or questions about [ONLYOFFICE Document Server][2], please visit our official forum to find answers to your questions: [dev.onlyoffice.org][1] or you can ask and answer ONLYOFFICE development questions on [Stack Overflow][3].
|
||||
|
||||
[1]: http://dev.onlyoffice.org
|
||||
[1]: https://forum.onlyoffice.com
|
||||
[2]: https://github.com/ONLYOFFICE/DocumentServer
|
||||
[3]: http://stackoverflow.com/questions/tagged/onlyoffice
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,9 @@
|
|||
view: ["Group1", ""] // current user can view comments made by users from Group1 and users without a group.
|
||||
edit: ["Group1", ""] // current user can edit comments made by users from Group1 and users without a group.
|
||||
remove: ["Group1", ""] // current user can remove comments made by users from Group1 and users without a group.
|
||||
}
|
||||
},
|
||||
userInfoGroups: ["Group1", ""], // show tooltips/cursors/info in header only for users in userInfoGroups groups. [""] - means users without group, [] - don't show any users, null/undefined/"" - show all users
|
||||
protect: <can protect document> // default = true. show/hide protect tab or protect buttons
|
||||
}
|
||||
},
|
||||
editorConfig: {
|
||||
|
|
@ -83,7 +85,7 @@
|
|||
user: {
|
||||
id: 'user id',
|
||||
name: 'user name',
|
||||
group: 'group name' // for customization.reviewPermissions parameter
|
||||
group: 'group name' // for customization.reviewPermissions or permissions.reviewGroups or permissions.commentGroups. Can be multiple groups separated by commas (,) : 'Group1' or 'Group1,Group2'
|
||||
},
|
||||
recent: [
|
||||
{
|
||||
|
|
@ -104,7 +106,8 @@
|
|||
customization: {
|
||||
logo: {
|
||||
image: url,
|
||||
imageEmbedded: url,
|
||||
imageDark: url, // logo for dark theme
|
||||
imageEmbedded: url, // deprecated, use image instead
|
||||
url: http://...
|
||||
},
|
||||
customer: {
|
||||
|
|
@ -112,8 +115,10 @@
|
|||
address: 'New-York, 125f-25',
|
||||
mail: 'support@gmail.com',
|
||||
www: 'www.superpuper.com',
|
||||
phone: '1234567890',
|
||||
info: 'Some info',
|
||||
logo: ''
|
||||
logo: '',
|
||||
logoDark: '', // logo for dark theme
|
||||
},
|
||||
about: true,
|
||||
feedback: {
|
||||
|
|
@ -136,41 +141,89 @@
|
|||
label: string (default: "Guest") // postfix for user name
|
||||
},
|
||||
review: {
|
||||
hideReviewDisplay: false // hide button Review mode
|
||||
hideReviewDisplay: false, // hide button Review mode
|
||||
hoverMode: false, // true - show review balloons on mouse move, not on click on text
|
||||
showReviewChanges: false,
|
||||
reviewDisplay: 'original', // original for viewer, markup for editor
|
||||
trackChanges: undefined // true/false - open editor with track changes mode on/off,
|
||||
},
|
||||
layout: { // hide elements, but don't disable feature
|
||||
toolbar: {
|
||||
file: { // menu file
|
||||
close: false / true, // close menu button
|
||||
settings: false / true, // advanced settings
|
||||
info: false / true // document info
|
||||
save: false/true // save button
|
||||
} / false / true,
|
||||
home: {
|
||||
mailmerge: false/true // mail merge button
|
||||
},
|
||||
layout: false / true, // layout tab
|
||||
references: false / true, // de references tab
|
||||
collaboration: false / true // collaboration tab
|
||||
protect: false / true, // protect tab
|
||||
plugins: false / true // plugins tab
|
||||
view: {
|
||||
navigation: false/true // navigation button in de
|
||||
} / false / true, // view tab
|
||||
save: false/true // save button on toolbar in
|
||||
} / false / true, // use instead of customization.toolbar,
|
||||
header: {
|
||||
users: false/true // users list button
|
||||
save: false/true // save button
|
||||
},
|
||||
leftMenu: {
|
||||
navigation: false/true,
|
||||
spellcheck: false/true // spellcheck button in sse
|
||||
} / false / true, // use instead of customization.leftMenu
|
||||
rightMenu: false/true, // use instead of customization.rightMenu
|
||||
statusBar: {
|
||||
textLang: false/true // text language button in de/pe
|
||||
docLang: false/true // document language button in de/pe
|
||||
actionStatus: false/true // status of operation
|
||||
} / false / true, // use instead of customization.statusBar
|
||||
},
|
||||
features: { // disable feature
|
||||
spellcheck: {
|
||||
mode: false/true // init value in de/pe
|
||||
change: false/true // hide/show feature in de/pe/sse
|
||||
} / false / true // if false/true - use as init value in de/pe. use instead of customization.spellcheck parameter
|
||||
},
|
||||
chat: true,
|
||||
comments: true,
|
||||
zoom: 100,
|
||||
compactToolbar: false,
|
||||
leftMenu: true,
|
||||
rightMenu: true,
|
||||
leftMenu: true, // must be deprecated. use layout.leftMenu instead
|
||||
rightMenu: true, // must be deprecated. use layout.rightMenu instead
|
||||
hideRightMenu: false, // hide or show right panel on first loading
|
||||
toolbar: true,
|
||||
statusBar: true,
|
||||
toolbar: true, // must be deprecated. use layout.toolbar instead
|
||||
statusBar: true, // must be deprecated. use layout.statusBar instead
|
||||
autosave: true,
|
||||
forcesave: false,
|
||||
commentAuthorOnly: false, // must be deprecated. use permissions.editCommentAuthorOnly and permissions.deleteCommentAuthorOnly instead
|
||||
showReviewChanges: false,
|
||||
showReviewChanges: false, // must be deprecated. use customization.review.showReviewChanges instead
|
||||
help: true,
|
||||
compactHeader: false,
|
||||
toolbarNoTabs: false,
|
||||
toolbarHideFileName: false,
|
||||
reviewDisplay: 'original',
|
||||
spellcheck: true,
|
||||
reviewDisplay: 'original', // must be deprecated. use customization.review.reviewDisplay instead
|
||||
spellcheck: true, // must be deprecated. use customization.features.spellcheck instead
|
||||
compatibleFeatures: false,
|
||||
unit: 'cm' // cm, pt, inch,
|
||||
mentionShare : true // customize tooltip for mention,
|
||||
macros: true // can run macros in document
|
||||
plugins: true // can run plugins in document
|
||||
macrosMode: 'warn' // warn about automatic macros, 'enable', 'disable', 'warn',
|
||||
trackChanges: undefined // true/false - open editor with track changes mode on/off,
|
||||
trackChanges: undefined // true/false - open editor with track changes mode on/off, // must be deprecated. use customization.review.trackChanges instead
|
||||
hideRulers: false // hide or show rulers on first loading (presentation or document editor)
|
||||
hideNotes: false // hide or show notes panel on first loading (presentation editor)
|
||||
uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light
|
||||
integrationMode: "embed" // turn off scroll to frame
|
||||
},
|
||||
coEditing: {
|
||||
mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true
|
||||
change: true, // can change co-authoring mode
|
||||
mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor
|
||||
// for viewer: 'strict' is default, offline viewer; 'fast' - live viewer, show changes from other users
|
||||
change: true, // can change co-authoring mode. true - default for editor, false - default for viewer
|
||||
},
|
||||
plugins: {
|
||||
autostart: ['asc.{FFE1F462-1EA2-4391-990D-4CC84940B754}'],
|
||||
|
|
@ -322,36 +375,6 @@
|
|||
}
|
||||
};
|
||||
|
||||
var _callLocalStorage = function(data) {
|
||||
if (data.cmd == 'get') {
|
||||
if (data.keys && data.keys.length) {
|
||||
var af = data.keys.split(','), re = af[0];
|
||||
for (i = 0; ++i < af.length;)
|
||||
re += '|' + af[i];
|
||||
|
||||
re = new RegExp(re); k = {};
|
||||
for (i in localStorage)
|
||||
if (re.test(i)) k[i] = localStorage[i];
|
||||
} else {
|
||||
k = localStorage;
|
||||
}
|
||||
|
||||
_sendCommand({
|
||||
command: 'internalCommand',
|
||||
data: {
|
||||
type: 'localstorage',
|
||||
keys: k
|
||||
}
|
||||
});
|
||||
} else
|
||||
if (data.cmd == 'set') {
|
||||
var k = data.keys, i;
|
||||
for (i in k) {
|
||||
localStorage.setItem(i, k[i]);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var _onMessage = function(msg) {
|
||||
if ( msg ) {
|
||||
if ( msg.type === "onExternalPluginMessage" ) {
|
||||
|
|
@ -366,8 +389,6 @@
|
|||
|
||||
if (msg.event === 'onRequestEditRights' && !handler) {
|
||||
_applyEditRights(false, 'handler isn\'t defined');
|
||||
} else if (msg.event === 'onInternalMessage' && msg.data && msg.data.type == 'localstorage') {
|
||||
_callLocalStorage(msg.data.data);
|
||||
} else {
|
||||
if (msg.event === 'onAppReady') {
|
||||
_onAppReady();
|
||||
|
|
@ -414,7 +435,7 @@
|
|||
|
||||
if (typeof _config.document.fileType === 'string' && _config.document.fileType != '') {
|
||||
_config.document.fileType = _config.document.fileType.toLowerCase();
|
||||
var type = /^(?:(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp)|(doc|docx|doct|odt|gdoc|txt|rtf|pdf|mht|htm|html|epub|djvu|xps|docm|dot|dotm|dotx|fodt|ott|fb2|xml))$/
|
||||
var type = /^(?:(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp)|(doc|docx|doct|odt|gdoc|txt|rtf|pdf|mht|htm|html|epub|djvu|xps|oxps|docm|dot|dotm|dotx|fodt|ott|fb2|xml|oform|docxf))$/
|
||||
.exec(_config.document.fileType);
|
||||
if (!type) {
|
||||
window.alert("The \"document.fileType\" parameter for the config object is invalid. Please correct it.");
|
||||
|
|
@ -426,7 +447,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
var type = /^(?:(pdf|djvu|xps))$/.exec(_config.document.fileType);
|
||||
var type = /^(?:(pdf|djvu|xps|oxps))$/.exec(_config.document.fileType);
|
||||
if (type && typeof type[1] === 'string') {
|
||||
_config.editorConfig.canUseHistory = false;
|
||||
}
|
||||
|
|
@ -470,6 +491,9 @@
|
|||
|
||||
if (target && _checkConfigParams()) {
|
||||
iframe = createIframe(_config);
|
||||
if (_config.editorConfig.customization && _config.editorConfig.customization.integrationMode==='embed')
|
||||
window.AscEmbed && window.AscEmbed.initWorker(iframe);
|
||||
|
||||
if (iframe.src) {
|
||||
var pathArray = iframe.src.split('/');
|
||||
this.frameOrigin = pathArray[0] + '//' + pathArray[2];
|
||||
|
|
@ -834,9 +858,24 @@
|
|||
return extensionParams["url"] + "apps/";
|
||||
}
|
||||
|
||||
|
||||
function getTestPath() {
|
||||
var scripts = document.getElementsByTagName('script'),
|
||||
match;
|
||||
|
||||
for (var i = scripts.length - 1; i >= 0; i--) {
|
||||
match = scripts[i].src.match(/(.*)apps\/api\/documents\/api.js/i);
|
||||
if (match) {
|
||||
return match[1] + "test/";
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
function getAppPath(config) {
|
||||
var extensionPath = getExtensionPath(),
|
||||
path = extensionPath ? extensionPath : getBasePath(),
|
||||
path = extensionPath ? extensionPath : (config.type=="test" ? getTestPath() : getBasePath()),
|
||||
appMap = {
|
||||
'text': 'documenteditor',
|
||||
'text-pdf': 'documenteditor',
|
||||
|
|
@ -852,7 +891,7 @@
|
|||
app = appMap[config.documentType.toLowerCase()];
|
||||
} else
|
||||
if (!!config.document && typeof config.document.fileType === 'string') {
|
||||
var type = /^(?:(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp))$/
|
||||
var type = /^(?:(xls|xlsx|ods|csv|xlst|xlsy|gsheet|xlsm|xlt|xltm|xltx|fods|ots|xlsb)|(pps|ppsx|ppt|pptx|odp|pptt|ppty|gslides|pot|potm|potx|ppsm|pptm|fodp|otp))$/
|
||||
.exec(config.document.fileType);
|
||||
if (type) {
|
||||
if (typeof type[1] === 'string') app = appMap['cell']; else
|
||||
|
|
@ -864,23 +903,23 @@
|
|||
check = function(regex){ return regex.test(userAgent); },
|
||||
isIE = !check(/opera/) && (check(/msie/) || check(/trident/) || check(/edge/)),
|
||||
isChrome = !isIE && check(/\bchrome\b/),
|
||||
isSafari_mobile = !isIE && !isChrome && check(/safari/) && (navigator.maxTouchPoints>0);
|
||||
isSafari_mobile = !isIE && !isChrome && check(/safari/) && (navigator.maxTouchPoints>0),
|
||||
path_type;
|
||||
|
||||
path += app + "/";
|
||||
path += (config.type === "mobile" || isSafari_mobile)
|
||||
? "mobile"
|
||||
: (config.type === "embedded" || (app=='documenteditor') && config.document && config.document.permissions && (config.document.permissions.fillForms===true) &&
|
||||
(config.document.permissions.edit === false) && (config.document.permissions.review !== true) && (config.editorConfig.mode !== 'view'))
|
||||
? "embed"
|
||||
: "main";
|
||||
path_type = (config.type === "mobile" || isSafari_mobile)
|
||||
? "mobile" : (config.type === "embedded")
|
||||
? "embed" : (config.document && typeof config.document.fileType === 'string' && config.document.fileType.toLowerCase() === 'oform')
|
||||
? "forms" : "main";
|
||||
|
||||
path += path_type;
|
||||
var index = "/index.html";
|
||||
if (config.editorConfig) {
|
||||
if (config.editorConfig && path_type!=="forms") {
|
||||
var customization = config.editorConfig.customization;
|
||||
if ( typeof(customization) == 'object' && ( customization.toolbarNoTabs ||
|
||||
(config.editorConfig.targetApp!=='desktop') && (customization.loaderName || customization.loaderLogo))) {
|
||||
index = "/index_loader.html";
|
||||
} else if (config.editorConfig.mode == 'editdiagram' || config.editorConfig.mode == 'editmerge')
|
||||
} else if (config.editorConfig.mode === 'editdiagram' || config.editorConfig.mode === 'editmerge' || config.editorConfig.mode === 'editole')
|
||||
index = "/index_internal.html";
|
||||
|
||||
}
|
||||
|
|
@ -899,17 +938,22 @@
|
|||
if (config.editorConfig.customization.loaderName !== 'none') params += "&customer=" + encodeURIComponent(config.editorConfig.customization.loaderName);
|
||||
} else
|
||||
params += "&customer={{APP_CUSTOMER_NAME}}";
|
||||
if ( (typeof(config.editorConfig.customization) == 'object') && config.editorConfig.customization.loaderLogo) {
|
||||
if (config.editorConfig.customization.loaderLogo !== '') params += "&logo=" + encodeURIComponent(config.editorConfig.customization.loaderLogo);
|
||||
} else if ( (typeof(config.editorConfig.customization) == 'object') && config.editorConfig.customization.logo) {
|
||||
if (config.type=='embedded' && config.editorConfig.customization.logo.imageEmbedded)
|
||||
params += "&headerlogo=" + encodeURIComponent(config.editorConfig.customization.logo.imageEmbedded);
|
||||
else if (config.type!='embedded' && config.editorConfig.customization.logo.image)
|
||||
params += "&headerlogo=" + encodeURIComponent(config.editorConfig.customization.logo.image);
|
||||
if (typeof(config.editorConfig.customization) == 'object') {
|
||||
if ( config.editorConfig.customization.loaderLogo && config.editorConfig.customization.loaderLogo !== '') {
|
||||
params += "&logo=" + encodeURIComponent(config.editorConfig.customization.loaderLogo);
|
||||
}
|
||||
if ( config.editorConfig.customization.logo ) {
|
||||
if (config.type=='embedded' && (config.editorConfig.customization.logo.image || config.editorConfig.customization.logo.imageEmbedded))
|
||||
params += "&headerlogo=" + encodeURIComponent(config.editorConfig.customization.logo.image || config.editorConfig.customization.logo.imageEmbedded);
|
||||
else if (config.type!='embedded' && (config.editorConfig.customization.logo.image || config.editorConfig.customization.logo.imageDark)) {
|
||||
config.editorConfig.customization.logo.image && (params += "&headerlogo=" + encodeURIComponent(config.editorConfig.customization.logo.image));
|
||||
config.editorConfig.customization.logo.imageDark && (params += "&headerlogodark=" + encodeURIComponent(config.editorConfig.customization.logo.imageDark));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (config.editorConfig && (config.editorConfig.mode == 'editdiagram' || config.editorConfig.mode == 'editmerge'))
|
||||
if (config.editorConfig && (config.editorConfig.mode == 'editdiagram' || config.editorConfig.mode == 'editmerge' || config.editorConfig.mode == 'editole'))
|
||||
params += "&internal=true";
|
||||
|
||||
if (config.frameEditorId)
|
||||
|
|
@ -924,8 +968,6 @@
|
|||
|
||||
if (config.editorConfig && config.editorConfig.customization && (config.editorConfig.customization.toolbar===false))
|
||||
params += "&toolbar=false";
|
||||
else if (config.document && config.document.permissions && (config.document.permissions.edit === false && config.document.permissions.fillForms ))
|
||||
params += "&toolbar=true";
|
||||
|
||||
if (config.parentOrigin)
|
||||
params += "&parentOrigin=" + config.parentOrigin;
|
||||
|
|
@ -945,11 +987,12 @@
|
|||
iframe.align = "top";
|
||||
iframe.frameBorder = 0;
|
||||
iframe.name = "frameEditor";
|
||||
config.title && (typeof config.title === 'string') && (iframe.title = config.title);
|
||||
iframe.allowFullscreen = true;
|
||||
iframe.setAttribute("allowfullscreen",""); // for IE11
|
||||
iframe.setAttribute("onmousewheel",""); // for Safari on Mac
|
||||
iframe.setAttribute("allow", "autoplay; camera; microphone; display-capture");
|
||||
|
||||
iframe.setAttribute("allow", "autoplay; camera; microphone; display-capture; clipboard-write;");
|
||||
|
||||
if (config.type == "mobile")
|
||||
{
|
||||
iframe.style.position = "fixed";
|
||||
|
|
|
|||
|
|
@ -109,6 +109,7 @@
|
|||
},
|
||||
mode : urlParams["mode"] || 'edit',
|
||||
lang : urlParams["lang"] || 'en',
|
||||
createUrl : 'desktop://create.new',
|
||||
user: {
|
||||
id: urlParams["userid"] || urlParams["username"] || 'uid-901', name: urlParams["username"] || 'Chuk.Gek'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ div {
|
|||
<div id="iframeEditor">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../web-apps/apps/api/documents/api.js"></script>
|
||||
<script type="text/javascript" src="../../../web-apps/apps/api/documents/api.js"></script>
|
||||
<script type="text/javascript" language="javascript">
|
||||
|
||||
var docEditor;
|
||||
|
|
@ -102,6 +102,7 @@ div {
|
|||
var sendNotificationTimer;
|
||||
var sessionId;
|
||||
var fileInfo;
|
||||
var insertImageType;
|
||||
|
||||
var innerAlert = function (message) {
|
||||
if (console && console.log)
|
||||
|
|
@ -117,6 +118,12 @@ div {
|
|||
innerAlert('Grab_Focus');
|
||||
docEditor.grabFocus();
|
||||
},
|
||||
'Action_InsertGraphic': function (data) {
|
||||
data && data.Values && docEditor.insertImage({
|
||||
"c": insertImageType,
|
||||
"images": [{ "url": data.Values.url }]
|
||||
});
|
||||
},
|
||||
'Host_PostmessageReady': function (data) {
|
||||
innerAlert('Host_PostmessageReady');
|
||||
}
|
||||
|
|
@ -226,6 +233,11 @@ div {
|
|||
window.open(fileInfo.FileVersionUrl, "_blank");
|
||||
};
|
||||
|
||||
var onRequestInsertImage = function (event) {
|
||||
insertImageType = event.data.c;
|
||||
_postMessage('UI_InsertGraphic', {});
|
||||
};
|
||||
|
||||
var onError = function (event) {
|
||||
if (event)
|
||||
innerAlert(event.data);
|
||||
|
|
@ -236,6 +248,7 @@ div {
|
|||
fileInfo = <%- JSON.stringify(fileInfo) %>;
|
||||
|
||||
var key = "<%- key %>";
|
||||
var documentType = "<%- documentType %>";
|
||||
var userAuth = <%- JSON.stringify(userAuth) %>;
|
||||
var token = "<%- token %>";
|
||||
var queryParams = <%- JSON.stringify(queryParams) %>;
|
||||
|
|
@ -249,8 +262,8 @@ div {
|
|||
var config = {
|
||||
"width": "100%",
|
||||
"height": "100%",
|
||||
"type": "desktop",
|
||||
"documentType": queryParams.documenttype,
|
||||
"type": queryParams.embed==="1" ? "embedded" : "desktop",
|
||||
"documentType": documentType,
|
||||
"token": token,
|
||||
"document": {
|
||||
"title": fileInfo.BreadcrumbDocName || fileInfo.BaseFileName,
|
||||
|
|
@ -268,7 +281,7 @@ div {
|
|||
}
|
||||
},
|
||||
"editorConfig": {
|
||||
"mode": queryParams.mode,
|
||||
"mode": userAuth.mode,
|
||||
"lang": queryParams.lang || queryParams.ui || "en-US",
|
||||
"region": queryParams.rs,
|
||||
"callbackUrl": JSON.stringify(userAuth),
|
||||
|
|
@ -289,7 +302,7 @@ div {
|
|||
"uiTheme": queryParams.thm==="1" ? "default-light" : (queryParams.thm==="2" ? "default-dark" : undefined)
|
||||
},
|
||||
"coEditing": {
|
||||
"mode": "fast",
|
||||
"mode": userAuth.mode !== "view" ? "fast" : "strict",
|
||||
"change": false
|
||||
},
|
||||
"wopi": {
|
||||
|
|
@ -304,11 +317,12 @@ div {
|
|||
"onRequestClose": fileInfo.ClosePostMessage || fileInfo.CloseUrl ? onRequestClose : undefined,
|
||||
"onRequestRename": fileInfo.SupportsRename && fileInfo.UserCanRename ? onRequestRename : undefined,
|
||||
"onRequestSharingSettings": fileInfo.FileSharingPostMessage || fileInfo.FileSharingUrl ? onRequestSharingSettings : undefined,
|
||||
"onRequestHistory": fileInfo.FileVersionUrl || fileInfo.FileVersionPostMessage ? onRequestHistory : undefined
|
||||
"onRequestHistory": fileInfo.FileVersionUrl || fileInfo.FileVersionPostMessage ? onRequestHistory : undefined,
|
||||
"onRequestInsertImage": fileInfo.EnableInsertRemoteImage ? onRequestInsertImage : undefined
|
||||
}
|
||||
};
|
||||
|
||||
postMessageOrigin = fileInfo.PostMessageOrigin;
|
||||
postMessageOrigin = fileInfo.PostMessageOrigin || "*";
|
||||
if (postMessageOrigin && (typeof postMessageOrigin === 'string') && postMessageOrigin.charAt(postMessageOrigin.length-1)=='/')
|
||||
postMessageOrigin = postMessageOrigin.substring(0, postMessageOrigin.length - 1);
|
||||
lang = config.editorConfig.lang;
|
||||
|
|
|
|||
|
|
@ -203,12 +203,13 @@ if (window.Common === undefined) {
|
|||
});
|
||||
},
|
||||
|
||||
requestRestore: function(version, url) {
|
||||
requestRestore: function(version, url, fileType) {
|
||||
_postMessage({
|
||||
event: 'onRequestRestore',
|
||||
data: {
|
||||
version: version,
|
||||
url: url
|
||||
url: url,
|
||||
fileType: fileType
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
@ -273,19 +274,23 @@ if (window.Common === undefined) {
|
|||
_postMessage({ event: 'onOutdatedVersion' });
|
||||
},
|
||||
|
||||
downloadAs: function(url) {
|
||||
downloadAs: function(url, fileType) {
|
||||
_postMessage({
|
||||
event: 'onDownloadAs',
|
||||
data: url
|
||||
data: {
|
||||
url: url,
|
||||
fileType: fileType
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
requestSaveAs: function(url, title) {
|
||||
requestSaveAs: function(url, title, fileType) {
|
||||
_postMessage({
|
||||
event: 'onRequestSaveAs',
|
||||
data: {
|
||||
url: url,
|
||||
title: title
|
||||
title: title,
|
||||
fileType: fileType
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ Common.IrregularStack = function(config) {
|
|||
}
|
||||
|
||||
var _get = function(obj) {
|
||||
var index = _indexOf(obj, _weakCompare);
|
||||
var index = (typeof obj === 'object')? _indexOf(obj, _weakCompare) : obj;
|
||||
if (index != -1)
|
||||
return _stack[index];
|
||||
return undefined;
|
||||
|
|
@ -79,10 +79,15 @@ Common.IrregularStack = function(config) {
|
|||
return !(_indexOf(obj, _strongCompare) < 0);
|
||||
}
|
||||
|
||||
var _length = function() {
|
||||
return _stack.length;
|
||||
}
|
||||
|
||||
return {
|
||||
push: _push,
|
||||
pop: _pop,
|
||||
get: _get,
|
||||
exist: _exist
|
||||
exist: _exist,
|
||||
length: _length
|
||||
}
|
||||
};
|
||||
|
|
@ -57,6 +57,16 @@
|
|||
|
||||
$dlgShare.find('#btn-copyshort').on('click', copytext.bind(this, $dlgShare.find('#id-short-url')));
|
||||
$dlgShare.find('.share-buttons > span').on('click', function(e){
|
||||
if ( window.config ) {
|
||||
const key = $(e.target).attr('data-name');
|
||||
const btn = config.btnsShare[key];
|
||||
if ( btn && btn.getUrl ) {
|
||||
window.open(btn.getUrl(appConfig.shareUrl, appConfig.docTitle), btn.target || '',
|
||||
btn.features || 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var _url;
|
||||
switch ($(e.target).attr('data-name')) {
|
||||
case 'facebook':
|
||||
|
|
|
|||
|
|
@ -36,6 +36,11 @@
|
|||
!common.utils && (common.utils = {});
|
||||
|
||||
common.utils = new(function(){
|
||||
var userAgent = navigator.userAgent.toLowerCase(),
|
||||
check = function(regex){
|
||||
return regex.test(userAgent);
|
||||
},
|
||||
isMac = check(/macintosh|mac os x/);
|
||||
return {
|
||||
openLink: function(url) {
|
||||
if (url) {
|
||||
|
|
@ -92,7 +97,17 @@
|
|||
str = num.toString();
|
||||
for (var i=str.length; i<digits; i++) strfill += fill;
|
||||
return strfill + str;
|
||||
}
|
||||
},
|
||||
getKeyByValue: function(obj, value) {
|
||||
for(var prop in obj) {
|
||||
if(obj.hasOwnProperty(prop)) {
|
||||
if(obj[prop] === value)
|
||||
return prop;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
isMac : isMac
|
||||
};
|
||||
})();
|
||||
}();
|
||||
|
|
|
|||
77
apps/common/embed/lib/view/SearchBar.js
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2020
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* SearchBar.js
|
||||
*
|
||||
* Created by Julia Svinareva on 27.04.2022
|
||||
* Copyright (c) 2022 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
!window.common && (window.common = {});
|
||||
!common.view && (common.view = {});
|
||||
common.view.SearchBar = new(function() {
|
||||
var tpl = '<div class="asc-window search-window" style="display: none;">' +
|
||||
'<div class="body">{body}</div>' +
|
||||
'</div>';
|
||||
var tplBody = '<input type="text" id="search-bar-text" placeholder="{textFind}" autocomplete="off">' +
|
||||
'<div class="tools">' +
|
||||
'<button id="search-bar-back" class="svg-icon search-arrow-up"></button>' +
|
||||
'<button id="search-bar-next" class="svg-icon search-arrow-down"></button>' +
|
||||
'<button id="search-bar-close" class="svg-icon search-close"></button>' +
|
||||
'</div>';
|
||||
|
||||
return {
|
||||
create: function(parent) {
|
||||
!parent && (parent = 'body');
|
||||
|
||||
var _$dlg = $(tpl
|
||||
.replace(/\{body}/, tplBody)
|
||||
.replace(/\{textFind}/, this.textFind))
|
||||
.appendTo(parent)
|
||||
.attr('id', 'dlg-search');
|
||||
|
||||
return _$dlg;
|
||||
},
|
||||
|
||||
disableNavButtons: function (resultNumber, allResults) {
|
||||
var disable = $('#search-bar-text').val() === '' || !allResults;
|
||||
$('#search-bar-back').attr({disabled: disable});
|
||||
$('#search-bar-next').attr({disabled: disable});
|
||||
},
|
||||
|
||||
textFind: 'Find'
|
||||
|
||||
};
|
||||
})();
|
||||
|
|
@ -73,6 +73,20 @@ common.view.modals = new(function() {
|
|||
|
||||
var _$dlg;
|
||||
if (name == 'share') {
|
||||
if ( window.config && window.config.btnsShare ) {
|
||||
let _btns = [];
|
||||
for (const key of Object.keys(config.btnsShare))
|
||||
_btns.push(`<span class="svg big-${key}" data-name="${key}"></span>`);
|
||||
|
||||
if ( _btns ) {
|
||||
let $sharebox = $(_tplbody_share);
|
||||
$sharebox.find('.autotest').prevAll().remove();
|
||||
$sharebox.eq(1).prepend(_btns.join(''));
|
||||
|
||||
_tplbody_share = $("<div>").append($sharebox).html();
|
||||
}
|
||||
}
|
||||
|
||||
_$dlg = $(tplDialog
|
||||
.replace(/\{title}/, this.txtShare)
|
||||
.replace(/\{body}/, _tplbody_share)
|
||||
|
|
|
|||
|
|
@ -1,152 +1,220 @@
|
|||
<svg width="380" height="40" viewBox="0 0 380 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-menu-sprite Embedded Viewer">
|
||||
<g id="view-settings">
|
||||
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
||||
<path id="Vector_2" d="M17 30H3V31H17V30Z" fill="white"/>
|
||||
<path id="Vector_3" d="M17 34H3V35H17V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="download">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M31 22H30V33.2929L25.3536 28.6464L24.6465 29.3536L30.1465 34.8536L30.5 35.2071L30.8536 34.8536L36.3536 29.3536L35.6465 28.6464L31 33.2929V22Z" fill="white"/>
|
||||
<rect id="Rectangle 88" x="24" y="36" width="13" height="1" fill="white"/>
|
||||
</g>
|
||||
<g id="share">
|
||||
<path id="share_2" d="M56 25C56 26.1046 55.1046 27 54 27C53.4663 27 52.9815 26.791 52.6229 26.4503L47.9076 29.3974C47.9676 29.5875 48 29.79 48 30C48 30.21 47.9676 30.4125 47.9076 30.6026L52.6229 33.5497C52.9815 33.209 53.4663 33 54 33C55.1046 33 56 33.8954 56 35C56 36.1046 55.1046 37 54 37C52.8954 37 52 36.1046 52 35C52 34.79 52.0324 34.5875 52.0924 34.3974L47.3771 31.4503C47.0185 31.791 46.5337 32 46 32C44.8954 32 44 31.1046 44 30C44 28.8954 44.8954 28 46 28C46.5337 28 47.0185 28.209 47.3771 28.5497L52.0924 25.6026C52.0324 25.4125 52 25.21 52 25C52 23.8954 52.8954 23 54 23C55.1046 23 56 23.8954 56 25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="embed ">
|
||||
<g id="embed _2">
|
||||
<path d="M67.8536 25.3536L67.1465 24.6465L62.293 29.5L67.1465 34.3536L67.8536 33.6465L63.7072 29.5L67.8536 25.3536Z" fill="white"/>
|
||||
<path d="M72.1465 25.3536L72.8536 24.6465L77.7072 29.5L72.8536 34.3536L72.1465 33.6465L76.293 29.5L72.1465 25.3536Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen">
|
||||
<path id="Rectangle 81 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M93 27H87V33H93V27ZM86 26V34H94V26H86Z" fill="white"/>
|
||||
<path id="Subtract" fill-rule="evenodd" clip-rule="evenodd" d="M86 23H83V26H84V24H86V23Z" fill="white"/>
|
||||
<path id="Subtract_2" fill-rule="evenodd" clip-rule="evenodd" d="M97 26L97 23L94 23L94 24L96 24L96 26L97 26Z" fill="white"/>
|
||||
<path id="Subtract_3" fill-rule="evenodd" clip-rule="evenodd" d="M94 37L97 37L97 34L96 34L96 36L94 36L94 37Z" fill="white"/>
|
||||
<path id="Subtract_4" fill-rule="evenodd" clip-rule="evenodd" d="M83 34L83 37L86 37L86 36L84 36L84 34L83 34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-in">
|
||||
<path id="Union_2" fill-rule="evenodd" clip-rule="evenodd" d="M111 25H110V30H105V31H110V36H111V31H116V30H111V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-out">
|
||||
<rect id="Rectangle 44.8" x="135" y="30" width="1" height="10" transform="rotate(90 135 30)" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet">
|
||||
<path id="Vector 13 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M155 25L147 30L155 35V25Z" fill="white"/>
|
||||
<path id="Rectangle 225" d="M145 25H146V35H145V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet">
|
||||
<path id="Vector 13 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M165 35L173 30L165 25V35Z" fill="white"/>
|
||||
<path id="Rectangle 225 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M174 35H175V25H174V35Z" fill="white"/>
|
||||
</g>
|
||||
<g id="play">
|
||||
<path id="Vector 8 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M185 23L198 30L185 37V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="pause">
|
||||
<path id="Rectangle 81 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M205 25V35H209V25H205Z" fill="white"/>
|
||||
<path id="Rectangle 81.1 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M211 25V35H215V25H211Z" fill="white"/>
|
||||
</g>
|
||||
<g id=" print">
|
||||
<path id="Union_3" fill-rule="evenodd" clip-rule="evenodd" d="M226 24H234V26H226V24ZM225 26V24C225 23.4477 225.448 23 226 23H234C234.552 23 235 23.4477 235 24V26H237C237.552 26 238 26.4477 238 27V33C238 33.5523 237.552 34 237 34H235V36C235 36.5523 234.552 37 234 37H226C225.448 37 225 36.5523 225 36V34H223C222.448 34 222 33.5523 222 33V27C222 26.4477 222.448 26 223 26H225ZM225 33V31C225 30.4477 225.448 30 226 30H234C234.552 30 235 30.4477 235 31V33H237V27H234H226H223V33H225ZM225 28H224V29H225V28ZM234 31H226V36H234V31ZM227 32H233V33H227V32ZM233 34H227V35H233V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="clear-style">
|
||||
<path id="Union_4" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 24.5608C252.291 23.5845 250.708 23.5845 249.732 24.5608L243.561 30.7324C242.584 31.7087 242.584 33.2916 243.561 34.268L245.146 35.8537L245.293 36.0002L245.5 36.0002H249.5L249.707 36.0002L255 36.0002V35.0002H250.707L255.439 30.268C256.416 29.2916 256.416 27.7087 255.439 26.7324L253.268 24.5608ZM249.293 35.0002L252.793 31.5002L248.5 27.2073L244.268 31.4395C243.682 32.0253 243.682 32.9751 244.268 33.5609L245.707 35.0002L249.293 35.0002ZM249.207 26.5002L253.5 30.7931L254.732 29.5608C255.318 28.9751 255.318 28.0253 254.732 27.4395L252.561 25.268C251.975 24.6822 251.025 24.6822 250.439 25.268L249.207 26.5002Z" fill="white"/>
|
||||
</g>
|
||||
<g id="view-settings_2">
|
||||
<path id="Vector_4" d="M17 6H3V7H17V6Z" fill="black"/>
|
||||
<path id="Vector_5" d="M17 10H3V11H17V10Z" fill="black"/>
|
||||
<path id="Vector_6" d="M17 14H3V15H17V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="download_2">
|
||||
<path id="Union_5" fill-rule="evenodd" clip-rule="evenodd" d="M31 2H30V13.2929L25.3536 8.64645L24.6465 9.35355L30.1465 14.8536L30.5 15.2071L30.8536 14.8536L36.3536 9.35355L35.6465 8.64645L31 13.2929V2Z" fill="black"/>
|
||||
<rect id="Rectangle 88_2" x="24" y="16" width="13" height="1" fill="black"/>
|
||||
</g>
|
||||
<g id="share_3">
|
||||
<path id="share_4" d="M56 5C56 6.10457 55.1046 7 54 7C53.4663 7 52.9815 6.79098 52.6229 6.45034L47.9076 9.39737C47.9676 9.58754 48 9.78999 48 10C48 10.21 47.9676 10.4125 47.9076 10.6026L52.6229 13.5497C52.9815 13.209 53.4663 13 54 13C55.1046 13 56 13.8954 56 15C56 16.1046 55.1046 17 54 17C52.8954 17 52 16.1046 52 15C52 14.79 52.0324 14.5875 52.0924 14.3974L47.3771 11.4503C47.0185 11.791 46.5337 12 46 12C44.8954 12 44 11.1046 44 10C44 8.89543 44.8954 8 46 8C46.5337 8 47.0185 8.20902 47.3771 8.54966L52.0924 5.60264C52.0324 5.41246 52 5.21001 52 5C52 3.89543 52.8954 3 54 3C55.1046 3 56 3.89543 56 5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="embed _3">
|
||||
<g id="embed _4">
|
||||
<path d="M67.8536 5.35359L67.1465 4.64648L62.293 9.50004L67.1465 14.3536L67.8536 13.6465L63.7072 9.50004L67.8536 5.35359Z" fill="black"/>
|
||||
<path d="M72.1465 5.35359L72.8536 4.64648L77.7072 9.50004L72.8536 14.3536L72.1465 13.6465L76.293 9.50004L72.1465 5.35359Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen_2">
|
||||
<path id="Rectangle 81 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M93 7H87V13H93V7ZM86 6V14H94V6H86Z" fill="black"/>
|
||||
<path id="Subtract_5" fill-rule="evenodd" clip-rule="evenodd" d="M86 3H83V6H84V4H86V3Z" fill="black"/>
|
||||
<path id="Subtract_6" fill-rule="evenodd" clip-rule="evenodd" d="M97 6L97 3L94 3L94 4L96 4L96 6L97 6Z" fill="black"/>
|
||||
<path id="Subtract_7" fill-rule="evenodd" clip-rule="evenodd" d="M94 17L97 17L97 14L96 14L96 16L94 16L94 17Z" fill="black"/>
|
||||
<path id="Subtract_8" fill-rule="evenodd" clip-rule="evenodd" d="M83 14L83 17L86 17L86 16L84 16L84 14L83 14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-in_2">
|
||||
<path id="Union_6" fill-rule="evenodd" clip-rule="evenodd" d="M111 5H110V10H105V11H110V16H111V11H116V10H111V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-out_2">
|
||||
<rect id="Rectangle 44.8_2" x="135" y="10" width="1" height="10" transform="rotate(90 135 10)" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M155 5L147 10L155 15V5Z" fill="black"/>
|
||||
<path id="Rectangle 225_2" d="M145 5H146V15H145V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M165 15L173 10L165 5V15Z" fill="black"/>
|
||||
<path id="Rectangle 225 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M174 15H175V5H174V15Z" fill="black"/>
|
||||
</g>
|
||||
<g id="play_2">
|
||||
<path id="Vector 8 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M185 3L198 10L185 17V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="pause_2">
|
||||
<path id="Rectangle 81 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M205 5V15H209V5H205Z" fill="black"/>
|
||||
<path id="Rectangle 81.1 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M211 5V15H215V5H211Z" fill="black"/>
|
||||
</g>
|
||||
<g id=" print_2">
|
||||
<path id="Union_7" fill-rule="evenodd" clip-rule="evenodd" d="M226 4H234V6H226V4ZM225 6V4C225 3.44772 225.448 3 226 3H234C234.552 3 235 3.44772 235 4V6H237C237.552 6 238 6.44772 238 7V13C238 13.5523 237.552 14 237 14H235V16C235 16.5523 234.552 17 234 17H226C225.448 17 225 16.5523 225 16V14H223C222.448 14 222 13.5523 222 13V7C222 6.44772 222.448 6 223 6H225ZM225 13V11C225 10.4477 225.448 10 226 10H234C234.552 10 235 10.4477 235 11V13H237V7H234H226H223V13H225ZM225 8H224V9H225V8ZM234 11H226V16H234V11ZM227 12H233V13H227V12ZM233 14H227V15H233V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="clear-style_2">
|
||||
<path id="Union_8" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 4.56085C252.291 3.58454 250.708 3.58453 249.732 4.56085L243.561 10.7324C242.584 11.7087 242.584 13.2916 243.561 14.268L245.146 15.8537L245.293 16.0002L245.5 16.0002H249.5L249.707 16.0002L255 16.0002V15.0002H250.707L255.439 10.268C256.416 9.29164 256.416 7.70873 255.439 6.73242L253.268 4.56085ZM249.293 15.0002L252.793 11.5002L248.5 7.20729L244.268 11.4395C243.682 12.0253 243.682 12.9751 244.268 13.5609L245.707 15.0002L249.293 15.0002ZM249.207 6.50019L253.5 10.7931L254.732 9.56085C255.318 8.97506 255.318 8.02531 254.732 7.43953L252.561 5.26795C251.975 4.68217 251.025 4.68217 250.439 5.26795L249.207 6.50019Z" fill="black"/>
|
||||
</g>
|
||||
<g id="edit">
|
||||
<path id="Vector_7" d="M263 34V37H266L274 29L271 26L263 34Z" fill="white"/>
|
||||
<path id="Vector 2" d="M275 28L272 25L274 23H275L277 25V26L275 28Z" fill="white"/>
|
||||
</g>
|
||||
<g id="more-vertical">
|
||||
<circle id="Ellipse" cx="290" cy="26" r="1" transform="rotate(90 290 26)" fill="white"/>
|
||||
<circle id="Ellipse_2" cx="290" cy="30" r="1" transform="rotate(90 290 30)" fill="white"/>
|
||||
<circle id="Ellipse_3" cx="290" cy="34" r="1" transform="rotate(90 290 34)" fill="white"/>
|
||||
</g>
|
||||
<g id="go-to-location">
|
||||
<path id="Vector_8" d="M317 26H311V25C311 24.45 310.55 24 310 24H303C302.45 24 302 24.45 302 25V36C302 36.55 302.45 37 303 37H317C317.55 37 318 36.55 318 36V27C318 26.45 317.55 26 317 26ZM317 36H303V25H310V27H317V36Z" fill="white"/>
|
||||
<path id="Union_9" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 33.6465L310.354 34.3536L313.207 31.5L310.354 28.6465L309.646 29.3536L311.268 30.9747H306V31.9747H311.318L309.646 33.6465Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-down">
|
||||
<path id="Union_10" fill-rule="evenodd" clip-rule="evenodd" d="M331 23H330V34.2929L325.354 29.6464L324.646 30.3536L330.146 35.8536L330.5 36.2071L330.854 35.8536L336.354 30.3536L335.646 29.6464L331 34.2929V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="edit_2">
|
||||
<path id="Vector_9" d="M263 14V17H266L274 9L271 6L263 14Z" fill="black"/>
|
||||
<path id="Vector 2_2" d="M275 8L272 5L274 3H275L277 5V6L275 8Z" fill="black"/>
|
||||
</g>
|
||||
<g id="more-vertical_2">
|
||||
<circle id="Ellipse_4" cx="290" cy="6" r="1" transform="rotate(90 290 6)" fill="black"/>
|
||||
<circle id="Ellipse_5" cx="290" cy="10" r="1" transform="rotate(90 290 10)" fill="black"/>
|
||||
<circle id="Ellipse_6" cx="290" cy="14" r="1" transform="rotate(90 290 14)" fill="black"/>
|
||||
</g>
|
||||
<g id="go-to-location_2">
|
||||
<path id="Vector_10" d="M317 6H311V5C311 4.45 310.55 4 310 4H303C302.45 4 302 4.45 302 5V16C302 16.55 302.45 17 303 17H317C317.55 17 318 16.55 318 16V7C318 6.45 317.55 6 317 6ZM317 16H303V5H310V7H317V16Z" fill="black"/>
|
||||
<path id="Union_11" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 13.6465L310.354 14.3536L313.207 11.5L310.354 8.64648L309.646 9.35359L311.268 10.9747H306V11.9747H311.318L309.646 13.6465Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-down_2">
|
||||
<path id="Union_12" fill-rule="evenodd" clip-rule="evenodd" d="M331 3H330V14.2929L325.354 9.64645L324.646 10.3536L330.146 15.8536L330.5 16.2071L330.854 15.8536L336.354 10.3536L335.646 9.64645L331 14.2929V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-up">
|
||||
<path id="Union_13" fill-rule="evenodd" clip-rule="evenodd" d="M350 36.207L351 36.207L351 24.9141L355.646 29.5606L356.354 28.8535L350.854 23.3535L350.5 22.9999L350.146 23.3535L344.646 28.8535L345.354 29.5606L350 24.9141L350 36.207Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-up_2">
|
||||
<path id="Union_14" fill-rule="evenodd" clip-rule="evenodd" d="M350 16.207L351 16.207L351 4.91414L355.646 9.56059L356.354 8.85348L350.854 3.35348L350.5 2.99993L350.146 3.35348L344.646 8.85348L345.354 9.56059L350 4.91414L350 16.207Z" fill="black"/>
|
||||
</g>
|
||||
<g id="close">
|
||||
<path id="Vector 73" d="M366 25L375 34M375 25L366 34" stroke="white" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="close_2">
|
||||
<path id="Vector 73_2" d="M366 5L375 14M375 5L366 14" stroke="black" stroke-width="1.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<svg width="580" height="40" viewBox="0 0 580 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-menu-sprite Embedded Viewer">
|
||||
<g id="view-settings">
|
||||
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
||||
<path id="Vector_2" d="M17 30H3V31H17V30Z" fill="white"/>
|
||||
<path id="Vector_3" d="M17 34H3V35H17V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="download">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M31 22H30V33.2929L25.3536 28.6464L24.6465 29.3536L30.1465 34.8536L30.5 35.2071L30.8536 34.8536L36.3536 29.3536L35.6465 28.6464L31 33.2929V22Z" fill="white"/>
|
||||
<rect id="Rectangle 88" x="24" y="36" width="13" height="1" fill="white"/>
|
||||
</g>
|
||||
<g id="share">
|
||||
<path id="share_2" d="M56 25C56 26.1046 55.1046 27 54 27C53.4663 27 52.9815 26.791 52.6229 26.4503L47.9076 29.3974C47.9676 29.5875 48 29.79 48 30C48 30.21 47.9676 30.4125 47.9076 30.6026L52.6229 33.5497C52.9815 33.209 53.4663 33 54 33C55.1046 33 56 33.8954 56 35C56 36.1046 55.1046 37 54 37C52.8954 37 52 36.1046 52 35C52 34.79 52.0324 34.5875 52.0924 34.3974L47.3771 31.4503C47.0185 31.791 46.5337 32 46 32C44.8954 32 44 31.1046 44 30C44 28.8954 44.8954 28 46 28C46.5337 28 47.0185 28.209 47.3771 28.5497L52.0924 25.6026C52.0324 25.4125 52 25.21 52 25C52 23.8954 52.8954 23 54 23C55.1046 23 56 23.8954 56 25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="embed ">
|
||||
<g id="embed _2">
|
||||
<path d="M67.8536 25.3536L67.1465 24.6465L62.293 29.5L67.1465 34.3536L67.8536 33.6465L63.7072 29.5L67.8536 25.3536Z" fill="white"/>
|
||||
<path d="M72.1465 25.3536L72.8536 24.6465L77.7072 29.5L72.8536 34.3536L72.1465 33.6465L76.293 29.5L72.1465 25.3536Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen">
|
||||
<path id="Rectangle 81 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M93 27H87V33H93V27ZM86 26V34H94V26H86Z" fill="white"/>
|
||||
<path id="Subtract" fill-rule="evenodd" clip-rule="evenodd" d="M86 23H83V26H84V24H86V23Z" fill="white"/>
|
||||
<path id="Subtract_2" fill-rule="evenodd" clip-rule="evenodd" d="M97 26L97 23L94 23L94 24L96 24L96 26L97 26Z" fill="white"/>
|
||||
<path id="Subtract_3" fill-rule="evenodd" clip-rule="evenodd" d="M94 37L97 37L97 34L96 34L96 36L94 36L94 37Z" fill="white"/>
|
||||
<path id="Subtract_4" fill-rule="evenodd" clip-rule="evenodd" d="M83 34L83 37L86 37L86 36L84 36L84 34L83 34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-in">
|
||||
<path id="Union_2" fill-rule="evenodd" clip-rule="evenodd" d="M111 25H110V30H105V31H110V36H111V31H116V30H111V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-out">
|
||||
<rect id="Rectangle 44.8" x="135" y="30" width="1" height="10" transform="rotate(90 135 30)" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet">
|
||||
<path id="Vector 13 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M155 25L147 30L155 35V25Z" fill="white"/>
|
||||
<path id="Rectangle 225" d="M145 25H146V35H145V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet">
|
||||
<path id="Vector 13 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M165 35L173 30L165 25V35Z" fill="white"/>
|
||||
<path id="Rectangle 225 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M174 35H175V25H174V35Z" fill="white"/>
|
||||
</g>
|
||||
<g id="play">
|
||||
<path id="Vector 8 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M185 23L198 30L185 37V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="pause">
|
||||
<path id="Rectangle 81 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M205 25V35H209V25H205Z" fill="white"/>
|
||||
<path id="Rectangle 81.1 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M211 25V35H215V25H211Z" fill="white"/>
|
||||
</g>
|
||||
<g id=" print">
|
||||
<path id="Union_3" fill-rule="evenodd" clip-rule="evenodd" d="M226 24H234V26H226V24ZM225 26V24C225 23.4477 225.448 23 226 23H234C234.552 23 235 23.4477 235 24V26H237C237.552 26 238 26.4477 238 27V33C238 33.5523 237.552 34 237 34H235V36C235 36.5523 234.552 37 234 37H226C225.448 37 225 36.5523 225 36V34H223C222.448 34 222 33.5523 222 33V27C222 26.4477 222.448 26 223 26H225ZM225 33V31C225 30.4477 225.448 30 226 30H234C234.552 30 235 30.4477 235 31V33H237V27H234H226H223V33H225ZM225 28H224V29H225V28ZM234 31H226V36H234V31ZM227 32H233V33H227V32ZM233 34H227V35H233V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="clear-style">
|
||||
<path id="Union_4" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 24.5608C252.291 23.5845 250.708 23.5845 249.732 24.5608L243.561 30.7324C242.584 31.7087 242.584 33.2916 243.561 34.268L245.146 35.8537L245.293 36.0002L245.5 36.0002H249.5L249.707 36.0002L255 36.0002V35.0002H250.707L255.439 30.268C256.416 29.2916 256.416 27.7087 255.439 26.7324L253.268 24.5608ZM249.293 35.0002L252.793 31.5002L248.5 27.2073L244.268 31.4395C243.682 32.0253 243.682 32.9751 244.268 33.5609L245.707 35.0002L249.293 35.0002ZM249.207 26.5002L253.5 30.7931L254.732 29.5608C255.318 28.9751 255.318 28.0253 254.732 27.4395L252.561 25.268C251.975 24.6822 251.025 24.6822 250.439 25.268L249.207 26.5002Z" fill="white"/>
|
||||
</g>
|
||||
<g id="view-settings_2">
|
||||
<path id="Vector_4" d="M17 6H3V7H17V6Z" fill="black"/>
|
||||
<path id="Vector_5" d="M17 10H3V11H17V10Z" fill="black"/>
|
||||
<path id="Vector_6" d="M17 14H3V15H17V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="download_2">
|
||||
<path id="Union_5" fill-rule="evenodd" clip-rule="evenodd" d="M31 2H30V13.2929L25.3536 8.64645L24.6465 9.35355L30.1465 14.8536L30.5 15.2071L30.8536 14.8536L36.3536 9.35355L35.6465 8.64645L31 13.2929V2Z" fill="black"/>
|
||||
<rect id="Rectangle 88_2" x="24" y="16" width="13" height="1" fill="black"/>
|
||||
</g>
|
||||
<g id="share_3">
|
||||
<path id="share_4" d="M56 5C56 6.10457 55.1046 7 54 7C53.4663 7 52.9815 6.79098 52.6229 6.45034L47.9076 9.39737C47.9676 9.58754 48 9.78999 48 10C48 10.21 47.9676 10.4125 47.9076 10.6026L52.6229 13.5497C52.9815 13.209 53.4663 13 54 13C55.1046 13 56 13.8954 56 15C56 16.1046 55.1046 17 54 17C52.8954 17 52 16.1046 52 15C52 14.79 52.0324 14.5875 52.0924 14.3974L47.3771 11.4503C47.0185 11.791 46.5337 12 46 12C44.8954 12 44 11.1046 44 10C44 8.89543 44.8954 8 46 8C46.5337 8 47.0185 8.20902 47.3771 8.54966L52.0924 5.60264C52.0324 5.41246 52 5.21001 52 5C52 3.89543 52.8954 3 54 3C55.1046 3 56 3.89543 56 5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="embed _3">
|
||||
<g id="embed _4">
|
||||
<path d="M67.8536 5.35359L67.1465 4.64648L62.293 9.50004L67.1465 14.3536L67.8536 13.6465L63.7072 9.50004L67.8536 5.35359Z" fill="black"/>
|
||||
<path d="M72.1465 5.35359L72.8536 4.64648L77.7072 9.50004L72.8536 14.3536L72.1465 13.6465L76.293 9.50004L72.1465 5.35359Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen_2">
|
||||
<path id="Rectangle 81 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M93 7H87V13H93V7ZM86 6V14H94V6H86Z" fill="black"/>
|
||||
<path id="Subtract_5" fill-rule="evenodd" clip-rule="evenodd" d="M86 3H83V6H84V4H86V3Z" fill="black"/>
|
||||
<path id="Subtract_6" fill-rule="evenodd" clip-rule="evenodd" d="M97 6L97 3L94 3L94 4L96 4L96 6L97 6Z" fill="black"/>
|
||||
<path id="Subtract_7" fill-rule="evenodd" clip-rule="evenodd" d="M94 17L97 17L97 14L96 14L96 16L94 16L94 17Z" fill="black"/>
|
||||
<path id="Subtract_8" fill-rule="evenodd" clip-rule="evenodd" d="M83 14L83 17L86 17L86 16L84 16L84 14L83 14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-in_2">
|
||||
<path id="Union_6" fill-rule="evenodd" clip-rule="evenodd" d="M111 5H110V10H105V11H110V16H111V11H116V10H111V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-out_2">
|
||||
<rect id="Rectangle 44.8_2" x="135" y="10" width="1" height="10" transform="rotate(90 135 10)" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M155 5L147 10L155 15V5Z" fill="black"/>
|
||||
<path id="Rectangle 225_2" d="M145 5H146V15H145V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M165 15L173 10L165 5V15Z" fill="black"/>
|
||||
<path id="Rectangle 225 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M174 15H175V5H174V15Z" fill="black"/>
|
||||
</g>
|
||||
<g id="play_2">
|
||||
<path id="Vector 8 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M185 3L198 10L185 17V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="pause_2">
|
||||
<path id="Rectangle 81 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M205 5V15H209V5H205Z" fill="black"/>
|
||||
<path id="Rectangle 81.1 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M211 5V15H215V5H211Z" fill="black"/>
|
||||
</g>
|
||||
<g id=" print_2">
|
||||
<path id="Union_7" fill-rule="evenodd" clip-rule="evenodd" d="M226 4H234V6H226V4ZM225 6V4C225 3.44772 225.448 3 226 3H234C234.552 3 235 3.44772 235 4V6H237C237.552 6 238 6.44772 238 7V13C238 13.5523 237.552 14 237 14H235V16C235 16.5523 234.552 17 234 17H226C225.448 17 225 16.5523 225 16V14H223C222.448 14 222 13.5523 222 13V7C222 6.44772 222.448 6 223 6H225ZM225 13V11C225 10.4477 225.448 10 226 10H234C234.552 10 235 10.4477 235 11V13H237V7H234H226H223V13H225ZM225 8H224V9H225V8ZM234 11H226V16H234V11ZM227 12H233V13H227V12ZM233 14H227V15H233V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="clear-style_2">
|
||||
<path id="Union_8" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 4.56085C252.291 3.58454 250.708 3.58453 249.732 4.56085L243.561 10.7324C242.584 11.7087 242.584 13.2916 243.561 14.268L245.146 15.8537L245.293 16.0002L245.5 16.0002H249.5L249.707 16.0002L255 16.0002V15.0002H250.707L255.439 10.268C256.416 9.29164 256.416 7.70873 255.439 6.73242L253.268 4.56085ZM249.293 15.0002L252.793 11.5002L248.5 7.20729L244.268 11.4395C243.682 12.0253 243.682 12.9751 244.268 13.5609L245.707 15.0002L249.293 15.0002ZM249.207 6.50019L253.5 10.7931L254.732 9.56085C255.318 8.97506 255.318 8.02531 254.732 7.43953L252.561 5.26795C251.975 4.68217 251.025 4.68217 250.439 5.26795L249.207 6.50019Z" fill="black"/>
|
||||
</g>
|
||||
<g id="edit">
|
||||
<path id="Vector_7" d="M263 34V37H266L274 29L271 26L263 34Z" fill="white"/>
|
||||
<path id="Vector 2" d="M275 28L272 25L274 23H275L277 25V26L275 28Z" fill="white"/>
|
||||
</g>
|
||||
<g id="more-vertical">
|
||||
<circle id="Ellipse" cx="290" cy="26" r="1" transform="rotate(90 290 26)" fill="white"/>
|
||||
<circle id="Ellipse_2" cx="290" cy="30" r="1" transform="rotate(90 290 30)" fill="white"/>
|
||||
<circle id="Ellipse_3" cx="290" cy="34" r="1" transform="rotate(90 290 34)" fill="white"/>
|
||||
</g>
|
||||
<g id="go-to-location">
|
||||
<path id="Vector_8" d="M317 26H311V25C311 24.45 310.55 24 310 24H303C302.45 24 302 24.45 302 25V36C302 36.55 302.45 37 303 37H317C317.55 37 318 36.55 318 36V27C318 26.45 317.55 26 317 26ZM317 36H303V25H310V27H317V36Z" fill="white"/>
|
||||
<path id="Union_9" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 33.6465L310.354 34.3536L313.207 31.5L310.354 28.6465L309.646 29.3536L311.268 30.9747H306V31.9747H311.318L309.646 33.6465Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-down">
|
||||
<path id="Union_10" fill-rule="evenodd" clip-rule="evenodd" d="M331 23H330V34.2929L325.354 29.6464L324.646 30.3536L330.146 35.8536L330.5 36.2071L330.854 35.8536L336.354 30.3536L335.646 29.6464L331 34.2929V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="edit_2">
|
||||
<path id="Vector_9" d="M263 14V17H266L274 9L271 6L263 14Z" fill="black"/>
|
||||
<path id="Vector 2_2" d="M275 8L272 5L274 3H275L277 5V6L275 8Z" fill="black"/>
|
||||
</g>
|
||||
<g id="more-vertical_2">
|
||||
<circle id="Ellipse_4" cx="290" cy="6" r="1" transform="rotate(90 290 6)" fill="black"/>
|
||||
<circle id="Ellipse_5" cx="290" cy="10" r="1" transform="rotate(90 290 10)" fill="black"/>
|
||||
<circle id="Ellipse_6" cx="290" cy="14" r="1" transform="rotate(90 290 14)" fill="black"/>
|
||||
</g>
|
||||
<g id="go-to-location_2">
|
||||
<path id="Vector_10" d="M317 6H311V5C311 4.45 310.55 4 310 4H303C302.45 4 302 4.45 302 5V16C302 16.55 302.45 17 303 17H317C317.55 17 318 16.55 318 16V7C318 6.45 317.55 6 317 6ZM317 16H303V5H310V7H317V16Z" fill="black"/>
|
||||
<path id="Union_11" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 13.6465L310.354 14.3536L313.207 11.5L310.354 8.64648L309.646 9.35359L311.268 10.9747H306V11.9747H311.318L309.646 13.6465Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-down_2">
|
||||
<path id="Union_12" fill-rule="evenodd" clip-rule="evenodd" d="M331 3H330V14.2929L325.354 9.64645L324.646 10.3536L330.146 15.8536L330.5 16.2071L330.854 15.8536L336.354 10.3536L335.646 9.64645L331 14.2929V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-up">
|
||||
<path id="Union_13" fill-rule="evenodd" clip-rule="evenodd" d="M350 36.207L351 36.207L351 24.9141L355.646 29.5606L356.354 28.8535L350.854 23.3535L350.5 22.9999L350.146 23.3535L344.646 28.8535L345.354 29.5606L350 24.9141L350 36.207Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-up_2">
|
||||
<path id="Union_14" fill-rule="evenodd" clip-rule="evenodd" d="M350 16.207L351 16.207L351 4.91414L355.646 9.56059L356.354 8.85348L350.854 3.35348L350.5 2.99993L350.146 3.35348L344.646 8.85348L345.354 9.56059L350 4.91414L350 16.207Z" fill="black"/>
|
||||
</g>
|
||||
<g id="close">
|
||||
<path id="Vector 73" d="M366 25L375 34M375 25L366 34" stroke="white" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="close_2">
|
||||
<path id="Vector 73_2" d="M366 5L375 14M375 5L366 14" stroke="black" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="сut">
|
||||
<circle id="Ellipse 103" cx="385.5" cy="13.5" r="2" stroke="black"/>
|
||||
<circle id="Ellipse 104" cx="385.5" cy="6.5" r="2" stroke="black"/>
|
||||
<path id="Rectangle 1552" d="M387.188 7.56689L398.446 14.0669V14.0669C398.17 14.5452 397.559 14.7091 397.08 14.4329L386.688 8.43292L387.188 7.56689Z" fill="black"/>
|
||||
<path id="Rectangle 1553" d="M386.688 11.5669L397.08 5.56689C397.558 5.29075 398.17 5.45463 398.446 5.93292V5.93292L387.188 12.4329L386.688 11.5669Z" fill="black"/>
|
||||
</g>
|
||||
<g id="сut_2">
|
||||
<circle id="Ellipse 103_2" cx="385.5" cy="33.5" r="2" stroke="white"/>
|
||||
<circle id="Ellipse 104_2" cx="385.5" cy="26.5" r="2" stroke="white"/>
|
||||
<path id="Rectangle 1552_2" d="M387.188 27.5669L398.446 34.0669V34.0669C398.17 34.5452 397.559 34.7091 397.08 34.4329L386.688 28.4329L387.188 27.5669Z" fill="white"/>
|
||||
<path id="Rectangle 1553_2" d="M386.688 31.5669L397.08 25.5669C397.558 25.2908 398.17 25.4546 398.446 25.9329V25.9329L387.188 32.4329L386.688 31.5669Z" fill="white"/>
|
||||
</g>
|
||||
<g id="copy">
|
||||
<path id="Union_27" fill-rule="evenodd" clip-rule="evenodd" d="M404 5H412V7H413V5C413 4.44772 412.552 4 412 4H404C403.448 4 403 4.44772 403 5V12C403 12.5523 403.448 13 404 13H406V12H404V5ZM411 6H405V7H411V6ZM408 9V16H416V9H408ZM408 8C407.448 8 407 8.44772 407 9V16C407 16.5523 407.448 17 408 17H416C416.552 17 417 16.5523 417 16V9C417 8.44772 416.552 8 416 8H408ZM406 8H405V9H406V8ZM405 10H406V11H405V10ZM415 11V10H409V11H415ZM415 12V13H409V12H415ZM415 15V14H409V15H415Z" fill="black"/>
|
||||
</g>
|
||||
<g id="copy_2">
|
||||
<path id="Union_28" fill-rule="evenodd" clip-rule="evenodd" d="M404 25H412V27H413V25C413 24.4477 412.552 24 412 24H404C403.448 24 403 24.4477 403 25V32C403 32.5523 403.448 33 404 33H406V32H404V25ZM411 26H405V27H411V26ZM408 29V36H416V29H408ZM408 28C407.448 28 407 28.4477 407 29V36C407 36.5523 407.448 37 408 37H416C416.552 37 417 36.5523 417 36V29C417 28.4477 416.552 28 416 28H408ZM406 28H405V29H406V28ZM405 30H406V31H405V30ZM415 31V30H409V31H415ZM415 32V33H409V32H415ZM415 35V34H409V35H415Z" fill="white"/>
|
||||
</g>
|
||||
<g id="paste">
|
||||
<path id="Union_29" fill-rule="evenodd" clip-rule="evenodd" d="M426 3H432V4H434C434.552 4 435 4.44772 435 5V7H434V5H432V6H426V5H424V12H426V13H424C423.448 13 423 12.5523 423 12V5C423 4.44772 423.448 4 424 4H426V3ZM436 16V9H428V16H436ZM428 8C427.448 8 427 8.44772 427 9V16C427 16.5523 427.448 17 428 17H436C436.552 17 437 16.5523 437 16V9C437 8.44772 436.552 8 436 8H428ZM429 11V10H435V11H429ZM435 12H429V13H435V12ZM429 15V14H435V15H429Z" fill="black"/>
|
||||
</g>
|
||||
<g id="paste_2">
|
||||
<path id="Union_30" fill-rule="evenodd" clip-rule="evenodd" d="M426 23H432V24H434C434.552 24 435 24.4477 435 25V27H434V25H432V26H426V25H424V32H426V33H424C423.448 33 423 32.5523 423 32V25C423 24.4477 423.448 24 424 24H426V23ZM436 36V29H428V36H436ZM428 28C427.448 28 427 28.4477 427 29V36C427 36.5523 427.448 37 428 37H436C436.552 37 437 36.5523 437 36V29C437 28.4477 436.552 28 436 28H428ZM429 31V30H435V31H429ZM435 32H429V33H435V32ZM429 35V34H435V35H429Z" fill="white"/>
|
||||
</g>
|
||||
<g id="redo">
|
||||
<path id="Vector" d="M469.1 7C471.1 7 473.2 8.3 474.5 9.5L477 7V14H470L472.5 11.5C471.7 10.2 469.9 9.1 468.2 9.1C465.7 9.1 462.8 10.8 462.5 13.2C462.9 9.7 465.5 7 469.1 7Z" fill="black"/>
|
||||
</g>
|
||||
<g id="redo_2">
|
||||
<path id="Vector_2" d="M469.1 27C471.1 27 473.2 28.3 474.5 29.5L477 27V34H470L472.5 31.5C471.7 30.2 469.9 29.1 468.2 29.1C465.7 29.1 462.8 30.8 462.5 33.2C462.9 29.7 465.5 27 469.1 27Z" fill="white"/>
|
||||
</g>
|
||||
<g id="undo">
|
||||
<path id="Vector_3" d="M450.9 7C448.9 7 446.8 8.3 445.5 9.5L443 7V14H450L447.5 11.5C448.3 10.2 450.1 9.1 451.8 9.1C454.3 9.1 457.2 10.8 457.5 13.2C457.1 9.7 454.5 7 450.9 7Z" fill="black"/>
|
||||
</g>
|
||||
<g id="undo_2">
|
||||
<path id="Vector_4" d="M450.9 27C448.9 27 446.8 28.3 445.5 29.5L443 27V34H450L447.5 31.5C448.3 30.2 450.1 29.1 451.8 29.1C454.3 29.1 457.2 30.8 457.5 33.2C457.1 29.7 454.5 27 450.9 27Z" fill="white"/>
|
||||
</g>
|
||||
<g id="search">
|
||||
<path id="Union_31" fill-rule="evenodd" clip-rule="evenodd" d="M493 8.5C493 10.9853 490.985 13 488.5 13C486.015 13 484 10.9853 484 8.5C484 6.01472 486.015 4 488.5 4C490.985 4 493 6.01472 493 8.5ZM492.02 12.7266C491.066 13.5217 489.839 14 488.5 14C485.462 14 483 11.5376 483 8.5C483 5.46243 485.462 3 488.5 3C491.538 3 494 5.46243 494 8.5C494 9.83875 493.522 11.0658 492.727 12.0195L496.854 16.1465L496.146 16.8536L492.02 12.7266Z" fill="black"/>
|
||||
</g>
|
||||
<g id="search_2">
|
||||
<path id="Union_32" fill-rule="evenodd" clip-rule="evenodd" d="M493 28.5C493 30.9853 490.985 33 488.5 33C486.015 33 484 30.9853 484 28.5C484 26.0147 486.015 24 488.5 24C490.985 24 493 26.0147 493 28.5ZM492.02 32.7266C491.066 33.5217 489.839 34 488.5 34C485.462 34 483 31.5376 483 28.5C483 25.4624 485.462 23 488.5 23C491.538 23 494 25.4624 494 28.5C494 29.8387 493.522 31.0658 492.727 32.0195L496.854 36.1465L496.146 36.8536L492.02 32.7266Z" fill="white"/>
|
||||
</g>
|
||||
<g id="btn-sheet-view">
|
||||
<path id="Union_33" fill-rule="evenodd" clip-rule="evenodd" d="M509.93 13C507.552 13 505.45 11.8151 504.184 10C505.45 8.18485 507.552 7 509.93 7C512.307 7 514.409 8.18486 515.675 10C514.409 11.8151 512.307 13 509.93 13ZM509.93 6C512.891 6 515.476 7.6088 516.859 10C515.476 12.3912 512.891 14 509.93 14C506.969 14 504.383 12.3912 503 10C504.383 7.60879 506.969 6 509.93 6ZM509.93 12C511.034 12 511.93 11.1046 511.93 10C511.93 8.89543 511.034 8 509.93 8C508.825 8 507.93 8.89543 507.93 10C507.93 11.1046 508.825 12 509.93 12Z" fill="black"/>
|
||||
</g>
|
||||
<g id="btn-sheet-view_2">
|
||||
<path id="Union_34" fill-rule="evenodd" clip-rule="evenodd" d="M509.93 33C507.552 33 505.45 31.8151 504.184 30C505.45 28.1849 507.552 27 509.93 27C512.307 27 514.409 28.1849 515.675 30C514.409 31.8151 512.307 33 509.93 33ZM509.93 26C512.891 26 515.476 27.6088 516.859 30C515.476 32.3912 512.891 34 509.93 34C506.969 34 504.383 32.3912 503 30C504.383 27.6088 506.969 26 509.93 26ZM509.93 32C511.034 32 511.93 31.1046 511.93 30C511.93 28.8954 511.034 28 509.93 28C508.825 28 507.93 28.8954 507.93 30C507.93 31.1046 508.825 32 509.93 32Z" fill="white"/>
|
||||
</g>
|
||||
<g id="hide-password">
|
||||
<path id="Subtract" fill-rule="evenodd" clip-rule="evenodd" d="M530.948 6.05196C530.638 6.01766 530.321 6 530 6C526.91 6 524.243 7.63505 523 10C523.439 10.8356 524.056 11.5801 524.807 12.1935L525.518 11.4821C524.979 11.055 524.519 10.5539 524.158 10C525.311 8.23092 527.473 7 530 7C530 7 530 7 530 7L530.948 6.05196ZM530 13C532.527 12.9999 534.689 11.769 535.842 10C535.481 9.44626 535.021 8.94525 534.482 8.51821L535.194 7.80682C535.944 8.42019 536.561 9.16455 537 10C535.757 12.3649 533.09 14 530 14C529.679 14 529.363 13.9824 529.052 13.9481L530 13Z" fill="black"/>
|
||||
<path id="Vector 169" d="M525 15L535 5" stroke="black"/>
|
||||
</g>
|
||||
<g id="hide-password_2">
|
||||
<path id="Subtract_2" fill-rule="evenodd" clip-rule="evenodd" d="M530.948 26.052C530.638 26.0177 530.321 26 530 26C526.91 26 524.243 27.6351 523 30C523.439 30.8356 524.056 31.5801 524.807 32.1935L525.518 31.4821C524.979 31.055 524.519 30.5539 524.158 30C525.311 28.2309 527.473 27 530 27C530 27 530 27 530 27L530.948 26.052ZM530 33C532.527 32.9999 534.689 31.769 535.842 30C535.481 29.4463 535.021 28.9453 534.482 28.5182L535.194 27.8068C535.944 28.4202 536.561 29.1646 537 30C535.757 32.3649 533.09 34 530 34C529.679 34 529.363 33.9824 529.052 33.9481L530 33Z" fill="white"/>
|
||||
<path id="Vector 169_2" d="M525 35L535 25" stroke="white"/>
|
||||
</g>
|
||||
<g id="arrow-up">
|
||||
<path id="Union_4" fill-rule="evenodd" clip-rule="evenodd" d="M550 6.29297L550.354 6.64652L555.854 12.1465L555.146 12.8536L550 7.70718L544.854 12.8536L544.146 12.1465L549.646 6.64652L550 6.29297Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-up_2">
|
||||
<path id="Union_3" fill-rule="evenodd" clip-rule="evenodd" d="M550 26.293L550.354 26.6465L555.854 32.1465L555.146 32.8536L550 27.7072L544.854 32.8536L544.146 32.1465L549.646 26.6465L550 26.293Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-down">
|
||||
<path id="Union_2" fill-rule="evenodd" clip-rule="evenodd" d="M570 13.7071L570.354 13.3536L575.854 7.85359L575.146 7.14648L570 12.2929L564.854 7.14648L564.146 7.85359L569.646 13.3536L570 13.7071Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-down_2">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M570 33.7071L570.354 33.3536L575.854 27.8536L575.146 27.1465L570 32.2929L564.854 27.1465L564.146 27.8536L569.646 33.3536L570 33.7071Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 22 KiB |
|
|
@ -1 +1,4 @@
|
|||
<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="-4 23 100 24"><style>.st0{fill:#5B5B5B;} .st1{fill:#3A3A3A;} .st2{opacity:0.42;fill:#8C8C8C;enable-background:new ;} .st3{opacity:0.72;fill:#9B9B9B;enable-background:new ;} .st4{fill:#9B9B9B;}</style><path class="st0" d="M21.3 35.5c0-1.5.4-2.7 1.3-3.5.9-.8 1.9-1.2 3.1-1.2 1.2 0 2.2.4 3.1 1.2.9.8 1.3 1.9 1.3 3.5 0 1.5-.4 2.7-1.3 3.5-.9.8-1.9 1.2-3.1 1.2-1.2 0-2.2-.4-3.1-1.2-.8-.8-1.3-2-1.3-3.5zm1.9 0c0 1.1.2 1.8.6 2.3.4.5.8.8 1.3.9.1 0 .2 0 .3.1h.6c.1 0 .2 0 .3-.1.5-.1.9-.4 1.3-.9s.6-1.3.6-2.3c0-1-.2-1.8-.6-2.3-.4-.5-.8-.8-1.3-.9-.1 0-.2-.1-.3-.1h-.6c-.1 0-.2 0-.3.1-.5.1-.9.4-1.3.9s-.6 1.2-.6 2.3zm7.8-4.4h2.4l3.1 5.6.5 1.2v-6.8h1.8V40h-2.3l-3.2-5.9-.4-1h-.1l.1 1.6V40H31zm9.3 0h1.9v7.4h3.6V40h-5.5zm4.4 0h2.1l1.8 3 .2.7h.1l.3-.7 1.8-3h2l-3.3 5.2V40H48v-3.7z"/><path class="st1" d="M53.1 35.5c0-1.5.4-2.7 1.3-3.5.9-.8 1.9-1.2 3.1-1.2s2.2.4 3.1 1.2c.9.8 1.3 1.9 1.3 3.5 0 1.5-.4 2.7-1.3 3.5-.9.8-1.9 1.2-3.1 1.2-1.2 0-2.2-.4-3.1-1.2-.9-.8-1.3-2-1.3-3.5zm1.9 0c0 1.1.2 1.8.6 2.3.4.5.8.8 1.3.9.1 0 .2 0 .3.1h.6c.1 0 .2 0 .3-.1.5-.1.9-.4 1.3-.9s.6-1.3.6-2.3c0-1-.2-1.8-.6-2.3s-.8-.8-1.3-.9c-.1 0-.2-.1-.3-.1h-.6s-.2 0-.3.1c-.5.1-.9.4-1.3.9s-.6 1.2-.6 2.3zm7.8-4.4h5v1.5h-3.2v2.1h3.1v1.5h-3.1V40h-1.8zm6.1 0h5v1.5h-3.2v2.1h3v1.5h-3V40h-1.8zm6 8.9v-8.9h1.9V40zM85 31.3v1.6c-.3-.1-.6-.2-1-.3s-.7-.1-1.1-.1c-1 0-1.7.3-2.2.9-.5.6-.8 1.3-.8 2.2s.2 1.6.7 2.2c.5.6 1.2.9 2.1.9.3 0 .7 0 1-.1.4 0 .8-.2 1.2-.3l.1 1.5c-.1 0-.1.1-.2.1s-.2.1-.4.1h-.8c-.3 0-.7.1-1.1.1h-.4c-1-.1-2-.5-2.9-1.2-.9-.7-1.3-1.8-1.3-3.4 0-1.5.4-2.6 1.3-3.5.9-.8 2-1.2 3.4-1.2h1c.3 0 .6.1.9.2.1 0 .1 0 .2.1s.2.1.3.2zm1.1-.2h5.5v1.4H88v2.1h3.2V36H88v2.6h3.6V40h-5.5z"/><path class="st2" d="M7.4 43.1l-7.7-3.7c-.7-.3-.7-.8 0-1.1L2.3 37l5.1 2.4c.7.3 1.7.3 2.4 0l5.1-2.4 2.7 1.3c.7.3.7.8 0 1.1l-7.7 3.7c-.7.3-1.8.3-2.5 0z"/><path class="st3" d="M7.4 38.7L-.3 35c-.7-.3-.7-.8 0-1.1l2.7-1.3L7.5 35c.7.3 1.7.3 2.4 0l5.2-2.4 2.7 1.2c.7.3.7.8 0 1.1L10 38.6c-.8.4-1.9.4-2.6.1z"/><path class="st4" d="M7.4 34.3l-7.7-3.7c-.7-.3-.7-.8 0-1.1l7.7-3.7c.7-.3 1.7-.3 2.4 0l7.7 3.7c.7.3.7.8 0 1.1l-7.7 3.7c-.6.3-1.7.3-2.4 0z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="85" height="20" fill="none">
|
||||
<g fill-rule="evenodd" fill="#444"><path d="M20.211 7.003C19.395 7.655 19 8.658 19 9.987s.395 2.332 1.21 3.009S21.947 14 23.026 14c1.053 0 2-.326 2.79-1.003.79-.652 1.184-1.655 1.184-2.984 0-1.354-.395-2.332-1.184-3.009S24.105 6 23.026 6 21 6.326 20.211 7.003zm1.053 4.991c-.342-.426-.526-1.078-.526-2.006 0-.903.184-1.555.526-1.956.368-.426.763-.702 1.184-.803h0c.105-.025.211-.05.289-.05.079-.025.158-.025.263-.025h0a1.03 1.03 0 0 1 .145.013l.145.013c.079 0 .184.025.289.05.421.1.816.376 1.158.803s.526 1.103.526 1.981-.184 1.555-.526 1.981-.737.702-1.158.803l-.052.013c-.081.02-.15.037-.237.037-.105.025-.184.025-.29.025-.04 0-.085-.006-.132-.013h0l-.132-.013c-.087 0-.156-.017-.237-.037h0 0l-.052-.013c-.421-.1-.816-.376-1.184-.803zM30.134 6H28v8h1.639V9.282l-.026-1.41h.026l.416.897L32.866 14H35V6h-1.639v4.718l.026 1.41h-.026l-.416-1.077L30.134 6zm6.186 0H38v6.641h3.5V14h-5.18V6zm5.687 0H40l3.161 4.744V14h1.732v-3.256L48 6h-1.842l-1.787 2.821-.275.538h-.055l-.275-.538L42.007 6zM48 9.987c0-1.329.395-2.332 1.211-2.984C50 6.326 50.947 6 52.026 6s2 .326 2.79 1.003S56 8.658 56 10.013c0 1.329-.395 2.332-1.184 2.984-.79.677-1.737 1.003-2.79 1.003-1.079 0-2-.326-2.816-1.003C48.421 12.32 48 11.317 48 9.987zm1.737 0c0 .928.184 1.58.526 2.006.368.426.737.702 1.184.803.105.025.21.05.289.05.039 0 .086.006.132.013l.132.013c.105 0 .184 0 .289-.025.087 0 .156-.017.237-.037l.038-.009.014-.003c.421-.1.816-.376 1.158-.803s.526-1.103.526-1.981-.184-1.555-.526-1.981-.737-.702-1.158-.803c-.105-.025-.21-.05-.289-.05-.053 0-.099-.006-.145-.013L52 7.154c-.105 0-.184 0-.263.025-.079 0-.184.025-.289.05-.421.1-.816.376-1.184.803-.342.401-.526 1.053-.526 1.956zM62 6h-4.63v8H59v-3.359h2.871V9.282H59V7.359h3V6zm1.37 0H68v1.359h-3v1.923h2.871v1.359H65V14h-1.63V6zm6.13 0v8h1.638V6H69.5zm9 .202v1.363c-.273-.101-.546-.177-.843-.227a5.79 5.79 0 0 0-.967-.076c-.818 0-1.438.252-1.884.782-.446.505-.669 1.161-.669 1.943 0 .757.198 1.388.62 1.893s1.016.782 1.785.782c.236 0 .471-.019.739-.04h0l.129-.01c.322-.05.645-.126.992-.278l.099 1.338c-.05.025-.124.05-.198.076l-.322.076a4.65 4.65 0 0 1-.446.08h0l-.297.046-.917.05h-.248c-.893-.05-1.711-.404-2.455-1.009-.744-.631-1.116-1.615-1.116-2.927 0-1.287.372-2.297 1.091-3.003S75.302 6 76.517 6l.868.025c.236.022.454.063.684.106l.109.02c.025.013.056.019.087.025a.35.35 0 0 1 .087.025c.015-.016.04-.012.074-.007.021.003.046.007.074.007zM85 6h-5v8h5v-1.256h-3.336v-2.231h2.885V9.256h-2.885v-2H85V6z"/><path opacity=".5" d="M1.605 12.508l4.958 2.318c.503.229 1.348.229 1.874 0l4.936-2.307 1.188.557c.525.252.525.641 0 .87l-6.169 2.883c-.48.229-1.325.229-1.828 0L.394 13.945c-.526-.252-.526-.641 0-.87l1.21-.568z"/><path opacity=".75" d="M1.555 8.985l5.008 2.341c.503.229 1.348.229 1.874 0l5.008-2.341 1.161.544c.526.252.526.641 0 .87l-6.169 2.883c-.526.252-1.371.252-1.874 0L.394 10.398c-.526-.252-.526-.641 0-.87l1.161-.543z"/><path d="M6.563 9.825L.394 6.942c-.526-.252-.526-.641 0-.87l6.169-2.883c.525-.252 1.371-.252 1.874 0l6.169 2.883c.525.252.525.641 0 .87L8.437 9.825c-.526.229-1.371.229-1.874 0z"/>
|
||||
</g><defs />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
|
@ -99,13 +99,13 @@
|
|||
right: 0;
|
||||
|
||||
&.top {
|
||||
top: 48px;
|
||||
top: 28px;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
&.bottom {
|
||||
top: 0;
|
||||
bottom: 46px;
|
||||
bottom: 28px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -126,7 +126,7 @@
|
|||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 48px;
|
||||
height: 28px;
|
||||
|
||||
-webkit-box-shadow: inset 0 -1px 0 @toolbarBorderColor, inset 0 1px 0 @toolbarBorderShadowColor;
|
||||
//-moz-box-shadow: inset 0 -1px 0 @toolbarBorderColor, inset 0 1px 0 @toolbarBorderShadowColor;
|
||||
|
|
@ -137,7 +137,7 @@
|
|||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 46px;
|
||||
height: 28px;
|
||||
|
||||
-webkit-box-shadow: inset 0 1px 0 @toolbarBorderColor, inset 0 2px 0 @toolbarBorderShadowColor;
|
||||
//-moz-box-shadow: inset 0 1px 0 @toolbarBorderColor, inset 0 2px 0 @toolbarBorderShadowColor;
|
||||
|
|
@ -225,6 +225,12 @@
|
|||
.margin-right-large {
|
||||
margin-right: 12px;
|
||||
}
|
||||
.margin-left-small {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.margin-left-large {
|
||||
margin-left: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
// Logo
|
||||
|
|
@ -232,8 +238,8 @@
|
|||
.brand-logo {
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 24px;
|
||||
background: data-uri('../../../../common/embed/resources/img/logo.svg') no-repeat;
|
||||
height: 20px;
|
||||
background: url(../../../../common/embed/resources/img/logo.svg) no-repeat;
|
||||
}
|
||||
|
||||
// Control buttons
|
||||
|
|
@ -497,7 +503,7 @@
|
|||
@icon-height: 20px;
|
||||
.svg-icon {
|
||||
background: data-uri('../../../../common/embed/resources/img/icon-menu-sprite.svg') no-repeat;
|
||||
background-size: @icon-width*19 @icon-height*2;
|
||||
background-size: @icon-width*29 @icon-height*2;
|
||||
|
||||
&.download {
|
||||
background-position: -@icon-width 0;
|
||||
|
|
@ -551,6 +557,18 @@
|
|||
&.more-vertical {
|
||||
background-position: -@icon-width*14 0;
|
||||
}
|
||||
&.search-close {
|
||||
background-position: -@icon-width*18 0;
|
||||
}
|
||||
&.search {
|
||||
background-position: -@icon-width*24 0;
|
||||
}
|
||||
&.search-arrow-up {
|
||||
background-position: -@icon-width*27 0;
|
||||
}
|
||||
&.search-arrow-down {
|
||||
background-position: -@icon-width*28 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mi-icon {
|
||||
|
|
@ -779,4 +797,73 @@
|
|||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#id-search {
|
||||
button.active {
|
||||
background-color: @btnActiveColor !important;
|
||||
background-position: -@icon-width*19 -@icon-height;
|
||||
}
|
||||
}
|
||||
|
||||
.search-window {
|
||||
width: 301px;
|
||||
height: 54px;
|
||||
z-index: 50;
|
||||
position: fixed;
|
||||
|
||||
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
|
||||
border-radius: 5px;
|
||||
border: solid 1px #CBCBCB;
|
||||
|
||||
.body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 5px;
|
||||
background-color: #FFFFFF;
|
||||
display: flex;
|
||||
padding: 16px;
|
||||
|
||||
input {
|
||||
width: 192px;
|
||||
height: 22px;
|
||||
border-radius: 2px;
|
||||
box-shadow: none;
|
||||
border: solid 1px #CFCFCF;
|
||||
padding: 1px 3px;
|
||||
color: #444444;
|
||||
font-size: 11px;
|
||||
|
||||
&::placeholder {
|
||||
color: #CFCFCF;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
border-color: #848484;
|
||||
outline: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.tools {
|
||||
display: flex;
|
||||
|
||||
button {
|
||||
border: none;
|
||||
margin-left: 7px;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
opacity: 0.8;
|
||||
|
||||
&:hover:not(:disabled) {
|
||||
background-color: #d8dadc;
|
||||
}
|
||||
|
||||
&:disabled {
|
||||
opacity: 0.4;
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
225
apps/common/forms/lib/view/modals.js
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
|
||||
!window.Common && (window.Common = {});
|
||||
!Common.Views && (Common.Views = {});
|
||||
|
||||
define([
|
||||
'common/main/lib/component/Window',
|
||||
'common/main/lib/component/MetricSpinner',
|
||||
'common/main/lib/component/TextareaField'
|
||||
], function () { 'use strict';
|
||||
|
||||
Common.Views.EmbedDialog = Common.UI.Window.extend(_.extend({
|
||||
options: {
|
||||
width: 300,
|
||||
header: true,
|
||||
style: 'min-width: 300px;',
|
||||
cls: 'modal-dlg',
|
||||
buttons: null
|
||||
},
|
||||
|
||||
initialize : function(options) {
|
||||
_.extend(this.options, {
|
||||
title: this.textTitle
|
||||
}, options || {});
|
||||
|
||||
this.template = [
|
||||
'<div class="box" style="height: 110px;">',
|
||||
'<table cols="2" style="width: 100%;">',
|
||||
'<tr>',
|
||||
'<td style="padding-right: 10px;">',
|
||||
'<label class="input-label">' + this.textWidth + ':</label>',
|
||||
'<div id="embed-size-spin-width" style="display: inline-block;margin-left: 5px;"></div>',
|
||||
'</td>',
|
||||
'<td style="float:right;">',
|
||||
'<label class="input-label">' + this.textHeight + ':</label>',
|
||||
'<div id="embed-size-spin-height" style="display: inline-block;margin-left: 5px;"></div>',
|
||||
'</td>',
|
||||
'</tr>',
|
||||
'<tr>',
|
||||
'<td colspan="2">',
|
||||
'<div id="embed-textarea" style="margin-top: 15px;"></div>',
|
||||
'</td>',
|
||||
'</tr>',
|
||||
'</table>',
|
||||
'</div>',
|
||||
'<div class="separator horizontal"></div>',
|
||||
'<div class="footer center">',
|
||||
'<button class="btn normal primary dlg-btn" style="min-width: 86px;width: auto;">' + this.txtCopy + '</button>',
|
||||
'</div>'
|
||||
].join('');
|
||||
|
||||
this.options.tpl = _.template(this.template)(this.options);
|
||||
this.embedConfig = this.options.embedConfig;
|
||||
this.embedCode = '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="{0}" width="{1}" height="{2}"></iframe>';
|
||||
|
||||
Common.UI.Window.prototype.initialize.call(this, this.options);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
Common.UI.Window.prototype.render.call(this);
|
||||
|
||||
this.spnWidth = new Common.UI.MetricSpinner({
|
||||
el: $('#embed-size-spin-width'),
|
||||
step: 1,
|
||||
width: 70,
|
||||
defaultUnit : "px",
|
||||
value: '400 px',
|
||||
minValue: 400,
|
||||
maxValue: 10000
|
||||
});
|
||||
this.spnWidth.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
||||
this.updateEmbedCode();
|
||||
}, this));
|
||||
|
||||
this.spnHeight = new Common.UI.MetricSpinner({
|
||||
el: $('#embed-size-spin-height'),
|
||||
step: 1,
|
||||
width: 70,
|
||||
defaultUnit : "px",
|
||||
value: '600 px',
|
||||
minValue: 600,
|
||||
maxValue: 10000
|
||||
});
|
||||
this.spnHeight.on('change', _.bind(function(field, newValue, oldValue, eOpts){
|
||||
this.updateEmbedCode();
|
||||
}, this));
|
||||
|
||||
this.textareaInput = new Common.UI.TextareaField({
|
||||
el : $('#embed-textarea'),
|
||||
style : 'width: 100%; height: 65px;',
|
||||
value : ''
|
||||
});
|
||||
this.textareaInput._input.attr('readonly', true);
|
||||
this.updateEmbedCode();
|
||||
|
||||
this.getChild().find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||
},
|
||||
|
||||
getFocusedComponents: function() {
|
||||
return [this.spnWidth, this.spnHeight, this.textareaInput];
|
||||
},
|
||||
|
||||
getDefaultFocusableComponent: function () {
|
||||
return this.textareaInput;
|
||||
},
|
||||
|
||||
onBtnClick: function(event) {
|
||||
this.textareaInput._input.select();
|
||||
if ( !document.execCommand('copy') ) {
|
||||
Common.UI.warning({
|
||||
msg: this.warnCopy,
|
||||
buttons: ['ok']
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
updateEmbedCode: function() {
|
||||
this.textareaInput.setValue(Common.Utils.String.format(this.embedCode, this.embedConfig.embedUrl, this.spnWidth.getNumberValue(), this.spnHeight.getNumberValue()));
|
||||
},
|
||||
|
||||
textTitle: 'Embed',
|
||||
textWidth: 'Width',
|
||||
textHeight: 'Height',
|
||||
txtCopy: 'Copy to clipboard',
|
||||
warnCopy: 'Browser\'s error! Use keyboard shortcut [Ctrl] + [C]'
|
||||
}, Common.Views.EmbedDialog || {}));
|
||||
|
||||
Common.Views.ShareDialog = Common.UI.Window.extend(_.extend({
|
||||
options: {
|
||||
width: 300,
|
||||
header: true,
|
||||
style: 'min-width: 300px;',
|
||||
cls: 'modal-dlg',
|
||||
buttons: null
|
||||
},
|
||||
|
||||
initialize : function(options) {
|
||||
_.extend(this.options, {
|
||||
title: this.textTitle
|
||||
}, options || {});
|
||||
|
||||
this.template = [
|
||||
'<div class="box" style="height: 100px;">',
|
||||
'<table cols="1" style="width: 100%;">',
|
||||
'<tr>',
|
||||
'<td>',
|
||||
'<div id="share-link-txt"></div>',
|
||||
'</td>',
|
||||
'</tr>',
|
||||
'<tr>',
|
||||
'<td>',
|
||||
'<div class="share-buttons" style="margin-top: 15px;">',
|
||||
'<span class="svg big-facebook" data-name="facebook"></span>',
|
||||
'<span class="svg big-twitter" data-name="twitter"></span>',
|
||||
'<span class="svg big-email" data-name="email"></span>',
|
||||
'<div class="autotest" id="email" style="display: none"></div>',
|
||||
'</div>',
|
||||
'</td>',
|
||||
'</tr>',
|
||||
'</table>',
|
||||
'</div>',
|
||||
'<div class="separator horizontal"></div>',
|
||||
'<div class="footer center">',
|
||||
'<button class="btn normal primary dlg-btn" style="min-width: 86px;width: auto;">' + this.txtCopy + '</button>',
|
||||
'</div>'
|
||||
].join('');
|
||||
|
||||
this.options.tpl = _.template(this.template)(this.options);
|
||||
this.embedConfig = this.options.embedConfig;
|
||||
|
||||
Common.UI.Window.prototype.initialize.call(this, this.options);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
Common.UI.Window.prototype.render.call(this);
|
||||
|
||||
this.textUrl = new Common.UI.InputField({
|
||||
el : $('#share-link-txt'),
|
||||
editable : false,
|
||||
value: this.embedConfig.shareUrl || ''
|
||||
});
|
||||
this.updateShareCode();
|
||||
|
||||
this.getChild().find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||
},
|
||||
|
||||
onBtnClick: function(event) {
|
||||
this.textUrl._input.select();
|
||||
if ( !document.execCommand('copy') ) {
|
||||
Common.UI.warning({
|
||||
msg: this.warnCopy,
|
||||
buttons: ['ok']
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
updateShareCode: function() {
|
||||
var me = this,
|
||||
_encoded = encodeURIComponent(this.embedConfig.shareUrl),
|
||||
docTitle = this.embedConfig.docTitle || '',
|
||||
_mailto = 'mailto:?subject=I have shared a document with you: ' + docTitle + '&body=I have shared a document with you: ' + _encoded;
|
||||
|
||||
this.getChild().find('.share-buttons > span').on('click', function(e){
|
||||
var _url;
|
||||
switch ($(e.target).attr('data-name')) {
|
||||
case 'facebook':
|
||||
_url = 'https://www.facebook.com/sharer/sharer.php?u=' + me.embedConfig.shareUrl + '&t=' + encodeURI(docTitle);
|
||||
window.open(_url, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');
|
||||
break;
|
||||
case 'twitter':
|
||||
_url = 'https://twitter.com/share?url='+ _encoded;
|
||||
!!docTitle && (_url += encodeURIComponent('&text=' + docTitle));
|
||||
window.open(_url, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');
|
||||
break;
|
||||
case 'email':
|
||||
window.open(_mailto, '_self');
|
||||
break;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
textTitle: 'Share Link',
|
||||
txtCopy: 'Copy to clipboard',
|
||||
warnCopy: 'Browser\'s error! Use keyboard shortcut [Ctrl] + [C]'
|
||||
}, Common.Views.ShareDialog || {}))
|
||||
});
|
||||
220
apps/common/forms/resources/img/icon-menu-sprite.svg
Normal file
|
|
@ -0,0 +1,220 @@
|
|||
<svg width="580" height="40" viewBox="0 0 580 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="icon-menu-sprite Embedded Viewer">
|
||||
<g id="view-settings">
|
||||
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
||||
<path id="Vector_2" d="M17 30H3V31H17V30Z" fill="white"/>
|
||||
<path id="Vector_3" d="M17 34H3V35H17V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="download">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M31 22H30V33.2929L25.3536 28.6464L24.6465 29.3536L30.1465 34.8536L30.5 35.2071L30.8536 34.8536L36.3536 29.3536L35.6465 28.6464L31 33.2929V22Z" fill="white"/>
|
||||
<rect id="Rectangle 88" x="24" y="36" width="13" height="1" fill="white"/>
|
||||
</g>
|
||||
<g id="share">
|
||||
<path id="share_2" d="M56 25C56 26.1046 55.1046 27 54 27C53.4663 27 52.9815 26.791 52.6229 26.4503L47.9076 29.3974C47.9676 29.5875 48 29.79 48 30C48 30.21 47.9676 30.4125 47.9076 30.6026L52.6229 33.5497C52.9815 33.209 53.4663 33 54 33C55.1046 33 56 33.8954 56 35C56 36.1046 55.1046 37 54 37C52.8954 37 52 36.1046 52 35C52 34.79 52.0324 34.5875 52.0924 34.3974L47.3771 31.4503C47.0185 31.791 46.5337 32 46 32C44.8954 32 44 31.1046 44 30C44 28.8954 44.8954 28 46 28C46.5337 28 47.0185 28.209 47.3771 28.5497L52.0924 25.6026C52.0324 25.4125 52 25.21 52 25C52 23.8954 52.8954 23 54 23C55.1046 23 56 23.8954 56 25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="embed ">
|
||||
<g id="embed _2">
|
||||
<path d="M67.8536 25.3536L67.1465 24.6465L62.293 29.5L67.1465 34.3536L67.8536 33.6465L63.7072 29.5L67.8536 25.3536Z" fill="white"/>
|
||||
<path d="M72.1465 25.3536L72.8536 24.6465L77.7072 29.5L72.8536 34.3536L72.1465 33.6465L76.293 29.5L72.1465 25.3536Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen">
|
||||
<path id="Rectangle 81 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M93 27H87V33H93V27ZM86 26V34H94V26H86Z" fill="white"/>
|
||||
<path id="Subtract" fill-rule="evenodd" clip-rule="evenodd" d="M86 23H83V26H84V24H86V23Z" fill="white"/>
|
||||
<path id="Subtract_2" fill-rule="evenodd" clip-rule="evenodd" d="M97 26L97 23L94 23L94 24L96 24L96 26L97 26Z" fill="white"/>
|
||||
<path id="Subtract_3" fill-rule="evenodd" clip-rule="evenodd" d="M94 37L97 37L97 34L96 34L96 36L94 36L94 37Z" fill="white"/>
|
||||
<path id="Subtract_4" fill-rule="evenodd" clip-rule="evenodd" d="M83 34L83 37L86 37L86 36L84 36L84 34L83 34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-in">
|
||||
<path id="Union_2" fill-rule="evenodd" clip-rule="evenodd" d="M111 25H110V30H105V31H110V36H111V31H116V30H111V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="zoom-out">
|
||||
<rect id="Rectangle 44.8" x="135" y="30" width="1" height="10" transform="rotate(90 135 30)" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet">
|
||||
<path id="Vector 13 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M155 25L147 30L155 35V25Z" fill="white"/>
|
||||
<path id="Rectangle 225" d="M145 25H146V35H145V25Z" fill="white"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet">
|
||||
<path id="Vector 13 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M165 35L173 30L165 25V35Z" fill="white"/>
|
||||
<path id="Rectangle 225 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M174 35H175V25H174V35Z" fill="white"/>
|
||||
</g>
|
||||
<g id="play">
|
||||
<path id="Vector 8 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M185 23L198 30L185 37V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="pause">
|
||||
<path id="Rectangle 81 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M205 25V35H209V25H205Z" fill="white"/>
|
||||
<path id="Rectangle 81.1 (Stroke)" fill-rule="evenodd" clip-rule="evenodd" d="M211 25V35H215V25H211Z" fill="white"/>
|
||||
</g>
|
||||
<g id=" print">
|
||||
<path id="Union_3" fill-rule="evenodd" clip-rule="evenodd" d="M226 24H234V26H226V24ZM225 26V24C225 23.4477 225.448 23 226 23H234C234.552 23 235 23.4477 235 24V26H237C237.552 26 238 26.4477 238 27V33C238 33.5523 237.552 34 237 34H235V36C235 36.5523 234.552 37 234 37H226C225.448 37 225 36.5523 225 36V34H223C222.448 34 222 33.5523 222 33V27C222 26.4477 222.448 26 223 26H225ZM225 33V31C225 30.4477 225.448 30 226 30H234C234.552 30 235 30.4477 235 31V33H237V27H234H226H223V33H225ZM225 28H224V29H225V28ZM234 31H226V36H234V31ZM227 32H233V33H227V32ZM233 34H227V35H233V34Z" fill="white"/>
|
||||
</g>
|
||||
<g id="clear-style">
|
||||
<path id="Union_4" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 24.5608C252.291 23.5845 250.708 23.5845 249.732 24.5608L243.561 30.7324C242.584 31.7087 242.584 33.2916 243.561 34.268L245.146 35.8537L245.293 36.0002L245.5 36.0002H249.5L249.707 36.0002L255 36.0002V35.0002H250.707L255.439 30.268C256.416 29.2916 256.416 27.7087 255.439 26.7324L253.268 24.5608ZM249.293 35.0002L252.793 31.5002L248.5 27.2073L244.268 31.4395C243.682 32.0253 243.682 32.9751 244.268 33.5609L245.707 35.0002L249.293 35.0002ZM249.207 26.5002L253.5 30.7931L254.732 29.5608C255.318 28.9751 255.318 28.0253 254.732 27.4395L252.561 25.268C251.975 24.6822 251.025 24.6822 250.439 25.268L249.207 26.5002Z" fill="white"/>
|
||||
</g>
|
||||
<g id="view-settings_2">
|
||||
<path id="Vector_4" d="M17 6H3V7H17V6Z" fill="black"/>
|
||||
<path id="Vector_5" d="M17 10H3V11H17V10Z" fill="black"/>
|
||||
<path id="Vector_6" d="M17 14H3V15H17V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="download_2">
|
||||
<path id="Union_5" fill-rule="evenodd" clip-rule="evenodd" d="M31 2H30V13.2929L25.3536 8.64645L24.6465 9.35355L30.1465 14.8536L30.5 15.2071L30.8536 14.8536L36.3536 9.35355L35.6465 8.64645L31 13.2929V2Z" fill="black"/>
|
||||
<rect id="Rectangle 88_2" x="24" y="16" width="13" height="1" fill="black"/>
|
||||
</g>
|
||||
<g id="share_3">
|
||||
<path id="share_4" d="M56 5C56 6.10457 55.1046 7 54 7C53.4663 7 52.9815 6.79098 52.6229 6.45034L47.9076 9.39737C47.9676 9.58754 48 9.78999 48 10C48 10.21 47.9676 10.4125 47.9076 10.6026L52.6229 13.5497C52.9815 13.209 53.4663 13 54 13C55.1046 13 56 13.8954 56 15C56 16.1046 55.1046 17 54 17C52.8954 17 52 16.1046 52 15C52 14.79 52.0324 14.5875 52.0924 14.3974L47.3771 11.4503C47.0185 11.791 46.5337 12 46 12C44.8954 12 44 11.1046 44 10C44 8.89543 44.8954 8 46 8C46.5337 8 47.0185 8.20902 47.3771 8.54966L52.0924 5.60264C52.0324 5.41246 52 5.21001 52 5C52 3.89543 52.8954 3 54 3C55.1046 3 56 3.89543 56 5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="embed _3">
|
||||
<g id="embed _4">
|
||||
<path d="M67.8536 5.35359L67.1465 4.64648L62.293 9.50004L67.1465 14.3536L67.8536 13.6465L63.7072 9.50004L67.8536 5.35359Z" fill="black"/>
|
||||
<path d="M72.1465 5.35359L72.8536 4.64648L77.7072 9.50004L72.8536 14.3536L72.1465 13.6465L76.293 9.50004L72.1465 5.35359Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="full-screen_2">
|
||||
<path id="Rectangle 81 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M93 7H87V13H93V7ZM86 6V14H94V6H86Z" fill="black"/>
|
||||
<path id="Subtract_5" fill-rule="evenodd" clip-rule="evenodd" d="M86 3H83V6H84V4H86V3Z" fill="black"/>
|
||||
<path id="Subtract_6" fill-rule="evenodd" clip-rule="evenodd" d="M97 6L97 3L94 3L94 4L96 4L96 6L97 6Z" fill="black"/>
|
||||
<path id="Subtract_7" fill-rule="evenodd" clip-rule="evenodd" d="M94 17L97 17L97 14L96 14L96 16L94 16L94 17Z" fill="black"/>
|
||||
<path id="Subtract_8" fill-rule="evenodd" clip-rule="evenodd" d="M83 14L83 17L86 17L86 16L84 16L84 14L83 14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-in_2">
|
||||
<path id="Union_6" fill-rule="evenodd" clip-rule="evenodd" d="M111 5H110V10H105V11H110V16H111V11H116V10H111V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="zoom-out_2">
|
||||
<rect id="Rectangle 44.8_2" x="135" y="10" width="1" height="10" transform="rotate(90 135 10)" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-first-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_3" fill-rule="evenodd" clip-rule="evenodd" d="M155 5L147 10L155 15V5Z" fill="black"/>
|
||||
<path id="Rectangle 225_2" d="M145 5H146V15H145V5Z" fill="black"/>
|
||||
</g>
|
||||
<g id="scroll-to-last-sheet_2">
|
||||
<path id="Vector 13 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M165 15L173 10L165 5V15Z" fill="black"/>
|
||||
<path id="Rectangle 225 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M174 15H175V5H174V15Z" fill="black"/>
|
||||
</g>
|
||||
<g id="play_2">
|
||||
<path id="Vector 8 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M185 3L198 10L185 17V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="pause_2">
|
||||
<path id="Rectangle 81 (Stroke)_4" fill-rule="evenodd" clip-rule="evenodd" d="M205 5V15H209V5H205Z" fill="black"/>
|
||||
<path id="Rectangle 81.1 (Stroke)_2" fill-rule="evenodd" clip-rule="evenodd" d="M211 5V15H215V5H211Z" fill="black"/>
|
||||
</g>
|
||||
<g id=" print_2">
|
||||
<path id="Union_7" fill-rule="evenodd" clip-rule="evenodd" d="M226 4H234V6H226V4ZM225 6V4C225 3.44772 225.448 3 226 3H234C234.552 3 235 3.44772 235 4V6H237C237.552 6 238 6.44772 238 7V13C238 13.5523 237.552 14 237 14H235V16C235 16.5523 234.552 17 234 17H226C225.448 17 225 16.5523 225 16V14H223C222.448 14 222 13.5523 222 13V7C222 6.44772 222.448 6 223 6H225ZM225 13V11C225 10.4477 225.448 10 226 10H234C234.552 10 235 10.4477 235 11V13H237V7H234H226H223V13H225ZM225 8H224V9H225V8ZM234 11H226V16H234V11ZM227 12H233V13H227V12ZM233 14H227V15H233V14Z" fill="black"/>
|
||||
</g>
|
||||
<g id="clear-style_2">
|
||||
<path id="Union_8" fill-rule="evenodd" clip-rule="evenodd" d="M253.268 4.56085C252.291 3.58454 250.708 3.58453 249.732 4.56085L243.561 10.7324C242.584 11.7087 242.584 13.2916 243.561 14.268L245.146 15.8537L245.293 16.0002L245.5 16.0002H249.5L249.707 16.0002L255 16.0002V15.0002H250.707L255.439 10.268C256.416 9.29164 256.416 7.70873 255.439 6.73242L253.268 4.56085ZM249.293 15.0002L252.793 11.5002L248.5 7.20729L244.268 11.4395C243.682 12.0253 243.682 12.9751 244.268 13.5609L245.707 15.0002L249.293 15.0002ZM249.207 6.50019L253.5 10.7931L254.732 9.56085C255.318 8.97506 255.318 8.02531 254.732 7.43953L252.561 5.26795C251.975 4.68217 251.025 4.68217 250.439 5.26795L249.207 6.50019Z" fill="black"/>
|
||||
</g>
|
||||
<g id="edit">
|
||||
<path id="Vector_7" d="M263 34V37H266L274 29L271 26L263 34Z" fill="white"/>
|
||||
<path id="Vector 2" d="M275 28L272 25L274 23H275L277 25V26L275 28Z" fill="white"/>
|
||||
</g>
|
||||
<g id="more-vertical">
|
||||
<circle id="Ellipse" cx="290" cy="26" r="1" transform="rotate(90 290 26)" fill="white"/>
|
||||
<circle id="Ellipse_2" cx="290" cy="30" r="1" transform="rotate(90 290 30)" fill="white"/>
|
||||
<circle id="Ellipse_3" cx="290" cy="34" r="1" transform="rotate(90 290 34)" fill="white"/>
|
||||
</g>
|
||||
<g id="go-to-location">
|
||||
<path id="Vector_8" d="M317 26H311V25C311 24.45 310.55 24 310 24H303C302.45 24 302 24.45 302 25V36C302 36.55 302.45 37 303 37H317C317.55 37 318 36.55 318 36V27C318 26.45 317.55 26 317 26ZM317 36H303V25H310V27H317V36Z" fill="white"/>
|
||||
<path id="Union_9" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 33.6465L310.354 34.3536L313.207 31.5L310.354 28.6465L309.646 29.3536L311.268 30.9747H306V31.9747H311.318L309.646 33.6465Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-down">
|
||||
<path id="Union_10" fill-rule="evenodd" clip-rule="evenodd" d="M331 23H330V34.2929L325.354 29.6464L324.646 30.3536L330.146 35.8536L330.5 36.2071L330.854 35.8536L336.354 30.3536L335.646 29.6464L331 34.2929V23Z" fill="white"/>
|
||||
</g>
|
||||
<g id="edit_2">
|
||||
<path id="Vector_9" d="M263 14V17H266L274 9L271 6L263 14Z" fill="black"/>
|
||||
<path id="Vector 2_2" d="M275 8L272 5L274 3H275L277 5V6L275 8Z" fill="black"/>
|
||||
</g>
|
||||
<g id="more-vertical_2">
|
||||
<circle id="Ellipse_4" cx="290" cy="6" r="1" transform="rotate(90 290 6)" fill="black"/>
|
||||
<circle id="Ellipse_5" cx="290" cy="10" r="1" transform="rotate(90 290 10)" fill="black"/>
|
||||
<circle id="Ellipse_6" cx="290" cy="14" r="1" transform="rotate(90 290 14)" fill="black"/>
|
||||
</g>
|
||||
<g id="go-to-location_2">
|
||||
<path id="Vector_10" d="M317 6H311V5C311 4.45 310.55 4 310 4H303C302.45 4 302 4.45 302 5V16C302 16.55 302.45 17 303 17H317C317.55 17 318 16.55 318 16V7C318 6.45 317.55 6 317 6ZM317 16H303V5H310V7H317V16Z" fill="black"/>
|
||||
<path id="Union_11" fill-rule="evenodd" clip-rule="evenodd" d="M309.646 13.6465L310.354 14.3536L313.207 11.5L310.354 8.64648L309.646 9.35359L311.268 10.9747H306V11.9747H311.318L309.646 13.6465Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-down_2">
|
||||
<path id="Union_12" fill-rule="evenodd" clip-rule="evenodd" d="M331 3H330V14.2929L325.354 9.64645L324.646 10.3536L330.146 15.8536L330.5 16.2071L330.854 15.8536L336.354 10.3536L335.646 9.64645L331 14.2929V3Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-up">
|
||||
<path id="Union_13" fill-rule="evenodd" clip-rule="evenodd" d="M350 36.207L351 36.207L351 24.9141L355.646 29.5606L356.354 28.8535L350.854 23.3535L350.5 22.9999L350.146 23.3535L344.646 28.8535L345.354 29.5606L350 24.9141L350 36.207Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-up_2">
|
||||
<path id="Union_14" fill-rule="evenodd" clip-rule="evenodd" d="M350 16.207L351 16.207L351 4.91414L355.646 9.56059L356.354 8.85348L350.854 3.35348L350.5 2.99993L350.146 3.35348L344.646 8.85348L345.354 9.56059L350 4.91414L350 16.207Z" fill="black"/>
|
||||
</g>
|
||||
<g id="close">
|
||||
<path id="Vector 73" d="M366 25L375 34M375 25L366 34" stroke="white" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="close_2">
|
||||
<path id="Vector 73_2" d="M366 5L375 14M375 5L366 14" stroke="black" stroke-width="1.5"/>
|
||||
</g>
|
||||
<g id="сut">
|
||||
<circle id="Ellipse 103" cx="385.5" cy="13.5" r="2" stroke="black"/>
|
||||
<circle id="Ellipse 104" cx="385.5" cy="6.5" r="2" stroke="black"/>
|
||||
<path id="Rectangle 1552" d="M387.188 7.56689L398.446 14.0669V14.0669C398.17 14.5452 397.559 14.7091 397.08 14.4329L386.688 8.43292L387.188 7.56689Z" fill="black"/>
|
||||
<path id="Rectangle 1553" d="M386.688 11.5669L397.08 5.56689C397.558 5.29075 398.17 5.45463 398.446 5.93292V5.93292L387.188 12.4329L386.688 11.5669Z" fill="black"/>
|
||||
</g>
|
||||
<g id="сut_2">
|
||||
<circle id="Ellipse 103_2" cx="385.5" cy="33.5" r="2" stroke="white"/>
|
||||
<circle id="Ellipse 104_2" cx="385.5" cy="26.5" r="2" stroke="white"/>
|
||||
<path id="Rectangle 1552_2" d="M387.188 27.5669L398.446 34.0669V34.0669C398.17 34.5452 397.559 34.7091 397.08 34.4329L386.688 28.4329L387.188 27.5669Z" fill="white"/>
|
||||
<path id="Rectangle 1553_2" d="M386.688 31.5669L397.08 25.5669C397.558 25.2908 398.17 25.4546 398.446 25.9329V25.9329L387.188 32.4329L386.688 31.5669Z" fill="white"/>
|
||||
</g>
|
||||
<g id="copy">
|
||||
<path id="Union_27" fill-rule="evenodd" clip-rule="evenodd" d="M404 5H412V7H413V5C413 4.44772 412.552 4 412 4H404C403.448 4 403 4.44772 403 5V12C403 12.5523 403.448 13 404 13H406V12H404V5ZM411 6H405V7H411V6ZM408 9V16H416V9H408ZM408 8C407.448 8 407 8.44772 407 9V16C407 16.5523 407.448 17 408 17H416C416.552 17 417 16.5523 417 16V9C417 8.44772 416.552 8 416 8H408ZM406 8H405V9H406V8ZM405 10H406V11H405V10ZM415 11V10H409V11H415ZM415 12V13H409V12H415ZM415 15V14H409V15H415Z" fill="black"/>
|
||||
</g>
|
||||
<g id="copy_2">
|
||||
<path id="Union_28" fill-rule="evenodd" clip-rule="evenodd" d="M404 25H412V27H413V25C413 24.4477 412.552 24 412 24H404C403.448 24 403 24.4477 403 25V32C403 32.5523 403.448 33 404 33H406V32H404V25ZM411 26H405V27H411V26ZM408 29V36H416V29H408ZM408 28C407.448 28 407 28.4477 407 29V36C407 36.5523 407.448 37 408 37H416C416.552 37 417 36.5523 417 36V29C417 28.4477 416.552 28 416 28H408ZM406 28H405V29H406V28ZM405 30H406V31H405V30ZM415 31V30H409V31H415ZM415 32V33H409V32H415ZM415 35V34H409V35H415Z" fill="white"/>
|
||||
</g>
|
||||
<g id="paste">
|
||||
<path id="Union_29" fill-rule="evenodd" clip-rule="evenodd" d="M426 3H432V4H434C434.552 4 435 4.44772 435 5V7H434V5H432V6H426V5H424V12H426V13H424C423.448 13 423 12.5523 423 12V5C423 4.44772 423.448 4 424 4H426V3ZM436 16V9H428V16H436ZM428 8C427.448 8 427 8.44772 427 9V16C427 16.5523 427.448 17 428 17H436C436.552 17 437 16.5523 437 16V9C437 8.44772 436.552 8 436 8H428ZM429 11V10H435V11H429ZM435 12H429V13H435V12ZM429 15V14H435V15H429Z" fill="black"/>
|
||||
</g>
|
||||
<g id="paste_2">
|
||||
<path id="Union_30" fill-rule="evenodd" clip-rule="evenodd" d="M426 23H432V24H434C434.552 24 435 24.4477 435 25V27H434V25H432V26H426V25H424V32H426V33H424C423.448 33 423 32.5523 423 32V25C423 24.4477 423.448 24 424 24H426V23ZM436 36V29H428V36H436ZM428 28C427.448 28 427 28.4477 427 29V36C427 36.5523 427.448 37 428 37H436C436.552 37 437 36.5523 437 36V29C437 28.4477 436.552 28 436 28H428ZM429 31V30H435V31H429ZM435 32H429V33H435V32ZM429 35V34H435V35H429Z" fill="white"/>
|
||||
</g>
|
||||
<g id="redo">
|
||||
<path id="Vector" d="M469.1 7C471.1 7 473.2 8.3 474.5 9.5L477 7V14H470L472.5 11.5C471.7 10.2 469.9 9.1 468.2 9.1C465.7 9.1 462.8 10.8 462.5 13.2C462.9 9.7 465.5 7 469.1 7Z" fill="black"/>
|
||||
</g>
|
||||
<g id="redo_2">
|
||||
<path id="Vector_2" d="M469.1 27C471.1 27 473.2 28.3 474.5 29.5L477 27V34H470L472.5 31.5C471.7 30.2 469.9 29.1 468.2 29.1C465.7 29.1 462.8 30.8 462.5 33.2C462.9 29.7 465.5 27 469.1 27Z" fill="white"/>
|
||||
</g>
|
||||
<g id="undo">
|
||||
<path id="Vector_3" d="M450.9 7C448.9 7 446.8 8.3 445.5 9.5L443 7V14H450L447.5 11.5C448.3 10.2 450.1 9.1 451.8 9.1C454.3 9.1 457.2 10.8 457.5 13.2C457.1 9.7 454.5 7 450.9 7Z" fill="black"/>
|
||||
</g>
|
||||
<g id="undo_2">
|
||||
<path id="Vector_4" d="M450.9 27C448.9 27 446.8 28.3 445.5 29.5L443 27V34H450L447.5 31.5C448.3 30.2 450.1 29.1 451.8 29.1C454.3 29.1 457.2 30.8 457.5 33.2C457.1 29.7 454.5 27 450.9 27Z" fill="white"/>
|
||||
</g>
|
||||
<g id="search">
|
||||
<path id="Union_31" fill-rule="evenodd" clip-rule="evenodd" d="M493 8.5C493 10.9853 490.985 13 488.5 13C486.015 13 484 10.9853 484 8.5C484 6.01472 486.015 4 488.5 4C490.985 4 493 6.01472 493 8.5ZM492.02 12.7266C491.066 13.5217 489.839 14 488.5 14C485.462 14 483 11.5376 483 8.5C483 5.46243 485.462 3 488.5 3C491.538 3 494 5.46243 494 8.5C494 9.83875 493.522 11.0658 492.727 12.0195L496.854 16.1465L496.146 16.8536L492.02 12.7266Z" fill="black"/>
|
||||
</g>
|
||||
<g id="search_2">
|
||||
<path id="Union_32" fill-rule="evenodd" clip-rule="evenodd" d="M493 28.5C493 30.9853 490.985 33 488.5 33C486.015 33 484 30.9853 484 28.5C484 26.0147 486.015 24 488.5 24C490.985 24 493 26.0147 493 28.5ZM492.02 32.7266C491.066 33.5217 489.839 34 488.5 34C485.462 34 483 31.5376 483 28.5C483 25.4624 485.462 23 488.5 23C491.538 23 494 25.4624 494 28.5C494 29.8387 493.522 31.0658 492.727 32.0195L496.854 36.1465L496.146 36.8536L492.02 32.7266Z" fill="white"/>
|
||||
</g>
|
||||
<g id="btn-sheet-view">
|
||||
<path id="Union_33" fill-rule="evenodd" clip-rule="evenodd" d="M509.93 13C507.552 13 505.45 11.8151 504.184 10C505.45 8.18485 507.552 7 509.93 7C512.307 7 514.409 8.18486 515.675 10C514.409 11.8151 512.307 13 509.93 13ZM509.93 6C512.891 6 515.476 7.6088 516.859 10C515.476 12.3912 512.891 14 509.93 14C506.969 14 504.383 12.3912 503 10C504.383 7.60879 506.969 6 509.93 6ZM509.93 12C511.034 12 511.93 11.1046 511.93 10C511.93 8.89543 511.034 8 509.93 8C508.825 8 507.93 8.89543 507.93 10C507.93 11.1046 508.825 12 509.93 12Z" fill="black"/>
|
||||
</g>
|
||||
<g id="btn-sheet-view_2">
|
||||
<path id="Union_34" fill-rule="evenodd" clip-rule="evenodd" d="M509.93 33C507.552 33 505.45 31.8151 504.184 30C505.45 28.1849 507.552 27 509.93 27C512.307 27 514.409 28.1849 515.675 30C514.409 31.8151 512.307 33 509.93 33ZM509.93 26C512.891 26 515.476 27.6088 516.859 30C515.476 32.3912 512.891 34 509.93 34C506.969 34 504.383 32.3912 503 30C504.383 27.6088 506.969 26 509.93 26ZM509.93 32C511.034 32 511.93 31.1046 511.93 30C511.93 28.8954 511.034 28 509.93 28C508.825 28 507.93 28.8954 507.93 30C507.93 31.1046 508.825 32 509.93 32Z" fill="white"/>
|
||||
</g>
|
||||
<g id="hide-password">
|
||||
<path id="Subtract" fill-rule="evenodd" clip-rule="evenodd" d="M530.948 6.05196C530.638 6.01766 530.321 6 530 6C526.91 6 524.243 7.63505 523 10C523.439 10.8356 524.056 11.5801 524.807 12.1935L525.518 11.4821C524.979 11.055 524.519 10.5539 524.158 10C525.311 8.23092 527.473 7 530 7C530 7 530 7 530 7L530.948 6.05196ZM530 13C532.527 12.9999 534.689 11.769 535.842 10C535.481 9.44626 535.021 8.94525 534.482 8.51821L535.194 7.80682C535.944 8.42019 536.561 9.16455 537 10C535.757 12.3649 533.09 14 530 14C529.679 14 529.363 13.9824 529.052 13.9481L530 13Z" fill="black"/>
|
||||
<path id="Vector 169" d="M525 15L535 5" stroke="black"/>
|
||||
</g>
|
||||
<g id="hide-password_2">
|
||||
<path id="Subtract_2" fill-rule="evenodd" clip-rule="evenodd" d="M530.948 26.052C530.638 26.0177 530.321 26 530 26C526.91 26 524.243 27.6351 523 30C523.439 30.8356 524.056 31.5801 524.807 32.1935L525.518 31.4821C524.979 31.055 524.519 30.5539 524.158 30C525.311 28.2309 527.473 27 530 27C530 27 530 27 530 27L530.948 26.052ZM530 33C532.527 32.9999 534.689 31.769 535.842 30C535.481 29.4463 535.021 28.9453 534.482 28.5182L535.194 27.8068C535.944 28.4202 536.561 29.1646 537 30C535.757 32.3649 533.09 34 530 34C529.679 34 529.363 33.9824 529.052 33.9481L530 33Z" fill="white"/>
|
||||
<path id="Vector 169_2" d="M525 35L535 25" stroke="white"/>
|
||||
</g>
|
||||
<g id="arrow-up">
|
||||
<path id="Union_4" fill-rule="evenodd" clip-rule="evenodd" d="M550 6.29297L550.354 6.64652L555.854 12.1465L555.146 12.8536L550 7.70718L544.854 12.8536L544.146 12.1465L549.646 6.64652L550 6.29297Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-up_2">
|
||||
<path id="Union_3" fill-rule="evenodd" clip-rule="evenodd" d="M550 26.293L550.354 26.6465L555.854 32.1465L555.146 32.8536L550 27.7072L544.854 32.8536L544.146 32.1465L549.646 26.6465L550 26.293Z" fill="white"/>
|
||||
</g>
|
||||
<g id="arrow-down">
|
||||
<path id="Union_2" fill-rule="evenodd" clip-rule="evenodd" d="M570 13.7071L570.354 13.3536L575.854 7.85359L575.146 7.14648L570 12.2929L564.854 7.14648L564.146 7.85359L569.646 13.3536L570 13.7071Z" fill="black"/>
|
||||
</g>
|
||||
<g id="arrow-down_2">
|
||||
<path id="Union" fill-rule="evenodd" clip-rule="evenodd" d="M570 33.7071L570.354 33.3536L575.854 27.8536L575.146 27.1465L570 32.2929L564.854 27.1465L564.146 27.8536L569.646 33.3536L570 33.7071Z" fill="white"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 20 KiB |
1
apps/common/forms/resources/img/icon-social-sprite.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 152 76"><defs><path id="a" d="M144.9 0h-23.8c-3.9 0-7.1 3.2-7.1 7.1v23.7c0 3.9 3.2 7.1 7.1 7.1h23.8c3.9 0 7.1-3.2 7.1-7.1V7.1c0-3.9-3.2-7.1-7.1-7.1zm1.8 28.3c0 1.3-1.1 2.4-2.4 2.4h-22.4c-1.3 0-2.4-1.1-2.4-2.4V9.7c0-1.3 1.1-2.4 2.4-2.4h22.4c1.3 0 2.4 1.1 2.4 2.4v18.6zM68.9 0H45.1C41.2 0 38 3.2 38 7.1v23.7c0 3.9 3.2 7.1 7.1 7.1h23.7c3.9 0 7.1-3.2 7.1-7.1V7.1c.1-3.9-3.1-7.1-7-7.1zm-1.8 14.6v.7c0 6.9-5.2 14.8-14.8 14.8-2.9 0-5.7-.9-8-2.3.4 0 .8.1 1.2.1 2.4 0 4.7-.8 6.5-2.2-2.3 0-4.2-1.6-4.8-3.6.3 0 .6.1 1 .1.5 0 .8-.1 1.3-.2-2.4-.5-4.3-2.6-4.3-5.1.8.4 1.6.6 2.5.6-1.4-.9-2.3-2.5-2.3-4.3 0-.9.3-1.9.7-2.6 2.6 3.2 6.4 5.2 10.7 5.4-.1-.4-.1-.8-.1-1.2 0-2.9 2.3-5.2 5.2-5.2 1.5 0 2.8.6 3.8 1.6 1.2-.2 2.3-.7 3.3-1.3-.4 1.2-1.2 2.3-2.3 2.9 1.1-.1 2.1-.4 3-.8-.7 1-1.6 1.9-2.6 2.6zM30.9 0H7.1C3.2 0 0 3.2 0 7.1v23.7c0 4 3.2 7.2 7.1 7.2h11.7V26.8h-5.3v-5.7h5.3V17c0-4.8 3.2-7.5 7.9-7.5 2.2 0 4.2.1 4.7.2v5.1h-3.2c-2.6 0-3.1 1.1-3.1 2.7v3.6h6.1l-.8 5.7h-5.3V38h5.7c3.9 0 7.1-3.2 7.1-7.1V7.1c.1-3.9-3.1-7.1-7-7.1zm105.9 20.6c-1.1.9-2.4 2-3.8 2-1.5 0-2.8-1.1-3.8-2l-6-4.8c-.4-.3-.7-.6-1-.9v12.6c0 .2.2.5.4.5h20.7c.2 0 .4-.2.4-.5V14.9c-.3.3-.6.6-1 .9-1.9 1.6-3.9 3.2-5.9 4.8zM106.9 0H83.1C79.2 0 76 3.2 76 7.1v23.7c0 3.9 3.2 7.1 7.1 7.1h23.8c3.9 0 7.1-3.2 7.1-7.1V7.1c0-3.9-3.2-7.1-7.1-7.1zM89.6 28.5c-5.3 0-9.5-4.3-9.5-9.5s4.2-9.5 9.5-9.5c2.5 0 4.7.9 6.4 2.5l-2.6 2.5c-.7-.7-2-1.5-3.8-1.5-3.3 0-5.9 2.7-5.9 6s2.6 6 5.9 6c3.8 0 5.2-2.7 5.4-4.1h-5.4v-3.3h9c.1.5.1 1 .1 1.6 0 5.4-3.7 9.3-9.1 9.3zm20.3-8.1h-2.7v2.7h-2.7v-2.7h-2.7v-2.7h2.7V15h2.7v2.7h2.7v2.7zM143.3 10h-20.7c-.2 0-.4.2-.4.5 0 1.6.8 3 2.1 4 1.9 1.5 3.8 3 5.6 4.5.7.6 2.1 1.9 3.1 1.9s2.3-1.3 3.1-1.9c1.9-1.5 3.7-3 5.6-4.5.9-.7 2.1-2.3 2.1-3.5 0-.4.1-1-.5-1z"/></defs><use xlink:href="#a" fill="#999"/><use xlink:href="#a" fill="#666" y="38"/></svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
1
apps/common/forms/resources/img/logo.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewBox="-4 23 100 24"><style>.st0{fill:#5B5B5B;} .st1{fill:#3A3A3A;} .st2{opacity:0.42;fill:#8C8C8C;enable-background:new ;} .st3{opacity:0.72;fill:#9B9B9B;enable-background:new ;} .st4{fill:#9B9B9B;}</style><path class="st0" d="M21.3 35.5c0-1.5.4-2.7 1.3-3.5.9-.8 1.9-1.2 3.1-1.2 1.2 0 2.2.4 3.1 1.2.9.8 1.3 1.9 1.3 3.5 0 1.5-.4 2.7-1.3 3.5-.9.8-1.9 1.2-3.1 1.2-1.2 0-2.2-.4-3.1-1.2-.8-.8-1.3-2-1.3-3.5zm1.9 0c0 1.1.2 1.8.6 2.3.4.5.8.8 1.3.9.1 0 .2 0 .3.1h.6c.1 0 .2 0 .3-.1.5-.1.9-.4 1.3-.9s.6-1.3.6-2.3c0-1-.2-1.8-.6-2.3-.4-.5-.8-.8-1.3-.9-.1 0-.2-.1-.3-.1h-.6c-.1 0-.2 0-.3.1-.5.1-.9.4-1.3.9s-.6 1.2-.6 2.3zm7.8-4.4h2.4l3.1 5.6.5 1.2v-6.8h1.8V40h-2.3l-3.2-5.9-.4-1h-.1l.1 1.6V40H31zm9.3 0h1.9v7.4h3.6V40h-5.5zm4.4 0h2.1l1.8 3 .2.7h.1l.3-.7 1.8-3h2l-3.3 5.2V40H48v-3.7z"/><path class="st1" d="M53.1 35.5c0-1.5.4-2.7 1.3-3.5.9-.8 1.9-1.2 3.1-1.2s2.2.4 3.1 1.2c.9.8 1.3 1.9 1.3 3.5 0 1.5-.4 2.7-1.3 3.5-.9.8-1.9 1.2-3.1 1.2-1.2 0-2.2-.4-3.1-1.2-.9-.8-1.3-2-1.3-3.5zm1.9 0c0 1.1.2 1.8.6 2.3.4.5.8.8 1.3.9.1 0 .2 0 .3.1h.6c.1 0 .2 0 .3-.1.5-.1.9-.4 1.3-.9s.6-1.3.6-2.3c0-1-.2-1.8-.6-2.3s-.8-.8-1.3-.9c-.1 0-.2-.1-.3-.1h-.6s-.2 0-.3.1c-.5.1-.9.4-1.3.9s-.6 1.2-.6 2.3zm7.8-4.4h5v1.5h-3.2v2.1h3.1v1.5h-3.1V40h-1.8zm6.1 0h5v1.5h-3.2v2.1h3v1.5h-3V40h-1.8zm6 8.9v-8.9h1.9V40zM85 31.3v1.6c-.3-.1-.6-.2-1-.3s-.7-.1-1.1-.1c-1 0-1.7.3-2.2.9-.5.6-.8 1.3-.8 2.2s.2 1.6.7 2.2c.5.6 1.2.9 2.1.9.3 0 .7 0 1-.1.4 0 .8-.2 1.2-.3l.1 1.5c-.1 0-.1.1-.2.1s-.2.1-.4.1h-.8c-.3 0-.7.1-1.1.1h-.4c-1-.1-2-.5-2.9-1.2-.9-.7-1.3-1.8-1.3-3.4 0-1.5.4-2.6 1.3-3.5.9-.8 2-1.2 3.4-1.2h1c.3 0 .6.1.9.2.1 0 .1 0 .2.1s.2.1.3.2zm1.1-.2h5.5v1.4H88v2.1h3.2V36H88v2.6h3.6V40h-5.5z"/><path class="st2" d="M7.4 43.1l-7.7-3.7c-.7-.3-.7-.8 0-1.1L2.3 37l5.1 2.4c.7.3 1.7.3 2.4 0l5.1-2.4 2.7 1.3c.7.3.7.8 0 1.1l-7.7 3.7c-.7.3-1.8.3-2.5 0z"/><path class="st3" d="M7.4 38.7L-.3 35c-.7-.3-.7-.8 0-1.1l2.7-1.3L7.5 35c.7.3 1.7.3 2.4 0l5.2-2.4 2.7 1.2c.7.3.7.8 0 1.1L10 38.6c-.8.4-1.9.4-2.6.1z"/><path class="st4" d="M7.4 34.3l-7.7-3.7c-.7-.3-.7-.8 0-1.1l7.7-3.7c.7-.3 1.7-.3 2.4 0l7.7 3.7c.7.3.7.8 0 1.1l-7.7 3.7c-.6.3-1.7.3-2.4 0z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
BIN
apps/common/forms/resources/img/next-field.png
Normal file
|
After Width: | Height: | Size: 323 B |
BIN
apps/common/forms/resources/img/previous-field.png
Normal file
|
After Width: | Height: | Size: 323 B |
702
apps/common/forms/resources/less/common.less
Normal file
|
|
@ -0,0 +1,702 @@
|
|||
@import "../../../../common/main/resources/less/asc-mixins.less";
|
||||
|
||||
// Bootstrap overwrite
|
||||
@import "../../../../common/main/resources/less/variables.less";
|
||||
@import "../../../../common/main/resources/less/colors-table.less";
|
||||
@import "../../../../common/main/resources/less/colors-table-classic.less";
|
||||
@import "../../../../common/main/resources/less/colors-table-dark.less";
|
||||
@import "../../../../common/main/resources/less/colors-table-dark-contrast.less";
|
||||
|
||||
// Core variables and mixins
|
||||
//@import "../../../../../vendor/bootstrap/less/variables.less";
|
||||
|
||||
@icon-font-path: "../../../../../vendor/bootstrap/dist/fonts/";
|
||||
|
||||
@import "../../../../../vendor/bootstrap/less/mixins.less";
|
||||
|
||||
// Reset
|
||||
@import "../../../../../vendor/bootstrap/less/normalize.less";
|
||||
//@import "../../../../../vendor/bootstrap/less/print.less";
|
||||
|
||||
// Core CSS
|
||||
@import "../../../../../vendor/bootstrap/less/scaffolding.less";
|
||||
@import "../../../../../vendor/bootstrap/less/type.less";
|
||||
//@import "code.less";
|
||||
//@import "grid.less";
|
||||
//@import "tables.less";
|
||||
@import "../../../../../vendor/bootstrap/less/forms.less";
|
||||
@import "../../../../../vendor/bootstrap/less/buttons.less";
|
||||
|
||||
// Components
|
||||
@import "../../../../../vendor/bootstrap/less/component-animations.less";
|
||||
//@import "../../../../../vendor/bootstrap/less/glyphicons.less";
|
||||
//@import "dropdowns.less";
|
||||
//@import "button-groups.less";
|
||||
//@import "input-groups.less";
|
||||
//@import "navs.less";
|
||||
//@import "navbar.less";
|
||||
//@import "breadcrumbs.less";
|
||||
//@import "pagination.less";
|
||||
//@import "pager.less";
|
||||
//@import "../../../../../vendor/bootstrap/less/labels.less";
|
||||
//@import "badges.less";
|
||||
//@import "jumbotron.less";
|
||||
//@import "thumbnails.less";
|
||||
//@import "../../../../../vendor/bootstrap/less/alerts.less";
|
||||
//@import "progress-bars.less";
|
||||
//@import "media.less";
|
||||
//@import "list-group.less";
|
||||
//@import "panels.less";
|
||||
//@import "wells.less";
|
||||
//@import "../../../../../vendor/bootstrap/less/close.less";
|
||||
|
||||
// Components w/ JavaScript
|
||||
//@import "../../../../../vendor/bootstrap/less/modals.less";
|
||||
@import "../../../../../vendor/bootstrap/less/tooltip.less";
|
||||
//@import "../../../../../vendor/bootstrap/less/popovers.less";
|
||||
@import "../../../../../vendor/bootstrap/less/dropdowns.less";
|
||||
@import "../../../../../vendor/bootstrap/less/button-groups.less";
|
||||
@import "../../../../../vendor/bootstrap/less/input-groups.less";
|
||||
//@import "carousel.less";
|
||||
|
||||
// Utility classes
|
||||
@import "../../../../../vendor/bootstrap/less/utilities.less";
|
||||
@import "../../../../../vendor/bootstrap/less/responsive-utilities.less";
|
||||
|
||||
@import "../../../../common/main/resources/less/buttons.less";
|
||||
@import "../../../../common/main/resources/less/dropdown-menu.less";
|
||||
@import "../../../../common/main/resources/less/dropdown-submenu.less";
|
||||
@import "../../../../common/main/resources/less/separator.less";
|
||||
@import "../../../../common/main/resources/less/input.less";
|
||||
@import "../../../../common/main/resources/less/combobox.less";
|
||||
@import "../../../../common/main/resources/less/window.less";
|
||||
@import "../../../../common/main/resources/less/loadmask.less";
|
||||
@import "../../../../common/main/resources/less/dataview.less";
|
||||
@import "../../../../common/main/resources/less/tooltip.less";
|
||||
@import "../../../../common/main/resources/less/scroller.less";
|
||||
@import "../../../../common/main/resources/less/synchronize-tip.less";
|
||||
@import "../../../../common/main/resources/less/common.less";
|
||||
@import "../../../../common/main/resources/less/winxp_fix.less";
|
||||
@import "../../../../common/main/resources/less/calendar.less";
|
||||
@import "../../../../common/main/resources/less/spinner.less";
|
||||
@import "../../../../common/main/resources/less/checkbox.less";
|
||||
@import "../../../../common/main/resources/less/opendialog.less";
|
||||
@import "../../../../common/main/resources/less/advanced-settings-window.less";
|
||||
@import "../../../../common/main/resources/less/searchdialog.less";
|
||||
|
||||
@toolbarBorderColor: @border-toolbar-ie;
|
||||
@toolbarBorderColor: @border-toolbar;
|
||||
@toolbarTopColor: @background-toolbar-ie;
|
||||
@toolbarTopColor: @background-toolbar;
|
||||
@toolbarFontSize: 12px;
|
||||
|
||||
@iconSpriteCommonPath: "../../../../common/forms/resources/img/glyphicons.png";
|
||||
@icon-socnet-size: 40px;
|
||||
|
||||
@loadmask-zindex: 10000;
|
||||
|
||||
.embed-body {
|
||||
-moz-user-select: -moz-none;
|
||||
-khtml-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
|
||||
font-size: @toolbarFontSize;
|
||||
overflow: hidden;
|
||||
|
||||
color: @text-normal-ie;
|
||||
color: @text-normal;
|
||||
}
|
||||
|
||||
// Document Viewer
|
||||
// -------------------------
|
||||
.viewer {
|
||||
position: absolute;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
|
||||
&.top {
|
||||
top: 40px;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
&.bottom {
|
||||
top: 0;
|
||||
bottom: 46px;
|
||||
}
|
||||
}
|
||||
|
||||
// Toolbar
|
||||
// -------------------------
|
||||
.toolbar {
|
||||
position: fixed;
|
||||
font-size: @toolbarFontSize;
|
||||
min-width: 340px;
|
||||
z-index: 100;
|
||||
background-color: @toolbarTopColor;
|
||||
|
||||
display: flex;
|
||||
align-items: center;
|
||||
white-space: nowrap;
|
||||
|
||||
&.top {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
|
||||
.box-inner-shadow(0 -1px 0 @toolbarBorderColor);
|
||||
}
|
||||
|
||||
.group {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.item {
|
||||
input {
|
||||
font-size: inherit;
|
||||
padding: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text {
|
||||
cursor: default;
|
||||
}
|
||||
}
|
||||
|
||||
&.left {
|
||||
left: 0;
|
||||
padding-left: 10px;
|
||||
|
||||
.item {
|
||||
float: left;
|
||||
}
|
||||
|
||||
& > div {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
&.right {
|
||||
right: 0;
|
||||
padding-right: 10px;
|
||||
|
||||
.item {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
&.center {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
flex-grow: 1;
|
||||
overflow: hidden;
|
||||
padding: 0 20px;
|
||||
|
||||
#title-doc-name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.margin-right-small {
|
||||
margin-right: 8px;
|
||||
}
|
||||
.margin-right-large {
|
||||
margin-right: 12px;
|
||||
}
|
||||
.margin-left-small {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.margin-left-large {
|
||||
margin-left: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
// Logo
|
||||
// -------------------------
|
||||
.brand-logo {
|
||||
display: block;
|
||||
width: 100px;
|
||||
height: 20px;
|
||||
background: data-uri('../../../../common/main/resources/img/header/dark-logo_s.svg') no-repeat;
|
||||
}
|
||||
|
||||
.theme-type-dark {
|
||||
.brand-logo {
|
||||
background: data-uri('../../../../common/main/resources/img/header/header-logo_s.svg') no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-text-default {
|
||||
width: auto;
|
||||
&.colored {
|
||||
padding: 0 16px;
|
||||
height: 28px;
|
||||
background-color: @background-accent-button-ie;
|
||||
background-color: @background-accent-button;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 3px;
|
||||
color: @text-contrast-background-ie !important;
|
||||
color: @text-contrast-background !important;
|
||||
font-weight: 700;
|
||||
|
||||
&:hover:not(.disabled),
|
||||
.over:not(.disabled) {
|
||||
background-color: @highlight-accent-button-hover-ie !important;
|
||||
background-color: @highlight-accent-button-hover !important;
|
||||
}
|
||||
|
||||
&:active:not(.disabled),
|
||||
&.active:not(.disabled) {
|
||||
background-color: @highlight-accent-button-pressed-ie !important;
|
||||
background-color: @highlight-accent-button-pressed !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Overlay control
|
||||
// -------------------------
|
||||
.overlay-controls {
|
||||
position: absolute;
|
||||
bottom: 55px;
|
||||
z-index: 10;
|
||||
left: 50%;
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
margin: 0 auto;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
|
||||
&:first-child {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.overlay {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
background-color: black;
|
||||
border: 5px solid black;
|
||||
border-radius: 50%;
|
||||
outline: none;
|
||||
opacity: 0.3;
|
||||
|
||||
background-origin: content-box;
|
||||
padding: 1px 0 0 1px;
|
||||
|
||||
.box-shadow(0 0 0 2px rgba(255,255,255,0.3));
|
||||
|
||||
&:hover {
|
||||
opacity: .6;
|
||||
}
|
||||
|
||||
&.active, &:active {
|
||||
opacity: .8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Error mask
|
||||
// -------------------------
|
||||
.errormask {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
border: none;
|
||||
background-color: #f4f4f4;
|
||||
z-index: 30002;
|
||||
|
||||
.error-body {
|
||||
position: relative;
|
||||
top: 40%;
|
||||
width: 400px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #FFFFFF;
|
||||
border: 1px solid #C0C0C0;
|
||||
|
||||
.title {
|
||||
font-weight: bold;
|
||||
font-size: 1.6em;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Modals
|
||||
// -------------------------
|
||||
.share-buttons {
|
||||
ul {
|
||||
width: 244px;
|
||||
//height: 25px;
|
||||
list-style-type: none;
|
||||
margin: 5px 0 0;
|
||||
overflow: hidden;
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
margin: 1px 5px 0 0;
|
||||
vertical-align: middle;
|
||||
|
||||
&.share-mail {
|
||||
float: right;
|
||||
padding-right: 1px;
|
||||
margin: 0;
|
||||
|
||||
a {
|
||||
min-width: 64px;
|
||||
}
|
||||
|
||||
.glyphicon {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
&.share-twitter {
|
||||
max-width: 93px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.size-manual {
|
||||
margin-bottom: 10px;
|
||||
|
||||
.right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.caption {
|
||||
margin-top: 2px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
input {
|
||||
display: inline-block;
|
||||
font-size: 1em;
|
||||
padding: 0 4px;
|
||||
//border-radius: 0;
|
||||
margin: 0;
|
||||
margin-top: -1px;
|
||||
|
||||
&.input-xs {
|
||||
width: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.socnet-btn(@index) {
|
||||
background-position: -@icon-socnet-size*@index 0;
|
||||
|
||||
&:hover {
|
||||
background-position: -@icon-socnet-size*@index -@icon-socnet-size;
|
||||
}
|
||||
}
|
||||
|
||||
.svg {
|
||||
background: data-uri('../../../../common/forms/resources/img/icon-social-sprite.svg');
|
||||
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background-size: @icon-socnet-size*4 @icon-socnet-size*2;
|
||||
|
||||
&.big-facebook:hover {
|
||||
background-position: 0 -@icon-socnet-size;
|
||||
}
|
||||
|
||||
&.big-twitter { .socnet-btn(1); }
|
||||
&.big-gplus { .socnet-btn(2); }
|
||||
&.big-email { .socnet-btn(3); }
|
||||
}
|
||||
|
||||
@icon-width: 20px;
|
||||
@icon-height: 20px;
|
||||
|
||||
.theme-type-dark {
|
||||
@neg-value: -@icon-height;
|
||||
--icon-normal-top: @neg-value;
|
||||
}
|
||||
@icon-normal-top: var(--icon-normal-top, 0);
|
||||
|
||||
.svg-icon {
|
||||
background: data-uri('../../../../common/forms/resources/img/icon-menu-sprite.svg') no-repeat;
|
||||
background-size: @icon-width*29 @icon-height*2;
|
||||
|
||||
&.download {
|
||||
background-position: -@icon-width 0;
|
||||
background-position: -@icon-width @icon-normal-top;
|
||||
}
|
||||
&.share {
|
||||
background-position: -@icon-width*2 0;
|
||||
background-position: -@icon-width*2 @icon-normal-top;
|
||||
}
|
||||
&.embed {
|
||||
background-position: -@icon-width*3 0;
|
||||
background-position: -@icon-width*3 @icon-normal-top;
|
||||
}
|
||||
&.fullscr {
|
||||
background-position: -@icon-width*4 0;
|
||||
background-position: -@icon-width*4 @icon-normal-top;
|
||||
}
|
||||
&.zoom-in {
|
||||
background-position: -@icon-width*5 0;
|
||||
background-position: -@icon-width*5 @icon-normal-top;
|
||||
}
|
||||
&.zoom-out {
|
||||
background-position: -@icon-width*6 0;
|
||||
background-position: -@icon-width*6 @icon-normal-top;
|
||||
}
|
||||
&.zoom-up {
|
||||
background-position: -@icon-width*5 -@icon-height;
|
||||
}
|
||||
&.zoom-down {
|
||||
background-position: -@icon-width*6 -@icon-height;
|
||||
}
|
||||
&.slide-prev {
|
||||
background-position: -@icon-width*7 -@icon-height;
|
||||
}
|
||||
&.slide-next {
|
||||
background-position: -@icon-width*8 -@icon-height;
|
||||
}
|
||||
|
||||
&.play {
|
||||
background-position: -@icon-width*9 -@icon-height;
|
||||
}
|
||||
|
||||
&.pause {
|
||||
background-position: -@icon-width*10 -@icon-height;
|
||||
}
|
||||
|
||||
&.print {
|
||||
background-position: -@icon-width*11 0;
|
||||
background-position: -@icon-width*11 @icon-normal-top;
|
||||
}
|
||||
|
||||
&.arrow-up {
|
||||
background-position: -@icon-width*17 0;
|
||||
background-position: -@icon-width*17 @icon-normal-top;
|
||||
}
|
||||
&.arrow-down {
|
||||
background-position: -@icon-width*16 0;
|
||||
background-position: -@icon-width*16 @icon-normal-top;
|
||||
}
|
||||
&.clear-style {
|
||||
background-position: -@icon-width*12 0;
|
||||
background-position: -@icon-width*12 @icon-normal-top;
|
||||
}
|
||||
&.go-to-location {
|
||||
background-position: -@icon-width*15 0;
|
||||
background-position: -@icon-width*15 @icon-normal-top;
|
||||
}
|
||||
&.more-vertical {
|
||||
background-position: -@icon-width*14 0;
|
||||
background-position: -@icon-width*14 @icon-normal-top;
|
||||
}
|
||||
&.cut {
|
||||
background-position: -@icon-width*19 0;
|
||||
background-position: -@icon-width*19 @icon-normal-top;
|
||||
}
|
||||
&.copy {
|
||||
background-position: -@icon-width*20 0;
|
||||
background-position: -@icon-width*20 @icon-normal-top;
|
||||
}
|
||||
&.paste {
|
||||
background-position: -@icon-width*21 0;
|
||||
background-position: -@icon-width*21 @icon-normal-top;
|
||||
}
|
||||
&.undo {
|
||||
background-position: -@icon-width*22 0;
|
||||
background-position: -@icon-width*22 @icon-normal-top;
|
||||
}
|
||||
&.redo {
|
||||
background-position: -@icon-width*23 0;
|
||||
background-position: -@icon-width*23 @icon-normal-top;
|
||||
}
|
||||
&.search {
|
||||
background-position: -@icon-width*24 0;
|
||||
background-position: -@icon-width*24 @icon-normal-top;
|
||||
}
|
||||
&.btn-sheet-view {
|
||||
background-position: -@icon-width*25 0;
|
||||
background-position: -@icon-width*25 @icon-normal-top;
|
||||
}
|
||||
&.hide-password {
|
||||
background-position: -@icon-width*26 0;
|
||||
background-position: -@icon-width*26 @icon-normal-top;
|
||||
}
|
||||
&.search-close {
|
||||
background-position: -@icon-width*18 0;
|
||||
background-position: -@icon-width*18 @icon-normal-top;
|
||||
}
|
||||
&.search-arrow-up {
|
||||
background-position: -@icon-width*27 0;
|
||||
background-position: -@icon-width*27 @icon-normal-top;
|
||||
}
|
||||
&.search-arrow-down {
|
||||
background-position: -@icon-width*28 0;
|
||||
background-position: -@icon-width*28 @icon-normal-top;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
&.active, &:active {
|
||||
&:not(:disabled):not(.disabled) {
|
||||
.icon {
|
||||
@btn-active-icon-offset: -20px;
|
||||
background-position-y: @btn-active-icon-offset;
|
||||
background-position-y: var(--button-small-active-icon-offset-x, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mi-icon {
|
||||
width: @icon-width;
|
||||
height: @icon-height;
|
||||
float: left;
|
||||
margin: -3px 4px 0 -24px;
|
||||
}
|
||||
|
||||
.modal-dlg {
|
||||
textarea {
|
||||
.user-select(text);
|
||||
width: 100%;
|
||||
resize: none;
|
||||
margin-bottom: 5px;
|
||||
border: @scaled-one-px-value-ie solid @border-regular-control-ie;
|
||||
border: @scaled-one-px-value solid @border-regular-control;
|
||||
height: 100%;
|
||||
|
||||
&.disabled {
|
||||
opacity: @component-disabled-opacity;
|
||||
cursor: default !important;
|
||||
}
|
||||
}
|
||||
|
||||
label {
|
||||
.font-size-normal();
|
||||
font-weight: normal;
|
||||
|
||||
&.input-label{
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
&.header {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control[readonly] {
|
||||
cursor: auto;
|
||||
}
|
||||
|
||||
.share-buttons {
|
||||
height: 40px;
|
||||
text-align: center;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
margin: 0 7px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.masked {
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
.box-shadow(none);
|
||||
}
|
||||
|
||||
#pages {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
line-height: 22px;
|
||||
padding: 0 0 0 3px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#page-number {
|
||||
.masked {
|
||||
cursor: pointer;
|
||||
line-height: 22px;
|
||||
}
|
||||
}
|
||||
|
||||
.submit-tooltip {
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
top: 58px;
|
||||
right: 15px;
|
||||
|
||||
padding: 7px 15px;
|
||||
border-radius: 5px;
|
||||
background-color: @background-notification-popover-ie;
|
||||
background-color: @background-notification-popover;
|
||||
.box-shadow(0 4px 15px -2px rgba(0, 0, 0, 0.5));
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
.menu-zoom {
|
||||
line-height: @line-height-base;
|
||||
|
||||
.title {
|
||||
padding: 5px 5px 5px 28px;
|
||||
float: left;
|
||||
font-weight: normal;
|
||||
font-size: 11px;
|
||||
margin: 0px;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.zoom {
|
||||
padding: 5px 3px;
|
||||
float: right;
|
||||
min-width: 40px;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
font-size: 11px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
.mi-icon {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.font-size-small {
|
||||
.fontsize(@font-size-small);
|
||||
}
|
||||
|
||||
.font-size-normal {
|
||||
.fontsize(@font-size-base);
|
||||
}
|
||||
|
||||
.font-size-large {
|
||||
.fontsize(@font-size-large);
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
z-index: 50;
|
||||
}
|
||||
|
|
@ -40,7 +40,8 @@ Common.Locale = new(function() {
|
|||
var loadcallback,
|
||||
apply = false,
|
||||
defLang = '{{DEFAULT_LANG}}',
|
||||
currentLang = defLang;
|
||||
currentLang = defLang,
|
||||
_4letterLangs = ['pt-pt', 'zh-tw'];
|
||||
|
||||
var _applyLocalization = function(callback) {
|
||||
try {
|
||||
|
|
@ -87,6 +88,10 @@ Common.Locale = new(function() {
|
|||
return currentLang;
|
||||
};
|
||||
|
||||
var _getDefaultLanguage = function() {
|
||||
return defLang;
|
||||
};
|
||||
|
||||
var _getLoadedLanguage = function() {
|
||||
return loadedLang;
|
||||
};
|
||||
|
|
@ -98,12 +103,18 @@ Common.Locale = new(function() {
|
|||
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
|
||||
};
|
||||
|
||||
var _requireLang = function () {
|
||||
var lang = (_getUrlParameterByName('lang') || defLang).split(/[\-_]/)[0];
|
||||
var _requireLang = function (l) {
|
||||
typeof l != 'string' && (l = null);
|
||||
var lang = (l || _getUrlParameterByName('lang') || defLang);
|
||||
var idx4Letters = _4letterLangs.indexOf(lang.replace('_', '-').toLowerCase()); // try to load 4 letters language
|
||||
lang = (idx4Letters<0) ? lang.split(/[\-_]/)[0] : _4letterLangs[idx4Letters];
|
||||
currentLang = lang;
|
||||
fetch('locale/' + lang + '.json')
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
if (idx4Letters>=0) { // try to load 2-letters language
|
||||
throw new Error('4letters error');
|
||||
}
|
||||
currentLang = defLang;
|
||||
if (lang != defLang)
|
||||
/* load default lang if fetch failed */
|
||||
|
|
@ -127,6 +138,18 @@ Common.Locale = new(function() {
|
|||
l10n = json || {};
|
||||
apply && _applyLocalization();
|
||||
}).catch(function(e) {
|
||||
if ( /4letters/.test(e) ) {
|
||||
return setTimeout(function(){
|
||||
_requireLang(lang.split(/[\-_]/)[0]);
|
||||
}, 0);
|
||||
}
|
||||
|
||||
if ( !/loaded/.test(e) && currentLang != defLang && defLang && defLang.length < 3 ) {
|
||||
return setTimeout(function(){
|
||||
_requireLang(defLang)
|
||||
}, 0);
|
||||
}
|
||||
|
||||
l10n = l10n || {};
|
||||
apply && _applyLocalization();
|
||||
if ( e.message == 'loaded' ) {
|
||||
|
|
@ -151,7 +174,8 @@ Common.Locale = new(function() {
|
|||
return {
|
||||
apply: _applyLocalization,
|
||||
get: _get,
|
||||
getCurrentLanguage: _getCurrentLanguage
|
||||
getCurrentLanguage: _getCurrentLanguage,
|
||||
getDefaultLanguage: _getDefaultLanguage
|
||||
};
|
||||
|
||||
})();
|
||||
|
|
|
|||
|
|
@ -48,12 +48,6 @@ define([
|
|||
'common/main/lib/model/Font'
|
||||
], function(Backbone){ 'use strict';
|
||||
Common.Collections.Fonts = Backbone.Collection.extend({
|
||||
model: Common.Models.Font,
|
||||
comparator: function(item1, item2) {
|
||||
var n1 = item1.get('name').toLowerCase(),
|
||||
n2 = item2.get('name').toLowerCase();
|
||||
if (n1==n2) return 0;
|
||||
return (n1<n2) ? -1 : 1;
|
||||
}
|
||||
model: Common.Models.Font
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -64,10 +64,18 @@ define([
|
|||
return this.filter(function(item){return item.get('online') && !item.get('view')}).length;
|
||||
},
|
||||
|
||||
getVisibleEditingCount: function() {
|
||||
return this.filter(function(item){return item.get('online') && !item.get('view') && !item.get('hidden')}).length;
|
||||
},
|
||||
|
||||
getEditingOriginalCount: function() {
|
||||
return this.chain().filter(function(item){return item.get('online') && !item.get('view')}).groupBy(function(item) {return item.get('idOriginal');}).size().value();
|
||||
},
|
||||
|
||||
getVisibleEditingOriginalCount: function() {
|
||||
return this.chain().filter(function(item){return item.get('online') && !item.get('view') && !item.get('hidden')}).groupBy(function(item) {return item.get('idOriginal');}).size().value();
|
||||
},
|
||||
|
||||
findUser: function(id) {
|
||||
return this.find(
|
||||
function(model){
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ define([
|
|||
'<% } %>';
|
||||
|
||||
var templateHugeCaption =
|
||||
'<button type="button" class="btn <%= cls %>" id="<%= id %>" > ' +
|
||||
'<button type="button" class="btn <%= cls %>" id="<%= id %>" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>" <% if (dataHintTitle) { %> data-hint-title="<%= dataHintTitle %>" <% } %>> ' +
|
||||
'<div class="inner-box-icon">' +
|
||||
templateBtnIcon +
|
||||
'</div>' +
|
||||
|
|
@ -205,13 +205,15 @@ define([
|
|||
|
||||
var templateHugeMenuCaption =
|
||||
'<div class="btn-group icon-top" id="<%= id %>" style="<%= style %>">' +
|
||||
'<button type="button" class="btn dropdown-toggle <%= cls %>" data-toggle="dropdown">' +
|
||||
'<button type="button" class="btn dropdown-toggle <%= cls %>" data-toggle="dropdown" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>" <% if (dataHintTitle) { %> data-hint-title="<%= dataHintTitle %>" <% } %>>' +
|
||||
'<div class="inner-box-icon">' +
|
||||
templateBtnIcon +
|
||||
'</div>' +
|
||||
'<div class="inner-box-caption">' +
|
||||
'<span class="caption"><%= caption %></span>' +
|
||||
'<i class="caret"></i>' +
|
||||
'<span class="caption"><%= caption %>' +
|
||||
'<i class="caret"></i>' +
|
||||
'</span>' +
|
||||
'<i class="caret compact-caret"></i>' +
|
||||
'</div>' +
|
||||
'</button>' +
|
||||
'</div>';
|
||||
|
|
@ -223,14 +225,40 @@ define([
|
|||
templateBtnIcon +
|
||||
'</span>' +
|
||||
'</button>' +
|
||||
'<button type="button" class="btn <%= cls %> inner-box-caption dropdown-toggle" data-toggle="dropdown">' +
|
||||
'<button type="button" class="btn <%= cls %> inner-box-caption dropdown-toggle" data-toggle="dropdown" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>" <% if (dataHintTitle) { %> data-hint-title="<%= dataHintTitle %>" <% } %>>' +
|
||||
'<span class="btn-fixflex-vcenter">' +
|
||||
'<span class="caption"><%= caption %></span>' +
|
||||
'<i class="caret"></i>' +
|
||||
'<span class="caption"><%= caption %>' +
|
||||
'<i class="caret"></i>' +
|
||||
'</span>' +
|
||||
'<i class="caret compact-caret"></i>' +
|
||||
'</span>' +
|
||||
'</button>' +
|
||||
'</div>';
|
||||
|
||||
var getWidthOfCaption = function (txt) {
|
||||
var el = document.createElement('span');
|
||||
el.style.fontSize = '11px';
|
||||
el.style.fontFamily = 'Arial, Helvetica, "Helvetica Neue", sans-serif';
|
||||
el.style.position = "absolute";
|
||||
el.style.top = '-1000px';
|
||||
el.style.left = '-1000px';
|
||||
el.innerHTML = txt;
|
||||
document.body.appendChild(el);
|
||||
var result = el.offsetWidth;
|
||||
document.body.removeChild(el);
|
||||
return result;
|
||||
};
|
||||
|
||||
var getShortText = function (txt, max) {
|
||||
var lastIndex = txt.length - 1,
|
||||
word = txt;
|
||||
while (getWidthOfCaption(word) > max) {
|
||||
word = txt.slice(0, lastIndex).trim() + '...';
|
||||
lastIndex--;
|
||||
}
|
||||
return word;
|
||||
};
|
||||
|
||||
Common.UI.Button = Common.UI.BaseView.extend({
|
||||
options : {
|
||||
id : null,
|
||||
|
|
@ -245,7 +273,10 @@ define([
|
|||
disabled : false,
|
||||
pressed : false,
|
||||
split : false,
|
||||
visible : true
|
||||
visible : true,
|
||||
dataHint : '',
|
||||
dataHintDirection: '',
|
||||
dataHintOffset: '0, 0'
|
||||
},
|
||||
|
||||
template: _.template([
|
||||
|
|
@ -261,13 +292,13 @@ define([
|
|||
'}} %>',
|
||||
'<% } %>',
|
||||
'<% if ( !menu ) { %>',
|
||||
'<button type="button" class="btn <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<button type="button" class="btn <%= cls %>" id="<%= id %>" style="<%= style %>" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>" <% if (dataHintTitle) { %> data-hint-title="<%= dataHintTitle %>" <% } %>>',
|
||||
'<% applyicon() %>',
|
||||
'<span class="caption"><%= caption %></span>',
|
||||
'</button>',
|
||||
'<% } else if (split == false) {%>',
|
||||
'<div class="btn-group" id="<%= id %>" style="<%= style %>">',
|
||||
'<button type="button" class="btn dropdown-toggle <%= cls %>" data-toggle="dropdown">',
|
||||
'<button type="button" class="btn dropdown-toggle <%= cls %>" data-toggle="dropdown" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>" <% if (dataHintTitle) { %> data-hint-title="<%= dataHintTitle %>" <% } %>>',
|
||||
'<% applyicon() %>',
|
||||
'<span class="caption"><%= caption %></span>',
|
||||
'<span class="inner-box-caret">' +
|
||||
|
|
@ -281,7 +312,7 @@ define([
|
|||
'<% applyicon() %>',
|
||||
'<span class="caption"><%= caption %></span>',
|
||||
'</button>',
|
||||
'<button type="button" class="btn <%= cls %> dropdown-toggle" data-toggle="dropdown">',
|
||||
'<button type="button" class="btn <%= cls %> dropdown-toggle" data-toggle="dropdown" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>" <% if (dataHintTitle) { %> data-hint-title="<%= dataHintTitle %>" <% } %>>',
|
||||
'<i class="caret"></i>',
|
||||
'<span class="sr-only"></span>',
|
||||
'</button>',
|
||||
|
|
@ -317,6 +348,37 @@ define([
|
|||
me.render(me.options.parentEl);
|
||||
},
|
||||
|
||||
getCaptionWithBreaks: function (caption) {
|
||||
var words = caption.split(' '),
|
||||
newCaption = null,
|
||||
maxWidth = 85 - 4;
|
||||
if (words.length > 1) {
|
||||
maxWidth = !!this.menu || this.split === true ? maxWidth - 10 : maxWidth;
|
||||
if (words.length < 3) {
|
||||
words[1] = getShortText(words[1], maxWidth);
|
||||
newCaption = words[0] + '<br>' + words[1];
|
||||
} else {
|
||||
if (getWidthOfCaption(words[0] + ' ' + words[1]) < maxWidth) { // first and second words in first line
|
||||
words[2] = getShortText(words[2], maxWidth);
|
||||
newCaption = words[0] + ' ' + words[1] + '<br>' + words[2];
|
||||
} else if (getWidthOfCaption(words[1] + ' ' + words[2]) < maxWidth) { // second and third words in second line
|
||||
words[2] = getShortText(words[2], maxWidth);
|
||||
newCaption = words[0] + '<br>' + words[1] + ' ' + words[2];
|
||||
} else {
|
||||
words[1] = getShortText(words[1] + ' ' + words[2], maxWidth);
|
||||
newCaption = words[0] + '<br>' + words[1];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var width = getWidthOfCaption(caption);
|
||||
newCaption = width < maxWidth ? caption : getShortText(caption, maxWidth);
|
||||
if (!!this.menu || this.split === true) {
|
||||
newCaption += '<br>';
|
||||
}
|
||||
}
|
||||
return newCaption;
|
||||
},
|
||||
|
||||
render: function(parentEl) {
|
||||
var me = this;
|
||||
|
||||
|
|
@ -338,6 +400,10 @@ define([
|
|||
} else {
|
||||
this.template = _.template(templateHugeCaption);
|
||||
}
|
||||
var newCaption = this.getCaptionWithBreaks(this.caption);
|
||||
if (newCaption) {
|
||||
me.caption = newCaption;
|
||||
}
|
||||
}
|
||||
|
||||
me.cmpEl = $(this.template({
|
||||
|
|
@ -350,7 +416,11 @@ define([
|
|||
disabled : me.disabled,
|
||||
pressed : me.pressed,
|
||||
caption : me.caption,
|
||||
style : me.style
|
||||
style : me.style,
|
||||
dataHint : me.options.dataHint,
|
||||
dataHintDirection: me.options.dataHintDirection,
|
||||
dataHintOffset: me.options.dataHintOffset,
|
||||
dataHintTitle: me.options.dataHintTitle
|
||||
}));
|
||||
|
||||
if (me.menu && _.isObject(me.menu) && _.isFunction(me.menu.render))
|
||||
|
|
@ -741,15 +811,19 @@ define([
|
|||
|
||||
setCaption: function(caption) {
|
||||
if (this.caption != caption) {
|
||||
this.caption = caption;
|
||||
if ( /icon-top/.test(this.cls) && !!this.caption && /huge/.test(this.cls) ) {
|
||||
var newCaption = this.getCaptionWithBreaks(caption);
|
||||
this.caption = newCaption || caption;
|
||||
} else
|
||||
this.caption = caption;
|
||||
|
||||
if (this.rendered) {
|
||||
var captionNode = this.cmpEl.find('.caption');
|
||||
|
||||
if (captionNode.length > 0) {
|
||||
captionNode.text(caption);
|
||||
captionNode.html(this.caption);
|
||||
} else {
|
||||
this.cmpEl.find('button:first').addBack().filter('button').text(caption);
|
||||
this.cmpEl.find('button:first').addBack().filter('button').html(this.caption);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -456,6 +456,13 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
focus: function () {
|
||||
var me = this;
|
||||
me.enableKeyEvents && me.monthPicker && _.delay(function() {
|
||||
me.monthPicker.focus();
|
||||
}, 10);
|
||||
},
|
||||
|
||||
textJanuary: 'January',
|
||||
textFebruary: 'February',
|
||||
textMarch: 'March',
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ define([
|
|||
value : 'unchecked',
|
||||
|
||||
template : _.template('<label class="checkbox-indeterminate"><input id="<%= id %>" type="checkbox" class="checkbox__native">' +
|
||||
'<label for="<%= id %>" class="checkbox__shape"></label><span></span></label>'),
|
||||
'<label for="<%= id %>" class="checkbox__shape" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>"></label><span></span></label>'),
|
||||
|
||||
initialize : function(options) {
|
||||
Common.UI.BaseView.prototype.initialize.call(this, options);
|
||||
|
|
@ -108,7 +108,10 @@ define([
|
|||
var me = this;
|
||||
if (!me.rendered) {
|
||||
var elem = this.template({
|
||||
id: Common.UI.getId('chb-')
|
||||
id: Common.UI.getId('chb-'),
|
||||
dataHint: me.options.dataHint,
|
||||
dataHintDirection: me.options.dataHintDirection,
|
||||
dataHintOffset: me.options.dataHintOffset
|
||||
});
|
||||
if (parentEl) {
|
||||
this.setElement(parentEl, false);
|
||||
|
|
|
|||
|
|
@ -39,7 +39,166 @@ define([
|
|||
], function () {
|
||||
'use strict';
|
||||
|
||||
Common.UI.ColorButton = Common.UI.Button.extend(_.extend({
|
||||
Common.UI.ButtonColored = Common.UI.Button.extend(_.extend({
|
||||
render: function(parentEl) {
|
||||
Common.UI.Button.prototype.render.call(this, parentEl);
|
||||
|
||||
$('button:first-child', this.cmpEl).append( $('<div class="btn-color-value-line"></div>'));
|
||||
this.colorEl = this.cmpEl.find('.btn-color-value-line');
|
||||
|
||||
if (this.options.auto)
|
||||
this.autocolor = (typeof this.options.auto == 'object') ? this.options.auto.color || '000000' : '000000';
|
||||
|
||||
if (this.options.color!==undefined)
|
||||
this.setColor(this.options.color);
|
||||
},
|
||||
|
||||
getPicker: function(color, colors) {
|
||||
if (!this.colorPicker) {
|
||||
var config = {
|
||||
el: this.cmpEl.find('#' + this.menu.id + '-color-menu'),
|
||||
value: color,
|
||||
colors: colors
|
||||
};
|
||||
(this.options.transparent!==undefined) && (config['transparent'] = this.options.transparent);
|
||||
(this.options.hideEmptyColors!==undefined) && (config['hideEmptyColors'] = this.options.hideEmptyColors);
|
||||
|
||||
this.colorPicker = new Common.UI.ThemeColorPalette(config);
|
||||
this.colorPicker.on('select', _.bind(this.onColorSelect, this));
|
||||
this.cmpEl.find('#' + this.menu.id + '-color-new').on('click', _.bind(this.addNewColor, this));
|
||||
if (this.options.auto) {
|
||||
this.cmpEl.find('#' + this.menu.id + '-color-auto').on('click', _.bind(this.onAutoColorSelect, this));
|
||||
this.colorAuto = this.cmpEl.find('#' + this.menu.id + '-color-auto > a');
|
||||
(color == 'auto') && this.setAutoColor(true);
|
||||
}
|
||||
this.initInnerMenu();
|
||||
}
|
||||
return this.colorPicker;
|
||||
},
|
||||
|
||||
setPicker: function(picker) {
|
||||
this.colorPicker = picker;
|
||||
},
|
||||
|
||||
getMenu: function(options) {
|
||||
if (typeof this.menu !== 'object') {
|
||||
options = options || this.options;
|
||||
var height = options.paletteHeight ? options.paletteHeight + 'px' : 'auto',
|
||||
id = Common.UI.getId(),
|
||||
auto = [];
|
||||
if (options.auto) {
|
||||
this.autocolor = (typeof options.auto == 'object') ? options.auto.color || '000000' : '000000';
|
||||
auto.push({
|
||||
id: id + '-color-auto',
|
||||
caption: (typeof options.auto == 'object') ? options.auto.caption || this.textAutoColor : this.textAutoColor,
|
||||
template: _.template('<a tabindex="-1" type="menuitem"><span class="menu-item-icon color-auto" style="background-image: none; width: 12px; height: 12px; margin: 1px 7px 0 1px; background-color: #' + this.autocolor + ';"></span><%= caption %></a>')
|
||||
});
|
||||
auto.push({caption: '--'});
|
||||
}
|
||||
|
||||
var menu = new Common.UI.Menu({
|
||||
id: id,
|
||||
cls: 'shifted-left',
|
||||
additionalAlign: options.additionalAlign,
|
||||
items: (options.additionalItems ? options.additionalItems : []).concat(auto).concat([
|
||||
{ template: _.template('<div id="' + id + '-color-menu" style="width: 164px; height:' + height + '; display: inline-block;"></div>') },
|
||||
{caption: '--'},
|
||||
{
|
||||
id: id + '-color-new',
|
||||
template: _.template('<a tabindex="-1" type="menuitem" style="">' + this.textNewColor + '</a>')
|
||||
}
|
||||
])
|
||||
});
|
||||
this.initInnerMenu();
|
||||
var me = this;
|
||||
menu.on('keydown:before', _.bind(this.onBeforeKeyDown, this));
|
||||
menu.on('show:after', function(menu) {
|
||||
me.colorPicker && _.delay(function() {
|
||||
me.colorPicker.showLastSelected();
|
||||
!(options.additionalItems || options.auto) && me.colorPicker.focus();
|
||||
}, 10);
|
||||
}).on('hide:after', function() {
|
||||
if (me.options.takeFocusOnClose) {
|
||||
setTimeout(function(){me.focus();}, 1);
|
||||
}
|
||||
});
|
||||
return menu;
|
||||
}
|
||||
return this.menu;
|
||||
},
|
||||
|
||||
initInnerMenu: function() {
|
||||
if (!this.colorPicker || typeof this.menu !== 'object') return;
|
||||
|
||||
var index = (this.options.additionalItems || []).length + (this.options.auto ? 2 : 0);
|
||||
this.colorPicker.outerMenu = {menu: this.menu, index: index};
|
||||
this.menu.setInnerMenu([{menu: this.colorPicker, index: index}]);
|
||||
},
|
||||
|
||||
setMenu: function (m) {
|
||||
m = m || this.getMenu();
|
||||
Common.UI.Button.prototype.setMenu.call(this, m);
|
||||
this.getPicker(this.options.color, this.options.colors);
|
||||
},
|
||||
|
||||
onColorSelect: function(picker, color) {
|
||||
this.setColor(color);
|
||||
this.setAutoColor(false);
|
||||
this.trigger('color:select', this, color);
|
||||
},
|
||||
|
||||
setColor: function(color) {
|
||||
if (color == 'auto' && this.options.auto)
|
||||
color = this.autocolor;
|
||||
this.color = color;
|
||||
|
||||
if (this.colorEl) {
|
||||
this.colorEl.css({'background-color': (color=='transparent') ? color : ((typeof(color) == 'object') ? '#'+color.color : '#'+color)});
|
||||
this.colorEl.toggleClass('bordered', color=='transparent');
|
||||
}
|
||||
},
|
||||
|
||||
setAutoColor: function(selected) {
|
||||
if (!this.colorAuto) return;
|
||||
if (selected && !this.colorAuto.hasClass('selected'))
|
||||
this.colorAuto.addClass('selected');
|
||||
else if (!selected && this.colorAuto.hasClass('selected'))
|
||||
this.colorAuto.removeClass('selected');
|
||||
},
|
||||
|
||||
isAutoColor: function() {
|
||||
return this.colorAuto && this.colorAuto.hasClass('selected');
|
||||
},
|
||||
|
||||
onAutoColorSelect: function() {
|
||||
this.setColor('auto');
|
||||
this.setAutoColor(true);
|
||||
this.colorPicker && this.colorPicker.clearSelection();
|
||||
this.trigger('auto:select', this, this.autocolor);
|
||||
},
|
||||
|
||||
addNewColor: function() {
|
||||
this.colorPicker && this.colorPicker.addNewColor((typeof(this.color) == 'object') ? this.color.color : this.color);
|
||||
},
|
||||
|
||||
onBeforeKeyDown: function(menu, e) {
|
||||
if ((e.keyCode == Common.UI.Keys.DOWN || e.keyCode == Common.UI.Keys.SPACE) && !this.isMenuOpen()) {
|
||||
$('button', this.cmpEl).click();
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
isMenuOpen: function() {
|
||||
return this.cmpEl.hasClass('open');
|
||||
},
|
||||
|
||||
textNewColor: 'Add New Custom Color',
|
||||
textAutoColor: 'Automatic'
|
||||
|
||||
}, Common.UI.ButtonColored || {}));
|
||||
|
||||
|
||||
Common.UI.ColorButton = Common.UI.ButtonColored.extend(_.extend({
|
||||
options : {
|
||||
id : null,
|
||||
hint : false,
|
||||
|
|
@ -58,7 +217,7 @@ define([
|
|||
|
||||
template: _.template([
|
||||
'<div class="btn-group" id="<%= id %>">',
|
||||
'<button type="button" class="btn btn-color dropdown-toggle <%= cls %>" data-toggle="dropdown" style="<%= style %>">',
|
||||
'<button type="button" class="btn btn-color dropdown-toggle <%= cls %>" data-toggle="dropdown" style="<%= style %>" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">',
|
||||
'<span> </span>',
|
||||
'<span class="inner-box-caret">',
|
||||
'<i class="caret"></i>',
|
||||
|
|
@ -90,12 +249,6 @@ define([
|
|||
this.setColor(this.options.color);
|
||||
},
|
||||
|
||||
onColorSelect: function(picker, color) {
|
||||
this.setColor(color);
|
||||
this.setAutoColor(false);
|
||||
this.trigger('color:select', this, color);
|
||||
},
|
||||
|
||||
setColor: function(color) {
|
||||
if (color == 'auto' && this.options.auto)
|
||||
color = this.autocolor;
|
||||
|
|
@ -106,105 +259,9 @@ define([
|
|||
span.css({'background-color': (color=='transparent') ? color : ((typeof(color) == 'object') ? '#'+color.color : '#'+color)});
|
||||
},
|
||||
|
||||
getPicker: function(color, colors) {
|
||||
if (!this.colorPicker) {
|
||||
this.colorPicker = new Common.UI.ThemeColorPalette({
|
||||
el: this.cmpEl.find('#' + this.menu.id + '-color-menu'),
|
||||
transparent: this.options.transparent,
|
||||
value: color,
|
||||
colors: colors
|
||||
});
|
||||
this.colorPicker.on('select', _.bind(this.onColorSelect, this));
|
||||
this.cmpEl.find('#' + this.menu.id + '-color-new').on('click', _.bind(this.addNewColor, this));
|
||||
if (this.options.auto) {
|
||||
this.cmpEl.find('#' + this.menu.id + '-color-auto').on('click', _.bind(this.onAutoColorSelect, this));
|
||||
this.colorAuto = this.cmpEl.find('#' + this.menu.id + '-color-auto > a');
|
||||
(color == 'auto') && this.setAutoColor(true);
|
||||
}
|
||||
}
|
||||
return this.colorPicker;
|
||||
},
|
||||
|
||||
getMenu: function(options) {
|
||||
if (typeof this.menu !== 'object') {
|
||||
options = options || this.options;
|
||||
var height = options.paletteHeight || 216,
|
||||
id = Common.UI.getId(),
|
||||
auto = [];
|
||||
if (options.auto) {
|
||||
this.autocolor = (typeof options.auto == 'object') ? options.auto.color || '000000' : '000000';
|
||||
auto.push({
|
||||
id: id + '-color-auto',
|
||||
caption: (typeof options.auto == 'object') ? options.auto.caption || this.textAutoColor : this.textAutoColor,
|
||||
template: _.template('<a tabindex="-1" type="menuitem"><span class="menu-item-icon color-auto" style="background-image: none; width: 12px; height: 12px; margin: 1px 7px 0 1px; background-color: #' + this.autocolor + ';"></span><%= caption %></a>')
|
||||
});
|
||||
auto.push({caption: '--'});
|
||||
}
|
||||
|
||||
var menu = new Common.UI.Menu({
|
||||
id: id,
|
||||
cls: 'shifted-left',
|
||||
additionalAlign: options.additionalAlign,
|
||||
items: (options.additionalItems ? options.additionalItems : []).concat(auto).concat([
|
||||
{ template: _.template('<div id="' + id + '-color-menu" style="width: 169px; height:' + height + 'px; margin: 10px;"></div>') },
|
||||
{ template: _.template('<a id="' + id + '-color-new" style="">' + this.textNewColor + '</a>') }
|
||||
])
|
||||
});
|
||||
return menu;
|
||||
}
|
||||
return this.menu;
|
||||
},
|
||||
|
||||
setMenu: function (m) {
|
||||
m = m || this.getMenu();
|
||||
Common.UI.Button.prototype.setMenu.call(this, m);
|
||||
this.getPicker(this.options.color, this.options.colors);
|
||||
},
|
||||
|
||||
addNewColor: function() {
|
||||
this.colorPicker && this.colorPicker.addNewColor((typeof(this.color) == 'object') ? this.color.color : this.color);
|
||||
},
|
||||
|
||||
onAutoColorSelect: function() {
|
||||
this.setColor('auto');
|
||||
this.setAutoColor(true);
|
||||
this.colorPicker && this.colorPicker.clearSelection();
|
||||
this.trigger('auto:select', this, this.autocolor);
|
||||
},
|
||||
|
||||
setAutoColor: function(selected) {
|
||||
if (!this.colorAuto) return;
|
||||
if (selected && !this.colorAuto.hasClass('selected'))
|
||||
this.colorAuto.addClass('selected');
|
||||
else if (!selected && this.colorAuto.hasClass('selected'))
|
||||
this.colorAuto.removeClass('selected');
|
||||
},
|
||||
|
||||
isAutoColor: function() {
|
||||
return this.colorAuto && this.colorAuto.hasClass('selected');
|
||||
},
|
||||
|
||||
textNewColor: 'Add New Custom Color',
|
||||
textAutoColor: 'Automatic'
|
||||
|
||||
}, Common.UI.ColorButton || {}));
|
||||
|
||||
|
||||
Common.UI.ButtonColored = Common.UI.Button.extend(_.extend({
|
||||
render: function(parentEl) {
|
||||
Common.UI.Button.prototype.render.call(this, parentEl);
|
||||
|
||||
$('button:first-child', this.cmpEl).append( $('<div class="btn-color-value-line"></div>'));
|
||||
this.colorEl = this.cmpEl.find('.btn-color-value-line');
|
||||
},
|
||||
|
||||
setColor: function(color) {
|
||||
if (this.colorEl) {
|
||||
this.colorEl.css({'background-color': (color=='transparent') ? color : ((typeof(color) == 'object') ? '#'+color.color : '#'+color)});
|
||||
this.colorEl.toggleClass('bordered', color=='transparent');
|
||||
}
|
||||
focus: function() {
|
||||
$('button', this.cmpEl).focus();
|
||||
}
|
||||
|
||||
}, Common.UI.ButtonColored || {}));
|
||||
|
||||
}, Common.UI.ColorButton || {}));
|
||||
});
|
||||
|
|
@ -77,7 +77,7 @@ define([
|
|||
Common.UI.ComboBorderSize = Common.UI.ComboBox.extend(_.extend({
|
||||
template: _.template([
|
||||
'<div class="input-group combobox combo-border-size input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<div class="form-control" style="<%= style %>">',
|
||||
'<div class="form-control" style="<%= style %>" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">',
|
||||
'<i class="image"></i>',
|
||||
'<span class="text"></span>',
|
||||
'</div>',
|
||||
|
|
@ -122,6 +122,7 @@ define([
|
|||
|
||||
render : function(parentEl) {
|
||||
Common.UI.ComboBox.prototype.render.call(this, parentEl);
|
||||
this._formControl = this.cmpEl.find('.form-control');
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
@ -172,13 +173,17 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
focus: function() {
|
||||
this._formControl && this._formControl.focus();
|
||||
},
|
||||
|
||||
txtNoBorders: 'No Borders'
|
||||
}, Common.UI.ComboBorderSize || {}));
|
||||
|
||||
Common.UI.ComboBorderSizeEditable = Common.UI.ComboBox.extend(_.extend({
|
||||
template: _.template([
|
||||
'<span class="input-group combobox combo-border-size input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<input type="text" class="form-control text">',
|
||||
'<input type="text" class="form-control text" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">',
|
||||
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
|
||||
'<span class="caret"></span>',
|
||||
'</button>',
|
||||
|
|
@ -230,7 +235,7 @@ define([
|
|||
Common.UI.ComboBorderType = Common.UI.ComboBorderSize.extend(_.extend({
|
||||
template: _.template([
|
||||
'<div class="input-group combobox combo-border-size input-group-nr <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<div class="form-control" style="<%= style %>">',
|
||||
'<div class="form-control" style="<%= style %>" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">',
|
||||
'<i class="image"></i>',
|
||||
'</div>',
|
||||
'<div style="display: table-cell;"></div>',
|
||||
|
|
@ -272,8 +277,24 @@ define([
|
|||
},
|
||||
|
||||
updateFormControl: function(record) {
|
||||
$(this.el).find('.form-control > .image')
|
||||
.css('background-position', '10px -' + record.get('offsety') + 'px');
|
||||
if (record)
|
||||
$(this.el).find('.form-control > .image')
|
||||
.css('background-position', '10px -' + record.get('offsety') + 'px').show();
|
||||
else
|
||||
$(this.el).find('.form-control > .image').hide();
|
||||
},
|
||||
|
||||
setValue: function(value) {
|
||||
this._selectedItem = (value===null || value===undefined) ? undefined : _.find(this.store.models, function(item) {
|
||||
if ( value<item.attributes.value+0.01 && value>item.attributes.value-0.01) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
$('.selected', $(this.el)).removeClass('selected');
|
||||
|
||||
this.updateFormControl(this._selectedItem);
|
||||
this._selectedItem && $('#' + this._selectedItem.get('id'), $(this.el)).addClass('selected');
|
||||
}
|
||||
}, Common.UI.ComboBorderType || {}));
|
||||
|
||||
|
|
|
|||
|
|
@ -87,12 +87,15 @@ define([
|
|||
valueField : 'value',
|
||||
search : false,
|
||||
scrollAlwaysVisible: false,
|
||||
takeFocusOnClose: false
|
||||
takeFocusOnClose: false,
|
||||
dataHint: '',
|
||||
dataHintDirection: '',
|
||||
dataHintOffset: ''
|
||||
},
|
||||
|
||||
template: _.template([
|
||||
'<span class="input-group combobox <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<input type="text" class="form-control" spellcheck="false">',
|
||||
'<input type="text" class="form-control" spellcheck="false" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">',
|
||||
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
|
||||
'<span class="caret"></span>',
|
||||
'</button>',
|
||||
|
|
@ -147,7 +150,10 @@ define([
|
|||
menuCls : this.menuCls,
|
||||
menuStyle : this.menuStyle,
|
||||
items : items,
|
||||
scope : me
|
||||
scope : me,
|
||||
dataHint : this.options.dataHint,
|
||||
dataHintDirection: this.options.dataHintDirection,
|
||||
dataHintOffset: this.options.dataHintOffset
|
||||
}));
|
||||
if (this.itemsTemplate)
|
||||
this.cmpEl.find('ul').html(
|
||||
|
|
@ -184,6 +190,7 @@ define([
|
|||
el.on('click', '.form-control', _.bind(this.onInputClick, this));
|
||||
this._input.attr('readonly', 'readonly');
|
||||
this._input.attr('data-can-copy', false);
|
||||
this._input.on('mousedown',function (e){e.preventDefault();})
|
||||
}
|
||||
|
||||
if (me.options.hint) {
|
||||
|
|
@ -351,6 +358,9 @@ define([
|
|||
Common.NotificationCenter.trigger('menu:hide', this, isFromInputControl);
|
||||
if (this.options.takeFocusOnClose) {
|
||||
var me = this;
|
||||
(me._input && me._input.length>0 && !me.editable) && (me._input[0].selectionStart===me._input[0].selectionEnd) && setTimeout(function() {
|
||||
me._input[0].selectionStart = me._input[0].selectionEnd = 0;
|
||||
},1);
|
||||
setTimeout(function(){me.focus();}, 1);
|
||||
}
|
||||
},
|
||||
|
|
@ -538,6 +548,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
|
||||
if (!this.rendered)
|
||||
|
|
|
|||
|
|
@ -49,24 +49,29 @@ define([
|
|||
'use strict';
|
||||
|
||||
Common.UI.ComboBoxFonts = Common.UI.ComboBox.extend((function() {
|
||||
var iconWidth = 302,
|
||||
iconHeight = Asc.FONT_THUMBNAIL_HEIGHT || 26,
|
||||
var iconWidth = 300,
|
||||
iconHeight = Asc.FONT_THUMBNAIL_HEIGHT || 28,
|
||||
thumbCanvas = document.createElement('canvas'),
|
||||
thumbContext = thumbCanvas.getContext('2d'),
|
||||
postfix = (/^(zh|ja|ko)$/i.test(Common.Locale.getCurrentLanguage())) ? '_ea' : '',
|
||||
thumbs = [
|
||||
{ratio: 1, path: '../../../../sdkjs/common/Images/fonts_thumbnail.png', width: iconWidth, height: iconHeight},
|
||||
{ratio: 1.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail@1.5x.png', width: iconWidth * 1.5, height: iconHeight * 1.5},
|
||||
{ratio: 2, path: '../../../../sdkjs/common/Images/fonts_thumbnail@2x.png', width: iconWidth * 2, height: iconHeight * 2}
|
||||
{ratio: 1, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '.png', width: iconWidth, height: iconHeight},
|
||||
{ratio: 1.25, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@1.25x.png', width: iconWidth * 1.25, height: iconHeight * 1.25},
|
||||
{ratio: 1.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@1.5x.png', width: iconWidth * 1.5, height: iconHeight * 1.5},
|
||||
{ratio: 1.75, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@1.75x.png', width: iconWidth * 1.75, height: iconHeight * 1.75},
|
||||
{ratio: 2, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@2x.png', width: iconWidth * 2, height: iconHeight * 2}
|
||||
],
|
||||
thumbIdx = 0,
|
||||
listItemHeight = 26,
|
||||
listItemHeight = 28,
|
||||
spriteCols = 1,
|
||||
applicationPixelRatio = Common.Utils.applicationPixelRatio();
|
||||
|
||||
if (typeof window['AscDesktopEditor'] === 'object') {
|
||||
thumbs[0].path = window['AscDesktopEditor'].getFontsSprite('');
|
||||
thumbs[1].path = window['AscDesktopEditor'].getFontsSprite('@1.5x');
|
||||
thumbs[2].path = window['AscDesktopEditor'].getFontsSprite('@2x');
|
||||
if ( Common.Controllers.Desktop.isActive() ) {
|
||||
thumbs[0].path = Common.Controllers.Desktop.call('getFontsSprite');
|
||||
thumbs[1].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.25x');
|
||||
thumbs[2].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.5x');
|
||||
thumbs[3].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.75x');
|
||||
thumbs[4].path = Common.Controllers.Desktop.call('getFontsSprite', '@2x');
|
||||
}
|
||||
|
||||
var bestDistance = Math.abs(applicationPixelRatio-thumbs[0].ratio);
|
||||
|
|
@ -83,10 +88,205 @@ define([
|
|||
thumbCanvas.height = thumbs[thumbIdx].height;
|
||||
thumbCanvas.width = thumbs[thumbIdx].width;
|
||||
|
||||
function CThumbnailLoader() {
|
||||
this.supportBinaryFormat = !(Common.Controllers.Desktop.isActive() && !Common.Controllers.Desktop.isFeatureAvailable('isSupportBinaryFontsSprite'));
|
||||
// наш формат - альфамаска с сжатием типа rle для полностью прозрачных пикселов
|
||||
|
||||
this.image = null;
|
||||
this.binaryFormat = null;
|
||||
this.data = null;
|
||||
this.width = 0;
|
||||
this.height = 0;
|
||||
this.heightOne = 0;
|
||||
this.count = 0;
|
||||
this.offsets = null;
|
||||
|
||||
this.load = function(url, callback) {
|
||||
if (!callback)
|
||||
return;
|
||||
|
||||
if (!this.supportBinaryFormat) {
|
||||
this.width = thumbs[thumbIdx].width;
|
||||
this.heightOne = thumbs[thumbIdx].height;
|
||||
|
||||
this.image = new Image();
|
||||
this.image.onload = callback;
|
||||
this.image.src = thumbs[thumbIdx].path;
|
||||
} else {
|
||||
var me = this;
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url + ".bin", true);
|
||||
xhr.responseType = 'arraybuffer';
|
||||
|
||||
if (xhr.overrideMimeType)
|
||||
xhr.overrideMimeType('text/plain; charset=x-user-defined');
|
||||
else
|
||||
xhr.setRequestHeader('Accept-Charset', 'x-user-defined');
|
||||
|
||||
xhr.onload = function() {
|
||||
// TODO: check errors
|
||||
me.binaryFormat = new Uint8Array(this.response);
|
||||
callback();
|
||||
};
|
||||
|
||||
xhr.send(null);
|
||||
}
|
||||
};
|
||||
|
||||
this.openBinary = function(arrayBuffer) {
|
||||
//var t1 = performance.now();
|
||||
|
||||
var binaryAlpha = this.binaryFormat;
|
||||
this.width = (binaryAlpha[0] << 24) | (binaryAlpha[1] << 16) | (binaryAlpha[2] << 8) | (binaryAlpha[3] << 0);
|
||||
this.heightOne = (binaryAlpha[4] << 24) | (binaryAlpha[5] << 16) | (binaryAlpha[6] << 8) | (binaryAlpha[7] << 0);
|
||||
this.count = (binaryAlpha[8] << 24) | (binaryAlpha[9] << 16) | (binaryAlpha[10] << 8) | (binaryAlpha[11] << 0);
|
||||
this.height = this.count * this.heightOne;
|
||||
|
||||
var MAX_MEMORY_SIZE = 50000000;
|
||||
var memorySize = 4 * this.width * this.height;
|
||||
var isOffsets = (memorySize > MAX_MEMORY_SIZE) ? true : false;
|
||||
|
||||
if (!isOffsets)
|
||||
this.data = new Uint8ClampedArray(memorySize);
|
||||
else
|
||||
this.offsets = new Array(this.count);
|
||||
|
||||
var binaryIndex = 12;
|
||||
var binaryLen = binaryAlpha.length;
|
||||
var index = 0;
|
||||
|
||||
var len0 = 0;
|
||||
var tmpValue = 0;
|
||||
|
||||
if (!isOffsets) {
|
||||
var imagePixels = this.data;
|
||||
while (binaryIndex < binaryLen) {
|
||||
tmpValue = binaryAlpha[binaryIndex++];
|
||||
if (0 == tmpValue) {
|
||||
len0 = binaryAlpha[binaryIndex++];
|
||||
while (len0 > 0) {
|
||||
len0--;
|
||||
imagePixels[index] = imagePixels[index + 1] = imagePixels[index + 2] = 255;
|
||||
imagePixels[index + 3] = 0; // this value is already 0.
|
||||
index += 4;
|
||||
}
|
||||
} else {
|
||||
imagePixels[index] = imagePixels[index + 1] = imagePixels[index + 2] = 255 - tmpValue;
|
||||
imagePixels[index + 3] = tmpValue;
|
||||
index += 4;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var module = this.width * this.heightOne;
|
||||
var moduleCur = module - 1;
|
||||
while (binaryIndex < binaryLen) {
|
||||
tmpValue = binaryAlpha[binaryIndex++];
|
||||
if (0 == tmpValue) {
|
||||
len0 = binaryAlpha[binaryIndex++];
|
||||
while (len0 > 0) {
|
||||
len0--;
|
||||
moduleCur++;
|
||||
if (moduleCur === module) {
|
||||
this.offsets[index++] = { pos : binaryIndex, len : len0 + 1 };
|
||||
moduleCur = 0;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
moduleCur++;
|
||||
if (moduleCur === module) {
|
||||
this.offsets[index++] = { pos : binaryIndex - 1, len : -1 };
|
||||
moduleCur = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.offsets)
|
||||
delete this.binaryFormat;
|
||||
|
||||
//var t2 = performance.now();
|
||||
//console.log(t2 - t1);
|
||||
};
|
||||
|
||||
this.getImage = function(index, canvas, ctx) {
|
||||
|
||||
//var t1 = performance.now();
|
||||
if (!canvas)
|
||||
{
|
||||
canvas = document.createElement("canvas");
|
||||
canvas.width = this.width;
|
||||
canvas.height = this.heightOne;
|
||||
canvas.style.width = iconWidth + "px";
|
||||
canvas.style.height = iconHeight + "px";
|
||||
|
||||
ctx = canvas.getContext("2d");
|
||||
}
|
||||
|
||||
if (this.supportBinaryFormat) {
|
||||
if (!this.data && !this.offsets) {
|
||||
this.openBinary(this.binaryFormat);
|
||||
}
|
||||
|
||||
var dataTmp = ctx.createImageData(this.width, this.heightOne);
|
||||
var sizeImage = 4 * this.width * this.heightOne;
|
||||
|
||||
if (!this.offsets) {
|
||||
dataTmp.data.set(new Uint8ClampedArray(this.data.buffer, index * sizeImage, sizeImage));
|
||||
} else {
|
||||
var binaryAlpha = this.binaryFormat;
|
||||
var binaryIndex = this.offsets[index].pos;
|
||||
var alphaChannel = 0;
|
||||
var pixelsCount = this.width * this.heightOne;
|
||||
var tmpValue = 0, len0 = 0;
|
||||
var imagePixels = dataTmp.data;
|
||||
if (-1 != this.offsets[index].len) {
|
||||
/*
|
||||
// this values is already 0.
|
||||
for (var i = 0; i < this.offsets[index].len; i++) {
|
||||
pixels[alphaChannel] = 0;
|
||||
alphaChannel += 4;
|
||||
}
|
||||
*/
|
||||
alphaChannel += 4 * this.offsets[index].len;
|
||||
}
|
||||
while (pixelsCount > 0) {
|
||||
tmpValue = binaryAlpha[binaryIndex++];
|
||||
if (0 == tmpValue) {
|
||||
len0 = binaryAlpha[binaryIndex++];
|
||||
if (len0 > pixelsCount)
|
||||
len0 = pixelsCount;
|
||||
while (len0 > 0) {
|
||||
len0--;
|
||||
imagePixels[alphaChannel] = imagePixels[alphaChannel + 1] = imagePixels[alphaChannel + 2] = 255;
|
||||
imagePixels[alphaChannel + 3] = 0; // this value is already 0.
|
||||
alphaChannel += 4;
|
||||
pixelsCount--;
|
||||
}
|
||||
} else {
|
||||
imagePixels[alphaChannel] = imagePixels[alphaChannel + 1] = imagePixels[alphaChannel + 2] = 255 - tmpValue;
|
||||
imagePixels[alphaChannel + 3] = tmpValue;
|
||||
alphaChannel += 4;
|
||||
pixelsCount--;
|
||||
}
|
||||
}
|
||||
}
|
||||
ctx.putImageData(dataTmp, 0, 0);
|
||||
} else {
|
||||
ctx.clearRect(0, 0, this.width, this.heightOne);
|
||||
ctx.drawImage(this.image, 0, -this.heightOne * index);
|
||||
}
|
||||
|
||||
//var t2 = performance.now();
|
||||
//console.log(t2 - t1);
|
||||
|
||||
return canvas;
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
template: _.template([
|
||||
'<div class="input-group combobox fonts <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||
'<input type="text" class="form-control" spellcheck="false"> ',
|
||||
'<input type="text" class="form-control" spellcheck="false" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>"> ',
|
||||
'<div style="display: table-cell;"></div>',
|
||||
'<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown"><span class="caret"></span></button>',
|
||||
'<ul class="dropdown-menu <%= menuCls %>" style="<%= menuStyle %>" role="menu">',
|
||||
|
|
@ -177,6 +377,7 @@ define([
|
|||
},
|
||||
|
||||
onInputKeyUp: function(e) {
|
||||
if (!this._isKeyDown) return;
|
||||
if (e.keyCode != Common.UI.Keys.RETURN && e.keyCode !== Common.UI.Keys.SHIFT &&
|
||||
e.keyCode !== Common.UI.Keys.CTRL && e.keyCode !== Common.UI.Keys.ALT &&
|
||||
e.keyCode !== Common.UI.Keys.LEFT && e.keyCode !== Common.UI.Keys.RIGHT &&
|
||||
|
|
@ -208,9 +409,11 @@ define([
|
|||
}, 10);
|
||||
}
|
||||
}
|
||||
this._isKeyDown = false;
|
||||
},
|
||||
|
||||
onInputKeyDown: function(e) {
|
||||
this._isKeyDown = true;
|
||||
this._inInputKeyDown = (new Date());
|
||||
var me = this;
|
||||
|
||||
|
|
@ -221,8 +424,10 @@ define([
|
|||
me.onAfterHideMenu(e);
|
||||
}, 10);
|
||||
} else if (e.keyCode != Common.UI.Keys.RETURN && e.keyCode != Common.UI.Keys.CTRL && e.keyCode != Common.UI.Keys.SHIFT && e.keyCode != Common.UI.Keys.ALT && e.keyCode != Common.UI.Keys.TAB){
|
||||
if (!this.isMenuOpen() && !e.ctrlKey)
|
||||
if (!this.isMenuOpen() && !e.ctrlKey) {
|
||||
this.openMenu();
|
||||
(this.recent > 0) && this.flushVisibleFontsTiles();
|
||||
}
|
||||
|
||||
if (e.keyCode == Common.UI.Keys.UP || e.keyCode == Common.UI.Keys.DOWN) {
|
||||
_.delay(function() {
|
||||
|
|
@ -295,10 +500,8 @@ define([
|
|||
return img != null ? img[0].src : undefined;
|
||||
}
|
||||
|
||||
thumbContext.clearRect(0, 0, thumbs[thumbIdx].width, thumbs[thumbIdx].height);
|
||||
thumbContext.drawImage(this.spriteThumbs, 0, -thumbs[thumbIdx].height * Math.floor(opts.imgidx/spriteCols));
|
||||
|
||||
return thumbCanvas.toDataURL();
|
||||
var index = Math.floor(opts.imgidx/spriteCols);
|
||||
return this.spriteThumbs.getImage(index, thumbCanvas, thumbContext).toDataURL();
|
||||
},
|
||||
|
||||
getImageWidth: function() {
|
||||
|
|
@ -314,11 +517,8 @@ define([
|
|||
},
|
||||
|
||||
loadSprite: function(callback) {
|
||||
if (callback) {
|
||||
this.spriteThumbs = new Image();
|
||||
this.spriteThumbs.onload = callback;
|
||||
this.spriteThumbs.src = thumbs[thumbIdx].path;
|
||||
}
|
||||
this.spriteThumbs = new CThumbnailLoader();
|
||||
this.spriteThumbs.load(thumbs[thumbIdx].path, callback);
|
||||
},
|
||||
|
||||
fillFonts: function(store, select) {
|
||||
|
|
@ -447,6 +647,7 @@ define([
|
|||
this.trigger('show:after', this, e);
|
||||
this.flushVisibleFontsTiles();
|
||||
this.updateVisibleFontsTiles(null, 0);
|
||||
Common.Utils.isGecko && this.scroller && this.scroller.update();
|
||||
} else {
|
||||
Common.UI.ComboBox.prototype.onAfterShowMenu.apply(this, arguments);
|
||||
}
|
||||
|
|
@ -543,19 +744,8 @@ define([
|
|||
for (j = 0; j < storeCount; ++j) {
|
||||
if (from <= j && j < to) {
|
||||
if (null === me.tiles[j]) {
|
||||
var fontImage = document.createElement('canvas');
|
||||
var context = fontImage.getContext('2d');
|
||||
|
||||
fontImage.height = thumbs[thumbIdx].height;
|
||||
fontImage.width = thumbs[thumbIdx].width;
|
||||
|
||||
fontImage.style.width = iconWidth + 'px';
|
||||
fontImage.style.height = iconHeight + 'px';
|
||||
|
||||
index = Math.floor(me.store.at(j).get('imgidx')/spriteCols);
|
||||
|
||||
context.clearRect(0, 0, thumbs[thumbIdx].width, thumbs[thumbIdx].height);
|
||||
context.drawImage(me.spriteThumbs, 0, -thumbs[thumbIdx].height * index);
|
||||
var fontImage = me.spriteThumbs.getImage(index);
|
||||
|
||||
me.tiles[j] = fontImage;
|
||||
$(listItems[j]).get(0).appendChild(fontImage);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,10 @@ define([
|
|||
beforeOpenHandler : null,
|
||||
additionalMenuItems : null,
|
||||
showLast: true,
|
||||
minWidth: -1
|
||||
minWidth: -1,
|
||||
dataHint: '',
|
||||
dataHintDirection: '',
|
||||
dataHintOffset: ''
|
||||
},
|
||||
|
||||
template: _.template([
|
||||
|
|
@ -78,6 +81,7 @@ define([
|
|||
this.style = this.options.style;
|
||||
this.hint = this.options.hint;
|
||||
this.store = this.options.store || new Common.UI.DataViewStore();
|
||||
this.groups = this.options.groups;
|
||||
this.itemWidth = this.options.itemWidth;
|
||||
this.itemHeight = this.options.itemHeight;
|
||||
this.menuMaxHeight = this.options.menuMaxHeight;
|
||||
|
|
@ -88,18 +92,21 @@ define([
|
|||
this.rendered = false;
|
||||
this.needFillComboView = false;
|
||||
this.minWidth = this.options.minWidth;
|
||||
this.delayRenderTips = this.options.delayRenderTips || false;
|
||||
this.itemTemplate = this.options.itemTemplate || _.template([
|
||||
'<div class="style" id="<%= id %>">',
|
||||
'<img src="<%= imageUrl %>" width="' + this.itemWidth + '" height="' + this.itemHeight + '" + <% if(typeof imageUrl === "undefined" || imageUrl===null || imageUrl==="") { %> style="visibility: hidden;" <% } %>/>',
|
||||
'<% if (typeof title !== "undefined") {%>',
|
||||
'<span class="title"><%= title %></span>',
|
||||
'<% } %>',
|
||||
'</div>'
|
||||
].join(''));
|
||||
|
||||
this.fieldPicker = new Common.UI.DataView({
|
||||
cls: 'field-picker',
|
||||
allowScrollbar: false,
|
||||
itemTemplate : _.template([
|
||||
'<div class="style" id="<%= id %>">',
|
||||
'<img src="<%= imageUrl %>" width="' + this.itemWidth + '" height="' + this.itemHeight + '"/>',
|
||||
'<% if (typeof title !== "undefined") {%>',
|
||||
'<span class="title"><%= title %></span>',
|
||||
'<% } %>',
|
||||
'</div>'
|
||||
].join(''))
|
||||
itemTemplate : this.itemTemplate,
|
||||
delayRenderTips: this.delayRenderTips
|
||||
});
|
||||
|
||||
this.openButton = new Common.UI.Button({
|
||||
|
|
@ -109,31 +116,30 @@ define([
|
|||
offset: [0, 3],
|
||||
items: [
|
||||
{template: _.template('<div class="menu-picker-container"></div>')}
|
||||
]
|
||||
})
|
||||
].concat(this.options.additionalMenuItems != null ? this.options.additionalMenuItems : [])
|
||||
}),
|
||||
dataHint: this.options.dataHint,
|
||||
dataHintDirection: this.options.dataHintDirection,
|
||||
dataHintOffset: this.options.dataHintOffset
|
||||
});
|
||||
|
||||
if (this.options.additionalMenuItems != null) {
|
||||
this.openButton.menu.items = this.openButton.menu.items.concat(this.options.additionalMenuItems)
|
||||
}
|
||||
|
||||
this.menuPicker = new Common.UI.DataView({
|
||||
cls: 'menu-picker',
|
||||
parentMenu: this.openButton.menu,
|
||||
outerMenu: this.options.additionalMenuItems ? {menu: this.openButton.menu, index: 0} : undefined,
|
||||
restoreHeight: this.menuMaxHeight,
|
||||
style: 'max-height: '+this.menuMaxHeight+'px;',
|
||||
enableKeyEvents: this.options.enableKeyEvents,
|
||||
groups: this.groups,
|
||||
store: this.store,
|
||||
itemTemplate : _.template([
|
||||
'<div class="style" id="<%= id %>">',
|
||||
'<img src="<%= imageUrl %>" width="' + this.itemWidth + '" height="' + this.itemHeight + '"/>',
|
||||
'<% if (typeof title !== "undefined") {%>',
|
||||
'<span class="title"><%= title %></span>',
|
||||
'<% } %>',
|
||||
'</div>'
|
||||
].join(''))
|
||||
itemTemplate : this.itemTemplate,
|
||||
delayRenderTips: this.delayRenderTips
|
||||
});
|
||||
|
||||
if (this.options.additionalMenuItems != null) {
|
||||
this.openButton.menu.setInnerMenu([{menu: this.menuPicker, index: 0}]);
|
||||
}
|
||||
|
||||
// Handle resize
|
||||
setInterval(_.bind(this.checkSize, this), 500);
|
||||
|
||||
|
|
@ -208,6 +214,9 @@ define([
|
|||
|
||||
me.trigger('render:after', me);
|
||||
}
|
||||
if (this.disabled) {
|
||||
this.setDisabled(!!this.disabled);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
|
@ -235,9 +244,10 @@ define([
|
|||
onResize: function() {
|
||||
if (this.openButton) {
|
||||
var button = $('button', this.openButton.cmpEl);
|
||||
button && button.css({
|
||||
width : $('.button', this.cmpEl).width(),
|
||||
height: $('.button', this.cmpEl).height()
|
||||
var cntButton = $('.button', this.cmpEl);
|
||||
button && cntButton.width() > 0 && button.css({
|
||||
width : cntButton.width(),
|
||||
height: cntButton.height()
|
||||
});
|
||||
|
||||
this.openButton.menu.hide();
|
||||
|
|
@ -245,6 +255,7 @@ define([
|
|||
var picker = this.menuPicker;
|
||||
if (picker) {
|
||||
var record = picker.getSelectedRec();
|
||||
this.itemMarginLeft = undefined;
|
||||
this.fillComboView(record || picker.store.at(0), !!record, true);
|
||||
|
||||
picker.onResize();
|
||||
|
|
@ -370,6 +381,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
|
||||
if (!this.rendered)
|
||||
|
|
@ -404,6 +416,9 @@ define([
|
|||
if (forceFill || !me.fieldPicker.store.findWhere({'id': record.get('id')})){
|
||||
if (me.itemMarginLeft===undefined) {
|
||||
var div = $($(this.menuPicker.el).find('.inner > div:not(.grouped-data):not(.ps-scrollbar-x-rail):not(.ps-scrollbar-y-rail)')[0]);
|
||||
if (!div || div.length<1) { // try to find items in groups
|
||||
div = $($(this.menuPicker.el).find('.inner .group-items-container > div:not(.grouped-data):not(.ps-scrollbar-x-rail):not(.ps-scrollbar-y-rail)')[0]);
|
||||
}
|
||||
if (div.length > 0) {
|
||||
me.itemMarginLeft = parseInt(div.css('margin-left'));
|
||||
me.itemMarginRight = parseInt(div.css('margin-right'));
|
||||
|
|
@ -444,6 +459,7 @@ define([
|
|||
me.resumeEvents();
|
||||
}
|
||||
}
|
||||
return me.fieldPicker.store.models; // return list of visible items
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
490
apps/common/main/lib/component/ComboDataViewShape.js
Normal file
|
|
@ -0,0 +1,490 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* ComboDataView.js
|
||||
*
|
||||
* Created by Julia Svinareva on 6/10/21
|
||||
* Copyright (c) 2021 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
if (Common === undefined)
|
||||
var Common = {};
|
||||
|
||||
define([
|
||||
'common/main/lib/component/BaseView',
|
||||
'common/main/lib/component/DataView'
|
||||
], function () {
|
||||
'use strict';
|
||||
|
||||
Common.UI.ComboDataViewShape = Common.UI.BaseView.extend({
|
||||
options : {
|
||||
id : null,
|
||||
cls : '',
|
||||
style : '',
|
||||
hint : false,
|
||||
itemWidth : 80,
|
||||
itemHeight : 40,
|
||||
menuMaxHeight : 300,
|
||||
enableKeyEvents : false,
|
||||
additionalMenuItems : null,
|
||||
minWidth: -1,
|
||||
dataHint: '',
|
||||
dataHintDirection: '',
|
||||
dataHintOffset: ''
|
||||
},
|
||||
|
||||
template: _.template([
|
||||
'<div id="<%= id %>" class="combo-dataview <%= cls %>" style="<%= style %>">',
|
||||
'<div class="view"></div> ',
|
||||
'<div class="button"></div> ',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
||||
initialize : function(options) {
|
||||
Common.UI.BaseView.prototype.initialize.call(this, options);
|
||||
|
||||
var filter = Common.localStorage.getKeysFilter();
|
||||
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||
|
||||
this.id = this.options.id || Common.UI.getId();
|
||||
this.cls = this.options.cls;
|
||||
this.style = this.options.style;
|
||||
this.hint = this.options.hint;
|
||||
this.store = this.options.store || new Common.UI.DataViewStore();
|
||||
this.itemWidth = this.options.itemWidth;
|
||||
this.itemHeight = this.options.itemHeight;
|
||||
this.menuMaxHeight = this.options.menuMaxHeight;
|
||||
this.menuWidth = this.options.menuWidth;
|
||||
this.rootWidth = 0;
|
||||
this.rootHeight = 0;
|
||||
this.rendered = false;
|
||||
this.needFillComboView = false;
|
||||
this.minWidth = this.options.minWidth;
|
||||
this.delayRenderTips = this.options.delayRenderTips || false;
|
||||
|
||||
this.fieldPicker = new Common.UI.DataView({
|
||||
cls: 'field-picker',
|
||||
allowScrollbar: false,
|
||||
itemTemplate: _.template('<div class="item-shape" id="<%= id %>" data-shape="<%= data.shapeType %>"><svg width="20" height="20" class=\"icon\"><use xlink:href=\"#svg-icon-<%= data.shapeType %>\"></use></svg></div>'),
|
||||
delayRenderTips: this.delayRenderTips
|
||||
});
|
||||
|
||||
this.openButton = new Common.UI.Button({
|
||||
cls: 'open-menu',
|
||||
menu: new Common.UI.Menu({
|
||||
cls: 'menu-insert-shape',
|
||||
menuAlign: 'tl-tl',
|
||||
offset: [0, 3],
|
||||
items: [
|
||||
{template: _.template('<div class="menu-picker-container"></div>')}
|
||||
]
|
||||
}),
|
||||
dataHint: this.options.dataHint,
|
||||
dataHintDirection: this.options.dataHintDirection,
|
||||
dataHintOffset: this.options.dataHintOffset
|
||||
});
|
||||
|
||||
// Handle resize
|
||||
setInterval(_.bind(this.checkSize, this), 500);
|
||||
|
||||
if (this.options.el) {
|
||||
this.render();
|
||||
}
|
||||
},
|
||||
|
||||
fillComboView: function (collection) {
|
||||
var groups = collection.toJSON(),
|
||||
recents = Common.localStorage.getItem(this.appPrefix + 'recent-shapes');
|
||||
recents = recents ? JSON.parse(recents) : [];
|
||||
|
||||
// check lang
|
||||
if (recents.length > 0) {
|
||||
var isTranslated = _.findWhere(groups, {groupName: recents[0].groupName});
|
||||
if (!isTranslated) {
|
||||
for (var r = 0; r < recents.length; r++) {
|
||||
var type = recents[r].data.shapeType,
|
||||
record;
|
||||
for (var g = 0; g < groups.length; g++) {
|
||||
var store = groups[g].groupStore,
|
||||
groupName = groups[g].groupName;
|
||||
for (var i = 0; i < store.length; i++) {
|
||||
if (store.at(i).get('data').shapeType === type) {
|
||||
record = store.at(i).toJSON();
|
||||
recents[r] = {
|
||||
data: record.data,
|
||||
tip: record.tip,
|
||||
allowSelected: record.allowSelected,
|
||||
selected: false,
|
||||
groupName: groupName
|
||||
};
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (record) {
|
||||
record = undefined;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Common.localStorage.setItem(this.appPrefix + 'recent-shapes', JSON.stringify(recents));
|
||||
}
|
||||
}
|
||||
|
||||
if (recents.length < 12) {
|
||||
var count = 12 - recents.length;
|
||||
|
||||
var addItem = function (rec) {
|
||||
var item = rec.toJSON(),
|
||||
model = {
|
||||
data: item.data,
|
||||
tip: item.tip,
|
||||
allowSelected: item.allowSelected,
|
||||
selected: false
|
||||
};
|
||||
recents.push(model);
|
||||
};
|
||||
|
||||
for (var j = 0; j < groups.length && count > 0; j++) {
|
||||
var groupStore = groups[j].groupStore;
|
||||
if (j === 0) {
|
||||
addItem(groupStore.at(1));
|
||||
count--;
|
||||
if (count > 0) {
|
||||
addItem(groupStore.at(2));
|
||||
count--;
|
||||
}
|
||||
} else if (j !== 3 && j !== 6 && j !== 7) {
|
||||
addItem(groupStore.at(0));
|
||||
count--;
|
||||
if (count > 0) {
|
||||
addItem(groupStore.at(1));
|
||||
count--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.fieldPicker.store.reset(recents);
|
||||
|
||||
this.fieldPicker.on('item:select', _.bind(this.onFieldPickerSelect, this));
|
||||
this.fieldPicker.on('item:click', _.bind(this.onFieldPickerClick, this));
|
||||
this.fieldPicker.on('item:contextmenu', _.bind(this.onPickerItemContextMenu, this));
|
||||
this.fieldPicker.el.addEventListener('contextmenu', _.bind(this.onPickerComboContextMenu, this), false);
|
||||
},
|
||||
|
||||
setMenuPicker: function (collection, recent, text) {
|
||||
this.menuPicker = new Common.UI.DataViewShape({
|
||||
el: this.cmpEl.find('.menu-picker-container'),
|
||||
cls: 'menu-picker',
|
||||
parentMenu: this.openButton.menu,
|
||||
restoreHeight: this.menuMaxHeight,
|
||||
style: 'max-height: '+this.menuMaxHeight+'px;',
|
||||
itemTemplate : _.template('<div class="item-shape" id="<%= id %>"><svg width="20" height="20" class=\"icon\"><use xlink:href=\"#svg-icon-<%= data.shapeType %>\"></use></svg></div>'),
|
||||
groups: collection,
|
||||
textRecentlyUsed: text,
|
||||
recentShapes: recent
|
||||
});
|
||||
|
||||
this.menuPicker.on('item:select', _.bind(this.onMenuPickerSelect, this));
|
||||
this.menuPicker.on('item:click', _.bind(this.onMenuPickerClick, this));
|
||||
this.menuPicker.on('item:contextmenu', _.bind(this.onPickerItemContextMenu, this));
|
||||
this.menuPicker.el.addEventListener('contextmenu', _.bind(this.onPickerComboContextMenu, this), false);
|
||||
|
||||
this.onResize();
|
||||
},
|
||||
|
||||
render: function(parentEl) {
|
||||
if (!this.rendered) {
|
||||
var me = this;
|
||||
|
||||
me.trigger('render:before', me);
|
||||
|
||||
me.cmpEl = me.$el || $(me.el);
|
||||
|
||||
var templateEl = me.template({
|
||||
id : me.id,
|
||||
cls : me.cls,
|
||||
style : me.style
|
||||
});
|
||||
|
||||
if (parentEl) {
|
||||
me.setElement(parentEl, false);
|
||||
|
||||
me.cmpEl = $(templateEl);
|
||||
|
||||
parentEl.html(me.cmpEl);
|
||||
} else {
|
||||
me.cmpEl.html(templateEl);
|
||||
}
|
||||
|
||||
me.rootWidth = me.cmpEl.width();
|
||||
me.rootHeight = me.cmpEl.height();
|
||||
|
||||
me.fieldPicker.render($('.view', me.cmpEl));
|
||||
me.openButton.render($('.button', me.cmpEl));
|
||||
//me.menuPicker.render($('.menu-picker-container', me.cmpEl));
|
||||
|
||||
if (me.openButton.menu.cmpEl) {
|
||||
if (me.openButton.menu.cmpEl) {
|
||||
me.openButton.menu.menuAlignEl = me.cmpEl;
|
||||
me.openButton.menu.cmpEl.css('min-width', me.itemWidth);
|
||||
me.openButton.menu.on('show:before', _.bind(me.onBeforeShowMenu, me));
|
||||
me.openButton.menu.on('show:after', _.bind(me.onAfterShowMenu, me));
|
||||
me.openButton.cmpEl.on('hide.bs.dropdown', _.bind(me.onBeforeHideMenu, me));
|
||||
me.openButton.cmpEl.on('hidden.bs.dropdown', _.bind(me.onAfterHideMenu, me));
|
||||
}
|
||||
}
|
||||
|
||||
if (me.options.hint) {
|
||||
me.cmpEl.attr('data-toggle', 'tooltip');
|
||||
me.cmpEl.tooltip({
|
||||
title : me.options.hint,
|
||||
placement : me.options.hintAnchor || 'cursor'
|
||||
});
|
||||
}
|
||||
|
||||
//me.onResize();
|
||||
|
||||
me.rendered = true;
|
||||
|
||||
me.trigger('render:after', me);
|
||||
}
|
||||
if (this.disabled) {
|
||||
this.setDisabled(!!this.disabled);
|
||||
}
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
updateComboView: function (record) {
|
||||
var store = this.fieldPicker.store,
|
||||
type = record.get('data').shapeType,
|
||||
model = null;
|
||||
for (var i = 0; i < store.length; i++) {
|
||||
if (store.at(i).get('data').shapeType === type) {
|
||||
model = store.at(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!model) {
|
||||
store.pop();
|
||||
store.unshift([record]);
|
||||
}
|
||||
},
|
||||
|
||||
activateRecord: function (record) {
|
||||
var type = record.get('data').shapeType;
|
||||
if (this.isRecordActive)
|
||||
this.deactivateRecords();
|
||||
$(this.cmpEl.find("[data-shape='" + type + "']")).parent().addClass('active');
|
||||
this.isRecordActive = true;
|
||||
},
|
||||
|
||||
deactivateRecords: function () {
|
||||
$(this.cmpEl.find('.field-picker .item')).removeClass('active');
|
||||
},
|
||||
|
||||
isComboViewRecActive: function () {
|
||||
return this.isRecordActive;
|
||||
},
|
||||
|
||||
checkSize: function() {
|
||||
if (this.cmpEl && this.cmpEl.is(':visible')) {
|
||||
var me = this,
|
||||
width = this.cmpEl.width(),
|
||||
height = this.cmpEl.height();
|
||||
|
||||
if (width < this.minWidth) return;
|
||||
|
||||
if (this.rootWidth != width || this.rootHeight != height) {
|
||||
this.rootWidth = width;
|
||||
this.rootHeight = height;
|
||||
setTimeout(function() {
|
||||
me.openButton.menu.cmpEl.outerWidth();
|
||||
me.rootWidth = me.cmpEl.width();
|
||||
}, 10);
|
||||
this.onResize();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onResize: function() {
|
||||
if (this.openButton) {
|
||||
var button = $('button', this.openButton.cmpEl);
|
||||
var cntButton = $('.button', this.cmpEl);
|
||||
button && cntButton.width() > 0 && button.css({
|
||||
width : cntButton.width(),
|
||||
height: cntButton.height()
|
||||
});
|
||||
|
||||
this.openButton.menu.hide();
|
||||
|
||||
/*var picker = this.menuPicker;
|
||||
if (picker) {
|
||||
var record = picker.getSelectedRec();
|
||||
this.fillComboView(record || picker.store.at(0), !!record, true);
|
||||
|
||||
picker.onResize();
|
||||
}*/
|
||||
}
|
||||
|
||||
if (!this.isSuspendEvents)
|
||||
this.trigger('resize', this);
|
||||
},
|
||||
|
||||
onBeforeShowMenu: function(e) {
|
||||
var menu = this.openButton.menu;
|
||||
if (menu.cmpEl) {
|
||||
menu.menuAlignEl = this.cmpEl;
|
||||
var offset = this.cmpEl.width() - this.openButton.$el.width() - this.menuWidth + 1;
|
||||
menu.setOffset(Math.min(offset, 0));
|
||||
}
|
||||
|
||||
if (this.options.hint) {
|
||||
var tip = this.cmpEl.data('bs.tooltip');
|
||||
if (tip) {
|
||||
if (tip.dontShow===undefined)
|
||||
tip.dontShow = true;
|
||||
tip.hide();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onBeforeHideMenu: function(e) {
|
||||
this.trigger('hide:before', this, e);
|
||||
|
||||
if (Common.UI.Scroller.isMouseCapture())
|
||||
e.preventDefault();
|
||||
|
||||
if (this.isStylesNotClosable)
|
||||
return false;
|
||||
},
|
||||
|
||||
onAfterShowMenu: function(e) {
|
||||
var me = this;
|
||||
if (me.menuPicker.scroller) {
|
||||
me.menuPicker.scroller.update({
|
||||
includePadding: true,
|
||||
suppressScrollX: true,
|
||||
alwaysVisibleY: true
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
onAfterHideMenu: function(e, isFromInputControl) {
|
||||
this.menuPicker.selectedBeforeHideRec = this.menuPicker.getSelectedRec(); // for DataView - onKeyDown - Return key
|
||||
this.menuPicker.deselectAll();
|
||||
this.trigger('hide:after', this, e, isFromInputControl);
|
||||
},
|
||||
|
||||
onFieldPickerSelect: function(picker, item, record) {
|
||||
//
|
||||
},
|
||||
|
||||
onMenuPickerSelect: function(picker, item, record, fromKeyDown) {
|
||||
this.needFillComboView = this.disabled;
|
||||
if (this.disabled || fromKeyDown===true) return;
|
||||
|
||||
/*this.fillComboView(record, false);
|
||||
if (record && !this.isSuspendEvents)
|
||||
this.trigger('select', this, record);*/
|
||||
},
|
||||
|
||||
onFieldPickerClick: function(dataView, item, record) {
|
||||
if (this.disabled) return;
|
||||
|
||||
var isActive = item.$el.hasClass('active');
|
||||
|
||||
if (!this.isSuspendEvents)
|
||||
this.trigger('click', this, record, isActive);
|
||||
|
||||
if (this.options.hint) {
|
||||
var tip = this.cmpEl.data('bs.tooltip');
|
||||
if (tip) {
|
||||
if (tip.dontShow===undefined)
|
||||
tip.dontShow = true;
|
||||
tip.hide();
|
||||
}
|
||||
}
|
||||
|
||||
if (!isActive) {
|
||||
this.activateRecord(record);
|
||||
}
|
||||
},
|
||||
|
||||
onMenuPickerClick: function(dataView, itemView, record) {
|
||||
if (this.disabled) return;
|
||||
|
||||
if (!this.isSuspendEvents)
|
||||
this.trigger('click', this, record);
|
||||
|
||||
this.activateRecord(record);
|
||||
},
|
||||
|
||||
onPickerItemContextMenu: function(dataView, itemView, record, e) {
|
||||
if (this.disabled) return;
|
||||
|
||||
if (!this.isSuspendEvents) {
|
||||
this.trigger('contextmenu', this, record, e);
|
||||
}
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
return false;
|
||||
},
|
||||
|
||||
onPickerComboContextMenu: function(mouseEvent) {
|
||||
if (this.disabled) return;
|
||||
|
||||
if (!this.isSuspendEvents) {
|
||||
this.trigger('contextmenu', this, undefined, mouseEvent);
|
||||
}
|
||||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
|
||||
if (!this.rendered)
|
||||
return;
|
||||
|
||||
this.cmpEl.toggleClass('disabled', disabled);
|
||||
$('button', this.openButton.cmpEl).toggleClass('disabled', disabled);
|
||||
this.fieldPicker.setDisabled(disabled);
|
||||
},
|
||||
|
||||
isDisabled: function() {
|
||||
return this.disabled;
|
||||
}
|
||||
})
|
||||
});
|
||||
|
|
@ -125,6 +125,9 @@ define([
|
|||
var me = this;
|
||||
|
||||
me.template = me.options.template || me.template;
|
||||
me.dataHint = me.options.dataHint || '';
|
||||
me.dataHintDirection = me.options.dataHintDirection || '';
|
||||
me.dataHintOffset = me.options.dataHintOffset || '';
|
||||
|
||||
me.listenTo(me.model, 'change', this.model.get('skipRenderOnChange') ? me.onChange : me.render);
|
||||
me.listenTo(me.model, 'change:selected', me.onSelectChange);
|
||||
|
|
@ -140,6 +143,15 @@ define([
|
|||
el.html(this.template(this.model.toJSON()));
|
||||
el.addClass('item');
|
||||
el.toggleClass('selected', this.model.get('selected') && this.model.get('allowSelected'));
|
||||
|
||||
if (this.dataHint !== '') {
|
||||
el.attr('data-hint', this.dataHint);
|
||||
el.attr('data-hint-direction', this.dataHintDirection);
|
||||
el.attr('data-hint-offset', this.dataHintOffset);
|
||||
}
|
||||
if (!_.isUndefined(this.model.get('contentTarget')))
|
||||
el.attr('content-target', this.model.get('contentTarget'));
|
||||
|
||||
el.off('click dblclick contextmenu');
|
||||
el.on({ 'click': _.bind(this.onClick, this),
|
||||
'dblclick': _.bind(this.onDblClick, this),
|
||||
|
|
@ -211,6 +223,7 @@ define([
|
|||
listenStoreEvents: true,
|
||||
allowScrollbar: true,
|
||||
scrollAlwaysVisible: false,
|
||||
minScrollbarLength: 40,
|
||||
showLast: true,
|
||||
useBSKeydown: false,
|
||||
cls: ''
|
||||
|
|
@ -244,9 +257,13 @@ define([
|
|||
me.store = me.options.store || new Common.UI.DataViewStore();
|
||||
me.groups = me.options.groups || null;
|
||||
me.itemTemplate = me.options.itemTemplate || null;
|
||||
me.itemDataHint = me.options.itemDataHint || '';
|
||||
me.itemDataHintDirection = me.options.itemDataHintDirection || '';
|
||||
me.itemDataHintOffset = me.options.itemDataHintOffset || '';
|
||||
me.multiSelect = me.options.multiSelect;
|
||||
me.handleSelect = me.options.handleSelect;
|
||||
me.parentMenu = me.options.parentMenu;
|
||||
me.outerMenu = me.options.outerMenu;
|
||||
me.enableKeyEvents= me.options.enableKeyEvents;
|
||||
me.useBSKeydown = me.options.useBSKeydown; // only with enableKeyEvents && parentMenu
|
||||
me.showLast = me.options.showLast;
|
||||
|
|
@ -256,9 +273,12 @@ define([
|
|||
me.listenStoreEvents= (me.options.listenStoreEvents!==undefined) ? me.options.listenStoreEvents : true;
|
||||
me.allowScrollbar = (me.options.allowScrollbar!==undefined) ? me.options.allowScrollbar : true;
|
||||
me.scrollAlwaysVisible = me.options.scrollAlwaysVisible || false;
|
||||
me.minScrollbarLength = me.options.minScrollbarLength || 40;
|
||||
me.tabindex = me.options.tabindex || 0;
|
||||
me.delayRenderTips = me.options.delayRenderTips || false;
|
||||
if (me.parentMenu)
|
||||
me.parentMenu.options.restoreHeight = (me.options.restoreHeight>0);
|
||||
me.delaySelect = me.options.delaySelect || false;
|
||||
me.rendered = false;
|
||||
me.dataViewItems = [];
|
||||
if (me.options.keyMoveDirection=='vertical')
|
||||
|
|
@ -282,7 +302,8 @@ define([
|
|||
this.cmpEl = $(this.template({
|
||||
groups: me.groups ? me.groups.toJSON() : null,
|
||||
style: me.style,
|
||||
cls: me.cls
|
||||
cls: me.cls,
|
||||
options: me.options
|
||||
}));
|
||||
|
||||
parentEl.html(this.cmpEl);
|
||||
|
|
@ -291,7 +312,8 @@ define([
|
|||
this.cmpEl.html(this.template({
|
||||
groups: me.groups ? me.groups.toJSON() : null,
|
||||
style: me.style,
|
||||
cls: me.cls
|
||||
cls: me.cls,
|
||||
options: me.options
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
@ -335,7 +357,7 @@ define([
|
|||
this.scroller = new Common.UI.Scroller({
|
||||
el: $(this.el).find('.inner').addBack().filter('.inner'),
|
||||
useKeyboard: this.enableKeyEvents && !this.handleSelect,
|
||||
minScrollbarLength : 40,
|
||||
minScrollbarLength : this.minScrollbarLength,
|
||||
wheelSpeed: 10,
|
||||
alwaysVisibleY: this.scrollAlwaysVisible
|
||||
});
|
||||
|
|
@ -376,8 +398,9 @@ define([
|
|||
rec.set({selected: false});
|
||||
});
|
||||
|
||||
if (record)
|
||||
if (record) {
|
||||
record.set({selected: true});
|
||||
}
|
||||
} else {
|
||||
if (record)
|
||||
record.set({selected: !record.get('selected')});
|
||||
|
|
@ -413,7 +436,10 @@ define([
|
|||
onAddItem: function(record, store, opts) {
|
||||
var view = new Common.UI.DataViewItem({
|
||||
template: this.itemTemplate,
|
||||
model: record
|
||||
model: record,
|
||||
dataHint: this.itemDataHint,
|
||||
dataHintDirection: this.itemDataHintDirection,
|
||||
dataHintOffset: this.itemDataHintOffset
|
||||
});
|
||||
|
||||
if (view) {
|
||||
|
|
@ -427,23 +453,48 @@ define([
|
|||
}
|
||||
}
|
||||
|
||||
var idx = _.indexOf(this.store.models, record);
|
||||
if (innerEl) {
|
||||
if (opts && opts.at == 0)
|
||||
innerEl.prepend(view.render().el); else
|
||||
if (opts && (typeof opts.at==='number') && opts.at >= 0) {
|
||||
if (opts.at == 0) {
|
||||
innerEl.prepend(view.render().el);
|
||||
} else if (!(this.groups && this.groups.length > 0)) { // for dataview without groups
|
||||
var innerDivs = innerEl.find('> div');
|
||||
if (idx > 0)
|
||||
$(innerDivs.get(idx - 1)).after(view.render().el);
|
||||
else {
|
||||
(innerDivs.length > 0) ? $(innerDivs[idx]).before(view.render().el) : innerEl.append(view.render().el);
|
||||
}
|
||||
} else
|
||||
innerEl.append(view.render().el);
|
||||
} else
|
||||
innerEl.append(view.render().el);
|
||||
|
||||
(this.dataViewItems.length<1) && innerEl.find('.empty-text').remove();
|
||||
var idx = _.indexOf(this.store.models, record);
|
||||
this.dataViewItems = this.dataViewItems.slice(0, idx).concat(view).concat(this.dataViewItems.slice(idx));
|
||||
|
||||
if (record.get('tip')) {
|
||||
var view_el = $(view.el);
|
||||
view_el.attr('data-toggle', 'tooltip');
|
||||
view_el.tooltip({
|
||||
title : record.get('tip'),
|
||||
placement : 'cursor',
|
||||
zIndex : this.tipZIndex
|
||||
});
|
||||
var me = this,
|
||||
view_el = $(view.el),
|
||||
tip = record.get('tip');
|
||||
if (tip!==undefined && tip!==null) {
|
||||
if (this.delayRenderTips)
|
||||
view_el.one('mouseenter', function(){ // hide tooltip when mouse is over menu
|
||||
view_el.attr('data-toggle', 'tooltip');
|
||||
view_el.tooltip({
|
||||
title : record.get('tip'), // use actual tip, because it can be changed
|
||||
placement : 'cursor',
|
||||
zIndex : me.tipZIndex
|
||||
});
|
||||
view_el.mouseenter();
|
||||
});
|
||||
else {
|
||||
view_el.attr('data-toggle', 'tooltip');
|
||||
view_el.tooltip({
|
||||
title : record.get('tip'), // use actual tip, because it can be changed
|
||||
placement : 'cursor',
|
||||
zIndex : me.tipZIndex
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
this.listenTo(view, 'change', this.onChangeItem);
|
||||
|
|
@ -472,7 +523,8 @@ define([
|
|||
$(this.el).html(this.template({
|
||||
groups: this.groups ? this.groups.toJSON() : null,
|
||||
style: this.style,
|
||||
cls: this.cls
|
||||
cls: this.cls,
|
||||
options: this.options
|
||||
}));
|
||||
|
||||
if (!_.isUndefined(this.scroller)) {
|
||||
|
|
@ -498,7 +550,7 @@ define([
|
|||
this.scroller = new Common.UI.Scroller({
|
||||
el: $(this.el).find('.inner').addBack().filter('.inner'),
|
||||
useKeyboard: this.enableKeyEvents && !this.handleSelect,
|
||||
minScrollbarLength : 40,
|
||||
minScrollbarLength : this.minScrollbarLength,
|
||||
wheelSpeed: 10,
|
||||
alwaysVisibleY: this.scrollAlwaysVisible
|
||||
});
|
||||
|
|
@ -551,14 +603,30 @@ define([
|
|||
|
||||
window._event = e; // for FireFox only
|
||||
|
||||
if (this.showLast) this.selectRecord(record);
|
||||
if (this.showLast) {
|
||||
if (!this.delaySelect) {
|
||||
this.selectRecord(record);
|
||||
} else {
|
||||
_.each(this.store.where({selected: true}), function(rec){
|
||||
rec.set({selected: false});
|
||||
});
|
||||
if (record) {
|
||||
setTimeout(_.bind(function () {
|
||||
record.set({selected: true});
|
||||
this.trigger('item:click', this, view, record, e);
|
||||
}, this), 300);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.lastSelectedRec = null;
|
||||
|
||||
var tip = view.$el.data('bs.tooltip');
|
||||
if (tip) (tip.tip()).remove();
|
||||
|
||||
if (!this.isSuspendEvents) {
|
||||
this.trigger('item:click', this, view, record, e);
|
||||
if (!this.delaySelect) {
|
||||
this.trigger('item:click', this, view, record, e);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -665,17 +733,27 @@ define([
|
|||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
} else if (data.keyCode==Common.UI.Keys.UP) {
|
||||
while (idx===undefined) {
|
||||
topIdx--;
|
||||
if (topIdx<0) topIdx = this._layoutParams.rows-1;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
if (topIdx==0 && this.outerMenu && this.outerMenu.menu) {
|
||||
this.deselectAll(true);
|
||||
this.outerMenu.menu.focusOuter && this.outerMenu.menu.focusOuter(data, this.outerMenu.index);
|
||||
return;
|
||||
} else
|
||||
while (idx===undefined) {
|
||||
topIdx--;
|
||||
if (topIdx<0) topIdx = this._layoutParams.rows-1;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
} else {
|
||||
while (idx===undefined) {
|
||||
topIdx++;
|
||||
if (topIdx>this._layoutParams.rows-1) topIdx = 0;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
if (topIdx==this._layoutParams.rows-1 && this.outerMenu && this.outerMenu.menu) {
|
||||
this.deselectAll(true);
|
||||
this.outerMenu.menu.focusOuter && this.outerMenu.menu.focusOuter(data, this.outerMenu.index);
|
||||
return;
|
||||
} else
|
||||
while (idx===undefined) {
|
||||
topIdx++;
|
||||
if (topIdx>this._layoutParams.rows-1) topIdx = 0;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
idx = (data.keyCode==Common.UI.Keys.UP || data.keyCode==Common.UI.Keys.LEFT)
|
||||
|
|
@ -716,6 +794,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
$(this.el).find('.inner').addBack().filter('.inner').toggleClass('disabled', disabled);
|
||||
},
|
||||
|
|
@ -726,6 +805,12 @@ define([
|
|||
|
||||
setEmptyText: function(emptyText) {
|
||||
this.emptyText = emptyText;
|
||||
|
||||
if (this.store.length < 1) {
|
||||
var el = $(this.el).find('.inner').addBack().filter('.inner').find('.empty-text td');
|
||||
if ( el.length>0 )
|
||||
el.text(this.emptyText);
|
||||
}
|
||||
},
|
||||
|
||||
alignPosition: function() {
|
||||
|
|
@ -739,7 +824,7 @@ define([
|
|||
paddings = parseInt(menuRoot.css('padding-top')) + parseInt(menuRoot.css('padding-bottom')),
|
||||
menuH = menuRoot.outerHeight(),
|
||||
top = parseInt(menuRoot.css('top')),
|
||||
props = {minScrollbarLength : 40};
|
||||
props = {minScrollbarLength : this.minScrollbarLength};
|
||||
this.scrollAlwaysVisible && (props.alwaysVisibleY = this.scrollAlwaysVisible);
|
||||
|
||||
if (top + menuH > docH ) {
|
||||
|
|
@ -761,14 +846,14 @@ define([
|
|||
};
|
||||
|
||||
var el = $(this.dataViewItems[0].el),
|
||||
itemW = el.outerWidth() + parseInt(el.css('margin-left')) + parseInt(el.css('margin-right')),
|
||||
itemW = el.outerWidth() + parseFloat(el.css('margin-left')) + parseFloat(el.css('margin-right')),
|
||||
offsetLeft = this.$el.offset().left,
|
||||
offsetTop = el.offset().top,
|
||||
prevtop = -1, topIdx = 0, leftIdx = 0;
|
||||
|
||||
for (var i=0; i<this.dataViewItems.length; i++) {
|
||||
var top = $(this.dataViewItems[i].el).offset().top - offsetTop;
|
||||
leftIdx = Math.floor(($(this.dataViewItems[i].el).offset().left - offsetLeft)/itemW);
|
||||
leftIdx = Math.floor(($(this.dataViewItems[i].el).offset().left - offsetLeft)/itemW + 0.01);
|
||||
if (top>prevtop) {
|
||||
prevtop = top;
|
||||
this._layoutParams.itemsIndexes.push([]);
|
||||
|
|
@ -787,8 +872,24 @@ define([
|
|||
this._layoutParams = undefined;
|
||||
},
|
||||
|
||||
focus: function() {
|
||||
this.cmpEl && this.cmpEl.find('.dataview').focus();
|
||||
focus: function(index) {
|
||||
$(this.el).find('.inner').addBack().filter('.inner').focus();
|
||||
var rec;
|
||||
if (typeof index == 'string') {
|
||||
if (index == 'first') {
|
||||
rec = this.selectByIndex(0, true);
|
||||
} else if (index == 'last') {
|
||||
if (this._layoutParams === undefined)
|
||||
this.fillIndexesArray();
|
||||
rec = this.selectByIndex(this._layoutParams.itemsIndexes[this._layoutParams.rows-1][0], true);
|
||||
}
|
||||
} else if (index !== undefined)
|
||||
rec = this.selectByIndex(index, true);
|
||||
this.scrollToRecord(rec);
|
||||
},
|
||||
|
||||
focusInner: function(e) {
|
||||
this.focus(e.keyCode == Common.UI.Keys.DOWN ? 'first' : 'last');
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -806,7 +907,7 @@ define([
|
|||
'<div class="dataview inner" style="<%= style %>">',
|
||||
'<% _.each(items, function(item) { %>',
|
||||
'<% if (!item.id) item.id = Common.UI.getId(); %>',
|
||||
'<div class="item" <% if(!!item.tip) { %> data-toggle="tooltip" <% } %> ><%= itemTemplate(item) %></div>',
|
||||
'<div class="item" <% if(!!item.tip) { %> data-toggle="tooltip" <% } %> data-hint="<%= item.dataHint %>" data-hint-direction="<%= item.dataHintDirection %>" data-hint-offset="<%= item.dataHintOffset %>"><%= itemTemplate(item) %></div>',
|
||||
'<% }) %>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
|
@ -856,7 +957,8 @@ define([
|
|||
this.cmpEl.html(this.template({
|
||||
items: me.store.toJSON(),
|
||||
itemTemplate: me.itemTemplate,
|
||||
style: me.style
|
||||
style: me.style,
|
||||
options: me.options
|
||||
}));
|
||||
}
|
||||
var modalParents = this.cmpEl.closest('.asc-window');
|
||||
|
|
@ -893,7 +995,7 @@ define([
|
|||
this.scroller = new Common.UI.Scroller({
|
||||
el: $(this.el).find('.inner').addBack().filter('.inner'),
|
||||
useKeyboard: this.enableKeyEvents && !this.handleSelect,
|
||||
minScrollbarLength : 40,
|
||||
minScrollbarLength : this.minScrollbarLength,
|
||||
wheelSpeed: 10,
|
||||
alwaysVisibleY: this.scrollAlwaysVisible
|
||||
});
|
||||
|
|
@ -968,7 +1070,7 @@ define([
|
|||
var template = _.template([
|
||||
'<% _.each(items, function(item) { %>',
|
||||
'<% if (!item.id) item.id = Common.UI.getId(); %>',
|
||||
'<div class="item" <% if(!!item.tip) { %> data-toggle="tooltip" <% } %> ><%= itemTemplate(item) %></div>',
|
||||
'<div class="item" <% if(!!item.tip) { %> data-toggle="tooltip" <% } %> data-hint="<%= item.dataHint %>" data-hint-direction="<%= item.dataHintDirection %>" data-hint-offset="<%= item.dataHintOffset %>"><%= itemTemplate(item) %></div>',
|
||||
'<% }) %>'
|
||||
].join(''));
|
||||
this.cmpEl && this.cmpEl.find('.inner').html(template({
|
||||
|
|
@ -985,7 +1087,7 @@ define([
|
|||
this.scroller = new Common.UI.Scroller({
|
||||
el: $(this.el).find('.inner').addBack().filter('.inner'),
|
||||
useKeyboard: this.enableKeyEvents && !this.handleSelect,
|
||||
minScrollbarLength : 40,
|
||||
minScrollbarLength : this.minScrollbarLength,
|
||||
wheelSpeed: 10,
|
||||
alwaysVisibleY: this.scrollAlwaysVisible
|
||||
});
|
||||
|
|
@ -1070,21 +1172,30 @@ define([
|
|||
if (data.keyCode==Common.UI.Keys.RETURN) {
|
||||
if (this.selectedBeforeHideRec) // only for ComboDataView menuPicker
|
||||
rec = this.selectedBeforeHideRec;
|
||||
if (this.canAddRecents) // only for DaraViewShape
|
||||
this.addRecentItem(rec);
|
||||
this.trigger('item:click', this, this, rec, e);
|
||||
if (this.parentMenu)
|
||||
this.parentMenu.hide();
|
||||
} else {
|
||||
var idx = _.indexOf(this.store.models, rec);
|
||||
if (idx<0) {
|
||||
function getFirstItemIndex() {
|
||||
var first = 0;
|
||||
while(!this.dataViewItems[first].el.is(':visible')) {
|
||||
first++;
|
||||
}
|
||||
return first;
|
||||
}
|
||||
if (data.keyCode==Common.UI.Keys.LEFT) {
|
||||
var target = $(e.target).closest('.dropdown-submenu.over');
|
||||
if (target.length>0) {
|
||||
target.removeClass('over');
|
||||
target.find('> a').focus();
|
||||
} else
|
||||
idx = 0;
|
||||
idx = getFirstItemIndex.call(this);
|
||||
} else
|
||||
idx = 0;
|
||||
idx = getFirstItemIndex.call(this);
|
||||
} else if (this.options.keyMoveDirection == 'both') {
|
||||
if (this._layoutParams === undefined)
|
||||
this.fillIndexesArray();
|
||||
|
|
@ -1113,17 +1224,27 @@ define([
|
|||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
} else if (data.keyCode==Common.UI.Keys.UP) {
|
||||
while (idx===undefined) {
|
||||
topIdx--;
|
||||
if (topIdx<0) topIdx = this._layoutParams.rows-1;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
if (topIdx==0 && this.outerMenu && this.outerMenu.menu) {
|
||||
this.deselectAll(true);
|
||||
this.outerMenu.menu.focusOuter && this.outerMenu.menu.focusOuter(data, this.outerMenu.index);
|
||||
return;
|
||||
} else
|
||||
while (idx===undefined) {
|
||||
topIdx--;
|
||||
if (topIdx<0) topIdx = this._layoutParams.rows-1;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
} else {
|
||||
while (idx===undefined) {
|
||||
topIdx++;
|
||||
if (topIdx>this._layoutParams.rows-1) topIdx = 0;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
if (topIdx==this._layoutParams.rows-1 && this.outerMenu && this.outerMenu.menu) {
|
||||
this.deselectAll(true);
|
||||
this.outerMenu.menu.focusOuter && this.outerMenu.menu.focusOuter(data, this.outerMenu.index);
|
||||
return;
|
||||
} else
|
||||
while (idx===undefined) {
|
||||
topIdx++;
|
||||
if (topIdx>this._layoutParams.rows-1) topIdx = 0;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
idx = (data.keyCode==Common.UI.Keys.UP || data.keyCode==Common.UI.Keys.LEFT)
|
||||
|
|
@ -1154,6 +1275,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
$(this.el).find('.inner').addBack().filter('.inner').toggleClass('disabled', disabled);
|
||||
},
|
||||
|
|
@ -1173,7 +1295,7 @@ define([
|
|||
paddings = parseInt(menuRoot.css('padding-top')) + parseInt(menuRoot.css('padding-bottom')),
|
||||
menuH = menuRoot.outerHeight(),
|
||||
top = parseInt(menuRoot.css('top')),
|
||||
props = {minScrollbarLength : 40};
|
||||
props = {minScrollbarLength : this.minScrollbarLength};
|
||||
this.scrollAlwaysVisible && (props.alwaysVisibleY = this.scrollAlwaysVisible);
|
||||
|
||||
if (top + menuH > docH ) {
|
||||
|
|
@ -1195,7 +1317,7 @@ define([
|
|||
};
|
||||
|
||||
var el = this.dataViewItems[0].el,
|
||||
itemW = el.outerWidth() + parseInt(el.css('margin-left')) + parseInt(el.css('margin-right')),
|
||||
itemW = el.outerWidth() + parseFloat(el.css('margin-left')) + parseFloat(el.css('margin-right')),
|
||||
offsetLeft = this.$el.offset().left,
|
||||
offsetTop = el.offset().top,
|
||||
prevtop = -1, topIdx = 0, leftIdx = 0;
|
||||
|
|
@ -1239,4 +1361,397 @@ define([
|
|||
}
|
||||
}, 100);
|
||||
});
|
||||
|
||||
Common.UI.DataViewShape = Common.UI.DataViewSimple.extend(_.extend({
|
||||
template: _.template([
|
||||
'<div class="dataview inner" style="<%= style %>">',
|
||||
'<% _.each(options.groupsWithRecent, function(group, index) { %>',
|
||||
'<div class="grouped-data <% if (index === 0) { %> recent-group <% } %> " id="<%= group.id %>" >',
|
||||
'<% if (!_.isEmpty(group.groupName)) { %>',
|
||||
'<div class="group-description">',
|
||||
'<span><%= group.groupName %></span>',
|
||||
'</div>',
|
||||
'<% } %>',
|
||||
'<div class="group-items-container <% if (index === 0) { %> recent-items <% } %>">',
|
||||
'<% _.each(group.groupStore.toJSON(), function(item, index) { %>',
|
||||
'<% if (!item.id) item.id = Common.UI.getId(); %>',
|
||||
'<div class="item" data-index="<%= index %>"<% if(!!item.tip) { %> data-toggle="tooltip" <% } %> ><%= itemTemplate(item) %></div>',
|
||||
'<% }); %>',
|
||||
'</div>',
|
||||
'</div>',
|
||||
'<% }); %>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
initialize : function(options) {
|
||||
var me = this;
|
||||
this.canAddRecents = true;
|
||||
|
||||
this._state = {
|
||||
hideTextRect: options.hideTextRect,
|
||||
hideLines: options.hideLines
|
||||
}
|
||||
|
||||
var filter = Common.localStorage.getKeysFilter();
|
||||
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||
|
||||
me.groups = options.groups.toJSON();
|
||||
|
||||
// add recent shapes to store
|
||||
var recentStore = new Common.UI.DataViewGroupStore,
|
||||
recentArr = options.recentShapes || [],
|
||||
cols = (recentArr.length) > 18 ? 7 : 6,
|
||||
height = Math.ceil(recentArr.length/cols) * 35 + 3,
|
||||
width = 30 * cols;
|
||||
|
||||
me.recentShapes = recentArr;
|
||||
|
||||
// check lang
|
||||
if (me.recentShapes.length > 0) {
|
||||
var isTranslated = _.findWhere(me.groups, {groupName: me.recentShapes[0].groupName});
|
||||
if (!isTranslated) {
|
||||
for (var r = 0; r < me.recentShapes.length; r++) {
|
||||
var type = me.recentShapes[r].data.shapeType,
|
||||
record;
|
||||
for (var g = 0; g < me.groups.length; g++) {
|
||||
var store = me.groups[g].groupStore,
|
||||
groupName = me.groups[g].groupName;
|
||||
for (var i = 0; i < store.length; i++) {
|
||||
if (store.at(i).get('data').shapeType === type) {
|
||||
record = store.at(i).toJSON();
|
||||
me.recentShapes[r] = {
|
||||
data: record.data,
|
||||
tip: record.tip,
|
||||
allowSelected: record.allowSelected,
|
||||
selected: false,
|
||||
groupName: groupName
|
||||
};
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (record) {
|
||||
record = undefined;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Common.localStorage.setItem(this.appPrefix + 'recent-shapes', JSON.stringify(me.recentShapes));
|
||||
}
|
||||
}
|
||||
|
||||
// Add default recent
|
||||
|
||||
if (me.recentShapes.length < 12) {
|
||||
var count = 12 - me.recentShapes.length,
|
||||
defaultArr = [];
|
||||
|
||||
var addItem = function (rec, groupName) {
|
||||
var item = rec.toJSON(),
|
||||
model = {
|
||||
data: item.data,
|
||||
tip: item.tip,
|
||||
allowSelected: item.allowSelected,
|
||||
selected: false,
|
||||
groupName: groupName
|
||||
};
|
||||
defaultArr.push(model);
|
||||
};
|
||||
|
||||
for (var i = 0; i < me.groups.length && count > 0; i++) {
|
||||
var groupStore = me.groups[i].groupStore,
|
||||
groupName = me.groups[i].groupName;
|
||||
if (i === 0) {
|
||||
addItem(groupStore.at(1), groupName);
|
||||
count--;
|
||||
if (count > 0) {
|
||||
addItem(groupStore.at(2), groupName);
|
||||
count--;
|
||||
}
|
||||
} else if (i !== 3 && i !== 6 && i !== 7) {
|
||||
addItem(groupStore.at(0), groupName);
|
||||
count--;
|
||||
if (count > 0) {
|
||||
addItem(groupStore.at(1), groupName);
|
||||
count--;
|
||||
}
|
||||
}
|
||||
}
|
||||
me.recentShapes = me.recentShapes.concat(defaultArr);
|
||||
}
|
||||
|
||||
recentStore.add(me.recentShapes);
|
||||
me.groups.unshift({
|
||||
groupName : options.textRecentlyUsed,
|
||||
groupStore : recentStore,
|
||||
groupWidth : width,
|
||||
groupHeight : height
|
||||
});
|
||||
|
||||
me.options.groupsWithRecent = me.groups;
|
||||
|
||||
var store = new Common.UI.DataViewStore();
|
||||
|
||||
_.each(me.groups, function (group, index) {
|
||||
var models = group.groupStore.models;
|
||||
if (index > 0) {
|
||||
for (var i = 0; i < models.length; i++) {
|
||||
models[i].set({groupName: group.groupName});
|
||||
}
|
||||
}
|
||||
store.add(models);
|
||||
});
|
||||
|
||||
options.store = store;
|
||||
|
||||
Common.UI.DataViewSimple.prototype.initialize.call(this, options);
|
||||
|
||||
me.parentMenu.on('show:before', function() { me.updateRecents(); });
|
||||
|
||||
if (me._state.hideLines) {
|
||||
me.hideLinesGroup();
|
||||
}
|
||||
},
|
||||
onAfterShowMenu: function(e) {
|
||||
var me = this,
|
||||
updateHideRect = false;
|
||||
if (!me.dataViewItems) {
|
||||
me.dataViewItems = [];
|
||||
_.each(me.cmpEl.find('div.grouped-data'), function (group, indexGroup) {
|
||||
_.each($(group).find('div.item'), function (item, index) {
|
||||
var $item = $(item),
|
||||
rec = me.groups[indexGroup].groupStore.at(index);
|
||||
me.dataViewItems.push({el: $item, groupIndex: indexGroup, index: index});
|
||||
var tip = rec.get('tip');
|
||||
if (tip) {
|
||||
$item.one('mouseenter', function(){ // hide tooltip when mouse is over menu
|
||||
$item.attr('data-toggle', 'tooltip');
|
||||
$item.tooltip({
|
||||
title : tip,
|
||||
placement : 'cursor',
|
||||
zIndex : me.tipZIndex
|
||||
});
|
||||
$item.mouseenter();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
updateHideRect = true;
|
||||
}
|
||||
if (me.updateDataViewItems && me.cmpEl.is(':visible')) {
|
||||
// add recent item in dataViewItems
|
||||
var recent = _.where(me.dataViewItems, {groupIndex: 0});
|
||||
var len = recent ? recent.length : 0;
|
||||
for (var i = 0; i < len; i++) {
|
||||
var tip = me.dataViewItems[i].el.data('bs.tooltip');
|
||||
if (tip) {
|
||||
if (tip.dontShow===undefined)
|
||||
tip.dontShow = true;
|
||||
(tip.tip()).remove();
|
||||
}
|
||||
}
|
||||
me.dataViewItems = me.dataViewItems.slice(len);
|
||||
var recentViewItems = [];
|
||||
_.each(me.cmpEl.find('.recent-group div.item'), function (item, index) {
|
||||
var $item = $(item),
|
||||
rec = me.recentShapes[index];
|
||||
recentViewItems.push({el: $item, groupIndex: 0, index: index});
|
||||
var tip = rec.tip;
|
||||
if (tip) {
|
||||
$item.one('mouseenter', function(){ // hide tooltip when mouse is over menu
|
||||
$item.attr('data-toggle', 'tooltip');
|
||||
$item.tooltip({
|
||||
title: tip,
|
||||
placement: 'cursor',
|
||||
zIndex : me.tipZIndex
|
||||
});
|
||||
$item.mouseenter();
|
||||
});
|
||||
}
|
||||
});
|
||||
me.dataViewItems = recentViewItems.concat(me.dataViewItems);
|
||||
|
||||
if (me.recentShapes.length === 1) {
|
||||
$('.recent-group').show();
|
||||
}
|
||||
me.updateDataViewItems = false;
|
||||
|
||||
updateHideRect = true;
|
||||
}
|
||||
if (this._state.hideLines) {
|
||||
me.hideLines();
|
||||
}
|
||||
if (updateHideRect) {
|
||||
me.hideTextRect(me._state.hideTextRect);
|
||||
}
|
||||
me.fillIndexesArray();
|
||||
},
|
||||
|
||||
onClickItem: function(e) {
|
||||
if ( this.disabled ) return;
|
||||
|
||||
window._event = e; // for FireFox only
|
||||
|
||||
var groupIndex = $(e.currentTarget).closest('div.grouped-data').index(),
|
||||
itemIndex = $(e.currentTarget).closest('div.item').data('index');
|
||||
var index = _.findIndex(this.dataViewItems, function (item) {
|
||||
return (item.groupIndex === groupIndex && item.index === itemIndex);
|
||||
});
|
||||
var record = (index>=0) ? this.store.at(index) : null,
|
||||
view = (index>=0) ? this.dataViewItems[index] : null;
|
||||
if (!record || !view) return;
|
||||
|
||||
record.set({selected: true});
|
||||
var tip = view.el.data('bs.tooltip');
|
||||
if (tip) (tip.tip()).remove();
|
||||
|
||||
if (!this.isSuspendEvents) {
|
||||
this.trigger('item:click', this, view.el, record, e);
|
||||
}
|
||||
|
||||
this.addRecentItem(record);
|
||||
},
|
||||
addRecentItem: function (rec) {
|
||||
var me = this,
|
||||
exist = false,
|
||||
type = rec.get('data').shapeType,
|
||||
groupName = rec.get('groupName');
|
||||
for (var i = 0; i < me.recentShapes.length; i++) {
|
||||
if (me.recentShapes[i].data.shapeType === type) {
|
||||
exist = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (exist) return;
|
||||
|
||||
var item = rec.toJSON(),
|
||||
model = {
|
||||
data: item.data,
|
||||
tip: item.tip,
|
||||
allowSelected: item.allowSelected,
|
||||
selected: false,
|
||||
groupName: groupName
|
||||
};
|
||||
var arr = [model].concat(me.recentShapes.slice(0, 11));
|
||||
Common.localStorage.setItem(this.appPrefix + 'recent-shapes', JSON.stringify(arr));
|
||||
me.recentShapes = undefined;
|
||||
},
|
||||
updateRecents: function () {
|
||||
var me = this,
|
||||
recents = Common.localStorage.getItem(this.appPrefix + 'recent-shapes');
|
||||
recents = recents ? JSON.parse(recents) : [];
|
||||
|
||||
var diff = false;
|
||||
if (me.recentShapes) {
|
||||
for (var i = 0; i < recents.length; i++) {
|
||||
if (!me.recentShapes[i] || (me.recentShapes[i] && recents[i].tip !== me.recentShapes[i].tip)) {
|
||||
diff = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
diff = true;
|
||||
}
|
||||
|
||||
if (recents.length > 0 && diff) {
|
||||
me.recentShapes = recents;
|
||||
var resentsStore = new Common.UI.DataViewStore();
|
||||
_.each(me.recentShapes, function (recent) {
|
||||
var model = {
|
||||
data: {shapeType: recent.data.shapeType},
|
||||
tip: recent.tip,
|
||||
allowSelected: recent.allowSelected,
|
||||
selected: recent.selected,
|
||||
groupName: recent.groupName
|
||||
};
|
||||
resentsStore.push(model);
|
||||
});
|
||||
me.groups[0].groupStore = resentsStore;
|
||||
|
||||
var store = new Common.UI.DataViewStore();
|
||||
_.each(me.groups, function (group) {
|
||||
store.add(group.groupStore.models);
|
||||
});
|
||||
me.store = store;
|
||||
|
||||
var template = _.template([
|
||||
'<% _.each(items, function(item, index) { %>',
|
||||
'<% if (!item.id) item.id = Common.UI.getId(); %>',
|
||||
'<div class="item" data-index="<%= index %>"<% if(!!item.tip) { %> data-toggle="tooltip" <% } %> ><%= itemTemplate(item) %></div>',
|
||||
'<% }) %>'
|
||||
].join(''));
|
||||
me.cmpEl && me.cmpEl.find('.recent-items').html(template({
|
||||
items: me.recentShapes,
|
||||
itemTemplate: this.itemTemplate,
|
||||
style : this.style
|
||||
}));
|
||||
|
||||
me.updateDataViewItems = true;
|
||||
}
|
||||
},
|
||||
fillIndexesArray: function() {
|
||||
if (this.dataViewItems.length<=0) return;
|
||||
|
||||
this._layoutParams = {
|
||||
itemsIndexes: [],
|
||||
columns: 0,
|
||||
rows: 0
|
||||
};
|
||||
|
||||
var el = this.dataViewItems[0].el,
|
||||
first = 0;
|
||||
while (!this.dataViewItems[first].el.is(":visible")) { // if first elem is hidden
|
||||
first++;
|
||||
el = this.dataViewItems[first].el;
|
||||
}
|
||||
|
||||
var itemW = el.outerWidth() + parseInt(el.css('margin-left')) + parseInt(el.css('margin-right')),
|
||||
offsetLeft = this.$el.offset().left,
|
||||
offsetTop = el.offset().top,
|
||||
prevtop = -1, topIdx = 0, leftIdx = first;
|
||||
|
||||
for (var i=0; i<this.dataViewItems.length; i++) {
|
||||
var item = this.dataViewItems[i];
|
||||
if (item.el.is(":visible")) {
|
||||
var top = item.el.offset().top - offsetTop;
|
||||
leftIdx = Math.floor((item.el.offset().left - offsetLeft) / itemW);
|
||||
if (top > prevtop) {
|
||||
prevtop = top;
|
||||
this._layoutParams.itemsIndexes.push([]);
|
||||
topIdx = this._layoutParams.itemsIndexes.length - 1;
|
||||
}
|
||||
this._layoutParams.itemsIndexes[topIdx][leftIdx] = i;
|
||||
item.topIdx = topIdx;
|
||||
item.leftIdx = leftIdx;
|
||||
if (this._layoutParams.columns < leftIdx) this._layoutParams.columns = leftIdx;
|
||||
} else {
|
||||
item.topIdx = -1;
|
||||
item.leftIdx = -1;
|
||||
}
|
||||
}
|
||||
this._layoutParams.rows = this._layoutParams.itemsIndexes.length;
|
||||
this._layoutParams.columns++;
|
||||
},
|
||||
hideTextRect: function (hide) {
|
||||
var me = this;
|
||||
this.store.each(function(item, index){
|
||||
if (item.get('data').shapeType === 'textRect') {
|
||||
me.dataViewItems[index].el[hide ? 'addClass' : 'removeClass']('hidden');
|
||||
}
|
||||
}, this);
|
||||
this._state.hideTextRect = hide;
|
||||
},
|
||||
hideLinesGroup: function () {
|
||||
$(this.cmpEl.find('div.grouped-data')[9]).hide();
|
||||
},
|
||||
hideLines: function () {
|
||||
var me = this;
|
||||
this.store.each(function(item, index){
|
||||
if (item.get('groupName') === 'Lines') {
|
||||
var el = me.dataViewItems[index].el;
|
||||
if (el.is(':visible')) {
|
||||
el.addClass('hidden');
|
||||
}
|
||||
}
|
||||
}, this);
|
||||
}
|
||||
}));
|
||||
|
||||
});
|
||||
|
|
@ -49,7 +49,7 @@ define([
|
|||
Common.UI.DimensionPicker = Common.UI.BaseView.extend((function(){
|
||||
return {
|
||||
options: {
|
||||
itemSize : 18,
|
||||
itemSize : 20,
|
||||
minRows : 5,
|
||||
minColumns : 5,
|
||||
maxRows : 20,
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ define([
|
|||
'<% } %>'+
|
||||
'<div>'+
|
||||
'<div class="cnt-hb img-colorpicker">'+
|
||||
'<div class="cnt-hb-arrow img-colorpicker"></div>'+
|
||||
'<div class="cnt-hb-arrow"></div>'+
|
||||
'</div>'+
|
||||
'<% if (this.changeSaturation) { %>'+
|
||||
'<div class="cnt-root">'+
|
||||
|
|
@ -106,6 +106,7 @@ define([
|
|||
refreshUI();
|
||||
|
||||
me.trigger('changecolor', me, me.color);
|
||||
|
||||
};
|
||||
|
||||
var refreshUI = function(){
|
||||
|
|
@ -125,8 +126,7 @@ define([
|
|||
previewColorText[0].innerHTML = (me.color == 'transparent') ? me.textNoColor : me.color.toUpperCase();
|
||||
|
||||
if (arrowSatBrightness.length>0 && arrowHue.length>0) {
|
||||
arrowSatBrightness.css('left', saturationVal + '%');
|
||||
arrowSatBrightness.css('top', 100 - brightnessVal + '%');
|
||||
arrowSatBrightness.css({'left': saturationVal + '%', 'top': 100 - brightnessVal + '%', 'background-color' : me.color});
|
||||
arrowHue.css('top', parseInt(hueVal * 100 / 360.0) + '%');
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -86,7 +86,9 @@ define([
|
|||
'spellcheck="<%= spellcheck %>" ',
|
||||
'class="form-control <%= cls %>" ',
|
||||
'placeholder="<%= placeHolder %>" ',
|
||||
'value="<%= value %>"',
|
||||
'data-hint="<%= dataHint %>"',
|
||||
'data-hint-direction="<%= dataHintDirection %>"',
|
||||
'data-hint-offset="<%= dataHintOffset %>"',
|
||||
'>',
|
||||
'<span class="input-error"></span>',
|
||||
'</div>'
|
||||
|
|
@ -135,6 +137,9 @@ define([
|
|||
name : this.name,
|
||||
placeHolder : this.placeHolder,
|
||||
spellcheck : this.spellcheck,
|
||||
dataHint : this.options.dataHint,
|
||||
dataHintDirection: this.options.dataHintDirection,
|
||||
dataHintOffset: this.options.dataHintOffset,
|
||||
scope : me
|
||||
}));
|
||||
|
||||
|
|
@ -177,6 +182,9 @@ define([
|
|||
|
||||
me.rendered = true;
|
||||
|
||||
if (me.value)
|
||||
me.setValue(me.value);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
@ -280,6 +288,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
$(this.el).toggleClass('disabled', disabled);
|
||||
disabled
|
||||
|
|
@ -409,23 +418,25 @@ define([
|
|||
validateOnBlur: true,
|
||||
disabled: false,
|
||||
editable: true,
|
||||
iconCls: 'btn-select-range',
|
||||
iconCls: 'toolbar__icon btn-select-range',
|
||||
btnHint: ''
|
||||
},
|
||||
|
||||
template: _.template([
|
||||
'<div class="input-field input-field-btn" style="<%= style %>">',
|
||||
'<input ',
|
||||
'type="<%= type %>" ',
|
||||
'type=<%= type %> ',
|
||||
'name="<%= name %>" ',
|
||||
'spellcheck="<%= spellcheck %>" ',
|
||||
'class="form-control <%= cls %>" ',
|
||||
'placeholder="<%= placeHolder %>" ',
|
||||
'value="<%= value %>"',
|
||||
'data-hint="<%= dataHint %>"',
|
||||
'data-hint-offset="<%= dataHintOffset %>"',
|
||||
'data-hint-direction="<%= dataHintDirection %>"',
|
||||
'>',
|
||||
'<span class="input-error"></span>',
|
||||
'<div class="select-button">' +
|
||||
'<button type="button" class="btn btn-toolbar"><i class="icon toolbar__icon <%= iconCls %>"></i></button>' +
|
||||
'</div>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
|
@ -443,8 +454,10 @@ define([
|
|||
name : this.name,
|
||||
placeHolder : this.placeHolder,
|
||||
spellcheck : this.spellcheck,
|
||||
iconCls : this.options.iconCls,
|
||||
scope : me
|
||||
scope : me,
|
||||
dataHint : this.options.dataHint,
|
||||
dataHintOffset: this.options.dataHintOffset,
|
||||
dataHintDirection: this.options.dataHintDirection
|
||||
}));
|
||||
|
||||
if (parentEl) {
|
||||
|
|
@ -461,9 +474,12 @@ define([
|
|||
var el = this.cmpEl;
|
||||
|
||||
this._button = new Common.UI.Button({
|
||||
el: this.cmpEl.find('button'),
|
||||
hint: this.options.btnHint || ''
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: this.options.iconCls,
|
||||
hint: this.options.btnHint || '',
|
||||
menu: this.options.menu
|
||||
});
|
||||
this._button.render(this.cmpEl.find('.select-button'));
|
||||
this._button.on('click', _.bind(this.onButtonClick, this));
|
||||
|
||||
this._input = this.cmpEl.find('input').addBack().filter('input');
|
||||
|
|
@ -492,6 +508,8 @@ define([
|
|||
}
|
||||
|
||||
me.rendered = true;
|
||||
if (me.value)
|
||||
me.setValue(me.value);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
|
@ -501,6 +519,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
$(this.el).toggleClass('disabled', disabled);
|
||||
disabled
|
||||
|
|
@ -521,4 +540,186 @@ define([
|
|||
}
|
||||
}
|
||||
})());
|
||||
|
||||
Common.UI.InputFieldBtnPassword = Common.UI.InputFieldBtn.extend(_.extend((function() {
|
||||
return {
|
||||
options: {
|
||||
id: null,
|
||||
cls: '',
|
||||
style: '',
|
||||
value: '',
|
||||
name: '',
|
||||
type: 'password',
|
||||
validation: null,
|
||||
allowBlank: true,
|
||||
placeHolder: '',
|
||||
blankError: null,
|
||||
spellcheck: false,
|
||||
maskExp: '',
|
||||
validateOnChange: false,
|
||||
validateOnBlur: true,
|
||||
disabled: false,
|
||||
editable: true,
|
||||
showCls: 'toolbar__icon btn-sheet-view',
|
||||
hideCls: 'toolbar__icon hide-password',
|
||||
btnHint: '',
|
||||
repeatInput: null,
|
||||
showPwdOnClick: true
|
||||
},
|
||||
|
||||
initialize : function(options) {
|
||||
options = options || {};
|
||||
options.btnHint = options.btnHint || this.textHintShowPwd;
|
||||
options.iconCls = options.showCls || this.options.showCls;
|
||||
|
||||
Common.UI.InputFieldBtn.prototype.initialize.call(this, options);
|
||||
|
||||
this.hidePwd = true;
|
||||
this.repeatInput= this.options.repeatInput;
|
||||
},
|
||||
|
||||
render: function (parentEl) {
|
||||
Common.UI.InputFieldBtn.prototype.render.call(this, parentEl);
|
||||
|
||||
this._btnElm = this._button.$el;
|
||||
if(this.options.showPwdOnClick)
|
||||
this._button.on('click', _.bind(this.passwordClick, this));
|
||||
else
|
||||
this._btnElm.on('mousedown', _.bind(this.passwordShow, this));
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
passwordClick: function (e)
|
||||
{
|
||||
if(this.hidePwd) {
|
||||
this.passwordShow(e);
|
||||
this.hidePwd = false;
|
||||
}
|
||||
else {
|
||||
this.passwordHide(e);
|
||||
this.hidePwd = true;
|
||||
}
|
||||
var me = this;
|
||||
var prevstart = me._input[0].selectionStart,
|
||||
prevend = me._input[0].selectionEnd;
|
||||
setTimeout(function () {
|
||||
me.focus();
|
||||
me._input[0].selectionStart = prevstart;
|
||||
me._input[0].selectionEnd = prevend;
|
||||
}, 1);
|
||||
},
|
||||
|
||||
passwordShow: function (e) {
|
||||
if (this.disabled) return;
|
||||
this._button.setIconCls(this.options.hideCls);
|
||||
this.type = 'text';
|
||||
|
||||
this._input.attr('type', this.type);
|
||||
if(this.repeatInput) {
|
||||
this.repeatInput.type = this.type;
|
||||
this.repeatInput._input.attr('type', this.type);
|
||||
}
|
||||
|
||||
if(this.options.showPwdOnClick) {
|
||||
this._button.updateHint(this.textHintHidePwd);
|
||||
}
|
||||
else {
|
||||
this._btnElm.on('mouseup', _.bind(this.passwordHide, this));
|
||||
this._btnElm.on('mouseout', _.bind(this.passwordHide, this));
|
||||
}
|
||||
},
|
||||
|
||||
passwordHide: function (e) {
|
||||
this._button.setIconCls(this.options.showCls);
|
||||
this.type = 'password';
|
||||
|
||||
this._input.attr('type', this.type);
|
||||
if(this.repeatInput) {
|
||||
this.repeatInput.type = this.type;
|
||||
this.repeatInput._input.attr('type', this.type);
|
||||
}
|
||||
|
||||
if(this.options.showPwdOnClick) {
|
||||
this._button.updateHint(this.textHintShowPwd);
|
||||
}
|
||||
else {
|
||||
this._btnElm.off('mouseup', this.passwordHide);
|
||||
this._btnElm.off('mouseout', this.passwordHide);
|
||||
var me = this;
|
||||
var prevstart = me._input[0].selectionStart,
|
||||
prevend = me._input[0].selectionEnd;
|
||||
setTimeout(function () {
|
||||
me.focus();
|
||||
me._input[0].selectionStart = prevstart;
|
||||
me._input[0].selectionEnd = prevend;
|
||||
}, 1);
|
||||
}
|
||||
},
|
||||
textHintShowPwd: 'Show password',
|
||||
textHintHidePwd: 'Hide password'
|
||||
}
|
||||
})(), Common.UI.InputFieldBtnPassword || {}));
|
||||
|
||||
Common.UI.InputFieldBtnCalendar = Common.UI.InputFieldBtn.extend((function (){
|
||||
return {
|
||||
options: {
|
||||
id: null,
|
||||
cls: '',
|
||||
style: '',
|
||||
value: '',
|
||||
type: 'date',
|
||||
name: '',
|
||||
validation: null,
|
||||
allowBlank: true,
|
||||
placeHolder: '',
|
||||
blankError: null,
|
||||
spellcheck: false,
|
||||
maskExp: '',
|
||||
validateOnChange: false,
|
||||
validateOnBlur: true,
|
||||
disabled: false,
|
||||
editable: true,
|
||||
iconCls: 'toolbar__icon btn-datetime',
|
||||
btnHint: '',
|
||||
menu: true
|
||||
},
|
||||
|
||||
render: function (parentEl) {
|
||||
var me = this;
|
||||
Common.UI.InputFieldBtn.prototype.render.call(this, parentEl);
|
||||
|
||||
var id = 'id-' + Common.UI.getId() + 'input-field-datetime',
|
||||
menu = new Common.UI.Menu({
|
||||
menuAlign: 'tr-br',
|
||||
style: 'border: none; padding: 0;',
|
||||
items: [
|
||||
{template: _.template('<div id="' + id + '" style=""></div>'), stopPropagation: true}
|
||||
]
|
||||
});
|
||||
$('button', this._button.cmpEl).addClass('no-caret');
|
||||
this._button.setMenu(menu);
|
||||
this._button.menu.on('show:after', function(menu) {
|
||||
if (!me.cmpCalendar) {
|
||||
me.cmpCalendar = new Common.UI.Calendar({
|
||||
el: me.cmpEl.find('#' + id),
|
||||
enableKeyEvents: true,
|
||||
firstday: 1
|
||||
});
|
||||
me.cmpCalendar.on('date:click', function (cmp, date) {
|
||||
me.trigger('date:click', me, date);
|
||||
menu.hide();
|
||||
});
|
||||
menu.alignPosition();
|
||||
}
|
||||
me.cmpCalendar.focus();
|
||||
})
|
||||
},
|
||||
|
||||
setDate: function(date) {
|
||||
if (this.cmpCalendar && date && date instanceof Date && !isNaN(date))
|
||||
this.cmpCalendar && this.cmpCalendar.setDate(date);
|
||||
}
|
||||
}
|
||||
})());
|
||||
});
|
||||
127
apps/common/main/lib/component/Label.js
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2022
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* Label.js
|
||||
*
|
||||
* Created by Julia Radzhabova on 1/20/22
|
||||
* Copyright (c) 2022 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
if (Common === undefined)
|
||||
var Common = {};
|
||||
|
||||
define([
|
||||
'common/main/lib/component/BaseView',
|
||||
'underscore'
|
||||
], function (base, _) {
|
||||
'use strict';
|
||||
|
||||
Common.UI.Label = Common.UI.BaseView.extend({
|
||||
|
||||
options : {
|
||||
id : null,
|
||||
disabled : false,
|
||||
cls : '',
|
||||
iconCls : '',
|
||||
style : '',
|
||||
caption : ''
|
||||
},
|
||||
|
||||
template : _.template('<label class="label-cmp <%= cls %>" style="<%= style %>">' +
|
||||
'<% if ( iconCls ) { %>' +
|
||||
'<i class="icon <%= iconCls %>"></i>' +
|
||||
'<% } %>' +
|
||||
'<span class="caption"><%= caption %></span>' +
|
||||
'</label>'),
|
||||
|
||||
initialize : function(options) {
|
||||
Common.UI.BaseView.prototype.initialize.call(this, options);
|
||||
|
||||
this.id = this.options.id || Common.UI.getId();
|
||||
this.cls = this.options.cls;
|
||||
this.iconCls = this.options.iconCls;
|
||||
this.style = this.options.style;
|
||||
this.disabled = this.options.disabled;
|
||||
this.caption = this.options.caption;
|
||||
this.template = this.options.template || this.template;
|
||||
this.rendered = false;
|
||||
|
||||
if (this.options.el)
|
||||
this.render();
|
||||
},
|
||||
|
||||
render: function (parentEl) {
|
||||
var me = this;
|
||||
if (!me.rendered) {
|
||||
var elem = this.template({
|
||||
id : me.id,
|
||||
cls : me.cls,
|
||||
iconCls : me.iconCls,
|
||||
style : me.style,
|
||||
caption : me.caption
|
||||
});
|
||||
if (parentEl) {
|
||||
this.setElement(parentEl, false);
|
||||
parentEl.html(elem);
|
||||
} else {
|
||||
me.$el.html(elem);
|
||||
}
|
||||
|
||||
this.$label = me.$el.find('.label-cmp');
|
||||
this.rendered = true;
|
||||
}
|
||||
|
||||
if (this.disabled)
|
||||
this.setDisabled(this.disabled);
|
||||
|
||||
return this;
|
||||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
if (!this.rendered)
|
||||
return;
|
||||
|
||||
disabled = (disabled===true);
|
||||
if (disabled !== this.disabled) {
|
||||
this.$label.toggleClass('disabled', disabled);
|
||||
}
|
||||
|
||||
this.disabled = disabled;
|
||||
},
|
||||
|
||||
isDisabled: function() {
|
||||
return this.disabled;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
@ -59,7 +59,7 @@ define([
|
|||
},
|
||||
|
||||
template: _.template([
|
||||
'<div class="listview inner <%= cls %>"></div>'
|
||||
'<div class="listview inner <%= cls %>" <% if (options.dataHint) { %> data-hint="<%= options.dataHint %>" <% } if (options.dataHintDirection) { %> data-hint-direction="<%= options.dataHintDirection %>" <% } if (options.dataHintOffset) { %> data-hint-offset="<%= options.dataHintOffset %>" <% } %>></div>'
|
||||
].join('')),
|
||||
|
||||
onResetItems : function() {
|
||||
|
|
|
|||
|
|
@ -104,22 +104,29 @@ define([
|
|||
return this;
|
||||
},
|
||||
|
||||
internalShow: function() {
|
||||
this.ownerEl.append(this.maskeEl);
|
||||
internalShowLoader: function() {
|
||||
this.ownerEl.append(this.loaderEl);
|
||||
|
||||
this.loaderEl.css('min-width', $('.asc-loadmask-title', this.loaderEl).width() + 105);
|
||||
|
||||
if (this.ownerEl && this.ownerEl.closest('.asc-window.modal').length==0)
|
||||
Common.util.Shortcuts.suspendEvents();
|
||||
},
|
||||
|
||||
show: function(immediately){
|
||||
// The owner is already masked
|
||||
if (!!this.ownerEl.ismasked)
|
||||
return this;
|
||||
internalShowMask: function() {
|
||||
if (!!this.ownerEl.ismasked) return;
|
||||
|
||||
this.ownerEl.ismasked = true;
|
||||
this.ownerEl.append(this.maskeEl);
|
||||
},
|
||||
|
||||
show: function(immediately){
|
||||
this.internalShowMask();
|
||||
|
||||
// The owner is already masked
|
||||
if (!!this.ownerEl.hasloader)
|
||||
return this;
|
||||
|
||||
this.ownerEl.hasloader = true;
|
||||
|
||||
var me = this;
|
||||
if (me.title != me.options.title) {
|
||||
|
|
@ -128,11 +135,11 @@ define([
|
|||
}
|
||||
|
||||
if (immediately) {
|
||||
me.internalShow();
|
||||
me.internalShowLoader();
|
||||
} else if (!me.timerId) {
|
||||
// show mask after 500 ms if it wont be hided
|
||||
me.timerId = setTimeout(function () {
|
||||
me.internalShow();
|
||||
me.internalShowLoader();
|
||||
},500);
|
||||
}
|
||||
|
||||
|
|
@ -145,20 +152,23 @@ define([
|
|||
clearTimeout(this.timerId);
|
||||
this.timerId = 0;
|
||||
}
|
||||
if (ownerEl && ownerEl.ismasked) {
|
||||
|
||||
ownerEl && ownerEl.ismasked && this.maskeEl && this.maskeEl.remove();
|
||||
delete ownerEl.ismasked;
|
||||
|
||||
if (ownerEl && ownerEl.hasloader) {
|
||||
if (ownerEl.closest('.asc-window.modal').length==0 && !Common.Utils.ModalWindow.isVisible())
|
||||
Common.util.Shortcuts.resumeEvents();
|
||||
|
||||
this.maskeEl && this.maskeEl.remove();
|
||||
this.loaderEl && this.loaderEl.remove();
|
||||
}
|
||||
delete ownerEl.ismasked;
|
||||
delete ownerEl.hasloader;
|
||||
},
|
||||
|
||||
setTitle: function(title) {
|
||||
this.title = title;
|
||||
|
||||
if (this.ownerEl && this.ownerEl.ismasked && this.loaderEl){
|
||||
if (this.ownerEl && this.ownerEl.hasloader && this.loaderEl){
|
||||
var el = $('.asc-loadmask-title', this.loaderEl);
|
||||
el.html(title);
|
||||
this.loaderEl.css('min-width', el.width() + 105);
|
||||
|
|
@ -172,7 +182,7 @@ define([
|
|||
updatePosition: function() {
|
||||
var ownerEl = this.ownerEl,
|
||||
loaderEl = this.loaderEl;
|
||||
if (ownerEl && ownerEl.ismasked && loaderEl){
|
||||
if (ownerEl && ownerEl.hasloader && loaderEl){
|
||||
loaderEl.css({
|
||||
top : Math.round(ownerEl.height() / 2 - (loaderEl.height() + parseInt(loaderEl.css('padding-top')) + parseInt(loaderEl.css('padding-bottom'))) / 2) + 'px',
|
||||
left: Math.round(ownerEl.width() / 2 - (loaderEl.width() + parseInt(loaderEl.css('padding-left')) + parseInt(loaderEl.css('padding-right'))) / 2) + 'px'
|
||||
|
|
|
|||
|
|
@ -171,6 +171,7 @@ define([
|
|||
this.menuAlignEl = this.options.menuAlignEl;
|
||||
this.scrollAlwaysVisible = this.options.scrollAlwaysVisible;
|
||||
this.search = this.options.search;
|
||||
this.outerMenu = this.options.outerMenu;
|
||||
|
||||
if (this.options.restoreHeight) {
|
||||
this.options.restoreHeight = (typeof (this.options.restoreHeight) == "number") ? this.options.restoreHeight : (this.options.maxHeight ? this.options.maxHeight : 100000);
|
||||
|
|
@ -267,6 +268,8 @@ define([
|
|||
this.parentEl.on('hide.bs.dropdown', _.bind(me.onBeforeHideMenu, me));
|
||||
this.parentEl.on('hidden.bs.dropdown', _.bind(me.onAfterHideMenu, me));
|
||||
this.parentEl.on('keydown.after.bs.dropdown', _.bind(me.onAfterKeydownMenu, me));
|
||||
this.parentEl.on('keydown.before.bs.dropdown', _.bind(me.onBeforeKeydownMenu, me));
|
||||
this.options.innerMenus && this.on('keydown:before', _.bind(me.onBeforeKeyDown, me));
|
||||
|
||||
menuRoot.hover(
|
||||
function(e) { me.isOver = true;},
|
||||
|
|
@ -374,12 +377,12 @@ define([
|
|||
onBeforeShowMenu: function(e) {
|
||||
Common.NotificationCenter.trigger('menu:show');
|
||||
this.trigger('show:before', this, e);
|
||||
this.alignPosition();
|
||||
(e && e.target===e.currentTarget) && this.alignPosition();
|
||||
},
|
||||
|
||||
onAfterShowMenu: function(e) {
|
||||
this.trigger('show:after', this, e);
|
||||
if (this.scroller) {
|
||||
if (this.scroller && e && e.target===e.currentTarget) {
|
||||
var menuRoot = this.menuRoot;
|
||||
if (this.wheelSpeed===undefined) {
|
||||
var item = menuRoot.find('> li:first'),
|
||||
|
|
@ -453,6 +456,21 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
onBeforeKeydownMenu: function(e) {
|
||||
if (e.isDefaultPrevented() || !(this.outerMenu && this.outerMenu.menu))
|
||||
return;
|
||||
|
||||
if (e.keyCode == Common.UI.Keys.UP || e.keyCode == Common.UI.Keys.DOWN) {
|
||||
var $items = this.menuRoot.find('> li').find('> a'),
|
||||
index = $items.index($items.filter(':focus'));
|
||||
if (e.keyCode==Common.UI.Keys.UP && index==0 || e.keyCode == Common.UI.Keys.DOWN && index==$items.length-1) {
|
||||
this.outerMenu.menu.focusOuter(e, this.outerMenu.index);
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
selectCandidate: function() {
|
||||
var index = this._search.index || 0,
|
||||
re = new RegExp('^' + ((this._search.full) ? this._search.text : this._search.char), 'i'),
|
||||
|
|
@ -491,6 +509,85 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
onBeforeKeyDown: function(menu, e) {
|
||||
if (e.keyCode == Common.UI.Keys.RETURN) {
|
||||
var li = $(e.target).closest('li');
|
||||
if (li.length>0) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
li.click();
|
||||
}
|
||||
Common.UI.Menu.Manager.hideAll();
|
||||
} else if (e.namespace!=="after.bs.dropdown" && (e.keyCode == Common.UI.Keys.DOWN || e.keyCode == Common.UI.Keys.UP)) {
|
||||
if ( this.menuRoot.length<1 || $(e.target).closest('ul[role=menu]').get(0) !== this.menuRoot.get(0)) return;
|
||||
|
||||
var innerMenu = this.findInnerMenu(e.keyCode);
|
||||
if (innerMenu && innerMenu.focusInner) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
_.delay(function() {
|
||||
innerMenu.focusInner(e);
|
||||
}, 10);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setInnerMenu: function(menus) {
|
||||
if (this.options.innerMenus || !menus) return;
|
||||
|
||||
this.options.innerMenus = menus;
|
||||
this.rendered && this.on('keydown:before', _.bind(this.onBeforeKeyDown, this));
|
||||
},
|
||||
|
||||
findInnerMenu: function(direction, index, findOuter) {
|
||||
if (!this.options.innerMenus) return;
|
||||
|
||||
var $allItems = $('> li', this.menuRoot),
|
||||
$liItems = $('> li:not(.divider):not(.disabled):visible', this.menuRoot),
|
||||
length = $liItems.length;
|
||||
if (!length) return;
|
||||
|
||||
var step = 0;
|
||||
while (step<length) {
|
||||
var focusedIndex = (index!==undefined) ? $liItems.index($allItems.eq(index)) : $liItems.index($liItems.find('> a').filter(':focus').parent());
|
||||
var checkedIndex = (direction == Common.UI.Keys.DOWN) ? (focusedIndex<length-1 ? focusedIndex+1 : 0) : (focusedIndex>0 ? focusedIndex-1 : length-1),
|
||||
checkedItem = $liItems.eq(checkedIndex);
|
||||
index = $allItems.index(checkedItem);
|
||||
|
||||
for (var i=0; i<this.options.innerMenus.length; i++) {
|
||||
var item = this.options.innerMenus[i];
|
||||
if (item && item.menu && item.index==index) {
|
||||
return item.menu;
|
||||
}
|
||||
}
|
||||
if (checkedItem.find('> a').length>0)
|
||||
return findOuter ? checkedItem : undefined;
|
||||
step++;
|
||||
}
|
||||
},
|
||||
|
||||
focusInner: function(e) {
|
||||
if (e.keyCode == Common.UI.Keys.UP)
|
||||
this.items[this.items.length-1].cmpEl.find('> a').focus();
|
||||
else
|
||||
this.items[0].cmpEl.find('> a').focus();
|
||||
},
|
||||
|
||||
focusOuter: function(e, index) {
|
||||
var innerMenu = this.findInnerMenu(e.keyCode, index, true);
|
||||
if (innerMenu && innerMenu.focusInner) {
|
||||
_.delay(function() {
|
||||
innerMenu.focusInner(e);
|
||||
}, 10);
|
||||
} else if (innerMenu) {
|
||||
innerMenu.find('> a').focus();
|
||||
} else {
|
||||
var $items = $('> li:not(.divider):not(.disabled):visible', this.menuRoot).find('> a'),
|
||||
length = $items.length;
|
||||
length && $items.eq(e.keyCode == Common.UI.Keys.UP ? (index<0 ? length-1 : index) : (index>=length-1 ? 0 : index+1)).focus();
|
||||
}
|
||||
},
|
||||
|
||||
onItemClick: function(item, e) {
|
||||
if (!item.menu) this.isOver = false;
|
||||
if (item.options.stopPropagation) {
|
||||
|
|
@ -554,7 +651,28 @@ define([
|
|||
if (left < 0)
|
||||
left = 0;
|
||||
|
||||
if (this.options.restoreHeight) {
|
||||
if (this.options.restoreHeightAndTop) { // can change top position, if top<0 - then change menu height
|
||||
var cg = Common.Utils.croppedGeometry();
|
||||
docH = cg.height - 10;
|
||||
menuRoot.css('max-height', 'none');
|
||||
menuH = menuRoot.outerHeight();
|
||||
if (top + menuH > docH + cg.top) {
|
||||
top = docH - menuH;
|
||||
}
|
||||
if (top < cg.top)
|
||||
top = cg.top;
|
||||
if (top + menuH > docH + cg.top) {
|
||||
menuRoot.css('max-height', (docH - top) + 'px');
|
||||
(!this.scroller) && (this.scroller = new Common.UI.Scroller({
|
||||
el: this.$el.find('> .dropdown-menu '),
|
||||
minScrollbarLength: 30,
|
||||
suppressScrollX: true,
|
||||
alwaysVisibleY: this.scrollAlwaysVisible
|
||||
}));
|
||||
this.wheelSpeed = undefined;
|
||||
}
|
||||
this.scroller && this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
} else if (this.options.restoreHeight) {
|
||||
if (typeof (this.options.restoreHeight) == "number") {
|
||||
if (top + menuH > docH) {
|
||||
menuRoot.css('max-height', (docH - top) + 'px');
|
||||
|
|
@ -588,7 +706,7 @@ define([
|
|||
if (this.options.additionalAlign)
|
||||
this.options.additionalAlign.call(this, menuRoot, left, top);
|
||||
else {
|
||||
var _css = {left: Math.ceil(left), top: Math.ceil(top)};
|
||||
var _css = {left: left, top: top};
|
||||
if (!(menuH < docH)) _css['margin-top'] = 0;
|
||||
|
||||
menuRoot.css(_css);
|
||||
|
|
@ -857,12 +975,12 @@ define([
|
|||
onBeforeShowMenu: function(e) {
|
||||
Common.NotificationCenter.trigger('menu:show');
|
||||
this.trigger('show:before', this, e);
|
||||
this.alignPosition();
|
||||
(e && e.target===e.currentTarget) && this.alignPosition();
|
||||
},
|
||||
|
||||
onAfterShowMenu: function(e) {
|
||||
this.trigger('show:after', this, e);
|
||||
if (this.scroller) {
|
||||
if (this.scroller && e && e.target===e.currentTarget) {
|
||||
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
var menuRoot = this.menuRoot,
|
||||
$selected = menuRoot.find('> li .checked');
|
||||
|
|
|
|||
|
|
@ -98,17 +98,22 @@ define([
|
|||
checked : false,
|
||||
allowDepress: false,
|
||||
disabled : false,
|
||||
visible : true,
|
||||
value : null,
|
||||
toggleGroup : null,
|
||||
iconCls : '',
|
||||
menu : null,
|
||||
canFocused : true
|
||||
canFocused : true,
|
||||
dataHint : '',
|
||||
dataHintDirection: '',
|
||||
dataHintOffset: '',
|
||||
dataHintTitle: ''
|
||||
},
|
||||
|
||||
tagName : 'li',
|
||||
|
||||
template: _.template([
|
||||
'<a id="<%= id %>" style="<%= style %>" <% if(options.canFocused) { %> tabindex="-1" type="menuitem" <% }; if(!_.isUndefined(options.stopPropagation)) { %> data-stopPropagation="true" <% }; %> >',
|
||||
'<a id="<%= id %>" style="<%= style %>" <% if(options.canFocused) { %> tabindex="-1" type="menuitem" <% }; if(!_.isUndefined(options.stopPropagation)) { %> data-stopPropagation="true" <% }; if(!_.isUndefined(options.dataHint)) { %> data-hint="<%= options.dataHint %>" <% }; if(!_.isUndefined(options.dataHintDirection)) { %> data-hint-direction="<%= options.dataHintDirection %>" <% }; if(!_.isUndefined(options.dataHintOffset)) { %> data-hint-offset="<%= options.dataHintOffset %>" <% }; if(options.dataHintTitle) { %> data-hint-title="<%= options.dataHintTitle %>" <% }; %> >',
|
||||
'<% if (!_.isEmpty(iconCls)) { %>',
|
||||
'<span class="menu-item-icon <%= iconCls %>"></span>',
|
||||
'<% } %>',
|
||||
|
|
@ -130,6 +135,7 @@ define([
|
|||
this.checked = me.options.checked;
|
||||
me.allowDepress = me.options.allowDepress;
|
||||
this.disabled = me.options.disabled;
|
||||
this.visible = me.options.visible;
|
||||
this.value = me.options.value;
|
||||
this.toggleGroup = me.options.toggleGroup;
|
||||
this.template = me.options.template || this.template;
|
||||
|
|
@ -213,6 +219,9 @@ define([
|
|||
});
|
||||
}
|
||||
|
||||
if (this.cls)
|
||||
el.addClass(this.cls);
|
||||
|
||||
if (this.disabled)
|
||||
el.toggleClass('disabled', this.disabled);
|
||||
|
||||
|
|
@ -222,6 +231,8 @@ define([
|
|||
Common.UI.ToggleManager.register(me);
|
||||
}
|
||||
}
|
||||
if (!this.visible)
|
||||
this.setVisible(this.visible);
|
||||
|
||||
me.cmpEl = el;
|
||||
me.rendered = true;
|
||||
|
|
@ -290,6 +301,7 @@ define([
|
|||
},
|
||||
|
||||
onItemMouseDown: function(e) {
|
||||
Common.UI.HintManager && Common.UI.HintManager.clearHints();
|
||||
if (e.which != 1) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
|
|
|||
|
|
@ -110,7 +110,10 @@ define([
|
|||
hold : true,
|
||||
speed : 'medium',
|
||||
width : 90,
|
||||
allowDecimal: true
|
||||
allowDecimal: true,
|
||||
dataHint : '',
|
||||
dataHintDirection: '',
|
||||
dataHintOffset: ''
|
||||
},
|
||||
|
||||
disabled : false,
|
||||
|
|
@ -118,7 +121,7 @@ define([
|
|||
rendered : false,
|
||||
|
||||
template :
|
||||
'<input type="text" class="form-control" spellcheck="false">' +
|
||||
'<input type="text" class="form-control" spellcheck="false" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">' +
|
||||
'<div class="spinner-buttons">' +
|
||||
'<button type="button" class="spinner-up"><i class="arrow"></i></button>' +
|
||||
'<button type="button" class="spinner-down"><i class="arrow"></i></button>' +
|
||||
|
|
@ -144,8 +147,13 @@ define([
|
|||
el.on('input', '.form-control', _.bind(this.onInput, this));
|
||||
if (!this.options.allowDecimal)
|
||||
el.on('keypress', '.form-control', _.bind(this.onKeyPress, this));
|
||||
el.on('focus', 'input.form-control', function() {
|
||||
setTimeout(function(){me.$input && me.$input.select();}, 1);
|
||||
el.on('focus', 'input.form-control', function(e) {
|
||||
setTimeout(function(){
|
||||
if (me.$input) {
|
||||
me.$input[0].selectionStart = 0;
|
||||
me.$input[0].selectionEnd = me.$input.val().length;
|
||||
}
|
||||
}, 1);
|
||||
});
|
||||
Common.Utils.isGecko && el.on('blur', 'input.form-control', function() {
|
||||
setTimeout(function(){
|
||||
|
|
@ -185,7 +193,13 @@ define([
|
|||
|
||||
render: function () {
|
||||
var el = this.$el || $(this.el);
|
||||
el.html(this.template);
|
||||
|
||||
var template = _.template(this.template);
|
||||
el.html($(template({
|
||||
dataHint : this.options.dataHint,
|
||||
dataHintDirection: this.options.dataHintDirection,
|
||||
dataHintOffset : this.options.dataHintOffset
|
||||
})));
|
||||
|
||||
this.$input = el.find('.form-control');
|
||||
this.rendered = true;
|
||||
|
|
@ -197,6 +211,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
var el = this.$el || $(this.el);
|
||||
if (disabled !== this.disabled) {
|
||||
el.find('button').toggleClass('disabled', disabled);
|
||||
|
|
@ -233,6 +248,14 @@ define([
|
|||
this.options.step = step;
|
||||
},
|
||||
|
||||
getMinValue: function(){
|
||||
return this.options.minValue;
|
||||
},
|
||||
|
||||
getMaxValue: function(){
|
||||
return this.options.maxValue;
|
||||
},
|
||||
|
||||
getNumberValue: function(){
|
||||
return this.checkAutoText(this.value) ? -1 : parseFloat(this.value);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ define([
|
|||
var $scrollL;
|
||||
var optsFold = {timeout: 2000};
|
||||
var config = {};
|
||||
var btnsMore = [];
|
||||
|
||||
var onScrollTabs = function(opts, e) {
|
||||
var sv = $boxTabs.scrollLeft();
|
||||
|
|
@ -93,19 +94,20 @@ define([
|
|||
|
||||
var _template_tabs =
|
||||
'<section class="tabs">' +
|
||||
'<a class="scroll left"></a>' +
|
||||
'<a class="scroll left" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="V"></a>' +
|
||||
'<ul>' +
|
||||
'<% for(var i in items) { %>' +
|
||||
'<% if (typeof items[i] == "object") { %>' +
|
||||
'<li class="ribtab' +
|
||||
'<% if (items[i].haspanel===false) print(" x-lone") %>' +
|
||||
'<% if (items[i].extcls) print(\' \' + items[i].extcls) %>">' +
|
||||
'<a data-tab="<%= items[i].action %>" data-title="<%= items[i].caption %>"><%= items[i].caption %></a>' +
|
||||
'<% if (items[i].extcls) print(\' \' + items[i].extcls) %>"' +
|
||||
'<% if (typeof items[i].layoutname == "string") print(" data-layout-name=" + \' \' + items[i].layoutname) + \' \' %>>' +
|
||||
'<a data-tab="<%= items[i].action %>" data-title="<%= items[i].caption %>" data-hint="0" data-hint-direction="bottom" data-hint-offset="small" <% if (typeof items[i].dataHintTitle !== "undefined") { %> data-hint-title="<%= items[i].dataHintTitle %>" <% } %>><%= items[i].caption %></a>' +
|
||||
'</li>' +
|
||||
'<% } %>' +
|
||||
'<% } %>' +
|
||||
'</ul>' +
|
||||
'<a class="scroll right"></a>' +
|
||||
'<a class="scroll right" data-hint="0" data-hint-direction="bottom" data-hint-offset="-7, 0" data-hint-title="R"></a>' +
|
||||
'</section>';
|
||||
|
||||
this.$layout = $(options.template({
|
||||
|
|
@ -118,6 +120,7 @@ define([
|
|||
Common.NotificationCenter.on('tab:visible', _.bind(function(action, visible){
|
||||
this.setVisible(action, visible);
|
||||
}, this));
|
||||
Common.NotificationCenter.on('tab:resize', _.bind(this.onResizeTabs, this));
|
||||
},
|
||||
|
||||
afterRender: function() {
|
||||
|
|
@ -125,7 +128,9 @@ define([
|
|||
|
||||
$boxTabs = me.$('.tabs > ul');
|
||||
me.$tabs = $boxTabs.find('> li');
|
||||
me.$panels = me.$('.box-panels > .panel');
|
||||
me.$boxpanels = me.$('.box-panels');
|
||||
me.$panels = me.$boxpanels.find('> .panel');
|
||||
|
||||
optsFold.$bar = me.$('.toolbar');
|
||||
var $scrollR = me.$('.tabs .scroll.right');
|
||||
$scrollL = me.$('.tabs .scroll.left');
|
||||
|
|
@ -225,7 +230,7 @@ define([
|
|||
// optsFold.timer = setTimeout(this.collapse, optsFold.timeout);
|
||||
},
|
||||
|
||||
onResize: function(e) {
|
||||
onResizeTabs: function(e) {
|
||||
if ( this.hasTabInvisible() ) {
|
||||
if ( !$boxTabs.parent().hasClass('short') )
|
||||
$boxTabs.parent().addClass('short');
|
||||
|
|
@ -233,7 +238,11 @@ define([
|
|||
if ( $boxTabs.parent().hasClass('short') ) {
|
||||
$boxTabs.parent().removeClass('short');
|
||||
}
|
||||
},
|
||||
|
||||
onResize: function(e) {
|
||||
this.onResizeTabs();
|
||||
this.hideMoreBtns();
|
||||
this.processPanelVisible();
|
||||
},
|
||||
|
||||
|
|
@ -260,7 +269,7 @@ define([
|
|||
me._timerSetTab = false;
|
||||
}, 500);
|
||||
me.setTab(tab);
|
||||
me.processPanelVisible(null, true);
|
||||
// me.processPanelVisible(null, true);
|
||||
if ( !me.isFolded ) {
|
||||
if ( me.dblclick_timer ) clearTimeout(me.dblclick_timer);
|
||||
me.dblclick_timer = setTimeout(function () {
|
||||
|
|
@ -285,11 +294,14 @@ define([
|
|||
if ( tab ) {
|
||||
me.$tabs.removeClass('active');
|
||||
me.$panels.removeClass('active');
|
||||
me.hideMoreBtns();
|
||||
|
||||
var panel = this.$panels.filter('[data-tab=' + tab + ']');
|
||||
if ( panel.length ) {
|
||||
this.lastPanel = tab;
|
||||
panel.addClass('active');
|
||||
me.setMoreButton(tab, panel);
|
||||
me.processPanelVisible(null, true, true);
|
||||
}
|
||||
|
||||
if ( panel.length ) {
|
||||
|
|
@ -316,7 +328,7 @@ define([
|
|||
return config.tabs[index].action;
|
||||
}
|
||||
|
||||
var _tabTemplate = _.template('<li class="ribtab" style="display: none;"><a data-tab="<%= action %>" data-title="<%= caption %>"><%= caption %></a></li>');
|
||||
var _tabTemplate = _.template('<li class="ribtab" style="display: none;" <% if (typeof layoutname == "string") print(" data-layout-name=" + \' \' + layoutname) + \' \' %>><a data-tab="<%= action %>" data-title="<%= caption %>" data-hint="0" data-hint-direction="bottom" data-hint-offset="small" <% if (typeof dataHintTitle !== "undefined") { %> data-hint-title="<%= dataHintTitle %>" <% } %> ><%= caption %></a></li>');
|
||||
|
||||
config.tabs[after + 1] = tab;
|
||||
var _after_action = _get_tab_action(after);
|
||||
|
|
@ -374,7 +386,7 @@ define([
|
|||
* hide button's caption to decrease panel width
|
||||
* ##adopt-panel-width
|
||||
**/
|
||||
processPanelVisible: function(panel, now) {
|
||||
processPanelVisible: function(panel, now, force) {
|
||||
var me = this;
|
||||
if ( me._timer_id ) clearTimeout(me._timer_id);
|
||||
|
||||
|
|
@ -386,6 +398,7 @@ define([
|
|||
_rightedge = data.rightedge,
|
||||
_btns = data.buttons,
|
||||
_flex = data.flex;
|
||||
var more_section = $active.find('.more-box');
|
||||
|
||||
if ( !_rightedge ) {
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
|
|
@ -406,44 +419,53 @@ define([
|
|||
data.flex = _flex;
|
||||
}
|
||||
|
||||
if ( _rightedge > _maxright) {
|
||||
if (_flex.length>0) {
|
||||
for (var i=0; i<_flex.length; i++) {
|
||||
var item = _flex[i].el;
|
||||
if (item.outerWidth() > parseInt(item.css('min-width')))
|
||||
return;
|
||||
else
|
||||
item.css('width', item.css('min-width'));
|
||||
}
|
||||
}
|
||||
for (var i=_btns.length-1; i>=0; i--) {
|
||||
var btn = _btns[i];
|
||||
if ( !btn.hasClass('compactwidth') ) {
|
||||
btn.addClass('compactwidth');
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
if (_rightedge <= _maxright)
|
||||
break;
|
||||
}
|
||||
}
|
||||
data.rightedge = _rightedge;
|
||||
} else {
|
||||
for (var i=0; i<_btns.length; i++) {
|
||||
var btn = _btns[i];
|
||||
if ( btn.hasClass('compactwidth') ) {
|
||||
btn.removeClass('compactwidth');
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
if ( _rightedge > _maxright) {
|
||||
btn.addClass('compactwidth');
|
||||
if ( (_rightedge > _maxright)) {
|
||||
if (!more_section.is(':visible') ) {
|
||||
if (_flex.length>0) {
|
||||
for (var i=0; i<_flex.length; i++) {
|
||||
var item = _flex[i].el;
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
break;
|
||||
if (item.outerWidth() > parseInt(item.css('min-width'))) {
|
||||
data.rightedge = _rightedge;
|
||||
return;
|
||||
} else
|
||||
item.css('width', item.css('min-width'));
|
||||
}
|
||||
}
|
||||
for (var i=_btns.length-1; i>=0; i--) {
|
||||
var btn = _btns[i];
|
||||
if ( !btn.hasClass('compactwidth') && !btn.hasClass('slot-btn-more')) {
|
||||
btn.addClass('compactwidth');
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
if (_rightedge <= _maxright)
|
||||
break;
|
||||
}
|
||||
}
|
||||
data.rightedge = _rightedge;
|
||||
}
|
||||
data.rightedge = _rightedge;
|
||||
if (_flex.length>0 && $active.find('.btn-slot.compactwidth').length<1) {
|
||||
for (var i=0; i<_flex.length; i++) {
|
||||
var item = _flex[i];
|
||||
item.el.css('width', item.width);
|
||||
me.resizeToolbar(force);
|
||||
} else {
|
||||
more_section.is(':visible') && me.resizeToolbar(force);
|
||||
if (!more_section.is(':visible')) {
|
||||
for (var i=0; i<_btns.length; i++) {
|
||||
var btn = _btns[i];
|
||||
if ( btn.hasClass('compactwidth') ) {
|
||||
btn.removeClass('compactwidth');
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
if ( _rightedge > _maxright) {
|
||||
btn.addClass('compactwidth');
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
data.rightedge = _rightedge;
|
||||
if (_flex.length>0 && $active.find('.btn-slot.compactwidth').length<1) {
|
||||
for (var i=0; i<_flex.length; i++) {
|
||||
var item = _flex[i];
|
||||
item.el.css('width', item.width);
|
||||
data.rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -476,6 +498,303 @@ define([
|
|||
this.$tabs.find('> a[data-tab=' + tab + ']').parent().css('display', visible ? '' : 'none');
|
||||
this.onResize();
|
||||
}
|
||||
},
|
||||
|
||||
setMoreButton: function(tab, panel) {
|
||||
var me = this;
|
||||
if (!btnsMore[tab]) {
|
||||
var top = panel.position().top;
|
||||
var box = $('<div class="more-box" style="position: absolute;right: 0; top:'+ top +'px; padding-left: 12px;padding-right: 6px;display: none;">' +
|
||||
'<div class="separator long" style="position: relative;display: table-cell;"></div>' +
|
||||
'<div class="group" style=""><span class="btn-slot text x-huge slot-btn-more"></span></div>' +
|
||||
'</div>');
|
||||
panel.append(box);
|
||||
btnsMore[tab] = new Common.UI.Button({
|
||||
cls: 'btn-toolbar x-huge icon-top dropdown-manual',
|
||||
caption: Common.Locale.get("textMoreButton",{name:"Common.Translation", default: "More"}),
|
||||
iconCls: 'toolbar__icon btn-more',
|
||||
enableToggle: true
|
||||
});
|
||||
btnsMore[tab].render(box.find('.slot-btn-more'));
|
||||
btnsMore[tab].on('toggle', function(btn, state, e) {
|
||||
(state) ? me.onMoreShow(btn, e) : me.onMoreHide(btn, e);
|
||||
Common.NotificationCenter.trigger('more:toggle', btn, state);
|
||||
});
|
||||
var moreContainer = $('<div class="dropdown-menu more-container" data-tab="' + tab + '"><div style="display: inline;"></div></div>');
|
||||
optsFold.$bar.append(moreContainer);
|
||||
btnsMore[tab].panel = moreContainer.find('div');
|
||||
}
|
||||
this.$moreBar = btnsMore[tab].panel;
|
||||
},
|
||||
|
||||
resizeToolbar: function(reset) {
|
||||
var $active = this.$panels.filter('.active'),
|
||||
more_section = $active.find('.more-box'),
|
||||
more_section_width = parseInt(more_section.css('width')) || 0,
|
||||
box_controls_width = $active.parents('.box-controls').width(),
|
||||
_maxright = box_controls_width,
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right,
|
||||
delta = (this._prevBoxWidth) ? (_maxright - this._prevBoxWidth) : -1,
|
||||
hideAllMenus = false;
|
||||
this._prevBoxWidth = _maxright;
|
||||
more_section.is(':visible') && (_maxright -= more_section_width);
|
||||
|
||||
if (this.$moreBar && this.$moreBar.parent().is(':visible')) {
|
||||
this.$moreBar.parent().css('max-width', Common.Utils.innerWidth());
|
||||
}
|
||||
|
||||
if ( (reset || delta<0) && (_rightedge > _maxright)) { // from toolbar to more section
|
||||
if (!more_section.is(':visible') ) {
|
||||
more_section.css('display', "");
|
||||
_maxright -= parseInt(more_section.css('width'));
|
||||
}
|
||||
var last_separator = null,
|
||||
last_group = null,
|
||||
prevchild = this.$moreBar.children().filter("[data-hidden-tb-item!=true]");
|
||||
if (prevchild.length>0) {
|
||||
prevchild = $(prevchild[0]);
|
||||
if (prevchild.hasClass('separator'))
|
||||
last_separator = prevchild;
|
||||
if (prevchild.hasClass('group') && prevchild.attr('group-state') == 'open')
|
||||
last_group = prevchild;
|
||||
}
|
||||
var items = $active.find('> div:not(.more-box)');
|
||||
var need_break = false;
|
||||
for (var i=items.length-1; i>=0; i--) {
|
||||
var item = $(items[i]);
|
||||
if (!item.is(':visible') && !item.attr('hidden-on-resize')) { // move invisible items as is and set special attr
|
||||
item.attr('data-hidden-tb-item', true);
|
||||
this.$moreBar.prepend(item);
|
||||
hideAllMenus = true;
|
||||
} else if (item.hasClass('group')) {
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
if (_rightedge <= _maxright) // stop moving items
|
||||
break;
|
||||
|
||||
var offset = item.offset(),
|
||||
item_width = item.outerWidth(),
|
||||
children = item.children();
|
||||
if (!item.attr('inner-width') && item.attr('group-state') !== 'open') {
|
||||
item.attr('inner-width', item_width);
|
||||
for (var j=children.length-1; j>=0; j--) {
|
||||
var child = $(children[j]);
|
||||
child.attr('inner-width', child.outerWidth());
|
||||
}
|
||||
}
|
||||
if ((offset.left > _maxright || children.length==1) && item.attr('group-state') != 'open') {
|
||||
// move group
|
||||
this.$moreBar.prepend(item);
|
||||
if (last_separator) {
|
||||
last_separator.css('display', '');
|
||||
last_separator.removeAttr('hidden-on-resize');
|
||||
}
|
||||
hideAllMenus = true;
|
||||
} else if ( offset.left+item_width > _maxright ) {
|
||||
// move buttons from group
|
||||
for (var j=children.length-1; j>=0; j--) {
|
||||
var child = $(children[j]);
|
||||
if (child.hasClass('elset')) {
|
||||
this.$moreBar.prepend(item);
|
||||
if (last_separator) {
|
||||
last_separator.css('display', '');
|
||||
last_separator.removeAttr('hidden-on-resize');
|
||||
}
|
||||
hideAllMenus = true;
|
||||
break;
|
||||
} else {
|
||||
var child_offset = child.offset(),
|
||||
child_width = child.outerWidth();
|
||||
if (child_offset.left+child_width>_maxright) {
|
||||
if (!last_group) {
|
||||
last_group = $('<div></div>');
|
||||
last_group.addClass(items[i].className);
|
||||
var attrs = items[i].attributes;
|
||||
for (var k = 0; k < attrs.length; k++) {
|
||||
last_group.attr(attrs[k].name, attrs[k].value);
|
||||
}
|
||||
this.$moreBar.prepend(last_group);
|
||||
if (last_separator) {
|
||||
last_separator.css('display', '');
|
||||
last_separator.removeAttr('hidden-on-resize');
|
||||
}
|
||||
}
|
||||
last_group.prepend(child);
|
||||
hideAllMenus = true;
|
||||
} else {
|
||||
need_break = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.children().length<1) { // all buttons are moved
|
||||
item.remove();
|
||||
last_group && last_group.removeAttr('group-state').attr('inner-width', item.attr('inner-width'));
|
||||
last_group = null;
|
||||
} else {
|
||||
last_group && last_group.attr('group-state', 'open') && item.attr('group-state', 'open');
|
||||
}
|
||||
if (need_break)
|
||||
break;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
last_separator = null;
|
||||
} else if (item.hasClass('separator')) {
|
||||
this.$moreBar.prepend(item);
|
||||
item.css('display', 'none');
|
||||
item.attr('hidden-on-resize', true);
|
||||
last_separator = item;
|
||||
hideAllMenus = true;
|
||||
}
|
||||
}
|
||||
} else if ((reset || delta>0) && more_section.is(':visible')) {
|
||||
var last_separator = null,
|
||||
last_group = null,
|
||||
prevchild = $active.find('> div:not(.more-box)');
|
||||
var last_width = 0;
|
||||
if (prevchild.length>0) {
|
||||
prevchild = $(prevchild[prevchild.length-1]);
|
||||
if (prevchild.hasClass('separator')) {
|
||||
last_separator = prevchild;
|
||||
last_width = parseInt(last_separator.css('margin-left')) + parseInt(last_separator.css('margin-right')) + 1;
|
||||
}
|
||||
if (prevchild.hasClass('group') && prevchild.attr('group-state') == 'open')
|
||||
last_group = prevchild;
|
||||
}
|
||||
|
||||
var items = this.$moreBar.children();
|
||||
if (items.length>0) {
|
||||
// from more panel to toolbar
|
||||
for (var i=0; i<items.length; i++) {
|
||||
var item = $(items[i]);
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
if (!item.is(':visible') && item.attr('data-hidden-tb-item')) { // move invisible items as is
|
||||
item.removeAttr('data-hidden-tb-item');
|
||||
more_section.before(item);
|
||||
if (this.$moreBar.children().filter('.group').length == 0) {
|
||||
this.hideMoreBtns();
|
||||
more_section.css('display', "none");
|
||||
}
|
||||
} else if (item.hasClass('group')) {
|
||||
var islast = false;
|
||||
if (this.$moreBar.children().filter('.group').length == 1) {
|
||||
_maxright = box_controls_width; // try to move last group
|
||||
islast = true;
|
||||
}
|
||||
|
||||
var item_width = parseInt(item.attr('inner-width') || 0);
|
||||
if (_rightedge + last_width + item_width < _maxright && item.attr('group-state') != 'open') {
|
||||
// move group
|
||||
more_section.before(item);
|
||||
if (last_separator) {
|
||||
last_separator.css('display', '');
|
||||
last_separator.removeAttr('hidden-on-resize');
|
||||
}
|
||||
if (this.$moreBar.children().filter('.group').length == 0) {
|
||||
this.hideMoreBtns();
|
||||
more_section.css('display', "none");
|
||||
}
|
||||
hideAllMenus = true;
|
||||
} else if ( _rightedge + last_width < _maxright) {
|
||||
// move buttons from group
|
||||
var children = item.children();
|
||||
_maxright = box_controls_width - more_section_width;
|
||||
for (var j=0; j<children.length; j++) {
|
||||
if (islast && j==children.length-1)
|
||||
_maxright = box_controls_width; // try to move last item from last group
|
||||
_rightedge = $active.get(0).getBoundingClientRect().right;
|
||||
var child = $(children[j]);
|
||||
if (child.hasClass('elset')) { // don't add group - no enough space
|
||||
need_break = true;
|
||||
break;
|
||||
} else {
|
||||
var child_width = parseInt(child.attr('inner-width') || 0) + (!last_group ? parseInt(item.css('padding-left')) : 0); // if new group is started add left-padding
|
||||
if (_rightedge+last_width+child_width < _maxright) {
|
||||
if (!last_group) {
|
||||
last_group = $('<div></div>');
|
||||
last_group.addClass(items[i].className);
|
||||
var attrs = items[i].attributes;
|
||||
for (var k = 0; k < attrs.length; k++) {
|
||||
last_group.attr(attrs[k].name, attrs[k].value);
|
||||
}
|
||||
if (last_group.hasClass('flex')) { // need to update flex groups list
|
||||
$active.data().flex = null;
|
||||
}
|
||||
more_section.before(last_group);
|
||||
if (last_separator) {
|
||||
last_separator.css('display', '');
|
||||
last_separator.removeAttr('hidden-on-resize');
|
||||
}
|
||||
}
|
||||
last_group.append(child);
|
||||
hideAllMenus = true;
|
||||
} else {
|
||||
need_break = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (item.children().length<1) { // all buttons are moved
|
||||
item.remove();
|
||||
last_group && last_group.removeAttr('group-state').attr('inner-width', item.attr('inner-width'));
|
||||
last_group = null;
|
||||
if (this.$moreBar.children().filter('.group').length == 0) {
|
||||
this.hideMoreBtns();
|
||||
more_section.css('display', "none");
|
||||
}
|
||||
} else {
|
||||
last_group && last_group.attr('group-state', 'open') && item.attr('group-state', 'open');
|
||||
}
|
||||
if (need_break)
|
||||
break;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
last_separator = null; last_width = 0;
|
||||
} else if (item.hasClass('separator')) {
|
||||
more_section.before(item);
|
||||
item.css('display', 'none');
|
||||
item.attr('hidden-on-resize', true);
|
||||
last_separator = item;
|
||||
last_width = parseInt(last_separator.css('margin-left')) + parseInt(last_separator.css('margin-right')) + 1;
|
||||
hideAllMenus = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.hideMoreBtns();
|
||||
more_section.css('display', "none");
|
||||
}
|
||||
}
|
||||
hideAllMenus && Common.UI.Menu.Manager.hideAll();
|
||||
},
|
||||
|
||||
onMoreHide: function(btn, e) {
|
||||
var moreContainer = btn.panel.parent();
|
||||
if (btn.pressed) {
|
||||
btn.toggle(false, true);
|
||||
}
|
||||
if (moreContainer.is(':visible')) {
|
||||
moreContainer.hide();
|
||||
Common.NotificationCenter.trigger('edit:complete', this.toolbar, btn);
|
||||
}
|
||||
},
|
||||
|
||||
onMoreShow: function(btn, e) {
|
||||
var moreContainer = btn.panel.parent(),
|
||||
parentxy = moreContainer.parent().offset(),
|
||||
target = btn.$el,
|
||||
showxy = target.offset(),
|
||||
right = Common.Utils.innerWidth() - (showxy.left - parentxy.left + target.width()),
|
||||
top = showxy.top - parentxy.top + target.height() + 10;
|
||||
|
||||
moreContainer.css({right: right, left: 'auto', top : top, 'max-width': Common.Utils.innerWidth() + 'px'});
|
||||
moreContainer.show();
|
||||
},
|
||||
|
||||
hideMoreBtns: function() {
|
||||
for (var btn in btnsMore) {
|
||||
btnsMore[btn] && btnsMore[btn].toggle(false);
|
||||
}
|
||||
}
|
||||
};
|
||||
}()));
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ define([
|
|||
values: [0, 100],
|
||||
colorValues: ['#000000', '#ffffff'],
|
||||
currentThumb: 0,
|
||||
includeSnap: true,
|
||||
intervalSnap: 5,
|
||||
thumbTemplate: '<div class="thumb" style="">' +
|
||||
'<div class="thumb-top"><div class="thumb-top-inner"></div></div>' +
|
||||
'<div class="thumb-bottom"><div class="thumb-bottom-inner"></div></div>' +
|
||||
|
|
|
|||
|
|
@ -71,12 +71,21 @@ define([
|
|||
disabled : false,
|
||||
rendered : false,
|
||||
|
||||
template : _.template('<label class="radiobox"><input type="radio" name="<%= name %>" id="<%= id %>" class="button__radiobox">' +
|
||||
'<label for="<%= id %>" class="radiobox__shape"></label><span></span></label>'),
|
||||
template : _.template('<div class="radiobox" data-hint="<%= dataHint %>" data-hint-direction="<%= dataHintDirection %>" data-hint-offset="<%= dataHintOffset %>">' +
|
||||
'<input type="radio" name="<%= name %>" id="<%= id %>" class="button__radiobox">' +
|
||||
'<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">' +
|
||||
'<circle class="rb-circle" cx="8" cy="8" r="6.5" />' +
|
||||
'<circle class="rb-check-mark" cx="8" cy="8" r="4" />' +
|
||||
'</svg>' +
|
||||
'<span></span></div>'),
|
||||
|
||||
initialize : function(options) {
|
||||
Common.UI.BaseView.prototype.initialize.call(this, options);
|
||||
|
||||
this.dataHint = options.dataHint;
|
||||
this.dataHintDirection = options.dataHintDirection;
|
||||
this.dataHintOffset = options.dataHintOffset;
|
||||
|
||||
var me = this;
|
||||
|
||||
this.name = this.options.name || Common.UI.getId();
|
||||
|
|
@ -92,7 +101,6 @@ define([
|
|||
this.setCaption(this.options.labelText);
|
||||
|
||||
// handle events
|
||||
this.$radio.on('click', _.bind(this.onItemCheck, this));
|
||||
},
|
||||
|
||||
render: function () {
|
||||
|
|
@ -100,13 +108,22 @@ define([
|
|||
el.html(this.template({
|
||||
labelText: this.options.labelText,
|
||||
name: this.name,
|
||||
id: Common.UI.getId('rdb-')
|
||||
id: Common.UI.getId('rdb-'),
|
||||
dataHint: this.dataHint,
|
||||
dataHintDirection: this.dataHintDirection,
|
||||
dataHintOffset: this.dataHintOffset
|
||||
}));
|
||||
|
||||
this.$radio = el.find('input[type=radio]');
|
||||
this.$label = el.find('label.radiobox');
|
||||
this.$label = el.find('div.radiobox');
|
||||
this.$span = this.$label.find('span');
|
||||
this.$label.on('keydown', this.onKeyDown.bind(this));
|
||||
this.$label.on({
|
||||
'keydown': this.onKeyDown.bind(this),
|
||||
'click': function(e){
|
||||
if ( !this.disabled )
|
||||
this.setValue(true);
|
||||
}.bind(this),});
|
||||
|
||||
this.rendered = true;
|
||||
|
||||
return this;
|
||||
|
|
@ -116,6 +133,7 @@ define([
|
|||
if (!this.rendered)
|
||||
return;
|
||||
|
||||
disabled = !!disabled;
|
||||
if (disabled !== this.disabled) {
|
||||
this.$label.toggleClass('disabled', disabled);
|
||||
this.$radio.toggleClass('disabled', disabled);
|
||||
|
|
@ -139,7 +157,7 @@ define([
|
|||
|
||||
setRawValue: function(value) {
|
||||
var value = (value === true || value === 'true' || value === '1' || value === 1 );
|
||||
$('input[type=radio][name=' + this.name + ']').removeClass('checked');
|
||||
value && $('input[type=radio][name=' + this.name + ']').removeClass('checked');
|
||||
this.$radio.toggleClass('checked', value);
|
||||
this.$radio.prop('checked', value);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -82,13 +82,14 @@ define([
|
|||
maxValue: 100,
|
||||
step: 1,
|
||||
value: 100,
|
||||
enableKeyEvents: false
|
||||
enableKeyEvents: false,
|
||||
direction: 'horizontal' // 'vertical'
|
||||
},
|
||||
|
||||
disabled: false,
|
||||
|
||||
template : _.template([
|
||||
'<div class="slider single-slider" style="">',
|
||||
'<div class="slider single-slider <% if (this.options.direction === \'vertical\') { %>vertical<% } %>" style="">',
|
||||
'<div class="track"></div>',
|
||||
'<div class="thumb" style=""></div>',
|
||||
'<% if (this.options.enableKeyEvents) { %>',
|
||||
|
|
@ -107,6 +108,7 @@ define([
|
|||
me.maxValue = me.options.maxValue;
|
||||
me.delta = 100/(me.maxValue - me.minValue);
|
||||
me.step = me.options.step;
|
||||
me.direction = me.options.direction;
|
||||
|
||||
if (me.options.el) {
|
||||
me.render();
|
||||
|
|
@ -133,7 +135,7 @@ define([
|
|||
}
|
||||
|
||||
this.cmpEl.find('.track-center').width(me.options.width - 14);
|
||||
this.cmpEl.width(me.options.width);
|
||||
this.cmpEl[me.direction === 'vertical' ? 'height' : 'width'](me.options.width);
|
||||
|
||||
this.thumb = this.cmpEl.find('.thumb');
|
||||
|
||||
|
|
@ -141,7 +143,9 @@ define([
|
|||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
var pos = Math.max(0, Math.min(100, (Math.round((e.pageX*Common.Utils.zoom() - me.cmpEl.offset().left - me._dragstart) / me.width * 100))));
|
||||
var pos = Math.max(0, Math.min(100, (Math.round((
|
||||
me.direction === 'vertical' ? (e.pageY*Common.Utils.zoom() - me.cmpEl.offset().top) : (e.pageX*Common.Utils.zoom() - me.cmpEl.offset().left) - me._dragstart
|
||||
) / me.width * 100))));
|
||||
me.setThumbPosition(pos);
|
||||
|
||||
me.lastValue = me.value;
|
||||
|
|
@ -162,7 +166,9 @@ define([
|
|||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
var pos = Math.max(0, Math.min(100, (Math.round((e.pageX*Common.Utils.zoom() - me.cmpEl.offset().left - me._dragstart) / me.width * 100))));
|
||||
var pos = Math.max(0, Math.min(100, (Math.round((
|
||||
me.direction === 'vertical' ? (e.pageY*Common.Utils.zoom() - me.cmpEl.offset().top) : (e.pageX*Common.Utils.zoom() - me.cmpEl.offset().left) - me._dragstart
|
||||
) / me.width * 100))));
|
||||
me.setThumbPosition(pos);
|
||||
|
||||
me.lastValue = me.value;
|
||||
|
|
@ -174,7 +180,7 @@ define([
|
|||
|
||||
var onMouseDown = function (e) {
|
||||
if ( me.disabled ) return;
|
||||
me._dragstart = e.pageX*Common.Utils.zoom() - me.thumb.offset().left - 7;
|
||||
me._dragstart = me.direction === 'vertical' ? (e.pageY*Common.Utils.zoom() - me.thumb.offset().top) : (e.pageX*Common.Utils.zoom() - me.thumb.offset().left) - 7;
|
||||
|
||||
me.thumb.addClass('active');
|
||||
$(document).on('mouseup', onMouseUp);
|
||||
|
|
@ -187,7 +193,9 @@ define([
|
|||
var onTrackMouseDown = function (e) {
|
||||
if ( me.disabled ) return;
|
||||
|
||||
var pos = Math.max(0, Math.min(100, (Math.round((e.pageX*Common.Utils.zoom() - me.cmpEl.offset().left) / me.width * 100))));
|
||||
var pos = Math.max(0, Math.min(100, (Math.round((
|
||||
me.direction === 'vertical' ? (e.pageY*Common.Utils.zoom() - me.cmpEl.offset().top) : (e.pageX*Common.Utils.zoom() - me.cmpEl.offset().left)
|
||||
) / me.width * 100))));
|
||||
me.setThumbPosition(pos);
|
||||
|
||||
me.lastValue = me.value;
|
||||
|
|
@ -245,8 +253,12 @@ define([
|
|||
return this;
|
||||
},
|
||||
|
||||
setThumbPosition: function(x) {
|
||||
this.thumb.css({left: x + '%'});
|
||||
setThumbPosition: function(pos) {
|
||||
if (this.direction === 'vertical') {
|
||||
this.thumb.css({top: pos + '%'});
|
||||
} else {
|
||||
this.thumb.css({left: pos + '%'});
|
||||
}
|
||||
},
|
||||
|
||||
setValue: function(value) {
|
||||
|
|
@ -260,6 +272,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
if (disabled !== this.disabled)
|
||||
this.cmpEl.toggleClass('disabled', disabled);
|
||||
this.disabled = disabled;
|
||||
|
|
@ -273,6 +286,8 @@ define([
|
|||
minValue: 0,
|
||||
maxValue: 100,
|
||||
values: [0, 100],
|
||||
includeSnap: false,
|
||||
intervalSnap: undefined,
|
||||
thumbTemplate: '<div class="thumb" style=""></div>'
|
||||
},
|
||||
|
||||
|
|
@ -300,8 +315,9 @@ define([
|
|||
me.minValue = me.options.minValue;
|
||||
me.maxValue = me.options.maxValue;
|
||||
me.delta = 100/(me.maxValue - me.minValue);
|
||||
me.includeSnap = me.options.includeSnap;
|
||||
me.intervalSnap = me.options.intervalSnap;
|
||||
me.thumbs = [];
|
||||
|
||||
if (me.options.el) {
|
||||
me.render();
|
||||
}
|
||||
|
|
@ -330,9 +346,38 @@ define([
|
|||
el.find('.track-center').width(me.options.width - 14);
|
||||
el.width(me.options.width);
|
||||
|
||||
var setCenters = function (index) {
|
||||
if(!me.includeSnap) return;
|
||||
var n = me.minValue;
|
||||
|
||||
var getX = function (position) {
|
||||
return (0.01 * me.width * position + me.cmpEl.offset().left + me._dragstart)/Common.Utils.zoom();
|
||||
};
|
||||
|
||||
me.centers = [];
|
||||
_.each(me.thumbs, function (thumb, indexT) {
|
||||
if ((indexT != index) && (n != thumb.position)) {
|
||||
me.centers.push(getX((thumb.position - n) / 2 + n));
|
||||
n = thumb.position;
|
||||
}
|
||||
});
|
||||
if(n != me.maxValue) me.centers.push(getX((me.maxValue - n) / 2 + n));
|
||||
};
|
||||
|
||||
var resetPageX = function (e) {
|
||||
if(!me.includeSnap) return;
|
||||
_.each(me.centers, function (x) {
|
||||
if((e.pageX <= x + me.intervalSnap) && (e.pageX >= x - me.intervalSnap)) {
|
||||
e.pageX = x;
|
||||
return;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var onMouseUp = function (e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
resetPageX(e);
|
||||
|
||||
var index = e.data.index,
|
||||
lastValue = me.thumbs[index].value,
|
||||
|
|
@ -342,14 +387,11 @@ define([
|
|||
need_sort = position < minValue || position > maxValue,
|
||||
pos = Math.max(0, Math.min(100, position)),
|
||||
value = pos/me.delta + me.minValue;
|
||||
|
||||
if (me.thumbs.length < 3)
|
||||
me.isRemoveThumb = false;
|
||||
|
||||
if (me.isRemoveThumb) {
|
||||
if (me.thumbs.length < 3) {
|
||||
$(document).off('mouseup', me.binding.onMouseUp);
|
||||
$(document).off('mousemove', me.binding.onMouseMove);
|
||||
me._dragstart = undefined;
|
||||
return;
|
||||
}
|
||||
me.trigger('removethumb', me, _.findIndex(me.thumbs, {index: index}));
|
||||
me.trigger('change', me, value, lastValue);
|
||||
me.trigger('changecomplete', me, value, lastValue);
|
||||
|
|
@ -363,7 +405,6 @@ define([
|
|||
|
||||
$(document).off('mouseup', me.binding.onMouseUp);
|
||||
$(document).off('mousemove', me.binding.onMouseMove);
|
||||
|
||||
me._dragstart = undefined;
|
||||
!me.isRemoveThumb && me.trigger('changecomplete', me, value, lastValue);
|
||||
me.isRemoveThumb = undefined;
|
||||
|
|
@ -375,6 +416,7 @@ define([
|
|||
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
resetPageX(e);
|
||||
|
||||
var index = e.data.index,
|
||||
lastValue = me.thumbs[index].value,
|
||||
|
|
@ -406,6 +448,7 @@ define([
|
|||
thumb = me.thumbs[index].thumb;
|
||||
|
||||
me._dragstart = e.pageX*Common.Utils.zoom() - thumb.offset().left - thumb.width()/2;
|
||||
setCenters(index);
|
||||
me.setActiveThumb(index);
|
||||
|
||||
_.each(me.thumbs, function (item, idx) {
|
||||
|
|
@ -416,6 +459,7 @@ define([
|
|||
$(document).on('mousemove', null, e.data, me.binding.onMouseMove);
|
||||
};
|
||||
|
||||
|
||||
var onTrackMouseUp = function (e) {
|
||||
if ( me.disabled || !_.isUndefined(me._dragstart) || me.thumbs.length > 9) return;
|
||||
|
||||
|
|
@ -545,6 +589,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
if (disabled !== this.disabled)
|
||||
this.cmpEl.toggleClass('disabled', disabled);
|
||||
this.disabled = disabled;
|
||||
|
|
|
|||
|
|
@ -44,20 +44,27 @@ define([
|
|||
target : $(document.body),
|
||||
text : '',
|
||||
placement: 'right-bottom',
|
||||
showLink: true
|
||||
showLink: true,
|
||||
showButton: false,
|
||||
closable: true
|
||||
},
|
||||
|
||||
template: _.template([
|
||||
'<div class="synch-tip-root <% if (!!scope.options.extCls) {print(scope.options.extCls + \" \");} %><%= scope.placement %>">',
|
||||
'<div class="synch-tip-root <% if (!!scope.options.extCls) {print(scope.options.extCls + \" \");} %><%= scope.placement %>" style="<%= scope.style %>">',
|
||||
'<div class="asc-synchronizetip">',
|
||||
'<div class="tip-arrow <%= scope.placement %>"></div>',
|
||||
'<div>',
|
||||
'<div class="tip-text"><%= scope.text %></div>',
|
||||
'<% if ( scope.closable ) { %>',
|
||||
'<div class="close"></div>',
|
||||
'<% } %>',
|
||||
'</div>',
|
||||
'<% if ( scope.showLink ) { %>',
|
||||
'<div class="show-link"><label><%= scope.textLink %></label></div>',
|
||||
'<% } %>',
|
||||
'<% if ( scope.showButton ) { %>',
|
||||
'<div class="btn-div"><%= scope.textButton %></div>',
|
||||
'<% } %>',
|
||||
'</div>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
|
@ -69,8 +76,13 @@ define([
|
|||
this.target = this.options.target;
|
||||
this.text = !_.isEmpty(this.options.text) ? this.options.text : this.textSynchronize;
|
||||
this.textLink = !_.isEmpty(this.options.textLink) ? this.options.textLink : this.textDontShow;
|
||||
this.placement = this.options.placement;
|
||||
this.placement = this.options.placement; // if placement='target' and position is undefined show in top,left position of target, also use for arrow position
|
||||
this.showLink = this.options.showLink;
|
||||
this.showButton = this.options.showButton;
|
||||
this.closable = this.options.closable;
|
||||
this.textButton = this.options.textButton || '';
|
||||
this.position = this.options.position; // show in the position relative to target
|
||||
this.style = this.options.style || '';
|
||||
},
|
||||
|
||||
render: function() {
|
||||
|
|
@ -79,6 +91,9 @@ define([
|
|||
$(document.body).append(this.cmpEl);
|
||||
this.cmpEl.find('.close').on('click', _.bind(function() { this.trigger('closeclick');}, this));
|
||||
this.cmpEl.find('.show-link label').on('click', _.bind(function() { this.trigger('dontshowclick');}, this));
|
||||
this.cmpEl.find('.btn-div').on('click', _.bind(function() { this.trigger('buttonclick');}, this));
|
||||
|
||||
this.closable && this.cmpEl.addClass('closable');
|
||||
}
|
||||
|
||||
this.applyPlacement();
|
||||
|
|
@ -104,12 +119,28 @@ define([
|
|||
},
|
||||
|
||||
applyPlacement: function () {
|
||||
var showxy = this.target.offset();
|
||||
if (this.placement=='target') {
|
||||
var target = this.target && this.target.length>0 ? this.target : $(document.body);
|
||||
var showxy = target.offset();
|
||||
if (this.placement=='target' && !this.position) {
|
||||
this.cmpEl.css({top : showxy.top + 5 + 'px', left: showxy.left + 5 + 'px'});
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.position && typeof this.position == 'object') {
|
||||
var top = this.position.top, left = this.position.left, bottom = this.position.bottom, right = this.position.right;
|
||||
if (bottom!==undefined || top!==undefined)
|
||||
left = showxy.left + (target.width() - this.cmpEl.width())/2;
|
||||
else
|
||||
top = showxy.top + (target.height() - this.cmpEl.height())/2;
|
||||
top = (top!==undefined) ? (top + 'px') : 'auto';
|
||||
bottom = (bottom!==undefined) ? (bottom + 'px') : 'auto';
|
||||
right = (right!==undefined) ? (right + 'px') : 'auto';
|
||||
left = (left!==undefined) ? (left + 'px') : 'auto';
|
||||
|
||||
this.cmpEl.css({top : top, left: left, right: right, bottom: bottom});
|
||||
return;
|
||||
}
|
||||
|
||||
var placement = this.placement.split('-');
|
||||
if (placement.length>0) {
|
||||
var top, left, bottom, right;
|
||||
|
|
@ -117,34 +148,40 @@ define([
|
|||
if (pos=='top') {
|
||||
bottom = Common.Utils.innerHeight() - showxy.top;
|
||||
} else if (pos == 'bottom') {
|
||||
top = showxy.top + this.target.height();
|
||||
top = showxy.top + target.height();
|
||||
} else if (pos == 'left') {
|
||||
right = Common.Utils.innerWidth() - showxy.left;
|
||||
} else if (pos == 'right') {
|
||||
left = showxy.left + this.target.width();
|
||||
left = showxy.left + target.width();
|
||||
}
|
||||
pos = placement[1];
|
||||
if (pos=='top') {
|
||||
bottom = Common.Utils.innerHeight() - showxy.top - this.target.height()/2;
|
||||
bottom = Common.Utils.innerHeight() - showxy.top - target.height()/2;
|
||||
} else if (pos == 'bottom') {
|
||||
top = showxy.top + this.target.height()/2;
|
||||
top = showxy.top + target.height()/2;
|
||||
var height = this.cmpEl.height();
|
||||
if (top+height>Common.Utils.innerHeight())
|
||||
top = Common.Utils.innerHeight() - height - 10;
|
||||
} else if (pos == 'left') {
|
||||
right = Common.Utils.innerWidth() - showxy.left - this.target.width()/2;
|
||||
right = Common.Utils.innerWidth() - showxy.left - target.width()/2;
|
||||
} else if (pos == 'right') {
|
||||
left = showxy.left + this.target.width()/2;
|
||||
left = showxy.left + target.width()/2;
|
||||
} else {
|
||||
if (bottom!==undefined || top!==undefined)
|
||||
left = showxy.left + (this.target.width() - this.cmpEl.width())/2;
|
||||
left = showxy.left + (target.width() - this.cmpEl.width())/2;
|
||||
else
|
||||
top = showxy.top + (this.target.height() - this.cmpEl.height())/2;
|
||||
top = showxy.top + (target.height() - this.cmpEl.height())/2;
|
||||
}
|
||||
top = (top!==undefined) ? (top + 'px') : 'auto';
|
||||
bottom = (bottom!==undefined) ? (bottom + 'px') : 'auto';
|
||||
left = (left!==undefined) ? (left + 'px') : 'auto';
|
||||
right = (right!==undefined) ? (right + 'px') : 'auto';
|
||||
if (left!==undefined) {
|
||||
var width = this.cmpEl.width();
|
||||
if (left+width>Common.Utils.innerWidth())
|
||||
left = Common.Utils.innerWidth() - width - 10;
|
||||
left = (left + 'px');
|
||||
} else
|
||||
left = 'auto';
|
||||
this.cmpEl.css({top : top, left: left, right: right, bottom: bottom});
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -121,76 +121,6 @@ define([
|
|||
me.tabBarRight = me.bounds[length - 1].right;
|
||||
me.tabBarRight = Math.min(me.tabBarRight, barBounds.right - 1);
|
||||
}
|
||||
},
|
||||
|
||||
setHookTabs: function (e, bar, tabs) {
|
||||
var me = this;
|
||||
function dragComplete() {
|
||||
if (!_.isUndefined(me.drag)) {
|
||||
bar.dragging = false;
|
||||
bar.$el.find('li.mousemove').removeClass('mousemove right');
|
||||
var arrSelectIndex = [];
|
||||
tabs.forEach(function (item) {
|
||||
arrSelectIndex.push(item.sheetindex);
|
||||
});
|
||||
if (!_.isUndefined(me.drag.place)) {
|
||||
me.bar.trigger('tab:move', arrSelectIndex, me.drag.place);
|
||||
me.bar.$bar.scrollLeft(me.scrollLeft);
|
||||
me.bar.scrollX = undefined;
|
||||
} else {
|
||||
me.bar.trigger('tab:move', arrSelectIndex);
|
||||
me.bar.$bar.scrollLeft(me.scrollLeft);
|
||||
me.bar.scrollX = undefined;
|
||||
}
|
||||
me.bar.checkInvisible();
|
||||
|
||||
me.drag = undefined;
|
||||
me.bar.trigger('tab:drop', this);
|
||||
}
|
||||
}
|
||||
function dragMove (event) {
|
||||
if (!_.isUndefined(me.drag)) {
|
||||
me.drag.moveX = event.clientX*Common.Utils.zoom();
|
||||
if (me.drag.moveX < me.leftBorder) {
|
||||
me.scrollLeft -= 20;
|
||||
me.bar.$bar.scrollLeft(me.scrollLeft);
|
||||
me.calculateBounds();
|
||||
} else if (me.drag.moveX < me.tabBarRight && me.drag.moveX > me.tabBarLeft) {
|
||||
var name = $(event.target).parent().data('label'),
|
||||
currentTab = _.findIndex(bar.tabs, {label: name});
|
||||
if (currentTab === -1) {
|
||||
bar.$el.find('li.mousemove').removeClass('mousemove right');
|
||||
me.drag.place = undefined;
|
||||
} else if (me.bounds[currentTab].left - me.scrollLeft >= me.tabBarLeft) {
|
||||
me.drag.place = currentTab;
|
||||
$(event.target).parent().parent().find('li.mousemove').removeClass('mousemove right');
|
||||
$(event.target).parent().addClass('mousemove');
|
||||
}
|
||||
} else if (me.drag.moveX > me.lastTabRight && Math.abs(me.tabBarRight - me.bounds[me.bar.tabs.length - 1].right) < 1) { //move to end of list, right border of the right tab is visible
|
||||
bar.$el.find('li.mousemove').removeClass('mousemove right');
|
||||
bar.tabs[bar.tabs.length - 1].$el.addClass('mousemove right');
|
||||
me.drag.place = bar.tabs.length;
|
||||
} else if (me.drag.moveX - me.rightBorder > 3) {
|
||||
me.scrollLeft += 20;
|
||||
me.bar.$bar.scrollLeft(me.scrollLeft);
|
||||
me.calculateBounds();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!_.isUndefined(bar) && !_.isUndefined(tabs) && bar.tabs.length > 1) {
|
||||
me.bar = bar;
|
||||
me.drag = {tabs: tabs};
|
||||
bar.dragging = true;
|
||||
this.calculateBounds();
|
||||
|
||||
$(document).on('mousemove.tabbar', dragMove);
|
||||
$(document).on('mouseup.tabbar', function (e) {
|
||||
dragComplete(e);
|
||||
$(document).off('mouseup.tabbar');
|
||||
$(document).off('mousemove.tabbar', dragMove);
|
||||
});
|
||||
this.bar.trigger('tab:drag', this.bar.selectTabs);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -240,19 +170,25 @@ define([
|
|||
this.trigger('tab:contextmenu', this, this.tabs.indexOf(tab), tab, this.selectTabs);
|
||||
}, this.bar),
|
||||
mousedown: $.proxy(function (e) {
|
||||
if ((3 !== e.which) && !e.ctrlKey && !e.metaKey && !e.shiftKey) {
|
||||
if ((3 !== e.which) && !e.shiftKey) {
|
||||
var lockDrag = tab.isLockTheDrag;
|
||||
this.bar.selectTabs.forEach(function (item) {
|
||||
if (item.isLockTheDrag) {
|
||||
lockDrag = true;
|
||||
}
|
||||
});
|
||||
if (this.bar.selectTabs.length === this.bar.tabs.length || this.bar.tabs.length === 1 || this.bar.isEditFormula) {
|
||||
if (((this.bar.selectTabs.length === this.bar.tabs.length || this.bar.tabs.length === 1) && !(e.ctrlKey || (Common.Utils.isMac && e.altKey))) || this.bar.isEditFormula) {
|
||||
lockDrag = true;
|
||||
}
|
||||
// move last selected sheet if all sheets are selected
|
||||
if (this.bar.selectTabs.length === this.bar.tabs.length && this.bar.tabs.length > 1 && !e.ctrlKey && !(Common.Utils.isMac && e.altKey)) {
|
||||
lockDrag = false;
|
||||
this.bar.$el.find('ul > li.selected').removeClass('selected');
|
||||
}
|
||||
this.bar.$el.find('ul > li > span').attr('draggable', !lockDrag);
|
||||
if (!lockDrag)
|
||||
if (!lockDrag && !e.ctrlKey && !e.metaKey) {
|
||||
tab.changeState();
|
||||
}
|
||||
} else {
|
||||
this.bar.$el.find('ul > li > span').attr('draggable', 'false');
|
||||
}
|
||||
|
|
@ -269,15 +205,15 @@ define([
|
|||
tab.$el.children().on(
|
||||
{dragstart: $.proxy(function (e) {
|
||||
var event = e.originalEvent;
|
||||
if (!Common.Utils.isIE) {
|
||||
if (!Common.Utils.isIE && !Common.Utils.isSafari) {
|
||||
var img = document.createElement('div');
|
||||
event.dataTransfer.setDragImage(img, 0, 0);
|
||||
} else {
|
||||
} else if (Common.Utils.isIE) {
|
||||
this.bar.selectTabs.forEach(function (tab) {
|
||||
tab.$el.find('span').prop('title', '');
|
||||
});
|
||||
}
|
||||
event.dataTransfer.effectAllowed = 'move';
|
||||
event.dataTransfer.effectAllowed = 'copyMove';
|
||||
this.bar.trigger('tab:dragstart', event.dataTransfer, this.bar.selectTabs);
|
||||
}, this),
|
||||
dragenter: $.proxy(function (e) {
|
||||
|
|
@ -285,14 +221,7 @@ define([
|
|||
if (!this.bar.isEditFormula) {
|
||||
this.bar.$el.find('.mousemove').removeClass('mousemove right');
|
||||
$(e.currentTarget).parent().addClass('mousemove');
|
||||
var data;
|
||||
if (!Common.Utils.isIE) {
|
||||
data = event.dataTransfer.getData('onlyoffice');
|
||||
event.dataTransfer.dropEffect = data ? 'move' : 'none';
|
||||
} else {
|
||||
data = event.dataTransfer.getData('text');
|
||||
event.dataTransfer.dropEffect = data === 'sheet' ? 'move' : 'none';
|
||||
}
|
||||
event.dataTransfer.dropEffect = (event.ctrlKey || Common.Utils.isMac && event.altKey) ? 'copy' : 'move';
|
||||
} else {
|
||||
event.dataTransfer.dropEffect = 'none';
|
||||
}
|
||||
|
|
@ -305,6 +234,7 @@ define([
|
|||
if (!this.bar.isEditFormula) {
|
||||
this.bar.$el.find('.mousemove').removeClass('mousemove right');
|
||||
$(e.currentTarget).parent().addClass('mousemove');
|
||||
event.dataTransfer.dropEffect = (event.ctrlKey || Common.Utils.isMac && event.altKey) ? 'copy' : 'move';
|
||||
} else {
|
||||
event.dataTransfer.dropEffect = 'none';
|
||||
}
|
||||
|
|
@ -314,8 +244,11 @@ define([
|
|||
$(e.currentTarget).parent().removeClass('mousemove right');
|
||||
}, this),
|
||||
dragend: $.proxy(function (e) {
|
||||
if (Common.Utils.isMac && e.altKey) { // don't show alt hints after copy by drag and drop
|
||||
this.bar.isDragDrop = true;
|
||||
}
|
||||
var event = e.originalEvent;
|
||||
if (event.dataTransfer.dropEffect === 'move') {
|
||||
if (event.dataTransfer.dropEffect === 'move' && !event.dataTransfer.mozUserCancelled) {
|
||||
this.bar.trigger('tab:dragend', true);
|
||||
} else {
|
||||
this.bar.trigger('tab:dragend', false);
|
||||
|
|
@ -323,10 +256,13 @@ define([
|
|||
this.bar.$el.find('.mousemove').removeClass('mousemove right');
|
||||
}, this),
|
||||
drop: $.proxy(function (e) {
|
||||
if (Common.Utils.isMac && e.altKey) { // don't show alt hints after copy by drag and drop
|
||||
this.bar.isDragDrop = true;
|
||||
}
|
||||
var event = e.originalEvent,
|
||||
index = $(event.currentTarget).data('index');
|
||||
this.bar.$el.find('.mousemove').removeClass('mousemove right');
|
||||
this.bar.trigger('tab:drop', event.dataTransfer, index);
|
||||
this.bar.trigger('tab:drop', event.dataTransfer, index, (event.ctrlKey || Common.Utils.isMac && event.altKey));
|
||||
this.bar.isDrop = true;
|
||||
}, this)
|
||||
});
|
||||
|
|
@ -365,23 +301,20 @@ define([
|
|||
var eventname=(/Firefox/i.test(navigator.userAgent))? 'DOMMouseScroll' : 'mousewheel';
|
||||
addEvent(this.$bar[0], eventname, _.bind(this._onMouseWheel,this));
|
||||
addEvent(this.$bar[0], 'dragstart', _.bind(function (event) {
|
||||
event.dataTransfer.effectAllowed = 'move';
|
||||
event.dataTransfer.effectAllowed = 'copyMove';
|
||||
}, this));
|
||||
addEvent(this.$bar[0], 'dragenter', _.bind(function (event) {
|
||||
var data;
|
||||
if (!Common.Utils.isIE) {
|
||||
data = event.dataTransfer.getData('onlyoffice');
|
||||
event.dataTransfer.dropEffect = (!this.isEditFormula && data) ? 'move' : 'none';
|
||||
if (!this.isEditFormula) {
|
||||
event.dataTransfer.dropEffect = (event.ctrlKey || Common.Utils.isMac && event.altKey) ? 'copy' : 'move';
|
||||
} else {
|
||||
data = event.dataTransfer.getData('text');
|
||||
event.dataTransfer.dropEffect = (data === 'sheet' && !this.isEditFormula) ? 'move' : 'none';
|
||||
event.dataTransfer.dropEffect = 'none';
|
||||
}
|
||||
}, this));
|
||||
addEvent(this.$bar[0], 'dragover', _.bind(function (event) {
|
||||
if (event.preventDefault) {
|
||||
event.preventDefault(); // Necessary. Allows us to drop.
|
||||
}
|
||||
event.dataTransfer.dropEffect = !this.isEditFormula ? 'move' : 'none';
|
||||
event.dataTransfer.dropEffect = !this.isEditFormula ? ((event.ctrlKey || Common.Utils.isMac && event.altKey) ? 'copy' : 'move') : 'none';
|
||||
!this.isEditFormula && this.tabs[this.tabs.length - 1].$el.addClass('mousemove right');
|
||||
return false;
|
||||
}, this));
|
||||
|
|
@ -392,7 +325,10 @@ define([
|
|||
addEvent(this.$bar[0], 'drop', _.bind(function (event) {
|
||||
this.$el.find('.mousemove').removeClass('mousemove right');
|
||||
if (this.isDrop === undefined) {
|
||||
this.trigger('tab:drop', event.dataTransfer, 'last');
|
||||
if (Common.Utils.isMac && event.altKey) { // don't show alt hints after copy by drag and drop
|
||||
this.isDragDrop = true;
|
||||
}
|
||||
this.trigger('tab:drop', event.dataTransfer, 'last', (event.ctrlKey || Common.Utils.isMac && event.altKey));
|
||||
} else {
|
||||
this.isDrop = undefined;
|
||||
}
|
||||
|
|
@ -423,6 +359,7 @@ define([
|
|||
this.setTabVisible('backward');
|
||||
}
|
||||
}
|
||||
Common.NotificationCenter.trigger('hints:clear');
|
||||
},
|
||||
|
||||
onProcessMouse: function(data) {
|
||||
|
|
@ -576,10 +513,10 @@ define([
|
|||
},
|
||||
|
||||
setTabVisible: function(index, suppress) {
|
||||
if (index <= 0 || index == 'first') {
|
||||
if (index <= 0) {
|
||||
this.$bar.scrollLeft(0);
|
||||
this.checkInvisible(suppress);
|
||||
} else if ( index >= (this.tabs.length - 1) || index == 'last') {
|
||||
} else if ( index >= (this.tabs.length - 1)) {
|
||||
var tab = this.tabs[this.tabs.length-1].$el;
|
||||
if (this.$bar.find('.separator-item').length === 0) {
|
||||
this.$bar.append('<li class="separator-item"><span></span></li>');
|
||||
|
|
@ -671,6 +608,29 @@ define([
|
|||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
addDataHint: function (index, dataHint) { //Hint Manager
|
||||
var oldHintTab = this.$bar.find('[data-hint]');
|
||||
if (oldHintTab.length > 0) {
|
||||
oldHintTab.removeAttr('data-hint');
|
||||
oldHintTab.removeAttr('data-hint-direction');
|
||||
oldHintTab.removeAttr('data-hint-offset');
|
||||
oldHintTab.removeAttr('data-hint-title');
|
||||
}
|
||||
var newHintTab = this.tabs[index].$el;
|
||||
newHintTab.attr('data-hint', dataHint || '0');
|
||||
newHintTab.attr('data-hint-direction', 'top');
|
||||
newHintTab.attr('data-hint-offset', 'medium');
|
||||
newHintTab.attr('data-hint-title', 'M');
|
||||
},
|
||||
|
||||
getWidth: function() {
|
||||
var width = 21;
|
||||
this.tabs.forEach(function(tab){
|
||||
width += tab.$el.width();
|
||||
});
|
||||
return width;
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -370,8 +370,8 @@ define([
|
|||
|
||||
template: _.template([
|
||||
'<div id="<%=scope.id%>" class="table-styler" style="position: relative; width: <%=scope.width%>px; height:<%=scope.height%>px;">',
|
||||
'<div style="position: absolute; left: 0; top: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px; border-bottom: 1px dotted gray; border-right: 1px dotted gray;"></div>',
|
||||
'<div style="position: absolute; left: <%=scope.tablePadding%>px; top: 0; right: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;">',
|
||||
'<div class="ts-preview-box ts-preview-box--lt" style="left: 0; top: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;"></div>',
|
||||
'<div class="ts-preview-box ts-preview-box--mt" style="left: <%=scope.tablePadding%>px; top: 0; right: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;">',
|
||||
'<div id="<%=scope.id%>-table-top-border-selector" style="position: absolute; z-index: 1; height: <%=scope.tablePadding%>px; left: 0; right: 0; top: <%=scope.tablePadding * .5%>px;">',
|
||||
'<table width="100%" height="100%">',
|
||||
'<tr>',
|
||||
|
|
@ -383,9 +383,9 @@ define([
|
|||
'</table>',
|
||||
'</div>',
|
||||
'</div>',
|
||||
'<div style="position: absolute; top: 0; right: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px; border-bottom: 1px dotted gray; border-left: 1px dotted gray;"></div>',
|
||||
'<div class="ts-preview-box ts-preview-box--rt" style="top: 0; right: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;"></div>',
|
||||
|
||||
'<div style="position: absolute; left: 0; top: <%=scope.tablePadding%>px; width: <%=scope.tablePadding%>px; height: <%=scope.height - 2 * scope.tablePadding%>px;">',
|
||||
'<div class="ts-preview-box ts-preview-box--lm" style="left: 0; top: <%=scope.tablePadding%>px; width: <%=scope.tablePadding%>px; height: <%=scope.height - 2 * scope.tablePadding%>px;">',
|
||||
'<div id="<%=scope.id%>-table-left-border-selector" style="position: absolute; z-index: 1; left: <%=scope.tablePadding * .5%>px; top: 0; bottom: 0; width: <%=scope.tablePadding%>px;">',
|
||||
'<table width="100%" height="100%">',
|
||||
'<tr>',
|
||||
|
|
@ -395,7 +395,7 @@ define([
|
|||
'</table>',
|
||||
'</div>',
|
||||
'</div>',
|
||||
'<div style="position: absolute; left: <%=scope.tablePadding%>px; top: <%=scope.tablePadding%>px; right: <%=scope.tablePadding%>px; bottom: <%=scope.tablePadding%>px;">',
|
||||
'<div class="ts-preview-box ts-preview-box--mm" style="left: <%=scope.tablePadding%>px; top: <%=scope.tablePadding%>px; right: <%=scope.tablePadding%>px; bottom: <%=scope.tablePadding%>px;">',
|
||||
'<table id="<%=scope.id%>-table-content" cols="<%=scope.columns%>" width="100%" height="100%" style="border-collapse: inherit; border-spacing: <%= scope.spacingMode ? scope.cellPadding : 0 %>px;">',
|
||||
'<% for (var row = 0; row < scope.rows; row++) { %>',
|
||||
'<tr>',
|
||||
|
|
@ -406,7 +406,7 @@ define([
|
|||
'<% } %>',
|
||||
'</table>',
|
||||
'</div>',
|
||||
'<div style="position: absolute; right: 0; top: <%=scope.tablePadding%>px; width: <%=scope.tablePadding%>px; height: <%=scope.height - 2 * scope.tablePadding%>px;">',
|
||||
'<div class="ts-preview-box ts-preview-box--rm" style="right: 0; top: <%=scope.tablePadding%>px; width: <%=scope.tablePadding%>px; height: <%=scope.height - 2 * scope.tablePadding%>px;">',
|
||||
'<div id="<%=scope.id%>-table-right-border-selector" style="position: absolute; z-index: 1; right: <%=scope.tablePadding * .5%>px; top: 0; bottom: 0; width: <%=scope.tablePadding%>px;">',
|
||||
'<table width="100%" height="100%">',
|
||||
'<tr>',
|
||||
|
|
@ -417,8 +417,8 @@ define([
|
|||
'</div>',
|
||||
'</div>',
|
||||
|
||||
'<div style="position: absolute; left: 0; bottom: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px; border-top: 1px dotted gray; border-right: 1px dotted gray;"></div>',
|
||||
'<div style="position: absolute; left: <%=scope.tablePadding%>px; bottom: 0; right: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;">',
|
||||
'<div class="ts-preview-box ts-preview-box--lb" style="left: 0; bottom: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;"></div>',
|
||||
'<div class="ts-preview-box ts-preview-box--mb" style="left: <%=scope.tablePadding%>px; bottom: 0; right: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;">',
|
||||
'<div id="<%=scope.id%>-table-bottom-border-selector" style="position: absolute; z-index: 1; height: <%=scope.tablePadding%>px; left: 0; right: 0; bottom: <%=scope.tablePadding * .5%>px;">',
|
||||
'<table width="100%" height="100%">',
|
||||
'<tr>',
|
||||
|
|
@ -430,7 +430,7 @@ define([
|
|||
'</table>',
|
||||
'</div>',
|
||||
'</div>',
|
||||
'<div style="position: absolute; bottom: 0; right: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px; border-top: 1px dotted gray; border-left: 1px dotted gray;"></div>',
|
||||
'<div class="ts-preview-box ts-preview-box--rb" style="bottom: 0; right: 0; width: <%=scope.tablePadding%>px; height: <%=scope.tablePadding%>px;"></div>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,15 @@ define([
|
|||
'spellcheck="<%= spellcheck %>" ',
|
||||
'class="form-control <%= cls %>" ',
|
||||
'placeholder="<%= placeHolder %>" ',
|
||||
'<% if (dataHint) {%>',
|
||||
'data-hint="<%= dataHint %>" ',
|
||||
'<% } %>',
|
||||
'<% if (dataHintDirection) {%>',
|
||||
'data-hint-direction="<%= dataHintDirection %>" ',
|
||||
'<% } %>',
|
||||
'<% if (dataHintOffset) {%>',
|
||||
'data-hint-offset="<%= dataHintOffset %>" ',
|
||||
'<% } %>',
|
||||
'></textarea>',
|
||||
'</div>'
|
||||
].join('')),
|
||||
|
|
@ -101,6 +110,9 @@ define([
|
|||
style : this.style,
|
||||
placeHolder : this.placeHolder,
|
||||
spellcheck : this.spellcheck,
|
||||
dataHint : this.options.dataHint,
|
||||
dataHintDirection: this.options.dataHintDirection,
|
||||
dataHintOffset: this.options.dataHintOffset,
|
||||
scope : me
|
||||
}));
|
||||
|
||||
|
|
@ -171,6 +183,7 @@ define([
|
|||
},
|
||||
|
||||
setDisabled: function(disabled) {
|
||||
disabled = !!disabled;
|
||||
this.disabled = disabled;
|
||||
$(this.el).toggleClass('disabled', disabled);
|
||||
disabled
|
||||
|
|
|
|||
|
|
@ -52,29 +52,36 @@ define([
|
|||
dynamiccolors: 10,
|
||||
standardcolors: 10,
|
||||
themecolors: 10,
|
||||
columns: 10,
|
||||
effects: 5,
|
||||
hideEmptyColors: true,
|
||||
allowReselect: true,
|
||||
transparent: false,
|
||||
value: '000000'
|
||||
value: '000000',
|
||||
enableKeyEvents: true,
|
||||
keyMoveDirection: 'both' // 'vertical', 'horizontal'
|
||||
},
|
||||
|
||||
template :
|
||||
_.template(
|
||||
'<div style="padding: 8px 12px 12px;">' +
|
||||
'<% var me = this; %>' +
|
||||
'<div style="padding: 4px 0 0 12px;">' +
|
||||
'<% var me = this; var idx = 0; %>' +
|
||||
'<% $(colors).each(function(num, item) { %>' +
|
||||
'<% if (me.isBlankSeparator(item)) { %> <div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div>' +
|
||||
'<% } else if (me.isSeparator(item)) { %> </div><div class="divider" style="width:100%;float:left;"></div><div style="padding: 12px;">' +
|
||||
'<% } else if (me.isColor(item)) { %> ' +
|
||||
'<a class="palette-color color-<%=item%>" style="background:#<%=item%>" hidefocus="on">' +
|
||||
'<a class="palette-color color-<%=item%>" style="background:#<%=item%>" idx="<%=idx++%>">' +
|
||||
'<em><span style="background:#<%=item%>;" unselectable="on"> </span></em>' +
|
||||
'</a>' +
|
||||
'<% } else if (me.isTransparent(item)) { %>' +
|
||||
'<a class="color-<%=item%>" hidefocus="on">' +
|
||||
'<a class="color-<%=item%>" idx="<%=idx++%>">' +
|
||||
'<em><span unselectable="on"> </span></em>' +
|
||||
'</a>' +
|
||||
'<% } else if (me.isEffect(item)) { %>' +
|
||||
'<a effectid="<%=item.effectId%>" effectvalue="<%=item.effectValue%>" class="palette-color-effect color-<%=item.color%>" style="background:#<%=item.color%>" hidefocus="on">' +
|
||||
'<% if (idx>0 && me.columns>0 && idx%me.columns===0) { %> ' +
|
||||
'<div style="width:100%;height:0;float:left;"></div>' +
|
||||
'<% } %>' +
|
||||
'<a effectid="<%=item.effectId%>" effectvalue="<%=item.effectValue%>" class="palette-color-effect color-<%=item.color%>" style="background:#<%=item.color%>" idx="<%=idx++%>">' +
|
||||
'<em><span style="background:#<%=item.color%>;" unselectable="on"> </span></em>' +
|
||||
'</a>' +
|
||||
'<% } else if (me.isCaption(item)) { %>' +
|
||||
|
|
@ -83,9 +90,11 @@ define([
|
|||
'<% }); %>' +
|
||||
'</div>' +
|
||||
'<% if (me.options.dynamiccolors!==undefined) { %>' +
|
||||
'<div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div><div style="padding: 12px;">' +
|
||||
'<div class="palette-color-dynamiccolors" style="padding: 4px 0 0 12px">' +
|
||||
'<div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div>' +
|
||||
'<div class="palette-color-caption" style="width:100%;float:left;font-size: 11px;"><%=me.textRecentColors%></div>' +
|
||||
'<% for (var i=0; i<me.options.dynamiccolors; i++) { %>' +
|
||||
'<a class="color-dynamic-<%=i%> dynamic-empty-color" color="" hidefocus="on">' +
|
||||
'<a class="color-dynamic-<%=i%> dynamic-empty-color <%= me.emptyColorsClass %>" color="" idx="<%=idx++%>">' +
|
||||
'<em><span unselectable="on"> </span></em></a>' +
|
||||
'<% } %>' +
|
||||
'<% } %>' +
|
||||
|
|
@ -101,6 +110,20 @@ define([
|
|||
el = me.$el || $(this.el);
|
||||
|
||||
this.colors = me.options.colors || this.generateColorData(me.options.themecolors, me.options.effects, me.options.standardcolors, me.options.transparent);
|
||||
this.columns = me.options.columns || 0;
|
||||
this.enableKeyEvents= me.options.enableKeyEvents;
|
||||
this.tabindex = me.options.tabindex || 0;
|
||||
this.outerMenu = me.options.outerMenu;
|
||||
this.lastSelectedIdx = -1;
|
||||
this.emptyColorsClass = me.options.hideEmptyColors ? 'hidden' : '';
|
||||
|
||||
me.colorItems = [];
|
||||
if (me.options.keyMoveDirection=='vertical')
|
||||
me.moveKeys = [Common.UI.Keys.UP, Common.UI.Keys.DOWN];
|
||||
else if (me.options.keyMoveDirection=='horizontal')
|
||||
me.moveKeys = [Common.UI.Keys.LEFT, Common.UI.Keys.RIGHT];
|
||||
else
|
||||
me.moveKeys = [Common.UI.Keys.UP, Common.UI.Keys.DOWN, Common.UI.Keys.LEFT, Common.UI.Keys.RIGHT];
|
||||
|
||||
el.addClass('theme-colorpalette');
|
||||
this.render();
|
||||
|
|
@ -109,6 +132,15 @@ define([
|
|||
this.updateColors(this.options.updateColorsArr[0], this.options.updateColorsArr[1]);
|
||||
if (this.options.value)
|
||||
this.select(this.options.value, true);
|
||||
if (this.options.outerMenu && this.options.outerMenu.focusOnShow && this.options.outerMenu.menu) {
|
||||
el.addClass('focused');
|
||||
this.options.outerMenu.menu.on('show:after', function(menu) {
|
||||
_.delay(function() {
|
||||
me.showLastSelected();
|
||||
me.focus();
|
||||
}, 10);
|
||||
});
|
||||
}
|
||||
this.updateCustomColors();
|
||||
el.closest('.btn-group').on('show.bs.dropdown', _.bind(this.updateCustomColors, this));
|
||||
el.closest('.dropdown-submenu').on('show.bs.dropdown', _.bind(this.updateCustomColors, this));
|
||||
|
|
@ -117,6 +149,12 @@ define([
|
|||
|
||||
render: function () {
|
||||
this.$el.html(this.template({colors: this.colors}));
|
||||
|
||||
var me = this;
|
||||
this.moveKeys && this.$el.find('a').each(function(num, item) {
|
||||
me.colorItems.push({el: item, index: num});
|
||||
});
|
||||
this.attachKeyEvents();
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
@ -146,28 +184,43 @@ define([
|
|||
updateCustomColors: function() {
|
||||
var el = this.$el || $(this.el);
|
||||
if (el) {
|
||||
var selected = el.find('a.' + this.selectedCls),
|
||||
var selected = (this.lastSelectedIdx>=0) ? $(this.colorItems[this.lastSelectedIdx].el) : el.find('a.' + this.selectedCls),
|
||||
color = (selected.length>0 && /color-dynamic/.test(selected[0].className)) ? selected.attr('color') : undefined;
|
||||
if (color) { // custom color was selected
|
||||
color = color.toUpperCase();
|
||||
selected.removeClass(this.selectedCls);
|
||||
this.lastSelectedIdx = -1;
|
||||
}
|
||||
|
||||
var colors = Common.localStorage.getItem('asc.'+Common.localStorage.getId()+'.colors.custom');
|
||||
colors = colors ? colors.split(',') : [];
|
||||
|
||||
var i = -1, colorEl, c = colors.length < this.options.dynamiccolors ? colors.length : this.options.dynamiccolors;
|
||||
if (this.options.hideEmptyColors && this._layoutParams && el.find('.dynamic-empty-color').length !== (this.options.dynamiccolors - c)) {// recalc indexed if change custom colors
|
||||
this._layoutParams = undefined;
|
||||
}
|
||||
while (++i < c) {
|
||||
colorEl = el.find('.color-dynamic-'+ i);
|
||||
colorEl.removeClass('dynamic-empty-color').attr('color', colors[i]);
|
||||
colorEl.removeClass('dynamic-empty-color').removeClass(this.emptyColorsClass).attr('color', colors[i]);
|
||||
colorEl.find('span').css({
|
||||
'background-color': '#'+colors[i]
|
||||
});
|
||||
if (colors[i] == color) {
|
||||
colorEl.addClass(this.selectedCls);
|
||||
this.lastSelectedIdx = parseInt(colorEl.attr('idx'));
|
||||
color = undefined; //select only first found color
|
||||
}
|
||||
}
|
||||
while (i < this.options.dynamiccolors) {
|
||||
colorEl = el.find('.color-dynamic-'+ i);
|
||||
colorEl.removeAttr('color');
|
||||
colorEl.addClass('dynamic-empty-color').addClass(this.emptyColorsClass);
|
||||
colorEl.find('span').css({
|
||||
'background-color': 'transparent'
|
||||
});
|
||||
i++;
|
||||
}
|
||||
el.find('.palette-color-dynamiccolors').toggleClass(this.emptyColorsClass, c===0);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -176,45 +229,58 @@ define([
|
|||
var target = $(e.target).closest('a');
|
||||
var color, cmp;
|
||||
|
||||
if (target.length==0) return;
|
||||
if (target.length==0) return false;
|
||||
|
||||
if (target.hasClass('color-transparent') ) {
|
||||
$(me.el).find('a.' + me.selectedCls).removeClass(me.selectedCls);
|
||||
me.clearSelection(true);
|
||||
target.addClass(me.selectedCls);
|
||||
me.value = 'transparent';
|
||||
me.trigger('select', me, 'transparent');
|
||||
if (!e.suppressEvent) {
|
||||
me.lastSelectedIdx = parseInt(target.attr('idx'));
|
||||
me.value = 'transparent';
|
||||
me.trigger('select', me, 'transparent');
|
||||
}
|
||||
} else if ( !(target[0].className.search('color-dynamic')<0) ) {
|
||||
if (!/dynamic-empty-color/.test(target[0].className)) {
|
||||
$(me.el).find('a.' + me.selectedCls).removeClass(me.selectedCls);
|
||||
me.clearSelection(true);
|
||||
target.addClass(me.selectedCls);
|
||||
color = target.attr('color');
|
||||
if (color) me.trigger('select', me, color);
|
||||
|
||||
me.value = color.toUpperCase();
|
||||
if (!e.suppressEvent) {
|
||||
me.lastSelectedIdx = parseInt(target.attr('idx'));
|
||||
color = target.attr('color');
|
||||
me.trigger('select', me, color);
|
||||
me.value = color.toUpperCase();
|
||||
}
|
||||
} else {
|
||||
setTimeout(function(){
|
||||
me.addNewColor();
|
||||
}, 10);
|
||||
if (e.suppressEvent) {
|
||||
me.clearSelection(true);
|
||||
target.addClass(me.selectedCls);
|
||||
} else
|
||||
setTimeout(function(){
|
||||
me.addNewColor();
|
||||
}, 10);
|
||||
}
|
||||
} else {
|
||||
if (!/^[a-fA-F0-9]{6}$/.test(me.value) || _.indexOf(me.colors, me.value)<0 )
|
||||
me.value = false;
|
||||
|
||||
$(me.el).find('a.' + me.selectedCls).removeClass(me.selectedCls);
|
||||
me.clearSelection(true);
|
||||
target.addClass(me.selectedCls);
|
||||
|
||||
color = target[0].className.match(me.colorRe)[1];
|
||||
if ( target.hasClass('palette-color-effect') ) {
|
||||
var effectId = parseInt(target.attr('effectid'));
|
||||
if (color) {
|
||||
if (color && !e.suppressEvent) {
|
||||
me.value = color.toUpperCase();
|
||||
me.trigger('select', me, {color: color, effectId: effectId});
|
||||
me.lastSelectedIdx = parseInt(target.attr('idx'));
|
||||
}
|
||||
} else {
|
||||
if (/#?[a-fA-F0-9]{6}/.test(color)) {
|
||||
color = /#?([a-fA-F0-9]{6})/.exec(color)[1].toUpperCase();
|
||||
me.value = color;
|
||||
me.trigger('select', me, color);
|
||||
if (color && !e.suppressEvent) {
|
||||
me.value = color;
|
||||
me.trigger('select', me, color);
|
||||
me.lastSelectedIdx = parseInt(target.attr('idx'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -225,19 +291,22 @@ define([
|
|||
color = /#?([a-fA-F0-9]{6})/.exec(color);
|
||||
if (color) {
|
||||
this.saveCustomColor(color[1]);
|
||||
|
||||
el.find('a.' + this.selectedCls).removeClass(this.selectedCls);
|
||||
this.clearSelection(true);
|
||||
|
||||
var child = el.find('.dynamic-empty-color');
|
||||
if (child.length==0) {
|
||||
this.updateCustomColors();
|
||||
child = el.find('.color-dynamic-' + (this.options.dynamiccolors - 1));
|
||||
} else {
|
||||
if (this.options.hideEmptyColors && this._layoutParams) // recalc indexed
|
||||
this._layoutParams = undefined;
|
||||
}
|
||||
|
||||
child.first().removeClass('dynamic-empty-color').addClass(this.selectedCls).attr('color', color[1]);
|
||||
child.first().removeClass('dynamic-empty-color').removeClass(this.emptyColorsClass).addClass(this.selectedCls).attr('color', color[1]);
|
||||
child.first().find('span').css({
|
||||
'background-color': '#'+color[1]
|
||||
});
|
||||
el.find('.palette-color-dynamiccolors').removeClass(this.emptyColorsClass);
|
||||
this.select(color[1], true);
|
||||
}
|
||||
},
|
||||
|
|
@ -273,7 +342,7 @@ define([
|
|||
|
||||
select: function(color, suppressEvent) {
|
||||
var el = this.$el || $(this.el);
|
||||
el.find('a.' + this.selectedCls).removeClass(this.selectedCls);
|
||||
this.clearSelection();
|
||||
|
||||
if (typeof(color) == 'object' ) {
|
||||
var effectEl;
|
||||
|
|
@ -281,6 +350,7 @@ define([
|
|||
effectEl = el.find('a[effectid="'+color.effectId+'"]').first();
|
||||
if (effectEl.length>0) {
|
||||
effectEl.addClass(this.selectedCls);
|
||||
this.lastSelectedIdx = parseInt(effectEl.attr('idx'));
|
||||
this.value = effectEl[0].className.match(this.colorRe)[1].toUpperCase();
|
||||
} else
|
||||
this.value = false;
|
||||
|
|
@ -288,6 +358,7 @@ define([
|
|||
effectEl = el.find('a[effectvalue="'+color.effectValue+'"].color-' + color.color.toUpperCase()).first();
|
||||
if (effectEl.length>0) {
|
||||
effectEl.addClass(this.selectedCls);
|
||||
this.lastSelectedIdx = parseInt(effectEl.attr('idx'));
|
||||
this.value = effectEl[0].className.match(this.colorRe)[1].toUpperCase();
|
||||
} else
|
||||
this.value = false;
|
||||
|
|
@ -302,8 +373,9 @@ define([
|
|||
if (_.indexOf(this.colors, this.value)<0) this.value = false;
|
||||
|
||||
if (color != this.value || this.options.allowReselect) {
|
||||
(color == 'transparent') ? el.find('a.color-transparent').addClass(this.selectedCls) : el.find('a.palette-color.color-' + color).first().addClass(this.selectedCls);
|
||||
var co = (color == 'transparent') ? el.find('a.color-transparent').addClass(this.selectedCls) : el.find('a.palette-color.color-' + color).first().addClass(this.selectedCls);
|
||||
this.value = color;
|
||||
this.lastSelectedIdx = parseInt(co.attr('idx'));
|
||||
if (suppressEvent !== true) {
|
||||
this.fireEvent('select', this, color);
|
||||
}
|
||||
|
|
@ -314,6 +386,7 @@ define([
|
|||
co = el.find('a[color="'+color+'"]').first();
|
||||
if (co.length>0) {
|
||||
co.addClass(this.selectedCls);
|
||||
this.lastSelectedIdx = parseInt(co.attr('idx'));
|
||||
this.value = color.toUpperCase();
|
||||
}
|
||||
}
|
||||
|
|
@ -322,7 +395,7 @@ define([
|
|||
|
||||
selectByRGB: function(rgb, suppressEvent) {
|
||||
var el = this.$el || $(this.el);
|
||||
el.find('a.' + this.selectedCls).removeClass(this.selectedCls);
|
||||
this.clearSelection(true);
|
||||
|
||||
var color = (typeof(rgb) == 'object') ? rgb.color : rgb;
|
||||
if (/#?[a-fA-F0-9]{6}/.test(color)) {
|
||||
|
|
@ -338,6 +411,7 @@ define([
|
|||
co = el.find('a[color="'+color+'"]').first();
|
||||
if (co.length>0) {
|
||||
co.addClass(this.selectedCls);
|
||||
this.lastSelectedIdx = parseInt(co.attr('idx'));
|
||||
this.value = color;
|
||||
}
|
||||
if (suppressEvent !== true) {
|
||||
|
|
@ -417,14 +491,35 @@ define([
|
|||
|
||||
clearSelection: function(suppressEvent) {
|
||||
this.$el.find('a.' + this.selectedCls).removeClass(this.selectedCls);
|
||||
this.value = undefined;
|
||||
if (!suppressEvent) {
|
||||
this.value = undefined;
|
||||
this.lastSelectedIdx = -1;
|
||||
}
|
||||
},
|
||||
|
||||
showLastSelected: function() {
|
||||
this.selectByIndex(this.lastSelectedIdx, true);
|
||||
},
|
||||
|
||||
getSelectedColor: function() {
|
||||
var el = this.$el || $(this.el);
|
||||
var idx = el.find('a.' + this.selectedCls).attr('idx');
|
||||
return (idx!==undefined) ? this.colorItems[parseInt(idx)] : null;
|
||||
},
|
||||
|
||||
selectByIndex: function(index, suppressEvent) {
|
||||
this.clearSelection(true);
|
||||
|
||||
if (index>=0 && index<this.colorItems.length) {
|
||||
this.handleClick({target: this.colorItems[index].el, suppressEvent: suppressEvent});
|
||||
}
|
||||
},
|
||||
|
||||
generateColorData: function(themecolors, effects, standardcolors, transparent) {
|
||||
var arr = [],
|
||||
len = (themecolors>0 && effects>0) ? themecolors * effects : 0;
|
||||
if (themecolors>0) {
|
||||
arr = [this.textThemeColors, '-'];
|
||||
arr = [this.textThemeColors];
|
||||
for (var i=0; i<themecolors; i++)
|
||||
arr.push({color: 'FFFFFF', effectId: 1});
|
||||
|
||||
|
|
@ -433,10 +528,10 @@ define([
|
|||
arr.push({color: 'FFFFFF', effectId: 1});
|
||||
|
||||
if (standardcolors)
|
||||
arr.push('-', '--', '-');
|
||||
arr.push('-');
|
||||
}
|
||||
if (standardcolors) {
|
||||
arr.push(this.textStandartColors, '-');
|
||||
arr.push(this.textStandartColors);
|
||||
if (transparent) {
|
||||
arr.push('transparent');
|
||||
standardcolors--;
|
||||
|
|
@ -444,12 +539,142 @@ define([
|
|||
for (var i=0; i<standardcolors; i++)
|
||||
arr.push('FFFFFF');
|
||||
}
|
||||
if (this.options.dynamiccolors && (themecolors || standardcolors))
|
||||
arr.push('-', '--');
|
||||
return arr;
|
||||
},
|
||||
|
||||
onKeyDown: function (e, data) {
|
||||
if (data===undefined) data = e;
|
||||
if (_.indexOf(this.moveKeys, data.keyCode)>-1 || data.keyCode==Common.UI.Keys.RETURN) {
|
||||
data.preventDefault();
|
||||
data.stopPropagation();
|
||||
var rec = this.getSelectedColor();
|
||||
if (data.keyCode==Common.UI.Keys.RETURN) {
|
||||
rec && this.selectByIndex(rec.index);
|
||||
if (this.outerMenu && this.outerMenu.menu)
|
||||
this.outerMenu.menu.hide();
|
||||
} else {
|
||||
var idx = rec ? rec.index : -1;
|
||||
if (idx<0) {
|
||||
idx = 0;
|
||||
} else if (this.options.keyMoveDirection == 'both') {
|
||||
if (this._layoutParams === undefined)
|
||||
this.fillIndexesArray();
|
||||
var topIdx = this.colorItems[idx].topIdx,
|
||||
leftIdx = this.colorItems[idx].leftIdx;
|
||||
|
||||
idx = undefined;
|
||||
if (data.keyCode==Common.UI.Keys.LEFT) {
|
||||
while (idx===undefined) {
|
||||
leftIdx--;
|
||||
if (leftIdx<0) {
|
||||
leftIdx = this._layoutParams.columns-1;
|
||||
}
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
} else if (data.keyCode==Common.UI.Keys.RIGHT) {
|
||||
while (idx===undefined) {
|
||||
leftIdx++;
|
||||
if (leftIdx>this._layoutParams.columns-1) leftIdx = 0;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
} else if (data.keyCode==Common.UI.Keys.UP) {
|
||||
if (topIdx==0 && this.outerMenu && this.outerMenu.menu) {
|
||||
this.clearSelection(true);
|
||||
this.outerMenu.menu.focusOuter(data, this.outerMenu.index);
|
||||
} else
|
||||
while (idx===undefined) {
|
||||
topIdx--;
|
||||
if (topIdx<0) topIdx = this._layoutParams.rows-1;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
} else {
|
||||
if (topIdx==this._layoutParams.rows-1 && this.outerMenu && this.outerMenu.menu) {
|
||||
this.clearSelection(true);
|
||||
this.outerMenu.menu.focusOuter(data, this.outerMenu.index);
|
||||
} else
|
||||
while (idx===undefined) {
|
||||
topIdx++;
|
||||
if (topIdx>this._layoutParams.rows-1) topIdx = 0;
|
||||
idx = this._layoutParams.itemsIndexes[topIdx][leftIdx];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
idx = (data.keyCode==Common.UI.Keys.UP || data.keyCode==Common.UI.Keys.LEFT)
|
||||
? Math.max(0, idx-1)
|
||||
: Math.min(this.colorItems.length - 1, idx + 1) ;
|
||||
}
|
||||
|
||||
if (idx !== undefined && idx>=0) {
|
||||
this._fromKeyDown = true;
|
||||
this.selectByIndex(idx, true);
|
||||
this._fromKeyDown = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
fillIndexesArray: function() {
|
||||
if (this.colorItems.length<=0) return;
|
||||
|
||||
this._layoutParams = {
|
||||
itemsIndexes: [],
|
||||
columns: 0,
|
||||
rows: 0
|
||||
};
|
||||
|
||||
var el = $(this.colorItems[0].el),
|
||||
itemW = el.outerWidth() + parseInt(el.css('margin-left')) + parseInt(el.css('margin-right')),
|
||||
offsetLeft = this.$el.offset().left,
|
||||
offsetTop = el.offset().top,
|
||||
prevtop = -1, topIdx = 0, leftIdx = 0;
|
||||
|
||||
for (var i=0; i<this.colorItems.length; i++) {
|
||||
var top = $(this.colorItems[i].el).offset().top - offsetTop;
|
||||
leftIdx = Math.floor(($(this.colorItems[i].el).offset().left - offsetLeft)/itemW);
|
||||
if (top>prevtop) {
|
||||
prevtop = top;
|
||||
this._layoutParams.itemsIndexes.push([]);
|
||||
topIdx = this._layoutParams.itemsIndexes.length-1;
|
||||
}
|
||||
this._layoutParams.itemsIndexes[topIdx][leftIdx] = i;
|
||||
this.colorItems[i].topIdx = topIdx;
|
||||
this.colorItems[i].leftIdx = leftIdx;
|
||||
if (this._layoutParams.columns<leftIdx) this._layoutParams.columns = leftIdx;
|
||||
}
|
||||
this._layoutParams.rows = this._layoutParams.itemsIndexes.length;
|
||||
this._layoutParams.columns++;
|
||||
},
|
||||
|
||||
attachKeyEvents: function() {
|
||||
if (this.enableKeyEvents) {
|
||||
var el = this.$el || $(this.el);
|
||||
el.addClass('canfocused');
|
||||
el.attr('tabindex', this.tabindex.toString());
|
||||
el.on('keydown', _.bind(this.onKeyDown, this));
|
||||
}
|
||||
},
|
||||
|
||||
focus: function(index) {
|
||||
var el = this.$el || $(this.el);
|
||||
el && el.focus();
|
||||
if (typeof index == 'string') {
|
||||
if (index == 'first') {
|
||||
this.selectByIndex(0, true);
|
||||
} else if (index == 'last') {
|
||||
if (this._layoutParams === undefined)
|
||||
this.fillIndexesArray();
|
||||
this.selectByIndex(this._layoutParams.itemsIndexes[this._layoutParams.rows-1][0], true);
|
||||
}
|
||||
} else if (index !== undefined)
|
||||
this.selectByIndex(index, true);
|
||||
},
|
||||
|
||||
focusInner: function(e) {
|
||||
this.focus(e.keyCode == Common.UI.Keys.DOWN ? 'first' : 'last');
|
||||
},
|
||||
|
||||
textThemeColors : 'Theme Colors',
|
||||
textStandartColors : 'Standart Colors'
|
||||
textStandartColors : 'Standard Colors',
|
||||
textRecentColors : 'Recent Colors'
|
||||
}, Common.UI.ThemeColorPalette || {}));
|
||||
});
|
||||
|
|
@ -104,12 +104,17 @@
|
|||
offset : opts.offset,
|
||||
cls : opts.cls,
|
||||
html : opts.html,
|
||||
hideonclick : opts.hideonclick
|
||||
hideonclick : opts.hideonclick,
|
||||
keepvisible: opts.keepvisible
|
||||
});
|
||||
|
||||
if (opts.hideonclick) {
|
||||
var me = this;
|
||||
var tip = this.$element.data('bs.tooltip');
|
||||
if (tip) tip.tip().on('click', function() {tip.hide();});
|
||||
if (tip) tip.tip().on('click', function() {
|
||||
tip.hide();
|
||||
me.trigger('tooltip:hideonclick', this);
|
||||
});
|
||||
}
|
||||
|
||||
this.$element.on('shown.bs.tooltip', _.bind(this.onTipShown, this));
|
||||
|
|
|
|||
|
|
@ -212,19 +212,7 @@ define([
|
|||
this.dataViewItems.push(view);
|
||||
}
|
||||
|
||||
var name = record.get('name');
|
||||
if (name.length > 37 - record.get('level')*2)
|
||||
record.set('tip', name);
|
||||
if (record.get('tip')) {
|
||||
var view_el = $(view.el);
|
||||
view_el.attr('data-toggle', 'tooltip');
|
||||
view_el.tooltip({
|
||||
title : record.get('tip'),
|
||||
placement : 'cursor',
|
||||
zIndex : this.tipZIndex
|
||||
});
|
||||
}
|
||||
|
||||
this.updateTip(view);
|
||||
this.listenTo(view, 'change', this.onChangeItem);
|
||||
this.listenTo(view, 'remove', this.onRemoveItem);
|
||||
this.listenTo(view, 'click', this.onClickItem);
|
||||
|
|
@ -247,31 +235,31 @@ define([
|
|||
var isExpanded = !record.get('isExpanded');
|
||||
record.set('isExpanded', isExpanded);
|
||||
this.store[(isExpanded) ? 'expandSubItems' : 'collapseSubItems'](record);
|
||||
this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
this.scroller.update({minScrollbarLength: this.minScrollbarLength, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
} else
|
||||
Common.UI.DataView.prototype.onClickItem.call(this, view, record, e);
|
||||
},
|
||||
|
||||
expandAll: function() {
|
||||
this.store.expandAll();
|
||||
this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
this.scroller.update({minScrollbarLength: this.minScrollbarLength, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
},
|
||||
|
||||
collapseAll: function() {
|
||||
this.store.collapseAll();
|
||||
this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
this.scroller.update({minScrollbarLength: this.minScrollbarLength, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
},
|
||||
|
||||
expandToLevel: function(expandLevel) {
|
||||
this.store.expandToLevel(expandLevel);
|
||||
this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
this.scroller.update({minScrollbarLength: this.minScrollbarLength, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
},
|
||||
|
||||
expandRecord: function(record) {
|
||||
if (record) {
|
||||
record.set('isExpanded', true);
|
||||
this.store.expandSubItems(record);
|
||||
this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
this.scroller.update({minScrollbarLength: this.minScrollbarLength, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -279,7 +267,7 @@ define([
|
|||
if (record) {
|
||||
record.set('isExpanded', false);
|
||||
this.store.collapseSubItems(record);
|
||||
this.scroller.update({minScrollbarLength: 40, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
this.scroller.update({minScrollbarLength: this.minScrollbarLength, alwaysVisibleY: this.scrollAlwaysVisible});
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -361,6 +349,51 @@ define([
|
|||
|
||||
focus: function() {
|
||||
this.cmpEl && this.cmpEl.find('.treeview').focus();
|
||||
},
|
||||
|
||||
updateTip: function(item) {
|
||||
var record = item.model,
|
||||
name = record.get('name'),
|
||||
me = this;
|
||||
|
||||
if (name.length > 37 - record.get('level')*2)
|
||||
record.set('tip', name);
|
||||
else
|
||||
record.set('tip', '');
|
||||
|
||||
var el = item.$el || $(item.el);
|
||||
var tip = el.data('bs.tooltip');
|
||||
if (tip) {
|
||||
if (tip.dontShow===undefined)
|
||||
tip.dontShow = true;
|
||||
el.removeData('bs.tooltip');
|
||||
}
|
||||
if (record.get('tip')) {
|
||||
el.attr('data-toggle', 'tooltip');
|
||||
el.tooltip({
|
||||
title : record.get('tip'),
|
||||
placement : 'cursor',
|
||||
zIndex : this.tipZIndex
|
||||
});
|
||||
if (this.delayRenderTips)
|
||||
el.one('mouseenter', function(){
|
||||
el.attr('data-toggle', 'tooltip');
|
||||
el.tooltip({
|
||||
title : record.get('tip'),
|
||||
placement : 'cursor',
|
||||
zIndex : me.tipZIndex
|
||||
});
|
||||
el.mouseenter();
|
||||
});
|
||||
else {
|
||||
el.attr('data-toggle', 'tooltip');
|
||||
el.tooltip({
|
||||
title : record.get('tip'),
|
||||
placement : 'cursor',
|
||||
zIndex : me.tipZIndex
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})());
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@
|
|||
define([
|
||||
'common/main/lib/component/BaseView',
|
||||
'common/main/lib/component/CheckBox',
|
||||
'common/main/lib/component/FocusManager'
|
||||
'common/main/lib/controller/FocusManager'
|
||||
], function () {
|
||||
'use strict';
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ define([
|
|||
|
||||
function _autoSize() {
|
||||
if (this.initConfig.height == 'auto') {
|
||||
var height = parseInt(this.$window.find('> .body').css('height'));
|
||||
var height = Math.ceil(parseFloat(this.$window.find('> .body').css('height')));
|
||||
this.initConfig.header && (height += parseInt(this.$window.find('> .header').css('height')));
|
||||
this.$window.height(height);
|
||||
}
|
||||
|
|
@ -455,7 +455,7 @@ define([
|
|||
if (!options.width) options.width = 'auto';
|
||||
|
||||
var template = '<div class="info-box">' +
|
||||
'<% if (typeof iconCls !== "undefined") { %><div class="icon img-commonctrl img-colored <%= iconCls %>"></div><% } %>' +
|
||||
'<% if (typeof iconCls !== "undefined") { %><div class="icon <%= iconCls %>"></div><% } %>' +
|
||||
'<div class="text" <% if (typeof iconCls == "undefined") { %> style="padding-left:10px;" <% } %>><span><%= msg %></span>' +
|
||||
'<% if (dontshow) { %><div class="dont-show-checkbox"></div><% } %>' +
|
||||
'</div>' +
|
||||
|
|
@ -490,7 +490,8 @@ define([
|
|||
if (options.width=='auto') {
|
||||
text_cnt.height(Math.max(text.height(), icon_height) + ((check.length>0) ? (check.height() + parseInt(check.css('margin-top'))) : 0));
|
||||
body.height(parseInt(text_cnt.css('height')) + parseInt(footer.css('height')));
|
||||
window.setSize(text.position().left + text.width() + parseInt(text_cnt.css('padding-right')),
|
||||
var span_el = check.find('span');
|
||||
window.setSize(Math.max(text.width(), span_el.length>0 ? span_el.position().left + span_el.width() : 0) + text.position().left + parseInt(text_cnt.css('padding-right')),
|
||||
parseInt(body.css('height')) + parseInt(header.css('height')));
|
||||
} else {
|
||||
text.css('white-space', 'normal');
|
||||
|
|
|
|||
|
|
@ -85,16 +85,25 @@ define([
|
|||
storeUsers: this.getApplication().getCollection('Common.Collections.Users'),
|
||||
storeMessages: this.getApplication().getCollection('Common.Collections.ChatMessages')
|
||||
});
|
||||
this.panelChat.on('render:after', _.bind(this.onAfterRender, this));
|
||||
},
|
||||
|
||||
onAfterRender: function(panel) {
|
||||
var viewport = this.getApplication().getController('Viewport').getView('Viewport');
|
||||
viewport.hlayout.on('layout:resizedrag', _.bind(function () {
|
||||
panel && panel.updateScrolls();
|
||||
}, this));
|
||||
},
|
||||
|
||||
setMode: function(mode) {
|
||||
this.mode = mode;
|
||||
this.currentUserId = mode.user.id;
|
||||
|
||||
if (this.api) {
|
||||
if (this.mode.canCoAuthoring && this.mode.canChat)
|
||||
this.api.asc_registerCallback('asc_onCoAuthoringChatReceiveMessage', _.bind(this.onReceiveMessage, this));
|
||||
|
||||
if ( !this.mode.isEditDiagram && !this.mode.isEditMailMerge ) {
|
||||
if ( !this.mode.isEditDiagram && !this.mode.isEditMailMerge && !this.mode.isEditOle ) {
|
||||
this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onUsersChanged, this));
|
||||
this.api.asc_registerCallback('asc_onConnectionStateChanged', _.bind(this.onUserConnection, this));
|
||||
this.api.asc_coAuthoringGetUsers();
|
||||
|
|
@ -142,7 +151,8 @@ define([
|
|||
username : user.asc_getUserName(),
|
||||
online : true,
|
||||
color : user.asc_getColor(),
|
||||
view : user.asc_getView()
|
||||
view : user.asc_getView(),
|
||||
hidden : !(user.asc_getIdOriginal()===this.currentUserId || AscCommon.UserInfoParser.isUserVisible(user.asc_getUserName()))
|
||||
});
|
||||
arrUsers[(user.asc_getId() == currentUserId ) ? 'unshift' : 'push'](usermodel);
|
||||
}
|
||||
|
|
@ -165,7 +175,8 @@ define([
|
|||
username : change.asc_getUserName(),
|
||||
online : change.asc_getState(),
|
||||
color : change.asc_getColor(),
|
||||
view : change.asc_getView()
|
||||
view : change.asc_getView(),
|
||||
hidden : !(change.asc_getIdOriginal()===this.currentUserId || AscCommon.UserInfoParser.isUserVisible(change.asc_getUserName()))
|
||||
}));
|
||||
} else {
|
||||
user.set({online: change.asc_getState()});
|
||||
|
|
|
|||
|
|
@ -102,7 +102,9 @@ define([
|
|||
|
||||
// work handlers
|
||||
|
||||
'comment:closeEditing': _.bind(this.closeEditing, this)
|
||||
'comment:closeEditing': _.bind(this.closeEditing, this),
|
||||
'comment:sort': _.bind(this.setComparator, this),
|
||||
'comment:filtergroups': _.bind(this.setFilterGroups, this)
|
||||
},
|
||||
|
||||
'Common.Views.ReviewPopover': {
|
||||
|
|
@ -144,10 +146,11 @@ define([
|
|||
}.bind(this));
|
||||
},
|
||||
onLaunch: function () {
|
||||
var filter = Common.localStorage.getKeysFilter();
|
||||
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||
|
||||
this.collection = this.getApplication().getCollection('Common.Collections.Comments');
|
||||
if (this.collection) {
|
||||
this.collection.comparator = function (collection) { return -collection.get('time'); };
|
||||
}
|
||||
this.setComparator();
|
||||
|
||||
this.popoverComments = new Common.Collections.Comments();
|
||||
if (this.popoverComments) {
|
||||
|
|
@ -155,6 +158,7 @@ define([
|
|||
}
|
||||
|
||||
this.groupCollection = [];
|
||||
this.userGroups = []; // for filtering comments
|
||||
|
||||
this.view = this.createView('Common.Views.Comments', { store: this.collection });
|
||||
this.view.render();
|
||||
|
|
@ -192,6 +196,7 @@ define([
|
|||
this.api.asc_registerCallback('asc_onUpdateCommentPosition', _.bind(this.onApiUpdateCommentPosition, this));
|
||||
this.api.asc_registerCallback('asc_onDocumentPlaceChanged', _.bind(this.onDocumentPlaceChanged, this));
|
||||
this.api.asc_registerCallback('asc_onDeleteComment', _.bind(this.onDeleteComment, this)); // only for PE, when del or ctrl+x pressed
|
||||
this.api.asc_registerCallback('asc_onChangeCommentLogicalPosition', _.bind(this.onApiChangeCommentLogicalPosition, this)); // change comments position in document
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -204,6 +209,42 @@ define([
|
|||
},
|
||||
//
|
||||
|
||||
setComparator: function(type) {
|
||||
if (this.collection) {
|
||||
var sort = (type !== undefined);
|
||||
if (type === undefined) {
|
||||
type = Common.localStorage.getItem(this.appPrefix + "comments-sort") || 'date-desc';
|
||||
}
|
||||
Common.localStorage.setItem(this.appPrefix + "comments-sort", type);
|
||||
Common.Utils.InternalSettings.set(this.appPrefix + "comments-sort", type);
|
||||
|
||||
if (type=='position-asc' || type=='position-desc') {
|
||||
var direction = (type=='position-asc') ? 1 : -1;
|
||||
this.collection.comparator = function (collection) {
|
||||
return direction * collection.get('position');
|
||||
};
|
||||
} else if (type=='author-asc' || type=='author-desc') {
|
||||
var direction = (type=='author-asc') ? 1 : -1;
|
||||
this.collection.comparator = function(item1, item2) {
|
||||
var n1 = item1.get('parsedName').toLowerCase(),
|
||||
n2 = item2.get('parsedName').toLowerCase();
|
||||
if (n1==n2) return 0;
|
||||
return (n1<n2) ? -direction : direction;
|
||||
};
|
||||
} else { // date
|
||||
var direction = (type=='date-asc') ? 1 : -1;
|
||||
this.collection.comparator = function (collection) {
|
||||
return direction * collection.get('time');
|
||||
};
|
||||
}
|
||||
sort && this.updateComments(true);
|
||||
}
|
||||
},
|
||||
|
||||
getComparator: function() {
|
||||
return Common.Utils.InternalSettings.get(this.appPrefix + "comments-sort") || 'date';
|
||||
},
|
||||
|
||||
onCreateComment: function (panel, commentVal, editMode, hidereply, documentFlag) {
|
||||
if (this.api && commentVal && commentVal.length > 0) {
|
||||
var comment = buildCommentData(); // new asc_CCommentData(null);
|
||||
|
|
@ -656,14 +697,15 @@ define([
|
|||
|
||||
var end = true;
|
||||
for (var i = this.collection.length - 1; i >= 0; --i) {
|
||||
if (end) {
|
||||
this.collection.at(i).set('last', true, {silent: true});
|
||||
var item = this.collection.at(i);
|
||||
if (end && !item.get('hide') && !item.get('filtered')) {
|
||||
item.set('last', true, {silent: true});
|
||||
end = false;
|
||||
} else {
|
||||
if (this.collection.at(i).get('last')) {
|
||||
this.collection.at(i).set('last', false, {silent: true});
|
||||
if (item.get('last')) {
|
||||
item.set('last', false, {silent: true});
|
||||
}
|
||||
}
|
||||
end = false;
|
||||
}
|
||||
this.view.render();
|
||||
this.view.update();
|
||||
|
|
@ -693,7 +735,7 @@ define([
|
|||
} else
|
||||
this.collection.push(comment);
|
||||
|
||||
this.updateComments(true);
|
||||
this.updateComments(true, this.getComparator() === 'position-asc' || this.getComparator() === 'position-desc'); // don't sort by position
|
||||
|
||||
if (this.showPopover) {
|
||||
if (null !== data.asc_getQuoteText()) {
|
||||
|
|
@ -713,7 +755,7 @@ define([
|
|||
comment.get('groupName') ? this.addCommentToGroupCollection(comment) : this.collection.push(comment);
|
||||
}
|
||||
|
||||
this.updateComments(true);
|
||||
this.updateComments(true, this.getComparator() === 'position-asc' || this.getComparator() === 'position-desc');
|
||||
},
|
||||
onApiRemoveComment: function (id, silentUpdate) {
|
||||
for (var name in this.groupCollection) {
|
||||
|
|
@ -776,9 +818,12 @@ define([
|
|||
((data.asc_getTime() == '') ? new Date() : new Date(this.stringUtcToLocalDate(data.asc_getTime())));
|
||||
|
||||
var user = this.userCollection.findOriginalUser(data.asc_getUserId());
|
||||
var needSort = (this.getComparator() == 'author-asc' || this.getComparator() == 'author-desc') && (data.asc_getUserName() !== comment.get('username'));
|
||||
comment.set('comment', data.asc_getText());
|
||||
comment.set('userid', data.asc_getUserId());
|
||||
comment.set('username', data.asc_getUserName());
|
||||
comment.set('parsedName', AscCommon.UserInfoParser.getParsedName(data.asc_getUserName()));
|
||||
comment.set('parsedGroups', AscCommon.UserInfoParser.getParsedGroups(data.asc_getUserName()));
|
||||
comment.set('usercolor', (user) ? user.get('color') : null);
|
||||
comment.set('resolved', data.asc_getSolved());
|
||||
comment.set('quote', data.asc_getQuoteText());
|
||||
|
|
@ -789,6 +834,14 @@ define([
|
|||
comment.set('removable', (t.mode.canDeleteComments || (data.asc_getUserId() == t.currentUserId)) && AscCommon.UserInfoParser.canDeleteComment(data.asc_getUserName()));
|
||||
comment.set('hide', !AscCommon.UserInfoParser.canViewComment(data.asc_getUserName()));
|
||||
|
||||
if (!comment.get('hide')) {
|
||||
var usergroups = comment.get('parsedGroups');
|
||||
t.fillUserGroups(usergroups);
|
||||
var group = Common.Utils.InternalSettings.get(t.appPrefix + "comments-filtergroups");
|
||||
var filter = !!group && (group!==-1) && (!usergroups || usergroups.length<1 || usergroups.indexOf(group)<0);
|
||||
comment.set('filtered', filter);
|
||||
}
|
||||
|
||||
replies = _.clone(comment.get('replys'));
|
||||
|
||||
replies.length = 0;
|
||||
|
|
@ -804,6 +857,7 @@ define([
|
|||
id : Common.UI.getId(),
|
||||
userid : data.asc_getReply(i).asc_getUserId(),
|
||||
username : data.asc_getReply(i).asc_getUserName(),
|
||||
parsedName : AscCommon.UserInfoParser.getParsedName(data.asc_getReply(i).asc_getUserName()),
|
||||
usercolor : (user) ? user.get('color') : null,
|
||||
date : t.dateToLocaleTimeString(dateReply),
|
||||
reply : data.asc_getReply(i).asc_getText(),
|
||||
|
|
@ -825,7 +879,7 @@ define([
|
|||
}
|
||||
|
||||
if (!silentUpdate) {
|
||||
this.updateComments(false, true);
|
||||
this.updateComments(needSort, !needSort);
|
||||
|
||||
// if (this.getPopover() && this.getPopover().isVisible()) {
|
||||
// this._dontScrollToComment = true;
|
||||
|
|
@ -866,8 +920,6 @@ define([
|
|||
// хотим показать тот же коментарий что был и выбран
|
||||
return;
|
||||
}
|
||||
if (this.mode && !this.mode.canComments)
|
||||
hint = true;
|
||||
|
||||
var popover = this.getPopover();
|
||||
if (popover) {
|
||||
|
|
@ -1065,17 +1117,28 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
onApiChangeCommentLogicalPosition: function (comments) {
|
||||
for (var uid in comments) {
|
||||
if (comments.hasOwnProperty(uid)) {
|
||||
var comment = this.findComment(uid) || this.findCommentInGroup(uid);
|
||||
comment && comment.set('position', comments[uid]);
|
||||
}
|
||||
}
|
||||
(this.getComparator() === 'position-asc' || this.getComparator() === 'position-desc') && this.updateComments(true);
|
||||
},
|
||||
|
||||
// internal
|
||||
|
||||
updateComments: function (needRender, disableSort, loadText) {
|
||||
var me = this;
|
||||
me.updateCommentsTime = new Date();
|
||||
me.disableSort = !!disableSort;
|
||||
if (me.timerUpdateComments===undefined)
|
||||
me.timerUpdateComments = setInterval(function(){
|
||||
if ((new Date()) - me.updateCommentsTime>100) {
|
||||
clearInterval(me.timerUpdateComments);
|
||||
me.timerUpdateComments = undefined;
|
||||
me.updateCommentsView(needRender, disableSort, loadText);
|
||||
me.updateCommentsView(needRender, me.disableSort, loadText);
|
||||
}
|
||||
}, 25);
|
||||
},
|
||||
|
|
@ -1089,7 +1152,7 @@ define([
|
|||
|
||||
var i, end = true;
|
||||
|
||||
if (_.isUndefined(disableSort)) {
|
||||
if (!disableSort) {
|
||||
this.collection.sort();
|
||||
}
|
||||
|
||||
|
|
@ -1097,14 +1160,15 @@ define([
|
|||
this.onUpdateFilter(this.filter, true);
|
||||
|
||||
for (i = this.collection.length - 1; i >= 0; --i) {
|
||||
if (end) {
|
||||
this.collection.at(i).set('last', true, {silent: true});
|
||||
var item = this.collection.at(i);
|
||||
if (end && !item.get('hide') && !item.get('filtered')) {
|
||||
item.set('last', true, {silent: true});
|
||||
end = false;
|
||||
} else {
|
||||
if (this.collection.at(i).get('last')) {
|
||||
this.collection.at(i).set('last', false, {silent: true});
|
||||
if (item.get('last')) {
|
||||
item.set('last', false, {silent: true});
|
||||
}
|
||||
}
|
||||
end = false;
|
||||
}
|
||||
|
||||
this.view.render();
|
||||
|
|
@ -1185,7 +1249,8 @@ define([
|
|||
renderTo : this.sdkViewName,
|
||||
canRequestUsers: (this.mode) ? this.mode.canRequestUsers : undefined,
|
||||
canRequestSendNotify: (this.mode) ? this.mode.canRequestSendNotify : undefined,
|
||||
mentionShare: (this.mode) ? this.mode.mentionShare : true
|
||||
mentionShare: (this.mode) ? this.mode.mentionShare : true,
|
||||
api: this.api
|
||||
});
|
||||
this.popover.setCommentsStore(this.popoverComments);
|
||||
}
|
||||
|
|
@ -1253,6 +1318,8 @@ define([
|
|||
guid : data.asc_getGuid(),
|
||||
userid : data.asc_getUserId(),
|
||||
username : data.asc_getUserName(),
|
||||
parsedName : AscCommon.UserInfoParser.getParsedName(data.asc_getUserName()),
|
||||
parsedGroups : AscCommon.UserInfoParser.getParsedGroups(data.asc_getUserName()),
|
||||
usercolor : (user) ? user.get('color') : null,
|
||||
date : this.dateToLocaleTimeString(date),
|
||||
quote : data.asc_getQuoteText(),
|
||||
|
|
@ -1276,6 +1343,13 @@ define([
|
|||
groupName : (groupname && groupname.length>1) ? groupname[1] : null
|
||||
});
|
||||
if (comment) {
|
||||
if (!comment.get('hide')) {
|
||||
var usergroups = comment.get('parsedGroups');
|
||||
this.fillUserGroups(usergroups);
|
||||
var group = Common.Utils.InternalSettings.get(this.appPrefix + "comments-filtergroups");
|
||||
var filter = !!group && (group!==-1) && (!usergroups || usergroups.length<1 || usergroups.indexOf(group)<0);
|
||||
comment.set('filtered', filter);
|
||||
}
|
||||
var replies = this.readSDKReplies(data);
|
||||
if (replies.length) {
|
||||
comment.set('replys', replies);
|
||||
|
|
@ -1299,6 +1373,7 @@ define([
|
|||
id : Common.UI.getId(),
|
||||
userid : data.asc_getReply(i).asc_getUserId(),
|
||||
username : data.asc_getReply(i).asc_getUserName(),
|
||||
parsedName : AscCommon.UserInfoParser.getParsedName(data.asc_getReply(i).asc_getUserName()),
|
||||
usercolor : (user) ? user.get('color') : null,
|
||||
date : this.dateToLocaleTimeString(date),
|
||||
reply : data.asc_getReply(i).asc_getText(),
|
||||
|
|
@ -1340,6 +1415,7 @@ define([
|
|||
date: this.dateToLocaleTimeString(date),
|
||||
userid: this.currentUserId,
|
||||
username: AscCommon.UserInfoParser.getCurrentName(),
|
||||
parsedName: AscCommon.UserInfoParser.getParsedName(AscCommon.UserInfoParser.getCurrentName()),
|
||||
usercolor: (user) ? user.get('color') : null,
|
||||
editTextInPopover: true,
|
||||
showReplyInPopover: false,
|
||||
|
|
@ -1584,6 +1660,64 @@ define([
|
|||
clearCollections: function() {
|
||||
this.collection.reset();
|
||||
this.groupCollection = [];
|
||||
},
|
||||
|
||||
fillUserGroups: function(usergroups) {
|
||||
if (!this.mode.canUseCommentPermissions) return;
|
||||
|
||||
var viewgroups = AscCommon.UserInfoParser.getCommentPermissions('view');
|
||||
if (usergroups && usergroups.length>0) {
|
||||
if (viewgroups)
|
||||
usergroups = _.intersection(usergroups, viewgroups);
|
||||
usergroups = _.uniq(this.userGroups.concat(usergroups));
|
||||
}
|
||||
if (this.view && this.view.buttonSort && _.difference(usergroups, this.userGroups).length>0) {
|
||||
this.userGroups = usergroups;
|
||||
var menu = this.view.buttonSort.menu;
|
||||
menu.items[menu.items.length-1].setVisible(this.userGroups.length>0);
|
||||
menu.items[menu.items.length-2].setVisible(this.userGroups.length>0);
|
||||
menu = menu.items[menu.items.length-1].menu;
|
||||
menu.removeAll();
|
||||
|
||||
var last = Common.Utils.InternalSettings.get(this.appPrefix + "comments-filtergroups");
|
||||
menu.addItem(new Common.UI.MenuItem({
|
||||
checkable: true,
|
||||
checked: last===-1 || last===undefined,
|
||||
toggleGroup: 'filtercomments',
|
||||
caption: this.view.textAll,
|
||||
value: -1
|
||||
}));
|
||||
this.userGroups.forEach(function(item){
|
||||
menu.addItem(new Common.UI.MenuItem({
|
||||
checkable: true,
|
||||
checked: last === item,
|
||||
toggleGroup: 'filtercomments',
|
||||
caption: Common.Utils.String.htmlEncode(item),
|
||||
value: item
|
||||
}));
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
setFilterGroups: function (group) {
|
||||
Common.Utils.InternalSettings.set(this.appPrefix + "comments-filtergroups", group);
|
||||
var i, end = true;
|
||||
for (i = this.collection.length - 1; i >= 0; --i) {
|
||||
var item = this.collection.at(i);
|
||||
if (!item.get('hide')) {
|
||||
var usergroups = item.get('parsedGroups');
|
||||
item.set('filtered', !!group && (group!==-1) && (!usergroups || usergroups.length<1 || usergroups.indexOf(group)<0), {silent: true});
|
||||
}
|
||||
if (end && !item.get('hide') && !item.get('filtered')) {
|
||||
item.set('last', true, {silent: true});
|
||||
end = false;
|
||||
} else {
|
||||
if (item.get('last')) {
|
||||
item.set('last', false, {silent: true});
|
||||
}
|
||||
}
|
||||
}
|
||||
this.updateComments(true);
|
||||
}
|
||||
|
||||
}, Common.Controllers.Comments || {}));
|
||||
|
|
|
|||
|
|
@ -45,7 +45,8 @@ define([
|
|||
version: '{{PRODUCT_VERSION}}',
|
||||
eventloading: true,
|
||||
titlebuttons: true,
|
||||
uithemes: true
|
||||
uithemes: true,
|
||||
quickprint: true,
|
||||
};
|
||||
|
||||
var native = window.desktop || window.AscDesktopEditor;
|
||||
|
|
@ -60,8 +61,12 @@ define([
|
|||
'btn-save-coauth': 'coauth',
|
||||
'btn-synch': 'synch' };
|
||||
|
||||
var nativevars;
|
||||
|
||||
if ( !!native ) {
|
||||
native.features = native.features || {};
|
||||
nativevars = window.RendererProcessVariable;
|
||||
|
||||
window.on_native_message = function (cmd, param) {
|
||||
if (/^style:change/.test(cmd)) {
|
||||
var obj = JSON.parse(param);
|
||||
|
|
@ -88,7 +93,12 @@ define([
|
|||
Common.Utils.InternalSettings.set('window-inactive-area-top', obj.skiptoparea);
|
||||
} else
|
||||
if ( obj.lockthemes != undefined ) {
|
||||
Common.UI.Themes.setAvailable(!obj.lockthemes);
|
||||
// TODO: remove after 7.0.2. depricated. used is_win_xp variable instead
|
||||
// Common.UI.Themes.setAvailable(!obj.lockthemes);
|
||||
}
|
||||
if ( obj.singlewindow !== undefined ) {
|
||||
$('#box-document-title .hedset')[obj.singlewindow ? 'hide' : 'show']();
|
||||
native.features.singlewindow = obj.singlewindow;
|
||||
}
|
||||
} else
|
||||
if (/editor:config/.test(cmd)) {
|
||||
|
|
@ -130,6 +140,10 @@ define([
|
|||
if (!!_mr[1]) $('#app-title').show();
|
||||
else if (!!_mr[2]) $('#app-title').hide();
|
||||
}
|
||||
} else
|
||||
if (/althints:show/.test(cmd)) {
|
||||
if ( /false|hide/.test(param) )
|
||||
Common.NotificationCenter.trigger('hints:clear');
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -153,7 +167,8 @@ define([
|
|||
action: action,
|
||||
icon: config.icon || undefined,
|
||||
hint: config.btn.options.hint,
|
||||
disabled: config.btn.isDisabled()
|
||||
disabled: config.btn.isDisabled(),
|
||||
visible: config.visible,
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -180,11 +195,56 @@ define([
|
|||
}
|
||||
};
|
||||
|
||||
var _onHintsShow = function (visible, level) {
|
||||
let info = {
|
||||
visible: visible && !(level > 0),
|
||||
};
|
||||
|
||||
if ( !!titlebuttons ) {
|
||||
info.hints = {};
|
||||
!!titlebuttons['print'] && (info.hints['print'] = titlebuttons['print'].btn.btnEl.attr('data-hint-title'));
|
||||
!!titlebuttons['quickprint'] && (info.hints['quickprint'] = titlebuttons['quickprint'].btn.btnEl.attr('data-hint-title'));
|
||||
!!titlebuttons['undo'] && (info.hints['undo'] = titlebuttons['undo'].btn.btnEl.attr('data-hint-title'));
|
||||
!!titlebuttons['redo'] && (info.hints['redo'] = titlebuttons['redo'].btn.btnEl.attr('data-hint-title'));
|
||||
!!titlebuttons['save'] && (info.hints['save'] = titlebuttons['save'].btn.btnEl.attr('data-hint-title'));
|
||||
}
|
||||
|
||||
native.execCommand('althints:show', JSON.stringify(info));
|
||||
}
|
||||
|
||||
var _onKeyDown = function (e) {
|
||||
if ( Common.UI.HintManager.isHintVisible() ) {
|
||||
native.execCommand('althints:keydown', JSON.stringify({code:e.keyCode}));
|
||||
console.log('hint keydown', e.keyCode);
|
||||
}
|
||||
}
|
||||
|
||||
const _onApplySettings = function (menu) {
|
||||
if ( !!titlebuttons.quickprint ) {
|
||||
const var_name = window.SSE ? 'sse-settings-quick-print-button' :
|
||||
window.PE ? 'pe-settings-quick-print-button' : 'de-settings-quick-print-button';
|
||||
const is_btn_visible = Common.localStorage.getBool(var_name, false);
|
||||
|
||||
if ( titlebuttons.quickprint.visible != is_btn_visible ) {
|
||||
titlebuttons.quickprint.visible = is_btn_visible;
|
||||
const obj = {
|
||||
visible: {
|
||||
quickprint: is_btn_visible,
|
||||
}
|
||||
};
|
||||
native.execCommand('title:button', JSON.stringify(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
init: function (opts) {
|
||||
_.extend(config, opts);
|
||||
|
||||
if ( config.isDesktopApp ) {
|
||||
let is_win_xp = nativevars && nativevars.os === 'winxp';
|
||||
|
||||
Common.UI.Themes.setAvailable(!is_win_xp);
|
||||
Common.NotificationCenter.on('app:ready', function (opts) {
|
||||
_.extend(config, opts);
|
||||
!!native && native.execCommand('doc:onready', '');
|
||||
|
|
@ -194,9 +254,45 @@ define([
|
|||
|
||||
Common.NotificationCenter.on('document:ready', function () {
|
||||
if ( config.isEdit ) {
|
||||
var maincontroller = webapp.getController('Main');
|
||||
if (maincontroller.api.asc_isReadOnly && maincontroller.api.asc_isReadOnly()) {
|
||||
maincontroller.warningDocumentIsLocked();
|
||||
function get_locked_message (t) {
|
||||
switch (t) {
|
||||
// case Asc.c_oAscLocalRestrictionType.Nosafe:
|
||||
case Asc.c_oAscLocalRestrictionType.ReadOnly:
|
||||
return Common.Locale.get("tipFileReadOnly",{name:"Common.Translation", default: "Document is read only. You can make changes and save its local copy later."});
|
||||
default: return Common.Locale.get("tipFileLocked",{name:"Common.Translation", default: "Document is locked for editing. You can make changes and save its local copy later."});
|
||||
}
|
||||
}
|
||||
|
||||
const header = webapp.getController('Viewport').getView('Common.Views.Header');
|
||||
const api = webapp.getController('Main').api;
|
||||
const locktype = api.asc_getLocalRestrictions ? api.asc_getLocalRestrictions() : Asc.c_oAscLocalRestrictionType.None;
|
||||
if ( Asc.c_oAscLocalRestrictionType.None !== locktype ) {
|
||||
features.readonly = true;
|
||||
|
||||
header.setDocumentReadOnly(true);
|
||||
api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
|
||||
|
||||
(new Common.UI.SynchronizeTip({
|
||||
extCls: 'no-arrow',
|
||||
placement: 'bottom',
|
||||
target: $('.toolbar'),
|
||||
text: get_locked_message(locktype),
|
||||
showLink: false,
|
||||
})).on('closeclick', function () {
|
||||
this.close();
|
||||
}).show();
|
||||
|
||||
native.execCommand('webapps:features', JSON.stringify(features));
|
||||
|
||||
api.asc_registerCallback('asc_onDocumentName', function () {
|
||||
if ( features.readonly ) {
|
||||
if ( api.asc_getLocalRestrictions() == Asc.c_oAscLocalRestrictionType.None ) {
|
||||
features.readonly = false;
|
||||
header.setDocumentReadOnly(false);
|
||||
native.execCommand('webapps:features', JSON.stringify(features));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -208,7 +304,7 @@ define([
|
|||
|
||||
titlebuttons = {};
|
||||
if ( mode.isEdit ) {
|
||||
var header = webapp.getController('Viewport').getView('Common.Views.Header');
|
||||
const header = webapp.getController('Viewport').getView('Common.Views.Header');
|
||||
if (!!header.btnSave) {
|
||||
titlebuttons['save'] = {btn: header.btnSave};
|
||||
|
||||
|
|
@ -219,6 +315,13 @@ define([
|
|||
if (!!header.btnPrint)
|
||||
titlebuttons['print'] = {btn: header.btnPrint};
|
||||
|
||||
if (!!header.btnPrintQuick) {
|
||||
titlebuttons['quickprint'] = {
|
||||
btn: header.btnPrintQuick,
|
||||
visible: header.btnPrintQuick.isVisible(),
|
||||
};
|
||||
}
|
||||
|
||||
if (!!header.btnUndo)
|
||||
titlebuttons['undo'] = {btn: header.btnUndo};
|
||||
|
||||
|
|
@ -240,17 +343,45 @@ define([
|
|||
config.callback_editorconfig();
|
||||
delete config.callback_editorconfig;
|
||||
}
|
||||
|
||||
if ( native.features.singlewindow !== undefined ) {
|
||||
$('#box-document-title .hedset')[native.features.singlewindow ? 'hide' : 'show']();
|
||||
}
|
||||
});
|
||||
|
||||
Common.NotificationCenter.on({
|
||||
'modal:show': _onModalDialog.bind(this, 'open'),
|
||||
'modal:close': _onModalDialog.bind(this, 'close')
|
||||
, 'uitheme:changed' : function (name) {
|
||||
var theme = Common.UI.Themes.get(name);
|
||||
if ( theme )
|
||||
native.execCommand("uitheme:changed", JSON.stringify({name:name, type:theme.type}));
|
||||
}
|
||||
'modal:close': _onModalDialog.bind(this, 'close'),
|
||||
'modal:hide': _onModalDialog.bind(this, 'hide'),
|
||||
'uitheme:changed' : function (name) {
|
||||
if (Common.localStorage.getBool('ui-theme-use-system', false)) {
|
||||
native.execCommand("uitheme:changed", JSON.stringify({name:'theme-system'}));
|
||||
} else {
|
||||
var theme = Common.UI.Themes.get(name);
|
||||
if ( theme )
|
||||
native.execCommand("uitheme:changed", JSON.stringify({name:name, type:theme.type}));
|
||||
}
|
||||
},
|
||||
'hints:show': _onHintsShow.bind(this),
|
||||
});
|
||||
|
||||
webapp.addListeners({
|
||||
'FileMenu': {
|
||||
'item:click': function (menu, action, isopts) {
|
||||
if ( action == 'file:exit' ) {
|
||||
native.execCommand('editor:event', JSON.stringify({action: 'file:close'}));
|
||||
menu.hide();
|
||||
} else
|
||||
if ( action == 'file:open' ) {
|
||||
native.execCommand('editor:event', JSON.stringify({action: 'file:open'}));
|
||||
menu.hide();
|
||||
}
|
||||
},
|
||||
'settings:apply': _onApplySettings.bind(this),
|
||||
},
|
||||
}, {id: 'desktop'});
|
||||
|
||||
$(document).on('keydown', _onKeyDown.bind(this));
|
||||
}
|
||||
},
|
||||
process: function (opts) {
|
||||
|
|
@ -276,9 +407,38 @@ define([
|
|||
},
|
||||
requestClose: function () {
|
||||
if ( config.isDesktopApp && !!native ) {
|
||||
native.execCommand('editor:event', JSON.stringify({action:'close', url: config.customization.goback.url}));
|
||||
native.execCommand('editor:event', JSON.stringify({action:'file:close', url: config.customization.goback.url}));
|
||||
}
|
||||
}
|
||||
},
|
||||
isActive: function () {
|
||||
return !!native;
|
||||
},
|
||||
isOffline: function () {
|
||||
// return webapp.getController('Main').api.asc_isOffline();
|
||||
return webapp.getController('Main').appOptions.isOffline;
|
||||
},
|
||||
isFeatureAvailable: function (feature) {
|
||||
return !!native && !!native[feature];
|
||||
},
|
||||
call: function (name) {
|
||||
if ( native[name] ) {
|
||||
let args = [].slice.call(arguments, 1);
|
||||
// return native[name](...args);
|
||||
return native[name].apply(this, args);
|
||||
}
|
||||
},
|
||||
helpUrl: function () {
|
||||
if ( !!nativevars && nativevars.helpUrl ) {
|
||||
var webapp = window.SSE ? 'spreadsheeteditor' :
|
||||
window.PE ? 'presentationeditor' : 'documenteditor';
|
||||
return nativevars.helpUrl + '/' + webapp + '/main/resources/help';
|
||||
}
|
||||
|
||||
return undefined;
|
||||
},
|
||||
getDefaultPrinterName: function () {
|
||||
return nativevars ? nativevars.defaultPrinterName : '';
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -142,6 +142,7 @@ define([
|
|||
setApi: function(api) {
|
||||
this.api = api;
|
||||
this.api.asc_registerCallback('asc_onCloseChartEditor', _.bind(this.onDiagrammEditingDisabled, this));
|
||||
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
@ -185,7 +186,7 @@ define([
|
|||
iconCls: 'warn',
|
||||
buttons: ['ok'],
|
||||
callback: _.bind(function(btn){
|
||||
this.setControlsDisabled(false);
|
||||
this.diagramEditorView.setControlsDisabled(false);
|
||||
this.diagramEditorView.hide();
|
||||
}, this)
|
||||
});
|
||||
|
|
@ -232,6 +233,9 @@ define([
|
|||
y = parseInt(this.diagramEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
||||
this.diagramEditorView.binding.drag({pageX:x, pageY:y});
|
||||
}
|
||||
} else
|
||||
if (eventData.type == "frameToGeneralData") {
|
||||
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
|
||||
} else
|
||||
this.diagramEditorView.fireEvent('internalmessage', this.diagramEditorView, eventData);
|
||||
}
|
||||
|
|
@ -243,13 +247,8 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
showExternalEditor: function () {
|
||||
if ( externalEditor ) {
|
||||
var value = Common.localStorage.getItem("ui-theme-id", "theme-light");
|
||||
externalEditor.serviceCommand('theme:change', value);
|
||||
}
|
||||
|
||||
this.diagramEditorView.show();
|
||||
onSendFromGeneralToFrameEditor: function(data) {
|
||||
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
|
||||
},
|
||||
|
||||
warningTitle: 'Warning',
|
||||
|
|
|
|||
|
|
@ -134,6 +134,7 @@ define([
|
|||
setApi: function(api) {
|
||||
this.api = api;
|
||||
this.api.asc_registerCallback('asc_onCloseMergeEditor', _.bind(this.onMergeEditingDisabled, this));
|
||||
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
@ -170,7 +171,7 @@ define([
|
|||
iconCls: 'warn',
|
||||
buttons: ['ok'],
|
||||
callback: _.bind(function(btn){
|
||||
this.setControlsDisabled(false);
|
||||
this.mergeEditorView.setControlsDisabled(false);
|
||||
this.mergeEditorView.hide();
|
||||
}, this)
|
||||
});
|
||||
|
|
@ -216,6 +217,9 @@ define([
|
|||
y = parseInt(this.mergeEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
||||
this.mergeEditorView.binding.drag({pageX:x, pageY:y});
|
||||
}
|
||||
} else
|
||||
if (eventData.type == "frameToGeneralData") {
|
||||
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
|
||||
} else
|
||||
this.mergeEditorView.fireEvent('internalmessage', this.mergeEditorView, eventData);
|
||||
}
|
||||
|
|
@ -227,6 +231,10 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
onSendFromGeneralToFrameEditor: function(data) {
|
||||
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
|
||||
},
|
||||
|
||||
warningTitle: 'Warning',
|
||||
warningText: 'The object is disabled because of editing by another user.',
|
||||
textClose: 'Close',
|
||||
|
|
|
|||
261
apps/common/main/lib/controller/ExternalOleEditor.js
Normal file
|
|
@ -0,0 +1,261 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2022
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* ExternalOleEditor.js
|
||||
*
|
||||
* Created by Julia Radzhabova on 3/10/22
|
||||
* Copyright (c) 2022 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
if (Common === undefined)
|
||||
var Common = {};
|
||||
|
||||
Common.Controllers = Common.Controllers || {};
|
||||
|
||||
define([
|
||||
'core',
|
||||
'common/main/lib/view/ExternalOleEditor'
|
||||
], function () { 'use strict';
|
||||
Common.Controllers.ExternalOleEditor = Backbone.Controller.extend(_.extend((function() {
|
||||
var appLang = '{{DEFAULT_LANG}}',
|
||||
customization = undefined,
|
||||
targetApp = '',
|
||||
externalEditor = null,
|
||||
isAppFirstOpened = true;
|
||||
|
||||
|
||||
var createExternalEditor = function() {
|
||||
!!customization && (customization.uiTheme = Common.localStorage.getItem("ui-theme-id", "theme-light"));
|
||||
externalEditor = new DocsAPI.DocEditor('id-ole-editor-placeholder', {
|
||||
width : '100%',
|
||||
height : '100%',
|
||||
documentType: 'cell',
|
||||
document : {
|
||||
url : '_chart_',
|
||||
permissions : {
|
||||
edit : true,
|
||||
download: false
|
||||
}
|
||||
},
|
||||
editorConfig: {
|
||||
mode : 'editole',
|
||||
targetApp : targetApp,
|
||||
lang : appLang,
|
||||
canCoAuthoring : false,
|
||||
canBackToFolder : false,
|
||||
canCreateNew : false,
|
||||
customization : customization,
|
||||
user : {id: ('uid-'+Date.now())}
|
||||
},
|
||||
events: {
|
||||
'onAppReady' : function() {},
|
||||
'onDocumentStateChange' : function() {},
|
||||
'onError' : function() {},
|
||||
'onInternalMessage' : _.bind(this.onInternalMessage, this)
|
||||
}
|
||||
});
|
||||
Common.Gateway.on('processmouse', _.bind(this.onProcessMouse, this));
|
||||
};
|
||||
|
||||
return {
|
||||
views: ['Common.Views.ExternalOleEditor'],
|
||||
|
||||
initialize: function() {
|
||||
this.addListeners({
|
||||
'Common.Views.ExternalOleEditor': {
|
||||
'setoledata': _.bind(this.setOleData, this),
|
||||
'drag': _.bind(function(o, state){
|
||||
externalEditor && externalEditor.serviceCommand('window:drag', state == 'start');
|
||||
},this),
|
||||
'show': _.bind(function(cmp){
|
||||
var h = this.oleEditorView.getHeight(),
|
||||
innerHeight = Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top');
|
||||
if (innerHeight>h && h<700 || innerHeight<h) {
|
||||
h = Math.min(innerHeight, 700);
|
||||
this.oleEditorView.setHeight(h);
|
||||
}
|
||||
|
||||
if (externalEditor) {
|
||||
externalEditor.serviceCommand('setAppDisabled',false);
|
||||
if (isAppFirstOpened && this.oleEditorView._isExternalDocReady) {
|
||||
isAppFirstOpened = false;
|
||||
this.oleEditorView._oleData && this.setOleData();
|
||||
}
|
||||
|
||||
if (this.needDisableEditing && this.oleEditorView._isExternalDocReady) {
|
||||
this.onOleEditingDisabled();
|
||||
}
|
||||
externalEditor.attachMouseEvents();
|
||||
} else {
|
||||
createExternalEditor.apply(this);
|
||||
}
|
||||
this.isExternalEditorVisible = true;
|
||||
this.isHandlerCalled = false;
|
||||
}, this),
|
||||
'hide': _.bind(function(cmp){
|
||||
if (externalEditor) {
|
||||
externalEditor.detachMouseEvents();
|
||||
this.isExternalEditorVisible = false;
|
||||
}
|
||||
}, this)
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
},
|
||||
|
||||
onLaunch: function() {
|
||||
this.oleEditorView = this.createView('Common.Views.ExternalOleEditor', {handler: _.bind(this.handler, this)});
|
||||
},
|
||||
|
||||
setApi: function(api) {
|
||||
this.api = api;
|
||||
this.api.asc_registerCallback('asc_onCloseOleEditor', _.bind(this.onOleEditingDisabled, this));
|
||||
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
|
||||
return this;
|
||||
},
|
||||
|
||||
handler: function(result, value) {
|
||||
if (this.isHandlerCalled) return;
|
||||
this.isHandlerCalled = true;
|
||||
if (this.oleEditorView._isExternalDocReady)
|
||||
externalEditor && externalEditor.serviceCommand('queryClose',{mr:result});
|
||||
else {
|
||||
this.oleEditorView.hide();
|
||||
this.isHandlerCalled = false;
|
||||
}
|
||||
},
|
||||
|
||||
setOleData: function() {
|
||||
if (!isAppFirstOpened) {
|
||||
externalEditor && externalEditor.serviceCommand('setOleData', this.oleEditorView._oleData);
|
||||
this.oleEditorView._oleData = null;
|
||||
}
|
||||
},
|
||||
|
||||
loadConfig: function(data) {
|
||||
if (data && data.config) {
|
||||
if (data.config.lang) appLang = data.config.lang;
|
||||
if (data.config.customization) customization = data.config.customization;
|
||||
if (data.config.targetApp) targetApp = data.config.targetApp;
|
||||
}
|
||||
},
|
||||
|
||||
onOleEditingDisabled: function() {
|
||||
if ( !this.oleEditorView.isVisible() || !this.oleEditorView._isExternalDocReady ) {
|
||||
this.needDisableEditing = true;
|
||||
return;
|
||||
}
|
||||
|
||||
this.oleEditorView.setControlsDisabled(true);
|
||||
|
||||
Common.UI.alert({
|
||||
title: this.warningTitle,
|
||||
msg : this.warningText,
|
||||
iconCls: 'warn',
|
||||
buttons: ['ok'],
|
||||
callback: _.bind(function(btn){
|
||||
this.oleEditorView.setControlsDisabled(false);
|
||||
this.oleEditorView.hide();
|
||||
}, this)
|
||||
});
|
||||
|
||||
this.needDisableEditing = false;
|
||||
},
|
||||
|
||||
onInternalMessage: function(data) {
|
||||
var eventData = data.data;
|
||||
|
||||
if (this.oleEditorView) {
|
||||
if (eventData.type == 'documentReady') {
|
||||
this.oleEditorView._isExternalDocReady = true;
|
||||
this.isExternalEditorVisible && (isAppFirstOpened = false);
|
||||
this.oleEditorView._oleData && this.setOleData();
|
||||
if (this.needDisableEditing) {
|
||||
this.onOleEditingDisabled();
|
||||
}
|
||||
} else
|
||||
if (eventData.type == 'oleEditorReady') {
|
||||
if (this.needDisableEditing===undefined)
|
||||
this.oleEditorView.setControlsDisabled(false);
|
||||
} else
|
||||
if (eventData.type == "shortcut") {
|
||||
if (eventData.data.key == 'escape')
|
||||
this.oleEditorView.hide();
|
||||
} else
|
||||
if (eventData.type == "canClose") {
|
||||
if (eventData.data.answer === true) {
|
||||
if (externalEditor) {
|
||||
externalEditor.serviceCommand('setAppDisabled',true);
|
||||
if (eventData.data.mr == 'ok')
|
||||
externalEditor.serviceCommand('getOleData');
|
||||
}
|
||||
this.oleEditorView.hide();
|
||||
}
|
||||
this.isHandlerCalled = false;
|
||||
} else
|
||||
if (eventData.type == "processMouse") {
|
||||
if (eventData.data.event == 'mouse:up') {
|
||||
this.oleEditorView.binding.dragStop();
|
||||
} else
|
||||
if (eventData.data.event == 'mouse:move') {
|
||||
var x = parseInt(this.oleEditorView.$window.css('left')) + eventData.data.pagex,
|
||||
y = parseInt(this.oleEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
||||
this.oleEditorView.binding.drag({pageX:x, pageY:y});
|
||||
}
|
||||
} else
|
||||
if (eventData.type == "frameToGeneralData") {
|
||||
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
|
||||
} else
|
||||
this.oleEditorView.fireEvent('internalmessage', this.oleEditorView, eventData);
|
||||
}
|
||||
} ,
|
||||
|
||||
onProcessMouse: function(data) {
|
||||
if (data.type == 'mouseup' && this.isExternalEditorVisible) {
|
||||
externalEditor && externalEditor.serviceCommand('processmouse', data);
|
||||
}
|
||||
},
|
||||
|
||||
onSendFromGeneralToFrameEditor: function(data) {
|
||||
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
|
||||
},
|
||||
|
||||
warningTitle: 'Warning',
|
||||
warningText: 'The object is disabled because of editing by another user.',
|
||||
textClose: 'Close',
|
||||
textAnonymous: 'Anonymous'
|
||||
}
|
||||
})(), Common.Controllers.ExternalOleEditor || {}));
|
||||
});
|
||||
|
|
@ -120,11 +120,7 @@ define([
|
|||
});
|
||||
|
||||
var store = this.getCollection('Common.Collections.Fonts');
|
||||
|
||||
if (store) {
|
||||
store.add(fontsArray);
|
||||
store.sort();
|
||||
}
|
||||
store && store.add(fontsArray);
|
||||
|
||||
Common.NotificationCenter.trigger('fonts:load', store, select);
|
||||
}
|
||||
|
|
|
|||
704
apps/common/main/lib/controller/HintManager.js
Normal file
|
|
@ -0,0 +1,704 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* HintManager.js
|
||||
*
|
||||
* Created by Julia Radzhabova on 21.04.2021
|
||||
* Copyright (c) 2021 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Example usage with simple items:
|
||||
*
|
||||
* <button ... data-hint="1" data-hint-direction="right" data-hint-offset="big" data-hint-title="B">...</button>
|
||||
* <label ... data-hint="1" data-hint-direction="bottom" data-hint-offset="medium" data-hint-title="L">...</label>
|
||||
*
|
||||
*
|
||||
* Example usage with components:
|
||||
*
|
||||
* new Common.UI.Button({
|
||||
* ...
|
||||
* dataHint: '1', // '0' - tabs in toolbar, left and right menu, statusbar;
|
||||
* // '1' - file menu, contents of toolbar tabs, contents of right and left panels
|
||||
* dataHintDirection: 'bottom', // top, bottom, right, left, left-top
|
||||
* dataHintOffset: 'small', // big - 6px, medium - 4px, small - 2px
|
||||
* dataHintTitle : 'S'
|
||||
* });
|
||||
*
|
||||
* new Common.UI.CheckBox({
|
||||
* ...
|
||||
* dataHint: '1',
|
||||
* dataHintDirection: 'left',
|
||||
* dataHintOffset: 'small'
|
||||
* });
|
||||
*
|
||||
* new Common.UI.ComboBox({
|
||||
* ...
|
||||
* dataHint: '1',
|
||||
* dataHintDirection: 'bottom',
|
||||
* dataHintOffset: 'big'
|
||||
* });
|
||||
*
|
||||
* new Common.UI.InputField({
|
||||
* ...
|
||||
* dataHint: '1',
|
||||
* dataHintDirection: 'left',
|
||||
* dataHintOffset: 'small'
|
||||
* });
|
||||
*
|
||||
* new Common.UI.MetricSpinner({
|
||||
* ...
|
||||
* dataHint: '1',
|
||||
* dataHintDirection: 'bottom',
|
||||
* dataHintOffset: 'big'
|
||||
* });
|
||||
*
|
||||
* new Common.UI.RadioBox({
|
||||
* ...
|
||||
* dataHint: '1',
|
||||
* dataHintDirection: 'left',
|
||||
* dataHintOffset: 'small'
|
||||
* });
|
||||
*/
|
||||
|
||||
|
||||
if (Common === undefined)
|
||||
var Common = {};
|
||||
|
||||
if (Common.UI === undefined) {
|
||||
Common.UI = {};
|
||||
}
|
||||
|
||||
Common.UI.HintManager = new(function() {
|
||||
var _lang = 'en',
|
||||
_arrAlphabet = [],
|
||||
_arrEnAlphabet = [],
|
||||
_arrQwerty = [],
|
||||
_arrEnQwerty = [],
|
||||
_needShow = false,
|
||||
_hintVisible = false,
|
||||
_currentLevel = 0,
|
||||
_currentSection = document,
|
||||
_currentControls = [],
|
||||
_currentHints = [],
|
||||
_inputLetters = '',
|
||||
_isComplete = false,
|
||||
_isLockedKeyEvents = false,
|
||||
_inputTimer,
|
||||
_isDocReady = false,
|
||||
_isEditDiagram = false,
|
||||
_usedTitles = [],
|
||||
_appPrefix,
|
||||
_staticHints = { // for desktop buttons
|
||||
"btnhome": 'K'
|
||||
};
|
||||
|
||||
var _api;
|
||||
|
||||
var _setCurrentSection = function (btn, section) {
|
||||
if (section) {
|
||||
_currentSection = section;
|
||||
return;
|
||||
}
|
||||
if (btn === 'esc') {
|
||||
if (_currentLevel === 0) {
|
||||
_currentSection = document;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (_isEditDiagram) {
|
||||
_currentSection = [$(window.parent.document).find('.advanced-settings-dlg:visible')[0], window.document];
|
||||
} else if ($('#file-menu-panel').is(':visible')) {
|
||||
_currentSection = $('#file-menu-panel');
|
||||
} else {
|
||||
_currentSection = (btn && btn.closest('.hint-section')) || document;
|
||||
}
|
||||
};
|
||||
|
||||
var _lockedKeyEvents = function (isLocked) {
|
||||
if (_api) {
|
||||
_isLockedKeyEvents = isLocked;
|
||||
_api.asc_enableKeyEvents(!isLocked);
|
||||
}
|
||||
};
|
||||
|
||||
var _showHints = function () {
|
||||
_inputLetters = '';
|
||||
if (_currentLevel === 0) {
|
||||
Common.NotificationCenter.trigger('toolbar:collapse');
|
||||
}
|
||||
if (_currentHints.length === 0 || ($('#file-menu-panel').is(':visible' || _isEditDiagram) && _currentLevel === 1)) {
|
||||
_getHints();
|
||||
}
|
||||
if (_currentHints.length > 0) {
|
||||
!_isLockedKeyEvents && _lockedKeyEvents(true);
|
||||
_hintVisible = true;
|
||||
_currentHints.forEach(function(item) {
|
||||
item.show();
|
||||
});
|
||||
_inputTimer = setInterval(function () {
|
||||
if (_inputLetters.length > 0) {
|
||||
_inputLetters = '';
|
||||
}
|
||||
}, 5000);
|
||||
} else {
|
||||
_hintVisible = false;
|
||||
}
|
||||
|
||||
Common.NotificationCenter.trigger('hints:show', _hintVisible, _currentLevel);
|
||||
};
|
||||
|
||||
var _hideHints = function() {
|
||||
_hintVisible = false;
|
||||
_currentHints && _currentHints.forEach(function(item) {
|
||||
item.remove()
|
||||
});
|
||||
clearInterval(_inputTimer);
|
||||
|
||||
Common.NotificationCenter.trigger('hints:show', false);
|
||||
};
|
||||
|
||||
var _nextLevel = function(level) {
|
||||
_removeHints();
|
||||
_currentHints.length = 0;
|
||||
_currentControls.length = 0;
|
||||
if (level !== undefined) {
|
||||
_currentLevel = level;
|
||||
} else {
|
||||
_currentLevel++;
|
||||
}
|
||||
};
|
||||
|
||||
var _prevLevel = function() {
|
||||
_removeHints();
|
||||
_currentHints.length = 0;
|
||||
_currentControls.length = 0;
|
||||
_currentLevel--;
|
||||
};
|
||||
|
||||
var _getLetters = function(countButtons) {
|
||||
var arr = _arrAlphabet.slice(),
|
||||
firstFreeLetter,
|
||||
ind;
|
||||
for (var i = 0; i < _arrAlphabet.length, !firstFreeLetter; i++) {
|
||||
if (_usedTitles.indexOf(_arrAlphabet[i]) === -1) {
|
||||
firstFreeLetter = _arrAlphabet[i];
|
||||
ind = i;
|
||||
}
|
||||
}
|
||||
arr[ind] = firstFreeLetter + _arrAlphabet[0];
|
||||
for (var i = 0; arr.length < countButtons; i++) {
|
||||
var addTip = firstFreeLetter + _arrAlphabet[i];
|
||||
if (addTip !== arr[ind]) {
|
||||
arr.push(firstFreeLetter + _arrAlphabet[i]);
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
var _getLetterInUILanguage = function (letter) {
|
||||
var l = letter;
|
||||
if (_arrAlphabet.indexOf(l) === -1) {
|
||||
var ind = _arrEnAlphabet.indexOf(l);
|
||||
l = _arrAlphabet[ind];
|
||||
}
|
||||
return l;
|
||||
};
|
||||
|
||||
var _isItemDisabled = function (item) {
|
||||
return (item.hasClass('disabled') || item.parent().hasClass('disabled') || item.attr('disabled'));
|
||||
};
|
||||
|
||||
var _getControls = function() {
|
||||
_currentControls = [];
|
||||
_usedTitles = [];
|
||||
var arr = [],
|
||||
arrItemsWithTitle = [];
|
||||
if (_.isArray(_currentSection)) {
|
||||
_currentSection.forEach(function (section) {
|
||||
arr = arr.concat($(section).find('[data-hint=' + (_currentLevel) + ']').toArray());
|
||||
arrItemsWithTitle = arrItemsWithTitle.concat($(section).find('[data-hint-title][data-hint=' + (_currentLevel) + ']').toArray());
|
||||
});
|
||||
} else {
|
||||
arr = $(_currentSection).find('[data-hint=' + (_currentLevel) + ']').toArray();
|
||||
arrItemsWithTitle = $(_currentSection).find('[data-hint-title][data-hint=' + (_currentLevel) + ']').toArray();
|
||||
}
|
||||
var visibleItems = arr.filter(function (item) {
|
||||
return $(item).is(':visible');
|
||||
});
|
||||
var visibleItemsWithTitle = arrItemsWithTitle.filter(function (item) {
|
||||
return $(item).is(':visible');
|
||||
});
|
||||
if (visibleItems.length === visibleItemsWithTitle.length) { // all buttons have data-hint-title
|
||||
visibleItems.forEach(function (item) {
|
||||
var el = $(item);
|
||||
if (_lang !== 'en') {
|
||||
var title = el.attr('data-hint-title').toLowerCase(),
|
||||
firstLetter = title.substr(0, 1);
|
||||
if (_arrAlphabet.indexOf(firstLetter) === -1) { // tip is in English
|
||||
var newTip = '';
|
||||
for (var i = 0; i < title.length; i++) {
|
||||
var letter = title.substr(i, 1),
|
||||
ind = _arrEnAlphabet.indexOf(letter);
|
||||
newTip = newTip + _arrAlphabet[ind].toUpperCase();
|
||||
}
|
||||
el.attr('data-hint-title', newTip);
|
||||
}
|
||||
|
||||
}
|
||||
_currentControls.push(el);
|
||||
});
|
||||
return;
|
||||
}
|
||||
var _arrLetters = [],
|
||||
_usedLetters = [];
|
||||
if (_currentLevel === 0) {
|
||||
for (var key in _staticHints) {
|
||||
var t = _staticHints[key].toLowerCase();
|
||||
_usedTitles.push(t);
|
||||
_usedLetters.push(_arrAlphabet.indexOf(t));
|
||||
}
|
||||
}
|
||||
if (visibleItems.length > _arrAlphabet.length) {
|
||||
visibleItemsWithTitle.forEach(function (item) {
|
||||
var t = $(item).data('hint-title').toLowerCase();
|
||||
t = _getLetterInUILanguage(t);
|
||||
_usedTitles.push(t);
|
||||
});
|
||||
_arrLetters = _getLetters(visibleItems.length + (_currentLevel === 0 ? _.size(_staticHints) : 0));
|
||||
} else {
|
||||
_arrLetters = _arrAlphabet.slice();
|
||||
}
|
||||
if (arrItemsWithTitle.length > 0) {
|
||||
visibleItems.forEach(function (item) {
|
||||
var el = $(item);
|
||||
var title = el.attr('data-hint-title');
|
||||
if (title) {
|
||||
var ind = _arrEnAlphabet.indexOf(title.toLowerCase());
|
||||
if (ind === -1) { // we have already changed
|
||||
_usedLetters.push(_arrAlphabet.indexOf(title.toLowerCase()));
|
||||
} else {
|
||||
_usedLetters.push(ind);
|
||||
if (_lang !== 'en') {
|
||||
el.attr('data-hint-title', _arrLetters[ind].toUpperCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
var index = 0;
|
||||
visibleItems.forEach(function (item) {
|
||||
var el = $(item);
|
||||
while (_usedLetters.indexOf(index) !== -1) {
|
||||
index++;
|
||||
}
|
||||
var title = el.attr('data-hint-title');
|
||||
if (!title) {
|
||||
el.attr('data-hint-title', _arrLetters[index].toUpperCase());
|
||||
index++;
|
||||
}
|
||||
_currentControls.push(el);
|
||||
});
|
||||
};
|
||||
|
||||
var _getHints = function() {
|
||||
var docH = _isEditDiagram ? (window.parent.innerHeight * Common.Utils.zoom()) : (Common.Utils.innerHeight() - 20),
|
||||
docW = _isEditDiagram ? (window.parent.innerWidth * Common.Utils.zoom()) : (Common.Utils.innerWidth()),
|
||||
section = _isEditDiagram ? _currentSection[0] : _currentSection,
|
||||
topSection = _currentLevel !== 0 && $(section).length > 0 && !_isEditDiagram ? $(section).offset().top : 0,
|
||||
bottomSection = _currentLevel !== 0 && $(section).length > 0 && !_isEditDiagram ? topSection + $(section).height() : docH;
|
||||
if ($(section).prop('id') === 'toolbar' && $(section).outerHeight() < $(section).find('.box-controls').outerHeight()) {
|
||||
bottomSection += $(section).find('.box-controls').outerHeight();
|
||||
}
|
||||
|
||||
if (_currentControls.length === 0)
|
||||
_getControls();
|
||||
_currentControls.forEach(function(item, index) {
|
||||
if (!_isItemDisabled(item)) {
|
||||
var leftBorder = 0,
|
||||
rightBorder = docW;
|
||||
if (!_isEditDiagram && $(_currentSection).prop('id') === 'toolbar' && ($(_currentSection).find('.toolbar-mask').length > 0)
|
||||
|| ($('#about-menu-panel').is(':visible') && item.closest('.hint-section').prop('id') === 'right-menu')) { // don't show right menu hints when about is visible
|
||||
return;
|
||||
}
|
||||
if (window.SSE && item.parent().prop('id') === 'statusbar_bottom') {
|
||||
var $statusbar = item.parent();
|
||||
if (item.offset().left > $statusbar.offset().left + $statusbar.width()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (_currentLevel === 0 && item.closest('.tabs.short').length > 0) {
|
||||
var blockTabs = item.closest('.tabs.short');
|
||||
leftBorder = blockTabs.offset().left;
|
||||
rightBorder = leftBorder + blockTabs.width();
|
||||
if (!item.hasClass('scroll')) {
|
||||
leftBorder += 20;
|
||||
rightBorder -= 20;
|
||||
}
|
||||
}
|
||||
var hint = $('<div style="" class="hint-div">' + item.attr('data-hint-title') + '</div>');
|
||||
var direction = item.attr('data-hint-direction');
|
||||
// exceptions
|
||||
if (window.SSE && !_isEditDiagram && _currentSection.nodeType !== 9 &&
|
||||
_currentSection.prop('id') === 'toolbar' && item.closest('.panel').attr('data-tab') === 'data') {
|
||||
if (item.parent().hasClass('slot-sortdesc') || item.parent().hasClass('slot-btn-setfilter')) {
|
||||
direction = 'top';
|
||||
item.attr('data-hint-direction', 'top');
|
||||
} else if (item.parent().hasClass('slot-btn-clear-filter') || item.parent().hasClass('slot-sortasc')) {
|
||||
direction = 'bottom';
|
||||
item.attr('data-hint-direction', 'bottom');
|
||||
}
|
||||
}
|
||||
var maxHeight = docH;
|
||||
if ($('#file-menu-panel').is(':visible') && _currentLevel > 1 &&
|
||||
($('.fms-flex-apply').is(':visible') || $('#fms-flex-apply').is(':visible')) &&
|
||||
item.closest('.fms-flex-apply').length < 1 && item.closest('#fms-flex-apply').length < 1) {
|
||||
maxHeight = docH - $('.fms-flex-apply').height();
|
||||
}
|
||||
var offsets = item.attr('data-hint-offset');
|
||||
var applyOffset = offsets === 'big' ? 6 : (offsets === 'medium' ? 4 : (offsets === 'small' ? 2 : 0));
|
||||
if (applyOffset) {
|
||||
switch (direction) {
|
||||
case 'bottom':
|
||||
offsets = [-applyOffset, 0];
|
||||
break;
|
||||
case 'top':
|
||||
offsets = [applyOffset, 0];
|
||||
break;
|
||||
case 'right':
|
||||
offsets = [0, -applyOffset];
|
||||
break;
|
||||
case 'left':
|
||||
offsets = [0, applyOffset];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
offsets = offsets ? item.attr('data-hint-offset').split(',').map(function (item) { return parseInt(item); }) : [0, 0];
|
||||
}
|
||||
var offset = item.offset();
|
||||
var top, left;
|
||||
if (direction === 'left-top') {
|
||||
top = offset.top - 10 + offsets[0];
|
||||
left = offset.left - 10 + offsets[1];
|
||||
} else if (direction === 'top') {
|
||||
top = offset.top - 18 + offsets[0];
|
||||
left = offset.left + (item.outerWidth() - 18) / 2 + offsets[1];
|
||||
} else if (direction === 'right') {
|
||||
top = offset.top + (item.outerHeight() - 18) / 2 + offsets[0];
|
||||
left = offset.left + item.outerWidth() + offsets[1];
|
||||
} else if (direction === 'left') {
|
||||
top = offset.top + (item.outerHeight() - 18) / 2 + offsets[0];
|
||||
left = offset.left - 18 + offsets[1];
|
||||
} else {
|
||||
top = offset.top + item.outerHeight() + offsets[0];
|
||||
left = offset.left + (item.outerWidth() - 18) / 2 + offsets[1];
|
||||
}
|
||||
|
||||
if (top < maxHeight && left < docW && top > topSection && top < bottomSection && left > leftBorder && left + 18 < rightBorder) {
|
||||
hint.css({
|
||||
top: top,
|
||||
left: left
|
||||
});
|
||||
if (_isEditDiagram && index < 2) {
|
||||
hint.css('z-index', '1060');
|
||||
$(window.parent.document.body).append(hint);
|
||||
} else {
|
||||
$(document.body).append(hint);
|
||||
}
|
||||
}
|
||||
|
||||
_currentHints.push(hint);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var _removeHints = function() {
|
||||
_currentHints && _currentHints.forEach(function(item) {
|
||||
item.remove()
|
||||
});
|
||||
};
|
||||
|
||||
var _resetToDefault = function() {
|
||||
_currentLevel = ($('#file-menu-panel').is(':visible') || _isEditDiagram) ? 1 : 0;
|
||||
_setCurrentSection();
|
||||
_currentHints.length = 0;
|
||||
_currentControls.length = 0;
|
||||
};
|
||||
|
||||
var _init = function(api) {
|
||||
_api = api;
|
||||
|
||||
var filter = Common.localStorage.getKeysFilter();
|
||||
_appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||
|
||||
Common.NotificationCenter.on({
|
||||
'app:ready': function (mode) {
|
||||
var lang = mode.lang ? mode.lang.toLowerCase() : 'en';
|
||||
_getAlphabetLetters(lang);
|
||||
_isDocReady = true;
|
||||
},
|
||||
'hints:clear': _clearHints,
|
||||
'window:resize': _clearHints
|
||||
});
|
||||
$('#editor_sdk').on('click', function () {
|
||||
_clearHints();
|
||||
});
|
||||
$(document).on('mousedown', function () {
|
||||
_clearHints();
|
||||
});
|
||||
$(document).on('keyup', function(e) {
|
||||
if (e.keyCode == Common.UI.Keys.ALT && _needShow && !(window.SSE && window.SSE.getController('Statusbar').getIsDragDrop())) {
|
||||
e.preventDefault();
|
||||
if (!_hintVisible) {
|
||||
$('input:focus').blur(); // to change value in inputField
|
||||
_currentLevel = ($('#file-menu-panel').is(':visible') || _isEditDiagram) ? 1 : 0;
|
||||
_setCurrentSection();
|
||||
_showHints();
|
||||
} else {
|
||||
_hideHints();
|
||||
_resetToDefault();
|
||||
if (_isLockedKeyEvents) {
|
||||
_isLockedKeyEvents = false;
|
||||
_api.asc_enableKeyEvents(true);
|
||||
}
|
||||
}
|
||||
} else if (_hintVisible) {
|
||||
e.preventDefault();
|
||||
}
|
||||
_needShow = false;
|
||||
});
|
||||
$(document).on('keydown', function(e) {
|
||||
if (_hintVisible) {
|
||||
e.preventDefault();
|
||||
if (e.keyCode == Common.UI.Keys.ESC ) {
|
||||
setTimeout(function () {
|
||||
if (_currentLevel === 0) {
|
||||
_hideHints();
|
||||
_resetToDefault();
|
||||
_lockedKeyEvents(false);
|
||||
} else {
|
||||
_prevLevel();
|
||||
_setCurrentSection('esc');
|
||||
_showHints();
|
||||
}
|
||||
}, 10);
|
||||
} else {
|
||||
var curLetter = null,
|
||||
match = false;
|
||||
var keyCode = e.keyCode;
|
||||
if (keyCode !== 16 && keyCode !== 17 && keyCode !== 18 && keyCode !== 91) {
|
||||
curLetter = _lang === 'en' ?
|
||||
((keyCode > 47 && keyCode < 58 || keyCode > 64 && keyCode < 91) ? String.fromCharCode(e.keyCode) : null) :
|
||||
(/[.*+?^${}()|[\]\\]/g.test(e.key) ? null : e.key);
|
||||
}
|
||||
if (curLetter) {
|
||||
var curr;
|
||||
if (_lang !== 'en' && _arrAlphabet.indexOf(curLetter.toLowerCase()) === -1) {
|
||||
var ind = _arrEnQwerty.indexOf(curLetter.toLowerCase());
|
||||
if (ind !== -1) {
|
||||
curLetter = _arrQwerty[ind];
|
||||
}
|
||||
}
|
||||
_inputLetters = _inputLetters + curLetter.toUpperCase();
|
||||
for (var i = 0; i < _currentControls.length; i++) {
|
||||
var item = _currentControls[i];
|
||||
if (!_isItemDisabled(item)) {
|
||||
var title = item.attr('data-hint-title'),
|
||||
regExp = new RegExp('^' + _inputLetters + '');
|
||||
if (regExp.test(title)) {
|
||||
match = true;
|
||||
}
|
||||
if (title === _inputLetters) {
|
||||
curr = item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (curr) {
|
||||
var tag = curr.prop("tagName").toLowerCase();
|
||||
if (window.SSE && curr.parent().prop('id') === 'statusbar_bottom') {
|
||||
_hideHints();
|
||||
curr.contextmenu();
|
||||
_resetToDefault();
|
||||
} else if (tag === 'input' || tag === 'textarea') {
|
||||
_hideHints();
|
||||
curr.trigger(jQuery.Event('click', {which: 1}));
|
||||
curr.focus();
|
||||
_resetToDefault();
|
||||
} else if (curr.hasClass('listview')) {
|
||||
_hideHints();
|
||||
curr.focus();
|
||||
_resetToDefault();
|
||||
} else {
|
||||
_isComplete = false;
|
||||
_hideHints();
|
||||
if (!_isEditDiagram && $(_currentSection).prop('id') === 'toolbar' && ($(_currentSection).find('.toolbar-mask').length > 0)) {
|
||||
_resetToDefault();
|
||||
return;
|
||||
}
|
||||
var needOpenPanel = (curr.attr('content-target') && !$('#' + curr.attr('content-target')).is(':visible') ||
|
||||
(curr.parent().prop('id') === 'slot-btn-chat' && !$('#left-panel-chat').is(':visible')) ||
|
||||
(curr.parent().hasClass('ribtab') && !$('#toolbar').children('.toolbar').hasClass('expanded')));
|
||||
if ((!curr.attr('content-target') && curr.parent().prop('id') !== 'slot-btn-chat') || needOpenPanel) { // need to open panel
|
||||
if (!($('#file-menu-panel').is(':visible') && (curr.parent().prop('id') === 'fm-btn-info' && $('#panel-info').is(':visible') ||
|
||||
curr.parent().prop('id') === 'fm-btn-settings' && $('#panel-settings').is(':visible')))) {
|
||||
if (curr.attr('for')) { // to trigger event in checkbox
|
||||
$('#' + curr.attr('for')).trigger(jQuery.Event('click', {which: 1}));
|
||||
} else {
|
||||
curr.trigger(jQuery.Event('click', {which: 1}));
|
||||
if (needOpenPanel)
|
||||
_isComplete = false; // to show next level of hints
|
||||
}
|
||||
}
|
||||
}
|
||||
if (curr.prop('id') === 'btn-goback' || curr.closest('.btn-slot').prop('id') === 'slot-btn-options' ||
|
||||
curr.closest('.btn-slot').prop('id') === 'slot-btn-mode' || curr.prop('id') === 'btn-favorite' || curr.parent().prop('id') === 'tlb-box-users' ||
|
||||
curr.prop('id') === 'left-btn-thumbs' || curr.hasClass('scroll') || curr.prop('id') === 'left-btn-about' ||
|
||||
curr.prop('id') === 'left-btn-support' || curr.closest('.btn-slot').prop('id') === 'slot-btn-search') {
|
||||
_resetToDefault();
|
||||
return;
|
||||
}
|
||||
if (curr.prop('id') === 'add-comment-doc') {
|
||||
_removeHints();
|
||||
_currentHints.length = 0;
|
||||
_currentControls.length = 0;
|
||||
_showHints();
|
||||
return;
|
||||
}
|
||||
if (!_isComplete) {
|
||||
if (curr.parent().prop('id') === 'slot-btn-chat') {
|
||||
_nextLevel(1);
|
||||
_setCurrentSection(undefined, $('#left-menu.hint-section'));
|
||||
} else if (curr.prop('id') === 'id-right-menu-signature') {
|
||||
_nextLevel(2);
|
||||
_setCurrentSection(curr);
|
||||
} else {
|
||||
_nextLevel();
|
||||
_setCurrentSection(curr);
|
||||
}
|
||||
_showHints();
|
||||
if (_currentHints.length < 1) {
|
||||
_resetToDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (!match) {
|
||||
_inputLetters = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_needShow = (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !e.shiftKey && e.keyCode == Common.UI.Keys.ALT &&
|
||||
!Common.Utils.ModalWindow.isVisible() && _isDocReady && _arrAlphabet.length > 0 &&
|
||||
!(window.PE && $('#pe-preview').is(':visible')));
|
||||
if (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && e.altKey && e.keyCode !== 115) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var _getAlphabetLetters = function (lng) {
|
||||
Common.Utils.loadConfig('../../common/main/resources/alphabetletters/alphabetletters.json', function (langsJson) {
|
||||
_arrEnAlphabet = langsJson['en'];
|
||||
var _setAlphabet = function (lang) {
|
||||
_lang = lang;
|
||||
_arrAlphabet = langsJson[lang];
|
||||
return _arrAlphabet;
|
||||
};
|
||||
var loaded = !_setAlphabet(lng) ? (!_setAlphabet(lng.split(/[\-_]/)[0]) ? _setAlphabet('en') : true) : true;
|
||||
if (loaded && _lang !== 'en') {
|
||||
for (var key in _staticHints) {
|
||||
var hint = _getLetterInUILanguage(_staticHints[key].toLowerCase());
|
||||
if (hint) {
|
||||
_staticHints[key] = hint.toUpperCase();
|
||||
}
|
||||
}
|
||||
}
|
||||
return loaded;
|
||||
});
|
||||
Common.Utils.loadConfig('../../common/main/resources/alphabetletters/qwertyletters.json', function (langsJson) {
|
||||
_arrQwerty = langsJson[_lang];
|
||||
if (_lang !== 'en') {
|
||||
_arrEnQwerty = langsJson['en'];
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var _needCloseFileMenu = function () {
|
||||
return !(_hintVisible && _currentLevel > 1);
|
||||
};
|
||||
|
||||
var _clearHints = function (isComplete) {
|
||||
_hintVisible && _hideHints();
|
||||
if (_currentHints.length > 0) {
|
||||
_resetToDefault();
|
||||
}
|
||||
_isLockedKeyEvents && _lockedKeyEvents(false);
|
||||
|
||||
if (isComplete) {
|
||||
_isComplete = true;
|
||||
}
|
||||
|
||||
if ($('.hint-div').length > 0) {
|
||||
$('.hint-div').remove();
|
||||
}
|
||||
if ($('iframe').length > 0) {
|
||||
try {
|
||||
$('iframe').contents().find('.hint-div').remove();
|
||||
} catch (e) {}
|
||||
}
|
||||
};
|
||||
|
||||
var _isHintVisible = function () {
|
||||
return _hintVisible;
|
||||
};
|
||||
|
||||
var _setMode = function (mode) {
|
||||
_isEditDiagram = mode.isEditDiagram || mode.isEditMailMerge || mode.isEditOle;
|
||||
};
|
||||
|
||||
var _getStaticHint = function (key) {
|
||||
return _staticHints[key];
|
||||
};
|
||||
|
||||
return {
|
||||
init: _init,
|
||||
setMode: _setMode,
|
||||
clearHints: _clearHints,
|
||||
needCloseFileMenu: _needCloseFileMenu,
|
||||
isHintVisible: _isHintVisible,
|
||||
getStaticHint: _getStaticHint
|
||||
}
|
||||
})();
|
||||
|
|
@ -100,9 +100,10 @@ define([
|
|||
this.panelHistory.$el.find('#history-list').css('padding-bottom', hasChanges ? '45px' : 0);
|
||||
},
|
||||
|
||||
onDownloadUrl: function(url) {
|
||||
if (this.isFromSelectRevision !== undefined)
|
||||
Common.Gateway.requestRestore(this.isFromSelectRevision, url);
|
||||
onDownloadUrl: function(url, fileType) {
|
||||
if (this.isFromSelectRevision !== undefined) {
|
||||
Common.Gateway.requestRestore(this.isFromSelectRevision, url, fileType);
|
||||
}
|
||||
this.isFromSelectRevision = undefined;
|
||||
},
|
||||
|
||||
|
|
@ -111,7 +112,7 @@ define([
|
|||
var btn = $(e.target);
|
||||
if (btn && btn.hasClass('revision-restore')) {
|
||||
if (record.get('isRevision'))
|
||||
Common.Gateway.requestRestore(record.get('revision'));
|
||||
Common.Gateway.requestRestore(record.get('revision'), undefined, record.get('fileType'));
|
||||
else {
|
||||
this.isFromSelectRevision = record.get('revision');
|
||||
var fileType = Asc.c_oAscFileType[(record.get('fileType') || '').toUpperCase()] || Asc.c_oAscFileType.DOCX;
|
||||
|
|
@ -201,6 +202,7 @@ define([
|
|||
urlGetTime = new Date();
|
||||
var diff = (!opts.data.previous || this.currentChangeId===undefined) ? null : opts.data.changesUrl, // if revision has changes, but serverVersion !== app.buildVersion -> hide revision changes
|
||||
url = (!_.isEmpty(diff) && opts.data.previous) ? opts.data.previous.url : opts.data.url,
|
||||
fileType = (!_.isEmpty(diff) && opts.data.previous) ? opts.data.previous.fileType : opts.data.fileType,
|
||||
docId = opts.data.key ? opts.data.key : this.currentDocId,
|
||||
docIdPrev = opts.data.previous && opts.data.previous.key ? opts.data.previous.key : this.currentDocIdPrev,
|
||||
token = opts.data.token;
|
||||
|
|
@ -216,6 +218,7 @@ define([
|
|||
rev.set('docIdPrev', docIdPrev, {silent: true});
|
||||
}
|
||||
rev.set('token', token, {silent: true});
|
||||
fileType && rev.set('fileType', fileType, {silent: true});
|
||||
}
|
||||
}
|
||||
var hist = new Asc.asc_CVersionHistory();
|
||||
|
|
@ -259,7 +262,7 @@ define([
|
|||
store.where({isRevision: false}).forEach(function(item){
|
||||
item.set('isVisible', needExpand);
|
||||
});
|
||||
this.panelHistory.viewHistoryList.scroller.update({minScrollbarLength: 40});
|
||||
this.panelHistory.viewHistoryList.scroller.update({minScrollbarLength: this.panelHistory.viewHistoryList.minScrollbarLength});
|
||||
this.panelHistory.btnExpand.cmpEl.text(needExpand ? this.panelHistory.textHideAll : this.panelHistory.textShowAll);
|
||||
},
|
||||
|
||||
|
|
|
|||
146
apps/common/main/lib/controller/LayoutManager.js
Normal file
|
|
@ -0,0 +1,146 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2021
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* LayoutManager.js
|
||||
*
|
||||
* Created by Julia Radzhabova on 06.10.2021
|
||||
* Copyright (c) 2021 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
if (Common === undefined)
|
||||
var Common = {};
|
||||
|
||||
if (Common.UI === undefined) {
|
||||
Common.UI = {};
|
||||
}
|
||||
|
||||
Common.UI.LayoutManager = new(function() {
|
||||
var _config;
|
||||
var _init = function(config) {
|
||||
_config = config;
|
||||
};
|
||||
|
||||
var _applyCustomization = function(config, el, prefix) {
|
||||
!config && (config = _config);
|
||||
if (!config) return;
|
||||
|
||||
for (var name in config) {
|
||||
if(config.hasOwnProperty(name)) {
|
||||
if(typeof config[name] === 'object')
|
||||
_applyCustomization(config[name], el, (prefix || '') + name + '-');
|
||||
else if (config[name] === false) {
|
||||
var selector = '[data-layout-name=' + (prefix || '') + name + ']',
|
||||
cmp = el ? el.find(selector) : $(selector);
|
||||
cmp && cmp.hide && cmp.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var _isElementVisible = function(value, config, prefix) {
|
||||
!config && (config = _config);
|
||||
if (!config) return true;
|
||||
|
||||
var res = true;
|
||||
for (var name in config) {
|
||||
if(config.hasOwnProperty(name)) {
|
||||
if(typeof config[name] === 'object')
|
||||
res = _isElementVisible(value, config[name], (prefix || '') + name + '-');
|
||||
else {
|
||||
if (value === (prefix || '') + name) { // checked value is in config
|
||||
res = config[name];
|
||||
}
|
||||
}
|
||||
if (res===false) return res;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
return {
|
||||
init: _init,
|
||||
applyCustomization: _applyCustomization,
|
||||
isElementVisible: _isElementVisible
|
||||
}
|
||||
})();
|
||||
|
||||
/**
|
||||
* features: {
|
||||
* feature: { //can be object or init value
|
||||
* mode: <init value> // value1 / value2 ...
|
||||
* change: false/true // hide/show feature
|
||||
* } / value1 / value2 ...
|
||||
* }
|
||||
*/
|
||||
Common.UI.FeaturesManager = new(function() {
|
||||
var _config,
|
||||
_licensed;
|
||||
var _init = function(config, licensed) {
|
||||
_config = config;
|
||||
_licensed = licensed;
|
||||
};
|
||||
|
||||
var _canChange = function(name, force) {
|
||||
return !((_licensed || force) && _config && typeof _config[name] === 'object' && _config[name] && _config[name].change===false);
|
||||
};
|
||||
|
||||
var _getInitValue2 = function(name, defValue, force) {
|
||||
if ((_licensed || force) && _config && _config[name] !== undefined ) {
|
||||
if (typeof _config[name] === 'object' && _config[name]) { // object and not null
|
||||
if (_config[name].mode!==undefined)
|
||||
return _config[name].mode;
|
||||
} else
|
||||
return _config[name];
|
||||
}
|
||||
|
||||
return defValue;
|
||||
};
|
||||
|
||||
var _getInitValue = function(name, force) {
|
||||
if ((_licensed || force) && _config && _config[name] !== undefined ) {
|
||||
if (typeof _config[name] === 'object' && _config[name]) { // object and not null
|
||||
if (_config[name].mode!==undefined)
|
||||
return _config[name].mode;
|
||||
} else
|
||||
return _config[name];
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
init: _init,
|
||||
canChange: _canChange,
|
||||
getInitValue: _getInitValue
|
||||
}
|
||||
})();
|
||||
|
|
@ -39,7 +39,8 @@
|
|||
define([
|
||||
'core',
|
||||
'common/main/lib/collection/Plugins',
|
||||
'common/main/lib/view/Plugins'
|
||||
'common/main/lib/view/Plugins',
|
||||
'common/main/lib/view/PluginDlg'
|
||||
], function () {
|
||||
'use strict';
|
||||
|
||||
|
|
@ -62,8 +63,8 @@ define([
|
|||
'render:before' : function (toolbar) {
|
||||
var appOptions = me.getApplication().getController('Main').appOptions;
|
||||
|
||||
if ( !appOptions.isEditMailMerge && !appOptions.isEditDiagram ) {
|
||||
var tab = {action: 'plugins', caption: me.panelPlugins.groupCaption};
|
||||
if ( !appOptions.isEditMailMerge && !appOptions.isEditDiagram && !appOptions.isEditOle ) {
|
||||
var tab = {action: 'plugins', caption: me.panelPlugins.groupCaption, dataHintTitle: 'E', layoutname: 'toolbar-plugins'};
|
||||
me.$toolbarPanelPlugins = me.panelPlugins.getPanel();
|
||||
|
||||
toolbar.addTab(tab, me.$toolbarPanelPlugins, 10); // TODO: clear plugins list in left panel
|
||||
|
|
@ -161,6 +162,8 @@ define([
|
|||
this.api.asc_registerCallback("asc_onPluginMouseMove", _.bind(this.onPluginMouseMove, this));
|
||||
this.api.asc_registerCallback('asc_onPluginsReset', _.bind(this.resetPluginsList, this));
|
||||
this.api.asc_registerCallback('asc_onPluginsInit', _.bind(this.onPluginsInit, this));
|
||||
this.api.asc_registerCallback('asc_onPluginShowButton', _.bind(this.onPluginShowButton, this));
|
||||
this.api.asc_registerCallback('asc_onPluginHideButton', _.bind(this.onPluginHideButton, this));
|
||||
|
||||
this.loadPlugins();
|
||||
}
|
||||
|
|
@ -203,44 +206,13 @@ define([
|
|||
arr = [];
|
||||
storePlugins.each(function(item){
|
||||
var plugin = new Asc.CPlugin();
|
||||
plugin.set_Name(item.get('name'));
|
||||
plugin.set_Guid(item.get('guid'));
|
||||
plugin.set_BaseUrl(item.get('baseUrl'));
|
||||
plugin.set_MinVersion && plugin.set_MinVersion(item.get('minVersion'));
|
||||
|
||||
var variations = item.get('variations'),
|
||||
variationsArr = [];
|
||||
variations.forEach(function(itemVar){
|
||||
var variation = new Asc.CPluginVariation();
|
||||
variation.set_Description(itemVar.get('description'));
|
||||
variation.set_Url(itemVar.get('url'));
|
||||
variation.set_Icons(itemVar.get('icons'));
|
||||
variation.set_Visual(itemVar.get('isVisual'));
|
||||
variation.set_CustomWindow(itemVar.get('isCustomWindow'));
|
||||
variation.set_System(itemVar.get('isSystem'));
|
||||
variation.set_Viewer(itemVar.get('isViewer'));
|
||||
variation.set_EditorsSupport(itemVar.get('EditorsSupport'));
|
||||
variation.set_Modal(itemVar.get('isModal'));
|
||||
variation.set_InsideMode(itemVar.get('isInsideMode'));
|
||||
variation.set_InitDataType(itemVar.get('initDataType'));
|
||||
variation.set_InitData(itemVar.get('initData'));
|
||||
variation.set_UpdateOleOnResize(itemVar.get('isUpdateOleOnResize'));
|
||||
variation.set_Buttons(itemVar.get('buttons'));
|
||||
variation.set_Size(itemVar.get('size'));
|
||||
variation.set_InitOnSelectionChanged(itemVar.get('initOnSelectionChanged'));
|
||||
variation.set_Events(itemVar.get('events'));
|
||||
variation.set_Help(itemVar.get('help'));
|
||||
|
||||
variationsArr.push(variation);
|
||||
});
|
||||
|
||||
plugin.set_Variations(variationsArr);
|
||||
plugin.deserialize(item.get('original'));
|
||||
item.set('pluginObj', plugin);
|
||||
arr.push(plugin);
|
||||
});
|
||||
this.api.asc_pluginsRegister('', arr);
|
||||
if (storePlugins.hasVisible())
|
||||
Common.NotificationCenter.trigger('tab:visible', 'plugins', true);
|
||||
Common.NotificationCenter.trigger('tab:visible', 'plugins', Common.UI.LayoutManager.isElementVisible('toolbar-plugins'));
|
||||
Common.Gateway.pluginsReady();
|
||||
},
|
||||
|
||||
|
|
@ -272,6 +244,10 @@ define([
|
|||
$('<div class="separator long"></div>').appendTo(me.$toolbarPanelPlugins);
|
||||
_group = $('<div class="group"></div>');
|
||||
rank_plugins = 0;
|
||||
} else {
|
||||
_group.appendTo(me.$toolbarPanelPlugins);
|
||||
$('<div class="separator long invisible"></div>').appendTo(me.$toolbarPanelPlugins);
|
||||
_group = $('<div class="group" style="padding-left: 0;"></div>');
|
||||
}
|
||||
|
||||
var btn = me.panelPlugins.createPluginButton(model);
|
||||
|
|
@ -407,6 +383,7 @@ define([
|
|||
buttons: isCustomWindow ? undefined : newBtns,
|
||||
toolcallback: _.bind(this.onToolClose, this),
|
||||
help: !!help,
|
||||
loader: plugin.get_Loader(),
|
||||
modal: isModal!==undefined ? isModal : true
|
||||
});
|
||||
me.pluginDlg.on({
|
||||
|
|
@ -425,6 +402,9 @@ define([
|
|||
},
|
||||
'help': function(){
|
||||
help && window.open(help, '_blank');
|
||||
},
|
||||
'header:click': function(type){
|
||||
me.api.asc_pluginButtonClick(type);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -484,6 +464,14 @@ define([
|
|||
this.parsePlugins(pluginsdata)
|
||||
},
|
||||
|
||||
onPluginShowButton: function(id) {
|
||||
this.pluginDlg && this.pluginDlg.showButton(id);
|
||||
},
|
||||
|
||||
onPluginHideButton: function(id) {
|
||||
this.pluginDlg && this.pluginDlg.hideButton(id);
|
||||
},
|
||||
|
||||
runAutoStartPlugins: function() {
|
||||
if (this.autostart && this.autostart.length > 0) {
|
||||
this.api.asc_pluginRun(this.autostart.shift(), 0, '');
|
||||
|
|
@ -582,7 +570,8 @@ define([
|
|||
visible: pluginVisible,
|
||||
groupName: (item.group) ? item.group.name : '',
|
||||
groupRank: (item.group) ? item.group.rank : 0,
|
||||
minVersion: item.minVersion
|
||||
minVersion: item.minVersion,
|
||||
original: item
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -153,7 +153,6 @@ define([
|
|||
var me = this,
|
||||
win = new Common.Views.PasswordDialog({
|
||||
api: me.api,
|
||||
signType: 'invisible',
|
||||
handler: function(result, props) {
|
||||
if (result == 'ok') {
|
||||
me.api.asc_setCurrentPassword(props);
|
||||
|
|
|
|||
|
|
@ -100,8 +100,9 @@ define([
|
|||
onLaunch: function () {
|
||||
this.collection = this.getApplication().getCollection('Common.Collections.ReviewChanges');
|
||||
this.userCollection = this.getApplication().getCollection('Common.Collections.Users');
|
||||
this.viewmode = false;
|
||||
|
||||
this._state = {posx: -1000, posy: -1000, popoverVisible: false, previewMode: false, compareSettings: null /*new AscCommon.CComparisonPr()*/};
|
||||
this._state = {posx: -1000, posy: -1000, popoverVisible: false, previewMode: false, compareSettings: null, wsLock: false, wsProps: []};
|
||||
|
||||
Common.NotificationCenter.on('reviewchanges:turn', this.onTurnPreview.bind(this));
|
||||
Common.NotificationCenter.on('spelling:turn', this.onTurnSpelling.bind(this));
|
||||
|
|
@ -109,6 +110,7 @@ define([
|
|||
Common.NotificationCenter.on('api:disconnect', _.bind(this.onCoAuthoringDisconnect, this));
|
||||
Common.NotificationCenter.on('collaboration:sharing', this.changeAccessRights.bind(this));
|
||||
Common.NotificationCenter.on('collaboration:sharingdeny', this.onLostEditRights.bind(this));
|
||||
Common.NotificationCenter.on('protect:wslock', _.bind(this.onChangeProtectSheet, this));
|
||||
|
||||
this.userCollection.on('reset', _.bind(this.onUpdateUsers, this));
|
||||
this.userCollection.on('add', _.bind(this.onUpdateUsers, this));
|
||||
|
|
@ -131,8 +133,7 @@ define([
|
|||
this.api.asc_registerCallback('asc_onUpdateRevisionsChangesPosition', _.bind(this.onApiUpdateChangePosition, this));
|
||||
this.api.asc_registerCallback('asc_onAuthParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this));
|
||||
this.api.asc_registerCallback('asc_onParticipantsChanged', _.bind(this.onAuthParticipantsChanged, this));
|
||||
this.api.asc_registerCallback('asc_onBeginViewModeInReview', _.bind(this.onBeginViewModeInReview, this));
|
||||
this.api.asc_registerCallback('asc_onEndViewModeInReview', _.bind(this.onEndViewModeInReview, this));
|
||||
this.api.asc_registerCallback('asc_onChangeDisplayModeInReview', _.bind(this.onChangeDisplayModeInReview, this));
|
||||
}
|
||||
if (this.appConfig.canReview)
|
||||
this.api.asc_registerCallback('asc_onOnTrackRevisionsChange', _.bind(this.onApiTrackRevisionsChange, this));
|
||||
|
|
@ -160,13 +161,23 @@ define([
|
|||
this.document = data.doc;
|
||||
},
|
||||
|
||||
SetDisabled: function(state) {
|
||||
SetDisabled: function(state, reviewMode, fillFormMode) {
|
||||
if (this.dlgChanges)
|
||||
this.dlgChanges.close();
|
||||
this.view && this.view.SetDisabled(state, this.langs);
|
||||
if (reviewMode)
|
||||
this.lockToolbar(Common.enumLock.previewReviewMode, state);
|
||||
else if (fillFormMode)
|
||||
this.lockToolbar(Common.enumLock.viewFormMode, state);
|
||||
else
|
||||
this.lockToolbar(Common.enumLock.viewMode, state);
|
||||
|
||||
this.setPreviewMode(state);
|
||||
},
|
||||
|
||||
lockToolbar: function (causes, lock, opts) {
|
||||
Common.Utils.lockControls(causes, lock, opts, this.view.getButtons());
|
||||
},
|
||||
|
||||
setPreviewMode: function(mode) { //disable accept/reject in popover
|
||||
if (this.viewmode === mode) return;
|
||||
this.viewmode = mode;
|
||||
|
|
@ -179,20 +190,50 @@ define([
|
|||
});
|
||||
},
|
||||
|
||||
onApiShowChange: function (sdkchange) {
|
||||
if (this.getPopover()) {
|
||||
isSelectedChangesLocked: function(changes, isShow) {
|
||||
if (!changes || changes.length<1) return true;
|
||||
|
||||
if (isShow)
|
||||
return changes[0].get('lock') || !changes[0].get('editable');
|
||||
|
||||
for (var i=0; i<changes.length; i++) {
|
||||
var change = changes[i];
|
||||
if (change.get('lock') || !change.get('editable'))
|
||||
return true; // lock button if at least one change is locked
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
onApiShowChange: function (sdkchange, isShow) {
|
||||
var btnlock = true,
|
||||
changes;
|
||||
if (this.appConfig.canReview && !this.appConfig.isReviewOnly) {
|
||||
if (sdkchange && sdkchange.length>0) {
|
||||
changes = this.readSDKChange(sdkchange);
|
||||
btnlock = this.isSelectedChangesLocked(changes, isShow);
|
||||
}
|
||||
if (this._state.lock !== btnlock) {
|
||||
Common.Utils.lockControls(Common.enumLock.reviewChangelock, btnlock, {array: [this.view.btnAccept, this.view.btnReject]});
|
||||
if (this.dlgChanges) {
|
||||
this.dlgChanges.btnAccept.setDisabled(btnlock);
|
||||
this.dlgChanges.btnReject.setDisabled(btnlock);
|
||||
}
|
||||
this._state.lock = btnlock;
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "accept-reject-lock", btnlock);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.getPopover()) {
|
||||
if (!this.appConfig.reviewHoverMode && sdkchange && sdkchange.length>0 && isShow) { // show changes balloon only for current position, not selection
|
||||
var i = 0,
|
||||
changes = this.readSDKChange(sdkchange),
|
||||
posX = sdkchange[0].get_X(),
|
||||
posY = sdkchange[0].get_Y(),
|
||||
animate = ( Math.abs(this._state.posx-posX)>0.001 || Math.abs(this._state.posy-posY)>0.001) || (sdkchange.length !== this._state.changes_length),
|
||||
lock = (sdkchange[0].get_LockUserId()!==null),
|
||||
lockUser = this.getUserName(sdkchange[0].get_LockUserId()),
|
||||
editable = changes[0].get('editable');
|
||||
lockUser = this.getUserName(sdkchange[0].get_LockUserId());
|
||||
|
||||
this.getPopover().hideTips();
|
||||
this.popoverChanges.reset(changes);
|
||||
this.popoverChanges.reset(changes || this.readSDKChange(sdkchange));
|
||||
|
||||
if (animate) {
|
||||
if ( this.getPopover().isVisible() ) this.getPopover().hide();
|
||||
|
|
@ -200,17 +241,6 @@ define([
|
|||
}
|
||||
|
||||
this.getPopover().showReview(animate, lock, lockUser);
|
||||
|
||||
var btnlock = lock || !editable;
|
||||
if (this.appConfig.canReview && !this.appConfig.isReviewOnly && this._state.lock !== btnlock) {
|
||||
this.view.btnAccept.setDisabled(btnlock);
|
||||
this.view.btnReject.setDisabled(btnlock);
|
||||
if (this.dlgChanges) {
|
||||
this.dlgChanges.btnAccept.setDisabled(btnlock);
|
||||
this.dlgChanges.btnReject.setDisabled(btnlock);
|
||||
}
|
||||
this._state.lock = btnlock;
|
||||
}
|
||||
this._state.posx = posX;
|
||||
this._state.posy = posY;
|
||||
this._state.changes_length = sdkchange.length;
|
||||
|
|
@ -256,7 +286,11 @@ define([
|
|||
if ((this.appConfig.canReview || this.appConfig.canViewReview) && _.isUndefined(this.popover)) {
|
||||
this.popover = Common.Views.ReviewPopover.prototype.getPopover({
|
||||
reviewStore : this.popoverChanges,
|
||||
renderTo : this.sdkViewName
|
||||
renderTo : this.sdkViewName,
|
||||
canRequestUsers: (this.appConfig) ? this.appConfig.canRequestUsers : undefined,
|
||||
canRequestSendNotify: (this.appConfig) ? this.appConfig.canRequestSendNotify : undefined,
|
||||
mentionShare: (this.appConfig) ? this.appConfig.mentionShare : true,
|
||||
api: this.api
|
||||
});
|
||||
this.popover.setReviewStore(this.popoverChanges);
|
||||
}
|
||||
|
|
@ -516,7 +550,7 @@ define([
|
|||
if (item.value === 'all') {
|
||||
this.api.asc_AcceptAllChanges();
|
||||
} else {
|
||||
this.api.asc_AcceptChanges();
|
||||
this.api.asc_AcceptChangesBySelection(true); // accept and move to the next change
|
||||
}
|
||||
} else {
|
||||
this.api.asc_AcceptChanges(menu);
|
||||
|
|
@ -531,7 +565,7 @@ define([
|
|||
if (item.value === 'all') {
|
||||
this.api.asc_RejectAllChanges();
|
||||
} else {
|
||||
this.api.asc_RejectChanges();
|
||||
this.api.asc_RejectChangesBySelection(true); // reject and move to the next change
|
||||
}
|
||||
} else {
|
||||
this.api.asc_RejectChanges(menu);
|
||||
|
|
@ -579,23 +613,29 @@ define([
|
|||
this.view.turnChanges(state, global);
|
||||
if (userId && this.userCollection) {
|
||||
var rec = this.userCollection.findOriginalUser(userId);
|
||||
rec && this.showTips(Common.Utils.String.format(globalFlag ? this.textOnGlobal : this.textOffGlobal, AscCommon.UserInfoParser.getParsedName(rec.get('username'))));
|
||||
rec && Common.NotificationCenter.trigger('showmessage', {msg: Common.Utils.String.format(globalFlag ? this.textOnGlobal : this.textOffGlobal, AscCommon.UserInfoParser.getParsedName(rec.get('username')))},
|
||||
{timeout: 5000, hideCloseTip: true});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onTurnSpelling: function (state) {
|
||||
onTurnSpelling: function (state, suspend) {
|
||||
state = (state == 'on');
|
||||
this.view.turnSpelling(state);
|
||||
this.view && this.view.turnSpelling(state);
|
||||
|
||||
Common.localStorage.setItem(this.view.appPrefix + "settings-spellcheck", state ? 1 : 0);
|
||||
this.api.asc_setSpellCheck(state);
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-spellcheck", state);
|
||||
if (Common.UI.FeaturesManager.canChange('spellcheck') && !suspend) {
|
||||
Common.localStorage.setItem(this.view.appPrefix + "settings-spellcheck", state ? 1 : 0);
|
||||
this.api.asc_setSpellCheck(state);
|
||||
Common.Utils.InternalSettings.set(this.view.appPrefix + "settings-spellcheck", state);
|
||||
}
|
||||
},
|
||||
|
||||
onReviewViewClick: function(menu, item, e) {
|
||||
this.turnDisplayMode(item.value);
|
||||
!this.appConfig.canReview && Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value);
|
||||
if (!this.appConfig.isEdit && !this.appConfig.isRestrictedEdit)
|
||||
Common.localStorage.setItem(this.view.appPrefix + "review-mode", item.value); // for viewer
|
||||
else if (item.value=='markup' || item.value=='simple')
|
||||
Common.localStorage.setItem(this.view.appPrefix + "review-mode-editor", item.value); // for editor save only markup modes
|
||||
Common.NotificationCenter.trigger('edit:complete', this.view);
|
||||
},
|
||||
|
||||
|
|
@ -685,27 +725,40 @@ define([
|
|||
|
||||
turnDisplayMode: function(mode) {
|
||||
if (this.api) {
|
||||
if (mode === 'final')
|
||||
this.api.asc_BeginViewModeInReview(true);
|
||||
else if (mode === 'original')
|
||||
this.api.asc_BeginViewModeInReview(false);
|
||||
else
|
||||
this.api.asc_EndViewModeInReview();
|
||||
var type = Asc.c_oAscDisplayModeInReview.Edit;
|
||||
switch (mode) {
|
||||
case 'final':
|
||||
type = Asc.c_oAscDisplayModeInReview.Final;
|
||||
break;
|
||||
case 'original':
|
||||
type = Asc.c_oAscDisplayModeInReview.Original;
|
||||
break;
|
||||
case 'simple':
|
||||
type = Asc.c_oAscDisplayModeInReview.Simple;
|
||||
break;
|
||||
}
|
||||
this.api.asc_SetDisplayModeInReview(type);
|
||||
}
|
||||
this.disableEditing(mode == 'final' || mode == 'original');
|
||||
this._state.previewMode = (mode == 'final' || mode == 'original');
|
||||
},
|
||||
|
||||
onBeginViewModeInReview: function(mode) {
|
||||
this.disableEditing(true);
|
||||
this.view && this.view.turnDisplayMode(mode ? 'final' : 'original');
|
||||
this._state.previewMode = true;
|
||||
},
|
||||
|
||||
onEndViewModeInReview: function() {
|
||||
this.disableEditing(false);
|
||||
this.view && this.view.turnDisplayMode('markup');
|
||||
this._state.previewMode = false;
|
||||
onChangeDisplayModeInReview: function(type) {
|
||||
this.disableEditing(type===Asc.c_oAscDisplayModeInReview.Final || type===Asc.c_oAscDisplayModeInReview.Original);
|
||||
var mode = 'markup';
|
||||
switch (type) {
|
||||
case Asc.c_oAscDisplayModeInReview.Final:
|
||||
mode = 'final';
|
||||
break;
|
||||
case Asc.c_oAscDisplayModeInReview.Original:
|
||||
mode = 'original';
|
||||
break;
|
||||
case Asc.c_oAscDisplayModeInReview.Simple:
|
||||
mode = 'simple';
|
||||
break;
|
||||
}
|
||||
this.view && this.view.turnDisplayMode(mode);
|
||||
this._state.previewMode = (type===Asc.c_oAscDisplayModeInReview.Final || type===Asc.c_oAscDisplayModeInReview.Original);
|
||||
},
|
||||
|
||||
isPreviewChangesMode: function() {
|
||||
|
|
@ -742,35 +795,27 @@ define([
|
|||
},
|
||||
|
||||
disableEditing: function(disable) {
|
||||
var app = this.getApplication();
|
||||
app.getController('Toolbar').DisableToolbar(disable, false, true);
|
||||
app.getController('DocumentHolder').getView().SetDisabled(disable);
|
||||
|
||||
if (this.appConfig.canReview) {
|
||||
app.getController('RightMenu').getView('RightMenu').clearSelection();
|
||||
app.getController('RightMenu').SetDisabled(disable, false);
|
||||
app.getController('Statusbar').getView('Statusbar').SetDisabled(disable);
|
||||
app.getController('Navigation') && app.getController('Navigation').SetDisabled(disable);
|
||||
app.getController('Common.Controllers.Plugins').getView('Common.Views.Plugins').disableControls(disable);
|
||||
}
|
||||
|
||||
var comments = app.getController('Common.Controllers.Comments');
|
||||
if (comments)
|
||||
comments.setPreviewMode(disable);
|
||||
|
||||
var leftMenu = app.getController('LeftMenu');
|
||||
leftMenu.leftMenu.getMenu('file').getButton('protect').setDisabled(disable);
|
||||
leftMenu.setPreviewMode(disable);
|
||||
|
||||
if (this.view) {
|
||||
this.view.$el.find('.no-group-mask.review').css('opacity', 1);
|
||||
|
||||
this.view.btnsDocLang && this.view.btnsDocLang.forEach(function(button) {
|
||||
if ( button ) {
|
||||
button.setDisabled(disable || !this.langs || this.langs.length<1);
|
||||
}
|
||||
}, this);
|
||||
}
|
||||
Common.NotificationCenter.trigger('editing:disable', disable, {
|
||||
viewMode: false,
|
||||
reviewMode: true,
|
||||
fillFormMode: false,
|
||||
allowMerge: false,
|
||||
allowSignature: false,
|
||||
allowProtect: false,
|
||||
rightMenu: {clear: disable, disable: true},
|
||||
statusBar: true,
|
||||
leftMenu: {disable: false, previewMode: true},
|
||||
fileMenu: {protect: true},
|
||||
navigation: {disable: false, previewMode: true},
|
||||
comments: {disable: false, previewMode: true},
|
||||
chat: false,
|
||||
review: true,
|
||||
viewport: false,
|
||||
documentHolder: true,
|
||||
toolbar: true,
|
||||
plugins: true,
|
||||
protect: true
|
||||
}, 'review');
|
||||
},
|
||||
|
||||
createToolbarPanel: function() {
|
||||
|
|
@ -784,9 +829,6 @@ define([
|
|||
|
||||
onAppReady: function (config) {
|
||||
var me = this;
|
||||
if ( me.view && Common.localStorage.getBool(me.view.appPrefix + "settings-spellcheck", !(config.customization && config.customization.spellcheck===false)))
|
||||
me.view.turnSpelling(true);
|
||||
|
||||
if ( config.canReview ) {
|
||||
(new Promise(function (resolve) {
|
||||
resolve();
|
||||
|
|
@ -797,16 +839,27 @@ define([
|
|||
// Common.Utils.InternalSettings.set(me.view.appPrefix + "track-changes", (state ? 0 : 1) + (global ? 2 : 0));
|
||||
// };
|
||||
|
||||
var trackChanges = typeof (me.appConfig.customization) == 'object' ? me.appConfig.customization.trackChanges : undefined;
|
||||
var trackChanges = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.trackChanges : undefined;
|
||||
(trackChanges===undefined) && (trackChanges = me.appConfig.customization ? me.appConfig.customization.trackChanges : undefined);
|
||||
|
||||
if (config.isReviewOnly || trackChanges!==undefined)
|
||||
me.api.asc_SetLocalTrackRevisions(config.isReviewOnly || trackChanges===true);
|
||||
else
|
||||
me.onApiTrackRevisionsChange(me.api.asc_GetLocalTrackRevisions(), me.api.asc_GetGlobalTrackRevisions());
|
||||
me.api.asc_HaveRevisionsChanges() && me.view.markChanges(true);
|
||||
|
||||
// _setReviewStatus(state, global);
|
||||
var val = Common.localStorage.getItem(me.view.appPrefix + "review-mode-editor");
|
||||
if (val===null) {
|
||||
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
|
||||
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
|
||||
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : 'markup';
|
||||
}
|
||||
|
||||
if ( typeof (me.appConfig.customization) == 'object' && (me.appConfig.customization.showReviewChanges==true) ) {
|
||||
me.turnDisplayMode(val); // load display mode for all modes (viewer or editor)
|
||||
me.view.turnDisplayMode(val);
|
||||
|
||||
if ( typeof (me.appConfig.customization) == 'object' && (me.appConfig.customization.review && me.appConfig.customization.review.showReviewChanges==true ||
|
||||
(!me.appConfig.customization.review || me.appConfig.customization.review.showReviewChanges===undefined) && me.appConfig.customization.showReviewChanges==true) ) {
|
||||
me.dlgChanges = (new Common.Views.ReviewChangesDialog({
|
||||
popoverChanges : me.popoverChanges,
|
||||
mode : me.appConfig
|
||||
|
|
@ -819,11 +872,14 @@ define([
|
|||
} else if (config.canViewReview) {
|
||||
config.canViewReview = (config.isEdit || me.api.asc_HaveRevisionsChanges(true)); // check revisions from all users
|
||||
if (config.canViewReview) {
|
||||
var val = Common.localStorage.getItem(me.view.appPrefix + "review-mode");
|
||||
if (val===null)
|
||||
val = me.appConfig.customization && /^(original|final|markup)$/i.test(me.appConfig.customization.reviewDisplay) ? me.appConfig.customization.reviewDisplay.toLocaleLowerCase() : 'original';
|
||||
me.turnDisplayMode((config.isEdit || config.isRestrictedEdit) ? 'markup' : val); // load display mode only in viewer
|
||||
me.view.turnDisplayMode((config.isEdit || config.isRestrictedEdit) ? 'markup' : val);
|
||||
var val = Common.localStorage.getItem(me.view.appPrefix + (config.isEdit || config.isRestrictedEdit ? "review-mode-editor" : "review-mode"));
|
||||
if (val===null) {
|
||||
val = me.appConfig.customization && me.appConfig.customization.review ? me.appConfig.customization.review.reviewDisplay : undefined;
|
||||
!val && (val = me.appConfig.customization ? me.appConfig.customization.reviewDisplay : undefined);
|
||||
val = /^(original|final|markup|simple)$/i.test(val) ? val.toLocaleLowerCase() : (config.isEdit || config.isRestrictedEdit ? 'markup' : 'original');
|
||||
}
|
||||
me.turnDisplayMode(val);
|
||||
me.view.turnDisplayMode(val);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -833,50 +889,26 @@ define([
|
|||
me.view.turnChat(state);
|
||||
});
|
||||
}
|
||||
me.onChangeProtectSheet();
|
||||
if (me.view) {
|
||||
me.view.btnCommentRemove && me.view.btnCommentRemove.setDisabled(!Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true));
|
||||
me.view.btnCommentResolve && me.view.btnCommentResolve.setDisabled(!Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true));
|
||||
}
|
||||
},
|
||||
|
||||
showTips: function(strings) {
|
||||
var me = this;
|
||||
if (!strings.length) return;
|
||||
if (typeof(strings)!='object') strings = [strings];
|
||||
|
||||
function showNextTip() {
|
||||
var str_tip = strings.shift();
|
||||
if (str_tip) {
|
||||
me.tooltip.setTitle(str_tip);
|
||||
me.tooltip.show();
|
||||
me.tipTimeout = setTimeout(function () {
|
||||
me.tooltip.hide();
|
||||
}, 5000);
|
||||
}
|
||||
me.lockToolbar(Common.enumLock.hideComments, !Common.localStorage.getBool(me.view.appPrefix + "settings-livecomment", true), {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
|
||||
me.lockToolbar(Common.enumLock['Objects'], !!this._state.wsProps['Objects'], {array: [me.view.btnCommentRemove, me.view.btnCommentResolve]});
|
||||
}
|
||||
|
||||
if (!this.tooltip) {
|
||||
this.tooltip = new Common.UI.Tooltip({
|
||||
owner: this.getApplication().getController('Toolbar').getView(),
|
||||
hideonclick: true,
|
||||
placement: 'bottom',
|
||||
cls: 'main-info',
|
||||
offset: 30
|
||||
});
|
||||
this.tooltip.on('tooltip:hide', function(cmp){
|
||||
if (cmp==me.tooltip) {
|
||||
clearTimeout(me.tipTimeout);
|
||||
setTimeout(showNextTip, 300);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
showNextTip();
|
||||
var val = Common.localStorage.getItem(me.view.appPrefix + "settings-review-hover-mode");
|
||||
if (val === null) {
|
||||
val = me.appConfig.customization && me.appConfig.customization.review ? !!me.appConfig.customization.review.hoverMode : false;
|
||||
} else
|
||||
val = !!parseInt(val);
|
||||
Common.Utils.InternalSettings.set(me.view.appPrefix + "settings-review-hover-mode", val);
|
||||
me.appConfig.reviewHoverMode = val;
|
||||
},
|
||||
|
||||
applySettings: function(menu) {
|
||||
this.view && this.view.turnSpelling( Common.localStorage.getBool(this.view.appPrefix + "settings-spellcheck", true) );
|
||||
this.view && this.view.turnCoAuthMode( Common.localStorage.getBool(this.view.appPrefix + "settings-coauthmode", true) );
|
||||
if ((this.appConfig.canReview || this.appConfig.canViewReview) && this.appConfig.reviewHoverMode)
|
||||
this.onApiShowChange();
|
||||
},
|
||||
|
||||
synchronizeChanges: function() {
|
||||
|
|
@ -887,11 +919,7 @@ define([
|
|||
|
||||
setLanguages: function (array) {
|
||||
this.langs = array;
|
||||
this.view && this.view.btnsDocLang && this.view.btnsDocLang.forEach(function(button) {
|
||||
if ( button ) {
|
||||
button.setDisabled(this.langs.length<1);
|
||||
}
|
||||
}, this);
|
||||
this.lockToolbar(Common.enumLock.noSpellcheckLangs, this.langs.length<1, {array: this.view.btnsDocLang});
|
||||
},
|
||||
|
||||
onDocLanguage: function() {
|
||||
|
|
@ -911,6 +939,7 @@ define([
|
|||
onLostEditRights: function() {
|
||||
this._readonlyRights = true;
|
||||
this.view && this.view.onLostEditRights();
|
||||
this.view && this.lockToolbar(Common.enumLock.cantShare, true, {array: [this.view.btnSharing]});
|
||||
},
|
||||
|
||||
changeAccessRights: function(btn,event,opts) {
|
||||
|
|
@ -942,7 +971,7 @@ define([
|
|||
},
|
||||
|
||||
onCoAuthoringDisconnect: function() {
|
||||
this.SetDisabled(true);
|
||||
this.lockToolbar(Common.enumLock.lostConnect, true)
|
||||
},
|
||||
|
||||
onUpdateUsers: function() {
|
||||
|
|
@ -960,15 +989,26 @@ define([
|
|||
if (!item.asc_getView())
|
||||
length++;
|
||||
});
|
||||
this.view.btnCompare.setDisabled(length>1 || this.viewmode);
|
||||
Common.Utils.lockControls(Common.enumLock.hasCoeditingUsers, length>1, {array: [this.view.btnCompare]});
|
||||
}
|
||||
},
|
||||
|
||||
commentsShowHide: function(mode) {
|
||||
if (!this.view) return;
|
||||
var value = Common.Utils.InternalSettings.get(this.view.appPrefix + "settings-livecomment");
|
||||
(value!==undefined) && this.view.btnCommentRemove && this.view.btnCommentRemove.setDisabled(mode != 'show' && !value);
|
||||
(value!==undefined) && this.view.btnCommentResolve && this.view.btnCommentResolve.setDisabled(mode != 'show' && !value);
|
||||
(value!==undefined) && this.lockToolbar(Common.enumLock.hideComments, mode != 'show' && !value, {array: [this.view.btnCommentRemove, this.view.btnCommentResolve]});
|
||||
},
|
||||
|
||||
onChangeProtectSheet: function(props) {
|
||||
if (!props) {
|
||||
var wbprotect = this.getApplication().getController('WBProtection');
|
||||
props = wbprotect ? wbprotect.getWSProps() : null;
|
||||
}
|
||||
this._state.wsProps = props ? props.wsProps : [];
|
||||
this._state.wsLock = props ? props.wsLock : false;
|
||||
|
||||
if (!this.view) return;
|
||||
this.lockToolbar(Common.enumLock['Objects'], !!this._state.wsProps['Objects'], {array: [this.view.btnCommentRemove, this.view.btnCommentResolve]});
|
||||
},
|
||||
|
||||
textInserted: '<b>Inserted:</b>',
|
||||
|
|
|
|||
|
|
@ -11,24 +11,57 @@ define([
|
|||
|
||||
Common.UI.Themes = new (function(locale) {
|
||||
!locale && (locale = {});
|
||||
|
||||
const THEME_TYPE_LIGHT = 'light';
|
||||
const THEME_TYPE_DARK = 'dark';
|
||||
const THEME_TYPE_SYSTEM = 'system';
|
||||
var themes_map = {
|
||||
'theme-system': {
|
||||
text: locale.txtThemeSystem || 'Same as system',
|
||||
type: THEME_TYPE_SYSTEM,
|
||||
source: 'static',
|
||||
},
|
||||
'theme-light': {
|
||||
text: locale.txtThemeLight || 'Light',
|
||||
type: 'light'
|
||||
type: 'light',
|
||||
source: 'static',
|
||||
},
|
||||
'theme-classic-light': {
|
||||
text: locale.txtThemeClassicLight || 'Classic Light',
|
||||
type: 'light'
|
||||
type: 'light',
|
||||
source: 'static',
|
||||
},
|
||||
'theme-dark': {
|
||||
text: locale.txtThemeDark || 'Dark',
|
||||
type: 'dark'
|
||||
type: 'dark',
|
||||
source: 'static',
|
||||
},
|
||||
'theme-contrast-dark': {
|
||||
text: locale.txtThemeContrastDark || 'Dark Contrast',
|
||||
type: 'dark',
|
||||
source: 'static',
|
||||
},
|
||||
}
|
||||
|
||||
if ( !!window.currentLoaderTheme ) {
|
||||
if ( !themes_map[currentLoaderTheme.id] )
|
||||
themes_map[currentLoaderTheme.id] = currentLoaderTheme;
|
||||
window.currentLoaderTheme = undefined;
|
||||
}
|
||||
|
||||
var is_dark_mode_allowed = true;
|
||||
var id_default_light_theme = 'theme-classic-light',
|
||||
id_default_dark_theme = 'theme-dark';
|
||||
|
||||
var name_colors = [
|
||||
"toolbar-header-document",
|
||||
"toolbar-header-spreadsheet",
|
||||
"toolbar-header-presentation",
|
||||
|
||||
"text-toolbar-header-on-background-document",
|
||||
"text-toolbar-header-on-background-spreadsheet",
|
||||
"text-toolbar-header-on-background-presentation",
|
||||
|
||||
"background-normal",
|
||||
"background-toolbar",
|
||||
"background-toolbar-additional",
|
||||
|
|
@ -38,6 +71,9 @@ define([
|
|||
"background-notification-badge",
|
||||
"background-scrim",
|
||||
"background-loader",
|
||||
"background-accent-button",
|
||||
"background-contrast-popover",
|
||||
"shadow-contrast-popover",
|
||||
|
||||
"highlight-button-hover",
|
||||
"highlight-button-pressed",
|
||||
|
|
@ -47,6 +83,8 @@ define([
|
|||
"highlight-header-button-pressed",
|
||||
"highlight-toolbar-tab-underline",
|
||||
"highlight-text-select",
|
||||
"highlight-accent-button-hover",
|
||||
"highlight-accent-button-pressed",
|
||||
|
||||
"border-toolbar",
|
||||
"border-divider",
|
||||
|
|
@ -57,6 +95,7 @@ define([
|
|||
"border-control-focus",
|
||||
"border-color-shading",
|
||||
"border-error",
|
||||
"border-contrast-popover",
|
||||
|
||||
"text-normal",
|
||||
"text-normal-pressed",
|
||||
|
|
@ -69,6 +108,7 @@ define([
|
|||
"text-inverse",
|
||||
"text-toolbar-header",
|
||||
"text-contrast-background",
|
||||
"text-alt-key-hint",
|
||||
|
||||
"icon-normal",
|
||||
"icon-normal-pressed",
|
||||
|
|
@ -83,6 +123,7 @@ define([
|
|||
"canvas-page-border",
|
||||
|
||||
"canvas-ruler-background",
|
||||
"canvas-ruler-border",
|
||||
"canvas-ruler-margins-background",
|
||||
"canvas-ruler-mark",
|
||||
"canvas-ruler-handle-border",
|
||||
|
|
@ -104,6 +145,8 @@ define([
|
|||
"canvas-dark-cell-title-border",
|
||||
"canvas-dark-cell-title-border-hover",
|
||||
"canvas-dark-cell-title-border-selected",
|
||||
"canvas-dark-content-background",
|
||||
"canvas-dark-page-border",
|
||||
|
||||
"canvas-scroll-thumb",
|
||||
"canvas-scroll-thumb-hover",
|
||||
|
|
@ -153,10 +196,13 @@ define([
|
|||
}
|
||||
|
||||
var parse_themes_object = function (obj) {
|
||||
var curr_lang = Common.Locale.getCurrentLanguage(),
|
||||
theme_label;
|
||||
if ( !!obj.themes && obj.themes instanceof Array ) {
|
||||
obj.themes.forEach(function (item) {
|
||||
if ( !!item.id ) {
|
||||
themes_map[item.id] = {text: item.name, type: item.type};
|
||||
theme_label = !item.l10n || !item.l10n[curr_lang] ? item.name : item.l10n[curr_lang];
|
||||
themes_map[item.id] = {text: theme_label, type: item.type};
|
||||
write_theme_css(create_colors_css(item.id, item.colors));
|
||||
} else
|
||||
if ( typeof item == 'string' ) {
|
||||
|
|
@ -165,39 +211,53 @@ define([
|
|||
});
|
||||
} else
|
||||
if ( obj.id ) {
|
||||
themes_map[obj.id] = {text: obj.name, type: obj.type};
|
||||
theme_label = !obj.l10n || !obj.l10n[curr_lang] ? obj.name : obj.l10n[curr_lang];
|
||||
themes_map[obj.id] = {text: theme_label, type: obj.type};
|
||||
write_theme_css( create_colors_css(obj.id, obj.colors) );
|
||||
}
|
||||
|
||||
Common.NotificationCenter.trigger('uitheme:countchanged');
|
||||
}
|
||||
|
||||
var get_themes_config = function (url) {
|
||||
fetch(url, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'Accept': 'application/json',
|
||||
},
|
||||
}).then(function(response) {
|
||||
if (!response.ok) {
|
||||
throw new Error('server error');
|
||||
Common.Utils.loadConfig(url,
|
||||
function ( obj ) {
|
||||
if ( obj != 'error' ) {
|
||||
parse_themes_object(obj);
|
||||
} else {
|
||||
console.warn('failed to load/parse themes.json');
|
||||
}
|
||||
}
|
||||
return response.json();
|
||||
}).then(function(response) {
|
||||
if ( response.then ) {
|
||||
// return response.json();
|
||||
} else {
|
||||
parse_themes_object(response);
|
||||
|
||||
/* to break promises chain */
|
||||
throw new Error('loaded');
|
||||
}
|
||||
}).catch(function(e) {
|
||||
if ( e.message == 'loaded' ) {
|
||||
} else console.log('fetch error: ' + e);
|
||||
});
|
||||
);
|
||||
// fetch(url, {
|
||||
// method: 'get',
|
||||
// headers: {
|
||||
// 'Accept': 'application/json',
|
||||
// },
|
||||
// }).then(function(response) {
|
||||
// if (!response.ok) {
|
||||
// throw new Error('server error');
|
||||
// }
|
||||
// return response.json();
|
||||
// }).then(function(response) {
|
||||
// if ( response.then ) {
|
||||
// // return response.json();
|
||||
// } else {
|
||||
// parse_themes_object(response);
|
||||
//
|
||||
// /* to break promises chain */
|
||||
// throw new Error('loaded');
|
||||
// }
|
||||
// }).catch(function(e) {
|
||||
// if ( e.message == 'loaded' ) {
|
||||
// } else console.log('fetch error: ' + e);
|
||||
// });
|
||||
}
|
||||
|
||||
var on_document_ready = function (el) {
|
||||
// get_themes_config('../../common/main/resources/themes/themes.json')
|
||||
// get_themes_config('../../common/main/resources/themes/themes.json');
|
||||
if ( !Common.Controllers.Desktop.isActive() || !Common.Controllers.Desktop.isOffline() )
|
||||
get_themes_config('../../../../themes.json');
|
||||
}
|
||||
|
||||
var get_ui_theme_name = function (objtheme) {
|
||||
|
|
@ -213,18 +273,65 @@ define([
|
|||
return objtheme;
|
||||
}
|
||||
|
||||
var on_document_open = function (data) {
|
||||
if ( !!this.api.asc_setContentDarkMode && this.isDarkTheme() ) {
|
||||
this.api.asc_setContentDarkMode(this.isContentThemeDark());
|
||||
}
|
||||
};
|
||||
|
||||
const is_theme_type_system = function (id) { return themes_map[id].type == THEME_TYPE_SYSTEM; }
|
||||
const get_system_theme_type = function () { return window.matchMedia('(prefers-color-scheme: dark)').matches ? THEME_TYPE_DARK : THEME_TYPE_LIGHT; }
|
||||
const get_system_default_theme = function () {
|
||||
const id = get_system_theme_type() == THEME_TYPE_DARK ?
|
||||
id_default_dark_theme : id_default_light_theme;
|
||||
|
||||
return {id: id, info: themes_map[id]};
|
||||
};
|
||||
|
||||
const on_system_theme_dark = function (mql) {
|
||||
if (Common.localStorage.getBool('ui-theme-use-system', false)) {
|
||||
this.setTheme('theme-system');
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
init: function (api) {
|
||||
var me = this;
|
||||
|
||||
Common.Gateway.on('opendocument', on_document_open.bind(this));
|
||||
$(window).on('storage', function (e) {
|
||||
if ( e.key == 'ui-theme' || e.key == 'ui-theme-id' ) {
|
||||
me.setTheme(e.originalEvent.newValue, true);
|
||||
if ( !!e.originalEvent.newValue ) {
|
||||
if (Common.localStorage.getBool('ui-theme-use-system', false)) {
|
||||
me.setTheme('theme-system');
|
||||
} else me.setTheme(e.originalEvent.newValue, true);
|
||||
}
|
||||
} else
|
||||
if ( e.key == 'content-theme' ) {
|
||||
me.setContentTheme(e.originalEvent.newValue, true);
|
||||
console.log('changed content', e.originalEvent.newValue);
|
||||
}
|
||||
})
|
||||
|
||||
this.api = api;
|
||||
var theme_name = get_ui_theme_name(Common.localStorage.getItem('ui-theme'));
|
||||
if ( !theme_name ) {
|
||||
if ( !(Common.Utils.isIE10 || Common.Utils.isIE11) )
|
||||
document.body.classList.forEach(function (classname, i, o) {
|
||||
if ( !theme_name && classname.startsWith('theme-') &&
|
||||
!classname.startsWith('theme-type-') && themes_map[classname] )
|
||||
{
|
||||
theme_name = classname;
|
||||
var theme_obj = {
|
||||
id: theme_name,
|
||||
type: themes_map[theme_name].type
|
||||
};
|
||||
|
||||
Common.localStorage.setItem('ui-theme', JSON.stringify(theme_obj));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if ( !themes_map[theme_name] )
|
||||
theme_name = id_default_light_theme;
|
||||
|
||||
|
|
@ -241,6 +348,8 @@ define([
|
|||
obj.name = theme_name;
|
||||
api.asc_setSkin(obj);
|
||||
|
||||
if ( !(Common.Utils.isIE10 || Common.Utils.isIE11) )
|
||||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', on_system_theme_dark.bind(this));
|
||||
Common.NotificationCenter.on('document:ready', on_document_ready.bind(this));
|
||||
},
|
||||
|
||||
|
|
@ -261,6 +370,9 @@ define([
|
|||
},
|
||||
|
||||
currentThemeId: function () {
|
||||
if ( Common.localStorage.getBool('ui-theme-use-system', false) )
|
||||
return 'theme-system';
|
||||
|
||||
var t = Common.localStorage.getItem('ui-theme') || Common.localStorage.getItem('ui-theme-id');
|
||||
var id = get_ui_theme_name(t);
|
||||
return !!themes_map[id] ? id : id_default_light_theme;
|
||||
|
|
@ -274,17 +386,86 @@ define([
|
|||
return themes_map[this.defaultThemeId(type)]
|
||||
},
|
||||
|
||||
isDarkTheme: function () {
|
||||
return themes_map[this.currentThemeId()].type == 'dark';
|
||||
isDarkTheme: function (id) {
|
||||
!id && (id = this.currentThemeId());
|
||||
return (is_theme_type_system(id) ? get_system_default_theme().info.type : themes_map[id].type) == THEME_TYPE_DARK;
|
||||
},
|
||||
|
||||
setTheme: function (obj, force) {
|
||||
var id = get_ui_theme_name(obj);
|
||||
if ( (this.currentThemeId() != id || force) && !!themes_map[id] ) {
|
||||
isContentThemeDark: function () {
|
||||
return Common.localStorage.getItem("content-theme") == 'dark';
|
||||
},
|
||||
|
||||
setContentTheme: function (mode, force) {
|
||||
var set_dark = mode == 'dark';
|
||||
if ( set_dark && !this.isDarkTheme() )
|
||||
return;
|
||||
|
||||
if ( set_dark != this.isContentThemeDark() || force ) {
|
||||
if ( this.api.asc_setContentDarkMode )
|
||||
this.api.asc_setContentDarkMode(set_dark);
|
||||
|
||||
if ( Common.localStorage.getItem('content-theme') != mode )
|
||||
Common.localStorage.setItem('content-theme', mode);
|
||||
|
||||
Common.NotificationCenter.trigger('contenttheme:dark', set_dark);
|
||||
}
|
||||
},
|
||||
|
||||
toggleContentTheme: function () {
|
||||
var is_current_dark = this.isContentThemeDark();
|
||||
is_current_dark ? Common.localStorage.setItem('content-theme', 'light') : Common.localStorage.setItem('content-theme', 'dark');
|
||||
|
||||
if ( this.api.asc_setContentDarkMode )
|
||||
this.api.asc_setContentDarkMode(!is_current_dark);
|
||||
|
||||
Common.NotificationCenter.trigger('contenttheme:dark', !is_current_dark);
|
||||
},
|
||||
|
||||
setTheme: function (obj) {
|
||||
if ( !obj ) return;
|
||||
|
||||
var id = get_ui_theme_name(obj),
|
||||
refresh_only = arguments[1];
|
||||
|
||||
if ( !refresh_only && is_theme_type_system(this.currentThemeId()) ) {
|
||||
// TODO: need refactoring. for bug 58801
|
||||
if ( get_system_default_theme().id == id ) {
|
||||
Common.localStorage.setBool('ui-theme-use-system', false);
|
||||
Common.localStorage.setItem('ui-theme-id', '');
|
||||
Common.localStorage.setItem('ui-theme-id', id);
|
||||
Common.NotificationCenter.trigger('uitheme:changed', id);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_theme_type_system(id) ) {
|
||||
if ( get_system_default_theme().id == this.currentThemeId() ) {
|
||||
Common.localStorage.setBool('ui-theme-use-system', true);
|
||||
Common.localStorage.setItem('ui-theme-id', '');
|
||||
Common.localStorage.setItem('ui-theme-id', id);
|
||||
Common.NotificationCenter.trigger('uitheme:changed', id);
|
||||
return;
|
||||
}
|
||||
|
||||
Common.localStorage.setBool('ui-theme-use-system', true);
|
||||
id = get_system_default_theme().id;
|
||||
} else {
|
||||
Common.localStorage.setBool('ui-theme-use-system', false);
|
||||
}
|
||||
|
||||
if ( (this.currentThemeId() != id || refresh_only) && !!themes_map[id] ) {
|
||||
document.body.className = document.body.className.replace(/theme-[\w-]+\s?/gi, '').trim();
|
||||
document.body.classList.add(id, 'theme-type-' + themes_map[id].type);
|
||||
|
||||
if ( this.api ) {
|
||||
if ( this.api.asc_setContentDarkMode && is_dark_mode_allowed )
|
||||
if ( themes_map[id].type == 'light' ) {
|
||||
this.api.asc_setContentDarkMode(false);
|
||||
} else {
|
||||
this.api.asc_setContentDarkMode(this.isContentThemeDark());
|
||||
Common.NotificationCenter.trigger('contenttheme:dark', this.isContentThemeDark());
|
||||
}
|
||||
|
||||
var obj = get_current_theme_colors(name_colors);
|
||||
obj.type = themes_map[id].type;
|
||||
obj.name = id;
|
||||
|
|
@ -296,12 +477,19 @@ define([
|
|||
var theme_obj = {
|
||||
id: id,
|
||||
type: obj.type,
|
||||
text: themes_map[id].text,
|
||||
};
|
||||
|
||||
Common.localStorage.setItem('ui-theme', JSON.stringify(theme_obj));
|
||||
if ( themes_map[id].source != 'static' ) {
|
||||
theme_obj.colors = obj;
|
||||
}
|
||||
|
||||
if ( !refresh_only )
|
||||
Common.localStorage.setItem('ui-theme', JSON.stringify(theme_obj));
|
||||
}
|
||||
|
||||
Common.localStorage.setItem('ui-theme-id', id);
|
||||
if ( !refresh_only )
|
||||
Common.localStorage.setItem('ui-theme-id', id);
|
||||
Common.NotificationCenter.trigger('uitheme:changed', id);
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -36,7 +36,8 @@
|
|||
return _MAP[x] || x.toUpperCase().charCodeAt(0);
|
||||
},
|
||||
_downKeys = [];
|
||||
var locked;
|
||||
var locked,
|
||||
propagate;
|
||||
|
||||
for(k=1;k<20;k++) _MAP['f'+k] = 111+k;
|
||||
|
||||
|
|
@ -71,6 +72,14 @@
|
|||
var key, handler, k, i, modifiersMatch, scope;
|
||||
key = event.keyCode;
|
||||
|
||||
if (Common.UI.HintManager && Common.UI.HintManager.isHintVisible()) {
|
||||
if (key === 112) {
|
||||
Common.UI.HintManager.clearHints();
|
||||
} else if (key !== 27) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (index(_downKeys, key) == -1) {
|
||||
_downKeys.push(key);
|
||||
}
|
||||
|
|
@ -108,6 +117,8 @@
|
|||
// call the handler and stop the event if neccessary
|
||||
if((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch){
|
||||
if(locked===true || handler.locked || handler.method(event, handler)===false){
|
||||
if (locked===true && propagate || handler.locked && handler.propagate)
|
||||
continue;
|
||||
if(event.preventDefault) event.preventDefault();
|
||||
else event.returnValue = false;
|
||||
if(event.stopPropagation) event.stopPropagation();
|
||||
|
|
@ -180,8 +191,8 @@
|
|||
|
||||
if (keys.length > 1) {
|
||||
mods = getMods(keys);
|
||||
key = keys[keys.length - 1];
|
||||
}
|
||||
(keys.length > 0) && (key = keys[keys.length - 1]);
|
||||
|
||||
key = code(key);
|
||||
|
||||
|
|
@ -293,8 +304,8 @@
|
|||
|
||||
if (keys.length > 1) {
|
||||
mods = getMods(keys);
|
||||
key = keys[keys.length - 1];
|
||||
}
|
||||
(keys.length > 0) && (key = keys[keys.length - 1]);
|
||||
|
||||
key = code(key);
|
||||
|
||||
|
|
@ -312,12 +323,23 @@
|
|||
}
|
||||
}
|
||||
|
||||
function suspend(key, scope) {
|
||||
key ? setKeyOptions(key, scope, 'locked', true) : (locked = true);
|
||||
function suspend(key, scope, pass) {
|
||||
if (key) {
|
||||
setKeyOptions(key, scope, 'locked', true)
|
||||
pass && setKeyOptions(key, scope, 'propagate', true)
|
||||
} else {
|
||||
locked = true;
|
||||
pass && (propagate = true);
|
||||
}
|
||||
}
|
||||
|
||||
function resume(key, scope) {
|
||||
key ? setKeyOptions(key, scope, 'locked', false) : (locked = false);
|
||||
function resume(key, scope) {
|
||||
if (key) {
|
||||
setKeyOptions(key, scope, 'locked', false)
|
||||
setKeyOptions(key, scope, 'propagate', false)
|
||||
} else {
|
||||
locked = propagate = false;
|
||||
}
|
||||
}
|
||||
|
||||
// set window.key and window.key.set/get/deleteScope, and the default filter
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ function onDropDownKeyDown(e) {
|
|||
}
|
||||
}
|
||||
} else if ($this.hasClass('move-focus')) {
|
||||
if (!(/^(27|13|9|32)/.test(e.keyCode) && !e.ctrlKey && !e.altKey)) {
|
||||
if (!((/^(13|9|32)/.test(e.keyCode) || e.keyCode===27 && !$parent.hasClass('open')) && !e.ctrlKey && !e.altKey)) {
|
||||
patchDropDownKeyDown.call(this, e);
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
|
@ -128,8 +128,9 @@ function patchDropDownKeyDown(e) {
|
|||
var mnu = $('> [role=menu]', li),
|
||||
$subitems = mnu.find('> li:not(.divider):not(.disabled):visible > a'),
|
||||
$dataviews = mnu.find('> li:not(.divider):not(.disabled):visible .dataview'),
|
||||
$palette = mnu.find('> li:not(.divider):not(.disabled):visible .theme-colorpalette.focused'),
|
||||
$internal_menu = mnu.find('> li:not(.divider):not(.disabled):visible ul.internal-menu');
|
||||
if ($subitems.length>0 && $dataviews.length<1 && $internal_menu.length<1)
|
||||
if ($subitems.length>0 && $dataviews.length<1 && $internal_menu.length<1 && $palette.length<1)
|
||||
($subitems.index($subitems.filter(':focus'))<0) && $subitems.eq(0).focus();
|
||||
}, 250);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,6 +56,8 @@ define([
|
|||
guid : '',
|
||||
userid : 0,
|
||||
username : 'Guest',
|
||||
parsedName : 'Guest',
|
||||
parsedGroups : undefined,
|
||||
usercolor : null,
|
||||
date : undefined,
|
||||
quote : '',
|
||||
|
|
@ -65,6 +67,7 @@ define([
|
|||
lockuserid : '',
|
||||
unattached : false,
|
||||
userdata : '',
|
||||
position : -1,
|
||||
|
||||
id : Common.UI.getId(), // internal
|
||||
time : 0,
|
||||
|
|
@ -77,6 +80,7 @@ define([
|
|||
hideAddReply : false,
|
||||
scope : null,
|
||||
hide : false,
|
||||
filtered : false,
|
||||
hint : false,
|
||||
dummy : undefined,
|
||||
editable : true,
|
||||
|
|
@ -88,6 +92,7 @@ define([
|
|||
time : 0, // acs
|
||||
userid : 0,
|
||||
username : 'Guest',
|
||||
parsedName : 'Guest',
|
||||
usercolor : null,
|
||||
reply : '',
|
||||
date : undefined,
|
||||
|
|
|
|||
|
|
@ -62,7 +62,8 @@ define([
|
|||
color : '#fff',
|
||||
colorval : null,
|
||||
online : false,
|
||||
view : false
|
||||
view : false,
|
||||
hidden : false
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -210,6 +210,7 @@
|
|||
currentPageX;
|
||||
|
||||
$scrollbarX.bind('mousedown' + eventClassName, function (e) {
|
||||
Common.NotificationCenter.trigger('hints:clear');
|
||||
currentPageX = e.pageX;
|
||||
currentLeft = $scrollbarX.position().left;
|
||||
$scrollbarXRail.addClass('in-scrolling');
|
||||
|
|
@ -240,6 +241,7 @@
|
|||
currentPageY;
|
||||
|
||||
$scrollbarY.bind('mousedown' + eventClassName, function (e) {
|
||||
Common.NotificationCenter.trigger('hints:clear');
|
||||
currentPageY = e.pageY;
|
||||
currentTop = $scrollbarY.position().top;
|
||||
$scrollbarYRail.addClass('in-scrolling');
|
||||
|
|
@ -316,6 +318,7 @@
|
|||
|
||||
var shouldPrevent = false;
|
||||
$this.bind('mousewheel' + eventClassName, function (e, deprecatedDelta, deprecatedDeltaX, deprecatedDeltaY) {
|
||||
Common.NotificationCenter.trigger('hints:clear');
|
||||
var deltaX = e.deltaX * e.deltaFactor || deprecatedDeltaX,
|
||||
deltaY = e.deltaY * e.deltaFactor || deprecatedDeltaY;
|
||||
|
||||
|
|
|
|||
|
|
@ -66,16 +66,18 @@
|
|||
<div class="padding-small">
|
||||
<label class="header"><%= scope.textReplaceText %></label>
|
||||
</div>
|
||||
<div class="padding-large">
|
||||
<div class="padding-small">
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-quotes"></div>
|
||||
<div id="id-autocorrect-dialog-chk-hyphens"></div>
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-hyphens"></div>
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-hyperlink"></div>
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-double-space"></div>
|
||||
</div>
|
||||
<div class="padding-small">
|
||||
<label class="header"><%= scope.textApplyText %></label>
|
||||
</div>
|
||||
<div class="padding-large">
|
||||
<div class="padding-small">
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-bulleted"></div>
|
||||
<div id="id-autocorrect-dialog-chk-numbered"></div>
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-numbered"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -84,21 +86,24 @@
|
|||
<div class="padding-small">
|
||||
<label class="header"><%= scope.textReplaceText %></label>
|
||||
</div>
|
||||
<div class="padding-large">
|
||||
<div id="id-autocorrect-dialog-chk-hyperlink"></div>
|
||||
<div class="padding-small">
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-hyperlink"></div>
|
||||
</div>
|
||||
<div class="padding-small">
|
||||
<label class="header"><%= scope.textApplyAsWork %></label>
|
||||
</div>
|
||||
<div class="padding-large">
|
||||
<div id="id-autocorrect-dialog-chk-new-rows"></div>
|
||||
<div class="padding-small">
|
||||
<div class="padding-small" id="id-autocorrect-dialog-chk-new-rows"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="id-autocorrect-dialog-settings-autocorrect" class="settings-panel">
|
||||
<div class="inner-content" style="width: 100%;">
|
||||
<div class="padding-large">
|
||||
<div class="padding-small">
|
||||
<div id="id-autocorrect-dialog-chk-fl-sentence"></div>
|
||||
</div>
|
||||
<div class="padding-small">
|
||||
<div id="id-autocorrect-dialog-chk-fl-cells"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@
|
|||
</div>
|
||||
<div id="chat-options" class="layout-item">
|
||||
<div id="chat-options-ct">
|
||||
<textarea id="chat-msg-text" class="user-select textarea-control" maxlength="<%=maxMsgLength%>"></textarea>
|
||||
<button id="chat-msg-btn-add" class="btn normal dlg-btn primary"><%=scope.textSend%></button>
|
||||
<textarea id="chat-msg-text" class="user-select textarea-control" maxlength="<%=maxMsgLength%>" data-hint="1" data-hint-direction="left-top"></textarea>
|
||||
<button id="chat-msg-btn-add" class="btn normal dlg-btn primary" data-hint="1" data-hint-direction="bottom" data-hint-offset="big"><%=scope.textSend%></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
<% if (!hide) { %>
|
||||
<% if (!hide && !filtered) { %>
|
||||
<div id="<%= id %>" class="user-comment-item">
|
||||
|
||||
<!-- comment block -->
|
||||
|
||||
<div class="user-name">
|
||||
<div class="color" style="display: inline-block; background-color: <% if (usercolor!==null) { %><%=usercolor%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getUserName(username) %>
|
||||
<div class="color" style="display: inline-block; background-color: <% if (usercolor!==null) { %><%=usercolor%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getEncodedName(parsedName) %>
|
||||
</div>
|
||||
<div class="user-date"><%=date%></div>
|
||||
<% if (quote!==null && quote!=='') { %>
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
<% } %>
|
||||
<div class="reply-item-ct" <% if (scope.viewmode && index==replys.length-1) { %>style="padding-bottom: 0;" <% } %>;>
|
||||
<div class="user-name">
|
||||
<div class="color" style="display: inline-block; background-color: <% if (item.get("usercolor")!==null) { %><%=item.get("usercolor")%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getUserName(item.get("username")) %>
|
||||
<div class="color" style="display: inline-block; background-color: <% if (item.get("usercolor")!==null) { %><%=item.get("usercolor")%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getEncodedName(item.get("parsedName")) %>
|
||||
</div>
|
||||
<div class="user-date"><%=item.get("date")%></div>
|
||||
<% if (!item.get("editText")) { %>
|
||||
|
|
@ -70,16 +70,20 @@
|
|||
|
||||
<!-- edit buttons -->
|
||||
|
||||
<% if (!editText && !lock && !scope.viewmode) { %>
|
||||
<% if (!editText && !lock) { %>
|
||||
<div class="edit-ct">
|
||||
<% if (editable) { %>
|
||||
<div class="btn-edit img-commonctrl"></div>
|
||||
<% if (!scope.viewmode) { %>
|
||||
<% if (editable) { %>
|
||||
<div class="btn-edit img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% if (removable) { %>
|
||||
<div class="btn-delete img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% } %>
|
||||
<% if (removable) { %>
|
||||
<div class="btn-delete img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% if (editable) { %>
|
||||
<div class="btn-resolve <% if (resolved) print('comment-resolved') %>" data-toggle="tooltip"></div>
|
||||
<% if (editable && !scope.viewmode) { %>
|
||||
<div class="btn-resolve <% if (resolved) print('comment-resolved') %>" data-toggle="tooltip"></div>
|
||||
<% } else if ((!editable || scope.viewmode) && resolved) { %>
|
||||
<div class="icon-resolve i-comment-resolved" data-toggle="tooltip"></div>
|
||||
<% } %>
|
||||
</div>
|
||||
<% } %>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,18 @@
|
|||
<div id="comments-box" class="layout-ct vbox">
|
||||
<div class="layout-item messages-ct"></div>
|
||||
<div class="layout-item add-link-ct">
|
||||
<label class="btn new"><%=textAddCommentToDoc%></label>
|
||||
<label id="add-comment-doc" class="btn new" data-hint="1" data-hint-direction="bottom" data-hint-offset="medium"><%=textAddCommentToDoc%></label>
|
||||
</div>
|
||||
<div style="display: none;" class="layout-item new-comment-ct">
|
||||
<div class="inner-ct">
|
||||
<textarea id="comment-msg-new" class="user-select textarea-control" placeholder="<%=textEnterCommentHint%>" maxlength="<%=maxCommLength%>"></textarea>
|
||||
<textarea id="comment-msg-new" class="user-select textarea-control" placeholder="<%=textEnterCommentHint%>" maxlength="<%=maxCommLength%>" data-hint="1" data-hint-direction="left-top"></textarea>
|
||||
</div>
|
||||
<button class="btn add normal dlg-btn primary"><%=textAddComment%></button>
|
||||
<button class="btn cancel normal dlg-btn"><%=textCancel%></button>
|
||||
<button class="btn add normal dlg-btn primary" data-hint="1" data-hint-direction="bottom" data-hint-offset="big" style="width: auto;min-width: 86px;"><%=textAddComment%></button>
|
||||
<button class="btn cancel normal dlg-btn" data-hint="1" data-hint-direction="bottom" data-hint-offset="big" style="width: auto;min-width: 86px;"><%=textCancel%></button>
|
||||
</div>
|
||||
<div id="comments-header" class="">
|
||||
<label><%=textComments%></label>
|
||||
<div id="comments-btn-close" style="float:right;margin-left: 4px;"></div>
|
||||
<div id="comments-btn-sort" style="float:right;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -4,10 +4,10 @@
|
|||
<!-- comment block -->
|
||||
|
||||
<div class="user-name">
|
||||
<div class="color" style="display: inline-block; background-color: <% if (usercolor!==null) { %><%=usercolor%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getUserName(username) %>
|
||||
<div class="color" style="display: inline-block; background-color: <% if (usercolor!==null) { %><%=usercolor%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getEncodedName(parsedName) %>
|
||||
</div>
|
||||
<div class="user-date"><%=date%></div>
|
||||
<% if (!editTextInPopover || hint) { %>
|
||||
<% if (!editTextInPopover || hint || scope.viewmode) { %>
|
||||
<div oo_editor_input="true" tabindex="-1" class="user-message user-select"><%=scope.pickLink(comment)%></div>
|
||||
<% } else { %>
|
||||
<div class="inner-edit-ct">
|
||||
|
|
@ -32,12 +32,12 @@
|
|||
<% } %>
|
||||
<div class="reply-item-ct">
|
||||
<div class="user-name">
|
||||
<div class="color" style="display: inline-block; background-color: <% if (item.get("usercolor")!==null) { %><%=item.get("usercolor")%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getUserName(item.get("username")) %>
|
||||
<div class="color" style="display: inline-block; background-color: <% if (item.get("usercolor")!==null) { %><%=item.get("usercolor")%><% } else { %> #cfcfcf <% } %>; " ></div><%= scope.getEncodedName(item.get("parsedName")) %>
|
||||
</div>
|
||||
<div class="user-date"><%=item.get("date")%></div>
|
||||
<% if (!item.get("editTextInPopover")) { %>
|
||||
<div oo_editor_input="true" tabindex="-1" class="user-message user-select"><%=scope.pickLink(item.get("reply"))%></div>
|
||||
<% if (!hint) { %>
|
||||
<% if (!hint && !scope.viewmode) { %>
|
||||
<div class="btns-reply-ct">
|
||||
<% if (item.get("editable")) { %>
|
||||
<div class="btn-edit img-commonctrl" data-value="<%=item.get("id")%>"></div>
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
|
||||
<!-- add reply button -->
|
||||
|
||||
<% if (!showReplyInPopover && !hideAddReply && !hint) { %>
|
||||
<% if (!showReplyInPopover && !hideAddReply && !hint && !scope.viewmode) { %>
|
||||
<% if (replys.length && !add_arrow) { %>
|
||||
<label class="user-reply" style="margin-left: 20px; margin-top: 5px;" role="presentation" tabindex="-1">textAddReply</label>
|
||||
<% } else { %>
|
||||
|
|
@ -71,16 +71,20 @@
|
|||
|
||||
<!-- edit buttons -->
|
||||
|
||||
<% if (!editTextInPopover && !lock && !hint) { %>
|
||||
<% if (!editTextInPopover && !lock) { %>
|
||||
<div class="edit-ct">
|
||||
<% if (editable) { %>
|
||||
<div class="btn-edit img-commonctrl"></div>
|
||||
<% if (!hint && !scope.viewmode) { %>
|
||||
<% if (editable) { %>
|
||||
<div class="btn-edit img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% if (removable) { %>
|
||||
<div class="btn-delete img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% } %>
|
||||
<% if (removable) { %>
|
||||
<div class="btn-delete img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% if (editable) { %>
|
||||
<div class="btn-resolve <% if (resolved) print('comment-resolved') %>" data-toggle="tooltip"></div>
|
||||
<% if (editable && !hint && !scope.viewmode) { %>
|
||||
<div class="btn-resolve <% if (resolved) print('comment-resolved') %>" data-toggle="tooltip"></div>
|
||||
<% } else if (!hint && (!editable || scope.viewmode) && resolved) { %>
|
||||
<div class="icon-resolve i-comment-resolved" data-toggle="tooltip"></div>
|
||||
<% } %>
|
||||
</div>
|
||||
<% } %>
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@
|
|||
<div class="btn-delete img-commonctrl"></div>
|
||||
<% } %>
|
||||
<% } else if (editable) { %>
|
||||
<div class="btn-accept img-commonctrl"></div>
|
||||
<div class="btn-reject img-commonctrl"></div>
|
||||
<div class="btn-accept"></div>
|
||||
<div class="btn-reject tool "></div>
|
||||
<% } %>
|
||||
<% } %>
|
||||
</div>
|
||||
|
|
|
|||
63
apps/common/main/lib/template/SearchPanel.template
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
<div id="search-box" class="layout-ct vbox search-panel">
|
||||
<div id="search-header">
|
||||
<label id="search-adv-title"></label>
|
||||
<div id="search-btn-close"></div>
|
||||
</div>
|
||||
<div id="search-adv-settings">
|
||||
<table cols="1">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="padding-small"><div id="search-adv-text"></div></td>
|
||||
</tr>
|
||||
<tr class="edit-setting">
|
||||
<td class="padding-large"><div id="search-adv-replace-text"></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-large">
|
||||
<label id="search-adv-results-number" style="display: inline-block;">
|
||||
<%= scope.textSearchResults %>
|
||||
</label>
|
||||
<div class="search-nav-btns">
|
||||
<div id="search-adv-back"></div>
|
||||
<div id="search-adv-next"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="edit-setting">
|
||||
<td class="padding-large">
|
||||
<button type="button" class="btn btn-text-default" id="search-adv-replace" data-hint="1" data-hint-direction="bottom" data-hint-offset="big"><%= scope.textReplace %></button>
|
||||
<button type="button" class="btn btn-text-default" id="search-adv-replace-all" data-hint="1" data-hint-direction="bottom" data-hint-offset="big"><%= scope.textReplaceAll %></button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="search-options-block">
|
||||
<td class="padding-large">
|
||||
<div id="open-search-options" data-hint="1" data-hint-direction="left" data-hint-offset="0, -15">
|
||||
<div class="search-options-caret img-commonctrl"></div>
|
||||
<div class="search-options-txt"><%= scope.textSearchOptions %></div>
|
||||
</div>
|
||||
<div id="search-options">
|
||||
<label class="input-label"><%= scope.textWithin %></label>
|
||||
<div id="search-adv-cmb-within"></div>
|
||||
<div id="search-adv-select-range"></div>
|
||||
<label class="input-label"><%= scope.textSearch %></label>
|
||||
<div id="search-adv-cmb-search"></div>
|
||||
<label class="input-label"><%= scope.textLookIn %></label>
|
||||
<div id="search-adv-cmb-look-in"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding-small"><div id="search-adv-case-sensitive"></div></td>
|
||||
</tr>
|
||||
<!---<tr>
|
||||
<td class="padding-small"><div id="search-adv-use-regexp"></div></td>
|
||||
</tr>-->
|
||||
<tr>
|
||||
<td class="padding-large"><div id="search-adv-match-word"></div></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div id="search-results" class="ps-container oo">
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -52,13 +52,13 @@ define(['gateway'], function () {
|
|||
Common.Gateway.on('internalcommand', ongetstore);
|
||||
|
||||
var _refresh = function() {
|
||||
if (!_lsAllowed)
|
||||
Common.Gateway.internalMessage('localstorage', {cmd:'get', keys:_filter});
|
||||
// if (!_lsAllowed)
|
||||
// Common.Gateway.internalMessage('localstorage', {cmd:'get', keys:_filter});
|
||||
};
|
||||
|
||||
var _save = function() {
|
||||
if (!_lsAllowed)
|
||||
Common.Gateway.internalMessage('localstorage', {cmd:'set', keys:_store});
|
||||
// if (!_lsAllowed)
|
||||
// Common.Gateway.internalMessage('localstorage', {cmd:'set', keys:_store});
|
||||
};
|
||||
|
||||
var _setItem = function(name, value, just) {
|
||||
|
|
@ -72,14 +72,15 @@ define(['gateway'], function () {
|
|||
} else {
|
||||
_store[name] = value;
|
||||
|
||||
if (just===true) {
|
||||
Common.Gateway.internalMessage('localstorage', {
|
||||
cmd:'set',
|
||||
keys: {
|
||||
name: value
|
||||
}
|
||||
});
|
||||
}
|
||||
// if (just===true) {
|
||||
// TDDO: remove after ver 7.2. using external local storage is depricated
|
||||
// Common.Gateway.internalMessage('localstorage', {
|
||||
// cmd:'set',
|
||||
// keys: {
|
||||
// name: value
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -148,8 +148,8 @@ Common.util = Common.util||{};
|
|||
}
|
||||
},
|
||||
|
||||
suspendEvents: function(key,scope) {
|
||||
window.key.suspend(key,scope);
|
||||
suspendEvents: function(key,scope,propagate) {
|
||||
window.key.suspend(key,scope,propagate);
|
||||
},
|
||||
|
||||
resumeEvents: function(key,scope) {
|
||||
|
|
|
|||
|
|
@ -109,13 +109,16 @@
|
|||
|
||||
var me = this;
|
||||
Common.NotificationCenter.on({'layout:changed': function(e){
|
||||
if (!me.options.hideonclick && me.tip().is(':visible'))
|
||||
if (!me.options.keepvisible && !me.options.hideonclick && me.tip().is(':visible'))
|
||||
me.hide();
|
||||
}});
|
||||
this.isDesktopApp = Common.Controllers.Desktop.isActive();
|
||||
},
|
||||
|
||||
mousemove: function (e) {
|
||||
this.targetXY = [e.clientX*Common.Utils.zoom(), e.clientY*Common.Utils.zoom()];
|
||||
var x = e.clientX*Common.Utils.zoom(),
|
||||
y = e.clientY*Common.Utils.zoom();
|
||||
this.targetXY = [x, this.isDesktopApp ? Math.max(y, 14) : y];
|
||||
},
|
||||
|
||||
leave: function(obj) {
|
||||
|
|
|
|||
|
|
@ -597,4 +597,776 @@ define(function(){ 'use strict';
|
|||
textValue: 'Value is'
|
||||
}
|
||||
})(), Common.define.conditionalData || {});
|
||||
});
|
||||
|
||||
Common.define.effectData = _.extend(new (function () {
|
||||
return {
|
||||
textEntrance: 'Entrance Effect',
|
||||
textEmphasis: 'Emphasis Effect',
|
||||
textExit: 'Exit Effect',
|
||||
textPath: 'Motion Path',
|
||||
textAppear: 'Appear',
|
||||
textFade: 'Fade',
|
||||
textFlyIn: 'Fly in',
|
||||
textFloatIn: 'Float In',
|
||||
textSplit: 'Split',
|
||||
textWipe: 'Wipe',
|
||||
textShape: 'Shape',
|
||||
textWheel: 'Wheel',
|
||||
textRandomBars: 'Random Bars ',
|
||||
textGrowTurn: 'Grow & Turn',
|
||||
textZoom: 'Zoom',
|
||||
textSwivel: 'Swivel',
|
||||
textBounce: 'Bounce',
|
||||
textPulse: 'Pulse',
|
||||
textColorPulse: 'Color Pulse',
|
||||
textTeeter: 'Teeter',
|
||||
textSpin: 'Spin',
|
||||
textGrowShrink: 'Grow/Shrink',
|
||||
textShrinkTurn: 'Shrink & Turn',
|
||||
textDesaturate: 'Desaturate',
|
||||
textDarken: 'Darken',
|
||||
textLighten: 'Lighten',
|
||||
textTransparency: 'Transparency',
|
||||
textObjectColor: 'Object Color',
|
||||
textComplementaryColor: 'Complementary Color',
|
||||
textComplementaryColor2: 'Complementary Color 2',
|
||||
textLineColor: 'Line Color',
|
||||
textFillColor: 'Fill Color',
|
||||
textBrushColor: 'Brush Color',
|
||||
textFontColor: 'Font Color',
|
||||
textUnderline: 'Underline',
|
||||
textBoldFlash: 'Bold Flash',
|
||||
textBoldReveal: 'Bold Reveal',
|
||||
textWave: 'Wave',
|
||||
textDisappear: 'Disappear',
|
||||
textFlyOut: 'Fly Out',
|
||||
textFloatOut: 'Float Out',
|
||||
textBasic: 'Basic',
|
||||
textSubtle: 'Subtle',
|
||||
textModerate: 'Moderate',
|
||||
textExciting: 'Exciting',
|
||||
textLinesCurves: 'Lines Curves',
|
||||
textSpecial: 'Special',
|
||||
textBox: 'Box',
|
||||
textCircle: 'Circle',
|
||||
textPlus: 'Plus',
|
||||
textDiamond: 'Diamond',
|
||||
textDissolveIn: 'Dissolve In',
|
||||
textBlinds: 'Blinds',
|
||||
textCheckerboard: 'Checkerboard',
|
||||
textPeekIn: 'Peek In',
|
||||
textStrips: 'Strips',
|
||||
textExpand: 'Expand',
|
||||
textBasicZoom: 'Basic Zoom',
|
||||
textCompress: 'Compress',
|
||||
textFloatUp: 'Float Up',
|
||||
textRiseUp: 'Rise Up',
|
||||
textStretch: 'Stretch',
|
||||
textCenterRevolve: 'Center Revolve',
|
||||
textFloatDown: 'Float Down',
|
||||
textSpinner: 'Spinner',
|
||||
textBasicSwivel: 'Basic Swivel',
|
||||
textBoomerang: 'Boomerang',
|
||||
textCredits: 'Credits',
|
||||
textCuverUp: 'Cuver Up',
|
||||
textDrop: 'Drop',
|
||||
textFloat: 'Float',
|
||||
textPinwheel: 'Pinwheel',
|
||||
textSpiralIn: 'Spiral In',
|
||||
textWhip: 'Whip',
|
||||
textGrowWithColor: 'Grow With Color',
|
||||
textShimmer: 'Shimmer',
|
||||
textBlink: 'Blink',
|
||||
textDissolveOut: 'Dissolve Out',
|
||||
textPeekOut: 'Peek Out',
|
||||
textContrast: 'Contrast',
|
||||
textCollapse: 'Collapse',
|
||||
textSinkDown: 'Sink Down',
|
||||
textCurveDown: 'CurveDown',
|
||||
textSpiralOut: 'Spiral Out',
|
||||
textContrastingColor: 'Contrasting Color',
|
||||
textPointStar4: '4 Point Star',
|
||||
textPointStar5: '5 Point Star',
|
||||
textPointStar6: '6 Point Star',
|
||||
textPointStar8: '8 Point Star',
|
||||
textCrescentMoon: 'Crescent Moon',
|
||||
textEqualTriangle: 'Equal Triangle',
|
||||
textFootball: 'Football',
|
||||
textHeart: 'Heart',
|
||||
textHexagon: 'Hexagon',
|
||||
textOctagon: 'Octagon',
|
||||
textParallelogram: 'Parallelogram',
|
||||
textPentagon: 'Pentagon',
|
||||
textSquare: 'Square',
|
||||
textTeardrop: 'Teardrop',
|
||||
textTrapezoid: 'Trapezoid',
|
||||
textArcDown: 'Arc Down',
|
||||
textArcLeft: 'Arc Left',
|
||||
textArcRight: 'Arc Right',
|
||||
textArcUp: 'Arc Up',
|
||||
textBounceLeft: 'Bounce Left',
|
||||
textBounceRight: 'Bounce Right',
|
||||
textCurvyLeft: 'Curvy Left',
|
||||
textCurvyRight: 'Curvy Right',
|
||||
textDecayingWave: 'Decaying Wave',
|
||||
textDiagonalDownRight: 'Diagonal Down Right',
|
||||
textDiagonalUpRight: 'Diagonal Up Right',
|
||||
textDown: 'Down',
|
||||
textFunnel: 'Funnel',
|
||||
textHeartbeat: 'Heartbeat',
|
||||
textLeft: 'Left',
|
||||
textRight: 'Right',
|
||||
textSCurve1: 'S Curve 1',
|
||||
textSCurve2: 'S Curve 2',
|
||||
textSineWave: 'Sine Wave',
|
||||
textSpiralLeft: 'Spiral Left',
|
||||
textSpiralRight: 'Spiral Right',
|
||||
textSpring: 'Spring:',
|
||||
textStairsDown: 'Stairs Down',
|
||||
textTurnDown: 'Turn Down',
|
||||
textTurnDownRight: 'Turn Down Right',
|
||||
textTurnUp: 'Turn Up',
|
||||
textTurnUpRight: 'Turn Up Right',
|
||||
textUp: 'Up',
|
||||
textZigzag: 'Zigzag',
|
||||
textBean: 'Bean',
|
||||
textCurvedSquare: 'CurvedSquare',
|
||||
textCurvedX: 'Curved X',
|
||||
textCurvyStar: 'Curvy Star',
|
||||
textFigureFour: 'Figure 8 Four',
|
||||
textHorizontalFigure: 'Horizontal Figure 8',
|
||||
textInvertedSquare: 'Inverted Square',
|
||||
textInvertedTriangle: 'Inverted Triangle',
|
||||
textLoopDeLoop: 'Loop de Loop',
|
||||
textNeutron: 'Neutron',
|
||||
textPeanut: 'Peanut',
|
||||
textPointStar: 'Point Star',
|
||||
textSwoosh: 'Swoosh',
|
||||
textVerticalFigure: 'Vertical Figure 8',
|
||||
textRightTriangle: 'Right Triangle',
|
||||
textAcross: 'Across',
|
||||
textFromBottom: 'From Bottom',
|
||||
textFromBottomLeft: 'From Bottom-Left',
|
||||
textFromLeft: 'From Left',
|
||||
textFromTopLeft: 'From Top-Left',
|
||||
textFromTop: 'From Top',
|
||||
textFromTopRight: 'From Top-Right',
|
||||
textFromRight: 'From Right',
|
||||
textFromBottomRight: 'From Bottom-Right',
|
||||
textLeftDown: ' Left Down',
|
||||
textLeftUp: ' Left Up',
|
||||
textRightDown: ' Right Down',
|
||||
textRightUp: ' Right Up',
|
||||
textObjectCenter: 'Object Center',
|
||||
textSlideCenter: 'Slide Center',
|
||||
textInFromScreenCenter: 'In From Screen Center',
|
||||
textOutFromScreenBottom: 'Out From Screen Bottom',
|
||||
textInSlightly: 'In Slightly',
|
||||
textInToScreenBottom: 'In To Screen Bottom',
|
||||
textOutToScreenCenter: 'Out To Screen Center',
|
||||
textOutSlightly: 'Out Slightly',
|
||||
textToBottom: 'To Bottom',
|
||||
textToBottomLeft: 'To Bottom-Left',
|
||||
textToLeft: 'To Left',
|
||||
textToTopLeft: 'To Top-Left',
|
||||
textToTop: 'To Top',
|
||||
textToTopRight: 'To Top-Right',
|
||||
textToRight: 'To Right',
|
||||
textToBottomRight: 'To Bottom-Right',
|
||||
textSpoke1: '1 Spoke',
|
||||
textSpoke2: '2 Spokes',
|
||||
textSpoke3: '3 Spokes',
|
||||
textSpoke4: '4 Spokes',
|
||||
textSpoke8: '8 Spokes',
|
||||
textCustomPath: 'Custom Path',
|
||||
textHorizontalIn: 'Horizontal In',
|
||||
textHorizontalOut: 'Horizontal Out',
|
||||
textVerticalIn: 'Vertical In',
|
||||
textVerticalOut: 'Vertical Out',
|
||||
textVertical: 'Vertical',
|
||||
textHorizontal: 'Horizontal',
|
||||
textIn: 'In',
|
||||
textOut: 'Out',
|
||||
textWedge: 'Wedge',
|
||||
textFlip: 'Flip',
|
||||
textLines: 'Lines',
|
||||
textArcs: 'Arcs',
|
||||
textTurns: 'Turns',
|
||||
textShapes: 'Shapes',
|
||||
textLoops: 'Loops',
|
||||
textPathCurve: 'Curve',
|
||||
textPathLine: 'Line',
|
||||
textPathScribble: 'Scribble',
|
||||
|
||||
getEffectGroupData: function () {
|
||||
return [
|
||||
{id: 'menu-effect-group-entrance', value: AscFormat.PRESET_CLASS_ENTR, caption: this.textEntrance, iconClsCustom: 'animation-entrance-custom'},
|
||||
{id: 'menu-effect-group-emphasis', value: AscFormat.PRESET_CLASS_EMPH, caption: this.textEmphasis, iconClsCustom: 'animation-emphasis-custom'},
|
||||
{id: 'menu-effect-group-exit', value: AscFormat.PRESET_CLASS_EXIT, caption: this.textExit, iconClsCustom: 'animation-exit-custom'},
|
||||
{id: 'menu-effect-group-path', value: AscFormat.PRESET_CLASS_PATH, caption: this.textPath, iconClsCustom: 'animation-motion-paths-custom'}
|
||||
];
|
||||
},
|
||||
|
||||
getEffectData: function () {
|
||||
return [
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_APPEAR, iconCls: 'animation-entrance-appear', displayValue: this.textAppear},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_FADE, iconCls: 'animation-entrance-fade', displayValue: this.textFade},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_FLY_IN_FROM, iconCls: 'animation-entrance-fly-in', displayValue: this.textFlyIn},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_FLOAT_UP, iconCls: 'animation-entrance-float-in', displayValue: this.textFloatIn, familyEffect: 'entrfloat'},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_SPLIT, iconCls: 'animation-entrance-split', displayValue: this.textSplit},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_WIPE_FROM, iconCls: 'animation-entrance-wipe', displayValue: this.textWipe},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_CIRCLE, iconCls: 'animation-entrance-shape', displayValue: this.textShape, familyEffect: 'entrshape'},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_WHEEL, iconCls: 'animation-entrance-wheel', displayValue: this.textWheel},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_RANDOM_BARS, iconCls: 'animation-entrance-random-bars', displayValue: this.textRandomBars},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_GROW_AND_TURN, iconCls: 'animation-entrance-grow-turn', displayValue: this.textGrowTurn},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_ZOOM, iconCls: 'animation-entrance-zoom', displayValue: this.textZoom},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_SWIVEL, iconCls: 'animation-entrance-swivel', displayValue: this.textSwivel},
|
||||
{group: 'menu-effect-group-entrance', value: AscFormat.ENTRANCE_BOUNCE, iconCls: 'animation-entrance-bounce', displayValue: this.textBounce},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_PULSE, iconCls: 'animation-emphasis-pulse', displayValue: this.textPulse},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_COLOR_PULSE, iconCls: 'animation-emphasis-color-pulse', displayValue: this.textColorPulse},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_TEETER, iconCls: 'animation-emphasis-teeter', displayValue: this.textTeeter},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_SPIN, iconCls: 'animation-emphasis-spin', displayValue: this.textSpin},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_GROW_SHRINK, iconCls: 'animation-emphasis-grow-or-shrink', displayValue: this.textGrowShrink},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_DESATURATE, iconCls: 'animation-emphasis-desaturate', displayValue: this.textDesaturate},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_CONTRASTING_DARKEN, iconCls: 'animation-emphasis-darken', displayValue: this.textDarken},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_LIGHTEN, iconCls: 'animation-emphasis-lighten', displayValue: this.textLighten},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_TRANSPARENCY, iconCls: 'animation-emphasis-transparency', displayValue: this.textTransparency},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_OBJECT_COLOR, iconCls: 'animation-emphasis-object-color', displayValue: this.textObjectColor},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_COMPLEMENTARY_COLOR, iconCls: 'animation-emphasis-complementary-color', displayValue: this.textComplementaryColor},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_LINE_COLOR, iconCls: 'animation-emphasis-line-color', displayValue: this.textLineColor},
|
||||
{group: 'menu-effect-group-emphasis', value: AscFormat.EMPHASIS_FILL_COLOR, iconCls: 'animation-emphasis-fill-color', displayValue: this.textFillColor},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_DISAPPEAR, iconCls: 'animation-exit-disappear', displayValue: this.textDisappear},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_FADE, iconCls: 'animation-exit-fade', displayValue: this.textFade},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_FLY_OUT_TO, iconCls: 'animation-exit-fly-out', displayValue: this.textFlyOut},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_FLOAT_DOWN, iconCls: 'animation-exit-float-out', displayValue: this.textFloatOut, familyEffect: 'exitfloat'},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_SPLIT, iconCls: 'animation-exit-split', displayValue: this.textSplit},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_WIPE_FROM, iconCls: 'animation-exit-wipe', displayValue: this.textWipe},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_CIRCLE, iconCls: 'animation-exit-shape', displayValue: this.textShape, familyEffect: 'shape'},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_WHEEL, iconCls: 'animation-exit-wheel', displayValue: this.textWheel},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_RANDOM_BARS, iconCls: 'animation-exit-random-bars', displayValue: this.textRandomBars},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_SHRINK_AND_TURN, iconCls: 'animation-exit-shrink-turn', displayValue: this.textShrinkTurn},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_ZOOM, iconCls: 'animation-exit-zoom', displayValue: this.textZoom},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_SWIVEL, iconCls: 'animation-exit-swivel', displayValue: this.textSwivel},
|
||||
{group: 'menu-effect-group-exit', value: AscFormat.EXIT_BOUNCE, iconCls: 'animation-exit-bounce', displayValue: this.textBounce},
|
||||
{group: 'menu-effect-group-path', value: AscFormat.MOTION_DOWN, iconCls: 'animation-motion-paths-lines', displayValue: this.textLines, familyEffect: 'pathlines'},
|
||||
{group: 'menu-effect-group-path', value: AscFormat.MOTION_ARC_DOWN, iconCls: 'animation-motion-paths-arcs', displayValue: this.textArcs, familyEffect: 'patharcs'},
|
||||
{group: 'menu-effect-group-path', value: AscFormat.MOTION_TURN_DOWN, iconCls: 'animation-motion-paths-turns', displayValue: this.textTurns, familyEffect: 'pathturns'},
|
||||
{group: 'menu-effect-group-path', value: AscFormat.MOTION_CIRCLE, iconCls: 'animation-motion-paths-shapes', displayValue: this.textShapes, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', value: AscFormat.MOTION_HORIZONTAL_FIGURE_8_FOUR, iconCls: 'animation-motion-paths-loops', displayValue: this.textLoops, familyEffect: 'pathloops'},
|
||||
{group: 'menu-effect-group-path', value: AscFormat.MOTION_CUSTOM_PATH, iconCls: 'animation-motion-paths-custom-path', displayValue: this.textCustomPath}
|
||||
];
|
||||
},
|
||||
|
||||
getLevelEffect: function (isPath) {
|
||||
|
||||
if (!isPath)
|
||||
return [
|
||||
{id: 'menu-effect-level-basic', displayValue: this.textBasic},
|
||||
{id: 'menu-effect-level-subtle', displayValue: this.textSubtle},
|
||||
{id: 'menu-effect-level-moderate', displayValue: this.textModerate},
|
||||
{id: 'menu-effect-level-exciting', displayValue: this.textExciting}
|
||||
];
|
||||
else
|
||||
return [
|
||||
{id: 'menu-effect-level-basic', displayValue: this.textBasic},
|
||||
{id: 'menu-effect-level-lines_curves', displayValue: this.textSubtle},
|
||||
{id: 'menu-effect-level-special', displayValue: this.textModerate}
|
||||
];
|
||||
},
|
||||
|
||||
getEffectFullData: function () {
|
||||
return [
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_APPEAR, displayValue: this.textAppear},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_BLINDS, displayValue: this.textBlinds},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_BOX, displayValue: this.textBox, familyEffect: 'entrshape'},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_CHECKERBOARD, displayValue: this.textCheckerboard},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_CIRCLE, displayValue: this.textCircle, familyEffect: 'entrshape'},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_DIAMOND, displayValue: this.textDiamond, familyEffect: 'entrshape'},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_DISSOLVE_IN, displayValue: this.textDissolveIn},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_FLY_IN_FROM, displayValue: this.textFlyIn},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_PEEK_IN_FROM, displayValue: this.textPeekIn},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_PLUS, displayValue: this.textPlus, familyEffect: 'entrshape'},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_RANDOM_BARS, displayValue: this.textRandomBars},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_SPLIT, displayValue: this.textSplit},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_STRIPS, displayValue: this.textStrips},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_WEDGE, displayValue: this.textWedge},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_WHEEL, displayValue: this.textWheel},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-basic', value: AscFormat.ENTRANCE_WIPE_FROM, displayValue: this.textWipe},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-subtle', value: AscFormat.ENTRANCE_EXPAND, displayValue: this.textExpand},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-subtle', value: AscFormat.ENTRANCE_FADE, displayValue: this.textFade},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-subtle', value: AscFormat.ENTRANCE_SWIVEL, displayValue: this.textSwivel},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-subtle', value: AscFormat.ENTRANCE_ZOOM, displayValue: this.textZoom},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_BASIC_ZOOM, displayValue: this.textBasicZoom},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_CENTER_REVOLVE, displayValue: this.textCenterRevolve},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_CENTER_COMPRESS, displayValue: this.textCompress},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_FLOAT_DOWN, displayValue: this.textFloatDown, familyEffect: 'entrfloat'},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_FLOAT_UP, displayValue: this.textFloatUp, familyEffect: 'entrfloat'},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_GROW_AND_TURN, displayValue: this.textGrowTurn},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_RISE_UP, displayValue: this.textRiseUp},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_SPINNER, displayValue: this.textSpinner},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-moderate', value: AscFormat.ENTRANCE_STRETCH, displayValue: this.textStretch},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_BASIC_SWIVEL, displayValue: this.textBasicSwivel},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_BOOMERANG, displayValue: this.textBoomerang},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_BOUNCE, displayValue: this.textBounce},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_CREDITS, displayValue: this.textCredits},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_CURVE_UP, displayValue: this.textCuverUp},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_DROP, displayValue: this.textDrop},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_FLIP, displayValue: this.textFlip},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_FLOAT, displayValue: this.textFloat},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_PINWHEEL, displayValue: this.textPinwheel},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_SPIRAL_IN, displayValue: this.textSpiralIn},
|
||||
{group: 'menu-effect-group-entrance', level: 'menu-effect-level-exciting', value: AscFormat.ENTRANCE_WHIP, displayValue: this.textWhip},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-basic', value: AscFormat.EMPHASIS_FILL_COLOR, displayValue: this.textFillColor},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-basic', value: AscFormat.EMPHASIS_GROW_SHRINK, displayValue: this.textGrowShrink},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-basic', value: AscFormat.EMPHASIS_FONT_COLOR, displayValue: this.textFontColor, notsupported: true},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-basic', value: AscFormat.EMPHASIS_LINE_COLOR, displayValue: this.textLineColor},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-basic', value: AscFormat.EMPHASIS_SPIN, displayValue: this.textSpin},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-basic', value: AscFormat.EMPHASIS_TRANSPARENCY, displayValue: this.textTransparency},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_BOLD_FLASH, displayValue: this.textBoldFlash, notsupported: true},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_COMPLEMENTARY_COLOR, displayValue: this.textComplementaryColor},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_COMPLEMENTARY_COLOR_2, displayValue: this.textComplementaryColor2},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_CONTRASTING_COLOR, displayValue: this.textContrastingColor},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_CONTRASTING_DARKEN, displayValue: this.textDarken},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_DESATURATE, displayValue: this.textDesaturate},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_LIGHTEN, displayValue: this.textLighten},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_OBJECT_COLOR, displayValue: this.textObjectColor},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_PULSE, displayValue: this.textPulse},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_UNDERLINE, displayValue: this.textUnderline, notsupported: true},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-subtle', value: AscFormat.EMPHASIS_BRUSH_COLOR, displayValue: this.textBrushColor, notsupported: true},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-moderate', value: AscFormat.EMPHASIS_COLOR_PULSE, displayValue: this.textColorPulse},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-moderate', value: AscFormat.EMPHASIS_GROW_WITH_COLOR, displayValue: this.textGrowWithColor},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-moderate', value: AscFormat.EMPHASIS_SHIMMER, displayValue: this.textShimmer},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-moderate', value: AscFormat.EMPHASIS_TEETER, displayValue: this.textTeeter},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-exciting', value: AscFormat.EMPHASIS_BLINK, displayValue: this.textBlink},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-exciting', value: AscFormat.EMPHASIS_BOLD_REVEAL, displayValue: this.textBoldReveal, notsupported: true},
|
||||
{group: 'menu-effect-group-emphasis', level: 'menu-effect-level-exciting', value: AscFormat.EMPHASIS_WAVE, displayValue: this.textWave, notsupported: true},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_BLINDS, displayValue: this.textBlinds},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_BOX, displayValue: this.textBox, familyEffect: 'shape'},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_CHECKERBOARD, displayValue: this.textCheckerboard},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_CIRCLE, displayValue: this.textCircle, familyEffect: 'shape'},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_DIAMOND, displayValue: this.textDiamond, familyEffect: 'shape'},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_DISAPPEAR, displayValue: this.textDisappear},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_DISSOLVE_OUT, displayValue: this.textDissolveOut},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_FLY_OUT_TO, displayValue: this.textFlyOut},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_PEEK_OUT_TO, displayValue: this.textPeekOut},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_PLUS, displayValue: this.textPlus, familyEffect: 'shape'},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_RANDOM_BARS, displayValue: this.textRandomBars},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_SPLIT, displayValue: this.textSplit},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_STRIPS, displayValue: this.textStrips},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_WEDGE, displayValue: this.textWedge},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_WHEEL, displayValue: this.textWheel},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-basic', value: AscFormat.EXIT_WIPE_FROM, displayValue: this.textWipe},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-subtle', value: AscFormat.EXIT_CONTRACT, displayValue: this.textContrast},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-subtle', value: AscFormat.EXIT_FADE, displayValue: this.textFade},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-subtle', value: AscFormat.EXIT_SWIVEL, displayValue: this.textSwivel},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-subtle', value: AscFormat.EXIT_ZOOM, displayValue: this.textZoom},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_BASIC_ZOOM, displayValue: this.textBasicZoom},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_CENTER_REVOLVE, displayValue: this.textCenterRevolve},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_COLLAPSE, displayValue: this.textCollapse},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_FLOAT_DOWN, displayValue: this.textFloatDown, familyEffect: 'exitfloat'},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_FLOAT_UP, displayValue: this.textFloatUp, familyEffect: 'exitfloat'},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_SHRINK_AND_TURN, displayValue: this.textShrinkTurn},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_SINK_DOWN, displayValue: this.textSinkDown},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_SPINNER, displayValue: this.textSpinner},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-moderate', value: AscFormat.EXIT_STRETCHY, displayValue: this.textStretch},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_BASIC_SWIVEL, displayValue: this.textBasicSwivel},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_BOOMERANG, displayValue: this.textBoomerang},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_BOUNCE, displayValue: this.textBounce},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_CREDITS, displayValue: this.textCredits},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_CURVE_DOWN, displayValue: this.textCurveDown},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_DROP, displayValue: this.textDrop},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_FLIP, displayValue: this.textFlip},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_FLOAT, displayValue: this.textFloat},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_PINWHEEL, displayValue: this.textPinwheel},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_SPIRAL_OUT, displayValue: this.textSpiralOut},
|
||||
{group: 'menu-effect-group-exit', level: 'menu-effect-level-exciting', value: AscFormat.EXIT_WHIP, displayValue: this.textWhip},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_PATH_4_POINT_STAR, displayValue: this.textPointStar4},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_PATH_5_POINT_STAR, displayValue: this.textPointStar5},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_PATH_6_POINT_STAR, displayValue: this.textPointStar6},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_PATH_8_POINT_STAR, displayValue: this.textPointStar8},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_CIRCLE, displayValue: this.textCircle, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_CRESCENT_MOON, displayValue: this.textCrescentMoon},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_DIAMOND, displayValue: this.textDiamond, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_EQUAL_TRIANGLE, displayValue: this.textEqualTriangle, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_FOOTBALL, displayValue: this.textFootball},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_HEART, displayValue: this.textHeart},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_HEXAGON, displayValue: this.textHexagon, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_OCTAGON, displayValue: this.textOctagon, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_PARALLELOGRAM, displayValue: this.textParallelogram, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_PENTAGON, displayValue: this.textPentagon, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_RIGHT_TRIANGLE, displayValue: this.textRightTriangle, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_SQUARE, displayValue: this.textSquare, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_TEARDROP, displayValue: this.textTeardrop},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-basic', value: AscFormat.MOTION_TRAPEZOID, displayValue: this.textTrapezoid, familyEffect: 'pathshapes'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_ARC_DOWN, displayValue: this.textArcDown, familyEffect: 'patharcs'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_ARC_LEFT, displayValue: this.textArcLeft, familyEffect: 'patharcs'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_ARC_RIGHT, displayValue: this.textArcRight, familyEffect: 'patharcs'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_ARC_UP, displayValue: this.textArcUp, familyEffect: 'patharcs'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_BOUNCE_LEFT, displayValue: this.textBounceLeft},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_BOUNCE_RIGHT, displayValue: this.textBounceRight},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_CURVY_LEFT, displayValue: this.textCurvyLeft},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_CURVY_RIGHT, displayValue: this.textCurvyRight},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_DECAYING_WAVE, displayValue: this.textDecayingWave},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_DIAGONAL_DOWN_RIGHT, displayValue: this.textDiagonalDownRight},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_DIAGONAL_UP_RIGHT, displayValue: this.textDiagonalUpRight},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_DOWN, displayValue: this.textDown, familyEffect: 'pathlines'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_FUNNEL, displayValue: this.textFunnel},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_HEARTBEAT, displayValue: this.textHeartbeat},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_LEFT, displayValue: this.textLeft, familyEffect: 'pathlines'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_RIGHT, displayValue: this.textRight, familyEffect: 'pathlines'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_S_CURVE_1, displayValue: this.textSCurve1},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_S_CURVE_2, displayValue: this.textSCurve2},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_SINE_WAVE, displayValue: this.textSineWave},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_SINE_SPIRAL_LEFT, displayValue: this.textSpiralLeft},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_SINE_SPIRAL_RIGHT, displayValue: this.textSpiralRight},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_SPRING, displayValue: this.textSpring},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_STAIRS_DOWN, displayValue: this.textStairsDown},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_TURN_DOWN, displayValue: this.textTurnDown, familyEffect: 'pathturns'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_TURN_DOWN_RIGHT, displayValue: this.textTurnDownRight, familyEffect: 'pathturns'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_TURN_UP, displayValue: this.textTurnUp, familyEffect: 'pathturns'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_TURN_UP_RIGHT, displayValue: this.textTurnUpRight, familyEffect: 'pathturns'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_UP, displayValue: this.textUp, familyEffect: 'pathlines'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_WAVE, displayValue: this.textWave},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-lines_curves', value: AscFormat.MOTION_ZIGZAG, displayValue: this.textZigzag},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_BEAN, displayValue: this.textBean},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_CURVED_SQUARE, displayValue: this.textCurvedSquare},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_CURVED_X, displayValue: this.textCurvedX},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_CURVY_STAR, displayValue: this.textCurvyStar},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_FIGURE_8_FOUR, displayValue: this.textFigureFour},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_HORIZONTAL_FIGURE_8_FOUR, displayValue: this.textHorizontalFigure, familyEffect: 'pathloops'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_INVERTED_SQUARE, displayValue: this.textInvertedSquare},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_INVERTED_TRIANGLE, displayValue: this.textInvertedTriangle},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_LOOP_DE_LOOP, displayValue: this.textLoopDeLoop, familyEffect: 'pathloops'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_NEUTRON, displayValue: this.textNeutron},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_PEANUT, displayValue: this.textPeanut},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_POINTY_STAR, displayValue: this.textPointStar},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_SWOOSH, displayValue: this.textSwoosh},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_VERTICAL_FIGURE_8, displayValue: this.textVerticalFigure, familyEffect: 'pathloops'},
|
||||
{group: 'menu-effect-group-path', level: 'menu-effect-level-special', value: AscFormat.MOTION_CUSTOM_PATH, displayValue: this.textCustomPath, notsupported: true}
|
||||
|
||||
];
|
||||
},
|
||||
|
||||
getEffectOptionsData: function (group, type) {
|
||||
switch (group) {
|
||||
case 'menu-effect-group-entrance':
|
||||
switch (type) {
|
||||
case AscFormat.ENTRANCE_BLINDS:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_BLINDS_HORIZONTAL, caption: this.textHorizontal, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_BLINDS_VERTICAL, caption: this.textVertical}
|
||||
];
|
||||
case AscFormat.ENTRANCE_BOX:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_BOX_IN, caption: this.textIn, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_BOX_OUT, caption: this.textOut}
|
||||
];
|
||||
case AscFormat.ENTRANCE_CHECKERBOARD:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_CHECKERBOARD_ACROSS, caption: this.textAcross, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_CHECKERBOARD_DOWN, caption: this.textDown}
|
||||
];
|
||||
case AscFormat.ENTRANCE_CIRCLE:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_CIRCLE_IN, caption: this.textIn, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_CIRCLE_OUT, caption: this.textOut}
|
||||
];
|
||||
case AscFormat.ENTRANCE_DIAMOND:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_DIAMOND_IN, caption: this.textIn, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_DIAMOND_OUT, caption: this.textOut}
|
||||
];
|
||||
|
||||
case AscFormat.ENTRANCE_FLY_IN_FROM:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_BOTTOM, caption: this.textFromBottom, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_BOTTOM_LEFT, caption: this.textFromBottomLeft},
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_LEFT, caption: this.textFromLeft},
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_TOP_LEFT, caption: this.textFromTopLeft},
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_TOP, caption: this.textFromTop},
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_TOP_RIGHT, caption: this.textFromTopRight},
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_RIGHT, caption: this.textFromRight},
|
||||
{value: AscFormat.ENTRANCE_FLY_IN_FROM_BOTTOM_RIGHT, caption: this.textFromBottomRight}
|
||||
];
|
||||
case AscFormat.ENTRANCE_PEEK_IN_FROM:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_PEEK_IN_FROM_BOTTOM, caption: this.textFromBottom, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_PEEK_IN_FROM_LEFT, caption: this.textFromLeft},
|
||||
{value: AscFormat.ENTRANCE_PEEK_IN_FROM_RIGHT, caption: this.textFromRight},
|
||||
{value: AscFormat.ENTRANCE_PEEK_IN_FROM_TOP, caption: this.textFromTop}
|
||||
];
|
||||
case AscFormat.ENTRANCE_PLUS:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_PLUS_IN, caption: this.textIn, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_PLUS_OUT, caption: this.textOut}
|
||||
];
|
||||
case AscFormat.ENTRANCE_RANDOM_BARS:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_RANDOM_BARS_HORIZONTAL, caption: this.textHorizontal, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_RANDOM_BARS_VERTICAL, caption: this.textVertical}
|
||||
];
|
||||
case AscFormat.ENTRANCE_SPLIT:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_SPLIT_HORIZONTAL_IN, caption: this.textHorizontalIn},
|
||||
{value: AscFormat.ENTRANCE_SPLIT_HORIZONTAL_OUT, caption: this.textHorizontalOut},
|
||||
{value: AscFormat.ENTRANCE_SPLIT_VERTICAL_IN, caption: this.textVerticalIn, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_SPLIT_VERTICAL_OUT, caption: this.textVerticalOut}
|
||||
];
|
||||
case AscFormat.ENTRANCE_STRIPS:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_STRIPS_LEFT_DOWN, caption: this.textLeftDown, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_STRIPS_LEFT_UP, caption: this.textLeftUp},
|
||||
{value: AscFormat.ENTRANCE_STRIPS_RIGHT_DOWN, caption: this.textRightDown},
|
||||
{value: AscFormat.ENTRANCE_STRIPS_RIGHT_UP, caption: this.textRightUp}
|
||||
];
|
||||
case AscFormat.ENTRANCE_WHEEL:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_WHEEL_1_SPOKE, caption: this.textSpoke1, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_WHEEL_2_SPOKES, caption: this.textSpoke2},
|
||||
{value: AscFormat.ENTRANCE_WHEEL_3_SPOKES, caption: this.textSpoke3},
|
||||
{value: AscFormat.ENTRANCE_WHEEL_4_SPOKES, caption: this.textSpoke4},
|
||||
{value: AscFormat.ENTRANCE_WHEEL_8_SPOKES, caption: this.textSpoke8}
|
||||
];
|
||||
case AscFormat.ENTRANCE_WIPE_FROM:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_WIPE_FROM_BOTTOM, caption: this.textFromBottom, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_WIPE_FROM_LEFT, caption: this.textFromLeft},
|
||||
{value: AscFormat.ENTRANCE_WIPE_FROM_RIGHT, caption: this.textFromRight},
|
||||
{value: AscFormat.ENTRANCE_WIPE_FROM_TOP, caption: this.textFromTop}
|
||||
];
|
||||
case AscFormat.ENTRANCE_ZOOM:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_ZOOM_OBJECT_CENTER, caption: this.textObjectCenter, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_ZOOM_SLIDE_CENTER, caption: this.textSlideCenter}
|
||||
];
|
||||
case AscFormat.ENTRANCE_BASIC_ZOOM:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_BASIC_ZOOM_IN, caption: this.textIn, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_BASIC_ZOOM_IN_FROM_SCREEN_CENTER, caption: this.textInFromScreenCenter},
|
||||
{value: AscFormat.ENTRANCE_BASIC_ZOOM_IN_SLIGHTLY, caption: this.textInSlightly},
|
||||
{value: AscFormat.ENTRANCE_BASIC_ZOOM_OUT, caption: this.textOut},
|
||||
{value: AscFormat.ENTRANCE_BASIC_ZOOM_OUT_FROM_SCREEN_BOTTOM, caption: this.textOutFromScreenBottom},
|
||||
{value: AscFormat.ENTRANCE_BASIC_ZOOM_OUT_SLIGHTLY, caption: this.textOutSlightly}
|
||||
];
|
||||
case AscFormat.ENTRANCE_STRETCH:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_STRETCH_ACROSS, caption: this.textAcross, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_STRETCH_FROM_BOTTOM, caption: this.textFromBottom},
|
||||
{value: AscFormat.ENTRANCE_STRETCH_FROM_LEFT, caption: this.textFromLeft},
|
||||
{value: AscFormat.ENTRANCE_STRETCH_FROM_RIGHT, caption: this.textFromRight},
|
||||
{value: AscFormat.ENTRANCE_STRETCH_FROM_TOP, caption: this.textFromTop}
|
||||
];
|
||||
case AscFormat.ENTRANCE_BASIC_SWIVEL:
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_BASIC_SWIVEL_HORIZONTAL, caption: this.textHorizontal, defvalue: true},
|
||||
{value: AscFormat.ENTRANCE_BASIC_SWIVEL_VERTICAL, caption: this.textVertical}
|
||||
];
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'menu-effect-group-exit':
|
||||
switch (type){
|
||||
case AscFormat.EXIT_BLINDS:
|
||||
return [
|
||||
{value: AscFormat.EXIT_BLINDS_HORIZONTAL, caption: this.textHorizontal, defvalue: true},
|
||||
{value: AscFormat.EXIT_BLINDS_VERTICAL, caption: this.textVertical}
|
||||
];
|
||||
case AscFormat.EXIT_BOX:
|
||||
return [
|
||||
{value: AscFormat.EXIT_BOX_IN, caption: this.textIn},
|
||||
{value: AscFormat.EXIT_BOX_OUT, caption: this.textOut, defvalue: true}
|
||||
];
|
||||
case AscFormat.EXIT_CHECKERBOARD:
|
||||
return [
|
||||
{value: AscFormat.EXIT_CHECKERBOARD_ACROSS, caption: this.textAcross, defvalue: true},
|
||||
{value: AscFormat.EXIT_CIRCLE_OUT, caption: this.textUp}
|
||||
];
|
||||
case AscFormat.EXIT_CIRCLE:
|
||||
return [
|
||||
{value: AscFormat.EXIT_CIRCLE_IN, caption: this.textIn},
|
||||
{value: AscFormat.EXIT_CIRCLE_OUT, caption: this.textOut, defvalue: true}
|
||||
];
|
||||
case AscFormat.EXIT_DIAMOND:
|
||||
return [
|
||||
{value: AscFormat.EXIT_DIAMOND_IN, caption: this.textIn},
|
||||
{value: AscFormat.EXIT_DIAMOND_OUT, caption: this.textOut, defvalue: true}
|
||||
];
|
||||
case AscFormat.EXIT_FLY_OUT_TO:
|
||||
return [
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_BOTTOM, caption: this.textToBottom, defvalue: true},
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_BOTTOM_LEFT, caption: this.textToBottomLeft},
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_LEFT, caption: this.textToLeft},
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_TOP_LEFT, caption: this.textToTopLeft},
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_TOP, caption: this.textToTop},
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_TOP_RIGHT, caption: this.textToTopRight},
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_RIGHT, caption: this.textToRight},
|
||||
{value: AscFormat.EXIT_FLY_OUT_TO_BOTTOM_RIGHT, caption: this.textToBottomRight}
|
||||
];
|
||||
case AscFormat.EXIT_PEEK_OUT_TO:
|
||||
return [
|
||||
{value: AscFormat.EXIT_PEEK_OUT_TO_BOTTOM, caption: this.textToBottom, defvalue: true},
|
||||
{value: AscFormat.EXIT_PEEK_OUT_TO_LEFT, caption: this.textToLeft},
|
||||
{value: AscFormat.EXIT_PEEK_OUT_TO_RIGHT, caption: this.textToRight},
|
||||
{value: AscFormat.EXIT_PEEK_OUT_TO_TOP, caption: this.textToTop}
|
||||
];
|
||||
case AscFormat.EXIT_PLUS:
|
||||
return [
|
||||
{value: AscFormat.EXIT_PLUS_IN, caption: this.textIn},
|
||||
{value: AscFormat.EXIT_PLUS_OUT, caption: this.textOut, defvalue: true}
|
||||
];
|
||||
case AscFormat.EXIT_RANDOM_BARS:
|
||||
return [
|
||||
{value: AscFormat.EXIT_RANDOM_BARS_HORIZONTAL, caption: this.textHorizontal, defvalue: true},
|
||||
{value: AscFormat.EXIT_RANDOM_BARS_VERTICAL, caption: this.textVertical}
|
||||
];
|
||||
case AscFormat.EXIT_SPLIT:
|
||||
return [
|
||||
{value: AscFormat.EXIT_SPLIT_HORIZONTAL_IN, caption: this.textHorizontalIn},
|
||||
{value: AscFormat.EXIT_SPLIT_HORIZONTAL_OUT, caption: this.textHorizontalOut},
|
||||
{value: AscFormat.EXIT_SPLIT_VERTICAL_IN, caption: this.textVerticalIn, defvalue: true},
|
||||
{value: AscFormat.EXIT_SPLIT_VERTICAL_OUT, caption: this.textVerticalOut}
|
||||
];
|
||||
case AscFormat.EXIT_STRIPS:
|
||||
return [
|
||||
{value: AscFormat.EXIT_STRIPS_LEFT_DOWN, caption: this.textLeftDown, defvalue: true},
|
||||
{value: AscFormat.EXIT_STRIPS_LEFT_UP, caption: this.textLeftUp},
|
||||
{value: AscFormat.EXIT_STRIPS_RIGHT_DOWN, caption: this.textRightDown},
|
||||
{value: AscFormat.EXIT_STRIPS_RIGHT_UP, caption: this.textRightUp}
|
||||
];
|
||||
case AscFormat.EXIT_WHEEL:
|
||||
return [
|
||||
{value: AscFormat.EXIT_WHEEL_1_SPOKE, caption: this.textSpoke1, defvalue: true},
|
||||
{value: AscFormat.EXIT_WHEEL_2_SPOKES, caption: this.textSpoke2},
|
||||
{value: AscFormat.EXIT_WHEEL_3_SPOKES, caption: this.textSpoke3},
|
||||
{value: AscFormat.EXIT_WHEEL_4_SPOKES, caption: this.textSpoke4},
|
||||
{value: AscFormat.EXIT_WHEEL_8_SPOKES, caption: this.textSpoke8}
|
||||
];
|
||||
case AscFormat.EXIT_WIPE_FROM:
|
||||
return [
|
||||
{value: AscFormat.EXIT_WIPE_FROM_BOTTOM, caption: this.textFromBottom, defvalue: true},
|
||||
{value: AscFormat.EXIT_WIPE_FROM_LEFT, caption: this.textFromLeft},
|
||||
{value: AscFormat.EXIT_WIPE_FROM_RIGHT, caption: this.textFromRight},
|
||||
{value: AscFormat.EXIT_WIPE_FROM_TOP, caption: this.textFromTop}
|
||||
];
|
||||
case AscFormat.EXIT_ZOOM:
|
||||
return [
|
||||
{value: AscFormat.EXIT_ZOOM_OBJECT_CENTER, caption: this.textObjectCenter, defvalue: true},
|
||||
{value: AscFormat.EXIT_ZOOM_SLIDE_CENTER, caption: this.textSlideCenter}
|
||||
];
|
||||
case AscFormat.EXIT_BASIC_ZOOM:
|
||||
return [
|
||||
{value: AscFormat.EXIT_BASIC_ZOOM_OUT, caption: this.textOut, defvalue: true},
|
||||
{value: AscFormat.EXIT_BASIC_ZOOM_OUT_TO_SCREEN_CENTER, caption: this.textOutToScreenCenter},
|
||||
{value: AscFormat.EXIT_BASIC_ZOOM_OUT_SLIGHTLY, caption: this.textOutSlightly},
|
||||
{value: AscFormat.EXIT_BASIC_ZOOM_IN, caption: this.textIn},
|
||||
{value: AscFormat.EXIT_BASIC_ZOOM_IN_TO_SCREEN_BOTTOM, caption: this.textInToScreenBottom},
|
||||
{value: AscFormat.EXIT_BASIC_ZOOM_IN_SLIGHTLY, caption: this.textInSlightly}
|
||||
];
|
||||
case AscFormat.EXIT_COLLAPSE:
|
||||
return [
|
||||
{value: AscFormat.EXIT_COLLAPSE_ACROSS, caption: this.textAcross, defvalue: true},
|
||||
{value: AscFormat.EXIT_COLLAPSE_TO_BOTTOM, caption: this.textToBottom},
|
||||
{value: AscFormat.EXIT_COLLAPSE_TO_LEFT, caption: this.textToLeft},
|
||||
{value: AscFormat.EXIT_COLLAPSE_TO_RIGHT, caption: this.textToRight},
|
||||
{value: AscFormat.EXIT_COLLAPSE_TO_TOP, caption: this.textToTop}
|
||||
];
|
||||
case AscFormat.EXIT_BASIC_SWIVEL:
|
||||
return [
|
||||
{value: AscFormat.EXIT_BASIC_SWIVEL_HORIZONTAL, caption: this.textHorizontal, defvalue: true},
|
||||
{value: AscFormat.EXIT_BASIC_SWIVEL_VERTICAL, caption: this.textVertical}
|
||||
];
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
break;
|
||||
case 'menu-effect-group-path':
|
||||
switch (type) {
|
||||
case AscFormat.MOTION_CUSTOM_PATH:
|
||||
return [
|
||||
{value: AscFormat.MOTION_CUSTOM_PATH_CURVE, caption: this.textPathCurve, isCustom: true},
|
||||
{value: AscFormat.MOTION_CUSTOM_PATH_LINE, caption: this.textPathLine, isCustom: true},
|
||||
{value: AscFormat.MOTION_CUSTOM_PATH_SCRIBBLE, caption: this.textPathScribble, isCustom: true}
|
||||
];
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return undefined;
|
||||
}
|
||||
},
|
||||
getSimilarEffectsArray: function (familyEffect) {
|
||||
switch (familyEffect){
|
||||
case 'shape':
|
||||
return [
|
||||
{value: AscFormat.EXIT_CIRCLE, caption: this.textCircle},
|
||||
{value: AscFormat.EXIT_BOX, caption: this.textBox},
|
||||
{value: AscFormat.EXIT_DIAMOND, caption: this.textDiamond},
|
||||
{value: AscFormat.EXIT_PLUS, caption: this.textPlus}
|
||||
];
|
||||
case 'entrshape':
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_CIRCLE, caption: this.textCircle},
|
||||
{value: AscFormat.ENTRANCE_BOX, caption: this.textBox},
|
||||
{value: AscFormat.ENTRANCE_DIAMOND, caption: this.textDiamond},
|
||||
{value: AscFormat.ENTRANCE_PLUS, caption: this.textPlus}
|
||||
];
|
||||
case 'pathlines':
|
||||
return[
|
||||
{value: AscFormat.MOTION_DOWN, caption: this.textDown},
|
||||
{value: AscFormat.MOTION_LEFT, caption: this.textLeft},
|
||||
{value: AscFormat.MOTION_RIGHT, caption: this.textRight},
|
||||
{value: AscFormat.MOTION_UP, caption: this.textUp}
|
||||
];
|
||||
case 'patharcs':
|
||||
return [
|
||||
{value: AscFormat.MOTION_ARC_DOWN, caption: this.textArcDown},
|
||||
{value: AscFormat.MOTION_ARC_LEFT, caption: this.textArcLeft},
|
||||
{value: AscFormat.MOTION_ARC_RIGHT, caption: this.textArcRight},
|
||||
{value: AscFormat.MOTION_ARC_UP, caption: this.textArcUp}
|
||||
];
|
||||
case 'pathturns':
|
||||
return [
|
||||
{value: AscFormat.MOTION_TURN_DOWN, caption: this.textTurnDown},
|
||||
{value: AscFormat.MOTION_TURN_DOWN_RIGHT, caption: this.textTurnDownRight},
|
||||
{value: AscFormat.MOTION_TURN_UP, caption: this.textTurnUp},
|
||||
{value: AscFormat.MOTION_TURN_UP_RIGHT, caption: this.textTurnUpRight}
|
||||
];
|
||||
case 'pathshapes':
|
||||
return [
|
||||
{value: AscFormat.MOTION_CIRCLE, caption: this.textCircle},
|
||||
{value: AscFormat.MOTION_DIAMOND, caption: this.textDiamond},
|
||||
{value: AscFormat.MOTION_EQUAL_TRIANGLE, caption: this.textEqualTriangle},
|
||||
{value: AscFormat.MOTION_HEXAGON, caption: this.textHexagon},
|
||||
{value: AscFormat.MOTION_OCTAGON, caption: this.textOctagon},
|
||||
{value: AscFormat.MOTION_PARALLELOGRAM, caption: this.textParallelogram},
|
||||
{value: AscFormat.MOTION_PENTAGON, caption: this.textPentagon},
|
||||
{value: AscFormat.MOTION_RIGHT_TRIANGLE, caption: this.textRightTriangle},
|
||||
{value: AscFormat.MOTION_SQUARE, caption: this.textSquare},
|
||||
{value: AscFormat.MOTION_TRAPEZOID, caption: this.textTrapezoid}
|
||||
|
||||
];
|
||||
case 'pathloops':
|
||||
return [
|
||||
{value: AscFormat.MOTION_HORIZONTAL_FIGURE_8_FOUR, caption: this.textHorizontalFigure},
|
||||
{value: AscFormat.MOTION_VERTICAL_FIGURE_8, caption: this.textVerticalFigure},
|
||||
{value: AscFormat.MOTION_LOOP_DE_LOOP, caption: this.textLoopDeLoop}
|
||||
];
|
||||
case 'entrfloat':
|
||||
return [
|
||||
{value: AscFormat.ENTRANCE_FLOAT_UP, caption: this.textFloatUp},
|
||||
{value: AscFormat.ENTRANCE_FLOAT_DOWN, caption: this.textFloatDown}
|
||||
];
|
||||
case 'exitfloat':
|
||||
return [
|
||||
{value: AscFormat.EXIT_FLOAT_UP, caption: this.textFloatUp},
|
||||
{value: AscFormat.EXIT_FLOAT_DOWN, caption: this.textFloatDown}
|
||||
];
|
||||
default:
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
})(), Common.define.effectData || {});
|
||||
|
||||
});
|
||||
22
apps/common/main/lib/util/desktopinit.js
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
|
||||
if ( window.AscDesktopEditor ) {
|
||||
window.desktop = window.AscDesktopEditor;
|
||||
desktop.features = {};
|
||||
window.native_message_cmd = [];
|
||||
|
||||
window.on_native_message = function (cmd, param) {
|
||||
if ( /window:features/.test(cmd) ) {
|
||||
var obj = JSON.parse(param);
|
||||
if ( obj.singlewindow !== undefined ) {
|
||||
desktop.features.singlewindow = obj.singlewindow;
|
||||
}
|
||||
} else
|
||||
window.native_message_cmd[cmd] = param;
|
||||
}
|
||||
|
||||
if ( !!window.RendererProcessVariable ) {
|
||||
desktop.theme = window.RendererProcessVariable.theme;
|
||||
}
|
||||
|
||||
window.desktop.execCommand('webapps:entry', (window.features && JSON.stringify(window.features)) || '');
|
||||
}
|
||||
|
|
@ -31,4 +31,10 @@ if ( !window.fetch ) {
|
|||
return target;
|
||||
};
|
||||
}
|
||||
|
||||
if (typeof Object.getOwnPropertySymbols != 'function') {
|
||||
Object.getOwnPropertySymbols = function(target) {
|
||||
return [];
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,7 +42,40 @@ var params = (function() {
|
|||
return urlParams;
|
||||
})();
|
||||
|
||||
if ( !!params.uitheme && !localStorage.getItem("ui-theme-id") ) {
|
||||
var checkLocalStorage = (function () {
|
||||
try {
|
||||
var storage = window['localStorage'];
|
||||
return true;
|
||||
}
|
||||
catch(e) {
|
||||
return false;
|
||||
}
|
||||
})();
|
||||
|
||||
if ( window.desktop ) {
|
||||
var theme = desktop.theme
|
||||
|
||||
if ( theme ) {
|
||||
if ( !theme.id && !!theme.type ) {
|
||||
if ( theme.type == 'dark' ) theme.id = 'theme-dark'; else
|
||||
if ( theme.type == 'light' ) theme.id = 'theme-classic-light';
|
||||
}
|
||||
|
||||
if ( theme.id ) {
|
||||
if ( theme.id == 'theme-system' ) {
|
||||
localStorage.setItem("ui-theme-use-system", "1");
|
||||
localStorage.removeItem("ui-theme-id");
|
||||
delete params.uitheme;
|
||||
} else {
|
||||
localStorage.setItem("ui-theme-id", theme.id);
|
||||
}
|
||||
|
||||
localStorage.removeItem("ui-theme");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( !!params.uitheme && checkLocalStorage && !localStorage.getItem("ui-theme-id") ) {
|
||||
// const _t = params.uitheme.match(/([\w-]+)/g);
|
||||
|
||||
if ( params.uitheme == 'default-dark' )
|
||||
|
|
@ -51,16 +84,30 @@ if ( !!params.uitheme && !localStorage.getItem("ui-theme-id") ) {
|
|||
if ( params.uitheme == 'default-light' )
|
||||
params.uitheme = 'theme-classic-light';
|
||||
|
||||
localStorage.setItem("ui-theme-id", params.uitheme);
|
||||
localStorage.removeItem("ui-theme");
|
||||
}
|
||||
|
||||
var ui_theme_name = localStorage.getItem("ui-theme-id");
|
||||
var ui_theme_name = checkLocalStorage && localStorage.getItem("ui-theme-id") ? localStorage.getItem("ui-theme-id") : params.uitheme;
|
||||
var ui_theme_type;
|
||||
if ( !ui_theme_name ) {
|
||||
if ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) {
|
||||
ui_theme_name = 'theme-dark';
|
||||
localStorage.setItem("ui-theme-id", ui_theme_name);
|
||||
ui_theme_type = 'dark';
|
||||
checkLocalStorage && localStorage.removeItem("ui-theme");
|
||||
}
|
||||
}
|
||||
if ( !!ui_theme_name ) {
|
||||
document.body.classList.add(ui_theme_name);
|
||||
}
|
||||
|
||||
if ( checkLocalStorage ) {
|
||||
let current_theme = localStorage.getItem("ui-theme");
|
||||
if ( !!current_theme && /type":\s*"dark/.test(current_theme) || ui_theme_type == 'dark' ) {
|
||||
document.body.classList.add("theme-type-dark");
|
||||
|
||||
let content_theme = localStorage.getItem("content-theme");
|
||||
if ( content_theme == 'dark' ) {
|
||||
document.body.classList.add("content-theme-dark");
|
||||
}
|
||||
}
|
||||
}
|
||||
32
apps/common/main/lib/util/themeinit.js
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
|
||||
+function init_themes() {
|
||||
if ( localStorage.getItem("ui-theme-use-system") == '1' ) {
|
||||
localStorage.removeItem("ui-theme-id");
|
||||
}
|
||||
|
||||
var objtheme = localStorage.getItem("ui-theme");
|
||||
if ( typeof(objtheme) == 'string' &&
|
||||
objtheme.startsWith("{") && objtheme.endsWith("}") )
|
||||
{
|
||||
objtheme = JSON.parse(objtheme);
|
||||
}
|
||||
|
||||
var ui_theme_name = objtheme && typeof(objtheme) == 'object' ? objtheme.id :
|
||||
typeof(objtheme) == 'string' ? objtheme : localStorage.getItem("ui-theme-id");
|
||||
|
||||
if ( !!ui_theme_name ) {
|
||||
if ( !!objtheme && !!objtheme.colors ) {
|
||||
var colors = [];
|
||||
for ( var c in objtheme.colors ) {
|
||||
colors.push('--' + c + ':' + objtheme.colors[c]);
|
||||
}
|
||||
|
||||
var style = document.createElement('style');
|
||||
style.type = 'text/css';
|
||||
style.innerHTML = '.' + ui_theme_name + '{'+ colors.join(';') +';}';
|
||||
document.getElementsByTagName('head')[0].appendChild(style);
|
||||
|
||||
window.currentLoaderTheme = objtheme;
|
||||
}
|
||||
}
|
||||
}();
|
||||
|
|
@ -193,13 +193,18 @@ var utils = new(function() {
|
|||
me.innerHeight = window.innerHeight * me.zoom;
|
||||
me.applicationPixelRatio = scale.applicationPixelRatio || scale.devicePixelRatio;
|
||||
};
|
||||
checkSizeIE = function() {
|
||||
me.innerWidth = window.innerWidth;
|
||||
me.innerHeight = window.innerHeight;
|
||||
};
|
||||
me.zoom = 1;
|
||||
me.applicationPixelRatio = 1;
|
||||
me.innerWidth = window.innerWidth;
|
||||
me.innerHeight = window.innerHeight;
|
||||
if ( isIE )
|
||||
if ( isIE ) {
|
||||
$(document.body).addClass('ie');
|
||||
else {
|
||||
$(window).on('resize', checkSizeIE);
|
||||
} else {
|
||||
checkSize();
|
||||
$(window).on('resize', checkSize);
|
||||
}
|
||||
|
|
@ -436,7 +441,7 @@ var metrics = new(function() {
|
|||
}
|
||||
})();
|
||||
|
||||
Common.Utils.Metric = _extend_object(Common.Utils.Metric, metrics);
|
||||
Common.Utils.Metric = _extend_object(metrics, Common.Utils.Metric);
|
||||
|
||||
Common.Utils.RGBColor = function(colorString) {
|
||||
var r, g, b;
|
||||
|
|
@ -603,8 +608,12 @@ Common.Utils.RGBColor = function(colorString) {
|
|||
}
|
||||
};
|
||||
|
||||
Common.Utils.String = new (function() {
|
||||
var utilsString = new (function() {
|
||||
return {
|
||||
textCtrl: 'Ctrl',
|
||||
textShift: 'Shift',
|
||||
textAlt: 'Alt',
|
||||
|
||||
format: function(format) {
|
||||
var args = _.toArray(arguments).slice(1);
|
||||
if (args.length && typeof args[0] == 'object')
|
||||
|
|
@ -648,7 +657,7 @@ Common.Utils.String = new (function() {
|
|||
return Common.Utils.String.format(template, string.replace(/\+(?=\S)/g, '').replace(/Ctrl|ctrl/g, '⌘').replace(/Alt|alt/g, '⌥').replace(/Shift|shift/g, '⇧'));
|
||||
}
|
||||
|
||||
return Common.Utils.String.format(template, string);
|
||||
return Common.Utils.String.format(template, string.replace(/Ctrl|ctrl/g, this.textCtrl).replace(/Alt|alt/g, this.textAlt).replace(/Shift|shift/g, this.textShift));
|
||||
},
|
||||
|
||||
parseFloat: function(string) {
|
||||
|
|
@ -680,6 +689,8 @@ Common.Utils.String = new (function() {
|
|||
}
|
||||
})();
|
||||
|
||||
Common.Utils.String = _extend_object(utilsString, Common.Utils.String);
|
||||
|
||||
Common.Utils.isBrowserSupported = function() {
|
||||
return !((Common.Utils.ieVersion != 0 && Common.Utils.ieVersion < 10.0) ||
|
||||
(Common.Utils.safariVersion != 0 && Common.Utils.safariVersion < 5.0) ||
|
||||
|
|
@ -881,7 +892,7 @@ Common.Utils.lockControls = function(causes, lock, opts, defControls) {
|
|||
opts.merge && (controls = _.union(defControls,controls));
|
||||
|
||||
function doLock(cmp, cause) {
|
||||
if ( cmp && _.contains(cmp.options.lock, cause) ) {
|
||||
if ( cmp && cmp.options && _.contains(cmp.options.lock, cause) ) {
|
||||
var index = cmp.keepState.indexOf(cause);
|
||||
if (lock) {
|
||||
if (index < 0) {
|
||||
|
|
@ -913,7 +924,7 @@ Common.Utils.lockControls = function(causes, lock, opts, defControls) {
|
|||
});
|
||||
};
|
||||
|
||||
Common.Utils.injectButtons = function($slots, id, iconCls, caption, lock, split, menu, toggle) {
|
||||
Common.Utils.injectButtons = function($slots, id, iconCls, caption, lock, split, menu, toggle, dataHint, dataHintDirection, dataHintOffset, dataHintTitle) {
|
||||
var btnsArr = createButtonSet();
|
||||
btnsArr.setDisabled(true);
|
||||
id = id || ("id-toolbar-" + iconCls);
|
||||
|
|
@ -931,7 +942,11 @@ Common.Utils.injectButtons = function($slots, id, iconCls, caption, lock, split,
|
|||
menu: menu || false,
|
||||
enableToggle: toggle || false,
|
||||
lock: lock,
|
||||
disabled: true
|
||||
disabled: true,
|
||||
dataHint: dataHint,
|
||||
dataHintDirection: dataHintDirection,
|
||||
dataHintOffset: dataHintOffset,
|
||||
dataHintTitle: dataHintTitle
|
||||
});
|
||||
|
||||
btnsArr.add(button);
|
||||
|
|
@ -964,7 +979,7 @@ Common.Utils.warningDocumentIsLocked = function (opts) {
|
|||
callback: function(btn){
|
||||
if (btn == 'edit') {
|
||||
if ( opts.disablefunc ) opts.disablefunc(false);
|
||||
app.getController('Main').api.asc_setIsReadOnly(false);
|
||||
app.getController('Main').api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -982,23 +997,27 @@ jQuery.fn.extend({
|
|||
var _el = document.getElementById(id.substring(1));
|
||||
if ( !_el ) {
|
||||
parent = parent || this;
|
||||
if ( parent instanceof jQuery ) {
|
||||
if ( parent && parent.length > 0 ) {
|
||||
parent.each(function (i, node) {
|
||||
_el = node.querySelectorAll(id);
|
||||
if ( _el.length == 0 ) {
|
||||
if ( ('#' + node.id) == id ) {
|
||||
_el = node;
|
||||
if (node.querySelectorAll) {
|
||||
_el = node.querySelectorAll(id);
|
||||
if ( _el.length == 0 ) {
|
||||
if ( ('#' + node.id) == id ) {
|
||||
_el = node;
|
||||
return false;
|
||||
}
|
||||
} else
|
||||
if ( _el.length ) {
|
||||
_el = _el[0];
|
||||
return false;
|
||||
}
|
||||
} else
|
||||
if ( _el.length ) {
|
||||
_el = _el[0];
|
||||
return false;
|
||||
}
|
||||
})
|
||||
} else {
|
||||
_el = parent.querySelectorAll(id);
|
||||
if ( _el && _el.length ) return _el[0];
|
||||
if (parent && parent.querySelectorAll) {
|
||||
_el = parent.querySelectorAll(id);
|
||||
if ( _el && _el.length ) return _el[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1068,3 +1087,12 @@ Common.Utils.UserInfoParser = new(function() {
|
|||
}
|
||||
}
|
||||
})();
|
||||
|
||||
Common.Utils.getKeyByValue = function(obj, value) {
|
||||
for(var prop in obj) {
|
||||
if(obj.hasOwnProperty(prop)) {
|
||||
if(obj[prop] === value)
|
||||
return prop;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
@ -55,6 +55,10 @@ define([
|
|||
|
||||
this.txtVersionNum = '{{PRODUCT_VERSION}}';
|
||||
|
||||
!(/\s$/.test(this.txtAddress)) && (this.txtAddress += " ");
|
||||
!(/\s$/.test(this.txtMail)) && (this.txtMail += " ");
|
||||
!(/\s$/.test(this.txtTel)) && (this.txtTel += " ");
|
||||
|
||||
this.template = _.template([
|
||||
'<table id="id-about-licensor-logo" cols="1" style="width: 100%; margin-top: 20px;">',
|
||||
'<tr>',
|
||||
|
|
@ -122,6 +126,12 @@ define([
|
|||
'<a href="mailto:" id="id-about-company-mail"></a>',
|
||||
'</td>',
|
||||
'</tr>',
|
||||
'<tr>',
|
||||
'<td align="center" class="padding-small">',
|
||||
'<label class="asc-about-desc-name">' + this.txtTel + '</label>',
|
||||
'<label class="asc-about-desc" id="id-about-company-tel"></label>',
|
||||
'</td>',
|
||||
'</tr>',
|
||||
'<tr>',
|
||||
'<td align="center" class="padding-small">',
|
||||
'<a href="" target="_blank" id="id-about-company-url"></a>',
|
||||
|
|
@ -144,7 +154,7 @@ define([
|
|||
'</tr>',
|
||||
'<tr>',
|
||||
'<td colspan="3" align="center">',
|
||||
'<label class="asc-about-desc"><% print(publisherurl.replace(/https?:\\/{2}/, "").replace(/\\/$/,"")) %></label>',
|
||||
'<a href="<%= publisherurl %>" target="_blank"><% print(publisherurl.replace(/https?:\\/{2}/, "").replace(/\\/$/,"")) %></a>',
|
||||
'</td>',
|
||||
'</tr>',
|
||||
'</table>'
|
||||
|
|
@ -173,6 +183,7 @@ define([
|
|||
this.lblCompanyMail = _$l.findById('#id-about-company-mail');
|
||||
this.lblCompanyUrl = _$l.findById('#id-about-company-url');
|
||||
this.lblCompanyLic = _$l.findById('#id-about-company-lic');
|
||||
this.lblCompanyTel = _$l.findById('#id-about-company-tel');
|
||||
|
||||
this.$el.html(_$l);
|
||||
this.$el.addClass('about-dlg');
|
||||
|
|
@ -195,7 +206,8 @@ define([
|
|||
if ( !this.rendered ) {
|
||||
this.licData = data || true;
|
||||
} else {
|
||||
if (data && typeof data == 'object' && typeof(data.customer)=='object') {
|
||||
if (data && typeof data == 'object' && data.customer && typeof(data.customer)=='object') {
|
||||
this.licData = data;
|
||||
var customer = data.customer;
|
||||
|
||||
$('#id-about-licensor-logo').addClass('hidden');
|
||||
|
|
@ -219,6 +231,11 @@ define([
|
|||
this.lblCompanyMail.attr('href', "mailto:"+value).text(value) :
|
||||
this.lblCompanyMail.parents('tr').addClass('hidden');
|
||||
|
||||
value = customer.phone;
|
||||
value && value.length ?
|
||||
this.lblCompanyTel.text(value) :
|
||||
this.lblCompanyTel.parents('tr').addClass('hidden');
|
||||
|
||||
if ((value = customer.www) && value.length) {
|
||||
var http = !/^https?:\/{2}/i.test(value) ? "http:\/\/" : '';
|
||||
this.lblCompanyUrl.attr('href', http+value).text(value);
|
||||
|
|
@ -229,9 +246,11 @@ define([
|
|||
this.lblCompanyLic.text(value) :
|
||||
this.lblCompanyLic.parents('tr').addClass('hidden');
|
||||
|
||||
(value = customer.logo) && value.length ?
|
||||
value = Common.UI.Themes.isDarkTheme() ? (customer.logoDark || customer.logo) : (customer.logo || customer.logoDark);
|
||||
value && value.length ?
|
||||
this.divCompanyLogo.html('<img src="'+value+'" style="max-width:216px; max-height: 35px;" />') :
|
||||
this.divCompanyLogo.parents('tr').addClass('hidden');
|
||||
value && value.length && Common.NotificationCenter.on('uitheme:changed', this.changeLogo.bind(this));
|
||||
} else {
|
||||
this.cntLicenseeInfo.addClass('hidden');
|
||||
this.cntLicensorInfo.addClass('margin-bottom');
|
||||
|
|
@ -239,6 +258,15 @@ define([
|
|||
}
|
||||
},
|
||||
|
||||
changeLogo: function () {
|
||||
if (!this.licData) return;
|
||||
|
||||
var customer = this.licData.customer;
|
||||
if ( customer.logo && customer.logoDark && customer.logo !== customer.logoDark) {
|
||||
this.divCompanyLogo.find('img').attr('src', Common.UI.Themes.isDarkTheme() ? (customer.logoDark || customer.logo) : (customer.logo || customer.logoDark));
|
||||
}
|
||||
},
|
||||
|
||||
show: function () {
|
||||
if ( !this.rendered ) this.render();
|
||||
|
||||
|
|
|
|||
|
|
@ -113,10 +113,11 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
|
||||
var $window = this.getChild();
|
||||
var me = this;
|
||||
var panelAutoFormat = $window.find('#id-autocorrect-dialog-settings-' + (this.appPrefix=='pe-' ? 'de-' : this.appPrefix) + 'autoformat');
|
||||
|
||||
// Math correct
|
||||
this.chReplaceType = new Common.UI.CheckBox({
|
||||
el: $window.findById('#auto-correct-chb-replace-type'),
|
||||
el: $window.find('#auto-correct-chb-replace-type'),
|
||||
labelText: this.textReplaceType,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-math-correct-replace-type")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
|
|
@ -197,17 +198,17 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
// this.inputBy.cmpEl.find('input').css('font-size', '13px');
|
||||
|
||||
this.btnReset = new Common.UI.Button({
|
||||
el: $('#auto-correct-btn-reset')
|
||||
el: $window.find('#auto-correct-btn-reset')
|
||||
});
|
||||
this.btnReset.on('click', _.bind(this.onResetToDefault, this));
|
||||
|
||||
this.btnEdit = new Common.UI.Button({
|
||||
el: $('#auto-correct-btn-edit')
|
||||
el: $window.find('#auto-correct-btn-edit')
|
||||
});
|
||||
this.btnEdit.on('click', _.bind(this.onEdit, this, false));
|
||||
|
||||
this.btnDelete = new Common.UI.Button({
|
||||
el: $('#auto-correct-btn-delete')
|
||||
el: $window.find('#auto-correct-btn-delete')
|
||||
});
|
||||
this.btnDelete.on('click', _.bind(this.onDelete, this, false));
|
||||
|
||||
|
|
@ -269,23 +270,23 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
});
|
||||
|
||||
this.btnResetRec = new Common.UI.Button({
|
||||
el: $('#auto-correct-btn-rec-reset')
|
||||
el: $window.find('#auto-correct-btn-rec-reset')
|
||||
});
|
||||
this.btnResetRec.on('click', _.bind(this.onResetRecToDefault, this));
|
||||
|
||||
this.btnAddRec = new Common.UI.Button({
|
||||
el: $('#auto-correct-btn-rec-edit')
|
||||
el: $window.find('#auto-correct-btn-rec-edit')
|
||||
});
|
||||
this.btnAddRec.on('click', _.bind(this.onAddRec, this, false));
|
||||
|
||||
this.btnDeleteRec = new Common.UI.Button({
|
||||
el: $('#auto-correct-btn-rec-delete')
|
||||
el: $window.find('#auto-correct-btn-rec-delete')
|
||||
});
|
||||
this.btnDeleteRec.on('click', _.bind(this.onDeleteRec, this, false));
|
||||
|
||||
if (this.appPrefix=='de-' || this.appPrefix=='pe-') {
|
||||
this.chQuotes = new Common.UI.CheckBox({
|
||||
el: $('#id-autocorrect-dialog-chk-quotes'),
|
||||
el: $window.find('#id-autocorrect-dialog-chk-quotes'),
|
||||
labelText: this.textQuotes,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-smart-quotes")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
|
|
@ -295,7 +296,7 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
me.api.asc_SetAutoCorrectSmartQuotes(checked);
|
||||
});
|
||||
this.chHyphens = new Common.UI.CheckBox({
|
||||
el: $('#id-autocorrect-dialog-chk-hyphens'),
|
||||
el: $window.find('#id-autocorrect-dialog-chk-hyphens'),
|
||||
labelText: this.textHyphens,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-hyphens")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
|
|
@ -305,7 +306,7 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
me.api.asc_SetAutoCorrectHyphensWithDash(checked);
|
||||
});
|
||||
this.chBulleted = new Common.UI.CheckBox({
|
||||
el: $('#id-autocorrect-dialog-chk-bulleted'),
|
||||
el: $window.find('#id-autocorrect-dialog-chk-bulleted'),
|
||||
labelText: this.textBulleted,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-bulleted")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
|
|
@ -315,7 +316,7 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
me.api.asc_SetAutomaticBulletedLists(checked);
|
||||
});
|
||||
this.chNumbered = new Common.UI.CheckBox({
|
||||
el: $('#id-autocorrect-dialog-chk-numbered'),
|
||||
el: $window.find('#id-autocorrect-dialog-chk-numbered'),
|
||||
labelText: this.textNumbered,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-numbered")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
|
|
@ -324,9 +325,19 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
Common.Utils.InternalSettings.set(me.appPrefix + "settings-autoformat-numbered", checked);
|
||||
me.api.asc_SetAutomaticNumberedLists(checked);
|
||||
});
|
||||
this.chDoubleSpaces = new Common.UI.CheckBox({
|
||||
el: panelAutoFormat.find('#id-autocorrect-dialog-chk-double-space'),
|
||||
labelText: this.textDoubleSpaces,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-double-space")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
var checked = (field.getValue()==='checked');
|
||||
Common.localStorage.setBool(me.appPrefix + "settings-autoformat-double-space", checked);
|
||||
Common.Utils.InternalSettings.set(me.appPrefix + "settings-autoformat-double-space", checked);
|
||||
me.api.asc_SetAutoCorrectDoubleSpaceWithPeriod(checked);
|
||||
});
|
||||
// AutoCorrect
|
||||
this.chFLSentence = new Common.UI.CheckBox({
|
||||
el: $('#id-autocorrect-dialog-chk-fl-sentence'),
|
||||
el: $window.find('#id-autocorrect-dialog-chk-fl-sentence'),
|
||||
labelText: this.textFLSentence,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-fl-sentence")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
|
|
@ -336,10 +347,21 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
me.api.asc_SetAutoCorrectFirstLetterOfSentences && me.api.asc_SetAutoCorrectFirstLetterOfSentences(checked);
|
||||
});
|
||||
|
||||
this.chFLCells = new Common.UI.CheckBox({
|
||||
el: $window.find('#id-autocorrect-dialog-chk-fl-cells'),
|
||||
labelText: this.textFLCells,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-fl-cells")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
var checked = (field.getValue()==='checked');
|
||||
Common.localStorage.setBool(me.appPrefix + "settings-autoformat-fl-cells", checked);
|
||||
Common.Utils.InternalSettings.set(me.appPrefix + "settings-autoformat-fl-cells", checked);
|
||||
me.api.asc_SetAutoCorrectFirstLetterOfCells && me.api.asc_SetAutoCorrectFirstLetterOfCells(checked);
|
||||
});
|
||||
|
||||
this.btnsCategory[3].on('click', _.bind(this.onAutocorrectCategoryClick, this, false));
|
||||
} else if (this.appPrefix=='sse-') {
|
||||
this.chNewRows = new Common.UI.CheckBox({
|
||||
el: $('#id-autocorrect-dialog-chk-new-rows'),
|
||||
el: $window.find('#id-autocorrect-dialog-chk-new-rows'),
|
||||
labelText: this.textNewRowCol,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-new-rows")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
|
|
@ -348,18 +370,17 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
Common.Utils.InternalSettings.set(me.appPrefix + "settings-autoformat-new-rows", checked);
|
||||
me.api.asc_setIncludeNewRowColTable(checked);
|
||||
});
|
||||
|
||||
this.chHyperlink = new Common.UI.CheckBox({
|
||||
el: $('#id-autocorrect-dialog-chk-hyperlink'),
|
||||
labelText: this.textHyperlink,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-hyperlink")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
var checked = (field.getValue()==='checked');
|
||||
Common.localStorage.setBool(me.appPrefix + "settings-autoformat-hyperlink", checked);
|
||||
Common.Utils.InternalSettings.set(me.appPrefix + "settings-autoformat-hyperlink", checked);
|
||||
me.api.asc_setAutoCorrectHyperlinks(checked);
|
||||
});
|
||||
}
|
||||
this.chHyperlink = new Common.UI.CheckBox({
|
||||
el: panelAutoFormat.find('#id-autocorrect-dialog-chk-hyperlink'),
|
||||
labelText: this.textHyperlink,
|
||||
value: Common.Utils.InternalSettings.get(this.appPrefix + "settings-autoformat-hyperlink")
|
||||
}).on('change', function(field, newValue, oldValue, eOpts){
|
||||
var checked = (field.getValue()==='checked');
|
||||
Common.localStorage.setBool(me.appPrefix + "settings-autoformat-hyperlink", checked);
|
||||
Common.Utils.InternalSettings.set(me.appPrefix + "settings-autoformat-hyperlink", checked);
|
||||
me.api.asc_SetAutoCorrectHyperlinks(checked);
|
||||
});
|
||||
|
||||
this.btnsCategory[0].on('click', _.bind(this.onMathCategoryClick, this, false));
|
||||
this.btnsCategory[1].on('click', _.bind(this.onRecCategoryClick, this, false));
|
||||
|
|
@ -381,10 +402,10 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
var arr = [
|
||||
this.chReplaceType, this.inputReplace, this.inputBy, this.mathList, this.btnReset, this.btnEdit, this.btnDelete, // 0 tab
|
||||
this.inputRecFind, this.mathRecList, this.btnResetRec, this.btnAddRec, this.btnDeleteRec, // 1 tab
|
||||
this.chFLSentence // 3 tab
|
||||
this.chHyperlink // 2 tab
|
||||
];
|
||||
arr = arr.concat(this.chNewRows ? [this.chHyperlink, this.chNewRows] : [this.chQuotes, this.chHyphens, this.chBulleted, this.chNumbered]);
|
||||
arr = arr.concat(this.chFLSentence ? [this.chFLSentence] : []);
|
||||
arr = arr.concat(this.chNewRows ? [this.chNewRows] : [this.chQuotes, this.chHyphens, this.chBulleted, this.chNumbered]);
|
||||
arr = arr.concat(this.chFLSentence ? [this.chFLSentence, this.chFLCells] : []);
|
||||
return arr;
|
||||
},
|
||||
|
||||
|
|
@ -453,7 +474,7 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
onAutoformatCategoryClick: function(delay) {
|
||||
var me = this;
|
||||
_.delay(function(){
|
||||
me.chHyperlink ? me.chHyperlink.focus() : me.chQuotes.focus();
|
||||
(me.appPrefix=='sse-') ? me.chHyperlink.focus() : me.chQuotes.focus();
|
||||
},delay ? 50 : 0);
|
||||
},
|
||||
|
||||
|
|
@ -829,7 +850,9 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
|
|||
textNewRowCol: 'Include new rows and columns in table',
|
||||
textAutoCorrect: 'AutoCorrect',
|
||||
textFLSentence: 'Capitalize first letter of sentences',
|
||||
textHyperlink: 'Internet and network paths with hyperlinks'
|
||||
textHyperlink: 'Internet and network paths with hyperlinks',
|
||||
textFLCells: 'Capitalize first letter of table cells',
|
||||
textDoubleSpaces: 'Add period with double-space'
|
||||
|
||||
}, Common.Views.AutoCorrectDialog || {}))
|
||||
});
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ define([
|
|||
this.txtMessage.on('keydown', _.bind(this._onKeyDown, this));
|
||||
|
||||
this.setupLayout();
|
||||
|
||||
this.trigger('render:after', this);
|
||||
return this;
|
||||
},
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ define([
|
|||
this._onBtnAddMessage(event);
|
||||
}
|
||||
} else
|
||||
if (event.keyCode == Common.UI.Keys.ESC) {
|
||||
if (event.keyCode == Common.UI.Keys.ESC && !Common.UI.HintManager.isHintVisible()) {
|
||||
this.hide();
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -293,6 +293,9 @@ define([
|
|||
Common.UI.BaseView.prototype.initialize.call(this, options);
|
||||
|
||||
this.store = this.options.store;
|
||||
|
||||
var filter = Common.localStorage.getKeysFilter();
|
||||
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||
},
|
||||
|
||||
render: function () {
|
||||
|
|
@ -304,7 +307,8 @@ define([
|
|||
textAddComment: me.textAddComment,
|
||||
textCancel: me.textCancel,
|
||||
textEnterCommentHint: me.textEnterCommentHint,
|
||||
maxCommLength: Asc.c_oAscMaxCellOrCommentLength
|
||||
maxCommLength: Asc.c_oAscMaxCellOrCommentLength,
|
||||
textComments: me.textComments
|
||||
}));
|
||||
|
||||
this.buttonAddCommentToDoc = new Common.UI.Button({
|
||||
|
|
@ -321,9 +325,90 @@ define([
|
|||
enableToggle: false
|
||||
});
|
||||
|
||||
this.buttonSort = new Common.UI.Button({
|
||||
parentEl: $('#comments-btn-sort', this.$el),
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-sorting',
|
||||
hint: this.textSort,
|
||||
menu: new Common.UI.Menu({
|
||||
menuAlign: 'tr-br',
|
||||
style: 'min-width: auto;',
|
||||
items: [
|
||||
{
|
||||
caption: this.mniDateDesc,
|
||||
value: 'date-desc',
|
||||
checkable: true,
|
||||
checked: (Common.localStorage.getItem(this.appPrefix + "comments-sort") || 'date-desc') === 'date-desc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: this.mniDateAsc,
|
||||
value: 'date-asc',
|
||||
checkable: true,
|
||||
checked: (Common.localStorage.getItem(this.appPrefix + "comments-sort") || 'date-desc') === 'date-asc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: this.mniAuthorAsc,
|
||||
value: 'author-asc',
|
||||
checkable: true,
|
||||
checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'author-asc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: this.mniAuthorDesc,
|
||||
value: 'author-desc',
|
||||
checkable: true,
|
||||
checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'author-desc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: this.mniPositionAsc,
|
||||
value: 'position-asc',
|
||||
checkable: true,
|
||||
visible: this.appPrefix==='de-',
|
||||
checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'position-asc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: this.mniPositionDesc,
|
||||
value: 'position-desc',
|
||||
checkable: true,
|
||||
visible: this.appPrefix==='de-',
|
||||
checked: Common.localStorage.getItem(this.appPrefix + "comments-sort") === 'position-desc',
|
||||
toggleGroup: 'sortcomments'
|
||||
},
|
||||
{
|
||||
caption: '--',
|
||||
visible: false
|
||||
},
|
||||
this.menuFilterGroups = new Common.UI.MenuItem({
|
||||
caption: this.mniFilterGroups,
|
||||
checkable: false,
|
||||
visible: false,
|
||||
menu: new Common.UI.Menu({
|
||||
menuAlign: 'tl-tr',
|
||||
style: 'min-width: auto;',
|
||||
items: []
|
||||
})
|
||||
})
|
||||
]
|
||||
})
|
||||
});
|
||||
|
||||
this.buttonClose = new Common.UI.Button({
|
||||
parentEl: $('#comments-btn-close', this.$el),
|
||||
cls: 'btn-toolbar',
|
||||
iconCls: 'toolbar__icon btn-close',
|
||||
hint: this.textClosePanel
|
||||
});
|
||||
|
||||
this.buttonAddCommentToDoc.on('click', _.bind(this.onClickShowBoxDocumentComment, this));
|
||||
this.buttonAdd.on('click', _.bind(this.onClickAddDocumentComment, this));
|
||||
this.buttonCancel.on('click', _.bind(this.onClickCancelDocumentComment, this));
|
||||
this.buttonClose.on('click', _.bind(this.onClickClosePanel, this));
|
||||
this.buttonSort.menu.on('item:toggle', _.bind(this.onSortClick, this));
|
||||
this.menuFilterGroups.menu.on('item:toggle', _.bind(this.onFilterGroupsClick, this));
|
||||
|
||||
this.txtComment = $('#comment-msg-new', this.el);
|
||||
this.txtComment.keydown(function (event) {
|
||||
|
|
@ -358,7 +443,8 @@ define([
|
|||
textReply: me.textReply,
|
||||
textClose: me.textClose,
|
||||
maxCommLength: Asc.c_oAscMaxCellOrCommentLength
|
||||
}))
|
||||
})),
|
||||
emptyText: me.txtEmpty
|
||||
});
|
||||
|
||||
var addtooltip = function (dataview, view, record) {
|
||||
|
|
@ -379,6 +465,11 @@ define([
|
|||
btns.each(function(idx, item){
|
||||
arr.push($(item).data('bs.tooltip').tip());
|
||||
});
|
||||
btns = $(view.el).find('.i-comment-resolved');
|
||||
btns.tooltip({title: me.textViewResolved, placement: 'cursor'});
|
||||
btns.each(function(idx, item){
|
||||
arr.push($(item).data('bs.tooltip').tip());
|
||||
});
|
||||
view.tipsArray = arr;
|
||||
};
|
||||
|
||||
|
|
@ -402,7 +493,7 @@ define([
|
|||
},
|
||||
updateScrolls: function () {
|
||||
if (this.commentsView && this.commentsView.scroller) {
|
||||
this.commentsView.scroller.update({minScrollbarLength: 40, alwaysVisibleY: true});
|
||||
this.commentsView.scroller.update({minScrollbarLength: this.commentsView.minScrollbarLength, alwaysVisibleY: true});
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -658,6 +749,9 @@ define([
|
|||
getUserName: function (username) {
|
||||
return Common.Utils.String.htmlEncode(AscCommon.UserInfoParser.getParsedName(username));
|
||||
},
|
||||
getEncodedName: function (username) {
|
||||
return Common.Utils.String.htmlEncode(username);
|
||||
},
|
||||
|
||||
pickLink: function (message) {
|
||||
var arr = [], offset, len;
|
||||
|
|
@ -713,7 +807,7 @@ define([
|
|||
},
|
||||
|
||||
pickEMail: function (commentId, message) {
|
||||
var arr = Common.Utils.String.htmlEncode(message).match(/\B[@+][A-Z0-9._%+-]+@[A-Z0-9._]+\.[A-Z]+\b/gi);
|
||||
var arr = Common.Utils.String.htmlEncode(message).match(/\B[@+][A-Z0-9._%+-]+@[A-Z0-9._-]+\.[A-Z]+\b/gi);
|
||||
arr = _.map(arr, function(str){
|
||||
return str.slice(1, str.length);
|
||||
});
|
||||
|
|
@ -730,6 +824,18 @@ define([
|
|||
});
|
||||
},
|
||||
|
||||
onSortClick: function(menu, item, state) {
|
||||
state && this.fireEvent('comment:sort', [item.value]);
|
||||
},
|
||||
|
||||
onFilterGroupsClick: function(menu, item, state) {
|
||||
state && this.fireEvent('comment:filtergroups', [item.value]);
|
||||
},
|
||||
|
||||
onClickClosePanel: function() {
|
||||
Common.NotificationCenter.trigger('leftmenu:change', 'hide');
|
||||
},
|
||||
|
||||
textComments : 'Comments',
|
||||
textAnonym : 'Guest',
|
||||
textAddCommentToDoc : 'Add Comment to Document',
|
||||
|
|
@ -744,6 +850,18 @@ define([
|
|||
textEdit : 'Edit',
|
||||
textAdd : "Add",
|
||||
textOpenAgain : "Open Again",
|
||||
textHintAddComment : 'Add Comment'
|
||||
textHintAddComment : 'Add Comment',
|
||||
textSort: 'Sort comments',
|
||||
mniPositionAsc: 'From top',
|
||||
mniPositionDesc: 'From bottom',
|
||||
mniAuthorAsc: 'Author A to Z',
|
||||
mniAuthorDesc: 'Author Z to A',
|
||||
mniDateDesc: 'Newest',
|
||||
mniDateAsc: 'Oldest',
|
||||
textClosePanel: 'Close comments',
|
||||
textViewResolved: 'You have not permission for reopen comment',
|
||||
mniFilterGroups: 'Filter by Group',
|
||||
textAll: 'All',
|
||||
txtEmpty: 'There are no comments in the document.'
|
||||
}, Common.Views.Comments || {}))
|
||||
});
|
||||
|
|
@ -95,7 +95,7 @@ define([
|
|||
labelText: this.textDontShow
|
||||
});
|
||||
|
||||
this.getChild().find('.btn').on('click', _.bind(this.onBtnClick, this));
|
||||
this.getChild().find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||
this.autoSize();
|
||||
},
|
||||
|
||||
|
|
@ -126,7 +126,7 @@ define([
|
|||
},
|
||||
|
||||
textTitle : 'Copy, Cut and Paste Actions',
|
||||
textMsg : 'Copy, cut and paste actions using the editor toolbar buttons and context menu actions will be performed within this editor tab only.<br><br>.To copy or paste to or from applications outside the editor tab use the following keyboard combinations:',
|
||||
textMsg : 'Copy, cut and paste actions using the editor toolbar buttons and context menu actions will be performed within this editor tab only.<br><br>To copy or paste to or from applications outside the editor tab use the following keyboard combinations:',
|
||||
textToCopy : 'for Copy',
|
||||
textToPaste : 'for Paste',
|
||||
textToCut: 'for Cut',
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ define([
|
|||
me.inputLabel.setValue(this.options.value || '' );
|
||||
|
||||
var $window = this.getChild();
|
||||
$window.find('.btn').on('click', _.bind(this.onBtnClick, this));
|
||||
$window.find('.dlg-btn').on('click', _.bind(this.onBtnClick, this));
|
||||
},
|
||||
|
||||
show: function() {
|
||||
|
|
|
|||
|
|
@ -62,8 +62,8 @@ define([
|
|||
'</div>',
|
||||
'<div class="separator horizontal"></div>',
|
||||
'<div class="footer" style="text-align: center;">',
|
||||
'<button id="id-btn-diagram-editor-apply" class="btn normal dlg-btn primary custom" result="ok">' + this.textSave + '</button>',
|
||||
'<button id="id-btn-diagram-editor-cancel" class="btn normal dlg-btn" result="cancel">' + this.textClose + '</button>',
|
||||
'<button id="id-btn-diagram-editor-apply" class="btn normal dlg-btn primary custom" result="ok" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textSave + '</button>',
|
||||
'<button id="id-btn-diagram-editor-cancel" class="btn normal dlg-btn" result="cancel" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textClose + '</button>',
|
||||
'</div>'
|
||||
].join('');
|
||||
|
||||
|
|
|
|||
|
|
@ -61,8 +61,8 @@ define([
|
|||
'</div>',
|
||||
'<div class="separator horizontal"></div>',
|
||||
'<div class="footer" style="text-align: center;">',
|
||||
'<button id="id-btn-merge-editor-apply" class="btn normal dlg-btn primary custom" result="ok">' + this.textSave + '</button>',
|
||||
'<button id="id-btn-merge-editor-cancel" class="btn normal dlg-btn disabled" result="cancel">' + this.textClose + '</button>',
|
||||
'<button id="id-btn-merge-editor-apply" class="btn normal dlg-btn primary custom" result="ok" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textSave + '</button>',
|
||||
'<button id="id-btn-merge-editor-cancel" class="btn normal dlg-btn" result="cancel" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textClose + '</button>',
|
||||
'</div>'
|
||||
].join('');
|
||||
|
||||
|
|
|
|||
164
apps/common/main/lib/view/ExternalOleEditor.js
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
*
|
||||
* (c) Copyright Ascensio System SIA 2010-2022
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
/**
|
||||
* ExternalOleEditor.js
|
||||
*
|
||||
* Created by Julia Radzhabova on 3/10/22
|
||||
* Copyright (c) 2022 Ascensio System SIA. All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
define([
|
||||
'common/main/lib/component/Window'
|
||||
], function () { 'use strict';
|
||||
|
||||
Common.Views.ExternalOleEditor = Common.UI.Window.extend(_.extend({
|
||||
initialize : function(options) {
|
||||
var _options = {};
|
||||
var _inner_height = Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top');
|
||||
_.extend(_options, {
|
||||
title: this.textTitle,
|
||||
width: 910,
|
||||
height: (_inner_height - 700)<0 ? _inner_height : 700,
|
||||
cls: 'advanced-settings-dlg',
|
||||
header: true,
|
||||
toolclose: 'hide',
|
||||
toolcallback: _.bind(this.onToolClose, this)
|
||||
}, options);
|
||||
|
||||
this.template = [
|
||||
'<div id="id-ole-editor-container" class="box" style="height:' + (_options.height-85) + 'px;">',
|
||||
'<div id="id-ole-editor-placeholder" style="width: 100%;height: 100%;"></div>',
|
||||
'</div>',
|
||||
'<div class="separator horizontal"></div>',
|
||||
'<div class="footer" style="text-align: center;">',
|
||||
'<button id="id-btn-ole-editor-apply" class="btn normal dlg-btn primary custom" result="ok" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textSave + '</button>',
|
||||
'<button id="id-btn-ole-editor-cancel" class="btn normal dlg-btn" result="cancel" data-hint="1" data-hint-direction="bottom" data-hint-offset="big">' + this.textClose + '</button>',
|
||||
'</div>'
|
||||
].join('');
|
||||
|
||||
_options.tpl = _.template(this.template)(_options);
|
||||
|
||||
this.handler = _options.handler;
|
||||
this._oleData = null;
|
||||
this._isNewOle = true;
|
||||
Common.UI.Window.prototype.initialize.call(this, _options);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
Common.UI.Window.prototype.render.call(this);
|
||||
|
||||
this.btnSave = new Common.UI.Button({
|
||||
el: $('#id-btn-ole-editor-apply'),
|
||||
disabled: true
|
||||
});
|
||||
this.btnCancel = new Common.UI.Button({
|
||||
el: $('#id-btn-ole-editor-cancel')
|
||||
});
|
||||
|
||||
this.$window.find('.dlg-btn').on('click', _.bind(this.onDlgBtnClick, this));
|
||||
},
|
||||
|
||||
show: function() {
|
||||
this.setPlaceholder();
|
||||
Common.UI.Window.prototype.show.apply(this, arguments);
|
||||
},
|
||||
|
||||
setOleData: function(data) {
|
||||
this._oleData = data;
|
||||
if (this._isExternalDocReady)
|
||||
this.fireEvent('setoledata', this);
|
||||
},
|
||||
|
||||
setEditMode: function(mode) {
|
||||
this._isNewOle = !mode;
|
||||
},
|
||||
|
||||
isEditMode: function() {
|
||||
return !this._isNewOle;
|
||||
},
|
||||
|
||||
setControlsDisabled: function(disable) {
|
||||
this.btnSave.setDisabled(disable);
|
||||
this.btnCancel.setDisabled(disable);
|
||||
(disable) ? this.$window.find('.tool.close').addClass('disabled') : this.$window.find('.tool.close').removeClass('disabled');
|
||||
},
|
||||
|
||||
onDlgBtnClick: function(event) {
|
||||
if ( this.handler ) {
|
||||
this.handler.call(this, event.currentTarget.attributes['result'].value);
|
||||
return;
|
||||
}
|
||||
this.hide();
|
||||
},
|
||||
|
||||
onToolClose: function() {
|
||||
if ( this.handler ) {
|
||||
this.handler.call(this, 'cancel');
|
||||
return;
|
||||
}
|
||||
this.hide();
|
||||
},
|
||||
|
||||
setHeight: function(height) {
|
||||
if (height >= 0) {
|
||||
var min = parseInt(this.$window.css('min-height'));
|
||||
height < min && (height = min);
|
||||
this.$window.height(height);
|
||||
|
||||
var header_height = (this.initConfig.header) ? parseInt(this.$window.find('> .header').css('height')) : 0;
|
||||
|
||||
this.$window.find('> .body').css('height', height-header_height);
|
||||
this.$window.find('> .body > .box').css('height', height-85);
|
||||
|
||||
var top = (Common.Utils.innerHeight() - Common.Utils.InternalSettings.get('window-inactive-area-top') - parseInt(height)) / 2;
|
||||
var left = (Common.Utils.innerWidth() - parseInt(this.initConfig.width)) / 2;
|
||||
|
||||
this.$window.css('left',left);
|
||||
this.$window.css('top', Common.Utils.InternalSettings.get('window-inactive-area-top') + top);
|
||||
}
|
||||
},
|
||||
|
||||
setPlaceholder: function(placeholder) {
|
||||
this._placeholder = placeholder;
|
||||
},
|
||||
|
||||
getPlaceholder: function() {
|
||||
return this._placeholder;
|
||||
},
|
||||
|
||||
textSave: 'Save & Exit',
|
||||
textClose: 'Close',
|
||||
textTitle: 'Spreadsheet Editor'
|
||||
}, Common.Views.ExternalOleEditor || {}));
|
||||
});
|
||||