Compare commits
1069 commits
feature/fi
...
master
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 | ||
|
4e2c55959a | ||
|
98a995a6cc | ||
|
b1bca1b0ba | ||
|
a3ed7dd01b | ||
|
13a79663e6 | ||
|
88bba1bb91 | ||
|
7dce541fca | ||
|
dbd1055e0a | ||
|
90b1bdc89c | ||
|
4444d1d687 | ||
|
9922a715c0 | ||
|
6f203af127 | ||
|
1ed6a7b830 | ||
|
51c0fe6650 | ||
|
74c2e8aba0 | ||
|
3c5fc2e301 | ||
|
a53a2d1098 | ||
|
c10d349a19 | ||
|
c64539f2ab | ||
|
25b48c032e | ||
|
3d4796314f | ||
|
f1496c9e37 | ||
|
d2fbf94976 | ||
|
da047e1eaa | ||
|
f906543e87 | ||
|
3ca7944460 | ||
|
0cc9581c6d | ||
|
acef87970d | ||
|
e7cc5fa105 | ||
|
c56c0b47be | ||
|
4c4e478007 | ||
|
ec831ded6a | ||
|
e77f9db33d | ||
|
0ace27c7db | ||
|
42166e1f8f | ||
|
37b0fd88d3 | ||
|
2c07d642e1 | ||
|
8763262670 | ||
|
dbf08b77bc | ||
|
f91f696cd6 | ||
|
2bfe6b2d2c | ||
|
2ac854edc4 | ||
|
3a774f6546 | ||
|
468e51cc8e | ||
|
2de78cda79 | ||
|
92e95b1509 | ||
|
368f7306e4 | ||
|
2bf17f6f5a | ||
|
ab5241d11a | ||
|
e7b1f74f57 | ||
|
c44fdfc61e | ||
|
9336d891d7 | ||
|
d00d8c428d | ||
|
14cf16f201 | ||
|
c6edf94028 |
|
@ -115,6 +115,7 @@
|
||||||
address: 'New-York, 125f-25',
|
address: 'New-York, 125f-25',
|
||||||
mail: 'support@gmail.com',
|
mail: 'support@gmail.com',
|
||||||
www: 'www.superpuper.com',
|
www: 'www.superpuper.com',
|
||||||
|
phone: '1234567890',
|
||||||
info: 'Some info',
|
info: 'Some info',
|
||||||
logo: '',
|
logo: '',
|
||||||
logoDark: '', // logo for dark theme
|
logoDark: '', // logo for dark theme
|
||||||
|
@ -217,6 +218,7 @@
|
||||||
hideRulers: false // hide or show rulers on first loading (presentation or document editor)
|
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)
|
hideNotes: false // hide or show notes panel on first loading (presentation editor)
|
||||||
uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light
|
uiTheme: 'theme-dark' // set interface theme: id or default-dark/default-light
|
||||||
|
integrationMode: "embed" // turn off scroll to frame
|
||||||
},
|
},
|
||||||
coEditing: {
|
coEditing: {
|
||||||
mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor
|
mode: 'fast', // <coauthoring mode>, 'fast' or 'strict'. if 'fast' and 'customization.autosave'=false -> set 'customization.autosave'=true. 'fast' - default for editor
|
||||||
|
@ -489,6 +491,9 @@
|
||||||
|
|
||||||
if (target && _checkConfigParams()) {
|
if (target && _checkConfigParams()) {
|
||||||
iframe = createIframe(_config);
|
iframe = createIframe(_config);
|
||||||
|
if (_config.editorConfig.customization && _config.editorConfig.customization.integrationMode==='embed')
|
||||||
|
window.AscEmbed && window.AscEmbed.initWorker(iframe);
|
||||||
|
|
||||||
if (iframe.src) {
|
if (iframe.src) {
|
||||||
var pathArray = iframe.src.split('/');
|
var pathArray = iframe.src.split('/');
|
||||||
this.frameOrigin = pathArray[0] + '//' + pathArray[2];
|
this.frameOrigin = pathArray[0] + '//' + pathArray[2];
|
||||||
|
@ -973,25 +978,6 @@
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFrameTitle(config) {
|
|
||||||
var title = 'Powerful online editor for text documents, spreadsheets, and presentations';
|
|
||||||
var appMap = {
|
|
||||||
'text': 'text documents',
|
|
||||||
'spreadsheet': 'spreadsheets',
|
|
||||||
'presentation': 'presentations',
|
|
||||||
'word': 'text documents',
|
|
||||||
'cell': 'spreadsheets',
|
|
||||||
'slide': 'presentations'
|
|
||||||
};
|
|
||||||
|
|
||||||
if (typeof config.documentType === 'string') {
|
|
||||||
var app = appMap[config.documentType.toLowerCase()];
|
|
||||||
if (app)
|
|
||||||
title = 'Powerful online editor for ' + app;
|
|
||||||
}
|
|
||||||
return title;
|
|
||||||
}
|
|
||||||
|
|
||||||
function createIframe(config) {
|
function createIframe(config) {
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
|
|
||||||
|
@ -1001,11 +987,11 @@
|
||||||
iframe.align = "top";
|
iframe.align = "top";
|
||||||
iframe.frameBorder = 0;
|
iframe.frameBorder = 0;
|
||||||
iframe.name = "frameEditor";
|
iframe.name = "frameEditor";
|
||||||
iframe.title = getFrameTitle(config);
|
config.title && (typeof config.title === 'string') && (iframe.title = config.title);
|
||||||
iframe.allowFullscreen = true;
|
iframe.allowFullscreen = true;
|
||||||
iframe.setAttribute("allowfullscreen",""); // for IE11
|
iframe.setAttribute("allowfullscreen",""); // for IE11
|
||||||
iframe.setAttribute("onmousewheel",""); // for Safari on Mac
|
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")
|
if (config.type == "mobile")
|
||||||
{
|
{
|
||||||
|
|
|
@ -262,7 +262,7 @@ div {
|
||||||
var config = {
|
var config = {
|
||||||
"width": "100%",
|
"width": "100%",
|
||||||
"height": "100%",
|
"height": "100%",
|
||||||
"type": "desktop",
|
"type": queryParams.embed==="1" ? "embedded" : "desktop",
|
||||||
"documentType": documentType,
|
"documentType": documentType,
|
||||||
"token": token,
|
"token": token,
|
||||||
"document": {
|
"document": {
|
||||||
|
|
|
@ -57,6 +57,16 @@
|
||||||
|
|
||||||
$dlgShare.find('#btn-copyshort').on('click', copytext.bind(this, $dlgShare.find('#id-short-url')));
|
$dlgShare.find('#btn-copyshort').on('click', copytext.bind(this, $dlgShare.find('#id-short-url')));
|
||||||
$dlgShare.find('.share-buttons > span').on('click', function(e){
|
$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;
|
var _url;
|
||||||
switch ($(e.target).attr('data-name')) {
|
switch ($(e.target).attr('data-name')) {
|
||||||
case 'facebook':
|
case 'facebook':
|
||||||
|
|
|
@ -36,6 +36,11 @@
|
||||||
!common.utils && (common.utils = {});
|
!common.utils && (common.utils = {});
|
||||||
|
|
||||||
common.utils = new(function(){
|
common.utils = new(function(){
|
||||||
|
var userAgent = navigator.userAgent.toLowerCase(),
|
||||||
|
check = function(regex){
|
||||||
|
return regex.test(userAgent);
|
||||||
|
},
|
||||||
|
isMac = check(/macintosh|mac os x/);
|
||||||
return {
|
return {
|
||||||
openLink: function(url) {
|
openLink: function(url) {
|
||||||
if (url) {
|
if (url) {
|
||||||
|
@ -100,7 +105,9 @@
|
||||||
return prop;
|
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;
|
var _$dlg;
|
||||||
if (name == 'share') {
|
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
|
_$dlg = $(tplDialog
|
||||||
.replace(/\{title}/, this.txtShare)
|
.replace(/\{title}/, this.txtShare)
|
||||||
.replace(/\{body}/, _tplbody_share)
|
.replace(/\{body}/, _tplbody_share)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<svg width="380" height="40" viewBox="0 0 380 40" fill="none" xmlns="http://www.w3.org/2000/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="icon-menu-sprite Embedded Viewer">
|
||||||
<g id="view-settings">
|
<g id="view-settings">
|
||||||
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
||||||
|
@ -148,5 +148,73 @@
|
||||||
<g id="close_2">
|
<g id="close_2">
|
||||||
<path id="Vector 73_2" d="M366 5L375 14M375 5L366 14" stroke="black" stroke-width="1.5"/>
|
<path id="Vector 73_2" d="M366 5L375 14M375 5L366 14" stroke="black" stroke-width="1.5"/>
|
||||||
</g>
|
</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>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 22 KiB |
|
@ -503,7 +503,7 @@
|
||||||
@icon-height: 20px;
|
@icon-height: 20px;
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
background: data-uri('../../../../common/embed/resources/img/icon-menu-sprite.svg') no-repeat;
|
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 {
|
&.download {
|
||||||
background-position: -@icon-width 0;
|
background-position: -@icon-width 0;
|
||||||
|
@ -557,6 +557,18 @@
|
||||||
&.more-vertical {
|
&.more-vertical {
|
||||||
background-position: -@icon-width*14 0;
|
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 {
|
.mi-icon {
|
||||||
|
@ -786,3 +798,72 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
<svg width="480" height="40" viewBox="0 0 480 40" fill="none" xmlns="http://www.w3.org/2000/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="icon-menu-sprite Embedded Viewer">
|
||||||
<g id="view-settings">
|
<g id="view-settings">
|
||||||
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
<path id="Vector" d="M17 26H3V27H17V26Z" fill="white"/>
|
||||||
|
@ -184,5 +184,37 @@
|
||||||
<g id="undo_2">
|
<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"/>
|
<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>
|
||||||
|
<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>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 20 KiB |
|
@ -5,6 +5,7 @@
|
||||||
@import "../../../../common/main/resources/less/colors-table.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-classic.less";
|
||||||
@import "../../../../common/main/resources/less/colors-table-dark.less";
|
@import "../../../../common/main/resources/less/colors-table-dark.less";
|
||||||
|
@import "../../../../common/main/resources/less/colors-table-dark-contrast.less";
|
||||||
|
|
||||||
// Core variables and mixins
|
// Core variables and mixins
|
||||||
//@import "../../../../../vendor/bootstrap/less/variables.less";
|
//@import "../../../../../vendor/bootstrap/less/variables.less";
|
||||||
|
@ -81,6 +82,7 @@
|
||||||
@import "../../../../common/main/resources/less/checkbox.less";
|
@import "../../../../common/main/resources/less/checkbox.less";
|
||||||
@import "../../../../common/main/resources/less/opendialog.less";
|
@import "../../../../common/main/resources/less/opendialog.less";
|
||||||
@import "../../../../common/main/resources/less/advanced-settings-window.less";
|
@import "../../../../common/main/resources/less/advanced-settings-window.less";
|
||||||
|
@import "../../../../common/main/resources/less/searchdialog.less";
|
||||||
|
|
||||||
@toolbarBorderColor: @border-toolbar-ie;
|
@toolbarBorderColor: @border-toolbar-ie;
|
||||||
@toolbarBorderColor: @border-toolbar;
|
@toolbarBorderColor: @border-toolbar;
|
||||||
|
@ -225,7 +227,7 @@
|
||||||
background: data-uri('../../../../common/main/resources/img/header/dark-logo_s.svg') no-repeat;
|
background: data-uri('../../../../common/main/resources/img/header/dark-logo_s.svg') no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme-dark {
|
.theme-type-dark {
|
||||||
.brand-logo {
|
.brand-logo {
|
||||||
background: data-uri('../../../../common/main/resources/img/header/header-logo_s.svg') no-repeat;
|
background: data-uri('../../../../common/main/resources/img/header/header-logo_s.svg') no-repeat;
|
||||||
}
|
}
|
||||||
|
@ -431,7 +433,7 @@
|
||||||
@icon-width: 20px;
|
@icon-width: 20px;
|
||||||
@icon-height: 20px;
|
@icon-height: 20px;
|
||||||
|
|
||||||
.theme-dark {
|
.theme-type-dark {
|
||||||
@neg-value: -@icon-height;
|
@neg-value: -@icon-height;
|
||||||
--icon-normal-top: @neg-value;
|
--icon-normal-top: @neg-value;
|
||||||
}
|
}
|
||||||
|
@ -439,7 +441,7 @@
|
||||||
|
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
background: data-uri('../../../../common/forms/resources/img/icon-menu-sprite.svg') no-repeat;
|
background: data-uri('../../../../common/forms/resources/img/icon-menu-sprite.svg') no-repeat;
|
||||||
background-size: @icon-width*24 @icon-height*2;
|
background-size: @icon-width*29 @icon-height*2;
|
||||||
|
|
||||||
&.download {
|
&.download {
|
||||||
background-position: -@icon-width 0;
|
background-position: -@icon-width 0;
|
||||||
|
@ -531,6 +533,30 @@
|
||||||
background-position: -@icon-width*23 0;
|
background-position: -@icon-width*23 0;
|
||||||
background-position: -@icon-width*23 @icon-normal-top;
|
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 {
|
.btn {
|
||||||
|
@ -670,3 +696,7 @@
|
||||||
.font-size-large {
|
.font-size-large {
|
||||||
.fontsize(@font-size-large);
|
.fontsize(@font-size-large);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.search-bar {
|
||||||
|
z-index: 50;
|
||||||
|
}
|
|
@ -88,6 +88,10 @@ Common.Locale = new(function() {
|
||||||
return currentLang;
|
return currentLang;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var _getDefaultLanguage = function() {
|
||||||
|
return defLang;
|
||||||
|
};
|
||||||
|
|
||||||
var _getLoadedLanguage = function() {
|
var _getLoadedLanguage = function() {
|
||||||
return loadedLang;
|
return loadedLang;
|
||||||
};
|
};
|
||||||
|
@ -170,7 +174,8 @@ Common.Locale = new(function() {
|
||||||
return {
|
return {
|
||||||
apply: _applyLocalization,
|
apply: _applyLocalization,
|
||||||
get: _get,
|
get: _get,
|
||||||
getCurrentLanguage: _getCurrentLanguage
|
getCurrentLanguage: _getCurrentLanguage,
|
||||||
|
getDefaultLanguage: _getDefaultLanguage
|
||||||
};
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -55,12 +55,15 @@ define([
|
||||||
|
|
||||||
getPicker: function(color, colors) {
|
getPicker: function(color, colors) {
|
||||||
if (!this.colorPicker) {
|
if (!this.colorPicker) {
|
||||||
this.colorPicker = new Common.UI.ThemeColorPalette({
|
var config = {
|
||||||
el: this.cmpEl.find('#' + this.menu.id + '-color-menu'),
|
el: this.cmpEl.find('#' + this.menu.id + '-color-menu'),
|
||||||
transparent: this.options.transparent,
|
|
||||||
value: color,
|
value: color,
|
||||||
colors: colors
|
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.colorPicker.on('select', _.bind(this.onColorSelect, this));
|
||||||
this.cmpEl.find('#' + this.menu.id + '-color-new').on('click', _.bind(this.addNewColor, this));
|
this.cmpEl.find('#' + this.menu.id + '-color-new').on('click', _.bind(this.addNewColor, this));
|
||||||
if (this.options.auto) {
|
if (this.options.auto) {
|
||||||
|
@ -80,7 +83,7 @@ define([
|
||||||
getMenu: function(options) {
|
getMenu: function(options) {
|
||||||
if (typeof this.menu !== 'object') {
|
if (typeof this.menu !== 'object') {
|
||||||
options = options || this.options;
|
options = options || this.options;
|
||||||
var height = options.paletteHeight || 240,
|
var height = options.paletteHeight ? options.paletteHeight + 'px' : 'auto',
|
||||||
id = Common.UI.getId(),
|
id = Common.UI.getId(),
|
||||||
auto = [];
|
auto = [];
|
||||||
if (options.auto) {
|
if (options.auto) {
|
||||||
|
@ -98,7 +101,8 @@ define([
|
||||||
cls: 'shifted-left',
|
cls: 'shifted-left',
|
||||||
additionalAlign: options.additionalAlign,
|
additionalAlign: options.additionalAlign,
|
||||||
items: (options.additionalItems ? options.additionalItems : []).concat(auto).concat([
|
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('<div id="' + id + '-color-menu" style="width: 164px; height:' + height + '; display: inline-block;"></div>') },
|
||||||
|
{caption: '--'},
|
||||||
{
|
{
|
||||||
id: id + '-color-new',
|
id: id + '-color-new',
|
||||||
template: _.template('<a tabindex="-1" type="menuitem" style="">' + this.textNewColor + '</a>')
|
template: _.template('<a tabindex="-1" type="menuitem" style="">' + this.textNewColor + '</a>')
|
||||||
|
|
|
@ -358,6 +358,9 @@ define([
|
||||||
Common.NotificationCenter.trigger('menu:hide', this, isFromInputControl);
|
Common.NotificationCenter.trigger('menu:hide', this, isFromInputControl);
|
||||||
if (this.options.takeFocusOnClose) {
|
if (this.options.takeFocusOnClose) {
|
||||||
var me = this;
|
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);
|
setTimeout(function(){me.focus();}, 1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -66,12 +66,12 @@ define([
|
||||||
spriteCols = 1,
|
spriteCols = 1,
|
||||||
applicationPixelRatio = Common.Utils.applicationPixelRatio();
|
applicationPixelRatio = Common.Utils.applicationPixelRatio();
|
||||||
|
|
||||||
if (typeof window['AscDesktopEditor'] === 'object') {
|
if ( Common.Controllers.Desktop.isActive() ) {
|
||||||
thumbs[0].path = window['AscDesktopEditor'].getFontsSprite('');
|
thumbs[0].path = Common.Controllers.Desktop.call('getFontsSprite');
|
||||||
thumbs[1].path = window['AscDesktopEditor'].getFontsSprite('@1.25x');
|
thumbs[1].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.25x');
|
||||||
thumbs[2].path = window['AscDesktopEditor'].getFontsSprite('@1.5x');
|
thumbs[2].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.5x');
|
||||||
thumbs[3].path = window['AscDesktopEditor'].getFontsSprite('@1.75x');
|
thumbs[3].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.75x');
|
||||||
thumbs[4].path = window['AscDesktopEditor'].getFontsSprite('@2x');
|
thumbs[4].path = Common.Controllers.Desktop.call('getFontsSprite', '@2x');
|
||||||
}
|
}
|
||||||
|
|
||||||
var bestDistance = Math.abs(applicationPixelRatio-thumbs[0].ratio);
|
var bestDistance = Math.abs(applicationPixelRatio-thumbs[0].ratio);
|
||||||
|
@ -88,6 +88,201 @@ define([
|
||||||
thumbCanvas.height = thumbs[thumbIdx].height;
|
thumbCanvas.height = thumbs[thumbIdx].height;
|
||||||
thumbCanvas.width = thumbs[thumbIdx].width;
|
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 {
|
return {
|
||||||
template: _.template([
|
template: _.template([
|
||||||
'<div class="input-group combobox fonts <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
'<div class="input-group combobox fonts <%= cls %>" id="<%= id %>" style="<%= style %>">',
|
||||||
|
@ -305,10 +500,8 @@ define([
|
||||||
return img != null ? img[0].src : undefined;
|
return img != null ? img[0].src : undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
thumbContext.clearRect(0, 0, thumbs[thumbIdx].width, thumbs[thumbIdx].height);
|
var index = Math.floor(opts.imgidx/spriteCols);
|
||||||
thumbContext.drawImage(this.spriteThumbs, 0, -thumbs[thumbIdx].height * Math.floor(opts.imgidx/spriteCols));
|
return this.spriteThumbs.getImage(index, thumbCanvas, thumbContext).toDataURL();
|
||||||
|
|
||||||
return thumbCanvas.toDataURL();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getImageWidth: function() {
|
getImageWidth: function() {
|
||||||
|
@ -324,11 +517,8 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
loadSprite: function(callback) {
|
loadSprite: function(callback) {
|
||||||
if (callback) {
|
this.spriteThumbs = new CThumbnailLoader();
|
||||||
this.spriteThumbs = new Image();
|
this.spriteThumbs.load(thumbs[thumbIdx].path, callback);
|
||||||
this.spriteThumbs.onload = callback;
|
|
||||||
this.spriteThumbs.src = thumbs[thumbIdx].path;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
fillFonts: function(store, select) {
|
fillFonts: function(store, select) {
|
||||||
|
@ -554,19 +744,8 @@ define([
|
||||||
for (j = 0; j < storeCount; ++j) {
|
for (j = 0; j < storeCount; ++j) {
|
||||||
if (from <= j && j < to) {
|
if (from <= j && j < to) {
|
||||||
if (null === me.tiles[j]) {
|
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);
|
index = Math.floor(me.store.at(j).get('imgidx')/spriteCols);
|
||||||
|
var fontImage = me.spriteThumbs.getImage(index);
|
||||||
context.clearRect(0, 0, thumbs[thumbIdx].width, thumbs[thumbIdx].height);
|
|
||||||
context.drawImage(me.spriteThumbs, 0, -thumbs[thumbIdx].height * index);
|
|
||||||
|
|
||||||
me.tiles[j] = fontImage;
|
me.tiles[j] = fontImage;
|
||||||
$(listItems[j]).get(0).appendChild(fontImage);
|
$(listItems[j]).get(0).appendChild(fontImage);
|
||||||
|
|
|
@ -476,12 +476,12 @@ define([
|
||||||
var me = this,
|
var me = this,
|
||||||
view_el = $(view.el),
|
view_el = $(view.el),
|
||||||
tip = record.get('tip');
|
tip = record.get('tip');
|
||||||
if (tip) {
|
if (tip!==undefined && tip!==null) {
|
||||||
if (this.delayRenderTips)
|
if (this.delayRenderTips)
|
||||||
view_el.one('mouseenter', function(){ // hide tooltip when mouse is over menu
|
view_el.one('mouseenter', function(){ // hide tooltip when mouse is over menu
|
||||||
view_el.attr('data-toggle', 'tooltip');
|
view_el.attr('data-toggle', 'tooltip');
|
||||||
view_el.tooltip({
|
view_el.tooltip({
|
||||||
title : tip,
|
title : record.get('tip'), // use actual tip, because it can be changed
|
||||||
placement : 'cursor',
|
placement : 'cursor',
|
||||||
zIndex : me.tipZIndex
|
zIndex : me.tipZIndex
|
||||||
});
|
});
|
||||||
|
@ -490,7 +490,7 @@ define([
|
||||||
else {
|
else {
|
||||||
view_el.attr('data-toggle', 'tooltip');
|
view_el.attr('data-toggle', 'tooltip');
|
||||||
view_el.tooltip({
|
view_el.tooltip({
|
||||||
title : tip,
|
title : record.get('tip'), // use actual tip, because it can be changed
|
||||||
placement : 'cursor',
|
placement : 'cursor',
|
||||||
zIndex : me.tipZIndex
|
zIndex : me.tipZIndex
|
||||||
});
|
});
|
||||||
|
@ -1652,7 +1652,18 @@ define([
|
||||||
|
|
||||||
if (recents.length > 0 && diff) {
|
if (recents.length > 0 && diff) {
|
||||||
me.recentShapes = recents;
|
me.recentShapes = recents;
|
||||||
me.groups[0].groupStore.reset(me.recentShapes);
|
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();
|
var store = new Common.UI.DataViewStore();
|
||||||
_.each(me.groups, function (group) {
|
_.each(me.groups, function (group) {
|
||||||
|
|
|
@ -81,7 +81,7 @@ define([
|
||||||
template: _.template([
|
template: _.template([
|
||||||
'<div class="input-field" style="<%= style %>">',
|
'<div class="input-field" style="<%= style %>">',
|
||||||
'<input ',
|
'<input ',
|
||||||
'type="text" ',
|
'type="<%= type %>" ',
|
||||||
'name="<%= name %>" ',
|
'name="<%= name %>" ',
|
||||||
'spellcheck="<%= spellcheck %>" ',
|
'spellcheck="<%= spellcheck %>" ',
|
||||||
'class="form-control <%= cls %>" ',
|
'class="form-control <%= cls %>" ',
|
||||||
|
@ -164,8 +164,6 @@ define([
|
||||||
this._input.on('keydown', _.bind(this.onKeyDown, this));
|
this._input.on('keydown', _.bind(this.onKeyDown, this));
|
||||||
this._input.on('keyup', _.bind(this.onKeyUp, this));
|
this._input.on('keyup', _.bind(this.onKeyUp, this));
|
||||||
if (this.validateOnChange) this._input.on('input', _.bind(this.onInputChanging, this));
|
if (this.validateOnChange) this._input.on('input', _.bind(this.onInputChanging, this));
|
||||||
if (this.type=='password') this._input.on('input', _.bind(this.checkPasswordType, this));
|
|
||||||
|
|
||||||
if (this.maxLength) this._input.attr('maxlength', this.maxLength);
|
if (this.maxLength) this._input.attr('maxlength', this.maxLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,15 +188,6 @@ define([
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
checkPasswordType: function(){
|
|
||||||
if(this.type == 'text') return;
|
|
||||||
if (this._input.val() !== '') {
|
|
||||||
(this._input.attr('type') !== 'password') && this._input.attr('type', 'password');
|
|
||||||
} else {
|
|
||||||
this._input.attr('type', 'text');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_doChange: function(e, extra) {
|
_doChange: function(e, extra) {
|
||||||
// skip processing for internally-generated synthetic event
|
// skip processing for internally-generated synthetic event
|
||||||
// to avoid double processing
|
// to avoid double processing
|
||||||
|
@ -317,8 +306,6 @@ define([
|
||||||
if (this.rendered){
|
if (this.rendered){
|
||||||
this._input.val(value);
|
this._input.val(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
(this.type=='password') && this.checkPasswordType();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getValue: function() {
|
getValue: function() {
|
||||||
|
@ -438,12 +425,15 @@ define([
|
||||||
template: _.template([
|
template: _.template([
|
||||||
'<div class="input-field input-field-btn" style="<%= style %>">',
|
'<div class="input-field input-field-btn" style="<%= style %>">',
|
||||||
'<input ',
|
'<input ',
|
||||||
'type="text" ',
|
'type=<%= type %> ',
|
||||||
'name="<%= name %>" ',
|
'name="<%= name %>" ',
|
||||||
'spellcheck="<%= spellcheck %>" ',
|
'spellcheck="<%= spellcheck %>" ',
|
||||||
'class="form-control <%= cls %>" ',
|
'class="form-control <%= cls %>" ',
|
||||||
'placeholder="<%= placeHolder %>" ',
|
'placeholder="<%= placeHolder %>" ',
|
||||||
'value="<%= value %>"',
|
'value="<%= value %>"',
|
||||||
|
'data-hint="<%= dataHint %>"',
|
||||||
|
'data-hint-offset="<%= dataHintOffset %>"',
|
||||||
|
'data-hint-direction="<%= dataHintDirection %>"',
|
||||||
'>',
|
'>',
|
||||||
'<span class="input-error"></span>',
|
'<span class="input-error"></span>',
|
||||||
'<div class="select-button">' +
|
'<div class="select-button">' +
|
||||||
|
@ -464,7 +454,10 @@ define([
|
||||||
name : this.name,
|
name : this.name,
|
||||||
placeHolder : this.placeHolder,
|
placeHolder : this.placeHolder,
|
||||||
spellcheck : this.spellcheck,
|
spellcheck : this.spellcheck,
|
||||||
scope : me
|
scope : me,
|
||||||
|
dataHint : this.options.dataHint,
|
||||||
|
dataHintOffset: this.options.dataHintOffset,
|
||||||
|
dataHintDirection: this.options.dataHintDirection
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (parentEl) {
|
if (parentEl) {
|
||||||
|
@ -556,6 +549,7 @@ define([
|
||||||
style: '',
|
style: '',
|
||||||
value: '',
|
value: '',
|
||||||
name: '',
|
name: '',
|
||||||
|
type: 'password',
|
||||||
validation: null,
|
validation: null,
|
||||||
allowBlank: true,
|
allowBlank: true,
|
||||||
placeHolder: '',
|
placeHolder: '',
|
||||||
|
@ -566,7 +560,8 @@ define([
|
||||||
validateOnBlur: true,
|
validateOnBlur: true,
|
||||||
disabled: false,
|
disabled: false,
|
||||||
editable: true,
|
editable: true,
|
||||||
iconCls: 'toolbar__icon btn-sheet-view',
|
showCls: 'toolbar__icon btn-sheet-view',
|
||||||
|
hideCls: 'toolbar__icon hide-password',
|
||||||
btnHint: '',
|
btnHint: '',
|
||||||
repeatInput: null,
|
repeatInput: null,
|
||||||
showPwdOnClick: true
|
showPwdOnClick: true
|
||||||
|
@ -575,6 +570,7 @@ define([
|
||||||
initialize : function(options) {
|
initialize : function(options) {
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options.btnHint = options.btnHint || this.textHintShowPwd;
|
options.btnHint = options.btnHint || this.textHintShowPwd;
|
||||||
|
options.iconCls = options.showCls || this.options.showCls;
|
||||||
|
|
||||||
Common.UI.InputFieldBtn.prototype.initialize.call(this, options);
|
Common.UI.InputFieldBtn.prototype.initialize.call(this, options);
|
||||||
|
|
||||||
|
@ -586,7 +582,6 @@ define([
|
||||||
Common.UI.InputFieldBtn.prototype.render.call(this, parentEl);
|
Common.UI.InputFieldBtn.prototype.render.call(this, parentEl);
|
||||||
|
|
||||||
this._btnElm = this._button.$el;
|
this._btnElm = this._button.$el;
|
||||||
this._input.on('input', _.bind(this.checkPasswordType, this));
|
|
||||||
if(this.options.showPwdOnClick)
|
if(this.options.showPwdOnClick)
|
||||||
this._button.on('click', _.bind(this.passwordClick, this));
|
this._button.on('click', _.bind(this.passwordClick, this));
|
||||||
else
|
else
|
||||||
|
@ -617,7 +612,7 @@ define([
|
||||||
|
|
||||||
passwordShow: function (e) {
|
passwordShow: function (e) {
|
||||||
if (this.disabled) return;
|
if (this.disabled) return;
|
||||||
this._button.setIconCls('toolbar__icon hide-password');
|
this._button.setIconCls(this.options.hideCls);
|
||||||
this.type = 'text';
|
this.type = 'text';
|
||||||
|
|
||||||
this._input.attr('type', this.type);
|
this._input.attr('type', this.type);
|
||||||
|
@ -636,13 +631,13 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
passwordHide: function (e) {
|
passwordHide: function (e) {
|
||||||
this._button.setIconCls('toolbar__icon btn-sheet-view');
|
this._button.setIconCls(this.options.showCls);
|
||||||
this.type = 'password';
|
this.type = 'password';
|
||||||
|
|
||||||
(this._input.val() !== '') && this._input.attr('type', this.type);
|
this._input.attr('type', this.type);
|
||||||
if(this.repeatInput) {
|
if(this.repeatInput) {
|
||||||
this.repeatInput.type = this.type;
|
this.repeatInput.type = this.type;
|
||||||
(this.repeatInput._input.val() !== '') && this.repeatInput._input.attr('type', this.type);
|
this.repeatInput._input.attr('type', this.type);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.options.showPwdOnClick) {
|
if(this.options.showPwdOnClick) {
|
||||||
|
|
|
@ -377,12 +377,12 @@ define([
|
||||||
onBeforeShowMenu: function(e) {
|
onBeforeShowMenu: function(e) {
|
||||||
Common.NotificationCenter.trigger('menu:show');
|
Common.NotificationCenter.trigger('menu:show');
|
||||||
this.trigger('show:before', this, e);
|
this.trigger('show:before', this, e);
|
||||||
this.alignPosition();
|
(e && e.target===e.currentTarget) && this.alignPosition();
|
||||||
},
|
},
|
||||||
|
|
||||||
onAfterShowMenu: function(e) {
|
onAfterShowMenu: function(e) {
|
||||||
this.trigger('show:after', this, e);
|
this.trigger('show:after', this, e);
|
||||||
if (this.scroller) {
|
if (this.scroller && e && e.target===e.currentTarget) {
|
||||||
var menuRoot = this.menuRoot;
|
var menuRoot = this.menuRoot;
|
||||||
if (this.wheelSpeed===undefined) {
|
if (this.wheelSpeed===undefined) {
|
||||||
var item = menuRoot.find('> li:first'),
|
var item = menuRoot.find('> li:first'),
|
||||||
|
@ -664,7 +664,7 @@ define([
|
||||||
if (top + menuH > docH + cg.top) {
|
if (top + menuH > docH + cg.top) {
|
||||||
menuRoot.css('max-height', (docH - top) + 'px');
|
menuRoot.css('max-height', (docH - top) + 'px');
|
||||||
(!this.scroller) && (this.scroller = new Common.UI.Scroller({
|
(!this.scroller) && (this.scroller = new Common.UI.Scroller({
|
||||||
el: this.$el.find('.dropdown-menu '),
|
el: this.$el.find('> .dropdown-menu '),
|
||||||
minScrollbarLength: 30,
|
minScrollbarLength: 30,
|
||||||
suppressScrollX: true,
|
suppressScrollX: true,
|
||||||
alwaysVisibleY: this.scrollAlwaysVisible
|
alwaysVisibleY: this.scrollAlwaysVisible
|
||||||
|
@ -975,12 +975,12 @@ define([
|
||||||
onBeforeShowMenu: function(e) {
|
onBeforeShowMenu: function(e) {
|
||||||
Common.NotificationCenter.trigger('menu:show');
|
Common.NotificationCenter.trigger('menu:show');
|
||||||
this.trigger('show:before', this, e);
|
this.trigger('show:before', this, e);
|
||||||
this.alignPosition();
|
(e && e.target===e.currentTarget) && this.alignPosition();
|
||||||
},
|
},
|
||||||
|
|
||||||
onAfterShowMenu: function(e) {
|
onAfterShowMenu: function(e) {
|
||||||
this.trigger('show:after', this, e);
|
this.trigger('show:after', this, e);
|
||||||
if (this.scroller) {
|
if (this.scroller && e && e.target===e.currentTarget) {
|
||||||
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
this.scroller.update({alwaysVisibleY: this.scrollAlwaysVisible});
|
||||||
var menuRoot = this.menuRoot,
|
var menuRoot = this.menuRoot,
|
||||||
$selected = menuRoot.find('> li .checked');
|
$selected = menuRoot.find('> li .checked');
|
||||||
|
|
|
@ -301,6 +301,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
onItemMouseDown: function(e) {
|
onItemMouseDown: function(e) {
|
||||||
|
Common.UI.HintManager && Common.UI.HintManager.clearHints();
|
||||||
if (e.which != 1) {
|
if (e.which != 1) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
|
@ -147,8 +147,13 @@ define([
|
||||||
el.on('input', '.form-control', _.bind(this.onInput, this));
|
el.on('input', '.form-control', _.bind(this.onInput, this));
|
||||||
if (!this.options.allowDecimal)
|
if (!this.options.allowDecimal)
|
||||||
el.on('keypress', '.form-control', _.bind(this.onKeyPress, this));
|
el.on('keypress', '.form-control', _.bind(this.onKeyPress, this));
|
||||||
el.on('focus', 'input.form-control', function() {
|
el.on('focus', 'input.form-control', function(e) {
|
||||||
setTimeout(function(){me.$input && me.$input.select();}, 1);
|
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() {
|
Common.Utils.isGecko && el.on('blur', 'input.form-control', function() {
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
|
|
|
@ -120,6 +120,7 @@ define([
|
||||||
Common.NotificationCenter.on('tab:visible', _.bind(function(action, visible){
|
Common.NotificationCenter.on('tab:visible', _.bind(function(action, visible){
|
||||||
this.setVisible(action, visible);
|
this.setVisible(action, visible);
|
||||||
}, this));
|
}, this));
|
||||||
|
Common.NotificationCenter.on('tab:resize', _.bind(this.onResizeTabs, this));
|
||||||
},
|
},
|
||||||
|
|
||||||
afterRender: function() {
|
afterRender: function() {
|
||||||
|
@ -229,7 +230,7 @@ define([
|
||||||
// optsFold.timer = setTimeout(this.collapse, optsFold.timeout);
|
// optsFold.timer = setTimeout(this.collapse, optsFold.timeout);
|
||||||
},
|
},
|
||||||
|
|
||||||
onResize: function(e) {
|
onResizeTabs: function(e) {
|
||||||
if ( this.hasTabInvisible() ) {
|
if ( this.hasTabInvisible() ) {
|
||||||
if ( !$boxTabs.parent().hasClass('short') )
|
if ( !$boxTabs.parent().hasClass('short') )
|
||||||
$boxTabs.parent().addClass('short');
|
$boxTabs.parent().addClass('short');
|
||||||
|
@ -237,6 +238,10 @@ define([
|
||||||
if ( $boxTabs.parent().hasClass('short') ) {
|
if ( $boxTabs.parent().hasClass('short') ) {
|
||||||
$boxTabs.parent().removeClass('short');
|
$boxTabs.parent().removeClass('short');
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onResize: function(e) {
|
||||||
|
this.onResizeTabs();
|
||||||
this.hideMoreBtns();
|
this.hideMoreBtns();
|
||||||
this.processPanelVisible();
|
this.processPanelVisible();
|
||||||
},
|
},
|
||||||
|
@ -498,7 +503,8 @@ define([
|
||||||
setMoreButton: function(tab, panel) {
|
setMoreButton: function(tab, panel) {
|
||||||
var me = this;
|
var me = this;
|
||||||
if (!btnsMore[tab]) {
|
if (!btnsMore[tab]) {
|
||||||
var box = $('<div class="more-box" style="position: absolute;right: 0; padding-left: 12px;padding-right: 6px;display: none;">' +
|
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="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 class="group" style=""><span class="btn-slot text x-huge slot-btn-more"></span></div>' +
|
||||||
'</div>');
|
'</div>');
|
||||||
|
@ -556,7 +562,7 @@ define([
|
||||||
var need_break = false;
|
var need_break = false;
|
||||||
for (var i=items.length-1; i>=0; i--) {
|
for (var i=items.length-1; i>=0; i--) {
|
||||||
var item = $(items[i]);
|
var item = $(items[i]);
|
||||||
if (!item.is(':visible')) { // move invisible items as is and set special attr
|
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);
|
item.attr('data-hidden-tb-item', true);
|
||||||
this.$moreBar.prepend(item);
|
this.$moreBar.prepend(item);
|
||||||
hideAllMenus = true;
|
hideAllMenus = true;
|
||||||
|
@ -580,6 +586,7 @@ define([
|
||||||
this.$moreBar.prepend(item);
|
this.$moreBar.prepend(item);
|
||||||
if (last_separator) {
|
if (last_separator) {
|
||||||
last_separator.css('display', '');
|
last_separator.css('display', '');
|
||||||
|
last_separator.removeAttr('hidden-on-resize');
|
||||||
}
|
}
|
||||||
hideAllMenus = true;
|
hideAllMenus = true;
|
||||||
} else if ( offset.left+item_width > _maxright ) {
|
} else if ( offset.left+item_width > _maxright ) {
|
||||||
|
@ -590,6 +597,7 @@ define([
|
||||||
this.$moreBar.prepend(item);
|
this.$moreBar.prepend(item);
|
||||||
if (last_separator) {
|
if (last_separator) {
|
||||||
last_separator.css('display', '');
|
last_separator.css('display', '');
|
||||||
|
last_separator.removeAttr('hidden-on-resize');
|
||||||
}
|
}
|
||||||
hideAllMenus = true;
|
hideAllMenus = true;
|
||||||
break;
|
break;
|
||||||
|
@ -607,6 +615,7 @@ define([
|
||||||
this.$moreBar.prepend(last_group);
|
this.$moreBar.prepend(last_group);
|
||||||
if (last_separator) {
|
if (last_separator) {
|
||||||
last_separator.css('display', '');
|
last_separator.css('display', '');
|
||||||
|
last_separator.removeAttr('hidden-on-resize');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
last_group.prepend(child);
|
last_group.prepend(child);
|
||||||
|
@ -633,6 +642,7 @@ define([
|
||||||
} else if (item.hasClass('separator')) {
|
} else if (item.hasClass('separator')) {
|
||||||
this.$moreBar.prepend(item);
|
this.$moreBar.prepend(item);
|
||||||
item.css('display', 'none');
|
item.css('display', 'none');
|
||||||
|
item.attr('hidden-on-resize', true);
|
||||||
last_separator = item;
|
last_separator = item;
|
||||||
hideAllMenus = true;
|
hideAllMenus = true;
|
||||||
}
|
}
|
||||||
|
@ -678,6 +688,7 @@ define([
|
||||||
more_section.before(item);
|
more_section.before(item);
|
||||||
if (last_separator) {
|
if (last_separator) {
|
||||||
last_separator.css('display', '');
|
last_separator.css('display', '');
|
||||||
|
last_separator.removeAttr('hidden-on-resize');
|
||||||
}
|
}
|
||||||
if (this.$moreBar.children().filter('.group').length == 0) {
|
if (this.$moreBar.children().filter('.group').length == 0) {
|
||||||
this.hideMoreBtns();
|
this.hideMoreBtns();
|
||||||
|
@ -712,6 +723,7 @@ define([
|
||||||
more_section.before(last_group);
|
more_section.before(last_group);
|
||||||
if (last_separator) {
|
if (last_separator) {
|
||||||
last_separator.css('display', '');
|
last_separator.css('display', '');
|
||||||
|
last_separator.removeAttr('hidden-on-resize');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
last_group.append(child);
|
last_group.append(child);
|
||||||
|
@ -742,6 +754,7 @@ define([
|
||||||
} else if (item.hasClass('separator')) {
|
} else if (item.hasClass('separator')) {
|
||||||
more_section.before(item);
|
more_section.before(item);
|
||||||
item.css('display', 'none');
|
item.css('display', 'none');
|
||||||
|
item.attr('hidden-on-resize', true);
|
||||||
last_separator = item;
|
last_separator = item;
|
||||||
last_width = parseInt(last_separator.css('margin-left')) + parseInt(last_separator.css('margin-right')) + 1;
|
last_width = parseInt(last_separator.css('margin-left')) + parseInt(last_separator.css('margin-right')) + 1;
|
||||||
hideAllMenus = true;
|
hideAllMenus = true;
|
||||||
|
@ -774,7 +787,7 @@ define([
|
||||||
right = Common.Utils.innerWidth() - (showxy.left - parentxy.left + target.width()),
|
right = Common.Utils.innerWidth() - (showxy.left - parentxy.left + target.width()),
|
||||||
top = showxy.top - parentxy.top + target.height() + 10;
|
top = showxy.top - parentxy.top + target.height() + 10;
|
||||||
|
|
||||||
moreContainer.css({right: right, left: 'auto', top : top});
|
moreContainer.css({right: right, left: 'auto', top : top, 'max-width': Common.Utils.innerWidth() + 'px'});
|
||||||
moreContainer.show();
|
moreContainer.show();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,7 @@ define([
|
||||||
|
|
||||||
setRawValue: function(value) {
|
setRawValue: function(value) {
|
||||||
var value = (value === true || value === 'true' || value === '1' || value === 1 );
|
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.toggleClass('checked', value);
|
||||||
this.$radio.prop('checked', value);
|
this.$radio.prop('checked', value);
|
||||||
},
|
},
|
||||||
|
|
|
@ -513,10 +513,10 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
setTabVisible: function(index, suppress) {
|
setTabVisible: function(index, suppress) {
|
||||||
if (index <= 0 || index == 'first') {
|
if (index <= 0) {
|
||||||
this.$bar.scrollLeft(0);
|
this.$bar.scrollLeft(0);
|
||||||
this.checkInvisible(suppress);
|
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;
|
var tab = this.tabs[this.tabs.length-1].$el;
|
||||||
if (this.$bar.find('.separator-item').length === 0) {
|
if (this.$bar.find('.separator-item').length === 0) {
|
||||||
this.$bar.append('<li class="separator-item"><span></span></li>');
|
this.$bar.append('<li class="separator-item"><span></span></li>');
|
||||||
|
|
|
@ -52,7 +52,9 @@ define([
|
||||||
dynamiccolors: 10,
|
dynamiccolors: 10,
|
||||||
standardcolors: 10,
|
standardcolors: 10,
|
||||||
themecolors: 10,
|
themecolors: 10,
|
||||||
|
columns: 10,
|
||||||
effects: 5,
|
effects: 5,
|
||||||
|
hideEmptyColors: true,
|
||||||
allowReselect: true,
|
allowReselect: true,
|
||||||
transparent: false,
|
transparent: false,
|
||||||
value: '000000',
|
value: '000000',
|
||||||
|
@ -62,7 +64,7 @@ define([
|
||||||
|
|
||||||
template :
|
template :
|
||||||
_.template(
|
_.template(
|
||||||
'<div style="padding: 8px 12px 12px;">' +
|
'<div style="padding: 4px 0 0 12px;">' +
|
||||||
'<% var me = this; var idx = 0; %>' +
|
'<% var me = this; var idx = 0; %>' +
|
||||||
'<% $(colors).each(function(num, item) { %>' +
|
'<% $(colors).each(function(num, item) { %>' +
|
||||||
'<% if (me.isBlankSeparator(item)) { %> <div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div>' +
|
'<% if (me.isBlankSeparator(item)) { %> <div class="palette-color-spacer" style="width:100%;height:8px;float:left;"></div>' +
|
||||||
|
@ -76,6 +78,9 @@ define([
|
||||||
'<em><span unselectable="on"> </span></em>' +
|
'<em><span unselectable="on"> </span></em>' +
|
||||||
'</a>' +
|
'</a>' +
|
||||||
'<% } else if (me.isEffect(item)) { %>' +
|
'<% } else if (me.isEffect(item)) { %>' +
|
||||||
|
'<% 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++%>">' +
|
'<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>' +
|
'<em><span style="background:#<%=item.color%>;" unselectable="on"> </span></em>' +
|
||||||
'</a>' +
|
'</a>' +
|
||||||
|
@ -85,9 +90,11 @@ define([
|
||||||
'<% }); %>' +
|
'<% }); %>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'<% if (me.options.dynamiccolors!==undefined) { %>' +
|
'<% 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++) { %>' +
|
'<% for (var i=0; i<me.options.dynamiccolors; i++) { %>' +
|
||||||
'<a class="color-dynamic-<%=i%> dynamic-empty-color" color="" idx="<%=idx++%>">' +
|
'<a class="color-dynamic-<%=i%> dynamic-empty-color <%= me.emptyColorsClass %>" color="" idx="<%=idx++%>">' +
|
||||||
'<em><span unselectable="on"> </span></em></a>' +
|
'<em><span unselectable="on"> </span></em></a>' +
|
||||||
'<% } %>' +
|
'<% } %>' +
|
||||||
'<% } %>' +
|
'<% } %>' +
|
||||||
|
@ -103,10 +110,12 @@ define([
|
||||||
el = me.$el || $(this.el);
|
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.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.enableKeyEvents= me.options.enableKeyEvents;
|
||||||
this.tabindex = me.options.tabindex || 0;
|
this.tabindex = me.options.tabindex || 0;
|
||||||
this.outerMenu = me.options.outerMenu;
|
this.outerMenu = me.options.outerMenu;
|
||||||
this.lastSelectedIdx = -1;
|
this.lastSelectedIdx = -1;
|
||||||
|
this.emptyColorsClass = me.options.hideEmptyColors ? 'hidden' : '';
|
||||||
|
|
||||||
me.colorItems = [];
|
me.colorItems = [];
|
||||||
if (me.options.keyMoveDirection=='vertical')
|
if (me.options.keyMoveDirection=='vertical')
|
||||||
|
@ -123,6 +132,15 @@ define([
|
||||||
this.updateColors(this.options.updateColorsArr[0], this.options.updateColorsArr[1]);
|
this.updateColors(this.options.updateColorsArr[0], this.options.updateColorsArr[1]);
|
||||||
if (this.options.value)
|
if (this.options.value)
|
||||||
this.select(this.options.value, true);
|
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();
|
this.updateCustomColors();
|
||||||
el.closest('.btn-group').on('show.bs.dropdown', _.bind(this.updateCustomColors, this));
|
el.closest('.btn-group').on('show.bs.dropdown', _.bind(this.updateCustomColors, this));
|
||||||
el.closest('.dropdown-submenu').on('show.bs.dropdown', _.bind(this.updateCustomColors, this));
|
el.closest('.dropdown-submenu').on('show.bs.dropdown', _.bind(this.updateCustomColors, this));
|
||||||
|
@ -171,15 +189,19 @@ define([
|
||||||
if (color) { // custom color was selected
|
if (color) { // custom color was selected
|
||||||
color = color.toUpperCase();
|
color = color.toUpperCase();
|
||||||
selected.removeClass(this.selectedCls);
|
selected.removeClass(this.selectedCls);
|
||||||
|
this.lastSelectedIdx = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var colors = Common.localStorage.getItem('asc.'+Common.localStorage.getId()+'.colors.custom');
|
var colors = Common.localStorage.getItem('asc.'+Common.localStorage.getId()+'.colors.custom');
|
||||||
colors = colors ? colors.split(',') : [];
|
colors = colors ? colors.split(',') : [];
|
||||||
|
|
||||||
var i = -1, colorEl, c = colors.length < this.options.dynamiccolors ? colors.length : this.options.dynamiccolors;
|
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) {
|
while (++i < c) {
|
||||||
colorEl = el.find('.color-dynamic-'+ i);
|
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({
|
colorEl.find('span').css({
|
||||||
'background-color': '#'+colors[i]
|
'background-color': '#'+colors[i]
|
||||||
});
|
});
|
||||||
|
@ -189,6 +211,16 @@ define([
|
||||||
color = undefined; //select only first found color
|
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);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -197,7 +229,7 @@ define([
|
||||||
var target = $(e.target).closest('a');
|
var target = $(e.target).closest('a');
|
||||||
var color, cmp;
|
var color, cmp;
|
||||||
|
|
||||||
if (target.length==0) return;
|
if (target.length==0) return false;
|
||||||
|
|
||||||
if (target.hasClass('color-transparent') ) {
|
if (target.hasClass('color-transparent') ) {
|
||||||
me.clearSelection(true);
|
me.clearSelection(true);
|
||||||
|
@ -265,12 +297,16 @@ define([
|
||||||
if (child.length==0) {
|
if (child.length==0) {
|
||||||
this.updateCustomColors();
|
this.updateCustomColors();
|
||||||
child = el.find('.color-dynamic-' + (this.options.dynamiccolors - 1));
|
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({
|
child.first().find('span').css({
|
||||||
'background-color': '#'+color[1]
|
'background-color': '#'+color[1]
|
||||||
});
|
});
|
||||||
|
el.find('.palette-color-dynamiccolors').removeClass(this.emptyColorsClass);
|
||||||
this.select(color[1], true);
|
this.select(color[1], true);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -483,7 +519,7 @@ define([
|
||||||
var arr = [],
|
var arr = [],
|
||||||
len = (themecolors>0 && effects>0) ? themecolors * effects : 0;
|
len = (themecolors>0 && effects>0) ? themecolors * effects : 0;
|
||||||
if (themecolors>0) {
|
if (themecolors>0) {
|
||||||
arr = [this.textThemeColors, '-'];
|
arr = [this.textThemeColors];
|
||||||
for (var i=0; i<themecolors; i++)
|
for (var i=0; i<themecolors; i++)
|
||||||
arr.push({color: 'FFFFFF', effectId: 1});
|
arr.push({color: 'FFFFFF', effectId: 1});
|
||||||
|
|
||||||
|
@ -492,10 +528,10 @@ define([
|
||||||
arr.push({color: 'FFFFFF', effectId: 1});
|
arr.push({color: 'FFFFFF', effectId: 1});
|
||||||
|
|
||||||
if (standardcolors)
|
if (standardcolors)
|
||||||
arr.push('-', '--', '-');
|
arr.push('-');
|
||||||
}
|
}
|
||||||
if (standardcolors) {
|
if (standardcolors) {
|
||||||
arr.push(this.textStandartColors, '-');
|
arr.push(this.textStandartColors);
|
||||||
if (transparent) {
|
if (transparent) {
|
||||||
arr.push('transparent');
|
arr.push('transparent');
|
||||||
standardcolors--;
|
standardcolors--;
|
||||||
|
@ -503,8 +539,6 @@ define([
|
||||||
for (var i=0; i<standardcolors; i++)
|
for (var i=0; i<standardcolors; i++)
|
||||||
arr.push('FFFFFF');
|
arr.push('FFFFFF');
|
||||||
}
|
}
|
||||||
if (this.options.dynamiccolors && (themecolors || standardcolors))
|
|
||||||
arr.push('-', '--');
|
|
||||||
return arr;
|
return arr;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -640,6 +674,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
textThemeColors : 'Theme Colors',
|
textThemeColors : 'Theme Colors',
|
||||||
textStandartColors : 'Standart Colors'
|
textStandartColors : 'Standard Colors',
|
||||||
|
textRecentColors : 'Recent Colors'
|
||||||
}, Common.UI.ThemeColorPalette || {}));
|
}, Common.UI.ThemeColorPalette || {}));
|
||||||
});
|
});
|
|
@ -104,12 +104,17 @@
|
||||||
offset : opts.offset,
|
offset : opts.offset,
|
||||||
cls : opts.cls,
|
cls : opts.cls,
|
||||||
html : opts.html,
|
html : opts.html,
|
||||||
hideonclick : opts.hideonclick
|
hideonclick : opts.hideonclick,
|
||||||
|
keepvisible: opts.keepvisible
|
||||||
});
|
});
|
||||||
|
|
||||||
if (opts.hideonclick) {
|
if (opts.hideonclick) {
|
||||||
|
var me = this;
|
||||||
var tip = this.$element.data('bs.tooltip');
|
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));
|
this.$element.on('shown.bs.tooltip', _.bind(this.onTipShown, this));
|
||||||
|
|
|
@ -241,7 +241,7 @@ define([
|
||||||
|
|
||||||
function _autoSize() {
|
function _autoSize() {
|
||||||
if (this.initConfig.height == 'auto') {
|
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.initConfig.header && (height += parseInt(this.$window.find('> .header').css('height')));
|
||||||
this.$window.height(height);
|
this.$window.height(height);
|
||||||
}
|
}
|
||||||
|
@ -490,7 +490,8 @@ define([
|
||||||
if (options.width=='auto') {
|
if (options.width=='auto') {
|
||||||
text_cnt.height(Math.max(text.height(), icon_height) + ((check.length>0) ? (check.height() + parseInt(check.css('margin-top'))) : 0));
|
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')));
|
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')));
|
parseInt(body.css('height')) + parseInt(header.css('height')));
|
||||||
} else {
|
} else {
|
||||||
text.css('white-space', 'normal');
|
text.css('white-space', 'normal');
|
||||||
|
|
|
@ -45,7 +45,8 @@ define([
|
||||||
version: '{{PRODUCT_VERSION}}',
|
version: '{{PRODUCT_VERSION}}',
|
||||||
eventloading: true,
|
eventloading: true,
|
||||||
titlebuttons: true,
|
titlebuttons: true,
|
||||||
uithemes: true
|
uithemes: true,
|
||||||
|
quickprint: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
var native = window.desktop || window.AscDesktopEditor;
|
var native = window.desktop || window.AscDesktopEditor;
|
||||||
|
@ -60,10 +61,12 @@ define([
|
||||||
'btn-save-coauth': 'coauth',
|
'btn-save-coauth': 'coauth',
|
||||||
'btn-synch': 'synch' };
|
'btn-synch': 'synch' };
|
||||||
|
|
||||||
var is_win_xp = window.RendererProcessVariable && window.RendererProcessVariable.os === 'winxp';
|
var nativevars;
|
||||||
|
|
||||||
if ( !!native ) {
|
if ( !!native ) {
|
||||||
native.features = native.features || {};
|
native.features = native.features || {};
|
||||||
|
nativevars = window.RendererProcessVariable;
|
||||||
|
|
||||||
window.on_native_message = function (cmd, param) {
|
window.on_native_message = function (cmd, param) {
|
||||||
if (/^style:change/.test(cmd)) {
|
if (/^style:change/.test(cmd)) {
|
||||||
var obj = JSON.parse(param);
|
var obj = JSON.parse(param);
|
||||||
|
@ -137,6 +140,10 @@ define([
|
||||||
if (!!_mr[1]) $('#app-title').show();
|
if (!!_mr[1]) $('#app-title').show();
|
||||||
else if (!!_mr[2]) $('#app-title').hide();
|
else if (!!_mr[2]) $('#app-title').hide();
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
if (/althints:show/.test(cmd)) {
|
||||||
|
if ( /false|hide/.test(param) )
|
||||||
|
Common.NotificationCenter.trigger('hints:clear');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -160,7 +167,8 @@ define([
|
||||||
action: action,
|
action: action,
|
||||||
icon: config.icon || undefined,
|
icon: config.icon || undefined,
|
||||||
hint: config.btn.options.hint,
|
hint: config.btn.options.hint,
|
||||||
disabled: config.btn.isDisabled()
|
disabled: config.btn.isDisabled(),
|
||||||
|
visible: config.visible,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -187,11 +195,55 @@ 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 {
|
return {
|
||||||
init: function (opts) {
|
init: function (opts) {
|
||||||
_.extend(config, opts);
|
_.extend(config, opts);
|
||||||
|
|
||||||
if ( config.isDesktopApp ) {
|
if ( config.isDesktopApp ) {
|
||||||
|
let is_win_xp = nativevars && nativevars.os === 'winxp';
|
||||||
|
|
||||||
Common.UI.Themes.setAvailable(!is_win_xp);
|
Common.UI.Themes.setAvailable(!is_win_xp);
|
||||||
Common.NotificationCenter.on('app:ready', function (opts) {
|
Common.NotificationCenter.on('app:ready', function (opts) {
|
||||||
_.extend(config, opts);
|
_.extend(config, opts);
|
||||||
|
@ -202,9 +254,45 @@ define([
|
||||||
|
|
||||||
Common.NotificationCenter.on('document:ready', function () {
|
Common.NotificationCenter.on('document:ready', function () {
|
||||||
if ( config.isEdit ) {
|
if ( config.isEdit ) {
|
||||||
var maincontroller = webapp.getController('Main');
|
function get_locked_message (t) {
|
||||||
if (maincontroller.api.asc_isReadOnly && maincontroller.api.asc_isReadOnly()) {
|
switch (t) {
|
||||||
maincontroller.warningDocumentIsLocked();
|
// 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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -216,7 +304,7 @@ define([
|
||||||
|
|
||||||
titlebuttons = {};
|
titlebuttons = {};
|
||||||
if ( mode.isEdit ) {
|
if ( mode.isEdit ) {
|
||||||
var header = webapp.getController('Viewport').getView('Common.Views.Header');
|
const header = webapp.getController('Viewport').getView('Common.Views.Header');
|
||||||
if (!!header.btnSave) {
|
if (!!header.btnSave) {
|
||||||
titlebuttons['save'] = {btn: header.btnSave};
|
titlebuttons['save'] = {btn: header.btnSave};
|
||||||
|
|
||||||
|
@ -227,6 +315,13 @@ define([
|
||||||
if (!!header.btnPrint)
|
if (!!header.btnPrint)
|
||||||
titlebuttons['print'] = {btn: header.btnPrint};
|
titlebuttons['print'] = {btn: header.btnPrint};
|
||||||
|
|
||||||
|
if (!!header.btnPrintQuick) {
|
||||||
|
titlebuttons['quickprint'] = {
|
||||||
|
btn: header.btnPrintQuick,
|
||||||
|
visible: header.btnPrintQuick.isVisible(),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (!!header.btnUndo)
|
if (!!header.btnUndo)
|
||||||
titlebuttons['undo'] = {btn: header.btnUndo};
|
titlebuttons['undo'] = {btn: header.btnUndo};
|
||||||
|
|
||||||
|
@ -256,12 +351,18 @@ define([
|
||||||
|
|
||||||
Common.NotificationCenter.on({
|
Common.NotificationCenter.on({
|
||||||
'modal:show': _onModalDialog.bind(this, 'open'),
|
'modal:show': _onModalDialog.bind(this, 'open'),
|
||||||
'modal:close': _onModalDialog.bind(this, 'close')
|
'modal:close': _onModalDialog.bind(this, 'close'),
|
||||||
, 'uitheme:changed' : function (name) {
|
'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);
|
var theme = Common.UI.Themes.get(name);
|
||||||
if ( theme )
|
if ( theme )
|
||||||
native.execCommand("uitheme:changed", JSON.stringify({name:name, type:theme.type}));
|
native.execCommand("uitheme:changed", JSON.stringify({name:name, type:theme.type}));
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
'hints:show': _onHintsShow.bind(this),
|
||||||
});
|
});
|
||||||
|
|
||||||
webapp.addListeners({
|
webapp.addListeners({
|
||||||
|
@ -276,8 +377,11 @@ define([
|
||||||
menu.hide();
|
menu.hide();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
'settings:apply': _onApplySettings.bind(this),
|
||||||
},
|
},
|
||||||
}, {id: 'desktop'});
|
}, {id: 'desktop'});
|
||||||
|
|
||||||
|
$(document).on('keydown', _onKeyDown.bind(this));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
process: function (opts) {
|
process: function (opts) {
|
||||||
|
@ -313,6 +417,28 @@ define([
|
||||||
// return webapp.getController('Main').api.asc_isOffline();
|
// return webapp.getController('Main').api.asc_isOffline();
|
||||||
return webapp.getController('Main').appOptions.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) {
|
setApi: function(api) {
|
||||||
this.api = api;
|
this.api = api;
|
||||||
this.api.asc_registerCallback('asc_onCloseChartEditor', _.bind(this.onDiagrammEditingDisabled, this));
|
this.api.asc_registerCallback('asc_onCloseChartEditor', _.bind(this.onDiagrammEditingDisabled, this));
|
||||||
|
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -185,7 +186,7 @@ define([
|
||||||
iconCls: 'warn',
|
iconCls: 'warn',
|
||||||
buttons: ['ok'],
|
buttons: ['ok'],
|
||||||
callback: _.bind(function(btn){
|
callback: _.bind(function(btn){
|
||||||
this.setControlsDisabled(false);
|
this.diagramEditorView.setControlsDisabled(false);
|
||||||
this.diagramEditorView.hide();
|
this.diagramEditorView.hide();
|
||||||
}, this)
|
}, this)
|
||||||
});
|
});
|
||||||
|
@ -232,6 +233,9 @@ define([
|
||||||
y = parseInt(this.diagramEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
y = parseInt(this.diagramEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
||||||
this.diagramEditorView.binding.drag({pageX:x, pageY:y});
|
this.diagramEditorView.binding.drag({pageX:x, pageY:y});
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
if (eventData.type == "frameToGeneralData") {
|
||||||
|
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
|
||||||
} else
|
} else
|
||||||
this.diagramEditorView.fireEvent('internalmessage', this.diagramEditorView, eventData);
|
this.diagramEditorView.fireEvent('internalmessage', this.diagramEditorView, eventData);
|
||||||
}
|
}
|
||||||
|
@ -243,13 +247,8 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
showExternalEditor: function () {
|
onSendFromGeneralToFrameEditor: function(data) {
|
||||||
if ( externalEditor ) {
|
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
|
||||||
var value = Common.localStorage.getItem("ui-theme-id", "theme-light");
|
|
||||||
externalEditor.serviceCommand('theme:change', value);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.diagramEditorView.show();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
warningTitle: 'Warning',
|
warningTitle: 'Warning',
|
||||||
|
|
|
@ -134,6 +134,7 @@ define([
|
||||||
setApi: function(api) {
|
setApi: function(api) {
|
||||||
this.api = api;
|
this.api = api;
|
||||||
this.api.asc_registerCallback('asc_onCloseMergeEditor', _.bind(this.onMergeEditingDisabled, this));
|
this.api.asc_registerCallback('asc_onCloseMergeEditor', _.bind(this.onMergeEditingDisabled, this));
|
||||||
|
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -170,7 +171,7 @@ define([
|
||||||
iconCls: 'warn',
|
iconCls: 'warn',
|
||||||
buttons: ['ok'],
|
buttons: ['ok'],
|
||||||
callback: _.bind(function(btn){
|
callback: _.bind(function(btn){
|
||||||
this.setControlsDisabled(false);
|
this.mergeEditorView.setControlsDisabled(false);
|
||||||
this.mergeEditorView.hide();
|
this.mergeEditorView.hide();
|
||||||
}, this)
|
}, this)
|
||||||
});
|
});
|
||||||
|
@ -216,6 +217,9 @@ define([
|
||||||
y = parseInt(this.mergeEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
y = parseInt(this.mergeEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
||||||
this.mergeEditorView.binding.drag({pageX:x, pageY:y});
|
this.mergeEditorView.binding.drag({pageX:x, pageY:y});
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
if (eventData.type == "frameToGeneralData") {
|
||||||
|
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
|
||||||
} else
|
} else
|
||||||
this.mergeEditorView.fireEvent('internalmessage', this.mergeEditorView, eventData);
|
this.mergeEditorView.fireEvent('internalmessage', this.mergeEditorView, eventData);
|
||||||
}
|
}
|
||||||
|
@ -227,6 +231,10 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onSendFromGeneralToFrameEditor: function(data) {
|
||||||
|
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
|
||||||
|
},
|
||||||
|
|
||||||
warningTitle: 'Warning',
|
warningTitle: 'Warning',
|
||||||
warningText: 'The object is disabled because of editing by another user.',
|
warningText: 'The object is disabled because of editing by another user.',
|
||||||
textClose: 'Close',
|
textClose: 'Close',
|
||||||
|
|
|
@ -142,6 +142,7 @@ define([
|
||||||
setApi: function(api) {
|
setApi: function(api) {
|
||||||
this.api = api;
|
this.api = api;
|
||||||
this.api.asc_registerCallback('asc_onCloseOleEditor', _.bind(this.onOleEditingDisabled, this));
|
this.api.asc_registerCallback('asc_onCloseOleEditor', _.bind(this.onOleEditingDisabled, this));
|
||||||
|
this.api.asc_registerCallback('asc_sendFromGeneralToFrameEditor', _.bind(this.onSendFromGeneralToFrameEditor, this));
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -185,7 +186,7 @@ define([
|
||||||
iconCls: 'warn',
|
iconCls: 'warn',
|
||||||
buttons: ['ok'],
|
buttons: ['ok'],
|
||||||
callback: _.bind(function(btn){
|
callback: _.bind(function(btn){
|
||||||
this.setControlsDisabled(false);
|
this.oleEditorView.setControlsDisabled(false);
|
||||||
this.oleEditorView.hide();
|
this.oleEditorView.hide();
|
||||||
}, this)
|
}, this)
|
||||||
});
|
});
|
||||||
|
@ -199,13 +200,16 @@ define([
|
||||||
if (this.oleEditorView) {
|
if (this.oleEditorView) {
|
||||||
if (eventData.type == 'documentReady') {
|
if (eventData.type == 'documentReady') {
|
||||||
this.oleEditorView._isExternalDocReady = true;
|
this.oleEditorView._isExternalDocReady = true;
|
||||||
this.oleEditorView.setControlsDisabled(false);
|
|
||||||
this.isExternalEditorVisible && (isAppFirstOpened = false);
|
this.isExternalEditorVisible && (isAppFirstOpened = false);
|
||||||
this.oleEditorView._oleData && this.setOleData();
|
this.oleEditorView._oleData && this.setOleData();
|
||||||
if (this.needDisableEditing) {
|
if (this.needDisableEditing) {
|
||||||
this.onOleEditingDisabled();
|
this.onOleEditingDisabled();
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
|
if (eventData.type == 'oleEditorReady') {
|
||||||
|
if (this.needDisableEditing===undefined)
|
||||||
|
this.oleEditorView.setControlsDisabled(false);
|
||||||
|
} else
|
||||||
if (eventData.type == "shortcut") {
|
if (eventData.type == "shortcut") {
|
||||||
if (eventData.data.key == 'escape')
|
if (eventData.data.key == 'escape')
|
||||||
this.oleEditorView.hide();
|
this.oleEditorView.hide();
|
||||||
|
@ -230,6 +234,9 @@ define([
|
||||||
y = parseInt(this.oleEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
y = parseInt(this.oleEditorView.$window.css('top')) + eventData.data.pagey + 34;
|
||||||
this.oleEditorView.binding.drag({pageX:x, pageY:y});
|
this.oleEditorView.binding.drag({pageX:x, pageY:y});
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
if (eventData.type == "frameToGeneralData") {
|
||||||
|
this.api && this.api.asc_getInformationBetweenFrameAndGeneralEditor(eventData.data);
|
||||||
} else
|
} else
|
||||||
this.oleEditorView.fireEvent('internalmessage', this.oleEditorView, eventData);
|
this.oleEditorView.fireEvent('internalmessage', this.oleEditorView, eventData);
|
||||||
}
|
}
|
||||||
|
@ -241,13 +248,8 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
showExternalEditor: function () {
|
onSendFromGeneralToFrameEditor: function(data) {
|
||||||
if ( externalEditor ) {
|
externalEditor && externalEditor.serviceCommand('generalToFrameData', data);
|
||||||
var value = Common.localStorage.getItem("ui-theme-id", "theme-light");
|
|
||||||
externalEditor.serviceCommand('theme:change', value);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.oleEditorView.show();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
warningTitle: 'Warning',
|
warningTitle: 'Warning',
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
* <button ... data-hint="1" data-hint-direction="right" data-hint-offset="big" data-hint-title="B">...</button>
|
* <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>
|
* <label ... data-hint="1" data-hint-direction="bottom" data-hint-offset="medium" data-hint-title="L">...</label>
|
||||||
*
|
*
|
||||||
|
*
|
||||||
* Example usage with components:
|
* Example usage with components:
|
||||||
*
|
*
|
||||||
* new Common.UI.Button({
|
* new Common.UI.Button({
|
||||||
|
@ -117,7 +118,11 @@ Common.UI.HintManager = new(function() {
|
||||||
_inputTimer,
|
_inputTimer,
|
||||||
_isDocReady = false,
|
_isDocReady = false,
|
||||||
_isEditDiagram = false,
|
_isEditDiagram = false,
|
||||||
_usedTitles = [];
|
_usedTitles = [],
|
||||||
|
_appPrefix,
|
||||||
|
_staticHints = { // for desktop buttons
|
||||||
|
"btnhome": 'K'
|
||||||
|
};
|
||||||
|
|
||||||
var _api;
|
var _api;
|
||||||
|
|
||||||
|
@ -133,7 +138,7 @@ Common.UI.HintManager = new(function() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (_isEditDiagram) {
|
if (_isEditDiagram) {
|
||||||
_currentSection = [$(window.parent.document).find('.advanced-settings-dlg')[0], window.document];
|
_currentSection = [$(window.parent.document).find('.advanced-settings-dlg:visible')[0], window.document];
|
||||||
} else if ($('#file-menu-panel').is(':visible')) {
|
} else if ($('#file-menu-panel').is(':visible')) {
|
||||||
_currentSection = $('#file-menu-panel');
|
_currentSection = $('#file-menu-panel');
|
||||||
} else {
|
} else {
|
||||||
|
@ -170,6 +175,8 @@ Common.UI.HintManager = new(function() {
|
||||||
} else {
|
} else {
|
||||||
_hintVisible = false;
|
_hintVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Common.NotificationCenter.trigger('hints:show', _hintVisible, _currentLevel);
|
||||||
};
|
};
|
||||||
|
|
||||||
var _hideHints = function() {
|
var _hideHints = function() {
|
||||||
|
@ -178,6 +185,8 @@ Common.UI.HintManager = new(function() {
|
||||||
item.remove()
|
item.remove()
|
||||||
});
|
});
|
||||||
clearInterval(_inputTimer);
|
clearInterval(_inputTimer);
|
||||||
|
|
||||||
|
Common.NotificationCenter.trigger('hints:show', false);
|
||||||
};
|
};
|
||||||
|
|
||||||
var _nextLevel = function(level) {
|
var _nextLevel = function(level) {
|
||||||
|
@ -218,6 +227,15 @@ Common.UI.HintManager = new(function() {
|
||||||
return arr;
|
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) {
|
var _isItemDisabled = function (item) {
|
||||||
return (item.hasClass('disabled') || item.parent().hasClass('disabled') || item.attr('disabled'));
|
return (item.hasClass('disabled') || item.parent().hasClass('disabled') || item.attr('disabled'));
|
||||||
};
|
};
|
||||||
|
@ -263,21 +281,25 @@ Common.UI.HintManager = new(function() {
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var _arrLetters = [];
|
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) {
|
if (visibleItems.length > _arrAlphabet.length) {
|
||||||
visibleItemsWithTitle.forEach(function (item) {
|
visibleItemsWithTitle.forEach(function (item) {
|
||||||
var t = $(item).data('hint-title').toLowerCase();
|
var t = $(item).data('hint-title').toLowerCase();
|
||||||
if (_arrAlphabet.indexOf(t) === -1) {
|
t = _getLetterInUILanguage(t);
|
||||||
var ind = _arrEnAlphabet.indexOf(t);
|
|
||||||
t = _arrAlphabet[ind];
|
|
||||||
}
|
|
||||||
_usedTitles.push(t);
|
_usedTitles.push(t);
|
||||||
});
|
});
|
||||||
_arrLetters = _getLetters(visibleItems.length);
|
_arrLetters = _getLetters(visibleItems.length + (_currentLevel === 0 ? _.size(_staticHints) : 0));
|
||||||
} else {
|
} else {
|
||||||
_arrLetters = _arrAlphabet.slice();
|
_arrLetters = _arrAlphabet.slice();
|
||||||
}
|
}
|
||||||
var usedLetters = [];
|
|
||||||
if (arrItemsWithTitle.length > 0) {
|
if (arrItemsWithTitle.length > 0) {
|
||||||
visibleItems.forEach(function (item) {
|
visibleItems.forEach(function (item) {
|
||||||
var el = $(item);
|
var el = $(item);
|
||||||
|
@ -285,9 +307,9 @@ Common.UI.HintManager = new(function() {
|
||||||
if (title) {
|
if (title) {
|
||||||
var ind = _arrEnAlphabet.indexOf(title.toLowerCase());
|
var ind = _arrEnAlphabet.indexOf(title.toLowerCase());
|
||||||
if (ind === -1) { // we have already changed
|
if (ind === -1) { // we have already changed
|
||||||
usedLetters.push(_arrAlphabet.indexOf(title.toLowerCase()));
|
_usedLetters.push(_arrAlphabet.indexOf(title.toLowerCase()));
|
||||||
} else {
|
} else {
|
||||||
usedLetters.push(ind);
|
_usedLetters.push(ind);
|
||||||
if (_lang !== 'en') {
|
if (_lang !== 'en') {
|
||||||
el.attr('data-hint-title', _arrLetters[ind].toUpperCase());
|
el.attr('data-hint-title', _arrLetters[ind].toUpperCase());
|
||||||
}
|
}
|
||||||
|
@ -298,7 +320,7 @@ Common.UI.HintManager = new(function() {
|
||||||
var index = 0;
|
var index = 0;
|
||||||
visibleItems.forEach(function (item) {
|
visibleItems.forEach(function (item) {
|
||||||
var el = $(item);
|
var el = $(item);
|
||||||
while (usedLetters.indexOf(index) !== -1) {
|
while (_usedLetters.indexOf(index) !== -1) {
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
var title = el.attr('data-hint-title');
|
var title = el.attr('data-hint-title');
|
||||||
|
@ -436,6 +458,10 @@ Common.UI.HintManager = new(function() {
|
||||||
|
|
||||||
var _init = function(api) {
|
var _init = function(api) {
|
||||||
_api = api;
|
_api = api;
|
||||||
|
|
||||||
|
var filter = Common.localStorage.getKeysFilter();
|
||||||
|
_appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||||
|
|
||||||
Common.NotificationCenter.on({
|
Common.NotificationCenter.on({
|
||||||
'app:ready': function (mode) {
|
'app:ready': function (mode) {
|
||||||
var lang = mode.lang ? mode.lang.toLowerCase() : 'en';
|
var lang = mode.lang ? mode.lang.toLowerCase() : 'en';
|
||||||
|
@ -559,7 +585,7 @@ Common.UI.HintManager = new(function() {
|
||||||
if (curr.prop('id') === 'btn-goback' || curr.closest('.btn-slot').prop('id') === 'slot-btn-options' ||
|
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.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-thumbs' || curr.hasClass('scroll') || curr.prop('id') === 'left-btn-about' ||
|
||||||
curr.prop('id') === 'left-btn-support') {
|
curr.prop('id') === 'left-btn-support' || curr.closest('.btn-slot').prop('id') === 'slot-btn-search') {
|
||||||
_resetToDefault();
|
_resetToDefault();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -594,8 +620,10 @@ Common.UI.HintManager = new(function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_needShow = (!e.shiftKey && e.keyCode == Common.UI.Keys.ALT && !Common.Utils.ModalWindow.isVisible() && _isDocReady && _arrAlphabet.length > 0);
|
_needShow = (Common.Utils.InternalSettings.get(_appPrefix + "settings-show-alt-hints") && !e.shiftKey && e.keyCode == Common.UI.Keys.ALT &&
|
||||||
if (e.altKey && e.keyCode !== 115) {
|
!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();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -609,7 +637,16 @@ Common.UI.HintManager = new(function() {
|
||||||
_arrAlphabet = langsJson[lang];
|
_arrAlphabet = langsJson[lang];
|
||||||
return _arrAlphabet;
|
return _arrAlphabet;
|
||||||
};
|
};
|
||||||
return !_setAlphabet(lng) ? (!_setAlphabet(lng.split(/[\-_]/)[0]) ? _setAlphabet('en') : true) : true;
|
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) {
|
Common.Utils.loadConfig('../../common/main/resources/alphabetletters/qwertyletters.json', function (langsJson) {
|
||||||
_arrQwerty = langsJson[_lang];
|
_arrQwerty = langsJson[_lang];
|
||||||
|
@ -638,7 +675,9 @@ Common.UI.HintManager = new(function() {
|
||||||
$('.hint-div').remove();
|
$('.hint-div').remove();
|
||||||
}
|
}
|
||||||
if ($('iframe').length > 0) {
|
if ($('iframe').length > 0) {
|
||||||
|
try {
|
||||||
$('iframe').contents().find('.hint-div').remove();
|
$('iframe').contents().find('.hint-div').remove();
|
||||||
|
} catch (e) {}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -650,11 +689,16 @@ Common.UI.HintManager = new(function() {
|
||||||
_isEditDiagram = mode.isEditDiagram || mode.isEditMailMerge || mode.isEditOle;
|
_isEditDiagram = mode.isEditDiagram || mode.isEditMailMerge || mode.isEditOle;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var _getStaticHint = function (key) {
|
||||||
|
return _staticHints[key];
|
||||||
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
init: _init,
|
init: _init,
|
||||||
setMode: _setMode,
|
setMode: _setMode,
|
||||||
clearHints: _clearHints,
|
clearHints: _clearHints,
|
||||||
needCloseFileMenu: _needCloseFileMenu,
|
needCloseFileMenu: _needCloseFileMenu,
|
||||||
isHintVisible: _isHintVisible
|
isHintVisible: _isHintVisible,
|
||||||
|
getStaticHint: _getStaticHint
|
||||||
}
|
}
|
||||||
})();
|
})();
|
|
@ -162,6 +162,8 @@ define([
|
||||||
this.api.asc_registerCallback("asc_onPluginMouseMove", _.bind(this.onPluginMouseMove, this));
|
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_onPluginsReset', _.bind(this.resetPluginsList, this));
|
||||||
this.api.asc_registerCallback('asc_onPluginsInit', _.bind(this.onPluginsInit, 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();
|
this.loadPlugins();
|
||||||
}
|
}
|
||||||
|
@ -204,17 +206,7 @@ define([
|
||||||
arr = [];
|
arr = [];
|
||||||
storePlugins.each(function(item){
|
storePlugins.each(function(item){
|
||||||
var plugin = new Asc.CPlugin();
|
var plugin = new Asc.CPlugin();
|
||||||
plugin.deserialize(item.attributes);
|
plugin.deserialize(item.get('original'));
|
||||||
|
|
||||||
var variations = item.get('variations'),
|
|
||||||
variationsArr = [];
|
|
||||||
variations.forEach(function(itemVar){
|
|
||||||
var variation = new Asc.CPluginVariation();
|
|
||||||
variation.deserialize(itemVar.attributes);
|
|
||||||
variationsArr.push(variation);
|
|
||||||
});
|
|
||||||
|
|
||||||
plugin.set_Variations(variationsArr);
|
|
||||||
item.set('pluginObj', plugin);
|
item.set('pluginObj', plugin);
|
||||||
arr.push(plugin);
|
arr.push(plugin);
|
||||||
});
|
});
|
||||||
|
@ -252,6 +244,10 @@ define([
|
||||||
$('<div class="separator long"></div>').appendTo(me.$toolbarPanelPlugins);
|
$('<div class="separator long"></div>').appendTo(me.$toolbarPanelPlugins);
|
||||||
_group = $('<div class="group"></div>');
|
_group = $('<div class="group"></div>');
|
||||||
rank_plugins = 0;
|
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);
|
var btn = me.panelPlugins.createPluginButton(model);
|
||||||
|
@ -387,6 +383,7 @@ define([
|
||||||
buttons: isCustomWindow ? undefined : newBtns,
|
buttons: isCustomWindow ? undefined : newBtns,
|
||||||
toolcallback: _.bind(this.onToolClose, this),
|
toolcallback: _.bind(this.onToolClose, this),
|
||||||
help: !!help,
|
help: !!help,
|
||||||
|
loader: plugin.get_Loader(),
|
||||||
modal: isModal!==undefined ? isModal : true
|
modal: isModal!==undefined ? isModal : true
|
||||||
});
|
});
|
||||||
me.pluginDlg.on({
|
me.pluginDlg.on({
|
||||||
|
@ -405,6 +402,9 @@ define([
|
||||||
},
|
},
|
||||||
'help': function(){
|
'help': function(){
|
||||||
help && window.open(help, '_blank');
|
help && window.open(help, '_blank');
|
||||||
|
},
|
||||||
|
'header:click': function(type){
|
||||||
|
me.api.asc_pluginButtonClick(type);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -464,6 +464,14 @@ define([
|
||||||
this.parsePlugins(pluginsdata)
|
this.parsePlugins(pluginsdata)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onPluginShowButton: function(id) {
|
||||||
|
this.pluginDlg && this.pluginDlg.showButton(id);
|
||||||
|
},
|
||||||
|
|
||||||
|
onPluginHideButton: function(id) {
|
||||||
|
this.pluginDlg && this.pluginDlg.hideButton(id);
|
||||||
|
},
|
||||||
|
|
||||||
runAutoStartPlugins: function() {
|
runAutoStartPlugins: function() {
|
||||||
if (this.autostart && this.autostart.length > 0) {
|
if (this.autostart && this.autostart.length > 0) {
|
||||||
this.api.asc_pluginRun(this.autostart.shift(), 0, '');
|
this.api.asc_pluginRun(this.autostart.shift(), 0, '');
|
||||||
|
@ -562,7 +570,8 @@ define([
|
||||||
visible: pluginVisible,
|
visible: pluginVisible,
|
||||||
groupName: (item.group) ? item.group.name : '',
|
groupName: (item.group) ? item.group.name : '',
|
||||||
groupRank: (item.group) ? item.group.rank : 0,
|
groupRank: (item.group) ? item.group.rank : 0,
|
||||||
minVersion: item.minVersion
|
minVersion: item.minVersion,
|
||||||
|
original: item
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -287,6 +287,9 @@ define([
|
||||||
this.popover = Common.Views.ReviewPopover.prototype.getPopover({
|
this.popover = Common.Views.ReviewPopover.prototype.getPopover({
|
||||||
reviewStore : this.popoverChanges,
|
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
|
api: this.api
|
||||||
});
|
});
|
||||||
this.popover.setReviewStore(this.popoverChanges);
|
this.popover.setReviewStore(this.popoverChanges);
|
||||||
|
@ -547,7 +550,7 @@ define([
|
||||||
if (item.value === 'all') {
|
if (item.value === 'all') {
|
||||||
this.api.asc_AcceptAllChanges();
|
this.api.asc_AcceptAllChanges();
|
||||||
} else {
|
} else {
|
||||||
this.api.asc_AcceptChanges();
|
this.api.asc_AcceptChangesBySelection(true); // accept and move to the next change
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.api.asc_AcceptChanges(menu);
|
this.api.asc_AcceptChanges(menu);
|
||||||
|
@ -562,7 +565,7 @@ define([
|
||||||
if (item.value === 'all') {
|
if (item.value === 'all') {
|
||||||
this.api.asc_RejectAllChanges();
|
this.api.asc_RejectAllChanges();
|
||||||
} else {
|
} else {
|
||||||
this.api.asc_RejectChanges();
|
this.api.asc_RejectChangesBySelection(true); // reject and move to the next change
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.api.asc_RejectChanges(menu);
|
this.api.asc_RejectChanges(menu);
|
||||||
|
@ -610,7 +613,8 @@ define([
|
||||||
this.view.turnChanges(state, global);
|
this.view.turnChanges(state, global);
|
||||||
if (userId && this.userCollection) {
|
if (userId && this.userCollection) {
|
||||||
var rec = this.userCollection.findOriginalUser(userId);
|
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});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -900,41 +904,6 @@ define([
|
||||||
me.appConfig.reviewHoverMode = val;
|
me.appConfig.reviewHoverMode = val;
|
||||||
},
|
},
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
|
||||||
},
|
|
||||||
|
|
||||||
applySettings: function(menu) {
|
applySettings: function(menu) {
|
||||||
this.view && this.view.turnSpelling( Common.localStorage.getBool(this.view.appPrefix + "settings-spellcheck", true) );
|
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) );
|
this.view && this.view.turnCoAuthMode( Common.localStorage.getBool(this.view.appPrefix + "settings-coauthmode", true) );
|
||||||
|
|
|
@ -11,7 +11,16 @@ define([
|
||||||
|
|
||||||
Common.UI.Themes = new (function(locale) {
|
Common.UI.Themes = new (function(locale) {
|
||||||
!locale && (locale = {});
|
!locale && (locale = {});
|
||||||
|
|
||||||
|
const THEME_TYPE_LIGHT = 'light';
|
||||||
|
const THEME_TYPE_DARK = 'dark';
|
||||||
|
const THEME_TYPE_SYSTEM = 'system';
|
||||||
var themes_map = {
|
var themes_map = {
|
||||||
|
'theme-system': {
|
||||||
|
text: locale.txtThemeSystem || 'Same as system',
|
||||||
|
type: THEME_TYPE_SYSTEM,
|
||||||
|
source: 'static',
|
||||||
|
},
|
||||||
'theme-light': {
|
'theme-light': {
|
||||||
text: locale.txtThemeLight || 'Light',
|
text: locale.txtThemeLight || 'Light',
|
||||||
type: 'light',
|
type: 'light',
|
||||||
|
@ -27,10 +36,16 @@ define([
|
||||||
type: 'dark',
|
type: 'dark',
|
||||||
source: 'static',
|
source: 'static',
|
||||||
},
|
},
|
||||||
|
'theme-contrast-dark': {
|
||||||
|
text: locale.txtThemeContrastDark || 'Dark Contrast',
|
||||||
|
type: 'dark',
|
||||||
|
source: 'static',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !!window.currentLoaderTheme ) {
|
if ( !!window.currentLoaderTheme ) {
|
||||||
themes_map[currentLoaderTheme.id] = {};
|
if ( !themes_map[currentLoaderTheme.id] )
|
||||||
|
themes_map[currentLoaderTheme.id] = currentLoaderTheme;
|
||||||
window.currentLoaderTheme = undefined;
|
window.currentLoaderTheme = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,6 +123,7 @@ define([
|
||||||
"canvas-page-border",
|
"canvas-page-border",
|
||||||
|
|
||||||
"canvas-ruler-background",
|
"canvas-ruler-background",
|
||||||
|
"canvas-ruler-border",
|
||||||
"canvas-ruler-margins-background",
|
"canvas-ruler-margins-background",
|
||||||
"canvas-ruler-mark",
|
"canvas-ruler-mark",
|
||||||
"canvas-ruler-handle-border",
|
"canvas-ruler-handle-border",
|
||||||
|
@ -199,6 +215,8 @@ define([
|
||||||
themes_map[obj.id] = {text: theme_label, type: obj.type};
|
themes_map[obj.id] = {text: theme_label, type: obj.type};
|
||||||
write_theme_css( create_colors_css(obj.id, obj.colors) );
|
write_theme_css( create_colors_css(obj.id, obj.colors) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Common.NotificationCenter.trigger('uitheme:countchanged');
|
||||||
}
|
}
|
||||||
|
|
||||||
var get_themes_config = function (url) {
|
var get_themes_config = function (url) {
|
||||||
|
@ -261,6 +279,21 @@ define([
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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 {
|
return {
|
||||||
init: function (api) {
|
init: function (api) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
@ -269,7 +302,9 @@ define([
|
||||||
$(window).on('storage', function (e) {
|
$(window).on('storage', function (e) {
|
||||||
if ( e.key == 'ui-theme' || e.key == 'ui-theme-id' ) {
|
if ( e.key == 'ui-theme' || e.key == 'ui-theme-id' ) {
|
||||||
if ( !!e.originalEvent.newValue ) {
|
if ( !!e.originalEvent.newValue ) {
|
||||||
me.setTheme(e.originalEvent.newValue, true);
|
if (Common.localStorage.getBool('ui-theme-use-system', false)) {
|
||||||
|
me.setTheme('theme-system');
|
||||||
|
} else me.setTheme(e.originalEvent.newValue, true);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if ( e.key == 'content-theme' ) {
|
if ( e.key == 'content-theme' ) {
|
||||||
|
@ -313,6 +348,8 @@ define([
|
||||||
obj.name = theme_name;
|
obj.name = theme_name;
|
||||||
api.asc_setSkin(obj);
|
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));
|
Common.NotificationCenter.on('document:ready', on_document_ready.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -333,6 +370,9 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
currentThemeId: function () {
|
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 t = Common.localStorage.getItem('ui-theme') || Common.localStorage.getItem('ui-theme-id');
|
||||||
var id = get_ui_theme_name(t);
|
var id = get_ui_theme_name(t);
|
||||||
return !!themes_map[id] ? id : id_default_light_theme;
|
return !!themes_map[id] ? id : id_default_light_theme;
|
||||||
|
@ -346,8 +386,9 @@ define([
|
||||||
return themes_map[this.defaultThemeId(type)]
|
return themes_map[this.defaultThemeId(type)]
|
||||||
},
|
},
|
||||||
|
|
||||||
isDarkTheme: function () {
|
isDarkTheme: function (id) {
|
||||||
return themes_map[this.currentThemeId()].type == 'dark';
|
!id && (id = this.currentThemeId());
|
||||||
|
return (is_theme_type_system(id) ? get_system_default_theme().info.type : themes_map[id].type) == THEME_TYPE_DARK;
|
||||||
},
|
},
|
||||||
|
|
||||||
isContentThemeDark: function () {
|
isContentThemeDark: function () {
|
||||||
|
@ -380,11 +421,39 @@ define([
|
||||||
Common.NotificationCenter.trigger('contenttheme:dark', !is_current_dark);
|
Common.NotificationCenter.trigger('contenttheme:dark', !is_current_dark);
|
||||||
},
|
},
|
||||||
|
|
||||||
setTheme: function (obj, force) {
|
setTheme: function (obj) {
|
||||||
if ( !obj ) return;
|
if ( !obj ) return;
|
||||||
|
|
||||||
var id = get_ui_theme_name(obj);
|
var id = get_ui_theme_name(obj),
|
||||||
if ( (this.currentThemeId() != id || force) && !!themes_map[id] ) {
|
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.className = document.body.className.replace(/theme-[\w-]+\s?/gi, '').trim();
|
||||||
document.body.classList.add(id, 'theme-type-' + themes_map[id].type);
|
document.body.classList.add(id, 'theme-type-' + themes_map[id].type);
|
||||||
|
|
||||||
|
@ -408,15 +477,18 @@ define([
|
||||||
var theme_obj = {
|
var theme_obj = {
|
||||||
id: id,
|
id: id,
|
||||||
type: obj.type,
|
type: obj.type,
|
||||||
|
text: themes_map[id].text,
|
||||||
};
|
};
|
||||||
|
|
||||||
if ( themes_map[id].source != 'static' ) {
|
if ( themes_map[id].source != 'static' ) {
|
||||||
theme_obj.colors = obj;
|
theme_obj.colors = obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( !refresh_only )
|
||||||
Common.localStorage.setItem('ui-theme', JSON.stringify(theme_obj));
|
Common.localStorage.setItem('ui-theme', JSON.stringify(theme_obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( !refresh_only )
|
||||||
Common.localStorage.setItem('ui-theme-id', id);
|
Common.localStorage.setItem('ui-theme-id', id);
|
||||||
Common.NotificationCenter.trigger('uitheme:changed', id);
|
Common.NotificationCenter.trigger('uitheme:changed', id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,8 @@
|
||||||
return _MAP[x] || x.toUpperCase().charCodeAt(0);
|
return _MAP[x] || x.toUpperCase().charCodeAt(0);
|
||||||
},
|
},
|
||||||
_downKeys = [];
|
_downKeys = [];
|
||||||
var locked;
|
var locked,
|
||||||
|
propagate;
|
||||||
|
|
||||||
for(k=1;k<20;k++) _MAP['f'+k] = 111+k;
|
for(k=1;k<20;k++) _MAP['f'+k] = 111+k;
|
||||||
|
|
||||||
|
@ -116,6 +117,8 @@
|
||||||
// call the handler and stop the event if neccessary
|
// call the handler and stop the event if neccessary
|
||||||
if((handler.mods.length == 0 && !_mods[16] && !_mods[18] && !_mods[17] && !_mods[91]) || modifiersMatch){
|
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 || handler.locked || handler.method(event, handler)===false){
|
||||||
|
if (locked===true && propagate || handler.locked && handler.propagate)
|
||||||
|
continue;
|
||||||
if(event.preventDefault) event.preventDefault();
|
if(event.preventDefault) event.preventDefault();
|
||||||
else event.returnValue = false;
|
else event.returnValue = false;
|
||||||
if(event.stopPropagation) event.stopPropagation();
|
if(event.stopPropagation) event.stopPropagation();
|
||||||
|
@ -188,8 +191,8 @@
|
||||||
|
|
||||||
if (keys.length > 1) {
|
if (keys.length > 1) {
|
||||||
mods = getMods(keys);
|
mods = getMods(keys);
|
||||||
key = keys[keys.length - 1];
|
|
||||||
}
|
}
|
||||||
|
(keys.length > 0) && (key = keys[keys.length - 1]);
|
||||||
|
|
||||||
key = code(key);
|
key = code(key);
|
||||||
|
|
||||||
|
@ -301,8 +304,8 @@
|
||||||
|
|
||||||
if (keys.length > 1) {
|
if (keys.length > 1) {
|
||||||
mods = getMods(keys);
|
mods = getMods(keys);
|
||||||
key = keys[keys.length - 1];
|
|
||||||
}
|
}
|
||||||
|
(keys.length > 0) && (key = keys[keys.length - 1]);
|
||||||
|
|
||||||
key = code(key);
|
key = code(key);
|
||||||
|
|
||||||
|
@ -320,12 +323,23 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function suspend(key, scope) {
|
function suspend(key, scope, pass) {
|
||||||
key ? setKeyOptions(key, scope, 'locked', true) : (locked = true);
|
if (key) {
|
||||||
|
setKeyOptions(key, scope, 'locked', true)
|
||||||
|
pass && setKeyOptions(key, scope, 'propagate', true)
|
||||||
|
} else {
|
||||||
|
locked = true;
|
||||||
|
pass && (propagate = true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function resume(key, scope) {
|
function resume(key, scope) {
|
||||||
key ? setKeyOptions(key, scope, 'locked', false) : (locked = false);
|
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
|
// set window.key and window.key.set/get/deleteScope, and the default filter
|
||||||
|
|
|
@ -128,8 +128,9 @@ function patchDropDownKeyDown(e) {
|
||||||
var mnu = $('> [role=menu]', li),
|
var mnu = $('> [role=menu]', li),
|
||||||
$subitems = mnu.find('> li:not(.divider):not(.disabled):visible > a'),
|
$subitems = mnu.find('> li:not(.divider):not(.disabled):visible > a'),
|
||||||
$dataviews = mnu.find('> li:not(.divider):not(.disabled):visible .dataview'),
|
$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');
|
$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();
|
($subitems.index($subitems.filter(':focus'))<0) && $subitems.eq(0).focus();
|
||||||
}, 250);
|
}, 250);
|
||||||
}
|
}
|
||||||
|
|
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>
|
|
@ -148,8 +148,8 @@ Common.util = Common.util||{};
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
suspendEvents: function(key,scope) {
|
suspendEvents: function(key,scope,propagate) {
|
||||||
window.key.suspend(key,scope);
|
window.key.suspend(key,scope,propagate);
|
||||||
},
|
},
|
||||||
|
|
||||||
resumeEvents: function(key,scope) {
|
resumeEvents: function(key,scope) {
|
||||||
|
|
|
@ -109,13 +109,16 @@
|
||||||
|
|
||||||
var me = this;
|
var me = this;
|
||||||
Common.NotificationCenter.on({'layout:changed': function(e){
|
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();
|
me.hide();
|
||||||
}});
|
}});
|
||||||
|
this.isDesktopApp = Common.Controllers.Desktop.isActive();
|
||||||
},
|
},
|
||||||
|
|
||||||
mousemove: function (e) {
|
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) {
|
leave: function(obj) {
|
||||||
|
|
|
@ -794,6 +794,9 @@ define(function(){ 'use strict';
|
||||||
textTurns: 'Turns',
|
textTurns: 'Turns',
|
||||||
textShapes: 'Shapes',
|
textShapes: 'Shapes',
|
||||||
textLoops: 'Loops',
|
textLoops: 'Loops',
|
||||||
|
textPathCurve: 'Curve',
|
||||||
|
textPathLine: 'Line',
|
||||||
|
textPathScribble: 'Scribble',
|
||||||
|
|
||||||
getEffectGroupData: function () {
|
getEffectGroupData: function () {
|
||||||
return [
|
return [
|
||||||
|
@ -849,8 +852,8 @@ define(function(){ 'use strict';
|
||||||
{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_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_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_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_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}
|
{group: 'menu-effect-group-path', value: AscFormat.MOTION_CUSTOM_PATH, iconCls: 'animation-motion-paths-custom-path', displayValue: this.textCustomPath}
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1038,7 +1041,8 @@ define(function(){ 'use strict';
|
||||||
{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_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_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_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_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}
|
||||||
|
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
@ -1277,11 +1281,21 @@ define(function(){ 'use strict';
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
getSimilarEffectsArray: function (group, familyEffect) {
|
getSimilarEffectsArray: function (familyEffect) {
|
||||||
switch (familyEffect){
|
switch (familyEffect){
|
||||||
case 'shape':
|
case 'shape':
|
||||||
return [
|
return [
|
||||||
|
|
|
@ -31,4 +31,10 @@ if ( !window.fetch ) {
|
||||||
return target;
|
return target;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols != 'function') {
|
||||||
|
Object.getOwnPropertySymbols = function(target) {
|
||||||
|
return [];
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,8 +62,14 @@ if ( window.desktop ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( theme.id ) {
|
if ( theme.id ) {
|
||||||
// params.uitheme = undefined;
|
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.setItem("ui-theme-id", theme.id);
|
||||||
|
}
|
||||||
|
|
||||||
localStorage.removeItem("ui-theme");
|
localStorage.removeItem("ui-theme");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,9 +88,11 @@ if ( !!params.uitheme && checkLocalStorage && !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_name = checkLocalStorage && localStorage.getItem("ui-theme-id") ? localStorage.getItem("ui-theme-id") : params.uitheme;
|
||||||
|
var ui_theme_type;
|
||||||
if ( !ui_theme_name ) {
|
if ( !ui_theme_name ) {
|
||||||
if ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) {
|
if ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) {
|
||||||
ui_theme_name = 'theme-dark';
|
ui_theme_name = 'theme-dark';
|
||||||
|
ui_theme_type = 'dark';
|
||||||
checkLocalStorage && localStorage.removeItem("ui-theme");
|
checkLocalStorage && localStorage.removeItem("ui-theme");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -93,10 +101,12 @@ if ( !!ui_theme_name ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( checkLocalStorage ) {
|
if ( checkLocalStorage ) {
|
||||||
var content_theme = localStorage.getItem("content-theme");
|
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' ) {
|
if ( content_theme == 'dark' ) {
|
||||||
var current_theme = localStorage.getItem("ui-theme");
|
|
||||||
if ( !!current_theme && /type":\s*"dark/.test(current_theme) ) {
|
|
||||||
document.body.classList.add("content-theme-dark");
|
document.body.classList.add("content-theme-dark");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
|
|
||||||
+function init_themes() {
|
+function init_themes() {
|
||||||
|
if ( localStorage.getItem("ui-theme-use-system") == '1' ) {
|
||||||
|
localStorage.removeItem("ui-theme-id");
|
||||||
|
}
|
||||||
|
|
||||||
var objtheme = localStorage.getItem("ui-theme");
|
var objtheme = localStorage.getItem("ui-theme");
|
||||||
if ( typeof(objtheme) == 'string' &&
|
if ( typeof(objtheme) == 'string' &&
|
||||||
objtheme.startsWith("{") && objtheme.endsWith("}") )
|
objtheme.startsWith("{") && objtheme.endsWith("}") )
|
||||||
|
|
|
@ -193,13 +193,18 @@ var utils = new(function() {
|
||||||
me.innerHeight = window.innerHeight * me.zoom;
|
me.innerHeight = window.innerHeight * me.zoom;
|
||||||
me.applicationPixelRatio = scale.applicationPixelRatio || scale.devicePixelRatio;
|
me.applicationPixelRatio = scale.applicationPixelRatio || scale.devicePixelRatio;
|
||||||
};
|
};
|
||||||
|
checkSizeIE = function() {
|
||||||
|
me.innerWidth = window.innerWidth;
|
||||||
|
me.innerHeight = window.innerHeight;
|
||||||
|
};
|
||||||
me.zoom = 1;
|
me.zoom = 1;
|
||||||
me.applicationPixelRatio = 1;
|
me.applicationPixelRatio = 1;
|
||||||
me.innerWidth = window.innerWidth;
|
me.innerWidth = window.innerWidth;
|
||||||
me.innerHeight = window.innerHeight;
|
me.innerHeight = window.innerHeight;
|
||||||
if ( isIE )
|
if ( isIE ) {
|
||||||
$(document.body).addClass('ie');
|
$(document.body).addClass('ie');
|
||||||
else {
|
$(window).on('resize', checkSizeIE);
|
||||||
|
} else {
|
||||||
checkSize();
|
checkSize();
|
||||||
$(window).on('resize', 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) {
|
Common.Utils.RGBColor = function(colorString) {
|
||||||
var r, g, b;
|
var r, g, b;
|
||||||
|
@ -603,8 +608,12 @@ Common.Utils.RGBColor = function(colorString) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Common.Utils.String = new (function() {
|
var utilsString = new (function() {
|
||||||
return {
|
return {
|
||||||
|
textCtrl: 'Ctrl',
|
||||||
|
textShift: 'Shift',
|
||||||
|
textAlt: 'Alt',
|
||||||
|
|
||||||
format: function(format) {
|
format: function(format) {
|
||||||
var args = _.toArray(arguments).slice(1);
|
var args = _.toArray(arguments).slice(1);
|
||||||
if (args.length && typeof args[0] == 'object')
|
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.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) {
|
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() {
|
Common.Utils.isBrowserSupported = function() {
|
||||||
return !((Common.Utils.ieVersion != 0 && Common.Utils.ieVersion < 10.0) ||
|
return !((Common.Utils.ieVersion != 0 && Common.Utils.ieVersion < 10.0) ||
|
||||||
(Common.Utils.safariVersion != 0 && Common.Utils.safariVersion < 5.0) ||
|
(Common.Utils.safariVersion != 0 && Common.Utils.safariVersion < 5.0) ||
|
||||||
|
@ -968,7 +979,7 @@ Common.Utils.warningDocumentIsLocked = function (opts) {
|
||||||
callback: function(btn){
|
callback: function(btn){
|
||||||
if (btn == 'edit') {
|
if (btn == 'edit') {
|
||||||
if ( opts.disablefunc ) opts.disablefunc(false);
|
if ( opts.disablefunc ) opts.disablefunc(false);
|
||||||
app.getController('Main').api.asc_setIsReadOnly(false);
|
app.getController('Main').api.asc_setLocalRestrictions(Asc.c_oAscLocalRestrictionType.None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -986,8 +997,9 @@ jQuery.fn.extend({
|
||||||
var _el = document.getElementById(id.substring(1));
|
var _el = document.getElementById(id.substring(1));
|
||||||
if ( !_el ) {
|
if ( !_el ) {
|
||||||
parent = parent || this;
|
parent = parent || this;
|
||||||
if ( parent instanceof jQuery ) {
|
if ( parent && parent.length > 0 ) {
|
||||||
parent.each(function (i, node) {
|
parent.each(function (i, node) {
|
||||||
|
if (node.querySelectorAll) {
|
||||||
_el = node.querySelectorAll(id);
|
_el = node.querySelectorAll(id);
|
||||||
if ( _el.length == 0 ) {
|
if ( _el.length == 0 ) {
|
||||||
if ( ('#' + node.id) == id ) {
|
if ( ('#' + node.id) == id ) {
|
||||||
|
@ -999,12 +1011,15 @@ jQuery.fn.extend({
|
||||||
_el = _el[0];
|
_el = _el[0];
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
if (parent && parent.querySelectorAll) {
|
||||||
_el = parent.querySelectorAll(id);
|
_el = parent.querySelectorAll(id);
|
||||||
if ( _el && _el.length ) return _el[0];
|
if ( _el && _el.length ) return _el[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return _el;
|
return _el;
|
||||||
},
|
},
|
||||||
|
|
|
@ -126,6 +126,12 @@ define([
|
||||||
'<a href="mailto:" id="id-about-company-mail"></a>',
|
'<a href="mailto:" id="id-about-company-mail"></a>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'</tr>',
|
'</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>',
|
'<tr>',
|
||||||
'<td align="center" class="padding-small">',
|
'<td align="center" class="padding-small">',
|
||||||
'<a href="" target="_blank" id="id-about-company-url"></a>',
|
'<a href="" target="_blank" id="id-about-company-url"></a>',
|
||||||
|
@ -177,6 +183,7 @@ define([
|
||||||
this.lblCompanyMail = _$l.findById('#id-about-company-mail');
|
this.lblCompanyMail = _$l.findById('#id-about-company-mail');
|
||||||
this.lblCompanyUrl = _$l.findById('#id-about-company-url');
|
this.lblCompanyUrl = _$l.findById('#id-about-company-url');
|
||||||
this.lblCompanyLic = _$l.findById('#id-about-company-lic');
|
this.lblCompanyLic = _$l.findById('#id-about-company-lic');
|
||||||
|
this.lblCompanyTel = _$l.findById('#id-about-company-tel');
|
||||||
|
|
||||||
this.$el.html(_$l);
|
this.$el.html(_$l);
|
||||||
this.$el.addClass('about-dlg');
|
this.$el.addClass('about-dlg');
|
||||||
|
@ -224,6 +231,11 @@ define([
|
||||||
this.lblCompanyMail.attr('href', "mailto:"+value).text(value) :
|
this.lblCompanyMail.attr('href', "mailto:"+value).text(value) :
|
||||||
this.lblCompanyMail.parents('tr').addClass('hidden');
|
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) {
|
if ((value = customer.www) && value.length) {
|
||||||
var http = !/^https?:\/{2}/i.test(value) ? "http:\/\/" : '';
|
var http = !/^https?:\/{2}/i.test(value) ? "http:\/\/" : '';
|
||||||
this.lblCompanyUrl.attr('href', http+value).text(value);
|
this.lblCompanyUrl.attr('href', http+value).text(value);
|
||||||
|
|
|
@ -52,7 +52,7 @@ define([
|
||||||
|
|
||||||
Common.Views.Header = Backbone.View.extend(_.extend(function(){
|
Common.Views.Header = Backbone.View.extend(_.extend(function(){
|
||||||
var storeUsers, appConfig;
|
var storeUsers, appConfig;
|
||||||
var $userList, $panelUsers, $btnUsers, $btnUserName;
|
var $userList, $panelUsers, $btnUsers, $btnUserName, $labelDocName;
|
||||||
var _readonlyRights = false;
|
var _readonlyRights = false;
|
||||||
|
|
||||||
var templateUserItem =
|
var templateUserItem =
|
||||||
|
@ -81,6 +81,7 @@ define([
|
||||||
'<div class="hedset">' +
|
'<div class="hedset">' +
|
||||||
'<div class="btn-slot" id="slot-hbtn-edit"></div>' +
|
'<div class="btn-slot" id="slot-hbtn-edit"></div>' +
|
||||||
'<div class="btn-slot" id="slot-hbtn-print"></div>' +
|
'<div class="btn-slot" id="slot-hbtn-print"></div>' +
|
||||||
|
'<div class="btn-slot" id="slot-hbtn-print-quick"></div>' +
|
||||||
'<div class="btn-slot" id="slot-hbtn-download"></div>' +
|
'<div class="btn-slot" id="slot-hbtn-download"></div>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'<div class="hedset" data-layout-name="header-users">' +
|
'<div class="hedset" data-layout-name="header-users">' +
|
||||||
|
@ -105,6 +106,7 @@ define([
|
||||||
'<div class="btn-slot" id="slot-btn-mode"></div>' +
|
'<div class="btn-slot" id="slot-btn-mode"></div>' +
|
||||||
'<div class="btn-slot" id="slot-btn-back"></div>' +
|
'<div class="btn-slot" id="slot-btn-back"></div>' +
|
||||||
'<div class="btn-slot" id="slot-btn-favorite"></div>' +
|
'<div class="btn-slot" id="slot-btn-favorite"></div>' +
|
||||||
|
'<div class="btn-slot" id="slot-btn-search"></div>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'<div class="hedset">' +
|
'<div class="hedset">' +
|
||||||
// '<div class="btn-slot slot-btn-user-name"></div>' +
|
// '<div class="btn-slot slot-btn-user-name"></div>' +
|
||||||
|
@ -127,6 +129,7 @@ define([
|
||||||
'<div class="hedset">' +
|
'<div class="hedset">' +
|
||||||
'<div class="btn-slot" id="slot-btn-dt-save" data-layout-name="header-save"></div>' +
|
'<div class="btn-slot" id="slot-btn-dt-save" data-layout-name="header-save"></div>' +
|
||||||
'<div class="btn-slot" id="slot-btn-dt-print"></div>' +
|
'<div class="btn-slot" id="slot-btn-dt-print"></div>' +
|
||||||
|
'<div class="btn-slot" id="slot-btn-dt-print-quick"></div>' +
|
||||||
'<div class="btn-slot" id="slot-btn-dt-undo"></div>' +
|
'<div class="btn-slot" id="slot-btn-dt-undo"></div>' +
|
||||||
'<div class="btn-slot" id="slot-btn-dt-redo"></div>' +
|
'<div class="btn-slot" id="slot-btn-dt-redo"></div>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
|
@ -186,11 +189,13 @@ define([
|
||||||
} else {
|
} else {
|
||||||
$panelUsers['hide']();
|
$panelUsers['hide']();
|
||||||
}
|
}
|
||||||
|
updateDocNamePosition(appConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onLostEditRights() {
|
function onLostEditRights() {
|
||||||
_readonlyRights = true;
|
_readonlyRights = true;
|
||||||
this.btnShare && this.btnShare.setVisible(false);
|
this.btnShare && this.btnShare.setVisible(false);
|
||||||
|
updateDocNamePosition(appConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onUsersClick(e) {
|
function onUsersClick(e) {
|
||||||
|
@ -203,28 +208,59 @@ define([
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAppShowed(config) {
|
function updateDocNamePosition(config) {
|
||||||
//config.isCrypted =true; //delete fore merge!
|
if ( $labelDocName && config) {
|
||||||
if ( this.labelDocName ) {
|
var $parent = $labelDocName.parent();
|
||||||
if ( config.isCrypted ) {
|
if (!config.isEdit) {
|
||||||
this.labelDocName.attr({'style':'text-align: left;'});
|
|
||||||
this.labelDocName.before(
|
|
||||||
'<div class="inner-box-icon crypted">' +
|
|
||||||
'<svg class="icon"><use xlink:href="#svg-icon-crypted"></use></svg>' +
|
|
||||||
'</div>');
|
|
||||||
this.imgCrypted = this.labelDocName.parent().find('.crypted');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!config.isEdit || !config.customization || !config.customization.compactHeader) {
|
|
||||||
var $parent = this.labelDocName.parent();
|
|
||||||
var _left_width = $parent.position().left,
|
var _left_width = $parent.position().left,
|
||||||
_right_width = $parent.next().outerWidth();
|
_right_width = $parent.next().outerWidth();
|
||||||
|
$parent.css('padding-left', _left_width < _right_width ? Math.max(2, _right_width - _left_width) : 2);
|
||||||
if ( _left_width < _right_width )
|
$parent.css('padding-right', _left_width < _right_width ? 2 : Math.max(2, _left_width - _right_width));
|
||||||
this.labelDocName.parent().css('padding-left', _right_width - _left_width);
|
} else if (!(config.customization && config.customization.compactHeader)) {
|
||||||
else this.labelDocName.parent().css('padding-right', _left_width - _right_width);
|
var _left_width = $parent.position().left,
|
||||||
|
_right_width = $parent.next().outerWidth(),
|
||||||
|
outerWidth = $labelDocName.outerWidth(),
|
||||||
|
cssWidth = $labelDocName[0].style.width;
|
||||||
|
cssWidth = cssWidth ? parseFloat(cssWidth) : outerWidth;
|
||||||
|
if (cssWidth - outerWidth > 0.1) {
|
||||||
|
$parent.css('padding-left', _left_width < _right_width ? Math.max(2, $parent.outerWidth() - 2 - cssWidth) : 2);
|
||||||
|
$parent.css('padding-right', _left_width < _right_width ? 2 : Math.max(2, $parent.outerWidth() - 2 - cssWidth));
|
||||||
|
} else {
|
||||||
|
$parent.css('padding-left', _left_width < _right_width ? Math.max(2, Math.min(_right_width - _left_width + 2, $parent.outerWidth() - 2 - cssWidth)) : 2);
|
||||||
|
$parent.css('padding-right', _left_width < _right_width ? 2 : Math.max(2, Math.min(_left_width - _right_width + 2, $parent.outerWidth() - 2 - cssWidth)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!(config.customization && config.customization.toolbarHideFileName) && (!config.isEdit || config.customization && config.customization.compactHeader)) {
|
||||||
|
var basis = parseFloat($parent.css('padding-left') || 0) + parseFloat($parent.css('padding-right') || 0) + parseInt($labelDocName.css('min-width') || 50); // 2px - box-shadow
|
||||||
|
config.isCrypted && (basis += 20);
|
||||||
|
$parent.css('flex-basis', Math.ceil(basis) + 'px');
|
||||||
|
$parent.closest('.extra.right').css('flex-basis', Math.ceil(basis) + $parent.next().outerWidth() + 'px');
|
||||||
|
Common.NotificationCenter.trigger('tab:resize');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onResize() {
|
||||||
|
if (appConfig && appConfig.isEdit && !(appConfig.customization && appConfig.customization.compactHeader)) {
|
||||||
|
updateDocNamePosition(appConfig);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onAppShowed(config) {
|
||||||
|
// config.isCrypted =true; //delete fore merge!
|
||||||
|
if ( $labelDocName ) {
|
||||||
|
if ( config.isCrypted ) {
|
||||||
|
$labelDocName.before(
|
||||||
|
'<div class="inner-box-icon crypted hidden">' +
|
||||||
|
'<svg class="icon"><use xlink:href="#svg-icon-crypted"></use></svg>' +
|
||||||
|
'</div>');
|
||||||
|
this.imgCrypted = $labelDocName.parent().find('.crypted');
|
||||||
|
this._showImgCrypted = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
updateDocNamePosition(config);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAppReady(mode) {
|
function onAppReady(mode) {
|
||||||
|
@ -249,6 +285,7 @@ define([
|
||||||
});
|
});
|
||||||
me.btnShare.updateHint(me.tipAccessRights);
|
me.btnShare.updateHint(me.tipAccessRights);
|
||||||
me.btnShare.setVisible(!_readonlyRights && appConfig && (appConfig.sharingSettingsUrl && appConfig.sharingSettingsUrl.length || appConfig.canRequestSharingSettings));
|
me.btnShare.setVisible(!_readonlyRights && appConfig && (appConfig.sharingSettingsUrl && appConfig.sharingSettingsUrl.length || appConfig.canRequestSharingSettings));
|
||||||
|
updateDocNamePosition(appConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( me.logo )
|
if ( me.logo )
|
||||||
|
@ -279,6 +316,7 @@ define([
|
||||||
});
|
});
|
||||||
$btnUsers.on('click', onUsersClick.bind(me));
|
$btnUsers.on('click', onUsersClick.bind(me));
|
||||||
$panelUsers[(editingUsers > 1 && appConfig && (appConfig.isEdit || appConfig.isRestrictedEdit)) ? 'show' : 'hide']();
|
$panelUsers[(editingUsers > 1 && appConfig && (appConfig.isEdit || appConfig.isRestrictedEdit)) ? 'show' : 'hide']();
|
||||||
|
updateDocNamePosition(appConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (appConfig.user.guest && appConfig.canRenameAnonymous) {
|
if (appConfig.user.guest && appConfig.canRenameAnonymous) {
|
||||||
|
@ -296,6 +334,13 @@ define([
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( me.btnPrintQuick ) {
|
||||||
|
me.btnPrintQuick.updateHint(me.tipPrintQuick);
|
||||||
|
me.btnPrintQuick.on('click', function (e) {
|
||||||
|
me.fireEvent('print-quick', me);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if ( me.btnSave ) {
|
if ( me.btnSave ) {
|
||||||
me.btnSave.updateHint(me.tipSave + Common.Utils.String.platformKey('Ctrl+S'));
|
me.btnSave.updateHint(me.tipSave + Common.Utils.String.platformKey('Ctrl+S'));
|
||||||
me.btnSave.on('click', function (e) {
|
me.btnSave.on('click', function (e) {
|
||||||
|
@ -332,60 +377,67 @@ define([
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (me.btnSearch)
|
||||||
|
me.btnSearch.updateHint(me.tipSearch + Common.Utils.String.platformKey('Ctrl+F'));
|
||||||
|
|
||||||
|
if (appConfig.isEdit && !(appConfig.customization && appConfig.customization.compactHeader))
|
||||||
|
Common.NotificationCenter.on('window:resize', onResize);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onFocusDocName(e){
|
function onFocusDocName(e){
|
||||||
var me = this;
|
var me = this;
|
||||||
me.imgCrypted && me.imgCrypted.attr('hidden', true);
|
me.imgCrypted && me.imgCrypted.toggleClass('hidden', true);
|
||||||
me.isSaveDocName =false;
|
me.isSaveDocName =false;
|
||||||
if(me.withoutExt) return;
|
if(me.withoutExt) return;
|
||||||
var name = me.cutDocName(me.labelDocName.val());
|
var name = me.cutDocName($labelDocName.val());
|
||||||
_.delay(function(){
|
|
||||||
me.labelDocName.val(name);
|
|
||||||
},100);
|
|
||||||
me.withoutExt = true;
|
me.withoutExt = true;
|
||||||
|
_.delay(function(){
|
||||||
|
me.setDocTitle(name);
|
||||||
|
$labelDocName.select();
|
||||||
|
},100);
|
||||||
}
|
}
|
||||||
|
|
||||||
function onDocNameKeyDown(e) {
|
function onDocNameKeyDown(e) {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
|
||||||
var name = me.labelDocName.val();
|
var name = $labelDocName.val();
|
||||||
if ( e.keyCode == Common.UI.Keys.RETURN ) {
|
if ( e.keyCode == Common.UI.Keys.RETURN ) {
|
||||||
name = name.trim();
|
name = name.trim();
|
||||||
me.isSaveDocName =true;
|
|
||||||
if ( !_.isEmpty(name) && me.cutDocName(me.documentCaption) !== name ) {
|
if ( !_.isEmpty(name) && me.cutDocName(me.documentCaption) !== name ) {
|
||||||
|
me.isSaveDocName =true;
|
||||||
if ( /[\t*\+:\"<>?|\\\\/]/gim.test(name) ) {
|
if ( /[\t*\+:\"<>?|\\\\/]/gim.test(name) ) {
|
||||||
_.defer(function() {
|
_.defer(function() {
|
||||||
Common.UI.error({
|
Common.UI.error({
|
||||||
msg: (new Common.Views.RenameDialog).txtInvalidName + "*+:\"<>?|\/"
|
msg: (new Common.Views.RenameDialog).txtInvalidName + "*+:\"<>?|\/"
|
||||||
, callback: function() {
|
, callback: function() {
|
||||||
_.delay(function() {
|
_.delay(function() {
|
||||||
me.labelDocName.focus();
|
$labelDocName.focus();
|
||||||
me.isSaveDocName =true;
|
me.isSaveDocName =true;
|
||||||
}, 50);
|
}, 50);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//me.labelDocName.blur();
|
|
||||||
})
|
})
|
||||||
} else
|
} else
|
||||||
if(me.withoutExt) {
|
if(me.withoutExt) {
|
||||||
name = me.cutDocName(name);
|
name = me.cutDocName(name);
|
||||||
me.options.wopi ? me.api.asc_wopi_renameFile(name) : Common.Gateway.requestRename(name);
|
me.options.wopi ? me.api.asc_wopi_renameFile(name) : Common.Gateway.requestRename(name);
|
||||||
name += me.fileExtention;
|
name += me.fileExtention;
|
||||||
me.labelDocName.val(name);
|
|
||||||
me.withoutExt = false;
|
me.withoutExt = false;
|
||||||
|
me.setDocTitle(name);
|
||||||
Common.NotificationCenter.trigger('edit:complete', me);
|
Common.NotificationCenter.trigger('edit:complete', me);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
Common.NotificationCenter.trigger('edit:complete', me);
|
Common.NotificationCenter.trigger('edit:complete', me);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if ( e.keyCode == Common.UI.Keys.ESC ) {
|
if ( e.keyCode == Common.UI.Keys.ESC ) {
|
||||||
Common.NotificationCenter.trigger('edit:complete', this);
|
Common.NotificationCenter.trigger('edit:complete', this);
|
||||||
} else {
|
} else {
|
||||||
me.labelDocName.attr('size', name.length + me.fileExtention.length > 10 ? name.length + me.fileExtention.length : 10);
|
_.delay(function(){
|
||||||
|
me.setDocTitle();
|
||||||
|
},10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,6 +482,15 @@ define([
|
||||||
reset : onResetUsers
|
reset : onResetUsers
|
||||||
});
|
});
|
||||||
|
|
||||||
|
me.btnSearch = new Common.UI.Button({
|
||||||
|
cls: 'btn-header no-caret',
|
||||||
|
iconCls: 'toolbar__icon icon--inverse btn-menu-search',
|
||||||
|
enableToggle: true,
|
||||||
|
dataHint: '0',
|
||||||
|
dataHintDirection: 'bottom',
|
||||||
|
dataHintOffset: 'big'
|
||||||
|
});
|
||||||
|
|
||||||
me.btnFavorite = new Common.UI.Button({
|
me.btnFavorite = new Common.UI.Button({
|
||||||
id: 'btn-favorite',
|
id: 'btn-favorite',
|
||||||
cls: 'btn-header',
|
cls: 'btn-header',
|
||||||
|
@ -442,6 +503,7 @@ define([
|
||||||
Common.NotificationCenter.on({
|
Common.NotificationCenter.on({
|
||||||
'app:ready': function(mode) {Common.Utils.asyncCall(onAppReady, me, mode);},
|
'app:ready': function(mode) {Common.Utils.asyncCall(onAppReady, me, mode);},
|
||||||
'app:face': function(mode) {Common.Utils.asyncCall(onAppShowed, me, mode);},
|
'app:face': function(mode) {Common.Utils.asyncCall(onAppShowed, me, mode);},
|
||||||
|
'tab:visible': function() {Common.Utils.asyncCall(updateDocNamePosition, me, appConfig);},
|
||||||
'collaboration:sharingdeny': function(mode) {Common.Utils.asyncCall(onLostEditRights, me, mode);}
|
'collaboration:sharingdeny': function(mode) {Common.Utils.asyncCall(onLostEditRights, me, mode);}
|
||||||
});
|
});
|
||||||
Common.NotificationCenter.on('uitheme:changed', this.changeLogo.bind(this));
|
Common.NotificationCenter.on('uitheme:changed', this.changeLogo.bind(this));
|
||||||
|
@ -463,7 +525,7 @@ define([
|
||||||
disabled: disabled === true,
|
disabled: disabled === true,
|
||||||
dataHint:'0',
|
dataHint:'0',
|
||||||
dataHintDirection: hintDirection ? hintDirection : (config.isDesktopApp ? 'right' : 'left'),
|
dataHintDirection: hintDirection ? hintDirection : (config.isDesktopApp ? 'right' : 'left'),
|
||||||
dataHintOffset: hintOffset ? hintOffset : (config.isDesktopApp ? '10, -10' : '10, 10'),
|
dataHintOffset: hintOffset ? hintOffset : (config.isDesktopApp ? '10, -18' : '10, 10'),
|
||||||
dataHintTitle: hintTitle
|
dataHintTitle: hintTitle
|
||||||
})).render(slot);
|
})).render(slot);
|
||||||
}
|
}
|
||||||
|
@ -487,18 +549,16 @@ define([
|
||||||
textShare: this.textShare
|
textShare: this.textShare
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if ( !me.labelDocName ) {
|
if ( !$labelDocName ) {
|
||||||
me.labelDocName = $html.find('#rib-doc-name');
|
$labelDocName = $html.find('#rib-doc-name');
|
||||||
if ( me.documentCaption ) {
|
if ( me.documentCaption ) {
|
||||||
me.labelDocName.val(me.documentCaption);
|
setTimeout(function() { me.setDocTitle(me.documentCaption); }, 50);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$html.find('#rib-doc-name').hide();
|
$html.find('#rib-doc-name').hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !_.isUndefined(this.options.canRename) ) {
|
this.setCanRename(!!this.options.canRename);
|
||||||
this.setCanRename(this.options.canRename);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( this.options.canBack === true ) {
|
if ( this.options.canBack === true ) {
|
||||||
me.btnGoBack.render($html.find('#slot-btn-back'));
|
me.btnGoBack.render($html.find('#slot-btn-back'));
|
||||||
|
@ -521,9 +581,13 @@ define([
|
||||||
if ( config.canPrint )
|
if ( config.canPrint )
|
||||||
this.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-hbtn-print'), undefined, 'bottom', 'big', 'P');
|
this.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-hbtn-print'), undefined, 'bottom', 'big', 'P');
|
||||||
|
|
||||||
|
if ( config.canQuickPrint )
|
||||||
|
this.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-hbtn-print-quick'), undefined, 'bottom', 'big', 'Q');
|
||||||
|
|
||||||
if ( config.canEdit && config.canRequestEditRights )
|
if ( config.canEdit && config.canRequestEditRights )
|
||||||
this.btnEdit = createTitleButton('toolbar__icon icon--inverse btn-edit', $html.findById('#slot-hbtn-edit'), undefined, 'bottom', 'big');
|
this.btnEdit = createTitleButton('toolbar__icon icon--inverse btn-edit', $html.findById('#slot-hbtn-edit'), undefined, 'bottom', 'big');
|
||||||
}
|
}
|
||||||
|
me.btnSearch.render($html.find('#slot-btn-search'));
|
||||||
|
|
||||||
if (!config.isEdit || config.customization && !!config.customization.compactHeader) {
|
if (!config.isEdit || config.customization && !!config.customization.compactHeader) {
|
||||||
if (config.user.guest && config.canRenameAnonymous) {
|
if (config.user.guest && config.canRenameAnonymous) {
|
||||||
|
@ -567,10 +631,11 @@ define([
|
||||||
if ( role == 'title' ) {
|
if ( role == 'title' ) {
|
||||||
var $html = $(_.template(templateTitleBox)());
|
var $html = $(_.template(templateTitleBox)());
|
||||||
|
|
||||||
!!me.labelDocName && me.labelDocName.hide().off(); // hide document title if it was created in right box
|
!!$labelDocName && $labelDocName.hide().off(); // hide document title if it was created in right box
|
||||||
me.labelDocName = $html.find('#title-doc-name');
|
$labelDocName = $html.find('#title-doc-name');
|
||||||
me.labelDocName.val( me.documentCaption );
|
setTimeout(function() { me.setDocTitle(me.documentCaption); }, 50);
|
||||||
me.options.wopi && me.labelDocName.attr('maxlength', me.options.wopi.FileNameMaxLength);
|
|
||||||
|
me.options.wopi && $labelDocName.attr('maxlength', me.options.wopi.FileNameMaxLength);
|
||||||
|
|
||||||
if (config.user.guest && config.canRenameAnonymous) {
|
if (config.user.guest && config.canRenameAnonymous) {
|
||||||
me.btnUserName = new Common.UI.Button({
|
me.btnUserName = new Common.UI.Button({
|
||||||
|
@ -593,24 +658,13 @@ define([
|
||||||
if ( config.canPrint && config.isEdit ) {
|
if ( config.canPrint && config.isEdit ) {
|
||||||
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P');
|
me.btnPrint = createTitleButton('toolbar__icon icon--inverse btn-print', $html.findById('#slot-btn-dt-print'), true, undefined, undefined, 'P');
|
||||||
}
|
}
|
||||||
|
if ( config.canQuickPrint && config.isEdit )
|
||||||
|
me.btnPrintQuick = createTitleButton('toolbar__icon icon--inverse btn-quick-print', $html.findById('#slot-btn-dt-print-quick'), true, undefined, undefined, 'Q');
|
||||||
|
|
||||||
me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S');
|
me.btnSave = createTitleButton('toolbar__icon icon--inverse btn-save', $html.findById('#slot-btn-dt-save'), true, undefined, undefined, 'S');
|
||||||
me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true, undefined, undefined, 'Z');
|
me.btnUndo = createTitleButton('toolbar__icon icon--inverse btn-undo', $html.findById('#slot-btn-dt-undo'), true, undefined, undefined, 'Z');
|
||||||
me.btnRedo = createTitleButton('toolbar__icon icon--inverse btn-redo', $html.findById('#slot-btn-dt-redo'), true, undefined, undefined, 'Y');
|
me.btnRedo = createTitleButton('toolbar__icon icon--inverse btn-redo', $html.findById('#slot-btn-dt-redo'), true, undefined, undefined, 'Y');
|
||||||
|
|
||||||
if ( me.btnSave.$icon.is('svg') ) {
|
|
||||||
me.btnSave.$icon.addClass('icon-save btn-save');
|
|
||||||
var _create_use = function (extid, intid) {
|
|
||||||
var _use = document.createElementNS('http://www.w3.org/2000/svg', 'use');
|
|
||||||
_use.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', extid);
|
|
||||||
_use.setAttribute('id', intid);
|
|
||||||
|
|
||||||
return $(_use);
|
|
||||||
};
|
|
||||||
|
|
||||||
_create_use('#svg-btn-save-coauth', 'coauth').appendTo(me.btnSave.$icon);
|
|
||||||
_create_use('#svg-btn-save-sync', 'sync').appendTo(me.btnSave.$icon);
|
|
||||||
}
|
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -655,12 +709,9 @@ define([
|
||||||
if (idx>0)
|
if (idx>0)
|
||||||
this.fileExtention = this.documentCaption.substring(idx);
|
this.fileExtention = this.documentCaption.substring(idx);
|
||||||
this.isModified && (value += '*');
|
this.isModified && (value += '*');
|
||||||
if ( this.labelDocName ) {
|
this.readOnly && (value += ' (' + this.textReadOnly + ')');
|
||||||
this.labelDocName.val( value );
|
if ( $labelDocName ) {
|
||||||
// this.labelDocName.attr('size', value.length);
|
this.setDocTitle( value );
|
||||||
this.setCanRename(this.options.canRename);
|
|
||||||
|
|
||||||
//this.setCanRename(true);
|
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
|
@ -675,7 +726,7 @@ define([
|
||||||
var _name = this.documentCaption;
|
var _name = this.documentCaption;
|
||||||
changed && (_name += '*');
|
changed && (_name += '*');
|
||||||
|
|
||||||
this.labelDocName.val(_name);
|
this.setDocTitle(_name);
|
||||||
},
|
},
|
||||||
|
|
||||||
setCanBack: function (value, text) {
|
setCanBack: function (value, text) {
|
||||||
|
@ -683,7 +734,7 @@ define([
|
||||||
this.btnGoBack[value ? 'show' : 'hide']();
|
this.btnGoBack[value ? 'show' : 'hide']();
|
||||||
if (value)
|
if (value)
|
||||||
this.btnGoBack.updateHint((text && typeof text == 'string') ? text : this.textBack);
|
this.btnGoBack.updateHint((text && typeof text == 'string') ? text : this.textBack);
|
||||||
|
updateDocNamePosition(appConfig);
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -696,7 +747,7 @@ define([
|
||||||
this.btnFavorite[value!==undefined && value!==null ? 'show' : 'hide']();
|
this.btnFavorite[value!==undefined && value!==null ? 'show' : 'hide']();
|
||||||
this.btnFavorite.changeIcon(!!value ? {next: 'btn-in-favorite'} : {curr: 'btn-in-favorite'});
|
this.btnFavorite.changeIcon(!!value ? {next: 'btn-in-favorite'} : {curr: 'btn-in-favorite'});
|
||||||
this.btnFavorite.updateHint(!value ? this.textAddFavorite : this.textRemoveFavorite);
|
this.btnFavorite.updateHint(!value ? this.textAddFavorite : this.textRemoveFavorite);
|
||||||
|
updateDocNamePosition(appConfig);
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -705,12 +756,10 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
setCanRename: function (rename) {
|
setCanRename: function (rename) {
|
||||||
//rename = true; //comment out for merge
|
|
||||||
|
|
||||||
var me = this;
|
var me = this;
|
||||||
me.options.canRename = rename;
|
me.options.canRename = rename;
|
||||||
if ( me.labelDocName ) {
|
if ( $labelDocName ) {
|
||||||
var label = me.labelDocName;
|
var label = $labelDocName;
|
||||||
if ( rename ) {
|
if ( rename ) {
|
||||||
label.removeAttr('disabled').tooltip({
|
label.removeAttr('disabled').tooltip({
|
||||||
title: me.txtRename,
|
title: me.txtRename,
|
||||||
|
@ -721,17 +770,17 @@ define([
|
||||||
'keydown': onDocNameKeyDown.bind(this),
|
'keydown': onDocNameKeyDown.bind(this),
|
||||||
'focus': onFocusDocName.bind(this),
|
'focus': onFocusDocName.bind(this),
|
||||||
'blur': function (e) {
|
'blur': function (e) {
|
||||||
me.imgCrypted && me.imgCrypted.attr('hidden', false);
|
me.imgCrypted && me.imgCrypted.toggleClass('hidden', false);
|
||||||
|
Common.Utils.isGecko && (label[0].selectionStart = label[0].selectionEnd = 0);
|
||||||
if(!me.isSaveDocName) {
|
if(!me.isSaveDocName) {
|
||||||
me.labelDocName.val(me.documentCaption);
|
|
||||||
me.withoutExt = false;
|
me.withoutExt = false;
|
||||||
|
me.setDocTitle(me.documentCaption);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'paste': function (e) {
|
'paste': function (e) {
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
var name = me.cutDocName(me.labelDocName.val());
|
var name = me.cutDocName($labelDocName.val());
|
||||||
me.labelDocName.val(name);
|
me.setDocTitle(name);
|
||||||
me.labelDocName.attr('size', name.length + me.fileExtention.length > 10 ? name.length + me.fileExtention.length : 10);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -750,12 +799,35 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
cutDocName: function(name) {
|
cutDocName: function(name) {
|
||||||
if(name.length <= this.fileExtention.length) return;
|
if(name.length <= this.fileExtention.length) return name;
|
||||||
var idx =name.length - this.fileExtention.length;
|
var idx =name.length - this.fileExtention.length;
|
||||||
|
|
||||||
return (name.substring(idx) == this.fileExtention) ? name.substring(0, idx) : name ;
|
return (name.substring(idx) == this.fileExtention) ? name.substring(0, idx) : name ;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setDocTitle: function(name){
|
||||||
|
var width = this.getTextWidth(name || $labelDocName.val());
|
||||||
|
(width>=0) && $labelDocName.width(width);
|
||||||
|
name && (width>=0) && $labelDocName.val(name);
|
||||||
|
if (this._showImgCrypted && width>=0) {
|
||||||
|
this.imgCrypted.toggleClass('hidden', false);
|
||||||
|
this._showImgCrypted = false;
|
||||||
|
}
|
||||||
|
(width>=0) && onResize();
|
||||||
|
},
|
||||||
|
|
||||||
|
getTextWidth: function(text) {
|
||||||
|
if (!this._testCanvas ) {
|
||||||
|
var font = ($labelDocName.css('font-size') + ' ' + $labelDocName.css('font-family')).trim();
|
||||||
|
if (font) {
|
||||||
|
var canvas = document.createElement("canvas");
|
||||||
|
this._testCanvas = canvas.getContext('2d');
|
||||||
|
this._testCanvas.font = font;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this._testCanvas ? this._testCanvas.measureText(text).width : -1;
|
||||||
|
},
|
||||||
|
|
||||||
setUserName: function(name) {
|
setUserName: function(name) {
|
||||||
this.options.userName = name;
|
this.options.userName = name;
|
||||||
if ( this.btnUserName ) {
|
if ( this.btnUserName ) {
|
||||||
|
@ -830,6 +902,11 @@ define([
|
||||||
return initials;
|
return initials;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
setDocumentReadOnly: function (readonly) {
|
||||||
|
this.readOnly = readonly;
|
||||||
|
this.setDocumentCaption(this.documentCaption);
|
||||||
|
},
|
||||||
|
|
||||||
textBack: 'Go to Documents',
|
textBack: 'Go to Documents',
|
||||||
txtRename: 'Rename',
|
txtRename: 'Rename',
|
||||||
txtAccessRights: 'Change access rights',
|
txtAccessRights: 'Change access rights',
|
||||||
|
@ -852,7 +929,10 @@ define([
|
||||||
textRemoveFavorite: 'Remove from Favorites',
|
textRemoveFavorite: 'Remove from Favorites',
|
||||||
textAddFavorite: 'Mark as favorite',
|
textAddFavorite: 'Mark as favorite',
|
||||||
textHideNotes: 'Hide Notes',
|
textHideNotes: 'Hide Notes',
|
||||||
textShare: 'Share'
|
tipSearch: 'Search',
|
||||||
|
textShare: 'Share',
|
||||||
|
tipPrintQuick: 'Quick print',
|
||||||
|
textReadOnly: 'Read only'
|
||||||
}
|
}
|
||||||
}(), Common.Views.Header || {}))
|
}(), Common.Views.Header || {}))
|
||||||
});
|
});
|
||||||
|
|
|
@ -68,11 +68,14 @@ define([
|
||||||
initialize: function(options) {
|
initialize: function(options) {
|
||||||
_.extend(this, options);
|
_.extend(this, options);
|
||||||
Common.UI.BaseView.prototype.initialize.call(this, arguments);
|
Common.UI.BaseView.prototype.initialize.call(this, arguments);
|
||||||
|
|
||||||
|
var filter = Common.localStorage.getKeysFilter();
|
||||||
|
this.appPrefix = (filter && filter.length) ? filter.split(',')[0] : '';
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function(el) {
|
render: function(el) {
|
||||||
el = el || this.el;
|
el = el || this.el;
|
||||||
$(el).html(this.template({scope: this})).width( (parseInt(Common.localStorage.getItem('de-mainmenu-width')) || MENU_SCALE_PART) - SCALE_MIN);
|
$(el).html(this.template({scope: this})).width( (parseInt(Common.localStorage.getItem(this.appPrefix + 'mainmenu-width')) || MENU_SCALE_PART) - SCALE_MIN);
|
||||||
|
|
||||||
this.viewHistoryList = new Common.UI.DataView({
|
this.viewHistoryList = new Common.UI.DataView({
|
||||||
el: $('#history-list'),
|
el: $('#history-list'),
|
||||||
|
|
|
@ -48,7 +48,7 @@ define([
|
||||||
Common.Views.InsertTableDialog = Common.UI.Window.extend(_.extend({
|
Common.Views.InsertTableDialog = Common.UI.Window.extend(_.extend({
|
||||||
options: {
|
options: {
|
||||||
width: 230,
|
width: 230,
|
||||||
height: 156,
|
height: 157,
|
||||||
style: 'min-width: 230px;',
|
style: 'min-width: 230px;',
|
||||||
cls: 'modal-dlg',
|
cls: 'modal-dlg',
|
||||||
split: false,
|
split: false,
|
||||||
|
|
|
@ -50,11 +50,18 @@ define([
|
||||||
'common/main/lib/view/SymbolTableDialog'
|
'common/main/lib/view/SymbolTableDialog'
|
||||||
], function () { 'use strict';
|
], function () { 'use strict';
|
||||||
|
|
||||||
|
var _BulletTypes = {};
|
||||||
|
_BulletTypes.none = -1;
|
||||||
|
_BulletTypes.symbol = 0;
|
||||||
|
_BulletTypes.image = 2;
|
||||||
|
_BulletTypes.newSymbol = 1;
|
||||||
|
_BulletTypes.newImage = -2;
|
||||||
|
|
||||||
Common.Views.ListSettingsDialog = Common.UI.Window.extend(_.extend({
|
Common.Views.ListSettingsDialog = Common.UI.Window.extend(_.extend({
|
||||||
options: {
|
options: {
|
||||||
type: 0, // 0 - markers, 1 - numbers
|
type: 0, // 0 - markers, 1 - numbers
|
||||||
width: 280,
|
width: 285,
|
||||||
height: 255,
|
height: 261,
|
||||||
style: 'min-width: 240px;',
|
style: 'min-width: 240px;',
|
||||||
cls: 'modal-dlg',
|
cls: 'modal-dlg',
|
||||||
split: false,
|
split: false,
|
||||||
|
@ -80,9 +87,18 @@ define([
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
||||||
'<label class="text">' + this.txtType + '</label>',
|
'<label class="text">' + this.txtType + '</label>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;width: 100px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
|
||||||
'<div id="id-dlg-list-numbering-format" class="input-group-nr" style="width: 100px;"></div>',
|
'<div id="id-dlg-list-numbering-format" class="input-group-nr" style="width: 105px;"></div>',
|
||||||
'<div id="id-dlg-list-bullet-format" class="input-group-nr" style="width: 100px;"></div>',
|
'<div id="id-dlg-list-bullet-format" class="input-group-nr" style="width: 105px;"></div>',
|
||||||
|
'</td>',
|
||||||
|
'<td style="padding-bottom: 8px;"></td>',
|
||||||
|
'</tr>',
|
||||||
|
'<tr class="image">',
|
||||||
|
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
||||||
|
'<label class="text">' + this.txtImport + '</label>',
|
||||||
|
'</td>',
|
||||||
|
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
|
||||||
|
'<div id="id-dlg-list-image" style="width: 105px;"></div>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-bottom: 8px;"></td>',
|
'<td style="padding-bottom: 8px;"></td>',
|
||||||
'</tr>',
|
'</tr>',
|
||||||
|
@ -90,7 +106,7 @@ define([
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
||||||
'<label class="text">' + this.txtSize + '</label>',
|
'<label class="text">' + this.txtSize + '</label>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;width: 100px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
|
||||||
'<div id="id-dlg-list-size"></div>',
|
'<div id="id-dlg-list-size"></div>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-bottom: 8px;">',
|
'<td style="padding-bottom: 8px;">',
|
||||||
|
@ -101,16 +117,16 @@ define([
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
||||||
'<label class="text" style="white-space: nowrap;">' + this.txtStart + '</label>',
|
'<label class="text" style="white-space: nowrap;">' + this.txtStart + '</label>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;width: 100px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
|
||||||
'<div id="id-dlg-list-start"></div>',
|
'<div id="id-dlg-list-start"></div>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-bottom: 8px;"></td>',
|
'<td style="padding-bottom: 8px;"></td>',
|
||||||
'</tr>',
|
'</tr>',
|
||||||
'<tr>',
|
'<tr class="color">',
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;min-width: 50px;">',
|
||||||
'<label class="text">' + this.txtColor + '</label>',
|
'<label class="text">' + this.txtColor + '</label>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-right: 5px;padding-bottom: 8px;width: 100px;">',
|
'<td style="padding-right: 5px;padding-bottom: 8px;width: 105px;">',
|
||||||
'<div id="id-dlg-list-color"></div>',
|
'<div id="id-dlg-list-color"></div>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'<td style="padding-bottom: 8px;"></td>',
|
'<td style="padding-bottom: 8px;"></td>',
|
||||||
|
@ -123,6 +139,8 @@ define([
|
||||||
this.props = options.props;
|
this.props = options.props;
|
||||||
this.options.tpl = _.template(this.template)(this.options);
|
this.options.tpl = _.template(this.template)(this.options);
|
||||||
this.color = '000000';
|
this.color = '000000';
|
||||||
|
this.storage = !!options.storage;
|
||||||
|
this.api = options.api;
|
||||||
|
|
||||||
Common.UI.Window.prototype.initialize.call(this, this.options);
|
Common.UI.Window.prototype.initialize.call(this, this.options);
|
||||||
},
|
},
|
||||||
|
@ -179,7 +197,9 @@ define([
|
||||||
[
|
[
|
||||||
'<% _.each(items, function(item) { %>',
|
'<% _.each(items, function(item) { %>',
|
||||||
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem">',
|
'<li id="<%= item.id %>" data-value="<%= item.value %>"><a tabindex="-1" type="menuitem">',
|
||||||
'<%= item.displayValue %><% if (item.value === 0) { %><span style="font-family:<%=item.font%>;"><%=item.symbol%></span><% } %>',
|
'<%= item.displayValue %>',
|
||||||
|
'<% if (item.value === 0) { %><span style="font-family:<%=item.font%>;"><%=item.symbol%></span>',
|
||||||
|
'<% } else if (item.value === 2) { %><span id="id-dlg-list-bullet-image-preview" style="width:12px; height: 12px; margin-left: 4px; margin-bottom: 1px;display: inline-block; vertical-align: middle;"></span><% } %>',
|
||||||
'</a></li>',
|
'</a></li>',
|
||||||
'<% }); %>'
|
'<% }); %>'
|
||||||
];
|
];
|
||||||
|
@ -195,28 +215,36 @@ define([
|
||||||
this.cmbBulletFormat = new Common.UI.ComboBoxCustom({
|
this.cmbBulletFormat = new Common.UI.ComboBoxCustom({
|
||||||
el : $('#id-dlg-list-bullet-format'),
|
el : $('#id-dlg-list-bullet-format'),
|
||||||
menuStyle : 'min-width: 100%;max-height: 183px;',
|
menuStyle : 'min-width: 100%;max-height: 183px;',
|
||||||
style : "width: 100px;",
|
style : "width: 105px;",
|
||||||
editable : false,
|
editable : false,
|
||||||
takeFocusOnClose: true,
|
takeFocusOnClose: true,
|
||||||
template : _.template(template.join('')),
|
template : _.template(template.join('')),
|
||||||
itemsTemplate: _.template(itemsTemplate.join('')),
|
itemsTemplate: _.template(itemsTemplate.join('')),
|
||||||
data : [
|
data : [
|
||||||
{ displayValue: this.txtNone, value: -1 },
|
{ displayValue: this.txtNone, value: _BulletTypes.none },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "•", font: 'Arial' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "•", font: 'Arial' },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "o", font: 'Courier New' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "o", font: 'Courier New' },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "§", font: 'Wingdings' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "§", font: 'Wingdings' },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "v", font: 'Wingdings' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "v", font: 'Wingdings' },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "Ø", font: 'Wingdings' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "Ø", font: 'Wingdings' },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "ü", font: 'Wingdings' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "ü", font: 'Wingdings' },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "w", font: 'Wingdings' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "w", font: 'Wingdings' },
|
||||||
{ displayValue: this.txtSymbol + ': ', value: 0, symbol: "–", font: 'Arial' },
|
{ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: "–", font: 'Arial' },
|
||||||
{ displayValue: this.txtNewBullet, value: 1 }
|
{ displayValue: this.txtNewBullet, value: _BulletTypes.newSymbol },
|
||||||
|
{ displayValue: this.txtNewImage, value: _BulletTypes.newImage }
|
||||||
],
|
],
|
||||||
updateFormControl: function(record) {
|
updateFormControl: function(record) {
|
||||||
var formcontrol = $(this.el).find('.form-control');
|
var formcontrol = $(this.el).find('.form-control');
|
||||||
if (record) {
|
if (record) {
|
||||||
if (record.get('value')==0)
|
if (record.get('value')===_BulletTypes.symbol)
|
||||||
formcontrol[0].innerHTML = record.get('displayValue') + '<span style="font-family:' + (record.get('font') || 'Arial') + '">' + record.get('symbol') + '</span>';
|
formcontrol[0].innerHTML = record.get('displayValue') + '<span style="font-family:' + (record.get('font') || 'Arial') + '">' + record.get('symbol') + '</span>';
|
||||||
|
else if (record.get('value')===_BulletTypes.image) {
|
||||||
|
formcontrol[0].innerHTML = record.get('displayValue') + '<span id="id-dlg-list-bullet-combo-preview" style="width:12px; height: 12px; margin-left: 2px; margin-bottom: 1px;display: inline-block; vertical-align: middle;"></span>';
|
||||||
|
var bullet = new Asc.asc_CBullet();
|
||||||
|
bullet.asc_fillBulletImage(me.imageProps.id);
|
||||||
|
bullet.drawSquareImage('id-dlg-list-bullet-combo-preview');
|
||||||
|
} else if (record.get('value')===_BulletTypes.newImage)
|
||||||
|
formcontrol[0].innerHTML = me.txtImage;
|
||||||
else
|
else
|
||||||
formcontrol[0].innerHTML = record.get('displayValue');
|
formcontrol[0].innerHTML = record.get('displayValue');
|
||||||
} else
|
} else
|
||||||
|
@ -227,7 +255,9 @@ define([
|
||||||
this.cmbBulletFormat.selectRecord(rec);
|
this.cmbBulletFormat.selectRecord(rec);
|
||||||
this.bulletProps = {symbol: rec.get('symbol'), font: rec.get('font')};
|
this.bulletProps = {symbol: rec.get('symbol'), font: rec.get('font')};
|
||||||
this.cmbBulletFormat.on('selected', _.bind(function (combo, record) {
|
this.cmbBulletFormat.on('selected', _.bind(function (combo, record) {
|
||||||
if (record.value === 1) {
|
this.imageControls.toggleClass('hidden', !(record.value === _BulletTypes.image || record.value === _BulletTypes.newImage));
|
||||||
|
this.colorControls.toggleClass('hidden', record.value === _BulletTypes.image || record.value === _BulletTypes.newImage);
|
||||||
|
if (record.value === _BulletTypes.newSymbol) {
|
||||||
var me = this,
|
var me = this,
|
||||||
props = me.bulletProps,
|
props = me.bulletProps,
|
||||||
handler = function(dlg, result, settings) {
|
handler = function(dlg, result, settings) {
|
||||||
|
@ -242,10 +272,17 @@ define([
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var store = combo.store;
|
var store = combo.store;
|
||||||
if (!store.findWhere({value: 0, symbol: props.symbol, font: props.font}))
|
if (!store.findWhere({value: _BulletTypes.symbol, symbol: props.symbol, font: props.font})) {
|
||||||
store.add({ displayValue: me.txtSymbol + ': ', value: 0, symbol: props.symbol, font: props.font }, {at: store.length-1});
|
var idx = store.indexOf(store.findWhere({value: _BulletTypes.image}));
|
||||||
|
if (idx<0)
|
||||||
|
idx = store.indexOf(store.findWhere({value: _BulletTypes.newSymbol}));
|
||||||
|
store.add({ displayValue: me.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: props.symbol, font: props.font }, {at: idx});
|
||||||
|
}
|
||||||
|
if (me.imageProps)
|
||||||
|
me.imageProps.redraw = true;
|
||||||
|
|
||||||
combo.setData(store.models);
|
combo.setData(store.models);
|
||||||
combo.selectRecord(combo.store.findWhere({value: 0, symbol: props.symbol, font: props.font}));
|
combo.selectRecord(combo.store.findWhere({value: _BulletTypes.symbol, symbol: props.symbol, font: props.font}));
|
||||||
},
|
},
|
||||||
win = new Common.Views.SymbolTableDialog({
|
win = new Common.Views.SymbolTableDialog({
|
||||||
api: me.options.api,
|
api: me.options.api,
|
||||||
|
@ -258,7 +295,11 @@ define([
|
||||||
});
|
});
|
||||||
win.show();
|
win.show();
|
||||||
win.on('symbol:dblclick', handler);
|
win.on('symbol:dblclick', handler);
|
||||||
} else if (record.value == -1) {
|
} else if (record.value == _BulletTypes.newImage) { // new image
|
||||||
|
} else if (record.value == _BulletTypes.image) { // image
|
||||||
|
if (this._changedProps)
|
||||||
|
this._changedProps.asc_fillBulletImage(this.imageProps.id);
|
||||||
|
} else if (record.value == _BulletTypes.none) {
|
||||||
if (this._changedProps)
|
if (this._changedProps)
|
||||||
this._changedProps.asc_putListType(0, record.value);
|
this._changedProps.asc_putListType(0, record.value);
|
||||||
} else {
|
} else {
|
||||||
|
@ -271,12 +312,14 @@ define([
|
||||||
this._changedProps.asc_putSymbol(this.bulletProps.symbol);
|
this._changedProps.asc_putSymbol(this.bulletProps.symbol);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.btnOk.setDisabled(record.value === _BulletTypes.newImage);
|
||||||
}, this));
|
}, this));
|
||||||
|
this.cmbBulletFormat.on('show:after', _.bind(this.onBulletFormatOpen, this));
|
||||||
|
|
||||||
this.spnSize = new Common.UI.MetricSpinner({
|
this.spnSize = new Common.UI.MetricSpinner({
|
||||||
el : $window.find('#id-dlg-list-size'),
|
el : $window.find('#id-dlg-list-size'),
|
||||||
step : 1,
|
step : 1,
|
||||||
width : 100,
|
width : 105,
|
||||||
value : 100,
|
value : 100,
|
||||||
defaultUnit : '',
|
defaultUnit : '',
|
||||||
maxValue : 400,
|
maxValue : 400,
|
||||||
|
@ -302,7 +345,7 @@ define([
|
||||||
this.spnStart = new Common.UI.MetricSpinner({
|
this.spnStart = new Common.UI.MetricSpinner({
|
||||||
el : $window.find('#id-dlg-list-start'),
|
el : $window.find('#id-dlg-list-start'),
|
||||||
step : 1,
|
step : 1,
|
||||||
width : 100,
|
width : 105,
|
||||||
value : 1,
|
value : 1,
|
||||||
defaultUnit : '',
|
defaultUnit : '',
|
||||||
maxValue : 32767,
|
maxValue : 32767,
|
||||||
|
@ -314,7 +357,32 @@ define([
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
me.numberingControls = $window.find('.numbering');
|
this.btnSelectImage = new Common.UI.Button({
|
||||||
|
parentEl: $('#id-dlg-list-image'),
|
||||||
|
cls: 'btn-text-menu-default',
|
||||||
|
caption: this.textSelect,
|
||||||
|
style: 'width: 100%;',
|
||||||
|
menu: new Common.UI.Menu({
|
||||||
|
style: 'min-width: 105px;',
|
||||||
|
maxHeight: 200,
|
||||||
|
additionalAlign: this.menuAddAlign,
|
||||||
|
items: [
|
||||||
|
{caption: this.textFromFile, value: 0},
|
||||||
|
{caption: this.textFromUrl, value: 1},
|
||||||
|
{caption: this.textFromStorage, value: 2}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
});
|
||||||
|
this.btnSelectImage.menu.on('item:click', _.bind(this.onImageSelect, this));
|
||||||
|
this.btnSelectImage.menu.items[2].setVisible(this.storage);
|
||||||
|
|
||||||
|
this.btnOk = new Common.UI.Button({
|
||||||
|
el: $window.find('.primary')
|
||||||
|
});
|
||||||
|
|
||||||
|
me.numberingControls = $window.find('tr.numbering');
|
||||||
|
me.imageControls = $window.find('tr.image');
|
||||||
|
me.colorControls = $window.find('tr.color');
|
||||||
|
|
||||||
var el = $window.find('table tr:first() td:first()');
|
var el = $window.find('table tr:first() td:first()');
|
||||||
el.width(Math.max($window.find('.numbering .text').width(), el.width()));
|
el.width(Math.max($window.find('.numbering .text').width(), el.width()));
|
||||||
|
@ -323,12 +391,52 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
getFocusedComponents: function() {
|
getFocusedComponents: function() {
|
||||||
return [this.cmbNumFormat, this.cmbBulletFormat, this.spnSize, this.spnStart, this.btnColor];
|
return [this.cmbNumFormat, this.cmbBulletFormat, this.btnSelectImage, this.spnSize, this.spnStart, this.btnColor];
|
||||||
},
|
},
|
||||||
|
|
||||||
afterRender: function() {
|
afterRender: function() {
|
||||||
this.updateThemeColors();
|
this.updateThemeColors();
|
||||||
this._setDefaults(this.props);
|
this._setDefaults(this.props);
|
||||||
|
|
||||||
|
var me = this;
|
||||||
|
var onApiImageLoaded = function(bullet) {
|
||||||
|
me.imageProps = {id: bullet.asc_getImageId(), redraw: true};
|
||||||
|
if (me._changedProps)
|
||||||
|
me._changedProps.asc_fillBulletImage(me.imageProps.id);
|
||||||
|
// add or update record for image to btnBulletFormat and select it
|
||||||
|
var store = me.cmbBulletFormat.store;
|
||||||
|
if (!store.findWhere({value: _BulletTypes.image})) {
|
||||||
|
var idx = store.indexOf(store.findWhere({value: _BulletTypes.newSymbol}));
|
||||||
|
store.add({ displayValue: me.txtImage + ':', value: _BulletTypes.image }, {at: idx});
|
||||||
|
}
|
||||||
|
me.cmbBulletFormat.setData(store.models);
|
||||||
|
me.cmbBulletFormat.selectRecord(me.cmbBulletFormat.store.findWhere({value: _BulletTypes.image}));
|
||||||
|
me.btnOk.setDisabled(false);
|
||||||
|
};
|
||||||
|
this.api.asc_registerCallback('asc_onBulletImageLoaded', onApiImageLoaded);
|
||||||
|
|
||||||
|
var insertImageFromStorage = function(data) {
|
||||||
|
if (data && data._urls && data.c=='bullet') {
|
||||||
|
(new Asc.asc_CBullet()).asc_putImageUrl(data._urls[0], data.token);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Common.NotificationCenter.on('storage:image-insert', insertImageFromStorage);
|
||||||
|
|
||||||
|
this.on('close', function(obj){
|
||||||
|
me.api.asc_unregisterCallback('asc_onBulletImageLoaded', onApiImageLoaded);
|
||||||
|
Common.NotificationCenter.off('storage:image-insert', insertImageFromStorage);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
onBulletFormatOpen: function(combo) {
|
||||||
|
var store = combo.store,
|
||||||
|
rec = store.findWhere({value: _BulletTypes.image});
|
||||||
|
if (rec && this.imageProps.redraw) {
|
||||||
|
var bullet = new Asc.asc_CBullet();
|
||||||
|
bullet.asc_fillBulletImage(this.imageProps.id);
|
||||||
|
bullet.drawSquareImage('id-dlg-list-bullet-image-preview');
|
||||||
|
this.imageProps.redraw = false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
updateThemeColors: function() {
|
updateThemeColors: function() {
|
||||||
|
@ -347,9 +455,14 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
ShowHideElem: function(value) {
|
ShowHideElem: function(value) {
|
||||||
|
var isImage = value==0 && (this.cmbBulletFormat.getValue()===_BulletTypes.image || this.cmbBulletFormat.getValue()===_BulletTypes.newImage ||
|
||||||
|
(this.cmbBulletFormat.getValue()===undefined || this.cmbBulletFormat.getValue()==='') && this.originalType === AscFormat.BULLET_TYPE_BULLET_BLIP);
|
||||||
this.numberingControls.toggleClass('hidden', value==0);
|
this.numberingControls.toggleClass('hidden', value==0);
|
||||||
|
this.imageControls.toggleClass('hidden', !isImage);
|
||||||
|
this.colorControls.toggleClass('hidden', isImage);
|
||||||
this.cmbNumFormat.setVisible(value==1);
|
this.cmbNumFormat.setVisible(value==1);
|
||||||
this.cmbBulletFormat.setVisible(value==0);
|
this.cmbBulletFormat.setVisible(value==0);
|
||||||
|
this.btnOk.setDisabled(isImage && (this.cmbBulletFormat.getValue()===_BulletTypes.newImage));
|
||||||
var me = this;
|
var me = this;
|
||||||
_.delay(function(){
|
_.delay(function(){
|
||||||
if (value)
|
if (value)
|
||||||
|
@ -362,18 +475,28 @@ define([
|
||||||
_handleInput: function(state) {
|
_handleInput: function(state) {
|
||||||
if (this.options.handler)
|
if (this.options.handler)
|
||||||
{
|
{
|
||||||
|
if (state == 'ok' && this.btnOk.isDisabled()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
var type = this.btnBullet.pressed ? 0 : 1;
|
var type = this.btnBullet.pressed ? 0 : 1;
|
||||||
if (this.originalType == AscFormat.BULLET_TYPE_BULLET_NONE) {
|
if (this.originalType == AscFormat.BULLET_TYPE_BULLET_NONE) {
|
||||||
this._changedProps = new Asc.asc_CBullet();
|
this._changedProps = new Asc.asc_CBullet();
|
||||||
this._changedProps.asc_putColor(Common.Utils.ThemeColor.getRgbColor(this.color));
|
|
||||||
this._changedProps.asc_putSize(this.spnSize.getNumberValue());
|
this._changedProps.asc_putSize(this.spnSize.getNumberValue());
|
||||||
|
if (type==0 && this.cmbBulletFormat.getValue()===_BulletTypes.image && this.imageProps) {//image
|
||||||
|
this._changedProps.asc_fillBulletImage(this.imageProps.id);
|
||||||
|
} else {
|
||||||
|
this._changedProps.asc_putColor(Common.Utils.ThemeColor.getRgbColor(this.color));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.originalType == AscFormat.BULLET_TYPE_BULLET_NONE ||
|
if (this.originalType == AscFormat.BULLET_TYPE_BULLET_NONE ||
|
||||||
this.originalType == AscFormat.BULLET_TYPE_BULLET_CHAR && type==1 || this.originalType == AscFormat.BULLET_TYPE_BULLET_AUTONUM && type==0) { // changed list type
|
(this.originalType == AscFormat.BULLET_TYPE_BULLET_CHAR || this.originalType == AscFormat.BULLET_TYPE_BULLET_BLIP) && type==1 ||
|
||||||
|
this.originalType == AscFormat.BULLET_TYPE_BULLET_AUTONUM && type==0) { // changed list type
|
||||||
if (type==0) {//markers
|
if (type==0) {//markers
|
||||||
if (this.cmbBulletFormat.getValue()==-1) {
|
if (this.cmbBulletFormat.getValue()==_BulletTypes.none) {
|
||||||
this._changedProps.asc_putListType(0, -1);
|
this._changedProps.asc_putListType(0, -1);
|
||||||
|
} else if (this.cmbBulletFormat.getValue()==_BulletTypes.image) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this._changedProps.asc_putFont(this.bulletProps.font);
|
this._changedProps.asc_putFont(this.bulletProps.font);
|
||||||
this._changedProps.asc_putSymbol(this.bulletProps.symbol);
|
this._changedProps.asc_putSymbol(this.bulletProps.symbol);
|
||||||
|
@ -432,16 +555,28 @@ define([
|
||||||
|
|
||||||
if (this.originalType == AscFormat.BULLET_TYPE_BULLET_NONE) {
|
if (this.originalType == AscFormat.BULLET_TYPE_BULLET_NONE) {
|
||||||
this.cmbNumFormat.setValue(-1);
|
this.cmbNumFormat.setValue(-1);
|
||||||
this.cmbBulletFormat.setValue(-1);
|
this.cmbBulletFormat.setValue(_BulletTypes.none);
|
||||||
type = this.type;
|
type = this.type;
|
||||||
} else if (this.originalType == AscFormat.BULLET_TYPE_BULLET_CHAR) {
|
} else if (this.originalType == AscFormat.BULLET_TYPE_BULLET_CHAR) {
|
||||||
var symbol = bullet.asc_getSymbol();
|
var symbol = bullet.asc_getSymbol();
|
||||||
if (symbol) {
|
if (symbol) {
|
||||||
this.bulletProps = {symbol: symbol, font: bullet.asc_getFont()};
|
this.bulletProps = {symbol: symbol, font: bullet.asc_getFont()};
|
||||||
if (!this.cmbBulletFormat.store.findWhere({value: 0, symbol: this.bulletProps.symbol, font: this.bulletProps.font}))
|
if (!this.cmbBulletFormat.store.findWhere({value: _BulletTypes.symbol, symbol: this.bulletProps.symbol, font: this.bulletProps.font}))
|
||||||
this.cmbBulletFormat.store.add({ displayValue: this.txtSymbol + ': ', value: 0, symbol: this.bulletProps.symbol, font: this.bulletProps.font }, {at: this.cmbBulletFormat.store.length-1});
|
this.cmbBulletFormat.store.add({ displayValue: this.txtSymbol + ': ', value: _BulletTypes.symbol, symbol: this.bulletProps.symbol, font: this.bulletProps.font }, {at: this.cmbBulletFormat.store.length-2});
|
||||||
this.cmbBulletFormat.setData(this.cmbBulletFormat.store.models);
|
this.cmbBulletFormat.setData(this.cmbBulletFormat.store.models);
|
||||||
this.cmbBulletFormat.selectRecord(this.cmbBulletFormat.store.findWhere({value: 0, symbol: this.bulletProps.symbol, font: this.bulletProps.font}));
|
this.cmbBulletFormat.selectRecord(this.cmbBulletFormat.store.findWhere({value: _BulletTypes.symbol, symbol: this.bulletProps.symbol, font: this.bulletProps.font}));
|
||||||
|
} else
|
||||||
|
this.cmbBulletFormat.setValue('');
|
||||||
|
this._changedProps = bullet;
|
||||||
|
type = 0;
|
||||||
|
} else if (this.originalType == AscFormat.BULLET_TYPE_BULLET_BLIP) {
|
||||||
|
var id = bullet.asc_getImageId();
|
||||||
|
if (id) {
|
||||||
|
this.imageProps = {id: id, redraw: true};
|
||||||
|
if (!this.cmbBulletFormat.store.findWhere({value: _BulletTypes.image}))
|
||||||
|
this.cmbBulletFormat.store.add({ displayValue: this.txtImage + ':', value: _BulletTypes.image}, {at: this.cmbBulletFormat.store.length-2});
|
||||||
|
this.cmbBulletFormat.setData(this.cmbBulletFormat.store.models);
|
||||||
|
this.cmbBulletFormat.selectRecord(this.cmbBulletFormat.store.findWhere({value: _BulletTypes.image}));
|
||||||
} else
|
} else
|
||||||
this.cmbBulletFormat.setValue('');
|
this.cmbBulletFormat.setValue('');
|
||||||
this._changedProps = bullet;
|
this._changedProps = bullet;
|
||||||
|
@ -458,7 +593,7 @@ define([
|
||||||
}
|
}
|
||||||
} else {// different bullet types
|
} else {// different bullet types
|
||||||
this.cmbNumFormat.setValue(-1);
|
this.cmbNumFormat.setValue(-1);
|
||||||
this.cmbBulletFormat.setValue(-1);
|
this.cmbBulletFormat.setValue(_BulletTypes.none);
|
||||||
this._changedProps = new Asc.asc_CBullet();
|
this._changedProps = new Asc.asc_CBullet();
|
||||||
type = this.type;
|
type = this.type;
|
||||||
}
|
}
|
||||||
|
@ -468,6 +603,26 @@ define([
|
||||||
this.ShowHideElem(type);
|
this.ShowHideElem(type);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onImageSelect: function(menu, item) {
|
||||||
|
if (item.value==1) {
|
||||||
|
var me = this;
|
||||||
|
(new Common.Views.ImageFromUrlDialog({
|
||||||
|
handler: function(result, value) {
|
||||||
|
if (result == 'ok') {
|
||||||
|
var checkUrl = value.replace(/ /g, '');
|
||||||
|
if (!_.isEmpty(checkUrl)) {
|
||||||
|
(new Asc.asc_CBullet()).asc_putImageUrl(checkUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})).show();
|
||||||
|
} else if (item.value==2) {
|
||||||
|
Common.NotificationCenter.trigger('storage:image-load', 'bullet');
|
||||||
|
} else {
|
||||||
|
(new Asc.asc_CBullet()).asc_showFileDialog();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
txtTitle: 'List Settings',
|
txtTitle: 'List Settings',
|
||||||
txtSize: 'Size',
|
txtSize: 'Size',
|
||||||
txtColor: 'Color',
|
txtColor: 'Color',
|
||||||
|
@ -478,6 +633,13 @@ define([
|
||||||
txtType: 'Type',
|
txtType: 'Type',
|
||||||
txtNone: 'None',
|
txtNone: 'None',
|
||||||
txtNewBullet: 'New bullet',
|
txtNewBullet: 'New bullet',
|
||||||
txtSymbol: 'Symbol'
|
txtSymbol: 'Symbol',
|
||||||
|
txtNewImage: 'New image',
|
||||||
|
txtImage: 'Image',
|
||||||
|
txtImport: 'Import',
|
||||||
|
textSelect: 'Select From',
|
||||||
|
textFromUrl: 'From URL',
|
||||||
|
textFromFile: 'From File',
|
||||||
|
textFromStorage: 'From Storage'
|
||||||
}, Common.Views.ListSettingsDialog || {}))
|
}, Common.Views.ListSettingsDialog || {}))
|
||||||
});
|
});
|
|
@ -205,6 +205,8 @@ define([
|
||||||
this.inputPwd = new Common.UI.InputFieldBtnPassword({
|
this.inputPwd = new Common.UI.InputFieldBtnPassword({
|
||||||
el: $('#id-password-txt'),
|
el: $('#id-password-txt'),
|
||||||
type: 'password',
|
type: 'password',
|
||||||
|
showCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' btn-sheet-view',
|
||||||
|
hideCls: (this.options.iconType==='svg' ? 'svg-icon' : 'toolbar__icon') + ' hide-password',
|
||||||
validateOnBlur: false,
|
validateOnBlur: false,
|
||||||
showPwdOnClick: true,
|
showPwdOnClick: true,
|
||||||
validation : function(value) {
|
validation : function(value) {
|
||||||
|
|
|
@ -77,6 +77,7 @@ define([
|
||||||
_options.tpl = _.template(this.template)(_options);
|
_options.tpl = _.template(this.template)(_options);
|
||||||
|
|
||||||
this.url = options.url || '';
|
this.url = options.url || '';
|
||||||
|
this.loader = (options.loader!==undefined) ? options.loader : true;
|
||||||
this.frameId = options.frameId || 'plugin_iframe';
|
this.frameId = options.frameId || 'plugin_iframe';
|
||||||
Common.UI.Window.prototype.initialize.call(this, _options);
|
Common.UI.Window.prototype.initialize.call(this, _options);
|
||||||
},
|
},
|
||||||
|
@ -90,6 +91,8 @@ define([
|
||||||
if (!this.options.header) this._headerFooterHeight -= 34;
|
if (!this.options.header) this._headerFooterHeight -= 34;
|
||||||
this._headerFooterHeight += ((parseInt(this.$window.css('border-top-width')) + parseInt(this.$window.css('border-bottom-width'))));
|
this._headerFooterHeight += ((parseInt(this.$window.css('border-top-width')) + parseInt(this.$window.css('border-bottom-width'))));
|
||||||
|
|
||||||
|
this.$window.find('.header').prepend($('<div class="tools left hidden"></div>'));
|
||||||
|
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
iframe.id = this.frameId;
|
iframe.id = this.frameId;
|
||||||
iframe.name = 'pluginFrameEditor';
|
iframe.name = 'pluginFrameEditor';
|
||||||
|
@ -102,6 +105,7 @@ define([
|
||||||
iframe.onload = _.bind(this._onLoad,this);
|
iframe.onload = _.bind(this._onLoad,this);
|
||||||
|
|
||||||
var me = this;
|
var me = this;
|
||||||
|
if (this.loader) {
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
if (me.isLoaded) return;
|
if (me.isLoaded) return;
|
||||||
me.loadMask = new Common.UI.LoadMask({owner: $('#id-plugin-placeholder')});
|
me.loadMask = new Common.UI.LoadMask({owner: $('#id-plugin-placeholder')});
|
||||||
|
@ -109,6 +113,7 @@ define([
|
||||||
me.loadMask.show();
|
me.loadMask.show();
|
||||||
if (me.isLoaded) me.loadMask.hide();
|
if (me.isLoaded) me.loadMask.hide();
|
||||||
}, 500);
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
iframe.src = this.url;
|
iframe.src = this.url;
|
||||||
$('#id-plugin-placeholder').append(iframe);
|
$('#id-plugin-placeholder').append(iframe);
|
||||||
|
@ -180,6 +185,32 @@ define([
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
showButton: function(id) {
|
||||||
|
var header = this.$window.find('.header .tools.left');
|
||||||
|
if (id=='back') {
|
||||||
|
var btn = header.find('#id-plugindlg-' + id);
|
||||||
|
if (btn.length<1) {
|
||||||
|
btn = $('<div id="id-plugindlg-' + id + '" class="tool help" style="font-size:20px;">←</div>');
|
||||||
|
btn.on('click', _.bind(function() {
|
||||||
|
this.fireEvent('header:click',id);
|
||||||
|
}, this));
|
||||||
|
header.prepend(btn);
|
||||||
|
}
|
||||||
|
btn.show();
|
||||||
|
header.removeClass('hidden');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
hideButton: function(id) {
|
||||||
|
var header = this.$window.find('.header .tools.left');
|
||||||
|
if (id=='back') {
|
||||||
|
var btn = header.find('#id-plugindlg-' + id);
|
||||||
|
if (btn.length>0) {
|
||||||
|
btn.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
textLoading : 'Loading'
|
textLoading : 'Loading'
|
||||||
}, Common.Views.PluginDlg || {}));
|
}, Common.Views.PluginDlg || {}));
|
||||||
});
|
});
|
|
@ -60,11 +60,11 @@ define([
|
||||||
'</div>',
|
'</div>',
|
||||||
'</div>',
|
'</div>',
|
||||||
'<div id="current-plugin-box" class="layout-ct vbox hidden">',
|
'<div id="current-plugin-box" class="layout-ct vbox hidden">',
|
||||||
|
'<div id="current-plugin-frame" class="">',
|
||||||
|
'</div>',
|
||||||
'<div id="current-plugin-header">',
|
'<div id="current-plugin-header">',
|
||||||
'<label></label>',
|
'<label></label>',
|
||||||
'<div id="id-plugin-close" class="tool close"></div>',
|
'<div id="id-plugin-close" class="close"></div>',
|
||||||
'</div>',
|
|
||||||
'<div id="current-plugin-frame" class="">',
|
|
||||||
'</div>',
|
'</div>',
|
||||||
'</div>',
|
'</div>',
|
||||||
'<div id="plugins-mask" style="display: none;">'
|
'<div id="plugins-mask" style="display: none;">'
|
||||||
|
@ -111,6 +111,13 @@ define([
|
||||||
this.currentPluginPanel = $('#current-plugin-box');
|
this.currentPluginPanel = $('#current-plugin-box');
|
||||||
this.currentPluginFrame = $('#current-plugin-frame');
|
this.currentPluginFrame = $('#current-plugin-frame');
|
||||||
|
|
||||||
|
this.pluginClose = new Common.UI.Button({
|
||||||
|
parentEl: $('#id-plugin-close'),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: 'toolbar__icon btn-close',
|
||||||
|
hint: this.textClosePanel
|
||||||
|
});
|
||||||
|
|
||||||
this.pluginMenu = new Common.UI.Menu({
|
this.pluginMenu = new Common.UI.Menu({
|
||||||
menuAlign : 'tr-br',
|
menuAlign : 'tr-br',
|
||||||
items: []
|
items: []
|
||||||
|
@ -426,7 +433,8 @@ define([
|
||||||
textLoading: 'Loading',
|
textLoading: 'Loading',
|
||||||
textStart: 'Start',
|
textStart: 'Start',
|
||||||
textStop: 'Stop',
|
textStop: 'Stop',
|
||||||
groupCaption: 'Plugins'
|
groupCaption: 'Plugins',
|
||||||
|
textClosePanel: 'Close plugin'
|
||||||
|
|
||||||
}, Common.Views.Plugins || {}));
|
}, Common.Views.Plugins || {}));
|
||||||
});
|
});
|
201
apps/common/main/lib/view/SearchBar.js
Normal file
|
@ -0,0 +1,201 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* (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
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* SearchBar.js
|
||||||
|
*
|
||||||
|
* Created by Julia Svinareva on 03.02.2022
|
||||||
|
* Copyright (c) 2022 Ascensio System SIA. All rights reserved.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
define([
|
||||||
|
'common/main/lib/component/Window',
|
||||||
|
'common/main/lib/component/Button'
|
||||||
|
], function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Common.UI.SearchBar = Common.UI.Window.extend(_.extend({
|
||||||
|
options: {
|
||||||
|
modal: false,
|
||||||
|
width: 328,
|
||||||
|
height: 54,
|
||||||
|
header: false,
|
||||||
|
cls: 'search-bar',
|
||||||
|
alias: 'SearchBar',
|
||||||
|
showOpenPanel: true,
|
||||||
|
toolclose: 'hide'
|
||||||
|
},
|
||||||
|
|
||||||
|
initialize : function(options) {
|
||||||
|
_.extend(this.options, options || {});
|
||||||
|
|
||||||
|
this.template = [
|
||||||
|
'<div class="box">',
|
||||||
|
'<input type="text" id="search-bar-text" class="input-field form-control" maxlength="255" placeholder="'+this.textFind+'" autocomplete="off">',
|
||||||
|
'<div class="tools">',
|
||||||
|
'<div id="search-bar-back"></div>',
|
||||||
|
'<div id="search-bar-next"></div>',
|
||||||
|
this.options.showOpenPanel ? '<div id="search-bar-open-panel"></div>' : '',
|
||||||
|
'<div id="search-bar-close"></div>',
|
||||||
|
'</div>',
|
||||||
|
'</div>'
|
||||||
|
].join('');
|
||||||
|
|
||||||
|
this.options.tpl = _.template(this.template)(this.options);
|
||||||
|
this.iconType = this.options.iconType;
|
||||||
|
|
||||||
|
Common.UI.Window.prototype.initialize.call(this, this.options);
|
||||||
|
|
||||||
|
Common.NotificationCenter.on('layout:changed', _.bind(this.onLayoutChanged, this));
|
||||||
|
$(window).on('resize', _.bind(this.onLayoutChanged, this));
|
||||||
|
},
|
||||||
|
|
||||||
|
render: function() {
|
||||||
|
Common.UI.Window.prototype.render.call(this);
|
||||||
|
|
||||||
|
this.inputSearch = this.$window.find('#search-bar-text');
|
||||||
|
this.inputSearch.on('input', _.bind(function () {
|
||||||
|
this.disableNavButtons();
|
||||||
|
this.fireEvent('search:input', [this.inputSearch.val()]);
|
||||||
|
}, this)).on('keydown', _.bind(function (e) {
|
||||||
|
this.fireEvent('search:keydown', [this.inputSearch.val(), e]);
|
||||||
|
}, this));
|
||||||
|
|
||||||
|
this.btnBack = new Common.UI.Button({
|
||||||
|
parentEl: $('#search-bar-back'),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: this.iconType === 'svg' ? 'svg-icon search-arrow-up' : 'toolbar__icon btn-arrow-up',
|
||||||
|
hint: this.tipPreviousResult
|
||||||
|
});
|
||||||
|
this.btnBack.on('click', _.bind(this.onBtnNextClick, this, 'back'));
|
||||||
|
|
||||||
|
this.btnNext = new Common.UI.Button({
|
||||||
|
parentEl: $('#search-bar-next'),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: this.iconType === 'svg' ? 'svg-icon search-arrow-down' : 'toolbar__icon btn-arrow-down',
|
||||||
|
hint: this.tipNextResult
|
||||||
|
});
|
||||||
|
this.btnNext.on('click', _.bind(this.onBtnNextClick, this, 'next'));
|
||||||
|
|
||||||
|
if (this.options.showOpenPanel) {
|
||||||
|
this.btnOpenPanel = new Common.UI.Button({
|
||||||
|
parentEl: $('#search-bar-open-panel'),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: 'toolbar__icon more-vertical',
|
||||||
|
hint: this.tipOpenAdvancedSettings
|
||||||
|
});
|
||||||
|
this.btnOpenPanel.on('click', _.bind(this.onOpenPanel, this));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.btnClose = new Common.UI.Button({
|
||||||
|
parentEl: $('#search-bar-close'),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: this.iconType === 'svg' ? 'svg-icon search-close' : 'toolbar__icon btn-close',
|
||||||
|
hint: this.tipCloseSearch
|
||||||
|
});
|
||||||
|
this.btnClose.on('click', _.bind(function () {
|
||||||
|
this.hide();
|
||||||
|
}, this))
|
||||||
|
|
||||||
|
this.on('animate:before', _.bind(this.focus, this));
|
||||||
|
|
||||||
|
Common.NotificationCenter.on('search:updateresults', _.bind(this.disableNavButtons, this));
|
||||||
|
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
show: function(text) {
|
||||||
|
var top = ($('#app-title').length > 0 ? $('#app-title').height() : 0) + $('#toolbar').height() + 2,
|
||||||
|
left = Common.Utils.innerWidth() - ($('#right-menu').is(':visible') ? $('#right-menu').width() : 0) - this.options.width - 32;
|
||||||
|
Common.UI.Window.prototype.show.call(this, left, top);
|
||||||
|
|
||||||
|
this.disableNavButtons();
|
||||||
|
if (text) {
|
||||||
|
this.inputSearch.val(text);
|
||||||
|
this.fireEvent('search:input', [text]);
|
||||||
|
} else {
|
||||||
|
this.inputSearch.val('');
|
||||||
|
window.SSE && this.fireEvent('search:input', ['', true]);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.focus();
|
||||||
|
},
|
||||||
|
|
||||||
|
focus: function() {
|
||||||
|
var me = this;
|
||||||
|
setTimeout(function(){
|
||||||
|
me.inputSearch.focus();
|
||||||
|
me.inputSearch.select();
|
||||||
|
}, 10);
|
||||||
|
},
|
||||||
|
|
||||||
|
setText: function (text) {
|
||||||
|
this.inputSearch.val(text);
|
||||||
|
this.fireEvent('search:input', [text]);
|
||||||
|
},
|
||||||
|
|
||||||
|
getSettings: function() {
|
||||||
|
return {
|
||||||
|
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
onLayoutChanged: function () {
|
||||||
|
var top = $('#app-title').height() + $('#toolbar').height() + 2,
|
||||||
|
left = Common.Utils.innerWidth() - ($('#right-menu').is(':visible') ? $('#right-menu').width() : 0) - this.options.width - 32;
|
||||||
|
this.$window.css({left: left, top: top});
|
||||||
|
},
|
||||||
|
|
||||||
|
onBtnNextClick: function(action) {
|
||||||
|
this.fireEvent('search:'+action, [this.inputSearch.val(), false]);
|
||||||
|
},
|
||||||
|
|
||||||
|
onOpenPanel: function () {
|
||||||
|
this.hide();
|
||||||
|
this.fireEvent('search:show', [true, this.inputSearch.val()]);
|
||||||
|
},
|
||||||
|
|
||||||
|
disableNavButtons: function (resultNumber, allResults) {
|
||||||
|
var disable = (this.inputSearch.val() === '' && !window.SSE) || !allResults;
|
||||||
|
this.btnBack.setDisabled(disable);
|
||||||
|
this.btnNext.setDisabled(disable);
|
||||||
|
},
|
||||||
|
|
||||||
|
textFind: 'Find',
|
||||||
|
tipPreviousResult: 'Previous result',
|
||||||
|
tipNextResult: 'Next result',
|
||||||
|
tipOpenAdvancedSettings: 'Open advanced settings',
|
||||||
|
tipCloseSearch: 'Close search'
|
||||||
|
|
||||||
|
}, Common.UI.SearchBar || {}));
|
||||||
|
});
|
445
apps/common/main/lib/view/SearchPanel.js
Normal file
|
@ -0,0 +1,445 @@
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* (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
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* User: Julia.Svinareva
|
||||||
|
* Date: 11.02.2022
|
||||||
|
*/
|
||||||
|
|
||||||
|
define([
|
||||||
|
'text!common/main/lib/template/SearchPanel.template',
|
||||||
|
'common/main/lib/util/utils',
|
||||||
|
'common/main/lib/component/BaseView',
|
||||||
|
'common/main/lib/component/Layout'
|
||||||
|
], function (template) {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
Common.Views.SearchPanel = Common.UI.BaseView.extend(_.extend({
|
||||||
|
el: '#left-panel-search',
|
||||||
|
template: _.template(template),
|
||||||
|
|
||||||
|
initialize: function(options) {
|
||||||
|
_.extend(this, options);
|
||||||
|
Common.UI.BaseView.prototype.initialize.call(this, arguments);
|
||||||
|
|
||||||
|
this.mode = false;
|
||||||
|
|
||||||
|
window.SSE && (this.extendedOptions = Common.localStorage.getBool('sse-search-options-extended', true));
|
||||||
|
},
|
||||||
|
|
||||||
|
render: function(el) {
|
||||||
|
var me = this;
|
||||||
|
if (!this.rendered) {
|
||||||
|
el = el || this.el;
|
||||||
|
$(el).html(this.template({
|
||||||
|
scope: this
|
||||||
|
}));
|
||||||
|
this.$el = $(el);
|
||||||
|
|
||||||
|
this.inputText = new Common.UI.InputField({
|
||||||
|
el: $('#search-adv-text'),
|
||||||
|
placeHolder: this.textFind,
|
||||||
|
allowBlank: true,
|
||||||
|
validateOnBlur: false,
|
||||||
|
style: 'width: 100%;',
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'left',
|
||||||
|
dataHintOffset: 'small'
|
||||||
|
});
|
||||||
|
this.inputText._input.on('input', _.bind(function () {
|
||||||
|
this.fireEvent('search:input', [this.inputText._input.val()]);
|
||||||
|
}, this)).on('keydown', _.bind(function (e) {
|
||||||
|
this.fireEvent('search:keydown', [this.inputText._input.val(), e]);
|
||||||
|
}, this));
|
||||||
|
|
||||||
|
this.inputReplace = new Common.UI.InputField({
|
||||||
|
el: $('#search-adv-replace-text'),
|
||||||
|
placeHolder: this.textReplaceWith,
|
||||||
|
allowBlank: true,
|
||||||
|
validateOnBlur: false,
|
||||||
|
style: 'width: 100%;',
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'left',
|
||||||
|
dataHintOffset: 'small'
|
||||||
|
});
|
||||||
|
this.inputReplace._input.on('keydown', _.bind(function (e) {
|
||||||
|
if (e.keyCode === Common.UI.Keys.RETURN && !this.btnReplace.isDisabled()) {
|
||||||
|
this.onReplaceClick('replace');
|
||||||
|
}
|
||||||
|
}, this));
|
||||||
|
|
||||||
|
this.btnBack = new Common.UI.Button({
|
||||||
|
parentEl: $('#search-adv-back'),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: 'toolbar__icon btn-arrow-up',
|
||||||
|
hint: this.tipPreviousResult,
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'bottom'
|
||||||
|
});
|
||||||
|
this.btnBack.on('click', _.bind(this.onBtnNextClick, this, 'back'));
|
||||||
|
|
||||||
|
this.btnNext = new Common.UI.Button({
|
||||||
|
parentEl: $('#search-adv-next'),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: 'toolbar__icon btn-arrow-down',
|
||||||
|
hint: this.tipNextResult,
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'bottom'
|
||||||
|
});
|
||||||
|
this.btnNext.on('click', _.bind(this.onBtnNextClick, this, 'next'));
|
||||||
|
|
||||||
|
this.btnReplace = new Common.UI.Button({
|
||||||
|
el: $('#search-adv-replace')
|
||||||
|
});
|
||||||
|
this.btnReplace.on('click', _.bind(this.onReplaceClick, this, 'replace'));
|
||||||
|
|
||||||
|
this.btnReplaceAll = new Common.UI.Button({
|
||||||
|
el: $('#search-adv-replace-all')
|
||||||
|
});
|
||||||
|
this.btnReplaceAll.on('click', _.bind(this.onReplaceClick, this, 'replaceall'));
|
||||||
|
|
||||||
|
this.$reaultsNumber = $('#search-adv-results-number');
|
||||||
|
this.updateResultsNumber('no-results');
|
||||||
|
|
||||||
|
this.chCaseSensitive = new Common.UI.CheckBox({
|
||||||
|
el: $('#search-adv-case-sensitive'),
|
||||||
|
labelText: this.textCaseSensitive,
|
||||||
|
value: false,
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'left',
|
||||||
|
dataHintOffset: 'small'
|
||||||
|
}).on('change', function(field) {
|
||||||
|
me.fireEvent('search:options', ['case-sensitive', field.getValue() === 'checked']);
|
||||||
|
});
|
||||||
|
|
||||||
|
/*this.chUseRegExp = new Common.UI.CheckBox({
|
||||||
|
el: $('#search-adv-use-regexp'),
|
||||||
|
labelText: this.textMatchUsingRegExp,
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'left',
|
||||||
|
dataHintOffset: 'small'
|
||||||
|
}).on('change', function(field) {
|
||||||
|
me.fireEvent('search:options', ['regexp', field.getValue() === 'checked']);
|
||||||
|
});*/
|
||||||
|
|
||||||
|
this.chMatchWord = new Common.UI.CheckBox({
|
||||||
|
el: $('#search-adv-match-word'),
|
||||||
|
labelText: window.SSE ? this.textItemEntireCell : this.textWholeWords,
|
||||||
|
value: false,
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'left',
|
||||||
|
dataHintOffset: 'small'
|
||||||
|
}).on('change', function(field) {
|
||||||
|
me.fireEvent('search:options', ['match-word', field.getValue() === 'checked']);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.buttonClose = new Common.UI.Button({
|
||||||
|
parentEl: $('#search-btn-close', this.$el),
|
||||||
|
cls: 'btn-toolbar',
|
||||||
|
iconCls: 'toolbar__icon btn-close',
|
||||||
|
hint: this.textCloseSearch,
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'bottom',
|
||||||
|
dataHintOffset: 'medium'
|
||||||
|
});
|
||||||
|
this.buttonClose.on('click', _.bind(this.onClickClosePanel, this));
|
||||||
|
|
||||||
|
this.$resultsContainer = $('#search-results');
|
||||||
|
this.$resultsContainer.hide();
|
||||||
|
|
||||||
|
Common.NotificationCenter.on('search:updateresults', _.bind(this.disableNavButtons, this));
|
||||||
|
if (window.SSE) {
|
||||||
|
this.cmbWithin = new Common.UI.ComboBox({
|
||||||
|
el: $('#search-adv-cmb-within'),
|
||||||
|
menuStyle: 'min-width: 100%;',
|
||||||
|
style: "width: 219px;",
|
||||||
|
editable: false,
|
||||||
|
cls: 'input-group-nr',
|
||||||
|
data: [
|
||||||
|
{ value: 0, displayValue: this.textSheet },
|
||||||
|
{ value: 1, displayValue: this.textWorkbook },
|
||||||
|
{ value: 2, displayValue: this.textSpecificRange}
|
||||||
|
],
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'bottom',
|
||||||
|
dataHintOffset: 'big'
|
||||||
|
}).on('selected', function(combo, record) {
|
||||||
|
me.fireEvent('search:options', ['within', record.value]);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.inputSelectRange = new Common.UI.InputFieldBtn({
|
||||||
|
el: $('#search-adv-select-range'),
|
||||||
|
placeHolder: this.textSelectDataRange,
|
||||||
|
allowBlank: true,
|
||||||
|
validateOnChange: true,
|
||||||
|
validateOnBlur: true,
|
||||||
|
style: "width: 219px; margin-top: 8px",
|
||||||
|
disabled: true,
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'left',
|
||||||
|
dataHintOffset: 'small'
|
||||||
|
}).on('keyup:after', function(input, e) {
|
||||||
|
me.fireEvent('search:options', ['range', input.getValue(), e.keyCode !== Common.UI.Keys.RETURN]);
|
||||||
|
});
|
||||||
|
this.inputSelectRange.$el.hide();
|
||||||
|
|
||||||
|
this.cmbSearch = new Common.UI.ComboBox({
|
||||||
|
el: $('#search-adv-cmb-search'),
|
||||||
|
menuStyle: 'min-width: 100%;',
|
||||||
|
style: "width: 219px;",
|
||||||
|
editable: false,
|
||||||
|
cls: 'input-group-nr',
|
||||||
|
data: [
|
||||||
|
{ value: 0, displayValue: this.textByRows },
|
||||||
|
{ value: 1, displayValue: this.textByColumns }
|
||||||
|
],
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'bottom',
|
||||||
|
dataHintOffset: 'big'
|
||||||
|
}).on('selected', function(combo, record) {
|
||||||
|
me.fireEvent('search:options', ['search', !record.value]);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.cmbLookIn = new Common.UI.ComboBox({
|
||||||
|
el: $('#search-adv-cmb-look-in'),
|
||||||
|
menuStyle: 'min-width: 100%;',
|
||||||
|
style: "width: 219px;",
|
||||||
|
editable: false,
|
||||||
|
cls: 'input-group-nr',
|
||||||
|
data: [
|
||||||
|
{ value: 0, displayValue: this.textFormulas },
|
||||||
|
{ value: 1, displayValue: this.textValues }
|
||||||
|
],
|
||||||
|
dataHint: '1',
|
||||||
|
dataHintDirection: 'bottom',
|
||||||
|
dataHintOffset: 'big'
|
||||||
|
}).on('selected', function(combo, record) {
|
||||||
|
me.fireEvent('search:options', ['lookIn', !record.value]);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.$searchOptionsBlock = $('.search-options-block');
|
||||||
|
this.$searchOptionsBlock.show();
|
||||||
|
$('#open-search-options').on('click', _.bind(this.expandSearchOptions, this));
|
||||||
|
|
||||||
|
if (!this.extendedOptions) {
|
||||||
|
this.$searchOptionsBlock.addClass('no-expand');
|
||||||
|
}
|
||||||
|
|
||||||
|
this.cmbWithin.setValue(0);
|
||||||
|
this.cmbSearch.setValue(0);
|
||||||
|
this.cmbLookIn.setValue(0);
|
||||||
|
|
||||||
|
var tableTemplate = '<div class="search-table">' +
|
||||||
|
'<div class="header-items">' +
|
||||||
|
'<div class="header-item">' + this.textSheet + '</div>' +
|
||||||
|
'<div class="header-item">' + this.textName + '</div>' +
|
||||||
|
'<div class="header-item">' + this.textCell + '</div>' +
|
||||||
|
'<div class="header-item">' + this.textValue + '</div>' +
|
||||||
|
'<div class="header-item">' + this.textFormula + '</div>' +
|
||||||
|
'</div>' +
|
||||||
|
'<div class="ps-container oo search-items"></div>' +
|
||||||
|
'</div>',
|
||||||
|
$resultTable = $(tableTemplate).appendTo(this.$resultsContainer);
|
||||||
|
this.$resultsContainer.scroller = new Common.UI.Scroller({
|
||||||
|
el: $resultTable.find('.search-items'),
|
||||||
|
includePadding: true,
|
||||||
|
useKeyboard: true,
|
||||||
|
minScrollbarLength: 40,
|
||||||
|
alwaysVisibleY: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$resultsContainer.scroller = new Common.UI.Scroller({
|
||||||
|
el: this.$resultsContainer,
|
||||||
|
includePadding: true,
|
||||||
|
useKeyboard: true,
|
||||||
|
minScrollbarLength: 40,
|
||||||
|
alwaysVisibleY: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Common.NotificationCenter.on('window:resize', function() {
|
||||||
|
me.updateResultsContainerHeight();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
this.rendered = true;
|
||||||
|
this.trigger('render:after', this);
|
||||||
|
return this;
|
||||||
|
},
|
||||||
|
|
||||||
|
show: function () {
|
||||||
|
Common.UI.BaseView.prototype.show.call(this,arguments);
|
||||||
|
this.fireEvent('show', this );
|
||||||
|
|
||||||
|
this.updateResultsContainerHeight();
|
||||||
|
},
|
||||||
|
|
||||||
|
hide: function () {
|
||||||
|
Common.UI.BaseView.prototype.hide.call(this,arguments);
|
||||||
|
this.fireEvent('hide', this );
|
||||||
|
},
|
||||||
|
|
||||||
|
focus: function(type) {
|
||||||
|
var me = this,
|
||||||
|
el = type === 'replace' ? me.inputReplace.$el : (type === 'range' ? me.inputSelectRange.$el : me.inputText.$el);
|
||||||
|
setTimeout(function(){
|
||||||
|
el.find('input').focus();
|
||||||
|
el.find('input').select();
|
||||||
|
}, 10);
|
||||||
|
},
|
||||||
|
|
||||||
|
setSearchMode: function (mode) {
|
||||||
|
if (this.mode !== mode) {
|
||||||
|
this.$el.find('.edit-setting')[mode !== 'no-replace' ? 'show' : 'hide']();
|
||||||
|
this.$el.find('#search-adv-title').text(mode !== 'no-replace' ? this.textFindAndReplace : this.textFind);
|
||||||
|
this.mode = mode;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
ChangeSettings: function(props) {
|
||||||
|
},
|
||||||
|
|
||||||
|
updateResultsContainerHeight: function () {
|
||||||
|
if (this.$resultsContainer) {
|
||||||
|
this.$resultsContainer.outerHeight($('#search-box').outerHeight() - $('#search-header').outerHeight() - $('#search-adv-settings').outerHeight());
|
||||||
|
this.$resultsContainer.scroller.update({alwaysVisibleY: true});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
updateResultsNumber: function (current, count) {
|
||||||
|
var text;
|
||||||
|
if (count > 300) {
|
||||||
|
text = this.textTooManyResults;
|
||||||
|
} else {
|
||||||
|
text = current === 'no-results' ? this.textNoSearchResults :
|
||||||
|
(current === 'stop' ? this.textSearchHasStopped :
|
||||||
|
(current === 'content-changed' ? (this.textContentChanged + ' ' + Common.Utils.String.format(this.textSearchAgain, '<a class="search-again">','</a>')) :
|
||||||
|
(!count ? this.textNoMatches : Common.Utils.String.format(this.textSearchResults, current + 1, count))));
|
||||||
|
}
|
||||||
|
if (current === 'content-changed') {
|
||||||
|
var me = this;
|
||||||
|
this.$reaultsNumber.html(text);
|
||||||
|
this.$reaultsNumber.find('.search-again').on('click', function () {
|
||||||
|
me.fireEvent('search:next', [me.inputText.getValue(), true]);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$reaultsNumber.text(text);
|
||||||
|
}
|
||||||
|
this.updateResultsContainerHeight();
|
||||||
|
!window.SSE && this.disableReplaceButtons(!count);
|
||||||
|
},
|
||||||
|
|
||||||
|
onClickClosePanel: function() {
|
||||||
|
Common.NotificationCenter.trigger('leftmenu:change', 'hide');
|
||||||
|
this.fireEvent('hide', this );
|
||||||
|
},
|
||||||
|
|
||||||
|
onBtnNextClick: function (action) {
|
||||||
|
this.fireEvent('search:'+action, [this.inputText.getValue(), true]);
|
||||||
|
},
|
||||||
|
|
||||||
|
onReplaceClick: function (action) {
|
||||||
|
this.fireEvent('search:'+action, [this.inputText.getValue(), this.inputReplace.getValue()]);
|
||||||
|
},
|
||||||
|
|
||||||
|
getSettings: function() {
|
||||||
|
return {
|
||||||
|
textsearch: this.inputText.getValue(),
|
||||||
|
matchcase: this.chCaseSensitive.checked,
|
||||||
|
matchword: this.chMatchWord.checked
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
expandSearchOptions: function () {
|
||||||
|
this.extendedOptions = !this.extendedOptions;
|
||||||
|
this.$searchOptionsBlock[this.extendedOptions ? 'removeClass' : 'addClass']('no-expand');
|
||||||
|
Common.localStorage.setBool('sse-search-options-extended', this.extendedOptions);
|
||||||
|
|
||||||
|
this.updateResultsContainerHeight();
|
||||||
|
},
|
||||||
|
|
||||||
|
setFindText: function (val) {
|
||||||
|
this.inputText.setValue(val);
|
||||||
|
},
|
||||||
|
|
||||||
|
clearResultsNumber: function () {
|
||||||
|
this.updateResultsNumber('no-results');
|
||||||
|
},
|
||||||
|
|
||||||
|
disableNavButtons: function (resultNumber, allResults) {
|
||||||
|
var disable = (this.inputText._input.val() === '' && !window.SSE) || !allResults;
|
||||||
|
this.btnBack.setDisabled(disable);
|
||||||
|
this.btnNext.setDisabled(disable);
|
||||||
|
},
|
||||||
|
|
||||||
|
disableReplaceButtons: function (disable) {
|
||||||
|
this.btnReplace.setDisabled(disable);
|
||||||
|
this.btnReplaceAll.setDisabled(disable);
|
||||||
|
},
|
||||||
|
|
||||||
|
textFind: 'Find',
|
||||||
|
textFindAndReplace: 'Find and replace',
|
||||||
|
textCloseSearch: 'Close search',
|
||||||
|
textReplace: 'Replace',
|
||||||
|
textReplaceAll: 'Replace All',
|
||||||
|
textSearchResults: 'Search results: {0}/{1}',
|
||||||
|
textReplaceWith: 'Replace with',
|
||||||
|
textCaseSensitive: 'Case sensitive',
|
||||||
|
textMatchUsingRegExp: 'Match using regular expressions',
|
||||||
|
textWholeWords: 'Whole words only',
|
||||||
|
textWithin: 'Within',
|
||||||
|
textSelectDataRange: 'Select Data range',
|
||||||
|
textSearch: 'Search',
|
||||||
|
textLookIn: 'Look in',
|
||||||
|
textSheet: 'Sheet',
|
||||||
|
textWorkbook: 'Workbook',
|
||||||
|
textSpecificRange: 'Specific range',
|
||||||
|
textByRows: 'By rows',
|
||||||
|
textByColumns: 'By columns',
|
||||||
|
textFormulas: 'Formulas',
|
||||||
|
textValues: 'Values',
|
||||||
|
textSearchOptions: 'Search options',
|
||||||
|
textNoMatches: 'No matches',
|
||||||
|
textNoSearchResults: 'No search results',
|
||||||
|
textItemEntireCell: 'Entire cell contents',
|
||||||
|
textTooManyResults: 'There are too many results to show here',
|
||||||
|
tipPreviousResult: 'Previous result',
|
||||||
|
tipNextResult: 'Next result',
|
||||||
|
textName: 'Name',
|
||||||
|
textCell: 'Cell',
|
||||||
|
textValue: 'Value',
|
||||||
|
textFormula: 'Formula',
|
||||||
|
textSearchHasStopped: 'Search has stopped',
|
||||||
|
textContentChanged: 'Document changed.',
|
||||||
|
textSearchAgain: '{0}Perform new search{1} for accurate results.'
|
||||||
|
|
||||||
|
}, Common.Views.SearchPanel || {}));
|
||||||
|
});
|
|
@ -430,7 +430,7 @@ define([
|
||||||
'<table cols="1" style="width: 100%;">',
|
'<table cols="1" style="width: 100%;">',
|
||||||
'<tr>',
|
'<tr>',
|
||||||
'<td style="padding-bottom: 16px;">',
|
'<td style="padding-bottom: 16px;">',
|
||||||
'<div id="symbol-table-scrollable-div" style="position: relative;height:'+ (this.options.height-302 + 38*(this.special ? 0 : 1)) + 'px;">',
|
'<div id="symbol-table-scrollable-div" style="position: relative;height:'+ (this.options.height-304 + 38*(this.special ? 0 : 1)) + 'px;">',
|
||||||
'<div style="width: 100%;">',
|
'<div style="width: 100%;">',
|
||||||
'<div id="id-preview">',
|
'<div id="id-preview">',
|
||||||
'<div>',
|
'<div>',
|
||||||
|
@ -476,7 +476,7 @@ define([
|
||||||
'</tr>',
|
'</tr>',
|
||||||
'<tr>',
|
'<tr>',
|
||||||
'<td>',
|
'<td>',
|
||||||
'<div id="symbol-table-special-list" class="no-borders" style="width:100%; height: '+ (this.options.height-156 + 38*(this.special ? 0 : 1)) + 'px;"></div>',
|
'<div id="symbol-table-special-list" class="no-borders" style="width:100%; height: '+ (this.options.height-157 + 38*(this.special ? 0 : 1)) + 'px;"></div>',
|
||||||
'</td>',
|
'</td>',
|
||||||
'</tr>',
|
'</tr>',
|
||||||
'</table>',
|
'</table>',
|
||||||
|
@ -1104,7 +1104,7 @@ define([
|
||||||
},
|
},
|
||||||
|
|
||||||
getMaxHeight: function(){
|
getMaxHeight: function(){
|
||||||
return this.symbolTablePanel.innerHeight();
|
return this.symbolTablePanel.innerHeight()-2;
|
||||||
},
|
},
|
||||||
|
|
||||||
getRowsCount: function() {
|
getRowsCount: function() {
|
||||||
|
@ -1436,8 +1436,8 @@ define([
|
||||||
this.curSize = {resize: false, width: size[0], height: size[1]};
|
this.curSize = {resize: false, width: size[0], height: size[1]};
|
||||||
} else if (this.curSize.resize) {
|
} else if (this.curSize.resize) {
|
||||||
this._preventUpdateScroll = false;
|
this._preventUpdateScroll = false;
|
||||||
this.curSize.height = size[1] - 302 + 38*(this.special ? 0 : 1);
|
this.curSize.height = size[1] - 304 + 38*(this.special ? 0 : 1);
|
||||||
var rows = Math.max(1, ((this.curSize.height/CELL_HEIGHT) >> 0)),
|
var rows = Math.max(1, (((this.curSize.height-2)/CELL_HEIGHT) >> 0)),
|
||||||
height = rows*CELL_HEIGHT;
|
height = rows*CELL_HEIGHT;
|
||||||
|
|
||||||
this.symbolTablePanel.css({'height': this.curSize.height + 'px'});
|
this.symbolTablePanel.css({'height': this.curSize.height + 'px'});
|
||||||
|
@ -1447,7 +1447,7 @@ define([
|
||||||
|
|
||||||
this.updateView(undefined, undefined, undefined, true);
|
this.updateView(undefined, undefined, undefined, true);
|
||||||
|
|
||||||
this.specialList.cmpEl.height(size[1] - 156 + 38*(this.special ? 0 : 1));
|
this.specialList.cmpEl.height(size[1] - 157 + 38*(this.special ? 0 : 1));
|
||||||
|
|
||||||
!this.special && (size[1] += 38);
|
!this.special && (size[1] += 38);
|
||||||
var valJson = JSON.stringify(size);
|
var valJson = JSON.stringify(size);
|
||||||
|
@ -1465,16 +1465,16 @@ define([
|
||||||
this.curSize.resize = true;
|
this.curSize.resize = true;
|
||||||
|
|
||||||
this.curSize.width = size[0];
|
this.curSize.width = size[0];
|
||||||
this.curSize.height = size[1] - 302 + 38*(this.special ? 0 : 1);
|
this.curSize.height = size[1] - 304 + 38*(this.special ? 0 : 1);
|
||||||
|
|
||||||
var rows = Math.max(1, ((this.curSize.height/CELL_HEIGHT) >> 0)),
|
var rows = Math.max(1, (((this.curSize.height-2)/CELL_HEIGHT) >> 0)),
|
||||||
height = rows*CELL_HEIGHT;
|
height = rows*CELL_HEIGHT;
|
||||||
|
|
||||||
this.symbolTablePanel.css({'height': this.curSize.height + 'px'});
|
this.symbolTablePanel.css({'height': this.curSize.height + 'px'});
|
||||||
this.previewPanel.css({'height': height + 'px'});
|
this.previewPanel.css({'height': height + 'px'});
|
||||||
this.previewScrolled.css({'height': height + 'px'});
|
this.previewScrolled.css({'height': height + 'px'});
|
||||||
|
|
||||||
this.specialList.cmpEl.height(size[1] - 156 + 38*(this.special ? 0 : 1));
|
this.specialList.cmpEl.height(size[1] - 157 + 38*(this.special ? 0 : 1));
|
||||||
|
|
||||||
this.updateView(undefined, undefined, undefined, true);
|
this.updateView(undefined, undefined, undefined, true);
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
BIN
apps/common/main/resources/help/de/images/find_small.png
Normal file
After Width: | Height: | Size: 857 B |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 305 B |
BIN
apps/common/main/resources/help/de/images/ole_table.png
Normal file
After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
BIN
apps/common/main/resources/help/de/images/setpassword.png
Normal file
After Width: | Height: | Size: 26 KiB |
23
apps/common/main/resources/help/download.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: Arial,Helvetica,"Helvetica Neue",sans-serif;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
.centered {
|
||||||
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="centered">
|
||||||
|
<h1>There is no help installed</h1>
|
||||||
|
<h2>please, download it from <a href='#'>www.onlyoffice.com</a></h1>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 627 B After Width: | Height: | Size: 627 B |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
apps/common/main/resources/help/en/images/find_small.png
Normal file
After Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 8.9 KiB |